Merge "ApiSetNotificationTimestamp: Make entirewatchlist more efficient"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 17 Jan 2019 18:04:46 +0000 (18:04 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 17 Jan 2019 18:04:46 +0000 (18:04 +0000)
722 files changed:
.eslintrc.json
.mailmap
CREDITS
HISTORY
RELEASE-NOTES-1.32 [deleted file]
RELEASE-NOTES-1.33
autoload.php
composer.json
docs/hooks.txt
includes/AutoLoader.php
includes/Block.php
includes/DefaultSettings.php
includes/HistoryBlob.php
includes/Linker.php
includes/MediaWikiServices.php
includes/MovePage.php
includes/OutputPage.php
includes/Revision.php
includes/Revision/SlotRecord.php
includes/Revision/SlotRoleRegistry.php
includes/Setup.php
includes/Title.php
includes/actions/HistoryAction.php
includes/api/ApiQueryAllUsers.php
includes/api/ApiQueryBase.php
includes/api/ApiQueryContributors.php
includes/api/ApiQueryInfo.php
includes/api/ApiQueryPageProps.php
includes/api/ApiQueryUserContribs.php
includes/api/i18n/ar.json
includes/api/i18n/es.json
includes/api/i18n/he.json
includes/api/i18n/lb.json
includes/api/i18n/pl.json
includes/api/i18n/uk.json
includes/api/i18n/zh-hant.json
includes/auth/AbstractPasswordPrimaryAuthenticationProvider.php
includes/auth/AuthManager.php
includes/block/BlockRestriction.php
includes/block/Restriction/AbstractRestriction.php
includes/block/Restriction/PageRestriction.php
includes/block/Restriction/Restriction.php
includes/changes/ChangesList.php
includes/changetags/ChangeTags.php
includes/clientpool/SquidPurgeClientPool.php
includes/collation/NumericUppercaseCollation.php
includes/config/ConfigFactory.php
includes/config/ConfigRepository.php
includes/content/AbstractContent.php
includes/content/Content.php
includes/content/ContentHandler.php
includes/content/CssContent.php
includes/content/JavaScriptContent.php
includes/content/JsonContent.php
includes/content/MessageContent.php
includes/content/TextContent.php
includes/content/TextContentHandler.php
includes/content/WikitextContent.php
includes/content/WikitextContentHandler.php
includes/db/DatabaseOracle.php
includes/diff/TextSlotDiffRenderer.php
includes/editpage/TextboxBuilder.php
includes/exception/MWUnknownContentModelException.php
includes/export/BaseDump.php
includes/export/DumpFilter.php
includes/export/DumpNamespaceFilter.php
includes/export/DumpNotalkFilter.php
includes/filerepo/LocalRepo.php
includes/filerepo/file/ArchivedFile.php
includes/filerepo/file/LocalFile.php
includes/filerepo/file/OldLocalFile.php
includes/htmlform/HTMLForm.php
includes/htmlform/HTMLSelectLanguageField.php [new file with mode: 0644]
includes/http/CurlHttpRequest.php
includes/import/ImportableUploadRevisionImporter.php
includes/installer/Installer.php
includes/installer/i18n/ar.json
includes/installer/i18n/be-tarask.json
includes/installer/i18n/bg.json
includes/installer/i18n/ca.json
includes/installer/i18n/cs.json
includes/installer/i18n/de.json
includes/installer/i18n/diq.json
includes/installer/i18n/en.json
includes/installer/i18n/eu.json
includes/installer/i18n/fr.json
includes/installer/i18n/it.json
includes/installer/i18n/ja.json
includes/installer/i18n/lij.json
includes/installer/i18n/mk.json
includes/installer/i18n/oc.json
includes/installer/i18n/pt-br.json
includes/installer/i18n/pt.json
includes/installer/i18n/ro.json
includes/installer/i18n/sv.json
includes/installer/i18n/th.json
includes/installer/i18n/uk.json
includes/installer/i18n/zh-hant.json
includes/jobqueue/JobQueue.php
includes/jobqueue/JobQueueDB.php
includes/jobqueue/JobQueueGroup.php
includes/jobqueue/JobQueueRedis.php
includes/libs/filebackend/FileBackend.php
includes/libs/filebackend/filejournal/FileJournal.php
includes/libs/lockmanager/FSLockManager.php
includes/libs/lockmanager/PostgreSqlLockManager.php
includes/libs/lockmanager/QuorumLockManager.php
includes/libs/mime/IEContentAnalyzer.php
includes/libs/mime/XmlTypeCheck.php
includes/libs/objectcache/WANObjectCache.php
includes/libs/rdbms/ChronologyProtector.php
includes/libs/rdbms/database/Database.php
includes/libs/rdbms/database/DatabaseMysqlBase.php
includes/libs/rdbms/loadbalancer/LoadBalancer.php
includes/libs/services/CannotReplaceActiveServiceException.php [new file with mode: 0644]
includes/libs/services/ContainerDisabledException.php [new file with mode: 0644]
includes/libs/services/DestructibleService.php [new file with mode: 0644]
includes/libs/services/NoSuchServiceException.php [new file with mode: 0644]
includes/libs/services/SalvageableService.php [new file with mode: 0644]
includes/libs/services/ServiceAlreadyDefinedException.php [new file with mode: 0644]
includes/libs/services/ServiceContainer.php [new file with mode: 0644]
includes/libs/services/ServiceDisabledException.php [new file with mode: 0644]
includes/logging/BlockLogFormatter.php
includes/logging/LogFormatter.php
includes/mail/EmailNotification.php
includes/mail/UserMailer.php
includes/media/SVGMetadataExtractor.php
includes/page/ImagePage.php
includes/page/WikiPage.php
includes/parser/ParserOptions.php
includes/parser/Preprocessor_DOM.php
includes/password/UserPasswordPolicy.php
includes/registration/ExtensionRegistry.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderImage.php
includes/search/SearchOracle.php
includes/search/SearchSqlite.php
includes/services/CannotReplaceActiveServiceException.php [deleted file]
includes/services/ContainerDisabledException.php [deleted file]
includes/services/DestructibleService.php [deleted file]
includes/services/NoSuchServiceException.php [deleted file]
includes/services/SalvageableService.php [deleted file]
includes/services/ServiceAlreadyDefinedException.php [deleted file]
includes/services/ServiceContainer.php [deleted file]
includes/services/ServiceDisabledException.php [deleted file]
includes/skins/Skin.php
includes/specialpage/DisabledSpecialPage.php [new file with mode: 0644]
includes/specials/SpecialAllMessages.php
includes/specials/SpecialBlock.php
includes/specials/SpecialEditWatchlist.php
includes/specials/SpecialListgrants.php
includes/specials/SpecialLog.php
includes/specials/SpecialPasswordPolicies.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialSearch.php
includes/specials/SpecialSpecialpages.php
includes/specials/SpecialTrackingCategories.php
includes/specials/SpecialUserrights.php
includes/specials/pagers/AllMessagesTablePager.php
includes/specials/pagers/BlockListPager.php
includes/specials/pagers/ContribsPager.php
includes/specials/pagers/DeletedContribsPager.php
includes/specials/pagers/ImageListPager.php
includes/upload/UploadBase.php
includes/user/User.php
includes/utils/ZipDirectoryReader.php
includes/watcheditem/WatchedItemStore.php
includes/widget/CheckMatrixWidget.php
includes/widget/search/InterwikiSearchResultSetWidget.php
languages/Language.php
languages/data/ZhConversion.php
languages/i18n/ace.json
languages/i18n/aeb-arab.json
languages/i18n/af.json
languages/i18n/ais.json
languages/i18n/am.json
languages/i18n/an.json
languages/i18n/ang.json
languages/i18n/ar.json
languages/i18n/arc.json
languages/i18n/arn.json
languages/i18n/ary.json
languages/i18n/arz.json
languages/i18n/as.json
languages/i18n/ast.json
languages/i18n/avk.json
languages/i18n/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/bqi.json
languages/i18n/br.json
languages/i18n/bs.json
languages/i18n/ca.json
languages/i18n/cdo.json
languages/i18n/ce.json
languages/i18n/ckb.json
languages/i18n/crh-cyrl.json
languages/i18n/crh-latn.json
languages/i18n/cs.json
languages/i18n/cy.json
languages/i18n/da.json
languages/i18n/de.json
languages/i18n/diq.json
languages/i18n/dsb.json
languages/i18n/el.json
languages/i18n/en-gb.json
languages/i18n/en.json
languages/i18n/eo.json
languages/i18n/es.json
languages/i18n/et.json
languages/i18n/eu.json
languages/i18n/exif/af.json [new file with mode: 0644]
languages/i18n/exif/ais.json [new file with mode: 0644]
languages/i18n/exif/am.json [new file with mode: 0644]
languages/i18n/exif/an.json [new file with mode: 0644]
languages/i18n/exif/ang.json [new file with mode: 0644]
languages/i18n/exif/ar.json [new file with mode: 0644]
languages/i18n/exif/ary.json [new file with mode: 0644]
languages/i18n/exif/arz.json [new file with mode: 0644]
languages/i18n/exif/as.json [new file with mode: 0644]
languages/i18n/exif/ast.json [new file with mode: 0644]
languages/i18n/exif/avk.json [new file with mode: 0644]
languages/i18n/exif/awa.json [new file with mode: 0644]
languages/i18n/exif/az.json [new file with mode: 0644]
languages/i18n/exif/azb.json [new file with mode: 0644]
languages/i18n/exif/ba.json [new file with mode: 0644]
languages/i18n/exif/bcc.json [new file with mode: 0644]
languages/i18n/exif/bcl.json [new file with mode: 0644]
languages/i18n/exif/be-tarask.json [new file with mode: 0644]
languages/i18n/exif/be.json [new file with mode: 0644]
languages/i18n/exif/bg.json [new file with mode: 0644]
languages/i18n/exif/bgn.json [new file with mode: 0644]
languages/i18n/exif/bjn.json [new file with mode: 0644]
languages/i18n/exif/bn.json [new file with mode: 0644]
languages/i18n/exif/br.json [new file with mode: 0644]
languages/i18n/exif/bs.json [new file with mode: 0644]
languages/i18n/exif/ca.json [new file with mode: 0644]
languages/i18n/exif/ce.json [new file with mode: 0644]
languages/i18n/exif/ckb.json [new file with mode: 0644]
languages/i18n/exif/cs.json [new file with mode: 0644]
languages/i18n/exif/cy.json [new file with mode: 0644]
languages/i18n/exif/da.json [new file with mode: 0644]
languages/i18n/exif/de-ch.json [new file with mode: 0644]
languages/i18n/exif/de.json [new file with mode: 0644]
languages/i18n/exif/diq.json [new file with mode: 0644]
languages/i18n/exif/dsb.json [new file with mode: 0644]
languages/i18n/exif/el.json [new file with mode: 0644]
languages/i18n/exif/en-ca.json [new file with mode: 0644]
languages/i18n/exif/en-gb.json [new file with mode: 0644]
languages/i18n/exif/eo.json [new file with mode: 0644]
languages/i18n/exif/es.json [new file with mode: 0644]
languages/i18n/exif/et.json [new file with mode: 0644]
languages/i18n/exif/eu.json [new file with mode: 0644]
languages/i18n/exif/ext.json [new file with mode: 0644]
languages/i18n/exif/fa.json [new file with mode: 0644]
languages/i18n/exif/fi.json [new file with mode: 0644]
languages/i18n/exif/fo.json [new file with mode: 0644]
languages/i18n/exif/fr.json [new file with mode: 0644]
languages/i18n/exif/frp.json [new file with mode: 0644]
languages/i18n/exif/frr.json [new file with mode: 0644]
languages/i18n/exif/fy.json [new file with mode: 0644]
languages/i18n/exif/ga.json [new file with mode: 0644]
languages/i18n/exif/gan-hans.json [new file with mode: 0644]
languages/i18n/exif/gan-hant.json [new file with mode: 0644]
languages/i18n/exif/gd.json [new file with mode: 0644]
languages/i18n/exif/gl.json [new file with mode: 0644]
languages/i18n/exif/grc.json [new file with mode: 0644]
languages/i18n/exif/gsw.json [new file with mode: 0644]
languages/i18n/exif/gu.json [new file with mode: 0644]
languages/i18n/exif/he.json [new file with mode: 0644]
languages/i18n/exif/hi.json [new file with mode: 0644]
languages/i18n/exif/hif-latn.json [new file with mode: 0644]
languages/i18n/exif/hr.json [new file with mode: 0644]
languages/i18n/exif/hrx.json [new file with mode: 0644]
languages/i18n/exif/hsb.json [new file with mode: 0644]
languages/i18n/exif/hu.json [new file with mode: 0644]
languages/i18n/exif/ia.json [new file with mode: 0644]
languages/i18n/exif/id.json [new file with mode: 0644]
languages/i18n/exif/ig.json [new file with mode: 0644]
languages/i18n/exif/ilo.json [new file with mode: 0644]
languages/i18n/exif/is.json [new file with mode: 0644]
languages/i18n/exif/it.json [new file with mode: 0644]
languages/i18n/exif/ja.json [new file with mode: 0644]
languages/i18n/exif/jv.json [new file with mode: 0644]
languages/i18n/exif/ka.json [new file with mode: 0644]
languages/i18n/exif/kab.json [new file with mode: 0644]
languages/i18n/exif/kk-arab.json [new file with mode: 0644]
languages/i18n/exif/kk-cyrl.json [new file with mode: 0644]
languages/i18n/exif/kk-latn.json [new file with mode: 0644]
languages/i18n/exif/km.json [new file with mode: 0644]
languages/i18n/exif/kn.json [new file with mode: 0644]
languages/i18n/exif/ko.json [new file with mode: 0644]
languages/i18n/exif/krc.json [new file with mode: 0644]
languages/i18n/exif/ksh.json [new file with mode: 0644]
languages/i18n/exif/ku-latn.json [new file with mode: 0644]
languages/i18n/exif/ky.json [new file with mode: 0644]
languages/i18n/exif/la.json [new file with mode: 0644]
languages/i18n/exif/lb.json [new file with mode: 0644]
languages/i18n/exif/lfn.json [new file with mode: 0644]
languages/i18n/exif/li.json [new file with mode: 0644]
languages/i18n/exif/lij.json [new file with mode: 0644]
languages/i18n/exif/lki.json [new file with mode: 0644]
languages/i18n/exif/lrc.json [new file with mode: 0644]
languages/i18n/exif/lt.json [new file with mode: 0644]
languages/i18n/exif/lus.json [new file with mode: 0644]
languages/i18n/exif/lv.json [new file with mode: 0644]
languages/i18n/exif/mai.json [new file with mode: 0644]
languages/i18n/exif/mdf.json [new file with mode: 0644]
languages/i18n/exif/mg.json [new file with mode: 0644]
languages/i18n/exif/mk.json [new file with mode: 0644]
languages/i18n/exif/ml.json [new file with mode: 0644]
languages/i18n/exif/mn.json [new file with mode: 0644]
languages/i18n/exif/mnw.json [new file with mode: 0644]
languages/i18n/exif/mr.json [new file with mode: 0644]
languages/i18n/exif/ms.json [new file with mode: 0644]
languages/i18n/exif/mt.json [new file with mode: 0644]
languages/i18n/exif/my.json [new file with mode: 0644]
languages/i18n/exif/myv.json [new file with mode: 0644]
languages/i18n/exif/nah.json [new file with mode: 0644]
languages/i18n/exif/nap.json [new file with mode: 0644]
languages/i18n/exif/nb.json [new file with mode: 0644]
languages/i18n/exif/nds-nl.json [new file with mode: 0644]
languages/i18n/exif/nds.json [new file with mode: 0644]
languages/i18n/exif/ne.json [new file with mode: 0644]
languages/i18n/exif/nl.json [new file with mode: 0644]
languages/i18n/exif/nn.json [new file with mode: 0644]
languages/i18n/exif/oc.json [new file with mode: 0644]
languages/i18n/exif/or.json [new file with mode: 0644]
languages/i18n/exif/os.json [new file with mode: 0644]
languages/i18n/exif/pa.json [new file with mode: 0644]
languages/i18n/exif/pam.json [new file with mode: 0644]
languages/i18n/exif/pl.json [new file with mode: 0644]
languages/i18n/exif/pms.json [new file with mode: 0644]
languages/i18n/exif/pnb.json [new file with mode: 0644]
languages/i18n/exif/prg.json [new file with mode: 0644]
languages/i18n/exif/ps.json [new file with mode: 0644]
languages/i18n/exif/pt-br.json [new file with mode: 0644]
languages/i18n/exif/pt.json [new file with mode: 0644]
languages/i18n/exif/qu.json [new file with mode: 0644]
languages/i18n/exif/rm.json [new file with mode: 0644]
languages/i18n/exif/ro.json [new file with mode: 0644]
languages/i18n/exif/roa-tara.json [new file with mode: 0644]
languages/i18n/exif/ru.json [new file with mode: 0644]
languages/i18n/exif/rue.json [new file with mode: 0644]
languages/i18n/exif/sa.json [new file with mode: 0644]
languages/i18n/exif/sah.json [new file with mode: 0644]
languages/i18n/exif/scn.json [new file with mode: 0644]
languages/i18n/exif/sco.json [new file with mode: 0644]
languages/i18n/exif/sd.json [new file with mode: 0644]
languages/i18n/exif/ses.json [new file with mode: 0644]
languages/i18n/exif/sgs.json [new file with mode: 0644]
languages/i18n/exif/sh.json [new file with mode: 0644]
languages/i18n/exif/shi.json [new file with mode: 0644]
languages/i18n/exif/si.json [new file with mode: 0644]
languages/i18n/exif/sk.json [new file with mode: 0644]
languages/i18n/exif/sl.json [new file with mode: 0644]
languages/i18n/exif/sli.json [new file with mode: 0644]
languages/i18n/exif/sq.json [new file with mode: 0644]
languages/i18n/exif/sr-ec.json [new file with mode: 0644]
languages/i18n/exif/sr-el.json [new file with mode: 0644]
languages/i18n/exif/stq.json [new file with mode: 0644]
languages/i18n/exif/su.json [new file with mode: 0644]
languages/i18n/exif/sv.json [new file with mode: 0644]
languages/i18n/exif/sw.json [new file with mode: 0644]
languages/i18n/exif/szl.json [new file with mode: 0644]
languages/i18n/exif/ta.json [new file with mode: 0644]
languages/i18n/exif/tay.json [new file with mode: 0644]
languages/i18n/exif/te.json [new file with mode: 0644]
languages/i18n/exif/tg-cyrl.json [new file with mode: 0644]
languages/i18n/exif/tg-latn.json [new file with mode: 0644]
languages/i18n/exif/th.json [new file with mode: 0644]
languages/i18n/exif/tk.json [new file with mode: 0644]
languages/i18n/exif/tl.json [new file with mode: 0644]
languages/i18n/exif/to.json [new file with mode: 0644]
languages/i18n/exif/tr.json [new file with mode: 0644]
languages/i18n/exif/tt-cyrl.json [new file with mode: 0644]
languages/i18n/exif/tt-latn.json [new file with mode: 0644]
languages/i18n/exif/tzm.json [new file with mode: 0644]
languages/i18n/exif/ug-arab.json [new file with mode: 0644]
languages/i18n/exif/uk.json [new file with mode: 0644]
languages/i18n/exif/ur.json [new file with mode: 0644]
languages/i18n/exif/vec.json [new file with mode: 0644]
languages/i18n/exif/vep.json [new file with mode: 0644]
languages/i18n/exif/vi.json [new file with mode: 0644]
languages/i18n/exif/vo.json [new file with mode: 0644]
languages/i18n/exif/vro.json [new file with mode: 0644]
languages/i18n/exif/wa.json [new file with mode: 0644]
languages/i18n/exif/war.json [new file with mode: 0644]
languages/i18n/exif/xmf.json [new file with mode: 0644]
languages/i18n/exif/yi.json [new file with mode: 0644]
languages/i18n/exif/yo.json [new file with mode: 0644]
languages/i18n/exif/yue.json [new file with mode: 0644]
languages/i18n/exif/zh-hans.json [new file with mode: 0644]
languages/i18n/exif/zh-hant.json [new file with mode: 0644]
languages/i18n/exif/zh-hk.json [new file with mode: 0644]
languages/i18n/ext.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fo.json
languages/i18n/fr.json
languages/i18n/frp.json
languages/i18n/frr.json
languages/i18n/fur.json
languages/i18n/fy.json
languages/i18n/ga.json
languages/i18n/gan-hans.json
languages/i18n/gan-hant.json
languages/i18n/gd.json
languages/i18n/gl.json
languages/i18n/gom-deva.json
languages/i18n/gom-latn.json
languages/i18n/gor.json
languages/i18n/grc.json
languages/i18n/gsw.json
languages/i18n/gu.json
languages/i18n/gv.json
languages/i18n/hak.json
languages/i18n/haw.json
languages/i18n/he.json
languages/i18n/hi.json
languages/i18n/hif-latn.json
languages/i18n/hr.json
languages/i18n/hrx.json
languages/i18n/hsb.json
languages/i18n/hu.json
languages/i18n/hy.json
languages/i18n/ia.json
languages/i18n/id.json
languages/i18n/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/kaa.json
languages/i18n/kab.json
languages/i18n/kiu.json
languages/i18n/kjp.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/la.json
languages/i18n/lb.json
languages/i18n/lfn.json
languages/i18n/li.json
languages/i18n/lij.json
languages/i18n/lki.json
languages/i18n/lmo.json
languages/i18n/lrc.json
languages/i18n/lt.json
languages/i18n/lus.json
languages/i18n/lv.json
languages/i18n/lzh.json
languages/i18n/lzz.json
languages/i18n/mai.json
languages/i18n/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/my.json
languages/i18n/myv.json
languages/i18n/nah.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/nso.json
languages/i18n/oc.json
languages/i18n/or.json
languages/i18n/os.json
languages/i18n/pa.json
languages/i18n/pam.json
languages/i18n/pl.json
languages/i18n/pms.json
languages/i18n/pnb.json
languages/i18n/pnt.json
languages/i18n/prg.json
languages/i18n/ps.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/qu.json
languages/i18n/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/sd.json
languages/i18n/sdc.json
languages/i18n/se.json
languages/i18n/ses.json
languages/i18n/sgs.json
languages/i18n/sh.json
languages/i18n/shn.json
languages/i18n/si.json
languages/i18n/sk.json
languages/i18n/skr-arab.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/tay.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/to.json
languages/i18n/tr.json
languages/i18n/tt-cyrl.json
languages/i18n/tt-latn.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/wo.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/MessagesGom_deva.php
languages/messages/MessagesSat.php
maintenance/createAndPromote.php
maintenance/findHooks.php
maintenance/includes/BackupDumper.php
maintenance/language/zhtable/toCN.manual
maintenance/language/zhtable/toHK.manual
maintenance/language/zhtable/toSimp.manual
maintenance/language/zhtable/toTW.manual
maintenance/language/zhtable/toTrad.manual
maintenance/language/zhtable/trad2simp.manual
maintenance/language/zhtable/tradphrases.manual
maintenance/migrateActors.php
maintenance/parse.php
maintenance/resources/foreign-resources.yaml
maintenance/rollbackEdits.php
mw-config/config.js
package.json
resources/Resources.php
resources/lib/ooui/History.md
resources/lib/ooui/LICENSE-MIT
resources/lib/ooui/i18n/ar.json
resources/lib/ooui/i18n/cs.json
resources/lib/ooui/i18n/de.json
resources/lib/ooui/i18n/eo.json
resources/lib/ooui/i18n/fr.json
resources/lib/ooui/i18n/he.json
resources/lib/ooui/i18n/mk.json
resources/lib/ooui/i18n/nl.json
resources/lib/ooui/i18n/pt-br.json
resources/lib/ooui/i18n/pt.json
resources/lib/ooui/i18n/roa-tara.json
resources/lib/ooui/i18n/sq.json
resources/lib/ooui/i18n/sr-ec.json
resources/lib/ooui/i18n/sv.json
resources/lib/ooui/i18n/ur.json
resources/lib/ooui/i18n/zh-hant.json
resources/lib/ooui/oojs-ui-apex.js
resources/lib/ooui/oojs-ui-core-apex.css
resources/lib/ooui/oojs-ui-core-wikimediaui.css
resources/lib/ooui/oojs-ui-core.js
resources/lib/ooui/oojs-ui-core.js.map.json
resources/lib/ooui/oojs-ui-toolbars-apex.css
resources/lib/ooui/oojs-ui-toolbars-wikimediaui.css
resources/lib/ooui/oojs-ui-toolbars.js
resources/lib/ooui/oojs-ui-toolbars.js.map.json
resources/lib/ooui/oojs-ui-widgets-apex.css
resources/lib/ooui/oojs-ui-widgets-wikimediaui.css
resources/lib/ooui/oojs-ui-widgets.js
resources/lib/ooui/oojs-ui-widgets.js.map.json
resources/lib/ooui/oojs-ui-wikimediaui.js
resources/lib/ooui/oojs-ui-windows-apex.css
resources/lib/ooui/oojs-ui-windows-wikimediaui.css
resources/lib/ooui/oojs-ui-windows.js
resources/lib/ooui/oojs-ui-windows.js.map.json
resources/lib/ooui/themes/wikimediaui/images/icons/close-invert.png
resources/lib/ooui/themes/wikimediaui/images/icons/close-invert.svg
resources/lib/ooui/themes/wikimediaui/images/icons/close-progressive.png
resources/lib/ooui/themes/wikimediaui/images/icons/close-progressive.svg
resources/lib/ooui/themes/wikimediaui/images/icons/close.png
resources/lib/ooui/themes/wikimediaui/images/icons/close.svg
resources/lib/qunitjs/qunit.css
resources/lib/qunitjs/qunit.js
resources/src/jquery.tablesorter/jquery.tablesorter.js
resources/src/jquery/jquery.checkboxShiftClick.js
resources/src/jquery/jquery.makeCollapsible.js
resources/src/jquery/jquery.suggestions.js
resources/src/jquery/jquery.textSelection.js
resources/src/mediawiki.action/mediawiki.action.edit.editWarning.js
resources/src/mediawiki.action/mediawiki.action.edit.js
resources/src/mediawiki.action/mediawiki.action.edit.preview.js
resources/src/mediawiki.action/mediawiki.action.history.js
resources/src/mediawiki.action/mediawiki.action.view.dblClickEdit.js
resources/src/mediawiki.action/mediawiki.action.view.postEdit.js
resources/src/mediawiki.action/mediawiki.action.view.rightClickEdit.js
resources/src/mediawiki.api/upload.js
resources/src/mediawiki.checkboxtoggle.js
resources/src/mediawiki.debug/debug.js
resources/src/mediawiki.filewarning/filewarning.js
resources/src/mediawiki.htmlform.checker.js
resources/src/mediawiki.htmlform/cloner.js
resources/src/mediawiki.htmlform/multiselect.js
resources/src/mediawiki.htmlform/selectandother.js
resources/src/mediawiki.jqueryMsg/mediawiki.jqueryMsg.js
resources/src/mediawiki.legacy/protect.js
resources/src/mediawiki.notification/notification.js
resources/src/mediawiki.page.gallery.js
resources/src/mediawiki.page.ready.js
resources/src/mediawiki.page.watch.ajax.js
resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js
resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.SavedQueriesModel.js
resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js
resources/src/mediawiki.rcfilters/mw.rcfilters.init.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesListWrapperWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.SavedLinksListWidget.js
resources/src/mediawiki.special.apisandbox/apisandbox.js
resources/src/mediawiki.special.block.js
resources/src/mediawiki.special.block.less [deleted file]
resources/src/mediawiki.special.import.js
resources/src/mediawiki.special.recentchanges.js
resources/src/mediawiki.special.search.commonsInterwikiWidget.js
resources/src/mediawiki.special.search/search.js
resources/src/mediawiki.special.undelete.js
resources/src/mediawiki.special.unwatchedPages/unwatchedPages.js
resources/src/mediawiki.special.upload/upload.js
resources/src/mediawiki.special.userrights.js
resources/src/mediawiki.special.watchlist/watchlist.js
resources/src/mediawiki.special/block.less [new file with mode: 0644]
resources/src/mediawiki.toc/toc.js
resources/src/mediawiki.widgets.datetime/DateTimeInputWidget.js
resources/src/mediawiki.widgets/MediaSearch/mw.widgets.APIResultsQueue.js
resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaResourceProvider.js
resources/src/mediawiki.widgets/mw.widgets.DateInputWidget.js
resources/src/mediawiki.widgets/mw.widgets.SearchInputWidget.js
tests/phpunit/data/resourceloader/def.svg
tests/phpunit/data/resourceloader/def_variantize.svg
tests/phpunit/includes/MediaWikiServicesTest.php
tests/phpunit/includes/Revision/RevisionStoreDbTestBase.php
tests/phpunit/includes/TitlePermissionTest.php
tests/phpunit/includes/auth/AbstractPasswordPrimaryAuthenticationProviderTest.php
tests/phpunit/includes/auth/LocalPasswordPrimaryAuthenticationProviderTest.php
tests/phpunit/includes/changetags/ChangeTagsTest.php
tests/phpunit/includes/content/ContentHandlerTest.php
tests/phpunit/includes/content/JavaScriptContentTest.php
tests/phpunit/includes/content/MessageContentTest.php [new file with mode: 0644]
tests/phpunit/includes/content/TextContentTest.php
tests/phpunit/includes/content/WikitextContentHandlerTest.php
tests/phpunit/includes/content/WikitextContentTest.php
tests/phpunit/includes/libs/services/ServiceContainerTest.php [new file with mode: 0644]
tests/phpunit/includes/libs/services/TestWiring1.php [new file with mode: 0644]
tests/phpunit/includes/libs/services/TestWiring2.php [new file with mode: 0644]
tests/phpunit/includes/media/WebPTest.php
tests/phpunit/includes/page/WikiPageDbTestBase.php
tests/phpunit/includes/password/UserPasswordPolicyTest.php
tests/phpunit/includes/poolcounter/PoolWorkArticleViewTest.php
tests/phpunit/includes/registration/ExtensionRegistryTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderLessVarFileModuleTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderStartUpModuleTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderTest.php
tests/phpunit/includes/services/ServiceContainerTest.php [deleted file]
tests/phpunit/includes/services/TestWiring1.php [deleted file]
tests/phpunit/includes/services/TestWiring2.php [deleted file]
tests/phpunit/includes/specials/SpecialBlockTest.php
tests/phpunit/includes/upload/UploadBaseTest.php
tests/phpunit/includes/upload/UploadStashTest.php
tests/qunit/.eslintrc.json
tests/qunit/data/testrunner.js
tests/qunit/suites/resources/jquery/jquery.color.test.js
tests/qunit/suites/resources/jquery/jquery.tablesorter.test.js
tests/qunit/suites/resources/mediawiki.special/mediawiki.special.recentchanges.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.toc.test.js

index 97f7c31..0c0a7b5 100644 (file)
@@ -10,6 +10,8 @@
                "OO": false
        },
        "rules": {
-               "max-len": 0
+               "quote-props": [ "error", "as-needed" ],
+               "max-len": "off",
+               "jquery/no-global-selector": "off"
        }
 }
index 8637e77..1265bd2 100644 (file)
--- a/.mailmap
+++ b/.mailmap
@@ -33,6 +33,7 @@ addshore <addshorewiki@gmail.com>
 addshore <addshorewiki@gmail.com> <adamshorland@gmail.com>
 Aditya Sastry <ganeshaditya1@gmail.com>
 Adrian Heine <adrian.heine@wikimedia.de>
+Alangi Derick <alangiderick@gmail.com>
 Alex Z. <mrzmanwiki@gmail.com> <mrzman@users.mediawiki.org>
 Aleksey Bekh-Ivanov <aleksey.bekh-ivanov@wikimedia.de>
 Alexandre Emsenhuber <ialex.wiki@gmail.com>
@@ -272,6 +273,7 @@ Marcin Cieślak <saper@saper.info>
 Marcin Cieślak <saper@saper.info> <saper@users.mediawiki.org>
 Marco Falke <maic23@live.de>
 MarcoAurelio <strigiwm@gmail.com>
+MarcoAurelio <strigiwm@gmail.com> <maurelio@tools.wmflabs.org>
 Marielle Volz <marielle.volz@gmail.com>
 Marius Hoch <hoo@online.de>
 Mark Clements <mediawiki@kennel17.co.uk> <happydog@users.mediawiki.org>
@@ -286,6 +288,7 @@ Markus Glaser <glaser@hallowelt.biz>
 Markus Glaser <glaser@hallowelt.biz> <mglaser@users.mediawiki.org>
 Matt Johnston <mattj@emazestudios.com> <mattj@users.mediawiki.org>
 Matthew Britton <hugglegurch@gmail.com> <gurch@users.mediawiki.org>
+Matthew Bowker <matthewrbowker.bugs@gmail.com>
 Matthew Flaschen <mflaschen@wikimedia.org>
 Matthew Walker <mwalker@wikimedia.org>
 MatthiasDD <Matthias_K2@gmx.de>
@@ -373,6 +376,7 @@ Robert Hoenig <indielives010@gmail.com>
 Robert Leverington <robert@rhl.me.uk> <roberthl@users.mediawiki.org>
 Robert Rohde <rarohde@gmail.com> <rarohde@users.mediawiki.org>
 Robert Stojnić <rainmansr@gmail.com> <rainman@users.mediawiki.org>
+Robert Vogel <vogel@hallowelt.biz>
 Robin Pepermans <robinp.1273@gmail.com>
 Robin Pepermans <robinp.1273@gmail.com> <robin@users.mediawiki.org>
 robinhood701 <robinhood70@live.ca>
@@ -489,3 +493,5 @@ Zppix <support@zppixballee.com>
 Étienne Beaulé <beauleetienne0@gmail.com>
 Željko Filipin <zeljko.filipin@gmail.com>
 Željko Filipin <zeljko.filipin@gmail.com> <zfilipin@wikimedia.org>
+星耀晨曦 <razesoldier@outlook.com>
+星耀晨曦 <razesoldier@outlook.com> <liguangjie4399@hotmail.com>
diff --git a/CREDITS b/CREDITS
index 27ded1c..319b566 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -16,6 +16,7 @@ The following list can be found parsed under Special:Version/Credits -->
 * Aashaka Shah
 * abhinand
 * Abhishek Das
+* Abián
 * Ad Huikeshoven
 * Adam Miller
 * Adam Roses Wight
@@ -101,6 +102,7 @@ The following list can be found parsed under Special:Version/Credits -->
 * Bill Traynor
 * Billinghurst
 * billm
+* Bjornskjald
 * blackspirit96
 * blotmandroid
 * Bogdan Stancescu
@@ -347,6 +349,7 @@ The following list can be found parsed under Special:Version/Credits -->
 * Jonathan Wiltshire
 * Jools Wills
 * jsahleen
+* Juan Osorio
 * Julian Ostrow
 * Juliano F. Ravasi
 * Julien Girault
@@ -402,6 +405,7 @@ The following list can be found parsed under Special:Version/Credits -->
 * Lucas Werkmeister
 * Luigi Corsaro
 * Luis Felipe Schenone
+* LukBukkit
 * Luke Faraone
 * Luke Welling
 * Lupin
@@ -475,6 +479,7 @@ The following list can be found parsed under Special:Version/Credits -->
 * Misza13
 * mjbmr
 * moejoe0000
+* Mogmog123
 * Mohamed Magdy
 * Molly White
 * Moriel Schottlender
@@ -506,6 +511,7 @@ The following list can be found parsed under Special:Version/Credits -->
 * Nicolaie Constantinescu
 * Nicolas Dumazet
 * Nicolas Weeger
+* Niedzielski
 * Niharika Kohli
 * Nik Everett
 * Niklas Laxström
@@ -561,6 +567,7 @@ The following list can be found parsed under Special:Version/Credits -->
 * Pikne
 * Piotr Miazga
 * PiRSquared17
+* pjht
 * Platonides
 * Pmlineditor
 * pmolina
@@ -578,10 +585,10 @@ The following list can be found parsed under Special:Version/Credits -->
 * quiddity
 * quietust
 * Quim Gil
+* Rafid Aslam
 * rahul21
 * Raimond Spekking
 * Ramunas Geciauskas
-* RazeSoldier
 * Remember the dot
 * René Kijewski
 * Reza
@@ -641,11 +648,13 @@ The following list can be found parsed under Special:Version/Credits -->
 * Sethakill
 * Sfic
 * Shahyar
+* shandrenkoff
 * Shane Gibbons
 * Shane King
 * shanika
 * Shinjiman
 * shirayuki
+* Shreyas Minocha
 * Sidhant Gupta
 * Siebrand Mazeland
 * Simeon Dahl
@@ -669,6 +678,7 @@ The following list can be found parsed under Special:Version/Credits -->
 * Steve Sanbeg
 * Steven Roddis
 * Steven Walling
+* stibba
 * Str4nd
 * Strainu
 * Subin Siby
diff --git a/HISTORY b/HISTORY
index 4665036..72ff437 100644 (file)
--- a/HISTORY
+++ b/HISTORY
@@ -1,4 +1,697 @@
-Change notes from older releases. For current info see RELEASE-NOTES-1.32.
+Change notes from older releases. For current info see RELEASE-NOTES-1.33.
+
+= MediaWiki 1.32 =
+
+== MediaWiki 1.32.0 ==
+
+=== Changes since MediaWiki 1.32.0-rc.2 ===
+* (T188327) Fix slow queries in migrateActors.php.
+* (T102320) Fix $magicWords for the Sanskrit language.
+
+=== Changes since MediaWiki 1.32.0-rc.1 ===
+* Fix addition of ug_expiry column to user_groups table on MSSQL.
+* (T210307) Fix the cache timestamp for forced updates.
+* (T210621) User: Bypass repeatable-read when creating an actor_id.
+* (T197535) Extensions can now specify PHP versions and PHP extensions they
+  depend on.
+* Updated wikimedia/ip-set from v1.2.0 to v1.3.0.
+* (T212356) When using action=delete on pages with many revisions, the module
+  may return a boolean-true 'scheduled' and no 'logid'. This signifies that the
+  deletion will be processed via the job queue.
+* (T64103) Dropped columns category.cat_hidden, site_stats.ss_admins, and
+  recentchanges.rc_cur_time from the PostgreSQL schema.
+
+=== Changes since MediaWiki 1.32.0-rc.0 ===
+* (T209885) Prevent populateSearchIndex.php from breaking once actor migration
+  has been started.
+* (T210998) Properly set $wgLanguageCode in the generated LocalSettings.php
+  if --lang is used with the command-line installer (install.php).
+
+=== Configuration changes in 1.32 ===
+
+==== New configuration ====
+* $wgJpegQuality – The quality of JPEG thumbnails is now configurable through
+  this setting. The default is 80, which matches the quality of JPEG thumbnails
+  previously generated by ImageMagick. The quality of JPEG thumbnails generated
+  by GD was previously 95, but now uses the $wgJpegQuality setting as well.
+* $wgCookieSetOnIpBlock - This determines whether to set a cookie when an IP
+  user is blocked. Doing so means that a blocked user, even after moving to a
+  new IP address, will still be blocked.
+* $wgRawHtmlMessages – This new configuration setting is added for listing
+  messages which are displayed as raw HTML.
+* $wgCSPHeader and $wgCSPReportOnlyHeader – You can now define a
+  "Content Security Policy" for your wiki. This adds a defense-in-depth feature
+  to stop an attacker who has found a bug in the parser allowing them to insert
+  malicious attributes. Disabled by default. (T135963)
+* $wgGroupPermissions – A new user group, 'interface-admin', is added for
+  controlling access to sitewide CSS/JS (and editing other users' CSS/JS). No
+  other group has 'editsitecss', 'editusercss', 'editsitejs' or 'edituserjs'
+  by default.
+* $wgGrantPermissions – A new grant group, 'editsiteconfig', is added for
+  granting the above rights.
+* $wgDBDefaultGroup – A default database group for use by maintenance scripts.
+* $wgResourceLoaderEnableJSProfiler – This new configuration setting lets you
+  enable client-side profiling of JavaScript modules; it is off by default.
+* (T193868) $wgChangeTagsSchemaMigrationStage — This temporary configuration
+  setting allows sysadmins to gradually migrate the database table schema for
+  how change tags are stored.
+* (T199334) $wgTagStatisticsNewTable — This temporary configuration setting
+  allows sysadmins to enable the caching of Special:Tags via the new
+  change_tag_def table.
+
+==== Changed configuration ====
+* $wgUseAjax – This setting, deprecated in 1.31, is now ignored.
+* $wgDefaultUserOptions – The default watchlist view time (watchlistdays) has
+  been increased from 3 to 7 days. (T194414)
+* $wgGroupPermissions – The right to edit sitewide Javascript
+  (e.g. MediaWiki:Common.js), CSS or JSON was separated from 'editinterface'
+  and is available under 'editsitejs'/'editsitecss'/'editsitejson'. Having
+  'editinterface' is still necessary to edit such pages.
+* $wgMultiContentRevisionSchemaMigrationStage now defaults to writing both the
+  old and the new schema, but reading the new schema, so Multi-Content Revisions
+  (MCR) are now functional per default. The new default value of the setting is
+  SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_NEW.
+* $wgActorTableSchemaMigrationStage no longer accepts MIGRATION_WRITE_BOTH or
+  MIGRATION_WRITE_NEW. It instead uses SCHEMA_COMPAT_WRITE_BOTH |
+  SCHEMA_COMPAT_READ_OLD and SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_NEW
+  for intermediate stages of migration.
+* $wgDBTableOptions – The default table options now use the binary charset. The
+  default was already overridden in the installer-generated LocalSettings.php,
+  and so is always set to binary after the installer UI option was removed. The
+  default value is only used when the installer installs an extension.
+* $wgPopularPasswordFile — The location of the default popular passwords file
+  has been moved to be in line with other non-PHP files used by libraries and
+  classes.
+* $wgEnableImageWhitelist is now disabled by default, as it opens up a hole for
+  potential privacy leaks by administrators. You can check
+  "MediaWiki:External image whitelist" on your wiki to see whether the feature
+  was ever used, and whether it needs to be re-enabled.
+
+==== Removed configuration ====
+* $wgEnableAPI and $wgEnableWriteAPI – These settings, deprecated in 1.31,
+  have been removed. (T115414)
+* $wgSiteSupportPage – This setting, unused since 1.5, was removed.
+* $wgBrowserBlacklist – This setting, deprecated in 1.30, was removed.
+* $wgExperimentalHtmlIds – This setting, deprecated since 1.30, was removed.
+  The 'html5-legacy' value for $wgFragmentMode is no longer accepted.
+* $wgPasswordSenderName - This setting, ignored since 1.23 by MediaWiki and
+  most extensions, is no longer set. Instead, you can modify the system
+  message `emailsender`.
+* $wgTidyConfig – The experimental Html5Internal and Html5Depurate tidy drivers
+  were removed. RemexHtml, which is the default, should be used instead.
+* (T181318) The $wgStyleVersion setting and its appendage to various script and
+  style URLs in OutputPage, deprecated in 1.31, was removed.
+* (T140807) The wgResourceLoaderLESSImportPaths configuration option was removed
+  from ResourceLoader. Instead, use `@import` statements in LESS to import
+  files directly from nearby directories within the same project.
+* (T140804) The wgResourceLoaderLESSVars configuration option, deprecated
+  since 1.30, was removed. Instead, to expose variables from PHP to LESS, use
+  the ResourceLoaderModule::getLessVars() method.
+* $wgResourceLoaderValidateStaticJS – This setting, unused since MediaWiki 1.18,
+  was removed.
+* Two temporary variables for deploying the feature of filters on change lists,
+  $wgStructuredChangeFiltersShowPreference introduced in MediaWiki 1.30 and
+  $wgStructuredChangeFiltersOnWatchlist in 1.31, were removed.
+
+=== New features in 1.32 ===
+* (T112474) Generalized the ResourceLoader mechanism for overriding modules
+  using a particular page during edit previews.
+* (T12331) You can now log page creation events by setting $wgPageCreationLog
+  to true.
+* Added 'ApiParseMakeOutputPage' hook.
+* (T174313) Added checkbox on Special:ListUsers to display only users in
+  temporary user groups.
+* (T152462) A cookie can now be set when an IP user is blocked to track that
+  user if they move to a new IP address. This is disabled by default.
+* (T194950) Added 'ApiMaxLagInfo' hook.
+* SpecialPage::checkLoginSecurityLevel() will now preserve POST data when
+  reauthenticating.
+* FormSpecialPage::execute() will now call checkLoginSecurityLevel() if
+  getLoginSecurityLevel() returns non-false.
+* The 'ImageBeforeProduceHTML' hook is now passed three new parameters, $parser,
+  &$query and &$widthOption, allowing extensions even finer control over the
+  resulting HTML code.
+* Added new 'ArticleShowPatrolFooter' hook, which allows extensions to determine
+  if the [mark as patrolled] link should be shown at the footer of patrollable
+  pages.
+* The array of hidden options ($opts) passed to the 'SpecialSearchPowerBox' hook
+  is now passed by reference, allowing extensions to modify or even unset it.
+* Added new 'OutputPageAfterGetHeadLinksArray' hook, allowing extensions to
+  modify the return value of OutputPage#getHeadLinksArray in order to add,
+  remove or otherwise alter the elements to be output in the page <head>.
+* (T28934) The 'HistoryPageToolLinks' hook allows extensions to append
+  additional links to the subtitle of a history page.
+* The 'GetLinkColours' hook now receives an additional $title parameter,
+  the Title object of the page being parsed, on which the links will be shown.
+* (T194731) DifferenceEngine supports multiple slots. Added SlotDiffRenderer to
+  render diffs between two Content objects, and DifferenceEngine::setRevisions()
+  to render diffs between two custom (potentially multi-content) revisions.
+  Added GetSlotDiffRenderer hook which works like GetDifferenceEngine for slots.
+* Added a temporary action=mcrundo to the web UI, as the normal undo logic
+  can't yet handle MCR and deadlines are forcing is to put off fixing that.
+  This action should be considered deprecated and should not be used directly.
+* Extensions overriding ContentHandler::getUndoContent() will need to be
+  updated for the changed method signature.
+* Added a new hook, 'UserGetRightsRemove', which can be used to remove rights
+  from user. Unlike the 'UserGetRights' it will ensure that removed rights
+  will not be reinserted.
+* (T197535) Extensions can now specify PHP versions and PHP extensions they
+  depend on.
+
+=== External library changes in 1.32 ===
+
+==== New external libraries ====
+* Added pear/Net_SMTP v1.8.0.
+* Added wikimedia/xmp-reader v0.6.0.
+
+* Added cache/integration-tests v0.16.0 (dev-only).
+* Added giorgiosironi/eris v0.10.0 (dev-only).
+* Added seld/jsonlint v1.7.1 (dev-only).
+
+* Added EasyDeflate (unversioned).
+
+==== Changed external libraries ====
+* Updated OOUI from v0.26.3 to v0.29.2.
+* Updated wikimedia/base-convert from v1.0.1 to v2.0.0.
+* Updated wikimedia/remex-html from v1.0.3 to v2.0.1.
+* Updated wikimedia/scoped-callback from v1.0.0 to v2.0.0.
+** ScopedCallback objects can no longer be serialized.
+* Updated wikimedia/timestamp from v1.0.0 to v2.2.0.
+* Updated wikimedia/wrappedstring from v2.3.0 to v3.0.1.
+* oyejorge/less.php replaced with our fork wikimedia/less.php
+* Updated wikimedia/ip-set from v1.2.0 to v1.3.0.
+
+* Updated composer/spdx-licenses from v1.3.0 to v1.4.0 (dev-only).
+* Updated mediawiki/mediawiki-codesniffer from v18.0.0 to v22.0.0 (dev-only).
+* Updated psy/psysh from v0.8.11 to v0.9.6 (dev-only).
+
+* Updated CLDRPluralRuleParser from v0.1.0 to v1.3.2-pre.
+* Updated jquery from v3.2.1 to v3.3.1.
+* Updated jquery.client from v2.0.0 to v2.0.1.
+* Updated jquery.i18n from v1.0.4 to v1.0.5.
+* Updated mustache.js from v0.8.2-d9aa703 to v1.0.0.
+* Updated OOjs from v2.2.0 to v2.2.2.
+* Updated qunitjs from v2.4.0 to v2.6.2.
+* Updated sinonjs from v1.17.3 to v1.17.7.
+
+==== Removed external libraries ====
+* pear/mail_mime-decode was removed.
+
+=== Bug fixes in 1.32 ===
+* SpecialPage::execute() will now only call checkLoginSecurityLevel() if
+  getLoginSecurityLevel() returns non-false.
+* (T43720, T46197) Improved page display title handling for category pages
+* (T65080) Fixed resetting options of some types via API action=options.
+
+=== Action API changes in 1.32 ===
+* Added templated parameters.
+  * A module can define a templated parameter like "{fruit}-quantity", where
+    the actual parameters recognized correspond to the values of a multi-valued
+    parameter. Then clients can make requests like
+    "fruits=apples|bananas&apples-quantity=1&bananas-quantity=5".
+  * action=paraminfo will return templated parameter definitions separately
+    from normal parameters. All parameter definitions now include an "index"
+    key to allow clients to maintain parameter ordering when merging normal and
+    templated parameters.
+* It is now an error to submit too many values for a multi-valued parameter.
+  This has generated a warning since MediaWiki 1.14.
+* Assertion failures from the 'assert' and 'assertuser' parameters will no
+  longer use the action module's custom response format, for the few modules
+  that use custom formatters that handle errors.
+* (T198935) User list preferences such as `email-blacklist` and similar
+  extension preferences are no longer represented as arrays when returned by
+  action=query&meta=userinfo&uiprop=options.
+* 'missingparam' errors will now use the prefixed parameter name in the code
+  and error text, e.g. "noxxfoo" and "The 'xxfoo' parameter must be set" rather
+  than "nofoo" and "The 'foo' parameter must be set".
+* action=query&prop=revisions now takes a 'rvslots' parameter to indicate the
+  multi-content revision slots for which content should be returned. It also
+  has a new rvprop, 'roles', to indicate which roles have slots. A deprecation
+  warning will be issued if rvprop=content or rvprop=contentmodel are used
+  without rvslots.
+* The rvcontentformat parameter to action=query&prop=revisions has been
+  deprecated. Clients should be prepared to deal with the default format for
+  relevant models.
+* Use of the deprecated parameters rvexpandtemplates, rvgeneratexml, rvparse,
+  rvdiffto, rvdifftotext, rvdifftotextpst, rvcontentformat, or the deprecated
+  rvprop=parsetree is forbidden with the new 'rvslots' parameter.
+* action=query&prop=deletedrevisions, action=query&list=allrevisions, and
+  action=query&list=alldeletedrevisions are changed similarly to
+  &prop=revisions (see the three previous items).
+* (T174032) action=compare now supports multi-content revisions.
+  * It has a 'slots' parameter to select diffing of individual slots. The
+    default behavior is to return one combined diff.
+  * The 'fromtext', 'fromsection', 'fromcontentmodel', 'fromcontentformat',
+    'totext', 'tosection', 'tocontentmodel', and 'tocontentformat' parameters
+    are deprecated. Specify the new 'fromslots' and 'toslots' to identify which
+    slots have text supplied and the corresponding templated parameters for
+    each slot.
+  * The behavior of 'fromsection' and 'tosection' of extracting one section's
+    content is not being preserved. 'fromsection-{slot}' and 'tosection-{slot}'
+    instead expand the given text as if for a section edit. This effectively
+    declines T183823 in favor of T185723.
+* (T198214) The 'disabletidy' parameter to action=parse has been
+  deprecated; untidy output will not be supported by future wikitext
+  parsers.
+* Added intestactionsdetail to action=query&prop=info to allow retrieving the
+  reasons an action is not allowed.
+* Deprecated action=query&prop=info inprop=readable in favor of
+  intestactions=read.
+* (T212356) When using action=delete on pages with many revisions, the module
+  may return a boolean-true 'scheduled' and no 'logid'. This signifies that the
+  deletion will be processed via the job queue.
+
+=== Action API internal changes in 1.32 ===
+* Added 'ApiParseMakeOutputPage' hook.
+* Parameter names may no longer contain '{' or '}', as these are now used for
+  templated parameters.
+* (T194950) Added 'ApiMaxLagInfo' hook.
+* The following methods now take a RevisionRecord rather than a Revision. No
+  external callers are known.
+  * ApiFeedContributions::feedItemAuthor()
+  * ApiFeedContributions::feedItemDesc()
+  * ApiQueryRevisionsBase::extractRevisionInfo()
+* The following deprecated methods have been removed:
+  * ApiBase::profileIn() (deprecated in 1.25)
+  * ApiBase::profileOut() (deprecated in 1.25)
+  * ApiBase::safeProfileOut() (deprecated in 1.25)
+  * ApiBase::profileDBIn() (deprecated in 1.25)
+  * ApiBase::profileDBOut() (deprecated in 1.25)
+  * ApiBase::dieUsage() (deprecated in 1.29)
+  * ApiBase::dieUsageMsg() (deprecated in 1.29)
+  * ApiBase::dieUsageMsgOrDebug() (deprecated in 1.29)
+  * ApiBase::getErrorFromStatus() (deprecated in 1.29)
+  * ApiBase::parseMsg() (deprecated in 1.29)
+  * ApiBase::setWarning() (deprecated in 1.29)
+  * ApiPageSet::getInvalidTitles() (deprecated in 1.26)
+  * ApiQueryLogEvents::addLogParams() (deprecated in 1.25)
+  * ApiUsageException::getCodeString() (deprecated in 1.29)
+  * ApiUsageException::getMessageArray() (deprecated in 1.29)
+* Class UsageException, deprecated in 1.29, has been removed.
+* ApiErrorFormatter: Added getFormat() and newWithFormat(). In particular, you
+  can now easily test $formatter->getFormat() === 'bc', and then call
+  $formatter->newWithFormat( 'plaintext' ) to get a non-BC formatter.
+
+=== Languages updated in 1.32 ===
+MediaWiki supports over 350 languages. Many localisations are updated regularly.
+Below only new and removed languages are listed, as well as changes to languages
+because of Phabricator reports.
+
+* (T193566) Added language support for Ambonese Malay (abs).
+* (T194047) Added language support for Shawiya, Latin script (shy-latn).
+* (T195940) Added language support for Batak Mandailing (btm).
+* (T137491) Added language support for Standard Moroccan Amazigh (zgh).
+* (T198132) Added language support for Manipuri (mni).
+* (T201276) Added language support for Western Armenian (hyw).
+* (T201583) Added language support for Mon (mnw).
+
+=== Breaking changes in 1.32 ===
+* $wgRequestTime, deprecated in 1.25, was removed. Use
+  $_SERVER['REQUEST_TIME_FLOAT'] or WebRequest::getElapsedTime() instead.
+* The MediaWikiI18N class, deprecated in 1.31, was removed.
+* QuickTemplate::setTranslator(), deprecated in 1.31, was removed. Use
+  Skin::msg() instead.
+* wfInitShellLocale(), deprecated in 1.30, was removed.
+* wfShellExecDisabled(), deprecated in 1.30, was removed.
+* The type string for the parameter $lang of DateFormatter::getInstance,
+  deprecated in 1.31, was removed.
+* The EDIT_TOKEN_SUFFIX constant deprecated in 1.27, was removed. Use
+  MediaWiki\Session\Token::SUFFIX instead.
+* EditPage::isOouiEnabled() deprecated in 1.30, was removed.
+* mw.util.wikiGetlink(), deprecated in 1.23, was removed. Use mw.util.getUrl()
+  instead.
+* (T61113) The following methods and constants from the Revision class, which
+  were deprecated in 1.25, have now been removed:
+  * Revision::getRawUser()
+  * Revision::getRawUserText()
+  * Revision::getRawComment()
+* window.gM() from mediawiki.jqueryMsg, deprecated in 1.23, was removed. Use
+  mw.msg() or mw.message() instead.
+* mw.util.escapeId(), deprecated in 1.30, was removed. Use
+  mw.util.escapeIdForAttribute or mw.util.escapeIdForLink instead.
+* mw.util.updateTooltipAccessKeys(), deprecated in 1.24, was removed. Use
+  jquery.accessKeyLabel instead.
+* The SqlDataUpdate class, deprecated in 1.28, has been removed.
+* The Html5Internal and Html5Depurate tidy driver classes were removed, along
+  with the Balancer tidy implementation. Both implementations were experimental,
+  and were replaced by RemexHtml.
+* (T179624) Job::insert() and ::batchInsert(), deprecated in 1.21, were both
+  removed. Use JobQueueGroup::singleton()->push() instead.
+* The jquery.footHovzer module, for mediawiki.debug, was removed.
+* The es5-shim module, empty and deprecated since 1.29, was removed.
+* the dom-level2-shim module, empty and deprecated since 1.29, was removed.
+* the json module, empty and deprecated since 1.29, was removed.
+* The mediawiki.widgets.visibleByteLimit module alias, deprecated in 1.32, was
+  removed. Use mediawiki.widgets.visibleLengthLimit instead.
+* The jquery.farbtastic module, unused since 1.18, was removed.
+* The 'jquery.expandableField' module, unused since 1.22, was removed.
+* The hooks 'PreferencesFormPreSave' and 'PreferencesGetLegend' may provide
+  any HTMLForm object rather than PreferencesForm.
+* The non namespaced TimestampException class, deprecated in 1.29, was removed.
+  Use Wikimedia\Timestamp\TimestampException instead.
+* The global functions codepointToUtf8, hexSequenceToUtf8, utf8ToHexSequence,
+  utf8ToCodepoint, and escapeSingleString (deprecated in 1.25) were removed.
+  The UtfNormal\Utils class from the utfnormal library should be used instead.
+* The deprecated UTF8_ and UNICODE_ constants were removed. The class constants
+  from the UtfNormal\Constants class from the utfnormal library should be used
+* The protected methods PHPSessionHandler::returnSuccess() and returnFailure(),
+  only needed for PHP5 compatibility, have been removed. It now uses the boolean
+  values `true` and `false` respectively.
+* The $parserMemc global and wfGetParserCacheStorage(), deprecated since 1.30,
+  were removed. Use the ParserCache class instead.
+* ScopedCallback (deprecated in 1.28) was removed. Use Wikimedia\ScopedCallback
+  instead.
+* Support for ResourceLoaderModule::getModifiedTime() and getModifiedHash(),
+  deprecated since 1.26, was removed. Use getDefinitionSummary() instead.
+* (T195256) Skins are recommended not to rely on JavaScript for the "mw-jump"
+  and "jump-to-nav" accessibility links. To this end, the "jquery.mw-jump"
+  is no longer loaded by default. The Vector and MonoBook skins have made a
+  minor change to implement the toggle feature with CSS instead. To restore
+  prior functionality, either explicitly load "jquery.mw-jump" in your skin
+  or refer to T195256 for details on how to make the same change.
+* Hook 'EditPageBeforeEditChecks' was removed;
+  use 'EditPageGetCheckboxesDefinition' instead.
+* Linker::getLinkColour() and DummyLinker::getLinkColour(), deprecated since
+  1.28, were removed. LinkRenderer::getLinkClasses() should be used instead.
+* Wikimedia\Rdbms\LoadBalancer::getLaggedSlaveMode(), deprecated in 1.28, has
+  been removed. Use Wikimedia\Rdbms\LoadBalancer::getLaggedReplicaMode()
+  instead.
+* mw.widgets.CategoryMultiselectWidget now uses TagMultiselectWidget instead of
+  CapsuleMultiselectWidget. The following methods may no longer be used:
+  * setItemsFromData: Use setValue instead
+  * getItemsData: Use getItems instead and get the data property
+* Two OutputPage methods, addMetadataLink() and getMetadataAttribute(), were
+  removed.  Use addLink() instead.
+* Another two OutputPage methods, setPageTitleActionText() and
+  getPageTitleActionText(), were removed.  They did nothing since 1.15 (almost
+  ten years).  Use setHTMLTitle() directly.
+* The return value of OutputPage::adaptCdnTTL() has been removed. The
+  value returned was misleading and probably not what any caller would
+  have wanted.
+* All MagicWord static member variables have been removed.  Use appropriate
+  hooks or MagicWordFactory methods instead.
+* MagicWord::clearCache() has been removed.  Instead, create a new
+  MagicWordFactory, such as by calling
+  resetServiceForTesting( 'MagicWordFactory' ) on a MediaWikiServices.
+* mw.util.init() has been removed. This function is not needed anymore and was
+  a no-op function since 1.30.
+* SpecialPageFactory::resetList() is a no-op.  Call overrideMwServices()
+  instead.
+* MediaWiki no longer supports a StartProfiler.php file. Instead, you can set
+  $wgProfiler and $wgEnableProfileInfo.
+* The mw.loader.addSource() is now considered a private method, and no longer
+  supports the `id, url` signature. Use the `Object` parameter instead.
+* The backwards-compatibility code in HTMLForm to add a drop-down control to an
+  option that is not set to be a drop-down if the "mw-chosen" class is present,
+  is now removed.
+* Several collations were removed. They were workarounds for bugs in the ICU
+  library and they are no longer needed (as of ICU 57.1):
+  * 'uppercase-se' (NorthernSamiUppercaseCollation) - use 'uca-se' instead
+  * 'xx-uca-et' (CollationEt) - use 'uca-et' instead
+  * 'xx-uca-fa' (CollationFa) - use 'uca-fa' instead
+* LanguageCode::bcp47() now always returns a valid BCP 47 code.  This means
+  that some MediaWiki-specific language codes, such as `simple`, are mapped
+  into valid BCP 47 codes (eg `en-simple`).
+* The hooks 'SpecialRecentChangesFilters' & 'SpecialWatchlistFilters' deprecated
+  in 1.23 were removed. Instead, use 'ChangesListSpecialPageStructuredFilters'.
+  The ChangesListSpecialPage code for these legacy hooks, and their use in
+  SpecialRecentchanges.php and SpecialWatchlist, was also removed:
+  * ChangesListSpecialPage->getCustomFilters()
+  * ChangesListSpecialPage->getFilterGroupDefinitionFromLegacyCustomFilters()
+  * ChangesListSpecialPage::customFilters
+* The global function wfUseMW, deprecated since 1.26, has now been removed. Use
+  the "requires" property of static extension registration instead.
+* $wgSpecialPages no longer accepts array syntax, deprecated since 1.18.
+* The MailAddress constructor can no longer be called with a User object,
+  behaviour which has been deprecated since 1.24.
+* LBFactory, deprecated since 1.28, has been removed. Instead, use
+  Wikimedia\Rdbms\LBFactory.
+* The MimeMagic class, deprecated since 1.28 has been removed. Get a
+  MimeAnalyzer instance from MediaWikiServices instead.
+* The '--tidy' option to maintenance/parse.php has been removed.  Tidying
+  the output is now the default.  Use '--no-tidy' to bypass the tidy
+  phase.
+* The global function wfErrorLog, deprecated since 1.25, has now been removed.
+  Use MWLoggerLegacyLogger::emit or UDPTransport.
+* The hooks 'SpecialRecentChangesQuery' & 'SpecialWatchlistQuery', deprecated in
+  1.23, were removed. Instead, use ChangesListSpecialPageStructuredFilters or
+  ChangesListSpecialPageQuery.
+* The global function wfUsePHP, deprecated since 1.30, has now been removed. To
+  assert a newer version of PHP than MediaWiki does, use extension registration.
+* The hook 'ChangesListSpecialPageFilters', deprecated in 1.29, has now been
+  removed. Use the 'ChangesListSpecialPageStructuredFilters' hook instead.
+* DeferredUpdates::setImmediateMode(), deprecated since 1.29, has been removed.
+* File / MediaHandler::getStreamHeaders(), deprecated since 1.30, was removed.
+* The hook 'DoEditSectionLink', deprecated since 1.25, has been removed. Use
+  the hook 'SkinEditSectionLinks' instead.
+* The hook 'UserGetImplicitGroups', deprecated since 1.25, has been removed.
+* The global function wfRunHooks, deprecated since 1.25, has now been removed.
+  Use Hooks::run().
+* The hook 'UnknownAction', deprecated since 1.19, has now been removed.
+* The hook 'ParserLimitReport', deprecated since 1.22, has been removed. Use
+  the hooks 'ParserLimitReportPrepare' and 'ParserLimitReportFormat' instead.
+* The following deprecated API methods have been removed:
+  * ApiBase::profileIn() (deprecated in 1.25)
+  * ApiBase::profileOut() (deprecated in 1.25)
+  * ApiBase::safeProfileOut() (deprecated in 1.25)
+  * ApiBase::profileDBIn() (deprecated in 1.25)
+  * ApiBase::profileDBOut() (deprecated in 1.25)
+  * ApiBase::dieUsage() (deprecated in 1.29)
+  * ApiBase::dieUsageMsg() (deprecated in 1.29)
+  * ApiBase::dieUsageMsgOrDebug() (deprecated in 1.29)
+  * ApiBase::getErrorFromStatus() (deprecated in 1.29)
+  * ApiBase::parseMsg() (deprecated in 1.29)
+  * ApiBase::setWarning() (deprecated in 1.29)
+  * ApiPageSet::getInvalidTitles() (deprecated in 1.26)
+  * ApiQueryLogEvents::addLogParams() (deprecated in 1.25)
+  * ApiUsageException::getCodeString() (deprecated in 1.29)
+  * ApiUsageException::getMessageArray() (deprecated in 1.29)
+* Class UsageException, deprecated in 1.29, has been removed.
+* MediaWiki no longer has a 'JavaScript-powered' wikitext toolbar built in. The
+  old "bulletin board style toolbar", known as "the 2006 wikitext editor", has
+  been removed, and instead sysadmins will be required to choose one (or more)
+  of the several extensions available for this purpose if they need the
+  functionality. The MediaWiki "tarball" releases have included the replacement
+  extension for this, the WikiEditor extension aka "the 2010 wikitext editor",
+  for many years now. As part of this, several parts of MediaWiki have been
+  removed or simplified:
+  * The user option 'showtoolbar' (shown as "Show edit toolbar") is no longer
+    available; if an extension adds a toolbar via the EditPageBeforeEditToolbar
+    hook, it will be shown; extensions should provide a specific user preference
+    to disable themselves as needed.
+  * The public methods Language::getImageFile() and ::getImageFiles(), and the
+    related specification of $imageFiles within individual languages' code file,
+    as well as the referenced static media assets, all of which were only used
+    inside MediaWiki itself for providing the icons for the old toolbar, have
+    been removed without explicit deprecation.
+  * The internal ResourceLoader module "mediawiki.toolbar", which is unused
+    except by MediaWiki itself and back-compatibility code, has been removed.
+  * The internal ResourceLoaderEditToolbarModule class has been removed.
+
+=== Deprecations in 1.32 ===
+* HTMLForm::setSubmitProgressive() is deprecated. No need to call it. Submit
+  button is already marked as progressive.
+* Skin::setupSkinUserCss() is deprecated. Adding of modules to load
+  has been centralised to Skin::getDefaultModules(), which is now capable
+  of queueing style modules as well.
+* OutputPage::addModuleScripts() and ParserOutput::addModuleScripts are
+  deprecated. Use addModules() instead.
+* Overriding SearchEngine::{searchText,searchTitle,searchArchiveTitle}
+  in extending classes is deprecated.  Extend related doSearch* methods
+  instead.
+* The following 'mediawiki.api' plugin modules were merged into mediawiki.api
+  and deprecated: mediawiki.api.category, mediawiki.api.edit,
+  mediawiki.api.login, mediawiki.api.options, mediawiki.api.parse,
+  mediawiki.api.upload, mediawiki.api.user, mediawiki.api.watch,
+  mediawiki.api.messages, and mediawiki.api.rollback.
+* ApiBase::truncateArray() is deprecated. No replacement, as nothing is known
+  to use it.
+* WatchAction::getUnwatchToken is deprecated. Use WatchAction::getWatchToken
+  with the 'unwatch' action parameter instead.
+* IcuCollation::getICUVersion() is deprecated, as you can just use the PHP
+  constant INTL_ICU_VERSION directly in all versions that MediaWiki supports.
+* Parser::fetchFile() is deprecated. Use ::fetchFileAndTitle() instead.
+* The ApiQueryContributions class has been renamed to ApiQueryUserContribs.
+* The XMPInfo, XMPReader, and XMPValidate classes have been deprecated in favor
+  of the namespaced classes provided by the wikimedia/xmp-reader library.
+* SearchResultSet::{next,rewind} are deprecated. Calling code should
+  use foreach on the SearchResultSet, or the extractResults method. Extending
+  code should override extractResults.
+* Instantiating SearchResultSet directly is deprecated. SearchEngine
+  implementations must subclass SearchResultSet for their purposes.
+* SearchResult::setExtensionData argument has been changed from accepting an
+  array to accepting a Closure that returns the array when called.
+* Class CryptRand, everything in MWCryptRand except generateHex() and function
+  MediaWikiServices::getCryptRand() are deprecated, use random_bytes() to
+  generate cryptographically secure random byte sequences.
+* Parser::getConverterLanguage() is deprecated.  Use ::getTargetLanguage()
+  instead.
+* Language::markNoConversion() is deprecated.  It confused readers because
+  it had unexpected behavior (only marking text if it looked like a URL)
+  and was only used in a single place in the code.  Use
+  LanguageConverter::markNoConversion() instead.
+* (T197492) Language::truncate() was soft deprecated in 1.31 and is
+  hard deprecated in this release.  It has been split into two similar
+  methods, Language::truncateForVisual() and Language::truncateForDatabase(),
+  which measure length in characters and bytes, respectively.  Use
+  Language::truncateForVisual() when possible to provide equity to users
+  of multibyte scripts.
+* (T176526) EditPage::getContextTitle() falling back to $wgTitle when the
+  context title is unset is now deprecated; anything creating an EditPage
+  instance should set the context title via ::setContextTitle().
+* The 'jquery.hidpi' module (polyfill for IMG srcset) is deprecated.
+* ResourceLoaderStartUpModule::getStartupModules() and ::getLegacyModules()
+  are deprecated. These concepts are obsolete and have no replacement.
+* String type for $lang of DifferenceEngine::setTextLanguage is deprecated.
+* The following methods of OutputPage are now deprecated in favour
+  of using showFatalError directly: OutputPage::showFileDeleteError()
+  OutputPage::showFileNotFoundError(), OutputPage::showFileRenameError()
+  OutputPage::showFileCopyError() and OutputPage::showUnexpectedValueError().
+* The Replacer, DoubleReplacer, HashtableReplacer, and RegexlikeReplacer
+  classes are now deprecated. Use a Closure instead.
+* (T194263) ContentHandler::makeParserOptions() is deprecated. Use
+  WikiPage::makeParserOptions() or ParserOptions::newCanonical() instead.
+* (T100681) Use of the Parsoid v1 API with the VirtualRESTService, deprecated in
+  MediaWiki 1.26,  is now hard-deprecated. All known clients were converted to
+  the Parsoid v3 API in May 2015.
+* $input is deprecated in hook 'LogEventsListGetExtraInputs'. Use
+  $formDescriptor instead.
+* SearchEngine::transformSearchTerm( $term ) should no longer be called prior
+  to running searchText. This method was mainly implemented to support the
+  'prefix' URI param in SpecialSearch, but there are no reasons to expose this
+  logic as it should be handled internally by SearchEngine implementations
+  supporting this feature. SearchEngine implementations should no longer
+  override this methods.
+* SearchEngine::replacePrefixes( $query ) should no longer be called prior
+  to running searchText/searchTitle.
+* (T199657) Messages for $wgFilterLogTypes labels should be no longer be in the
+  'log-show-hide-[type]' format. Instead use 'logeventslist-[type]-log'.
+* Global functions  wfArrayFilter() and wfArrayFilterByKey() are deprecated.
+  use array_filter() directly.
+* The $wgShowSQLErrors global is deprecated and nonfunctional.
+  Set $wgShowExceptionDetails and/or $wgShowHostnames instead.
+* The $wgShowDBErrorBacktrace global is deprecated and nonfunctional.
+  Set $wgShowExceptionDetails instead.
+* Public access to the DifferenceEngine properties mOldid, mNewid, mOldRev,
+  mNewRev, mOldPage, mNewPage, mOldContent, mNewContent, mRevisionsLoaded,
+  mTextLoaded and mCacheHit is deprecated. Use getOldid() / getNewid() /
+  getOldRevision() / getNewRevision() for the first four (note that the
+  revision ones return a RevisionRecord, not a Revision), do your own lookup
+  for page/content.
+* The $wgExternalDiffEngine value 'wikidiff2' is deprecated. To use wikidiff2
+  just enable the PHP extension, and it will be autodetected.
+* (T194731) DifferenceEngine properties mOldContent and mNewContent and methods
+  setContent(), generateContentDiffBody(), generateTextDiffBody() and textDiff()
+  are deprecated. To interact with a single slot, use a SlotDiffRenderer (and
+  subclass it to customize diff rendering); to diff custom (e.g. unsaved)
+  content, use setRevisions(). Subclassing DifferenceEngine should only be done
+  to customize page-level diff properties (such as the navigation header).
+* The wfUseMW function, soft-deprecated in 1.26, is now hard deprecated.
+* All MagicWord static methods are now deprecated.  Use the MagicWordFactory
+  methods instead.
+* PasswordFactory::init is deprecated. To get a password factory with the
+  standard configuration, use MediaWikiServices::getPasswordFactory.
+* $wgContLang is deprecated, use MediaWikiServices::getContentLanguage()
+  instead.
+* $wgParser is deprecated, use MediaWikiServices::getParser() instead.
+* wfGetMainCache() is deprecated, use ObjectCache::getLocalClusterInstance()
+  instead.
+* wfGetCache() is deprecated, use ObjectCache::getInstance() instead.
+* All SpecialPageFactory static methods are deprecated. Instead, call the
+  methods on a SpecialPageFactory instance, which may be obtained from
+  MediaWikiServices.
+* mw.user.stickyRandomId was renamed to the more explicit
+  mw.user.getPageviewToken to better capture its function.
+* Passing Revision objects to ContentHandler::getUndoContent() is deprecated,
+  Content object should be passed instead.
+* (T197179) Parameters 'notice', 'notice-messages', 'notice-message',
+  previously used by OOUI HTMLForm fields, are now deprecated. Use
+  'help', 'help-message', 'help-messages' instead.
+* (T197179) HTMLFormField::getNotices() is now deprecated.
+* The jquery.localize module is now deprecated. Use jquery.i18n instead.
+* The SecondaryDataUpdates hook was deprecated in favor of RevisionDataUpdates,
+  or overriding ContentHandler::getSecondaryDataUpdates (T194038).
+* The WikiPageDeletionUpdates hook was deprecated in favor of
+  PageDeletionDataUpdates, or overriding ContentHandler::getDeletionDataUpdates
+  (T194038).
+* Content::getSecondaryDataUpdates has been deprecated in favor of
+  ContentHandler::getSecondaryDataUpdates() for overriding by extensions
+  (T194038).
+  Application logic should call WikiPage::doSecondaryDataUpdates() (T194037).
+* Content::getDeletionUpdates has been deprecated in favor of
+  ContentHandler::getDeletionUpdates() for overriding by extensions (T194038).
+  Application logic should call WikiPage::doSecondaryDataUpdates() (T194037).
+* (T198214) Old Tidy-related configuration settings, which were soft-deprecated
+  in MediaWiki 1.26, have now been hard deprecated. This affects $wgUseTidy,
+  $wgTidyBin, $wgTidyConf, $wgTidyOpts, $wgTidyInternal, and $wgDebugTidy. Use
+  $wgTidyConfig instead.
+* All Tidy configurations other than Remex have been hard deprecated;
+  future parsers will not emit compatible output for these configurations.
+  In particular, running MediaWiki with tidy disabled has been deprecated.
+* (T198214) OutputPage::addWikiText(), OutputPage::addWikiTextWithTitle(),
+  and OutputPage::addWikiTextTitle() have been deprecated, since they
+  can result in untidy output.  In addition OutputPage::addWikiTextTidy()
+  and OutputPage::addWikiTextTitleTidy() was deprecated to make naming new
+  methods consistent.  Use OutputPage::addWikiTextAsInterface() or
+  OutputPage::addWikiTextAsContent() instead, which ensures the output is
+  tidy and clarifies whether content-language specific postprocessing should
+  be done on the text.
+* OutputPage::parse() and OutputPage::parseInline() have been deprecated
+  due to untidy output and inconsistent handling of wrapper divs and
+  interface/content language defaults.  Use OutputPage::parseAsContent(),
+  OutputPage::parseAsInterface(), or OutputPage::parseInlineAsInterface()
+  as appropriate.
+* QuickTemplate::msgHtml() and BaseTemplate::msgHtml() have been deprecated
+  as they promote bad practises. I18n messages should always be properly
+  escaped.
+* Skin::getDynamicStylesheetQuery() has been deprecated. It always
+  returns action=raw&ctype=text/css which callers should use directly.
+* Class LegacyFormatter is deprecated.
+* Use of CommentStore::insertWithTempTable() with 'img_description' is
+  deprecated. Use CommentStore::insert() instead.
+* Language::setCode is deprecated as public function. Use Language::factory
+  to create a new Language object with a different language code.
+* Several classes have been moved from the MediaWiki\Storage\ namespace to the
+  MediaWiki\Revision\ namespace. The old class names are aliased for
+  compatibility, but are deprecated. Classes are IncompleteRevisionException,
+  MutableRevisionRecord, MutableRevisionSlots, RevisionAccessException,
+  RevisionArchiveRecord, RevisionFactory, RevisionLookup, RevisionRecord,
+  RevisionSlots, RevisionStore, RevisionStoreRecord, SlotRecord, and
+  SuppressedDataException.
+* When using OOUI HTMLForm containing an 'info' field which uses the 'rawrow'
+  option, it is now deprecated to give its contents (the 'default' option)
+  as a string. They should be given as a OOUI\FieldLayout object instead.
+  Notably, this affects fields defined in the 'GetPreferences' hook, because
+  Special:Preferences uses an OOUI form now. (If possible, don't use 'rawrow'.)
+* In Skin::doEditSectionLink omitting the parameters $tooltip and $lang is
+  deprecated. For the $lang parameter, types other than Language are
+  deprecated.
+* The $wgUseKeyHeader configuration option and the
+  OutputPage::getKeyHeader() method have been deprecated; the relevant
+  draft IETF spec expired without becoming a standard.
+* Deprecated API action=query&prop=info inprop=readable in favor of
+  intestactions=read.
+
+=== Other changes in 1.32 ===
+* (T198811) The following tables have had their UNIQUE indexes turned into
+  proper PRIMARY KEYs for increased maintainability: interwiki, page_props,
+  protected_titles and site_identifiers.
+* OOUI HTMLForm will now display help text inline after the input field,
+  rather than in a popup. Previous behavior can be restored by using
+  `'help-inline' => false`.
+* The archive table's ar_rev_id field is now unique.
+* Special:BotPasswords now requires reauthentication.
+* (T174023) Multi-Content Revision (MCR) capabilities were introduced into the
+  storage layer and have basic support for display. No user interface exists
+  yet for creating or managing content in slots beides the main slot. See
+  <https://www.mediawiki.org/wiki/Multi-Content_Revisions> for more
+  information.
+* The image_comment_temp database table has been removed. Since all access
+  should be mediated by the CommentStore class, this change shouldn't affect
+  external code.
+* (T206147) Database::close() will no longer commit any open transactions.
+* (T64103) Dropped columns category.cat_hidden, site_stats.ss_admins, and
+  recentchanges.rc_cur_time from the PostgreSQL schema.
 
 = MediaWiki 1.31 =
 
@@ -8601,6 +9294,141 @@ Other significant changes to MediaWiki's language support:
 
 == MediaWiki 1.16 ==
 
+== MediaWiki 1.16.5 ==
+=== Changes since 1.16.4 ===
+
+* (bug 28534) Fixed XSS vulnerability for IE 6 clients. This is the third
+  attempt at fixing bug 28235.
+* (bug 28639) Fixed potential privilege escalation when $wgBlockDisablesLogin
+  is enabled.
+
+== MediaWiki 1.16.4 ==
+=== Changes since 1.16.3 ===
+
+* (bug 28507) The change we made in 1.16.3 to fix bug 28235 (XSS for IE 6
+  clients) was not actually sufficient to fix that bug. This release contains
+  a second attempt, hopefully we have fixed it this time.
+
+== MediaWiki 1.16.3 ==
+=== Changes since 1.16.2 ===
+
+* (bug 28449) Fixed permissions checks in Special:Import which allowed users
+  without the 'import' permission to import pages from the configured import
+  sources.
+* (bug 28235) Fixed XSS affecting IE 6 and earlier clients only, due to those
+  browsers looking for a file extension in the query string of the URL, and
+  ignoring the Content-Type header if one is found.
+* (bug 28450) Fixed a CSS validation issue involving escaped comments, which
+  led to XSS for Internet Explorer clients and privacy loss for other clients.
+
+== MediaWiki 1.16.2 ==
+=== Changes since 1.16.1 ===
+
+* (bug 26642) Fixed incorrect translated namespace due to a regression in the
+  language converter.
+* The interface translations were updated.
+* (bug 27093, CVE-2011-0047): Fixed CSS injection vulnerability.
+* (bug 27094) Fixed server-side arbitrary script inclusion vulnerability.
+  Affects Windows servers only. A malicious file with extension ".php" must
+  exist on the server for the exploit to be effective.
+
+== MediaWiki 1.16.1 ==
+=== Changes since 1.16.0 ===
+
+* (bug 24981) Allow extensions to access SpecialUpload variables again
+* (bug 24724) list=allusers was out by 1 (shows total users - 1)
+* (bug 24166) Fixed API error when using rvprop=tags
+* For wikis using French as a content language, Special:Téléchargement works
+  again as an alias for Special:Upload.
+* (bug 25167) Correctly load JS fixes for IE6 (fixing a regression in 1.16.0)
+* (bug 25248) Fixed paraminfo errors in certain API modules.
+* The installer now has improved handling for situations where safe_mode is
+  active or exec() and similar functions are disabled.
+* (bug 19593) Specifying --server in now works for all maintenance scripts.
+* Fixed $wgLicenseTerms register globals.
+* (bug 26561) Fixed clickjacking vulnerabilities by introducing support for
+  X-Frame-Options. The header value can be configured using $wgBreakFrames and
+  $wgEditPageFrameOptions.
+
+== MediaWiki 1.16.0 ==
+=== Changes since 1.16 beta 3 ===
+
+* (bug 23769) Disabled HTML 5 client-side form validation. Was introduced in
+  1.16 beta 1, but is currently poorly supported by browsers.
+* (bug 23175) Re-added window.ta variable for backwards compatibility.
+* (bug 23264) Fixed breakage of various command line scripts due to extra line
+  endings being inserted by Maintenance::output().
+* Fixed HTTP client functionality with safe_mode=On.
+* Fixed parser tests broken in 1.16 beta 3.
+* For Oracle DB backend: fixed parser tests and table prefix feature.
+* (bug 23767) Fixed PHP warning when REQUEST_URI is blank (IIS issue).
+* Fixed plural function for Northern Sami (se)
+* (bug 23597) Fixed conflicts between ID attributes in the Vector skin and
+  parser-generated heading IDs. Renamed head, panel, head-base and page-base.
+* Disabled $wgHitcounterUpdateFreq>1 feature on SQLite, does not work yet.
+* (bug 23465) Don't ignore the predefined destination filename on
+  Special:Upload after following a red link to a file.
+* In SQLite full-text search feature: fixed "move page" feature, was non-
+  functional.
+* (bug 24565) Fixed Cache-Control headers sent from API modules, to protect
+  user privacy in the case where an attacker can access the wiki through the
+  same HTTP proxy as a logged-in user.
+* Fixed an XSS vulnerability in profileinfo.php for installations with
+  $wgEnableProfileInfo = true (false by default)
+* Fixed a case where an X-Vary-Options header was sent despite $wgUseXVO being
+  false. Fixed a minor header parsing issue when $wgUseXVO = true.
+* Fixed a register_globals arbitrary inclusion vulnerability in
+  MediaWikiParserTest.php, introduced in 1.16 beta 1.
+
+=== Changes since 1.16 beta 2 ===
+
+* Fixed bugs in the [[Special:Userlogin]] and [[Special:Emailuser]] handling of
+  invalid usernames.
+* Fixed sorting in [[Special:Allmessages]]
+* (bug 23113) Fixed title in the show/hide links on diff pages
+* (bug 23117) Fixed API rollback, was returning "badtoken" for valid requests
+* (bug 23127) Re-added missing $1 parameter to the uploadtext message
+* Fixed a bug in the Vector skin where personal tools display behind the logo
+* (bug 23139) Fixed a bug in edit conflict resolution, where both textboxes
+  showed the same text.
+* (bug 23115, bug 23124) Fixed various problems with <title> and <h1> elements
+  in page views and previews when the language converter is enabled.
+* (bug 23148) Fixed a local path disclosure vulnerability in ImageMagick image
+  scaling, which was introduced in 1.16 beta 1.
+* Improved error checking on installer.
+* (bug 22970) Fixed a JavaScript error in the upload destination conflict
+  check.
+* (bug 23167) Check the watch checkbox by default if the watchcreations
+  preference is set.
+* (bug 23171) Improve IE6 version check to avoid false positives.
+* (bug 23176) Fixed upload warning override feature "upload new version",
+  broken in 1.16 beta 1.
+* Fixed regression in unwatch links sent out in notification emails. When the
+  mailing job was deferred via the job queue, the title was incorrect.
+* (bug 23534) Fixed SQL query error in API list=allusers.
+* Fixed a bug in uploads for non-JavaScript clients. An empty string was used
+  as the default destination filename, instead of the source filename as
+  expected.
+* (bug 23371) Fixed CSRF vulnerability in "e-mail me my password", "create
+  account" and "create by e-mail" features of [[Special:Userlogin]]
+* (bug 23687) Fixed XSS vulnerability affecting IE clients only, due to a CSS
+  validation issue.
+* Fixed a DoS vulnerability in ImageMagick image scaling. ImageMagick
+  expanded wildcard characters "?" and "*" in image filenames, potentially
+  causing large numbers of images to be scaled in response to a single request.
+  The fix for this involves breaking the scaling of such image filenames until
+  ImageMagick 6.6.1-5 or later is deployed, see bug 23361 for more details.
+* (bug 23608) Fixed invalid HTML in diff pages.
+
+=== Changes since 1.16 beta 1 ===
+
+* Fixed errors in maintenance/patchSql.php
+* (bug 19627) Fix regression from r57867 where HTMLForm would output
+  <element classes="foo bar"> rather than <element class="foo bar">
+* Fixed broken "-r" option to maintenance/lag.php
+* (bug 23076) Fixed login CSRF vulnerability. Logins now require a token to
+  be submitted along with the user name and password.
+
 === Configuration changes in 1.16 ===
 
 * (bug 18222) $wgMinimalPasswordLength default is now 1
@@ -9475,6 +10303,77 @@ changes to languages because of Bugzilla reports.
 
 == MediaWiki 1.15 ==
 
+== MediaWiki 1.15.5 ==
+=== Changes since 1.15.4 ===
+
+* (bug 24565) Fixed Cache-Control headers sent from API modules, to protect
+  user privacy in the case where an attacker can access the wiki through the
+  same HTTP proxy as a logged-in user.
+* Fixed a minor cookie header parsing issue causing incorrect Cache-Control
+  headers to be sent.
+* Fixed an XSS vulnerability in profileinfo.php for installations with
+  $wgEnableProfileInfo = true (false by default)
+* For backwards compatibility with extensions from 1.14.x or before, restored
+  the original function ApiMain::requestWriteMode().
+* In API login "need token" responses, added the cookieprefix and sessionid
+  fields, as in MediaWiki 1.16.x. This is an improvement to the CSRF fix
+  introduced in 1.15.3.
+
+== MediaWiki 1.15.4 ==
+=== Changes since 1.15.3 ===
+
+* (bug 23534) Fixed SQL query error in API list=allusers.
+* (bug 23371) Fixed CSRF vulnerability in "e-mail me my password", "create
+  account" and "create by e-mail" features of [[Special:Userlogin]]
+* (bug 23687) Fixed XSS vulnerability affecting IE clients only, due to a CSS
+  validation issue.
+
+== MediaWiki 1.15.3 ==
+=== Changes since 1.15.2 ===
+
+* (bug 22828) Fixed deletion on SQLite.
+* (bug 23076) Fixed login CSRF vulnerability. Logins now require a token to
+  be submitted along with the user name and password.
+
+== MediaWiki 1.15.2 ==
+=== Changes since 1.15.1 ===
+
+* The installer now includes a check for a data corruption issue with certain
+  versions of libxml2 2.7 and PHP earlier than 5.2.9, and also for a PHP bug
+  present in the official release of PHP 5.3.1.
+* (bug 20239) MediaWiki:Imagemaxsize does not contain anymore a <br /> tag which
+  was displayed to the user
+* (bug 21150) SQLite no longer raise an error when deleting files
+* (bug 20880) Fixed updater failure on SQLite backend
+* upgrade1_5.php now requires to be run --update option to prevent confusion
+* Fixed a CSS validation issue which allowed external images to be included
+  into wikis where that is disallowed by configuration.
+* Fixed a data leakage vulnerability for private wikis using img_auth.php or
+  similar image access authentication schemes. Check user permissions before
+  streaming out scaled images from thumb.php.
+
+== MediaWiki 1.15.1 ==
+=== Changes since 1.15.0 ===
+* Fixed fatal errors for unusual file repository configurations, such as
+  ForeignAPIRepo.
+* Fixed the "change password" link on Special:Preferences to have the correct
+  returnto parameter.
+* (bug 19693) Fixed cross-site scripting vulnerability in Special:Block
+
+== MediaWiki 1.15.0 ==
+=== Changes since 1.15.0rc1 ===
+
+* Removed category redirect feature, implementation was incomplete.
+* (bug 18846) Remove update_password_format(), unnecessary, destroys all
+  passwords if a wiki with $wgPasswordSalt=false is upgraded with the web
+  installer.
+* (bug 19127) Documentation warning for PostgreSQL users who run update.php:
+  use the same user in AdminSettings.php as in LocalSettings.php.
+* Fixed possible web invocation of some maintenance scripts, due to the use of
+  include() instead of require(). A full exploit would require a very strange
+  web server configuration.
+* Localisation updates.
+
 === Configuration changes in 1.15 ===
 
 * Added $wgNewPasswordExpiry, to specify an expiry time (in seconds) to
@@ -9836,6 +10735,27 @@ changes to languages because of Bugzilla reports.
 
 == MediaWiki 1.14 ==
 
+== MediaWiki 1.14.1 ==
+=== Changes since 1.14.0 ===
+
+* (bug 17737) Fixed russian URLs for Special:BookSources
+* (bug 17713) Using links with only an anchor no longer add an dummy entry in
+  the pagelinks table
+* (bug 17897) Fixed string offset error in <pre> tags
+* (bug 17832) Fixed action=delete returning 'unknownerror' instead of
+  'permissiondenied' when the user is blocked
+* Fixed performance regression when accessing deleted (archived) files
+* (bug 19693) Fixed cross-site scripting vulnerability in Special:Block
+
+== MediaWiki 1.14.0 ==
+=== Changes since 1.14.0rc1 ===
+
+* Fixed the performance of the backlinks API module
+* (bug 17420) Send the correct content type from action=raw when the HTML file
+  cache is enabled.
+* (bug 17437) Fixed incorrect link to web-based installer
+* (bug 17527) Fixed missing MySQL-specific options in installer
+
 === Configuration changes in 1.14 ===
 
 * $wgExemptFromUserRobotsControl is an array of namespaces to be exempt from
diff --git a/RELEASE-NOTES-1.32 b/RELEASE-NOTES-1.32
deleted file mode 100644 (file)
index cac65ab..0000000
+++ /dev/null
@@ -1,721 +0,0 @@
-== MediaWiki 1.32 ==
-
-THIS IS NOT A RELEASE YET
-
-MediaWiki 1.32 is an alpha-quality branch and is not recommended for use in
-production.
-
-=== Configuration changes in 1.32 ===
-
-==== New configuration ====
-* $wgJpegQuality – The quality of JPEG thumbnails is now configurable through
-  this setting. The default is 80, which matches the quality of JPEG thumbnails
-  previously generated by ImageMagick. The quality of JPEG thumbnails generated
-  by GD was previously 95, but now uses the $wgJpegQuality setting as well.
-* $wgCookieSetOnIpBlock - This determines whether to set a cookie when an IP
-  user is blocked. Doing so means that a blocked user, even after moving to a
-  new IP address, will still be blocked.
-* $wgRawHtmlMessages – This new configuration setting is added for listing
-  messages which are displayed as raw HTML.
-* $wgCSPHeader and $wgCSPReportOnlyHeader – You can now define a
-  "Content Security Policy" for your wiki. This adds a defense-in-depth feature
-  to stop an attacker who has found a bug in the parser allowing them to insert
-  malicious attributes. Disabled by default. (T135963)
-* $wgGroupPermissions – A new user group, 'interface-admin', is added for
-  controlling access to sitewide CSS/JS (and editing other users' CSS/JS). No
-  other group has 'editsitecss', 'editusercss', 'editsitejs' or 'edituserjs'
-  by default.
-* $wgGrantPermissions – A new grant group, 'editsiteconfig', is added for
-  granting the above rights.
-* $wgDBDefaultGroup – A default database group for use by maintenance scripts.
-* $wgResourceLoaderEnableJSProfiler – This new configuration setting lets you
-  enable client-side profiling of JavaScript modules; it is off by default.
-* (T193868) $wgChangeTagsSchemaMigrationStage — This temporary configuration
-  setting allows sysadmins to gradually migrate the database table schema for
-  how change tags are stored.
-* (T199334) $wgTagStatisticsNewTable — This temporary configuration setting
-  allows sysadmins to enable the caching of Special:Tags via the new
-  change_tag_def table.
-
-==== Changed configuration ====
-* $wgUseAjax – This setting, deprecated in 1.31, is now ignored.
-* $wgDefaultUserOptions – The default watchlist view time (watchlistdays) has
-  been increased from 3 to 7 days. (T194414)
-* $wgGroupPermissions – The right to edit sitewide Javascript
-  (e.g. MediaWiki:Common.js), CSS or JSON was separated from 'editinterface'
-  and is available under 'editsitejs'/'editsitecss'/'editsitejson'. Having
-  'editinterface' is still necessary to edit such pages.
-* $wgMultiContentRevisionSchemaMigrationStage now defaults to writing both the
-  old and the new schema, but reading the new schema, so Multi-Content Revisions
-  (MCR) are now functional per default. The new default value of the setting is
-  SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_NEW.
-* $wgActorTableSchemaMigrationStage no longer accepts MIGRATION_WRITE_BOTH or
-  MIGRATION_WRITE_NEW. It instead uses SCHEMA_COMPAT_WRITE_BOTH |
-  SCHEMA_COMPAT_READ_OLD and SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_NEW
-  for intermediate stages of migration.
-* $wgDBTableOptions – The default table options now use the binary charset. The
-  default was already overridden in the installer-generated LocalSettings.php,
-  and so is always set to binary after the installer UI option was removed. The
-  default value is only used when the installer installs an extension.
-* $wgPopularPasswordFile — The location of the default popular passwords file
-  has been moved to be in line with other non-PHP files used by libraries and
-  classes.
-* $wgEnableImageWhitelist is now disabled by default, as it opens up a hole for
-  potential privacy leaks by administrators. You can check
-  "MediaWiki:External image whitelist" on your wiki to see whether the feature
-  was ever used, and whether it needs to be re-enabled.
-
-==== Removed configuration ====
-* $wgEnableAPI and $wgEnableWriteAPI – These settings, deprecated in 1.31,
-  have been removed. (T115414)
-* $wgSiteSupportPage – This setting, unused since 1.5, was removed.
-* $wgBrowserBlacklist – This setting, deprecated in 1.30, was removed.
-* $wgExperimentalHtmlIds – This setting, deprecated since 1.30, was removed.
-  The 'html5-legacy' value for $wgFragmentMode is no longer accepted.
-* $wgPasswordSenderName - This setting, ignored since 1.23 by MediaWiki and
-  most extensions, is no longer set. Instead, you can modify the system
-  message `emailsender`.
-* $wgTidyConfig – The experimental Html5Internal and Html5Depurate tidy drivers
-  were removed. RemexHtml, which is the default, should be used instead.
-* (T181318) The $wgStyleVersion setting and its appendage to various script and
-  style URLs in OutputPage, deprecated in 1.31, was removed.
-* (T140807) The wgResourceLoaderLESSImportPaths configuration option was removed
-  from ResourceLoader. Instead, use `@import` statements in LESS to import
-  files directly from nearby directories within the same project.
-* (T140804) The wgResourceLoaderLESSVars configuration option, deprecated
-  since 1.30, was removed. Instead, to expose variables from PHP to LESS, use
-  the ResourceLoaderModule::getLessVars() method.
-* $wgResourceLoaderValidateStaticJS – This setting, unused since MediaWiki 1.18,
-  was removed.
-* Two temporary variables for deploying the feature of filters on change lists,
-  $wgStructuredChangeFiltersShowPreference introduced in MediaWiki 1.30 and
-  $wgStructuredChangeFiltersOnWatchlist in 1.31, were removed.
-
-=== New features in 1.32 ===
-* (T112474) Generalized the ResourceLoader mechanism for overriding modules
-  using a particular page during edit previews.
-* (T12331) You can now log page creation events by setting $wgPageCreationLog
-  to true.
-* Added 'ApiParseMakeOutputPage' hook.
-* (T174313) Added checkbox on Special:ListUsers to display only users in
-  temporary user groups.
-* (T152462) A cookie can now be set when an IP user is blocked to track that
-  user if they move to a new IP address. This is disabled by default.
-* (T194950) Added 'ApiMaxLagInfo' hook.
-* SpecialPage::checkLoginSecurityLevel() will now preserve POST data when
-  reauthenticating.
-* FormSpecialPage::execute() will now call checkLoginSecurityLevel() if
-  getLoginSecurityLevel() returns non-false.
-* The 'ImageBeforeProduceHTML' hook is now passed three new parameters, $parser,
-  &$query and &$widthOption, allowing extensions even finer control over the
-  resulting HTML code.
-* Added new 'ArticleShowPatrolFooter' hook, which allows extensions to determine
-  if the [mark as patrolled] link should be shown at the footer of patrollable
-  pages.
-* The array of hidden options ($opts) passed to the 'SpecialSearchPowerBox' hook
-  is now passed by reference, allowing extensions to modify or even unset it.
-* Added new 'OutputPageAfterGetHeadLinksArray' hook, allowing extensions to
-  modify the return value of OutputPage#getHeadLinksArray in order to add,
-  remove or otherwise alter the elements to be output in the page <head>.
-* (T28934) The 'HistoryPageToolLinks' hook allows extensions to append
-  additional links to the subtitle of a history page.
-* The 'GetLinkColours' hook now receives an additional $title parameter,
-  the Title object of the page being parsed, on which the links will be shown.
-* (T194731) DifferenceEngine supports multiple slots. Added SlotDiffRenderer to
-  render diffs between two Content objects, and DifferenceEngine::setRevisions()
-  to render diffs between two custom (potentially multi-content) revisions.
-  Added GetSlotDiffRenderer hook which works like GetDifferenceEngine for slots.
-* Added a temporary action=mcrundo to the web UI, as the normal undo logic
-  can't yet handle MCR and deadlines are forcing is to put off fixing that.
-  This action should be considered deprecated and should not be used directly.
-* Extensions overriding ContentHandler::getUndoContent() will need to be
-  updated for the changed method signature.
-* Added a new hook, 'UserGetRightsRemove', which can be used to remove rights
-  from user. Unlike the 'UserGetRights' it will ensure that removed rights
-  will not be reinserted.
-* (T197535) Extensions can now specify PHP versions and PHP extensions they
-  depend on.
-
-=== External library changes in 1.32 ===
-
-==== New external libraries ====
-* Added pear/Net_SMTP v1.8.0.
-* Added wikimedia/xmp-reader v0.6.0.
-
-* Added cache/integration-tests v0.16.0 (dev-only).
-* Added giorgiosironi/eris v0.10.0 (dev-only).
-* Added seld/jsonlint v1.7.1 (dev-only).
-
-* Added EasyDeflate (unversioned).
-
-==== Changed external libraries ====
-* Updated OOUI from v0.26.3 to v0.29.2.
-* Updated wikimedia/base-convert from v1.0.1 to v2.0.0.
-* Updated wikimedia/remex-html from v1.0.3 to v2.0.1.
-* Updated wikimedia/scoped-callback from v1.0.0 to v2.0.0.
-** ScopedCallback objects can no longer be serialized.
-* Updated wikimedia/timestamp from v1.0.0 to v2.2.0.
-* Updated wikimedia/wrappedstring from v2.3.0 to v3.0.1.
-* oyejorge/less.php replaced with our fork wikimedia/less.php
-
-* Updated composer/spdx-licenses from v1.3.0 to v1.4.0 (dev-only).
-* Updated mediawiki/mediawiki-codesniffer from v18.0.0 to v22.0.0 (dev-only).
-* Updated psy/psysh from v0.8.11 to v0.9.6 (dev-only).
-
-* Updated CLDRPluralRuleParser from v0.1.0 to v1.3.2-pre.
-* Updated jquery from v3.2.1 to v3.3.1.
-* Updated jquery.client from v2.0.0 to v2.0.1.
-* Updated jquery.i18n from v1.0.4 to v1.0.5.
-* Updated mustache.js from v0.8.2-d9aa703 to v1.0.0.
-* Updated OOjs from v2.2.0 to v2.2.2.
-* Updated qunitjs from v2.4.0 to v2.6.2.
-* Updated sinonjs from v1.17.3 to v1.17.7.
-
-==== Removed external libraries ====
-* pear/mail_mime-decode was removed.
-
-=== Bug fixes in 1.32 ===
-* SpecialPage::execute() will now only call checkLoginSecurityLevel() if
-  getLoginSecurityLevel() returns non-false.
-* (T43720, T46197) Improved page display title handling for category pages
-* (T65080) Fixed resetting options of some types via API action=options.
-
-=== Action API changes in 1.32 ===
-* Added templated parameters.
-  * A module can define a templated parameter like "{fruit}-quantity", where
-    the actual parameters recognized correspond to the values of a multi-valued
-    parameter. Then clients can make requests like
-    "fruits=apples|bananas&apples-quantity=1&bananas-quantity=5".
-  * action=paraminfo will return templated parameter definitions separately
-    from normal parameters. All parameter definitions now include an "index"
-    key to allow clients to maintain parameter ordering when merging normal and
-    templated parameters.
-* It is now an error to submit too many values for a multi-valued parameter.
-  This has generated a warning since MediaWiki 1.14.
-* Assertion failures from the 'assert' and 'assertuser' parameters will no
-  longer use the action module's custom response format, for the few modules
-  that use custom formatters that handle errors.
-* (T198935) User list preferences such as `email-blacklist` and similar
-  extension preferences are no longer represented as arrays when returned by
-  action=query&meta=userinfo&uiprop=options.
-* 'missingparam' errors will now use the prefixed parameter name in the code
-  and error text, e.g. "noxxfoo" and "The 'xxfoo' parameter must be set" rather
-  than "nofoo" and "The 'foo' parameter must be set".
-* action=query&prop=revisions now takes a 'rvslots' parameter to indicate the
-  multi-content revision slots for which content should be returned. It also
-  has a new rvprop, 'roles', to indicate which roles have slots. A deprecation
-  warning will be issued if rvprop=content or rvprop=contentmodel are used
-  without rvslots.
-* The rvcontentformat parameter to action=query&prop=revisions has been
-  deprecated. Clients should be prepared to deal with the default format for
-  relevant models.
-* Use of the deprecated parameters rvexpandtemplates, rvgeneratexml, rvparse,
-  rvdiffto, rvdifftotext, rvdifftotextpst, rvcontentformat, or the deprecated
-  rvprop=parsetree is forbidden with the new 'rvslots' parameter.
-* action=query&prop=deletedrevisions, action=query&list=allrevisions, and
-  action=query&list=alldeletedrevisions are changed similarly to
-  &prop=revisions (see the three previous items).
-* (T174032) action=compare now supports multi-content revisions.
-  * It has a 'slots' parameter to select diffing of individual slots. The
-    default behavior is to return one combined diff.
-  * The 'fromtext', 'fromsection', 'fromcontentmodel', 'fromcontentformat',
-    'totext', 'tosection', 'tocontentmodel', and 'tocontentformat' parameters
-    are deprecated. Specify the new 'fromslots' and 'toslots' to identify which
-    slots have text supplied and the corresponding templated parameters for
-    each slot.
-  * The behavior of 'fromsection' and 'tosection' of extracting one section's
-    content is not being preserved. 'fromsection-{slot}' and 'tosection-{slot}'
-    instead expand the given text as if for a section edit. This effectively
-    declines T183823 in favor of T185723.
-* (T198214) The 'disabletidy' parameter to action=parse has been
-  deprecated; untidy output will not be supported by future wikitext
-  parsers.
-* Added intestactionsdetail to action=query&prop=info to allow retrieving the
-  reasons an action is not allowed.
-* Deprecated action=query&prop=info inprop=readable in favor of
-  intestactions=read.
-
-=== Action API internal changes in 1.32 ===
-* Added 'ApiParseMakeOutputPage' hook.
-* Parameter names may no longer contain '{' or '}', as these are now used for
-  templated parameters.
-* (T194950) Added 'ApiMaxLagInfo' hook.
-* The following methods now take a RevisionRecord rather than a Revision. No
-  external callers are known.
-  * ApiFeedContributions::feedItemAuthor()
-  * ApiFeedContributions::feedItemDesc()
-  * ApiQueryRevisionsBase::extractRevisionInfo()
-* The following deprecated methods have been removed:
-  * ApiBase::profileIn() (deprecated in 1.25)
-  * ApiBase::profileOut() (deprecated in 1.25)
-  * ApiBase::safeProfileOut() (deprecated in 1.25)
-  * ApiBase::profileDBIn() (deprecated in 1.25)
-  * ApiBase::profileDBOut() (deprecated in 1.25)
-  * ApiBase::dieUsage() (deprecated in 1.29)
-  * ApiBase::dieUsageMsg() (deprecated in 1.29)
-  * ApiBase::dieUsageMsgOrDebug() (deprecated in 1.29)
-  * ApiBase::getErrorFromStatus() (deprecated in 1.29)
-  * ApiBase::parseMsg() (deprecated in 1.29)
-  * ApiBase::setWarning() (deprecated in 1.29)
-  * ApiPageSet::getInvalidTitles() (deprecated in 1.26)
-  * ApiQueryLogEvents::addLogParams() (deprecated in 1.25)
-  * ApiUsageException::getCodeString() (deprecated in 1.29)
-  * ApiUsageException::getMessageArray() (deprecated in 1.29)
-* Class UsageException, deprecated in 1.29, has been removed.
-* ApiErrorFormatter: Added getFormat() and newWithFormat(). In particular, you
-  can now easily test $formatter->getFormat() === 'bc', and then call
-  $formatter->newWithFormat( 'plaintext' ) to get a non-BC formatter.
-
-=== Languages updated in 1.32 ===
-MediaWiki supports over 350 languages. Many localisations are updated regularly.
-Below only new and removed languages are listed, as well as changes to languages
-because of Phabricator reports.
-
-* (T193566) Added language support for Ambonese Malay (abs).
-* (T194047) Added language support for Shawiya, Latin script (shy-latn).
-* (T195940) Added language support for Batak Mandailing (btm).
-* (T137491) Added language support for Standard Moroccan Amazigh (zgh).
-* (T198132) Added language support for Manipuri (mni).
-* (T201276) Added language support for Western Armenian (hyw).
-* (T201583) Added language support for Mon (mnw).
-
-=== Breaking changes in 1.32 ===
-* $wgRequestTime, deprecated in 1.25, was removed. Use
-  $_SERVER['REQUEST_TIME_FLOAT'] or WebRequest::getElapsedTime() instead.
-* The MediaWikiI18N class, deprecated in 1.31, was removed.
-* QuickTemplate::setTranslator(), deprecated in 1.31, was removed. Use
-  Skin::msg() instead.
-* wfInitShellLocale(), deprecated in 1.30, was removed.
-* wfShellExecDisabled(), deprecated in 1.30, was removed.
-* The type string for the parameter $lang of DateFormatter::getInstance,
-  deprecated in 1.31, was removed.
-* The EDIT_TOKEN_SUFFIX constant deprecated in 1.27, was removed. Use
-  MediaWiki\Session\Token::SUFFIX instead.
-* EditPage::isOouiEnabled() deprecated in 1.30, was removed.
-* mw.util.wikiGetlink(), deprecated in 1.23, was removed. Use mw.util.getUrl()
-  instead.
-* (T61113) The following methods and constants from the Revision class, which
-  were deprecated in 1.25, have now been removed:
-  * Revision::getRawUser()
-  * Revision::getRawUserText()
-  * Revision::getRawComment()
-* window.gM() from mediawiki.jqueryMsg, deprecated in 1.23, was removed. Use
-  mw.msg() or mw.message() instead.
-* mw.util.escapeId(), deprecated in 1.30, was removed. Use
-  mw.util.escapeIdForAttribute or mw.util.escapeIdForLink instead.
-* mw.util.updateTooltipAccessKeys(), deprecated in 1.24, was removed. Use
-  jquery.accessKeyLabel instead.
-* The SqlDataUpdate class, deprecated in 1.28, has been removed.
-* The Html5Internal and Html5Depurate tidy driver classes were removed, along
-  with the Balancer tidy implementation. Both implementations were experimental,
-  and were replaced by RemexHtml.
-* (T179624) Job::insert() and ::batchInsert(), deprecated in 1.21, were both
-  removed. Use JobQueueGroup::singleton()->push() instead.
-* The jquery.footHovzer module, for mediawiki.debug, was removed.
-* The es5-shim module, empty and deprecated since 1.29, was removed.
-* the dom-level2-shim module, empty and deprecated since 1.29, was removed.
-* the json module, empty and deprecated since 1.29, was removed.
-* The mediawiki.widgets.visibleByteLimit module alias, deprecated in 1.32, was
-  removed. Use mediawiki.widgets.visibleLengthLimit instead.
-* The jquery.farbtastic module, unused since 1.18, was removed.
-* The 'jquery.expandableField' module, unused since 1.22, was removed.
-* The hooks 'PreferencesFormPreSave' and 'PreferencesGetLegend' may provide
-  any HTMLForm object rather than PreferencesForm.
-* The non namespaced TimestampException class, deprecated in 1.29, was removed.
-  Use Wikimedia\Timestamp\TimestampException instead.
-* The global functions codepointToUtf8, hexSequenceToUtf8, utf8ToHexSequence,
-  utf8ToCodepoint, and escapeSingleString (deprecated in 1.25) were removed.
-  The UtfNormal\Utils class from the utfnormal library should be used instead.
-* The deprecated UTF8_ and UNICODE_ constants were removed. The class constants
-  from the UtfNormal\Constants class from the utfnormal library should be used
-* The protected methods PHPSessionHandler::returnSuccess() and returnFailure(),
-  only needed for PHP5 compatibility, have been removed. It now uses the boolean
-  values `true` and `false` respectively.
-* The $parserMemc global and wfGetParserCacheStorage(), deprecated since 1.30,
-  were removed. Use the ParserCache class instead.
-* ScopedCallback (deprecated in 1.28) was removed. Use Wikimedia\ScopedCallback
-  instead.
-* Support for ResourceLoaderModule::getModifiedTime() and getModifiedHash(),
-  deprecated since 1.26, was removed. Use getDefinitionSummary() instead.
-* (T195256) Skins are recommended not to rely on JavaScript for the "mw-jump"
-  and "jump-to-nav" accessibility links. To this end, the "jquery.mw-jump"
-  is no longer loaded by default. The Vector and MonoBook skins have made a
-  minor change to implement the toggle feature with CSS instead. To restore
-  prior functionality, either explicitly load "jquery.mw-jump" in your skin
-  or refer to T195256 for details on how to make the same change.
-* Hook 'EditPageBeforeEditChecks' was removed;
-  use 'EditPageGetCheckboxesDefinition' instead.
-* Linker::getLinkColour() and DummyLinker::getLinkColour(), deprecated since
-  1.28, were removed. LinkRenderer::getLinkClasses() should be used instead.
-* Wikimedia\Rdbms\LoadBalancer::getLaggedSlaveMode(), deprecated in 1.28, has
-  been removed. Use Wikimedia\Rdbms\LoadBalancer::getLaggedReplicaMode()
-  instead.
-* mw.widgets.CategoryMultiselectWidget now uses TagMultiselectWidget instead of
-  CapsuleMultiselectWidget. The following methods may no longer be used:
-  * setItemsFromData: Use setValue instead
-  * getItemsData: Use getItems instead and get the data property
-* Two OutputPage methods, addMetadataLink() and getMetadataAttribute(), were
-  removed.  Use addLink() instead.
-* Another two OutputPage methods, setPageTitleActionText() and
-  getPageTitleActionText(), were removed.  They did nothing since 1.15 (almost
-  ten years).  Use setHTMLTitle() directly.
-* The return value of OutputPage::adaptCdnTTL() has been removed. The
-  value returned was misleading and probably not what any caller would
-  have wanted.
-* All MagicWord static member variables have been removed.  Use appropriate
-  hooks or MagicWordFactory methods instead.
-* MagicWord::clearCache() has been removed.  Instead, create a new
-  MagicWordFactory, such as by calling
-  resetServiceForTesting( 'MagicWordFactory' ) on a MediaWikiServices.
-* mw.util.init() has been removed. This function is not needed anymore and was
-  a no-op function since 1.30.
-* SpecialPageFactory::resetList() is a no-op.  Call overrideMwServices()
-  instead.
-* MediaWiki no longer supports a StartProfiler.php file. Instead, you can set
-  $wgProfiler and $wgEnableProfileInfo.
-* The mw.loader.addSource() is now considered a private method, and no longer
-  supports the `id, url` signature. Use the `Object` parameter instead.
-* The backwards-compatibility code in HTMLForm to add a drop-down control to an
-  option that is not set to be a drop-down if the "mw-chosen" class is present,
-  is now removed.
-* Several collations were removed. They were workarounds for bugs in the ICU
-  library and they are no longer needed (as of ICU 57.1):
-  * 'uppercase-se' (NorthernSamiUppercaseCollation) - use 'uca-se' instead
-  * 'xx-uca-et' (CollationEt) - use 'uca-et' instead
-  * 'xx-uca-fa' (CollationFa) - use 'uca-fa' instead
-* LanguageCode::bcp47() now always returns a valid BCP 47 code.  This means
-  that some MediaWiki-specific language codes, such as `simple`, are mapped
-  into valid BCP 47 codes (eg `en-simple`).
-* The hooks 'SpecialRecentChangesFilters' & 'SpecialWatchlistFilters' deprecated
-  in 1.23 were removed. Instead, use 'ChangesListSpecialPageStructuredFilters'.
-  The ChangesListSpecialPage code for these legacy hooks, and their use in
-  SpecialRecentchanges.php and SpecialWatchlist, was also removed:
-  * ChangesListSpecialPage->getCustomFilters()
-  * ChangesListSpecialPage->getFilterGroupDefinitionFromLegacyCustomFilters()
-  * ChangesListSpecialPage::customFilters
-* The global function wfUseMW, deprecated since 1.26, has now been removed. Use
-  the "requires" property of static extension registration instead.
-* $wgSpecialPages no longer accepts array syntax, deprecated since 1.18.
-* The MailAddress constructor can no longer be called with a User object,
-  behaviour which has been deprecated since 1.24.
-* LBFactory, deprecated since 1.28, has been removed. Instead, use
-  Wikimedia\Rdbms\LBFactory.
-* The MimeMagic class, deprecated since 1.28 has been removed. Get a
-  MimeAnalyzer instance from MediaWikiServices instead.
-* The '--tidy' option to maintenance/parse.php has been removed.  Tidying
-  the output is now the default.  Use '--no-tidy' to bypass the tidy
-  phase.
-* The global function wfErrorLog, deprecated since 1.25, has now been removed.
-  Use MWLoggerLegacyLogger::emit or UDPTransport.
-* The hooks 'SpecialRecentChangesQuery' & 'SpecialWatchlistQuery', deprecated in
-  1.23, were removed. Instead, use ChangesListSpecialPageStructuredFilters or
-  ChangesListSpecialPageQuery.
-* The global function wfUsePHP, deprecated since 1.30, has now been removed. To
-  assert a newer version of PHP than MediaWiki does, use extension registration.
-* The hook 'ChangesListSpecialPageFilters', deprecated in 1.29, has now been
-  removed. Use the 'ChangesListSpecialPageStructuredFilters' hook instead.
-* DeferredUpdates::setImmediateMode(), deprecated since 1.29, has been removed.
-* File / MediaHandler::getStreamHeaders(), deprecated since 1.30, was removed.
-* The hook 'DoEditSectionLink', deprecated since 1.25, has been removed. Use
-  the hook 'SkinEditSectionLinks' instead.
-* The hook 'UserGetImplicitGroups', deprecated since 1.25, has been removed.
-* The global function wfRunHooks, deprecated since 1.25, has now been removed.
-  Use Hooks::run().
-* The hook 'UnknownAction', deprecated since 1.19, has now been removed.
-* The hook 'ParserLimitReport', deprecated since 1.22, has been removed. Use
-  the hooks 'ParserLimitReportPrepare' and 'ParserLimitReportFormat' instead.
-* The following deprecated API methods have been removed:
-  * ApiBase::profileIn() (deprecated in 1.25)
-  * ApiBase::profileOut() (deprecated in 1.25)
-  * ApiBase::safeProfileOut() (deprecated in 1.25)
-  * ApiBase::profileDBIn() (deprecated in 1.25)
-  * ApiBase::profileDBOut() (deprecated in 1.25)
-  * ApiBase::dieUsage() (deprecated in 1.29)
-  * ApiBase::dieUsageMsg() (deprecated in 1.29)
-  * ApiBase::dieUsageMsgOrDebug() (deprecated in 1.29)
-  * ApiBase::getErrorFromStatus() (deprecated in 1.29)
-  * ApiBase::parseMsg() (deprecated in 1.29)
-  * ApiBase::setWarning() (deprecated in 1.29)
-  * ApiPageSet::getInvalidTitles() (deprecated in 1.26)
-  * ApiQueryLogEvents::addLogParams() (deprecated in 1.25)
-  * ApiUsageException::getCodeString() (deprecated in 1.29)
-  * ApiUsageException::getMessageArray() (deprecated in 1.29)
-* Class UsageException, deprecated in 1.29, has been removed.
-* MediaWiki no longer has a 'JavaScript-powered' wikitext toolbar built in. The
-  old "bulletin board style toolbar", known as "the 2006 wikitext editor", has
-  been removed, and instead sysadmins will be required to choose one (or more)
-  of the several extensions available for this purpose if they need the
-  functionality. The MediaWiki "tarball" releases have included the replacement
-  extension for this, the WikiEditor extension aka "the 2010 wikitext editor",
-  for many years now. As part of this, several parts of MediaWiki have been
-  removed or simplified:
-  * The user option 'showtoolbar' (shown as "Show edit toolbar") is no longer
-    available; if an extension adds a toolbar via the EditPageBeforeEditToolbar
-    hook, it will be shown; extensions should provide a specific user preference
-    to disable themselves as needed.
-  * The public methods Language::getImageFile() and ::getImageFiles(), and the
-    related specification of $imageFiles within individual languages' code file,
-    as well as the referenced static media assets, all of which were only used
-    inside MediaWiki itself for providing the icons for the old toolbar, have
-    been removed without explicit deprecation.
-  * The internal ResourceLoader module "mediawiki.toolbar", which is unused
-    except by MediaWiki itself and back-compatibility code, has been removed.
-  * The internal ResourceLoaderEditToolbarModule class has been removed.
-
-=== Deprecations in 1.32 ===
-* HTMLForm::setSubmitProgressive() is deprecated. No need to call it. Submit
-  button is already marked as progressive.
-* Skin::setupSkinUserCss() is deprecated. Adding of modules to load
-  has been centralised to Skin::getDefaultModules(), which is now capable
-  of queueing style modules as well.
-* OutputPage::addModuleScripts() and ParserOutput::addModuleScripts are
-  deprecated. Use addModules() instead.
-* Overriding SearchEngine::{searchText,searchTitle,searchArchiveTitle}
-  in extending classes is deprecated.  Extend related doSearch* methods
-  instead.
-* The following 'mediawiki.api' plugin modules were merged into mediawiki.api
-  and deprecated: mediawiki.api.category, mediawiki.api.edit,
-  mediawiki.api.login, mediawiki.api.options, mediawiki.api.parse,
-  mediawiki.api.upload, mediawiki.api.user, mediawiki.api.watch,
-  mediawiki.api.messages, and mediawiki.api.rollback.
-* ApiBase::truncateArray() is deprecated. No replacement, as nothing is known
-  to use it.
-* WatchAction::getUnwatchToken is deprecated. Use WatchAction::getWatchToken
-  with the 'unwatch' action parameter instead.
-* IcuCollation::getICUVersion() is deprecated, as you can just use the PHP
-  constant INTL_ICU_VERSION directly in all versions that MediaWiki supports.
-* Parser::fetchFile() is deprecated. Use ::fetchFileAndTitle() instead.
-* The ApiQueryContributions class has been renamed to ApiQueryUserContribs.
-* The XMPInfo, XMPReader, and XMPValidate classes have been deprecated in favor
-  of the namespaced classes provided by the wikimedia/xmp-reader library.
-* SearchResultSet::{next,rewind} are deprecated. Calling code should
-  use foreach on the SearchResultSet, or the extractResults method. Extending
-  code should override extractResults.
-* Instantiating SearchResultSet directly is deprecated. SearchEngine
-  implementations must subclass SearchResultSet for their purposes.
-* SearchResult::setExtensionData argument has been changed from accepting an
-  array to accepting a Closure that returns the array when called.
-* Class CryptRand, everything in MWCryptRand except generateHex() and function
-  MediaWikiServices::getCryptRand() are deprecated, use random_bytes() to
-  generate cryptographically secure random byte sequences.
-* Parser::getConverterLanguage() is deprecated.  Use ::getTargetLanguage()
-  instead.
-* Language::markNoConversion() is deprecated.  It confused readers because
-  it had unexpected behavior (only marking text if it looked like a URL)
-  and was only used in a single place in the code.  Use
-  LanguageConverter::markNoConversion() instead.
-* (T197492) Language::truncate() was soft deprecated in 1.31 and is
-  hard deprecated in this release.  It has been split into two similar
-  methods, Language::truncateForVisual() and Language::truncateForDatabase(),
-  which measure length in characters and bytes, respectively.  Use
-  Language::truncateForVisual() when possible to provide equity to users
-  of multibyte scripts.
-* (T176526) EditPage::getContextTitle() falling back to $wgTitle when the
-  context title is unset is now deprecated; anything creating an EditPage
-  instance should set the context title via ::setContextTitle().
-* The 'jquery.hidpi' module (polyfill for IMG srcset) is deprecated.
-* ResourceLoaderStartUpModule::getStartupModules() and ::getLegacyModules()
-  are deprecated. These concepts are obsolete and have no replacement.
-* String type for $lang of DifferenceEngine::setTextLanguage is deprecated.
-* The following methods of OutputPage are now deprecated in favour
-  of using showFatalError directly: OutputPage::showFileDeleteError()
-  OutputPage::showFileNotFoundError(), OutputPage::showFileRenameError()
-  OutputPage::showFileCopyError() and OutputPage::showUnexpectedValueError().
-* The Replacer, DoubleReplacer, HashtableReplacer, and RegexlikeReplacer
-  classes are now deprecated. Use a Closure instead.
-* (T194263) ContentHandler::makeParserOptions() is deprecated. Use
-  WikiPage::makeParserOptions() or ParserOptions::newCanonical() instead.
-* (T100681) Use of the Parsoid v1 API with the VirtualRESTService, deprecated in
-  MediaWiki 1.26,  is now hard-deprecated. All known clients were converted to
-  the Parsoid v3 API in May 2015.
-* $input is deprecated in hook 'LogEventsListGetExtraInputs'. Use
-  $formDescriptor instead.
-* SearchEngine::transformSearchTerm( $term ) should no longer be called prior
-  to running searchText. This method was mainly implemented to support the
-  'prefix' URI param in SpecialSearch, but there are no reasons to expose this
-  logic as it should be handled internally by SearchEngine implementations
-  supporting this feature. SearchEngine implementations should no longer
-  override this methods.
-* SearchEngine::replacePrefixes( $query ) should no longer be called prior
-  to running searchText/searchTitle.
-* (T199657) Messages for $wgFilterLogTypes labels should be no longer be in the
-  'log-show-hide-[type]' format. Instead use 'logeventslist-[type]-log'.
-* Global functions  wfArrayFilter() and wfArrayFilterByKey() are deprecated.
-  use array_filter() directly.
-* The $wgShowSQLErrors global is deprecated and nonfunctional.
-  Set $wgShowExceptionDetails and/or $wgShowHostnames instead.
-* The $wgShowDBErrorBacktrace global is deprecated and nonfunctional.
-  Set $wgShowExceptionDetails instead.
-* Public access to the DifferenceEngine properties mOldid, mNewid, mOldRev,
-  mNewRev, mOldPage, mNewPage, mOldContent, mNewContent, mRevisionsLoaded,
-  mTextLoaded and mCacheHit is deprecated. Use getOldid() / getNewid() /
-  getOldRevision() / getNewRevision() for the first four (note that the
-  revision ones return a RevisionRecord, not a Revision), do your own lookup
-  for page/content.
-* The $wgExternalDiffEngine value 'wikidiff2' is deprecated. To use wikidiff2
-  just enable the PHP extension, and it will be autodetected.
-* (T194731) DifferenceEngine properties mOldContent and mNewContent and methods
-  setContent(), generateContentDiffBody(), generateTextDiffBody() and textDiff()
-  are deprecated. To interact with a single slot, use a SlotDiffRenderer (and
-  subclass it to customize diff rendering); to diff custom (e.g. unsaved)
-  content, use setRevisions(). Subclassing DifferenceEngine should only be done
-  to customize page-level diff properties (such as the navigation header).
-* The wfUseMW function, soft-deprecated in 1.26, is now hard deprecated.
-* All MagicWord static methods are now deprecated.  Use the MagicWordFactory
-  methods instead.
-* PasswordFactory::init is deprecated. To get a password factory with the
-  standard configuration, use MediaWikiServices::getPasswordFactory.
-* $wgContLang is deprecated, use MediaWikiServices::getContentLanguage()
-  instead.
-* $wgParser is deprecated, use MediaWikiServices::getParser() instead.
-* wfGetMainCache() is deprecated, use ObjectCache::getLocalClusterInstance()
-  instead.
-* wfGetCache() is deprecated, use ObjectCache::getInstance() instead.
-* All SpecialPageFactory static methods are deprecated. Instead, call the
-  methods on a SpecialPageFactory instance, which may be obtained from
-  MediaWikiServices.
-* mw.user.stickyRandomId was renamed to the more explicit
-  mw.user.getPageviewToken to better capture its function.
-* Passing Revision objects to ContentHandler::getUndoContent() is deprecated,
-  Content object should be passed instead.
-* (T197179) Parameters 'notice', 'notice-messages', 'notice-message',
-  previously used by OOUI HTMLForm fields, are now deprecated. Use
-  'help', 'help-message', 'help-messages' instead.
-* (T197179) HTMLFormField::getNotices() is now deprecated.
-* The jquery.localize module is now deprecated. Use jquery.i18n instead.
-* The SecondaryDataUpdates hook was deprecated in favor of RevisionDataUpdates,
-  or overriding ContentHandler::getSecondaryDataUpdates (T194038).
-* The WikiPageDeletionUpdates hook was deprecated in favor of
-  PageDeletionDataUpdates, or overriding ContentHandler::getDeletionDataUpdates
-  (T194038).
-* Content::getSecondaryDataUpdates has been deprecated in favor of
-  ContentHandler::getSecondaryDataUpdates() for overriding by extensions
-  (T194038).
-  Application logic should call WikiPage::doSecondaryDataUpdates() (T194037).
-* Content::getDeletionUpdates has been deprecated in favor of
-  ContentHandler::getDeletionUpdates() for overriding by extensions (T194038).
-  Application logic should call WikiPage::doSecondaryDataUpdates() (T194037).
-* (T198214) Old Tidy-related configuration settings, which were soft-deprecated
-  in MediaWiki 1.26, have now been hard deprecated. This affects $wgUseTidy,
-  $wgTidyBin, $wgTidyConf, $wgTidyOpts, $wgTidyInternal, and $wgDebugTidy. Use
-  $wgTidyConfig instead.
-* All Tidy configurations other than Remex have been hard deprecated;
-  future parsers will not emit compatible output for these configurations.
-  In particular, running MediaWiki with tidy disabled has been deprecated.
-* (T198214) OutputPage::addWikiText(), OutputPage::addWikiTextWithTitle(),
-  and OutputPage::addWikiTextTitle() have been deprecated, since they
-  can result in untidy output.  In addition OutputPage::addWikiTextTidy()
-  and OutputPage::addWikiTextTitleTidy() was deprecated to make naming new
-  methods consistent.  Use OutputPage::addWikiTextAsInterface() or
-  OutputPage::addWikiTextAsContent() instead, which ensures the output is
-  tidy and clarifies whether content-language specific postprocessing should
-  be done on the text.
-* OutputPage::parse() and OutputPage::parseInline() have been deprecated
-  due to untidy output and inconsistent handling of wrapper divs and
-  interface/content language defaults.  Use OutputPage::parseAsContent(),
-  OutputPage::parseAsInterface(), or OutputPage::parseInlineAsInterface()
-  as appropriate.
-* QuickTemplate::msgHtml() and BaseTemplate::msgHtml() have been deprecated
-  as they promote bad practises. I18n messages should always be properly
-  escaped.
-* Skin::getDynamicStylesheetQuery() has been deprecated. It always
-  returns action=raw&ctype=text/css which callers should use directly.
-* Class LegacyFormatter is deprecated.
-* Use of CommentStore::insertWithTempTable() with 'img_description' is
-  deprecated. Use CommentStore::insert() instead.
-* Language::setCode is deprecated as public function. Use Language::factory
-  to create a new Language object with a different language code.
-* Several classes have been moved from the MediaWiki\Storage\ namespace to the
-  MediaWiki\Revision\ namespace. The old class names are aliased for
-  compatibility, but are deprecated. Classes are IncompleteRevisionException,
-  MutableRevisionRecord, MutableRevisionSlots, RevisionAccessException,
-  RevisionArchiveRecord, RevisionFactory, RevisionLookup, RevisionRecord,
-  RevisionSlots, RevisionStore, RevisionStoreRecord, SlotRecord, and
-  SuppressedDataException.
-* When using OOUI HTMLForm containing an 'info' field which uses the 'rawrow'
-  option, it is now deprecated to give its contents (the 'default' option)
-  as a string. They should be given as a OOUI\FieldLayout object instead.
-  Notably, this affects fields defined in the 'GetPreferences' hook, because
-  Special:Preferences uses an OOUI form now. (If possible, don't use 'rawrow'.)
-* In Skin::doEditSectionLink omitting the parameters $tooltip and $lang is
-  deprecated. For the $lang parameter, types other than Language are
-  deprecated.
-* The $wgUseKeyHeader configuration option and the
-  OutputPage::getKeyHeader() method have been deprecated; the relevant
-  draft IETF spec expired without becoming a standard.
-* Deprecated API action=query&prop=info inprop=readable in favor of
-  intestactions=read.
-
-=== Other changes in 1.32 ===
-* (T198811) The following tables have had their UNIQUE indexes turned into
-  proper PRIMARY KEYs for increased maintainability: interwiki, page_props,
-  protected_titles and site_identifiers.
-* OOUI HTMLForm will now display help text inline after the input field,
-  rather than in a popup. Previous behavior can be restored by using
-  `'help-inline' => false`.
-* The archive table's ar_rev_id field is now unique.
-* Special:BotPasswords now requires reauthentication.
-* (T174023) Multi-Content Revision (MCR) capabilities were introduced into the
-  storage layer and have basic support for display. No user interface exists
-  yet for creating or managing content in slots beides the main slot. See
-  <https://www.mediawiki.org/wiki/Multi-Content_Revisions> for more
-  information.
-* The image_comment_temp database table has been removed. Since all access
-  should be mediated by the CommentStore class, this change shouldn't affect
-  external code.
-* (T206147) Database::close() will no longer commit any open transactions.
-* (T64103) Dropped columns category.cat_hidden, site_stats.ss_admins, and
-  recentchanges.rc_cur_time from the PostgreSQL schema.
-
-== Compatibility ==
-MediaWiki 1.32 requires PHP 7.0.0 or later. Although HHVM 3.18.5 or later is
-supported, it is generally advised to use PHP 7.0.0 or later for long term
-support. MediaWiki requires that the mbstring, xml, ctype, json, iconv and
-fileinfo PHP extensions are loaded to work.
-
-MySQL/MariaDB is the recommended DBMS. PostgreSQL or SQLite can also be used,
-but support for them is somewhat less mature. There is experimental support for
-Oracle and Microsoft SQL Server.
-
-The supported versions are:
-
-* MySQL 5.5.8 or later
-* PostgreSQL 9.2 or later
-* SQLite 3.3.7 or later
-* Oracle 9.0.1 or later
-* Microsoft SQL Server 2005 (9.00.1399)
-
-== Upgrading ==
-1.32 has several database changes since 1.31, and will not work without schema
-updates. Note that due to changes to some very large tables like the revision
-table, the schema update may take quite long (minutes on a medium sized site,
-many hours on a large site).
-
-Don't forget to always back up your database before upgrading!
-
-See the file UPGRADE for more detailed upgrade instructions, including
-important information when upgrading from versions prior to 1.11.
-
-For notes on 1.31.x and older releases, see HISTORY.
-
-== Online documentation ==
-Documentation for both end-users and site administrators is available on
-MediaWiki.org, and is covered under the GNU Free Documentation License (except
-for pages that explicitly state that their contents are in the public domain):
-
-       https://www.mediawiki.org/wiki/Special:MyLanguage/Documentation
-
-== Mailing list ==
-A mailing list is available for MediaWiki user support and discussion:
-
-       https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
-
-A low-traffic announcements-only list is also available:
-
-       https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
-
-It's highly recommended that you sign up for one of these lists if you're
-going to run a public MediaWiki, so you can be notified of security fixes.
-
-== IRC help ==
-There's usually someone online in #mediawiki on irc.freenode.net.
index d73a260..80e3bbd 100644 (file)
@@ -39,18 +39,16 @@ production.
 * Add PasswordPolicy to check the password isn't in the large blacklist.
 * The AuthManagerLoginAuthenticateAudit hook has a new parameter for
   additional information about the authentication event.
+* TextContent::getText() was introduced as a replacement for
+  Content::getNativeData() for text-based content models.
 * …
 
 === External library changes in 1.33 ===
 
 ==== New external libraries ====
 * Added wikimedia/password-blacklist 0.1.4.
+* Added guzzlehttp/guzzle 6.3.3.
 * …
-* Added guzzlehttp/guzzle 6.3.3 and dependents:
-  * guzzlehttp/promises 1.3.1
-  * guzzlehttp/psr7 1.5.0
-  * psr/http-message 1.0.1
-  * ralouphie/getallheaders 2.0.5
 
 ==== Changed external libraries ====
 * Updated wikimedia/xmp-reader from 0.6.0 to 0.6.1.
@@ -58,6 +56,7 @@ production.
 * Updated wikimedia/ip-set from 1.2.0 to 2.0.0.
   * The deprecated IPSet\IPSet alias was removed, Wikimedia\IPSet must be
     used instead.
+* Updated qunitjs from 2.6.2 to 2.9.1.
 * …
 
 ==== Removed external libraries ====
@@ -106,6 +105,9 @@ Below only new and removed languages are listed, as well as changes to languages
 because of Phabricator reports.
 
 * (T203908) Added language support for Eastern Pwo (kjp).
+* (T213717) Fixed a translation error on Goan Konkani (gom-deva) translations
+  for NS_TEMPLATE.
+* (T212221) Added $digitTransformTable for Santali (sat).
 
 === Breaking changes in 1.33 ===
 * The parameteter $lang in DifferenceEngine::setTextLanguage must be of type
@@ -202,6 +204,14 @@ because of Phabricator reports.
 * The PasswordPolicy 'PasswordCannotBePopular' has been deprecated. To
   follow best practices, it is reccommended to use 'PasswordNotInLargeBlacklist'
   instead which blacklists 100,000 commonly used passwords.
+* (T208862) Action::requiresUnblock() is now called from
+  Title::getUserPermissionsErrors() and Title::userCan(). Previously, the method
+  was only called in Action::checkCanExecute(). Actions should ensure that their
+  requiresUnblock() returns the proper result (the default is `true`).
+* (T211608) The MediaWiki\Services namespace has been renamed to
+  Wikimedia\Services. The old name is still supported, but deprecated.
+* (T155582) Content::getNativeData has been deprecated. Please use model-
+  specific getters, such as TextContent::getText().
 * …
 
 === Other changes in 1.33 ===
index 6a5a9df..afc187f 100644 (file)
@@ -408,6 +408,7 @@ $wgAutoloadLocalClasses = [
        'DifferenceEngine' => __DIR__ . '/includes/diff/DifferenceEngine.php',
        'DifferenceEngineSlotDiffRenderer' => __DIR__ . '/includes/diff/DifferenceEngineSlotDiffRenderer.php',
        'Digit2Html' => __DIR__ . '/maintenance/language/digit2html.php',
+       'DisabledSpecialPage' => __DIR__ . '/includes/specialpage/DisabledSpecialPage.php',
        'DjVuHandler' => __DIR__ . '/includes/media/DjVuHandler.php',
        'DjVuImage' => __DIR__ . '/includes/media/DjVuImage.php',
        'DnsSrvDiscoverer' => __DIR__ . '/includes/libs/DnsSrvDiscoverer.php',
@@ -603,6 +604,7 @@ $wgAutoloadLocalClasses = [
        'HTMLRestrictionsField' => __DIR__ . '/includes/htmlform/fields/HTMLRestrictionsField.php',
        'HTMLSelectAndOtherField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectAndOtherField.php',
        'HTMLSelectField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectField.php',
+       'HTMLSelectLanguageField' => __DIR__ . '/includes/htmlform/HTMLSelectLanguageField.php',
        'HTMLSelectLimitField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectLimitField.php',
        'HTMLSelectNamespace' => __DIR__ . '/includes/htmlform/fields/HTMLSelectNamespace.php',
        'HTMLSelectNamespaceWithButton' => __DIR__ . '/includes/htmlform/fields/HTMLSelectNamespaceWithButton.php',
@@ -901,6 +903,14 @@ $wgAutoloadLocalClasses = [
        'MediaWiki\\OutputHandler' => __DIR__ . '/includes/OutputHandler.php',
        'MediaWiki\\ProcOpenError' => __DIR__ . '/includes/exception/ProcOpenError.php',
        'MediaWiki\\Search\\ParserOutputSearchDataExtractor' => __DIR__ . '/includes/search/ParserOutputSearchDataExtractor.php',
+       'MediaWiki\\Services\\CannotReplaceActiveServiceException' => __DIR__ . '/includes/libs/services/CannotReplaceActiveServiceException.php',
+       'MediaWiki\\Services\\ContainerDisabledException' => __DIR__ . '/includes/libs/services/ContainerDisabledException.php',
+       'MediaWiki\\Services\\DestructibleService' => __DIR__ . '/includes/libs/services/DestructibleService.php',
+       'MediaWiki\\Services\\NoSuchServiceException' => __DIR__ . '/includes/libs/services/NoSuchServiceException.php',
+       'MediaWiki\\Services\\SalvageableService' => __DIR__ . '/includes/libs/services/SalvageableService.php',
+       'MediaWiki\\Services\\ServiceAlreadyDefinedException' => __DIR__ . '/includes/libs/services/ServiceAlreadyDefinedException.php',
+       'MediaWiki\\Services\\ServiceContainer' => __DIR__ . '/includes/libs/services/ServiceContainer.php',
+       'MediaWiki\\Services\\ServiceDisabledException' => __DIR__ . '/includes/libs/services/ServiceDisabledException.php',
        'MediaWiki\\ShellDisabledError' => __DIR__ . '/includes/exception/ShellDisabledError.php',
        'MediaWiki\\Site\\MediaWikiPageNameNormalizer' => __DIR__ . '/includes/site/MediaWikiPageNameNormalizer.php',
        'MediaWiki\\Special\\SpecialPageFactory' => __DIR__ . '/includes/specialpage/SpecialPageFactory.php',
index 88f5daa..5b7870b 100644 (file)
                "ext-mbstring": "*",
                "ext-xml": "*",
                "guzzlehttp/guzzle": "6.3.3",
-               "guzzlehttp/promises": "1.3.1",
-               "guzzlehttp/psr7": "1.5.0",
                "liuggio/statsd-php-client": "1.0.18",
-               "oojs/oojs-ui": "0.30.0",
+               "oojs/oojs-ui": "0.30.1",
                "pear/mail": "1.4.1",
                "pear/mail_mime": "1.10.2",
                "pear/net_smtp": "1.8.0",
                "php": ">=5.6.99",
-               "psr/http-message": "1.0.1",
                "psr/log": "1.0.2",
-               "ralouphie/getallheaders": "2.0.5",
                "wikimedia/assert": "0.2.2",
                "wikimedia/at-ease": "1.2.0",
                "wikimedia/base-convert": "2.0.0",
index 28065fc..d175bcd 100644 (file)
@@ -226,14 +226,9 @@ Hooks::run() returns true if the calling function should continue processing
 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
-variable number of arguments; the array calling protocol came about after
-MediaWiki 1.4rc1.
+inconvenience to make it possible to pass reference values (which can be changed)
+by the hook callback.
 
 ==Events and parameters==
 
index 677fd01..9dbc9eb 100644 (file)
@@ -136,12 +136,12 @@ class AutoLoader {
                        'MediaWiki\\Linker\\' => __DIR__ . '/linker/',
                        'MediaWiki\\Preferences\\' => __DIR__ . '/preferences/',
                        'MediaWiki\\Revision\\' => __DIR__ . '/Revision/',
-                       'MediaWiki\\Services\\' => __DIR__ . '/services/',
                        'MediaWiki\\Session\\' => __DIR__ . '/session/',
                        'MediaWiki\\Shell\\' => __DIR__ . '/shell/',
                        'MediaWiki\\Sparql\\' => __DIR__ . '/sparql/',
                        'MediaWiki\\Storage\\' => __DIR__ . '/Storage/',
                        'MediaWiki\\Tidy\\' => __DIR__ . '/tidy/',
+                       'Wikimedia\\Services\\' => __DIR__ . '/libs/services/',
                ];
        }
 }
index ec8cae8..7138301 100644 (file)
@@ -1132,6 +1132,7 @@ class Block {
         * prohibited from editing any page on the site (other than their own talk
         * page).
         *
+        * @since 1.33
         * @param null|bool $x
         * @return bool
         */
@@ -1306,7 +1307,7 @@ class Block {
         * @since 1.22
         */
        public static function getBlocksForIPList( array $ipChain, $isAnon, $fromMaster = false ) {
-               if ( !count( $ipChain ) ) {
+               if ( $ipChain === [] ) {
                        return [];
                }
 
@@ -1331,7 +1332,7 @@ class Block {
                        $conds[] = self::getRangeCond( IP::toHex( $ipaddr ) );
                }
 
-               if ( !count( $conds ) ) {
+               if ( $conds === [] ) {
                        return [];
                }
 
@@ -1387,7 +1388,7 @@ class Block {
         * @return Block|null The "best" block from the list
         */
        public static function chooseBlock( array $blocks, array $ipChain ) {
-               if ( !count( $blocks ) ) {
+               if ( $blocks === [] ) {
                        return null;
                } elseif ( count( $blocks ) == 1 ) {
                        return $blocks[0];
@@ -1728,6 +1729,7 @@ class Block {
        /**
         * Get block information used in different block error messages
         *
+        * @since 1.33
         * @param IContextSource $context
         * @return array
         */
@@ -1769,6 +1771,7 @@ class Block {
         * Getting the restrictions will perform a database query if the restrictions
         * are not already loaded.
         *
+        * @since 1.33
         * @return Restriction[]
         */
        public function getRestrictions() {
@@ -1787,8 +1790,8 @@ class Block {
        /**
         * Set Restrictions.
         *
+        * @since 1.33
         * @param Restriction[] $restrictions
-        *
         * @return self
         */
        public function setRestrictions( array $restrictions ) {
index f7c3fce..9df4ab6 100644 (file)
@@ -4454,13 +4454,20 @@ $wgCentralIdLookupProvider = 'local';
  * Password policy for the wiki.
  * Structured as
  * [
- *     'policies' => [ <group> => [ <policy> => <value>, ... ], ... ],
+ *     'policies' => [ <group> => [ <policy> => <settings>, ... ], ... ],
  *     'checks' => [ <policy> => <callback>, ... ],
  * ]
  * where <group> is a user group, <policy> is a password policy name
  * (arbitrary string) defined in the 'checks' part, <callback> is the
- * PHP callable implementing the policy check, <value> is a number,
- * boolean or null that gets passed to the callback.
+ * PHP callable implementing the policy check, <settings> is an array
+ * of options with the following keys:
+ * - value: (number, boolean or null) the value to pass to the callback
+ * - forceChange: (bool, default false) if the password is invalid, do
+ *   not let the user log in without changing the password
+ * As a shorthand for [ 'value' => <value> ], simply <value> can be written.
+ * When multiple password policies are defined for a user, the settings
+ * arrays are merged, and for fields which are set in both arrays, the
+ * larger value (as understood by PHP's 'max' method) is taken.
  *
  * A user's effective policy is the superset of all policy statements
  * from the policies for the groups where the user is a member. If more
@@ -9013,8 +9020,8 @@ $wgActorTableSchemaMigrationStage = SCHEMA_COMPAT_OLD;
  * Flag to enable Partial Blocks. This allows an admin to prevent a user from editing specific pages
  * or namespaces.
  *
- * @since 1.32
- * @deprecated 1.32
+ * @since 1.33
+ * @deprecated 1.33
  * @var bool
  */
 $wgEnablePartialBlocks = false;
index 1d4f6e4..bca6c7e 100644 (file)
@@ -445,8 +445,7 @@ class DiffHistoryBlob implements HistoryBlob {
                        // Already compressed
                        return;
                }
-               if ( !count( $this->mItems ) ) {
-                       // Empty
+               if ( $this->mItems === [] ) {
                        return;
                }
 
@@ -492,7 +491,7 @@ class DiffHistoryBlob implements HistoryBlob {
                $this->mDiffs = [];
                $this->mDiffMap = [];
                foreach ( $sequences as $seq ) {
-                       if ( !count( $seq['diffs'] ) ) {
+                       if ( $seq['diffs'] === [] ) {
                                continue;
                        }
                        if ( $tail === '' ) {
@@ -627,8 +626,7 @@ class DiffHistoryBlob implements HistoryBlob {
         */
        function __sleep() {
                $this->compress();
-               if ( !count( $this->mItems ) ) {
-                       // Empty object
+               if ( $this->mItems === [] ) {
                        $info = false;
                } else {
                        // Take forward differences to improve the compression ratio for sequences
index b605acd..89a41dc 100644 (file)
@@ -910,10 +910,12 @@ class Linker {
         * @param int $flags Customisation flags (e.g. Linker::TOOL_LINKS_NOBLOCK
         *   and Linker::TOOL_LINKS_EMAIL).
         * @param int|null $edits User edit count (optional, for performance)
+        * @param bool $useParentheses (optional) Wrap comments in parentheses where needed
         * @return string HTML fragment
         */
        public static function userToolLinks(
-               $userId, $userText, $redContribsWhenNoEdits = false, $flags = 0, $edits = null
+               $userId, $userText, $redContribsWhenNoEdits = false, $flags = 0, $edits = null,
+               $useParentheses = true
        ) {
                global $wgUser, $wgDisableAnonTalk, $wgLang;
                $talkable = !( $wgDisableAnonTalk && $userId == 0 );
@@ -957,10 +959,19 @@ class Linker {
                Hooks::run( 'UserToolLinksEdit', [ $userId, $userText, &$items ] );
 
                if ( $items ) {
-                       return wfMessage( 'word-separator' )->escaped()
-                               . '<span class="mw-usertoollinks">'
-                               . wfMessage( 'parentheses' )->rawParams( $wgLang->pipeList( $items ) )->escaped()
-                               . '</span>';
+                       if ( $useParentheses ) {
+                               return wfMessage( 'word-separator' )->escaped()
+                                       . '<span class="mw-usertoollinks">'
+                                       . wfMessage( 'parentheses' )->rawParams( $wgLang->pipeList( $items ) )->escaped()
+                                       . '</span>';
+                       } else {
+                               $tools = [];
+                               foreach ( $items as $tool ) {
+                                       $tools[] = Html::rawElement( 'span', [], $tool );
+                               }
+                               return ' <span class="mw-usertoollinks mw-changeslist-links">' .
+                                       implode( ' ', $tools ) . '</span>';
+                       }
                } else {
                        return '';
                }
index 0e36b22..4abd729 100644 (file)
@@ -36,9 +36,6 @@ use MediaHandlerFactory;
 use MediaWiki\Config\ConfigRepository;
 use MediaWiki\Linker\LinkRenderer;
 use MediaWiki\Linker\LinkRendererFactory;
-use MediaWiki\Services\SalvageableService;
-use MediaWiki\Services\ServiceContainer;
-use MediaWiki\Services\NoSuchServiceException;
 use MWException;
 use MimeAnalyzer;
 use ObjectCache;
@@ -58,6 +55,9 @@ use SkinFactory;
 use TitleFormatter;
 use TitleParser;
 use VirtualRESTServiceClient;
+use Wikimedia\Services\SalvageableService;
+use Wikimedia\Services\ServiceContainer;
+use Wikimedia\Services\NoSuchServiceException;
 use MediaWiki\Interwiki\InterwikiLookup;
 use MagicWordFactory;
 
index 7d27a27..7aa6b05 100644 (file)
@@ -21,6 +21,7 @@
 
 use MediaWiki\MediaWikiServices;
 use MediaWiki\Revision\SlotRecord;
+use Wikimedia\Rdbms\IDatabase;
 
 /**
  * Handles the backend logic of moving a page from one title
@@ -250,7 +251,7 @@ class MovePage {
                }
 
                $dbw = wfGetDB( DB_MASTER );
-               $dbw->startAtomic( __METHOD__ );
+               $dbw->startAtomic( __METHOD__, IDatabase::ATOMIC_CANCELABLE );
 
                Hooks::run( 'TitleMoveStarting', [ $this->oldTitle, $this->newTitle, $user ] );
 
@@ -493,7 +494,7 @@ class MovePage {
                        );
 
                        if ( !$status->isGood() ) {
-                               throw new MWException( 'Failed to delete page-move revision: ' . $status );
+                               throw new MWException( 'Failed to delete page-move revision: ' . $status->getWikiText() );
                        }
 
                        $nt->resetArticleID( false );
index 02e13e7..61a1ef2 100644 (file)
@@ -4134,12 +4134,12 @@ class OutputPage extends ContextSource {
         *
         * For example:
         *
-        *    $wgOut->wrapWikiMsg( "<div class='error'>\n$1\n</div>", 'some-error' );
+        *     $wgOut->wrapWikiMsg( "<div class='error'>\n$1\n</div>", 'some-error' );
         *
         * Is equivalent to:
         *
-        *    $wgOut->addWikiTextAsInterface( "<div class='error'>\n"
-        *        . wfMessage( 'some-error' )->plain() . "\n</div>" );
+        *     $wgOut->addWikiTextAsInterface( "<div class='error'>\n"
+        *         . wfMessage( 'some-error' )->plain() . "\n</div>" );
         *
         * The newline after the opening div is needed in some wikitext. See T21226.
         *
index b0a3ba3..c99f88a 100644 (file)
@@ -846,6 +846,7 @@ class Revision implements IDBAccessObject {
                $user = $this->mRecord->getUser( $audience, $user );
                return $user ? $user->getName() : '';
        }
+
        /**
         * Fetch revision comment if it's available to the specified audience.
         * If the specified audience does not have access to the comment, an
index 89980f4..064f7a4 100644 (file)
@@ -219,8 +219,6 @@ class SlotRecord {
        }
 
        /**
-        * SlotRecord constructor.
-        *
         * The following fields are supported by the $row parameter:
         *
         *   $row->blob_data
index b108b98..41ea4a6 100644 (file)
@@ -63,8 +63,6 @@ class SlotRoleRegistry {
        private $handlers;
 
        /**
-        * SlotRoleRegistry constructor.
-        *
         * @param NameTableStore $roleNamesStore
         */
        public function __construct( NameTableStore $roleNamesStore ) {
index aba050d..4ebe426 100644 (file)
@@ -367,10 +367,9 @@ if ( $wgRCFilterByAge ) {
        // Note that we allow 1 link higher than the max for things like 56 days but a 60 day link.
        sort( $wgRCLinkDays );
 
-       // phpcs:ignore Generic.CodeAnalysis.ForLoopWithTestFunctionCall
-       for ( $i = 0; $i < count( $wgRCLinkDays ); $i++ ) {
-               if ( $wgRCLinkDays[$i] >= $rcMaxAgeDays ) {
-                       $wgRCLinkDays = array_slice( $wgRCLinkDays, 0, $i + 1, false );
+       foreach ( $wgRCLinkDays as $i => $days ) {
+               if ( $days >= $rcMaxAgeDays ) {
+                       array_splice( $wgRCLinkDays, $i + 1 );
                        break;
                }
        }
@@ -873,11 +872,19 @@ if ( !defined( 'MW_NO_SESSION' ) && !$wgCommandLineMode ) {
 
        $session->renew();
        if ( MediaWiki\Session\PHPSessionHandler::isEnabled() &&
-               ( $session->isPersistent() || $session->shouldRememberUser() )
+               ( $session->isPersistent() || $session->shouldRememberUser() ) &&
+               session_id() !== $session->getId()
        ) {
                // Start the PHP-session for backwards compatibility
+               if ( session_id() !== '' ) {
+                       wfDebugLog( 'session', 'PHP session {old_id} was already started, changing to {new_id}', 'all', [
+                               'old_id' => session_id(),
+                               'new_id' => $session->getId(),
+                       ] );
+                       session_write_close();
+               }
                session_id( $session->getId() );
-               Wikimedia\quietCall( 'session_start' );
+               session_start();
        }
 
        unset( $session );
index 909f528..3496668 100644 (file)
@@ -36,7 +36,7 @@ use MediaWiki\MediaWikiServices;
  * @note Consider using a TitleValue object instead. TitleValue is more lightweight
  *       and does not rely on global state or the database.
  */
-class Title implements LinkTarget {
+class Title implements LinkTarget, IDBAccessObject {
        /** @var MapCacheLRU */
        static private $titleCache = null;
 
@@ -2691,14 +2691,34 @@ class Title implements LinkTarget {
                }
 
                $useReplica = ( $rigor !== 'secure' );
-               if ( ( $action == 'edit' || $action == 'create' )
-                       && !$user->isBlockedFrom( $this, $useReplica )
-               ) {
-                       // Don't block the user from editing their own talk page unless they've been
-                       // explicitly blocked from that too.
-               } elseif ( $user->isBlocked() && $user->getBlock()->prevents( $action ) !== false ) {
+               $block = $user->getBlock( $useReplica );
+
+               // The block may explicitly allow an action (like "read" or "upload").
+               if ( $block && $block->prevents( $action ) === false ) {
+                       return $errors;
+               }
+
+               // Determine if the user is blocked from this action on this page.
+               // What gets passed into this method is a user right, not an action nmae.
+               // There is no way to instantiate an action by restriction. However, this
+               // will get the action where the restriction is the same. This may result
+               // in actions being blocked that shouldn't be.
+               if ( Action::exists( $action ) ) {
                        // @todo FIXME: Pass the relevant context into this function.
-                       $errors[] = $user->getBlock()->getPermissionsError( RequestContext::getMain() );
+                       $action = Action::factory( $action, WikiPage::factory( $this ), RequestContext::getMain() );
+               } else {
+                       $action = null;
+               }
+
+               // If no action object is returned, assume that the action requires unblock
+               // which is the default.
+               if ( !$action || $action->requiresUnblock() ) {
+                       if ( $user->isBlockedFrom( $this, $useReplica ) ) {
+                               // @todo FIXME: Pass the relevant context into this function.
+                               $errors[] = $block
+                                       ? $block->getPermissionsError( RequestContext::getMain() )
+                                       : [ 'actionblockedtext' ];
+                       }
                }
 
                return $errors;
@@ -3278,13 +3298,12 @@ class Title implements LinkTarget {
         * indicating who can move or edit the page from the page table, (pre 1.10) rows.
         * Edit and move sections are separated by a colon
         * Example: "edit=autoconfirmed,sysop:move=sysop"
-        * @param bool $readLatest When true, skip replicas and read from the master DB.
         */
-       public function loadRestrictionsFromRows(
-               $rows, $oldFashionedRestrictions = null, $readLatest = false
-       ) {
-               $whichDb = $readLatest ? DB_MASTER : DB_REPLICA;
-               $dbr = wfGetDB( $whichDb );
+       public function loadRestrictionsFromRows( $rows, $oldFashionedRestrictions = null ) {
+               // This function will only read rows from a table that we migrated away
+               // from before adding READ_LATEST support to loadRestrictions, so we
+               // don't need to support reading from DB_MASTER here.
+               $dbr = wfGetDB( DB_REPLICA );
 
                $restrictionTypes = $this->getRestrictionTypes();
 
@@ -3354,39 +3373,52 @@ class Title implements LinkTarget {
         * indicating who can move or edit the page from the page table, (pre 1.10) rows.
         * Edit and move sections are separated by a colon
         * Example: "edit=autoconfirmed,sysop:move=sysop"
-        * @param bool $readLatest When true, skip replicas and read from the master DB.
+        * @param int $flags A bit field. If self::READ_LATEST is set, skip replicas and read
+        *  from the master DB.
         */
-       public function loadRestrictions( $oldFashionedRestrictions = null, $readLatest = false ) {
+       public function loadRestrictions( $oldFashionedRestrictions = null, $flags = 0 ) {
+               $readLatest = DBAccessObjectUtils::hasFlags( $flags, self::READ_LATEST );
                if ( $this->mRestrictionsLoaded && !$readLatest ) {
                        return;
                }
 
+               // TODO: should probably pass $flags into getArticleID, but it seems hacky
+               // to mix READ_LATEST and GAID_FOR_UPDATE, even if they have the same value.
+               // Maybe deprecate GAID_FOR_UPDATE now that we implement IDBAccessObject?
                $id = $this->getArticleID();
                if ( $id ) {
-                       $cache = ObjectCache::getMainWANInstance();
                        $fname = __METHOD__;
-                       $rows = $cache->getWithSetCallback(
-                               // Page protections always leave a new null revision
-                               $cache->makeKey( 'page-restrictions', $id, $this->getLatestRevID(), $readLatest ),
-                               $cache::TTL_DAY,
-                               function ( $curValue, &$ttl, array &$setOpts ) use ( $fname, $readLatest ) {
-                                       $whichDb = $readLatest ? DB_MASTER : DB_REPLICA;
-                                       $dbr = wfGetDB( $whichDb );
-
-                                       $setOpts += Database::getCacheSetOptions( $dbr );
-
-                                       return iterator_to_array(
-                                               $dbr->select(
-                                                       'page_restrictions',
-                                                       [ 'pr_type', 'pr_expiry', 'pr_level', 'pr_cascade' ],
-                                                       [ 'pr_page' => $this->getArticleID() ],
-                                                       $fname
-                                               )
-                                       );
-                               }
-                       );
+                       $loadRestrictionsFromDb = function ( Database $dbr ) use ( $fname, $id ) {
+                               return iterator_to_array(
+                                       $dbr->select(
+                                               'page_restrictions',
+                                               [ 'pr_type', 'pr_expiry', 'pr_level', 'pr_cascade' ],
+                                               [ 'pr_page' => $id ],
+                                               $fname
+                                       )
+                               );
+                       };
+
+                       if ( $readLatest ) {
+                               $dbr = wfGetDB( DB_MASTER );
+                               $rows = $loadRestrictionsFromDb( $dbr );
+                       } else {
+                               $cache = ObjectCache::getMainWANInstance();
+                               $rows = $cache->getWithSetCallback(
+                                       // Page protections always leave a new null revision
+                                       $cache->makeKey( 'page-restrictions', $id, $this->getLatestRevID() ),
+                                       $cache::TTL_DAY,
+                                       function ( $curValue, &$ttl, array &$setOpts ) use ( $loadRestrictionsFromDb ) {
+                                               $dbr = wfGetDB( DB_REPLICA );
+
+                                               $setOpts += Database::getCacheSetOptions( $dbr );
+
+                                               return $loadRestrictionsFromDb( $dbr );
+                                       }
+                               );
+                       }
 
-                       $this->loadRestrictionsFromRows( $rows, $oldFashionedRestrictions, $readLatest );
+                       $this->loadRestrictionsFromRows( $rows, $oldFashionedRestrictions );
                } else {
                        $title_protection = $this->getTitleProtectionInternal();
 
index d6b8057..fdf4f85 100644 (file)
@@ -511,7 +511,7 @@ class HistoryPager extends ReverseChronologicalPager {
                        if ( $row->rev_parent_id ) {
                                $revIds[] = $row->rev_parent_id;
                        }
-                       if ( !is_null( $row->user_name ) ) {
+                       if ( $row->user_name !== null ) {
                                $batch->add( NS_USER, $row->user_name );
                                $batch->add( NS_USER_TALK, $row->user_name );
                        } else { # for anons or usernames of imported revisions
index 7d5f6e2..7b5df50 100644 (file)
@@ -94,7 +94,7 @@ class ApiQueryAllUsers extends ApiQueryBase {
                        }
 
                        // no group with the given right(s) exists, no need for a query
-                       if ( !count( $groups ) ) {
+                       if ( $groups === [] ) {
                                $this->getResult()->addIndexedTagName( [ 'query', $this->getModuleName() ], '' );
 
                                return;
index d9fe50b..c92f037 100644 (file)
@@ -277,7 +277,7 @@ abstract class ApiQueryBase extends ApiBase {
                if ( count( $ids ) ) {
                        $ids = $this->filterIDs( [ [ $table, $field ] ], $ids );
 
-                       if ( !count( $ids ) ) {
+                       if ( $ids === [] ) {
                                // Return nothing, no IDs are valid
                                $this->where[] = '0 = 1';
                        } else {
index 642c9ac..a8f970e 100644 (file)
@@ -64,7 +64,7 @@ class ApiQueryContributors extends ApiQueryBase {
                                return $v >= $cont_page;
                        } );
                }
-               if ( !count( $pages ) ) {
+               if ( $pages === [] ) {
                        // Nothing to do
                        return;
                }
index 2ab3c56..8a54c0b 100644 (file)
@@ -721,7 +721,7 @@ class ApiQueryInfo extends ApiQueryBase {
                                $getTitles[] = $t->getTalkPage();
                        }
                }
-               if ( !count( $getTitles ) ) {
+               if ( $getTitles === [] ) {
                        return;
                }
 
@@ -751,7 +751,7 @@ class ApiQueryInfo extends ApiQueryBase {
 
                $pageIds = array_keys( $this->titles );
 
-               if ( !count( $pageIds ) ) {
+               if ( $pageIds === [] ) {
                        return;
                }
 
@@ -768,7 +768,7 @@ class ApiQueryInfo extends ApiQueryBase {
        }
 
        private function getVariantTitles() {
-               if ( !count( $this->titles ) ) {
+               if ( $this->titles === [] ) {
                        return;
                }
                $this->variantTitles = [];
index 2bee698..3258004 100644 (file)
@@ -50,7 +50,7 @@ class ApiQueryPageProps extends ApiQueryBase {
                        $pages = $filteredPages;
                }
 
-               if ( !count( $pages ) ) {
+               if ( $pages === [] ) {
                        # Nothing to do
                        return;
                }
index ed83130..6082617 100644 (file)
@@ -136,7 +136,7 @@ class ApiQueryUserContribs extends ApiQueryBase {
                        // prepareQuery might try to sort by actor and confuse everything.
                        $batchSize = 1;
                } elseif ( isset( $this->params['userids'] ) ) {
-                       if ( !count( $this->params['userids'] ) ) {
+                       if ( $this->params['userids'] === [] ) {
                                $encParamName = $this->encodeParamName( 'userids' );
                                $this->dieWithError( [ 'apierror-paramempty', $encParamName ], "paramempty_$encParamName" );
                        }
index 518a4fa..e769185 100644 (file)
        "apihelp-query+siteinfo-paramvalue-prop-restrictions": "يرجع المعلومات حول أنواع القيود (الحماية) المتاحة.",
        "apihelp-query+siteinfo-paramvalue-prop-languages": "يعرض قائمة اللغات التي يدعمها ميدياويكي (مترجمة اختياريا باستخدام <var>$1inlanguagecode</var>).",
        "apihelp-query+siteinfo-paramvalue-prop-languagevariants": "يعرض قائمة بأكواد اللغات التي يتم تمكين [[mw:Special:MyLanguage/LanguageConverter|LanguageConverter]] بها، والمتغيرات المدعومة المختلفة لكل منها.",
-       "apihelp-query+siteinfo-paramvalue-prop-skins": "Ù\8aعرض Ù\82ائÙ\85Ø© Ø¨Ø¬Ù\85Ù\8aع Ø§Ù\84Ù\85ظاÙ\87ر Ø§Ù\84Ù\85Ù\85Ù\83Ù\8eÙ\91Ù\86ة (مترجمة اختياريا باستخدام <var>$1inlanguagecode</var>، بخلاف لغة المحتوى).",
+       "apihelp-query+siteinfo-paramvalue-prop-skins": "Ù\8aعرض Ù\82ائÙ\85Ø© Ø¨Ø¬Ù\85Ù\8aع Ø§Ù\84Ù\88اجÙ\87ات Ø§Ù\84Ù\85Ù\81عÙ\84ة (مترجمة اختياريا باستخدام <var>$1inlanguagecode</var>، بخلاف لغة المحتوى).",
        "apihelp-query+siteinfo-paramvalue-prop-extensiontags": "يعرض قائمة وسوم امتداد المحلل.",
        "apihelp-query+siteinfo-paramvalue-prop-functionhooks": "يرجع قائمة خطاطيف دالة المحلل.",
        "apihelp-query+siteinfo-paramvalue-prop-showhooks": "يعرض قائمة بكل الخطاطيف المشتركة (محتويات <var>[[mw:Special:MyLanguage/Manual:$wgHooks|$wgHooks]]</var>).",
        "apihelp-query+siteinfo-param-filteriw": "إرجاع الإدخالات المحلية أو غير المحلية فقط بخريطة الإنترويكي.",
        "apihelp-query+siteinfo-param-showalldb": "سرد جميع خوادم قواعد البيانات، وليست فقط واحدة تخلفت أكثر.",
        "apihelp-query+siteinfo-param-numberingroup": "يسرد عدد المستخدمين في مجموعات المستخدمين.",
-       "apihelp-query+siteinfo-param-inlanguagecode": "رÙ\85ز Ø§Ù\84Ù\84غة Ù\84أسÙ\85اء Ø§Ù\84Ù\84غة Ø§Ù\84Ù\85ترجÙ\85Ø© (Ø£Ù\81ضÙ\84 Ø¬Ù\87د) Ù\88أسÙ\85اء Ø§Ù\84Ù\85ظاÙ\87ر.",
+       "apihelp-query+siteinfo-param-inlanguagecode": "رÙ\85ز Ø§Ù\84Ù\84غة Ù\84أسÙ\85اء Ø§Ù\84Ù\84غة Ø§Ù\84Ù\85ترجÙ\85Ø© (Ø£Ù\81ضÙ\84 Ø¬Ù\87د) Ù\88أسÙ\85اء Ø§Ù\84Ù\88اجÙ\87ات.",
        "apihelp-query+siteinfo-example-simple": "إحضار معلومات الموقع.",
        "apihelp-query+siteinfo-example-interwiki": "إحضار قائمة ببادئات الإنترويكي المحلية.",
        "apihelp-query+siteinfo-example-replag": "تحقق من تأخر النسخ المتماثل الحالي.",
index 3f331eb..224eca5 100644 (file)
        "apihelp-query+filearchive-example-simple": "Mostrar una lista de todos los archivos eliminados.",
        "apihelp-query+filerepoinfo-summary": "Devuelve metainformación sobre los repositorios de imágenes configurados en el wiki.",
        "apihelp-query+filerepoinfo-param-prop": "Qué propiedades del repositorio obtener (las propiedades disponibles pueden variar en otras wikis).",
+       "apihelp-query+filerepoinfo-paramvalue-prop-rootUrl": "Ruta de la URL raíz para las rutas de las imágenes.",
+       "apihelp-query+filerepoinfo-paramvalue-prop-scriptDirUrl": "Ruta de la URL raíz para la instalación MediaWiki del wiki del repositorio.",
+       "apihelp-query+filerepoinfo-paramvalue-prop-server": "<var>[[mw:Special:MyLanguage/Manual:$wgServer|$wgServer]]</var> o equivalente del wiki del repositorio.",
+       "apihelp-query+filerepoinfo-paramvalue-prop-thumbUrl": "Ruta de la URL raíz para las rutas de las miniaturas.",
+       "apihelp-query+filerepoinfo-paramvalue-prop-url": "Ruta de la URL de la zona pública.",
        "apihelp-query+filerepoinfo-example-simple": "Obtener información acerca de los repositorios de archivos.",
        "apihelp-query+fileusage-summary": "Encontrar todas las páginas que utilizan los archivos dados.",
        "apihelp-query+fileusage-param-prop": "Qué propiedades se obtendrán:",
index 94ee481..53722c9 100644 (file)
@@ -15,7 +15,8 @@
                        "Esh77",
                        "שמזן",
                        "Or",
-                       "Umherirrender"
+                       "Umherirrender",
+                       "Strayblues"
                ]
        },
        "apihelp-main-extended-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:Special:MyLanguage/API:Main_page|תיעוד]]\n* [[mw:Special:MyLanguage/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:Special:MyLanguage/API:Errors_and_warnings|API: שגיאות ואזהרות]].\n\n<p class=\"mw-apisandbox-link\"><strong>בדיקה:</strong> לבדיקה קלה יותר של בקשות, אפשר להשתמש ב[[Special:ApiSandbox|ארגז החול של API]].</p>",
@@ -50,7 +51,7 @@
        "apihelp-block-param-watchuser": "לעקוב אחרי דף המשתמש ודף השיחה של המשתמש או של כתובת ה־IP.",
        "apihelp-block-param-tags": "תגי שינוי שיחולו על העיול ביומן החסימה.",
        "apihelp-block-param-partial": "חסימת משתמש מעריכת דפים או מרחבי שם מסוימים ולא מכל האתר.",
-       "apihelp-block-param-pagerestrictions": "רש×\99×\9eת ×\9b×\95תר×\95ת ×©×\94×\9eשת×\9eש ×\99×\99×\97ס×\9d ×\9e×\9cער×\95×\9a. ×\97×\9c ×¨×§ ×\9b×\90שר \"partial\" ×\9e×\95×\92×\93×\9c ל־true.",
+       "apihelp-block-param-pagerestrictions": "רש×\99×\9eת ×\9b×\95תר×\95ת ×©×\94×\9eשת×\9eש ×\99×\99×\97ס×\9d ×\9e×\9cער×\95×\9a. ×\97×\9c ×¨×§ ×\9b×\90שר \"partial\" ×\9e×\95×\92×\93ר ל־true.",
        "apihelp-block-example-ip-simple": "חסימת כתובת ה־IP‏ <kbd>192.0.2.5</kbd> לשלושה ימים עם הסיבה <kbd>First strike</kbd>.",
        "apihelp-block-example-user-complex": "חסימת המשתמש <kbd>Vandal</kbd> ללא הגבלת זמן עם הסיבה <kbd>Vandalism</kbd>, ומניעת יצירת חשבונות חדשים ושליחת דוא\"ל.",
        "apihelp-changeauthenticationdata-summary": "שינוי נתוני אימות עבור המשתמש הנוכחי.",
        "apihelp-compare-paramvalue-prop-comment": "התקציר על גרסאות ה־\"from\" וה־\"to\".",
        "apihelp-compare-paramvalue-prop-parsedcomment": "התקציר המפוענח על גרסאות ה־\"from\" וה־\"to\".",
        "apihelp-compare-paramvalue-prop-size": "הגודל של גרסאות ה־\"from\" וה־\"to\".",
-       "apihelp-compare-param-slots": "החזרת השוואות פרטניו למשבצות האלה, ולא השוואה אחת משולבת לכל המשבצות.",
+       "apihelp-compare-param-slots": "החזרת השוואות פרטניות למשבצות האלה, ולא השוואה אחת משולבת לכל המשבצות.",
        "apihelp-compare-example-1": "יצירת תיעוד שינוי בין גרסה 1 ל־2.",
        "apihelp-createaccount-summary": "יצירת חשבון משתמש חדש.",
        "apihelp-createaccount-param-preservestate": "אם <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> החזיר true עבור <samp>hasprimarypreservedstate</samp>, בקשות שמסומנות בתור <samp>primary-required</samp> אמורות להיות מושמטות. אם מוחזר ערך לא ריק ל־<samp>preservedusername</samp>, שם המשתמש הזה ישמש לפרמטר <var>username</var>.",
        "apierror-mimesearchdisabled": "חיפוש MIME כבוי במצב קמצן.",
        "apierror-missingcontent-pageid": "תוכן חסר עבור מזהה הדף $1.",
        "apierror-missingcontent-revid": "תוכן חסר עבור מזהה הגרסה $1.",
-       "apierror-missingcontent-revid-role": "ת×\95×\9b×\9f ×\97סר ×\9bבור מזהה גרסה $1 לתפקיד $2.",
+       "apierror-missingcontent-revid-role": "ת×\95×\9b×\9f ×\97סר ×¢בור מזהה גרסה $1 לתפקיד $2.",
        "apierror-missingparam-at-least-one-of": "דרוש {{PLURAL:$2|הפרמטר|לפחות אחד מהפרמטרים}} $1.",
        "apierror-missingparam-one-of": "דרוש {{PLURAL:$2|הפרמטר|אחד מהפרמטרים}} $1.",
        "apierror-missingparam": "הפרמטר <var>$1</var> צריך להיות מוגדר.",
index b959a6d..3f3c10a 100644 (file)
        "apierror-articleexists": "Den Artikel deen dir probéiert hutt unzeleeë gouf schonn ugeluecht.",
        "apierror-autoblocked": "Är IP-Adress gouf automatesch gespaart well se vun engem gespaarte Benotzer benotzt gouf.",
        "apierror-badip": "IP-Parameter ass net valabel.",
-       "apierror-blocked-partial": "Dir gouft gespaart fir dës säit z'änneren.",
+       "apierror-blocked-partial": "Dir gouft gespaart fir dës Säit z'änneren.",
        "apierror-cantblock": "Dir hutt net d'Recht fir Benotzer ze spären.",
        "apierror-cantimport": "Dir hutt net déi néideg Rechter fir Säiten z'importéieren.",
        "apierror-copyuploadbadurl": "D'Eroplueden ass vun dëser URL net erlaabt.",
index 3740243..310708b 100644 (file)
@@ -42,7 +42,7 @@
        "apihelp-block-param-allowusertalk": "Pozwala użytkownikowi edytować własną stronę dyskusji (zależy od <var>[[mw:Special:MyLanguage/Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "Jeżeli ten użytkownik jest już zablokowany, nadpisz blokadę.",
        "apihelp-block-param-watchuser": "Obserwuj stronę użytkownika lub IP oraz ich strony dyskusji.",
-       "apihelp-block-param-tags": "Zmieniaj tagi by potwierdzić wejście do bloku logów.",
+       "apihelp-block-param-tags": "Znaczniki do dodania przy wpisie w rejestrze.",
        "apihelp-block-param-partial": "Zablokuj użytkownikowi dostęp do wybranych stron lub przestrzeni nazw zamiast do całej witryny.",
        "apihelp-block-param-pagerestrictions": "Lista tytułów stron do zablokowania użytkownikowi możliwości edycji. Ma zastosowanie tylko gdy 'partial' (częściowa) jest ustawione na true (prawda).",
        "apihelp-block-example-ip-simple": "Zablokuj IP <kbd>192.0.2.5</kbd> na 3 dni z powodem <kbd>First strike</kbd>.",
index 2a66801..f615658 100644 (file)
        "apihelp-query+revisions+base-paramvalue-prop-parsedcomment": "Проаналізований коментар користувача до версії.",
        "apihelp-query+revisions+base-paramvalue-prop-content": "Вміст кожного слоту версії.",
        "apihelp-query+revisions+base-paramvalue-prop-tags": "Мітки версії.",
-       "apihelp-query+revisions+base-paramvalue-prop-parsetree": "<span class=\"apihelp-deprecated\">Deprecated.</span> Використовуйте натомість <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd> або <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>. Синтаксичне дерево XML вмісту версії (передбачає модель вмісту <code>$1</code>).",
+       "apihelp-query+revisions+base-paramvalue-prop-roles": "Перелічити ролі контентних слотів, які існують у версії.",
+       "apihelp-query+revisions+base-paramvalue-prop-parsetree": "Використовуйте натомість <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd> або <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>. Синтаксичне дерево XML вмісту версії (передбачає модель вмісту <code>$1</code>).",
+       "apihelp-query+revisions+base-param-slots": "Для яких слотів версії повернути дані, коли пов'язані зі слотами властивості зазначені у <var>$1props</var>. Якщо пропущено, буде повернуто дані зі слота <kbd>main</kbd> у зворотно-сумісному форматі.",
        "apihelp-query+revisions+base-param-limit": "Обмежити кількість версій, які буде видано.",
        "apihelp-query+revisions+base-param-expandtemplates": "Використовуйте натомість <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd>. Розгорнути шаблони у вмісті версії (передбачає $1prop=content).",
        "apihelp-query+revisions+base-param-generatexml": "Використовуйте натомість <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd> або <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>. Генерувати синтаксичне дерево XML для вмісту версії (передбачає $1prop=content; замінено на <kbd>$1prop=parsetree</kbd>).",
        "apihelp-query+search-paramvalue-prop-sectiontitle": "Додає заголовок відповідного розділу.",
        "apihelp-query+search-paramvalue-prop-categorysnippet": "Додає проаналізований уривок відповідної категорії.",
        "apihelp-query+search-paramvalue-prop-isfilematch": "Додає перемикач, який показує, є пошук знайшов вміст файлу.",
+       "apihelp-query+search-paramvalue-prop-extensiondata": "Додає додаткові дані, згенеровані розширеннями.",
        "apihelp-query+search-paramvalue-prop-score": "Інгорується.",
        "apihelp-query+search-paramvalue-prop-hasrelated": "Ігнорується.",
        "apihelp-query+search-param-limit": "Скільки всього сторінок виводити.",
        "apihelp-query+search-param-interwiki": "Включати інтервікі в результатах пошуку, якщо доступно.",
        "apihelp-query+search-param-backend": "Який бекенд пошуку використовувати, якщо не за замовчуванням.",
        "apihelp-query+search-param-enablerewrites": "Включити внутрішнє переписування запиту. Деякі пошукові бекенди можуть переписати запит так, щоб вони, теоретично, давали кращі результати, наприклад, виправивши орфографічні помилки.",
+       "apihelp-query+search-param-sort": "Встановити порядок сортування повернутих результатів.",
        "apihelp-query+search-example-simple": "Шукати <kbd>meaning</kbd>.",
        "apihelp-query+search-example-text": "Шукати в текстах <kbd>meaning</kbd>.",
        "apihelp-query+search-example-generator": "Отримати інформацію про сторінки, на яких знайдено <kbd>meaning</kbd>.",
        "apihelp-query+usercontribs-paramvalue-prop-sizediff": "Додає зміну розміру порівняно з попереднім редагуванням.",
        "apihelp-query+usercontribs-paramvalue-prop-flags": "Додає прапорці редагування.",
        "apihelp-query+usercontribs-paramvalue-prop-patrolled": "Відзначає патрульовані редагування.",
+       "apihelp-query+usercontribs-paramvalue-prop-autopatrolled": "Позначає автопатрульовані редагування.",
        "apihelp-query+usercontribs-paramvalue-prop-tags": "Перелічує мітки редагування.",
        "apihelp-query+usercontribs-param-show": "Показати лише елементи, що відповідають цим критеріям, наприклад, лише не незначні редагування: <kbd>$2show=!minor</kbd>.\n\nЯкщо вказано <kbd>$2show=patrolled</kbd> або <kbd>$2show=!patrolled</kbd>, версії, старіші ніж <var>[[mw:Special:MyLanguage/Manual:$wgRCMaxAge|$wgRCMaxAge]]</var> ($1 {{PLURAL:$1|секунда|секунди|секунд}}) не будуть показуватися.",
        "apihelp-query+usercontribs-param-tag": "Перерахувати лише версії, помічені цим теґом.",
        "apihelp-query+watchlist-paramvalue-prop-parsedcomment": "Додає проаналізований коментар редагування.",
        "apihelp-query+watchlist-paramvalue-prop-timestamp": "Додає часову мітку редагування.",
        "apihelp-query+watchlist-paramvalue-prop-patrol": "Позначає відпатрульовані редагування.",
+       "apihelp-query+watchlist-paramvalue-prop-autopatrol": "Позначає редагування, відпатрульовані автоматично.",
        "apihelp-query+watchlist-paramvalue-prop-sizes": "Додає стару і нову довжину сторінки.",
        "apihelp-query+watchlist-paramvalue-prop-notificationtimestamp": "Додає мітку часу, коли користувач був востаннє сповіщений про редагування.",
        "apihelp-query+watchlist-paramvalue-prop-loginfo": "Додає інформацію журналу, де це доречно.",
+       "apihelp-query+watchlist-paramvalue-prop-tags": "Перелічує мітки запису.",
        "apihelp-query+watchlist-param-show": "Показати лише елементи, що задовільняють ці критерії. Наприклад, для перегляду лише незначних змін, здійснених користувачами, що увійшли до системи, вкажіть $1show=minor|!anon.",
        "apihelp-query+watchlist-param-type": "Які типи змін показувати:",
        "apihelp-query+watchlist-paramvalue-type-edit": "Регулярні сторінки правок.",
        "api-help-parameters": "{{PLURAL:$1|Параметр|Параметри}}:",
        "api-help-param-deprecated": "Застарілий.",
        "api-help-param-required": "Цей параметр є обов'язковим.",
+       "api-help-param-templated": "Це — [[Special:ApiHelp/main#main/templatedparams|шаблонний параметр]].Коли робите запит, $2.",
+       "api-help-param-templated-var-first": "<var>&#x7B;$1&#x7D;</var> у назві параметра слід замінити значеннями <var>$2</var>",
+       "api-help-param-templated-var": "<var>&#x7B;$1&#x7D;</var> — значеннями <var>$2</var>",
        "api-help-datatypes-header": "Типи даних",
        "api-help-datatypes": "Вхідні дані у MediaWiki мають бути в NFC-нормалізованому UTF-8. MediaWiki може спробувати конвертувати вхідні дані іншого вигляду, але від цього можуть постраждати деякі операції (як [[Special:ApiHelp/edit|редагування]] з перевіркою MD5).\n\nДеякі типи параметрів у запитах API потребують ширшого пояснення:\n;boolean\n:Логічні параметри працюють як галочки HTML: якщо параметр вказано, не залежно від значення, він вважається істинним. Щоб значення було хибним, пропустіть параметр зовсім.\n;timestamp\n:Часові мітки можуть бути вказані у кількох форматах. Рекомендується час і дата в ISO 8601. Усі значення часу в UTC, будь-які часові пояси ігноруються.\n:* Дата і час ISO 8601, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd> (пунктуація і <kbd>Z</kbd> необов'язокві)\n:* Дата і час ISO 8601 з (ігнорованими) частками секунди, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>.<var>00001</var>Z</kbd> (дефіси, двокрапки та <kbd>Z</kbd> необов'язкові)\n:* Формат MediaWiki, <kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* Загальний числовий формат, <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (необов'язковий часовий пояс <kbd>GMT</kbd>, <kbd>+<var>##</var></kbd> або <kbd>-<var>##</var></kbd> ігнорується)\n:* Формат EXIF, <kbd><var>2001</var>:<var>01</var>:<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Формат RFC 2822 (часовий пояс може бути опущений), <kbd><var>Mon</var>, <var>15</var> <var>Jan</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Формат RFC 850 (часовий пояс може бути опущений), <kbd><var>Monday</var>, <var>15</var>-<var>Jan</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Формат C ctime, <kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* Секунди від 1970-01-01T00:00:00Z у вигляді цілого числа від 1 до 13 цифр (без <kbd>0</kbd>)\n:* Рядок <kbd>now</kbd>\n;альтернативний роздільник багатьох значень\n:Параметри, що приймають багато значень, зазвичай подаються зі значеннями, розділеними вертикальною рискою, наприклад, <kbd>param=value1|value2</kbd> або <kbd>param=value1%7Cvalue2</kbd>. Якщо значення повинне містити вертикальну риску, використовуйте як роздільник U+001F (роздільник одиниць) ''та'' поставте U+001F перед значенням, наприклад, <kbd>param=%1Fvalue1%1Fvalue2</kbd>.",
+       "api-help-templatedparams-header": "Шаблонні параметри",
+       "api-help-templatedparams": "Шаблонні параметри підтримують випадки, в яких модулю API необхідне значення для кожного значення якогось іншого параметра. Наприклад, якби був модуль API для запитів фруктів, у нього був би параметр <var>fruits</var> для зазначення, запит на які саме фрукти надсилається і шаблонний параметр <var>{fruit}-quantity</var> для зазначення, скільки саме кожного різновиду фруктів потрібно. Клієнт API, якому потрібні 1 яблуко, 5 бананів і 20 полуниць, таким чином, міг би надіслати запит у формі <kbd>fruits=apples|bananas|strawberries&apples-quantity=1&bananas-quantity=5&strawberries-quantity=20</kbd>.",
        "api-help-param-type-limit": "Тип: ціле число або <kbd>max</kbd>",
        "api-help-param-type-integer": "Тип: {{PLURAL:$1|1=ціле число|2=список цілих чисел}}",
        "api-help-param-type-boolean": "Тип: логічний ([[Special:ApiHelp/main#main/datatypes|деталі]])",
        "api-help-param-direction": "У якому напрямку перелічувати:\n;newer:Спочатку найстарші. Примітка: $1start має бути перед $1end.\n;older:Спочатку найновіші (за замовчуванням). Примітка: $1start має бути перед $1end.",
        "api-help-param-continue": "Коли доступно більше результатів, використовуйте це, щоб продовжити.",
        "api-help-param-no-description": "<span class=\"apihelp-empty\">(без опису)</span>",
+       "api-help-param-maxbytes": "Не може перевищувати $1 {{PLURAL:$1|байт|байти|байтів}}.",
+       "api-help-param-maxchars": "Не може бути довше $1 {{PLURAL:$1|символу|символів}}.",
        "api-help-examples": "{{PLURAL:$1|Приклад|Приклади}}:",
        "api-help-permissions": "{{PLURAL:$1|Дозвіл|Дозволи}}:",
        "api-help-permissions-granted-to": "{{PLURAL:$1|Надано|Надані}}: $2",
        "apierror-assertnameduserfailed": "Твердження, що ім'я користувача — «$1», виявилося хибним.",
        "apierror-assertuserfailed": "Твердження, що користувач перебуває в системі, виявилося хибним.",
        "apierror-autoblocked": "Вашу IP-адресу було автоматично заблоковано, оскільки її використовував заблокований користувач.",
+       "apierror-bad-badfilecontexttitle": "Недійсна назва в параметрі <var>$1badfilecontexttitle</var>.",
        "apierror-badconfig-resulttoosmall": "Значення <code>$wgAPIMaxResultSize</code> у цій вікі є надто малим, щоб містити базову інформацію щодо результатів.",
        "apierror-badcontinue": "Параметр продовження недійсний. Вам треба вказати початкове значення, отримане з попереднього запиту.",
        "apierror-baddiff": "Цю різницю версій неможливо відтворити: одна або й обидві версії не існують, або Ви не маєте прав на їх перегляд.",
        "apierror-bad-watchlist-token": "Надано некоректний токен списку спостереження. Будь ласка, подайте коректний токен на сторінці [[Special:Preferences|Спеціальна:Налаштування]].",
        "apierror-blockedfrommail": "Вам заблоковано можливість надсилання електронної пошти.",
        "apierror-blocked": "Вам заблоковано можливість редагування.",
+       "apierror-blocked-partial": "Вам заблоковано доступ до редагування цієї сторінки.",
        "apierror-botsnotsupported": "Інтерфейс не підтримується для ботів.",
        "apierror-cannot-async-upload-file": "Параметри <var>async</var> та <var>file</var> не можна поєднувати. Якщо Ви хочете, щоб завантажений Вами файл був опрацьований асинхронно, спершу завантажте його у сховок (використавши параметр <var>stash</var>), а тоді опублікуйте цей підготовлений файл (використавши <var>filekey</var> та <var>async</var>).",
        "apierror-cannotreauthenticate": "Ця діє недоступна, оскільки Вашу ідентичність неможливо перевірити.",
        "apierror-changeauth-norequest": "Не вдалося створити запит на зміну.",
        "apierror-chunk-too-small": "Мінімальний розмір шматка становить $1 {{PLURAL:$1|байт|байти|байтів}} для некінцевих шматків.",
        "apierror-cidrtoobroad": "$1 CIDR-діапазони, ширші ніж /$2, недозволені.",
+       "apierror-compare-maintextrequired": "Необхідний параметр <var>$1text-main</var>, коли <var>$1slots</var> містить <kbd>main</kbd> (неможливо вилучити головний слот).",
        "apierror-compare-no-title": "Неможливо попередньо зберегти трансформацію без назви. Спробуйте зазначити <var>fromtitle</var> або <var>totitle</var>.",
+       "apierror-compare-nosuchfromsection": "Немає розділу $1 у вмісті 'from'.",
+       "apierror-compare-nosuchtosection": "Немає розділу $1 у вмісті 'to'.",
+       "apierror-compare-nofromrevision": "Немає версії 'from'. Вкажіть <var>fromrev</var>, <var>fromtitle</var>, або <var>fromid</var>.",
+       "apierror-compare-notext": "Параметр <var>$1</var> не може використовуватись без <var>$2</var>.",
+       "apierror-compare-notorevision": "Немає версії 'to'. Вкажіть <var>torev</var>, <var>totitle</var>, або <var>toid</var>.",
+       "apierror-compare-relative-to-deleted": "Неможливо використати <kbd>torelative=$1</kbd> стосовно вилученої версії.",
        "apierror-compare-relative-to-nothing": "Відсутня версія 'from', якої б стосувалося <var>torelative</var>.",
        "apierror-contentserializationexception": "Невдача серіалізації вмісту: $1",
        "apierror-contenttoobig": "Наданий Вами вміст перевищує ліміт у $1 {{PLURAL:$1|кілобайт|кілобайти|кілобайтів}} розміру сторінки.",
        "apierror-emptynewsection": "Створення нових порожніх розділів неможливе.",
        "apierror-emptypage": "Створення нових порожніх сторінок недозволене.",
        "apierror-exceptioncaught": "[$1] Виявлено виняток: $2",
+       "apierror-exceptioncaughttype": "[$1] Виявлено виняток типу $2",
        "apierror-filedoesnotexist": "Файл не існує.",
        "apierror-fileexists-sharedrepo-perm": "Цільовий файл існує у загальному репозиторії. Використовуйте параметр <var>ignorewarnings</var>, щоб проігнорувати це.",
        "apierror-filenopath": "Не вдалося отримати шлях до локального файлу.",
        "apierror-invalidexpiry": "Недійсний час завершення «$1».",
        "apierror-invalid-file-key": "Недійсний ключ файлу.",
        "apierror-invalidlang": "Недійсний код мови для параметра <var>$1</var>.",
+       "apierror-invalidmethod": "Недійсний HTTP-метод. Розгляньте можливість використання GET або POST.",
        "apierror-invalidoldimage": "Параметр <var>oldimage</var> має недійсний формат.",
        "apierror-invalidparammix-cannotusewith": "Параметр <kbd>$1</kbd> не можна використовувати з <kbd>$2</kbd>.",
        "apierror-invalidparammix-mustusewith": "Параметр <kbd>$1</kbd> можна використовувати тільки з  <kbd>$2</kbd>.",
        "apierror-invalidurlparam": "Недійсне значення для <var>$1urlparam</var> (<kbd>$2=$3</kbd>).",
        "apierror-invaliduser": "Недійсне ім'я користувача «$1».",
        "apierror-invaliduserid": "Ідентифікатор <var>$1</var> недійсний.",
+       "apierror-maxbytes": "Параметр <var>$1</var> не може перевищувати $2 {{PLURAL:$2|байт|байти|байтів}}",
+       "apierror-maxchars": "Параметр <var>$1</var> не може бути довшим $2 {{PLURAL:$2|символу|символів}}",
        "apierror-maxlag-generic": "Очікування на сервер бази даних: затримка $1 {{PLURAL:$1|секунда|секунди|секунд}}.",
        "apierror-maxlag": "Очікування на $2: затримка $1 {{PLURAL:$1|секунда|секунди|секунд}}.",
        "apierror-mimesearchdisabled": "MIME-пошук вимкнений у скупому режимі.",
        "apierror-missingcontent-pageid": "Відсутній вміст для сторінки з ідентифікатором $1.",
        "apierror-missingcontent-revid": "Відсутній контент для ідентифікатора версії $1.",
+       "apierror-missingcontent-revid-role": "Відсутній вміст для ідентифікатора версії $1 для ролі $2.",
        "apierror-missingparam-at-least-one-of": "{{PLURAL:$2|Параметр|Щонайменше один параметрів}} $1 є обов'язковим.",
        "apierror-missingparam-one-of": "{{PLURAL:$2|Параметр|Один з параметрів}} $1 є обов'язковим.",
        "apierror-missingparam": "Параметр <var>$1</var> має бути заповнений.",
        "apiwarn-badurlparam": "Не вдалося парсити <var>$1urlparam</var> для $2. Використовується лише ширина і висота.",
        "apiwarn-badutf8": "Значення, вказане для <var>$1</var>, містить недійсні або ненормалізовані дані. Текстові дані мають бути дійсними, NFC-нормалізований Unicode без контрольних символів C0, окрім HT (\\t), LF (\\n), і CR (\\r).",
        "apiwarn-checktoken-percentencoding": "Перевірте, чи символи, такі як «+» у токені, пройшли правильне процентне кодування в URL.",
+       "apiwarn-compare-no-next": "Версія $2 є останньою версією $1, немає версії для <kbd>torelative=next</kbd>, з якою б можна було порівняти.",
+       "apiwarn-compare-no-prev": "Версія $2 є найстаршою версією $1, немає версії для <kbd>torelative=prev</kbd>, з якою б можна було порівняти.",
        "apiwarn-compare-nocontentmodel": "Не вдалося визначити контентну модель, припускаємо $1.",
        "apiwarn-deprecation-deletedrevs": "<kbd>list=deletedrevs</kbd> є застарілим. Будь ласка, використовуйте замість нього <kbd>prop=deletedrevisions</kbd> або <kbd>list=alldeletedrevisions</kbd>.",
        "apiwarn-deprecation-httpsexpected": "Використано HTTP, тоді як очікувалося використання HTTPS.",
        "apiwarn-deprecation-login-botpw": "Вхід в основний обліковий запис через <kbd>action=login</kbd> є застарілим, і може припинити працювати, без попередження. Щоб продовжити вхід у систему через <kbd>action=login</kbd>, див. [[Special:BotPasswords]]. Щоб безпечно продовжити, використовуючи вхід в основний обліковий запис, див. <kbd>action=clientlogin</kbd>.",
        "apiwarn-deprecation-login-nobotpw": "Вхід в основний обліковий запис через <kbd>action=login</kbd> є застарілим, і може припинити працювати, без попередження. Щоб безпечно увійти в систему, див. <kbd>action=clientlogin</kbd>.",
        "apiwarn-deprecation-login-token": "Отримання токена через <kbd>action=login</kbd> є застарілим. Використовуйте натомість <kbd>action=query&meta=tokens&type=login</kbd>.",
+       "apiwarn-deprecation-missingparam": "Оскільки <var>$1</var> не зазначено, для виведених даних використано старий формат. Цей формат є застарілим, і в майбутньому завжди використовуватиметься лише новий формат.",
        "apiwarn-deprecation-parameter": "Параметр <var>$1</var> — застарілий.",
        "apiwarn-deprecation-parse-headitems": "<kbd>prop=headitems</kbd> є застарілим, починаючи з MediaWiki 1.28. Використовуйте <kbd>prop=headhtml</kbd> при створенні нових документів HTML, або <kbd>prop=modules|jsconfigvars</kbd> при оновленні документа з боку клієнта.",
        "apiwarn-deprecation-purge-get": "Використання <kbd>action=purge</kbd> через GET є застарілим. Використовуйте POST замість цього.",
        "apiwarn-deprecation-withreplacement": "<kbd>$1</kbd> є застарілим. Будь ласка, використовуйте натомість <kbd>$2</kbd>.",
        "apiwarn-difftohidden": "Не вдалося відкрити версію r$1: вміст приховано.",
        "apiwarn-errorprinterfailed": "Невдача через помилку принтера. Буде здійснено повторну спробу без параметрів.",
+       "apiwarn-ignoring-invalid-templated-value": "При обробці шаблонних параметрів значення <kbd>$2</kbd> у <var>$1</var> проігноровано.",
        "apiwarn-invalidcategory": "«$1» не є категорією.",
        "apiwarn-invalidtitle": "«$1» не є коректною назвою.",
        "apiwarn-invalidxmlstylesheetext": "Таблиця стилів повинна мати розширення <code>.xsl</code>.",
index 822eb8d..6922d5e 100644 (file)
        "apihelp-main-param-servedby": "在結果中包括提出請求的主機名。",
        "apihelp-main-param-curtimestamp": "在結果中包括目前的時間戳。",
        "apihelp-main-param-responselanginfo": "在結果中包括<var>uselang</var>和<var>errorlang</var>所用的語言。",
+       "apihelp-main-param-errorformat": "用於警告和錯誤文字輸出的格式。\n; plaintext:移除掉 HTML 標籤,且實體已替換的 wiki 文字。\n; wikitext:未解析的 wiki 文字。\n; html:HTML。\n; raw:訊息鍵值與參數。\n; none:無文字輸出,僅含有錯誤代碼。\n; bc:用於 MediaWiki 1.29 之前版本的格式。會忽略 <var>errorlang</var> 與 <var>errorsuselocal</var>。",
        "apihelp-main-param-errorsuselocal": "若有指定,錯誤文字會使用來自 {{ns:MediaWiki}} 命名空間的本地自定義訊息。",
        "apihelp-block-summary": "封鎖使用者。",
        "apihelp-block-param-user": "要封鎖的使用者名稱、IP 位址或 IP 範圍。不能與 <var>$1userid</var> 一起使用",
        "apihelp-block-param-userid": "要封鎖的使用者 ID。不可與 <var>$1user</var> 一同使用。",
+       "apihelp-block-param-expiry": "期限時間。可以是相對時間(例如:<kbd>5 months</kbd> 或 <kbd>2 weeks</kbd>)或是絕對時間(例如:<kbd>2014-09-18T12:34:56Z</kbd>)。如果設定成 <kbd>infinite</kbd>、<kbd>indefinite</kbd>、或 <kbd>never</kbd>,封鎖將會無期限。",
        "apihelp-block-param-reason": "封鎖原因。",
        "apihelp-block-param-anononly": "僅封鎖匿名使用者 (禁止這個 IP 位址的匿名使用者編輯)。",
        "apihelp-block-param-nocreate": "禁止建立帳號。",
@@ -67,6 +69,7 @@
        "apihelp-compare-param-fromid": "要比對的第一個頁面 ID。",
        "apihelp-compare-param-fromrev": "要比對的第一個修訂。",
        "apihelp-compare-param-frompst": "在 <var>fromtext-&#x7B;slot}</var> 進行預先儲存轉換。",
+       "apihelp-compare-param-fromslots": "覆蓋由 <var>fromtitle</var>、<var>fromid</var> 或 <var>fromrev</var> 指定的修訂內容。\n\n此參數指定要變動的間隔。使用 <var>fromtext-&#x7B;slot}</var>、<var>fromcontentmodel-&#x7B;slot}</var>、與 <var>fromcontentformat-&#x7B;slot}</var> 來指定各間隔的內容。",
        "apihelp-compare-param-fromcontentmodel-{slot}": "<var>fromtext-&#x7B;slot}</var> 內容模組。若不提供,則會根據其它參數猜測。",
        "apihelp-compare-param-fromcontentformat-{slot}": "<var>fromtext-&#x7B;slot}</var> 的內容序列化格式。",
        "apihelp-compare-param-fromtext": "指定 <kbd>fromslots=main</kbd> 並改用 <var>fromtext-main</var>。",
@@ -84,6 +87,7 @@
        "apihelp-compare-param-prop": "要取得的資訊部份。",
        "apihelp-compare-paramvalue-prop-diff": "HTML 差異。",
        "apihelp-compare-paramvalue-prop-diffsize": "以位元組為單位的 HTML 差異大小。",
+       "apihelp-compare-paramvalue-prop-rel": "'from' 之前與 'to' 之後修訂的修訂 ID,若有的話。",
        "apihelp-compare-paramvalue-prop-ids": "「from」與「to」修訂的頁面與修訂 ID。",
        "apihelp-compare-paramvalue-prop-title": "「from」與「to」修訂的頁面標題。",
        "apihelp-compare-paramvalue-prop-user": "「from」與「to」修訂的使用者名稱與 ID。",
        "apihelp-expandtemplates-param-title": "頁面標題。",
        "apihelp-expandtemplates-param-text": "要轉換的 Wikitext。",
        "apihelp-expandtemplates-param-revid": "修訂 ID,用於 <code><nowiki>{{REVISIONID}}</nowiki></code> 和相似變數。",
+       "apihelp-expandtemplates-param-prop": "所要取得的資訊部份。\n\n請注意若沒有選定值,結果會包含 wiki 文字,輸出內容會採用棄用格式。",
        "apihelp-expandtemplates-paramvalue-prop-wikitext": "展開的 wiki 文字。",
+       "apihelp-expandtemplates-paramvalue-prop-categories": "任何呈現在輸入中,且未在 wiki 文字輸出裡表現出的分類。",
        "apihelp-expandtemplates-paramvalue-prop-properties": "透過在 wiki 文字裡擴充魔術字所定義的頁面屬性。",
        "apihelp-expandtemplates-paramvalue-prop-volatile": "輸出內容是否易變,且是否不應在頁面其它位置裡重複使用。",
+       "apihelp-expandtemplates-paramvalue-prop-ttl": "結果的快取應失效後的最長時間。",
        "apihelp-expandtemplates-paramvalue-prop-modules": "已請求添加至輸出內容之解析器功能的任何 ResourceLoader 模組。要載入請使用 <code>mw.loader.using()</code>。<kbd>jsconfigvars</kbd> 或 <kbd>encodedjsconfigvars</kbd> 其一必須與 <kbd>modules</kbd> 一同被請求。",
        "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "指定頁面的 JavaScript 設置變量。",
        "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "指定頁面的 JavaScript 設置變量為 JSON 字串。",
        "apihelp-feedrecentchanges-param-hidecategorization": "隱藏分類成員更改。",
        "apihelp-feedrecentchanges-param-tagfilter": "按標籤篩選。",
        "apihelp-feedrecentchanges-param-target": "僅顯示從該頁面所連結頁面上的變更。",
+       "apihelp-feedrecentchanges-param-showlinkedto": "改成顯示出連結到所選頁面的那些頁面之變更。",
        "apihelp-feedrecentchanges-example-simple": "顯示近期變更。",
        "apihelp-feedrecentchanges-example-30days": "顯示近期30天內的變動",
        "apihelp-feedwatchlist-summary": "返回監視清單摘要。",
        "apihelp-filerevert-example-revert": "回退 <kbd>Wiki.png</kbd> 至 <kbd>2011-03-05T15:27:40Z</kbd> 的版本。",
        "apihelp-help-summary": "顯示指定模組的說明。",
        "apihelp-help-param-modules": "顯示說明的模組(<var>action</var> 與 <var>format</var> 參數的值、或 <kbd>main</kbd>)。可透過 <kbd>+</kbd> 來指定子模組。",
+       "apihelp-help-param-submodules": "包含用於命名模組之子模組的說明。",
+       "apihelp-help-param-recursivesubmodules": "包含遞迴子模組的說明。",
        "apihelp-help-param-helpformat": "說明輸出的格式。",
        "apihelp-help-param-wrap": "在標準 API 回應結構裡包裹輸出。",
        "apihelp-help-param-toc": "在 HTML 輸出裡包含目錄。",
        "apihelp-import-extended-description": "請注意當發送用於 <var>xml</var> 參數的檔案時,必須以 HTTP POST 作為檔案上傳(註:使用 multipart/form-data)。",
        "apihelp-import-param-summary": "匯入摘要。",
        "apihelp-import-param-xml": "上載的 XML 檔。",
+       "apihelp-import-param-interwikiprefix": "用於上傳匯入:套用到未知使用者名稱的跨 wiki 字首(若 <var>$1assignknownusers</var> 有設定,也包含已知使用者)。",
        "apihelp-import-param-assignknownusers": "分配編輯至所命名使用者已存在本地的本地使用者。",
        "apihelp-import-param-interwikisource": "用於跨 wiki 匯入:匯入的來源 wiki。",
        "apihelp-import-param-interwikipage": "用於跨 wiki 匯入:匯入的頁面。",
        "apihelp-paraminfo-example-1": "顯示 <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>、<kbd>[[Special:ApiHelp/jsonfm|format=jsonfm]]</kbd>、<kbd>[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd>、和 <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> 的資訊。",
        "apihelp-paraminfo-example-2": "顯示 <kbd>[[Special:ApiHelp/query|action=query]]</kbd> 所有子模組的資訊。",
        "apihelp-parse-summary": "解析內容併回傳解析器輸出。",
+       "apihelp-parse-param-title": "文字所屬的頁面標題。若省略,需要指定 <var>$1contentmodel</var>,且 [[API]] 會用為標題使用。",
        "apihelp-parse-param-text": "要解析的文字。使用 <var>$1title</var> 或 <var>$1contentmodel</var> 來控制內容模組。",
        "apihelp-parse-param-revid": "修訂 ID,用於 <code><nowiki>{{REVISIONID}}</nowiki></code> 和相似變數。",
        "apihelp-parse-param-summary": "解析摘要。",
        "apihelp-parse-paramvalue-prop-parsetree": "修訂內容的 XML 解析樹狀(需要內容模組 <code>$1</code>)",
        "apihelp-parse-paramvalue-prop-parsewarnings": "提供發生在解析內容時的警告。",
        "apihelp-parse-param-wrapoutputclass": "要包在解析器輸出內容的 CSS 類別。",
+       "apihelp-parse-param-pst": "在解析之前執行在輸入裡的預先儲存轉換。僅當與文字使用時有效。",
        "apihelp-parse-param-effectivelanglinks": "包含由擴充提供的語言連結(與 <kbd>$1prop=langlinks</kbd> 一起使用)。",
        "apihelp-parse-param-disablelimitreport": "從解析輸出內容裡省略限制報告(\"NewPP limit report\")。",
        "apihelp-parse-param-disablepp": "請改用<var>$1disablelimitreport</var>。",
        "apihelp-parse-param-sectionpreview": "在段落預覽模式下解析(要同時啟用預覽模式)。",
        "apihelp-parse-param-disabletoc": "在輸出裡忽略目錄。",
        "apihelp-parse-param-useskin": "套用所選的外觀至解析輸出。可能會影響以下參數:<kbd>langlinks</kbd>、<kbd>headitems</kbd>、<kbd>modules</kbd>、<kbd>jsconfigvars</kbd>、<kbd>indicators</kbd>。",
+       "apihelp-parse-param-contentformat": "用於輸入文字的內容序列格式。僅與 $1text 一起使用時有效。",
+       "apihelp-parse-param-contentmodel": "輸入文字的內容模組。若省略則必須指定 $1title,且預設會是指定標題的模組。僅在與 $1text 一起使用時有效。",
        "apihelp-parse-example-page": "解析頁面。",
        "apihelp-parse-example-text": "解析 wikitext。",
        "apihelp-parse-example-texttitle": "解析 wikitext,指定頁面標題。",
        "apihelp-query-param-meta": "要取得的詮釋資料。",
        "apihelp-query-param-indexpageids": "包含一個列出所有回傳頁面 ID 的額外 pageids 段落 。",
        "apihelp-query-param-export": "匯出所有指定或已產生頁面的目前修訂。",
+       "apihelp-query-param-exportnowrap": "回傳不包裹在 XML 結果裡的匯出 XML(與 [[Special:Export]] 格式相同)。僅能與 $1export 一起使用。",
        "apihelp-query-param-iwurl": "若標題是跨 wiki 連結,是否取得完整的 URL。",
        "apihelp-query-param-rawcontinue": "回傳原始的 <samp>query-continue</samp> 資料來繼續。",
        "apihelp-query-example-revisions": "索取 <kbd>Main Page</kbd> 的[[Special:ApiHelp/query+siteinfo|站台資訊]]與[[Special:ApiHelp/query+revisions|修訂]]。",
        "apihelp-query+allmessages-param-lang": "以此語言來回傳訊息。",
        "apihelp-query+allmessages-param-from": "以此訊息來回傳訊息開頭。",
        "apihelp-query+allmessages-param-to": "以此訊息來回傳訊息結尾。",
+       "apihelp-query+allmessages-param-title": "當解析訊息時作為脈絡的頁面名稱(用於 $1enableparser 選項)。",
        "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+allpages-param-maxsize": "限制頁面最多只能這樣多的位元組。",
        "apihelp-query+allpages-param-prtype": "僅限受保護的頁面。",
        "apihelp-query+allpages-param-prlevel": "篩選基於保護級別的保護(必須與 $1prtype= 參數一起使用)。",
+       "apihelp-query+allpages-param-prfiltercascade": "基於 cascadingness 的篩選保護(當 $1prtype 未設定時忽略)。",
        "apihelp-query+allpages-param-limit": "要回傳的頁面總數。",
        "apihelp-query+allpages-param-dir": "列出時所採用的方向。",
        "apihelp-query+allpages-param-filterlanglinks": "篩選基於頁面是否有語言連結。請注意這可能不會考慮由擴充所添加的語言連結。",
        "apihelp-query+blocks-example-users": "列出使用者 <kbd>Alice</kbd> 與 <kbd>Bob</kbd> 的封鎖。",
        "apihelp-query+categories-summary": "列出頁面隸屬的所有分類。",
        "apihelp-query+categories-param-prop": "為各分類所要取得的額外屬性:",
+       "apihelp-query+categories-paramvalue-prop-sortkey": "添加用於分類的排序鍵值(十六進位字串)與排序鍵值字首(人類可讀的部份)。",
        "apihelp-query+categories-paramvalue-prop-timestamp": "添加當添加分類時的時間戳記。",
        "apihelp-query+categories-paramvalue-prop-hidden": "標記由 <code>_&#95;HIDDENCAT_&#95;</code> 隱藏的分類。",
        "apihelp-query+categories-param-show": "要顯示出的分類種類。",
        "apihelp-query+categorymembers-param-prop": "要包含的資訊部份:",
        "apihelp-query+categorymembers-paramvalue-prop-ids": "添加頁面 ID。",
        "apihelp-query+categorymembers-paramvalue-prop-title": "添加標題與頁面的命名空間 ID。",
-       "apihelp-query+categorymembers-paramvalue-prop-sortkey": "添加使用來在分類裡排序的排序鍵(十六進位字串)。",
+       "apihelp-query+categorymembers-paramvalue-prop-sortkey": "添加使用來在分類裡排序的排序鍵值(十六進位字串)。",
+       "apihelp-query+categorymembers-paramvalue-prop-sortkeyprefix": "添加用於在分類裡排序的排序鍵值字首(排序鍵值中人類可讀的部份)。",
        "apihelp-query+categorymembers-paramvalue-prop-type": "添加頁面已被分類的類型(<samp>page</samp>、<samp>subcat</samp> 或 <samp>file</samp>)。",
        "apihelp-query+categorymembers-paramvalue-prop-timestamp": "添加在頁面有被包含時的時間戳記。",
        "apihelp-query+categorymembers-param-namespace": "僅包含在這些命名空間的頁面。請注意可能會使用 <kbd>$1type=subcat</kbd> 或 <kbd>$1type=file</kbd>,而非 <kbd>$1namespace=14</kbd> 或 <kbd>6</kbd>。",
        "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-startsortkeyprefix": "開始列出的排序鍵值字首,僅能與 <kbd>$1sort=sortkey</kbd> 一起使用。覆蓋 <var>$1starthexsortkey</var>。",
+       "apihelp-query+categorymembers-param-endsortkeyprefix": "終止列出 <strong>before</strong> 的排序鍵值字首(並不是 <strong>at</strong>,若此值有出現將不會被包含到!),僅能與 $1sort=sortkey 一起使用。覆蓋 $1endhexsortkey。",
        "apihelp-query+categorymembers-param-startsortkey": "請改用 $1starthexsortkey。",
        "apihelp-query+categorymembers-param-endsortkey": "請改用 $1endhexsortkey。",
        "apihelp-query+categorymembers-example-simple": "取得在 <kbd>Category:Physics</kbd> 裡前 10 項的頁面。",
        "apihelp-query+contributors-param-limit": "要回傳的貢獻人員數量。",
        "apihelp-query+contributors-example-simple": "顯示頁面 <kbd>Main Page</kbd> 的貢獻者。",
        "apihelp-query+deletedrevisions-summary": "取得已刪除修訂的資訊。",
+       "apihelp-query+deletedrevisions-param-start": "要開始列舉的時間戳記。當處理修訂 ID 清單時會被忽略。",
+       "apihelp-query+deletedrevisions-param-end": "要停止列舉的時間戳記。當處理修訂 ID 清單時會被忽略。",
        "apihelp-query+deletedrevisions-param-tag": "僅列出以此標籤所標記的修訂。",
        "apihelp-query+deletedrevisions-param-user": "此列出由該使用者作出的修訂。",
        "apihelp-query+deletedrevisions-param-excludeuser": "不要列出由該使用者作出的修訂。",
        "apihelp-query+filerepoinfo-paramvalue-prop-favicon": "儲存庫 wiki 的網頁圖標 URL,來自於 <var>[[mw:Special:MyLanguage/Manual:$wgFavicon|$wgFavicon]]</var>。",
        "apihelp-query+filerepoinfo-paramvalue-prop-initialCapital": "檔案是否隱式地以大寫字母開頭。",
        "apihelp-query+filerepoinfo-paramvalue-prop-local": "儲存庫是否為本地端。",
+       "apihelp-query+filerepoinfo-paramvalue-prop-name": "儲存庫的要點 - 使用在像是 <var>[[mw:Special:MyLanguage/Manual:$wgForeignFileRepos|$wgForeignFileRepos]]</var> 與 [[Special:ApiHelp/query+imageinfo|imageinfo]] 所回傳的值。",
        "apihelp-query+filerepoinfo-paramvalue-prop-rootUrl": "圖片路徑的根 URL 路徑。",
        "apihelp-query+filerepoinfo-paramvalue-prop-scriptDirUrl": "用於儲存庫 wiki 的 MediaWiki 安裝之根 URL 路徑。",
        "apihelp-query+filerepoinfo-paramvalue-prop-server": "儲存庫 wiki 的 <var>[[mw:Special:MyLanguage/Manual:$wgServer|$wgServer]]</var> 或同等內容。",
        "apihelp-query+info-paramvalue-prop-displaytitle": "在頁面標題實際顯示處提供方式。",
        "apihelp-query+info-paramvalue-prop-varianttitles": "指定網站內容語言裡所有變體的顯示標題。",
        "apihelp-query+info-param-testactions": "測試目前使用者是否可執行頁面上的某項操作。",
+       "apihelp-query+info-param-testactionsdetail": "<var>$1testactions</var> 的詳情級別。使用[[Special:ApiHelp/main|主模組]]的 <var>errorformat</var> 與 <var>errorlang</var> 參數來控制訊息所回傳格式。",
        "apihelp-query+info-paramvalue-testactionsdetail-boolean": "回傳各操作的布林值。",
        "apihelp-query+info-paramvalue-testactionsdetail-full": "回傳描述出為何操作被禁止的訊息,或為允許則回傳空陣列。",
        "apihelp-query+info-paramvalue-testactionsdetail-quick": "像是 <kbd>full</kbd>;但跳過耗費的檢查。",
        "apihelp-query+logevents-paramvalue-prop-details": "列出日誌事件的額外詳細資訊。",
        "apihelp-query+logevents-paramvalue-prop-tags": "列出日誌事件的標籤。",
        "apihelp-query+logevents-param-type": "篩選僅為此類型的日誌項目。",
+       "apihelp-query+logevents-param-action": "篩選日誌操作僅限於此操作。覆蓋 <var>$1type</var>。在可用值清單裡,與像是 <kbd>action/*</kbd> 這種帶有萬用字元的值,可以在斜線(/)後方帶有不同字串。",
        "apihelp-query+logevents-param-start": "起始列舉的時間戳記。",
        "apihelp-query+logevents-param-end": "結束列舉的時間戳記。",
        "apihelp-query+logevents-param-user": "篩選由指定使用者所產生出的項目。",
        "apihelp-query+recentchanges-paramvalue-prop-autopatrolled": "標記可巡查編輯為自動巡查或否。",
        "apihelp-query+recentchanges-paramvalue-prop-loginfo": "添加日誌資訊(日誌 ID、日誌類型、其它)至日誌項目。",
        "apihelp-query+recentchanges-paramvalue-prop-tags": "列出項目的標籤。",
+       "apihelp-query+recentchanges-paramvalue-prop-sha1": "替與修訂關聯的項目添加內容核對和。",
        "apihelp-query+recentchanges-param-token": "請改用 <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>。",
        "apihelp-query+recentchanges-param-show": "僅顯示符合這些標準的項目。例如,僅查看由登入使用者做出的小編輯,請設定 $1show=minor|!anon。",
        "apihelp-query+recentchanges-param-limit": "要回傳變更總數。",
        "apihelp-query+redirects-example-generator": "取得所有重新導向至 [[Main Page]] 的資訊。",
        "apihelp-query+revisions-summary": "取得修訂的資訊。",
        "apihelp-query+revisions-paraminfo-singlepageonly": "僅能在單一頁面使用(模式 #2)。",
+       "apihelp-query+revisions-param-startid": "從這個修訂時間戳記開始列舉。修訂必須要存在,但不需屬於此頁面。",
+       "apihelp-query+revisions-param-endid": "在這個修訂時間戳記停止列舉。修訂必須要存在,但不需屬於此頁面。",
+       "apihelp-query+revisions-param-start": "從哪個修訂時間戳記來開始列舉。",
        "apihelp-query+revisions-param-end": "列舉至此的時間戳記。",
        "apihelp-query+revisions-param-user": "僅包含由使用者做出的修訂。",
        "apihelp-query+revisions-param-excludeuser": "不包含由使用者做出的修訂。",
        "apihelp-query+revisions+base-param-generatexml": "請改用 <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd> 或 <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>。產生用於修訂內容的 XML 解析樹狀(需要 $1prop=content)。",
        "apihelp-query+revisions+base-param-parse": "請改用 <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>。解析修訂內容(需要 $1prop=content)。基於效能緣故,若有使用此選項,$1limit 會被強制為 1。",
        "apihelp-query+revisions+base-param-section": "僅檢索此段落號碼的內容。",
+       "apihelp-query+revisions+base-param-difftotextpst": "請改用 <kbd>[[Special:ApiHelp/compare|action=compare]]</kbd>。在區別前,執行在文字上的預先儲存轉換。僅與 <var>$1difftotext</var> 使用有效。",
        "apihelp-query+revisions+base-param-contentformat": "使用於 <var>$1difftotext</var> 的序列化格式並預期用於內容輸出。",
        "apihelp-query+search-summary": "執行全文搜尋。",
        "apihelp-query+search-param-namespace": "僅以這些命名空間搜尋。",
        "apihelp-query+search-param-what": "要執行的搜尋類型。",
        "apihelp-query+search-param-info": "要回傳的詮釋資料。",
        "apihelp-query+search-param-prop": "要回傳的屬性:",
+       "apihelp-query+search-param-qiprofile": "要使用的查詢獨立配置(會影響排序演算法)。",
        "apihelp-query+search-paramvalue-prop-size": "添加以位元組為單位的頁面大小。",
        "apihelp-query+search-paramvalue-prop-wordcount": "添加頁面的字數。",
        "apihelp-query+search-paramvalue-prop-timestamp": "添加頁面自上一次編輯的時間戳記。",
        "apihelp-query+usercontribs-param-start": "回傳的起始時間戳記。",
        "apihelp-query+usercontribs-param-end": "回傳的終止時間戳記。",
        "apihelp-query+usercontribs-param-user": "要檢索貢獻的使用者。不能與 <var>$1userids</var> 或 <var>$1userprefix</var> 一起使用。",
+       "apihelp-query+usercontribs-param-userprefix": "索取所有名稱以此值為開頭使用者的貢獻。不能與 <var>$1user</var> 或 <var>$1userids</var> 一起使用。",
        "apihelp-query+usercontribs-param-userids": "要檢索貢獻的使用者 ID。不能與 <var>$1user</var> 或 <var>$1userprefix</var> 一起使用。",
        "apihelp-query+usercontribs-param-namespace": "僅列出這些命名空間的貢獻。",
        "apihelp-query+usercontribs-param-prop": "包含的額外資訊部份:",
        "apihelp-query+usercontribs-paramvalue-prop-patrolled": "標記已巡查編輯。",
        "apihelp-query+usercontribs-paramvalue-prop-autopatrolled": "標記自動巡查編輯。",
        "apihelp-query+usercontribs-paramvalue-prop-tags": "列出編輯的標籤。",
+       "apihelp-query+usercontribs-param-show": "僅顯示符合這些標準的項目,例如僅顯示非小編輯內容為:<kbd>$2show=!minor</kbd>。\n\n若有設定 <kbd>$2show=patrolled</kbd> 或 <kbd>$2show=!patrolled</kbd>,早於 <var>[[mw:Special:MyLanguage/Manual:$wgRCMaxAge|$wgRCMaxAge]]</var>($1 {{PLURAL:$1|秒|秒}})的修訂不會顯示出。",
        "apihelp-query+usercontribs-param-tag": "僅列出以此標籤所標記的修訂。",
        "apihelp-query+usercontribs-param-toponly": "僅列出最新修訂的更改。",
        "apihelp-query+usercontribs-example-user": "顯示使用者 <kbd>Example</kbd> 的貢獻。",
        "apihelp-query+userinfo-paramvalue-prop-blockinfo": "若目前使用者被封鎖則標記出由誰做出,以及出於何種原因。",
        "apihelp-query+userinfo-paramvalue-prop-hasmsg": "若目前使用者有等待訊息,添加 <samp>messages</samp> 標籤。",
        "apihelp-query+userinfo-paramvalue-prop-groups": "列出目前使用者所隸屬的所有群組。",
+       "apihelp-query+userinfo-paramvalue-prop-groupmemberships": "列出明確分配目前使用者的群組,包含各群組成員的逾期日期。",
        "apihelp-query+userinfo-paramvalue-prop-implicitgroups": "列出目前使用者自動列入為成員的所有群組。",
        "apihelp-query+userinfo-paramvalue-prop-rights": "列出目前使用者所擁有的權限。",
        "apihelp-query+userinfo-paramvalue-prop-changeablegroups": "列出目前使用者可以做出添加以及移除的群組。",
        "apihelp-query+users-param-prop": "要包含的資訊部份:",
        "apihelp-query+users-paramvalue-prop-blockinfo": "若使用者被封鎖則標記出由誰做出,以及出於何種原因。",
        "apihelp-query+users-paramvalue-prop-groups": "列出各使用者所隸屬的所有群組。",
+       "apihelp-query+users-paramvalue-prop-groupmemberships": "列出明確分配各使用者的群組,包含各群組成員的逾期日期。",
        "apihelp-query+users-paramvalue-prop-implicitgroups": "列出使用者自動列入為成員的所有群組。",
        "apihelp-query+users-paramvalue-prop-rights": "列出各使用者所擁有的權限。",
        "apihelp-query+users-paramvalue-prop-editcount": "添加使用者的編輯數。",
        "apihelp-query+watchlist-example-allrev": "索取在目前使用者監視清單裡所有近期變更頁面的資訊。",
        "apihelp-query+watchlist-example-generator": "索取在目前使用者監視清單裡近期變更頁面的頁面資訊。",
        "apihelp-query+watchlist-example-generator-rev": "索取在目前使用者監視清單裡近期變更頁面的修訂資訊。",
+       "apihelp-query+watchlist-example-wlowner": "列出在使用者 <kbd>Example</kbd> 監視清單裡近期變更頁面的最新修訂。",
        "apihelp-query+watchlistraw-summary": "列出在目前使用者的監視清單裡頭所有頁面。",
        "apihelp-query+watchlistraw-param-namespace": "僅列出在指定命名空間的頁面。",
        "apihelp-query+watchlistraw-param-limit": "每個請求要回傳的結果總數。",
        "api-format-prettyprint-header-only-html": "這是用來除錯的HTML呈現,不適合實際應用。\n\n參見[[mw:Special:MyLanguage/API|完整文件]]或[[Special:ApiHelp/main|API幫助]]以取得更多資訊。",
        "api-format-prettyprint-header-hyperlinked": "這是$1格式的HTML實現。HTML對除錯很有用,但不適合應用程式使用。\n\n指定<var>format</var>參數以更改輸出格式。要查看$1格式的非HTML實現,設置[$3 <kbd>format=$2</kbd>]。\n\n參見[[mw:API|完整文件]],或[[Special:ApiHelp/main|API幫助]]以獲取更多信息。",
        "api-format-prettyprint-status": "此回應將會傳回HTTP狀態$1 $2。",
+       "api-login-fail-aborted": "驗證需要使用者互動,該不被 <kbd>action=login</kbd> 所支援。要以 <kbd>action=login</kbd> 登入,請參閱 [[Special:BotPasswords]]。要繼續以主帳號登入,請參閱 <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>。",
        "api-login-fail-aborted-nobotpw": "驗證需要使用者互動,該不被 <kbd>action=login</kbd> 所支援。要登入請查看 <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>。",
        "api-login-fail-badsessionprovider": "當使用$1無法登入。",
        "api-login-fail-sameorigin": "當未套用相同原有方針時無法登入。",
        "apierror-blocked": "您已被封鎖,無法編輯。",
        "apierror-blocked-partial": "您已被禁止編輯此頁面。",
        "apierror-botsnotsupported": "此介面不支援機器人。",
+       "apierror-cannot-async-upload-file": "參數 <var>async</var> 與 <var>file</var> 不能結合。如果您想要對您上傳的檔案非同步處理,請先上傳至儲藏(使用 <var>stash</var> 參數)並非同步發佈儲藏檔案(使用 <var>filekey</var> 和 <var>async</var>)。",
        "apierror-cannotreauthenticate": "出於您的身份無法驗證,此操作不可用。",
        "apierror-cannotviewtitle": "您不被允許檢視$1。",
        "apierror-cantblock-email": "您沒有權限來封鎖使用者透過 wiki 來發送電子郵件。",
        "apierror-promised-nonwrite-api": "HTTP 標頭 <code>Promise-Non-Write-API-Action</code> 不能發送至寫入模式 API 模組。",
        "apierror-protect-invalidaction": "無效的保護類型「$1」。",
        "apierror-protect-invalidlevel": "無效的保護層級「$1」。",
+       "apierror-ratelimited": "您超過了您的比率限制,請稍後再試。",
        "apierror-readapidenied": "您需要有閱讀權限來使用此模組。",
        "apierror-readonly": "Wiki 目前為唯讀模式。",
        "apierror-reauthenticate": "於本工作階段還未核對身分,請重新核對。",
        "apiwarn-alldeletedrevisions-performance": "為了在產生標題時能有更好效能,請設定 <kbd>$1dir=newer</kbd>。",
        "apiwarn-badurlparam": "無法解析$2的 <var>$1urlparam</var>。這僅能用在寬度與高度。",
        "apiwarn-checktoken-percentencoding": "在 URL 裡進行適當百分比編碼的權杖中,檢查像是「+」的符號。",
+       "apiwarn-compare-no-next": "修訂 $2 是$1的最新修訂,<kbd>torelative=next</kbd> 目前沒有可用來比較的修訂。",
+       "apiwarn-compare-no-prev": "修訂 $2 是$1的最初修訂,<kbd>torelative=prev</kbd> 目前沒有可用來比較的修訂。",
        "apiwarn-compare-nocontentmodel": "沒有可確定的內容模組,假定為 $1。",
        "apiwarn-deprecation-deletedrevs": "<kbd>list=deletedrevs</kbd> 已棄用。請改用 <kbd>prop=deletedrevisions</kbd> 或 <kbd>list=alldeletedrevisions</kbd>。",
        "apiwarn-deprecation-httpsexpected": "當應為 HTTPS 時,HTTP 要被使用。",
index 4096f19..b6fedcd 100644 (file)
@@ -121,9 +121,10 @@ abstract class AbstractPasswordPrimaryAuthenticationProvider
                $reset = $this->getPasswordResetData( $username, $data );
 
                if ( !$reset && $this->config->get( 'InvalidPasswordReset' ) && !$status->isGood() ) {
+                       $hard = $status->getValue()['forceChange'] ?? false;
                        $reset = (object)[
-                               'msg' => $status->getMessage( 'resetpass-validity-soft' ),
-                               'hard' => false,
+                               'msg' => $status->getMessage( $hard ? 'resetpass-validity' : 'resetpass-validity-soft' ),
+                               'hard' => $hard,
                        ];
                }
 
index 0c9f615..9686555 100644 (file)
@@ -54,7 +54,8 @@ use Wikimedia\ObjectFactory;
  * Code that is related to some SessionProvider or PrimaryAuthenticationProvider can
  * create a (non-reserved) user by calling AuthManager::autoCreateUser(); it is then the provider's
  * responsibility to ensure that the user can authenticate somehow (see especially
- * PrimaryAuthenticationProvider::autoCreatedAccount()).
+ * PrimaryAuthenticationProvider::autoCreatedAccount()). The same functionality can also be used
+ * from Maintenance scripts such as createAndPromote.php.
  * If you are writing code that is not associated with such a provider and needs to create accounts
  * programmatically for real users, you should rethink your architecture. There is no good way to
  * do that as such code has no knowledge of what authentication methods are enabled on the wiki and
@@ -113,6 +114,9 @@ class AuthManager implements LoggerAwareInterface {
        /** Auto-creation is due to SessionManager */
        const AUTOCREATE_SOURCE_SESSION = \MediaWiki\Session\SessionManager::class;
 
+       /** Auto-creation is due to a Maintenance script */
+       const AUTOCREATE_SOURCE_MAINT = '::Maintenance::';
+
        /** @var AuthManager|null */
        private static $instance = null;
 
@@ -1542,13 +1546,16 @@ class AuthManager implements LoggerAwareInterface {
         * explicitly (e.g. from a maintenance script) is also fine.
         *
         * @param User $user User to auto-create
-        * @param string $source What caused the auto-creation? This must be the ID
-        *  of a PrimaryAuthenticationProvider or the constant self::AUTOCREATE_SOURCE_SESSION.
+        * @param string $source What caused the auto-creation? This must be one of:
+        *  - the ID of a PrimaryAuthenticationProvider,
+        *  - the constant self::AUTOCREATE_SOURCE_SESSION, or
+        *  - the constant AUTOCREATE_SOURCE_MAINT.
         * @param bool $login Whether to also log the user in
         * @return Status Good if user was created, Ok if user already existed, otherwise Fatal
         */
        public function autoCreateUser( User $user, $source, $login = true ) {
                if ( $source !== self::AUTOCREATE_SOURCE_SESSION &&
+                       $source !== self::AUTOCREATE_SOURCE_MAINT &&
                        !$this->getAuthenticationProvider( $source ) instanceof PrimaryAuthenticationProvider
                ) {
                        throw new \InvalidArgumentException( "Unknown auto-creation source: $source" );
index 5bf286d..3baa063 100644 (file)
@@ -32,12 +32,13 @@ class BlockRestriction {
        /**
         * Retrieves the restrictions from the database by block id.
         *
+        * @since 1.33
         * @param int|array $blockId
         * @param IDatabase|null $db
         * @return Restriction[]
         */
        public static function loadByBlockId( $blockId, IDatabase $db = null ) {
-               if ( is_null( $blockId ) || $blockId === [] ) {
+               if ( $blockId === null || $blockId === [] ) {
                        return [];
                }
 
@@ -58,6 +59,7 @@ class BlockRestriction {
        /**
         * Inserts the restrictions into the database.
         *
+        * @since 1.33
         * @param Restriction[] $restrictions
         * @return bool
         */
@@ -92,6 +94,7 @@ class BlockRestriction {
         * Updates the list of restrictions. This method does not allow removing all
         * of the restrictions. To do that, use ::deleteByBlockId().
         *
+        * @since 1.33
         * @param Restriction[] $restrictions
         * @return bool
         */
@@ -156,6 +159,7 @@ class BlockRestriction {
        /**
         * Updates the list of restrictions by parent id.
         *
+        * @since 1.33
         * @param int $parentBlockId
         * @param Restriction[] $restrictions
         * @return bool
@@ -195,6 +199,7 @@ class BlockRestriction {
        /**
         * Delete the restrictions.
         *
+        * @since 1.33
         * @param Restriction[]|null $restrictions
         * @throws MWException
         * @return bool
@@ -224,6 +229,7 @@ class BlockRestriction {
        /**
         * Delete the restrictions by Block ID.
         *
+        * @since 1.33
         * @param int|array $blockId
         * @throws MWException
         * @return bool
@@ -240,6 +246,7 @@ class BlockRestriction {
        /**
         * Delete the restrictions by Parent Block ID.
         *
+        * @since 1.33
         * @param int|array $parentBlockId
         * @throws MWException
         * @return bool
@@ -261,6 +268,7 @@ class BlockRestriction {
         * equality check as the restrictions do not have to contain the same block
         * ids.
         *
+        * @since 1.33
         * @param Restriction[] $a
         * @param Restriction[] $b
         * @return bool
@@ -305,6 +313,7 @@ class BlockRestriction {
        /**
         * Set the blockId on a set of restrictions and return a new set.
         *
+        * @since 1.33
         * @param int $blockId
         * @param Restriction[] $restrictions
         * @return Restriction[]
index 88a6a0f..8c3e27f 100644 (file)
@@ -37,6 +37,7 @@ abstract class AbstractRestriction implements Restriction {
        /**
         * Create Restriction.
         *
+        * @since 1.33
         * @param int $blockId
         * @param int $value
         */
index 209b148..b72baea 100644 (file)
@@ -56,6 +56,7 @@ class PageRestriction extends AbstractRestriction {
        /**
         * Set the title.
         *
+        * @since 1.33
         * @param \Title $title
         * @return self
         */
@@ -68,6 +69,7 @@ class PageRestriction extends AbstractRestriction {
        /**
         * Get Title.
         *
+        * @since 1.33
         * @return \Title|null
         */
        public function getTitle() {
index 5fefecc..a89ca38 100644 (file)
@@ -27,6 +27,7 @@ interface Restriction {
        /**
         * Gets the id of the block.
         *
+        * @since 1.33
         * @return int
         */
        public function getBlockId();
@@ -34,6 +35,7 @@ interface Restriction {
        /**
         * Sets the id of the block.
         *
+        * @since 1.33
         * @param int $blockId
         * @return self
         */
@@ -42,6 +44,7 @@ interface Restriction {
        /**
         * Gets the value of the restriction.
         *
+        * @since 1.33
         * @return int
         */
        public function getValue();
@@ -49,6 +52,7 @@ interface Restriction {
        /**
         * Gets the type of restriction
         *
+        * @since 1.33
         * @return string
         */
        public function getType();
@@ -56,6 +60,7 @@ interface Restriction {
        /**
         * Gets the id of the type of restriction. This id is used in the database.
         *
+        * @since 1.33
         * @return string
         */
        public function getTypeId();
@@ -63,6 +68,7 @@ interface Restriction {
        /**
         * Creates a new Restriction from a database row.
         *
+        * @since 1.33
         * @param \stdClass $row
         * @return self
         */
@@ -71,6 +77,7 @@ interface Restriction {
        /**
         * Convert a restriction object into a row array for insertion.
         *
+        * @since 1.33
         * @return array
         */
        public function toRow();
@@ -78,6 +85,7 @@ interface Restriction {
        /**
         * Determine if a restriction matches a given title.
         *
+        * @since 1.33
         * @param \Title $title
         * @return bool
         */
@@ -86,6 +94,7 @@ interface Restriction {
        /**
         * Determine if a restriction equals another restriction.
         *
+        * @since 1.33
         * @param Restriction $other
         * @return bool
         */
@@ -94,6 +103,7 @@ interface Restriction {
        /**
         * Create a unique hash of the block restriction based on the type and value.
         *
+        * @since 1.33
         * @return string
         */
        public function getHash();
index a39568b..7a54f95 100644 (file)
@@ -58,8 +58,6 @@ class ChangesList extends ContextSource {
        protected $filterGroups;
 
        /**
-        * Changeslist constructor
-        *
         * @param Skin|IContextSource $obj
         * @param array $filterGroups Array of ChangesListFilterGroup objects (currently optional)
         */
@@ -561,7 +559,13 @@ class ChangesList extends ContextSource {
                } else {
                        $s .= $this->getLanguage()->getDirMark() . Linker::userLink( $rc->mAttribs['rc_user'],
                                $rc->mAttribs['rc_user_text'] );
-                       $s .= Linker::userToolLinks( $rc->mAttribs['rc_user'], $rc->mAttribs['rc_user_text'] );
+                       $s .= Linker::userToolLinks(
+                               $rc->mAttribs['rc_user'], $rc->mAttribs['rc_user_text'],
+                               false, 0, null,
+                               // The text content of tools is not wrapped with parenthesises or "piped".
+                               // This will be handled in CSS (T205581).
+                               false
+                       );
                }
        }
 
index 32cfd13..a1cf468 100644 (file)
@@ -428,7 +428,7 @@ class ChangeTags {
                return [ $tagsToAdd, $tagsToRemove, $prevTags ];
        }
 
-       private static function getPrevTags( $rc_id = null, $rev_id = null, $log_id = null ) {
+       private static function getPrevTags( $rc_id = null, $log_id = null, $rev_id = null ) {
                $conds = array_filter(
                        [
                                'ct_rc_id' => $rc_id,
index f6109f1..3a2a971 100644 (file)
@@ -20,7 +20,7 @@
  * @file
  */
 class SquidPurgeClientPool {
-       /** @var array Array of SquidPurgeClient */
+       /** @var SquidPurgeClient[] */
        protected $clients = [];
 
        /** @var int */
@@ -46,11 +46,9 @@ class SquidPurgeClientPool {
        public function run() {
                $done = false;
                $startTime = microtime( true );
+
                while ( !$done ) {
                        $readSockets = $writeSockets = [];
-                       /**
-                        * @var $client SquidPurgeClient
-                        */
                        foreach ( $this->clients as $clientIndex => $client ) {
                                $sockets = $client->getReadSocketsForSelect();
                                foreach ( $sockets as $i => $socket ) {
@@ -61,9 +59,10 @@ class SquidPurgeClientPool {
                                        $writeSockets["$clientIndex/$i"] = $socket;
                                }
                        }
-                       if ( !count( $readSockets ) && !count( $writeSockets ) ) {
+                       if ( $readSockets === [] && $writeSockets === [] ) {
                                break;
                        }
+
                        $exceptSockets = null;
                        $timeout = min( $startTime + $this->timeout - microtime( true ), 1 );
                        Wikimedia\suppressWarnings();
@@ -74,6 +73,7 @@ class SquidPurgeClientPool {
                                        socket_strerror( socket_last_error() ) . "\n" );
                                break;
                        }
+
                        // Check for timeout, use 1% tolerance since we aimed at having socket_select()
                        // exit at precisely the overall timeout
                        if ( microtime( true ) - $startTime > $this->timeout * 0.99 ) {
@@ -101,6 +101,7 @@ class SquidPurgeClientPool {
                                }
                        }
                }
+
                foreach ( $this->clients as $client ) {
                        $client->close();
                }
index d249640..3f98003 100644 (file)
@@ -35,7 +35,7 @@
 class NumericUppercaseCollation extends UppercaseCollation {
 
        /**
-        * @var $digitTransformLang Language How to convert digits (usually the content language)
+        * @var Language $digitTransformLang How to convert digits (usually the content language)
         */
        private $digitTransformLang;
 
index 2c7afda..769364f 100644 (file)
@@ -20,8 +20,8 @@
  *
  * @file
  */
-use MediaWiki\Services\SalvageableService;
 use Wikimedia\Assert\Assert;
+use Wikimedia\Services\SalvageableService;
 
 /**
  * Factory class to create Config objects
index c87a344..96dc51c 100644 (file)
@@ -22,8 +22,8 @@
 
 namespace MediaWiki\Config;
 
-use MediaWiki\Services\SalvageableService;
 use Wikimedia\Assert\Assert;
+use Wikimedia\Services\SalvageableService;
 
 /**
  * Object which holds currently registered configuration options.
index 733d85a..c82b473 100644 (file)
@@ -180,6 +180,17 @@ abstract class AbstractContent implements Content {
        }
 
        /**
+        * Decides whether two Content objects are equal.
+        * Two Content objects MUST not be considered equal if they do not share the same content model.
+        * Two Content objects that are equal SHOULD have the same serialization.
+        *
+        * This default implementation relies on equalsInternal() to determin whether the
+        * Content objects are logically equivalent. Subclasses that need to implement a custom
+        * equality check should consider overriding equalsInternal(). Subclasses that override
+        * equals() itself MUST make sure that the implementation returns false for $that === null,
+        * and true for $that === this. It MUST also return false if $that does not have the same
+        * content model.
+        *
         * @since 1.21
         *
         * @param Content|null $that
@@ -201,7 +212,34 @@ abstract class AbstractContent implements Content {
                        return false;
                }
 
-               return $this->getNativeData() === $that->getNativeData();
+               // For type safety. Needed for odd cases like MessageContent using CONTENT_MODEL_WIKITEXT
+               if ( get_class( $that ) !== get_class( $this ) ) {
+                       return false;
+               }
+
+               return $this->equalsInternal( $that );
+       }
+
+       /**
+        * Checks whether $that is logically equal to this Content object.
+        *
+        * This method can be overwritten by subclasses that need to implement custom
+        * equality checks.
+        *
+        * This default implementation checks whether the serializations
+        * of $this and $that are the same: $this->serialize() === $that->serialize()
+        *
+        * Implementors can assume that $that is an instance of the same class
+        * as the present Content object, as long as equalsInternal() is only called
+        * by the standard implementation of equals().
+        *
+        * @note Do not call this method directly, call equals() instead.
+        *
+        * @param Content $that
+        * @return bool
+        */
+       protected function equalsInternal( Content $that ) {
+               return $this->serialize() === $that->serialize();
        }
 
        /**
index 1bb43f8..2637aa6 100644 (file)
@@ -77,6 +77,9 @@ interface Content {
         *
         * @since 1.21
         *
+        * @deprecated since 1.33 use getText() for TextContent instances.
+        *             For other content models, use specialized getters.
+        *
         * @return mixed The native representation of the content. Could be a
         *    string, a nested array structure, an object, a binary blob...
         *    anything, really.
@@ -199,9 +202,11 @@ interface Content {
         *
         * - Will return false if $that is null.
         * - Will return true if $that === $this.
-        * - Will return false if $that->getModel() != $this->getModel().
-        * - Will return false if $that->getNativeData() is not equal to $this->getNativeData(),
-        *   where the meaning of "equal" depends on the actual data model.
+        * - Will return false if $that->getModel() !== $this->getModel().
+        * - Will return false if get_class( $that ) !== get_class( $this )
+        * - Should return false if $that->getModel() == $this->getModel() and
+        *     $that is not semantically equivalent to $this, according to
+        *     the data model defined by $this->getModel().
         *
         * Implementations should be careful to make equals() transitive and reflexive:
         *
index 5c18a33..ae47b86 100644 (file)
@@ -88,7 +88,7 @@ abstract class ContentHandler {
                }
 
                if ( $content instanceof TextContent ) {
-                       return $content->getNativeData();
+                       return $content->getText();
                }
 
                wfDebugLog( 'ContentHandler', 'Accessing ' . $content->getModel() . ' content as text!' );
index a09cd15..d32fa88 100644 (file)
@@ -61,7 +61,7 @@ class CssContent extends TextContent {
                global $wgParser;
                // @todo Make pre-save transformation optional for script pages
 
-               $text = $this->getNativeData();
+               $text = $this->getText();
                $pst = $wgParser->preSaveTransform( $text, $title, $user, $popts );
 
                return new static( $pst );
@@ -73,7 +73,7 @@ class CssContent extends TextContent {
        protected function getHtml() {
                $html = "";
                $html .= "<pre class=\"mw-code mw-css\" dir=\"ltr\">\n";
-               $html .= htmlspecialchars( $this->getNativeData() );
+               $html .= htmlspecialchars( $this->getText() );
                $html .= "\n</pre>\n";
 
                return $html;
@@ -99,7 +99,7 @@ class CssContent extends TextContent {
                        return $this->redirectTarget;
                }
                $this->redirectTarget = null;
-               $text = $this->getNativeData();
+               $text = $this->getText();
                if ( strpos( $text, '/* #REDIRECT */' ) === 0 ) {
                        // Extract the title from the url
                        preg_match( '/title=(.*?)&action=raw/', $text, $matches );
index 69ed8d4..e637798 100644 (file)
@@ -60,7 +60,7 @@ class JavaScriptContent extends TextContent {
                // @todo Make pre-save transformation optional for script pages
                // See T34858
 
-               $text = $this->getNativeData();
+               $text = $this->getText();
                $pst = $wgParser->preSaveTransform( $text, $title, $user, $popts );
 
                return new static( $pst );
@@ -72,7 +72,7 @@ class JavaScriptContent extends TextContent {
        protected function getHtml() {
                $html = "";
                $html .= "<pre class=\"mw-code mw-js\" dir=\"ltr\">\n";
-               $html .= htmlspecialchars( $this->getNativeData() );
+               $html .= htmlspecialchars( $this->getText() );
                $html .= "\n</pre>\n";
 
                return $html;
@@ -101,7 +101,7 @@ class JavaScriptContent extends TextContent {
                        return $this->redirectTarget;
                }
                $this->redirectTarget = null;
-               $text = $this->getNativeData();
+               $text = $this->getText();
                if ( strpos( $text, '/* #REDIRECT */' ) === 0 ) {
                        // Extract the title from the url
                        preg_match( '/title=(.*?)\\\\u0026action=raw/', $text, $matches );
index 7d8f67c..0f8a9a9 100644 (file)
@@ -36,7 +36,7 @@ class JsonContent extends TextContent {
         */
        public function getJsonData() {
                wfDeprecated( __METHOD__, '1.25' );
-               return FormatJson::decode( $this->getNativeData(), true );
+               return FormatJson::decode( $this->getText(), true );
        }
 
        /**
@@ -49,7 +49,7 @@ class JsonContent extends TextContent {
         */
        public function getData() {
                if ( $this->jsonParse === null ) {
-                       $this->jsonParse = FormatJson::parse( $this->getNativeData() );
+                       $this->jsonParse = FormatJson::parse( $this->getText() );
                }
                return $this->jsonParse;
        }
index b21c6f4..5626b54 100644 (file)
@@ -80,9 +80,22 @@ class MessageContent extends AbstractContent {
        /**
         * Returns the message object, with any parameters already substituted.
         *
+        * @deprecated since 1.33 use getMessage() instead.
+        *
         * @return Message The message object.
         */
        public function getNativeData() {
+               return $this->getMessage();
+       }
+
+       /**
+        * Returns the message object, with any parameters already substituted.
+        *
+        * @since 1.33
+        *
+        * @return Message The message object.
+        */
+       public function getMessage() {
                // NOTE: Message objects are mutable. Cloning here makes MessageContent immutable.
                return clone $this->mMessage;
        }
@@ -131,7 +144,8 @@ class MessageContent extends AbstractContent {
         * @see Content::copy
         */
        public function copy() {
-               // MessageContent is immutable (because getNativeData() returns a clone of the Message object)
+               // MessageContent is immutable (because getNativeData() and getMessage()
+               //   returns a clone of the Message object)
                return $this;
        }
 
index 0198a0d..750b958 100644 (file)
@@ -73,7 +73,7 @@ class TextContent extends AbstractContent {
        }
 
        public function getTextForSummary( $maxlength = 250 ) {
-               $text = $this->getNativeData();
+               $text = $this->getText();
 
                $truncatedtext = MediaWikiServices::getInstance()->getContentLanguage()->
                        truncateForDatabase( preg_replace( "/[\n\r]/", ' ', $text ), max( 0, $maxlength ) );
@@ -87,7 +87,7 @@ class TextContent extends AbstractContent {
         * @return int
         */
        public function getSize() {
-               $text = $this->getNativeData();
+               $text = $this->getText();
 
                return strlen( $text );
        }
@@ -118,9 +118,22 @@ class TextContent extends AbstractContent {
        /**
         * Returns the text represented by this Content object, as a string.
         *
-        * @return string The raw text.
+        * @deprecated since 1.33 use getText() instead.
+        *
+        * @return string The raw text. Subclasses may guarantee a specific syntax here.
         */
        public function getNativeData() {
+               return $this->getText();
+       }
+
+       /**
+        * Returns the text represented by this Content object, as a string.
+        *
+        * @since 1.33
+        *
+        * @return string The raw text.
+        */
+       public function getText() {
                return $this->mText;
        }
 
@@ -130,7 +143,7 @@ class TextContent extends AbstractContent {
         * @return string The raw text.
         */
        public function getTextForSearchIndex() {
-               return $this->getNativeData();
+               return $this->getText();
        }
 
        /**
@@ -145,7 +158,7 @@ class TextContent extends AbstractContent {
                $wikitext = $this->convert( CONTENT_MODEL_WIKITEXT, 'lossy' );
 
                if ( $wikitext ) {
-                       return $wikitext->getNativeData();
+                       return $wikitext->getText();
                } else {
                        return false;
                }
@@ -181,7 +194,7 @@ class TextContent extends AbstractContent {
         * @return Content
         */
        public function preSaveTransform( Title $title, User $user, ParserOptions $popts ) {
-               $text = $this->getNativeData();
+               $text = $this->getText();
                $pst = self::normalizeLineEndings( $text );
 
                return ( $text === $pst ) ? $this : new static( $pst, $this->getModel() );
@@ -208,8 +221,8 @@ class TextContent extends AbstractContent {
                        $lang = MediaWikiServices::getInstance()->getContentLanguage();
                }
 
-               $otext = $this->getNativeData();
-               $ntext = $that->getNativeData();
+               $otext = $this->getText();
+               $ntext = $that->getText();
 
                # Note: Use native PHP diff, external engines don't give us abstract output
                $ota = explode( "\n", $lang->segmentForDiff( $otext ) );
@@ -244,7 +257,7 @@ class TextContent extends AbstractContent {
 
                if ( in_array( $this->getModel(), $wgTextModelsToParse ) ) {
                        // parse just to get links etc into the database, HTML is replaced below.
-                       $output = $wgParser->parse( $this->getNativeData(), $title, $options, true, true, $revId );
+                       $output = $wgParser->parse( $this->getText(), $title, $options, true, true, $revId );
                }
 
                if ( $generateHtml ) {
@@ -291,7 +304,7 @@ class TextContent extends AbstractContent {
         * @return string An HTML representation of the content
         */
        protected function getHighlightHtml() {
-               return htmlspecialchars( $this->getNativeData() );
+               return htmlspecialchars( $this->getText() );
        }
 
        /**
@@ -318,7 +331,7 @@ class TextContent extends AbstractContent {
 
                if ( $toHandler instanceof TextContentHandler ) {
                        // NOTE: ignore content serialization format - it's just text anyway.
-                       $text = $this->getNativeData();
+                       $text = $this->getText();
                        $converted = $toHandler->unserializeContent( $text );
                }
 
index 0978ffc..e3dc187 100644 (file)
@@ -45,7 +45,7 @@ class TextContentHandler extends ContentHandler {
        public function serializeContent( Content $content, $format = null ) {
                $this->checkFormat( $format );
 
-               return $content->getNativeData();
+               return $content->getText();
        }
 
        /**
index 517d807..3e2313c 100644 (file)
@@ -61,7 +61,7 @@ class WikitextContent extends TextContent {
        public function getSection( $sectionId ) {
                global $wgParser;
 
-               $text = $this->getNativeData();
+               $text = $this->getText();
                $sect = $wgParser->getSection( $text, $sectionId, false );
 
                if ( $sect === false ) {
@@ -91,8 +91,8 @@ class WikitextContent extends TextContent {
                                "section uses $sectionModelId." );
                }
 
-               $oldtext = $this->getNativeData();
-               $text = $with->getNativeData();
+               $oldtext = $this->getText();
+               $text = $with->getText();
 
                if ( strval( $sectionId ) === '' ) {
                        return $with; # XXX: copy first?
@@ -131,7 +131,7 @@ class WikitextContent extends TextContent {
                $text = wfMessage( 'newsectionheaderdefaultlevel' )
                        ->rawParams( $header )->inContentLanguage()->text();
                $text .= "\n\n";
-               $text .= $this->getNativeData();
+               $text .= $this->getText();
 
                return new static( $text );
        }
@@ -149,7 +149,7 @@ class WikitextContent extends TextContent {
        public function preSaveTransform( Title $title, User $user, ParserOptions $popts ) {
                global $wgParser;
 
-               $text = $this->getNativeData();
+               $text = $this->getText();
                $pst = $wgParser->preSaveTransform( $text, $title, $user, $popts );
 
                if ( $text === $pst ) {
@@ -178,7 +178,7 @@ class WikitextContent extends TextContent {
        public function preloadTransform( Title $title, ParserOptions $popts, $params = [] ) {
                global $wgParser;
 
-               $text = $this->getNativeData();
+               $text = $this->getText();
                $plt = $wgParser->getPreloadText( $text, $title, $popts, $params );
 
                return new static( $plt );
@@ -202,12 +202,12 @@ class WikitextContent extends TextContent {
 
                if ( $wgMaxRedirects < 1 ) {
                        // redirects are disabled, so quit early
-                       $this->redirectTargetAndText = [ null, $this->getNativeData() ];
+                       $this->redirectTargetAndText = [ null, $this->getText() ];
                        return $this->redirectTargetAndText;
                }
 
                $redir = MediaWikiServices::getInstance()->getMagicWordFactory()->get( 'redirect' );
-               $text = ltrim( $this->getNativeData() );
+               $text = ltrim( $this->getText() );
                if ( $redir->matchStartAndRemove( $text ) ) {
                        // Extract the first link and see if it's usable
                        // Ensure that it really does come directly after #REDIRECT
@@ -223,7 +223,7 @@ class WikitextContent extends TextContent {
                                $title = Title::newFromText( $m[1] );
                                // If the title is a redirect to bad special pages or is invalid, return null
                                if ( !$title instanceof Title || !$title->isValidRedirectTarget() ) {
-                                       $this->redirectTargetAndText = [ null, $this->getNativeData() ];
+                                       $this->redirectTargetAndText = [ null, $this->getText() ];
                                        return $this->redirectTargetAndText;
                                }
 
@@ -232,7 +232,7 @@ class WikitextContent extends TextContent {
                        }
                }
 
-               $this->redirectTargetAndText = [ null, $this->getNativeData() ];
+               $this->redirectTargetAndText = [ null, $this->getText() ];
                return $this->redirectTargetAndText;
        }
 
@@ -271,7 +271,7 @@ class WikitextContent extends TextContent {
                # so the regex has to be fairly general
                $newText = preg_replace( '/ \[ \[  [^\]]*  \] \] /x',
                        '[[' . $target->getFullText() . ']]',
-                       $this->getNativeData(), 1 );
+                       $this->getText(), 1 );
 
                return new static( $newText );
        }
@@ -408,7 +408,7 @@ class WikitextContent extends TextContent {
         * @see Content::matchMagicWord()
         */
        public function matchMagicWord( MagicWord $word ) {
-               return $word->match( $this->getNativeData() );
+               return $word->match( $this->getText() );
        }
 
 }
index ab157f5..191c718 100644 (file)
@@ -162,4 +162,24 @@ class WikitextContentHandler extends TextContentHandler {
                return $fields;
        }
 
+       /**
+        * Returns the content's text as-is.
+        *
+        * @param Content $content
+        * @param string|null $format The serialization format to check
+        *
+        * @return mixed
+        */
+       public function serializeContent( Content $content, $format = null ) {
+               $this->checkFormat( $format );
+
+               // NOTE: MessageContent also uses CONTENT_MODEL_WIKITEXT, but it's not a TextContent!
+               // Perhaps MessageContent should use a separate ContentHandler instead.
+               if ( $content instanceof MessageContent ) {
+                       return $content->getMessage()->plain();
+               }
+
+               return parent::serializeContent( $content, $format );
+       }
+
 }
index 628b47b..6af6de5 100644 (file)
@@ -589,7 +589,7 @@ class DatabaseOracle extends Database {
        public function upsert( $table, array $rows, array $uniqueIndexes, array $set,
                $fname = __METHOD__
        ) {
-               if ( !count( $rows ) ) {
+               if ( $rows === [] ) {
                        return true; // nothing to do
                }
 
index 1cc6646..e2cdd82 100644 (file)
@@ -85,6 +85,7 @@ class TextSlotDiffRenderer extends SlotDiffRenderer {
        public function setLanguage( Language $language ) {
                $this->language = $language;
        }
+
        /**
         * @param int $cutoff
         * @see $wgWikiDiff2MovedParagraphDetectionCutoff
index 81dc78d..354cc61 100644 (file)
@@ -58,7 +58,7 @@ class TextboxBuilder {
         * @return mixed[]
         */
        public function mergeClassesIntoAttributes( array $classes, array $attribs ) {
-               if ( !count( $classes ) ) {
+               if ( $classes === [] ) {
                        return $attribs;
                }
 
index df7111a..9f22815 100644 (file)
@@ -18,6 +18,7 @@ class MWUnknownContentModelException extends MWException {
                        'handle this content model.' );
                $this->modelId = $modelId;
        }
+
        /** @return string */
        public function getModelId() {
                return $this->modelId;
index 6a2d3bf..b0516b6 100644 (file)
@@ -52,11 +52,7 @@ class BaseDump {
                $this->infiles = explode( ';', $infile );
                $this->reader = new XMLReader();
                $infile = array_shift( $this->infiles );
-               if ( defined( 'LIBXML_PARSEHUGE' ) ) {
-                       $this->reader->open( $infile, null, LIBXML_PARSEHUGE );
-               } else {
-                       $this->reader->open( $infile );
-               }
+               $this->reader->open( $infile, null, LIBXML_PARSEHUGE );
        }
 
        /**
index 088c7b1..75e149c 100644 (file)
@@ -128,7 +128,7 @@ class DumpFilter {
         * @param object $page
         * @return bool
         */
-       function pass( $page ) {
+       protected function pass( $page ) {
                return true;
        }
 }
index 12b9b55..0b8afa2 100644 (file)
@@ -84,7 +84,7 @@ class DumpNamespaceFilter extends DumpFilter {
         * @param object $page
         * @return bool
         */
-       function pass( $page ) {
+       protected function pass( $page ) {
                $match = isset( $this->namespaces[$page->page_namespace] );
                return $this->invert xor $match;
        }
index d99b1b1..c201c76 100644 (file)
@@ -31,7 +31,7 @@ class DumpNotalkFilter extends DumpFilter {
         * @param object $page
         * @return bool
         */
-       function pass( $page ) {
+       protected function pass( $page ) {
                return !MWNamespace::isTalk( $page->page_namespace );
        }
 }
index b3eae90..bb65b0a 100644 (file)
@@ -405,7 +405,7 @@ class LocalRepo extends FileRepo {
         * @return array[] An Array of arrays or iterators of file objects and the hash as key
         */
        function findBySha1s( array $hashes ) {
-               if ( !count( $hashes ) ) {
+               if ( $hashes === [] ) {
                        return []; // empty parameter
                }
 
index 4a84cff..6a3e819 100644 (file)
@@ -169,7 +169,7 @@ class ArchivedFile {
                        $conds['fa_sha1'] = $this->sha1;
                }
 
-               if ( !count( $conds ) ) {
+               if ( $conds === [] ) {
                        throw new MWException( "No specific information for retrieving archived file" );
                }
 
index a8d1fb5..f883dea 100644 (file)
@@ -706,7 +706,7 @@ class LocalFile extends File {
         * Fix assorted version-related problems with the image row by reloading it from the file
         */
        function upgradeRow() {
-               $this->lock(); // begin
+               $this->lock();
 
                $this->loadFromFile();
 
@@ -746,7 +746,7 @@ class LocalFile extends File {
 
                $this->invalidateCache();
 
-               $this->unlock(); // done
+               $this->unlock();
                $this->upgraded = true; // avoid rework/retries
        }
 
@@ -1347,7 +1347,7 @@ class LocalFile extends File {
                // Trim spaces on user supplied text
                $comment = trim( $comment );
 
-               $this->lock(); // begin
+               $this->lock();
                $status = $this->publish( $src, $flags, $options );
 
                if ( $status->successCount >= 2 ) {
@@ -1378,8 +1378,7 @@ class LocalFile extends File {
                        }
                }
 
-               $this->unlock(); // done
-
+               $this->unlock();
                return $status;
        }
 
@@ -1858,7 +1857,7 @@ class LocalFile extends File {
                        return $this->readOnlyFatalStatus();
                }
 
-               $this->lock(); // begin
+               $this->lock();
 
                $archiveName = wfTimestamp( TS_MW ) . '!' . $this->getName();
                $archiveRel = $this->getArchiveRel( $archiveName );
@@ -1889,8 +1888,7 @@ class LocalFile extends File {
                        }
                }
 
-               $this->unlock(); // done
-
+               $this->unlock();
                return $status;
        }
 
@@ -1919,11 +1917,11 @@ class LocalFile extends File {
                wfDebugLog( 'imagemove', "Got request to move {$this->name} to " . $target->getText() );
                $batch = new LocalFileMoveBatch( $this, $target );
 
-               $this->lock(); // begin
+               $this->lock();
                $batch->addCurrent();
                $archiveNames = $batch->addOlds();
                $status = $batch->execute();
-               $this->unlock(); // done
+               $this->unlock();
 
                wfDebugLog( 'imagemove', "Finished moving {$this->name}" );
 
@@ -1977,12 +1975,12 @@ class LocalFile extends File {
 
                $batch = new LocalFileDeleteBatch( $this, $reason, $suppress, $user );
 
-               $this->lock(); // begin
+               $this->lock();
                $batch->addCurrent();
                // Get old version relative paths
                $archiveNames = $batch->addOlds();
                $status = $batch->execute();
-               $this->unlock(); // done
+               $this->unlock();
 
                if ( $status->isOK() ) {
                        DeferredUpdates::addUpdate( SiteStatsUpdate::factory( [ 'images' => -1 ] ) );
@@ -2035,10 +2033,10 @@ class LocalFile extends File {
 
                $batch = new LocalFileDeleteBatch( $this, $reason, $suppress, $user );
 
-               $this->lock(); // begin
+               $this->lock();
                $batch->addOld( $archiveName );
                $status = $batch->execute();
-               $this->unlock(); // done
+               $this->unlock();
 
                $this->purgeOldThumbnails( $archiveName );
                if ( $status->isOK() ) {
@@ -2071,7 +2069,7 @@ class LocalFile extends File {
 
                $batch = new LocalFileRestoreBatch( $this, $unsuppress );
 
-               $this->lock(); // begin
+               $this->lock();
                if ( !$versions ) {
                        $batch->addAll();
                } else {
@@ -2084,8 +2082,8 @@ class LocalFile extends File {
                        $cleanupStatus->failCount = 0;
                        $status->merge( $cleanupStatus );
                }
-               $this->unlock(); // done
 
+               $this->unlock();
                return $status;
        }
 
@@ -2182,7 +2180,7 @@ class LocalFile extends File {
                $this->load();
                // Initialise now if necessary
                if ( $this->sha1 == '' && $this->fileExists ) {
-                       $this->lock(); // begin
+                       $this->lock();
 
                        $this->sha1 = $this->repo->getFileSha1( $this->getPath() );
                        if ( !wfReadOnly() && strval( $this->sha1 ) != '' ) {
@@ -2194,7 +2192,7 @@ class LocalFile extends File {
                                $this->invalidateCache();
                        }
 
-                       $this->unlock(); // done
+                       $this->unlock();
                }
 
                return $this->sha1;
@@ -3262,7 +3260,7 @@ class LocalFileMoveBatch {
                $status = $repo->newGood();
                $destFile = wfLocalFile( $this->target );
 
-               $this->file->lock(); // begin
+               $this->file->lock();
                $destFile->lock(); // quickly fail if destination is not available
 
                $triplets = $this->getMoveTriplets();
@@ -3313,7 +3311,7 @@ class LocalFileMoveBatch {
                        "{$statusDb->successCount} successes, {$statusDb->failCount} failures" );
 
                $destFile->unlock();
-               $this->file->unlock(); // done
+               $this->file->unlock();
 
                // Everything went ok, remove the source files
                $this->cleanupSource( $triplets );
index ad95bb4..23ff304 100644 (file)
@@ -406,16 +406,15 @@ class OldLocalFile extends LocalFile {
         * Upload a file directly into archive. Generally for Special:Import.
         *
         * @param string $srcPath File system path of the source file
-        * @param string $archiveName Full archive name of the file, in the form
-        *   $timestamp!$filename, where $filename must match $this->getName()
         * @param string $timestamp
         * @param string $comment
         * @param User $user
         * @return Status
         */
-       function uploadOld( $srcPath, $archiveName, $timestamp, $comment, $user ) {
+       public function uploadOld( $srcPath, $timestamp, $comment, $user ) {
                $this->lock();
 
+               $archiveName = $this->getArchiveName();
                $dstRel = $this->getArchiveRel( $archiveName );
                $status = $this->publishTo( $srcPath, $dstRel );
 
index 1a7f850..44e703b 100644 (file)
@@ -159,6 +159,7 @@ class HTMLForm extends ContextSource {
                'checkmatrix' => HTMLCheckMatrix::class,
                'cloner' => HTMLFormFieldCloner::class,
                'autocompleteselect' => HTMLAutoCompleteSelectField::class,
+               'language' => HTMLSelectLanguageField::class,
                'date' => HTMLDateTimeField::class,
                'time' => HTMLDateTimeField::class,
                'datetime' => HTMLDateTimeField::class,
diff --git a/includes/htmlform/HTMLSelectLanguageField.php b/includes/htmlform/HTMLSelectLanguageField.php
new file mode 100644 (file)
index 0000000..98cf3b1
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+
+/**
+ * Language select field.
+ */
+class HTMLSelectLanguageField extends HTMLSelectField {
+       public function __construct( $params ) {
+               parent::__construct( $params );
+
+               if ( $this->mParent instanceof HTMLForm ) {
+                       $config = $this->mParent->getConfig();
+                       $languageCode = $config->get( 'LanguageCode' );
+               } else {
+                       global $wgLanguageCode;
+                       $languageCode = $wgLanguageCode;
+               }
+
+               $languages = Language::fetchLanguageNames( null, 'mw' );
+
+               // Make sure the site language is in the list;
+               // a custom language code might not have a defined name…
+               if ( !array_key_exists( $languageCode, $languages ) ) {
+                       $languages[$languageCode] = $languageCode;
+               }
+
+               ksort( $languages );
+
+               foreach ( $languages as $code => $name ) {
+                       $this->mParams['options'][$code . ' - ' . $name] = $code;
+               }
+
+               if ( !array_key_exists( 'default', $params ) ) {
+                       $this->mParams['default'] = $languageCode;
+               }
+       }
+}
index bab8521..8ef9cc2 100644 (file)
@@ -52,12 +52,7 @@ class CurlHttpRequest extends MWHttpRequest {
 
                $this->curlOptions[CURLOPT_PROXY] = $this->proxy;
                $this->curlOptions[CURLOPT_TIMEOUT] = $this->timeout;
-
-               // Only supported in curl >= 7.16.2
-               if ( defined( 'CURLOPT_CONNECTTIMEOUT_MS' ) ) {
-                       $this->curlOptions[CURLOPT_CONNECTTIMEOUT_MS] = $this->connectTimeout * 1000;
-               }
-
+               $this->curlOptions[CURLOPT_CONNECTTIMEOUT_MS] = $this->connectTimeout * 1000;
                $this->curlOptions[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_1_0;
                $this->curlOptions[CURLOPT_WRITEFUNCTION] = $this->callback;
                $this->curlOptions[CURLOPT_HEADERFUNCTION] = [ $this, "readHeader" ];
index 4fbddb5..4b378c1 100644 (file)
@@ -104,9 +104,13 @@ class ImportableUploadRevisionImporter implements UploadRevisionImporter {
                        ?: User::newFromName( $importableRevision->getUser(), false );
 
                # Do the actual upload
-               if ( $archiveName ) {
-                       $status = $file->uploadOld( $source, $archiveName,
-                               $importableRevision->getTimestamp(), $importableRevision->getComment(), $user );
+               if ( $file instanceof OldLocalFile ) {
+                       $status = $file->uploadOld(
+                               $source,
+                               $importableRevision->getTimestamp(),
+                               $importableRevision->getComment(),
+                               $user
+                       );
                } else {
                        $flags = 0;
                        $status = $file->upload(
index 029f67d..5a3d77a 100644 (file)
@@ -694,7 +694,7 @@ abstract class Installer {
                                'enableSectionEditLinks' => false,
                                'unwrap' => true,
                        ] );
-               } catch ( MediaWiki\Services\ServiceDisabledException $e ) {
+               } catch ( Wikimedia\Services\ServiceDisabledException $e ) {
                        $html = '<!--DB access attempted during parse-->  ' . htmlspecialchars( $text );
                }
 
index 5b3b94b..806c073 100644 (file)
@@ -72,9 +72,9 @@
        "config-wincache": "تثبيت [https://www.iis.net/downloads/microsoft/wincache-extension WinCache]",
        "config-no-cache-apcu": "<strong>تحذير:</strong> تعذر العثور على [https://secure.php.net/apcu APCu] أو [https://www.iis.net/downloads/microsoft/wincache-extension WinCache];\nكائن التخزين المؤقت غير ممكّّن.",
        "config-mod-security": "<strong>تحذير:</strong> تم تمكين خادم الويب الخاص بك [https://modsecurity.org/ mod_security]/mod_security2، العديد من التكوينات الشائعة له سوف تتسبب في مشاكل لميدياويكي والبرامج الأخرى التي تسمح للمستخدمين بنشر محتوى عشوائي; \nإذا كان ذلك ممكنا، يجب تعطيل هذا، أو يمكنك الرجوع إلى [https://modsecurity.org/documentation/ توثيق mod_security] أو الاتصال بدعم مضيفك إذا واجهتك أخطاء عشوائية.",
-       "config-diff3-bad": "جÙ\86Ù\88 diff3 ØºÙ\8aر Ù\85Ù\88جÙ\88د.",
+       "config-diff3-bad": "أداة Ø¬Ù\86Ù\88 diff3 Ù\84Ù\85Ù\82ارÙ\86Ø© Ø§Ù\84Ù\86صÙ\88ص ØºÙ\8aر Ù\85Ù\88جÙ\88دة. Ù\8aÙ\85Ù\83Ù\86Ù\83 ØªØ¬Ø§Ù\87Ù\84 Ù\87ذا Ø§Ù\84Ø¢Ù\86Ø\8c Ù\84Ù\83Ù\86 Ø±Ø¨Ù\85ا ØªØµØ§Ø¯Ù\81 ØªØ¶Ø§Ø±Ø¨Ø§Øª ØªØ­Ø±Ù\8aرÙ\8aØ© Ø£Ù\83ثر Ù\85Ù\86 Ø§Ù\84Ù\85عتاد.",
        "config-git": "العثور على برنامج التحكم في إصدار جت <code>$1</code>.",
-       "config-git-bad": "برÙ\86اÙ\85ج Ø§Ù\84تحÙ\83Ù\85 Ù\81Ù\8a Ø¥ØµØ¯Ø§Ø± Ø¬Øª ØºÙ\8aر Ù\85Ù\88جÙ\88د.",
+       "config-git-bad": "برÙ\86اÙ\85ج Ø§Ù\84تحÙ\83Ù\85 Ù\81Ù\8a Ø§Ù\84إصدار Ø¬Øª ØºÙ\8aر Ù\85Ù\88جÙ\88دØ\8c Ù\8aÙ\85Ù\83Ù\86Ù\83 ØªØ¬Ø§Ù\87Ù\84 Ù\87ذا Ø§Ù\84Ø¢Ù\86Ø\8c Ù\84احظ Ø£Ù\86 Ø®Ø§Øµ:Ù\86سخة Ù\84Ù\86 ØªØ¹Ø±Ø¶ Ø±Ù\85ز Ø±Ù\82Ù\85 Ù\86سخ Ø§Ù\84برÙ\86اÙ\85ج.",
        "config-imagemagick": "تم العثور على ImageMagick: <code>$1</code>.\nسيتم تمكين تصغير الصور إذا قمت بتمكين التحميل.",
        "config-gd": "وُجِدت مكتبة الرسومات GD المدمجة،\nسيتم تمكين الصورة المصغرة للصورة إذا قمت بتمكين المرفوعات.",
        "config-no-scaling": "لا يمكن أن تجد مكتبة GD أو ImageMagick; سيتم تعطيل تصغير الصور.",
        "config-extensions": "امتدادات",
        "config-extensions-help": "تم الكشف عن الملحقات المذكورة أعلاه في دليل <code>./ملحقاتك</code>، ويمكن أن يتطلب تكوينا إضافيا، ولكن يمكنك تمكينها الآن.",
        "config-skins": "الواجهات",
-       "config-skins-help": "تÙ\85 Ø§Ù\83تشاÙ\81 Ø§Ù\84Ù\85ظاÙ\87ر المدرجة أعلاه في دليل <code>./skins</code>، يجب عليك تمكين واحد على الأقل، واختيار الافتراضي.",
+       "config-skins-help": "تÙ\85 Ø§Ù\83تشاÙ\81 Ø§Ù\84Ù\88اجÙ\87ات المدرجة أعلاه في دليل <code>./skins</code>، يجب عليك تمكين واحد على الأقل، واختيار الافتراضي.",
        "config-skins-use-as-default": "استخدم هذه الواجهة كافتراضية",
        "config-skins-missing": "لم يتم العثور على مظاهر; سيستخدم ميدياويكي مظهرا متراجعا حتى تقوم بتركيب بعض المناسب منها.",
-       "config-skins-must-enable-some": "يجب عليك اختيار واحد على الأقل من المظاهر للتمكين.",
+       "config-skins-must-enable-some": "يجب عليك اختيار واحد من الواجهات على الأقل للتفعيل.",
        "config-skins-must-enable-default": "يجب تمكين المظهر المختار كإعداد افتراضي.",
        "config-install-alreadydone": "<strong>تحذير:</strong> يبدو أنك قد قمت بالفعل بتثبيت ميدياويكي وتحاول تثبيته مرة أخرى. الرجاء التوجه إلى الصفحة التالية.",
        "config-install-begin": "عن طريق الضغط على \"{{int:config-continue}}\"، سوف تبدأ تثبيت ميدياويكي. إذا كنت لا تزال ترغب في إجراء تغييرات، اضغط على \"{{int:config-back}}\".",
index fb4445d..8a00855 100644 (file)
@@ -68,9 +68,9 @@
        "config-wincache": "[https://www.iis.net/downloads/microsoft/wincache-extension WinCache] усталяваны",
        "config-no-cache-apcu": "<strong>Папярэджаньне:</strong> ня знойдзеныя [https://secure.php.net/apcu APCu] ці [https://www.iis.net/downloads/microsoft/wincache-extension WinCache]. Кэшаваньне аб’ектаў адключанае.",
        "config-mod-security": "'''Папярэджаньне''': на Вашым ўэб-сэрверы ўключаны [https://modsecurity.org/ mod_security]. У выпадку няслушнай наладцы, ён можа стаць прычынай праблемаў для MediaWiki ці іншага праграмнага забесьпячэньня, якое дазваляе ўдзельнікам дасылаць на сэрвэр любы зьмест.\nГлядзіце [https://modsecurity.org/documentation/ дакумэнтацыю mod_security] ці зьвярніцеся ў падтрымку Вашага хосту, калі ў Вас узьнікаюць выпадковыя праблемы.",
-       "config-diff3-bad": "GNU diff3 ня знойдзены.",
+       "config-diff3-bad": "Праграма параўнаньня тэксту GNU diff3 ня знойдзеная. Вы можаце праігнараваць гэта, але можаце сутыкнуцца з канфліктамі рэдагаваньня больш часта.",
        "config-git": "Знойдзеная сыстэма канстролю вэрсіяў Git: <code>$1</code>",
-       "config-git-bad": "Сыстэма кантролю вэрсіяў Git ня знойдзеная.",
+       "config-git-bad": "Сыстэма кантролю вэрсіяў Git ня знойдзеная. Цяпер вы можаце праігнараваць гэта. Заўважце, што Special:Version ня будзе паказваць хэшы транзакцыяў.",
        "config-imagemagick": "Знойдзены ImageMagick: <code>$1</code>.\nПасьля ўключэньня загрузак будзе ўключанае маштабаваньне выяваў.",
        "config-gd": "GD падтрымліваецца ўбудавана.\nПасьля ўключэньня загрузак будзе ўключанае маштабаваньне выяваў.",
        "config-no-scaling": "Ні GD, ні ImageMagick ня знойдзеныя.\nМаштабаваньне выяваў будзе адключанае.",
index 94aff80..5116fa6 100644 (file)
@@ -6,7 +6,8 @@
                        "StanProg",
                        "Vodnokon4e",
                        "Seb35",
-                       "ShockD"
+                       "ShockD",
+                       "Vlad5250"
                ]
        },
        "config-desc": "Инсталатор на МедияУики",
@@ -67,7 +68,7 @@
        "config-wincache": "[https://www.iis.net/downloads/microsoft/wincache-extension WinCache] е инсталиран",
        "config-no-cache-apcu": "<strong>Внимание:</strong> [https://secure.php.net/apcu APCu] и [https://www.iis.net/downloads/microsoft/wincache-extension WinCache] не могат да бъдат открити.\nКеширането на обекти не е активирано.",
        "config-mod-security": "<strong>Предупреждение:</strong> [https://modsecurity.org/ mod_security]/mod_security2 е включено на вашия уеб сървър. Много от обичайните му конфигурации пораждат проблеми с МедияУики и друг софтуер, който позволява публикуване на произволно съдържание.\nАко е възможно, моля изключете го. В противен случай се обърнете към [https://modsecurity.org/documentation/ документацията на mod_security] или се свържете с поддръжката на хостинга си, ако се сблъскате със случайни грешки.",
-       "config-diff3-bad": "GNU diff3 не беше намерен.",
+       "config-diff3-bad": "Не е намерен сравнителят за текст ГНУ разл3 (GNU diff3). Засега това можете да го игнорирате, но затова конфликтите на редакциите може да зачестат.",
        "config-git": "Налична е системата за контрол на версиите Git: <code>$1</code>.",
        "config-git-bad": "Не е намерен софтуер за контрол на версиите Git.",
        "config-imagemagick": "Открит е ImageMagick: <code>$1</code>.\nПреоразмеряването на картинки ще бъде включено ако качването на файлове бъде разрешено.",
index ecf4f50..797fdc1 100644 (file)
        "config-env-php": "El PHP $1 està instal·lat.",
        "config-env-hhvm": "L’HHVM $1 és instal·lat.",
        "config-unicode-using-intl": "S'utilitza l'[https://pecl.php.net/intl extensió intl PECL] per a la normalització de l'Unicode.",
+       "config-unicode-pure-php-warning": "<strong>Avís:</strong> L'[https://pecl.php.net/intl extensió intl PECL] no és disponible per gestionar la normalització d'Unicode. Es reverteix a una implementació més lenta en PHP pur.\nSi administreu un lloc web amb molt de trànsit, hauríeu de consultar la guia de [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalització d'Unicode].",
+       "config-unicode-update-warning": "<strong>Avís:</strong> La versió instal·lada del contenidor de normalització d'Unicode utilitza una versió antiga de la biblioteca [http://site.icu-project.org/ del projecte ICU].\nHauríeu [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations d'actualitzar-la] si us importa poder utilitzar Unicode.",
+       "config-no-db": "No s'ha pogut trobar un controlador adequat per a la base de dades. Instal·leu-ne un per al PHP.\nHi ha suport per {{PLURAL:$2|al tipus de base de dades següent|als tipus de base de dades següents}}: $1\n\nSi heu compilat el PHP manualment, torneu a configurar-lo amb un client de base de dades habilitat, per exemple fent servir <code>./configure --with-mysqli</code>.\nSi heu instal·lat el PHP d'un paquet de Debian o Ubuntu, també cal que instal·leu, per exemple, el paquet <code>php-mysql</code>.",
+       "config-outdated-sqlite": "<strong>Avís:</strong> teniu el SQLite $1, que és menor que la versió mínima necessària $2. SQLite no estarà disponible.",
+       "config-no-fts3": "<strong>Avís:</strong> SQLite està compilat sense el [//sqlite.org/fts3.html mòdul FTS3], per tant les funcionalitats de cerca no estaran disponibles en aquesta instal·lació.",
        "config-memory-raised": "El <code>memory_limit</code> del PHP és $1 i s'ha aixecat a $2.",
        "config-memory-bad": "<strong>Avís:</strong> El <code>memory_limit</code> del PHP és $1.\nAixò és probablement massa baix.\nLa instal·lació pot fallar!",
        "config-apc": "L'[https://secure.php.net/apc APC] està instal·lat",
        "config-sqlite-fts3-downgrade": "El PHP no té compatibilitat FTS3. Les taules es passen a una versió anterior.",
        "config-can-upgrade": "Hi ha taules del MediaWiki en aquesta base de dades.\nPer actualitzar-les al MediaWiki $1, feu clic a <strong>Continua</strong>.",
        "config-upgrade-error": "S'ha produït un error mentre s'actualitzaven les taules de MediaWiki de la vostra base de dades.\n\nPer a més informació, consulteu el registre de sobre. Per a tornar-ho a provar, feu clic a <strong>Continua</strong>.",
+       "config-upgrade-done": "Ha acabat l'actualització.\n\nPodeu [començar a utilitzar el wiki $1].\n\nSi voleu tornar a generar el fitxer <code>LocalSettings.php</code>, feu clic al botó a continuació.\n<strong>No és recomanable</strong> a menys que tingueu problemes amb el wiki.",
        "config-upgrade-done-no-regenerate": "S'ha completat l'actualització.\n\nJa podeu [$1 començar a utilitzar el wiki].",
        "config-regenerate": "Torna a generar el LocalSettings.php →",
        "config-show-table-status": "La consulta <code>SHOW TABLE STATUS</code> ha fallat!",
+       "config-unknown-collation": "<strong>Avís:</strong> La base de dades utilitza una col·lació no reconeguda.",
        "config-db-web-account": "Compte de la base de dades per a l'accés web",
        "config-db-web-help": "Seleccioneu el nom d'usuari i la contrasenya que el servidor web utilitzarà per a connectar-se al servidor de base de dades durant el funcionament normal del wiki.",
        "config-db-web-account-same": "Utilitza el mateix compte que a la instal·lació",
        "config-mysql-engine": "Motor d'emmagatzemament:",
        "config-mysql-innodb": "InnoDB (recomanat)",
        "config-mysql-myisam": "MyISAM",
+       "config-mysql-myisam-dep": "<strong>Avís:</strong> Heu seleccionat MyISAM com a motor d'emmagatzemament de MySQL, que no és recomanat per utilitzar amb MediaWiki, perquè:\n* no té un bon suport de concurrència a causa del blocatge de les taules\n* té més tendència a corrompre's que altres motors\n* el codi base de MediaWiki no sempre gestiona MyISAM adequadament\n\nSi la vostra instal·lació de MySQL permet l'ús d'InnoDB, és molt més recomanable que l'utilitzeu.\nSi, per contra, no el permet. Potser val la pena que considereu actualitzar-la.",
+       "config-mysql-only-myisam-dep": "<strong>Avís:</strong> MyISAM és l'únic motor d'emmagatzemament de MySQL d'aquesta màquina, que no és recomanat per utilitzar amb MediaWiki, perquè:\n* no té un bon suport de concurrència a causa del blocatge de les taules\n* té més tendència a corrompre's que altres motors\n* el codi base de MediaWiki no sempre gestiona MyISAM adequadament\n\nLa vostra instal·lació de MySQL no permet l'ús d'InnoDB. Potser val la pena que considereu actualitzar-la.",
+       "config-mysql-engine-help": "<strong>InnoDB</strong> és gairebé sempre la millor opció perquè té una bona implementació de concurrència.\n\n<strong>MyISAM</strong> pot ser més ràpid en instal·lacions d'un únic usuari o de només lectura.\nLes bases de dades MyISAM tendeixen a corrompre's més sovint que les InnoDB.",
        "config-mssql-auth": "Tipus d'autenticació:",
+       "config-mssql-install-auth": "Seleccioneu el tipus d'autenticació que s'utilitzarà per connectar-se amb el servidor de base de dades durant el procés d'instal·lació.\nSi seleccioneu «{{int:config-mssql-windowsauth}}», s'utilitzaran les credencials de l'usuari amb què s'executa el servidor web.",
+       "config-mssql-web-auth": "Seleccioneu el tipus d'autenticació que utilitzarà el servidor web per connectar-se amb el servidor de base de dades durant les operacions rutinàries del wiki.\nSi seleccioneu «{{int:config-mssql-windowsauth}}», s'utilitzaran les credencials de l'usuari amb què s'executa el servidor web.",
        "config-mssql-sqlauth": "Autenticació de l’SQL Server",
        "config-mssql-windowsauth": "Autenticació del Windows",
        "config-site-name": "Nom del wiki:",
        "config-ns-site-name": "El mateix que el nom del wiki: $1",
        "config-ns-other": "Un altre (especifiqueu-lo)",
        "config-ns-other-default": "MonWiki",
+       "config-project-namespace-help": "Seguint l'exemple de la Viquipèdia, molts wikis mantenen les seves pàgines de polítiques separades de les pàgines de contingut, en un «espai de noms de projecte».\nTots els títols de pàgina d'aquest espai de noms comencen amb un cert prefix, que podeu especificar a continuació.\nNormalment el prefix es deriva del nom del wiki, però no pot contenir caràcters de puntuació com ara «#» o «:».",
        "config-ns-invalid": "L'espai de noms especificat «<nowiki>$1</nowiki>» no és vàlid.\nEspecifiqueu un espai de noms de projecte diferent.",
        "config-ns-conflict": "L'espai de noms especificat «<nowiki>$1</nowiki>» entra en conflicte amb un espai de noms per defecte de Mediawiki.\nEspecifique un espai de noms de projecte diferent.",
        "config-admin-box": "Compte de l'administrador",
        "config-admin-password-blank": "Introduïu una contrasenya per al compte d'administrador.",
        "config-admin-password-mismatch": "Les dues contrasenyes que heu introduït no coincideixen.",
        "config-admin-email": "Adreça electrònica:",
+       "config-admin-email-help": "Introduïu una adreça electrònica a continuació per permetre rebre correu d'altres usuaris del wiki, reiniciar la contrasenya i rebre notificacions de les pàgines a la vostra llista de seguiment. Podeu deixar el camp en blanc.",
        "config-admin-error-user": "S'ha produït un error intern en crear un administrador amb el nom «<nowiki>$1</nowiki>».",
        "config-admin-error-password": "S'ha produït un error intern en definir una contrasenya per a l'administrador «<nowiki>$1</nowiki>»: <pre>$2</pre>",
        "config-admin-error-bademail": "Heu introduït una adreça electrònica no vàlida.",
        "config-license-pd": "Domini públic",
        "config-license-cc-choose": "Selecció d'una llicència personalitzada de Creative Commons",
        "config-email-settings": "Paràmetres del correu electrònic",
+       "config-enable-email": "Habilita el correu sortint",
+       "config-enable-email-help": "Si voleu que el correu electrònic funcioni, cal configurar [https://secure.php.net/manual/en/mail.configuration.php PHP's els paràmetres de correu] correctament.\nSi no voleu cap funcionalitat de correu, podeu inhabilitar-ho.",
        "config-email-user": "Habilita el correu electrònic usuari-a-usuari",
        "config-email-user-help": "Permet que tots els usuaris puguin enviar-se correu si ho han habilitat a les preferències.",
        "config-email-usertalk": "Habilita la notificació a la pàgina de discussió de l'usuari",
+       "config-email-usertalk-help": "Permet als usuaris rebre notificacions dels canvis en les pàgines de discussió d'usuari si ho habiliten a les seves preferències.",
        "config-email-watchlist": "Habilita la notificació de la llista de seguiment",
        "config-email-watchlist-help": "Permet als usuaris rebre notificacions de les pàgines que segueixen si ho han habilitat a les preferències.",
        "config-email-auth": "Habilita l'autenticació per correu electrònic",
+       "config-email-auth-help": "Si s'habilita l'opció, els usuaris hauran de confirmar llur adreça electrònica utilitzant un enllaç que els enviarem quan la defineixin o la canviïn.\nNomés les adreces electròniques autenticades poden rebre correus d'altres usuaris o canviar les notificacions de correu.\nDefinir aquesta opció és <strong>recomanat</strong> per a wikis públics per tal d'evitar els possibles abusos de l'ús del correu.",
        "config-email-sender": "Adreça electrònica de retorn:",
        "config-upload-settings": "Imatges i càrregues de fitxers",
        "config-upload-enable": "Habilita la càrrega de fitxers",
+       "config-upload-help": "Les càrregues de fitxers potencialment exposen el vostre servidor a riscos de seguretat.\nPer a més informació, llegiu la [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security secció de seguretat] del manual.\n\nPer habilitar les càrregues de fitxer, canvieu el mode del subdirectori <code>images</code> del directori arrel de MediaWiki per tal que el servidor web pugui escriure-hi.\nA continuació, habiliteu-ne l'opció.",
        "config-upload-deleted": "Directori pels arxius suprimits:",
        "config-upload-deleted-help": "Trieu un directori per a arxivar els fitxers suprimits.\nIdealment no hauria de ser accessible des del web.",
        "config-logo": "URL del logo:",
        "config-cache-accel": "Emmagatzemament en memòria cau d'objectes de PHP (APC, APCu o WinCache)",
        "config-cache-memcached": "Utilitza Memcached (requereix una instal·lació i configuració addicionals)",
        "config-memcached-servers": "Servidors de Memcache:",
+       "config-memcached-help": "Llista d'adreces IP per utilitzar amb Memcached.\nHauríeu d'especificar una per línia juntament amb el port que s'utilitzarà. Per exemple:\n 127.0.0.1:11211\n 192.168.1.25:1234",
        "config-memcache-needservers": "Heu seleccionat Memcached per al tipus de memòria cau, però no n'heu especificat cap servidor.",
        "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-memcache-badport": "Els números de port de Memcached han de ser entre $1 i $2.",
        "config-extensions": "Extensions",
+       "config-extensions-help": "Les extensions que es llisten a dalt s'han detecta en el directori <code>./extensions</code>.\n\nPoden necessitar configuració addicional, però ja podeu habilitar-les.",
        "config-skins": "Aparences",
        "config-skins-help": "S'han detectat els temes llistats a dalt en el directori <code>./skins</code>. Heu d'habilitar-ne com a mínim un i trieu-ne el predeterminat.",
        "config-skins-use-as-default": "Utilitza aquest tema per defecte",
        "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-install-pg-plpgsql": "S'està comprovant si hi ha llenguatge PL/pgSQL",
        "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-stats": "S'estan inicialitzant les estadístiques",
        "config-install-keys": "S'estan generant les claus secretes",
        "config-install-updates": "Evita que s'executin actualitzacions no necessàries",
+       "config-install-updates-failed": "<strong>Error:</strong> La inserció de claus d'actualització a les taules ha fallat amb l'error següent: $1",
        "config-install-sysop": "S'està creant un compte d'usuari d'administrador",
        "config-install-subscribe-fail": "No s'ha pogut subscriure a mediawiki-announce: $1",
        "config-install-subscribe-notpossible": "El cURL no està instal·lat i <code>allow_url_fopen</code> no està disponible.",
        "config-install-extension-tables": "S'estan creant taules de les extensions habilitades",
        "config-install-mainpage-failed": "No s'ha pogut inserir la pàgina principal: $1",
        "config-install-done": "<strong>Enhorabona!</strong>\nHeu instal·lat MediaWiki.\n\nL'instal·lador a generat un fitxer <code>LocalSettings.php</code>.\nConté tota la configuració.\n\nCaldrà que el baixeu i el poseu al directori base on heu instal·lat al wiki (el mateix directori on es troba index.php). La baixada hauria d'haver començat automàticament.\n\nSi la baixada no comença, o si l'heu cancel·lat, podeu reiniciar-la fent clic a l'enllaç de sota:\n\n$3\n\n<strong>Nota:</strong> Si no ho feu ara, no podreu accedir a aquest fitxer de configuració més endavant si no l'heu baixat abans.\n\nUna vegada tot això fet, podeu <strong>[$2 entrar al vostre wiki]</strong>.",
+       "config-install-done-path": "<strong>Enhorabona!</strong>\nHeu instal·lat MediaWiki.\n\nL'instal·lador a generat un fitxer <code>LocalSettings.php</code>.\nConté tota la configuració.\n\nCaldrà que el baixeu i el poseu a <code>$4</code>. La baixada hauria d'haver començat automàticament.\n\nSi la baixada no comença, o si l'heu cancel·lat, podeu reiniciar-la fent clic a l'enllaç de sota:\n\n$3\n\n<strong>Nota:</strong> Si no ho feu ara, no podreu accedir a aquest fitxer de configuració més endavant si no l'heu baixat abans.\n\nUna vegada tot això fet, podeu <strong>[$2 entrar al vostre wiki]</strong>.",
+       "config-install-success": "El MediaWiki s'ha instal·lat amb èxit. Podeu visitar <$1$2> per veure el vostre wiki.\nSi teniu preguntes, reviseu la llista de preguntes més freqüents:\n<https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ> o utilitzeu un dels fòrums d'assistència enllaçats a la pàgina.",
        "config-download-localsettings": "Baixa <code>LocalSettings.php</code>",
        "config-help": "ajuda",
        "config-help-tooltip": "feu clic per ampliar",
index ca1c1c0..bddfb0a 100644 (file)
@@ -72,9 +72,9 @@
        "config-wincache": "Je nainstalováno [https://www.iis.net/downloads/microsoft/wincache-extension WinCache]",
        "config-no-cache-apcu": "<strong>Upozornění:</strong> Nebylo nalezeno [https://secure.php.net/apcu APCu], \nani [https://www.iis.net/downloads/microsoft/wincache-extension WinCache].\nCachování objektů není povoleno.",
        "config-mod-security": "<strong>Upozornění:</strong> váš webový server má zapnuto [https://modsecurity.org/ mod_security]/mod_security2. Mnoho běžných konfigurací bude způsobovat potíže MediaWiki a dalším programům, které umožňují ukládat libovolný obsah.\nPokud je to možné, mělo by se to vypnout. Jinak se v případě, že narazíte na náhodné chyby, podívejte do [https://modsecurity.org/documentation/ dokumentace mod_security] nebo kontaktujte technickou podporu vašeho poskytovatele.",
-       "config-diff3-bad": "Nebyl nalezen GNU diff3.",
+       "config-diff3-bad": "Nebyl nalezen nástroj pro porovnávání textu GNU diff3. Můžete to zatím ignorovat, ale je možné, že budete častěji narážet na editační konflikty.",
        "config-git": "Nalezen software pro správu verzí Git: <code>$1</code>.",
-       "config-git-bad": "Software pro správu verzí Git nebyl nalezen.",
+       "config-git-bad": "Software pro správu verzí Git nebyl nalezen. Můžete to zatím ignorovat. Special:Version nebude zobrazovat haše commitů.",
        "config-imagemagick": "Nalezen ImageMagick: <code>$1</code>.\nPokud povolíte načítání souborů, bude zapnuto vytváření náhledů.",
        "config-gd": "Nalezena vestavěná grafická knihovna GD.\nPokud povolíte načítání souborů, bude zapnuto vytváření náhledů.",
        "config-no-scaling": "Nebyla nalezena knihovna GD ani ImageMagick.\nVytváření náhledů bude vypnuto.",
index 09bbe69..8bf9799 100644 (file)
@@ -77,9 +77,9 @@
        "config-wincache": "[https://www.iis.net/downloads/microsoft/wincache-extension WinCache] ist installiert",
        "config-no-cache-apcu": "<strong>Warnung:</strong> [https://secure.php.net/apcu APCu] oder [https://www.iis.net/downloads/microsoft/wincache-extension WinCache] konnten nicht gefunden werden.\nDer Objektcache ist nicht aktiviert.",
        "config-mod-security": "'''Warnung:''' Auf dem Webserver wurde [https://modsecurity.org/ ModSecurity] aktiviert. Sofern falsch konfiguriert, kann dies zu Problemen mit MediaWiki sowie anderer Software auf dem Server führen und es Benutzern ermöglichen, beliebige Inhalte im Wiki einzustellen.\nFür weitere Informationen empfehlen wir die [https://modsecurity.org/documentation/ Dokumentation zu ModSecurity] oder den Kontakt zum Hoster, sofern Fehler auftreten.",
-       "config-diff3-bad": "GNU diff3 wurde nicht gefunden.",
+       "config-diff3-bad": "Das Textvergleichswerkzeug GNU diff3 wurde nicht gefunden. Du kannst diese Meldung vorerst ignorieren, jedoch kann es vermehrt zu Bearbeitungskonflikten kommen.",
        "config-git": "Die Versionsverwaltungssoftware „Git“ wurde gefunden: <code>$1</code>.",
-       "config-git-bad": "Die Versionsverwaltungssoftware „Git“ wurde nicht gefunden.",
+       "config-git-bad": "Die Versionsverwaltungssoftware „Git“ wurde nicht gefunden. Du kannst diese Meldung vorerst ignorieren, jedoch wird Spezial:Version keine Commit-Prüfsummen anzeigen.",
        "config-imagemagick": "Die Bildverarbeitungssoftware „ImageMagick“ wurde gefunden: <code>$1</code>.\nMiniaturansichten von Bildern werden möglich sein, sobald das Hochladen von Dateien aktiviert wurde.",
        "config-gd": "Die im System integrierte GD-Grafikbibliothek wurde gefunden.\nMiniaturansichten von Bildern werden möglich sein, sobald das Hochladen von Dateien aktiviert wurde.",
        "config-no-scaling": "Weder die GD-Grafikbibliothek noch ImageMagick wurden gefunden.\nMiniaturansichten von Bildern sind daher nicht möglich.",
index 7d3077f..79f3e84 100644 (file)
@@ -25,7 +25,7 @@
        "config-page-name": "Name",
        "config-page-options": "Weçinegi",
        "config-page-install": "Bar ke",
-       "config-page-complete": "Temamyayo",
+       "config-page-complete": "Temam!",
        "config-page-restart": "Barkerdışi fına ser kı",
        "config-page-readme": "Mı bıwan",
        "config-page-releasenotes": "Notë versiyoni",
index 3202ca4..429c327 100644 (file)
@@ -61,9 +61,9 @@
        "config-no-cache-apcu": "<strong>Warning:</strong> Could not find [https://secure.php.net/apcu APCu] or [https://www.iis.net/downloads/microsoft/wincache-extension WinCache].\nObject caching is not enabled.",
        "config-mod-security": "<strong>Warning:</strong> Your web server has [https://modsecurity.org/ mod_security]/mod_security2 enabled. Many common configurations of this will cause problems for MediaWiki and other software that allows users to post arbitrary content.\nIf possible, this should be disabled. Otherwise, refer to [https://modsecurity.org/documentation/ mod_security documentation] or contact your host's support if you encounter random errors.",
 
-       "config-diff3-bad": "GNU diff3 not found.",
+       "config-diff3-bad": "GNU diff3 text comparison utility not found. You can ignore this for now, but might run into edit conflicts more frequently.",
        "config-git": "Found the Git version control software: <code>$1</code>.",
-       "config-git-bad": "Git version control software not found.",
+       "config-git-bad": "Git version control software not found. You can ignore this for now. Note Special:Version will not display commit hashes.",
        "config-imagemagick": "Found ImageMagick: <code>$1</code>.\nImage thumbnailing will be enabled if you enable uploads.",
        "config-gd": "Found GD graphics library built-in.\nImage thumbnailing will be enabled if you enable uploads.",
        "config-no-scaling": "Could not find GD library or ImageMagick.\nImage thumbnailing will be disabled.",
index 6928530..d681fe3 100644 (file)
        "config-sqlite-dir-help": "SQLite-k datu guztiak fitxategi bakarrean gordetzen ditu.\n\nHornitu duzun direktorioa web zerbitzariaren bidez idatzia izateko aukera eman beharko duu instalazioan zehar.\n\n<Strong>Ez</strong> da webgunearen bidez eskuragarri egon behar; horregatik zure PHP fitxategiak non dauden ez dugu erakutsi.\n\nInstalatzaileak <code>.htaccess</code> fitxategi bat idatziko du bertan, baina horrek huts egiten badu zure datu base gordinera norbait sar daiteke.\nErabiltzaileen datu gordinak (helbide elektronikoak, pasahitzak), ezabatutako berrikusketa eta gainontzeko datu mugatuak ere barnean hartuz.\n\nDatu-basea beste nonbait jartzearen inguruan hausnartu, adibidez, <code>/var/lib/mediawiki/yourwiki</code>-n.",
        "config-oracle-def-ts": "Taula-toki lehenetsia:",
        "config-oracle-temp-ts": "Aldi baterako taula:",
-       "config-type-mysql": "MySQL (edo bateragarria)",
+       "config-type-mysql": "MariaDB, MySQL edo bateragarria",
        "config-type-postgres": "PostgreSQL",
        "config-type-sqlite": "SQLite",
        "config-type-oracle": "Oracle",
index 2f648fb..69b9421 100644 (file)
@@ -91,9 +91,9 @@
        "config-wincache": "[https://www.iis.net/downloads/microsoft/wincache-extension WinCache] est installé",
        "config-no-cache-apcu": "<strong>Attention :</strong> impossible de trouver [https://secure.php.net/apcu APCu] ou [https://www.iis.net/downloads/microsoft/wincache-extension WinCache].\nLa mise en cache d’objets n’est pas activée.",
        "config-mod-security": "<strong>Attention :</strong> votre serveur web a [https://modsecurity.org/ mod_security] activé. S’il est mal configuré, cela peut poser des problèmes à MediaWiki ou à d’autres applications qui permettent aux utilisateurs de publier un contenu quelconque. Si possible, ceci devrait être désactivé. Sinon, reportez-vous à [https://modsecurity.org/documentation/ la documentation de mod_security] ou contactez l’assistance de votre hébergeur si vous rencontrez des erreurs aléatoires.",
-       "config-diff3-bad": "GNU diff3 introuvable.",
+       "config-diff3-bad": "L’utilitaire de comparaison de texte GNU diff3 est introuvable. Vous pouvez l’ignorer pour le moment, mais cela peut provoquer des conflits de modification plus souvent.",
        "config-git": "Logiciel de contrôle de version Git trouvé : <code>$1</code>.",
-       "config-git-bad": "Logiciel de contrôle de version Git non trouvé.",
+       "config-git-bad": "Logiciel de contrôle de version Git non trouvé. Vous pouvez l’ignorer pour le moment. Notez que Special:Version n’affichera pas les hachages de validation.",
        "config-imagemagick": "ImageMagick trouvé : <code>$1</code>.\nLa génération de vignettes d’images sera activée si vous activez les téléversements.",
        "config-gd": "La bibliothèque graphique GD intégrée a été trouvée.\nLa miniaturisation d'images sera activée si vous activez le téléversement de fichiers.",
        "config-no-scaling": "Impossible de trouver la bibliothèque GD ou ImageMagick.\nLa miniaturisation d’images sera désactivée.",
index e1f2c88..a794069 100644 (file)
@@ -82,9 +82,9 @@
        "config-wincache": "[https://www.iis.net/downloads/microsoft/wincache-extension WinCache] è installato",
        "config-no-cache-apcu": "'''Attenzione:''' [https://secure.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] o [https://www.iis.net/downloads/microsoft/wincache-extension WinCache] non sono stati trovati.\nLa caching degli oggetti non è attivata.",
        "config-mod-security": "<strong>Attenzione:</strong> Il tuo server web ha il [https://modsecurity.org/ mod_security] abilitato. Se non correttamente configurato, può creare problemi a MediaWiki o ad altro software che permette agli utenti di pubblicare contenuto.\nFai riferimento alla [https://modsecurity.org/documentation/ documentazione sul mod_security] o contatta il supporto tecnico del tuo provider di hosting se si verificano errori.",
-       "config-diff3-bad": "GNU diff3 non trovato.",
+       "config-diff3-bad": "Utilità di confronto del testo GNU diff3 non trovata. È possibile ignorare per ora, ma potresti incorrere in conflitti di modifica più frequentemente.",
        "config-git": "Trovato software di controllo della versione Git: <code>$1</code>.",
-       "config-git-bad": "Software di controllo della versione Git non trovato.",
+       "config-git-bad": "Software di controllo della versione Git non trovato. Puoi ignorarlo per ora. Nota Special:Version non mostrerà gli hash di commit.",
        "config-imagemagick": "Trovato ImageMagick: <code>$1</code>.\nLe miniature delle immagini saranno presenti se gli upload vengono abilitati.",
        "config-gd": "Trovata la GD Graphics Library built-in.\nLe miniature delle immagini saranno presenti se gli upload vengono abilitati.",
        "config-no-scaling": "Impossibile trovare GD library o ImageMagick.\nLe miniature delle immagini saranno disabilitate.",
index 1a64890..82b2d79 100644 (file)
        "config-sqlite-cant-create-db": "データベース ファイル <code>$1</code> を作成できませんでした。",
        "config-sqlite-fts3-downgrade": "PHP が FTS3 に対応していないため、テーブルをダウングレードしています。",
        "config-can-upgrade": "このデータベースには MediaWiki テーブルがあります。\nこれらのテーブルを MediaWiki $1 にアップグレードするには、<strong>続行</strong>をクリックしてください。",
+       "config-upgrade-error": "データベースのMediaWikiテーブルをアップグレード中にエラーが発生しました。\n\n詳細については、上記のログを確認して、もう一度<strong>続行</strong>をクリックしてください。",
        "config-upgrade-done": "更新は完了しました。\n\n[$1 ウィキを使い始める]ことができます。\n\n<code>LocalSettings.php</code> ファイルを再生成したい場合は、下のボタンを押してください。\nウィキに問題がある場合を除き、再生成は<strong>推奨されません</strong>。",
        "config-upgrade-done-no-regenerate": "アップグレードが完了しました。\n\n[$1 ウィキの使用を開始]することができます。",
        "config-regenerate": "LocalSettings.php を再生成→",
        "config-skins-screenshots": "$1 (スクリーンショット: $2)",
        "config-extensions-requires": "$1($2が必要)",
        "config-screenshot": "スクリーンショット",
+       "config-extension-dependency": "拡張機能「$1」のインストール中に依存関係エラーが発生しました: $2",
        "mainpagetext": "<strong>MediaWiki はインストール済みです。</strong>",
        "mainpagedocfooter": "ウィキソフトウェアの使い方に関する情報は[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents 利用者案内]を参照してください。\n\n== はじめましょう ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings/ja 設定の一覧]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/ja MediaWiki よくある質問と回答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki リリース情報メーリングリスト]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation/ja MediaWiki のあなたの言語へのローカライズ]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam あなたのウィキでスパムと戦う方法を学ぶ]"
 }
index 421279c..0f004c1 100644 (file)
@@ -1,7 +1,8 @@
 {
        "@metadata": {
                "authors": [
-                       "Giromin Cangiaxo"
+                       "Giromin Cangiaxo",
+                       "Fitoschido"
                ]
        },
        "config-desc": "Programma de installaçion pe MediaWiki",
        "config-sqlite-dir-help": "SQLite o memorizza tutti i dæti inte 'n unnico file.\n\nA directory che t'indichiæ a dev'ese scrivibile da-o serviou web durante l'instalaçion.\n\nA dev'ese <strong>non acescibbile via web</strong>, l'è pe questo che no a mettemmo donde gh'è i file PHP.\n\nL'instalou o ghe scriviâ insemme un file <code>.htaccess</code>, ma se o tentativo o falisse quarcun poriæ avei accesso a-o database sgroeuzzo.\nQuesto o l'includde di dæti utente sgroeuzzi (adressi, password çiffræ) coscì comme de vercsioin eliminæ e atri dæti a accesso limitou da wiki.\n\nConsciddera a-a dreitua l'oportunitæ d'alugâ o database da quarch'atra parte, prezempio in <code>/var/lib/mediawiki/tuowiki</code>.",
        "config-oracle-def-ts": "Tablespace pe difetto:",
        "config-oracle-temp-ts": "Tablespace tempoannio:",
-       "config-type-mysql": "MySQL (ò compatibbile)",
+       "config-type-mysql": "MariaDB, MySQL ò compatibbile",
        "config-type-mssql": "Microsoft SQL Server",
        "config-support-info": "MediaWiki o supporta i seguenti scistemi de database:\n\n$1\n\nSe fra quelli elencæ chì de sotta no ti veddi o scistema de database che ti voriesci doeuviâ, segui e instruçioin inganciæ de d'ato pe abilitâ o supporto.",
        "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] a l'è a primma scelta pe MediaWiki e a l'è quella megio suportâ. MediaWiki a fonçion-a ascì con [{{int:version-db-mariadb-url}} MariaDB] e [{{int:version-db-percona-url}} Percona Server], che son compatibbili con MySQL.([https://secure.php.net/manual/en/mysqli.installation.php Comme compilâ PHP con suporto MySQL])",
index 5be41e4..4e1ae0e 100644 (file)
@@ -66,9 +66,9 @@
        "config-wincache": "[https://www.iis.net/downloads/microsoft/wincache-extension WinCache] е воспоставен",
        "config-no-cache-apcu": "<strong>Предупредување:</strong> Не можев да го најдам [https://secure.php.net/apcu APCu] или [https://www.iis.net/downloads/microsoft/wincache-extension WinCache].",
        "config-mod-security": "'''Предупредување''': на вашиот опслужувач има овозможено [https://modsecurity.org/ mod_security]. Ако не е поставено како што треба, ова може да предизвика проблеми кај МедијаВики и други програми што им овозможуваат на корисниците да објавуваат произволни содржини.\nПогледнете ја [https://modsecurity.org/documentation/ mod_security документацијата] или обратете се кај домаќинот ако наидете на случајни грешки.",
-       "config-diff3-bad": "GNU diff3 не е пронајден.",
+       "config-diff3-bad": "Не го пронајдов споредникот за текст ГНУ разл3 (GNU diff3). Засега ова можете да го занемарите, но затоа пак спротиставеностите во уредувањата може да зачестат.",
        "config-git": "Го пронајдов Git програмот за контрола на верзии: <code>$1</code>.",
-       "config-git-bad": "Не го пронајдов Git-програмот за контрола на верзии.",
+       "config-git-bad": "Не го пронајдов Git-програмот за контрола на верзии. Засега ова можете да го занемарите. Имајте на ум дека Специјална:Верзии не прикажува косења во примените.",
        "config-imagemagick": "Пронајден е ImageMagick: <code>$1</code>.\nАко овозможите подигање, тогаш ќе биде овозможена минијатуризација на сликите.",
        "config-gd": "Утврдив дека има вградена GD графичка библиотека.\nАко овозможите подигање, тогаш ќе биде овозможена минијатураизација на сликите.",
        "config-no-scaling": "Не можев да пронајдам GD-библиотека или ImageMagick.\nМинијатуризацијата на сликите ќе биде оневозможена.",
index 7198522..e88aec2 100644 (file)
@@ -4,7 +4,8 @@
                        "Cedric31",
                        "Jfblanc",
                        "Seb35",
-                       "Nicolas Eynaud"
+                       "Nicolas Eynaud",
+                       "Fitoschido"
                ]
        },
        "config-desc": "Lo programa d’installacion de MediaWiki",
@@ -69,7 +70,7 @@
        "config-sqlite-dir": "Dorsièr de las donadas SQLite :",
        "config-oracle-def-ts": "Espaci d'emmagazinatge (''tablespace'') per defaut :",
        "config-oracle-temp-ts": "Espaci d'emmagazinatge (''tablespace'') temporari :",
-       "config-type-mysql": "MySQL (o compatible)",
+       "config-type-mysql": "MariaDB, MySQL o compatible",
        "config-type-mssql": "Microsoft SQL Server",
        "config-header-mysql": "Paramètres de MySQL",
        "config-header-postgres": "Paramètres de PostgreSQL",
index dd016ae..35fff51 100644 (file)
@@ -83,9 +83,9 @@
        "config-wincache": "[https://www.iis.net/downloads/microsoft/wincache-extension WinCache] está instalado",
        "config-no-cache-apcu": "<strong>Aviso:</strong> Não foram encontrados o [https://secure.php.net/apcu APCu], ou o [https://www.iis.net/downloads/microsoft/wincache-extension WinCache].\nA cache de objetos não está ativa.",
        "config-mod-security": "<strong>Aviso:</strong> Seu servidor web tem [https://modsecurity.org/ mod_security2] habilitado. Muitas configurações comuns de módulo podem causar problemas para o MediaWiki ou outro software que permite aos usuários postar conteúdo arbitrário.\nSe possível, ele dever ser desativad. Consulte a [https://modsecurity.org/documentation/ documentação do mod_security] ou entre em contato com o suporte do seu host se você encontrar erros aleatórios.",
-       "config-diff3-bad": "O GNU diff3 não foi encontrado.",
+       "config-diff3-bad": "Utilitário de comparação de texto do GNU diff3 não encontrado. Você pode ignorar isso por enquanto, mas pode se deparar com conflitos de edição com mais frequência.",
        "config-git": "Foi encontrado o software de controle de versão Git: <code>$1</code>.",
-       "config-git-bad": "O software de controle de versão Git não foi encontrado.",
+       "config-git-bad": "Software de controle de versão Git não encontrado. Você pode ignorar isso por enquanto. Nota Special:Version não exibirá hashes de confirmação.",
        "config-imagemagick": "Encontrado ImageMagick: <code>$1</code>.\nRedimensionamento de imagem será ativado se você permitir uploads.",
        "config-gd": "Encontrada biblioteca gráfica GD embutida\nO redimensionamento de imagens será habilitado se você permitir uploads.",
        "config-no-scaling": "Não foi possível encontrar biblioteca GD ou ImageMagick.\nO redimensionamento de imagens será desabilitado.",
index 8011cd7..e712fe5 100644 (file)
@@ -81,9 +81,9 @@
        "config-wincache": "[https://www.iis.net/downloads/microsoft/wincache-extension WinCache] instalada",
        "config-no-cache-apcu": "<strong>Aviso:</strong> Não foi encontrado o [https://secure.php.net/apcu APCu] nem o [https://www.iis.net/downloads/microsoft/wincache-extension WinCache].\nA cache de objetos não está ativa.",
        "config-mod-security": "<strong>Aviso:</strong> O seu servidor de Internet tem o [https://modsecurity.org/ mod_security]/mod_security2 ativado. Muitas das suas configurações normais podem causar problemas ao MediaWiki e a outros programas, permitindo que os utilizadores publiquem conteúdos arbitrários.\nSe possível, isto deve ser desativado. Se não, consulte a [https://modsecurity.org/documentation/ mod_security documentação] ou peça apoio ao fornecedor do alojamento do seu servidor se encontrar erros aleatórios.",
-       "config-diff3-bad": "O GNU diff3 não foi encontrado.",
+       "config-diff3-bad": "O utilitário de comparação de texto GNU diff3 não foi encontrado. Pode ignorar esta situação por agora, mas poderá encontrar conflitos entre edições mais frequentemente.",
        "config-git": "Foi encontrado o software de controlo de versões Git: <code>$1</code>.",
-       "config-git-bad": "Não foi encontrado o software de controlo de versões Git.",
+       "config-git-bad": "Não foi encontrado o programa de controlo de versões Git. Pode ignorar esta situação por agora. Note que Especial:Versão não apresentará os resumos criptográficos das efetivações.",
        "config-imagemagick": "Foi encontrado o ImageMagick: <code>$1</code>.\nSe possibilitar uploads, a miniaturização de imagens será ativada.",
        "config-gd": "Foi encontrada a biblioteca gráfica GD.\nSe possibilitar uploads, a miniaturização de imagens será ativada.",
        "config-no-scaling": "Não foi encontrada a biblioteca gráfica GD nem o ImageMagick.\nA miniaturização de imagens será desativada.",
index 048ac02..a604df5 100644 (file)
@@ -6,7 +6,9 @@
                        "Stelistcristi",
                        "XXN",
                        "Tuxilina",
-                       "Strainu"
+                       "Strainu",
+                       "Fitoschido",
+                       "WebSourceContentRO"
                ]
        },
        "config-desc": "Programul de instalare pentru MediaWiki",
@@ -49,7 +51,8 @@
        "config-env-hhvm": "HHVM $1 este instalat.",
        "config-apc": "[https://secure.php.net/apc APC] este instalat",
        "config-wincache": "[https://www.iis.net/downloads/microsoft/wincache-extension WinCache] este instalat",
-       "config-diff3-bad": "GNU diff3 nu a fost găsit.",
+       "config-diff3-bad": "Utilitarul de comparare a textului GNU diff3 nu a fost găsit. Puteți ignora acest lucru pentru moment, dar ar putea apărea mai frecvent conflicte de editare.",
+       "config-git-bad": "Software-ul de control al versiunii Git nu a fost găsit. Acum puteți ignora acest lucru. Rețineți că Special:Version nu va afișa hașurile commit.",
        "config-no-uri": "<strong>Eroare:</strong> Nu pot determina URI-ul curent.\nInstalare întreruptă.",
        "config-db-type": "Tipul bazei de date:",
        "config-db-host": "Gazdă bază de date:",
@@ -71,7 +74,7 @@
        "config-sqlite-dir": "Director de date SQLite:",
        "config-oracle-def-ts": "Spațiu de stocare („tablespace”) implicit:",
        "config-oracle-temp-ts": "Spațiu de stocare („tablespace”) temporar:",
-       "config-type-mysql": "MySQL (sau compatibil)",
+       "config-type-mysql": "MariaDB, MySQL sau compatibil",
        "config-type-mssql": "Microsoft SQL Server",
        "config-header-mysql": "Setările MySQL",
        "config-header-postgres": "Setări PostgreSQL",
index e9b903c..a313371 100644 (file)
@@ -70,9 +70,9 @@
        "config-wincache": "[https://www.iis.net/downloads/microsoft/wincache-extension WinCache] är installerat",
        "config-no-cache-apcu": "<strong>Varning:</strong> Kunde inte hitta [https://secure.php.net/apcu APCu] eller [https://www.iis.net/downloads/microsoft/wincache-extension WinCache].\nCachelagring av objekt är inte aktiverat.",
        "config-mod-security": "'''Varning:''' Din webbserver har [https://modsecurity.org/ mod_security] aktiverat. Om felaktigt konfigurerat kan den skapa problem för MediaWiki eller annan programvara som tillåter användaren att posta godtyckligt innehåll.\nTitta på [https://modsecurity.org/documentation/ mod_security-dokumentationen] eller kontakta din värd om du påträffar slumpmässiga fel.",
-       "config-diff3-bad": "GNU diff3 hittades inte.",
+       "config-diff3-bad": "Inget verktyg för att jämföra GNU diff3-text hittades. Du kan ignorera detta för tillfället, men då kan du stöta på redigeringskonflikter mer frekvent.",
        "config-git": "Hittade Git-mjukvara för versionskontroll: <code>$1</code>.",
-       "config-git-bad": "Git-mjukvara för versionskontroll hittades inte.",
+       "config-git-bad": "Git-mjukvara för versionskontroll hittades inte. Du kan ignorera detta för tillfället. Observera att Special:Version inte kommer att visa hashvärden för commits.",
        "config-imagemagick": "Hittade ImageMagick: <code>$1</code>.\nMiniatyrvisning av bilder kommer att aktiveras om du aktiverar uppladdningar.",
        "config-gd": "Hittade ett integrerat GD-grafikbibliotek.\nMiniatyrvisning av bilder kommer att aktiveras om du aktiverar uppladdningar.",
        "config-no-scaling": "Kunde inte hitta GD-biblioteket eller ImageMagick.\nMiniatyrvisning av bilder kommer att inaktiveras.Miniatyrvisning av bilder",
index 6cbcdff..115f4e6 100644 (file)
@@ -6,7 +6,8 @@
                        "Octahedron80",
                        "Aefgh39622",
                        "Ans",
-                       "Geonuch"
+                       "Geonuch",
+                       "B20180"
                ]
        },
        "config-desc": "ตัวติดตั้งสำหรับมีเดียวิกิ",
@@ -66,9 +67,9 @@
        "config-wincache": "มี [https://www.iis.net/downloads/microsoft/wincache-extension WinCache] ติดตั้งอยู่",
        "config-no-cache-apcu": "<strong>คำเตือน:</strong> ไม่พบ [https://secure.php.net/apcu APCu] [http://xcache.lighttpd.net/ XCache] หรือ [https://www.iis.net/downloads/microsoft/wincache-extension WinCache]\nการแคชวัตถุไม่ได้ถูกเปิดใช้งาน",
        "config-mod-security": "<strong>คำเตือน:</strong> เว็บเซิร์ฟเวอร์ของคุณมี [https://modsecurity.org/ mod_security]/mod_security2 เปิดใช้งานอยู่ การตั้งค่าทั่วไปหลายอย่างของสิ่งนี้จะก่อให้เกิดปัญหาสำหรับ MediaWiki และซอฟต์แวร์อื่นที่อนุญาตให้ผู้ใช้สามารถโพสต์เนื้อหาได้ตามที่ผู้ใช้\nหากเป็นไปได้ ควรปิดใช้งานคุณลักษณะนี้ หรือมิฉะนั้นก็ อ้างไปยัง[https://modsecurity.org/documentation/ เอกสารกำกับการใช้งาน mod_security] หรือติดต่อการสนับสนุนจากโฮสต์ของคุณ ถ้าคุณพบข้อผิดพลาดโดยสุ่ม",
-       "config-diff3-bad": "ไม่พบ GNU diff3",
+       "config-diff3-bad": "ไม่พบโปรแกรมเปรียบเทียบข้อความ GNU diff3 คุณสามารถละเว้นสิ่งนี้ได้ในตอนนี้ แต่อาจพบข้อขัดแย้งในการแก้ไขบ่อยครั้งกว่า",
        "config-git": "พบซอฟต์แวร์ควบคุมรุ่น Git: <code>$1</code>",
-       "config-git-bad": "à¹\84มà¹\88à¸\9eà¸\9aà¸\8bอà¸\9fà¸\95à¹\8cà¹\81วรà¹\8cà¸\84วà¸\9aà¸\84ุมรุà¹\88à¸\99 Git",
+       "config-git-bad": "à¹\84มà¹\88à¸\9eà¸\9aà¸\8bอà¸\9fà¸\95à¹\8cà¹\81วรà¹\8cà¸\84วà¸\9aà¸\84ุมà¹\80วอรà¹\8cà¸\8aัà¸\99à¸\81ิà¸\95 à¸\84ุà¸\93สามารà¸\96ละà¹\80วà¹\89à¸\99สิà¹\88à¸\87à¸\99ีà¹\89à¹\84à¸\94à¹\89à¹\83à¸\99à¸\95อà¸\99à¸\99ีà¹\89 à¸«à¸¡à¸²à¸¢à¹\80หà¸\95ุ à¸«à¸\99à¹\89าà¸\9eิà¹\80ศษ:à¹\80วอรà¹\8cà¸\8aัà¸\99 à¸\88ะà¹\84มà¹\88à¹\81สà¸\94à¸\87à¹\81ฮà¸\8aà¸\81ารà¸\81ระà¸\97ำ",
        "config-imagemagick": "พบ ImageMagick: <code>$1</code>\nการย่อรูปภาพจะถูกเปิดใช้งาน ถ้าคุณเปิดใช้งานการอัปโหลด",
        "config-gd": "พบไลบรารีกราฟิก GD ในตัว\nการย่อรูปภาพจะถูกเปิดใช้งาน ถ้าคุณเปิดใช้งานการอัปโหลด",
        "config-no-scaling": "ไม่พบไลบรารี GD หรือ ImageMagick\nการย่อรูปภาพจะถูกปิดใช้งาน",
index 51a3ba4..b67adb2 100644 (file)
@@ -75,9 +75,9 @@
        "config-wincache": "[https://www.iis.net/downloads/microsoft/wincache-extension WinCache] встановлено",
        "config-no-cache-apcu": "<strong>Увага:</strong> Не вдалося знайти [https://secure.php.net/apcu APCu] чи [https://www.iis.net/downloads/microsoft/wincache-extension WinCache].\nКешування об'єктів не ввімкнено.",
        "config-mod-security": "'''Увага''': на Вашому веб-сервері увімкнено [https://modsecurity.org/ mod_security]. У разі неправильних налаштувать, він може викликати проблеми MediaWiki або іншого ПЗ, яке дозволяє користувачам надсилати довільний вміст.\nЗверніться до [https://modsecurity.org/documentation/ документації mod_security] або підтримки Вашого хостера, якщо під час роботи виникають незрозумілі помилки.",
-       "config-diff3-bad": "GNU diff3 не знайдено.",
+       "config-diff3-bad": "УтилітуGNU diff3, призначену для порівняння текстів, не знайдено. Можете поки що це проігнорувати, але згодом, ймовірно, будете частіше натрапляти на конфлікти редагувань.",
        "config-git": "Знайшов програму управління версіями Git: <code>$1</code>.",
-       "config-git-bad": "Програму управління версіями Git  не знайдено.",
+       "config-git-bad": "Програму управління версіями Git не знайдено. Можете поки що це проігнорувати. Зауважте, що Special:Version не показуватиме хешів комітів.",
        "config-imagemagick": "Виявлено ImageMagick: <code>$1</code>.\nБуде ввімкнуто відображення мініатюр, якщо ви дозволите завантаження файлів.",
        "config-gd": "Виявлено вбудовано графічну бібліотеку GD.\nБуде ввімкнуто відображення мініатюр, якщо ви дозволите завантаження файлів.",
        "config-no-scaling": "Не вдалося виявити бібліотеку GD чи ImageMagick.\nВідображення мініатюр буде вимкнено.",
        "config-install-mainpage-failed": "Не вдається вставити головну сторінку: $1",
        "config-install-done": "<strong>Вітаємо!</strong>\nВи успішно встановили MediaWiki.\n\nІнсталятор згенерував файл <code>LocalSettings.php</code>, який містить усі Ваші налаштування.\n\nВам необхідно завантажити його і помістити у кореневу папку Вашої вікі (туди ж, де index.php). Завантаження мало початись автоматично.\n\nЯкщо завантаження не почалось або Ви його скасували, можете заново його почати, натиснувши на посилання внизу:\n\n$3\n\n<strong>Примітка</strong>: Якщо Ви не зробите цього зараз, цей файл не буде доступним пізніше, коли Ви вийдете з встановлення, не скачавши його.\n\nПісля виконання дій, описаних вище, Ви зможете <strong>[$2 увійти у свою вікі]</strong>.",
        "config-install-done-path": "<strong>Вітаємо!</strong>\nВи встановили Медіавікі.\n\nІнсталятор створив файл <code>LocalSettings.php</code>.\nУ ньому містяться всі Ваші налаштування.\n\nВам потрібно завантажити його й помістити в <code>$4</code>. Завантаження повинно було автоматично розпочатись.\n\nЯкщо завантаження не було запропоновано, або Ви його скасували, Ви можете перезапустити завантаження натиснувши на посилання нижче:\n\n$3\n\n<strong>Зверніть увагу:</strong> Якщо Ви не зробите це зараз, цей згенерований файл налаштувань не буде доступним для Вас пізніше якщо Ви вийдете зі встановлення не завантаживши його.\n\nКоли це було зроблено Ви можете <strong>[$2 зайти до своєї вікі]</strong>.",
-       "config-install-success": "Mediawiki Ñ\83Ñ\81пÑ\96Ñ\88но Ð²Ñ\81Ñ\82ановлено. Ð\97аÑ\80аз Ð²Ð¸ Ð¼Ð¾Ð¶ÐµÑ\82е Ð¿ÐµÑ\80ейÑ\82и Ð´Ð¾ <$1$2>, Ñ\89об Ð¿ÐµÑ\80еглÑ\8fнÑ\83Ñ\82и Ñ\81воÑ\8e Ð²Ñ\96кÑ\96. Ð¯ÐºÑ\89о Ñ\83 Ð²Ð°Ñ\81 Ñ\94 Ð¿Ð¸Ñ\82аннÑ\8f, Ð¾Ð·Ð½Ð°Ð¹Ð¾Ð¼Ñ\82еÑ\81Ñ\8f Ð· Ð½Ð°Ñ\88им FAQ: <https://www.mediawiki.org/wiki/Manual:FAQ> або використовуйте один з форумів підтримки, які вказано на цій сторінці.",
+       "config-install-success": "Mediawiki Ñ\83Ñ\81пÑ\96Ñ\88но Ð²Ñ\81Ñ\82ановлено. Ð\97аÑ\80аз Ð\92и Ð¼Ð¾Ð¶ÐµÑ\82е Ð¿ÐµÑ\80ейÑ\82и Ð´Ð¾ <$1$2>, Ñ\89об Ð¿ÐµÑ\80еглÑ\8fнÑ\83Ñ\82и Ñ\81воÑ\8e Ð²Ñ\96кÑ\96. Ð¯ÐºÑ\89о Ñ\83 Ð\92аÑ\81 Ñ\94 Ð¿Ð¸Ñ\82аннÑ\8f, Ð¾Ð·Ð½Ð°Ð¹Ð¾Ð¼Ñ\82еÑ\81Ñ\8f Ð· Ð½Ð°Ñ\88им FAQ: <https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ> або використовуйте один з форумів підтримки, які вказано на цій сторінці.",
        "config-download-localsettings": "Завантажити <code>LocalSettings.php</code>",
        "config-help": "допомога",
        "config-help-tooltip": "натисніть, щоб розгорнути",
        "config-nofile": "Файл \"$1\" не знайдено. Його видалено?",
-       "config-extension-link": "Чи знаєте ви, що ваше вікі підтримує [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions розширення]?\n\nВи можете переглядати [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category розширення по категорії] або в [https://www.mediawiki.org/wiki/Extension_Matrix матрицю розширень] щоб побачити повний список розширень.",
+       "config-extension-link": "Чи знали Ви, що Ваша вікі підтримує [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions розширення]?\n\nМожете переглянути [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category розширення за категорією]",
        "config-skins-screenshots": "$1 (скріншоти: $2)",
        "config-extensions-requires": "$1 (вимагає $2)",
        "config-screenshot": "скріншот",
+       "config-extension-not-found": "Не вдалося знайти файл реєстрації для розширення «$1»",
+       "config-extension-dependency": "При встановленні розширення «$1» виникла помилка залежності: $2",
        "mainpagetext": "<strong>Програмне забезпечення «MediaWiki» встановлено.</strong>",
        "mainpagedocfooter": "Інформацію про роботу з цією вікі можна знайти на сторінці [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Довідка:Вміст].\n\n== Деякі корисні ресурси ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список налаштувань];\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Часті питання з приводу MediaWiki];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Розсилка повідомлень про появу нових версій MediaWiki];\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Локалізувати MediaWiki своєю мовою]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Дізнатися, як боротися зі спамом у своїй вікі]"
 }
index 7fc23af..88ef8e0 100644 (file)
@@ -82,9 +82,9 @@
        "config-wincache": "[https://www.iis.net/downloads/microsoft/wincache-extension WinCache] 已安裝",
        "config-no-cache-apcu": "<strong>警告:</strong>找不到[https://secure.php.net/apcu APCu]或[https://www.iis.net/downloads/microsoft/wincache-extension WinCache]。未開啟物件快取。",
        "config-mod-security": "<strong>警告:</strong>您的網頁伺服器已開啟 [https://modsecurity.org/ mod_security] 模組,如果設定不恰當會導致使用者可在 MediaWiki 或其他應用程式發佈任意的內容。\n若您遇到任何問題,請參考 [https://modsecurity.org/documentation/ mod_security 文件] 或聯繫您的伺服器技術支援人員。",
-       "config-diff3-bad": "找不到 GNU diff3。",
+       "config-diff3-bad": "找不到 GNU diff3 文字比對工具程式,而您現在可忽略它,但可能會更頻繁地遇到編輯衝突。",
        "config-git": "找到 Git 版本控制軟體:<code>$1</code>。",
-       "config-git-bad": "查無 Git 版本控制軟體。",
+       "config-git-bad": "查無 Git 版本控制軟體,而您現在可忽略它,另外請注意 Special:Version 不會顯示出提交的雜湊。",
        "config-imagemagick": "找到 ImageMagick:<code>$1</code>。\n若您開啟了檔案上傳功能,將可啟用縮圖功能。",
        "config-gd": "找到內建 GD 圖形程式庫。\n若您開啟了檔案上傳功能,將可啟用縮圖功能。",
        "config-no-scaling": "找不到 GD 程式庫或 ImageMagick。\n無法使用縮圖功能。",
index 3689ba4..4f4728d 100644 (file)
@@ -323,7 +323,7 @@ abstract class JobQueue {
        final public function batchPush( array $jobs, $flags = 0 ) {
                $this->assertNotReadOnly();
 
-               if ( !count( $jobs ) ) {
+               if ( $jobs === [] ) {
                        return; // nothing to do
                }
 
index 9931d83..fa17284 100644 (file)
@@ -214,7 +214,7 @@ class JobQueueDB extends JobQueue {
         * @return void
         */
        public function doBatchPushInternal( IDatabase $dbw, array $jobs, $flags, $method ) {
-               if ( !count( $jobs ) ) {
+               if ( $jobs === [] ) {
                        return;
                }
 
index b103b8e..4853c4a 100644 (file)
@@ -143,7 +143,7 @@ class JobQueueGroup {
                }
 
                $jobs = is_array( $jobs ) ? $jobs : [ $jobs ];
-               if ( !count( $jobs ) ) {
+               if ( $jobs === [] ) {
                        return;
                }
 
index b868128..a1ef28b 100644 (file)
@@ -203,7 +203,7 @@ class JobQueueRedis extends JobQueue {
                        }
                }
 
-               if ( !count( $items ) ) {
+               if ( $items === [] ) {
                        return; // nothing to do
                }
 
index 27e6924..06a155a 100644 (file)
@@ -417,7 +417,7 @@ abstract class FileBackend implements LoggerAwareInterface {
                if ( empty( $opts['bypassReadOnly'] ) && $this->isReadOnly() ) {
                        return $this->newStatus( 'backend-fail-readonly', $this->name, $this->readOnly );
                }
-               if ( !count( $ops ) ) {
+               if ( $ops === [] ) {
                        return $this->newStatus(); // nothing to do
                }
 
@@ -436,6 +436,7 @@ abstract class FileBackend implements LoggerAwareInterface {
         * @see FileBackend::doOperations()
         * @param array $ops
         * @param array $opts
+        * @return StatusValue
         */
        abstract protected function doOperationsInternal( array $ops, array $opts );
 
@@ -655,7 +656,7 @@ abstract class FileBackend implements LoggerAwareInterface {
                if ( empty( $opts['bypassReadOnly'] ) && $this->isReadOnly() ) {
                        return $this->newStatus( 'backend-fail-readonly', $this->name, $this->readOnly );
                }
-               if ( !count( $ops ) ) {
+               if ( $ops === [] ) {
                        return $this->newStatus(); // nothing to do
                }
 
@@ -673,6 +674,7 @@ abstract class FileBackend implements LoggerAwareInterface {
        /**
         * @see FileBackend::doQuickOperations()
         * @param array $ops
+        * @return StatusValue
         * @since 1.20
         */
        abstract protected function doQuickOperationsInternal( array $ops );
@@ -819,6 +821,7 @@ abstract class FileBackend implements LoggerAwareInterface {
        /**
         * @see FileBackend::prepare()
         * @param array $params
+        * @return StatusValue
         */
        abstract protected function doPrepare( array $params );
 
@@ -850,6 +853,7 @@ abstract class FileBackend implements LoggerAwareInterface {
        /**
         * @see FileBackend::secure()
         * @param array $params
+        * @return StatusValue
         */
        abstract protected function doSecure( array $params );
 
@@ -883,6 +887,7 @@ abstract class FileBackend implements LoggerAwareInterface {
        /**
         * @see FileBackend::publish()
         * @param array $params
+        * @return StatusValue
         */
        abstract protected function doPublish( array $params );
 
@@ -909,6 +914,7 @@ abstract class FileBackend implements LoggerAwareInterface {
        /**
         * @see FileBackend::clean()
         * @param array $params
+        * @return StatusValue
         */
        abstract protected function doClean( array $params );
 
index 47be4eb..999594b 100644 (file)
@@ -97,7 +97,7 @@ abstract class FileJournal {
         * @return StatusValue
         */
        final public function logChangeBatch( array $entries, $batchId ) {
-               if ( !count( $entries ) ) {
+               if ( $entries === [] ) {
                        return StatusValue::newGood();
                }
 
index f2624e7..019029c 100644 (file)
@@ -169,7 +169,7 @@ class FSLockManager extends LockManager {
                        if ( $this->locksHeld[$path][$type] <= 0 ) {
                                unset( $this->locksHeld[$path][$type] );
                        }
-                       if ( !count( $this->locksHeld[$path] ) ) {
+                       if ( $this->locksHeld[$path] === [] ) {
                                unset( $this->locksHeld[$path] ); // no locks on this path
                                if ( isset( $this->handles[$path] ) ) {
                                        $handlesToClose[] = $this->handles[$path];
index 65c6993..fd3ffa5 100644 (file)
@@ -18,7 +18,7 @@ class PostgreSqlLockManager extends DBLockManager {
 
        protected function doGetLocksOnServer( $lockSrv, array $paths, $type ) {
                $status = StatusValue::newGood();
-               if ( !count( $paths ) ) {
+               if ( $paths === [] ) {
                        return $status; // nothing to lock
                }
 
index 1d2e21a..1ef4642 100644 (file)
@@ -98,7 +98,7 @@ abstract class QuorumLockManager extends LockManager {
                                                $bucket = $this->getBucketFromPath( $path );
                                                $pathsToUnlock[$bucket][$type][] = $path;
                                        }
-                                       if ( !count( $this->locksHeld[$path] ) ) {
+                                       if ( $this->locksHeld[$path] === [] ) {
                                                unset( $this->locksHeld[$path] ); // no SH or EX locks left for key
                                        }
                                }
@@ -110,7 +110,7 @@ abstract class QuorumLockManager extends LockManager {
                foreach ( $pathsToUnlock as $bucket => $pathsToUnlockByType ) {
                        $status->merge( $this->doUnlockingRequestBucket( $bucket, $pathsToUnlockByType ) );
                }
-               if ( !count( $this->locksHeld ) ) {
+               if ( $this->locksHeld === [] ) {
                        $status->merge( $this->releaseAllLocks() );
                        $this->degradedBuckets = []; // safe to retry the normal quorum
                }
index 802ed2d..4ae3cf9 100644 (file)
@@ -311,7 +311,6 @@ class IEContentAnalyzer {
         */
        protected $typeTable = [];
 
-       /** constructor */
        function __construct() {
                // Construct versioned type arrays from the base type array plus additions
                $types = $this->baseTypeTable;
index a270105..993eea9 100644 (file)
@@ -364,6 +364,7 @@ class XmlTypeCheck {
                        $this->filterMatchType = $callbackReturn;
                }
        }
+
        /**
         * Handle coming across a <!DOCTYPE declaration.
         *
index 4bbebd6..6e8d266 100644 (file)
@@ -941,6 +941,36 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         *     );
         * @endcode
         *
+        * Example usage (key that is expensive with too many DB dependencies for "check keys"):
+        * @code
+        *     $catToys = $cache->getWithSetCallback(
+        *         // Key to store the cached value under
+        *         $cache->makeKey( 'cat-toys', $catId ),
+        *         // Time-to-live (seconds)
+        *         $cache::TTL_HOUR,
+        *         // Function that derives the new key value
+        *         function ( $oldValue, &$ttl, array &$setOpts ) {
+        *             // Determine new value from the DB
+        *             $dbr = wfGetDB( DB_REPLICA );
+        *             // Account for any snapshot/replica DB lag
+        *             $setOpts += Database::getCacheSetOptions( $dbr );
+        *
+        *             return CatToys::newFromResults( $dbr->select( ... ) );
+        *         },
+        *         [
+        *              // Get the highest timestamp of any of the cat's toys
+        *             'touchedCallback' => function ( $value ) use ( $catId ) {
+        *                 $dbr = wfGetDB( DB_REPLICA );
+        *                 $ts = $dbr->selectField( 'cat_toys', 'MAX(ct_touched)', ... );
+        *
+        *                 return wfTimestampOrNull( TS_UNIX, $ts );
+        *             },
+        *             // Avoid DB queries for repeated access
+        *             'pcTTL' => $cache::TTL_PROC_SHORT
+        *         ]
+        *     );
+        * @endcode
+        *
         * Example usage (hot key holding most recent 100 events):
         * @code
         *     $lastCatActions = $cache->getWithSetCallback(
@@ -1082,8 +1112,8 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         *      expired for this specified time. This is useful if adaptiveTTL() is used on the old
         *      value's as-of time when it is verified as still being correct.
         *      Default: WANObjectCache::STALE_TTL_NONE
-        *   - touchedCallback: A callback that takes the current value and returns a timestamp that
-        *      indicates the last time a dynamic dependency changed. Null can be returned if there
+        *   - touchedCallback: A callback that takes the current value and returns a UNIX timestamp
+        *      indicating the last time a dynamic dependency changed. Null can be returned if there
         *      are no relevant dependency changes to check. This can be used to check against things
         *      like last-modified times of files or DB timestamp fields. This should generally not be
         *      used for small and easily queried values in a DB if the callback itself ends up doing
index 938e534..3e71e36 100644 (file)
@@ -202,7 +202,7 @@ class ChronologyProtector implements LoggerAwareInterface {
                        );
                }
 
-               if ( !count( $this->shutdownPositions ) ) {
+               if ( $this->shutdownPositions === [] ) {
                        return []; // nothing to save
                }
 
index 9a9e36a..7d971af 100644 (file)
@@ -2855,7 +2855,7 @@ abstract class Database implements IDatabase, IMaintainableDatabase, LoggerAware
        public function upsert( $table, array $rows, array $uniqueIndexes, array $set,
                $fname = __METHOD__
        ) {
-               if ( !count( $rows ) ) {
+               if ( $rows === [] ) {
                        return true; // nothing to do
                }
 
index 3fcbcf9..186c89f 100644 (file)
@@ -1337,7 +1337,7 @@ abstract class DatabaseMysqlBase extends Database {
        public function upsert( $table, array $rows, array $uniqueIndexes,
                array $set, $fname = __METHOD__
        ) {
-               if ( !count( $rows ) ) {
+               if ( $rows === [] ) {
                        return true; // nothing to do
                }
 
index ca18122..ab5c3cd 100644 (file)
@@ -408,7 +408,7 @@ class LoadBalancer implements ILoadBalancer {
         * @return array (reader index, lagged replica mode) or false on failure
         */
        private function pickReaderIndex( array $loads, $domain = false ) {
-               if ( !count( $loads ) ) {
+               if ( $loads === [] ) {
                        throw new InvalidArgumentException( "Empty server array given to LoadBalancer" );
                }
 
@@ -476,7 +476,7 @@ class LoadBalancer implements ILoadBalancer {
                }
 
                // If all servers were down, quit now
-               if ( !count( $currentLoads ) ) {
+               if ( $currentLoads === [] ) {
                        $this->connLogger->error( __METHOD__ . ": all servers down" );
                }
 
diff --git a/includes/libs/services/CannotReplaceActiveServiceException.php b/includes/libs/services/CannotReplaceActiveServiceException.php
new file mode 100644 (file)
index 0000000..ee0d7d0
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+namespace Wikimedia\Services;
+
+use Exception;
+use RuntimeException;
+
+/**
+ * Exception thrown when trying to replace an already active service.
+ *
+ * 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.27
+ */
+
+/**
+ * Exception thrown when trying to replace an already active service.
+ */
+class CannotReplaceActiveServiceException extends RuntimeException {
+
+       /**
+        * @param string $serviceName
+        * @param Exception|null $previous
+        */
+       public function __construct( $serviceName, Exception $previous = null ) {
+               parent::__construct( "Cannot replace an active service: $serviceName", 0, $previous );
+       }
+
+}
+
+/**
+ * Retain the old class name for backwards compatibility.
+ * @deprecated since 1.33
+ */
+class_alias( CannotReplaceActiveServiceException::class,
+       'MediaWiki\Services\CannotReplaceActiveServiceException' );
diff --git a/includes/libs/services/ContainerDisabledException.php b/includes/libs/services/ContainerDisabledException.php
new file mode 100644 (file)
index 0000000..c909879
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+namespace Wikimedia\Services;
+
+use Exception;
+use RuntimeException;
+
+/**
+ * Exception thrown when trying to access a service on a disabled container or factory.
+ *
+ * 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.27
+ */
+
+/**
+ * Exception thrown when trying to access a service on a disabled container or factory.
+ */
+class ContainerDisabledException extends RuntimeException {
+
+       /**
+        * @param Exception|null $previous
+        */
+       public function __construct( Exception $previous = null ) {
+               parent::__construct( 'Container disabled!', 0, $previous );
+       }
+
+}
+
+/**
+ * Retain the old class name for backwards compatibility.
+ * @deprecated since 1.33
+ */
+class_alias( ContainerDisabledException::class, 'MediaWiki\Services\ContainerDisabledException' );
diff --git a/includes/libs/services/DestructibleService.php b/includes/libs/services/DestructibleService.php
new file mode 100644 (file)
index 0000000..46e2f82
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+namespace Wikimedia\Services;
+
+/**
+ * Interface for destructible services.
+ *
+ * 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.27
+ */
+
+/**
+ * DestructibleService defines a standard interface for shutting down a service instance.
+ * The intended use is for a service container to be able to shut down services that should
+ * no longer be used, and allow such services to release any system resources.
+ *
+ * @note There is no expectation that services will be destroyed when the process (or web request)
+ * terminates.
+ */
+interface DestructibleService {
+
+       /**
+        * Notifies the service object that it should expect to no longer be used, and should release
+        * any system resources it may own. The behavior of all service methods becomes undefined after
+        * destroy() has been called. It is recommended that implementing classes should throw an
+        * exception when service methods are accessed after destroy() has been called.
+        */
+       public function destroy();
+
+}
+
+/**
+ * Retain the old class name for backwards compatibility.
+ * @deprecated since 1.33
+ */
+class_alias( DestructibleService::class, 'MediaWiki\Services\DestructibleService' );
diff --git a/includes/libs/services/NoSuchServiceException.php b/includes/libs/services/NoSuchServiceException.php
new file mode 100644 (file)
index 0000000..3a0cdf4
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+namespace Wikimedia\Services;
+
+use Exception;
+use RuntimeException;
+
+/**
+ * Exception thrown when the requested service is not known.
+ *
+ * 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.27
+ */
+
+/**
+ * Exception thrown when the requested service is not known.
+ */
+class NoSuchServiceException extends RuntimeException {
+
+       /**
+        * @param string $serviceName
+        * @param Exception|null $previous
+        */
+       public function __construct( $serviceName, Exception $previous = null ) {
+               parent::__construct( "No such service: $serviceName", 0, $previous );
+       }
+
+}
+
+/**
+ * Retain the old class name for backwards compatibility.
+ * @deprecated since 1.33
+ */
+class_alias( NoSuchServiceException::class, 'MediaWiki\Services\NoSuchServiceException' );
diff --git a/includes/libs/services/SalvageableService.php b/includes/libs/services/SalvageableService.php
new file mode 100644 (file)
index 0000000..4f94515
--- /dev/null
@@ -0,0 +1,64 @@
+<?php
+namespace Wikimedia\Services;
+
+/**
+ * Interface for salvageable services.
+ *
+ * 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.28
+ */
+
+/**
+ * SalvageableService defines an interface for services that are able to salvage state from a
+ * previous instance of the same class. The intent is to allow new service instances to re-use
+ * resources that would be expensive to re-create, such as cached data or network connections.
+ *
+ * @note There is no expectation that services will be destroyed when the process (or web request)
+ * terminates.
+ */
+interface SalvageableService {
+
+       /**
+        * Re-uses state from $other. $other must not be used after being passed to salvage(),
+        * and should be considered to be destroyed.
+        *
+        * @note Implementations are responsible for determining what parts of $other can be re-used
+        * safely. In particular, implementations should check that the relevant configuration of
+        * $other is the same as in $this before re-using resources from $other.
+        *
+        * @note Implementations must take care to detach any re-used resources from the original
+        * service instance. If $other is destroyed later, resources that are now used by the
+        * new service instance must not be affected.
+        *
+        * @note If $other is a DestructibleService, implementations should make sure that $other
+        * is in destroyed state after salvage finished. This may be done by calling $other->destroy()
+        * after carefully detaching all relevant resources.
+        *
+        * @param SalvageableService $other The object to salvage state from. $other must have the
+        * exact same type as $this.
+        */
+       public function salvage( SalvageableService $other );
+
+}
+
+/**
+ * Retain the old class name for backwards compatibility.
+ * @deprecated since 1.33
+ */
+class_alias( SalvageableService::class, 'MediaWiki\Services\SalvageableService' );
diff --git a/includes/libs/services/ServiceAlreadyDefinedException.php b/includes/libs/services/ServiceAlreadyDefinedException.php
new file mode 100644 (file)
index 0000000..39c8384
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+namespace Wikimedia\Services;
+
+use Exception;
+use RuntimeException;
+
+/**
+ * Exception thrown when a service was already defined, but the
+ * caller expected it to not exist.
+ *
+ * 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.27
+ */
+
+/**
+ * Exception thrown when a service was already defined, but the
+ * caller expected it to not exist.
+ */
+class ServiceAlreadyDefinedException extends RuntimeException {
+
+       /**
+        * @param string $serviceName
+        * @param Exception|null $previous
+        */
+       public function __construct( $serviceName, Exception $previous = null ) {
+               parent::__construct( "Service already defined: $serviceName", 0, $previous );
+       }
+
+}
+
+/**
+ * Retain the old class name for backwards compatibility.
+ * @deprecated since 1.33
+ */
+class_alias( ServiceAlreadyDefinedException::class,
+       'MediaWiki\Services\ServiceAlreadyDefinedException' );
diff --git a/includes/libs/services/ServiceContainer.php b/includes/libs/services/ServiceContainer.php
new file mode 100644 (file)
index 0000000..59e5c4b
--- /dev/null
@@ -0,0 +1,471 @@
+<?php
+namespace Wikimedia\Services;
+
+use InvalidArgumentException;
+use RuntimeException;
+use Wikimedia\Assert\Assert;
+
+/**
+ * Generic service container.
+ *
+ * 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.27
+ */
+
+/**
+ * ServiceContainer provides a generic service to manage named services using
+ * lazy instantiation based on instantiator callback functions.
+ *
+ * Services managed by an instance of ServiceContainer may or may not implement
+ * a common interface.
+ *
+ * @note When using ServiceContainer to manage a set of services, consider
+ * creating a wrapper or a subclass that provides access to the services via
+ * getter methods with more meaningful names and more specific return type
+ * declarations.
+ *
+ * @see docs/injection.txt for an overview of using dependency injection in the
+ *      MediaWiki code base.
+ */
+class ServiceContainer implements DestructibleService {
+
+       /**
+        * @var object[]
+        */
+       private $services = [];
+
+       /**
+        * @var callable[]
+        */
+       private $serviceInstantiators = [];
+
+       /**
+        * @var callable[][]
+        */
+       private $serviceManipulators = [];
+
+       /**
+        * @var bool[] disabled status, per service name
+        */
+       private $disabled = [];
+
+       /**
+        * @var array
+        */
+       private $extraInstantiationParams;
+
+       /**
+        * @var bool
+        */
+       private $destroyed = false;
+
+       /**
+        * @param array $extraInstantiationParams Any additional parameters to be passed to the
+        * instantiator function when creating a service. This is typically used to provide
+        * access to additional ServiceContainers or Config objects.
+        */
+       public function __construct( array $extraInstantiationParams = [] ) {
+               $this->extraInstantiationParams = $extraInstantiationParams;
+       }
+
+       /**
+        * Destroys all contained service instances that implement the DestructibleService
+        * interface. This will render all services obtained from this ServiceContainer
+        * instance unusable. In particular, this will disable access to the storage backend
+        * via any of these services. Any future call to getService() will throw an exception.
+        *
+        * @see resetGlobalInstance()
+        */
+       public function destroy() {
+               foreach ( $this->getServiceNames() as $name ) {
+                       $service = $this->peekService( $name );
+                       if ( $service !== null && $service instanceof DestructibleService ) {
+                               $service->destroy();
+                       }
+               }
+
+               // Break circular references due to the $this reference in closures, by
+               // erasing the instantiator array. This allows the ServiceContainer to
+               // be deleted when it goes out of scope.
+               $this->serviceInstantiators = [];
+               // Also remove the services themselves, to avoid confusion.
+               $this->services = [];
+               $this->destroyed = true;
+       }
+
+       /**
+        * @param array $wiringFiles A list of PHP files to load wiring information from.
+        * Each file is loaded using PHP's include mechanism. Each file is expected to
+        * return an associative array that maps service names to instantiator functions.
+        */
+       public function loadWiringFiles( array $wiringFiles ) {
+               foreach ( $wiringFiles as $file ) {
+                       // the wiring file is required to return an array of instantiators.
+                       $wiring = require $file;
+
+                       Assert::postcondition(
+                               is_array( $wiring ),
+                               "Wiring file $file is expected to return an array!"
+                       );
+
+                       $this->applyWiring( $wiring );
+               }
+       }
+
+       /**
+        * Registers multiple services (aka a "wiring").
+        *
+        * @param array $serviceInstantiators An associative array mapping service names to
+        *        instantiator functions.
+        */
+       public function applyWiring( array $serviceInstantiators ) {
+               Assert::parameterElementType( 'callable', $serviceInstantiators, '$serviceInstantiators' );
+
+               foreach ( $serviceInstantiators as $name => $instantiator ) {
+                       $this->defineService( $name, $instantiator );
+               }
+       }
+
+       /**
+        * Imports all wiring defined in $container. Wiring defined in $container
+        * will override any wiring already defined locally. However, already
+        * existing service instances will be preserved.
+        *
+        * @since 1.28
+        *
+        * @param ServiceContainer $container
+        * @param string[] $skip A list of service names to skip during import
+        */
+       public function importWiring( ServiceContainer $container, $skip = [] ) {
+               $newInstantiators = array_diff_key(
+                       $container->serviceInstantiators,
+                       array_flip( $skip )
+               );
+
+               $this->serviceInstantiators = array_merge(
+                       $this->serviceInstantiators,
+                       $newInstantiators
+               );
+
+               $newManipulators = array_diff(
+                       array_keys( $container->serviceManipulators ),
+                       $skip
+               );
+
+               foreach ( $newManipulators as $name ) {
+                       if ( isset( $this->serviceManipulators[$name] ) ) {
+                               $this->serviceManipulators[$name] = array_merge(
+                                       $this->serviceManipulators[$name],
+                                       $container->serviceManipulators[$name]
+                               );
+                       } else {
+                               $this->serviceManipulators[$name] = $container->serviceManipulators[$name];
+                       }
+               }
+       }
+
+       /**
+        * Returns true if a service is defined for $name, that is, if a call to getService( $name )
+        * would return a service instance.
+        *
+        * @param string $name
+        *
+        * @return bool
+        */
+       public function hasService( $name ) {
+               return isset( $this->serviceInstantiators[$name] );
+       }
+
+       /**
+        * Returns the service instance for $name only if that service has already been instantiated.
+        * This is intended for situations where services get destroyed/cleaned up, so we can
+        * avoid creating a service just to destroy it again.
+        *
+        * @note This is intended for internal use and for test fixtures.
+        * Application logic should use getService() instead.
+        *
+        * @see getService().
+        *
+        * @param string $name
+        *
+        * @return object|null The service instance, or null if the service has not yet been instantiated.
+        * @throws RuntimeException if $name does not refer to a known service.
+        */
+       public function peekService( $name ) {
+               if ( !$this->hasService( $name ) ) {
+                       throw new NoSuchServiceException( $name );
+               }
+
+               return $this->services[$name] ?? null;
+       }
+
+       /**
+        * @return string[]
+        */
+       public function getServiceNames() {
+               return array_keys( $this->serviceInstantiators );
+       }
+
+       /**
+        * Define a new service. The service must not be known already.
+        *
+        * @see getService().
+        * @see redefineService().
+        *
+        * @param string $name The name of the service to register, for use with getService().
+        * @param callable $instantiator Callback that returns a service instance.
+        *        Will be called with this ServiceContainer instance as the only parameter.
+        *        Any extra instantiation parameters provided to the constructor will be
+        *        passed as subsequent parameters when invoking the instantiator.
+        *
+        * @throws RuntimeException if there is already a service registered as $name.
+        */
+       public function defineService( $name, callable $instantiator ) {
+               Assert::parameterType( 'string', $name, '$name' );
+
+               if ( $this->hasService( $name ) ) {
+                       throw new ServiceAlreadyDefinedException( $name );
+               }
+
+               $this->serviceInstantiators[$name] = $instantiator;
+       }
+
+       /**
+        * Replace an already defined service.
+        *
+        * @see defineService().
+        *
+        * @note This will fail if the service was already instantiated. If the service was previously
+        * disabled, it will be re-enabled by this call. Any manipulators registered for the service
+        * will remain in place.
+        *
+        * @param string $name The name of the service to register.
+        * @param callable $instantiator Callback function that returns a service instance.
+        *        Will be called with this ServiceContainer instance as the only parameter.
+        *        The instantiator must return a service compatible with the originally defined service.
+        *        Any extra instantiation parameters provided to the constructor will be
+        *        passed as subsequent parameters when invoking the instantiator.
+        *
+        * @throws NoSuchServiceException if $name is not a known service.
+        * @throws CannotReplaceActiveServiceException if the service was already instantiated.
+        */
+       public function redefineService( $name, callable $instantiator ) {
+               Assert::parameterType( 'string', $name, '$name' );
+
+               if ( !$this->hasService( $name ) ) {
+                       throw new NoSuchServiceException( $name );
+               }
+
+               if ( isset( $this->services[$name] ) ) {
+                       throw new CannotReplaceActiveServiceException( $name );
+               }
+
+               $this->serviceInstantiators[$name] = $instantiator;
+               unset( $this->disabled[$name] );
+       }
+
+       /**
+        * Add a service manipulator callback for the given service.
+        * This method may be used by extensions that need to wrap, replace, or re-configure a
+        * service. It would typically be called from a MediaWikiServices hook handler.
+        *
+        * The manipulator callback is called just after the service is instantiated.
+        * It can call methods on the service to change configuration, or wrap or otherwise
+        * replace it.
+        *
+        * @see defineService().
+        * @see redefineService().
+        *
+        * @note This will fail if the service was already instantiated.
+        *
+        * @since 1.32
+        *
+        * @param string $name The name of the service to manipulate.
+        * @param callable $manipulator Callback function that manipulates, wraps or replaces a
+        * service instance. The callback receives the new service instance and this
+        * ServiceContainer as parameters, as well as any extra instantiation parameters specified
+        * when constructing this ServiceContainer. If the callback returns a value, that
+        * value replaces the original service instance.
+        *
+        * @throws NoSuchServiceException if $name is not a known service.
+        * @throws CannotReplaceActiveServiceException if the service was already instantiated.
+        */
+       public function addServiceManipulator( $name, callable $manipulator ) {
+               Assert::parameterType( 'string', $name, '$name' );
+
+               if ( !$this->hasService( $name ) ) {
+                       throw new NoSuchServiceException( $name );
+               }
+
+               if ( isset( $this->services[$name] ) ) {
+                       throw new CannotReplaceActiveServiceException( $name );
+               }
+
+               $this->serviceManipulators[$name][] = $manipulator;
+       }
+
+       /**
+        * Disables a service.
+        *
+        * @note Attempts to call getService() for a disabled service will result
+        * in a DisabledServiceException. Calling peekService for a disabled service will
+        * return null. Disabled services are listed by getServiceNames(). A disabled service
+        * can be enabled again using redefineService().
+        *
+        * @note If the service was already active (that is, instantiated) when getting disabled,
+        * and the service instance implements DestructibleService, destroy() is called on the
+        * service instance.
+        *
+        * @see redefineService()
+        * @see resetService()
+        *
+        * @param string $name The name of the service to disable.
+        *
+        * @throws RuntimeException if $name is not a known service.
+        */
+       public function disableService( $name ) {
+               $this->resetService( $name );
+
+               $this->disabled[$name] = true;
+       }
+
+       /**
+        * Resets a service by dropping the service instance.
+        * If the service instances implements DestructibleService, destroy()
+        * is called on the service instance.
+        *
+        * @warning This is generally unsafe! Other services may still retain references
+        * to the stale service instance, leading to failures and inconsistencies. Subclasses
+        * may use this method to reset specific services under specific instances, but
+        * it should not be exposed to application logic.
+        *
+        * @note This is declared final so subclasses can not interfere with the expectations
+        * disableService() has when calling resetService().
+        *
+        * @see redefineService()
+        * @see disableService().
+        *
+        * @param string $name The name of the service to reset.
+        * @param bool $destroy Whether the service instance should be destroyed if it exists.
+        *        When set to false, any existing service instance will effectively be detached
+        *        from the container.
+        *
+        * @throws RuntimeException if $name is not a known service.
+        */
+       final protected function resetService( $name, $destroy = true ) {
+               Assert::parameterType( 'string', $name, '$name' );
+
+               $instance = $this->peekService( $name );
+
+               if ( $destroy && $instance instanceof DestructibleService ) {
+                       $instance->destroy();
+               }
+
+               unset( $this->services[$name] );
+               unset( $this->disabled[$name] );
+       }
+
+       /**
+        * Returns a service object of the kind associated with $name.
+        * Services instances are instantiated lazily, on demand.
+        * This method may or may not return the same service instance
+        * when called multiple times with the same $name.
+        *
+        * @note Rather than calling this method directly, it is recommended to provide
+        * getters with more meaningful names and more specific return types, using
+        * a subclass or wrapper.
+        *
+        * @see redefineService().
+        *
+        * @param string $name The service name
+        *
+        * @throws NoSuchServiceException if $name is not a known service.
+        * @throws ContainerDisabledException if this container has already been destroyed.
+        * @throws ServiceDisabledException if the requested service has been disabled.
+        *
+        * @return object The service instance
+        */
+       public function getService( $name ) {
+               if ( $this->destroyed ) {
+                       throw new ContainerDisabledException();
+               }
+
+               if ( isset( $this->disabled[$name] ) ) {
+                       throw new ServiceDisabledException( $name );
+               }
+
+               if ( !isset( $this->services[$name] ) ) {
+                       $this->services[$name] = $this->createService( $name );
+               }
+
+               return $this->services[$name];
+       }
+
+       /**
+        * @param string $name
+        *
+        * @throws InvalidArgumentException if $name is not a known service.
+        * @return object
+        */
+       private function createService( $name ) {
+               if ( isset( $this->serviceInstantiators[$name] ) ) {
+                       $service = ( $this->serviceInstantiators[$name] )(
+                               $this,
+                               ...$this->extraInstantiationParams
+                       );
+
+                       if ( isset( $this->serviceManipulators[$name] ) ) {
+                               foreach ( $this->serviceManipulators[$name] as $callback ) {
+                                       $ret = call_user_func_array(
+                                               $callback,
+                                               array_merge( [ $service, $this ], $this->extraInstantiationParams )
+                                       );
+
+                                       // If the manipulator callback returns an object, that object replaces
+                                       // the original service instance. This allows the manipulator to wrap
+                                       // or fully replace the service.
+                                       if ( $ret !== null ) {
+                                               $service = $ret;
+                                       }
+                               }
+                       }
+
+                       // NOTE: when adding more wiring logic here, make sure importWiring() is kept in sync!
+               } else {
+                       throw new NoSuchServiceException( $name );
+               }
+
+               return $service;
+       }
+
+       /**
+        * @param string $name
+        * @return bool Whether the service is disabled
+        * @since 1.28
+        */
+       public function isServiceDisabled( $name ) {
+               return isset( $this->disabled[$name] );
+       }
+}
+
+/**
+ * Retain the old class name for backwards compatibility.
+ * @deprecated since 1.33
+ */
+class_alias( ServiceContainer::class, 'MediaWiki\Services\ServiceContainer' );
diff --git a/includes/libs/services/ServiceDisabledException.php b/includes/libs/services/ServiceDisabledException.php
new file mode 100644 (file)
index 0000000..86b927b
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+namespace Wikimedia\Services;
+
+use Exception;
+use RuntimeException;
+
+/**
+ * Exception thrown when trying to access a disabled service.
+ *
+ * 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.27
+ */
+
+/**
+ * Exception thrown when trying to access a disabled service.
+ */
+class ServiceDisabledException extends RuntimeException {
+
+       /**
+        * @param string $serviceName
+        * @param Exception|null $previous
+        */
+       public function __construct( $serviceName, Exception $previous = null ) {
+               parent::__construct( "Service disabled: $serviceName", 0, $previous );
+       }
+
+}
+
+/**
+ * Retain the old class name for backwards compatibility.
+ * @deprecated since 1.33
+ */
+class_alias( ServiceDisabledException::class, 'MediaWiki\Services\ServiceDisabledException' );
index 2698cbe..6bc3f39 100644 (file)
@@ -57,15 +57,20 @@ class BlockLogFormatter extends LogFormatter {
                        // The lrm is needed to make sure that the number
                        // is shown on the correct side of the tooltip text.
                        $durationTooltip = '&lrm;' . htmlspecialchars( $params[4] );
-                       $params[4] = Message::rawParam(
-                               "<span class=\"blockExpiry\" title=\"$durationTooltip\">" .
-                               $this->context->getLanguage()->translateBlockExpiry(
-                                       $params[4],
-                                       $this->context->getUser(),
-                                       wfTimestamp( TS_UNIX, $this->entry->getTimestamp() )
-                               ) .
-                               '</span>'
+                       $blockExpiry = $this->context->getLanguage()->translateBlockExpiry(
+                               $params[4],
+                               $this->context->getUser(),
+                               wfTimestamp( TS_UNIX, $this->entry->getTimestamp() )
                        );
+                       if ( $this->plaintext ) {
+                               $params[4] = Message::rawParam( $blockExpiry );
+                       } else {
+                               $params[4] = Message::rawParam(
+                                       "<span class=\"blockExpiry\" title=\"$durationTooltip\">" .
+                                       $blockExpiry .
+                                       '</span>'
+                               );
+                       }
                        $params[5] = isset( $params[5] ) ?
                                self::formatBlockFlags( $params[5], $this->context->getLanguage() ) : '';
 
index b3afe0b..b07f20e 100644 (file)
@@ -644,18 +644,18 @@ class LogFormatter {
        protected function makePageLink( Title $title = null, $parameters = [], $html = null ) {
                if ( !$title instanceof Title ) {
                        $msg = $this->msg( 'invalidtitle' )->text();
-                       if ( !$this->plaintext ) {
-                               return Html::element( 'span', [ 'class' => 'mw-invalidtitle' ], $msg );
-                       } else {
+                       if ( $this->plaintext ) {
                                return $msg;
+                       } else {
+                               return Html::element( 'span', [ 'class' => 'mw-invalidtitle' ], $msg );
                        }
                }
 
-               if ( !$this->plaintext ) {
+               if ( $this->plaintext ) {
+                       $link = '[[' . $title->getPrefixedText() . ']]';
+               } else {
                        $html = $html !== null ? new HtmlArmor( $html ) : $html;
                        $link = $this->getLinkRenderer()->makeLink( $title, $html, [], $parameters );
-               } else {
-                       $link = '[[' . $title->getPrefixedText() . ']]';
                }
 
                return $link;
index 8a089f6..76a7760 100644 (file)
@@ -154,7 +154,7 @@ class EmailNotification {
                // If nobody is watching the page, and there are no users notified on all changes
                // don't bother creating a job/trying to send emails, unless it's a
                // talk page with an applicable notification.
-               if ( !count( $watchers ) && !count( $wgUsersNotifiedOnAllChanges ) ) {
+               if ( $watchers === [] && !count( $wgUsersNotifiedOnAllChanges ) ) {
                        $sendEmail = false;
                        // Only send notification for non minor edits, unless $wgEnotifMinorEdits
                        if ( !$minorEdit || ( $wgEnotifMinorEdits && !$editor->isAllowed( 'nominornewtalk' ) ) ) {
index f348c5b..63a3eb0 100644 (file)
@@ -102,7 +102,7 @@ class UserMailer {
         * @param MailAddress|MailAddress[] $to Recipient's email (or an array of them)
         * @param MailAddress $from Sender's email
         * @param string $subject Email's subject.
-        * @param string $body Email's text or Array of two strings to be the text and html bodies
+        * @param string|string[] $body Email's text or Array of two strings to be the text and html bodies
         * @param array $options Keys:
         *     'replyTo' MailAddress
         *     'contentType' string default 'text/plain; charset=UTF-8'
@@ -225,7 +225,7 @@ class UserMailer {
         * @param MailAddress[] $to Array of recipients' email addresses
         * @param MailAddress $from Sender's email
         * @param string $subject Email's subject.
-        * @param string $body Email's text or Array of two strings to be the text and html bodies
+        * @param string|string[] $body Email's text or Array of two strings to be the text and html bodies
         * @param array $options Keys:
         *     'replyTo' MailAddress
         *     'contentType' string default 'text/plain; charset=UTF-8'
index ca398ff..f8b0c3c 100644 (file)
@@ -74,7 +74,7 @@ class SVGReader {
 
                if ( $size > $wgSVGMetadataCutoff ) {
                        $this->debug( "SVG is $size bytes, which is bigger than $wgSVGMetadataCutoff. Truncating." );
-                       $contents = file_get_contents( $source, false, null, -1, $wgSVGMetadataCutoff );
+                       $contents = file_get_contents( $source, false, null, 0, $wgSVGMetadataCutoff );
                        if ( $contents === false ) {
                                throw new MWException( 'Error reading SVG file.' );
                        }
index cbc5966..ae32f84 100644 (file)
@@ -1091,8 +1091,8 @@ EOT
        }
 
        /**
-        * @param $lang string
-        * @param $selected bool
+        * @param string $lang
+        * @param bool $selected
         * @return string
         */
        private function createXmlOptionStringForLanguage( $lang, $selected ) {
index c7c7069..b1bf7bd 100644 (file)
@@ -2147,6 +2147,7 @@ class WikiPage implements Page, IDBAccessObject {
                }
 
                $this->loadPageData( 'fromdbmaster' );
+               $this->mTitle->loadRestrictions( null, Title::READ_LATEST );
                $restrictionTypes = $this->mTitle->getRestrictionTypes();
                $id = $this->getId();
 
index 8407992..a69e805 100644 (file)
@@ -733,6 +733,7 @@ class ParserOptions {
        public function getMagicPMIDLinks() {
                return $this->getOption( 'magicPMIDLinks' );
        }
+
        /**
         * Are magic RFC links enabled?
         * @since 1.28
index f4e4efa..3bcd012 100644 (file)
@@ -878,7 +878,7 @@ class PPDStack {
        }
 
        public function pop() {
-               if ( !count( $this->stack ) ) {
+               if ( $this->stack === [] ) {
                        throw new MWException( __METHOD__ . ': no elements remaining' );
                }
                $temp = array_pop( $this->stack );
@@ -902,7 +902,7 @@ class PPDStack {
         * @return array
         */
        public function getFlags() {
-               if ( !count( $this->stack ) ) {
+               if ( $this->stack === [] ) {
                        return [
                                'findEquals' => false,
                                'findPipe' => false,
index 0c52354..9eb921d 100644 (file)
@@ -43,7 +43,7 @@ class UserPasswordPolicy {
        /**
         * @param array $policies
         * @param array $checks mapping statement to its checking function. Checking functions are
-        * called with the policy value for this user, the user object, and the password to check.
+        *   called with the policy value for this user, the user object, and the password to check.
         */
        public function __construct( array $policies, array $checks ) {
                if ( !isset( $policies['default'] ) ) {
@@ -68,7 +68,9 @@ class UserPasswordPolicy {
         * @param User $user who's policy we are checking
         * @param string $password the password to check
         * @return Status error to indicate the password didn't meet the policy, or fatal to
-        *      indicate the user shouldn't be allowed to login.
+        *   indicate the user shouldn't be allowed to login. The status value will be an array,
+        *   potentially with the following keys:
+        *   - forceChange: do not allow the user to login without changing the password if invalid.
         */
        public function checkUserPassword( User $user, $password ) {
                $effectivePolicy = $this->getPoliciesForUser( $user );
@@ -88,7 +90,9 @@ class UserPasswordPolicy {
         * @param string $password the password to check
         * @param array $groups list of groups to which we assume the user belongs
         * @return Status error to indicate the password didn't meet the policy, or fatal to
-        *      indicate the user shouldn't be allowed to login.
+        *   indicate the user shouldn't be allowed to login. The status value will be an array,
+        *   potentially with the following keys:
+        *   - forceChange: do not allow the user to login without changing the password if invalid.
         */
        public function checkUserPasswordForGroups( User $user, $password, array $groups ) {
                $effectivePolicy = self::getPoliciesForGroups(
@@ -112,19 +116,34 @@ class UserPasswordPolicy {
         * @return Status
         */
        private function checkPolicies( User $user, $password, $policies, $policyCheckFunctions ) {
-               $status = Status::newGood();
-               foreach ( $policies as $policy => $value ) {
+               $status = Status::newGood( [] );
+               $forceChange = false;
+               foreach ( $policies as $policy => $settings ) {
                        if ( !isset( $policyCheckFunctions[$policy] ) ) {
                                throw new DomainException( "Invalid password policy config. No check defined for '$policy'." );
                        }
-                       $status->merge(
-                               call_user_func(
-                                       $policyCheckFunctions[$policy],
-                                       $value,
-                                       $user,
-                                       $password
-                               )
+                       if ( !is_array( $settings ) ) {
+                               // legacy format
+                               $settings = [ 'value' => $settings ];
+                       }
+                       if ( !array_key_exists( 'value', $settings ) ) {
+                               throw new DomainException( "Invalid password policy config. No value defined for '$policy'." );
+                       }
+                       $value = $settings['value'];
+                       /** @var StatusValue $policyStatus */
+                       $policyStatus = call_user_func(
+                               $policyCheckFunctions[$policy],
+                               $value,
+                               $user,
+                               $password
                        );
+                       if ( !$policyStatus->isGood() && !empty( $settings['forceChange'] ) ) {
+                               $forceChange = true;
+                       }
+                       $status->merge( $policyStatus );
+               }
+               if ( $status->isOK() && $forceChange ) {
+                       $status->value['forceChange'] = true;
                }
                return $status;
        }
@@ -174,6 +193,7 @@ class UserPasswordPolicy {
        /**
         * Utility function to get a policy that is the most restrictive of $p1 and $p2. For
         * simplicity, we setup the policy values so the maximum value is always more restrictive.
+        * It is also used recursively to merge settings within the same policy.
         * @param array $p1
         * @param array $p2
         * @return array containing the more restrictive values of $p1 and $p2
@@ -186,8 +206,15 @@ class UserPasswordPolicy {
                                $ret[$key] = $p2[$key];
                        } elseif ( !isset( $p2[$key] ) ) {
                                $ret[$key] = $p1[$key];
-                       } else {
+                       } elseif ( !is_array( $p1[$key] ) && !is_array( $p2[$key] ) ) {
                                $ret[$key] = max( $p1[$key], $p2[$key] );
+                       } else {
+                               if ( !is_array( $p1[$key] ) ) {
+                                       $p1[$key] = [ 'value' => $p1[$key] ];
+                               } elseif ( !is_array( $p2[$key] ) ) {
+                                       $p2[$key] = [ 'value' => $p2[$key] ];
+                               }
+                               $ret[$key] = self::maxOfPolicies( $p1[$key], $p2[$key] );
                        }
                }
                return $ret;
index e462a0b..e3bd542 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 
 use Composer\Semver\Semver;
+use Wikimedia\ScopedCallback;
 
 /**
  * ExtensionRegistry class
@@ -76,6 +77,13 @@ class ExtensionRegistry {
         */
        protected $attributes = [];
 
+       /**
+        * Attributes for testing
+        *
+        * @var array
+        */
+       protected $testAttributes = [];
+
        /**
         * @var ExtensionRegistry
         */
@@ -412,7 +420,29 @@ class ExtensionRegistry {
         * @return array
         */
        public function getAttribute( $name ) {
-               return $this->attributes[$name] ?? [];
+               return $this->testAttributes[$name] ??
+                       $this->attributes[$name] ?? [];
+       }
+
+       /**
+        * Force override the value of an attribute during tests
+        *
+        * @param string $name Name of attribute to override
+        * @param array $value Value to set
+        * @return ScopedCallback to reset
+        * @since 1.33
+        */
+       public function setAttributeForTest( $name, array $value ) {
+               if ( !defined( 'MW_PHPUNIT_TEST' ) ) {
+                       throw new RuntimeException( __METHOD__ . ' can only be used in tests' );
+               }
+               if ( isset( $this->testAttributes[$name] ) ) {
+                       throw new Exception( "The attribute '$name' has already been overridden" );
+               }
+               $this->testAttributes[$name] = $value;
+               return new ScopedCallback( function () use ( $name ) {
+                       unset( $this->testAttributes[$name] );
+               } );
        }
 
        /**
index 9570e03..c513aed 100644 (file)
@@ -781,7 +781,7 @@ class ResourceLoader implements LoggerAwareInterface {
                }
 
                // Save response to file cache unless there are errors
-               if ( isset( $fileCache ) && !$this->errors && !count( $missing ) ) {
+               if ( isset( $fileCache ) && !$this->errors && $missing === [] ) {
                        // Cache single modules and images...and other requests if there are enough hits
                        if ( ResourceFileCache::useFileCache( $context ) ) {
                                if ( $fileCache->isCacheWorthy() ) {
@@ -1036,7 +1036,7 @@ class ResourceLoader implements LoggerAwareInterface {
                $out = '';
                $states = [];
 
-               if ( !count( $modules ) && !count( $missing ) ) {
+               if ( $modules === [] && $missing === [] ) {
                        return <<<MESSAGE
 /* This file is the Web entry point for MediaWiki's ResourceLoader:
    <https://www.mediawiki.org/wiki/ResourceLoader>. In this request,
index ef11628..8cd5b19 100644 (file)
@@ -295,9 +295,20 @@ class ResourceLoaderImage {
                $dom = new DOMDocument;
                $dom->loadXML( file_get_contents( $this->getPath( $context ) ) );
                $root = $dom->documentElement;
-               $wrapper = $dom->createElement( 'g' );
+               $titleNode = null;
+               $wrapper = $dom->createElementNS( 'http://www.w3.org/2000/svg', 'g' );
+               // Reattach all direct children of the `<svg>` root node to the `<g>` wrapper
                while ( $root->firstChild ) {
-                       $wrapper->appendChild( $root->firstChild );
+                       $node = $root->firstChild;
+                       if ( !$titleNode && $node->nodeType === XML_ELEMENT_NODE && $node->tagName === 'title' ) {
+                               // Remember the first encountered `<title>` node
+                               $titleNode = $node;
+                       }
+                       $wrapper->appendChild( $node );
+               }
+               if ( $titleNode ) {
+                       // Reattach the `<title>` node to the `<svg>` root node rather than the `<g>` wrapper
+                       $root->appendChild( $titleNode );
                }
                $root->appendChild( $wrapper );
                $wrapper->setAttribute( 'fill', $variantConf['color'] );
index 9cd245a..0cbb41c 100644 (file)
@@ -98,7 +98,7 @@ class SearchOracle extends SearchDatabase {
                if ( is_null( $this->namespaces ) ) {
                        return '';
                }
-               if ( !count( $this->namespaces ) ) {
+               if ( $this->namespaces === [] ) {
                        $namespaces = '0';
                } else {
                        $namespaces = $this->db->makeList( $this->namespaces );
index 6332ea2..f653796 100644 (file)
@@ -199,7 +199,7 @@ class SearchSqlite extends SearchDatabase {
                if ( is_null( $this->namespaces ) ) {
                        return '';  # search all
                }
-               if ( !count( $this->namespaces ) ) {
+               if ( $this->namespaces === [] ) {
                        $namespaces = '0';
                } else {
                        $namespaces = $this->db->makeList( $this->namespaces );
diff --git a/includes/services/CannotReplaceActiveServiceException.php b/includes/services/CannotReplaceActiveServiceException.php
deleted file mode 100644 (file)
index 4993073..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-namespace MediaWiki\Services;
-
-use Exception;
-use RuntimeException;
-
-/**
- * Exception thrown when trying to replace an already active service.
- *
- * 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.27
- */
-
-/**
- * Exception thrown when trying to replace an already active service.
- */
-class CannotReplaceActiveServiceException extends RuntimeException {
-
-       /**
-        * @param string $serviceName
-        * @param Exception|null $previous
-        */
-       public function __construct( $serviceName, Exception $previous = null ) {
-               parent::__construct( "Cannot replace an active service: $serviceName", 0, $previous );
-       }
-
-}
diff --git a/includes/services/ContainerDisabledException.php b/includes/services/ContainerDisabledException.php
deleted file mode 100644 (file)
index ede076d..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-namespace MediaWiki\Services;
-
-use Exception;
-use RuntimeException;
-
-/**
- * Exception thrown when trying to access a service on a disabled container or factory.
- *
- * 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.27
- */
-
-/**
- * Exception thrown when trying to access a service on a disabled container or factory.
- */
-class ContainerDisabledException extends RuntimeException {
-
-       /**
-        * @param Exception|null $previous
-        */
-       public function __construct( Exception $previous = null ) {
-               parent::__construct( 'Container disabled!', 0, $previous );
-       }
-
-}
diff --git a/includes/services/DestructibleService.php b/includes/services/DestructibleService.php
deleted file mode 100644 (file)
index 6ce9af2..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-namespace MediaWiki\Services;
-
-/**
- * Interface for destructible services.
- *
- * 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.27
- */
-
-/**
- * DestructibleService defines a standard interface for shutting down a service instance.
- * The intended use is for a service container to be able to shut down services that should
- * no longer be used, and allow such services to release any system resources.
- *
- * @note There is no expectation that services will be destroyed when the process (or web request)
- * terminates.
- */
-interface DestructibleService {
-
-       /**
-        * Notifies the service object that it should expect to no longer be used, and should release
-        * any system resources it may own. The behavior of all service methods becomes undefined after
-        * destroy() has been called. It is recommended that implementing classes should throw an
-        * exception when service methods are accessed after destroy() has been called.
-        */
-       public function destroy();
-
-}
diff --git a/includes/services/NoSuchServiceException.php b/includes/services/NoSuchServiceException.php
deleted file mode 100644 (file)
index 36e50d2..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-namespace MediaWiki\Services;
-
-use Exception;
-use RuntimeException;
-
-/**
- * Exception thrown when the requested service is not known.
- *
- * 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.27
- */
-
-/**
- * Exception thrown when the requested service is not known.
- */
-class NoSuchServiceException extends RuntimeException {
-
-       /**
-        * @param string $serviceName
-        * @param Exception|null $previous
-        */
-       public function __construct( $serviceName, Exception $previous = null ) {
-               parent::__construct( "No such service: $serviceName", 0, $previous );
-       }
-
-}
diff --git a/includes/services/SalvageableService.php b/includes/services/SalvageableService.php
deleted file mode 100644 (file)
index a613050..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-namespace MediaWiki\Services;
-
-/**
- * Interface for salvageable services.
- *
- * 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.28
- */
-
-/**
- * SalvageableService defines an interface for services that are able to salvage state from a
- * previous instance of the same class. The intent is to allow new service instances to re-use
- * resources that would be expensive to re-create, such as cached data or network connections.
- *
- * @note There is no expectation that services will be destroyed when the process (or web request)
- * terminates.
- */
-interface SalvageableService {
-
-       /**
-        * Re-uses state from $other. $other must not be used after being passed to salvage(),
-        * and should be considered to be destroyed.
-        *
-        * @note Implementations are responsible for determining what parts of $other can be re-used
-        * safely. In particular, implementations should check that the relevant configuration of
-        * $other is the same as in $this before re-using resources from $other.
-        *
-        * @note Implementations must take care to detach any re-used resources from the original
-        * service instance. If $other is destroyed later, resources that are now used by the
-        * new service instance must not be affected.
-        *
-        * @note If $other is a DestructibleService, implementations should make sure that $other
-        * is in destroyed state after salvage finished. This may be done by calling $other->destroy()
-        * after carefully detaching all relevant resources.
-        *
-        * @param SalvageableService $other The object to salvage state from. $other must have the
-        * exact same type as $this.
-        */
-       public function salvage( SalvageableService $other );
-
-}
diff --git a/includes/services/ServiceAlreadyDefinedException.php b/includes/services/ServiceAlreadyDefinedException.php
deleted file mode 100644 (file)
index c6344d3..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-namespace MediaWiki\Services;
-
-use Exception;
-use RuntimeException;
-
-/**
- * Exception thrown when a service was already defined, but the
- * caller expected it to not exist.
- *
- * 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.27
- */
-
-/**
- * Exception thrown when a service was already defined, but the
- * caller expected it to not exist.
- */
-class ServiceAlreadyDefinedException extends RuntimeException {
-
-       /**
-        * @param string $serviceName
-        * @param Exception|null $previous
-        */
-       public function __construct( $serviceName, Exception $previous = null ) {
-               parent::__construct( "Service already defined: $serviceName", 0, $previous );
-       }
-
-}
diff --git a/includes/services/ServiceContainer.php b/includes/services/ServiceContainer.php
deleted file mode 100644 (file)
index d934d27..0000000
+++ /dev/null
@@ -1,465 +0,0 @@
-<?php
-namespace MediaWiki\Services;
-
-use InvalidArgumentException;
-use RuntimeException;
-use Wikimedia\Assert\Assert;
-
-/**
- * Generic service container.
- *
- * 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.27
- */
-
-/**
- * ServiceContainer provides a generic service to manage named services using
- * lazy instantiation based on instantiator callback functions.
- *
- * Services managed by an instance of ServiceContainer may or may not implement
- * a common interface.
- *
- * @note When using ServiceContainer to manage a set of services, consider
- * creating a wrapper or a subclass that provides access to the services via
- * getter methods with more meaningful names and more specific return type
- * declarations.
- *
- * @see docs/injection.txt for an overview of using dependency injection in the
- *      MediaWiki code base.
- */
-class ServiceContainer implements DestructibleService {
-
-       /**
-        * @var object[]
-        */
-       private $services = [];
-
-       /**
-        * @var callable[]
-        */
-       private $serviceInstantiators = [];
-
-       /**
-        * @var callable[][]
-        */
-       private $serviceManipulators = [];
-
-       /**
-        * @var bool[] disabled status, per service name
-        */
-       private $disabled = [];
-
-       /**
-        * @var array
-        */
-       private $extraInstantiationParams;
-
-       /**
-        * @var bool
-        */
-       private $destroyed = false;
-
-       /**
-        * @param array $extraInstantiationParams Any additional parameters to be passed to the
-        * instantiator function when creating a service. This is typically used to provide
-        * access to additional ServiceContainers or Config objects.
-        */
-       public function __construct( array $extraInstantiationParams = [] ) {
-               $this->extraInstantiationParams = $extraInstantiationParams;
-       }
-
-       /**
-        * Destroys all contained service instances that implement the DestructibleService
-        * interface. This will render all services obtained from this MediaWikiServices
-        * instance unusable. In particular, this will disable access to the storage backend
-        * via any of these services. Any future call to getService() will throw an exception.
-        *
-        * @see resetGlobalInstance()
-        */
-       public function destroy() {
-               foreach ( $this->getServiceNames() as $name ) {
-                       $service = $this->peekService( $name );
-                       if ( $service !== null && $service instanceof DestructibleService ) {
-                               $service->destroy();
-                       }
-               }
-
-               // Break circular references due to the $this reference in closures, by
-               // erasing the instantiator array. This allows the ServiceContainer to
-               // be deleted when it goes out of scope.
-               $this->serviceInstantiators = [];
-               // Also remove the services themselves, to avoid confusion.
-               $this->services = [];
-               $this->destroyed = true;
-       }
-
-       /**
-        * @param array $wiringFiles A list of PHP files to load wiring information from.
-        * Each file is loaded using PHP's include mechanism. Each file is expected to
-        * return an associative array that maps service names to instantiator functions.
-        */
-       public function loadWiringFiles( array $wiringFiles ) {
-               foreach ( $wiringFiles as $file ) {
-                       // the wiring file is required to return an array of instantiators.
-                       $wiring = require $file;
-
-                       Assert::postcondition(
-                               is_array( $wiring ),
-                               "Wiring file $file is expected to return an array!"
-                       );
-
-                       $this->applyWiring( $wiring );
-               }
-       }
-
-       /**
-        * Registers multiple services (aka a "wiring").
-        *
-        * @param array $serviceInstantiators An associative array mapping service names to
-        *        instantiator functions.
-        */
-       public function applyWiring( array $serviceInstantiators ) {
-               Assert::parameterElementType( 'callable', $serviceInstantiators, '$serviceInstantiators' );
-
-               foreach ( $serviceInstantiators as $name => $instantiator ) {
-                       $this->defineService( $name, $instantiator );
-               }
-       }
-
-       /**
-        * Imports all wiring defined in $container. Wiring defined in $container
-        * will override any wiring already defined locally. However, already
-        * existing service instances will be preserved.
-        *
-        * @since 1.28
-        *
-        * @param ServiceContainer $container
-        * @param string[] $skip A list of service names to skip during import
-        */
-       public function importWiring( ServiceContainer $container, $skip = [] ) {
-               $newInstantiators = array_diff_key(
-                       $container->serviceInstantiators,
-                       array_flip( $skip )
-               );
-
-               $this->serviceInstantiators = array_merge(
-                       $this->serviceInstantiators,
-                       $newInstantiators
-               );
-
-               $newManipulators = array_diff(
-                       array_keys( $container->serviceManipulators ),
-                       $skip
-               );
-
-               foreach ( $newManipulators as $name ) {
-                       if ( isset( $this->serviceManipulators[$name] ) ) {
-                               $this->serviceManipulators[$name] = array_merge(
-                                       $this->serviceManipulators[$name],
-                                       $container->serviceManipulators[$name]
-                               );
-                       } else {
-                               $this->serviceManipulators[$name] = $container->serviceManipulators[$name];
-                       }
-               }
-       }
-
-       /**
-        * Returns true if a service is defined for $name, that is, if a call to getService( $name )
-        * would return a service instance.
-        *
-        * @param string $name
-        *
-        * @return bool
-        */
-       public function hasService( $name ) {
-               return isset( $this->serviceInstantiators[$name] );
-       }
-
-       /**
-        * Returns the service instance for $name only if that service has already been instantiated.
-        * This is intended for situations where services get destroyed/cleaned up, so we can
-        * avoid creating a service just to destroy it again.
-        *
-        * @note This is intended for internal use and for test fixtures.
-        * Application logic should use getService() instead.
-        *
-        * @see getService().
-        *
-        * @param string $name
-        *
-        * @return object|null The service instance, or null if the service has not yet been instantiated.
-        * @throws RuntimeException if $name does not refer to a known service.
-        */
-       public function peekService( $name ) {
-               if ( !$this->hasService( $name ) ) {
-                       throw new NoSuchServiceException( $name );
-               }
-
-               return $this->services[$name] ?? null;
-       }
-
-       /**
-        * @return string[]
-        */
-       public function getServiceNames() {
-               return array_keys( $this->serviceInstantiators );
-       }
-
-       /**
-        * Define a new service. The service must not be known already.
-        *
-        * @see getService().
-        * @see redefineService().
-        *
-        * @param string $name The name of the service to register, for use with getService().
-        * @param callable $instantiator Callback that returns a service instance.
-        *        Will be called with this MediaWikiServices instance as the only parameter.
-        *        Any extra instantiation parameters provided to the constructor will be
-        *        passed as subsequent parameters when invoking the instantiator.
-        *
-        * @throws RuntimeException if there is already a service registered as $name.
-        */
-       public function defineService( $name, callable $instantiator ) {
-               Assert::parameterType( 'string', $name, '$name' );
-
-               if ( $this->hasService( $name ) ) {
-                       throw new ServiceAlreadyDefinedException( $name );
-               }
-
-               $this->serviceInstantiators[$name] = $instantiator;
-       }
-
-       /**
-        * Replace an already defined service.
-        *
-        * @see defineService().
-        *
-        * @note This will fail if the service was already instantiated. If the service was previously
-        * disabled, it will be re-enabled by this call. Any manipulators registered for the service
-        * will remain in place.
-        *
-        * @param string $name The name of the service to register.
-        * @param callable $instantiator Callback function that returns a service instance.
-        *        Will be called with this MediaWikiServices instance as the only parameter.
-        *        The instantiator must return a service compatible with the originally defined service.
-        *        Any extra instantiation parameters provided to the constructor will be
-        *        passed as subsequent parameters when invoking the instantiator.
-        *
-        * @throws NoSuchServiceException if $name is not a known service.
-        * @throws CannotReplaceActiveServiceException if the service was already instantiated.
-        */
-       public function redefineService( $name, callable $instantiator ) {
-               Assert::parameterType( 'string', $name, '$name' );
-
-               if ( !$this->hasService( $name ) ) {
-                       throw new NoSuchServiceException( $name );
-               }
-
-               if ( isset( $this->services[$name] ) ) {
-                       throw new CannotReplaceActiveServiceException( $name );
-               }
-
-               $this->serviceInstantiators[$name] = $instantiator;
-               unset( $this->disabled[$name] );
-       }
-
-       /**
-        * Add a service manipulator callback for the given service.
-        * This method may be used by extensions that need to wrap, replace, or re-configure a
-        * service. It would typically be called from a MediaWikiServices hook handler.
-        *
-        * The manipulator callback is called just after the service is instantiated.
-        * It can call methods on the service to change configuration, or wrap or otherwise
-        * replace it.
-        *
-        * @see defineService().
-        * @see redefineService().
-        *
-        * @note This will fail if the service was already instantiated.
-        *
-        * @since 1.32
-        *
-        * @param string $name The name of the service to manipulate.
-        * @param callable $manipulator Callback function that manipulates, wraps or replaces a
-        * service instance. The callback receives the new service instance and this the
-        * ServiceContainer as parameters, as well as any extra instantiation parameters specified
-        * when constructing this ServiceContainer. If the callback returns a value, that
-        * value replaces the original service instance.
-        *
-        * @throws NoSuchServiceException if $name is not a known service.
-        * @throws CannotReplaceActiveServiceException if the service was already instantiated.
-        */
-       public function addServiceManipulator( $name, callable $manipulator ) {
-               Assert::parameterType( 'string', $name, '$name' );
-
-               if ( !$this->hasService( $name ) ) {
-                       throw new NoSuchServiceException( $name );
-               }
-
-               if ( isset( $this->services[$name] ) ) {
-                       throw new CannotReplaceActiveServiceException( $name );
-               }
-
-               $this->serviceManipulators[$name][] = $manipulator;
-       }
-
-       /**
-        * Disables a service.
-        *
-        * @note Attempts to call getService() for a disabled service will result
-        * in a DisabledServiceException. Calling peekService for a disabled service will
-        * return null. Disabled services are listed by getServiceNames(). A disabled service
-        * can be enabled again using redefineService().
-        *
-        * @note If the service was already active (that is, instantiated) when getting disabled,
-        * and the service instance implements DestructibleService, destroy() is called on the
-        * service instance.
-        *
-        * @see redefineService()
-        * @see resetService()
-        *
-        * @param string $name The name of the service to disable.
-        *
-        * @throws RuntimeException if $name is not a known service.
-        */
-       public function disableService( $name ) {
-               $this->resetService( $name );
-
-               $this->disabled[$name] = true;
-       }
-
-       /**
-        * Resets a service by dropping the service instance.
-        * If the service instances implements DestructibleService, destroy()
-        * is called on the service instance.
-        *
-        * @warning This is generally unsafe! Other services may still retain references
-        * to the stale service instance, leading to failures and inconsistencies. Subclasses
-        * may use this method to reset specific services under specific instances, but
-        * it should not be exposed to application logic.
-        *
-        * @note This is declared final so subclasses can not interfere with the expectations
-        * disableService() has when calling resetService().
-        *
-        * @see redefineService()
-        * @see disableService().
-        *
-        * @param string $name The name of the service to reset.
-        * @param bool $destroy Whether the service instance should be destroyed if it exists.
-        *        When set to false, any existing service instance will effectively be detached
-        *        from the container.
-        *
-        * @throws RuntimeException if $name is not a known service.
-        */
-       final protected function resetService( $name, $destroy = true ) {
-               Assert::parameterType( 'string', $name, '$name' );
-
-               $instance = $this->peekService( $name );
-
-               if ( $destroy && $instance instanceof DestructibleService ) {
-                       $instance->destroy();
-               }
-
-               unset( $this->services[$name] );
-               unset( $this->disabled[$name] );
-       }
-
-       /**
-        * Returns a service object of the kind associated with $name.
-        * Services instances are instantiated lazily, on demand.
-        * This method may or may not return the same service instance
-        * when called multiple times with the same $name.
-        *
-        * @note Rather than calling this method directly, it is recommended to provide
-        * getters with more meaningful names and more specific return types, using
-        * a subclass or wrapper.
-        *
-        * @see redefineService().
-        *
-        * @param string $name The service name
-        *
-        * @throws NoSuchServiceException if $name is not a known service.
-        * @throws ContainerDisabledException if this container has already been destroyed.
-        * @throws ServiceDisabledException if the requested service has been disabled.
-        *
-        * @return object The service instance
-        */
-       public function getService( $name ) {
-               if ( $this->destroyed ) {
-                       throw new ContainerDisabledException();
-               }
-
-               if ( isset( $this->disabled[$name] ) ) {
-                       throw new ServiceDisabledException( $name );
-               }
-
-               if ( !isset( $this->services[$name] ) ) {
-                       $this->services[$name] = $this->createService( $name );
-               }
-
-               return $this->services[$name];
-       }
-
-       /**
-        * @param string $name
-        *
-        * @throws InvalidArgumentException if $name is not a known service.
-        * @return object
-        */
-       private function createService( $name ) {
-               if ( isset( $this->serviceInstantiators[$name] ) ) {
-                       $service = ( $this->serviceInstantiators[$name] )(
-                               $this,
-                               ...$this->extraInstantiationParams
-                       );
-
-                       if ( isset( $this->serviceManipulators[$name] ) ) {
-                               foreach ( $this->serviceManipulators[$name] as $callback ) {
-                                       $ret = call_user_func_array(
-                                               $callback,
-                                               array_merge( [ $service, $this ], $this->extraInstantiationParams )
-                                       );
-
-                                       // If the manipulator callback returns an object, that object replaces
-                                       // the original service instance. This allows the manipulator to wrap
-                                       // or fully replace the service.
-                                       if ( $ret !== null ) {
-                                               $service = $ret;
-                                       }
-                               }
-                       }
-
-                       // NOTE: when adding more wiring logic here, make sure importWiring() is kept in sync!
-               } else {
-                       throw new NoSuchServiceException( $name );
-               }
-
-               return $service;
-       }
-
-       /**
-        * @param string $name
-        * @return bool Whether the service is disabled
-        * @since 1.28
-        */
-       public function isServiceDisabled( $name ) {
-               return isset( $this->disabled[$name] );
-       }
-}
diff --git a/includes/services/ServiceDisabledException.php b/includes/services/ServiceDisabledException.php
deleted file mode 100644 (file)
index ae15b7c..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-namespace MediaWiki\Services;
-
-use Exception;
-use RuntimeException;
-
-/**
- * Exception thrown when trying to access a disabled service.
- *
- * 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.27
- */
-
-/**
- * Exception thrown when trying to access a disabled service.
- */
-class ServiceDisabledException extends RuntimeException {
-
-       /**
-        * @param string $serviceName
-        * @param Exception|null $previous
-        */
-       public function __construct( $serviceName, Exception $previous = null ) {
-               parent::__construct( "Service disabled: $serviceName", 0, $previous );
-       }
-
-}
index 08ff8f0..e31bc06 100644 (file)
@@ -519,7 +519,7 @@ abstract class Skin extends ContextSource {
                $out = $this->getOutput();
                $allCats = $out->getCategoryLinks();
 
-               if ( !count( $allCats ) ) {
+               if ( $allCats === [] ) {
                        return '';
                }
 
diff --git a/includes/specialpage/DisabledSpecialPage.php b/includes/specialpage/DisabledSpecialPage.php
new file mode 100644 (file)
index 0000000..ebcd8e5
--- /dev/null
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Special page for replacing manually disabled special pages
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup SpecialPage
+ */
+
+/**
+ * This class is a drop-in replacement for other special pages that need to be manually
+ * disabled. To use it, just put something like
+ *
+ *     $wgSpecialPages['Name'] = DisabledSpecialPage::getCallback( 'Name', 'message' );
+ *
+ * in the local configuration (where 'Name' is the canonical name of the special page
+ * to be disabled, and 'message' is a message key for explaining the reason for disabling).
+ *
+ * @since 1.33
+ */
+class DisabledSpecialPage extends UnlistedSpecialPage {
+
+       /** @var Message */
+       protected $errorMessage;
+
+       /**
+        * Create a callback suitable for use in $wgSpecialPages.
+        * @param string $name Canonical name of the special page that's being replaced.
+        * @param Message|string|null $errorMessage Error message to show when users try to use the page.
+        * @return Closure
+        */
+       public static function getCallback( $name, $errorMessage = null ) {
+               return function () use ( $name, $errorMessage ) {
+                       return new DisabledSpecialPage( $name, $errorMessage );
+               };
+       }
+
+       /**
+        * @param string $name Canonical name of the special page that's being replaced.
+        * @param Message|string|null $errorMessage Error message to show when users try to use the page.
+        */
+       public function __construct( $name, $errorMessage = null ) {
+               parent::__construct( $name );
+               $this->errorMessage = $errorMessage ?: 'disabledspecialpage-disabled';
+       }
+
+       public function execute( $subPage ) {
+               $this->setHeaders();
+               $this->outputHeader();
+
+               $error = Html::rawElement( 'div', [
+                       'class' => 'error',
+               ], $this->msg( $this->errorMessage )->parseAsBlock() );
+               $this->getOutput()->addHTML( $error );
+       }
+
+}
index 9e66447..2482d74 100644 (file)
@@ -20,6 +20,7 @@
  * @file
  * @ingroup SpecialPage
  */
+use MediaWiki\MediaWikiServices;
 
 /**
  * Use this special page to get a list of the MediaWiki system messages.
  * @ingroup SpecialPage
  */
 class SpecialAllMessages extends SpecialPage {
-       /**
-        * @var AllMessagesTablePager
-        */
-       protected $table;
 
        public function __construct() {
                parent::__construct( 'Allmessages' );
@@ -43,7 +40,6 @@ class SpecialAllMessages extends SpecialPage {
         * @param string $par Parameter passed to the page or null
         */
        public function execute( $par ) {
-               $request = $this->getRequest();
                $out = $this->getOutput();
 
                $this->setHeaders();
@@ -54,18 +50,77 @@ class SpecialAllMessages extends SpecialPage {
                        return;
                }
 
-               $this->outputHeader( 'allmessagestext' );
                $out->addModuleStyles( 'mediawiki.special' );
                $this->addHelpLink( 'Help:System message' );
 
-               $this->table = new AllMessagesTablePager(
-                       $this,
-                       [],
-                       wfGetLangObj( $request->getVal( 'lang', $par ) )
-               );
+               $contLang = MediaWikiServices::getInstance()->getContentLanguage()->getCode();
+               $lang = $this->getLanguage();
+
+               $opts = new FormOptions();
+
+               $opts->add( 'prefix', '' );
+               $opts->add( 'filter', 'all' );
+               $opts->add( 'lang', $contLang );
+               $opts->add( 'limit', 50 );
+
+               $opts->fetchValuesFromRequest( $this->getRequest() );
+               $opts->validateIntBounds( 'limit', 0, 5000 );
+
+               $pager = new AllMessagesTablePager( $this->getContext(), $opts );
+
+               $formDescriptor = [
+                       'prefix' => [
+                               'type' => 'text',
+                               'name' => 'prefix',
+                               'label-message' => 'allmessages-prefix',
+                       ],
+
+                       'filter' => [
+                               'type' => 'radio',
+                               'name' => 'filter',
+                               'label-message' => 'allmessages-filter',
+                               'options' => [
+                                       $this->msg( 'allmessages-filter-unmodified' )->text() => 'unmodified',
+                                       $this->msg( 'allmessages-filter-all' )->text() => 'all',
+                                       $this->msg( 'allmessages-filter-modified' )->text() => 'modified',
+                               ],
+                               'default' => 'all',
+                               'flatlist' => true,
+                       ],
+
+                       'lang' => [
+                               'type' => 'language',
+                               'name' => 'lang',
+                               'label-message' => 'allmessages-language',
+                               'default' => $opts->getValue( 'lang' ),
+                       ],
+
+                       'limit' => [
+                               'type' => 'limitselect',
+                               'name' => 'limit',
+                               'label-message' => 'table_pager_limit_label',
+                               'options' => [
+                                       $lang->formatNum( 20 ) => 20,
+                                       $lang->formatNum( 50 ) => 50,
+                                       $lang->formatNum( 100 ) => 100,
+                                       $lang->formatNum( 250 ) => 250,
+                                       $lang->formatNum( 500 ) => 500,
+                                       $lang->formatNum( 5000 ) => 5000,
+                               ],
+                               'default' => $opts->getValue( 'limit' ),
+                       ],
+               ];
+
+               $htmlForm = HTMLForm::factory( 'ooui', $formDescriptor, $this->getContext() );
+               $htmlForm
+                       ->setMethod( 'get' )
+                       ->setIntro( $this->msg( 'allmessagestext' ) )
+                       ->setWrapperLegendMsg( 'allmessages' )
+                       ->setSubmitTextMsg( 'allmessages-filter-submit' )
+                       ->prepareForm()
+                       ->displayForm( false );
 
-               $out->addHTML( $this->table->buildForm() );
-               $out->addParserOutputContent( $this->table->getFullOutput() );
+               $out->addParserOutputContent( $pager->getFullOutput() );
        }
 
        protected function getGroupName() {
index c9ce2b0..e47ef06 100644 (file)
@@ -156,22 +156,31 @@ class SpecialBlock extends FormSpecialPage {
                        'type' => 'user',
                        'ipallowed' => true,
                        'iprange' => true,
-                       'label-message' => 'ipaddressorusername',
                        'id' => 'mw-bi-target',
                        'size' => '45',
                        'autofocus' => true,
                        'required' => true,
                        'validation-callback' => [ __CLASS__, 'validateTargetField' ],
+                       'section' => 'target',
+               ];
+
+               $a['Editing'] = [
+                       'type' => 'check',
+                       'label-message' => 'block-prevent-edit',
+                       'default' => true,
+                       'section' => 'actions',
+                       'disabled' => $enablePartialBlocks ? false : true,
                ];
 
                if ( $enablePartialBlocks ) {
                        $a['EditingRestriction'] = [
                                'type' => 'radio',
-                               'label' => $this->msg( 'ipb-type-label' )->text(),
+                               'cssclass' => 'mw-block-editing-restriction',
                                'options' => [
                                        $this->msg( 'ipb-sitewide' )->text() => 'sitewide',
                                        $this->msg( 'ipb-partial' )->text() => 'partial',
                                ],
+                               'section' => 'actions',
                        ];
                        $a['PageRestrictions'] = [
                                'type' => 'titlesmultiselect',
@@ -183,38 +192,22 @@ class SpecialBlock extends FormSpecialPage {
                                'input' => [
                                        'autocomplete' => false
                                ],
+                               'section' => 'actions',
                        ];
                }
 
-               $a['Expiry'] = [
-                       'type' => 'expiry',
-                       'label-message' => 'ipbexpiry',
-                       'required' => true,
-                       'options' => $suggestedDurations,
-                       'default' => $this->msg( 'ipb-default-expiry' )->inContentLanguage()->text(),
-               ];
-
-               $a['Reason'] = [
-                       'type' => 'selectandother',
-                       // HTML maxlength uses "UTF-16 code units", which means that characters outside BMP
-                       // (e.g. emojis) count for two each. This limit is overridden in JS to instead count
-                       // Unicode codepoints (or 255 UTF-8 bytes for old schema).
-                       'maxlength' => $oldCommentSchema ? 255 : CommentStore::COMMENT_CHARACTER_LIMIT,
-                       'maxlength-unit' => 'codepoints',
-                       'label-message' => 'ipbreason',
-                       'options-message' => 'ipbreason-dropdown',
-               ];
-
                $a['CreateAccount'] = [
                        'type' => 'check',
                        'label-message' => 'ipbcreateaccount',
                        'default' => true,
+                       'section' => 'actions',
                ];
 
                if ( self::canBlockEmail( $user ) ) {
                        $a['DisableEmail'] = [
                                'type' => 'check',
                                'label-message' => 'ipbemailban',
+                               'section' => 'actions',
                        ];
                }
 
@@ -223,13 +216,34 @@ class SpecialBlock extends FormSpecialPage {
                                'type' => 'check',
                                'label-message' => 'ipb-disableusertalk',
                                'default' => false,
+                               'section' => 'actions',
                        ];
                }
 
+               $a['Expiry'] = [
+                       'type' => 'expiry',
+                       'required' => true,
+                       'options' => $suggestedDurations,
+                       'default' => $this->msg( 'ipb-default-expiry' )->inContentLanguage()->text(),
+                       'section' => 'expiry',
+               ];
+
+               $a['Reason'] = [
+                       'type' => 'selectandother',
+                       // HTML maxlength uses "UTF-16 code units", which means that characters outside BMP
+                       // (e.g. emojis) count for two each. This limit is overridden in JS to instead count
+                       // Unicode codepoints (or 255 UTF-8 bytes for old schema).
+                       'maxlength' => $oldCommentSchema ? 255 : CommentStore::COMMENT_CHARACTER_LIMIT,
+                       'maxlength-unit' => 'codepoints',
+                       'options-message' => 'ipbreason-dropdown',
+                       'section' => 'reason',
+               ];
+
                $a['AutoBlock'] = [
                        'type' => 'check',
                        'label-message' => 'ipbenableautoblock',
                        'default' => true,
+                       'section' => 'options',
                ];
 
                # Allow some users to hide name from block log, blocklist and listusers
@@ -238,6 +252,7 @@ class SpecialBlock extends FormSpecialPage {
                                'type' => 'check',
                                'label-message' => 'ipbhidename',
                                'cssclass' => 'mw-block-hideuser',
+                               'section' => 'options',
                        ];
                }
 
@@ -246,6 +261,7 @@ class SpecialBlock extends FormSpecialPage {
                        $a['Watch'] = [
                                'type' => 'check',
                                'label-message' => 'ipbwatchuser',
+                               'section' => 'options',
                        ];
                }
 
@@ -253,6 +269,7 @@ class SpecialBlock extends FormSpecialPage {
                        'type' => 'check',
                        'label-message' => 'ipb-hardblock',
                        'default' => false,
+                       'section' => 'options',
                ];
 
                # This is basically a copy of the Target field, but the user can't change it, so we
@@ -382,6 +399,10 @@ class SpecialBlock extends FormSpecialPage {
                                        $pageRestrictions[] = $restriction->getTitle()->getPrefixedText();
                                }
 
+                               if ( !$block->isSitewide() && empty( $pageRestrictions ) ) {
+                                       $fields['Editing']['default'] = false;
+                               }
+
                                // Sort the restrictions so they are in alphabetical order.
                                sort( $pageRestrictions );
                                $fields['PageRestrictions']['default'] = implode( "\n", $pageRestrictions );
@@ -394,7 +415,10 @@ class SpecialBlock extends FormSpecialPage {
         * @return string
         */
        protected function preText() {
-               $this->getOutput()->addModuleStyles( 'mediawiki.widgets.TagMultiselectWidget.styles' );
+               $this->getOutput()->addModuleStyles( [
+                       'mediawiki.widgets.TagMultiselectWidget.styles',
+                       'mediawiki.special',
+               ] );
                $this->getOutput()->addModules( [ 'mediawiki.special.block' ] );
 
                $blockCIDRLimit = $this->getConfig()->get( 'BlockCIDRLimit' );
@@ -1138,6 +1162,12 @@ class SpecialBlock extends FormSpecialPage {
         * @return bool|array True for success, false for didn't-try, array of errors on failure
         */
        public function onSubmit( array $data, HTMLForm $form = null ) {
+               // If "Editing" checkbox is unchecked, the block must be a partial block affecting
+               // actions other than editing, and there must be no restrictions.
+               if ( isset( $data['Editing'] ) && $data['Editing'] === false ) {
+                       $data['EditingRestriction'] = 'partial';
+                       $data['PageRestrictions'] = [];
+               }
                return self::processForm( $data, $form->getContext() );
        }
 
index 70b4207..b05c81a 100644 (file)
@@ -431,7 +431,7 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
         * Attempts to clean up broken items
         */
        private function cleanupWatchlist() {
-               if ( !count( $this->badItems ) ) {
+               if ( $this->badItems === [] ) {
                        return; // nothing to do
                }
 
index 1a04eec..ba16baf 100644 (file)
@@ -62,7 +62,7 @@ class SpecialListGrants extends SpecialPage {
                                        '<span class="mw-listgrants-right-name">' . $permission . '</span>'
                                )->parse();
                        }
-                       if ( !count( $descs ) ) {
+                       if ( $descs === [] ) {
                                $grantCellHtml = '';
                        } else {
                                sort( $descs );
index 9931614..594626f 100644 (file)
@@ -179,7 +179,7 @@ class SpecialLog extends SpecialPage {
         * - Otherwise, assume the whole subpage is a username.
         *
         * @param FormOptions $opts
-        * @param $par
+        * @param string $par
         * @throws ConfigException
         */
        private function parseParams( FormOptions $opts, $par ) {
index 0a3a679..573dcb5 100644 (file)
@@ -151,7 +151,7 @@ class SpecialPasswordPolicies extends SpecialPage {
                                '<span class="mw-passwordpolicies-policy-name">' . $gp . '</span>'
                        )->parse();
                }
-               if ( !count( $ret ) ) {
+               if ( $ret === [] ) {
                        return '';
                } else {
                        return '<ul><li>' . implode( "</li>\n<li>", $ret ) . '</li></ul>';
index 60e797e..b566305 100644 (file)
@@ -709,7 +709,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
 
                $categories = array_map( 'trim', explode( '|', $opts['categories'] ) );
 
-               if ( !count( $categories ) ) {
+               if ( $categories === [] ) {
                        return;
                }
 
@@ -744,7 +744,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                }
 
                # Shortcut?
-               if ( !count( $articles ) || !count( $cats ) ) {
+               if ( $articles === [] || $cats === [] ) {
                        return;
                }
 
index d904ad1..ec6c5b9 100644 (file)
@@ -212,13 +212,13 @@ class SpecialSearch extends SpecialPage {
 
                # Extract manually requested namespaces
                $nslist = $this->powerSearch( $request );
-               if ( !count( $nslist ) ) {
+               if ( $nslist === [] ) {
                        # Fallback to user preference
                        $nslist = $this->searchConfig->userNamespaces( $user );
                }
 
                $profile = null;
-               if ( !count( $nslist ) ) {
+               if ( $nslist === [] ) {
                        $profile = 'default';
                }
 
index 585a7cd..9de31da 100644 (file)
@@ -55,7 +55,7 @@ class SpecialSpecialpages extends UnlistedSpecialPage {
                $pages = MediaWikiServices::getInstance()->getSpecialPageFactory()->
                        getUsablePages( $this->getUser() );
 
-               if ( !count( $pages ) ) {
+               if ( $pages === [] ) {
                        # Yeah, that was pointless. Thanks for coming.
                        return false;
                }
index 3ee7cea..4a586b7 100644 (file)
@@ -94,7 +94,7 @@ class SpecialTrackingCategories extends SpecialPage {
                        }
 
                        # Extra message, when no category was found
-                       if ( !count( $allMsgs ) ) {
+                       if ( $allMsgs === [] ) {
                                $allMsgs[] = $this->msg( 'trackingcategories-disabled' )->parse();
                        }
 
index 0f9ded3..3c2907b 100644 (file)
@@ -170,11 +170,12 @@ class UserrightsPage extends SpecialPage {
                                $targetUser->clearInstanceCache(); // T40989
                        }
 
-                       $checkValue = explode( ',', $request->getVal( 'conflictcheck-originalgroups' ) );
+                       $conflictCheck = $request->getVal( 'conflictcheck-originalgroups' );
+                       $conflictCheck = ( $conflictCheck === '' ) ? [] : explode( ',', $conflictCheck );
                        $userGroups = $targetUser->getGroups();
 
-                       if ( $userGroups !== $checkValue ) {
-                               $out->addWikiMsg( 'userrights-conflict' );
+                       if ( $userGroups !== $conflictCheck ) {
+                               $out->wrapWikiMsg( '<span class="error">$1</span>', 'userrights-conflict' );
                        } else {
                                $status = $this->saveUserGroups(
                                        $this->mTarget,
index e3c0d6d..8081f4d 100644 (file)
@@ -30,9 +30,20 @@ use Wikimedia\Rdbms\FakeResultWrapper;
  */
 class AllMessagesTablePager extends TablePager {
 
-       protected $filter, $prefix, $langcode, $displayPrefix;
+       /**
+        * @var string
+        */
+       protected $langcode;
+
+       /**
+        * @var bool
+        */
+       protected $foreign;
 
-       public $mLimitsShown;
+       /**
+        * @var string
+        */
+       protected $prefix;
 
        /**
         * @var Language
@@ -44,41 +55,39 @@ class AllMessagesTablePager extends TablePager {
         */
        public $custom;
 
-       public function __construct( $page, $conds, Language $langObj = null ) {
-               parent::__construct( $page->getContext() );
+       /**
+        * @param IContextSource|null $context
+        * @param FormOptions $opts
+        */
+       public function __construct( IContextSource $context = null, FormOptions $opts ) {
+               parent::__construct( $context );
+
                $this->mIndexField = 'am_title';
-               $this->mPage = $page;
-               $this->mConds = $conds;
                // FIXME: Why does this need to be set to DIR_DESCENDING to produce ascending ordering?
                $this->mDefaultDirection = IndexPager::DIR_DESCENDING;
-               $this->mLimitsShown = [ 20, 50, 100, 250, 500, 5000 ];
-
-               $this->talk = $this->msg( 'talkpagelinktext' )->escaped();
 
                $contLang = MediaWikiServices::getInstance()->getContentLanguage();
-               $this->lang = $langObj ?? $contLang;
+               $this->lang = wfGetLangObj( $opts->getValue( 'lang' ) );
+
                $this->langcode = $this->lang->getCode();
                $this->foreign = !$this->lang->equals( $contLang );
 
-               $request = $this->getRequest();
-
-               $this->filter = $request->getVal( 'filter', 'all' );
-               if ( $this->filter === 'all' ) {
+               $filter = $opts->getValue( 'filter' );
+               if ( $filter === 'all' ) {
                        $this->custom = null; // So won't match in either case
                } else {
-                       $this->custom = ( $this->filter === 'unmodified' );
+                       $this->custom = ( $filter === 'unmodified' );
                }
 
-               $prefix = $this->getLanguage()->ucfirst( $request->getVal( 'prefix', '' ) );
+               $prefix = $this->getLanguage()->ucfirst( $opts->getValue( 'prefix' ) );
                $prefix = $prefix !== '' ?
-                       Title::makeTitleSafe( NS_MEDIAWIKI, $request->getVal( 'prefix', null ) ) :
+                       Title::makeTitleSafe( NS_MEDIAWIKI, $opts->getValue( 'prefix' ) ) :
                        null;
 
                if ( $prefix !== null ) {
-                       $this->displayPrefix = $prefix->getDBkey();
-                       $this->prefix = '/^' . preg_quote( $this->displayPrefix, '/' ) . '/i';
+                       $displayPrefix = $prefix->getDBkey();
+                       $this->prefix = '/^' . preg_quote( $displayPrefix, '/' ) . '/i';
                } else {
-                       $this->displayPrefix = false;
                        $this->prefix = false;
                }
 
@@ -91,84 +100,6 @@ class AllMessagesTablePager extends TablePager {
                }
        }
 
-       function buildForm() {
-               $attrs = [ 'id' => 'mw-allmessages-form-lang', 'name' => 'lang' ];
-               $msg = wfMessage( 'allmessages-language' );
-               $langSelect = Xml::languageSelector( $this->langcode, false, null, $attrs, $msg );
-
-               $out = Xml::openElement( 'form', [
-                               'method' => 'get',
-                               'action' => $this->getConfig()->get( 'Script' ),
-                               'id' => 'mw-allmessages-form'
-                       ] ) .
-                       Xml::fieldset( $this->msg( 'allmessages-filter-legend' )->text() ) .
-                       Html::hidden( 'title', $this->getTitle()->getPrefixedText() ) .
-                       Xml::openElement( 'table', [ 'class' => 'mw-allmessages-table' ] ) . "\n" .
-                       '<tr>
-                               <td class="mw-label">' .
-                       Xml::label( $this->msg( 'allmessages-prefix' )->text(), 'mw-allmessages-form-prefix' ) .
-                       "</td>\n
-                       <td class=\"mw-input\">" .
-                       Xml::input(
-                               'prefix',
-                               20,
-                               str_replace( '_', ' ', $this->displayPrefix ),
-                               [ 'id' => 'mw-allmessages-form-prefix' ]
-                       ) .
-                       "</td>\n
-                       </tr>
-                       <tr>\n
-                       <td class='mw-label'>" .
-                       $this->msg( 'allmessages-filter' )->escaped() .
-                       "</td>\n
-                               <td class='mw-input'>" .
-                       Xml::radioLabel( $this->msg( 'allmessages-filter-unmodified' )->text(),
-                               'filter',
-                               'unmodified',
-                               'mw-allmessages-form-filter-unmodified',
-                               ( $this->filter === 'unmodified' )
-                       ) .
-                       Xml::radioLabel( $this->msg( 'allmessages-filter-all' )->text(),
-                               'filter',
-                               'all',
-                               'mw-allmessages-form-filter-all',
-                               ( $this->filter === 'all' )
-                       ) .
-                       Xml::radioLabel( $this->msg( 'allmessages-filter-modified' )->text(),
-                               'filter',
-                               'modified',
-                               'mw-allmessages-form-filter-modified',
-                               ( $this->filter === 'modified' )
-                       ) .
-                       "</td>\n
-                       </tr>
-                       <tr>\n
-                               <td class=\"mw-label\">" . $langSelect[0] . "</td>\n
-                               <td class=\"mw-input\">" . $langSelect[1] . "</td>\n
-                       </tr>" .
-
-                       '<tr>
-                               <td class="mw-label">' .
-                       Xml::label( $this->msg( 'table_pager_limit_label' )->text(), 'mw-table_pager_limit_label' ) .
-                       '</td>
-                       <td class="mw-input">' .
-                       $this->getLimitSelect( [ 'id' => 'mw-table_pager_limit_label' ] ) .
-                       '</td>
-                       <tr>
-                               <td></td>
-                               <td>' .
-                       Xml::submitButton( $this->msg( 'allmessages-filter-submit' )->text() ) .
-                       "</td>\n
-                       </tr>" .
-
-                       Xml::closeElement( 'table' ) .
-                       $this->getHiddenFields( [ 'title', 'prefix', 'filter', 'lang', 'limit' ] ) .
-                       Xml::closeElement( 'fieldset' ) .
-                       Xml::closeElement( 'form' );
-
-               return $out;
-       }
-
        function getAllMessages( $descending ) {
                $messageNames = Language::getLocalisationCache()->getSubitemList( 'en', 'messages' );
 
@@ -256,8 +187,8 @@ class AllMessagesTablePager extends TablePager {
                                ( $descending && ( $key < $offset || !$offset ) || !$descending && $key > $offset ) &&
                                ( ( $this->prefix && preg_match( $this->prefix, $key ) ) || $this->prefix === false )
                        ) {
-                               $actual = wfMessage( $key )->inLanguage( $this->langcode )->plain();
-                               $default = wfMessage( $key )->inLanguage( $this->langcode )->useDatabase( false )->plain();
+                               $actual = wfMessage( $key )->inLanguage( $this->lang )->plain();
+                               $default = wfMessage( $key )->inLanguage( $this->lang )->useDatabase( false )->plain();
                                $result->result[] = [
                                        'am_title' => $key,
                                        'am_actual' => $actual,
@@ -318,6 +249,7 @@ class AllMessagesTablePager extends TablePager {
                                        ] ),
                                        $this->msg( 'allmessages-filter-translate' )->text()
                                );
+                               $talkLink = $this->msg( 'talkpagelinktext' )->escaped();
 
                                if ( $this->mCurrentRow->am_customised ) {
                                        $title = $linkRenderer->makeKnownLink( $title, $this->getLanguage()->lcfirst( $value ) );
@@ -328,11 +260,11 @@ class AllMessagesTablePager extends TablePager {
                                        );
                                }
                                if ( $this->mCurrentRow->am_talk_exists ) {
-                                       $talk = $linkRenderer->makeKnownLink( $talk, $this->talk );
+                                       $talk = $linkRenderer->makeKnownLink( $talk, $talkLink );
                                } else {
                                        $talk = $linkRenderer->makeBrokenLink(
                                                $talk,
-                                               $this->talk
+                                               $talkLink
                                        );
                                }
 
index a0b14d2..205ffbf 100644 (file)
@@ -199,7 +199,9 @@ class BlockListPager extends TablePager {
 
                                if ( !$row->ipb_sitewide && $this->restrictions ) {
                                        $list = $this->getRestrictionListHTML( $this->restrictions, $row );
-                                       $properties[] = htmlspecialchars( $msg['blocklist-editing'] ) . $list;
+                                       if ( $list ) {
+                                               $properties[] = htmlspecialchars( $msg['blocklist-editing'] ) . $list;
+                                       }
                                }
 
                                if ( $row->ipb_anon_only ) {
index ca13f3d..1220e86 100644 (file)
@@ -421,6 +421,41 @@ class ContribsPager extends RangeChronologicalPager {
                return 'rev_timestamp';
        }
 
+       /**
+        * @return false|string
+        */
+       public function getTagFilter() {
+               return $this->tagFilter;
+       }
+
+       /**
+        * @return string
+        */
+       public function getContribs() {
+               return $this->contribs;
+       }
+
+       /**
+        * @return string
+        */
+       public function getTarget() {
+               return $this->target;
+       }
+
+       /**
+        * @return bool
+        */
+       public function isNewOnly() {
+               return $this->newOnly;
+       }
+
+       /**
+        * @return int|string
+        */
+       public function getNamespace() {
+               return $this->namespace;
+       }
+
        /**
         * @return string[]
         */
index 7a8f297..fa0fbf3 100644 (file)
@@ -29,10 +29,29 @@ use Wikimedia\Rdbms\FakeResultWrapper;
 
 class DeletedContribsPager extends IndexPager {
 
+       /**
+        * @var bool Default direction for pager
+        */
        public $mDefaultDirection = IndexPager::DIR_DESCENDING;
+
+       /**
+        * @var string[] Local cache for escaped messages
+        */
        public $messages;
+
+       /**
+        * @var string User name, or a string describing an IP address range
+        */
        public $target;
+
+       /**
+        * @var string|int A single namespace number, or an empty string for all namespaces
+        */
        public $namespace = '';
+
+       /**
+        * @var \Wikimedia\Rdbms\Database
+        */
        public $mDb;
 
        /**
@@ -139,6 +158,20 @@ class DeletedContribsPager extends IndexPager {
                return 'ar_timestamp';
        }
 
+       /**
+        * @return string
+        */
+       public function getTarget() {
+               return $this->target;
+       }
+
+       /**
+        * @return int|string
+        */
+       public function getNamespace() {
+               return $this->namespace;
+       }
+
        protected function getStartBody() {
                return "<ul>\n";
        }
index 3ddbe08..1794362 100644 (file)
@@ -253,28 +253,28 @@ class ImageListPager extends TablePager {
         * @return array Query info
         */
        protected function getQueryInfoReal( $table ) {
+               $dbr = wfGetDB( DB_REPLICA );
                $prefix = $table === 'oldimage' ? 'oi' : 'img';
 
                $tables = [ $table ];
-               $fields = $this->getFieldNames();
+               $fields = array_keys( $this->getFieldNames() );
+               $fields = array_combine( $fields, $fields );
                unset( $fields['img_description'] );
                unset( $fields['img_user_text'] );
-               $fields = array_keys( $fields );
 
                if ( $table === 'oldimage' ) {
-                       foreach ( $fields as $id => &$field ) {
-                               if ( substr( $field, 0, 4 ) !== 'img_' ) {
-                                       continue;
+                       foreach ( $fields as $id => $field ) {
+                               if ( substr( $id, 0, 4 ) === 'img_' ) {
+                                       $fields[$id] = $prefix . substr( $field, 3 );
                                }
-                               $field = $prefix . substr( $field, 3 ) . ' AS ' . $field;
                        }
-                       $fields[array_search( 'top', $fields )] = "'no' AS top";
+                       $fields['top'] = $dbr->addQuotes( 'no' );
                } else {
                        if ( $this->mShowAll ) {
-                               $fields[array_search( 'top', $fields )] = "'yes' AS top";
+                               $fields['top'] = $dbr->addQuotes( 'yes' );
                        }
                }
-               $fields[array_search( 'thumb', $fields )] = $prefix . '_name AS thumb';
+               $fields['thumb'] = $prefix . '_name';
 
                $options = $join_conds = [];
 
@@ -283,7 +283,7 @@ class ImageListPager extends TablePager {
                $tables += $commentQuery['tables'];
                $fields += $commentQuery['fields'];
                $join_conds += $commentQuery['joins'];
-               $fields['description_field'] = "'{$prefix}_description'";
+               $fields['description_field'] = $dbr->addQuotes( "{$prefix}_description" );
 
                # User fields
                $actorQuery = ActorMigration::newMigration()->getJoin( $prefix . '_user' );
@@ -295,20 +295,13 @@ class ImageListPager extends TablePager {
 
                # Depends on $wgMiserMode
                # Will also not happen if mShowAll is true.
-               if ( isset( $this->mFieldNames['count'] ) ) {
-                       $tables[] = 'oldimage';
-
-                       # Need to rewrite this one
-                       foreach ( $fields as &$field ) {
-                               if ( $field == 'count' ) {
-                                       $field = 'COUNT(oi_archive_name) AS count';
-                               }
-                       }
-                       unset( $field );
-
-                       $columnlist = preg_grep( '/^img/', array_keys( $this->getFieldNames() ) );
-                       $options = [ 'GROUP BY' => array_merge( [ $fields['img_user'] ], $columnlist ) ];
-                       $join_conds['oldimage'] = [ 'LEFT JOIN', 'oi_name = img_name' ];
+               if ( isset( $fields['count'] ) ) {
+                       $fields['count'] = $dbr->buildSelectSubquery(
+                               'oldimage',
+                               'COUNT(oi_archive_name)',
+                               'oi_name = img_name',
+                               __METHOD__
+                       );
                }
 
                return [
index c7dbf83..a579b69 100644 (file)
@@ -1740,9 +1740,10 @@ abstract class UploadBase {
                        }
 
                        # image filters can pull in url, which could be svg that executes scripts
+                       # Only allow url( "#foo" ). Do not allow url( http://example.com )
                        if ( $strippedElement == 'image'
                                && $stripped == 'filter'
-                               && preg_match( '!url\s*\(!sim', $value )
+                               && preg_match( '!url\s*\(\s*["\']?[^#]!sim', $value )
                        ) {
                                wfDebug( __METHOD__ . ": Found image filter with url: "
                                        . "\"<$strippedElement $stripped='$value'...\" in uploaded file.\n" );
index 22fe44c..79889ae 100644 (file)
@@ -1179,15 +1179,17 @@ class User implements IDBAccessObject, UserIdentity {
        /**
         * Check if this is a valid password for this user
         *
-        * Create a Status object based on the password's validity.
-        * The Status should be set to fatal if the user should not
-        * be allowed to log in, and should have any errors that
-        * would block changing the password.
-        *
-        * If the return value of this is not OK, the password
-        * should not be checked. If the return value is not Good,
-        * the password can be checked, but the user should not be
-        * able to set their password to this.
+        * Returns a Status object with a set of messages describing
+        * problems with the password. If the return status is fatal,
+        * the action should be refused and the password should not be
+        * checked at all (this is mainly meant for DoS mitigation).
+        * If the return value is OK but not good, the password can be checked,
+        * but the user should not be able to set their password to this.
+        * The value of the returned Status object will be an array which
+        * can have the following fields:
+        * - forceChange (bool): if set to true, the user should not be
+        *   allowed to log with this password unless they change it during
+        *   the login process (see ResetPasswordSecondaryAuthenticationProvider).
         *
         * @param string $password Desired password
         * @return Status
@@ -1201,7 +1203,7 @@ class User implements IDBAccessObject, UserIdentity {
                        $wgPasswordPolicy['checks']
                );
 
-               $status = Status::newGood();
+               $status = Status::newGood( [] );
                $result = false; // init $result to false for the internal checks
 
                if ( !Hooks::run( 'isValidPassword', [ $password, &$result, $this ] ) ) {
@@ -1210,7 +1212,7 @@ class User implements IDBAccessObject, UserIdentity {
                }
 
                if ( $result === false ) {
-                       $status->merge( $upp->checkUserPassword( $this, $password ) );
+                       $status->merge( $upp->checkUserPassword( $this, $password ), true );
                        return $status;
                } elseif ( $result === true ) {
                        return $status;
@@ -1577,7 +1579,7 @@ class User implements IDBAccessObject, UserIdentity {
 
                if ( is_array( $data ) ) {
                        if ( isset( $data['user_groups'] ) && is_array( $data['user_groups'] ) ) {
-                               if ( !count( $data['user_groups'] ) ) {
+                               if ( $data['user_groups'] === [] ) {
                                        $this->mGroupMemberships = [];
                                } else {
                                        $firstGroup = reset( $data['user_groups'] );
@@ -1643,7 +1645,7 @@ class User implements IDBAccessObject, UserIdentity {
                }
 
                $toPromote = Autopromote::getAutopromoteOnceGroups( $this, $event );
-               if ( !count( $toPromote ) ) {
+               if ( $toPromote === [] ) {
                        return [];
                }
 
@@ -4543,6 +4545,7 @@ class User implements IDBAccessObject, UserIdentity {
        /**
         * Get whether the user is blocked from using Special:Upload
         *
+        * @since 1.33
         * @return bool
         */
        public function isBlockedFromUpload() {
index 46f3bbc..46f1aaa 100644 (file)
@@ -127,7 +127,6 @@ class ZipDirectoryReader {
        const GENERAL_CD_ENCRYPTED = 13;
 
        /**
-        * Private constructor
         * @param string $fileName
         * @param callable $callback
         * @param array $options
index a9bba7a..5f38775 100644 (file)
@@ -4,7 +4,6 @@ use Wikimedia\Rdbms\IDatabase;
 use Liuggio\StatsdClient\Factory\StatsdDataFactoryInterface;
 use MediaWiki\Linker\LinkTarget;
 use Wikimedia\Assert\Assert;
-use Wikimedia\Rdbms\LBFactory;
 use Wikimedia\ScopedCallback;
 use Wikimedia\Rdbms\ILBFactory;
 use Wikimedia\Rdbms\LoadBalancer;
index 797a81f..06d8095 100644 (file)
@@ -19,8 +19,6 @@ class CheckMatrixWidget extends \OOUI\Widget {
        protected $forcedOff = [];
 
        /**
-        * CheckMatrixWidget constructor
-        *
         * Operates similarly to MultiSelectWidget, but instead of using an array of
         * options, uses an array of rows and an array of columns to dynamically
         * construct a matrix of options. The tags used to identify a particular cell
index 853601e..c0efd24 100644 (file)
@@ -45,6 +45,7 @@ class InterwikiSearchResultSetWidget implements SearchResultSetWidget {
                $this->output = $specialSearch->getOutput();
                $this->showMultimedia = $showMultimedia;
        }
+
        /**
         * @param string $term User provided search term
         * @param SearchResultSet|SearchResultSet[] $resultSets List of interwiki
index 1c2e4f1..ef9137d 100644 (file)
@@ -1421,7 +1421,7 @@ class Language {
                                case 'g':
                                        $usedHour = true;
                                        $h = substr( $ts, 8, 2 );
-                                       $num = $h % 12 ? $h % 12 : 12;
+                                       $num = $h % 12 ?: 12;
                                        break;
                                case 'G':
                                        $usedHour = true;
@@ -1430,7 +1430,7 @@ class Language {
                                case 'h':
                                        $usedHour = true;
                                        $h = substr( $ts, 8, 2 );
-                                       $num = sprintf( '%02d', $h % 12 ? $h % 12 : 12 );
+                                       $num = sprintf( '%02d', $h % 12 ?: 12 );
                                        break;
                                case 'H':
                                        $usedHour = true;
index cdec27d..0240f85 100644 (file)
@@ -3938,6 +3938,7 @@ public static $zh2Hant = [
 '余威德' => '余威德',
 '余子明' => '余子明',
 '余思敏' => '余思敏',
+'余杰' => '余杰',
 '佛历' => '佛曆',
 '佛罗棱萨' => '佛羅稜薩',
 '佛钟' => '佛鐘',
@@ -5111,6 +5112,7 @@ public static $zh2Hant = [
 '年历次' => '年歷次',
 '年谷' => '年穀',
 '年里' => '年裡',
+'年里约' => '年里約',
 '年鉴' => '年鑑',
 '并州' => '并州',
 '并日而食' => '并日而食',
@@ -5500,6 +5502,7 @@ public static $zh2Hant = [
 '恒生' => '恒生',
 '恒隆' => '恒隆',
 '恕乏价催' => '恕乏价催',
+'恢复' => '恢復',
 '息交绝游' => '息交絕遊',
 '息谷' => '息穀',
 '悒郁' => '悒鬱',
@@ -7859,6 +7862,7 @@ public static $zh2Hant = [
 '复试' => '複試',
 '复课' => '複課',
 '复议' => '複議',
+'复读机' => '複讀機',
 '复变函数' => '複變函數',
 '复赛' => '複賽',
 '复辅音' => '複輔音',
@@ -11959,7 +11963,6 @@ public static $zh2Hans = [
 '趲' => '趱',
 '跡' => '迹',
 '跥' => '跺',
-'跴' => '踩',
 '踁' => '胫',
 '踐' => '践',
 '踫' => '碰',
@@ -13661,6 +13664,7 @@ public static $zh2Hans = [
 '釐正' => '厘正',
 '釐毫' => '厘毫',
 '釐清' => '厘清',
+'釐米' => '厘米',
 '釐訂' => '厘订',
 '釐革' => '厘革',
 '原著' => '原著',
@@ -14428,6 +14432,8 @@ public static $zh2TW = [
 '克林顿' => '柯林頓',
 '戴卓爾' => '柴契爾',
 '撒切尔' => '柴契爾',
+'格林納丁斯' => '格瑞那丁',
+'格林纳丁斯' => '格瑞那丁',
 '格林納達' => '格瑞那達',
 '格林纳达' => '格瑞那達',
 '桃金娘' => '桃金孃',
@@ -14448,6 +14454,7 @@ public static $zh2TW = [
 '標準杆' => '標準桿',
 '毛里求斯' => '模里西斯',
 '毛里裘斯' => '模里西斯',
+'樸茨茅夫' => '樸茨茅斯',
 '機械人' => '機器人',
 '概率' => '機率',
 '電單車' => '機車',
@@ -14588,6 +14595,7 @@ public static $zh2TW = [
 '昂山素季' => '翁山蘇姬',
 '圣基茨和尼维斯' => '聖克里斯多福及尼維斯',
 '聖吉斯納域斯' => '聖克里斯多福及尼維斯',
+'聖佐治' => '聖喬治',
 '圣文森特和格林纳丁斯' => '聖文森及格瑞那丁',
 '聖文森特和格林納丁斯' => '聖文森及格瑞那丁',
 '圣赫勒拿' => '聖赫倫那',
@@ -14772,6 +14780,8 @@ public static $zh2TW = [
 '链接' => '連結',
 '連結他' => '連結他',
 '进制' => '進位',
+'道琼斯' => '道瓊',
+'道瓊斯' => '道瓊',
 '达·芬奇' => '達·文西',
 '达芬奇' => '達文西',
 '溫納圖萬' => '那杜',
@@ -14855,7 +14865,6 @@ public static $zh2TW = [
 '高清电视' => '高畫質電視',
 '斗着' => '鬥著',
 '魯賓斯·巴里切羅' => '魯本·巴瑞切羅',
-'咪高峰' => '麥克風',
 '迈克尔' => '麥可',
 '麦克尔' => '麥可',
 '迈凯轮' => '麥拿輪',
@@ -15487,8 +15496,6 @@ public static $zh2HK = [
 '味著述' => '味著述',
 '味著錄' => '味著錄',
 '咖哩' => '咖喱',
-'麥克風' => '咪高峰',
-'麦克风' => '咪高峰',
 '咬著' => '咬着',
 '哥特式' => '哥德式',
 '哥斯大黎加' => '哥斯達黎加',
@@ -16363,6 +16370,7 @@ public static $zh2HK = [
 '奥黛丽·赫本' => '柯德莉·夏萍',
 '奧黛麗·赫本' => '柯德莉·夏萍',
 '哥廷根' => '格丁根',
+'格瑞那丁' => '格林納丁斯',
 '格瑞那達' => '格林納達',
 '格莱美奖' => '格林美獎',
 '葛萊美獎' => '格林美獎',
@@ -16397,6 +16405,8 @@ public static $zh2HK = [
 '標志著' => '標志着',
 '寶獅' => '標致',
 '標誌著' => '標誌着',
+'朴茨茅斯' => '樸茨茅夫',
+'樸茨茅斯' => '樸茨茅夫',
 '树林里' => '樹林裏',
 '工具機' => '機床',
 '机器人' => '機械人',
@@ -17069,6 +17079,8 @@ public static $zh2HK = [
 '考著者' => '考著者',
 '考著述' => '考著述',
 '考著錄' => '考著錄',
+'圣乔治' => '聖佐治',
+'聖喬治' => '聖佐治',
 '圣基茨和尼维斯' => '聖吉斯納域斯',
 '聖克里斯多福及尼維斯' => '聖吉斯納域斯',
 '聖文森及格瑞那丁' => '聖文森特和格林納丁斯',
@@ -17568,6 +17580,8 @@ public static $zh2HK = [
 '遍佈著' => '遍佈着',
 '遍布著' => '遍佈着',
 '過著' => '過着',
+'道瓊' => '道瓊斯',
+'道瓊斯' => '道瓊斯',
 '达·芬奇' => '達·文西',
 '达芬奇' => '達文西',
 '達著' => '達着',
@@ -18578,6 +18592,7 @@ public static $zh2CN = [
 '土魯斯' => '图卢兹',
 '吐瓦魯' => '图瓦卢',
 '原子筆' => '圆珠笔',
+'聖佐治' => '圣乔治',
 '汕埠' => '圣佩德罗苏拉',
 '聖露西亞' => '圣卢西亚',
 '聖克里斯多福及尼維斯' => '圣基茨和尼维斯',
@@ -19308,6 +19323,7 @@ public static $zh2CN = [
 '本著者' => '本著者',
 '本著述' => '本著述',
 '本帳' => '本账',
+'樸茨茅夫' => '朴茨茅斯',
 '機械人' => '机器人',
 '工具機' => '机床',
 '殺著' => '杀着',
@@ -19349,6 +19365,7 @@ public static $zh2CN = [
 '查維茲' => '查韦斯',
 '標志著' => '标志着',
 '標誌著' => '标志着',
+'格瑞那丁' => '格林纳丁斯',
 '格瑞那達' => '格林纳达',
 '格林美獎' => '格莱美奖',
 '葛萊美獎' => '格莱美奖',
@@ -19596,6 +19613,7 @@ public static $zh2CN = [
 '畫著稱' => '画著称',
 '畫著者' => '画著者',
 '介面' => '界面',
+'留尼旺' => '留尼汪',
 '留著' => '留着',
 '留著書' => '留着书',
 '留著作' => '留著作',
@@ -20397,6 +20415,8 @@ public static $zh2CN = [
 '遇著述' => '遇著述',
 '遍佈著' => '遍布着',
 '遍布著' => '遍布着',
+'道瓊' => '道琼斯',
+'道瓊斯' => '道琼斯',
 '部份' => '部分',
 '配合著' => '配合着',
 '配合著名' => '配合著名',
@@ -20641,7 +20661,6 @@ public static $zh2CN = [
 '高著述' => '高著述',
 '魚雷' => '鱼雷',
 '鱼雷' => '鱼雷',
-'咪高峰' => '麦克风',
 '黏著' => '黏着',
 '黏著書' => '黏著书',
 '黏著作' => '黏著作',
index b37d82f..e97e792 100644 (file)
        "november-date": "$1 Buleuën Siblaih",
        "december-date": "$1 Buleuën Duwa Blaih",
        "pagecategories": "{{PLURAL:$1|Kawan}}",
-       "category_header": "Teunuléh lam kawan \"$1\"",
+       "category_header": "Seunurat lam kawan \"$1\"",
        "subcategories": "Aneuk kawan",
        "category-media-header": "Peukakaih lam kawan \"$1\"",
        "category-empty": "''Kawan nyoë jinoë hat hana halaman atawa media.''",
        "redirectedfrom": "(Geupupinah nibak $1)",
        "redirectpagesub": "Laman peuninah",
        "redirectto": "Peupinah u:",
-       "lastmodifiedat": "Laman nyoe seuneulheueh geuandam bak $1, poh $2.",
+       "lastmodifiedat": "Ôn nyoe seuneulheueh geupeusaneut bak $1, poh $2.",
        "viewcount": "Laman nyoë ka geusaweuë {{PLURAL:$1|sigo|$sigo}}.<br />",
        "protectedpage": "Laman teupeulindông",
        "jumpto": "Grôp u:",
        "site-atom-feed": "Umpeuën Atôm $1",
        "page-rss-feed": "Umpeuën RSS \"$1\"",
        "page-atom-feed": "Umpeuën Atom \"$1\"",
-       "red-link-title": "$1 (laman hana)",
+       "red-link-title": "$1 (ôn hana)",
        "sort-descending": "Peuurôt tren",
        "sort-ascending": "Peuurôt ék",
-       "nstab-main": "Laman",
+       "nstab-main": "Ôn",
        "nstab-user": "Ureuëng ngui",
        "nstab-media": "Laman media",
-       "nstab-special": "Laman kusuih",
+       "nstab-special": "Ôn kusuih",
        "nstab-project": "Laman buët",
        "nstab-image": "Beureukaih",
        "nstab-mediawiki": "Peusan",
        "edit-hook-aborted": "Seunampôh geupeubateuë lé kaw'ét parser.\nHana jeuneulaih.",
        "edit-gone-missing": "Han jeuet pubarô ôn.\nÔn nyoe mungkén ka geusampôh.",
        "edit-conflict": "Konflik peusaneut.",
-       "postedit-confirmation-saved": "Neuandam droeneuh ka meukubah.",
+       "postedit-confirmation-saved": "Atra neupeusaneut ka teukeubah.",
        "edit-already-exists": "Han jeuet peugöt laman barô.\nLaman nyoe ka lheueh na.",
        "defaultmessagetext": "Naseukah peusan pukok",
        "content-model-wikitext": "seunurat wiki",
        "post-expand-template-argument-category": "Laman ngön dalèh seunaleuëk nyang hana geupeureumeuën",
        "cantcreateaccount-text": "Peuneugöt nan ureueng ngui nibak alamat IP ('''$1''') ka geutheun lé [[User:$3|$3]].\n\nDalèh $3 nyoe nakeuh ''$2''",
        "viewpagelogs": "Eu log laman nyoë",
-       "nohistory": "Hana riwayat neuandam awai keu ôn nyoe.",
+       "nohistory": "Hana riwayat peusaneut awai keu ôn nyoe.",
        "currentrev": "Geunantoë jinoë",
        "currentrev-asof": "Geunantoë barô bak $1",
        "revisionasof": "Geunantoë tiëp $1",
        "history-feed-title": "Riwayat neupeupah",
        "history-feed-description": "Riwayat neupeupah keu ôn nyoe bak wiki",
        "history-feed-item-nocomment": "$1 bak $2",
-       "rev-deleted-comment": "(mohtasa neuandam geusampôh)",
+       "rev-deleted-comment": "(mohtasa peusaneut geusampôh)",
        "rev-deleted-user": "(nan ureueng ngui geusampôh)",
-       "rev-deleted-user-contribs": "[nan ureueng ngui atawa alamat IP geusampôh - neuandam geupeusom bak dapeuta beuneuri]",
+       "rev-deleted-user-contribs": "[nan ureueng ngui atawa alamat IP geusampôh - hasé peusaneut geupeusom bak dapeuta beuneuri]",
        "rev-delundel": "peuleumah/peusom",
        "rev-showdeleted": "peudeuh",
        "revdelete-show-file-submit": "Nyoe",
        "revdelete-hide-image": "Peusom asoe beureukaih",
-       "revdelete-hide-comment": "Mohtasa neuandam",
+       "revdelete-hide-comment": "Mohtasa peusaneut",
        "revdelete-radio-same": "(bèk neugantoe)",
        "revdelete-radio-set": "Teusom",
        "revdelete-radio-unset": "Leumah",
        "nextn": "{{PLURAL:$1|$1}} lheuëh nyan",
        "prevn-title": "$1 {{PLURAL:$1|hasé|hasé}} sigohlomjih",
        "nextn-title": "$1 {{PLURAL:$1|hasé}} lheuëh nyan",
-       "shown-title": "Peuleumah $1 {{PLURAL:$1|hasé}} tiep laman",
+       "shown-title": "Peuleumah $1 {{PLURAL:$1|hasé}} tiep ôn",
        "viewprevnext": "Eu ($1 {{int:pipe-separator}} $2)($3)",
        "searchmenu-exists": "'''Na laman ngön nan \"[[:$1]]\" bak wiki nyoe.'''",
        "searchmenu-new": "<strong>Peugöt laman \"[[:$1]]\" bak wiki nyoë!</strong> {{PLURAL:$2|0=|Eu cit laman nyang geurumpok nibak meunita droëneuh.|Eu cit hasé mita nyang geurumpok.}}",
-       "searchprofile-articles": "Laman asoë",
+       "searchprofile-articles": "Ôn asoe",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Ban dum",
        "searchprofile-advanced": "Tingkat lanjut",
        "searchprofile-articles-tooltip": "Mita lam $1",
        "searchprofile-images-tooltip": "Mita beureukaih",
-       "searchprofile-everything-tooltip": "Mita ban dum laman asoë (rôh ôn marit)",
+       "searchprofile-everything-tooltip": "Mita ban dum asoe (rôh ôn marit)",
        "searchprofile-advanced-tooltip": "Mita lam ruweuëng nan kustom",
        "search-result-size": "$1 ({{PLURAL:$2|1 narit|$2 narit}})",
        "search-result-category-size": "{{PLURAL:$1|1 anggeeta|$1 anggeeta}} ({{PLURAL:$2|1 aneuk kawan|$2 aneuk kawan}}, {{PLURAL:$3|1 beureukaih|$3 beureukaih}})",
        "powersearch-ns": "Mita bak ruweuëng nan:",
        "powersearch-toggleall": "Ban dum",
        "powersearch-togglenone": "Hana",
-       "preferences": "Galak",
+       "preferences": "Atô",
        "mypreferences": "Atô",
-       "prefs-edits": "Jumeulah neuandam:",
+       "prefs-edits": "Jumeulah peusaneut:",
        "prefsnologintext2": "Neutamöng mangat jeuet neugantoe peuatô",
        "prefs-skin": "Kulét",
        "skin-preview": "Eu dilèe",
        "recentchanges-summary": "Neukalön nyang ban meuubah bak wiki lam laman nyoe.",
        "recentchanges-noresult": "Hana neuubah lam lheuëng watèë nyoë nyang paih ngön syarat",
        "recentchanges-feed-description": "Seutöt neuubah barô lam wiki bak umpeuën nyoë.",
-       "recentchanges-label-newpage": "Geupeugöt laman barô",
+       "recentchanges-label-newpage": "Geupeugöt ôn barô",
        "recentchanges-label-minor": "Geupeusaneut bacut",
        "recentchanges-label-bot": "Geupeusaneut lé bot",
        "recentchanges-label-unpatrolled": "Hasé peusaneut nyoe goh lom geukalon",
        "mimesearch": "Mita MIME",
        "listredirects": "Dapeuta peuninah",
        "unusedtemplates": "Templat nyang hana geungui",
-       "randompage": "Laman baranggari",
+       "randompage": "Ôn baranggari",
        "randomredirect": "Peuninah saban sakri",
        "statistics": "Keunira",
        "doubleredirects": "Peuninah ganda",
        "protectedpages-reason": "Alasan",
        "listusers": "Dapeuta ureuëng ngui",
        "usercreated": "{{GENDER:$3|Geupeugot}} bak $1 poh $2",
-       "newpages": "Laman barô",
+       "newpages": "Ôn barô",
        "newpages-username": "Ureuëng ngui:",
        "ancientpages": "Laman paléng awai",
        "move": "Pupinah",
        "prevpage": "Laman sigohlomjih ($1)",
        "allpagesfrom": "Peuleumah laman peuphôn nibak:",
        "allpagesto": "Peuleumah laman geupeuakhé bak:",
-       "allarticles": "Dapeuta teunuléh",
+       "allarticles": "Dapeuta seunurat",
        "allpagessubmit": "Mita",
        "allpagesprefix": "Peuleumah laman ngön harah phôn:",
        "allpages-hide-redirects": "Peusom peuninah",
        "tooltip-pt-login": "Droëneuh geupadan keu neutamong 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": "Peusaneut laman nyoe",
+       "tooltip-ca-talk": "Marit ôn asoe",
+       "tooltip-ca-edit": "Peusaneut ôn nyoe",
        "tooltip-ca-addsection": "Puphôn beunagi barô",
        "tooltip-ca-viewsource": "Laman nyoë geulindông.\nDroëneuh jeuët neu’eu nèjih mantöng.",
-       "tooltip-ca-history": "Geunantoë awai nibak laman nyoë",
+       "tooltip-ca-history": "Geunantoë awai nibak ôn nyoë",
        "tooltip-ca-protect": "Peulindông laman nyoë",
        "tooltip-ca-delete": "Sampôh laman nyoë",
        "tooltip-ca-move": "Pupinah laman nyoë",
-       "tooltip-ca-watch": "Tamah laman nyoë u dapeuta keunalön",
+       "tooltip-ca-watch": "Tamah ôn nyoe u dapeuta keunalön",
        "tooltip-ca-unwatch": "Sampôh laman nyoë nibak dapeuta kalön droëneuh",
        "tooltip-search": "Mita lam {{SITENAME}}",
-       "tooltip-search-go": "Mita saboh laman ngon nan nyang paih lagèe nyoe meunyo na",
-       "tooltip-search-fulltext": "Mita laman nyang na asoë lagèë nyoë",
+       "tooltip-search-go": "Mita saboh ôn ngon nan nyang paih lagèe nyoe meunyo na",
+       "tooltip-search-fulltext": "Mita ôn nyang na asoe lagèe nyoe",
        "tooltip-p-logo": "Saweuë ôn keuë",
        "tooltip-n-mainpage": "Saweuë ôn keuë",
        "tooltip-n-mainpage-description": "Saweuë ôn keuë",
        "tooltip-n-portal": "Bhaih buët, peuë nyang jeuët neupubuët, pat keu mita sipeuë hai",
        "tooltip-n-currentevents": "Mita haba barô",
        "tooltip-n-recentchanges": "Dapeuta neuubah barô lam wiki.",
-       "tooltip-n-randompage": "Peuleumah laman baranggari",
+       "tooltip-n-randompage": "Peuleumah ôn baranggari",
        "tooltip-n-help": "Bak mita bantu.",
-       "tooltip-t-whatlinkshere": "Dapeuta ban dum laman wiki nyang mupawôt keunoë",
-       "tooltip-t-recentchangeslinked": "Neuubah barô lam laman nyang meupawôt nibak laman nyoë",
+       "tooltip-t-whatlinkshere": "Dapeuta ban dum ôn wiki nyang mupawôt keunoe",
+       "tooltip-t-recentchangeslinked": "Neuubah barô lam ôn nyang meupawôt nibak ôn nyoe",
        "tooltip-feed-rss": "Umpeuën RSS keu laman nyoë",
        "tooltip-feed-atom": "Umpeuën Atom keu laman nyoë",
        "tooltip-t-contributions": "Dapeuta beuneuri {{GENDER:$1|ureuëng ngui nyoë}}",
        "tooltip-t-emailuser": "Peu-ét surat elektronik keu {{GENDER:$1|ureueng ngui nyoe}}",
        "tooltip-t-upload": "Peutamong beureukaih",
-       "tooltip-t-specialpages": "Dapeuta ban dum laman kusuih",
-       "tooltip-t-print": "Seunalén rakam laman nyoë",
-       "tooltip-t-permalink": "Peunawôt teutap keu geunantoë laman nyoë",
-       "tooltip-ca-nstab-main": "Kalön laman asoë",
+       "tooltip-t-specialpages": "Dapeuta ban dum ôn kusuih",
+       "tooltip-t-print": "Seunalén rakam ôn nyoe",
+       "tooltip-t-permalink": "Peunawôt teutap keu geunantoë ôn nyoë",
+       "tooltip-ca-nstab-main": "Kalön ôn asoe",
        "tooltip-ca-nstab-user": "Kalön laman ureuëng ngui",
-       "tooltip-ca-nstab-special": "Nyoë laman kusuih, h’an jeuët geupeusaneut.",
+       "tooltip-ca-nstab-special": "Nyoe ôn kusuih, h’an jeuet geupeusaneut.",
        "tooltip-ca-nstab-project": "Eu laman buët",
-       "tooltip-ca-nstab-image": "Kalön laman beureukaih",
+       "tooltip-ca-nstab-image": "Kalön ôn beureukaih",
        "tooltip-ca-nstab-mediawiki": "Eu peusan sistem",
        "tooltip-ca-nstab-template": "Eu seunaleuëk",
        "tooltip-ca-nstab-help": "Eu laman beunantu",
        "tooltip-diff": "Peuleumah neuubah nyang ka Droëneuh peugöt",
        "tooltip-compareselectedversions": "Ngiëng bida nibak duwa geunantoë laman nyang teupiléh",
        "tooltip-watch": "Tamah laman nyoë u dapeuta kalön droëneuh",
-       "tooltip-rollback": "\"Peuriwang\" jipeugisa atra geuandam lé ureueng tuléh seuneulheueh u laman nyoe ngön sigo teugön",
+       "tooltip-rollback": "\"Peuriwang\" jipeugisa atra geuandam lé ureueng tuléh seuneulheueh u ôn nyoe ngön sigo teugön",
        "tooltip-undo": "Peuriwang geunantoë nyoë ngön peuhah kutak peusaneut ngön cara eu hasé dilèë. Alasan jeuët geutamah bak kuta èhtisa.",
        "tooltip-summary": "Pasoë éhtisa paneuk",
        "interlanguage-link-title": "$1 – $2",
        "pageinfo-recent-edits": "Jumeulah peusaneut ban-ban nyoe (lam $1 nyoe)",
        "pageinfo-magic-words": "{{PLURAL:$1|Narit}} ajaéb ($1)",
        "pageinfo-hidden-categories": "{{PLURAL:$1|Kawan}} teusom ($1)",
-       "pageinfo-toolboxlink": "Keutrangan laman",
+       "pageinfo-toolboxlink": "Keutrangan ôn",
        "pageinfo-contentpage-yes": "Nyo",
        "patrol-log-page": "Log patroli",
        "previousdiff": "← Bida awai",
        "redirect-revision": "Pubeutoi laman",
        "redirect-file": "Nan beureukaih",
        "fileduplicatesearch-submit": "Mita",
-       "specialpages": "Laman kusuih",
+       "specialpages": "Ôn kusuih",
        "specialpages-note-restricted": "* Laman kusuih biasa.\n* <span class=\"mw-specialpagerestricted\">Laman kusuih geutheun.</span>",
        "specialpages-group-maintenance": "Beuneuri thèë plara",
        "specialpages-group-other": "La'én-la'én",
index d8cddaf..e7b441c 100644 (file)
        "tooltip-ca-addsection": "ابدأ قسما جديدا",
        "tooltip-ca-viewsource": "هذه الپاج محمية.\nتنجّم تشوف مصدرها.",
        "tooltip-ca-protect": "احم هذه الصفحة",
-       "tooltip-ca-delete": "احذÙ\81 Ù\87Ø°Ù\87 Ø§Ù\84صÙ\81حة",
+       "tooltip-ca-delete": "حذف هذه الصفحة",
        "tooltip-ca-move": "حوّل هذي الپاج",
        "tooltip-ca-watch": "زيد ها الپاج لليستة الپاجات إلّي تّبعها",
        "tooltip-ca-unwatch": "أزل هذه الصفحة من قائمة مراقبتك",
index d935d1e..92a9e67 100644 (file)
        "blockip": "Blokkeer {{GENDER:$1|gebruiker}}",
        "blockiptext": "Gebruik die vorm hier onder om skryftoegang vir 'n gebruiker of IP-adres in te trek.\nDit mag slegs as beskerming teen vandalisme en in ooreenstemming met die [[{{MediaWiki:Policy-url}}|beleid]] gedoen word.\nVul 'n spesifieke rede hier onder in (haal byvoorbeeld spesifieke bladsye wat gevandaliseer is, aan).",
        "ipaddressorusername": "IP-adres of gebruikersnaam:",
-       "ipbexpiry": "Duur:",
        "ipbreason": "Rede:",
        "ipbreason-dropdown": "*Algemene redes vir versperring\n** Invoeg van valse inligting\n** Skrap van bladsyinhoud\n** \"Spam\" van skakels na eksterne webwerwe\n** Invoeg van gemors op bladsye\n** Intimiderende gedrag (teistering)\n** Misbruik van veelvuldige rekeninge\n** Onaanvaarbare gebruikersnaam",
        "ipb-hardblock": "Voorkom dat aangetekende gebruikers vanaf die IP-adres kan wysig",
        "ipb-unblock": "Deblokkeer 'n gebruiker of IP-adres",
        "ipb-blocklist": "Wys bestaande blokkades",
        "ipb-blocklist-contribs": "Bydraes van {{GENDER:$1|$1}}",
+       "block-expiry": "Duur:",
        "unblockip": "Maak IP-adres oop",
        "unblockiptext": "Gebruik die vorm hier onder om skryftoegang te herstel vir 'n voorheen geblokkeerde IP-adres.",
        "ipusubmit": "Hef blokkade op",
index 260adbf..e725124 100644 (file)
        "blockip": "milangat {{GENDER:$1|misaungayay}}",
        "blockiptext": "suliten isasa’ay a aazihan cudad taneng malangat uzumaay IP puenengan saca misaungayay a mikawaway-kalumyiti tungus.\nizaw dada’ saka mitena’ mipeci’, atu matatungus [[{{MediaWiki:Policy-url}}|pasayzaan saca amikuwanay-pasayzaay]] a zasatu sasa misaungay.\npiisasa’ suliten cacay masaheciay a mahicaay(tinaku: kilul ku kumu cacay mapapeci’ay a kasabelih).\nkapah kisu pisaungay [//ais.wikipedia.org/wiki/ inayi’ kakuniza subal luyou CIDR]kamu-sakilul kese milangat IP subal, satabakiay mahasa a subal IPv4 ku /$1, IPv6 ku /$2.",
        "ipaddressorusername": "IP puenengan saca misaungayay a kalungangan:",
-       "ipbexpiry": "kakatekuhan:",
        "ipbreason": "mahicaay:",
        "ipbreason-dropdown": "* sawsawni maazihay a langat mahicaay \n** suliten pacebaaay a cesyun \n** masipu kasabelih a lacul \n** payakayak hekalay a kuwangkaw masasiket\n** i kasabelih suliten inayi’ay sakaizaway a sulit \n** palawacu’ay a saungay, madebung/mibulibul tu tawan\n** patahtah kayadahay a canghaw \n** pisaungay kabidangay misaungayay a kalungangan",
        "ipb-hardblock": "amana pisaungay tina IP puenengan patalabuay a misaungayay mikawaway-kalumyiti",
        "ipb-blocklist": "ciwsace katukuhayza a langat",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} a paanin",
        "ipb-blocklist-duration-left": "$1 pakawili",
+       "block-expiry": "kakatekuhan:",
        "unblockip": "mihulak malangat misaungayay",
        "unblockiptext": "pisaungay isasa’ay a aazihan cudad apatiku nuayaw malangatay a IP puenengan saca misaungayay a kalungangan a suliten misuped-miala.",
        "ipusubmit": "misipu tina langat",
index 465cde8..57be5aa 100644 (file)
        "blockip": "ተጠቃሚውን ለማገድ",
        "blockiptext": "ከዚህ ታች ያለው ማመልከቻ በአንድ ቁጥር አድርሻ ወይም ብዕር ስም ላይ ማገጃ (ማዕቀብ) ለመጣል ይጠቀማል።  ይህ በ[[{{MediaWiki:Policy-url}}|መርመርያዎቻችን]] መሠረት ተንኮል ወይም ጉዳት ለመከልከል ብቻ እንዲደረግ ይገባል። ከዚህ ታች የተለየ ምክንያት (ለምሣሌ የተጎዳው ገጽ በማጠቆም) ይጻፉ።",
        "ipaddressorusername": "የቁ. አድራሻ ወይም የብዕር ስም፦",
-       "ipbexpiry": "የሚያልቅበት፦",
        "ipbreason": "ምክንያቱ፦",
        "ipbreason-dropdown": "*ተራ የማገጃ ምክንያቶች\n** የሀሠት መረጃ መጨምር\n** ከገጾች ይዞታውን መደምሰስ\n** የ'ስፓም' ማያያዣ ማብዛት\n** እንቶ ፈንቶ መጨምር\n** ዛቻ ማብዛት\n** በአድራሻዎች ብዛት መተንኮል\n** የማይገባ ብዕር ስም",
        "ipbcreateaccount": "ብዕር ስም እንዳያውጣ ለመከልከል",
        "ipb-unblock": "ከብዕር ስም ወይም ከቁ. አድራሻ ማገጃ ለማንሣት",
        "ipb-blocklist": "አሁን ያሉትን ማገጃዎች ለመመልከት",
        "ipb-blocklist-contribs": "የ$1 ለውጦች",
+       "block-expiry": "የሚያልቅበት፦",
        "unblockip": "ከተጠቃሚ ማገጃ ለማንሣት",
        "unblockiptext": "በዚህ ማመልከቻ ከታገደ ተጠቃሚ ማገጃውን ለማንሣት ይቻላል።",
        "ipusubmit": "ማገጃውን ለማንሣት",
index b352029..6abb565 100644 (file)
        "blockip": "Bloqueyar usuario",
        "blockiptext": "Replene o siguient formulario ta bloqueyar l'acceso\nd'escritura dende una cuenta d'usuario u una adreza IP especifica.\nIsto habría de fer-se nomás ta privar vandalismos, y d'alcuerdo con\nas [[{{MediaWiki:Policy-url}}|politicas]].\nEscriba a razón especifica ta o bloqueyo (por exemplo, quaternando\nas pachinas que s'han vandalizato).",
        "ipaddressorusername": "Adreza IP u nombre d'usuario",
-       "ipbexpiry": "Circumducción:",
        "ipbreason": "Razón:",
        "ipbreason-dropdown": "*Razons comuns de bloqueyo\n** Meter información falsa\n** Borrar conteniu d'as pachinas\n** Fer publicidat ficando vinclos con atras pachinas web\n** Meter sinconisions u vasuera en as pachinas\n** Portar-se de traza intimidatoria u violenta / atosegar\n** Abusar de multiples cuentas\n** Nombre d'usuario inacceptable",
        "ipb-hardblock": "Privar que os usuarios identificaus editen dende ista adreza IP",
        "ipb-unblock": "Desbloqueyar un usuario u una IP",
        "ipb-blocklist": "Amostrar bloqueyos actuals",
        "ipb-blocklist-contribs": "Contrebucions de $1",
+       "block-expiry": "Circumducción:",
        "unblockip": "Desbloqueyar usuario",
        "unblockiptext": "Replene o formulario que bi ha contino ta tornar os premisos d'escritura ta una adreza IP u cuenta d'usuario que haiga estato bloqueyata.",
        "ipusubmit": "Debantar ista bloqueyo",
index f131c00..4809994 100644 (file)
        "minoredit": "Þēos is lytel adihtung",
        "watchthis": "Behealdan þisne tramet",
        "savearticle": "Hordian tramet",
-       "publishpage": "Geswutele tramet",
-       "publishchanges": "Geswutele wrixlung",
+       "publishpage": "Geswutelian tramet",
+       "publishchanges": "Geswutelian wrixlung",
        "preview": "Forebysen",
        "showpreview": "Īwan forebysene",
        "showdiff": "Īwan andwendunga",
index 55882e2..5131e9e 100644 (file)
        "resetpass-abort-generic": "منعت مُلحقة إتمام صيرورة تغيير كلمة السّر.",
        "resetpass-expired": "انتهت مدة صلاحية كلمة السر الخاصة بك. الرجاء تعيين كلمة سر جديدة لتسجيل الدخول.",
        "resetpass-expired-soft": "انتهت مدة صلاحية كلمة السر الخاصة بك; الرجاء تغيير كلمة سر جديدة الآن أو النقر على زر إلغاء لإعادة تعيين كلمة السر لاحقاً.",
+       "resetpass-validity": "كلمة المرور غير صالحة: $1\n\nيُرجَى تعيين كلمة مرور جديدة لتسجيل الدخول.",
        "resetpass-validity-soft": "كلمة السر الخاصة بك غير صالحة :  $1 \n\nرجاءا اختر كلمة سر جديدة الآن، أو انقر فوق \"{{int:authprovider-resetpass-skip-label}}\" لتغييرها في وقت لاحق.",
        "passwordreset": "إعادة ضبط كلمة السر",
        "passwordreset-text-one": "أكمل هذا النموذج لإعادة ضبط كلمة السر الخاصة بك.",
        "blockedtext": "'''اسم المستخدم أو عنوان الأيبي الخاص بك تم منعه.'''\n\nقام بالمنع $1.\nسبب المنع هو: ''$2''.\n\n* بداية المنع: $8\n* انتهاء المنع: $6\n* الممنوع المقصود: $7\n\nيمكنك الاتصال ب$1 أو أحد [[{{MediaWiki:Grouppage-sysop}}|الإداريين]] للنقاش حول المنع.\nلا يمكنك استخدام خاصية \"{{int:emailuser}}\" إلا إذا كنت قد وضعت عنوان بريدي صحيح في [[Special:Preferences|تفضيلات حسابك]] ولم يتم منعك من استخدامها.\nعنوان الأيبي الخاص بك حاليا هو $3، ورقم المنع هو #$5.\nمن فضلك اذكر كل التفاصيل بالأعلى في أي استعلامات تقوم بها.",
        "autoblockedtext": "مُنِع عنوان آيبيك تلقائيا لأن مستخدما آخرا منعه $1 استخدمه.\nالسبب المعطى هو التالي:\n\n:<em>$2</em>\n\n* بداية المنع: $8\n* انتهاء المنع: $6\n* الممنوع المقصود: $7\n\nيمكنك أن تتصل ب $1 أو أحد [[{{MediaWiki:Grouppage-sysop}}|الإداريين]] الآخرين لمناقشة المنع.\n\nلاحظ أنه لا يمكنك استخدام خاصية \"إرسال رسالة لهذا المستخدم\" إلا لو كان لديك عنوان بريد إلكتروني صحيح مسجل في [[Special:Preferences|تفضيلاتك]] ولم يتم منعك من استخدامه.\n\nعنوان آيبيك الحالي $3، ورقم المنع #$5.\nمن فضلك اذكر كل التفاصيل بالأعلى في أي استعلامات تقوم بها.",
        "systemblockedtext": "اسم المستخدم أو عنوان الأيبي الخاص بك تم منعه تلقائيا بواسطة ميدياويكي.\nالسبب المعطى هو:\n\n:<em>$2</em>\n\n* بداية المنع: $8\n* نهاية المنع: $6\n* المقصود بالمنع: $7\n\nعنوان الأيبي الحالي الخاص بك هو $3.\nمن فضلك ضمن كل التفاصيل بالأعلى في أي استعلام تقوم به.",
+       "actionblockedtext": "أنت تم منعك من تنفيذ هذا الفعل.",
        "blockednoreason": "لا سبب معطى",
        "whitelistedittext": "يجب عليك $1 لتتمكن من تعديل الصفحات.",
        "confirmedittext": "يجب عليك تأكيد بريدك الإلكتروني قبل تعديل الصفحات.\nمن فضلك اكتب وأكد بريدك الإلكتروني من خلال [[Special:Preferences|تفضيلاتك]].",
        "blockip": "منع {{GENDER:$1|المستخدم|المستخدمة}}",
        "blockiptext": "استخدم النموذج التالي لمنع مستخدم، أو عنوان آيبي، معين من التعديل أو إنشاء حسابات جديدة. تُستخدم هذه العملية لمنع التخريب فقط، ويجب أن تتماشى مع [[{{MediaWiki:Policy-url}}|سياسة المنع]]. أدخل تعليلاً واضحًا لسبب المنع في الخانة المخصصة لذلك (مثلاً: ذكر صفحات محددة تمّ تخريبها من قبل المستخدم).\nيمكنك منع نطاقات عناوين IP باستخدام [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] قواعد; أكبر نطاق مسموح به هو /$1 إلى IPv4 و /$2 إلى IPv6.",
        "ipaddressorusername": "عنوان الأيبي أو اسم المستخدم:",
-       "ipbexpiry": "مدة المنع:",
        "ipbreason": "السبب:",
        "ipbreason-dropdown": "*أسباب المنع الشائعة\n** كتابة معلومات زائفة\n** إزالة المحتوى من الصفحات\n** سبام وصلات لمواقع خارجية\n** كتابة كلام لا معنى له في الصفحات\n** سلوك عدواني\n** إساءة استخدام حسابات متعددة\n** اسم مستخدم غير مقبول",
        "ipb-hardblock": "امنع المستخدمين الوالجين من التعديل بعنوان الأيبي هذا",
-       "ipbcreateaccount": "اÙ\85Ù\86ع Ø¥Ù\86شاء Ø§Ù\84حسابات",
-       "ipbemailban": "اÙ\85Ù\86ع Ø§Ù\84Ù\85ستخدÙ\85 Ù\85Ù\86 Ø¥Ø±Ø³Ø§Ù\84 Ø¨Ø±Ù\8aد Ø¥Ù\84Ù\83ترÙ\88Ù\86Ù\8a",
+       "ipbcreateaccount": "إنشاء الحسابات",
+       "ipbemailban": "إرسال بريد إلكتروني",
        "ipbenableautoblock": "تلقائيا امنع آخر عنوان أيبي تم استعماله بواسطة هذا المستخدم، وأي عناوين أيبي أخرى يحاول التحرير من خلالها",
        "ipbsubmit": "امنع هذا المستخدم",
        "ipbother": "وقت آخر:",
        "ipboptions": "ساعتين:2 hours,يوم واحد:1 day,3 أيام:3 days,أسبوع واحد:1 week,أسبوعين:2 weeks,شهر واحد:1 month,3 أشهر:3 months,6 أشهر:6 months,سنة واحدة:1 year,دائم:infinite",
        "ipbhidename": "أخف اسم المستخدم من التعديلات والقوائم",
        "ipbwatchuser": "راقب صفحتي المستخدم والنقاش لهذا المستخدم",
-       "ipb-disableusertalk": "اÙ\85Ù\86ع Ù\87ذا Ø§Ù\84Ù\85ستخدÙ\85 Ù\85Ù\86 ØªØ¹Ø¯Ù\8aÙ\84 ØµÙ\81حة Ù\86Ù\82اشÙ\87 Ù\85ا Ø¯Ø§Ù\85 Ù\85Ù\85Ù\86Ù\88عاÙ\8b",
+       "ipb-disableusertalk": "تعدÙ\8aÙ\84 ØµÙ\81حة Ù\86Ù\82اشÙ\87",
        "ipb-change-block": "أعد منع المستخدم بهذه الإعدادات",
        "ipb-confirm": "أكّد المنع",
        "ipb-sitewide": "الموقع بأكمله",
        "ipb-partial": "جزئي",
-       "ipb-type-label": "النوع",
        "ipb-pages-label": "الصفحات",
        "badipaddress": "عنوان أيبي غير صحيح",
        "blockipsuccesssub": "تم المنع بنجاح",
        "ipb-blocklist": "عرض حالات المنع الحالية",
        "ipb-blocklist-contribs": "مساهمات $1",
        "ipb-blocklist-duration-left": "يتبقى $1",
+       "block-actions": "أفعال لمنعها:",
+       "block-expiry": "مدة المنع:",
+       "block-options": "خيارات إضافية:",
+       "block-prevent-edit": "التحرير",
+       "block-reason": "السبب:",
+       "block-target": "اسم المستخدم أو عنوان الآيبي:",
        "unblockip": "رفع المنع عن المستخدم",
        "unblockiptext": "استخدم الاستمارة أدناه لاسترجاع صلاحية الكتابة الخاصة بعنوان أيبي أو مستخدم تم سحبها منه مسبقا.",
        "ipusubmit": "ارفع هذا المنع",
        "tooltip-ca-history": "النسخ السابقة لهذه الصفحة",
        "tooltip-ca-protect": "احم هذه الصفحة",
        "tooltip-ca-unprotect": "غير حماية هذه الصفحة",
-       "tooltip-ca-delete": "احذÙ\81 Ù\87Ø°Ù\87 Ø§Ù\84صÙ\81حة",
+       "tooltip-ca-delete": "حذف هذه الصفحة",
        "tooltip-ca-undelete": "استرجع التعديلات التي تمت على هذه الصفحة قبل حذفها",
        "tooltip-ca-move": "انقل هذه الصفحة",
        "tooltip-ca-watch": "أضف هذه الصفحة إلى قائمة مراقبتك",
        "specialpages-group-developer": "أدوات المطورين",
        "blankpage": "صفحة فارغة",
        "intentionallyblankpage": "هذه الصفحة تركت فارغة عن قصد",
+       "disabledspecialpage-disabled": "تم تعطيل هذه الصفحة من قبل إداري نظام.",
        "external_image_whitelist": " #<pre>اترك هذا السطر تماما كما هو\n#ضع منثورات التعبيرات المنتظمة (فقط الجزء الذي يذهب بين //) بالأسفل\n#هذه ستتم مطابقتها مع مسارات الصور الخرجية (الموصولة بشكل مباشر)\n#هذه التي تطابق سيتم عرضها كصور، غير ذلك فقط وصلة إلى الصورة سيتم عرضها\n#السطور التي تبدأ ب# تتم معاملتها كتعليقات\n#هذا لا يتأثر بحالة الحروف\n\n#ضع كل منثورات التعبيرات المنتظمة فوق هذا السطر. اترك هذا السطر تماما كما هو</pre>",
        "tags": "وسوم التغيير الصحيحة",
        "tag-filter": "مرشح [[Special:Tags|الوسوم]]:",
        "unlinkaccounts": "إزالة ربط الحسابات",
        "unlinkaccounts-success": "الحساب تم فك وصله.",
        "authenticationdatachange-ignored": "تغيير بيانات التحقق لم يتم التعامل معه. ربما لم يتم ضبط موفر؟",
-       "userjsispublic": "'''من فضلك لاحظ:''' صفحات الجافاسكريبت الفرعية لا ينبغي أن تحتوي على بياناتٍ سرية، وذلك لأنه يمكن مشاهدتها بواسطة المستخدمين الآخرين.",
+       "userjsispublic": "من فضلك لاحظ: صفحات الجافاسكريبت الفرعية لا ينبغي أن تحتوي على بياناتٍ سرية، وذلك لأنه يمكن مشاهدتها بواسطة المستخدمين الآخرين.",
        "userjsonispublic": "الرجاء ملاحظة أنه: يجب ألا تحتوي الصفحات الفرعية لجسون على بيانات سرية لأنها قابلة للعرض من قبل المستخدمين الآخرين.",
        "usercssispublic": "من فضل لاحظ: صفحات الCSS الفرعية لا ينبغي أن تحتوي على بيانات سرية بما أنها يمكن رؤيتها بواسطة المستخدمين الآخرين.",
        "restrictionsfield-badip": "عنوان أيبي أو نطاق غير صحيح: $1",
index 7db7cd5..6ee89cf 100644 (file)
        "unblock": "ܫܩܘܠ ܚܪܡܐ ܡܢ ܡܦܠܚܢܐ",
        "blockip": "ܚܪܘܡ ܡܦܠܚܢܐ",
        "ipaddressorusername": "ܐܝ ܦܝ (IP) ܐܘ ܫܡܐ ܕܡܦܠܚܢܐ:",
-       "ipbexpiry": "ܡܬܚܐ ܕܚܪܡܐ:",
        "ipbreason": "ܥܠܬܐ:",
        "ipbsubmit": "ܚܪܘܡ ܡܦܠܚܢܐ ܗܢܐ",
        "ipbother": "ܥܕܢܐ ܐܚܪܢܐ",
        "ipb-unblock-addr": "ܫܩܘܠ ܚܪܡܐ ܡܢ $1",
        "ipb-unblock": "ܫܩܘܠ ܚܪܡܐ ܡܢ ܐܝ ܦܝ (IP) ܐܘ ܫܡܐ ܕܡܦܠܚܢܐ",
        "ipb-blocklist-contribs": "ܫܘܬܦܘ̈ܬܐ ܕ$1",
+       "block-expiry": "ܡܬܚܐ ܕܚܪܡܐ:",
        "unblockip": "ܫܩܘܠ ܚܪܡܐ ܡܢ ܡܦܠܚܢܐ",
        "ipusubmit": "ܫܩܘܠ ܚܪܡܐ ܗܢܐ",
        "unblocked": "ܐܫܬܩܠ ܚܪܡܐ ܡܢ [[User:$1|$1]]",
index 1575109..4f744e2 100644 (file)
        "whatlinkshere-hidelinks": "$1 lasun",
        "whatlinkshere-hideimages": "$1 nülkükawley adentun",
        "whatlinkshere-filters": "Chaytuwe",
-       "ipbexpiry": "Afi",
        "ipbreason": "Dungu:",
        "ipboptions": "2 ora:2 hours,1 aṉtü:1 day,3 aṉtü:3 days,1 semana:1 week,2 semana:2 weeks,1 küyeṉ:1 month,3 küyeṉ:3 months,6 küyeṉ:6 months,1 tripantu:1 year,rumel:infinite",
+       "block-expiry": "Afi",
        "ipblocklist": "Katrütulelu kellufe",
        "ipblocklist-submit": "Kintun",
        "expiringblock": "afi $1 - $2",
index f88647a..f9a01ad 100644 (file)
        "whatlinkshere-filters": "Filter",
        "blockip": "Bloké l-mosṫeĥdim",
        "ipaddressorusername": "Ĝonwan IP ola smiyṫ l-mosṫeĥdim",
-       "ipbexpiry": "Ġayṫqada fe :",
        "ipbreason": "sabab:",
        "ipbcreateaccount": "Mneĝ ĥṫiraĝ ċi ḫsab",
        "ipbemailban": "ma ṫĥelli-ċ l-mosṫĥdim yṣifet ċi imayl",
        "ipb-unblock": "Débloki ċi ḫsab dyal l-mosṫeĥdim ola ĝonwan IP",
        "ipb-blocklist": "Ċof lé-blokaj li fayeṫ kaynin",
        "ipb-blocklist-contribs": "L-Mosahamaṫ dyal $1",
+       "block-expiry": "Ġayṫqada fe :",
        "unblockip": "Débloki ċi mosṫeĥdim ola ċi ĝonwan IP",
        "ipusubmit": "Mḫi l-blokaj",
        "unblocked": "[[User:$1|$1]] ma bqaċ mbloki",
index 26bf913..85d1118 100644 (file)
        "blockip": "بلوك {{GENDER:$1|اليوزر|اليوزره}}",
        "blockiptext": "استخدم الاستمارة اللى تحت لمنع عنوان أيبى أو يوزر معين من الكتابة.\nدا لازم يحصل بس علشان تمنع التخريب ،و على حسب\n[[{{MediaWiki:Policy-url}}|السياسة]].\nاكتب سبب محدد تحت (يعنى مثلا، اكتب الصفحات المعينة اللى اتخربت بسببه).",
        "ipaddressorusername": "عنوان الأيبى أو اسم اليوزر:",
-       "ipbexpiry": "مدة المنع:",
        "ipbreason": "السبب:",
        "ipbreason-dropdown": "*أسباب المنع المشهورة\n** تدخيل معلومات غلط\n** مسح المحتوى من الصفحات\n** سبام لينك لمواقع خارجية\n** كتابة كلام مالوش معنى فى الصفحات\n** سلوك عدواني/تحرش\n** إساءة استخدام اكتر من حسابات\n** اسم يوزر مش مقبول",
        "ipbcreateaccount": "امنع فتح الحسابات",
        "ipb-unblock": "رفع المنع عن يوزر أو عنوان أيبي",
        "ipb-blocklist": "عرض حالات المنع الموجودة دلوقتي",
        "ipb-blocklist-contribs": "مساهمات $1",
+       "block-expiry": "مدة المنع:",
        "unblockip": "رفع منع يوزر",
        "unblockiptext": "استخدم الاستمارة اللى تحت علشان ترجع حق الكتابة بتاعة عنوان أيبى أو يوزر اتسحب منه الحق دا قبل كدا.",
        "ipusubmit": "ارفع المنع دا",
index f905611..c35f46c 100644 (file)
        "blockip": "সদস্য বাৰণ কৰক",
        "blockiptext": "তলৰ প্ৰপত্ৰখন ব্যৱহাৰ কৰি কোনো নিৰ্দিষ্ট আই.পি. ঠিকনা বা সদস্যনামৰ লিখাৰ অধিকাৰ বাৰণ কৰিব পাৰে ।\nকেৱল ধ্বংসপ্ৰৱণতা ৰোধ কৰিবলৈ আৰু [[{{MediaWiki:Policy-url}}|নীতি]] মানি চলি এনে কৰক ।\nতলত এটা নিৰ্দিষ্ট কাৰণ উল্লেখ কৰক (যেনে, ধ্বংসসাধন কৰা পৃষ্ঠাৰ নাম) ।",
        "ipaddressorusername": "আই-পি ঠিকনা বা সদস্যনাম:",
-       "ipbexpiry": "ম্যাদ উকলিব:",
        "ipbreason": "কাৰণ:",
        "ipbreason-dropdown": "*প্ৰতিবন্ধকৰ সাধাৰণ কাৰণসমূহ\n** ভুল তথ্য দিয়া\n** পৃষ্ঠাৰ বিষয়বস্তু আঁতৰাই পেলোৱা\n** কোনো বাহিৰা চাইটলৈ স্পাম সংযোগ দিয়া\n** পৃষ্ঠাত অৰ্থহীন বিষয়বস্তু প্ৰৱেশ কৰোৱা\n** ভীতি উদ্ৰেককাৰী আচৰণ/হাৰাশাস্তি\n** একাধিক একাউণ্টৰ অপব্যৱহাৰ\n** অগ্ৰহণযোগ্য সদস্যনাম",
        "ipb-hardblock": "এই আই.পি. ঠিকনাৰ পৰা প্ৰৱেশ কৰা সদস্যসকলক সম্পাদনা কৰাৰ পৰা ৰোধ কৰক",
        "ipb-unblock": "সদস্যনাম বা আই.পি. ঠিকনাৰ ওপৰত থকা প্ৰতিবন্ধক আঁতৰ কৰক",
        "ipb-blocklist": "বৰ্তমানৰ প্ৰতিবন্ধক চাওক",
        "ipb-blocklist-contribs": "$1ৰ বৰঙণিসমূহ",
+       "block-expiry": "ম্যাদ উকলিব:",
        "unblockip": "সদস্যৰ প্ৰতিবন্ধক উঠাই লওক",
        "unblockiptext": "তলৰ প্ৰপত্ৰখন ব্যৱহাৰ কৰি পূৰ্বে প্ৰতিবন্ধক থকা কোনো আই.পি. ঠিকনা বা সদস্যৰ লিখাৰ অধিকাৰ পুনঃপ্ৰতিষ্ঠা কৰক ।",
        "ipusubmit": "এই বাৰণ উঠাই লওক",
        "feedback-subject": "বিষয়:",
        "feedback-submit": "দাখিল কৰক",
        "feedback-thanks": "ধন্যবাদ ! আপোনাৰ প্ৰতিক্ৰিয়া \"[$2 $1]\" পৃষ্ঠাত প্ৰকাশ কৰা হৈছে।",
+       "feedback-thanks-title": "ধন্যবাদ!",
        "searchsuggest-search": "{{SITENAME}}ত সন্ধান কৰক",
        "searchsuggest-containing": "যি আছে...",
        "api-error-badtoken": "আভ্যন্তৰীণ ত্ৰুটি: ভুল টোকেন।",
index 1e7f552..98a0c13 100644 (file)
        "blockip": "Bloquiar {{GENDER:$1|al usuariu|a la usuaria}}",
        "blockiptext": "Usa'l siguiente formulariu pa bloquiar l'accesu d'escritura a una direición IP o a un usuariu concretu.\nEsto debería facese sólo pa prevenir vandalismu como indiquen les [[{{MediaWiki:Policy-url}}|polítiques]]. Da un motivu específicu (como por exemplu citar páxines que fueron vandalizaes).\nPues bloquiar rangos d'IPs usando la sintaxis [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; el mayor rangu permitíu ye /$1 pa IPv4 y /$2 pa IPv6.",
        "ipaddressorusername": "Direición IP o nome d'usuariu:",
-       "ipbexpiry": "Caducidá:",
        "ipbreason": "Motivu:",
        "ipbreason-dropdown": "*Motivos comunes de bloquéu\n** Enxertamientu d'información falso\n** Dexar les páxines en blanco\n** Enllaces spam a páxines esternes\n** Enxertamientu de babayaes/enguedeyos nes páxines\n** Comportamientu intimidatoriu o d'acosu\n** Abusu de cuentes múltiples\n** Nome d'usuariu inaceutable",
        "ipb-hardblock": "Torgar que los usuarios coneutaos editen dende esta direición IP",
        "ipb-blocklist": "Ver los bloqueos esistentes",
        "ipb-blocklist-contribs": "Collaboraciones de {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "falten $1",
+       "block-expiry": "Caducidá:",
        "unblockip": "Desbloquiar usuariu",
        "unblockiptext": "Usa'l formulariu d'abaxo pa restablecer l'accesu d'escritura a una direicion IP o a un nome d'usuariu previamente bloquiáu.",
        "ipusubmit": "Desaniciar esti bloquéu",
index faa5f87..d72fb8a 100644 (file)
        "underline-always": "Kotviele",
        "underline-never": "Meviele",
        "underline-default": "Omavafa exulexa",
-       "sunday": "taneaviel",
-       "monday": "toleaviel",
-       "tuesday": "bareaviel",
+       "sunday": "Taneaviel",
+       "monday": "Toleaviel",
+       "tuesday": "Bareaviel",
        "wednesday": "balemeaviel",
-       "thursday": "alubeaviel",
-       "friday": "teveaviel",
-       "saturday": "pereaviel",
+       "thursday": "Alubeaviel",
+       "friday": "Teveaviel",
+       "saturday": "Pereaviel",
        "sun": "Tan-",
        "mon": "Tol-",
        "tue": "Bar-",
        "oct": "10-at",
        "nov": "11-at",
        "dec": "12-at",
-       "pagecategories": "{{PLURAL:$1|Loma|Loma}}",
+       "pagecategories": "{{PLURAL:$1|Loma}}",
        "category_header": "Lomolkeem « $1 ».",
        "subcategories": "volveylomeem",
        "category-media-header": "Ewavaf iyeltakeem koe \"$1\" loma",
        "category-empty": "''Bata loma va bu ok ewava noelton me ruldar''.",
-       "hidden-categories": "{{PLURAL:$1|Palsena loma|Palsena loma}}",
+       "hidden-categories": "{{PLURAL:$1|Palsena loma}}",
        "hidden-category-category": "Palsen lomeem",
        "category-subcat-count": "{{PLURAL:$2|Bata loma va bata volveyloma anton digir.|Bata loma va bata volveyloma anton digir {{PLURAL:$1|volveyloma|$1 volveyloma}}, anton digir, ke $2 kotron.}}",
        "category-subcat-count-limited": "Bata loma va {{PLURAL:$1|bata volveyloma|$1 batyona volveyloma}} digir.",
        "mypage": "Jinafu bu",
        "mytalk": "Jinafo keyaksexo",
        "anontalk": "Prilara",
-       "navigation": "Bugrablera",
+       "navigation": "Exulera",
        "and": "&#32;is",
        "faq": "NEB",
        "actions": "Tegira",
        "history_short": "Izvot",
        "updatedmarker": "nuskeyen mali jinafa ironokafa worara",
        "printableversion": "Rorubian siatos",
-       "permalink": "Elupkafi gluyasiki",
+       "permalink": "Elupkafa gluyaxa",
        "print": "Rubiara",
        "view": "Wira",
        "view-foreign": "Va $1 nedil",
        "protect_change": "betara",
        "unprotect": "Betara va nendara",
        "newpage": "Warzafu bu",
-       "talkpagelinktext": "Keyaksera",
+       "talkpagelinktext": "prilara",
        "specialpage": "Aptafu bu",
        "personaltools": "Weltafa xeka",
-       "talk": "Keyaksera",
+       "talk": "Prilara",
        "views": "Wira",
        "toolbox": "Xekak",
        "imagepage": "Wira va iyeltakbu",
        "copyright": "Deraykan cek kare $1.",
        "copyrightpage": "{{ns:project}}:Digirarokeem",
        "currentevents": "Noelaca",
-       "currentevents-url": "Project:Noelafa bifa",
+       "currentevents-url": "Project:Refa bifa",
        "disclaimers": "Walzera",
        "disclaimerpage": "Project:Jadif walzereem",
        "edithelp": "Pomara",
        "ok": "Tuenara",
        "retrievedfrom": "Dimnarin mal « $1 »",
        "youhavenewmessages": "Va $1 ($2) al kazawal.",
+       "youhavenewmessagesfromusers": "Va $1 bas {{PLURAL:$3|ar webesik|$3 webesik}} ($2) {{PLURAL:$4|dikil}}",
        "newmessageslinkplural": "{{PLURAL:$1|warzafa staksa|999=warzafa staksa}}",
        "newmessagesdifflinkplural": "ironokafa {{PLURAL:$1|betara|999=betara}}",
        "youhavenewmessagesmulti": "Rin dil va warzafa staksa moe $1",
        "editlink": "betara",
        "viewsourcelink": "Klitawira",
        "editsectionhint": "Betara va $1 gabot",
-       "toc": "Luzeem",
+       "toc": "Telizeem",
        "showtoc": "nedira",
        "hidetoc": "palsera",
        "thisisdeleted": "Va $1 djunedil oke djudimplekul ?",
        "page-rss-feed": "\"$1\" RSS Rust",
        "page-atom-feed": "\"$1\" Atom Rust",
        "red-link-title": "$1 (me tisu bu)",
-       "nstab-main": "Teliz",
+       "nstab-main": "Bu",
        "nstab-user": "Favesikbu",
        "nstab-media": "Kanaca",
        "nstab-special": "Aptabu",
        "preview": "Abdinedira",
        "showpreview": "Abdinedira",
        "showdiff": "Nedira va betakseem",
-       "anoneditwarning": "'''Obral !''' Rin til medogluyayas. Rinafe IP mane ko bubetarizvot zo stragatar.",
+       "anoneditwarning": "'''Obral !''' Rin til medogluyayan. Rinafe IP mane ko bubetarizvot zo stragatar.  Ede <strong>[$1 va int dogluyal]</strong> oke <strong>[$2 pataredul]</strong>, betaks ik aryona belunda pu rinaf webesikyolt di zo gad.",
        "missingcommenttext": "Va sebuks vlevon bazel, vay !",
        "summary-preview": "Abdinedira va vildeks:",
        "subject-preview": "Abdinedira va detce ik kroj:",
        "blockedtitle": "Elekan favesik",
-       "blockedtext": "'''Rinafa favesikpata oku IP mane tid elekayane.'''\n\nElekara skuyuna gan $1.\nLazava tir ''$2''.\n\n* Elekaratoza : $8\n* Eleckaratena : $6\n* Xialana elekara : $7\n\nTa keyaksera va $1 ok konar [[{{MediaWiki:Grouppage-sysop}}|ristusik]] rotuzeral.\nVa '\"e-mail\" staksara pu bat favesik' me rofavel vaxede \"e-mail\" mane tir koe rinaf [[Special:Preferences|lodamaceem]] ise vaon faveson me zo elekayal.\nRinaf tise IP mane tir $3 ise ID elekara tir #$5. Va bate ik bane mane ko kota erura vay bazel !",
+       "blockedtext": "<strong>Rinafa favesikpata oku IP mane tid elekayane.</strong>\n\nElekara skuyuna gan $1.\nLazava tir <em>$2</em>.\n\n* Elekaratoza : $8\n* Eleckaratena : $6\n* Xialana elekara : $7\n\nTa keyaksera va $1 ok konar [[{{MediaWiki:Grouppage-sysop}}|ristusik]] rotuzeral.\nVa '\"e-mail\" staksara pu bat favesik' me rofavel vaxede \"e-mail\" mane tir koe rinaf [[Special:Preferences|lodamaceem]] ise vaon faveson me zo elekayal.\nRinafe tise IP mane tir $3 isen ID elekara tir #$5.\nVa batyona pinta ko kota erura vay di bazel !!",
        "blockednoreason": "Meka bazena lazava",
        "whitelistedittext": "Ta bubetara rin gonaskil ta $1",
        "confirmedittext": "Abdi bubetara va rinafe e-mail mane gogruyel. Kan rinaf [[Special:Preferences|favesiklodamaceem]] va rinafe e-mail mane vay plekul ise tuenal !",
        "updated": "(Nuskeyen)",
        "note": "'''Straga :'''",
        "previewnote": "'''Obral, bat krent anton tir abdinedik.'''\nRinafa betara men tid giwayan !",
+       "continue-editing": "Ko kosuterak",
        "previewconflict": "Abdinedira nedir va krent ke batu bu inde in giwayanon titir.",
        "editing": "betara va $1",
        "creating": "Koredura va $1",
        "templatesused": "{{PLURAL:$1|Teza|Teza}} favena koe batu bu",
        "templatesusedpreview": "{{PLURAL:$1|favena teza}} koe bata abdinedira :",
        "templatesusedsection": "Faven tezeem koe bat gabot :",
-       "template-protected": "(nendana)",
+       "template-protected": "( nendanu )",
        "template-semiprotected": "(nendamana)",
        "hiddencategories": "Batu bu tir bewafu gu {{PLURAL:$1|1 palsena loma|$1 palsena loma}}:",
        "nocreatetext": "{{SITENAME}} va roredura va warzafu bu irutar.\nRodimal aze va tisu bu robetal oke [[Special:UserLogin|va int rodogluyal oke ropataredul]].",
        "currentrev-asof": "Noeltaf betaks va $1",
        "revisionasof": "Siatos ba $1",
        "revision-info": "Dimplekura va $1 gan {{GENDER:$6|$2}}$7",
-       "previousrevision": "← Abdif siatos",
+       "previousrevision": "← Daref siatos",
        "nextrevision": "Radimif siatos →",
        "currentrevisionlink": "Wira va noelaf siatos",
        "cur": "noel-",
        "compareselectedversions": "Dodisukera va toloy reban siatos",
        "showhideselectedversions": "Nedira/palsera va reban betaks",
        "editundo": "dimaskira",
+       "diff-empty": "( me amidaca )",
        "diff-multi-sameuser": "( {{PLURAL:$1|Tanoya walifa betara|$1 walifa betara}} gan mil menedin favesik )",
-       "searchresults": "Aneyaradanekseem",
-       "searchresults-title": "Aneyaratrasiks va \"$1\"",
+       "searchresults": "Aneyan trasikseem",
+       "searchresults-title": "Aneyatrasiks va \"$1\"",
        "titlematches": "Vadjesaceem vanmia vergumvelteem",
        "textmatches": "Vadjesaceem ko krenteem",
        "notextmatches": "Mek krentvergumvelt ruldas va erune",
        "nextn": "{{PLURAL:$1|$1}} radimef",
        "prevn-title": "Abdif $1 {{PLURAL:$1|trasiks|trasiks}}",
        "nextn-title": "Kaikef $1 {{PLURAL:$1|trasiks|trasiks}}",
-       "shown-title": "Nedira va $1 {{PLURAL:$1|trasiks|trasiks}} tanbuon",
+       "shown-title": "Nedira va $1 {{PLURAL:$1|trasiks}} tanbuon",
        "viewprevnext": "Va ($1 {{int:pipe-separator}} $2) ik ($3) disukel.",
        "searchmenu-exists": "'''Ixam bu yoltkirafu gu \"[[:$1]]\" dene bati wiki.'''",
        "searchmenu-new": "<strong>Redura va bu \"[[:$1]]\" den bati wiki!</strong> {{PLURAL:$2|0=|Va aneyayanu az trasiyinu bu dere wil. Va trasiyin daneks ke aneyara dere wil.}}",
        "searchprofile-advanced": "Lof",
        "searchprofile-articles-tooltip": "Aneyara ko $1",
        "searchprofile-images-tooltip": "Aneyara va iyeltak",
-       "searchprofile-everything-tooltip": "Aneyara va kotaf cek (don prilarabu)",
+       "searchprofile-everything-tooltip": "Aneyara va kotaf cek ( don prilarabu )",
        "searchprofile-advanced-tooltip": "Aneyara ko pilkovafo yoltxo",
-       "search-result-size": "$1 ({{PLURAL:$2|1 trogarn|$2 trogarn}})",
+       "search-result-size": "$1 ({{PLURAL:$2|1 ravlem|$2 ravlem}})",
        "search-result-category-size": "{{PLURAL:$1|1 bewik|$1 bewik}} ({{PLURAL:$2|1 volveyloma|$2 volveyloma}}, {{PLURAL:$3|1 iyeltak|$3 iyeltak}})",
        "search-redirect": "( graskara male $1 )",
        "search-section": "($1 gabot)",
        "show": "nedira va",
        "minoreditletter": "b",
        "newpageletter": "W",
-       "boteditletter": "s",
+       "boteditletter": "st",
        "number_of_watching_users_pageview": "[$1 nedis {{PLURAL:$1|favesik|favesik}}]",
        "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} radimi betara",
        "newsectionsummary": "/* $1 */ warzaf gabot",
        "rc-enhanced-expand": "Pintanedira (JavaScript tir adraf)",
        "rc-enhanced-hide": "Pintapalsera",
+       "rc-old-title": "Wetce \"$1\" taneon reduyun",
        "recentchangeslinked": "Gluyasikisuzdara",
        "recentchangeslinked-feed": "Gluyasikisuzdara",
-       "recentchangeslinked-toolbox": "Gluyasikisuzdara",
+       "recentchangeslinked-toolbox": "Skedan betaks",
        "recentchangeslinked-title": "Betakseem skedas va \"$1\"",
        "recentchangeslinked-summary": "Va buyolt bazel enide va betara va kotu bu gluyaxakirafu di wil. ( Witison va bewa ke loma, pune {{ns:category}}:Yolt ke loma bazel). Betaks ke bu koe [[Special:Watchlist|rinafa suzdaxa]] tid '''vastaakorafu'''.",
        "recentchangeslinked-page": "Buyolt :",
        "recentchangeslinked-to": "Nedira va bueem gluyarakirafu gu batu bu ikaon",
-       "upload": "Iyeltakkalvajara",
+       "upload": "Kalvajara va iyeltak",
        "uploadbtn": "Va iyeltak kalvajá",
        "reuploaddesc": "Empara va kalvajara nume dimpira",
        "uploadnologin": "Dogluyariskaf",
        "listfiles_count": "Siatos",
        "file-anchor-link": "Ewava",
        "filehist": "Iyeltakizvot",
-       "filehist-help": "Ta da va iyeltak wil dum in batoulon awir va evla/bartiv vulegal !",
+       "filehist-help": "Witison va iyeltak inde in banugale awir, va evla/bartiv vulegal !!",
        "filehist-deleteall": "Sulara va kotcoba",
        "filehist-deleteone": "Sulara",
        "filehist-revert": "dimplekura",
-       "filehist-current": "noeltaf",
+       "filehist-current": "ref",
        "filehist-datetime": "Evla/Bartiv",
        "filehist-thumb": "Aluk",
        "filehist-thumbtext": "Aluk va siatos ke $1",
+       "filehist-nothumb": "Mek aluk",
        "filehist-user": "Favesik",
        "filehist-dimensions": "Lumeem",
        "filehist-filesize": "Iyeltakaldo",
        "linkstoimage": "Valevefa {{PLURAL:$1|bugluyaxa|$1 bugluyaxa}} va bat iyeltak :",
        "nolinkstoimage": "Meku bu va bata ewava ruldar.",
        "morelinkstoimage": "Rupera va [[Special:WhatLinksHere/$1|lofi skedasiki]] va bat iyeltak.",
+       "linkstoimage-redirect": "$1 ( graskara va iyeltak ) $2",
        "duplicatesoffile": "Bat {{PLURAL:$1|iyeltak tir|$1 iyeltak tid}} jontolaca ke bat iyeltak ([[Special:FileDuplicateSearch/$2|lo pinta]]) :",
        "sharedupload": "Bat iyeltak tir ke $1 ise gan ar abdumimaks zo rofaver.",
-       "sharedupload-desc-here": "Bat iyeltak tir mal $1 ise gan yonar abdumimaks rotir zo faver.\nPimtara moe inafu [$2 iyeltakbu] vleveon zo nedir.",
+       "sharedupload-desc-here": "Bat iyeltak tir mal $1 ise gan yonar abdumimaks rotir zo faver.\nPimtara moe inafu [$2 iyeltakbu] valeveon zo nedir.",
+       "filepage-nofile": "Mek iyeltak vas man yolt krulder",
        "uploadnewversion-linktext": "Kalvajara va warzaf siatos ke bat iyeltak",
        "upload-disallowed-here": "Va bat iyeltak me romosutel",
        "filerevert": "Dimplekura va $1",
        "doubleredirects": "Jontolafa graskara",
        "doubleredirectstext": "<b>Attention:</b> cette liste peut contenir des « faux positifs ». Dans ce cas, c'est probablement la page du premier #REDIRECT contient aussi du texte.<br />Chaque ligne contient les liens à la 1re et 2e page de redirection, ainsi que la première ligne de cette dernière, qui donne normalement la « vraie » destination. Le premier #REDIRECT devrait lier vers cette destination.",
        "double-redirect-fixed-move": "arrundayan [[$1]], dure graskan kal [[$2]]",
+       "double-redirect-fixer": "Va graskara gotur",
        "brokenredirects": "Arlizafa graskaraja yo",
        "brokenredirectstext": "Kal metisu bu bata graskara stad :",
        "brokenredirects-edit": "betara",
        "withoutinterwiki-legend": "Abdueosta",
        "withoutinterwiki-submit": "Nedira",
        "fewestrevisions": "Tel lebetayan bueem",
-       "nbytes": "$1 {{PLURAL:$1|octet|octet}}",
+       "nbytes": "$1 {{PLURAL:$1|octet}}",
        "ncategories": "$1 loma",
        "nlinks": "$1 {{PLURAL:$1|gluyasiki|gluyasiki}}",
        "nmembers": "$1 {{PLURAL:$1|bewik}}",
        "allpagessubmit": "Tuená",
        "allpagesprefix": "Nedira va bueem tozakiraf gu :",
        "allpages-bad-ns": "{{SITENAME}} va \"$1\" yoltxo me digir.",
+       "allpages-hide-redirects": "Va graskara palser",
        "categories": "Bulomeem",
        "categoriespagetext": "Radimiasa loma se moe wiki krulded.\n[[Special:UnusedCategories|Unused categories]] are not shown here.\nAlso see [[Special:WantedCategories|wanted categories]].",
        "categoriesfrom": "Nedira va loma tozakirafa gu :",
        "emailccsubject": "Ksudaks va rinafa staksa van $1 : $2",
        "emailsent": "Staksanaca",
        "emailsenttext": "Staksanhara.",
+       "usermessage-editor": "Vexala dem bolkstakseem",
        "watchlist": "Suzdaxa",
        "mywatchlist": "Jinaf suzdakseem",
        "watchlistfor2": "Va $1 $2",
        "watchlist-details": "{{PLURAL:$1|$1 bu}} dene rinafa suzdaxa rade prilarabueem.",
        "wlheader-enotif": "Email walzera tir tegisa.",
        "wlheader-showupdated": "Bu betayanu mali rinafa ironokafa worara tir <strong>sulatcalakorafu</strong>.",
-       "wlnote": "Valeveon tid <strong>$1</strong> ironokafa betara mali <strong>$2</strong> ironokaf bartiv, wetce ra ke $3, $4.",
+       "wlnote": "Valeveon tigid <strong>$1</strong> bocafa betara mali {{PLURAL:$2|ironokaf bartiv|<strong>$2</strong> ironokaf bartiv}}, wetce ra ke $3, $4.",
        "wlshowlast": "Nedira va ironokaf $1 bartiv isu $2 viel",
        "watchlist-options": "Suzdasikiolkeem",
        "watching": "Nedis...",
        "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",
        "rollbacklink": "nabildara",
+       "rollbacklinkcount": "tumeara va $1 {{PLURAL:$1|betara}}",
        "rollbackfailed": "Rodjeyesa nabildara",
        "cantrollback": "Impossible de révoquer : dernier auteur est le seul à avoir modifié cet article",
        "alreadyrolled": "Dimplekura va ironokafa betara va \"$1\" teliz gan [[User:$2|$2]] ([[User talk:$2|Prilara]]) me zo roskur; artan va teliz ixam al betar oke al dimplekur.\n\nIronokafa betara gan [[User:$3|$3]] ([[User talk:$3|Prilara]]) zo skuyur.",
        "tooltip-invert": "Palseteson va betaks ke bu koe rewano yoltxo ( is gesiano yoltxo todon gu ene ), va bat bor prakel",
        "namespace_association": "Gesiano yoltxo",
        "tooltip-namespace_association": "Prakera va bat bor, va prilaxo ok refo yoltxo gesiano dere di kodoplekur",
-       "blanknamespace": "(Nelkaxo)",
+       "blanknamespace": "( Nelkaxo )",
        "contributions": "webereem ke {{GENDER:$1|Favesik}}",
        "contributions-title": "Favesikwebekseem icde $1",
        "mycontris": "Jinaf webekseem",
        "sp-contributions-toponly": "Antafa nedira va ironokaf betakseem",
        "sp-contributions-newonly": "Antafa nedira va ironokaf redukseem",
        "sp-contributions-submit": "Aneyara",
-       "whatlinkshere": "Gluyarakiraf bueem",
+       "whatlinkshere": "Gluyan bueem",
        "whatlinkshere-title": "Bu gluyasu va \"$1\"",
        "whatlinkshere-page": "Bu :",
        "linkshere": "Van batu bu vlevef bueem va gluyasiki ruldar : '''$2'''",
        "blockip": "Elekara va IP mane ok favesik",
        "blockiptext": "Ta suterafa elekara va vansara male pilkovafe IP mane ok favesikyolt va vlevefa erurateza favel !\nMana sabegara zo goskur ta weyonara va cidara is dotrakason va [[{{MediaWiki:Policy-url}}|gotarkan vexeem]].\nVa lazavanha (tulon ozwason va cidayanu bu se) vlevon bazel !",
        "ipaddressorusername": "IP mane ok favesikyolt",
-       "ipbexpiry": "Elekaracek",
        "ipbreason": "Elekaradanda :",
        "ipbcreateaccount": "Djira va pataredura",
        "ipbemailban": "Djira va favesik icde \"email\" staksera",
        "ipb-unblock": "Dimelekara va favesikyolt ok IP mane",
        "ipb-blocklist": "Wira va tis elekareem",
        "ipb-blocklist-contribs": "Webereem ke $1",
+       "block-expiry": "Elekaracek",
        "unblockip": "Grielekara va IP mane",
        "unblockiptext": "Ta dimplekura va rosutera va vlevef valdig favel\nmale abdion elekayane IP mane.",
        "ipusubmit": "Grielekara va bate mane",
        "tooltip-pt-login": "Pataredura zo koldar voxe me tir vrebafa.",
        "tooltip-pt-logout": "Voldogluyara",
        "tooltip-pt-createaccount": "Gopataredul aze pilkomodal ; voxe me zo gonaskil",
-       "tooltip-ca-talk": "Keyaksera va telizbu",
+       "tooltip-ca-talk": "Prilara va telizbu",
        "tooltip-ca-edit": "Bubetara",
        "tooltip-ca-addsection": "Bokara va warzaf gabot",
        "tooltip-ca-viewsource": "Batu bu zo nendar. Rin va klita rowil.",
-       "tooltip-ca-history": "Abdif siatoseem ke batu bu.",
+       "tooltip-ca-history": "Daref siatoseem ke batu bu.",
        "tooltip-ca-protect": "Nendara va batu bu",
        "tooltip-ca-delete": "Sulara va batu bu",
        "tooltip-ca-undelete": "Dimplekura va betakseem va batu bu abdi sulara",
        "tooltip-ca-move": "Arrundara va batu bu",
-       "tooltip-ca-watch": "Kosuzdasikira va batu bu",
+       "tooltip-ca-watch": "Kosuzdaxara va batu bu",
        "tooltip-ca-unwatch": "Divsuzdasikira va batu bu",
-       "tooltip-search": "Aneyara vanmia bati wiki",
-       "tooltip-search-go": "Ede bu dem bat tageltaf yolt tir kalon grablé",
+       "tooltip-search": "Aneyara va {{SITENAME}}",
+       "tooltip-search-go": "Ede bu dem bat yoltack tir, pune kalfí",
        "tooltip-search-fulltext": "Aneyara va bu dem bat krent",
-       "tooltip-p-logo": "Emudexo",
-       "tooltip-n-mainpage": "Va emudexo woral !",
-       "tooltip-n-mainpage-description": "Va emudexo woral !",
-       "tooltip-n-portal": "Icde abdumimaks, gonaskinaceem ise lize rotrasil",
-       "tooltip-n-currentevents": "Trasira va icdefa giva icde noeltaf bifeem",
-       "tooltip-n-recentchanges": "Noeltaf betakseem koe wiki.",
+       "tooltip-p-logo": "Va emudexo woral !!",
+       "tooltip-n-mainpage": "Va emudexo woral !!",
+       "tooltip-n-mainpage-description": "Va emudexo woral !!",
+       "tooltip-n-portal": "Icde abdumimaks, gonaskinaceem isen lize rotrasil",
+       "tooltip-n-currentevents": "Trasira va icdefa giva icde ref bifeem",
+       "tooltip-n-recentchanges": "Noeltaf betakseem dene wiki.",
        "tooltip-n-randompage": "Vajara va xuyavafu bu",
        "tooltip-n-help": "Trasixo.",
        "tooltip-t-whatlinkshere": "Batliz gluyas wikibueem",
        "tooltip-t-upload": "Kalvajara va iyeltak",
        "tooltip-t-specialpages": "Aptabueem",
        "tooltip-t-print": "Rorubian siatos ke batu bu",
-       "tooltip-t-permalink": "Elupkafi gluyasiki va bat busiatos",
-       "tooltip-ca-nstab-main": "Rupera va cekbu",
+       "tooltip-t-permalink": "Elupkafa gluyaxa va bat busiatos",
+       "tooltip-ca-nstab-main": "Rupera va teliz",
        "tooltip-ca-nstab-user": "Wira va favesikbu",
        "tooltip-ca-nstab-media": "Wira va kanacabu",
        "tooltip-ca-nstab-special": "Batu bu tir aptafu numen zo robetar",
        "tooltip-ca-nstab-mediawiki": "Wira va bolkstaksa",
        "tooltip-ca-nstab-template": "Wira va teza",
        "tooltip-ca-nstab-help": "Wira va pomarabu",
-       "tooltip-ca-nstab-category": "Wira va loma bu",
+       "tooltip-ca-nstab-category": "Wira va lomabu",
        "tooltip-minoredit": "Va bat betamaks tcalá",
        "tooltip-save": "Va jinaf betaks giwá",
        "tooltip-preview": "Va rinaf betakseem abdinedil, abdi da giwal va batcoba vay favel !",
        "tooltip-watch": "Ko intafi suzdasiki va batu bu loplekú",
        "tooltip-recreate": "Tolredura va bu damo abdifa sulara",
        "tooltip-upload": "Kalvajara",
-       "tooltip-rollback": "\"Rollback\" kan tanoya vulegara va betaks va batu bu kal ironokaf webesik kuider",
+       "tooltip-rollback": "\"Rollback\" kan tanoya vulegara va betaks va batu bu kal daref webesik kuider",
        "tooltip-undo": "\"Dimbetara\"  va bata betara kuider ise va tazukasiki abdiwison fenkur.\nIse va bazera va lazava ko vildeks nover.",
        "tooltip-summary": "Va vildeksam bazel",
        "anonymous": "Yoltiskaf {{PLURAL:$1|favesik|favesik}} va {{SITENAME}}",
        "spambot_username": "Tucuara va MediaWiki \"spam\"\nMediaWiki spam cleanup",
        "spam_reverting": "Dimplekura va ironokaf siatos meruldas va gluyasiki do $1",
        "spam_blanking": "Kot betaks ruldas va gluyasiki do $1, tuvlardara",
+       "simpleantispam-label": "Kevfusa luzdara.\nKoon <strong>Me</strong> cenkal !!",
        "pageinfo-title": "Giva mu \"$1\"",
        "pageinfo-header-basic": "Omavagiva",
        "pageinfo-header-edits": "Betara va izvot",
        "pageinfo-header-restrictions": "Bunendara",
+       "pageinfo-header-properties": "Bupilkaceem",
        "pageinfo-display-title": "Nedira va vergumvelt",
        "pageinfo-default-sort": "Ledamafa mubesa marna",
        "pageinfo-length": "Bualdo ( ton \"bytes\" )",
        "pageinfo-language": "Buava",
        "pageinfo-content-model": "Buteza",
        "pageinfo-robot-policy": "Stiernafa jlayera",
+       "pageinfo-robot-index": "Rictayan",
+       "pageinfo-robot-noindex": "Volrictan",
        "pageinfo-watchers": "Bubelisikeem",
+       "pageinfo-few-watchers": "Loote $1 {{PLURAL:$1|disukesik}}",
        "pageinfo-redirects-name": "Graskareem va batu bu",
+       "pageinfo-subpages-name": "Veybueem ke batu bu ( ota )",
+       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|graskara}}; $3 {{PLURAL:$3|megraskara}})",
        "pageinfo-firstuser": "Buredusik",
+       "pageinfo-firsttime": "Buredurevla",
        "pageinfo-lastuser": "Ironokaf betasik",
        "pageinfo-lasttime": "Evla ke ironokafa betara",
+       "pageinfo-edits": "Betareem ( ota )",
+       "pageinfo-authors": "Sutesikeem ( ota )",
        "pageinfo-recent-edits": "Noeltaf betareem ( bak daref $1 )",
        "pageinfo-recent-authors": "Noeltaf amidaf askisikeem",
+       "pageinfo-magic-words": "Diolaf {{PLURAL:$1|ravlem}} ( $1 )",
+       "pageinfo-hidden-categories": "Palsena {{PLURAL:$1|loma}} ( $1 )",
+       "pageinfo-templates": "Kodoplekuna {{PLURAL:$1|teza}} ($1)",
        "pageinfo-toolboxlink": "Bugiva",
+       "pageinfo-contentpage": "Patanu wetce cekkirafu bu",
+       "pageinfo-contentpage-yes": "Gue / en",
        "markaspatrolleddiff": "Marquer comme vérifiée",
        "markaspatrolledtext": "Marquer cet article comme vérifié",
        "markedaspatrolled": "Marqué comme vérifié",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|bu|bu}}",
        "file-info": "iyeltakaldo : $1, MIME ord : $2",
        "file-info-size": "$1 × $2 pixel, iyeltakaldo : $3, MIME ord : $4",
+       "file-info-size-pages": "$1 × $2 pixel, iyeltakaldo : $3, MIME ord : $4, $5 {{PLURAL:$5|bu}}",
        "file-nohires": "Me roderaykan logijaf lum.",
        "svg-long-desc": "SVG iyeltak, prekson $1 × $2 pixels, iyeltakaldo : $3",
        "show-big-image": "Xantaf iyeltak",
        "show-big-image-preview": "Lum ke bata abdiwira : $1.",
+       "show-big-image-other": "Ar {{PLURAL:$2|goraks}}: $1.",
        "show-big-image-size": "$1 × $2 px",
        "newimages": "Warzaf ewaviyeltak yo",
        "imagelisttext": "Tir vexala dem '''$1''' {{PLURAL:$1|iyeltak|iyeltak}} $2 pulana.",
        "watchlistedit-raw-done": "Rinafi suzdasiki su zo nusker.",
        "watchlistedit-raw-added": "$1 vergumvelt su zo loplekud :",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 vergumvelt al zo arrundar |$1 vergumvelt al zo arrundad}} :",
+       "watchlisttools-clear": "Tunedara va suzdakseem",
        "watchlisttools-view": "Wira va icdef betakseem",
        "watchlisttools-edit": "Wira va suzdasiki isu betara",
        "watchlisttools-raw": "Betara va suzdasiki",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|prilaxo]])",
        "duplicate-defaultsort": "'''OBRAL !''' \"$2\" omavafa muberamarna va \"$1\" tela abdifa selur.",
        "version": "Siatos",
        "version-extensions": "Inkeyeni divatcesiki se",
        "version-software": "Inkeyen talpeyot",
        "version-software-product": "Warzeks",
        "version-software-version": "Siatos",
+       "redirect-submit": "Skú !",
+       "redirect-lookup": "Dizvera :",
+       "redirect-value": "Voda",
+       "redirect-user": "ID ke webesik",
+       "redirect-page": "ID ke bu",
+       "redirect-revision": "Buageltara",
+       "redirect-file": "Iyeltakyolt",
        "fileduplicatesearch": "Aneyara va jontolaf iyeltak",
        "fileduplicatesearch-filename": "Iyeltakyolt :",
        "fileduplicatesearch-submit": "Aneyara",
        "blankpage": "Butuvlardara",
        "tag-filter": "[[Special:Tags|Tag]] espara:",
        "tag-list-wrapper": "[[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2",
+       "tags-active-yes": "Gue / en",
+       "tags-active-no": "Volgue / me",
+       "tags-hitcount": "$1 {{PLURAL:$1|betaks}}",
        "logentry-delete-delete": "$1 {{GENDER:$2|sulayanu}} $3 bu",
+       "logentry-delete-restore": "$1 {{GENDER:$2|dimplekuyunu}} $3 bu ko $4",
+       "revdelete-content-hid": "Palsen cek",
        "revdelete-restricted": "irutara rewana pu ristusik",
        "revdelete-unrestricted": "irutara tiolteyena pu ristusik",
        "logentry-move-move": "$1 {{GENDER:$2|arbureyenu}} $3 bu ko $4",
+       "logentry-move-move-noredirect": "$1 {{GENDER:$2|arrundayanu}} bu $3 ik $4, videson va graskara",
+       "logentry-move-move_redir": "$1 {{GENDER:$2|arrundayanu}} bu $3 ik $4, seluson va graskara",
+       "logentry-patrol-patrol-auto": "$1 mivaskon {{GENDER:$2|tcalayana}} ageltara $4 ke bu $3 fieyenu",
        "logentry-newusers-create": "$1 favesikpata ba {{GENDER:$2|toma zo reduyur}}",
+       "logentry-newusers-autocreate": "$1 webesikpata mivaskon {{GENDER:$2|zo reduyud}}",
        "logentry-upload-upload": "$1 {{GENDER:$2|kalvajayan}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|kalvajayan}} va warzaf siatos ke $3",
        "rightsnone": "(mek)",
        "searchsuggest-search": "Va {{SITENAME}} betar",
        "duration-days": "$1 {{PLURAL:$1|viel}}"
index 263acde..d239129 100644 (file)
        "blockip": "{{GENDER:$1|सदस्य}}",
        "blockiptext": "विशिष्ठ IP पते अथवा सदस्य नाम को लिखने के अधिकार से बाध्य करने के लिए निम्न पत्र का प्रयोग करें।\nयह सिर्फ बर्बरता को रोकने के लिए ही किया जाना चाहिए, और [[{{MediaWiki:Policy-url}}|नीति]] के अनुसार ही करना चाहिए।\nनीचे विशिष्ठ कारण भी लिखें (उदाहरण के लिए, सटीक पृष्ठों को दर्शाते हुए, जिनमें बर्बरता की गई हो)।",
        "ipaddressorusername": "आईपी एड्रेस या सदस्यनाँव:",
-       "ipbexpiry": "समाप्ति:",
        "ipbreason": "कारण:",
        "ipbreason-dropdown": "*अवरोधित करने के साधारण कारण\n** अवैध सदस्यनाम\n** एक से अधिक खातें खोलकर उनका दुरुपयोग करना\n** गलत जानकारी भरना\n** पृष्ठों में कचरा भरना\n** पृष्ठों से सामग्री हटाना‍‍‍‍‍\n** बाहरी जालस्थलों की फ़ालतू कड़ियां देना \n** सदस्यों को तंग करना",
        "ipb-hardblock": "सत्राराम्भित प्रयोक्ताओं को इस आईपी पते का सम्पादन करने से रोकें",
        "ipb-unblock": "सदस्य या आईपी एड्रेस कय अनब्लॉक करा जाय",
        "ipb-blocklist": "सद्य ब्लॉक देखा जाय",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} कय योगदान",
+       "block-expiry": "समाप्ति:",
        "unblockip": "सदस्य कय अवरोध हटावा जाय।",
        "unblockiptext": "पहले ब्लॉक किये हुए आईपी एड्रेस या सदस्यनाम को अनब्लॉक करने के लिये नीचे दिया गया फार्म भरें।",
        "ipusubmit": "इ अवरोध हटावा जाय",
index 9c55e0e..a1f1974 100644 (file)
        "mycontris": "Fəaliyyətim",
        "anoncontribs": "Fəaliyyətim",
        "contribsub2": "{{GENDER:$3|$1}} ($2) adlı istifadəçinin fəaliyyəti",
+       "contributions-userdoesnotexist": "\"$1\" adlı istifadəçi qeydiyyatdan keçməyib.",
        "nocontribs": "Bu kriteriyaya uyğun redaktələr tapılmadı",
        "uctop": "hal-hazırkı",
        "month": "Ay",
        "unblock": "İstifadəçinin blokunu götür",
        "blockip": "{{GENDER:$1|İstifadəçini}} blokla",
        "ipaddressorusername": "IP-ünvanı və ya istifadəçi adı",
-       "ipbexpiry": "Bitmə müddəti:",
        "ipbreason": "Səbəb:",
        "ipbreason-dropdown": "*Bloklama səbəbləri:\n** Yalan məlumatların əlavə edilməsi\n** Səhifənin məzmununun silinməsi\n** Xarici saytlara spam-keçidlər\n** Səhifəyə mənasız və yararsız əlavələrə görə\n** Hədə və təqiblərə görə\n** Təhqirə görə\n** Çoxsaylı hesabdan sui istifadəyə görə\n** Qadağan olunmuş istifadəçi adına görə",
        "ipbcreateaccount": "Hesab açmanı məhdudlaşdır",
        "ipb-unblock": "Bloku götür",
        "ipb-blocklist": "Mövcud blokları göstər",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} istifadəçi hesabının fəaliyyətləri",
+       "block-expiry": "Bitmə müddəti:",
        "unblockip": "İstifadəçinin blokunu götür",
        "unblockiptext": "Əvvəlcədən bloklanmış bir IP ünvanına və ya istifadəçi adına yazma geri vermek için aşağıdakı formadan istifadə edin.",
        "ipusubmit": "Bu bloku götür",
index 3be01da..732a592 100644 (file)
        "blockip": " {{GENDER:$1|ایشلدن}}ی باغلا",
        "blockiptext": "آشاغی‌داکی فورمو ایستیفاده ائده‌رک مۆعیّن بیر آی‌پی‌نین و یا قئیدیات‌دان کئچمیش ایستیفاده‌چی‌نین دییشیک‌لیک ائتمه‌سینی مانعه تؤره‌ده بیلرسینیز. بۇ یالنیز واندالیزمین قارشی‌سینی آلماق اۆچون و [[{{MediaWiki:Policy-url}}|قایدا‌لارا]] اۇیغون اوْلا‌راق ائدیلمه‌لی. آشاغی‌یا مۆطلق قاداغا ایله علاقه‌دار بیر شرح یازین. (اؤرنک:-بۇ-صفحه‌لرده واندالیزم ائتمیشدیر).",
        "ipaddressorusername": "آی‌پی آدرسی یوخسا ایشلدن آدی",
-       "ipbexpiry": "بیتمه مدتی:",
        "ipbreason": "ندن:",
        "ipbreason-dropdown": "*باغلانما سبب‌لری:\n** یالان معلومات‌لارین علاوه ائدیلمه‌سی\n** صحیفه‌نین مزمونونون سیلینمه‌سی\n** خاریجی سایت‌لارا ایسپام-کئچیدلر\n** صحیفه‌یه معنا‌سیز و یارارسیز علاوه‌لره گؤره\n** حده و تعقیب‌لره گؤره\n** تحقیره گؤره\n** چوخسای‌لی حساب‌دان سوی ایستیفاده‌یه گؤره\n** قاداغان اولونموش ایستیفاده‌چی آدینا گؤره",
        "ipb-hardblock": "بو ای پی-ده ایجلاس آچمیش ایستیفاده‌چی‌لرین دییشیک‌لیک ائتمه‌سینی تدبیر",
        "ipb-unblock": "ایستیفاده چی نین یا دا آی پی نین آچیلماسی",
        "ipb-blocklist": "مؤوجود بلوکلاری گؤستر",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} ایشلدن چالیشمالاری",
+       "block-expiry": "بیتمه مدتی:",
        "unblockip": "ایستیفاده‌چی‌نین باغلانماسین گؤتور",
        "unblockiptext": "اولجه‌دن باغلانمیش بیر ای پی عنوانینا و یا ایستیفاده‌چی آدینا یازما گئری وئرمک اوچون آشاغی‌داکی فورمادا ایستیفاده ائدین.",
        "ipusubmit": "بو بلوکو گؤتور",
index 267f658..7fb3b82 100644 (file)
        "blockip": "{{GENDER:$1|Ҡатнашыусыны}} бикләү",
        "blockiptext": "Билдәләнгән IP адрестан яҙыу мөмкинлеген бикләү өсөн, түбәндәге форманы ҡулланығыҙ.\nБыл бары тик вандаллыҡҡа юл ҡуймау өсөн генә һәм [[{{MediaWiki:Policy-url}}|ҡағиҙәләр]] буйынса ғына эшләнергә тейеш.\nТүбәндә бикләү сәбәбен күрһәтегеҙ (мәҫәлән, вандаллыҡ эҙҙәре булған бер нисә биттең цитатаһын килтерегеҙ).$1 $2",
        "ipaddressorusername": "Ҡатнашыусының IP-адресы йәки исеме:",
-       "ipbexpiry": "Тамамлана:",
        "ipbreason": "Сәбәп:",
        "ipbreason-dropdown": "*Ғәҙәттәге бикләү сәбәптәре \n** Ялған мәғлүмәт өҫтәү\n** Биттәрҙең эстәлеген юйыу\n** Тышҡы сайттарға спам-һылтанмалар \n** Биттәргә мәғәнәһеҙ яҙмалар өҫтәү \n** Ҡатнашыусыларға янау (эҙәрлекләү)\n** Бер нисә иҫәп яҙмаһын булдырыу\n** Килешһеҙ иҫәп яҙмаһы",
        "ipb-hardblock": "Был IP-адрестан танылған ҡулланыусыларға мөхәррирләүҙе тыйырға",
        "ipb-blocklist": "Булған бикләүҙәрҙе күрһәтергә",
        "ipb-blocklist-contribs": "$1 ҡатнашыусыһының кереткән өлөшө",
        "ipb-blocklist-duration-left": "$1 ҡалды",
+       "block-expiry": "Тамамлана:",
        "unblockip": "Ҡатнашыусының биген алырға",
        "unblockiptext": "Бикләнгән IP адрестан йәки иҫәп яҙмаһынан яҙыу мөмкинлеген тергеҙеү өсөн, түбәндәге форманы ҡулланығыҙ.",
        "ipusubmit": "Был бикте алырға",
index 9f4fb57..7313f8d 100644 (file)
        "blockip": "IP-Adress/Benytzer sperrn",
        "blockiptext": "Mid dem Formular sperrst a IP-Adress oder an Benytzernåmen, das vo durten aus koane Endarungen mer vurgnumma wern kennan.\nDes soid nur dafoing, um an Vandalismus z' vahindern und in Yweraistimmung mid d' [[{{MediaWiki:Policy-url}}|Richtlinien]].\nGib bittschee an Grund fyr d' Sperrn å.",
        "ipaddressorusername": "IP-Adress oder Benytzernåm:",
-       "ipbexpiry": "Sperrdauer:",
        "ipbreason": "Grund:",
        "ipbreason-dropdown": "* Oigmoahne Sperrgrynd\n** Eihfyng voh voische Informaziónen\n** Laarn voh Seiten\n** Massenweiss Eihfyng voh externe Links\n** Eihstön voh unsinnige Inhoite auf Seiten\n** néd åbrochts Vahoiden\n** Missbrauch mid mererne Benutzerkontós\n** néd geigneter Benutzernåm",
        "ipb-hardblock": "Auhgmödte Benutzer dodrauh hindern, daas Beorweitungen unter derer IP-Adress vurgnummer wern",
        "ipb-unblock": "IP-Adress/Benytzer fraigeem",
        "ipb-blocklist": "Olle aktuöin Sperrn åzaang",
        "ipb-blocklist-contribs": "Benytzerbaiträg vo „$1“",
+       "block-expiry": "Sperrdauer:",
        "unblockip": "IP-Adress fraigeem",
        "unblockiptext": "Mid dem Formular do kååst du a IP-Adress oder an Benytzer fraigeem.",
        "ipusubmit": "Freigem",
index a88f4c3..f5aedb0 100644 (file)
        "blockip": "محدود کتن کاربر",
        "blockiptext": "چه ای فرم جهلی په نوشتن دسترسی په یک خاصین آدرس آی پی یا نام کاربری استفاده کن.\nشی فقط انجام بیت په خاطر جلوگیری چه هرابکاری  په اساس [[{{MediaWiki:Policy-url}}|سیاست]].\nیک حاصین دلیلی بنویس جهلء (مثلا، گوشگ صفخات خاصی که هراب بپتگنت).",
        "ipaddressorusername": "آدرس آي پی یا نام کاربری:",
-       "ipbexpiry": "وهد هلگ:",
        "ipbreason": "دلیل:",
        "ipbreason-dropdown": "* متداولین دلایل محدودیت\n** وارد کتن غلطین اطلاحات\n** زورگ محتوا چه صفحات\n** لینکان اسپمی په دراین سایت\n**وارد کتن بی ربطین/نامفومین چیز په صفحات\n** ترسناکین رفتار/ آزار\n**سوء استفاده چه چنت حساب\n** غیر قابل قبولین نام کاربری",
        "ipbcreateaccount": "مهل حساب شرکنت",
        "ipb-unblock": "نام کاربری یا آدرس آی پی رفع محدودیت کن",
        "ipb-blocklist": "به گند هنوکین محدودیتان",
        "ipb-blocklist-contribs": "مشارکت په $1",
+       "block-expiry": "وهد هلگ:",
        "unblockip": "کاربر رفع محدودیت کن",
        "unblockiptext": "چه ای جهلی فرم استفاده کن په ترینگ دسترسی نوشتن په یک پیشگین آدرس آی پی محدود یا نام کاربری.",
        "ipusubmit": "ای محدودیتءَ بزور",
index 1478169..9534cc8 100644 (file)
        "blockip": "Bagáton {{KASARIAN:$1|paragamit}}",
        "blockiptext": "Gamiton an pormularyo sa babâ para bagaton an pagsurat kan sarong espesipikong IP o ngaran nin parágamit.\nDapat gibohon sana ini para maibitaran vandalismo, asin kompirmi sa [[{{MediaWiki:Policy-url}}|palakaw]].\nMagkaag nin espisipikong rason (halimbawa, magtao nin ehemplo kan mga páhinang rinaot).",
        "ipaddressorusername": "direksyon nin IP o gahâ:",
-       "ipbexpiry": "Pasó:",
        "ipbreason": "Rason:",
        "ipbreason-dropdown": "*Mga komon na rason sa pagbagat\n** Nagkakaag nin salang impormasyon\n** Naghahalî nin mga laog kan páhina\n** Nagkakaag nin mga takod na ''spam'' kan mga panluwas na ''site''\n** Nagkakaag nin kalokohan/ringaw sa mga pahina\n** Gawî-gawing makatakót/makauyám\n** Nag-aabuso nin mga lain-lain na ''account''\n** Dai akong ngaran nin parágamit",
        "ipb-hardblock": "Pugulan an yaon sa laog na mga paragamit na magliliwat gikan kaining IP adres",
        "ipb-unblock": "Bawion an pagbagat nin ngaran nin paragamit o direccion nin IP",
        "ipb-blocklist": "Hilingon an mga presenteng binagat",
        "ipb-blocklist-contribs": "Mga kontribusyon para sa {{KASARIAN:$1|$1}}",
+       "block-expiry": "Pasó:",
        "unblockip": "Paagihon an parâgamit",
        "unblockiptext": "Gamiton an pormulario sa baba para puede giraray suratan an dating binagat na direccion nin IP address o ngaran nin paragamit.",
        "ipusubmit": "Haleon ining bara",
index ffdc4c4..f49baf9 100644 (file)
        "resetpass-abort-generic": "Зьмяненьне паролю было скасаванае пашырэньнем.",
        "resetpass-expired": "Тэрмін дзеяньня вашага паролю скончыўся. Калі ласка, пазначце новы пароль для ўваходу ў сыстэму.",
        "resetpass-expired-soft": "Тэрмін дзеяньня вашага паролю скончыўся і ён патрабуе замены. Калі ласка, абярыце новы пароль цяпер або націсьніце «{{int:authprovider-resetpass-skip-label}}», каб зьмяніць яго пазьней.",
+       "resetpass-validity": "Ваш пароль нядзейны: $1\n\nКалі ласка, вызначце новы пароль для ўваходу ў сыстэму.",
        "resetpass-validity-soft": "Ваш пароль зьяўляецца некарэктным: $1\n\nКалі ласка, абярыце цяпер новы пароль або націсьніце «{{int:authprovider-resetpass-skip-label}}», каб зьмяніць яго пазьней.",
        "passwordreset": "Ачыстка паролю",
        "passwordreset-text-one": "Запоўніце гэтую форму, каб атрымаць часовы пароль электроннай поштай.",
        "blockedtext": "<strong>Ваш рахунак удзельніка ці IP-адрас быў заблякаваны.</strong>\n\nБлякаваньне выканаў $1.\nПрычына гэтага: <em>$2</em>.\n\n* Пачатак блякаваньня: $8\n* Сканчэньне блякаваньня: $6\n* Быў заблякаваны: $7\n\nВы можаце скантактавацца з $1 ці адным зь іншых [[{{MediaWiki:Grouppage-sysop}}|адміністратараў]], каб абмеркаваць блякаваньне. Заўважце, што вы ня зможаце ўжыць магчымасьць «{{int:emailuser}}», пакуль не пазначыце сапраўдны адрас электроннай пошты ў вашых [[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Заўважце, што вы ня зможаце ўжываць магчымасьць «{{int:emailuser}}», пакуль ня будзе пазначаны дзейны адрас электроннай пошты ў вашых [[Special:Preferences|наладах удзельніка]], і калі гэта вам не было забаронена.\n\nВаш цяперашні IP-адрас — $3, ідэнтыфікатар блякаваньня — #$5.\nКалі ласка, улучайце ўсю вышэйпададзеную інфармацыю ва ўсе запыты, што вы будзеце рабіць.",
        "systemblockedtext": "Вашае імя ўдзельніка ці IP-адрас былі аўтаматычна заблякаваныя MediaWiki.\nЗ наступнай прычыны:\n\n:<em>$2</em>\n\n* Пачатак блякаваньня: $8\n* Сканчэньне блякаваньня: $6\n* Мэта блякаваньня: $7\n\nВаш цяперашні IP-адрас — $3.\nКалі ласка, уключайце ўсе пададзеныя вышэй дэталі ва ўсе запыты, што вы робіце.",
+       "actionblockedtext": "Вам забаронена выконваць гэтае дзеяньне.",
        "blockednoreason": "прычына не пазначана",
        "whitelistedittext": "Вам трэба $1, каб рэдагаваць старонкі.",
        "confirmedittext": "Вы мусіце пацьвердзіць Ваш адрас электроннай пошты перад рэдагаваньнем старонак. Калі ласка, пазначце і пацьвердзіце адрас электроннай пошты праз Вашы [[Special:Preferences|налады]].",
        "statistics": "Статыстыка",
        "statistics-header-pages": "Статыстыка старонак",
        "statistics-header-edits": "Статыстыка рэдагаваньняў",
-       "statistics-header-users": "СÑ\82аÑ\82Ñ\8bÑ\81Ñ\82Ñ\8bка Ñ\9eдзелÑ\83",
+       "statistics-header-users": "СÑ\82аÑ\82Ñ\8bÑ\81Ñ\82Ñ\8bка Ñ\9eдзелÑ\8cнÑ\96каÑ\9e",
        "statistics-header-hooks": "Іншая статыстыка",
-       "statistics-articles": "Ð\9aолÑ\8cкаÑ\81Ñ\8cÑ\86Ñ\8c Ñ\81Ñ\82аÑ\80онак Ñ\81а зьместам",
-       "statistics-pages": "Ð\9aолÑ\8cкаÑ\81Ñ\8cÑ\86Ñ\8c Ñ\81Ñ\82аÑ\80онак",
-       "statistics-pages-desc": "Усе старонкі ў вікі, улучна з абмеркаваньнямі, перанакіраваньнямі і г.д.",
-       "statistics-files": "Ð\9aолÑ\8cкаÑ\81Ñ\8cÑ\86Ñ\8c Ð·Ð°Ð³Ñ\80Ñ\83жанÑ\8bÑ\85 Ñ\84айлаÑ\9e",
-       "statistics-edits": "Агульная колькасьць рэдагаваньняў",
+       "statistics-articles": "СÑ\82аÑ\80онкÑ\96 Ð·Ñ\8c зьместам",
+       "statistics-pages": "СÑ\82аÑ\80онкÑ\96",
+       "statistics-pages-desc": "Усе старонкі ў вікі, у тым ліку абмеркаваньні, перанакіраваньні і г. д.",
+       "statistics-files": "Ð\97агÑ\80Ñ\83жанÑ\8bÑ\8f Ñ\84айлÑ\8b",
+       "statistics-edits": "Агульная колькасьць рэдагаваньняў з моманту ўсталяваньня {{grammar:родны|{{SITENAME}}}}",
        "statistics-edits-average": "Сярэдняя колькасьць рэдагаваньняў на старонку",
        "statistics-users": "Зарэгістраваныя ўдзельнікі",
        "statistics-users-active": "Актыўныя ўдзельнікі",
        "blockip": "Заблякаваць {{GENDER:$1|удзельніка|удзельніцу}}",
        "blockiptext": "Наступная форма дазваляе заблякаваць магчымасьць рэдагаваньня з пэўнага IP-адрасу альбо імя ўдзельніка. Гэта трэба рабіць толькі дзеля прадухіленьня вандалізму і згодна з [[{{MediaWiki:Policy-url}}|правіламі]]. Пазначце ніжэй дакладную прычыну (напрыклад, пералічыце асобныя старонкі, на якіх былі парушэньні).\nВы можаце блякаваць IP-дыяпазоны з дапамогай [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]-сынтаксысу; найбольшы дазволены дыяпазоны — гэта /$1 для IPv4 і /$2 для IPv6.",
        "ipaddressorusername": "IP-адрас альбо імя ўдзельніка/ўдзельніцы:",
-       "ipbexpiry": "Тэрмін:",
        "ipbreason": "Прычына:",
        "ipbreason-dropdown": "* Агульныя прычыны блякаваньняў\n** Даданьне ілжывай інфармацыі\n** Выдаленьне зьместу старонак\n** Спам\n** Даданьне бязглузьдзіцы\n** Абразы/пагрозы\n** Злоўжываньне некалькімі рахункамі\n** Недапушчальнае імя ўдзельніка",
        "ipb-hardblock": "Забараніць увайшоўшым удзельнікам рэдагаваць з гэтага IP-адрасу",
-       "ipbcreateaccount": "Ð\97абаÑ\80анÑ\96Ñ\86Ñ\8c Ñ\81тварэньне рахункаў",
-       "ipbemailban": "Ð\97абаÑ\80анÑ\96Ñ\86Ñ\8c Ñ\83дзелÑ\8cнÑ\96кÑ\83 Ð´Ð°Ñ\81Ñ\8bлаÑ\86Ñ\8c Ð»Ñ\96Ñ\81Ñ\82Ñ\8b Ð¿Ð° Ñ\8dлекÑ\82Ñ\80оннай Ð¿Ð¾Ñ\88Ñ\86е",
+       "ipbcreateaccount": "Стварэньне рахункаў",
+       "ipbemailban": "Ð\90дпÑ\80аÑ\9eка Ð»Ñ\96Ñ\81Ñ\82оÑ\9e Ñ\8dлекÑ\82Ñ\80оннай Ð¿Ð¾Ñ\88Ñ\82ай",
        "ipbenableautoblock": "Аўтаматычна блякаваць апошні IP-адрас гэтага ўдзельніка, і ўсіх наступных IP-адрасоў зь якіх ён будзе спрабаваць рэдагаваць",
        "ipbsubmit": "Заблякаваць гэтага ўдзельніка",
        "ipbother": "Іншы тэрмін:",
        "ipboptions": "2 гадзіны:2 hours,1 дзень:1 day,3 дні:3 days,1 тыдзень:1 week,2 тыдні:2 weeks,1 месяц:1 month,3 месяцы:3 months,6 месяцаў:6 months,1 год:1 year,назаўсёды:infinite",
        "ipbhidename": "Схаваць імя ўдзельніка ў рэдагаваньнях і сьпісах",
        "ipbwatchuser": "Назіраць за старонкай удзельніка і яго гутаркамі",
-       "ipb-disableusertalk": "Ð\97абаÑ\80анÑ\96Ñ\86Ñ\8c Ñ\83дзелÑ\8cнÑ\96кÑ\83 Ñ\80Ñ\8dдагаванÑ\8cне Ñ\9eлаÑ\81най Ñ\81Ñ\82аÑ\80онкÑ\96 Ð³Ñ\83Ñ\82аÑ\80ак Ð¿Ð°Ð´Ñ\87аÑ\81 Ð±Ð»Ñ\8fкаванÑ\8cнÑ\8f",
+       "ipb-disableusertalk": "РÑ\8dдагаванÑ\8cне Ñ\9eлаÑ\81най Ñ\81Ñ\82аÑ\80онкÑ\96 Ð³Ñ\83Ñ\82аÑ\80ак",
        "ipb-change-block": "Зьмяніць парамэтры блякаваньня",
        "ipb-confirm": "Пацьвердзіць блякаваньне",
        "ipb-sitewide": "На ўсім сайце",
        "ipb-partial": "Частковая",
-       "ipb-type-label": "Тып",
        "ipb-pages-label": "Старонкі",
        "badipaddress": "Некарэктны IP-адрас",
        "blockipsuccesssub": "Блякаваньне пасьпяховае",
        "ipb-blocklist": "Паказаць існуючыя блякаваньні",
        "ipb-blocklist-contribs": "Унёсак $1",
        "ipb-blocklist-duration-left": "засталося $1",
+       "block-actions": "Дзеяньні для блякаваньня:",
+       "block-expiry": "Тэрмін:",
+       "block-options": "Дадатковыя налады:",
+       "block-prevent-edit": "Рэдагаваньне",
+       "block-reason": "Прычына:",
+       "block-target": "Імя ўдзельніка ці IP-адрас:",
        "unblockip": "Разблякаваць удзельніка",
        "unblockiptext": "Карыстайцеся пададзенай ніжэй формай для аднаўленьня магчымасьці рэдагаваньня для раней заблякаванага IP-адрасу альбо рахунку ўдзельніка.",
        "ipusubmit": "Зьняць гэта блякаваньне",
        "specialpages-group-developer": "Інструмэнты распрацоўшчыка",
        "blankpage": "Пустая старонка",
        "intentionallyblankpage": "Гэтая старонка наўмысна пакінутая пустой",
+       "disabledspecialpage-disabled": "Гэтая старонка была адключаная сыстэмным адміністратарам.",
        "external_image_whitelist": " #Пакіньце гэты радок такім, які ён ёсьць<pre>\n#Зьмясьціце часткі рэгулярных выразаў (толькі частку якая знаходзіцца паміж //) ніжэй\n#Яны будуць суаднесеныя з URL-адрасамі вонкавых выяваў\n#Тыя, якія будуць пасаваць будуць паказвацца як выявы, астатнія толькі як спасылкі\n#Радкі, пазначаныя #, лічыцца камэнтарамі\n#Рэгістар сымбаляў ня ўлічваецца\n\n#Зьмясьціце ўсе часткі рэгулярных выразаў над гэтым радком. Сам радок пакіньце ў такім жа выглядзе</pre>",
        "tags": "Дзейныя меткі зьменаў",
        "tag-filter": "Фільтар [[Special:Tags|метак]]:",
index ab446f2..2089593 100644 (file)
        "showhideselectedversions": "Паказаць/схаваць выбраныя версіі",
        "editundo": "адкат",
        "diff-empty": "(Няма розніцы)",
-       "diff-multi-sameuser": "(Не паказана{{PLURAL:$1|адна прамежкавая версія|$1 прамежкавыя версіі|$1 прамежкавых версій}} таго ж удзельніка)",
+       "diff-multi-sameuser": "(Не паказана {{PLURAL:$1|адна прамежкавая версія|$1 прамежкавыя версіі|$1 прамежкавых версій}} таго ж удзельніка)",
        "diff-multi-otherusers": "(Не паказана {{PLURAL:$1|адна прамежкавая версія|$1 прамежкавыя версіі|$1 прамежкавых версій}} {{PLURAL:$2|яшчэ аднаго ўдзельніка|$2 удзельнікаў}})",
        "diff-multi-manyusers": "({{PLURAL:$1|не паказана $1 прамежкавая версія|не паказаны $1 прамежкавыя версіі|не паказаны $1 прамежкавых версій}}, зробленыя больш чым {{PLURAL:$2|$1 удзельнікам|$2 удзельнікамі}})",
        "diff-paragraph-moved-tonew": "Параграф быў перамешчаны. Клікніце, каб перайсці да новага месцазнаходжання.",
        "right-bigdelete": "Выдаляць старонкі з вялікімі гісторыямі",
        "right-deletelogentry": "Выдаляць і аднаўляць асобныя запісы журналаў",
        "right-deleterevision": "Выдаляць і аднаўляць паасобныя версіі старонак",
-       "right-deletedhistory": "ЧÑ\8bÑ\82аÑ\86Ñ\8c Ñ\81Ñ\86Ñ\91Ñ\80Ñ\82Ñ\8bÑ\8f Ñ\81кладнÑ\96кÑ\96 гісторыі без іх прывязанага тэксту",
-       "right-deletedtext": "Ð\90дкÑ\80Ñ\8bÑ\86Ñ\8c Ð²Ñ\8bдаленÑ\8b Ñ\82Ñ\8dкÑ\81Ñ\82 Ñ\96 Ñ\9eÑ\81е Ð·Ð¼ÐµÐ½Ñ\8b паміж выдаленымі версіямі",
+       "right-deletedhistory": "Ð\9fÑ\80аглÑ\8fд Ð²Ñ\8bдаленÑ\8bÑ\85 Ð·Ð°Ð¿Ñ\96Ñ\81аÑ\9e гісторыі без іх прывязанага тэксту",
+       "right-deletedtext": "Ð\9fÑ\80аглÑ\8fд Ð²Ñ\8bдаленага Ñ\82Ñ\8dкÑ\81Ñ\82Ñ\83 Ñ\96 Ð·Ð¼ÐµÐ½ паміж выдаленымі версіямі",
        "right-browsearchive": "Шукаць у сцёртых старонках",
        "right-undelete": "Аднаўляць старонкі",
        "right-suppressrevision": "Бачыць, хаваць і адкрываць схаваныя асобныя версіі ад усіх удзельнікаў",
        "blockip": "Заблакаваць {{GENDER:$1|удзельніка|удзельніцу}}",
        "blockiptext": "Гэты фармуляр дазваляе заблакаваць магчымасць запісу для пэўнага адрасу IP ці імя ўдзельніка.\nГэта трэба рабіць толькі дзеля засцерагання ад вандалізму і ў адпаведнасці з [[{{MediaWiki:Policy-url}}|правіламі]].\nНіжэй трэба ўпісаць канкрэтную прычыну (напрыклад, пералічваючы канкрэтныя старонкі, якія былі вандалізаваныя).",
        "ipaddressorusername": "IP-адрас ці імя ўдзельніка:",
-       "ipbexpiry": "Згасае:",
        "ipbreason": "Прычына:",
        "ipbreason-dropdown": "*Звычайныя прычыны блоку\n** Упісванне несапраўднай інфармацыі\n** Выдаленне інфармацыі са старонак\n** Спамавыя спасылкі на вонкавыя сайты\n** Упісванне бессэнсоўнай інфармацыі\n** Некультурныя паводзіны/пераследаванне\n** Злоўжыванне некалькімі рахункамі\n** Недапушчальнае імя ўдзельніка",
        "ipb-hardblock": "Забараніць зарэгістраваным удзельнікам рэдагаванне з гэтага IP-адраса",
        "ipb-blocklist": "Паказаць наяўныя блокі",
        "ipb-blocklist-contribs": "Уклад {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "засталося $1",
+       "block-expiry": "Згасае:",
        "unblockip": "Зняць блок з удзельніка",
        "unblockiptext": "З дапамогай формы ніжэй можна вярнуць дазвол на праўкі для раней заблакіраванага IP-адраса або ўдзельніка.",
        "ipusubmit": "Зняць гэты блок",
        "logentry-delete-delete": "$1 {{GENDER:$2|выдаліў|выдаліла}} старонку $3",
        "logentry-delete-delete_redir": "$1 {{GENDER:$2|выдаліў|выдаліла}} перанакіраванне $3 шляхам перазапісу",
        "logentry-delete-restore": "$1 {{GENDER:$2|аднавіў|аднавіла}} старонку $3 ($4)",
+       "logentry-delete-restore-nocount": "$1 {{GENDER:$2|аднавіў|аднавіла}} старонку $3",
        "restore-count-revisions": "{{PLURAL:$1|1 версія|$1 версіі|$1 версій}}",
        "logentry-delete-event": "$1 {{GENDER:$2|змяніў|змяніла}} бачнасць {{PLURAL:$5|запісу журнала|$5 запісаў журнала}} $3: $4",
        "logentry-delete-revision": "$1 {{GENDER:$2|змяніў|змяніла}} бачнасць {{PLURAL:$5|версіі|$5 версій|$5 версій}} старонкі $3: $4",
index 244cca9..0db509d 100644 (file)
        "resetpass-abort-generic": "Промяната на паролата беше прекъсната от използвано разширение.",
        "resetpass-expired": "Срокът на валидност на паролата е изтекъл. Изберете нова парола за влизане.",
        "resetpass-expired-soft": "Вашата парола е изтекла и трябва да бъде променена. Моля, въведете нова парола сега или натиснете бутона \"{{int:authprovider-resetpass-skip-label}}\" за да я промените по-късно.",
+       "resetpass-validity": "Паролата ви е невалидна: $1\n\nЗадайте нова парола за влизане.",
        "resetpass-validity-soft": "Вашата парола е невалидна: $1\n\nМоля, въведете нова парола или натиснете бутона „{{int:authprovider-resetpass-skip-label}}“ за да я промените по-късно.",
        "passwordreset": "Възстановяване на парола",
        "passwordreset-text-one": "Попълването на формуляра ще доведе до възстановяване на паролата.",
        "blockedtext": "'''Вашето потребителско име (или IP-адрес) беше блокирано.'''\n\nБлокирането е извършено от $1. Посочената причина е: ''$2''\n\n*Начало на блокирането: $8\n*Край на блокирането: $6\n*Блокирането се отнася за: $7\n\nМожете да се свържете с $1 или с някой от останалите [[{{MediaWiki:Grouppage-sysop}}|администратори]], за да обсъдите блокирането.\n\nМожете да използвате услугата „{{int:emailuser}}“ само ако не ви е забранена употребата ѝ и ако сте посочили валидна електронна поща в [[Special:Preferences|настройките]] си.\n\nВашият IP адрес е $3, а номерът на блокирането е $5. Включвайте едно от двете или и двете във всяко запитване, което правите.",
        "autoblockedtext": "IP-адресът ви беше блокиран автоматично, защото е бил използван от друг потребител, който е бил блокиран от $1.\nПосочената причина е:\n\n:<em>$2</em>\n\n* Начало на блокирането: $8\n* Край на блокирането: $6\n* Блокирането се отнася за: $7\n\nМожете да се свържете с $1 или с някой от останалите [[{{MediaWiki:Grouppage-sysop}}|администратори]], за да обсъдите блокирането.\n\nМожете да използвате услугата „{{int:emailuser}}“ само ако не ви е забранена употребата ѝ и ако сте посочили валидна електронна поща в [[Special:Preferences|настройките]] си.\n\nТекущият Ви IP-адрес е $3, а номерът на блокирането ви е $5.\nВключвайте ги във всяка заявка, която правите.",
        "systemblockedtext": "Вашето потребителско име или IP адрес беше автоматично блокирано от Медия Уики.\nПосочената причина е:\n\n:<em>$2</em>\n\n* Начало на блокирането: $8\n* Край на блокирането: $6\n* Блокирането се отнася за: $7\n\nВашият текущ IP адрес е $3.\nМоля, включете всичките детайли по-горе, ако правите каквито и да е запитвания.",
+       "actionblockedtext": "Извършването на това действие ви е забранено.",
        "blockednoreason": "не е указана причина",
        "whitelistedittext": "Редактирането на страници изисква $1 в системата.",
        "confirmedittext": "Необходимо е да потвърдите електронната си поща, преди да редактирате страници.\nВъведете и потвърдете адреса си на [[Special:Preferences|страницата с настройките]].",
        "userjsonyoucanpreview": "<strong>Съвет:</strong> Използвайте бутона „{{int:showpreview}}“, за да изпробвате новия код на JSON преди съхранението.",
        "userjsyoucanpreview": "<strong>Съвет:</strong> Използвайте бутона „{{int:showpreview}}“, за да изпробвате новия код на Джаваскрипт преди съхранението.",
        "usercsspreview": "<strong>Не забравяйте, че това е само предварителен преглед на кода на CSS.\nСтраницата все още не е съхранена!</strong>",
+       "userjsonpreview": "<strong>Не забравяйте, че това е само изпробване/предварителен преглед на поставеността на вашия JSON.\nСтраницата все още не е съхранена!</strong>",
        "userjspreview": "<strong>Не забравяйте, че това е само изпробване/предварителен преглед на кода на JavaScript.\nСтраницата все още не е съхранена!</strong>",
        "sitecsspreview": "<strong>Не забравяйте, че това е само предварителен преглед на този CSS.\nТой все още не е съхранен!</strong>",
+       "sitejsonpreview": "<strong>Не забравяйте, че това е само предварителен преглед на тази поставеност на JSON. Той все още не е съхранен!</strong>",
        "sitejspreview": "<strong>Не забравяйте, че това е само предварителен преглед на този JavaScript код.\nТой все още не е съхранен!</strong>",
        "userinvalidconfigtitle": "<strong>Внимание:</strong> Не съществува облик „$1“.\nИмената на потребителски .css, .json и .js страници трябва да използват малки букви, например: {{ns:user}}:Иван/vector.css (а не {{ns:user}}:Иван/Vector.css).",
        "updated": "(обновена)",
        "gender-unknown": "Когато Ви споменава, софтуерът ще използва неутрални думи за пол, когато е възможно",
        "gender-male": "Той редактира уики страниците",
        "gender-female": "Тя редактира уики страниците",
-       "prefs-help-gender": "Установяването на тази настройка не е задължително.\nСофтуерът използва стойността ѝ, за да се обърне към вас съобразно пола Ви.\nТази информация е публично достъпна.",
+       "prefs-help-gender": "Установяването на тази настройка не е задължително.\nСофтуерът използва посочения род, за да се обърне към вас съобразно пола Ви.\nИнформацията ще бъде публично достъпна.",
        "email": "Е-поща",
        "prefs-help-realname": "Истинското име не е задължително.\nАко го посочите, вашите приноси ще бъдат приписани на него.",
        "prefs-help-email": "Електронната поща е незадължителна, но позволява възстановяване на забравена или загубена парола.",
        "sp-contributions-search": "Търсене на приноси",
        "sp-contributions-username": "IP-адрес или потребителско име:",
        "sp-contributions-toponly": "Показване само на последните редакции",
-       "sp-contributions-newonly": "Показване само на редакции за създаването на страници",
+       "sp-contributions-newonly": "Показване само на новосъздадени страници",
        "sp-contributions-hideminor": "Скриване на малки промени",
        "sp-contributions-submit": "Търсене",
        "whatlinkshere": "Какво сочи насам",
        "blockip": "Блокиране на {{GENDER:$1|потребител}}",
        "blockiptext": "Формулярът по-долу се използва, за да се забрани правото на писане на определен IP-адрес или потребителско име.\nТова трябва да се направи само за предотвратяване прояви на вандализъм\nи в съответствие с [[{{MediaWiki:Policy-url}}|политиката за поведение]].\nНеобходимо е да се посочи и причина за блокирането (например заглавия на страници, станали обект на вандализъм).\nМожете да блокирате диапазон от IP-адреси чрез синтаксиса на [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; максималният позволен диапазон е /$1 за IPv4 и /$2 за IPv6.",
        "ipaddressorusername": "IP-адрес или потребителско име:",
-       "ipbexpiry": "Срок:",
        "ipbreason": "Причина:",
        "ipbreason-dropdown": "* Общи причини за блокиране\n** Въвеждане на невярна информация\n** Премахване на съдържание от страниците\n** Добавяне на спам/нежелани външни препратки\n** Въвеждане на безсмислици в страниците\n** Заплашително поведение/тормоз\n** Злоупотреба с няколко потребителски сметки\n** Неприемливо потребителско име",
        "ipb-hardblock": "Спиране на възможността влезли потребители да редактират от този IP-адрес",
-       "ipbcreateaccount": "Ð\97абÑ\80ана Ð·Ð° Ñ\81Ñ\8aздаване Ð½Ð° Ð¿Ð¾Ñ\82Ñ\80ебиÑ\82елÑ\81ки Ñ\81меÑ\82ки",
-       "ipbemailban": "Ð\97абÑ\80ана Ð½Ð° Ð¿Ð¾Ñ\82Ñ\80ебиÑ\82елÑ\8f Ð´Ð° Ð¿Ñ\80аÑ\89а е-поща",
+       "ipbcreateaccount": "СÑ\8aздаване Ð½Ð° Ñ\81меÑ\82ка",
+       "ipbemailban": "Ð\98зпÑ\80аÑ\89ане Ð½а е-поща",
        "ipbenableautoblock": "Автоматично блокиране на последния IP-адрес, използван от потребителя, както и на всички останали адреси, от които се опита да редактира",
        "ipbsubmit": "Блокиране на потребителя",
        "ipbother": "Друг срок:",
        "ipboptions": "два часа:2 hours,един ден:1 day,три дни:3 days,една седмица:1 week,две седмици:2 weeks,един месец:1 month,три месеца:3 months,шест месеца:6 months,една година:1 year,безсрочно:infinite",
        "ipbhidename": "Скриване на потребителското име/IP-адреса от редакциите и дневниците",
        "ipbwatchuser": "Наблюдаване на потребителската страница и беседата на този потребител",
-       "ipb-disableusertalk": "СпиÑ\80ане Ð½Ð° Ð²Ñ\8aзможноÑ\81Ñ\82Ñ\82а Ñ\82ози Ð¿Ð¾Ñ\82Ñ\80ебиÑ\82ел Ð´Ð° Ñ\80едакÑ\82иÑ\80а Ð±ÐµÑ\81едаÑ\82а Ñ\81и Ð´Ð¾ÐºÐ°Ñ\82о Ðµ Ð±Ð»Ð¾ÐºÐ¸Ñ\80ан",
+       "ipb-disableusertalk": "РедакÑ\82иÑ\80ане Ð½Ð° Ñ\81обÑ\81Ñ\82венаÑ\82а Ð´Ð¸Ñ\81кÑ\83Ñ\81ионна Ñ\81Ñ\82Ñ\80аниÑ\86а",
        "ipb-change-block": "Повторно блокиране на потребителя с тези настройки",
        "ipb-confirm": "Потвърждаване на блокирането",
        "badipaddress": "Невалиден IP-адрес",
        "ipb-blocklist": "Преглед на текущите блокирания",
        "ipb-blocklist-contribs": "Приноси на {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "{{PLURAL:$1|остава още $1|остават още $1}}",
+       "block-actions": "Действия за блокиране:",
+       "block-expiry": "Срок:",
+       "block-options": "Допълнителни възможности:",
+       "block-prevent-edit": "Редактиране",
+       "block-reason": "Причина:",
+       "block-target": "Потребителско име или IP-адрес:",
        "unblockip": "Отблокиране на потребител",
        "unblockiptext": "Използвайте долния формуляр, за да възстановите правото на писане на по-рано блокиран IP-адрес или потребител.",
        "ipusubmit": "Сваляне на блокирането",
        "specialpages-group-developer": "Инструменти за разработчици",
        "blankpage": "Празна страница",
        "intentionallyblankpage": "Тази страница умишлено е оставена празна",
+       "disabledspecialpage-disabled": "Тази страница е изключена от системния администратор.",
        "external_image_whitelist": " #Оставете този ред така, както го виждате. <pre>\n#Поставете долу фрагменти от регулярни изрази (само частта между //).\n#Тези фрагменти ще се съпоставят с Интернет адресите на външните (hotlinked) картинки.\n#Картинките, чиито адреси отговарят на вписаните регулярни изрази, ще се визуализират, за останалите ще се появява само връзка.\n#Редовете, започващи с # се възприемат като коментари.\n#Командите са чувствителни на малки и главни букви.\n\n#Слагайте всички фрагменти от регулярни изрази над този ред. Оставете този ред така, както го виждате. </pre>",
        "tags": "Валидни етикети за промени",
        "tag-filter": "Филтър на [[Special:Tags|етикета]]:",
index c75c92e..2adfae0 100644 (file)
        "unblock": "کار زوروکئ انبلاک یا پاچ کورتین",
        "blockip": "{{GENDER:$1|کار زورکئ}} بستین",
        "ipaddressorusername": "آی‌پی ادرس یا کار زوروکئ نام:",
-       "ipbexpiry": "الاسی وخت:",
        "ipbreason": "دلیل:",
        "ipb-hardblock": "دیمگیری شه ایڈیٹ کورتین ئا کار زوروکانئ که شه آی پی نیمگا راجستر بوته انت",
        "ipbcreateaccount": "دیمگیری شه حسابئ جوڑ کورتینا",
        "ipb-unblock": "کار زوروکئ یا آی پی ادرس ئی بلاک ئی پاچ کورتین",
        "ipb-blocklist": "موجودین بلاک ئی دیستین",
        "ipb-blocklist-contribs": "مشارکتان په {{GENDER:$1|$1}}",
+       "block-expiry": "الاسی وخت:",
        "unblockip": "کار زوروکئ انبلاک یا پاچ کورتین",
        "ipusubmit": "ای بلاک ئی پاک کورتین",
        "unblocked": "[[User:$1|$1]] ئی دسترسی پدا پئال بوت",
index f8639cd..e7fbb97 100644 (file)
        "revertmove": "पिछलका स्थिति",
        "delete_and_move_confirm": "हँऽ, पन्ना हटा दिहल जाय",
        "delete_and_move_reason": "\"[[$1]]\" से स्थानांतरण करे खातिर जगह खाली करे बदे हटावल गइल",
-       "selfmove": " टाइटिल ठीक पहिलहीं वाली बा;\nकौनों पन्ना के अपनहीं जगह ना स्थानांतरण कइल जा सकत बा।",
+       "selfmove": "टाइटिल ठीक पहिलहीं वाली बा;\nकौनों पन्ना के अपनहीं जगह ना स्थानांतरण कइल जा सकत बा।",
        "immobile-source-namespace": "\"$1\" नाँवस्थान के पन्ना सभ के स्थानांतरण ना कइल जा सकत बा।",
        "immobile-target-namespace": "\"$1\" नाँवस्थान में पन्ना के स्थानांतरण ना कइल जा सकत बा।",
        "move-leave-redirect": "एगो अनुप्रेषण पाछे छोड़त जाईं",
index 7f1b7a8..df13d46 100644 (file)
        "blockip": "Blukir pamuruk",
        "blockiptext": "Puruk purmulir di bawah hagan mamblukir hak ungkai manulis matan sabuah alamat IP atawa ngaran-pamuruk.\nNgini dipuruk hagan mancagah vandalisma haja, wan sasuai awan [[{{MediaWiki:Policy-url}}|kabijakan]].\nIsi sabuah alasan khas di bawah (gasan cuntuh, manulisakan tutungkaran nang suah divandal)",
        "ipaddressorusername": "Alamat IP atawa ngaran pamuruk:",
-       "ipbexpiry": "Kadaluwarsa:",
        "ipbreason": "Alasan:",
        "ipbreason-dropdown": "*Alasan awam pamblukiran\n** Mambuati panjalasan salah\n** Mambuang isi matan tutungkaran\n** Spam tautan ka luar\n** Mambuati pandiran kusung/ratik ka tutungkaran\n** Parilaku palecehan/intimidasi\n** Panyalahpurukan akun banyak\n** Ngaran-pamuruk kada-kawa-ditarima",
        "ipb-hardblock": "Cagah pamuruk tadaptar gasan mambabak matan alamat IP ngini",
        "ipb-unblock": "Lapas blukir sabuah ngaranpamuruk atawa alamat IP",
        "ipb-blocklist": "Tiringi blukir nang ada",
        "ipb-blocklist-contribs": "Sumbangan gasan $1",
+       "block-expiry": "Kadaluwarsa:",
        "unblockip": "Lapas blukir pamuruk",
        "unblockiptext": "Puruk purmulir di bawah hagan manyimpan-pulang hak ungkai manulai sabuah alamat IP atawa ngaran-pamuruk nang sabalumnya diblukir.",
        "ipusubmit": "Buang blukir ngini",
index 06b2047..238db69 100644 (file)
@@ -38,7 +38,8 @@
                        "এম আবু সাঈদ",
                        "Shahadat1971",
                        "Rasal Lia",
-                       "আফতাবুজ্জামান"
+                       "আফতাবুজ্জামান",
+                       "Tahmid02016"
                ]
        },
        "tog-underline": "সংযোগের নিচে দাগ দেখানো হোক:",
        "resetpass-abort-generic": "পাসওয়ার্ড পরিবর্তন একটি এক্সটেনশনের কারণে স্থগিত করা হয়েছে।",
        "resetpass-expired": "আপনার পাসওয়ার্ডের মেয়াদ উত্তীর্ণ হয়েছে। অ্যাকাউন্টে প্রবেশের জন্য অনুগ্রহ করে নতুন পাসওয়ার্ড নির্ধারণ করুন।",
        "resetpass-expired-soft": "আপনার পাসওয়ার্ডের মেয়াদ উত্তীর্ণ হয়েছে এবং আপনাকে পাসওয়ার্ড পরিবর্তন করতে হবে। অনুগ্রহ করে এখনই একটি নতুন পাসওয়ার্ড নির্ধারণ করুন অথবা পরে পরিবর্তন করতে চাইলে \"{{int:authprovider-resetpass-skip-label}}\" ক্লিক করুন।",
+       "resetpass-validity": "আপনার পাসওয়ার্ডটি বৈধ নয়: $1\n\nপ্রবেশ করতে একটি নতুন পাসওয়ার্ড নির্ধারণ করুন।",
        "resetpass-validity-soft": "আপনার পাসওয়ার্ড বৈধ নয়: $1\n\nদয়া করে একটি নতুন পাসওয়ার্ড চয়ন করুন অথবা পরে করার জন্য \"{{int:authprovider-resetpass-skip-label}}\" ক্লিক করুন।",
        "passwordreset": "পাসওয়ার্ড পুনঃস্থাপন করুন",
        "passwordreset-text-one": "ইমেইলের মাধ্যমে একটি অস্থায়ী পাসওয়ার্ড পেতে এই ফরম পূরণ করুন।",
        "defaultmessagetext": "আদি টেক্সট",
        "content-failed-to-parse": "$1 মডেলের জন্য $2 বিষয়বস্তু পার্স করতে ব্যর্থ হয়েছে: $3",
        "invalid-content-data": "ভুল কন্টেন্ট ডাটা",
-       "content-not-allowed-here": "\"$1\" সামগ্রী [[:$2]] পাতায় অনুমোদিত নয়",
+       "content-not-allowed-here": "\"$1\" সামগ্রী [[:$2]] পাতায় \"$3\" স্লটে অনুমোদিত নয়",
        "editwarning-warning": "এই পাতাটি ত্যাগ করলে আপনার আপনার করা পরিবর্তনগুলো হারিয়ে যেতে পারে।\nআপনি যদি প্রবেশ করা থাকেন, আপনি এই সতর্কীকরণ বার্তাটি আপনার পছন্দের \"সম্পাদনা\" অনুচ্ছেদ থেকে নিস্ক্রিয় করতে পারেন।",
        "editpage-invalidcontentmodel-title": "বিষয়বস্তু মডেল সমর্থিত নয়",
        "editpage-invalidcontentmodel-text": "এই \"$1\" বিষয়বস্তু মডেলটি অসমর্থিত।",
        "blockip": "{{GENDER:$1|ব্যবহারকারীকে}} বাধা দিন",
        "blockiptext": "কোন নির্দিষ্ট আইপি ঠিকানা বা ব্যবহারকারীর লেখার অধিকারে বাধা দিতে নিচের ফর্মটি ব্যবহার করুন।\nএটি কেবলমাত্র ধ্বংসপ্রবণতা প্রতিরোধে ও [[{{MediaWiki:Policy-url}}|নীতিমালা]] মেনে সম্পাদন করা উচিত।\nনিচে একটি নির্দিষ্ট কারণ দিন (উদাহরণস্বরূপ, যেসব পাতার ধ্বংসসাধন করা হয়েছে, সেগুলি উল্লেখ করতে পারেন)।\nআপনি একটি নির্দিষ্ট সীমার অন্তর্গত একাধিক আইপি ঠিকানাকে বাধা দিতে পারেন; এজন্য [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] সিনট্যাক্স বা পদবিন্যাসবিধি ব্যবহার করুন; এরকম বৃহত্তম অনুমোদিত সীমা হচ্ছে IPv4-এর ক্ষেত্রে /$1 এবং IPv6-এর ক্ষেত্রে /$2।",
        "ipaddressorusername": "আইপি ঠিকানা বা ব্যবহারকারীর নাম:",
-       "ipbexpiry": "যখন মেয়াদোত্তীর্ণ হবে:",
        "ipbreason": "কারণ:",
        "ipbreason-dropdown": "*বাধা দানের সাধারণ কারণগুলি\n** মিথ্যা তথ্য যোগ করা\n** পাতা থেকে বিষয়বস্তু মুছে ফেলা\n** অবাঞ্ছিত বহিঃস্থ কোন সাইটের প্রতি সংযোগ বারংবার যোগ করা\n** পাতাগুলিতে অর্থহীন বিষয়বস্তু যোগ করা\n** ভীতি উদ্রেককারী আচরণ/হয়রানি\n** একাধিক অ্যাকাউন্টের অপব্যবহার\n** ব্যবহারকারী নাম অগ্রহণযোগ্য",
        "ipb-hardblock": "প্রবেশকৃত ব্যবহারকারীদেরকে এই আইপি ঠিকানা থেকে সম্পাদনায় বাধা দিন",
-       "ipbcreateaccount": "à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9f à¦¸à§\83ষà§\8dà¦\9fিতà§\87 à¦¬à¦¾à¦§à¦¾ à¦¦à§\87à¦\93য়া à¦¹à§\8bà¦\95",
-       "ipbemailban": "বà§\8dযবহারà¦\95ারà§\80à¦\95à§\87 à¦\87-মà§\87à¦\87ল à¦ªà¦¾à¦ à¦¾à¦¤à§\87 à¦¬à¦¾à¦§à¦¾ à¦¦à§\87à¦\93য়া à¦¹à§\8bà¦\95",
+       "ipbcreateaccount": "à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9f à¦¸à§\83ষà§\8dà¦\9fিà¦\95রণ",
+       "ipbemailban": "à¦\87মà§\87à¦\87ল à¦ªà¦¾à¦ à¦¾à¦¨à§\8b",
        "ipbenableautoblock": "এই ব্যবহারকারীর ব্যবহার করা সর্বশেষ আইপি ঠিকানা, এবং পরবর্তী যেসব আইপি ঠিকানা থেকে সম্পাদনার চেষ্টা করা হবে, সেগুলিকেও স্বয়ংক্রিয়ভাবে বাধা দেয়া হোক",
        "ipbsubmit": "এই ব্যবহারকারীকে বাধা দিন",
        "ipbother": "অন্য সময়:",
        "ipb-confirm": "বাধা নিশ্চিতকরণ",
        "ipb-sitewide": "সাইটব্যাপী",
        "ipb-partial": "আংশিক",
-       "ipb-type-label": "ধরন",
        "ipb-pages-label": "পাতা",
        "badipaddress": "আইপি (IP) ঠিকানাটি অগ্রহনযোগ্য",
        "blockipsuccesssub": "বাধা সফল",
        "ipb-blocklist": "বিদ্যমান বাধাগুলি দেখুন",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}}-এর অবদানসমূহ",
        "ipb-blocklist-duration-left": "$1 বাকি",
+       "block-expiry": "যখন মেয়াদোত্তীর্ণ হবে:",
+       "block-reason": "কারণ:",
+       "block-target": "ব্যবহারকারী নাম অথবা আইপি ঠিকানা:",
        "unblockip": "ব্যবহারকারীর উপর থেকে বাধা তুলে নেওয়া হোক",
        "unblockiptext": "নিচের ফর্মটি ব্যবহার করে পূর্বে বাধা দেওয়া কোন আইপি ঠিকানা বা ব্যবহারকারীর সাইটে লেখার অধিকার পুনঃপ্রতিষ্ঠা করুন।",
        "ipusubmit": "এই বাধা তুলে নিন",
index f1e4421..068cf11 100644 (file)
        "blockip": "আতাকুরাগরে থেপকর",
        "blockiptext": "লেপকরিসত আইপি ঠিকানাহানরে নাইলে আতাকুরাগরে ইকরানিত্ত থেপকরানি থকিলে তলর ফর্মহান ব্যবহার কর।\nএহান হুদ্দা ধ্বংসর খৌরাঙ থেপকরানি বারো [[{{MediaWiki:Policy-url}}|নীতিমালা]] একরিয়া পতানি থক।\nতলে লেপ্পা কারণ আহান মাত (উদাহরনে মাতানি একরের, যে  যে পাতাহানি ধ্বংস করানি অসে অতা মাতে পারর)।",
        "ipaddressorusername": "আইপি ঠিকানাহান বারো আতাকুরার নাঙহান:",
-       "ipbexpiry": "মেয়াদহান লালুইতইতা:",
        "ipbreason": "কারণ:",
        "ipbreason-dropdown": "*থেপ করানির সাধারণ কারণহানি\n** মিস্সা পৌ বরাসে\n** পাতাহাত্ত বিষয়বস্তু পুসে বেলাসে\n** বারেতের কোন সাইটর মিলাপে স্প্যাম করিসে\n** পাতাহানিত অর্থনেই মেথেল বরাসে\n** দরপানির অসারে আচরণ/হিনকরানি\n** আবকচা অ্যাকাউন্টর অপব্যবহার\n** আতাকুরার নাঙহান চিঙথি ইসে",
        "ipbcreateaccount": "অ্যাকাউন্ট হঙকরানি নাদি",
        "badipaddress": "আইপি ঠিকানাহান গ্রহনযোগ্যনাইসে",
        "blockipsuccesssub": "থেপকরানিহান চুমিল",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] রে থেপকরিয়া থসি <br />থেপকরানিহান খাল করানি থকিলে,[[Special:BlockList| থেপকরিয়া থসি আইপি ঠিকানার তালিকাহান]] চা।",
+       "block-expiry": "মেয়াদহান লালুইতইতা:",
        "ipblocklist": "থেপকরিয়া থসি আতাকুরাগি",
        "blocklink": "থেপ কর",
        "unblocklink": "ব্লকনাকরি",
index 9a54cae..a98402b 100644 (file)
@@ -9,11 +9,15 @@
                        "Mogoeilor",
                        "아라",
                        "Mjbmr",
-                       "Beyronvan"
+                       "Beyronvan",
+                       "Isevand"
                ]
        },
        "tog-underline": "هومپیڤٱندا زیر خٱتدار",
        "tog-hideminor": "دٱم تی نٱبیڌن آلشتا کۊچیر",
+       "tog-hidepatrolled": "بؽدیار نڤیڌن آلشڌٱل کوچیر",
+       "tog-newpageshidepatrolled": "بٱلٛگیٱل لرهٱرڌاْ زاْ فاٛئرست بٱلٛگیٱل نۊ بؽدیار ڤۊهاْ",
+       "tog-hidecategorization": "بؽدیارنیڌن رٱئڌاٛڤٱنی بٱلٛگیٱل",
        "tog-extendwatchlist": "گپ کردن نوم گه آ مو سی دیئن همه آلشتا نه فقط هونو که بیشتر ز همه انجوم ابون.",
        "tog-usenewrc": "جٱرغاٛ کاری آلشتا ڤا آلشتکاری بٱلگاٛیلسۊن و سئیل بٱرگسۊن",
        "tog-numberheadings": "شوماراٛ ڤٱندن خودٱنجوم سی سربٱلگاٛیل",
        "tog-editsectiononrightclick": "ڤیرایشت ڤابیڌن ڤا راست پۊرنیڌن ری بٱرجا داسۊن هر جاگٱ",
        "tog-watchcreations": "اٛزاف کردن او بٱلگاٛیلی کاٛ خوم راست کردوماٛ و او جانیایلی کاٛ خوم لاهامسۊناٛ مئن سئیل بٱرگ خوم",
        "tog-watchdefault": "اٛزاف کردن بٱلگاٛیٱل و جانیایٱلی کاٛ مو مئن سئیل برگوم ڤیرایشدسۊن کردوماٛ",
-       "tog-watchmoves": "اضاف کردن صفحاتی که خوم جابجا کردم به فهرست نمایشی",
-       "tog-watchdeletion": "اضاف کردن صفحاتی که خوم پاک کردم به فهرست نمایشی خوم",
-       "tog-minordefault": "علامت نهادن به اصلاحات ناقص",
-       "tog-previewontop": "نشودادن پیش نمایش قبل از یوکه جعبه یا کادر اصلاح بوه",
-       "tog-previewonfirst": "نشو دادن پیش نمایش  دراصلاح اول",
-       "tog-enotifwatchlistpages": "امیل به مو وقتی که  صفحه ای که منه فهرست نمایش مونه تغییر کرد",
+       "tog-watchmoves": "اْزاف کردن بٱلگاٛیٱلی کاٛ خوم جا ب جاسۊن کردوماٛ سی سئل بٱرگوم",
+       "tog-watchdeletion": "اٛزاف کردن بٱلگاٛیٱل و جانیایٱلی کاٛ خوم ز مئن سئیل بٱرگوم پاکسا کردوماٛ",
+       "tog-watchuploads": "پٱرڤٱنداٛیٱل نۊئی کاْ باراْنم ڤاْ فاٛئرسڌ دیناگریٱل مو بالاڤٱن ڤۊ",
+       "tog-watchrollback": "بالاڤٱن کرڌن بٱلٛگیٱلؽ کاْ اْؤورگٱرنیم ڤاْ فاٛئرسڌ دیناگریٱل مو",
+       "tog-minordefault": "دیاری کردن جۊر ڤیرایشتا ناقس",
+       "tog-previewontop": "دیاری کردن پیش سئیل پیش ز ڤیرایشد جٱڤٱ",
+       "tog-previewonfirst": "دیاری کردن پیش سئیل مئن ٱڤلین ڤیرایشد",
+       "tog-enotifwatchlistpages": "هر گاتی کاٛ یٱ بٱلگٱ یا یٱ جانیا مئن سئیل بٱرگ مۊ آلشد ابۊ بوم خٱڤٱر بڌین",
        "tog-enotifusertalkpages": "امیل به مو وقتی که صفحه گفتگوی مو تغییر کرد",
-       "tog-enotifminoredits": "اÙ\85Û\8cÙ\84 Ø¨Ù\87 Ù\85Ù\88 Ø³Û\8c ØµÙ\81حات Ù\86اÙ\82ص Ø§ØµÙ\84اح Ø´Ø¯Ù\87",
+       "tog-enotifminoredits": "اÙ\88 Ø¨Ù±Ù\84گاÙ\9bÛ\8cÙ±Ù\84 Ù\88 Ø¬Ø§Ù\86Û\8cاÛ\8cÙ±Ù\84Û\8c Ú©Ø§Ù\9b Ú¤Û\8cراÛ\8cشد Ú©Û\8aÚ\86Û\8cر Ù\88 Ù\86اÙ\82س Ø¯Ø§Ø±Ù\86 Ø¨Ù\81رشÙ\86 Ø³Û\8c Ù±Ù\86جÙ\88Ù\85اÙ\86اÙ\85Ù\88Ù\85",
        "tog-enotifrevealaddr": "دیاری کردن تیرنشۊن ٱنجوماناماٛ مو مئن دیارکاری ایمیلی",
        "tog-shownumberswatching": "نشودادن شماره کاربران درحال کار یاتماشا",
        "tog-oldsig": "اٛمزا ایسئنی",
-       "tog-fancysig": "اÙ\85ضاÛ\8cÙ\84 Ù\86اتموم",
-       "tog-uselivepreview": "پیش سئیل زندە ڤن ڤا کار",
+       "tog-fancysig": "اÙ\9bÙ\85زاÛ\8cÙ±Ù\84 Ù\86اتٱموم",
+       "tog-uselivepreview": "پیش سئیل زندٱ نٱ ڤٱن ڤا کار",
        "tog-forceeditsummary": "یادآوری سریع به مو هنگام اصلاح عقیم وخلاصه",
        "tog-watchlisthideown": "قایم کردن اصلاحات مو  زه لیست پیگیریها",
        "tog-watchlisthidebots": "قایم کردن اصلاحات بوت زه لیست پیگیریها",
        "tog-watchlisthideminor": "قایم کردن اصلاحات ریز زه لیست پیگیریها",
        "tog-watchlisthideliu": "قایم کردن اصلاحات انجام وابیده  بوسیله کاربران داخل سیستم وابیده زه لیست پیگیریها",
+       "tog-watchlistreloadautomatically": "راتؽ کاْ یٱ پاْلایاٛ آلشڌآڤیڌ فاٛئرسڌ دیناگری بؽنگوڌ(خوڌکار)ڤ رۊز ڤۊهاْ(هوجاْ ڤاْ جاڤا اسکریپت)",
+       "tog-watchlistunwatchlinks": "فرٱنیڌن دیاری کونٱنڌیٱل نڤیڌ دیناگری/دیناگری ({{int:Watchlist-unwatch}}/{{int:Watchlist-unwatch-undo}})ڤاْ بٱلٛگیٱل دیناگری آلشڌدار (سی عملیات کلؽز ۉ بلؽز کرڌن، جاڤاسکریپت   هوجاْ هؽڌآ)",
        "tog-watchlisthideanons": "قایم کردن اصلاحات انجام شده بوسیله کاربران داخل سیستم نشده زه لیست پیگیری",
+       "tog-watchlisthidepatrolled": "تٱپنیڌن پٱخڌارٱل ساوا زاْ لیسڌ دیناگریٱل\nتٱپنیڌن پٱخڌارٱل بۊت زاْ لیسڌ دیناگریٱل\nتٱپنیڌن پٱخڌارٱل مو زاْ لیسڌ دیناگریٱل",
+       "tog-watchlisthidecategorization": "تٱپنیڌن رٱئڌڤٱنی بٱلٛگیٱل",
        "tog-ccmeonemails": "ارسال کپی امیلهایی که مو به  کاربران دیه ارسال کردم به مو",
-       "tog-diffonly": "نشو نده صفحه ای که دارای محتوای متفاوت زیره",
-       "tog-showhiddencats": "نشودادن دسته بندیهای قایم شده",
-       "underline-always": "همیشه",
-       "underline-never": "هرگز",
-       "underline-default": "پۈسدإ آ دوڤارتإ نيأر پيش فرز",
+       "tog-diffonly": "بٱلگاٛیی نٱ کاٛ مئنۊناٛ فٱرخداراٛ نشۊن مٱڌاٛ",
+       "tog-showhiddencats": "دیاری کردن جٱرغاٛ بٱندیٱل نادیار",
+       "tog-norollbackdiff": "دینا زاْ ڤاگٱرڌونی نٱچی یٱکی نماونیڌاْ ڤۊهاْ",
+       "tog-useeditwarning": "رات ؤردٱر کرڌن زاْ بٱلٛگاْ آلشڌکاری ڤاْ ری داشڌن آلشڌکاریٱل کۊنڤیڌاْ ڤ مو مناراٛ(هوشڌار)داڌاْ ڤۊهاْ",
+       "tog-prefershttps": "راتؽ کاْ ڤامؽن ساماناْ آڤیڌم هاٛ زاْ مؽنڌاری ٱمن اْسفاْڌاْ ڤۊهاْ",
+       "underline-always": "همیشٱ",
+       "underline-never": "هیژگات",
+       "underline-default": "پۊسداٛ یا دڤوارتاٛ نیٱر میزۊنکاری ڤابیڌاٛ",
+       "editfont-style": "بارت قلٱم جٱڤاْ آلشڌکاری:",
+       "editfont-monospace": "قاٛلٱم ڤا تلاهاْ بؽڌٱگ(سابت)",
        "editfont-sansserif": "فونت سان سئریف",
        "editfont-serif": "فونت سريف",
-       "sunday": "یکشنبه",
-       "monday": "دوشنبه",
-       "tuesday": "سه‌شنبه",
-       "wednesday": "چهارشنبه",
-       "thursday": "Ù¾Ù\86جشÙ\86بÙ\87",
-       "friday": "جÙ\85عÙ\87",
-       "saturday": "Ø´Ù\86بÙ\87",
-       "sun": "یکشنبه",
-       "mon": "دÙ\88Ø´Ù\86بÙ\87",
-       "tue": "سه‌شنبه",
-       "wed": "چهارشنبه",
-       "thu": "Ù¾Ù\86جشÙ\86بÙ\87",
-       "fri": "جÙ\85عÙ\87",
-       "sat": "Ø´Ù\86بÙ\87",
-       "january": "جانڤیە",
+       "sunday": "یٱشٱمبڌ",
+       "monday": "دۊشٱمبڌ",
+       "tuesday": "ساٛشٱمبڌ",
+       "wednesday": "چارشٱمبڌ",
+       "thursday": "پٱÙ\86شٱÙ\85بÚ\8c",
+       "friday": "جÙ\88Ù\85Ù±",
+       "saturday": "شٱÙ\85بÚ\8c",
+       "sun": "یٱشٱمبڌ",
+       "mon": "دÙ\88شٱÙ\85بÚ\8c",
+       "tue": "ساٛشٱمبڌ",
+       "wed": "چارشٱمبڌ",
+       "thu": "پٱÙ\86شٱÙ\85بÚ\8c",
+       "fri": "جÙ\88Ù\85Ù±",
+       "sat": "شٱÙ\85بÚ\8c",
+       "january": "جانڤیٱ",
        "february": "فڤریٱ",
        "march": "مارس",
        "april": "آڤریل",
-       "may_long": "مە",
-       "june": "جوٙأن",
-       "july": "جوٙئیە",
+       "may_long": "مئی",
+       "june": "جۊٱن",
+       "july": "جۊئیٱ",
        "august": "آگوست",
-       "september": "سئپتامر",
-       "october": "ئوکتوبر",
+       "september": "سپتامر",
+       "october": "اوکتوبر",
        "november": "نوڤامر",
-       "december": "دئساÙ\85ر",
-       "january-gen": "ژانویه",
-       "february-gen": "فوریه",
+       "december": "دسامر",
+       "january-gen": "جانڤیٱ",
+       "february-gen": "فڤریٱ",
        "march-gen": "مارس",
-       "april-gen": "آوریل",
-       "may-gen": "مه",
-       "june-gen": "ژوئن",
-       "july-gen": "ژوئیه",
-       "august-gen": "اÙ\88ت",
+       "april-gen": "آڤریل",
+       "may-gen": "مئی",
+       "june-gen": "جۊٱن",
+       "july-gen": "جۊئیٱ",
+       "august-gen": "Ø¢Ú¯Ù\88ست",
        "september-gen": "سپتامبر",
-       "october-gen": "اکتبر",
-       "november-gen": "نوامبر",
-       "december-gen": "دساÙ\85بر",
-       "jan": "جانڤیە",
-       "feb": "فئڤریە",
+       "october-gen": "اوکتوبر",
+       "november-gen": "نوڤامر",
+       "december-gen": "دسامر",
+       "jan": "جانڤیٱ",
+       "feb": "فڤریٱ",
        "mar": "مارس",
        "apr": "آڤریل",
-       "may": "مە",
-       "jun": "جوٙأن",
-       "jul": "جوٙئیە",
+       "may": "مئی",
+       "jun": "جۊٱن",
+       "jul": "جۊلای",
        "aug": "آگوست",
-       "sep": "سئپتامر",
-       "oct": "ئوکتوبر",
+       "sep": "سپتامر",
+       "oct": "اوکتوبر",
        "nov": "نوڤامر",
-       "dec": "دئساÙ\85ر",
-       "january-date": "جانڤيأ $1",
-       "february-date": "فإڤريأ $1",
+       "dec": "دسامر",
+       "january-date": "جانڤيٱ $1",
+       "february-date": "فڤریٱ $1",
        "march-date": "مارس  $1",
        "april-date": "آڤريل $1",
-       "may-date": "Ù\85Ø¥ی $1",
-       "june-date": "جÛ\88Ø£ن $1",
+       "may-date": "Ù\85ئی $1",
+       "june-date": "جÛ\8aÙ±ن $1",
        "july-date": "جۈلای $1",
        "august-date": "آگوست $1",
        "september-date": "سپتامر $1",
        "category-file-count": "{{PLURAL:$2|ای دسته فقط فایلهای زیر راداره.|ذیل الذکر{{PLURAL:$1|فایل است|$1 فایلهاهستند}} درای دسته, بیشترزه$2 کل.}}",
        "category-file-count-limited": "ذیل الذکر {{PLURAL:$1|فایل است|$1 فایلها هستند}} درآن دسته جریانی.",
        "listingcontinuesabbrev": "دنباله",
+       "index-category": "بٱلٛگیٱل نماو نڤؽڌاْ",
+       "noindex-category": "بٱلٛگاْیٱل نمایاْ ناڤیڌاْ",
+       "broken-file-category": "بٱلٛگیٱل ڤامؽنڌار چۊل ڤاْ بٱلٛگکۊ(پٱرڤٱنڌاْ)",
        "about": "درباره",
        "article": "بلگه آ مینونه دار",
        "newwindow": "(پنجره تازه واز کن)",
        "cancel": "لغو",
        "moredotdotdot": "بيشدر",
+       "morenotlisted": "ای فاٛئرست اْمکوݩ داراْ تٱیار نڤۊهاْ",
        "mypage": "بألگأ",
        "mytalk": "چأک چنأ",
        "anontalk": "چأک چنأ",
        "tagline": "از {{SITENAME}}",
        "help": "راهنما",
        "search": "پئی جوٙری",
+       "search-ignored-headings": "#<!-- ای بٱلٛگاْ ناْ هٱمی بٱرتی کاْ هؽڌا رها کونین --> <pre>\n# سٱرتال ٱلؽ  که ڤا موڌی نیڌاْ اْڤۊهن\n# تٱسیر آلشڌ راتؽ ایاهاْ ڤارۊ کاْ بٱلٛگاْ هاڤی او سٱرتال، نماواْ ڤۊهاْ.\n# اؽسا تٱرین ڤا ٱنجوم یٱ آلشڌکاری پیک بٱلٛگاْ ناْ بؽرٱ ڤاْ دو کرات نماواْ ڤیڌن کونین\n# رڤشڌس چونوݩ هؽڌآ:\n#  *هٱر چاْ زاْ یٱ هؽلنیڌاْ «#» تا تٱهاْ هؽل ڤاهین، یٱ اشکافنیڌن هؽڌا.\n#  *هٱر هؽل بؽ تلاهاْ، دٱیخٱن اوڌڤانی  هؽڌا کاْ نیڌاْ گریڌاْ اْڤۊهاْ (ڤا رعایٱت گاپی ۉ ساوائی هٱرفٱل).\nکونڳگٱیٱل(مٱنابع)\nمؽنڌاری ڤا دٱر\nهٱم چونوݩ ڤنٱرین\n#</pre> <!-- leave this line exactly as it is -->",
        "searchbutton": "پئی جوٙری",
        "go": "رۉ",
        "searcharticle": "رۉ",
        "history": "گزارش صفحه",
        "history_short": "گزارش تاریخی",
        "history_small": "ڤیرگار",
+       "updatedmarker": "ڤانها(ڤ رۊز)آڤیڌاْ زاْ ٱخیرین کرٱتی کاْ سٱرؤر داماْ",
        "printableversion": "نوسقئ پئلا ڤابیدٙئنی",
        "permalink": "لینک دایمی",
        "print": "چاپ گرهڌن",
        "view": "ديئن",
        "view-foreign": "مئن $1 نه بوینین",
        "edit": "ۋیرایشد",
+       "edit-local": "آلشڌکاری اشکافنیڌیٱل بۊمی",
        "create": "راس كردن",
        "create-local": "یأ توزی ڤولات نشيني إزافإ کونين",
        "delete": "حذف",
+       "undelete_short": "جوݩنیڌن(اْئیا){{PLURAL:$1|یٱ آلشڌکاری|$1 آلشڌکاری}}",
+       "viewdeleted_short": "{{PLURAL:$1|پژارنیڌن یٱ پٱخڌار|$1 پژارنیڌن پخڌارٱل}}",
        "protect": "حفاظت وحمایت",
        "protect_change": "آلإشت کونين",
+       "unprotect": "هناڌاری زاْ بٱلٛگاْ",
        "newpage": "صفحه تازه",
        "talkpagelinktext": "چٱک چناٛ",
        "specialpage": "صفحه مخصوص",
        "talk": "گٱپ",
        "views": "مشاهدات",
        "toolbox": "ٱۋزارا",
-       "imagepage": "دیدن صفحه مدیا",
+       "tool-link-userrights": "آلشڌ بنکۊیٱل {{GENDER:$1|مؽنتور}}",
+       "tool-link-userrights-readonly": "نماونیڌن بنکۊیٱلاٛ {{GENDER:$1|مؽنتور}}",
+       "tool-link-emailuser": "کل کرڌن ناماٛ ڤ {{GENDER:$1|مؽنتور}}",
+       "imagepage": "نیٱشڌن بٱلٛگاْ هیاراٛ\nنیٱشڌن بٱلٛگاْ فایل",
        "mediawikipage": "دیدن صفحه پیام",
        "templatepage": "دیدن صفحه قالب",
        "viewhelppage": "دیدن صفحه کمک",
        "jumpto": "پریدن به:",
        "jumptonavigation": "راندن یا هدایت کردن",
        "jumptosearch": "جستن",
+       "view-pool-error": "مونٱسفاناٛ سرڤرٱل ایساْ دیلٛ ڤارٱزافاْ هؽڌن\nبورفرٱی زاْ مؽنتورٱل هنؽ تٱقلا اْکونن کاْ ای بٱلٛگاْ ناْ ساٛل کونن.\nلوتفٱن نهاتٱر زاْ تٱقلا دوکرت سی ساٛل کرڌن ای بٱلٛگاْ قٱلیلؽ دٱسنیٱ کونین",
+       "generic-pool-error": "موتٱسفاْناٛ سرڤرٱل ایساْ دوچار ڤارٱزافی آڤیڌناْ.\nبورفرٱئی زاْ مؽنتوروݩ هنؽ تٱقلا اْکونن کاْ  ای بٱلٛگاْ ساٛل کونن.\nلوتفٱن نهاتر زاْ تقلادوکرت سی ساٛل کرڌن ای بٱلٛگاْ قٱلیلؽ دٱس نیٱڌارین",
+       "pool-timeout": "تٱ هٱرت تؽڤرٱئی سی قولف",
+       "pool-queuefull": "یٱتور کۊگٱ مٱشلٱق هؽڌا",
        "pool-errorunknown": "خطا نادیار",
+       "pool-servererror": "سرڤیس باٛنٱتگر کۊگٱ ڤ دٱسرٱس نؽڌا",
+       "poolcounter-usage-error": "خٱتای اْسفاْڌاْ:$1",
        "aboutsite": "راجوۋ باٛ {{SITENAME}}",
-       "aboutpage": "Project:راجڤ بئ",
+       "aboutpage": "Project:راجڤ ب",
        "copyright": "محتوا باای شماره قابل دسترسیه\n $1.",
        "copyrightpage": "{{ns:project}}:کپی رایت",
        "currentevents": "اتفاقات جاری",
        "portal": "درگاه کاربران",
        "portal-url": "Project:درگاه کاربران",
        "privacy": "رأدیارکونی رازڤادٙاری",
-       "privacypage": "Project:رأدیارکونی رازڤاداری",
+       "privacypage": "Project:رٱدیارکونی رازڤاڌاری",
        "badaccess": "خطا :اجازه بگیر",
        "badaccess-group0": "ایسا اجازه انجام کاری که خواستین را ندارین",
        "badaccess-groups": "او کاری که ایسا درخواست کردین فقط سی کاربرانیه که من ای  گروهن\n{{PLURAL:$2|آن گروه|یکی زه گروهها}}: $1.",
        "pagetitle-view-mainpage": "سرصفحه",
        "retrievedfrom": "دوڤارتئ جوٙری ز \"$1\"",
        "youhavenewmessages": "پیام تاره داری $1 ($2).",
+       "youhavenewmessagesfromusers": "اؽسا زاْ{{PLURAL:$3|یٱ مؽنتور داٛهر|$3  مؽنتور}} $1 دارین ($2).",
+       "youhavenewmessagesmanyusers": "اؽسا زاْ بورؽ مؽنتور $1 دارین($2).",
+       "newmessageslinkplural": "\n{{PLURAL:$1|پاٛخوم نۊ|999=پاٛخومٱل نۊ}}",
+       "newmessagesdifflinkplural": "$1 {{PLURAL:$1|آلشڌ|آلشڌا}}",
        "youhavenewmessagesmulti": "ایسا پیام تازه دارین منه\n$1",
        "editsection": "ۋیرایشد کردن",
        "editold": "اصلاح",
        "hidetoc": "قایم",
        "collapsible-collapse": "جأم كردن",
        "collapsible-expand": "گأپ کلۈن کردن",
+       "confirmable-confirm": "آسی موتمٱعن {{GENDER:$1|هؽڌین}}؟",
        "confirmable-yes": "هرإ",
        "confirmable-no": "نأ",
        "thisisdeleted": "دیدن یا اعاده $1?",
        "restorelink": "{{PLURAL:$1|پاک کردن یه اصلاح|$1 پاک کردن اصلاحات}}",
        "feedlinks": "تغذیه:",
        "feed-invalid": "اشتراک  زه راه  تایپ باطله",
+       "feed-unavailable": "خوراکٱل هوڤال خوݩ ڤاْ دٱسرٱس نؽڌا",
        "site-rss-feed": "خبرخو RSS سی $1",
        "site-atom-feed": "حأڤال خوٙنئ Atom سی $1",
        "page-rss-feed": "خبرخو RSS سی «$1»",
        "page-atom-feed": "هأڤال خۈن Atom سي $1",
        "red-link-title": "$1 (چونو بلگاٛیی نیڌس)",
+       "sort-descending": "ڤدین یٱک کٱم آڤیڌن",
        "nstab-main": "بلگه",
        "nstab-user": "صفحه کاربر",
        "nstab-media": "بلگأ ڤارسگأري",
        "nstab-help": "بألگإ هومیاری",
        "nstab-category": "دسته",
        "mainpage-nstab": "سرتال",
+       "nosuchaction": "چونوݩ عملؽ نؽڌآ",
+       "nosuchactiontext": "عمل دزاْ آڤیڌاْ ڤاْ تیرنشون مؽنتوری بؽ اْتڤار هؽڌآ\nمومکن هؽڌآ تیرنشون مؽنتوری ناْ پٱلارنیڌ ڤامؽ کرڌاْ ڤۊهین یا دینا یٱ پاٛڤٱن بٱی ڌارؽ ناْ گریڌیناْ.\nهٱمچونوݩ مومکن هؽڌآ بٱی ڤ نٱرم ٱفزار ڤ کارگریداْ آڤیڌاْ در{{SITENAME}} ڤیڌاْ ڤۊهاْ",
        "nosuchspecialpage": "چونو بلگاٛ ۋیجاٛیی دیاری نیکوناٛ",
+       "nospecialpagetext": "<strong>اؽسا یٱ بٱلٛگاْ ڤیژاٛ بؽ اٛتڤار ناْ خاسیناْ.</strong>\n\nفاٛئرسڌاْ زاْ بٱلٛگیٱل ڤیژاٛ موجاز ڤ[[Special:SpecialPages|{{int:specialpages}}]] هؽڌا.",
        "error": "خطا",
+       "databaseerror": "خٱتای ستینگٱ داڌاْ",
+       "databaseerror-text": "بٱیؽ مؽن پورسایشڌ زاْ ستینگٱ داڌاْ آوؤڌ ڤارو.هؽ اْمکوݩ ڌاراْ دیاریکوناْ بٱیؽ مؽن نٱرم ٱفزار ڤۊهاْ",
+       "databaseerror-textcl": "یٱ خٱتا مؽن پورسایشڌاْ ستینگٱ داڌا آوؤڌ ڤارو",
        "databaseerror-query": "جوستکاری: $1",
+       "databaseerror-function": "دینارۉ$1",
        "databaseerror-error": "خطا: $1",
+       "transaction-duration-limit-exceeded": "سی پٱرؽز زاْ ؤرکل آڤیڌن تم رو مؽن نوسخؤرڌاری، ای تٱراکونش زاْ کارؤٱس چیناکاْ رات هؽلنیڌن($1) زاْ هنا$2 {{PLURAL:$2|سانیاْ|سانیاْ}} ڤؽشڌٱر ڤیڌ. ٱر هنؽسین چیٱل فرٱیناْ هومؤٱخڌ آلشڌ اْکونین،پلرڌ کونین ڤ جا ای کار چٱن اْخڌام ناْ مؽن جٱرخیٱل ساواتٱر ٱنجوم ڤڌین",
+       "laggedslavemode": "\"ؤیرڌار\" بٱلٛگاْ مومکن هؽڌا ڤ نهارٱسونیٱل ٱخیرناْ ڤا ؤٱرنگراْ",
+       "readonly": "ستینگٱ داڌاْ بؽرٱ آڤیڌ",
+       "enterlockreason": "دٱلیلؽ سی بؽرٱ کرڌن ڤگوین،کاْ مؽنس هنای زاْ ؤٱخڌ ڤۊهاْ کاْ بؽرٱ ؤرداشڌاْ اْڤۊهاْ",
+       "readonlytext": "ستینگٱ داڌاْ اؽساْ ؤر ؤٱر ؤرکل آڤیڌن مٱڤٱرڌ نۊ ۉ بٱخیاْ آلشڌٱل بؽرٱ آڤیڌاْ:ای ؤٱزیٱت اْئتمالٱن ڤ سی باٛئخڌٱرسازی ۉ سٱرآوریٱل مٱعمول هؽڌا کاْ دیناتٱر زاْ او ؤٱز ڤ بارت نهائی اْؤرگٱرڌن.\nدیڤونڌارؽ کاْ هو ناْ بؽرٱ کرڌاْ ای اْشکافنیڌن تیژنیڌاْ$1",
+       "missingarticle-rev": "(ڤانیٱری#: $1)",
+       "missingarticle-diff": "(فٱرخ: $1, $2)",
+       "nonwrite-api-promise-error": "سٱرآینڌ اْچ‌تی‌تی‌پی 'Promise-Non-Write-API-Action' کلٛ آڤیڌ ؤلی دٱرخاس ڤاْ یٱ مؽنڌار کۊدال نڤیسی پۊڌمان نڤشڌن ڤی.",
        "internalerror": "خطا مإنجقایي",
+       "internalerror_info": "خاٛتای مؽنی",
+       "internalerror-fatal-exception": "اْستسنای چۊلگٱر زاْ نۉع «$1»",
+       "filecopyerror": "نڤیڌ زاْ بٱلٛگکۊ«$1» ری «$2» لفگری آڤۊهاْ.",
+       "filerenameerror": "ناڤیڌ بٱلٛگکۊ «$1» ڤاْ «$2» آلشڌ نوم ڤۊهاْ",
+       "filedeleteerror": "ناڤیڌ بٱلٛگکۊ «$1» پژار ڤۊهاْ",
+       "directorycreateerror": "ناڤیڌ تور $1 ناْ ڤاکل کرڌ",
+       "directoryreadonlyerror": "لاٛک «$1» تاٛنا خؤٱننی هؽڌآ",
+       "directorynotreadableerror": "لاٛک «$1» قاڤل خؤٱناْ نؽڌآ",
+       "filenotfound": "ناڤیڌ بٱلٛگکۊ «$1» پژار ڤۊهاْ",
+       "formerror": "خاٛتا:نٱتری فورم ناْ کل کونی",
+       "badarticleerror": "نٱتری ای کار ناْ ؤر ای بٱلٛگاْ ٱنجوم ڤڌی",
+       "cannotdelete": "امکان پژار بٱلٛگاْ یا شؽڤات$1 نؽڌآ\nمومکن هؽڌآ نهاتٱر کسؽ داٛهراْ هونه پژارنیڌاْ",
+       "cannotdelete-title": "نٱتری بٱلٛگاْ$1 ناْ پژار کرڌ",
+       "delete-scheduled": "بٱلٛگاْ$1 سی پاکسا کۊڌالکاری آڤیڌاْ.لوتفٱن سٱڤۊر ڤۊهین",
+       "delete-hook-aborted": "پژار ڤا قولاڤ لٱق آڤیڌ\nاشکافنیڌنی سی هؽ داڌ نڤیڌ",
        "badtitle": "عنوان بد",
        "badtitletext": "عنوان درخواستی نامعتبر، خالی، یا عنوانی بین زبانی یا بین‌ویکی‌ای با پیوند نادرسته\nو ممکنه دارای یک یا چند کاراکتر بوه که در عنوان مربوط نوا زش استفاده کنین",
+       "title-invalid-empty": "اوڌڤان بٱلٛگاْ دٱرخاس آڤیڌاْ پٱتی هؽڌآ یا تاٛنا اوڌڤان مؽن نوم گوڌ آڤیڌاْ هؽڌآ",
+       "title-invalid-utf8": "اوڌڤان بٱلٛگاْ دٱرخاس آڤیڌاْ هؽل ڤیڌاْ نادوروس یونیکوڌ هؽڌآ",
+       "title-invalid-interwiki": "بٱلٛگاْ دٱرخاس آڤیڌاْ دارای پاٛڤٱن مؽن ڤیکی هؽڌآ کاْ نؽڤۊهاْ مؽن اوڌڤانٱل نهاڌاْ ڤۊهاْ",
+       "title-invalid-talk-namespace": "اوڌڤان بٱلٛگاْ خاساْ ڤیڌا ڤاْ بٱلٛگاْ بٱئسؽ کاْ نؽڌآ اْرجا اْکوناْ",
+       "title-invalid-characters": "اوڌڤان بٱلٛگاْ خاساْ آڤیڌاْ هؽلڤیڌاْ ناموجاز داراْ$1",
+       "title-invalid-relative": "اوڌڤان دارای دزاٛئی هؽڌآ.اوڌڤانٱل کاْ دزاٛئی نسمی(چی /.یا/...) ناموجاز هؽڌن چیناکاْ ڤا موڌیگر مؽنتورٱل قاڤل دٱسرٱسی نؽڌن",
        "viewsource": "مشاهده منبع",
+       "actionthrottled": "نها کار اؽسا گریداٛ آڤیڌ",
+       "actionthrottledtext": "ڤ سی نهاگری زاْ ؤولٱ ڤیڌن چۊلکاری،اْجازاٛ نارین کاْ چونوݩ کارؽ ناْ ڤؽشڌر زاْ چٱن کرٱت ڤ یٱ رات کول ٱنجوم ڤڌین\nلوتفٱن دیناتٱر زاْ چٱن دٱیخاْ سٱرزنۊ پلرڌ کونین",
+       "protectedpagetext": "ای بٱلٛگاْ سی نهاگری راْ آلشڌکاری یا جومجیل دهرؽ پلڌاری آڤیڌاْ",
        "viewsourcetext": "ایسا ترین سرچشماٛ ای بلگاٛ نٱ هم بنیٱرین و هم ۋوردارینس:",
+       "invalidtitle": "داسۊن بی ٱرزشد",
+       "exception-nologin": "هٱنی نٱڤۊڌیناٛ ڤامئن",
+       "virus-scanfailed": "ٱسکٱن جۊر نٱڤابی (code $1)",
        "welcomeuser": "خۈش أڤوڌين،$1!",
        "yourname": "نام کاربر:",
        "userlogin-yourname": "نوم کارياري",
        "createacct-yourpasswordagain": "پشت راسدکاري رازينإ گوڤأرتن",
        "createacct-yourpasswordagain-ph": "ز نۉ رازينإ گوڤأرتن نأ بزأ",
        "userlogin-remembermypassword": "مۈنإ مإن سامۈنإ ڤاڌار",
+       "cannotlogin-title": "نٱترین بیایین ڤامئن",
        "yourdomainname": "پوشگر ايسا:",
        "login": "اویدن به سیستم",
        "nav-login-createaccount": "اویدن به سیستم",
        "createacct-benefit-body1": "{{PLURAL:$1|ڤيرایشد|ڤيرایشدا}}",
        "createacct-benefit-body2": "{{PLURAL:$1|بألگأ|بألگإ آ}}",
        "createacct-benefit-body3": "تازأ{{PLURAL:$1|هوميار|هوميارا}}",
+       "loginerror": "خٱتا سی ڤامئن ٱڤوڌن",
        "loginsuccesstitle": "اویدن با بخت وتوفیق به سیستم",
        "loginsuccess": "''' ایسا اویدن به داخل سایت {{SITENAME}} بعنوان \"$1\".'''",
        "nosuchuser": "کاربری به ای نام وجود نداره \"$1\".\nحروف نام را چک کنین, یا [[Special:CreateAccount|درست کنین یه حساب کاربری تازه]].",
        "changeemail-password": "رازينإ گوڤأرتن {{SITENAME}} ایسا:",
        "changeemail-submit": "آلشد کردن أنجومانامأ",
        "resettokens": "ز نۉ کردن نشۈنإیل",
+       "resettokens-text": "اؽسا تٱرین شناساننداٛیٱلؽ کاْ اجازاٛ دٱسرٱسی ڤاْ قٱرڌؽ داداٛیٱل سیخؤاٛی مؽنڌار ڤا هساڤتان ناْ اْڌاْ دوکرتشناسی کونین.\nؤخڌؽ ڤا ای کارناْ ٱنجوم ڤڌین کاْ تٱساڌوفٱن هونوناْ ڤا کسؽ ڤاْ هومبٱشنی نهاڌین یا کسؽ ڤاْمؽ ڤیڌ ڤاْ هساڤ اؽسا",
+       "resettokens-no-tokens": "هیچ شناسانٱنڌاٛئی سی دوکرتشناسی نؽڌا",
        "resettokens-tokens": "نشۈنإیل:",
        "resettokens-token-label": "$1 (أرزایشت تازأ: $2)",
+       "resettokens-watchlist-token": "شناسانٱنڌاٛ خوراک ڤباٛی [[Special:Watchlist|آلشڌ بٱلٛگیٱلؽ کاْ دیناگری اْکونین]] (ٱتم/آراْس‌اْس)",
+       "resettokens-done": "دوکرتشناسی شناسانٱنڌاٛیٱل",
+       "resettokens-resetbutton": "دوکرتشناسی شناسانٱنڌاٛیٱل دزاْ آڤیڌاْ",
        "bold_sample": "متن گپ نما",
        "bold_tip": "متن گپ نما",
        "italic_sample": "متن شکسته",
        "minoredit": "ای یه اصلاح ریزه-رز",
        "watchthis": "پیگیری ای صفحه",
        "savearticle": "صفحه ضبط بوه",
+       "savechanges": "کۊکرڌن آلشڌٱل",
+       "publishpage": "تیژنیڌن بٱلٛگاْ",
+       "publishchanges": "تیژنیڌن آلشڌٱل",
+       "savearticle-start": "کۊنیڌن بٱلٛگاْ",
        "preview": "پیش نمایش",
        "showpreview": "پیش‌نمایش",
        "showdiff": "نشودادن تغییرات",
        "yourtext": "متن ايسا",
        "copyrightwarning": "لطفاً دقت کنین که درنظر گریده ابوه که همه شراکتهای ایسا  {{SITENAME}} تحت «$2» منتشر ابون ).\n\n\n(سی دیدن  جزئیات بیشتر به $1 برین\n\nایر نه خوین نوشته‌هاتو بی‌رحمانه اصلاح بوه و به دلخواه ارسال بوه، ایچو نفرستن.<br />\nدرضمن ایسادارین به ایما قول ادین که خودتو یونه نوشتین یا هونه زه یک منبع آزاد با مالکیت عمومی یا مثل هو ورداشتین. '''کارهای دارای کارهای دارای حق کپی رایت را بی‌اجازه نفرستین!'''',",
        "templatesused": "{{PLURAL:$1|چوٙأ|چوٙأیل}} ب کار گرهڌأ ڤابيڌإ مإن اي بألگأ:",
-       "templatesusedpreview": "قالبها  یا الگوهای استفاده وابیده در ای پیش نمایش:",
+       "templatesusedpreview": "قالڤٱل یا اولگۊیٱل ڤاْ کار رٱئڌاْ مؽن ای نهانماو",
        "template-protected": "(تحت حمایت)",
        "template-semiprotected": "(نیمه حمایت وابیده)",
        "hiddencategories": "اي بلگأ یکي ز أندوما {{PLURAL:$1|1 hidden category|$1 hidden categories}} إ:",
        "nocreatetext": "{{SITENAME}}قابلیت درست کردن صفحات تازه را محدود کرده‌. ترین برگردین و صفحه‌ موجود را اصلاح کنین یا اینکه  [[Special:UserLogin|به سیستم داخل بوین یا حساب کاربری درست کنین]].",
+       "permissionserrors": "پٱلاْ:اْجازاْ ڤگرا",
        "permissionserrorstext-withaction": "ايسا سی نياگري $2 سإلا\nنارين {{PLURAL:$1|دلیل|دليلا}}:",
-       "recreate-moveddeleted-warn": "'''هشدار: ایسا در حال درست کردن دوباره صفحه‌ای هدین که قبلاً حذف وابیده '''در نظر داشته بوین که ادامه اصلاح ای صفحه کار درستی هده یا نه. نمایه حذف مربوط به ای صفحه سی راحتی کار در ادامه اویده",
+       "recreate-moveddeleted-warn": "'''هوشڌار: ایسا هنؽ سٱرزاْنۊ بٱلٛگی ناْ ؤرکل اْکونین کاْ نهاتٱرپاکسا آڤیڌاْ '''مؽن فرگ داشڌ ڤۊهین کاْ آلشڌ ای بٱلٛگاْ کارؽ دوروساْ هؽڌا آ نٱ. نمایاٛ پاکسا  مؽنڌار ڤا ای بٱلٛگاْ سی راهٱتی کار ڤا دینا آؤوڌاْ",
+       "moveddeleted-notice": "ای بٱلٛیاْ پاکسا آڤیڌاْ،ؤرداوناْ سیاهؽ پاکسا،هناڌاری ۉ کلٛ کرڌن ای بٱلٛیاْ ؤرتی نهاڌ آڤیڌاْ",
        "content-model-wikitext": "ڤيکي تکست",
        "content-model-javascript": "جاڤا إسکريپت",
+       "undo-failure": "سی نڤیڌن سلۊکی ڤا آلشڌکاریٱل مؽنجخائی ای آلشڌکاریناْ نؽڤۊ بؽ هرنڳ کرڌ",
        "viewpagelogs": "نشودادن نمایه ها سی ای صفحه",
        "currentrev": "نسخه جاری",
        "currentrev-asof": "آخرين ڤانيأري جۈر $1",
        "histfirst": "دينداتري",
        "histlast": "تازإترين",
        "historyempty": "(هالي)",
+       "history-feed-title": "ؤیرگارکاْ آلشڌکاریٱل",
+       "history-feed-description": "ؤرگارکاْ آلشڌکاریٱل ای بٱلٛگاْ مؽن ڤیکی",
        "history-feed-item-nocomment": "$1 در $2",
        "rev-delundel": "آلشد هال و بال ديإن",
        "rev-showdeleted": "دياري کردن",
        "revdelete-log": "دلیل:",
        "mergehistory-from": "بألگإ سرچشمأ:",
        "mergehistory-reason": "دلیل:",
+       "mergelog": "سیائاْ ؤریٱک",
        "history-title": "دڤارتإ دیئن ڤيرگار $1",
        "difference-title": "فرخ مإنجقا ڤانإیريا \"$1\"",
        "lineno": "سطر $1:",
        "compareselectedversions": "مقایسه نسخه‌های انتخاب‌ وابیده",
        "editundo": "لغو اصلاح آخر",
-       "diff-multi-sameuser": "({{PLURAL:$1|Û\8cÙ\87 Ø¯Û\88Ù\86Ø¥ Ù\86سÙ\82Ù\87 Ù\85Û\8cÙ\86جاÛ\8cÛ\8c|$1 Ù\86سÙ\82Ù\87 Û\8cÙ\84 Ù\85Û\8cÙ\86جاÛ\8cÛ\8c}} Ø¨ Ø¯Ø³Ø¯{{PLURAL:$2|کارÛ\8cارÛ\8c Ø¯Ù\8aØ£|$2 Ú©Ø§Ø±Ù\8aارا}} Ù\86Ø´Û\88Ù\86 Ø¯Ø§Ú\8cØ¥ Ù\86ڤابÙ\8aÚ\8cØ¥)",
+       "diff-multi-sameuser": "({{PLURAL:$1|Û\8cÙ± Ø¯Û\8aÙ\86اÙ\9b Ù\86Ù\88سÙ\82اÙ\9b Ù\85ؽÙ\86جخاÛ\8cÛ\8c|$1 Ù\86Ù\88سÙ\82اÙ\9bÛ\8cÙ±Ù\84 Ù\85ؽÙ\86جخاÛ\8cÛ\8c}} Ø¨ Ø¯Ù±Ø³Ø¯{{PLURAL:$2|کارÛ\8cارÛ\8c Ø¯Ù\8aÙ±|$2 Ú©Ø§Ø±Ù\8aارا}} Ù\86Ø´Û\8aÙ\86 Ø¯Û\8cارÛ\8c Ù\86ٱکرداÙ\92)",
        "searchresults": "نتيجأ آ پی جۈري سي",
        "searchresults-title": "نتيجإ آ پی جوري سي \"$1\"",
        "prevn": "قبلی {{PLURAL:$1|$1}}",
        "searchprofile-everything-tooltip": "همإ مإنۈنإ آ نأ پی جۈري کو(د ڤر گرهڌإ بألگإیل چأک چنأ)",
        "searchprofile-advanced-tooltip": "نوم جایل نوم ديار نأ بگرد.",
        "search-result-size": "$1 ({{PLURAL:$2|1 ڤاجه یل|$2 ڤاجه یل}})",
+       "search-result-category-size": "\n{{PLURAL:$1|یٱهومڤٱن|$1 هومڤٱن}} ({{PLURAL:$2|یٱزؽر بنکۊ|$2 زؽر بنکۊ}}، {{PLURAL:$3|یٱ پٱرڤٱناْ|$3 پٱرڤٱناْ}})",
        "search-redirect": "(ڤاگردۈني ز $1)",
        "search-section": "(بهرجا $1)",
        "search-suggest": "منزۈرت یو بي:$1",
        "timezoneregion-asia": "آسيا",
        "yourrealname": "نام واقعی:",
        "prefs-help-realname": "ذکر نام واقعی اختیاریه ایر تصمیم به گدن بگیرین هنگام ارجاع به آثارتو و انتساب هونو به ایسا زه نام واقعیتو استفاده ابوه",
+       "group-bot": "روڤاتٱل",
+       "group-sysop": "سٱردیڤۊنکارۊن",
+       "grouppage-bot": "{{ns:project}}:بوتا",
        "grouppage-sysop": "{{ns:project}}:مدیران",
        "right-writeapi": "سي نڤشدن اي پ آی ڤأنين ڤاکار",
        "newuserlogpage": "راسد ڤابیه وا کاریار",
        "rightslog": "نمایه حقوق کاربر",
        "action-edit": "ای بلگٱ نٱ ۋیرایشد کو",
+       "action-createaccount": "ڤاکل ای هساْڤ مؽنتوری",
        "nchanges": "$1 {{PLURAL:$1|تغییر|تغییرات}}",
        "enhancedrc-history": "ڤیرگار",
        "recentchanges": "تغییرات اخیر",
        "recentchanges-label-unpatrolled": "ای ويرايشت هنی تيه واداشت نوابيه",
        "recentchanges-label-plusminus": "أندازإ بألگأ ب شومار اي بایتا آلشد کردإ.",
        "recentchanges-legend-heading": "<strong>میراث:</strong>",
-       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (Ù\87Ù\85Ú\86Û\8cÙ\86Ù\88 Ø³Ø§Ù\9bÛ\8cÙ\84 [[Special:بÙ\84Ú¯Ù±Û\8cÙ\84 ØªØ§Ø²Ù±|Ù\86Ù\88Ù\85Ú¯Ù± Ø¨Ù\84Ú¯Ù±Û\8cÙ\84 ØªØ§Ø²Ø§Ù\9b]]) Ú©Ù\88Ù\86Û\8cÙ\86",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (Ù\87Ù±Ú\86Ù\88Ù\86Ù\88Ý© Ú¤Ø§Ù\92[[Special:NewPages|Ù\81اÙ\9bئرست Ø¨Ù±Ù\84Ù\9bÚ¯Û\8cÙ±Ù\84 Ù\86Û\8a]] Ø³Ø§Ù\9bÙ\84 Ø¤Ù\88Ù±Ù\86Û\8cÙ\86)",
        "rcnotefrom": "ۋازیر {{PLURAL:$5|ۋیرایشد|ۋیرایشدا}}ز ۋیرگار strong>$3, $4</strong> تا ۋیرگار <strong>$1</strong>  دیاری اٛکونن .",
        "rclistfrom": "نشودادن تغییرات تازه با شروع زه $3 $2",
        "rcshowhideminor": "اصلاحات کوچیک $1",
        "rcshowhidemine": "$1 اصلاحات مو",
        "rcshowhidemine-show": "نشون دائن",
        "rcshowhidemine-hide": "قام کئردئن",
-       "rclinks": "دیار کردن آخری $1 آلشتکاری ماٛن $2 چاٛن رۊزٱ؛ $3",
+       "rclinks": "نماونیڌن دینائی $1 آلشڌ مؽن $2 رۊز ٱخیر",
        "diff": "تفاوت",
        "hist": "گزارش",
        "hide": "قایم شدن",
        "recentchangeslinked-feed": "تغییرات مرتبط",
        "recentchangeslinked-toolbox": "تغییرات مرتبط",
        "recentchangeslinked-title": "تغییرهای مرتبط با $1",
-       "recentchangeslinked-summary": "Ù\86Ù\88Ù\85 Û\8cÙ± Ø¨Ù\84گاÙ\9b Ù\86Ù± Ø¨Ø²Ù\86Û\8cÙ\86 Ø³Û\8c Û\8cÙ\88 Ú©Ø§Ù\9b ØªØ±Ø³ØªØ§Ù\9b Ø¨Û\8aÛ\8cÙ\86 Û\8bÛ\8cراÛ\8cشدآ Ù\87Ù\88Ù\85 Ù¾Û\8cÛ\8bÙ\86د Ø¯Ø§Ø± Û\8bا Ù\87Ù\88Ù\86اÙ\9b Ø¨Ù\86Û\8cٱرÛ\8cÙ\86.(سÛ\8c Ø¯Û\8cاÙ\9bÙ\86 Ù±Ù\86دÙ\88Ù\85ا Û\8cÙ± Ø¯Ø³Ø¯Ù±Ø\9b Ú\86Ù\88Ù\86Ù\88 Ú\86Û\8c Ø§Û\8c Ù\86Ù± Ø¨Ø²Ù\86Û\8cÙ\86\86Ù\88Ù\85 Ø¯Ø³Ø¯Ù±). \nØ¢Ù\84شدکارÛ\8cا Ø¨Ù\84گاÙ\9bÛ\8cÙ\84Û\8c Ú©Ø§Ù\9b Ù\85اÙ\9bÙ\86 Ø³Û\8cائاÙ\9b Ø³Ø§Ù\9bÛ\8cÙ\84 Ø¨Ø±Ú¯ Ø§Û\8cسا Ø¨Û\8aÙ\86 Ú\86Ù\88Ù\86Ù\88 <strong>Ù\85اÙ\9bÙ\86 Ù¾Ù\88ر</strong> Ø¯Û\8cارÛ\8c Ø§Ù\9bÚ©Ù\88Ù\86Ù\86.",
+       "recentchangeslinked-summary": "Ù\86Ù\88Ù\85 Û\8cÙ± Ø¨Ù±Ù\84Ù\9bگاÙ\92 Ù\86اÙ\92 Ú¤Ø§Ù\85ؽ Ú©Ù\88Ù\86Û\8cÙ\86 ØªØ§ Ø¢Ù\84Ø´Ú\8cکارÛ\8c Ø¨Ù±Ù\84Ù\9bÚ¯Û\8cÙ±Ù\84 Ú©Ø§Ù\92 Ú¤Ø§Ù\92 Ù\87Ù\88Ù\85ؽÙ\86Ú\8cارکرÚ\8cÛ\8cÙ\86اÙ\92 Û\8cا Ø²Ø§Ù\92 Ù\87Ù\88 Ù\85ؽÙ\86Ú\8cارÛ\8c Ú¯Ø±Û\8cÚ\8cÛ\8cÙ\86 Ù\86اÙ\92 Ú¤Ú¤Û\8cÙ\86Û\8cÙ\86(سÛ\8c Ù\86Û\8cٱشÚ\8cÙ\86 Ù\87Ù\88Ù\85 Ú¤Ù±Ù\86Ù\88Ù\86اÙ\92 Û\8cÙ± Ø¨Ù\86Ú©Û\8a Ú\86Ù\88Ù\86Ù\88Ý© Ú\86Û\8c Ø§Ø¦Û\8c Ù\86اÙ\92 Ú¤Ø²Ù±Ù\86Û\8cÙ\86\86Ù\88Ù\85 Ø¨Ù\88Ù\86Ú©Û\8a). \nØ¢Ù\84Ø´Ú\8cکارÛ\8cÙ±Ù\84 Ø¨Ù\84Ù\9bÚ¯Û\8cÙ±Ù\84ؽ Ú©Ø§Ù\92 Ù\85ؽÙ\86[[Special:Watchlist|Ù\81اÙ\9bئرست Ø¯Û\8cÙ\86اگرÛ\8cÙ±Ù\84 Ø§Ø½Ø³Ø§]] Ù\87ؽÚ\8cÙ\86 <strong>ؤٱرÚ\8cار</strong> Ù\86Ù\85اÛ\8c Ø§Ù\92Ú¤Û\8aÙ\87اÙ\92",
        "recentchangeslinked-page": "نوم بألگە:",
        "recentchangeslinked-to": "آلشتیایی که د بلگه یا هوم پیوند بینه وه جا بلگه دئیه بیه نشو بیه",
        "upload": "آپلود فایل",
        "file-anchor-link": "فایل",
        "filehist": "گزارش تاریخی فایل",
        "filehist-help": "رو تاریخ‌ها کلیک کنید تا نسخه مرتبط را ببینین.",
+       "filehist-revert": "لرنیئن",
        "filehist-current": "جاری",
        "filehist-datetime": "تاریخ/زمان",
        "filehist-thumb": "عسگ کۈچير وابيه",
        "filehist-thumbtext": "كۈچير کردن سی نوسقإ $1",
+       "filehist-nothumb": "نڤیڌن بٱن کلکی",
        "filehist-user": "کاربر",
        "filehist-dimensions": "ابعاد",
        "filehist-filesize": "اندازه فایل",
        "filehist-comment": "توضیح",
        "imagelinks": "به کار گرهڌن جانيا",
        "linkstoimage": "ذیل الذکر {{PLURAL:$1|لینکهای صفحه|$1 لینک صفحات}} به ای فایل:",
-       "nolinkstoimage": "هیچ صفحه ای نه که لینک وابیده بوه به ای فایل",
+       "nolinkstoimage": "ای پٱرڤٱناْ مؽن هیچ بٱلٛیاْ نؽڌا",
        "sharedupload": "ای فایل یک آپلود اشتراکی هده و ممکنه زه طریق  پروژه‌های دیگه  هم قابل دسترسی بوه",
        "sharedupload-desc-here": "جانيایي کإ مإن $1 گاشا مإن پوروجأیل هإني ب کار گرهڌإ وابيڌإ.\nتۉزي سي [$2 file description page] مإن دإڤۈن دياري کردإ",
        "uploadnewversion-linktext": "آپلود کردن یه نسخه تازه زه ای فایل",
        "randomredirect": "تغییر مسیر اتفاقی",
        "statistics": "آمار",
        "doubleredirects": "تغییر مسیر دوبله",
+       "double-redirect-fixer": "ساموݩکار آلشڌتورٱل",
        "brokenredirects": "تغییرمسیرهای اشکسته وخراو",
        "withoutinterwiki": "صفحات بدون لینک های زبانی میان ویکی",
        "fewestrevisions": "صفحات با کمترین تعداداصلاحات وتجدیدنظرها",
        "mostcategories": "صفحات با بیشترین تعداد دسته بندی",
        "mostimages": "تصاویری که بیشتر زه همه به هونو لینک داده وابیده",
        "mostrevisions": "صفحات با تعداد اصلاحات زیاد",
-       "prefixindex": "نماÛ\8cÙ\87 Ù¾Û\8cØ´Ù\88Ù\86دÛ\8c",
+       "prefixindex": "نماÙ\88اÙ\9b Ù\86Ù\87اڤٱÙ\86Ú\8c",
        "shortpages": "صفحات کوتاه",
        "longpages": "صفحات بلند",
        "deadendpages": "صفحات بن بست ولاینحل",
        "booksources": "منابع کتاب",
        "booksources-search-legend": "پی جۈري سي سرچشمإیل کتاڤ",
        "booksources-search": "پی جۈري",
-       "specialloguserlabel": "کاربر:",
-       "speciallogtitlelabel": "عÙ\86Ù\88ان:",
+       "specialloguserlabel": "مؽنتور:",
+       "speciallogtitlelabel": "اÙ\88Ú\8cÚ¤ان:",
        "log": "نمایه ها",
-       "all-logs-page": "همه نمایه ها",
+       "all-logs-page": "گشڌنمائیٱل",
        "allpages": "همه صفحات",
        "nextpage": "صفحه بعدی ($1)",
        "prevpage": "صفحه قبلی($1)",
        "allarticles": "همه صفحات",
        "allpagessubmit": "برو",
        "allpagesprefix": "نشو دادن صفحات همراه با پیشوند:",
+       "allpages-hide-redirects": "بؽ دیارنیڌن آلشڌتورٱل",
        "categories": "دسته آ",
        "emailuser": "امیل ای کاربر",
-       "watchlist": "لیست پیگیریهای مو",
+       "watchlist": "لیسڌ دیناگریٱل مو",
        "mywatchlist": "سإیل برگ",
+       "watchlistfor2": "سی $1 $2",
        "addedwatchtext": "صفحه «<nowiki>$1</nowiki>» به [[Special:Watchlist|لیست پی‌گیری‌های ]] ایسا\nاضاف وابید.\nتغییرات این صفحه و صفحه صحبت مر بوطه اش در آینده ایچو لیست ابوه. به‌علاوه، ای صفحه، سی واضح‌تر دیده وابیدن در [[Special:RecentChanges|فهرست تغییرات اخیر]] به شکل <b>سیاه</b> ایا.\n\nایر بعدا خواستین ای  صفحه زه لیست پی‌گیریهاتو ورداشته بوه، رو «'''عدم پی‌گیری'''» در بالای صفحه کلیک کنین.",
        "removedwatchtext": "آن صفحه\"[[:$1]]\" جابجا وابیده زه[[Special:لیست پیگیری|لیست پیگیری ایسا]].",
        "watch": "پی‌گیری",
        "watchthispage": "پیگیری ای صفحه",
        "unwatch": "پيگري نبيڎه",
-       "watchlist-details": "{{PLURAL:$1|$1 صفحه|$1 صفحات}} درلیست پیگیری ایسا, صفحات صحبت حساب نیبوه.",
-       "wlshowlast": "نمایش آخرین $1 ساعت $2 روز",
+       "watchlist-details": "{{PLURAL:$1|$1 بٱلٛگاْ|$1 بٱلٛگیٱل}} مؽن لیست دیناگری ایسا,هؽڌا",
+       "wlheader-showupdated": "بٱلٛگیٱلؽ کاْ دیناتٱر زاْ آخرین ساٛل اؽسا آلشڌ آڤیڌ ناْ<strong>پورٱنڳ</strong> نماونیڌاْ آڤیڌناْ",
+       "wlnote": "ڤاْ لٱم {{PLURAL:$1|آلشڌؽ|<strong>$1</strong> آلشڌؽ}} کاْ ڤاْ {{PLURAL:$2|سات|<strong>$2</strong> سات}} رٱئڌاْ انجوم آڤؽڌ مۉجۊڌ هؽڌا،ؤرگار دوکرٱت ڤینی دینائی: $3، $4",
+       "wlshowlast": "نماونیڌن ٱخیری $1 سات $2 رۊز",
+       "watchlist-options": "دزاٛیٱل دیناگری",
        "watching": "مئن حالت پي جوري",
        "unwatching": "درحالت عدم پیگیری...",
+       "enotif_reset": "دزاٛکرڌن گشڌ بٱلٛگیٱل ڤاْ اوڌڤان نیٱشڌ آڤیڌاْ",
        "deletepage": "حذف صفحه",
        "historywarning": "توجه: آن صفحه ای که ایسا اخوین حذف کنین گزارش تاریخی داره:",
        "confirmdeletetext": "ایسا اخوین یه صفحه بلند با همه گزارش تاریخی هونه حذف کنین.\nلطفا کانفیرم یا تائید کنین که تمایل وقصد ای کار را دارین, وایسا دوین یا می دانید نتایج وآثار ای کار را, و ایسا انجام ادین ای کار را مطابق با [[{{MediaWiki:Policy-url}}|سیاست‌ها]].",
        "rollbacklink": "عقب گرد",
        "rollbacklinkcount": "چڤاسإ کردن $1 {{PLURAL:$1|ویرایشت|ویرایشتیا}}",
        "protectlogpage": "نمایه حفاظت وحمایت",
+       "protectedarticle": "پٱر و پیم ڤابیڌاٛ \"[[$1]]\"",
+       "modifiedarticleprotection": "بارت هناگری«[[$1]]» ناْ آلشڌنیڌ",
        "prot_1movedto2": "[[$1]] جابجا وابید به[[$2]]",
        "protectcomment": "دلیل:",
        "protectexpiry": "سپری وابیڎه ا:",
        "protect-expiry-options": "۱ ساعت:1 hour,۱ روز:1 day,۱ هفته:1 week,۲ هفته:2 weeks,۱ ماه:1 month,۳ ماه:3 months,۶ ماه:6 months,۱ سال:1 year,بی‌نهایت:infinite",
        "restriction-type": "اجازه:",
        "restriction-level": "سطح محدودیت:",
+       "restriction-edit": "ڤيرایشت کردن",
+       "restriction-move": "جا ڤا جا کردن",
        "undeletebtn": "بازیافت",
        "namespace": "فضای نام:",
        "invert": "انتخاب برعکس بوه",
        "contributions-title": "هومیاری كاریارآ سی $1",
        "mycontris": "هومياریا",
        "anoncontribs": "هومياریا",
-       "contribsub2": "سی $1 ($2)",
+       "contribsub2": "سی {{GENDER:$3|$1}} ($2)",
+       "nocontribs": "هیچ آلشڌؽ ڤا ای دیاریٱل جوساْ نڤیڌ",
        "uctop": "تازاٛ باۋ",
        "month": "در این ماه (و قبل زه آن):",
        "year": "در ای سال (وقبل زه آن):",
        "sp-contributions-newbies-sub": "سی حسابهای کاربری تازه",
        "sp-contributions-blocklog": "نمایه بسته وابیده ها",
+       "sp-contributions-uploads": "سوڤارکردا",
        "sp-contributions-logs": "نۋشدن روخ ۋندا",
        "sp-contributions-talk": "چٱک چناٛ",
        "sp-contributions-search": "سی هومیاریا پاٛی جۊری ۋابۊ",
        "blockip": "بستن کاربر",
        "ipboptions": "۲ ساعت:2 hours,۱ روز:1 day,۳ روز:3 days,۱ هفته:1 week,۲ هفته:2 weeks,۱ ماه:1 month,۳ ماه:3 months,۶ ماه:6 months,۱ سال:1 year,بی‌نهایت:infinite",
        "ipblocklist": "آدرسهای  آی پی وکاربران بسته وابیدند",
+       "infiniteblock": "بؽ تٱ",
        "blocklink": "بسته بوه !",
        "unblocklink": "باز بوه",
        "contribslink": "ھأیاری",
        "blocklogpage": "نمایه _ بسته‌وابیده‌ها",
        "blocklogentry": "بسته وابید [[$1]] با سپری وابیدن وقت زه $2 $3",
+       "reblock-logentry": "ساموکارٱل بورسناْ دٱسرٱسی [[$1]]آلشڌ ڤاْ تٱهاْ بورسناْ دٱسرٱسی مؽن $2 $3",
+       "block-log-flags-nocreate": "هرنڳ ؤرکلنیڌن هساڤ بؽ هرنڳ آڤیڌ",
+       "proxyblocker": "ؤٱرڤٱناْ پروکسی",
        "movepagetext": "با استفاده زه فرم زیر نام صفحه تغییر اکنه و همه گزارش تاریخی هو به نام تازه جابجا ابوه.\nعنوان کهنه تبدیل به یک صفحه تغییر مسیر به عنوان جدید ابوه.\nایسا ترین بطور اتوماتیک تغییر مسیر های مربوط به عنوان اصلی رو به روز رسانی کنین. ایر ایسا مطمئن نهدین با دیدن یونو مطمئن بوین:\n[[Special:تغییر مسیر دوبل|دوبل ]] یا[[Special:تغییرمسیر خروا یا اشکسته|تغییرمسیرهای خراو یا اشکسته]].\n\nلینکهایی که به عنوان صفحه قدیمی هدن تغییر نه کنن حتماً تغییر مسیرهای دوبل یا اشکسته و خراو را بررسی کنین.\n'''ایسا''' مسئول اطمینان زه یو هدین که لینکها هنی به همان‌جایی که قرار هده برن.\n\nتوجه کنین که ایر زه قبل صفحه‌ای در عنوان تازه وجود داشته بوه صفحه منتقل '''نه بوه'''،\nمیر یو که آن صفحه خالی یا تغییر مسیر بوه و گزارش تاریخی اصلاح نداشته بوه.\n یعنی ایر اشتباه کردین ترین صفحه را به همان جایی که زه هو جابجا وابیدین برگردانین، و  نترین رو صفحات موجود بنویسین\n\n'''هشدار!'''\nجابجایی صفحات به نام تازه ممکنه  تغییر کلی و غیرمنتظره‌ای سی\n صفحات دوست داشتنی داشته بوه ؛\nلطفاً مطمئن بوین که قبل زه جابجا کردن صفحه، عواقب ای کار را درک اکنین.",
        "movepagetalktext": "صفحه صحبت مربوط، ایر وجود داشته بوه، بطور اتوماتیک همراه با صفحه اصلی\n جابجا ابوه '''میر یو که''' :\n* در حال جابجایی صفحه زه ای فضای نام به فضای نام دیگری بوین،\n* یه صفحه صحبت غیرخالی تحت ای نام تازه وجود داشته بوه، یا\n* کادر زیر را تیک نزده بوین.\n\nدر ای موارد، وا صفحه را بطور دستی جابجا کرده و یا محتویات دو صفحه را با اصلاح ادغام کنین.",
        "newtitle": "به عنوان تازه:",
        "tooltip-feed-rss": "تغذیه آراس اس برای ای صفحه",
        "tooltip-feed-atom": "تغذیه کوچیک ترین جزء  ای صفحه",
        "tooltip-t-contributions": "ديإن نومگأآیي کإ {{GENDER:$1|اي کاریار}} هومياريسۈن کردإ",
-       "tooltip-t-emailuser": "ارسال یه امیل به ای کاربر",
+       "tooltip-t-emailuser": "فرشناڌن ب ٱنجوماناماْ {{GENDER:$1|ای کاریار}}",
        "tooltip-t-upload": "آپلودکردن فایلها",
        "tooltip-t-specialpages": "فهرست همه صفحات مخصوص",
        "tooltip-t-print": "نسخه فابل پرینت ای صفحه",
        "tooltip-undo": "انجوم نگرتن ای ویرایشت ورگن و همه فرمیا ویرایشت تانه که حالت پیش سیل واکو.یه اجازه میئه سی اضاف کردن یه دلیل د چکسته.",
        "tooltip-summary": "یأ چکسدأ کۈچير ڤارڌ کونين",
        "simpleantispam-label": "Anti-spam check.\nپور<strong>نکنين</strong> ايچو نأ!",
+       "pageinfo-title": "ڌونائی زاْ «$1»",
+       "pageinfo-header-basic": "ڌونائیٱل بٱلٛگاْ",
+       "pageinfo-header-edits": "ڤیرایشت ڤیرگار",
+       "pageinfo-header-restrictions": "هناڌاری زاْ بٱلٛگاْ",
+       "pageinfo-header-properties": "ؤیژگیٱل بٱلٛگاْ",
+       "pageinfo-display-title": "نماونیڌن داسوݩ",
+       "pageinfo-default-sort": "کاٛلیت یٱتورنیڌن نهافٱرز",
+       "pageinfo-length": "هنا بٱلگاْ (ڤایڌ)",
+       "pageinfo-article-id": "دیاروناْ بٱلٛگاْ",
+       "pageinfo-language": "زڤون هؽلنیڌیٱل بٱلٛگاْ",
+       "pageinfo-content-model": "بارت هؽلنیڌاْ بٱلٛگاْ",
+       "pageinfo-robot-policy": "فاٛئرست کرڌن ڤا روڤات",
+       "pageinfo-robot-index": "موجاز",
+       "pageinfo-robot-noindex": "بؽ اعتڤار",
+       "pageinfo-watchers": "شوماراٛ دیناگروناٛ بٱلٛگاْ",
+       "pageinfo-few-watchers": " ساوا تٱر زاْ $1 {{PLURAL:$1| دیناگری|دیناگری}}",
+       "pageinfo-redirects-name": "بور آلشڌ لۊرٱل ڤاْ ای بٱلٛگاْ",
+       "pageinfo-subpages-name": "زؽر بٱلٛگیٱل ای بٱلٛگاْ",
+       "pageinfo-subpages-value": "1 ($2 {{PLURAL:$2|آلشڌتور|آلشڌ تور}}; $3 {{PLURAL:$3|خاٛراز آلشڌ تور|خاٛراز آلشڌ تور}})",
+       "pageinfo-firstuser": "بٱلگاْ راس کون",
+       "pageinfo-lastuser": "آخری ڤیرایشتکار",
+       "pageinfo-lasttime": "گات آخری ڤیرایشت",
+       "pageinfo-magic-words": "{{PLURAL:$1|قساْ|قساْ}} جادۊیی ($1)",
+       "pageinfo-hidden-categories": "{{PLURAL:$1| بنکۊ|بنکۊ}} بؽ دیار ( $1 )",
+       "pageinfo-templates": "{{PLURAL:$1|اولگۊیٱل|اولگۊیٱل}} اْسفاڌاْ آڤیڌاْ ($1)",
        "pageinfo-toolboxlink": "دونسمندیا بلگه",
+       "pageinfo-contentpage": "باٛئنٱت آڤیڌاْ ڤاْ اوڌڤان بٱلٛگاْ موهتٱڤائی",
+       "pageinfo-contentpage-yes": "هٱراٛ",
+       "patrol-log-page": "سیاهاْ لاٛر",
        "previousdiff": "← اصلاح قدیمی",
        "nextdiff": "تفاوت بعدی→",
        "file-info-size": "$1 × $2 پیکسل, اندازه فایل: $3, MIME نوع: $4",
+       "file-info-size-pages": "<span style=\"direction:ltr\">$1 × $2</span> نوخڌاْ، مٱشلٱقی پٱرڤٱناْ: $3، نوع MIME پٱرڤٱناْ: $4، $5 بٱلٛگاْ",
        "file-nohires": "قابلیت تفکیک بالاتری در دسترس نه.",
        "svg-long-desc": "SVG فایل, تقریبا$1 × $2 پیکسل, اندازه فایل: $3",
        "show-big-image": "جانیا اصلی",
        "namespacesall": "همه",
        "monthsall": "همه ماهها",
        "semicolon-separator": "؛&#32;",
+       "imgmultipagenext": "بٱلٛگاْ دینائی",
+       "imgmultigo": "رۉڤا",
+       "imgmultigoto": "رٱئڌن ڤاٛ بٱلٛگاْ $1",
+       "watchlisttools-clear": "پاکسانیڌن فاٛئرسڌ دیناگری",
        "watchlisttools-view": "نشودادن تغییرات مربوطه",
        "watchlisttools-edit": "نشودادن واصلاح کردن لیست پیگیریها",
        "watchlisttools-raw": "اصلاح لیست خام پی‌گیری‌ها",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|چک چنه]])",
        "version": "ترجمه یا تفسیر",
+       "redirect": "آلشد لۊر ڤا پٱرڤٱناْ،مؽنتور،بٱلٛگاْ دبارنوماْ نوسخاْ",
+       "redirect-submit": "رۉ",
+       "redirect-value": "ٱرزایشت:",
+       "redirect-user": "نوم دیارکون کاریار:",
+       "redirect-page": "دیارکار بٱلٛگاْ",
+       "redirect-file": "نوم جانیا",
        "specialpages": "بلگاٛ آ ۋیجٱ",
-       "tag-filter": "[[Special:سردیسا|سرديس]] فيلتر:",
+       "tag-filter": "[[Special:سٱرڌیسا|سٱرديس]]فیلتر:",
        "tag-list-wrapper": "[[Special:Tags|{{PLURAL:$1|سرديس|سرديسا}}]]: $2",
+       "tags-active-yes": "هٱراٛ",
+       "tags-active-no": "نٱ",
+       "tags-hitcount": "$1 {{PLURAL:$1|آلشت|آلشتا}}",
        "logentry-delete-delete": "$1 بألگأ {{GENDER:$2|پاکسا ڤابيأ}} $3",
+       "logentry-delete-restore": "$1{{GENDER:$2|آلشڌ کرڌن}} بٱلٛگاْ ناْ$3سی$4",
+       "logentry-delete-revision": "$1 دیاری {{PLURAL:$5|یٱ نوسخاْ|$5 نوسخاْ}} بٱلٛگاْ $3 ناْ{{GENDER:$2|آلشڌکرڌ}}: $4",
+       "revdelete-content-hid": "هؽلنیڌناْ بؽڌیارکرڌ",
        "logentry-move-move": "$1 {{GENDER:$2|جا ب جا کردإ}} بألگأ $3 نأ سي $4",
+       "logentry-move-move_redir": "$1 بٱلٛگاْ $3 ناْ ڤاْ $4 کاْ آلشڌ تور ڤیڌاْ {{GENDER:$2|کل کرڌ}}",
+       "logentry-patrol-patrol-auto": "$1 نوسخهٔ $4 بٱلٛگاْ $3 ناْ خودکار ڤاْ عنڤان لرخوؤٱرداٛ {{GENDER:$2|دزاْ کونین}}",
        "logentry-newusers-create": "هساڤ کارياري $1 {{GENDER:$2|راسد ڤابي}}",
+       "logentry-newusers-autocreate": "حساڤ $1  ڤاْ بارت خوڌکار {{GENDER:$2|ؤرکل آڤیڌاْ}}",
        "logentry-upload-upload": "$1 {{GENDER:$2|سوڤار کرده}} $3",
-       "searchsuggest-search": "جستن {{SITENAME}}"
+       "searchsuggest-search": "جستن {{SITENAME}}",
+       "duration-days": "$1 رۊز",
+       "randomrootpage": "بٱلٛگاْ بونی تٱساڌفی"
 }
index c129fc2..f4e74cb 100644 (file)
        "blockip": "Stankañ an {{GENDER:$1|implijer|implijerez}}",
        "blockiptext": "Grit gant ar furmskrid a-is evit stankañ ar moned skrivañ ouzh ur chomlec'h IP pe un implijer bennak.\nSeurt diarbennoù n'hallont bezañ kemeret nemet evit mirout ouzh ar vandalerezh hag a-du gant ar [[{{MediaWiki:Policy-url}}|reolennoù da vezañ heuliet]].\nRoit a-is an abeg resis (o verkañ, da skouer, roll ar pajennoù bet graet gaou outo).\nGallout a rit stankañ lijorennoù chomlec'hioù IP en ur ober gant an ereadur [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] syntax; /$1 eo al lijorenn hirañ aotreet evit IPv4 ha /$2 evit IPv6.",
        "ipaddressorusername": "Chomlec'h IP pe anv implijer",
-       "ipbexpiry": "Pad ar stankadenn",
        "ipbreason": "Abeg :",
        "ipbreason-dropdown": "*Abegoù stankañ boutinañ\n** Degas titouroù faos\n** Tennañ danvez eus ar pajennoù\n** Degas liammoù Strobus war-du lec'hiennoù diavaez\n** Degas danvez diboell/dizoare er pajennoù\n** Emzalc'h hegazus/handeus betek re\n** Mont re bell gant implij meur a gont\n** Anv implijer n'eo ket aotreet",
        "ipb-hardblock": "Mirout ouzh an implijerien kevreet da zegas kemmoù adalek ar chomlec'h IP-mañ",
        "ipb-disableusertalk": "Mirout ouzh an implijer-mañ da implijout e bajenn gaozeal dezhañ e-unan e-keit hag emañ stanket",
        "ipb-change-block": "Adstankañ an implijer-mañ gant an hevelep arventennoù",
        "ipb-confirm": "Kadarnaat ar stankadenn",
-       "ipb-type-label": "Seurt",
        "ipb-pages-label": "Pajennoù",
        "badipaddress": "Kamm eo ar chomlec'h IP.",
        "blockipsuccesssub": "Stankadenn deuet da benn vat",
        "ipb-blocklist": "Teuler ur sell ouzh roll an dud stanket evit poent",
        "ipb-blocklist-contribs": "Degasadennoù evit $1",
        "ipb-blocklist-duration-left": "$1 a chom",
+       "block-expiry": "Pad ar stankadenn",
        "unblockip": "Distankañ ur chomlec'h IP",
        "unblockiptext": "Grit gant ar furmskrid a-is evit adsevel ar moned skrivañ ouzh ur chomlec'h IP bet stanket a-gent.",
        "ipusubmit": "Paouez gant ar stankadenn-mañ",
index 1c93e6e..2120a41 100644 (file)
        "blockip": "Blokiraj {{GENDER:$1|korisnika|korisnicu}}",
        "blockiptext": "Koristite donji obrazac da biste uklonili prava pisanja određenoj IP-adresi ili korisničkom imenu.\nOvo bi se trebalo raditi samo da bi se spriječio vandalizam, i u skladu sa [[{{MediaWiki:Policy-url}}|smjernicama]].\nIspod upišite konkretan razlog (naprimjer, navedite koje su stranice vandalizirane).\nMožete blokirati IP-opsege koristeći sintaksu [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR-a]; najveći dozvoljeni opseg za IPv4 je /$1, a za IPv6 /$2.",
        "ipaddressorusername": "IP-adresa ili korisničko ime:",
-       "ipbexpiry": "Ističe:",
        "ipbreason": "Razlog:",
        "ipbreason-dropdown": "*Najčešći razlozi blokiranja\n**Netačne informacije\n**Uklanjanje sadržaja stranica\n**Postavljanje spam vanjskih linkova\n**Ubacivanje gluposti/grafita\n**Osobni napadi (ili napadačko ponašanje)\n**Čarapare (zloupotreba više korisničkih računa)\n**Neprihvatljivo korisničko ime",
        "ipb-hardblock": "Spriječi prijavljene korisnike da uređuju s ove IP-adrese",
        "ipb-blocklist": "Vidi postojeće blokade",
        "ipb-blocklist-contribs": "Doprinosi za {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "još $1",
+       "block-expiry": "Ističe:",
        "unblockip": "Odblokiraj korisnika",
        "unblockiptext": "Upotrebite donji upitnik da bi ste vratili\npravo pisanja ranije blokiranoj IP adresi\nili korisničkom imenu.",
        "ipusubmit": "Ukloni ovu blokadu",
index e4dbb15..56fc976 100644 (file)
        "resetpass-abort-generic": "Una extensió ha interromput el canvi de contrasenya.",
        "resetpass-expired": "La contrasenya ha vençut. Definiu una contrasenya nova per iniciar la sessió.",
        "resetpass-expired-soft": "La contrasenya ha vençut i cal canviar-la. Trieu una contrasenya nova ara, o feu clic a «{{int:authprovider-resetpass-skip-label}}» per a canviar-la més endavant.",
+       "resetpass-validity": "La contrasenya no és vàlida: $1\n\nEstabliu-ne una de nova per a iniciar una sessió.",
        "resetpass-validity-soft": "La contrasenya no és vàlida: $1\n\nTrieu una nova contrasenya ara o cliqueu \"{{int:authprovider-resetpass-skip-label}}\" per a canviar-la més endavant.",
        "passwordreset": "Restablir contrasenya",
        "passwordreset-text-one": "Cal completar aquest formulari per reiniciar la contrasenya",
        "blockip": "Bloca {{GENDER:$1|l'usuari|la usuària}}",
        "blockiptext": "Empreu el següent formulari per blocar l'accés\nd'escriptura des d'una adreça IP específica o des d'un usuari determinat.\naixò només s'hauria de fer per prevenir el vandalisme, i\nd'acord amb la [[{{MediaWiki:Policy-url}}|política del projecte]].\nEmpleneu el diàleg de sota amb un motiu específic (per exemple, citant\nquines pàgines en concret estan sent vandalitzades).\nPodeu blocar uns rangs d'adreces IP fent servir la sintaxi [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]. El rang superior permès és /$1 per a IPv4 i /$2 per a IPv6.",
        "ipaddressorusername": "Adreça IP o nom de l'usuari",
-       "ipbexpiry": "Venciment",
        "ipbreason": "Motiu:",
        "ipbreason-dropdown": "*Motius de blocatge més freqüents\n** Inserció d'informació falsa\n** Supressió de contingut sense justificació\n** Inserció d'enllaços promocionals (spam)\n** Inserció de contingut sense cap sentit\n** Conducta intimidatòria o hostil\n** Abús de comptes d'usuari múltiples\n** Nom d'usuari no acceptable",
        "ipb-hardblock": "Impedeix que els usuaris registrats puguin editar des d'aquesta adreça IP",
        "ipb-confirm": "Confirma el blocatge",
        "ipb-sitewide": "A tot el lloc web",
        "ipb-partial": "Parcial",
-       "ipb-type-label": "Tipus",
        "ipb-pages-label": "Pàgines",
        "badipaddress": "L'adreça IP no té el format correcte.",
        "blockipsuccesssub": "S'ha blocat amb èxit",
        "ipb-blocklist": "Llista els blocatges existents",
        "ipb-blocklist-contribs": "Contribucions de {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 restant",
+       "block-expiry": "Venciment",
        "unblockip": "Desbloca l'usuari",
        "unblockiptext": "Empreu el següent formulari per restaurar l'accés d'escriptura a una adreça IP o un usuari prèviament blocat.",
        "ipusubmit": "Desbloca aquesta adreça",
index 829c67a..b3ed892 100644 (file)
        "nbytes": "$1 {{PLURAL:$1|cê-ciék}}",
        "nlinks": "$1 ciáh {{PLURAL:$1|lièng-giék}}",
        "nmembers": "$1隻成員{{PLURAL:$1}}",
+       "uncategorizedpages": "Mò̤ hŭng-lôi gì hiĕk",
        "wantedcategories": "卜挃其類別",
        "wantedpages": "卜挃其頁",
        "mostlinked": "鏈接第一価其頁",
        "mostlinkedcategories": "鏈接第一価其類別",
+       "mostlinkedtemplates": "Ké̤ṳk īng-ê̤ṳng dĕk sâ̤ gì hiĕk",
        "mostcategories": "有第一価類別其頁面",
        "mostimages": "鏈接第一価其文件",
        "mostrevisions": "最近修改其頁面",
        "sp-contributions-username": "IP地址或者用戶名:",
        "sp-contributions-toponly": "Nâ hiēng-sék muōi-huòi siŭ-gāi gì biĕng-cĭk",
        "sp-contributions-newonly": "Nâ hiēng-sék cháung-gióng hiĕk-miêng gì biĕng-cĭk",
+       "sp-contributions-hideminor": "Káung-kī ché̤ṳ-iéu biĕng-cĭk",
        "sp-contributions-submit": "尋討",
        "whatlinkshere": "Diē-nē̤ lièng gáu cē̤-nē̤",
        "whatlinkshere-title": "鏈接遘$1其頁面",
        "blockip": "封鎖{{GENDER:$1|用戶}}",
        "blockiptext": "Dèng lâ â-dā̤ gì dăng-dăng, kō̤-ī dṳ̀-kó̤ dĕk-dêng IP dê-cī hĕ̤k-chiā ê̤ṳng-hô-miàng biĕng-cĭk gì guòng-âing. \nCuòi nâ-sāi ĕng lā̤ huòng-cī pó-huâi, gó gă diŏh hù-hăk [[{{MediaWiki:Policy-url}}|huŏng-cĕng gâe̤ng céng-cháik]]. \nChiāng găk â-dā̤ dèng-siā gê̤ṳ-tā̤ gì lī-iù, bī-ṳ̀ gōng, īng-sŭk siŏh-piĕng ké̤ṳk pó-huâi gì hiĕk-miêng.\nNṳ̄ kō̤-ī sāi [//cdo.wikipedia.org/wiki/ù lôi-biék mĭk-găng lô-iù CIDR] ngṳ̄-huák gáik-sék hŭng-sō̤ IP huâng-ùi, IPv4 dék duâi ṳ̄ng-hṳ̄ gì huâng-ùi sê /$1, IPv6 sê  /$2.",
        "ipaddressorusername": "IP地址或者用戶名:",
-       "ipbexpiry": "過期:",
        "ipbreason": "原因:",
        "ipbreason-dropdown": "*普通封鎖原因\n** 加添假其信息\n** 塗掉頁面內容\n** 發佈不實信息\n** 亂寫文字\n** 做獃/騷擾\n** 亂開賬戶\n** 亂起用戶名",
        "ipbcreateaccount": "封鎖開賬戶",
        "ipb-unblock-addr": "開封$1",
        "ipb-unblock": "開封鎖蜀隻用戶或者IP地址",
        "ipb-blocklist": "看封鎖單單",
+       "block-expiry": "過期:",
        "unblockip": "開放用戶",
        "ipusubmit": "開放茲地址",
        "unblocked": "[[User:$1|$1]]已經乞開放了。",
        "mw-widgets-abandonedit-discard": "放棄編輯",
        "mw-widgets-abandonedit-keep": "繼續編輯",
        "mw-widgets-abandonedit-title": "汝會確定𣍐?",
+       "mw-widgets-dateinput-no-date": "Nĭk-gĭ gó muôi sōng",
+       "date-range-from": "Kăi-sṳ̄ nĭk-gĭ:",
+       "date-range-to": "Giék-sók nĭk-gĭ:",
        "randomrootpage": "Sùi-gĭ gṳ̆ng-hiĕk-miêng"
 }
index 396be64..b8ce1a8 100644 (file)
        "group-autoconfirmed": "АвтотӀелаьцна декъашхой",
        "group-bot": "Боташ",
        "group-sysop": "Куьйгалхой",
+       "group-interface-admin": "Интерфейсан куьйгалхой",
        "group-bureaucrat": "Бюрократаш",
        "group-suppress": "Ревизораш",
        "group-all": "(массо)",
        "blockip": "Блоктоха {{GENDER:$1|декъашхочун}}",
        "blockiptext": "Бухахь йолу форманца блоктоха IP-адресна цунтӏера дӏаяздарш ца дайта.\nБлоктоха магийна цо зенаш деш делахь кхин хӏокху [[{{MediaWiki:Policy-url}}|низам ца]].\nЛахахь билгалде блоктохарна бахьана.",
        "ipaddressorusername": "IP-адрес я декъашхочун цӀе:",
-       "ipbexpiry": "Хан чекхйолу:",
        "ipbreason": "Бахьана:",
        "ipbreason-dropdown": "* Белхан некъ дӀакъовлар бахьанаш:\n** Харца хаам бар\n** АгӀонан чураниг дӀаяккхар\n** Спам-хьажоргаш арахьара сайташна\n** МаьӀна доцу йоза тӀетохар\n** Декъашхой хьийзабар, кхерамаш тийсар\n** Масийтта лараман яздар зуламан лелаяр\n** Магийтина йоцу декъашхочун цӀе",
        "ipb-hardblock": "Шаш довзийтина болу декъашхошна бехкам бе хӀокху IP-адресца тадарш дан",
        "ipb-blocklist": "Блоктоьхнарш",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} къинхьегам",
        "ipb-blocklist-duration-left": "$1 йисина",
+       "block-expiry": "Хан чекхйолу:",
        "unblockip": "ДӀаякхаблок декъашхочун тӀера",
        "unblockiptext": "Лелае лахара форма IP-адрес тӀера я декъашхойн дӀаяздар тӀера блокдӀайокхуш.",
        "ipusubmit": "ДIаяккха хӀара блок",
index 989c3d9..62b5980 100644 (file)
        "blockip": "بەربەستنی {{GENDER:$1|بەکارھێنەر}}",
        "blockiptext": "لەم فۆرمەی خوارەوە دەتوانی بۆ بەربەست‌کردنی دەست‌پێ‌گەیشتنی نووسین لە ناونیشانێکی ئای‌پی تایبەت یا ناوی بەکارهێنەریەک، کەڵک وەرگریت.\nئەمە تەنها دەبێ بۆ بەرگری لە خراپکاری بەکاربێت و ڕێکەوتنی هەبێ دەگەڵ [[{{MediaWiki:Policy-url}}|سیاسەتەکان]].\nلە خوارەوە هۆکارێک بە ڕوونی بنووسە (بۆ نموونە بە وردی ئەو لاپەڕانە و خراپکاری تێدا کراوە وەک، وەک بەڵگە، بنووسە).",
        "ipaddressorusername": "ناونیشانی ئایپی یان ناوی‌ بەکارھێنەر:",
-       "ipbexpiry": "بەسەرچوون:",
        "ipbreason": "هۆکار:",
        "ipbreason-dropdown": "*ھۆکارە ھاوبەشەکانی بەربستن\n**دانانی زانیاریی ھەڵە\n**لابردنی ناوەرۆکی پەڕەکان\n**بەستەر بۆ پەڕەی دەرەکی نەگونجاو\n**نووسینی قسەی بێ‌مانا و بێ‌سوود\n**ھەڵسوکەوت یان وتاری ھاندەر بۆ توندوتیژی\n**بەکارھێنانی چەند ھەژمار پێکەوە\n**ناوی بەکارھێنەریی نەگونجاو",
        "ipb-hardblock": "بەرگری بەکارھێنەرانی تۆمارکراو بکە لە دەستکاریکردن لە ڕێگەی ناونیشانی ئەم IPیەوە",
        "ipb-blocklist": "دیتنی ئەو بەربەستانەی وا هەیە",
        "ipb-blocklist-contribs": "بەشدارییەکانی {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 ماوە",
+       "block-expiry": "بەسەرچوون:",
        "unblockip": "لە بەربەست‌دەرهێنانی بەکارهێنەر",
        "unblockiptext": "بۆ گەڕاندنەوەی دەست‌پی‌گەیشتنی نووسین بۆ ئەو دوایین ئای‌پی یان بەکارهێنەری بەربەست کراوە، لەو فۆرمەی خوارەوە کەڵک وەرگرە.",
        "ipusubmit": "لابردنی ئەم بەربەستە",
index 8075447..660deed 100644 (file)
        "blockip": "Бу IP адресинден иришимни блок эт",
        "blockiptext": "Ашагъыдаки форманы къулланып белли бир IP адресининъ я да къулланыджынынъ иришимини блок этип оласынъыз. Бу тек вандализмни блок этмек ичюн ве [[{{MediaWiki:Policy-url}}|къаиделерге]] уйгъун оларакъ япылмалы. Ашагъыгъа мытлакъа блок этюв иле багълы бир изаат язынъыз. (меселя: Шу саифелерде вандализм япты).",
        "ipaddressorusername": "IP адреси я да къулланыджы ады",
-       "ipbexpiry": "Битиш муддети",
        "ipbreason": "Себеп",
        "ipbsubmit": "Бу къулланыджыны блок эт",
        "ipbother": "Фаркълы заман",
        "badipaddress": "Янълыш IP адреси",
        "blockipsuccesssub": "Блок этме мувафакъиетнен япылды",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] блок этильди.<br />\nБлок этмелерни козьден кечирмек ичюн [[Special:BlockList|IP адреси блок этильгенлер]] джедвелине бакъынъыз.",
+       "block-expiry": "Битиш муддети",
        "unblockip": "Къулланыджынынъ блок этмесини чыкъар",
        "ipusubmit": "Бу блок этмени чыкъар",
        "ipblocklist": "Блок этильген къулланыджылар ве IP адреслери",
index 17406ef..552ef2f 100644 (file)
        "blockip": "Bu IP adresinden irişimni blok et",
        "blockiptext": "Aşağıdaki formanı qullanıp belli bir IP adresiniñ ya da qullanıcınıñ irişimini blok etip olasıñız. Bu tek vandalizmni blok etmek içün ve [[{{MediaWiki:Policy-url}}|qaidelerge]] uyğun olaraq yapılmalı. Aşağığa mıtlaqa blok etüv ile bağlı bir izaat yazıñız. (meselâ: Şu saifelerde vandalizm yaptı).",
        "ipaddressorusername": "IP adresi ya da qullanıcı adı",
-       "ipbexpiry": "Bitiş müddeti",
        "ipbreason": "Sebep",
        "ipbsubmit": "Bu qullanıcını blok et",
        "ipbother": "Farqlı zaman",
        "badipaddress": "Yañlış IP adresi",
        "blockipsuccesssub": "Blok etme muvafaqiyetnen yapıldı",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] blok etildi.<br />\nBlok etmelerni közden keçirmek içün [[Special:BlockList|IP adresi blok etilgenler]] cedveline baqıñız.",
+       "block-expiry": "Bitiş müddeti",
        "unblockip": "Qullanıcınıñ blok etmesini çıqar",
        "ipusubmit": "Bu blok etmeni çıqar",
        "ipblocklist": "Blok etilgen qullanıcılar ve IP adresleri",
index 405b970..524a654 100644 (file)
        "resetpass-abort-generic": "Změna hesla byla zablokována rozšířením.",
        "resetpass-expired": "Platnost vašeho hesla vypršela. Pro přihlášení si nastavte nové heslo.",
        "resetpass-expired-soft": "Platnost vašeho hesla vypršela, musíte si nastavit nové. Zvolte si nové heslo nebo klikněte na „{{int:authprovider-resetpass-skip-label}}“ a nastavte si ho později.",
+       "resetpass-validity": "Vaše heslo není platné: $1\n\nPro přihlášení si prosím nastavte nové heslo.",
        "resetpass-validity-soft": "Vaše heslo není platné: $1\n\nZvolte si nové heslo nebo klikněte na „{{int:authprovider-resetpass-skip-label}}“ a nastavte si ho později.",
        "passwordreset": "Reset hesla",
        "passwordreset-text-one": "Pokud chcete e-mailem získat dočasné heslo, vyplňte tento formulář.",
        "blockedtext": "<strong>Vaší IP adrese či uživatelskému jménu byla zablokována možnost editace.</strong>\n\nZablokování {{GENDER:$4|provedl|provedla}} $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 funkci „{{int:emailuser}}“, 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 „{{int:emailuser}}“ 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.",
        "systemblockedtext": "Vaše IP adresa byla automaticky zablokována softwarem MediaWiki.\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\nVaše současná IP adresa je $3.\nProsíme, uveďte tyto údaje při komunikaci se správci.",
+       "actionblockedtext": "Byla vám zablokována možnost provést tuto akci.",
        "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.\nNa stránce [[Special:Preferences|nastavení]] zadejte a nechte potvrdit svou e-mailovou adresu.",
        "blockip": "Zablokovat {{GENDER:$1|uživatele|uživatelku}}",
        "blockiptext": "Tento formulář slouží k zablokování editací z konkrétní IP adresy nebo uživatelského jména.\nToto by mělo být používáno jen v souladu s [[{{MediaWiki:Policy-url}}|pravidly]].\nUdejte přesný důvod níže (například ocitujte, které stránky byly poškozeny).\nIP rozsahy můžete blokovat pomocí syntaxe [https://cs.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; největší dovolený rozsah je /$1 pro IPv4 a /$2 pro IPv6.",
        "ipaddressorusername": "IP adresa nebo uživatelské jméno:",
-       "ipbexpiry": "Čas vypršení:",
        "ipbreason": "Důvod:",
        "ipbreason-dropdown": "*Časté důvody blokování\n** Vkládání klamných informací\n** Odstraňování obsahu stránek\n** Vkládání reklamních externích odkazů\n** Vkládání nesmyslů\n** Zastrašování nebo vyhrožování\n** Zneužívání více účtů\n** Nevhodné uživatelské jméno",
        "ipb-hardblock": "Zabránit přihlášeným uživatelům editovat z této IP adresy",
-       "ipbcreateaccount": "Nedovolit registraci nových uživatelů",
-       "ipbemailban": "Bránit uživateli v posílání e-mailů",
+       "ipbcreateaccount": "Vytváření účtů",
+       "ipbemailban": "Posílání e-mailů",
        "ipbenableautoblock": "Automaticky blokovat IP adresy používané tímto uživatelem",
        "ipbsubmit": "Zablokovat",
        "ipbother": "Jiný čas vypršení:",
        "ipboptions": "2 hodiny:2 hours,1 den:1 day,3 dny:3 days,1 týden:1 week,2 týdny:2 weeks,1 měsíc:1 month,3 měsíce:3 months,6 měsíců:6 months,1 rok:1 year,do odvolání:infinite",
        "ipbhidename": "Skrýt uživatelské jméno u editací a v seznamech",
        "ipbwatchuser": "Sledovat uživatelskou a diskusní stranu tohoto uživatele",
-       "ipb-disableusertalk": "Zabránit tomuto uživateli editovat vlastní uživatelskou diskusi po dobu zablokování",
+       "ipb-disableusertalk": "Editace vlastní uživatelské diskuse",
        "ipb-change-block": "Znovu zablokovat uživatele s tímto nastavením",
        "ipb-confirm": "Potvrdit zablokování",
        "ipb-sitewide": "Na celém projektu",
        "ipb-partial": "Částečný",
-       "ipb-type-label": "Typ",
        "ipb-pages-label": "Stránky",
        "badipaddress": "Neplatná IP adresa",
        "blockipsuccesssub": "Zablokování uspělo",
        "ipb-blocklist": "Zobrazit probíhající bloky",
        "ipb-blocklist-contribs": "Příspěvky {{GENDER:$1|uživatele|uživatelky}} $1",
        "ipb-blocklist-duration-left": "zbývá $1",
+       "block-actions": "Zablokovat činnosti:",
+       "block-expiry": "Čas vypršení:",
+       "block-options": "Další nastavení:",
+       "block-prevent-edit": "Editace",
+       "block-reason": "Důvod:",
+       "block-target": "Uživatelské jméno nebo IP adresa:",
        "unblockip": "Odblokovat uživatele",
        "unblockiptext": "Tímto formulářem je možno obnovit právo blokované IP adresy či uživatele opět přispívat do {{grammar:2sg|{{SITENAME}}}}.",
        "ipusubmit": "Odblokovat",
        "tooltip-preferences-save": "Uložit nastavení",
        "tooltip-summary": "Zadejte stručné shrnutí",
        "interlanguage-link-title": "$1 – $2",
-       "common.css": "/* Zde uvedené CSS bude ovlivňovat všechny styly */",
+       "common.css": "/* Zde uvedené CSS bude ovlivňovat všechny vzhledy */",
        "print.css": "/* Zde uvedené CSS bude ovlivňovat tiskový výstup */",
        "noscript.css": "/* Zde uvedené CSS bude ovlivňovat uživatele s vypnutým JavaScriptem */",
        "group-autoconfirmed.css": "/* Zde uvedené CSS bude ovlivňovat pouze automaticky schválené uživatele */",
        "group-sysop.css": "/* Zde uvedené CSS bude ovlivňovat pouze správce */",
        "group-bureaucrat.css": "/* Zde uvedené CSS bude ovlivňovat pouze byrokraty */",
        "common.json": "/* Zde uvedený JSON se načte pro všechny uživatele při načtení každé stránky. */",
-       "common.js": "/* Zde uvedený JavaScript bude použit pro všechny uživatele při načtení každé stránky. */",
+       "common.js": "/* Zde uvedený JavaScript bude použit pro všechny uživatele při načtení každé stránky */",
        "group-autoconfirmed.js": "/* Zde uvedený JavaScript bude použit pouze pro automaticky schválené uživatele */",
        "group-user.js": "/* Zde uvedený JavaScript bude použit pouze pro registrované uživatele */",
        "group-bot.js": "/* Zde uvedený JavaScript bude použit pouze pro roboty */",
        "specialpages-group-developer": "Vývojářské nástroje",
        "blankpage": "Prázdná stránka",
        "intentionallyblankpage": "Tato stránka je úmyslně prázdná. Používá se na měření výkonnosti atd.",
+       "disabledspecialpage-disabled": "Tato stránka byla vypnuta správcem systému.",
        "external_image_whitelist": " #Tuto řádku ponechte beze změny.<pre>\n#Níže uveďte fragmenty regulárních výrazů (pouze část mezi //).\n#Tyto výrazy se aplikují na URL vkládaných externích obrázků.\n#Ty, které vyhoví, se zobrazí jako obrázek; ostatní pouze jako externí odkaz.\n#Řádky začínající znakem # se považují za komentáře.\n#Na velikosti písmen nezáleží.\n\n#Všechny regulární výrazy uveďte nad touto řádkou. Tuto řádku ponechte beze změny.</pre>",
        "tags": "Platné značky pro změny",
        "tag-filter": "Filtr podle [[Special:Tags|značek]]:",
index d343c3f..0aac350 100644 (file)
        "blockip": "Rhwystro'r {{GENDER:$1|defnyddiwr}}",
        "blockiptext": "Defnyddiwch y ffurflen hon i rwystro cyfeiriad IP neu ddefnyddiwr rhag ysgrifennu i'r gronfa ddata. \nDylech chi ddim ond gwneud hyn er mwyn rhwystro fandaliaeth, a chan ddilyn [[{{MediaWiki:Policy-url}}|polisi'r wici]]. \nRhowch reswm dros rwystro'r defnyddiwr (er enghraifft, dywedwch pa ddalen(au) a fandaleiddiwyd).",
        "ipaddressorusername": "Cyfeiriad IP neu enw defnyddiwr:",
-       "ipbexpiry": "Am gyfnod:",
        "ipbreason": "Rheswm:",
        "ipbreason-dropdown": "*Rhesymau cyffredin dros flocio\n** Gosod gwybodaeth anghywir\n** Dileu cynnwys tudalennau\n** Gosod cysylltiadau sbam i wefannau eraill\n** Gosod dwli/lol ar dudalennau\n** Ymddygiad sy'n dychrynu neu'n aflonyddu\n** Camddefnyddio nifer o gyfrifon\n** Enw defnyddiwr annerbyniol",
        "ipb-hardblock": "Atal defnyddwyr mewngofnodedig rhag golygu o'r cyfeiriad IP hwn",
        "ipb-unblock": "Dadflocio enw defnyddiwr neu gyfeiriad IP",
        "ipb-blocklist": "Dangos y blociau cyfredol",
        "ipb-blocklist-contribs": "Cyfraniadau {{GENDER:$1|$1}}",
+       "block-expiry": "Am gyfnod:",
        "unblockip": "Dadflocio defnyddiwr",
        "unblockiptext": "Defnyddiwch y ffurflen isod i ail-alluogi golygiadau gan ddefnyddiwr neu o gyfeiriad IP a fu gynt wedi'i flocio.",
        "ipusubmit": "Tynnu'r rhwystr hwn",
index 39b2e53..26b09f5 100644 (file)
                        "Kranix"
                ]
        },
-       "tog-underline": "Understreg henvisninger:",
+       "tog-underline": "Understreg link:",
        "tog-hideminor": "Skjul mindre ændringer i listen over seneste ændringer",
-       "tog-hidepatrolled": "Skjul patruljerede redigeringer i seneste ændringer",
-       "tog-newpageshidepatrolled": "Skjul patruljerede sider på listen over nye sider",
+       "tog-hidepatrolled": "Skjul overvågede redigeringer i seneste ændringer",
+       "tog-newpageshidepatrolled": "Skjul overvågede sider på listen over nye sider",
        "tog-hidecategorization": "Skjul kategorisering af sider",
        "tog-extendwatchlist": "Udvid overvågningslisten til at vise alle ændringer og ikke kun den nyeste",
        "tog-usenewrc": "Gruppér ændringer efter side i listen over seneste ændringer og i overvågningslisten",
        "tog-numberheadings": "Automatisk nummerering af overskrifter",
        "tog-editondblclick": "Redigér sider med dobbeltklik",
-       "tog-editsectiononrightclick": "Redigér afsnit ved at højreklikke på deres titler",
-       "tog-watchcreations": "Føj sider jeg opretter og filer jeg lægger op, til min overvågningsliste",
+       "tog-editsectiononrightclick": "Aktivér afsnitsredigering med højreklik på afsnitstitler",
+       "tog-watchcreations": "Føj sider jeg opretter og filer jeg uploader, til min overvågningsliste",
        "tog-watchdefault": "Føj sider og filer, jeg redigerer, til min overvågningsliste",
        "tog-watchmoves": "Føj sider og filer, jeg flytter, til min overvågningsliste",
        "tog-watchdeletion": "Føj sider og filer, jeg sletter, til min overvågningsliste",
        "tog-watchuploads": "Føj nye filer, jeg uploader, til min overvågningsliste",
        "tog-watchrollback": "Fø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-minordefault": "Markér som alle redigeringer som mindre som standard",
+       "tog-previewontop": "Vis forhåndsvisning før redigeringsboks",
        "tog-previewonfirst": "Vis forhåndsvisning ved første redigering",
-       "tog-enotifwatchlistpages": "Send mig en e-mail ved ændringer til en side eller fil på min overvågningsliste",
+       "tog-enotifwatchlistpages": "Send mig en e-mail ved ændringer af en side eller en fil på min overvågningsliste",
        "tog-enotifusertalkpages": "Send mig en e-mail når min brugerdiskussionsside ændres",
-       "tog-enotifminoredits": "Send mig også en e-mail ved mindre ændringer af sider og filer på min overvågningsliste",
+       "tog-enotifminoredits": "Send mig også en e-mail ved mindre ændringer af sider og filer",
        "tog-enotifrevealaddr": "Vis min e-mailadresse i e-mails med besked om ændringer",
        "tog-shownumberswatching": "Vis antal brugere, der overvåger",
-       "tog-oldsig": "Din nuværende signatur:",
-       "tog-fancysig": "Behandl signatur som wikitekst (uden automatisk henvisning)",
-       "tog-uselivepreview": "Vis forhåndsvisninger uden at indlæse siden igen",
+       "tog-oldsig": "Din aktuelle signatur:",
+       "tog-fancysig": "Behandl signatur som wikitekst (uden et automatisk link)",
+       "tog-uselivepreview": "Vis forhåndsvisninger uden at genindlæse siden",
        "tog-forceeditsummary": "Advar mig, hvis jeg ikke udfylder beskrivelsesfeltet",
        "tog-watchlisthideown": "Skjul egne ændringer i overvågningslisten",
        "tog-watchlisthidebots": "Skjul ændringer fra botter i overvågningslisten",
        "tog-watchlisthideminor": "Skjul mindre ændringer i overvågningslisten",
        "tog-watchlisthideliu": "Skjul indloggede brugeres redigeringer i overvågningslisten",
-       "tog-watchlistreloadautomatically": "Opdater overvågningslisten automatisk, når et filter ændres (kræver JavaScript)",
+       "tog-watchlistreloadautomatically": "Opdatér overvågningslisten automatisk, når et filter ændres (kræver JavaScript)",
        "tog-watchlistunwatchlinks": "Føj mærker ({{int:Watchlist-unwatch}}/{{int:Watchlist-unwatch-undo}}) til at slå overvågning til og fra for overvågede sider med ændringer (JavaScript kræves for at kunne slå til og fra)",
        "tog-watchlisthideanons": "Skjul anonyme brugeres redigeringer i overvågningslisten",
-       "tog-watchlisthidepatrolled": "Skjul patruljerede ændringer i overvågningslisten",
+       "tog-watchlisthidepatrolled": "Skjul overvågede ændringer i overvågningslisten",
        "tog-watchlisthidecategorization": "Skjul kategorisering af sider",
        "tog-ccmeonemails": "Send mig kopier af e-mails jeg sender til andre brugere",
        "tog-diffonly": "Vis ikke sideindhold neden under versionssammenligninger",
        "october": "oktober",
        "november": "november",
        "december": "december",
-       "january-gen": "januars",
-       "february-gen": "februars",
-       "march-gen": "marts'",
-       "april-gen": "aprils",
-       "may-gen": "majs",
-       "june-gen": "junis",
-       "july-gen": "julis",
-       "august-gen": "augusts",
-       "september-gen": "septembers",
-       "october-gen": "oktobers",
-       "november-gen": "novembers",
-       "december-gen": "decembers",
+       "january-gen": "januar",
+       "february-gen": "februar",
+       "march-gen": "marts",
+       "april-gen": "april",
+       "may-gen": "maj",
+       "june-gen": "juni",
+       "july-gen": "juli",
+       "august-gen": "august",
+       "september-gen": "september",
+       "october-gen": "oktober",
+       "november-gen": "november",
+       "december-gen": "december",
        "jan": "jan",
        "feb": "feb",
        "mar": "mar",
        "listingcontinuesabbrev": "forts.",
        "index-category": "Indekserede sider",
        "noindex-category": "Ikke-indekserede sider",
-       "broken-file-category": "Sider med brudte filhenvisninger",
+       "broken-file-category": "Sider med brudte fillinks",
+       "categoryviewer-pagedlinks": "($1) ($2)",
+       "category-header-numerals": "$1–$2",
        "about": "Om",
        "article": "Indholdsside",
        "newwindow": "(åbner i et nyt vindue)",
        "help": "Hjælp",
        "help-mediawiki": "Hjælp til MediaWiki",
        "search": "Søg",
-       "search-ignored-headings": " #<!-- leave this line exactly as it is --> <pre>\n# Overskrifter, der vil blive ignoreret af søgning.\n# Ændringer til dette træder i kraft så snart siden med overskriften er indekseret.\n# Du gennemtvinge genindeksering af siden ved at lave en tom redigering.\n# Syntaksen er som følger:\n#   * Alt fra et \"#\"-tegn til slutningen af linjen er en kommentar.\n#   * Hver ikke-tom linje er den nøjagtige titel der skal ignoreres; der skelnes mellem store og små bogstaver.\nReferencer\nEksterne henvisninger\nSe også\nKilder og henvisninger\nEksterne kilder/henvisninger\nKilder\n #<!-- leave this line exactly as it is --> <pre>",
+       "search-ignored-headings": " #<!-- Denne linje skal IKKE ændres --> <pre>\n# Overskrifter, der vil blive ignoreret af søgning.\n# Ændringer til dette træder i kraft så snart siden med overskriften er indekseret.\n# Du gennemtvinge genindeksering af siden ved at lave en tom redigering.\n# Syntaksen er som følger:\n#   * Alt fra et \"#\"-tegn til slutningen af linjen er en kommentar.\n#   * Hver ikke-tom linje er den nøjagtige titel der skal ignoreres; der skelnes mellem store og små bogstaver.\nReferencer\nEksterne links\nSe også\nKilder og henvisninger\nEksterne kilder/henvisninger\nKilder\n #<!-- Denne linje skal IKKE ændres --> <pre>",
        "searchbutton": "Søg",
        "go": "Gå til",
        "searcharticle": "Gå til",
-       "history": "Historik",
+       "history": "Sidehistorik",
        "history_short": "Historik",
        "history_small": "historik",
        "updatedmarker": "opdateret siden seneste besøg",
        "printableversion": "Udskriftsvenlig udgave",
-       "permalink": "Permanent henvisning",
+       "permalink": "Permanent link",
        "print": "Udskriv",
        "view": "Vis",
        "view-foreign": "Vis på $1",
        "redirectedfrom": "(Omdirigeret fra $1)",
        "redirectpagesub": "Omdirigeringsside",
        "redirectto": "Omdiriger til:",
-       "lastmodifiedat": "Denne side blev senest redigeret $1 kl. $2.",
+       "lastmodifiedat": "Denne side blev senest redigeret den $1 kl. $2.",
        "viewcount": "Siden er vist {{PLURAL:$1|én gang|$1 gange}}.",
        "protectedpage": "Beskyttet side",
        "jumpto": "Skift til:",
        "edithelp": "Hjælp til redigering",
        "helppage-top-gethelp": "Hjælp",
        "mainpage": "Forside",
-       "mainpage-description": "Forside",
+       "mainpage-description": "Hovedside",
        "policy-url": "Project:Politik",
-       "portal": "Forside for skribenter",
-       "portal-url": "Project:Forside",
-       "privacy": "Behandling af personlige oplysninger",
-       "privacypage": "Project:Behandling af personlige oplysninger",
-       "badaccess": "Manglende rettigheder",
+       "portal": "Fællesskabs portal",
+       "portal-url": "Project:Fællesskabs portal",
+       "privacy": "Fortrolighedspolitik",
+       "privacypage": "Project:Fortrolighedspolitik",
+       "badaccess": "Rettighedfejl",
        "badaccess-group0": "Du har ikke de nødvendige rettigheder til at udføre den handling, du har anmodet om.",
-       "badaccess-groups": "Denne handling kan kun udføres af brugere i {{PLURAL:$2|gruppen|disse grupper:}} $1.",
+       "badaccess-groups": "Denne handling kan kun udføres af brugere i {{PLURAL:$2|gruppen|en af grupperne:}} $1.",
        "versionrequired": "Kræver version $1 af MediaWiki",
        "versionrequiredtext": "Version $1 af MediaWiki er nødvendig for at bruge denne side. Se [[Special:Version|Versionssiden]]",
        "ok": "OK",
+       "pagetitle": "$1 - {{SITENAME}}",
+       "pagetitle-view-mainpage": "{{SITENAME}}",
        "backlinksubtitle": "← $1",
        "retrievedfrom": "Hentet fra \"$1\"",
-       "youhavenewmessages": "Du har $1 ($2).",
+       "youhavenewmessages": "{{PLURAL:$3|Du har}} $1 ($2).",
        "youhavenewmessagesfromusers": "{{PLURAL:$4|Du har}} $1 fra {{PLURAL:$3|en anden bruger|$3 brugere}} ($2).",
        "youhavenewmessagesmanyusers": "Du har $1 fra mange brugere ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|en ny besked|999=nye beskeder}}",
        "youhavenewmessagesmulti": "Du har nye beskeder på $1",
        "editsection": "redigér",
        "editold": "redigér",
-       "viewsourceold": "vis wikikode",
+       "viewsourceold": "vis kilde",
        "editlink": "redigér",
-       "viewsourcelink": "vis kildetekst",
+       "viewsourcelink": "vis kilde",
        "editsectionhint": "Redigér afsnit: $1",
        "toc": "Indholdsfortegnelse",
        "showtoc": "vis",
        "feed-atom": "Atom",
        "feed-rss": "RSS",
        "red-link-title": "$1 (siden findes ikke)",
-       "sort-descending": "Sorter faldende",
-       "sort-ascending": "Sorter stigende",
+       "sort-descending": "Sortér faldende",
+       "sort-ascending": "Sortér stigende",
        "nstab-main": "Side",
        "nstab-user": "Brugerside",
        "nstab-media": "Medieside",
        "nstab-image": "Fil",
        "nstab-mediawiki": "Besked",
        "nstab-template": "Skabelon",
-       "nstab-help": "Hjælp",
+       "nstab-help": "Hjælpeside",
        "nstab-category": "Kategori",
-       "mainpage-nstab": "Forside",
+       "mainpage-nstab": "Hovedside",
        "nosuchaction": "Funktionen findes ikke",
-       "nosuchactiontext": "Handlingen som er angivet i URL'en er ugyldig.\nDu har måske skrevet URL'en forkert eller fulgt en ukorrekt henvisning.\nDet kan også skyldes en fejl i programmellet som bruges af {{SITENAME}}.",
+       "nosuchactiontext": "Handlingen som er angivet i URL'en er ugyldig.\nDu har måske skrevet URL'en forkert eller fulgt et ukorrekt link.\nDet kan også skyldes en fejl i softwaren, som bruges af {{SITENAME}}.",
        "nosuchspecialpage": "En sådan specialside findes ikke",
        "nospecialpagetext": "<strong>Du har bedt om en specialside, som ikke findes.</strong>\n\nEn liste over gyldige specialsider kan findes på [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "Fejl",
        "databaseerror": "Databasefejl",
-       "databaseerror-text": "Der opstod en fejl i en forespørgsel til databasen.\nDette kan skyldes en programmeringsfejl i softwaren.",
+       "databaseerror-text": "Der opstod en fejl i en forespørgsel til databasen.\nDette kan skyldes en fejl i softwaren.",
        "databaseerror-textcl": "Der opstod en fejl i en forespørgsel til databasen.",
        "databaseerror-query": "Forespørgsel: $1",
        "databaseerror-function": "Funktion: $1",
        "perfcached": "Følgende data er gemt i cachen, der muligvis ikke er helt opdateret. Der gemmes højst {{PLURAL:$1|ét resultat|$1 resultater}} i cachen.",
        "perfcachedts": "Disse data stammer fra cachen, som senest blev opdateret $1. Der gemmes højst {{PLURAL:$4|ét resultat|$4 resultater}} i cachen.",
        "querypage-no-updates": "Opdateringer til denne side er deaktiveret for øjeblikket. Dataene bliver indtil videre ikke fornyet.",
-       "viewsource": "Vis kildetekst",
-       "viewsource-title": "Se kildekoden til $1",
+       "viewsource": "Vis kilde",
+       "viewsource-title": "Se kilde til $1",
        "actionthrottled": "Begrænsning af handling",
        "actionthrottledtext": "For at modvirke spam er det ikke muligt at udføre denne handling mange gange på kort tid. Du har overskredet grænsen, hvorfor handlingen er blevet afbrudt. Du kan forsøge igen om et par minutter.",
        "protectedpagetext": "Denne side er blevet beskyttet, for at forhindre redigering eller andre handlinger.",
-       "viewsourcetext": "Du kan se og kopiere kildekoden til siden:",
-       "viewyourtext": "Du kan se og kopiere kildekoden for <strong>dine redigeringer</strong> til denne side.",
-       "protectedinterface": "Denne side indeholder teksten i brugergrænsefladen til softwaren på denne wiki, og er beskyttet for at forhindre misbrug.\nHvis du vil tilføje eller ændre oversættelser for alle wiki-websteder, så brug venligst [https://translatewiki.net/ translatewiki.net], projektet for oversættelse af MediaWiki.",
+       "viewsourcetext": "Du kan se og kopiere kilden til denne side:",
+       "viewyourtext": "Du kan se og kopiere kilden for <strong>dine redigeringer</strong> til denne side.",
+       "protectedinterface": "Denne side leverer teksten i brugergrænsefladen til softwaren på denne wiki, og er beskyttet for at forhindre misbrug.\nHvis du vil tilføje eller ændre oversættelser for alle wiki-websteder, så brug venligst [https://translatewiki.net/ translatewiki.net], projektet for oversættelse af MediaWiki.",
        "editinginterface": "<strong>Advarsel:</strong> Du redigerer en side, som bruges til at give interface-tekst til softwaren.\nÆndringer på denne side vil påvirke udseendet af brugergrænsefladen for andre brugere på denne wiki.",
        "translateinterface": "For at tilføje eller ændre oversættelser for alle wikier, skal du bruge [https://translatewiki.net/ translatewiki.net], der er MediaWikis lokaliseringsprojekt.",
        "cascadeprotected": "Denne side er skrivebeskyttet, da den er indeholdt i nedenstående {{PLURAL:$1|side|sider}}, som er skrivebeskyttet med tilvalg af \"nedarvende sidebeskyttelse\":\n$2",
-       "namespaceprotected": "Du har ikke rettigheder til at redigere sider i $1-navnerummet.",
+       "namespaceprotected": "Du har ikke rettigheder til at redigere sider i <strong>$1</strong> navnerummet.",
        "customcssprotected": "Du har ikke tilladelse til at redigere denne CSS-side, da den indeholder en anden brugers personlige indstillinger.",
+       "customjsonprotected": "Du har ikke tilladelse til at redigere denne JSON-side, da den indeholder en anden brugers personlige indstillinger.",
        "customjsprotected": "Du har ikke tilladelse til at redigere denne JavaScript-side, da den indeholder en anden brugers personlige indstillinger.",
        "sitecssprotected": "Du har ikke tilladelse til at redigere denne CSS-side fordi det kan påvirke alle besøgende.",
        "sitejsonprotected": "Du har ikke tilladelse til at redigere denne JSON-side fordi det kan påvirke alle besøgende.",
        "mycustomjsprotected": "Du har ikke rettigheder til at redigere denne JavaScript-side.",
        "myprivateinfoprotected": "Du har ikke rettigheder til at redigere dine private oplysninger.",
        "mypreferencesprotected": "Du har ikke rettigheder til at redigere dine indstillinger.",
-       "ns-specialprotected": "Sider i navnerummet {{ns:special}} kan ikke redigeres.",
+       "ns-specialprotected": "Special sider kan ikke redigeres",
        "titleprotected": "Dette sidenavn er blevet beskyttet mod oprettelse af [[User:$1|$1]]. Begrundelsen for beskyttelsen er <em>$2</em>.",
        "filereadonlyerror": "Ude af stand til at redigere filen \"$1\", fordi fildatabasen \"$2\" er skrivebeskyttet.\n\nSystemadministratoren, som skrivebeskyttede den, gav denne begrundelse: \"$3\".",
        "invalidtitle": "Ugyldig titel",
        "exception-nologin": "Ikke logget på",
        "exception-nologin-text": "Du skal logge på for at få adgang til denne side eller handling.",
        "exception-nologin-text-manual": "Du skal $1 for at få adgang til denne side eller handling.",
-       "virus-badscanner": "Konfigurationsfejl: ukendt virus-scanner: ''$1''",
-       "virus-scanfailed": "virus-scan fejlede med fejlkode $1",
-       "virus-unknownscanner": "ukendt virus-scanner:",
-       "logouttext": "'''Du er nu logget af.'''\n\nBemærk, at nogle sider stadigvæk kan vises som om du var logget på, indtil du tømmer din browsers cache.",
+       "virus-badscanner": "Konfigurationsfejl: ukendt virus-scanner: <em>$1</em>",
+       "virus-scanfailed": "scan fejlede (fejlkode $1)",
+       "virus-unknownscanner": "ukendt antivirus:",
+       "logouttext": "<strong>Du er nu logget af.</strong>\n\nBemærk, at nogle sider stadigvæk kan vises som om du var logget på, indtil du tømmer din browsers cache.",
        "cannotlogoutnow-title": "Kan ikke logge af på nuværende tidspunkt",
        "cannotlogoutnow-text": "Det er ikke muligt at logge af når du bruger $1.",
        "welcomeuser": "Velkommen, $1!",
-       "welcomecreation-msg": "Din konto er blevet oprettet.\nGlem ikke at ændre dine [[Special:Preferences|{{SITENAME}} indstillinger]].",
-       "yourname": "Dit brugernavn:",
+       "welcomecreation-msg": "Din konto er blevet oprettet.\nDu kan ændre dine {{SITENAME}} [[Special:Indstilling|indstillinger]] hvis du ønsker.",
+       "yourname": "Brugernavn:",
        "userlogin-yourname": "Brugernavn",
        "userlogin-yourname-ph": "Indtast dit brugernavn",
-       "createacct-another-username-ph": "Indtast brugernavn",
-       "yourpassword": "Din adgangskode:",
+       "createacct-another-username-ph": "Indtast brugernavnet",
+       "yourpassword": "Adgangskode:",
        "userlogin-yourpassword": "Adgangskode",
        "userlogin-yourpassword-ph": "Indtast din adgangskode",
        "createacct-yourpassword-ph": "Indtast en adgangskode",
-       "yourpasswordagain": "Gentag adgangskode",
+       "yourpasswordagain": "Gentag adgangskode:",
        "createacct-yourpasswordagain": "Bekræft adgangskode",
        "createacct-yourpasswordagain-ph": "Indtast adgangskode igen",
-       "userlogin-remembermypassword": "Husk mig",
+       "userlogin-remembermypassword": "Forbliv logget ind",
        "userlogin-signwithsecure": "Brug sikker forbindelse",
        "cannotlogin-title": "Kan ikke logge ind",
        "cannotlogin-text": "Det er ikke muligt at logge ind.",
        "cannotcreateaccount-text": "Direkte kontooprettelse er ikke aktiveret på denne wiki.",
        "yourdomainname": "Dit domænenavn:",
        "password-change-forbidden": "Du kan ikke ændre adgangskoder på denne wiki.",
-       "externaldberror": "Der er opstået en fejl i en ekstern adgangsdatabase, eller du har ikke rettigheder til at opdatere denne.",
+       "externaldberror": "Der var enten en adgangsdatabase fejl, eller så må du ikke opdatere din eksterne konto..",
        "login": "Log på",
        "login-security": "Bekræft din identitet",
        "nav-login-createaccount": "Opret en konto eller log på",
        "createacct-email-ph": "Indtast din e-mailadresse",
        "createacct-another-email-ph": "Indtast e-mailadresse",
        "createaccountmail": "Brug en midlertidig tilfældig adgangskode og send den til den angivne e-mailadresse",
-       "createaccountmail-help": "Kan bruges til at oprette konto til en anden person uden at lære deres adgangskode.",
+       "createaccountmail-help": "Kan bruges til at oprette konto til en anden person uden at huske deres adgangskode.",
        "createacct-realname": "Dit rigtige navn (valgfrit)",
        "createacct-reason": "Årsag",
        "createacct-reason-ph": "Hvorfor du vil oprette endnu en konto",
        "createacct-another-submit": "Opret konto",
        "createacct-continue-submit": "Fortsæt kontooprettelse",
        "createacct-another-continue-submit": "Fortsæt kontooprettelse",
-       "createacct-benefit-heading": "{{SITENAME}} laves af mennesker som dig.",
+       "createacct-benefit-heading": "{{SITENAME}} laves af personer som dig.",
        "createacct-benefit-body1": "{{PLURAL:$1|redigering|redigeringer}}",
        "createacct-benefit-body2": "{{PLURAL:$1|side|sider}}",
        "createacct-benefit-body3": "{{PLURAL:$1|nylig bidragyder|nylige bidragydere}}",
        "nocookiesnew": "Din brugerkonto er nu oprettet, men du er ikke logget på. {{SITENAME}} bruger cookies til at logge brugere på.\nDu har slået cookies fra. \nVær venlig at slå cookies til og log derefter på med dit nye brugernavn og adgangskode.",
        "nocookieslogin": "{{SITENAME}} bruger cookies til at logge brugere på. Du har slået cookies fra. Slå dem venligst til og prøv igen.",
        "nocookiesfornew": "Denne brugerkonto er ikke oprettet, da vi ikke kunne bekræfte dens kilde.\nSørg for, at du har aktivereret cookies, genindlæs siden og prøv igen.",
+       "nocookiesforlogin": "{{int:nocookieslogin}}",
        "createacct-loginerror": "Kontoen blev oprettet, men du kunne ikke blive logget ind automatisk. Fortsæt venligst til [[Special:UserLogin|manuel log ind]].",
        "noname": "Du har ikke angivet et gyldigt brugernavn.",
        "loginsuccesstitle": "Logget ind",
-       "loginsuccess": "'''Du er nu logget på {{SITENAME}} som \"$1\".'''",
+       "loginsuccess": "<strong>Du er nu logget på {{SITENAME}} som \"$1\".</strong>",
        "nosuchuser": "Der er ingen bruger med navnet \"$1\".\nDer skelnes mellem store og små bogstaver i brugernavne.\nKontrollér stavningen, eller [[Special:CreateAccount|opret en ny konto]].",
        "nosuchusershort": "Der er ingen bruger ved navn \"$1\". Tjek din stavning.",
        "nouserspecified": "Angiv venligst et brugernavn.",
        "wrongpassword": "Den indtastede adgangskode var forkert.\nPrøv igen.",
        "wrongpasswordempty": "Du glemte at indtaste adgangskode. Prøv igen.",
        "passwordtooshort": "Adgangskoden skal mindst være på $1 {{PLURAL:$1|tegn|tegn}}.",
-       "passwordtoolong": "Adgangskoden må ikke være længere end {{PLURAL:$1|et tegn|$1 tegn}}.",
+       "passwordtoolong": "Adgangskoden må ikke være længere end {{PLURAL:$1|1 tegn|$1 tegn}}.",
        "passwordtoopopular": "Almindeligt brugte adgangskoder, kan ikke bruges. Vælg venligst en adgangskode der er sværere at gætte.",
        "passwordinlargeblacklist": "Adgangskoden der blev indtastet er på en liste over nogle meget almindeligt brugte adgangskoder. Vælg venligst en mere unik adgangskode",
        "password-name-match": "Adgangskoden må ikke være det samme som brugernavnet.",
        "password-login-forbidden": "Brugen af dette brugernavn og adgangskode er blevet forbudt.",
        "mailmypassword": "Nulstil adgangskode",
        "passwordremindertitle": "Ny midlertidig adgangskode til {{SITENAME}}",
-       "passwordremindertext": "Nogen (sandsynligvis dig, fra IP-adressen $1)\nhar bedt om at vi sender dig en ny adgangskode til at logge på {{SITENAME}} ($4).\nEn midlertidig adgangskode for bruger \"$2\" er blevet lavet, den er \"$3\".\nHvis dette var din mening, skal du logge på og vælge en ny adgangskode nu.\nDin midlertidige adgangskode vil udløbe om {{PLURAL:$5|en dag|$5 dage}}.\n\nHvis en anden har bestilt den nye adgangskode, eller hvis du er kommet i tanke om din gamle adgangskode og ikke længere vil ændre den,\nkan du bare ignorere denne besked og fortsætte med at bruge din gamle adgangskode.",
+       "passwordremindertext": "Nogen (fra IP-adressen $1)\nhar bedt om en ny adgangskode til {{SITENAME}} ($4).\nEn midlertidig adgangskode for bruger \"$2\" er blevet genereret, og er \"$3\".\nHvis dette var din mening, skal du logge på og vælge en ny adgangskode nu.\nDin midlertidige adgangskode vil udløbe om {{PLURAL:$5|en dag|$5 dage}}.\n\nHvis en anden har bestilt den nye adgangskode, eller hvis du er kommet i tanke om din adgangskode og ikke længere vil ændre den,\nkan du bare ignorere denne besked og fortsætte med at bruge din gamle adgangskode.",
        "noemail": "Der er ikke oplyst en e-mailadresse for bruger \"$1\".",
        "noemailcreate": "Du skal angive en gyldig e-mailadresse",
-       "passwordsent": "En ny adgangskode er sendt til e-mailadressen, som er registreret for \"$1\".\nDu bør logge på og ændre din adgangskode straks efter du har modtaget e-mailen.",
+       "passwordsent": "En ny adgangskode er sendt til e-mailadressen, som er registreret for \"$1\".\nLog venligst ind igen, når du har modtaget den.",
        "blocked-mailpassword": "Din IP-adresse er blokeret fra at redigere sider. For at forhindre misbrug er det heller ikke muligt at bestille en ny adgangskode fra denne IP-adresse.",
        "eauthentsent": "En e-mailbekræftelse er sendt til den angivne e-mailadresse.\n\nFør flere e-mails bliver sendt til kontoen, skal du følge instruktionerne i e-mailen, for at bekræfte at kontoen rent faktisk er din.",
        "throttled-mailpassword": "Indenfor {{PLURAL:$1|den sidste time|de sidste $1 timer}} er der allerede sendt en ny adgangskode. For at forhindre misbrug af funktionen, kan der kun bestilles en ny adgangskode én gang for hver {{PLURAL:$1|time|$1 timer}}.",
        "mailerror": "Fejl ved afsendelse af e-mail: $1",
-       "acct_creation_throttle_hit": "Besøgende med samme IP-adresse som dig har oprettet {{PLURAL:$1|1 konto|$1 kontoer}} inden for den/det/de seneste $2, hvilket er det maksimalt tilladte inden for denne tidsperiode.\nDerfor kan besøgende, som bruger denne IP-adresse, ikke oprette flere kontoer fra denne IP-adresse for øjeblikket.",
+       "acct_creation_throttle_hit": "Besøgende med samme IP-adresse som dig har oprettet {{PLURAL:$1|1 konto|$1 konti}} inden for den/det/de seneste $2, hvilket er det maksimalt tilladte inden for denne tidsperiode.\nDerfor kan besøgende, som bruger denne IP-adresse, ikke oprette flere konti fra denne IP-adresse for øjeblikket.",
        "emailauthenticated": "Din e-mailadresse blev bekræftet den $2 kl. $3.",
        "emailnotauthenticated": "Din e-mailadresse er endnu ikke bekræftet.\nIngen e-mail vil blive sendt for de følgende funktioner.",
-       "noemailprefs": "Angiv en e-mailadresse, så følgende funktioner er til rådighed.",
+       "noemailprefs": "Angiv en e-mailadresse i dine indstillinger, så følgende funktioner er til rådighed.",
        "emailconfirmlink": "Bekræft din e-mailadresse",
        "invalidemailaddress": "E-mailadressen kan ikke accepteres da den tilsyneladende har et ugyldigt format. Skriv venligst en e-mailadresse med et korrekt format eller tøm feltet.",
-       "cannotchangeemail": "De e-mailadresser, der er tilknyttet brugerkontoer, kan ikke ændres på denne wiki.",
-       "emaildisabled": "Denne hjemmeside kan ikke sende e-mails.",
+       "cannotchangeemail": "De e-mailadresser, der er tilknyttet brugerkonti, kan ikke ændres på denne wiki.",
+       "emaildisabled": "Denne side kan ikke sende e-mails.",
        "accountcreated": "Brugerkonto oprettet",
-       "accountcreatedtext": "Brugerkontoen for [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|diskussion]]) er oprettet.",
-       "createaccount-title": "Opret brugerkonto på {{SITENAME}}",
-       "createaccount-text": "Nogen har oprettet en konto for din e-mailadresse på {{SITENAME}} ($4) med navnet \"$2\". Adgangskoden er \"$3\".\nDu opfordres til at logge på og ændre adgangskoden med det samme.\n\nDu kan ignorere denne besked hvis kontoen blev oprettet ved en fejl.",
+       "accountcreatedtext": "Brugerkontoen for [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|diskussion]]) er blevet oprettet.",
+       "createaccount-title": "Kontooprettelse på {{SITENAME}}",
+       "createaccount-text": "Nogen har oprettet en konto for din e-mailadresse på {{SITENAME}} ($4) med navnet \"$2\", med adgangskoden \"$3\".\nDu opfordres til at logge på og ændre adgangskoden med det samme.\n\nDu kan ignorere denne besked hvis kontoen blev oprettet ved en fejl.",
        "login-throttled": "Du har forsøgt at logge på for mange gange.\nVent venligst $1, før du prøver igen.",
        "login-abort-generic": "Det lykkedes ikke at logge dig på - Afbrudt",
-       "login-migrated-generic": "Din konto er blevet globaliseret, og dit brugernavn eksisterer ikke længere på denne wiki.",
+       "login-migrated-generic": "Din konto er blevet flyttet, og dit brugernavn eksisterer ikke længere på denne wiki.",
        "loginlanguagelabel": "Sprog: $1",
        "suspicious-userlogout": "Din anmodning om at logge af blev nægtet, fordi det ser ud som den blev sendt af en ødelagt browser eller caching proxy.",
        "createacct-another-realname-tip": "Angivelse af rigtigt navn er valgfrit.\nHvis du vælger at oplyse dit navn, vil det blive brugt til at tilskrive dig dit arbejde.",
        "pt-userlogout": "Log af",
        "php-mail-error-unknown": "Ukendt fejl i PHP funktionen mail()",
        "user-mail-no-addy": "Forsøgte at sende e-mail uden en e-mailadresse",
-       "user-mail-no-body": "Forsøgte at sende en e-mail med tomt eller urimeligt kort indhold.",
+       "user-mail-no-body": "Forsøgte at sende en e-mail med intet eller urimeligt kort indhold.",
        "changepassword": "Skift adgangskode",
        "resetpass_announce": "For at afslutte indlogningen skal du vælge en ny adgangskode.",
        "resetpass_text": "<!-- Tilføj tekst her -->",
        "botpasswords-label-grants": "Tilgængelige bevillinger:",
        "botpasswords-help-grants": "Tildelinger giver tilgang til rettighederne som allerede indehaves af din brugerkonto. Aktivering af en rettighed her giver ikke adgang til alle rettigheder din brugerkonto ikke ellers ville have. Se [[Special:ListGrants|tildelingstabellen]] for yderligere information.",
        "botpasswords-label-grants-column": "Tildelt",
-       "botpasswords-bad-appid": "Robotnavnet »$1« er ikke gyldigt.",
-       "botpasswords-insert-failed": "Kunne ikke tilføje robotnavnet »$1«. Var det allerede tilføjet?",
-       "botpasswords-update-failed": "Kunne ikke tilføje robotnavnet »$1«. Er det slettet?",
+       "botpasswords-bad-appid": "Botnavnet »$1« er ikke gyldigt.",
+       "botpasswords-insert-failed": "Kunne ikke tilføje botnavnet \"$1\". Var det allerede tilføjet?",
+       "botpasswords-update-failed": "Kunne ikke tilføje botnavnet \"$1\". Er det slettet?",
        "botpasswords-created-title": "Botkodeord oprettet",
-       "botpasswords-created-body": "Robottens adgangskode for robotnavn »$1« for {{GENDER:$2|brugeren}} »$2« blev oprettet.",
+       "botpasswords-created-body": "Bottens adgangskode for botnavn \"$1\" for {{GENDER:$2|brugeren}} \"$2\" blev oprettet.",
        "botpasswords-updated-title": "Bot kodeord opdateret",
-       "botpasswords-updated-body": "Robottens adgangskode for robotnavn »$1« for {{GENDER:$2|brugeren}} »$2« blev opdateret.",
+       "botpasswords-updated-body": "Bottens adgangskode for botnavn \"$1\" for {{GENDER:$2|brugeren}} \"$2\" blev opdateret.",
        "botpasswords-deleted-title": "Bot kodeord slettet",
-       "botpasswords-deleted-body": "Robottens adgangskode for robotnavn »$1« for {{GENDER:$2|brugeren}} »$2« blev slettet.",
-       "botpasswords-newpassword": "Den nye adgangskode at logge ind med for <strong>$1</strong> er <strong>$2</strong>. <em>Gem denne oplysning for fremtidig reference.</em> <br> (For gamle robotter som kræver at logindnavnet er det samme som det eventuelle brugernavn, så kan du også bruge <strong>$3</strong> som brugernavn og <strong>$4</strong> som adgangskode).",
+       "botpasswords-deleted-body": "Bottens adgangskode for botnavn \"$1\" for {{GENDER:$2|brugeren}} \"$2\" blev slettet.",
+       "botpasswords-newpassword": "Den nye adgangskode at logge ind med for <strong>$1</strong> er <strong>$2</strong>. <em>Venligst gem denne oplysning for fremtidig brug.</em> <br> (For gamle botter som kræver at logindnavnet er det samme som det eventuelle brugernavn, så kan du også bruge <strong>$3</strong> som brugernavn og <strong>$4</strong> som adgangskode).",
        "botpasswords-no-provider": "BotPasswordsSessionProvider er ikke tilgængelig.",
-       "botpasswords-restriction-failed": "Begrænsninger for robotadgangskode forhindrer dette logind.",
-       "botpasswords-invalid-name": "Det angivne brugernavn indeholder ikke adskillelsestegnet for robotadgangskoden (»$1«).",
-       "botpasswords-not-exist": "Brugeren »$1« har ikke en robotadgangskode navngivet »$2«.",
+       "botpasswords-restriction-failed": "Begrænsninger for botadgangskode forhindrer dette logind.",
+       "botpasswords-invalid-name": "Det angivne brugernavn indeholder ikke adskillelsestegnet for botadgangskoden (\"$1\").",
+       "botpasswords-not-exist": "Brugeren \"$1\" har ikke en botadgangskode navngivet \"$2\".",
+       "botpasswords-needs-reset": "Bot adgangskoden for botnavn \"$2\" af {{GENDER:$1|bruger}} \"$1\" skal nulstilles",
+       "botpasswords-locked": "Du kan ikke logge ind med en bot adgangskode da din konto er låst.",
        "resetpass_forbidden": "Adgangskoder kan ikke ændres",
        "resetpass_forbidden-reason": "Adgangskoder kan ikke ændres: $1",
        "resetpass-no-info": "Du skal være logget på for at komme direkte til denne side.",
        "resetpass-submit-loggedin": "Skift adgangskode",
        "resetpass-submit-cancel": "Annuller",
-       "resetpass-wrong-oldpass": "Ugyldig midlertidig eller gældende adgangskode.\nDu har muligvis allerede ændret din adgangskode eller bedt om en ny midlertidig kode.",
-       "resetpass-recycled": "Ændr venligst din adgangskode til noget andet end din nuværende adgangskode.",
+       "resetpass-wrong-oldpass": "Ugyldig midlertidig eller aktuel adgangskode.\nDu har muligvis allerede ændret din adgangskode eller bedt om en ny midlertidig adgangskode.",
+       "resetpass-recycled": "Ændr venligst din adgangskode til noget andet end din aktuelle adgangskode.",
        "resetpass-temp-emailed": "Du loggede på med en midlertidig kode tilsendt på e-mail.\nFor at afslutte indlogning skal du angive en ny adgangskode her:",
-       "resetpass-temp-password": "Midlertidig adgangskode",
+       "resetpass-temp-password": "Midlertidig adgangskode:",
        "resetpass-abort-generic": "Ændring af adgangskode er blevet afbrudt af en udvidelse",
        "resetpass-expired": "Din adgangskode er udløbet. Angiv en ny adgangskode for at logge på.",
        "resetpass-expired-soft": "Din adgangskode er udløbet og skal ændres. Ændr den venligst nu, eller tryk \"{{int:authprovider-resetpass-skip-label}}\" for at ændre den senere.",
+       "resetpass-validity": "Din adgangskode er ikke gyldig:$1\n\nAngiv venligst en ny adgangskode for at logge ind.",
        "resetpass-validity-soft": "Din adgangskode er ikke gyldig:  $1 \n\nVælg venligst en ny adgangskode nu, eller tryk \"{{int:authprovider-resetpass-skip-label}}\" for at ændre den senere.",
        "passwordreset": "Nulstil adgangskode",
-       "passwordreset-text-one": "Udfyld denne formular for at nulstille din adgangskode.",
+       "passwordreset-text-one": "Udfyld denne formular for at modtage en midlertidig adgangskode via email.",
        "passwordreset-text-many": "{{PLURAL:$1|Udfyld et af felterne for at modtage en midlertidig adgangskode via e-mail.}}",
        "passwordreset-disabled": "Nulstilling af adgangskode er slået fra på denne wiki.",
        "passwordreset-emaildisabled": "E-mailfunktioner er slået fra på denne wiki.",
        "passwordreset-domain": "Domæne:",
        "passwordreset-email": "E-mailadresse:",
        "passwordreset-emailtitle": "Kontooplysninger på {{SITENAME}}",
-       "passwordreset-emailtext-ip": "Nogen (sandsynligvis dig, fra IP-adressen $1) har anmodet om at få nulstillet din adgangskode til {{SITENAME}} ($4). {{PLURAL:$3|Den følgende brugerkonto er associeret|De følgende brugerkonti er associerede}} med denne e-mailadresse:\n\n$2\n\n{{PLURAL:$3|Denne midlertidige adgangskode|Disse midlertidige adgangskoder}} vil udløbe om {{PLURAL:$5|en dag|$5 dage}}.\nDu bør logge på og vælge en ny adgangskode nu. Hvis en anden end dig har lavet denne anmodning, eller hvis du er kommet i tanke om din oprindelig adgangskode og ikke længere ønsker at ændre den, kan du ignorere denne meddelelse og fortsætte med at bruge din gamle adgangskode.",
-       "passwordreset-emailtext-user": "Brugeren $1 på {{SITENAME}} har anmodet om at få nulstillet din adgangskode til {{SITENAME}} ($4). {{PLURAL:$3|Den følgende brugerkonto er associeret|De følgende brugerkonti er associerede}} med denne e-mailadresse:\n\n$2\n\n{{PLURAL:$3|Denne midlertidige adgangskode|Disse midlertidige adgangskoder}} vil udløbe om {{PLURAL:$5|en dag|$5 dage}}.\nDu bør logge på og vælge en ny adgangskode nu. Hvis en anden end dig har lavet denne anmodning, eller hvis du er kommet i tanke om din oprindelig adgangskode og ikke længere ønsker at ændre den, kan du ignorere denne meddelelse og fortsætte med at bruge din gamle adgangskode.",
+       "passwordreset-emailtext-ip": "Nogen (sandsynligvis dig, fra IP-adressen $1) har anmodet om at få nulstillet din adgangskode til {{SITENAME}} ($4). Den følgende bruger {{PLURAL:$3|konto er|konti er}} tilknyttet denne e-mailadresse:\n\n$2\n\n{{PLURAL:$3|Denne midlertidige adgangskode|Disse midlertidige adgangskoder}} vil udløbe om {{PLURAL:$5|en dag|$5 dage}}.\nDu bør logge på og vælge en ny adgangskode nu. Hvis en anden end dig har lavet denne anmodning, eller hvis du er kommet i tanke om din oprindelige adgangskode og ikke længere ønsker at ændre den, kan du ignorere denne meddelelse og fortsætte med at bruge din gamle adgangskode.",
+       "passwordreset-emailtext-user": "Brugeren $1 på {{SITENAME}} har anmodet om at få nulstillet din adgangskode til {{SITENAME}} ($4). {{PLURAL:$3|Den følgende brugerkonto er tilknyttet|De følgende brugerkonti er tilknyttet}} med denne e-mailadresse:\n\n$2\n\n{{PLURAL:$3|Denne midlertidige adgangskode|Disse midlertidige adgangskoder}} vil udløbe om {{PLURAL:$5|en dag|$5 dage}}.\nDu bør logge på og vælge en ny adgangskode nu. Hvis en anden end dig har lavet denne anmodning, eller hvis du er kommet i tanke om din oprindelige adgangskode og ikke længere ønsker at ændre den, kan du ignorere denne meddelelse og fortsætte med at bruge din gamle adgangskode.",
        "passwordreset-emailelement": "Brugernavn: \n$1\n\nMidlertidig adgangskode: \n$2",
        "passwordreset-emailsentemail": "Hvis denne e-mailadresse er knyttet til din konto, så vil en e-mail om nulstilling af adgangskoden blive sendt.",
-       "passwordreset-emailsentusername": "Hvis der er en e-mailadresse forbundet med dette brugernavn, så vil en e-mail om nulstilling af adgangskoden blive sendt.",
-       "passwordreset-nocaller": "En kalder skal angives",
-       "passwordreset-nosuchcaller": "Kalderen findes ikke: $1",
+       "passwordreset-emailsentusername": "Hvis der er en e-mailadresse tilknyttet dette brugernavn, så vil en e-mail om nulstilling af adgangskoden blive sendt.",
+       "passwordreset-nocaller": "En bruger skal angives",
+       "passwordreset-nosuchcaller": "Brugeren findes ikke: $1",
+       "passwordreset-ignored": "Nulstilling af adgangskode blev ikke udført. Konfiguration af udbyder mangler måske?",
        "passwordreset-invalidemail": "Ugyldig e-mailadresse",
        "passwordreset-nodata": "Hverken et brugernavn eller en e-mailadresse blev angivet",
        "changeemail": "Ændr eller fjern e-mailadresse",
-       "changeemail-header": "Udfyld denne formular for at ændre din e-mailadresse. Hvis du gerne vil fjerne forbindelsen af en e-mailadresse fra din konto, så lad den nye e-mailadresse være blank, når du sender formularen.",
+       "changeemail-header": "Udfyld denne formular for at ændre din e-mailadresse. Hvis du gerne vil fjerne tilknytningen af en e-mailadresse fra din konto, så lad den nye e-mailadresse være blank, når du sender formularen.",
        "changeemail-no-info": "Du skal være logget på for at komme direkte til denne side.",
-       "changeemail-oldemail": "Nuværende e-mailadresse:",
+       "changeemail-oldemail": "Aktuel e-mailadresse:",
        "changeemail-newemail": "Ny e-mailadresse:",
+       "changeemail-newemail-help": "Dette felt bør stå tomt hvis du ønsker at fjerne din emailadressen. Det vil ikke være muligt at nulstille en glemt adgangskode og du vil ikke modtage nogen emails fra denne wiki hvis emailadressen fjernes.",
        "changeemail-none": "(ingen)",
        "changeemail-password": "Din adgangskode til {{SITENAME}}:",
        "changeemail-submit": "Ændre e-mail",
        "bold_tip": "Fed tekst",
        "italic_sample": "Kursiv tekst",
        "italic_tip": "Kursiv tekst",
-       "link_sample": "Henvisning",
-       "link_tip": "Intern henvisning",
-       "extlink_sample": "http://www.example.com titel på henvisning",
-       "extlink_tip": "Ekstern henvisning (husk http:// præfiks)",
+       "link_sample": "Link titel",
+       "link_tip": "Intern link",
+       "extlink_sample": "http://www.example.com link titel",
+       "extlink_tip": "Ekstern link (husk http:// præfiks)",
        "headline_sample": "Tekst til overskrift",
-       "headline_tip": "Type 2-overskrift",
-       "nowiki_sample": "Indsæt tekst her som ikke skal wikiformateres",
-       "nowiki_tip": "Ignorer wikiformatering",
+       "headline_tip": "Niveau 2 overskrift",
+       "nowiki_sample": "Indsæt ikke formateret tekst her",
+       "nowiki_tip": "Ignorer wiki formatering",
        "image_sample": "Eksempel.jpg",
        "image_tip": "Indlejret fil",
        "media_sample": "Eksempel.ogg",
-       "media_tip": "Henvisning til fil",
+       "media_tip": "Fil link",
        "sig_tip": "Din signatur med tidsstempel",
-       "hr_tip": "Horisontal linje (brug den sparsomt)",
+       "hr_tip": "Horisontal linje (bruges sparsomt)",
        "summary": "Sammenfatning:",
-       "subject": "Emne/overskrift:",
+       "subject": "Emne:",
        "minoredit": "Dette er en mindre ændring",
        "watchthis": "Overvåg denne side",
        "savearticle": "Gem side",
        "publishpage-start": "Offentliggør side...",
        "publishchanges-start": "Offentliggør ændringer...",
        "preview": "Forhåndsvisning",
-       "showpreview": "Forhåndsvisning",
+       "showpreview": "Vis forhåndsvisning",
        "showdiff": "Vis ændringer",
        "blankarticle": "<strong>Advarsel:</strong> Siden du opretter er tom.\nHvis du klikker på \"$1\" igen, vil siden blive oprettet uden indhold.",
        "anoneditwarning": "<strong>Advarsel:</strong> Du er ikke logget på. Din IP-adresse vil blive offentligt tilgængelig, hvis du foretager nogen ændringer. Hvis du <strong>[$1 logger på]</strong> eller <strong>[$2 opretter en konto]</strong> vil dine redigeringer blive tilskrevet dit brugernavn, og du vil få flere andre fordele.",
-       "anonpreviewwarning": "''Du er ikke logget på. Hvis du gemmer, registreres din IP-adresse i versionshistorikken.''",
-       "missingsummary": "'''Bemærk:''' Du har ikke angivet en redigeringsbeskrivelse. Hvis du igen trykker på \"$1\", gemmes ændringerne uden en beskrivelse.",
+       "anonpreviewwarning": "<em>Du er ikke logget på. Hvis du gemmer, registreres din IP-adresse i redigerings historikken.</em>",
+       "missingsummary": "<strong>Bemærk:</strong> Du har ikke angivet en redigeringsbeskrivelse. Hvis du igen trykker på \"$1\", gemmes ændringerne uden en beskrivelse.",
        "selfredirect": "<strong>Advarsel:</strong> Du er ved at omdirigere denne side til sig selv.\nDu kan have angivet det forkerte mål for omdirigeringen, eller du kan være ved at redigere den forkerte side.\nHvis du klikker på \"$1\" igen, vil omdirigeringen blive oprettet uanset dette.",
        "missingcommenttext": "Skriv venligst en kommentar.",
-       "missingcommentheader": "<strong>Bemærk:</strong> Du har ikke angivet en overskrift/emne for denne kommentar. Hvis du trykker \"$1\" én gang til, gemmes dine ændringer uden overskrift/emne.",
+       "missingcommentheader": "<strong>Bemærk:</strong> Du har ikke angivet en emne for denne kommentar. Hvis du trykker \"$1\" én gang til, gemmes dine ændringer uden emne.",
        "summary-preview": "Forhåndsvisning af sammenfatning:",
-       "subject-preview": "Forhåndsvisning af emne/overskrift:",
+       "subject-preview": "Forhåndsvisning af emne:",
        "previewerrortext": "Der opstod en fejl under forsøget på at lave en forhåndsvisning af dine ændringer.",
-       "blockedtitle": "Du eller din IP-adresse er blokeret",
-       "blockedtext": "<strong>Dit brugernavn eller din IP-adresse er blevet blokeret.</strong>\n\nBlokeringen er foretaget af $1.\nDen anførte grund er <em>$2</em>.\n\nBlokeringen starter: $8\nBlokeringen udløber: $6\nBlokeringen er rettet mod: $7\n\nDu kan kontakte $1 eller en af de andre [[{{MediaWiki:Grouppage-sysop}}|administratorer]] for at diskutere blokeringen.\nDu kan ikke bruge funktionen \"{{int:emailuser}}\" medmindre der er angivet en gyldig e-mailadresse i dine [[Special:Preferences|kontoindstillinger]], og du ikke er blevet blokeret fra at bruge den.\n\nDin nuværende IP-adresse er $3, og blokerings-id er #$5.\nAngiv venligst alle ovenstående detaljer ved henvendelser om blokeringen.",
-       "autoblockedtext": "Din IP-adresse er blevet blokeret automatisk fordi den blev brugt af en anden bruger som er blevet blokeret af $1.\nDen givne begrundelse er:\n\n:<em>$2</em>\n\n* Blokeringsperiodens start: $8\n* Blokeringen udløber: $6\n* Blokeringen er rettet mod: $7\n\nDu kan kontakte $1 eller en af de andre [[{{MediaWiki:Grouppage-sysop}}|administratorer]] for at diskutere blokeringen.\n\nBemærk at du ikke kan bruge funktionen \"{{int:emailuser}}\" medmindre du har en gyldig e-mailadresse registreret i dine [[Special:Preferences|brugerindstillinger]] og du ikke er blevet blokeret fra at bruge den.\n\nDin nuværende IP-adresse er $3, og blokerings-id'et er #$5.\nAngiv venligst alle de ovenstående detaljer ved eventuelle henvendelser.",
+       "blockedtitle": "Bruger er blokeret",
+       "blocked-email-user": "<strong> Dit brugernavn er blevet blokeret fra at sende email. Du skal stadig redigere andre sider på denne wiki.</strong> Du kan se de fulde blokerings detaljer her\n[[Special:MyContributions|kontobidrag]].\n\nBlokeringen er foretaget af $1.\n\nDen anførte grund er <em>$2</em>.\n \n* Blokeringen starter: $8\n* Blokeringen udløber: $6\n* Blokeringen er rettet mod: $7\n* Blokerings ID #$5",
+       "blockedtext-partial": "<strong> Dit brugernavn eller IP adresse er blevet blokeret fra at lave ændringer til denne side. Du skal stadig redigere andre sider på denne wiki.</strong> Du kan se de fulde blokerings detaljer her\n[[Special:MyContributions|kontobidrag]].\n\nBlokeringen er foretaget af $1.\n\nDen anførte grund er <em>$2</em>.\n \n* Blokeringen starter: $8\n* Blokeringen udløber: $6\n* Blokeringen er rettet mod: $7\n* Blokerings ID #$5",
+       "blockedtext": "<strong>Dit brugernavn eller din IP-adresse er blevet blokeret.</strong>\n\nBlokeringen er foretaget af $1.\n\nDen anførte grund er <em>$2</em>.\n \n* Blokeringen starter: $8\n* Blokeringen udløber: $6\n* Blokeringen er rettet mod: $7\n\n\nDu kan kontakte $1 eller en af de andre [[{{MediaWiki:Grouppage-sysop}}|administratorer]] for at diskutere blokeringen.\nDu kan ikke bruge funktionen \"{{int:emailuser}}\" medmindre der er angivet en gyldig e-mailadresse i dine [[Special:Preferences|kontoindstillinger]], og du ikke er blevet blokeret fra at bruge den.\n\nDin nuværende IP-adresse er $3, og blokerings-id er #$5.\nAngiv venligst alle ovenstående detaljer ved henvendelser om blokeringen.",
+       "autoblockedtext": "Din IP-adresse er blevet blokeret automatisk fordi den blev brugt af en anden bruger som er blevet blokeret af $1.\nDen givne begrundelse er:\n\n:<em>$2</em>\n\n* Blokeringen starter: $8\n* Blokeringen udløber: $6\n* Blokeringen er rettet mod: $7\n\nDu kan kontakte $1 eller en af de andre [[{{MediaWiki:Grouppage-sysop}}|administratorer]] for at diskutere blokeringen.\n\nBemærk at du ikke kan bruge funktionen \"{{int:emailuser}}\" medmindre du har en gyldig e-mailadresse registreret i dine [[Special:Preferences|brugerindstillinger]] og du ikke er blevet blokeret fra at bruge den.\n\nDin nuværende IP-adresse er $3, og blokerings-id'et er #$5.\nAngiv venligst alle de ovenstående detaljer ved eventuelle henvendelser.",
        "systemblockedtext": "Dit brugernavn eller din IP-adresse er automatisk blokeret af MediaWiki.\nBegrundelsen for det er:\n\n:<em>$2</em>\n\n* Blokeringsperiodens start: $8\n* Blokeringen udløber: $6\n* Blokeringen er ment for: $7\n\nDin nuværende IP-adresse er $3.\nAngiv venligst alle de ovenstående detaljer ved eventuelle henvendelser.",
+       "actionblockedtext": "Du er blevet blokeret fra at udføre denne handling.",
        "blockednoreason": "ingen begrundelse givet",
        "whitelistedittext": "Du skal $1 for at kunne redigere sider.",
-       "confirmedittext": "Du skal først bekræfte din e-mailadresse, før du kan redigere sider. Udfyld og bekræft din e-mailadresse i dine [[Special:Preferences|indstillinger]].",
+       "confirmedittext": "Du skal bekræfte din e-mailadresse, før du kan redigere sider. Udfyld og bekræft din e-mailadresse i dine [[Special:Preferences|bruger indstillinger]].",
        "nosuchsectiontitle": "Kan ikke finde afsnittet",
-       "nosuchsectiontext": "Du forsøgte at ændre et afsnit der ikke findes. Det kan være flyttet eller slettet, siden du hentede siden.",
+       "nosuchsectiontext": "Du forsøgte at redigere et afsnit, der ikke findes. Det kan være flyttet eller slettet imens du kiggede på siden.",
        "loginreqtitle": "Log på nødvendigt",
        "loginreqlink": "logge på",
        "loginreqpagetext": "Du skal $1 for at se andre sider.",
        "accmailtitle": "Adgangskode sendt.",
-       "accmailtext": "En tilfældigt dannet adgangskode for [[User talk:$1|$1]] er sendt til $2. Den kan ændres på siden ''[[Special:ChangePassword|skift adgangskode]]'', når du logger på.",
+       "accmailtext": "En tilfældigt dannet adgangskode for [[User talk:$1|$1]] er sendt til $2. Den kan ændres på siden <em>[[Special:ChangePassword|skift adgangskode]]</em>, når du logger på.",
        "newarticle": "(Ny)",
-       "newarticletext": "Du har fulgt en henvisning til en side som endnu ikke findes.\nFor at oprette siden skal du begynde at skrive i boksen nedenfor\n(se [$1 hjælpesiden] for yderligere information).\nHvis du er her ved en fejl, så tryk på din browsers '''tilbage'''-knap.",
+       "newarticletext": "Du har fulgt en link til en side som endnu ikke findes.\nFor at oprette siden skal du begynde at skrive i boksen nedenfor\n(se [$1 hjælpeside] for yderligere information).\nHvis du er her ved en fejl, så klik på din browsers <strong>tilbage</strong> knap.",
        "anontalkpagetext": "----\n<em>Dette er diskussionssiden for en anonym bruger, der ikke har oprettet en konto endnu eller ikke bruger den.</em>\nVi er derfor nødt til at bruge den numeriske IP-adresse til at identificere vedkommende.\nEn sådan IP-adresse kan være delt mellem flere brugere.\nHvis du er en anonym bruger og synes, at irrelevante kommentarer er blevet rettet mod dig, så [[Special:CreateAccount|opret en brugerkonto]] eller [[Special:UserLogin|log på]] for at undgå fremtidige forvekslinger med andre anonyme brugere.",
-       "noarticletext": "Der er i øjeblikket ikke nogen tekst på denne side.\nDu kan [[Special:Search/{{PAGENAME}}|søge efter sidenavnet]] på andre sider,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} søge i relaterede logger]\neller [{{fullurl:{{FULLPAGENAME}}|action=edit}} oprette siden]</span>.",
-       "noarticletext-nopermission": "Der er i øjeblikket ikke nogen tekst på denne side.\nDu kan [[Special:Search/{{PAGENAME}}|søge efter sidenavnet]] på andre sider,\neller <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} søge i relaterede loglister]</span>,\nmen du har ikke tilladelse til at oprette denne side.",
+       "noarticletext": "Der er i øjeblikket ingen tekst på denne side.\nDu kan [[Special:Search/{{PAGENAME}}|søge efter sidenavnet]] på andre sider,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} søge i relaterede logger]\neller [{{fullurl:{{FULLPAGENAME}}|action=edit}} oprette siden]</span>.",
+       "noarticletext-nopermission": "Der er i øjeblikket ingen tekst på denne side.\nDu kan [[Special:Search/{{PAGENAME}}|søge efter sidenavnet]] på andre sider,\neller <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} søge i relaterede loglister]</span>,\nmen du har ikke tilladelse til at oprette denne side.",
        "missing-revision": "Revision #$1 af siden med navnet \"{{FULLPAGENAME}}\" eksisterer ikke.\n\nDette skyldes normalt at et forældet historik-link er fulgt til en side der er slettet.\nDetaljer kan findes i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sletningsloggen].",
-       "userpage-userdoesnotexist": "Brugerkontoen \"<nowiki>$1</nowiki>\" findes ikke. Overvej om du ønsker at oprette eller redigere denne side.",
+       "userpage-userdoesnotexist": "Brugerkontoen \"$1\" findes ikke. Overvej om du ønsker at oprette eller redigere denne side.",
        "userpage-userdoesnotexist-view": "Brugerkontoen \"$1\" er ikke oprettet.",
        "blocked-notice-logextract": "Denne bruger er i øjeblikket blokeret.\nLoggen over den seneste blokering ses nedenfor:",
        "clearyourcache": "<strong>Bemærk:</strong> Efter at have gemt er du måske nødt til at tømme din browsers cache for at kunne se ændringerne.\n* <strong>Firefox / Safari:</strong> Hold <em>Shift</em> nede og klik på <em>Reload</em>, eller tryk enten <em>Ctrl-F5</em> eller <em>Ctrl-R</em> (<em>⌘-R</em> på en Mac).\n* <strong>Google Chrome:</strong> Tryk <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> på en Mac).\n* <strong>Internet Explorer:</strong> Hold <em>Ctrl</em> nede og klik på <em>Refresh</em>, eller tryk på <em>Ctrl-F5</em>.\n* <strong>Opera:</strong> Go to <em>Menu → Settings</em> (<em>Opera → Preferences</em> on a Mac) and then to <em>Privacy & security → Clear browsing data → Cached images and files</em>",
-       "usercssyoucanpreview": "'''Tip:''' Brug \"{{int:showpreview}}\"-knappen for at teste dit nye CSS inden du gemmer.",
-       "userjsyoucanpreview": "'''Tip:''' Brug \"{{int:showpreview}}\"-knappen for at teste dit nye JavaScript inden du gemmer.",
-       "usercsspreview": "'''Husk at dette kun er en forhåndsvisning af dit eget css.\n'''Det er ikke gemt endnu!'''",
-       "userjspreview": "'''Husk at du kun tester/forhåndsviser dit eget javascript, det er ikke gemt endnu!'''",
-       "sitecsspreview": "'''Husk, at dette kun er en forhåndsvisning af denne CSS.'''\n'''Det er endnu ikke gemt!'''",
-       "sitejspreview": "'''Husk, at du kun ser en forhåndsvisning af denne JavaScriptkode.'''\n'''Det er endnu ikke gemt!'''",
-       "userinvalidconfigtitle": "'''Advarsel:''' Der findes intet skin „$1“. Tænk på, at brugerspecifikke .css- og .js-sider begynder med små bogstaver, altså f.eks. ''{{ns:user}}:Hansen/vector.css'' og ikke ''{{ns:user}}:Hansen/Vector.css''.",
+       "usercssyoucanpreview": "<strong>Tip:</strong> Brug \"{{int:showpreview}}\" knappen for at teste dit nye CSS inden du gemmer.",
+       "userjsonyoucanpreview": "<strong>Tip:</strong> Brug \"{{int:showpreview}}\" knappen for at teste dit nye JSON inden du gemmer.",
+       "userjsyoucanpreview": "<strong>Tip:</strong> Brug \"{{int:showpreview}}\" knappen for at teste dit nye JavaScript inden du gemmer.",
+       "usercsspreview": "<strong>Husk at dette kun er en forhåndsvisning af dit bruger CSS.\nDet er ikke gemt endnu!</strong>",
+       "userjsonpreview": "<strong>Husk at dette kun er en test/forhåndsvisning af dit bruger JSON.\nDet er ikke gemt endnu!</strong>",
+       "userjspreview": "<strong>Husk at dette kun er en test/forhåndsvisning af dit bruger JavaScript.\nDet er ikke gemt endnu!</strong>",
+       "sitecsspreview": "<strong>Husk at dette kun er en forhåndsvisning af denne CSS.\nDet er ikke gemt endnu!</strong>",
+       "sitejsonpreview": "<strong>Husk at dette kun er en forhåndsvisning af denne JSON.\nDet er ikke gemt endnu!</strong>",
+       "sitejspreview": "<strong>Husk at dette kun er en forhåndsvisning af denne JavaScript kode.\nDet er ikke gemt endnu!</strong>",
+       "userinvalidconfigtitle": "<strong>Advarsel:</strong> Der findes intet skin \"$1\". \nTænk på, at brugerspecifikke .css, json, og .js-sider begynder med små bogstaver, altså f.eks. {{ns:user}}:Hansen/vector.css og ikke {{ns:user}}:Hansen/Vector.css.",
        "updated": "(Opdateret)",
-       "note": "'''Bemærk:'''",
-       "previewnote": "'''Husk at dette er kun en forhåndsvisning.'''\nDine ændringer er endnu ikke blevet gemt!",
+       "note": "<strong>Bemærk:</strong>",
+       "previewnote": "<strong>Husk at dette er kun en forhåndsvisning.</strong>\nDine ændringer er endnu ikke blevet gemt!",
        "continue-editing": "Gå til redigeringsfeltet",
        "previewconflict": "Denne forhåndsvisning er resultatet af den redigérbare tekst ovenfor, sådan vil det komme til at se ud hvis du vælger at gemme teksten.",
        "session_fail_preview": "Beklager! Vi kunne ikke behandle din redigering på grund af et tab af sessionsdata.\n\nDu er måske blevet logget ud. <strong>Kontroller venligst, at du stadig er logget ind, og prøv så igen</strong>.\nHvis det stadig ikke virker, så prøv at [[Special:UserLogout|logge ud]] og logge ind igen. Du kan også kontrollere, at din browser tillader cookies fra dette websted.",
        "session_fail_preview_html": "Beklager! Vi kunne ikke behandle din redigering på grund af et tab af sessionsdata.\n\n<em>Fordi {{SITENAME}} har rå HTML aktiveret, er forhåndsvisningen skjult som en sikkerhedsforanstaltning mod JavaScript-angreb.</em>\n\n<strong>Hvis dette er et legitimt forsøg på redigere, så prøv venligst igen.</strong>\nHvis det stadig ikke virker, så prøv at [[Special:UserLogout|logge ud]] og logge ind igen. Du kan også kontrollere, at din browser tillader cookies fra dette websted.",
-       "token_suffix_mismatch": "'''Din redigering er afvist, da din browser har forvansket tegnsætningen i redigeringskontrolfilen. Afvisningen sker for at forhindre utilsigtede ændringer i artiklen. Denne fejl opstår nogle gange, når du redigerer gennem en fejlprogrammeret webbaseret anonymiseringstjeneste.'''",
-       "edit_form_incomplete": "'''Nogle dele af redigeringsformularen nåede ikke serveren; dobbelttjek, at redigeringerne er intakte, og prøv igen.'''",
+       "token_suffix_mismatch": "<strong>Din redigering er afvist, da din browser har forvansket tegnsætningen i redigeringskontrolfilen.</strong>\nAfvisningen sker for at forhindre utilsigtede ændringer i artiklen. Denne fejl opstår nogle gange, når du redigerer gennem en fejlprogrammeret webbaseret anonymiseringstjeneste.",
+       "edit_form_incomplete": "<strong>Nogle dele af redigeringsformularen nåede ikke serveren; dobbelttjek, at redigeringerne er intakte, og prøv igen.</strong>",
        "editing": "Redigerer $1",
        "creating": "Opretter $1",
        "editingsection": "Redigerer $1 (afsnit)",
        "editingcomment": "Redigerer $1 (nyt afsnit)",
        "editconflict": "Redigeringskonflikt: $1",
-       "explainconflict": "Nogen har ændret denne side, efter du startede på at redigere den.\nDen øverste tekstboks indeholder den nuværende tekst.\nDine ændringer er vist i den nederste tekstboks.\nDu er nødt til at sammenflette dine ændringer med den eksisterende tekst.\n'''Kun''' teksten i den øverste tekstboks vil blive gemt når du trykker \"$1\".",
+       "explainconflict": "Nogen har ændret denne side, efter du startede på at redigere den.\nDen øverste tekstboks indeholder den aktuelle tekst.\nDine ændringer er vist i den nederste tekstboks.\nDu er nødt til at sammenflette dine ændringer med den eksisterende tekst.\n<strong>Kun</strong> teksten i den øverste tekstboks vil blive gemt når du trykker \"$1\".",
        "yourtext": "Din tekst",
        "storedversion": "Den gemte version",
-       "editingold": "'''ADVARSEL: Du redigerer en gammel version af denne side.\nHvis du gemmer den, vil alle ændringer foretaget siden denne revision blive overskrevet.'''",
+       "editingold": "<strong>ADVARSEL: Du redigerer en gammel version af denne side.</strong>\nHvis du gemmer den, vil alle ændringer foretaget siden denne revision blive overskrevet og tabt.",
+       "unicode-support-fail": "Det virker som om din browser ikke understøtter Unicode. Det er påkrævet for at redigere sider, så din redigering blev ikke gemt.",
        "yourdiff": "Forskelle",
-       "copyrightwarning": "Bemærk venligst at alle bidrag til {{SITENAME}} er at betragte som udgivne under $2 (se $1 for detaljer).\nHvis du ikke ønsker at din tekst skal udsættes for nådesløse redigeringer og at den kan blive kopieret efter forgodtbefindende, så skal du ikke placere den her.<br />\nDu lover os også, at du selv har forfattet teksten eller har kopieret den fra en public domain-kilde eller en tilsvarende fri kilde.\n'''Læg aldrig materiale her som er beskyttet af andres ophavsret uden deres tilladelse!'''",
-       "copyrightwarning2": "Bemærk venligst at alle bidrag til {{SITENAME}} kan bearbejdes, ændres eller slettes af andre brugere.\nLæg ingen tekster ind, hvis du ikke kan acceptere at disse kan ændres.\n\nDu bekræfter hermed også, at du selv har skrevet denne tekst eller kopieret den fra en fri kilde (se $1 for detaljer).\n'''OVERFØR IKKE OPHAVSRETSLIGT BESKYTTET INDHOLD UDEN TILLADELSE!'''",
+       "copyrightwarning": "Bemærk venligst at alle bidrag til {{SITENAME}} er at betragte som udgivne under $2 (se $1 for detaljer).\nHvis du ikke ønsker at din tekst skal udsættes for nådesløse redigeringer og at den kan blive kopieret efter forgodtbefindende, så skal du ikke placere den her.<br />\nDu lover os også, at du selv har forfattet teksten eller har kopieret den fra en public domain-kilde eller en tilsvarende fri kilde.\n<strong>Læg aldrig materiale her, som er beskyttet af andres ophavsret uden deres tilladelse!</strong>",
+       "copyrightwarning2": "Bemærk venligst at alle bidrag til {{SITENAME}} kan bearbejdes, ændres eller slettes af andre brugere.\nLæg ingen tekster ind, hvis du ikke kan acceptere at disse kan ændres.<br/>\n\nDu bekræfter hermed også, at du selv har skrevet denne tekst eller kopieret den fra en fri kilde (se $1 for detaljer).\n<strong>OVERFØR IKKE OPHAVSRETSLIGT BESKYTTET INDHOLD UDEN TILLADELSE!</strong>",
        "editpage-cannot-use-custom-model": "Indholdsmodellen for denne side kan ikke ændres.",
-       "longpageerror": "'''Fejl: Teksten, som du ville gemme, er {{PLURAL:$1|en kilobyte|$1 kilobytes}} stor, hvilket er mere end det tilladte maksimum på {{PLURAL:$2|en kilobyte|$2 kilobytes}}.'''\nDet er ikke muligt at gemme den.",
+       "longpageerror": "<strong>Fejl: Teksten, som du ville gemme, er {{PLURAL:$1|en kilobyte|$1 kilobytes}} stor, hvilket er mere end det tilladte maksimum på {{PLURAL:$2|en kilobyte|$2 kilobytes}}.</strong>\nDet er ikke muligt at gemme den.",
        "readonlywarning": "<strong>Advarsel: Databasen er låst på grund af vedligeholdelse, så du kan ikke gemme dine ændringer lige nu.</strong>\nDet kan være en god idé at kopiere din tekst over i en tekstfil og gemme den til senere.\n\nAdministratoren, som låste databasen, gav denne forklaring: $1",
-       "protectedpagewarning": "'''ADVARSEL: Denne side er skrivebeskyttet, så kun administratorer kan redigere den.'''<br />\nDen seneste logpost vises nedenfor:",
-       "semiprotectedpagewarning": "'''Bemærk: Siden er låst, så kun registrerede brugere kan ændre den.'''\n<br />Den seneste logpost vises nedenfor:",
+       "protectedpagewarning": "<strong>ADVARSEL: Denne side er skrivebeskyttet, så kun administratorer kan redigere den.</strong>\nDen seneste logpost vises nedenfor:",
+       "semiprotectedpagewarning": "<strong>Bemærk:</strong> Siden er låst, så kun registrerede brugere kan ændre den.\nDen seneste logpost vises nedenfor:",
        "cascadeprotectedwarning": "<strong>Advarsel:</strong> Denne side er blevet beskyttet, så kun brugere med [[Special:ListGroupRights|bestemte rettigheder]] kan ændre den, fordi indholdet er inkluderet i følgende {{PLURAL:$1|side|sider}} med nedarvet sidebeskyttelse:",
-       "titleprotectedwarning": "ADVARSEL:  Den side er låst så kun [[Special:ListGroupRights|visse brugere]] kan oprette den.'''\n<br />Den seneste logpost vises nedenfor:",
+       "titleprotectedwarning": "<strong>ADVARSEL:  Den side er låst så kun [[Special:ListGroupRights|visse brugere]] kan oprette den.</strong>\nDen seneste logpost vises nedenfor:",
        "templatesused": "{{PLURAL:$1|Skabelon|Skabeloner}} der er brugt på denne side:",
        "templatesusedpreview": "Følgende {{PLURAL:$1|skabelon|skabeloner}} bruges i denne forhåndsvisning:",
        "templatesusedsection": "Følgende {{PLURAL:$1|skabelon|skabeloner}} bruges i dette afsnit:",
        "template-semiprotected": "(delvist beskyttet)",
        "hiddencategories": "Denne side er i {{PLURAL:$1|en skjult kategori|$1 skjulte kategorier}}:",
        "edittools": "<!-- Denne tekst vises under formularen \"Redigér\" samt \"Læg en fil op\". -->",
-       "nocreatetext": "Serveren har begrænset oprettelse af nye sider. Bestående sider kan ændres eller [[Special:UserLogin|logge på]].",
+       "edittools-upload": "-",
+       "nocreatetext": "{{SITENAME}} har begrænset oprettelse af nye sider. \nDu kan gå tilbage og redigere en eksisterende side, elle [[Special:UserLogin|logge på eller oprette en konto]].",
        "nocreate-loggedin": "Du har ikke rettigheder til at oprette nye sider.",
        "sectioneditnotsupported-title": "Afsnitsredigering understøttes ikke",
        "sectioneditnotsupported-text": "Afsnitsredigering understøttes ikke på denne side.",
        "permissionserrors": "Manglende rettigheder",
        "permissionserrorstext": "Du har ikke rettigheder til at gennemføre denne handling, {{PLURAL:$1|årsagen|årsagerne}} er:",
        "permissionserrorstext-withaction": "Du har ikke rettigheder til at $2 af følgende {{PLURAL:$1|grund|grunde}}:",
-       "recreate-moveddeleted-warn": "'''Advarsel: Du er ved at genskabe en tidligere slettet side.'''\n\nOvervej om det er passende at genoprette siden. Sletnings- og flytteloggerne for siden er vist nedenfor.",
+       "contentmodelediterror": "Du kan ikke redigere denne version fordi indholdsmodellen er <code>$1</code>, som er afviger fra den aktuelle model <code>$2</code>.",
+       "recreate-moveddeleted-warn": "<strong>Advarsel: Du er ved at genskabe en tidligere slettet side.</strong>\n\nOvervej om det er passende at genoprette siden. Sletnings- og flytteloggerne for siden er vist nedenfor.",
        "moveddeleted-notice": "Denne side er blevet slettet.\nSletnings-, beskyttelses- og flytteloggene for siden er vist nedenfor.",
        "moveddeleted-notice-recent": "Beklager, denne side er for nylig blevet slettet (i løbet af de sidste 24 timer).\nSlette-, beskyttelses- og flytteloggene for siden er vist nedenfor.",
        "log-fulllog": "Vis fuldstændig log",
-       "edit-hook-aborted": "Redigering afbrudt af en programfunktion. Ingen tilknyttet forklaring.",
-       "edit-gone-missing": "Kunne ikke opdatere siden.\nDen ser du til at være slettet.",
+       "edit-hook-aborted": "Redigering afbrudt af en programfunktion. \nIngen tilknyttet forklaring.",
+       "edit-gone-missing": "Kunne ikke opdatere siden.\nDen ser ud til at være slettet.",
        "edit-conflict": "Redigeringskonflikt.",
        "edit-no-change": "Din ændring ignoreredes, fordi der ikke var ændring af teksten.",
+       "edit-slots-cannot-add": "Følgende {{PLURAL:$1|plads|pladser}} understøttes ikke her: $2.",
+       "edit-slots-cannot-remove": "Følgende {{PLURAL:$1|plads|pladser}} er påkrævet og kan ikke fjernes: $2",
+       "edit-slots-missing": "Følgende {{PLURAL:$1|plads|pladser}} mangler: $2",
        "postedit-confirmation-created": "Siden er blevet oprettet.",
        "postedit-confirmation-restored": "Siden er blevet genoprettet.",
-       "postedit-confirmation-saved": "Din redigering er gemt.",
+       "postedit-confirmation-saved": "Din redigering blev gemt.",
        "postedit-confirmation-published": "Din ændring blev udgivet.",
        "edit-already-exists": "En ny side kunne ikke oprettes, fordi den allerede findes.",
-       "defaultmessagetext": "Standardtekst",
+       "defaultmessagetext": "Standard beskedtekst",
        "content-failed-to-parse": "Kunne ikke fortolke $2-indholdet af $1-modellen: $3",
        "invalid-content-data": "Ugyldig indholdsdata",
        "content-not-allowed-here": "Indholdet \"$1\" er ikke tilladt på siden [[:$2]] i sprækken \"$3\"",
        "content-model-text": "almindelig tekst",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "content-model-json": "JSON",
        "content-json-empty-object": "Tomt objekt",
-       "content-json-empty-array": "Tomt array",
+       "content-json-empty-array": "Tomt matrix",
        "deprecated-self-close-category": "Sider, der bruger ugyldige, selvlukkende HTML-tags",
+       "deprecated-self-close-category-desc": "Siden bruger ugyldige selvlukkende HTML tags, som <code>&lt;b/></code> eller <code>&lt;span/></code>. De vil snart blive ændret i overensstemmelse med HTML5 specifikationen, så de ikke kan bruges i wikitext.",
        "duplicate-args-category": "Sider der bruger samme argument mere end en gang i en skabelon",
        "duplicate-args-category-desc": "Siden indeholder en skabelon hvor et argument er brugt mere end en gang, som <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> eller <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "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}}.",
        "rcfilters-liveupdates-button-title-off": "Vis nye ændringer når de sker",
        "rcfilters-watchlist-markseen-button": "Marker alle ændringer som set",
        "rcfilters-watchlist-edit-watchlist-button": "Rediger din liste med overvågede sider",
-       "rcfilters-watchlist-showupdated": "Ændringer til sider du ikke har besøgt siden ændringerne blev gjort vises med <strong>fed</strong>, med faste markører.",
+       "rcfilters-watchlist-showupdated": "Ændringer til sider du ikke har besøgt siden ændringerne blev gjort vises med <strong>fed</strong>.",
        "rcfilters-preference-label": "Brug grænsefladesnittet uden JavaScript",
        "rcfilters-watchlist-preference-label": "Brug grænsefladesnittet uden JavaScript",
        "rcfilters-watchlist-preference-help": "Indlæser overvågningslisten uden mulighed for søgning med filter eller fremhævelse.",
        "blockip": "Bloker {{GENDER:$1|bruger}}",
        "blockiptext": "Brug formularen herunder til at blokere for skriveadgang fra en bestemt IP-adresse eller et brugernavn.\nDette bør kun gøres for at forhindre vandalisme og skal være i overensstemmelse med [[{{MediaWiki:Policy-url}}|retningslinjerne]].\nAngiv en konkret begrundelse herunder (for eksempel med angivelse af sider der har været udsat for vandalisme).\nDu kan blokere IP-adresseintervaller via syntaksen fra [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; det største tilladte interval er /$1 for IPv4 og /$2 for IPv6.",
        "ipaddressorusername": "IP-adresse eller brugernavn",
-       "ipbexpiry": "varighed",
        "ipbreason": "Begrundelse:",
        "ipbreason-dropdown": "*Generelle begrundelser\n** Indsættelse af forkerte oplysninger\n** Fjernelse af korrekt indhold\n** Linkspam\n** Indsættelse af vås/nonsens\n** Utilstedelig opførsel\n** Misbrug af flere brugerkonti\n** Uacceptabelt brugernavn",
        "ipb-hardblock": "Forhindr indloggede brugere i at redigere fra denne IP-adresse",
-       "ipbcreateaccount": "Forhindr oprettelse af brugerkontoer",
-       "ipbemailban": "Spær brugerens adgang til at sende e-mail",
+       "ipbcreateaccount": "Kontooprettelse",
+       "ipbemailban": "Sende e-mail",
        "ipbenableautoblock": "Spær den seneste IP-adresse der er brugt af denne bruger, samt automatisk alle følgende IP-adresser brugeren forsøger at redigere fra",
        "ipbsubmit": "Bloker denne bruger",
        "ipbother": "Anden varighed (engelsk)",
        "ipboptions": "2 timer:2 hours,1 dag:1 day,3 dage:3 days,1 uge:1 week,2 uger:2 weeks,1 måned:1 month,3 måneder:3 months,6 måneder:6 months,1 år:1 year,ubegrænset:infinite",
        "ipbhidename": "Skjul brugernavnet i redigeringer og lister",
        "ipbwatchuser": "Overvåg denne brugers brugerside og diskussionsside.",
-       "ipb-disableusertalk": "Forhindr denne bruger i at redigere sin egen brugerdiskussion under blokeringen",
+       "ipb-disableusertalk": "Redigering af egen brugerdiskussion",
        "ipb-change-block": "Forny brugerens blokering med disse indstillinger",
        "ipb-confirm": "Bekræft blokering",
        "ipb-partial": "Delvist",
-       "ipb-type-label": "Type",
        "ipb-pages-label": "Sider",
        "badipaddress": "IP-adressen/brugernavnet er udformet forkert eller eksistere ikke.",
        "blockipsuccesssub": "Blokeringen er gennemført.",
        "ipb-blocklist": "Vis alle blokeringer som er i kraft",
        "ipb-blocklist-contribs": "Bidrag fra {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 tilbage",
+       "block-actions": "Handlinger, som skal blokeres:",
+       "block-expiry": "varighed",
+       "block-prevent-edit": "Redigering",
+       "block-reason": "Begrundelse:",
+       "block-target": "Brugernavn eller IP-adresse:",
        "unblockip": "Ophæv blokering af bruger",
        "unblockiptext": "Brug formularen herunder for at gendanne skriveadgangen for en tidligere blokeret IP-adresse eller bruger.",
        "ipusubmit": "Ophæv blokeringen",
        "specialpages-group-developer": "Udviklerværktøjer",
        "blankpage": "Blank side",
        "intentionallyblankpage": "Denne side er bevidst uden indhold.",
+       "disabledspecialpage-disabled": "Denne side er deaktiveret af en systemadministrator.",
        "external_image_whitelist": " #Lad denne linje være som den er<pre>\n#Skriv dele af regulære uttryk (delen som er mellem //) nedenfor\n#Disse vil tjekkes mod URL'er for eksterne billeder\n#De som matcher, vil blive vist som billeder. Øvrige vil kun blive vist som henvisninger til billedet\n#Linjer som begynder med # behandles som kommentarer\n#Der skelnes ikke mellem store og små bogstaver\n\n#Skriv alle delene af regulære udtryk over denne linje. Lad denne linje være som den er</pre>",
        "tags": "Tags til sideversioner",
        "tag-filter": "[[Special:Tags|Tag]]filter:",
index 2943e3c..9a44ddd 100644 (file)
        "resetpass-abort-generic": "Die Passwortänderung wurde durch eine Erweiterung abgebrochen.",
        "resetpass-expired": "Dein Passwort ist abgelaufen. Bitte lege ein neues Passwort zur Anmeldung fest.",
        "resetpass-expired-soft": "Dein Passwort ist abgelaufen und muss geändert werden. Bitte wähle jetzt ein neues Passwort aus oder klicke auf „{{int:authprovider-resetpass-skip-label}}“, um es später zu ändern.",
+       "resetpass-validity": "Dein Passwort ist nicht gültig: $1\n\nBitte lege zur Anmeldung ein neues Passwort fest.",
        "resetpass-validity-soft": "Dein Passwort ist ungültig: $1\n\nBitte wähle jetzt ein neues Passwort aus oder klicke auf „{{int:authprovider-resetpass-skip-label}}“, um es später zu ändern.",
        "passwordreset": "Passwort zurücksetzen",
        "passwordreset-text-one": "Fülle dieses Formular aus, um ein temporäres Passwort per E-Mail zu erhalten.",
        "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 „{{int:emailuser}}“-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 „{{int:emailuser}}“-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.",
        "systemblockedtext": "Dein Benutzername oder deine IP-Adresse wurde von MediaWiki automatisch gesperrt.\nDer angegebene Grund ist:\n\n:<em>$2</em>\n\n* Beginn der Sperre: $8\n* Ablauf der Sperre: $6\n* Sperre betrifft: $7\n\nDeine aktuelle IP-Adresse ist $3.\nBitte gib alle oben stehenden Details in jeder Anfrage an.",
+       "actionblockedtext": "Du wurdest daran gehindert, diese Aktion auszuführen.",
        "blockednoreason": "keine Begründung angegeben",
        "whitelistedittext": "Du musst dich $1, um Seiten bearbeiten zu können.",
        "confirmedittext": "Du musst deine E-Mail-Adresse erst bestätigen, bevor du Bearbeitungen durchführen kannst. Bitte ergänze und bestätige deine E-Mail in den [[Special:Preferences|Einstellungen]].",
        "group-autoconfirmed": "Automatisch bestätigte Benutzer",
        "group-bot": "Bots",
        "group-sysop": "Administratoren",
-       "group-interface-admin": "Oberflächenadministratoren",
+       "group-interface-admin": "Benutzeroberflächenadministratoren",
        "group-bureaucrat": "Bürokraten",
        "group-suppress": "Unterdrücker",
        "group-all": "(alle)",
        "grouppage-autoconfirmed": "{{ns:project}}:Automatisch bestätigte Benutzer",
        "grouppage-bot": "{{ns:project}}:Bots",
        "grouppage-sysop": "{{ns:project}}:Administratoren",
-       "grouppage-interface-admin": "{{ns:project}}:Oberflächenadministratoren",
+       "grouppage-interface-admin": "{{ns:project}}:Benutzeroberflächenadministratoren",
        "grouppage-bureaucrat": "{{ns:project}}:Bürokraten",
        "grouppage-suppress": "{{ns:project}}:Unterdrücker",
        "right-read": "Seiten lesen",
        "blockip": "IP-Adresse/{{GENDER:$1|Benutzer|Benutzerin}} sperren",
        "blockiptext": "Mit diesem Formular sperrst du eine IP-Adresse oder einen Benutzernamen, so dass von dort keine Änderungen mehr vorgenommen werden können.\nDies sollte nur erfolgen, um Vandalismus zu verhindern und in Übereinstimmung mit den [[{{MediaWiki:Policy-url}}|Richtlinien]].\nBitte gib den Grund für die Sperre an.\nDu kannst IP-Bereiche mit der [https://de.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]-Syntax sperren; der größte erlaubte Bereich ist /$1 für IPv4 und /$2 für IPv6.",
        "ipaddressorusername": "IP-Adresse oder Benutzername:",
-       "ipbexpiry": "Sperrdauer:",
        "ipbreason": "Grund:",
        "ipbreason-dropdown": "* Allgemeine Sperrgründe\n** Einfügen falscher Informationen\n** Leeren von Seiten\n** Massenweises Einfügen externer Links\n** Einstellen unsinniger Inhalte in Seiten\n** Ungebührliches Verhalten\n** Missbrauch mit mehreren Benutzerkonten\n** Ungeeigneter Benutzername",
        "ipb-hardblock": "Angemeldete Benutzer daran hindern, Bearbeitungen unter dieser IP-Adresse vorzunehmen",
-       "ipbcreateaccount": "Erstellung von Benutzerkonten verhindern",
-       "ipbemailban": "E-Mail-Versand sperren",
+       "ipbcreateaccount": "Erstellen von Benutzerkonten",
+       "ipbemailban": "Versenden von E-Mails",
        "ipbenableautoblock": "Sperre die aktuell von diesem Benutzer genutzte IP-Adresse sowie automatisch alle folgenden, von denen aus er Bearbeitungen oder das Anlegen von Benutzerkonten versucht",
        "ipbsubmit": "IP-Adresse/Benutzer sperren",
        "ipbother": "Andere Dauer (englisch):",
        "ipboptions": "2 Stunden:2 hours,1 Tag:1 day,3 Tagen:3 days,1 Woche:1 week,2 Wochen:2 weeks,1 Monat:1 month,3 Monaten:3 months,6 Monaten:6 months,1 Jahr:1 year,unbeschränkt:infinite",
        "ipbhidename": "Benutzername in Bearbeitungen und Listen verstecken",
        "ipbwatchuser": "Benutzer(diskussions)seite beobachten",
-       "ipb-disableusertalk": "Diesen Benutzer daran hindern, seine eigene Diskussionsseite zu bearbeiten, solange er gesperrt ist",
+       "ipb-disableusertalk": "Eigene Diskussionsseite bearbeiten",
        "ipb-change-block": "Sperre mit diesen Sperrparametern erneuern",
        "ipb-confirm": "Sperrung bestätigen",
        "ipb-sitewide": "Auf der gesamten Website",
        "ipb-partial": "Teilweise",
-       "ipb-type-label": "Typ",
        "ipb-pages-label": "Seiten",
        "badipaddress": "Die IP-Adresse hat ein falsches Format.",
        "blockipsuccesssub": "Die Sperrung war erfolgreich.",
        "ipb-blocklist": "Alle aktuellen Sperren anzeigen",
        "ipb-blocklist-contribs": "Benutzerbeiträge von „{{GENDER:$1|$1}}“",
        "ipb-blocklist-duration-left": "noch $1",
+       "block-actions": "Zu sperrende Aktionen:",
+       "block-expiry": "Sperrdauer:",
+       "block-options": "Zusätzliche Optionen:",
+       "block-prevent-edit": "Bearbeiten",
+       "block-reason": "Grund:",
+       "block-target": "Benutzername oder IP-Adresse:",
        "unblockip": "Benutzer freigeben",
        "unblockiptext": "Mit diesem Formular kannst du eine IP-Adresse oder einen Benutzer freigeben.",
        "ipusubmit": "Freigeben",
        "specialpages-group-developer": "Entwicklerwerkzeuge",
        "blankpage": "Leere Seite",
        "intentionallyblankpage": "Diese Seite enthält absichtlich keinen Inhalt.",
+       "disabledspecialpage-disabled": "Diese Seite wurde durch einen Systemadministrator deaktiviert.",
        "external_image_whitelist": " #Diese Zeile nicht verändern.<pre>\n#Untenstehend können Fragmente regulärer Ausdrücke (der Teil zwischen den //) eingegeben werden.\n#Diese werden mit den URLs von Bildern aus externen Quellen verglichen.\n#Ein positiver Vergleich führt zur Anzeige des Bildes, andernfalls wird das Bild nur als Link angezeigt.\n#Zeilen, die mit einem # beginnen, werden als Kommentar behandelt.\n#Es wird nicht zwischen Groß- und Kleinschreibung unterschieden.\n\n#Fragmente regulärer Ausdrücke nach dieser Zeile eintragen. Diese Zeile nicht verändern.</pre>",
        "tags": "Änderungsmarkierungen",
        "tag-filter": "[[Special:Tags|Markierungs]]-Filter:",
index d6f4dd1..2cfe2ff 100644 (file)
        "about": "Heqa",
        "article": "Wesiqe",
        "newwindow": "(pençerey newey de beno a)",
-       "cancel": "Annuler",
+       "cancel": "Bıtexelne",
        "moredotdotdot": "Vêşi...",
        "morenotlisted": "Na lista qay kemi ya.",
        "mypage": "Per",
        "nosuchspecialpage": "Pela hısusiya wınasiyên çıniya.",
        "nospecialpagetext": "<strong>To yew pela xasa nêvêrdiye waşte.</strong>\n\nSeba lista pelanê xasanê vêrdeyan reca kena: [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "Xeta",
-       "databaseerror": "Ğetay ardoği",
+       "databaseerror": "Xetaya ardoği",
        "databaseerror-text": "Tabanda malumati de ğırabiya persayışi bi\nNa nusteber  zew ğırabin asınena.",
        "databaseerror-textcl": "Zu ğetaya erdamalumati persayışi ameya meydan.",
        "databaseerror-query": "Pers kerdış:$1",
        "summary": "Xulasa:",
        "subject": "Mewzu:",
        "minoredit": "No yew vırnayışo werdiyo",
-       "watchthis": "Şıma bewnê ena perre",
+       "watchthis": "Na pele de seyr ke",
        "savearticle": "Pele qeyd ke",
        "savechanges": "Vırnayışan qeyd kerê",
        "publishpage": "Riperri bare ke",
        "removedwatchtext": "Ena pela \"[[:$1]]\" biya wedariya [[Special:Watchlist|listeyê seyr-kerdışi şıma]].",
        "removedwatchtext-short": "Pera $1`i listeya seyran de şıma ra wedari yê",
        "watch": "Seyr ke",
-       "watchthispage": "Şıma bewnê ena perre",
+       "watchthispage": "Na pele de seyr ke",
        "unwatch": "Teqib meke",
        "unwatchthispage": "temaşa kerdışê peli vındarn.",
        "notanarticle": "mebhesê peli niyo",
        "blockip": "{{GENDER:$1|Karberi}} kılit ke",
        "blockiptext": "pê şuxulnayişê formê cêrıni, şıma eşkeni verniyê vurnayişkerdışê yew karberi ya zi yew IPyi bıgêrî. No têna qey verni-gırewtışê vandalizmiyo u gani şıma [[{{MediaWiki:Policy-url}}|qaydeyan]] re diqqet bıkeri. cêr de muheqqeq sebebê verni-grewtışi bınusi. (mesela: -nê- pelani de vandalizm kerdo)",
        "ipaddressorusername": "Adresa IPy ya zi nameyê karberi:",
-       "ipbexpiry": "Qedyayış:",
        "ipbreason": "Sebeb:",
        "ipbreason-dropdown": "*sebebê verni-grewtışi yê pêroyi\n** malumatê şaş têare kerdış\n** Zerreyê pelan vetış\n** keyepelê teberi re gırey eştış\n** pelani re qıseyê tewşan(toşan) eştış\n** Tehditwari hereket/Taciz\n** yew ra ziyed hesaban xırab şuxulnayiş\n** nameyê karberi yo ke meqbul niyo",
        "ipb-hardblock": "Enê adresanê IPy ra karberi vırnayış u cıkwetış ra bloke kerê",
-       "ipbcreateaccount": "Hesab viraştişi blok bik",
-       "ipbemailban": "Ena karber rê destur medî  ke ay e-mail neşiravî",
+       "ipbcreateaccount": "Vıraştışê hesabi",
+       "ipbemailban": "Rışnayışê e-posteyi",
        "ipbenableautoblock": "verniyê IPadresa peyin ê no karberi u wexta ke vurnayişi kerd ê IPadresani otomotik bıger.",
        "ipbsubmit": "Nê karberi kılit ke",
        "ipbother": "Waxtê bini:",
        "ipboptions": "2 saeti:2 hours,1 roce:1 day,3 roci:3 days,1 hefte:1 week,2 heftey:2 weeks,1 aşme:1 month,3 aşmi:3 months,6 aşmi:6 months,1 serre:1 year,ebedi:infinite",
        "ipbhidename": "Namey karberi vırnayış u listan ra bınımne",
        "ipbwatchuser": "Perra karberanê karberi u werênayışi cı ewne.",
-       "ipb-disableusertalk": "No karber wexto ke bloqedeyo wa pela da xodı vurnayış kerdışi rê izin medı",
+       "ipb-disableusertalk": "Pela xoya werênayışi bıvurne",
        "ipb-change-block": "Karberi be enê eyaran reyna piya bloke ke.",
        "ipb-confirm": "Bloke kerdışi tesdik ke",
        "badipaddress": "Adresê IPî raşt niyo",
        "ipb-blocklist": "Blokî ke hama estê ey bivîne",
        "ipb-blocklist-contribs": "İştirakê {{GENDER:$1|$1}}`i",
        "ipb-blocklist-duration-left": "$1 vet",
+       "block-expiry": "Qedyayış:",
+       "block-prevent-edit": "Vurnayış",
+       "block-reason": "Sebeb:",
+       "block-target": "Nameyê karberi ya zi adresa eposteyi",
        "unblockip": "Hesabê karberi a ke",
        "unblockiptext": "Cıreştışê nuştışê IP ya zi karberio ke ver ra gêriyayo, seba peyser barkerdışi dey rê formê cêrêni bıgurenên.",
        "ipusubmit": "Enê kılit kerdışi wedarnê",
        "delete_and_move_text": "==gani hewn a bıbıo/bıesteriyo==\n\n\" no [[:$1]]\" name de yew pel ca ra esto. şıma wazeni pê hewn a kerdışê ey peli vurnayişê nameyi bıkeri?",
        "delete_and_move_confirm": "Eya, na pele bestere",
        "delete_and_move_reason": "\"[[$1]]\" qande nami re ca akerdışi re besteriyaye",
-       "selfmove": "name yo ke şıma wazeni bıbo, ın name û name yo ke ca ra esto eyni yê /zepê yê. vurnayiş mumkin niyo.",
+       "selfmove": "Sername zey yewbiniyo. Yew pele be xo ser nêşona.",
        "immobile-source-namespace": "Heruna namey \"$1\" rê perre nêşena bıkırışiyo",
        "immobile-target-namespace": "peli nêkırışiyeni \"$1\" cayê nameyan",
        "immobile-target-namespace-iw": "xetê benatê wikiyan, hedefê pelkırıştış niyo",
        "tooltip-ca-delete": "Ena pele bestere",
        "tooltip-ca-undelete": "Perer fına zey verê esternayışi kerê",
        "tooltip-ca-move": "Ena pele bıkırışe",
-       "tooltip-ca-watch": "Ena perre lista xoya seyrkerdışi ke",
+       "tooltip-ca-watch": "Ena pele lista xoya seyrkerdışi ke",
        "tooltip-ca-unwatch": "Ena pele lista xoya seyrkerdışi ra vece",
        "tooltip-search": "{{SITENAME}} de cı geyre",
        "tooltip-search-go": "Ebe nê namey tami şo yew pela ke esta",
        "log-name-pagelang": "Qeydê vurriyayışa zıwani",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 bayt|$1 bayti}} ($2; $3%)",
        "mediastatistics-table-mimetype": "Tewrê MIME",
+       "mediastatistics-header-unknown": "Nêzanaye",
        "special-characters-group-latin": "Latin",
        "special-characters-group-latinextended": "latinkiya hêrabiyaye",
        "special-characters-group-ipa": "IPA",
index 3a93162..ef1a578 100644 (file)
        "blockip": "Wužywarja blokěrowaś",
        "blockiptext": "Wužywaj slědujucy formular, jolic až coš wěstej IP-adresy abo konkretnemu wužywarjeju pśistup znjemóžniś. Take dejało se pó [[{{MediaWiki:Policy-url}}|směrnicach]] jano staś, aby se wandalizmoju zadorało. Pšosym zapódaj pśicynu za twójo blokěrowanje (na pś. mógu se citěrowaś konkretne boki, źo jo se wandalěrowało).",
        "ipaddressorusername": "IP-adresa abo wužywarske mě",
-       "ipbexpiry": "Cas blokěrowanja:",
        "ipbreason": "Pśicyna:",
        "ipbreason-dropdown": "*powšykne pśicyny blokěrowanja\n** pódawanje njepšawych informacijow\n** wulašowanje wopśimjeśa bokow\n** pódawanje spamowych eksternych wótkazow\n** pisanje głuposćow na bokach\n** pśestupjenje zasady \"žedne wósobinske atakěrowanja\"\n** złowólne wužywanje wjele wužywarskich kontow\n** njekorektne wužywarske mě",
        "ipb-hardblock": "Pśizjawjonym wužywarjam zawobaraś pód toś teju IP-adresu wobźěłaś",
        "ipb-unblock": "Wužywarske mě abo IP-adresu dopušćiś",
        "ipb-blocklist": "Wšykne aktualne blokěrowanja pokazaś",
        "ipb-blocklist-contribs": "Pśinoski za $1",
+       "block-expiry": "Cas blokěrowanja:",
        "unblockip": "Wužywarja dopušćiś",
        "unblockiptext": "Z pomocu dołojcnego formulara móžotej IP-adresa abo wužywaŕ zasej se dopušćiś.",
        "ipusubmit": "Toś to blokěrowanje wótpóraś",
index 7deb9c6..81e9be3 100644 (file)
        "blockip": "Φραγή {{GENDER:$1|χρήστη|χρήστριας}}",
        "blockiptext": "Χρησιμοποιήστε την παρακάτω φόρμα για να εμποδίσετε την πρόσβαση στο κείμενο από μια συγκεκριμένη διεύθυνση IP ή όνομα χρήστη.\nΤο μέτρο αυτό πρέπει να λαμβάνεται μόνο σε περιπτώσεις βανδαλισμού σελίδων και πάντα σύμφωνα με την [[{{MediaWiki:Policy-url}}|πολιτική]].\nΠαρακαλούμε να αιτιολογήσετε την ενέργειά σας (παραπέμποντας π.χ. σε συγκεκριμένες σελίδες που υπέστησαν βανδαλισμό).\n\nΜπορείτε να μπλοκάρετε IP ranges χρησιμοποιώντας το συντακτικό [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]. Το μέγιστο επιτρεπόμενο εύρος είναι /$1 για IPv4 και /$2 για IPv6.",
        "ipaddressorusername": "Διεύθυνση IP ή όνομα χρήστη",
-       "ipbexpiry": "Λήξη",
        "ipbreason": "Αιτία:",
        "ipbreason-dropdown": "*Συχνοί λόγοι φραγής\n** Εισαγωγή λανθασμένων πληροφοριών\n** Αφαίρεση περιεχομένου από σελίδες\n** Σύνδεσμοι τύπου spam σε εξωτερικούς ιστοτόπους\n** Εισαγωγή ασυναρτησιών σε σελίδες\n** Εκφοβιστική συμπεριφορά/παρενόχληση\n** Κατάχρηση πολλαπλών λογαριασμών\n** Απαράδεκτο όνομα χρήστη",
        "ipb-hardblock": "Αποτρέψετε σε συνδεδεμένους χρήστες την επεξεργασία από αυτήν τη διεύθυνση IP",
        "ipb-change-block": "Επαναφραγή του χρήστη με αυτές τις ρυθμίσεις",
        "ipb-confirm": "Επιβεβαίωση φραγής",
        "ipb-partial": "Μερική",
-       "ipb-type-label": "Τύπος",
        "ipb-pages-label": "Σελίδες",
        "badipaddress": "Άκυρη διεύθυνση IP.",
        "blockipsuccesssub": "Η φραγή ολοκληρώθηκε επιτυχώς.",
        "ipb-blocklist": "Δες τις υπάρχουσες φραγές",
        "ipb-blocklist-contribs": "Συνεισφορές {{GENDER:$1|του $1|της $1}}",
        "ipb-blocklist-duration-left": "Απομένουν $1",
+       "block-expiry": "Λήξη",
        "unblockip": "Άρση φραγής χρήστη",
        "unblockiptext": "Χρησιμοποιήστε την παρακάτω φόρμα για να αποκαταστήσετε την πρόσβαση σε επεξεργασία, σε μια διεύθυνση IP ή σε ένα χρήστη που είχε αποκλειστεί με φραγή.",
        "ipusubmit": "Άρση φραγής",
index f85d86e..34c4c97 100644 (file)
        "blanknamespace": "(Main)",
        "whatlinkshere": "What links here",
        "blockiptext": "Use the form below to block write access from a specific IP address or username.\nThis should be done only to prevent vandalism, and in accordance with [[{{MediaWiki:Policy-url}}|policy]].\nFill in a specific reason below (for example, citing particular pages that were vandalised).\nYou can block IP address ranges using the [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] syntax; the largest allowed range is /$1 for IPv4 and /$2 for IPv6.",
-       "ipbexpiry": "Expiry:",
        "ipbreason-dropdown": "*Common block reasons\n** Inserting false information\n** Removing content from pages\n** Spamming links to external sites\n** Inserting nonsense/gibberish into pages\n** Intimidating behaviour/harassment\n** Abusing multiple accounts\n** Unacceptable username",
+       "block-expiry": "Expiry:",
        "blocklink": "block",
        "contribslink": "contribs",
        "blocklogentry": "blocked [[$1]] with an expiry time of $2 $3",
index 3425056..18f41f1 100644 (file)
        "resetpass-abort-generic": "Password change has been aborted by an extension.",
        "resetpass-expired": "Your password has expired. Please set a new password to log in.",
        "resetpass-expired-soft": "Your password has expired and needs to be changed. Please choose a new password now, or click \"{{int:authprovider-resetpass-skip-label}}\" to change it later.",
+       "resetpass-validity": "Your password is not valid: $1\n\nPlease set a new password to log in.",
        "resetpass-validity-soft": "Your password is not valid: $1\n\nPlease choose a new password now, or click \"{{int:authprovider-resetpass-skip-label}}\" to change it later.",
        "passwordreset": "Reset password",
        "passwordreset-text-one": "Complete this form to receive a temporary password via email.",
        "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* Expiration 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 \"{{int:emailuser}}\" 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* Expiration 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 \"{{int:emailuser}}\" 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.",
        "systemblockedtext": "Your username or IP address has been automatically blocked by MediaWiki.\nThe reason given is:\n\n:<em>$2</em>\n\n* Start of block: $8\n* Expiration of block: $6\n* Intended blockee: $7\n\nYour current IP address is $3.\nPlease include all above details in any queries you make.",
+       "actionblockedtext": "You have been blocked from performing this action.",
        "blockednoreason": "no reason given",
        "whitelistedittext": "Please $1 to edit pages.",
        "confirmedittext": "You must confirm your email address before editing pages.\nPlease set and validate your email address through your [[Special:Preferences|user preferences]].",
        "blockip": "Block {{GENDER:$1|user}}",
        "blockiptext": "Use the form below to block write access from a specific IP address or username.\nThis should be done only to prevent vandalism, and in accordance with [[{{MediaWiki:Policy-url}}|policy]].\nFill in a specific reason below (for example, citing particular pages that were vandalized).\nYou can block IP address ranges using the [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] syntax; the largest allowed range is /$1 for IPv4 and /$2 for IPv6.",
        "ipaddressorusername": "IP address or username:",
-       "ipbexpiry": "Expiration:",
        "ipbreason": "Reason:",
        "ipbreason-dropdown": "*Common block reasons\n** Inserting false information\n** Removing content from pages\n** Spamming links to external sites\n** Inserting nonsense/gibberish into pages\n** Intimidating behavior/harassment\n** Abusing multiple accounts\n** Unacceptable username",
        "ipb-hardblock": "Prevent logged-in users from editing from this IP address",
-       "ipbcreateaccount": "Prevent account creation",
-       "ipbemailban": "Prevent user from sending email",
+       "ipbcreateaccount": "Account creation",
+       "ipbemailban": "Sending email",
        "ipbenableautoblock": "Automatically block the last IP address used by this user, and any subsequent IP addresses they try to edit from",
        "ipbsubmit": "Block this user",
        "ipbother": "Other time:",
        "ipboptions": "2 hours:2 hours,1 day:1 day,3 days:3 days,1 week:1 week,2 weeks:2 weeks,1 month:1 month,3 months:3 months,6 months:6 months,1 year:1 year,indefinite:infinite",
        "ipbhidename": "Hide username from edits and lists",
        "ipbwatchuser": "Watch this user's user and talk pages",
-       "ipb-disableusertalk": "Prevent this user from editing their own talk page while blocked",
+       "ipb-disableusertalk": "Editing their own talk page",
        "ipb-change-block": "Re-block the user with these settings",
        "ipb-confirm": "Confirm block",
        "ipb-sitewide": "Sitewide",
        "ipb-partial": "Partial",
-       "ipb-type-label": "Type",
        "ipb-pages-label": "Pages",
        "badipaddress": "Invalid IP address",
        "blockipsuccesssub": "Block succeeded",
        "ipb-blocklist": "View existing blocks",
        "ipb-blocklist-contribs": "Contributions for {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 left",
+       "block-actions": "Actions to block:",
+       "block-expiry": "Expiration:",
+       "block-options": "Additional options:",
+       "block-prevent-edit": "Editing",
+       "block-reason": "Reason:",
+       "block-target": "Username or IP address:",
        "unblockip": "Unblock user",
        "unblockiptext": "Use the form below to restore write access to a previously blocked IP address or username.",
        "ipusubmit": "Remove this block",
        "delete_and_move_text": "The destination page \"[[:$1]]\" already exists.\nDo you want to delete it to make way for the move?",
        "delete_and_move_confirm": "Yes, delete the page",
        "delete_and_move_reason": "Deleted to make way for move from \"[[$1]]\"",
-       "selfmove": " The title is the same;\ncannot move a page over itself.",
+       "selfmove": "The title is the same;\ncannot move a page over itself.",
        "immobile-source-namespace": "Cannot move pages in namespace \"$1\".",
        "immobile-target-namespace": "Cannot move pages into namespace \"$1\".",
        "immobile-target-namespace-iw": "Interwiki link is not a valid target for page move.",
        "specialpages-group-developer": "Developer tools",
        "blankpage": "Blank page",
        "intentionallyblankpage": "This page is intentionally left blank.",
+       "disabledspecialpage-disabled": "This page has been disabled by a system administrator.",
        "external_image_whitelist": " #Leave this line exactly as it is<pre>\n#Put regular expression fragments (just the part that goes between the //) below\n#These will be matched with the URLs of external (hotlinked) images\n#Those that match will be displayed as images, otherwise only a link to the image will be shown\n#Lines beginning with # are treated as comments\n#This is case-insensitive\n\n#Put all regex fragments above this line. Leave this line exactly as it is</pre>",
        "tags": "Valid change tags",
        "tags-summary": "",
index 83efef7..27cc07b 100644 (file)
        "blockip": "Forbari {{GENDER:$1|uzanton}}",
        "blockiptext": "Uzu la sube formularon por forbari skribpermison de specifa uzantnomo aŭ IP-adreso. Tiu endus ''nur'' por eviti vandalismon, kaj laŭe la [[{{MediaWiki:Policy-url}}|politiko]].\nKlarigu la precizan kialon sube (ekzemple, citu paĝojn, kiuj estis vandaligitaj).\nVi povas forbari IP-adresan intervalon per la  [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]a sintakso; la plej ampleksa intervalo estas /$1 por IPv4 kaj /$2 por IPv6.",
        "ipaddressorusername": "IP-adreso aŭ salutnomo:",
-       "ipbexpiry": "Blokdaŭro",
        "ipbreason": "Kialo:",
        "ipbreason-dropdown": "*Oftaj kialoj de forbaro\n** Enmetas malveraĵojn\n** Forviŝas entenon el paĝoj\n** Entrudas ligilojn al eksteraj paĝaroj\n** Enmetas sensencaĵojn\n** Terurigema sinteno\n** Misuzo de pluraj salutnomoj\n** Neakceptebla uzanto-nomo",
        "ipb-hardblock": "Malpermesi ensalutitajn uzantoj de redaktante ĉi tiun IP-adreson",
        "ipb-blocklist": "Vidi ekzistantajn forbarojn",
        "ipb-blocklist-contribs": "Kontribuoj de {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 restas",
+       "block-expiry": "Blokdaŭro",
        "unblockip": "Malforbari IP-adreson/nomon",
        "unblockiptext": "Per la jena formulo vi povas repovigi al iu\nforbarita IP-adreso/nomo la povon enskribi en la vikio.",
        "ipusubmit": "Forigi ĉi tiun forbaron",
index f1bee24..ed7b93d 100644 (file)
        "returnto": "Volver a $1.",
        "tagline": "De {{SITENAME}}",
        "help": "Ayuda",
+       "help-mediawiki": "Ayuda sobre MediaWiki",
        "search": "Buscar",
        "search-ignored-headings": " #<!-- dejar esta línea exactamente como está --> <pre>\n# Títulos que serán ignorados por la búsqueda.\n# Los cambios estarán en vigor tan pronto como la página con el título esté indexada.\n# Puedes forzar la reindexación de una página haciendo una edición nula.\n# La sintaxis es la siguiente:\n#   * Todo lo que sigue a un carácter \"#\" hasta el final de la línea, es un comentario.\n#   * Todas las líneas que no están en blanco son los títulos exactos que se ignorarán (diferenciando mayúsculas de minúsculas).\nReferencias\nEnlaces externos\nVéase también\n #</pre> <!-- dejar esta línea exactamente como está -->",
        "searchbutton": "Buscar",
        "resetpass-abort-generic": "Una extensión ha cancelado el cambio de la contraseña.",
        "resetpass-expired": "Tu contraseña ha caducado. Por favor, establece una nueva contraseña para iniciar sesión.",
        "resetpass-expired-soft": "Tu contraseña ha caducado, por lo que debes cambiarla. Elige una contraseña nueva o pulsa en «{{int:authprovider-resetpass-skip-label}}» para cambiarla más tarde.",
+       "resetpass-validity": "La contraseña no es válida: $1\n\nDefine una contraseña nueva para acceder a tu cuenta.",
        "resetpass-validity-soft": "La contraseña no es válida: $1\n\nCámbiala ahora por una nueva, o bien, pulsa en «{{int:authprovider-resetpass-skip-label}}» para cambiarla más tarde.",
        "passwordreset": "Restablecer contraseña",
        "passwordreset-text-one": "Completa este formulario para recibir una contraseña temporal por correo electrónico.",
        "blockedtext": "<strong>Se ha bloqueado tu nombre de usuario o dirección IP.</strong>\n\nEl bloqueo fue realizado por $1.\nEl motivo dado es el siguiente: <em>$2</em>.\n\n* Inicio del bloqueo: $8\n* Caducidad del bloqueo: $6\n* Bloqueo destinado a: $7\n\nPuedes contactar con $1 o con otro de los [[{{MediaWiki:Grouppage-sysop}}|administradores]] para discutir el bloqueo.\nObserva que no puedes utilizar la función «{{int:emailuser}}» a menos que hayas registrado una dirección de correo electrónico válida en tus [[Special:Preferences|preferencias de usuario]] y la función no haya sido también bloqueada.\nTu dirección IP actual es $3, y el identificador del bloqueo es el n.º $5.\nIncluye todos los datos aquí mostrados en cualquier consulta que hagas.",
        "autoblockedtext": "Tu dirección IP ha sido bloqueada automáticamente porque fue utilizada por otro usuario, que resultó bloqueado por $1.\nEl motivo dado es el siguiente:\n\n:<em>$2</em>\n\n* Inicio del bloqueo: $8\n* Caducidad del bloqueo: $6\n* Bloqueo destinado a: $7\n\nPuedes contactar con $1 o con otro de los [[{{MediaWiki:Grouppage-sysop}}|administradores]] para discutir el bloqueo.\n\nObserva que no puedes utilizar la función «{{int:emailuser}}» a menos que hayas registrado una dirección de correo electrónico válida en tus [[Special:Preferences|preferencias de usuario]] y la función no haya sido también bloqueada.\n\nTu dirección IP actual es $3, y el identificador del bloqueo es n.º $5.\nIncluye todos los datos aquí mostrados en cualquier consulta que hagas.",
        "systemblockedtext": "Tu nombre de usuario o dirección IP ha sido bloqueado automáticamente por el software MediaWiki.\nLa razón dada es:\n\n:<em>$2</em>\n\n* Inicio del bloqueo: $8\n* Caducidad de bloqueo: $6\n* Destinatario del bloqueo: $7\n\nTu dirección IP actual es $3.\nPor favor, incluye todos los datos aquí mostrados en cualquier consulta que hagas.",
+       "actionblockedtext": "No puedes realizar esta acción porque has sido bloqueado.",
        "blockednoreason": "no se ha especificado el motivo",
        "whitelistedittext": "Tienes que $1 para editar páginas.",
        "confirmedittext": "Debes confirmar tu dirección de correo electrónico antes de poder editar páginas. Por favor, configura y confirma tu dirección de correo a través de tus [[Special:Preferences|preferencias de usuario]].",
        "defaultmessagetext": "Texto predeterminado",
        "content-failed-to-parse": "No se ha podido procesar el contenido $2 del modelo de $1: $3",
        "invalid-content-data": "Datos de contenido incorrectos",
-       "content-not-allowed-here": "El contenido «$1» no está permitido en la página [[:$2]]",
+       "content-not-allowed-here": "El contenido «$1» no está permitido en la página [[:$2]] en el espacio «$3»",
        "editwarning-warning": "Se perderán los cambios si se cierra esta página.\nSi has iniciado sesión, puedes desactivar este aviso en la sección «{{int:prefs-editing}}» de las preferencias.",
        "editpage-invalidcontentmodel-title": "Modelo de contenido no admitido",
        "editpage-invalidcontentmodel-text": "El modelo de contenido «$1» no se admite.",
        "editpage-notsupportedcontentformat-title": "Formato de contenido no compatible",
        "editpage-notsupportedcontentformat-text": "El formato de contenido $1 no es compatible con el modelo de contenido $2.",
+       "slot-name-main": "Principal",
        "content-model-wikitext": "texto wiki",
        "content-model-text": "texto sin formato",
        "content-model-javascript": "JavaScript",
        "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>({{int:cur}})</strong> = diferencias con la versión actual,\n<strong>({{int:last}})</strong> = diferencias con la versión anterior, <strong>{{int:minoreditletter}}</strong> = edición menor.",
        "history-fieldset-title": "Buscar revisiones",
        "history-show-deleted": "Solo revisiones eliminadas",
-       "histfirst": "anteriores",
+       "histfirst": "primeras",
        "histlast": "recientes",
        "historysize": "({{PLURAL:$1|1 byte|$1 bytes}})",
        "historyempty": "(vacío)",
        "grant-delete": "Borrar páginas, revisiones y entradas del registro",
        "grant-editinterface": "Editar el espacio de nombres MediaWiki y las páginas CSS/JSON/JavaScript del sitio y de los usuarios",
        "grant-editmycssjs": "Editar tu CSS/JSON/JavaScript",
-       "grant-editmyoptions": "Editar tus preferencias de usuario",
+       "grant-editmyoptions": "Editar tus preferencias de usuario y configuración en formato JSON",
        "grant-editmywatchlist": "Editar tu lista de seguimiento",
        "grant-editsiteconfig": "Editar páginas de configuración CSS/JS del sitio",
        "grant-editpage": "Editar páginas existentes",
        "rcfilters-watchlist-edit-watchlist-button": "Edita tu lista de seguimiento",
        "rcfilters-watchlist-showupdated": "Los cambios hechos en páginas que no has visitado desde que se efectuaron aparecen en <strong>negrita</strong>, acompañados de marcadores sólidos.",
        "rcfilters-preference-label": "Usar la interfaz sin JavaScript",
-       "rcfilters-preference-help": "Cargar cambios recientes sin filtros ni la funcionalidad de resaltado.",
+       "rcfilters-preference-help": "Carga los cambios recientes sin filtros de búsqueda ni funcionalidad de resaltado.",
        "rcfilters-watchlist-preference-label": "Usar interfaz sin JavaScript",
-       "rcfilters-watchlist-preference-help": "Cargar la lista de seguimiento sin filtros ni la funcionalidad de resaltado.",
+       "rcfilters-watchlist-preference-help": "Carga la lista de seguimiento sin filtros de búsqueda ni la funcionalidad de resaltado.",
        "rcfilters-filter-showlinkedfrom-label": "Mostrar cambios en páginas enlazadas desde",
        "rcfilters-filter-showlinkedfrom-option-label": "<strong>Páginas enlazadas desde</strong> la página seleccionada",
        "rcfilters-filter-showlinkedto-label": "Mostrar cambios en páginas que enlazan a",
        "blockip": "Bloquear {{GENDER:$1|al usuario|a la usuaria}}",
        "blockiptext": "Utiliza el siguiente formulario para bloquear el acceso de escritura a un determinado usuario o dirección IP.\nEsto debería hacerse solo para prevenir vandalismo y de acuerdo a las [[{{MediaWiki:Policy-url}}|políticas]].\nExplica la razón específica del bloqueo (por ejemplo, citando las páginas en particular que han sido objeto de vandalismo).\nPuedes bloquear intervalos IP con la sintaxis [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; el intervalo más grande permitido es /$1 para IPv4 y /$2 para IPv6.",
        "ipaddressorusername": "Dirección IP o nombre de usuario:",
-       "ipbexpiry": "Caducidad:",
        "ipbreason": "Motivo:",
        "ipbreason-dropdown": "*Motivos comunes de bloqueo\n** Añadir información falsa\n** Eliminar contenido de las páginas\n** Publicitar enlaces a otras páginas web\n** Añadir basura en las páginas\n** Comportamiento intimidatorio u hostil\n** Abuso de múltiples cuentas\n** Nombre de usuario inaceptable",
        "ipb-hardblock": "Impedir que los usuarios identificados editen desde esta dirección IP",
-       "ipbcreateaccount": "Prevenir la creación de cuentas de usuario",
-       "ipbemailban": "Impedir que el usuario envíe correo electrónico",
+       "ipbcreateaccount": "Creación de cuentas",
+       "ipbemailban": "Envío de correo electrónico",
        "ipbenableautoblock": "Bloquear automáticamente la última dirección IP usada por este usuario y cualquier IP posterior desde la cual intente editar",
        "ipbsubmit": "Bloquear a este usuario",
        "ipbother": "Otra duración o fecha:",
        "ipboptions": "2 horas:2 hours,1 día:1 day,3 días:3 days,1 semana:1 week,2 semanas:2 weeks,1 mes:1 month,3 meses:3 months,6 meses:6 months,1 año:1 year,para siempre:infinite",
        "ipbhidename": "Ocultar nombre de usuario de ediciones y listas",
        "ipbwatchuser": "Vigilar las páginas de usuario y de discusión de este usuario",
-       "ipb-disableusertalk": "Impedir que este usuario edite su propia página de discusión mientras esté bloqueado",
+       "ipb-disableusertalk": "Edición de la propia página de discusión",
        "ipb-change-block": "Rebloquear al usuario con estos datos",
        "ipb-confirm": "Confirmar bloqueo",
        "ipb-sitewide": "En todo el sitio",
        "ipb-partial": "Parcial",
-       "ipb-type-label": "Tipo",
        "ipb-pages-label": "Páginas",
        "badipaddress": "La dirección IP no tiene el formato correcto.",
        "blockipsuccesssub": "Bloqueo realizado con éxito",
        "ipb-blocklist": "Ver bloqueos vigentes",
        "ipb-blocklist-contribs": "Contribuciones de {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 restantes",
+       "block-actions": "Acciones que bloquear:",
+       "block-expiry": "Caducidad:",
+       "block-options": "Opciones adicionales:",
+       "block-prevent-edit": "Edición",
+       "block-reason": "Motivo:",
+       "block-target": "Nombre de usuario o dirección IP:",
        "unblockip": "Desbloquear usuario",
        "unblockiptext": "Use el formulario a continuación para devolver los permisos de escritura a una dirección IP que ha sido bloqueada.",
        "ipusubmit": "Desactivar este bloqueo",
index 17af3dd..d36648e 100644 (file)
        "blockip": "Blokeeri {{GENDER:$1|kasutaja}}",
        "blockiptext": "See vorm on kindla IP-aadressi või kasutajanime kirjutamisõiguste blokeerimiseks.\nSeda tohib teha ainult vandalismi vältimiseks ja kooskõlas [[{{MediaWiki:Policy-url}}|{{GRAMMAR:genitive|{{SITENAME}}}} sisekorraga]].\nTäida ka põhjuse väli, näiteks viidates lehekülgedele, mis rikuti.\nIP-aadresside vahemikke saad blokeerida [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]-süntaksi abil; suurim lubatud vahemik on IPv4 jaoks /$1 ja IPv6 jaoks /$2.",
        "ipaddressorusername": "IP-aadress või kasutajanimi:",
-       "ipbexpiry": "Aegumistähtaeg:",
        "ipbreason": "Põhjus:",
        "ipbreason-dropdown": "*Tavalised blokeerimise põhjused\n** Valeandmete lisamine\n** Lehekülgedelt sisu kustutamine\n** Välislinkide rämpspostitus\n** Sodimine\n** Hirmutav käitumine/ahistamine\n** Mitme konto väärkasutus\n** Lubamatu kasutajanimi",
        "ipb-hardblock": "Keela sellelt IP-aadressilt sisseloginud kasutajatel redigeerida",
        "ipb-confirm": "Kinnita blokeering",
        "ipb-sitewide": "Saidiülene",
        "ipb-partial": "Osaline",
-       "ipb-type-label": "Tüüp",
        "ipb-pages-label": "Leheküljed",
        "badipaddress": "Vigane IP-aadress",
        "blockipsuccesssub": "Blokeerimine õnnestus",
        "ipb-blocklist": "Vaata kehtivaid blokeeringuid",
        "ipb-blocklist-contribs": "Kasutaja $1 kaastöö",
        "ipb-blocklist-duration-left": "$1 järel",
+       "block-expiry": "Aegumistähtaeg:",
        "unblockip": "Blokeerimise eemaldamine",
        "unblockiptext": "Kasuta allpool olevat vormi varem blokeeritud IP-aadressi või kasutaja redigeerimisõiguse taastamiseks.",
        "ipusubmit": "Eemalda see blokeering",
index 540b345..274dada 100644 (file)
        "blockip": "Blokeatu {{GENDER:$1|erabiltzailea}}",
        "blockiptext": "IP helbide edo erabiltzaile izen bati idazketa baimenak kentzeko beheko formularioa erabil dezakezu. Ekintza hau bandalismoa saihesteko baino ez da burutu behar, eta beti ere [[{{MediaWiki:Policy-url}}|politikak]] errespetatuz. Blokeoaren arrazoi bat ere zehaztu ezazu (adibidez, orrialde batzuk zehaztuz). IP helbideak [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] syntax; the largest allowed range is /$1 for IPv4 and /$2 for IPv6. erabiliz blokeatu ditzakezu.",
        "ipaddressorusername": "IP Helbidea edo erabiltzaile izena",
-       "ipbexpiry": "Iraungipena",
        "ipbreason": "Arrazoia:",
        "ipbreason-dropdown": "*Blokeaketa arrazoi arruntak\n** Benetakoa ez den informazioa ezartzea\n** Orrialdetatik edukia ezabatzea\n** Spam-a edota kanpoko loturak ezarri\n** Bandalismoa egitea\n** Beste erabiltzaileei mehatxatzea\n** Kontu ugari erabiltzea\n** Erabiltzaile izen desegokia",
        "ipb-hardblock": "Galarazi izena emandako erabiltzaileek IP helbide honetatik editatzea",
        "ipb-blocklist": "Blokeaketak ikusi",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1(r)en}} ekarpenak",
        "ipb-blocklist-duration-left": "gainerako $1",
+       "block-expiry": "Iraungipena",
        "unblockip": "Erabiltzailea desblokeatu",
        "unblockiptext": "Erabili beheko formularioa lehenago blokeatutako IP helbide edo erabiltzaile baten idazketa baimenak leheneratzeko.",
        "ipusubmit": "Blokeoa ezabatu",
diff --git a/languages/i18n/exif/af.json b/languages/i18n/exif/af.json
new file mode 100644 (file)
index 0000000..d554442
--- /dev/null
@@ -0,0 +1,351 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Arnobarnard",
+                       "Deadelf",
+                       "Fwolff",
+                       "Naudefj",
+                       "SPQRobin",
+                       "Shirayuki",
+                       "Spacebirdy"
+               ]
+       },
+       "exif-imagewidth": "Breedte",
+       "exif-imagelength": "Hoogte",
+       "exif-bitspersample": "Grepe per komponent",
+       "exif-compression": "Kompressiemetode",
+       "exif-photometricinterpretation": "Piksel-komposisie",
+       "exif-orientation": "Oriëntasie",
+       "exif-samplesperpixel": "Aantal komponente",
+       "exif-planarconfiguration": "Datastruktuur",
+       "exif-ycbcrsubsampling": "Subsampleverhouding van Y tot C",
+       "exif-ycbcrpositioning": "Y- en C-posisionering",
+       "exif-xresolution": "Horisontale resolusie",
+       "exif-yresolution": "Vertikale resolusie",
+       "exif-stripoffsets": "Ligging van beeldgegewens",
+       "exif-rowsperstrip": "Rye per strook",
+       "exif-stripbytecounts": "Grepe per gekompakteerde strook",
+       "exif-jpeginterchangeformat": "Afstand na JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Grepe van JPEG-gegewens",
+       "exif-whitepoint": "Witpuntchromasiteit",
+       "exif-primarychromaticities": "Chromasiteit van primêre kleure",
+       "exif-ycbcrcoefficients": "Transformasiematriks-koëffisiënte vir die kleurruimte",
+       "exif-referenceblackwhite": "Paar swart en wit verwysingswaardes",
+       "exif-datetime": "Tydstip laaste lêerwysiging",
+       "exif-imagedescription": "Beeldtitel",
+       "exif-make": "Kameravervaardiger:",
+       "exif-model": "Kameramodel",
+       "exif-software": "Sagteware gebruik",
+       "exif-artist": "Outeur",
+       "exif-copyright": "Kopiereghouer",
+       "exif-exifversion": "Exif-weergawe",
+       "exif-flashpixversion": "Ondersteunde Flashpix-weergawe",
+       "exif-colorspace": "Kleurruimte",
+       "exif-componentsconfiguration": "Betekenis van elke komponent",
+       "exif-compressedbitsperpixel": "Beeldkompressiemetode",
+       "exif-pixelxdimension": "Beeldwydte",
+       "exif-pixelydimension": "Beeldhoogte",
+       "exif-usercomment": "Opmerkings",
+       "exif-relatedsoundfile": "Verwante klanklêer",
+       "exif-datetimeoriginal": "Gegewens opgestel op",
+       "exif-datetimedigitized": "Datum en tyd van digitalisering",
+       "exif-subsectime": "Datum tyd subsekondes",
+       "exif-subsectimeoriginal": "Subsekondes tydstip datagenerasie",
+       "exif-subsectimedigitized": "Subsekondes tydstip digitalisasie",
+       "exif-exposuretime": "Beligtingstyd",
+       "exif-exposuretime-format": "$1 sek ($2)",
+       "exif-fnumber": "F-getal",
+       "exif-exposureprogram": "Beligtingsprogram",
+       "exif-spectralsensitivity": "Spektrale gevoeligheid",
+       "exif-isospeedratings": "ISO/ASA-waarde",
+       "exif-shutterspeedvalue": "Sluitersnelheid in APEX",
+       "exif-aperturevalue": "Diafragma in APEX",
+       "exif-brightnessvalue": "Helderheid in APEX",
+       "exif-exposurebiasvalue": "Beligtingskompensasie",
+       "exif-maxaperturevalue": "Maksimale diafragma-opening",
+       "exif-subjectdistance": "Afstand na onderwerp",
+       "exif-meteringmode": "Metode van ligmeting",
+       "exif-lightsource": "Ligbron",
+       "exif-flash": "Flits",
+       "exif-focallength": "Brandpuntsafstand",
+       "exif-subjectarea": "Objekruimte",
+       "exif-flashenergy": "Flitssterkte",
+       "exif-focalplanexresolution": "Brandpuntsvlak-X-resolusie",
+       "exif-focalplaneyresolution": "Brandpuntsvlak-Y-resolusie",
+       "exif-focalplaneresolutionunit": "Eenheid CCD-resolusie",
+       "exif-subjectlocation": "Objekligging",
+       "exif-exposureindex": "Beligtingsindeks",
+       "exif-sensingmethod": "Meetmetode",
+       "exif-filesource": "Lêerbron",
+       "exif-scenetype": "Soort toneel",
+       "exif-customrendered": "Aangepaste beeldverwerking",
+       "exif-exposuremode": "Beligtingsinstelling",
+       "exif-whitebalance": "Witbalans",
+       "exif-digitalzoomratio": "Digitale zoomfaktor",
+       "exif-focallengthin35mmfilm": "Brandpuntsafstand (35mm-ekwivalent)",
+       "exif-scenecapturetype": "Soort opname",
+       "exif-gaincontrol": "Toneelbeheer",
+       "exif-contrast": "Kontras",
+       "exif-saturation": "Versadiging",
+       "exif-sharpness": "Skerpte",
+       "exif-devicesettingdescription": "Omskrywing van apparaatinstellings",
+       "exif-subjectdistancerange": "Bereik objekafstand",
+       "exif-imageuniqueid": "Unieke beeld ID",
+       "exif-gpsversionid": "GPS-merkerweergawe",
+       "exif-gpslatituderef": "Noorder- of suiderbreedte",
+       "exif-gpslatitude": "Breedtegraad",
+       "exif-gpslongituderef": "Ooster- of westerlengte",
+       "exif-gpslongitude": "Lengtegraad",
+       "exif-gpsaltituderef": "Hoogteverwysing",
+       "exif-gpsaltitude": "Hoogte",
+       "exif-gpstimestamp": "GPS-tyd (atoomhorlosie)",
+       "exif-gpssatellites": "Satelliete gebruik vir meting",
+       "exif-gpsstatus": "Ontvangerstatus",
+       "exif-gpsmeasuremode": "Meetmodus",
+       "exif-gpsdop": "Meetpresisie",
+       "exif-gpsspeedref": "Snelheid eenheid",
+       "exif-gpsspeed": "Snelheid van GPS-ontvanger",
+       "exif-gpstrackref": "Verwysing vir bewegingsrigting",
+       "exif-gpstrack": "Bewegingsrigting",
+       "exif-gpsimgdirectionref": "Verwysing vir rigting van beeld",
+       "exif-gpsimgdirection": "Rigting van beeld",
+       "exif-gpsmapdatum": "Daar word van aardmeetkundige ondersoekdata gebruik gemaak",
+       "exif-gpsdestlatituderef": "Verwysing na breedtelyn van die bestemming",
+       "exif-gpsdestlatitude": "Breedtegraad bestemming",
+       "exif-gpsdestlongituderef": "Verwysing na lengtelyn van die bestemming",
+       "exif-gpsdestlongitude": "Lengtegraad bestemming",
+       "exif-gpsdestbearingref": "Verwysing na ligging van die bestemming",
+       "exif-gpsdestbearing": "Rigting na bestemming",
+       "exif-gpsdestdistanceref": "Verwysing vir afstand tot bestemming",
+       "exif-gpsdestdistance": "Afstand na bestemming",
+       "exif-gpsprocessingmethod": "GPS-verwerkingsmetode",
+       "exif-gpsareainformation": "Naam van GPS-gebied",
+       "exif-gpsdatestamp": "GPS-datum",
+       "exif-gpsdifferential": "Differensiële GPS-korreksie",
+       "exif-jpegfilecomment": "Opmerking in JPEG-lêer",
+       "exif-keywords": "Sleutelwoorde",
+       "exif-worldregioncreated": "Wêreldstreek waar die foto geneem is",
+       "exif-countrycreated": "Land waar die foto geneem is",
+       "exif-countrycodecreated": "Kode van land waar die foto geneem is",
+       "exif-provinceorstatecreated": "Provinsie of staat waar die foto geneem is",
+       "exif-citycreated": "Stad waar die foto geneem is",
+       "exif-sublocationcreated": "Voorstad van die stad waar die beeld geneem is",
+       "exif-worldregiondest": "Wêrelddeel getoon",
+       "exif-countrydest": "Land getoon",
+       "exif-countrycodedest": "Kode vir die land getoon",
+       "exif-provinceorstatedest": "Provinsie of staat getoon",
+       "exif-citydest": "Stad getoon",
+       "exif-sublocationdest": "Deel van stad getoon",
+       "exif-objectname": "Kort titel",
+       "exif-specialinstructions": "Spesiale instruksies",
+       "exif-headline": "Opskrif",
+       "exif-credit": "Krediet/Verskaffer",
+       "exif-source": "Bron",
+       "exif-editstatus": "Redaksionele status van beeld",
+       "exif-urgency": "Dringendheid",
+       "exif-fixtureidentifier": "Groepsnaam",
+       "exif-locationdest": "Plek uitgebeeld",
+       "exif-locationdestcode": "Kode van die uitgebeelde ligging",
+       "exif-objectcycle": "Tyd van die dag waarvoor die media bedoel is",
+       "exif-contact": "Kontak inligting",
+       "exif-writer": "Skrywer",
+       "exif-languagecode": "Taal",
+       "exif-iimversion": "IIM-weergawe",
+       "exif-iimcategory": "Kategorie",
+       "exif-iimsupplementalcategory": "Aanvullende kategorieë",
+       "exif-datetimeexpires": "Moenie gebruik na",
+       "exif-datetimereleased": "Vrygestel op",
+       "exif-originaltransmissionref": "Oorspronklike transmissie-liggingskode",
+       "exif-identifier": "Id",
+       "exif-lens": "Lens gebruik",
+       "exif-serialnumber": "Reeksnommer van die kamera",
+       "exif-cameraownername": "Eienaar van kamera",
+       "exif-label": "Etiket",
+       "exif-datetimemetadata": "Datum waarop metadata laas verander is",
+       "exif-nickname": "Informele naam van die beeld",
+       "exif-rating": "Waardering (uit 5)",
+       "exif-rightscertificate": "Regtebeheersertifikaat",
+       "exif-copyrighted": "Outeursregstus:",
+       "exif-copyrightowner": "Kopiereghouer",
+       "exif-usageterms": "Gebruiksvoorwaardes",
+       "exif-webstatement": "Aanlyn outeursregteverklaring",
+       "exif-originaldocumentid": "Unieke ID van die oorspronklike dokument",
+       "exif-licenseurl": "URL vir kopiereg-lisensie",
+       "exif-morepermissionsurl": "Alternatiewe lisensie-inligting",
+       "exif-attributionurl": "Gebruik die volgende skakel as die werk hergebruik word",
+       "exif-preferredattributionname": "Krediteer die volgende persone as die werk hergebruik word",
+       "exif-pngfilecomment": "Opmerking in PNG-lêer",
+       "exif-disclaimer": "Voorbehoud",
+       "exif-contentwarning": "Waarskuwing oor inhoud",
+       "exif-giffilecomment": "Opmerking in GIF-lêer",
+       "exif-intellectualgenre": "Tipe item",
+       "exif-subjectnewscode": "Onderwerpkode",
+       "exif-scenecode": "IPTC toneelkode",
+       "exif-event": "Gebeurtenis uitgebeeld",
+       "exif-organisationinimage": "Organisasie uitgebeeld",
+       "exif-personinimage": "Persoon uitgebeeld",
+       "exif-originalimageheight": "Hoogte van beeld voor dit besny is",
+       "exif-originalimagewidth": "Wydte van beeld voor dit besny is",
+       "exif-compression-1": "Ongekompakteerd",
+       "exif-compression-2": "CCITT Groep 3 1-dimensionale aangepaste \"Huffman run length\"-kodering",
+       "exif-compression-3": "CCITT Groep 3 fakskodering",
+       "exif-compression-4": "CCITT Groep 4 fakskodering",
+       "exif-copyrighted-true": "Onder kopiereg",
+       "exif-copyrighted-false": "Kopieregstatus nie gespesifiseer nie",
+       "exif-unknowndate": "Datum onbekend",
+       "exif-orientation-1": "Normaal",
+       "exif-orientation-2": "Horisontaal gespieël",
+       "exif-orientation-3": "180° gedraai",
+       "exif-orientation-4": "Vertikaal gespieël",
+       "exif-orientation-5": "Spieëlbeeld van linksbo-regsonder",
+       "exif-orientation-6": "90° linksom gedraai",
+       "exif-orientation-7": "Spieëlbeeld van linksonder-regsbo",
+       "exif-orientation-8": "90° regsom gedraai",
+       "exif-planarconfiguration-1": "chunky dataformaat",
+       "exif-planarconfiguration-2": "planar dataformat",
+       "exif-colorspace-65535": "Nie gekalibreer",
+       "exif-componentsconfiguration-0": "bestaan nie",
+       "exif-exposureprogram-0": "Nie bepaal",
+       "exif-exposureprogram-1": "Handmatig",
+       "exif-exposureprogram-2": "Normale program",
+       "exif-exposureprogram-3": "Diafragma-prioriteit",
+       "exif-exposureprogram-4": "Sluiterprioriteit",
+       "exif-exposureprogram-5": "Kreatief (voorkeur vir diepte)",
+       "exif-exposureprogram-6": "Aksie (voorkeur vir hoër sluitersnelheid)",
+       "exif-exposureprogram-7": "Portret (nabyskoot met agtergrond uit fokus)",
+       "exif-exposureprogram-8": "Landskap (skerp agtergrond)",
+       "exif-subjectdistance-value": "$1 meter",
+       "exif-meteringmode-0": "Onbekend",
+       "exif-meteringmode-1": "Gemiddeld",
+       "exif-meteringmode-2": "SentrumGeweegdeGemiddeld",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "Multi-spot",
+       "exif-meteringmode-5": "Patroon",
+       "exif-meteringmode-6": "Gedeeltelik",
+       "exif-meteringmode-255": "Ander",
+       "exif-lightsource-0": "Onbekend",
+       "exif-lightsource-1": "Sonlig",
+       "exif-lightsource-2": "Fluoresserend",
+       "exif-lightsource-3": "Tungsten (lamplig)",
+       "exif-lightsource-4": "Flits",
+       "exif-lightsource-9": "Mooi weer",
+       "exif-lightsource-10": "Bewolkte weer",
+       "exif-lightsource-11": "Skaduwee",
+       "exif-lightsource-12": "Daglig fluoresserend (D 5700 – 7100K)",
+       "exif-lightsource-13": "Dagwit fluoresserend (N 4600 - 5400K)",
+       "exif-lightsource-14": "Koel wit fluoresserend (W 3900 - 4500K)",
+       "exif-lightsource-15": "Wit fluoresserend (WW 3200 - 3700K)",
+       "exif-lightsource-17": "Standaard lig A",
+       "exif-lightsource-18": "Standaard lig B",
+       "exif-lightsource-19": "Standaard lig C",
+       "exif-lightsource-24": "ISO-studiotungsten",
+       "exif-lightsource-255": "Ander ligbron",
+       "exif-flash-fired-0": "Flits het nie afgegaan",
+       "exif-flash-fired-1": "Flits het afgegaan",
+       "exif-flash-return-0": "geen stroboskoop-ontvangs-funksie nie",
+       "exif-flash-return-2": "geen stroboskoop-ontvangs raakgesien nie",
+       "exif-flash-return-3": "stroboskoop-ontvangs raakgesien",
+       "exif-flash-mode-1": "verpligte vuur van flitser",
+       "exif-flash-mode-2": "flitser verplig onderdruk",
+       "exif-flash-mode-3": "outomatiese modus",
+       "exif-flash-function-1": "Geen flitserfunksie",
+       "exif-flash-redeye-1": "vermindering van rooi oë",
+       "exif-focalplaneresolutionunit-2": "duim",
+       "exif-sensingmethod-1": "Ongedefineer",
+       "exif-sensingmethod-2": "Eén-chip-kleursensor",
+       "exif-sensingmethod-3": "Twee-chip-kleursensor",
+       "exif-sensingmethod-4": "Drie-chip-kleursensor",
+       "exif-sensingmethod-5": "Kleurvolgende gebiedssensor",
+       "exif-sensingmethod-7": "Drielynige sensor",
+       "exif-sensingmethod-8": "Kleurvolgende lynsensor",
+       "exif-filesource-3": "Digitale fotokamera",
+       "exif-scenetype-1": "'n Direk gefotografeerde beeld",
+       "exif-customrendered-0": "Normale verwerking",
+       "exif-customrendered-1": "Aangepaste verwerking",
+       "exif-exposuremode-0": "Outomatiese beligting",
+       "exif-exposuremode-1": "Handmatige beligting",
+       "exif-exposuremode-2": "Auto-Bracket",
+       "exif-whitebalance-0": "Outomatiese witbalans",
+       "exif-whitebalance-1": "Handmatige witbalans",
+       "exif-scenecapturetype-0": "Standaard",
+       "exif-scenecapturetype-1": "Landskap",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Nagtoneel",
+       "exif-gaincontrol-0": "Geen",
+       "exif-gaincontrol-1": "Lae pieke omhoog",
+       "exif-gaincontrol-2": "Hoë pieke omhoog",
+       "exif-gaincontrol-3": "Lae pieke omlaag",
+       "exif-gaincontrol-4": "Hoë pieke omlaag",
+       "exif-contrast-0": "Normaal",
+       "exif-contrast-1": "Sag",
+       "exif-contrast-2": "Hard",
+       "exif-saturation-0": "Normaal",
+       "exif-saturation-1": "Laag",
+       "exif-saturation-2": "Hoog",
+       "exif-sharpness-0": "Normaal",
+       "exif-sharpness-1": "Sag",
+       "exif-sharpness-2": "Hard",
+       "exif-subjectdistancerange-0": "Onbekend",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Naby",
+       "exif-subjectdistancerange-3": "Vêr weg",
+       "exif-gpslatitude-n": "Noorderbreedte",
+       "exif-gpslatitude-s": "Suiderbreedte",
+       "exif-gpslongitude-e": "Oosterlengte",
+       "exif-gpslongitude-w": "Westerlengte",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter}} bo seespieël",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter}} onder seespieël",
+       "exif-gpsstatus-a": "Besig met meting",
+       "exif-gpsstatus-v": "Meetinteroperabiliteit",
+       "exif-gpsmeasuremode-2": "2-dimensionele meting",
+       "exif-gpsmeasuremode-3": "3-dimensionele meting",
+       "exif-gpsspeed-k": "Kilometer per huur",
+       "exif-gpsspeed-m": "Myl per huur",
+       "exif-gpsspeed-n": "Knope",
+       "exif-gpsdestdistance-k": "Kilometers",
+       "exif-gpsdestdistance-m": "Myle",
+       "exif-gpsdestdistance-n": "Seemyle",
+       "exif-gpsdop-excellent": "Uitstekend ($1)",
+       "exif-gpsdop-good": "Goed ($1)",
+       "exif-gpsdop-moderate": "Gemiddeld ($1)",
+       "exif-gpsdop-fair": "Redelik ($1)",
+       "exif-gpsdop-poor": "Sleg ($1)",
+       "exif-objectcycle-a": "Slegs oggend",
+       "exif-objectcycle-p": "Slegs aand",
+       "exif-objectcycle-b": "Beide môre en die aand",
+       "exif-gpsdirection-t": "Regte rigting",
+       "exif-gpsdirection-m": "Magnetiese rigting",
+       "exif-ycbcrpositioning-1": "Gesentreerd",
+       "exif-ycbcrpositioning-2": "Val saam",
+       "exif-dc-contributor": "Medewerkers",
+       "exif-dc-coverage": "Ruimtelike of temporale omvang van die media",
+       "exif-dc-date": "Datum(s)",
+       "exif-dc-publisher": "Uitgewer",
+       "exif-dc-relation": "Verwante media",
+       "exif-dc-rights": "Regte",
+       "exif-dc-source": "Bronmedia",
+       "exif-dc-type": "Mediatipe",
+       "exif-rating-rejected": "Afgewys",
+       "exif-isospeedratings-overflow": "Groter as 65535",
+       "exif-iimcategory-ace": "Kuns, kultuur en vermaak",
+       "exif-iimcategory-clj": "Misdaad en die reg",
+       "exif-iimcategory-dis": "Rampe en ongelukke",
+       "exif-iimcategory-fin": "Ekonomie en besigheid",
+       "exif-iimcategory-edu": "Onderwys",
+       "exif-iimcategory-evn": "Omgewing",
+       "exif-iimcategory-hth": "Gesondheid",
+       "exif-iimcategory-hum": "Menslike belang",
+       "exif-iimcategory-lab": "Arbeid",
+       "exif-iimcategory-lif": "Leefstyl en ontspanning",
+       "exif-iimcategory-pol": "Politiek",
+       "exif-iimcategory-rel": "Godsdiens en geloof",
+       "exif-iimcategory-sci": "Wetenskap en tegnologie",
+       "exif-iimcategory-soi": "Sosiale kwessies",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Oorlog, konflik en onrus",
+       "exif-iimcategory-wea": "Weer",
+       "exif-urgency-normal": "Normaal ($1)",
+       "exif-urgency-low": "Laag ( $1 )",
+       "exif-urgency-high": "Hoog ($1)",
+       "exif-urgency-other": "Gebruiker-gedefinieerde prioriteit ($1)"
+}
diff --git a/languages/i18n/exif/ais.json b/languages/i18n/exif/ais.json
new file mode 100644 (file)
index 0000000..5b02e90
--- /dev/null
@@ -0,0 +1,335 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Benel",
+                       "Bunukwiki",
+                       "Tokoabibi"
+               ]
+       },
+       "exif-imagewidth": "ahebal",
+       "exif-imagelength": "takalaw sulyang",
+       "exif-bitspersample": "paysyangsuay a wyiyin",
+       "exif-compression": "piepian mipecec a sasakawawen",
+       "exif-photometricinterpretation": "pacamel-palacul tu syangsu",
+       "exif-orientation": "papayzaan",
+       "exif-samplesperpixel": "syangsu nikayadah",
+       "exif-planarconfiguration": "kalunasulitan misilsil",
+       "exif-ycbcrsubsampling": "takuliway pasumad sumanahay sakatusa mipiri’",
+       "exif-ycbcrpositioning": "likat atu takelal kakitizaan",
+       "exif-xresolution": "sasuala katingalaw",
+       "exif-yresolution": "mitelekay katingalaw",
+       "exif-stripoffsets": "iga kalunasulitan kakitizaan",
+       "exif-rowsperstrip": "cacay ku kaus papina ku tusil",
+       "exif-stripbytecounts": "pay piepian mipecec tay wyiyincu sulyang",
+       "exif-jpeginterchangeformat": "JPEG SOI misiwit",
+       "exif-jpeginterchangeformatlength": "JPEG kalunasulitan wyiyincu",
+       "exif-whitepoint": "sangelacay hacica-kulit",
+       "exif-primarychromaticities": "sausi sulyang nu kulit",
+       "exif-ycbcrcoefficients": "kalukulit salaedan miliyaw cicen  sisu",
+       "exif-referenceblackwhite": "umeniay-sangelacay miazih tu tatenga’ay nikayadah",
+       "exif-datetime": "tangan misumaday a demiad atu tuki",
+       "exif-imagedescription": "satangahan nu iga",
+       "exif-make": "sasasing-kikay misanga’ tu kalutuuday",
+       "exif-model": "sasasing nu nisanga’an a banggu",
+       "exif-software": "pisaungay zwanti",
+       "exif-artist": "masacudaday",
+       "exif-copyright": "nizaay nisanga’an tu tungus a kawaw",
+       "exif-exifversion": "Exif baziyong / sapad",
+       "exif-flashpixversion": "midamaay a Flashpix baziyong",
+       "exif-colorspace": "kalukulit salaedan",
+       "exif-componentsconfiguration": "paysyangsu yamalyilu",
+       "exif-compressedbitsperpixel": "iga piepian mipecec a muse",
+       "exif-pixelxdimension": "zunga nu hacica-ahebal",
+       "exif-pixelydimension": "zunga nu hacica-takalaw",
+       "exif-usercomment": "misaungayay a buhci tu kamu",
+       "exif-relatedsoundfile": "mahizaay nu suniay a tangan",
+       "exif-datetimeoriginal": "kalunasulitan masangaay’ a demiad atu tuki",
+       "exif-datetimedigitized": "suwyihwaay a demiad atu tuki",
+       "exif-subsectime": "DateTime saba-beti",
+       "exif-subsectimeoriginal": "DateTimeOriginal saba-beti.",
+       "exif-subsectimedigitized": "DateTimeDigitized saba-beti",
+       "exif-exposuretime": "mapaedil a lawad",
+       "exif-exposuretime-format": "$1 beti ($2)",
+       "exif-exposureprogram": "mapaedil a muse",
+       "exif-spectralsensitivity": "edil-selal saahemi’han",
+       "exif-isospeedratings": "ISO suli",
+       "exif-shutterspeedvalue": "APEX kiyata a kalamkam",
+       "exif-aperturevalue": "APEX edil",
+       "exif-brightnessvalue": "APEX likat",
+       "exif-exposurebiasvalue": "APEX mapaedil",
+       "exif-maxaperturevalue": "satabakiay a likat-mulu i lala’ nu kitakit",
+       "exif-subjectdistance": "ilaed nu satangahan",
+       "exif-meteringmode": "miditek tu edil a muse",
+       "exif-lightsource": "katahkalan nu likat",
+       "exif-flash": "sabelabelatay a tinghuy",
+       "exif-focallength": "saed nu sapisasing",
+       "exif-subjectarea": "sausi a kakitizaan",
+       "exif-flashenergy": "sabelabelatay a tinghuy u icelang",
+       "exif-focalplanexresolution": "X couciaw kimpi’ katingalaw",
+       "exif-focalplaneyresolution": "Y couciaw kimpi’ katingalaw",
+       "exif-focalplaneresolutionunit": "edil-sanat a sapat katingalaw  tatebanan nu nisulitan",
+       "exif-subjectlocation": "kakitizaan nu satangahan",
+       "exif-exposureindex": "mapaedil a sulyang",
+       "exif-sensingmethod": "mise nu nikasumad nay edil",
+       "exif-filesource": "saangangan nu tangan",
+       "exif-scenetype": "makaazihay nikalahizaan",
+       "exif-customrendered": "pakuniza misanga’ iga",
+       "exif-whitebalance": "sapalalen nu salengacay",
+       "exif-digitalzoomratio": "sueyi sasumad sanat-baniyut piri’",
+       "exif-focallengthin35mmfilm": "35 hawmi hwyilumu saed nu sapisasing",
+       "exif-scenecapturetype": "makaazihay masasing nikalahizaan",
+       "exif-gaincontrol": "makaazihay misimaw",
+       "exif-contrast": "e-contrast",
+       "exif-saturation": "matumesay a sulyang",
+       "exif-sharpness": "kacidem",
+       "exif-devicesettingdescription": "sakaluk setin sapuelac",
+       "exif-subjectdistancerange": "baat nu tatizengan a liwliw",
+       "exif-imageuniqueid": "kinacacay sakatineng-kodo nu sasing",
+       "exif-gpsversionid": "GPS baziyong nu aazihen a paya",
+       "exif-gpslatituderef": "pyiwyi asaca nanwyi",
+       "exif-gpslongituderef": "tongcing asaca sicing",
+       "exif-gpsaltituderef": "nutakalaw namakay bayu’ miazih tu tatenga’ay a sulyang",
+       "exif-gpsaltitude": "nutakalaw namakay bayu’",
+       "exif-gpstimestamp": "GPS tuki (yuanci-tuki)",
+       "exif-gpssatellites": "sapiditekay a zizuisi",
+       "exif-gpsstatus": "pizawis sakaluk setyitase",
+       "exif-gpsmeasuremode": "miditek a muse",
+       "exif-gpsdop": "miditek a tatungus",
+       "exif-gpsspeedref": "saduba’ kalamkam a sacacaycacay",
+       "exif-gpsspeed": "GPS pizawis-sakaluk saduba’ kalamkam",
+       "exif-gpstrackref": "milimad pasayzaan miazih tu tatenga’ay sulyang",
+       "exif-gpsimgdirectionref": "pasayzaan nu iga miazih tu tatenga’ay sulyang",
+       "exif-gpsmapdatum": "pisaungay ulaulangan miditek a kalunasulitan",
+       "exif-gpsdestlatituderef": "pametekan wyitu miazih tu tatenga’ay sulyang",
+       "exif-gpsdestlatitude": "pabalucu’an a wyitu",
+       "exif-gpsdestlongituderef": "pamutekan cintu miazih tu tatenga’ay sulyang",
+       "exif-gpsdestbearingref": "pamutekan sasakawawen miazih tu tatenga’ay sulyang",
+       "exif-gpsdestdistanceref": "pamutekan baat miazih tu tatenga’ay sulyang",
+       "exif-gpsprocessingmethod": "GPS saungay sasakawawen kalungangan",
+       "exif-gpsareainformation": "GPS subal kalungangan",
+       "exif-gpsdatestamp": "GPS a demiad",
+       "exif-gpsdifferential": "GPS chafen misumad",
+       "exif-jpegfilecomment": "JPEG tangan pacunus sakacaay kapawan",
+       "exif-keywords": "aazihen dulit",
+       "exif-worldregioncreated": "zunga masasing a kakitizaan",
+       "exif-countrycreated": "zunga masasingan a kanatal",
+       "exif-countrycodecreated": "zunga masasing kanatal kodo",
+       "exif-provinceorstatecreated": "yakuwanan a sasing",
+       "exif-citycreated": "yatukay a sasing",
+       "exif-sublocationcreated": "zunga masasing tukay pulita kahicelaan",
+       "exif-worldregiondest": "paazih ku subal nu kitakit",
+       "exif-countrydest": "paazih tu kanatal",
+       "exif-countrycodedest": "paazih kanatal a kodo",
+       "exif-provinceorstatedest": "paazih seng asaca cou",
+       "exif-citydest": "paazihay a tukay",
+       "exif-sublocationdest": "paazih tukay pulita kahicelaan",
+       "exif-objectname": "sapuyuay a ngangan",
+       "exif-specialinstructions": "sazumaay buhci tu kamu",
+       "exif-headline": "satangahan",
+       "exif-credit": "misanga’/nipabeli’ay",
+       "exif-source": "saangangan",
+       "exif-editstatus": "zunga setyitase nu binawlan sapuelac",
+       "exif-urgency": "hacica ku kalah",
+       "exif-fixtureidentifier": "Fixture kalungangan",
+       "exif-locationdest": "patahkal kahicelaan",
+       "exif-locationdestcode": "kakitizaan kodo sapuelac",
+       "exif-objectcycle": "myiti saungay a takukian",
+       "exif-contact": "patakusan a cesyun",
+       "exif-writer": "misacudaday",
+       "exif-languagecode": "kamu",
+       "exif-iimversion": "IIM baziyong",
+       "exif-iimcategory": "kakuniza",
+       "exif-iimsupplementalcategory": "micunus kakuniza",
+       "exif-datetimeexpires": "nuzikuz tina demiad amana pisaungay",
+       "exif-datetimereleased": "patiyak i",
+       "exif-originaltransmissionref": "saayaway miculu’ kakitizaan a kodo",
+       "exif-identifier": "mapulitaay a kodo",
+       "exif-lens": "pisaungay tu cingtou",
+       "exif-serialnumber": "sasasing salaylay a banggu",
+       "exif-cameraownername": "sasasing nizaay",
+       "exif-label": "aazihen paya",
+       "exif-datetimemetadata": "sazikuzay a demiad sapisumad nu kalunasulitan misaheci",
+       "exif-nickname": "caykaw tatengaay a zunga kalungangan",
+       "exif-rightscertificate": "nisanga’an niza tu tungus a kawaw nu makuwanay a pincen",
+       "exif-copyrighted": "nisanga’an niza tu tungus a kawaw setyitase",
+       "exif-copyrightowner": "nizaay nisanga’an tu tungus a kawaw",
+       "exif-usageterms": "mamaala a cedang",
+       "exif-webstatement": "nabalucu'an nu i telay nisanga’an niza tu tungus a kawaw",
+       "exif-originaldocumentid": "kinacacay sakatineng-kodo nu saayaway a cudad",
+       "exif-licenseurl": "nisanga’an niza tu tungus a kawaw pabeli tu kinli  masasiket",
+       "exif-morepermissionsurl": "paliyuh pabeli tu kinli a cesyun",
+       "exif-attributionurl": "anu misaliyaw pisaungay tina nalimaan, pisasiket tu",
+       "exif-preferredattributionname": "anu misaliyaw pisaungay tina nalimaan haw, pipangangan",
+       "exif-pngfilecomment": "PNG tangan pacunus sakacaay kapawan",
+       "exif-disclaimer": "caay pimuku tu sikining",
+       "exif-contentwarning": "lacul mipatalaw",
+       "exif-giffilecomment": "GIF tangan pacunus sakacaay kapawan",
+       "exif-intellectualgenre": "kasacacay nikalahizaan",
+       "exif-subjectnewscode": "kodo nu satangahan",
+       "exif-scenecode": "IPTC itizaay a kodo",
+       "exif-event": "sapuelac tu sikikawaw",
+       "exif-organisationinimage": "sapuelac nu mikumi",
+       "exif-personinimage": "sapuelac tu tademaw",
+       "exif-originalimageheight": "takalaway nu caayhen masait",
+       "exif-originalimagewidth": "misait tu nuayawan a ahebal",
+       "exif-compression-1": "caay henay piepian mipecec",
+       "exif-compression-2": "CCITT saka 3 cacay-wei misumad Hofuman sakababalic tanaya’ a bang gu",
+       "exif-compression-3": "CCITT saka 3 fax sakababalic a banggu",
+       "exif-compression-4": "CCITT saka 4 fax sakababalic a banggu",
+       "exif-copyrighted-true": "madiput nu nisanga’an niza tu tungus a kawaw",
+       "exif-copyrighted-false": "caay kapulita nu nisanga’an niza tu tungus a kawaw setyitase",
+       "exif-photometricinterpretation-1": "lumeniay atu sangelacan (lumeniay u 0)",
+       "exif-unknowndate": "caay kapulita ku demiad",
+       "exif-orientation-1": "tatungus",
+       "exif-orientation-2": "mabelih tu zazay",
+       "exif-orientation-3": "malineng 180°",
+       "exif-orientation-4": "mabelih tu mitelekay",
+       "exif-orientation-5": "cuis tu culil nu tuki malineng 90° atu pitelekay mibelih",
+       "exif-orientation-7": "duduc tu culil nu tuki malineng 90° atu mitelekay mibelih",
+       "exif-planarconfiguration-1": "pu’nel-kizemu a kese",
+       "exif-planarconfiguration-2": "kimpi’ a kese",
+       "exif-colorspace-65535": "caay henay masitudung ku kulit",
+       "exif-componentsconfiguration-0": "inayi’",
+       "exif-exposureprogram-0": "caay henay misaheci",
+       "exif-exposureprogram-1": "palima",
+       "exif-exposureprogram-2": "tatungus a muse",
+       "exif-exposureprogram-3": "likat maluayaw",
+       "exif-exposureprogram-4": "kiyata maluayaw",
+       "exif-exposureprogram-5": "nalimaan cengse (makaazihay-ibabu maluayaw)",
+       "exif-exposureprogram-6": "musaungay muse (kalamkam kiyata maluayaw)",
+       "exif-exposureprogram-7": "muse nu tademaw sasing (sapiicapiay a sasing,sanat inayi’ itada)",
+       "exif-exposureprogram-8": "makaazihay muse (i makaazihay a sasing,paedil-sanat i zikuz)",
+       "exif-subjectdistance-value": "$1 mi",
+       "exif-meteringmode-0": "caay kapulita",
+       "exif-meteringmode-1": "lalet",
+       "exif-meteringmode-2": "pikuwanan pacunus lalet",
+       "exif-meteringmode-3": "baniyut-ditek",
+       "exif-meteringmode-4": "kayadah- baniyut-ditek",
+       "exif-meteringmode-5": "muse",
+       "exif-meteringmode-6": "liyad",
+       "exif-meteringmode-255": "zuma",
+       "exif-lightsource-0": "caay kapulita",
+       "exif-lightsource-1": "likat",
+       "exif-lightsource-2": "inkwang a tinghuy",
+       "exif-lightsource-3": "useteng-tinghuy",
+       "exif-lightsource-4": "sabelabelatay a tinghuy",
+       "exif-lightsource-9": "cilalah a demiad",
+       "exif-lightsource-10": "kenutan",
+       "exif-lightsource-11": "iduutay",
+       "exif-lightsource-12": "likat inkwang dinki (D 5700 - 7100K)",
+       "exif-lightsource-13": "demiad inkwang dinki (N 4600 - 5400K)",
+       "exif-lightsource-14": "cuedat-sangelacay inkwang dinki (W 3900 - 4500K)",
+       "exif-lightsource-15": "sangelacay inkwang dinki (WW 3200 – 3700K)",
+       "exif-lightsource-17": "tatungus likat nu dingki A",
+       "exif-lightsource-18": "tatungus likat nu dingki B",
+       "exif-lightsource-19": "tatungus likat nu dingki C",
+       "exif-lightsource-24": "ISO sasing salaedan a useteng",
+       "exif-lightsource-255": "zuma katahkalan nu likat",
+       "exif-flash-fired-0": "sabelabelatay a tinghui caay henay miwawah",
+       "exif-flash-fired-1": "sabelabelatay a tinghui miwawah tuway",
+       "exif-flash-return-0": "inayi’ belabelatan-kikay a sasahicaan",
+       "exif-flash-return-2": "sabelabela-sedap-sakaluk caay sedap tu edil",
+       "exif-flash-return-3": "sabelabelatay sedap-sakaluk sedap tu edil",
+       "exif-flash-mode-1": "pacici sabelabelatay tinghuy mawawah",
+       "exif-flash-mode-2": "pacici sabelabelatay tinghuy mapaneng",
+       "exif-flash-mode-3": "lunuk muse",
+       "exif-flash-function-1": "inayi’ sasahicaan nu sabelabelatay a tinghui",
+       "exif-flash-redeye-1": "muse nu kasatezep tu sumanahay a mata",
+       "exif-focalplaneresolutionunit-2": "incun",
+       "exif-sensingmethod-1": "caay henay misaheci",
+       "exif-sensingmethod-2": "cacay cinpyin kulikulitan subal askance-kikay",
+       "exif-sensingmethod-3": "tusa-cinpyin kulikulitan subal askance-kikay",
+       "exif-sensingmethod-4": "tulu-cinpyin kulikulitan subal askance-kikay",
+       "exif-sensingmethod-5": "malaliday a kulikulitan subal kance-kikay",
+       "exif-sensingmethod-7": "tululait askance-kikay",
+       "exif-sensingmethod-8": "malaliday a kulikulitan telayan kance-kikay",
+       "exif-filesource-3": "sulyangay a sasasing",
+       "exif-scenetype-1": "besuc han misasingay a zunga",
+       "exif-customrendered-0": "habutuday a laylay",
+       "exif-customrendered-1": "pakuniza misanga’ay a laylay",
+       "exif-exposuremode-0": "lunuk mapaedil",
+       "exif-exposuremode-1": "lima-saungay mapaedil",
+       "exif-exposuremode-2": "lunuk laup mapacedil",
+       "exif-whitebalance-0": "lunuk sapalalen nu salengacay",
+       "exif-whitebalance-1": "lima-saungay sapalalen nu salengacay",
+       "exif-scenecapturetype-0": "tatungus",
+       "exif-scenecapturetype-1": "makaazihay",
+       "exif-scenecapturetype-2": "sassing nu tademaw",
+       "exif-scenecapturetype-3": "makaazihay nu labiyi",
+       "exif-gaincontrol-0": "nayi’",
+       "exif-gaincontrol-1": "adidi’ tu cunusan",
+       "exif-gaincontrol-2": "takalaw ku cunusan",
+       "exif-gaincontrol-3": "adidi’ tu selepan",
+       "exif-gaincontrol-4": "takalaw ku selepan",
+       "exif-contrast-0": "tatungus",
+       "exif-contrast-1": "pu’nel",
+       "exif-contrast-2": "takalaw",
+       "exif-saturation-0": "tatungus",
+       "exif-saturation-1": "caykatumesay a kulit",
+       "exif-saturation-2": "takalaw atu matumes ku kulit",
+       "exif-sharpness-0": "tatungus",
+       "exif-sharpness-1": "pu’nel",
+       "exif-sharpness-2": "takalaw",
+       "exif-subjectdistancerange-0": "caay kapulita",
+       "exif-subjectdistancerange-1": "ciyuci",
+       "exif-subjectdistancerange-2": "pakatepalay a azih",
+       "exif-subjectdistancerange-3": "pakabatatay a azih",
+       "exif-gpslatitude-n": "pyiwyi",
+       "exif-gpslatitude-s": "nanwyi",
+       "exif-gpslongitude-e": "tongcing",
+       "exif-gpslongitude-w": "sicing",
+       "exif-gpsaltitude-above-sealevel": "takalaw nu buyu’ $1 {{PLURAL:$1|kungci-ilaed}}",
+       "exif-gpsaltitude-below-sealevel": "takalaw nu buyu’ sawada’ $1 {{PLURAL:$1|kungci-ilaed}}",
+       "exif-gpsstatus-a": "miditek miteka henay ayza",
+       "exif-gpsstatus-v": "miditek masasiketay a sausi",
+       "exif-gpsmeasuremode-2": "tusa-wei miditek",
+       "exif-gpsmeasuremode-3": "tulu-wei miditek",
+       "exif-gpsspeed-k": "paytuki a kungli",
+       "exif-gpsspeed-m": "paytuki a inli",
+       "exif-gpsspeed-n": "cie (hayli/cacay a tuki)",
+       "exif-gpsdestdistance-k": "kungli",
+       "exif-gpsdestdistance-m": "inli",
+       "exif-gpsdestdistance-n": "hayli",
+       "exif-gpsdop-excellent": "tada kapah ($1)",
+       "exif-gpsdop-good": "kapahay ($1)",
+       "exif-gpsdop-moderate": "hucu ($1)",
+       "exif-gpsdop-poor": "la’cus ($1)",
+       "exif-objectcycle-a": "namalamam a cacay",
+       "exif-objectcycle-p": "nakalahukan a cacay",
+       "exif-objectcycle-b": "namalanam atu namalahuk",
+       "exif-gpsdirection-t": "tatengaay tatuzu’an",
+       "exif-gpsdirection-m": "tatuzu'an nu tyice",
+       "exif-ycbcrpositioning-1": "teban",
+       "exif-ycbcrpositioning-2": "palecad miala tu maaziahan",
+       "exif-dc-contributor": "paaninay tu kalusasing",
+       "exif-dc-coverage": "myitiay ahebal nu hekal",
+       "exif-dc-date": "demiad",
+       "exif-dc-publisher": "insacay",
+       "exif-dc-relation": "mahizaay u myiti",
+       "exif-dc-rights": "kinli",
+       "exif-dc-source": "saangangan a myiti",
+       "exif-dc-type": "myiti nikalahizaan",
+       "exif-rating-rejected": "kakaian",
+       "exif-isospeedratings-overflow": "satabakien tu 65535",
+       "exif-iimcategory-ace": "nalimaanay, lalangawan atu limulak",
+       "exif-iimcategory-clj": "mungangaw atu hulic",
+       "exif-iimcategory-dis": "labades atu malitemuhay",
+       "exif-iimcategory-fin": "kyizay atu syubay",
+       "exif-iimcategory-edu": "pasubana’ay a kawaw",
+       "exif-iimcategory-evn": "liwliw",
+       "exif-iimcategory-hth": "kapah ku uzip",
+       "exif-iimcategory-hum": "u zazan nu tademaw",
+       "exif-iimcategory-lab": "makawaw",
+       "exif-iimcategory-lif": "nikauzip atu pahanhanan",
+       "exif-iimcategory-pol": "cengcey",
+       "exif-iimcategory-rel": "papazaan atu papayzaan",
+       "exif-iimcategory-sci": "kagak atu keci",
+       "exif-iimcategory-soi": "binawlan a munday",
+       "exif-iimcategory-spo": "wundukay",
+       "exif-iimcategory-war": "ngayaw, sasula’cus atu sasibud",
+       "exif-iimcategory-wea": "demidad",
+       "exif-urgency-normal": "tatungus ($1)",
+       "exif-urgency-low": "pu’nel ($1)",
+       "exif-urgency-high": "takalaw ($1)",
+       "exif-urgency-other": "misaungayay pakuniza misanga’ maluayaw tungus ($1)"
+}
diff --git a/languages/i18n/exif/am.json b/languages/i18n/exif/am.json
new file mode 100644 (file)
index 0000000..46426ec
--- /dev/null
@@ -0,0 +1,208 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Codex Sinaiticus"
+               ]
+       },
+       "exif-imagewidth": "ስፋት",
+       "exif-imagelength": "ቁመት",
+       "exif-compression": "የመጨመቅ ዘዴ",
+       "exif-photometricinterpretation": "የPixel አሠራር",
+       "exif-orientation": "አቀማመጥ",
+       "exif-samplesperpixel": "የክፍለ ነገሮች ቁጥር",
+       "exif-planarconfiguration": "የመረጃ አስተዳደር",
+       "exif-ycbcrpositioning": "የY ና C አቀማመጥ",
+       "exif-xresolution": "አድማሳዊ ማጉላት",
+       "exif-yresolution": "ቁም ማጉላት",
+       "exif-stripoffsets": "የስዕል መረጃ ሥፍራ",
+       "exif-rowsperstrip": "የተርታዎች ቁጥር በየቁራጩ",
+       "exif-stripbytecounts": "byte በየተጨመቀ ቁራጩ",
+       "exif-jpeginterchangeformatlength": "የJPEG መረጃ byte",
+       "exif-datetime": "ፋይሉ የተቀየረበት ቀንና ሰዓት",
+       "exif-imagedescription": "የስዕል አርዕስት",
+       "exif-make": "የካሜራው ሠሪ ድርጅት",
+       "exif-model": "የካሜራው ዝርያ",
+       "exif-software": "የተጠቀመው ሶፍትዌር",
+       "exif-artist": "ደራሲ",
+       "exif-copyright": "ባለ መብቱ",
+       "exif-exifversion": "የExif ዝርያ",
+       "exif-flashpixversion": "የተደገፈ Flashpix ዝርያ",
+       "exif-componentsconfiguration": "የየክፍለ ነገሩ ትርጉም",
+       "exif-compressedbitsperpixel": "የስዕል መጨመቅ ዘዴ",
+       "exif-pixelxdimension": "እውነተኛ የስዕል ስፋት",
+       "exif-pixelydimension": "እውነተኛ የስዕል ቁመት",
+       "exif-usercomment": "የተጠቃሚው ማጠቃለያ",
+       "exif-relatedsoundfile": "የተዛመደ የድምጽ ፋይል",
+       "exif-datetimeoriginal": "መረጃው የተፈጠረበት ቀንና ሰዓት",
+       "exif-datetimedigitized": "ዲጂታል የተደረገበት ቀንና ሰዓት",
+       "exif-exposuretime": "የግልጠት ግዜ",
+       "exif-exposuretime-format": "$1 ሴኮንድ ($2)",
+       "exif-fnumber": "የF ቁጥር",
+       "exif-exposureprogram": "የግልጠት ፕሮግራም",
+       "exif-shutterspeedvalue": "የከላይ ፍጥነት",
+       "exif-aperturevalue": "ክፍተት",
+       "exif-brightnessvalue": "ብሩህነት",
+       "exif-exposurebiasvalue": "የግልጠት ዝንባሌ",
+       "exif-maxaperturevalue": "የየብስ ክፍተት ወሰን ቢበዛ",
+       "exif-subjectdistance": "የጉዳዩ ርቀት",
+       "exif-meteringmode": "የመመተር ዘዴ",
+       "exif-lightsource": "የብርሃን ምንጭ",
+       "exif-flash": "ብልጭታ",
+       "exif-focallength": "የምስሪት ትኩረት እርዝማኔ",
+       "exif-subjectarea": "የጉዳዩ ክልል",
+       "exif-flashenergy": "የብልጭታ ኅይል",
+       "exif-subjectlocation": "የጉዳዩ ሥፍራ",
+       "exif-exposureindex": "ግልጠት መለኪያ ቁጥር",
+       "exif-sensingmethod": "የመሰማት ዘዴ",
+       "exif-filesource": "የፋይል ምንጭ",
+       "exif-scenetype": "የትርኢት አይነት",
+       "exif-customrendered": "ልዩ የስዕል አገባብ",
+       "exif-exposuremode": "የግልጠት ዘዴ",
+       "exif-whitebalance": "የነጭ ዝንባሌ",
+       "exif-digitalzoomratio": "ቁጥራዊ ማጉላት ውድር",
+       "exif-focallengthin35mmfilm": "በ35 mm ፊልም የትኩረት እርዝማኔ",
+       "exif-scenecapturetype": "የትርኢት መማረክ አይነት",
+       "exif-gaincontrol": "የትርኢት ማሠልጠን",
+       "exif-contrast": "የድምቀት አነጻጸር",
+       "exif-sharpness": "ስለት",
+       "exif-subjectdistancerange": "የጉዳዩ ርቀት",
+       "exif-imageuniqueid": "የስዕሉ መታወቂያ ቁጥር",
+       "exif-gpsversionid": "የGPS ምልክት ዝርያ",
+       "exif-gpslatituderef": "ስሜን ወይም ደቡብ ኬክሮስ",
+       "exif-gpslatitude": "ኬክሮስ",
+       "exif-gpslongituderef": "ምስራቅ ወይም ምዕራብ ኬንትሮስ",
+       "exif-gpslongitude": "ኬንትሮስ",
+       "exif-gpsaltituderef": "የከፍታ መሰረት",
+       "exif-gpsaltitude": "ከፍታ",
+       "exif-gpstimestamp": "GPS ሰዓት (አቶማዊ ሰዓት)",
+       "exif-gpssatellites": "ለመስፈር የተጠቀሙ ሰው ሰራሽ መንኮራኩር",
+       "exif-gpsstatus": "የተቀባይ ሁኔታ",
+       "exif-gpsmeasuremode": "የመለኪያ ዘዴ",
+       "exif-gpsdop": "የመለኪያ ልክነት",
+       "exif-gpsspeedref": "የፍጥነት መስፈርያ",
+       "exif-gpsspeed": "የGPS ተቀባይ ፍጥነት",
+       "exif-gpstrackref": "የስዕል እንቅስቃሴ መሰረት",
+       "exif-gpstrack": "የእንቅስቃሴ አቅጣጫ",
+       "exif-gpsimgdirectionref": "የስዕል አቅጣጫ መሠረት",
+       "exif-gpsimgdirection": "የስዕል አቅጣጫ",
+       "exif-gpsdestlatituderef": "የመድረሻ ኬክሮስ መሠረት",
+       "exif-gpsdestlatitude": "የመድረሻ ኬክሮስ",
+       "exif-gpsdestlongituderef": "የመድረሻ ኬንትሮስ መሠረት",
+       "exif-gpsdestlongitude": "የመድረሻ ኬንትሮስ",
+       "exif-gpsdestdistanceref": "የመድረሻ ርቀት መሠረት",
+       "exif-gpsdestdistance": "ርቀት ከመድረሻ",
+       "exif-gpsprocessingmethod": "የGPS አግባብ ዘዴ ስም",
+       "exif-gpsareainformation": "የGPS ክልል ስም",
+       "exif-gpsdatestamp": "የGPS ቀን",
+       "exif-gpsdifferential": "GPS ልዩነት ማስተካከል",
+       "exif-countrycreated": "ፎቶው የተነሣበት ሀገር",
+       "exif-countrycodecreated": "ፎቶው የተነሣበት ሀገር ኮድ",
+       "exif-provinceorstatecreated": "ፎቶው የተነሣበት ክፍላገር",
+       "exif-citycreated": "ፎቶው የተነሣበት ከተማ",
+       "exif-countrydest": "የታየው ሀገር",
+       "exif-countrycodedest": "የሚታየው ሀገር ኮድ",
+       "exif-provinceorstatedest": "የሚታየው ክፍለሀገር",
+       "exif-citydest": "የሚታየው ከተማ",
+       "exif-objectname": "አጭር አርዕስት",
+       "exif-specialinstructions": "ልዩ ማስጠንቀቂያ",
+       "exif-source": "መነሻ",
+       "exif-languagecode": "ቋንቋ",
+       "exif-cameraownername": "ባለ ካሜራ",
+       "exif-personinimage": "የታየው ሰው",
+       "exif-compression-1": "ያልተጨመቀ",
+       "exif-unknowndate": "ያልታወቀ ቀን",
+       "exif-orientation-1": "መደበኛ",
+       "exif-orientation-2": "በአድማሱ ላይ ተገለበጠ",
+       "exif-orientation-3": "180° የዞረ",
+       "exif-orientation-4": "በዋልታው ላይ ተገለበጠ",
+       "exif-componentsconfiguration-0": "አይኖርም",
+       "exif-exposureprogram-0": "አልተወሰነም",
+       "exif-exposureprogram-1": "በዕጅ",
+       "exif-exposureprogram-2": "መደበኛ ፕሮግራም",
+       "exif-exposureprogram-3": "የክፍተት ቀዳሚነት",
+       "exif-exposureprogram-4": "የከላይ ቀዳሚነት",
+       "exif-exposureprogram-6": "የድርጊት ፕሮግራም (ለፈጣን ከላይ ፍጥነት የዘነበለ)",
+       "exif-subjectdistance-value": "$1 ሜትር",
+       "exif-meteringmode-0": "አይታወቅም",
+       "exif-meteringmode-1": "አማካኝ",
+       "exif-meteringmode-3": "ነጥብ",
+       "exif-meteringmode-6": "በከፊል",
+       "exif-meteringmode-255": "ሌላ",
+       "exif-lightsource-0": "አይታወቅም",
+       "exif-lightsource-1": "መዓልት",
+       "exif-lightsource-3": "Tungsten (ቦግ ያለ መብራት)",
+       "exif-lightsource-4": "ብልጭታ",
+       "exif-lightsource-9": "መልካም አየር",
+       "exif-lightsource-10": "ደመናም አየር",
+       "exif-lightsource-11": "ጥላ",
+       "exif-lightsource-17": "መደበኛ ብርሃን A",
+       "exif-lightsource-18": "መደበኛ ብርሃን B",
+       "exif-lightsource-19": "መደበኛ ብርሃን C",
+       "exif-lightsource-255": "ሌላ የብርሃን ምንጭ",
+       "exif-flash-function-1": "የብልጭታ ተግባር የለም",
+       "exif-focalplaneresolutionunit-2": "inches (ኢንች)",
+       "exif-sensingmethod-1": "ያልተወሰነ",
+       "exif-sensingmethod-2": "የ1-ኤሌክትሮ-ገል ቀለም ክልል ሰሚ",
+       "exif-sensingmethod-3": "የ2-ኤሌክትሮ-ገል ቀለም ክልል ሰሚ",
+       "exif-sensingmethod-4": "የ3-ኤሌክትሮ-ገል ቀለም ክልል ሰሚ",
+       "exif-sensingmethod-5": "ቀለም ተከታታይ ክልል ሰሚ",
+       "exif-sensingmethod-7": "ሦስት መስመር ያለው ሰሚ",
+       "exif-sensingmethod-8": "ቀለም ተከታታይ መስመር ሰሚ",
+       "exif-scenetype-1": "በቀጥታ የተነሣ የፎቶ ስዕል",
+       "exif-customrendered-0": "የተለመደ ሂደት",
+       "exif-customrendered-1": "ልዩ ሂደት",
+       "exif-exposuremode-0": "የቀጥታ ግልጠት",
+       "exif-exposuremode-1": "በዕጅ ግልጠት",
+       "exif-exposuremode-2": "ቀጥተኛ ቅንፍ",
+       "exif-whitebalance-0": "የቀጥታ ነጭ ዝንባሌ",
+       "exif-whitebalance-1": "በእጅ የተደረገ ነጭ ዝንባሌ",
+       "exif-scenecapturetype-0": "መደበኛ",
+       "exif-scenecapturetype-1": "አግድም",
+       "exif-scenecapturetype-2": "ቁም",
+       "exif-scenecapturetype-3": "የሌሊት ትርኢት",
+       "exif-gaincontrol-0": "የለም",
+       "exif-contrast-0": "መደበኛ",
+       "exif-contrast-1": "ለስላሳ",
+       "exif-contrast-2": "ጽኑዕ",
+       "exif-saturation-0": "መደበኛ",
+       "exif-sharpness-0": "መደበኛ",
+       "exif-sharpness-1": "ለስላሳ",
+       "exif-sharpness-2": "ጽኑዕ",
+       "exif-subjectdistancerange-0": "አይታወቅም",
+       "exif-subjectdistancerange-2": "ከቅርብ አስተያየት",
+       "exif-subjectdistancerange-3": "ከሩቅ አስተያየት",
+       "exif-gpslatitude-n": "ስሜን ኬክሮስ",
+       "exif-gpslatitude-s": "ደቡብ ኬክሮስ",
+       "exif-gpslongitude-e": "ምሥራቅ ኬንትሮስ",
+       "exif-gpslongitude-w": "ምዕራብ ኬንትሮስ",
+       "exif-gpsmeasuremode-2": "2 አቅጣቻ ያለው መለኪያ",
+       "exif-gpsmeasuremode-3": "3 አቅጣቻ ያለው መለኪያ",
+       "exif-gpsspeed-k": "ኪሎሜትር በየሰዓቱ",
+       "exif-gpsspeed-m": "ማይል (mile) በየሰዓቱ",
+       "exif-gpsspeed-n": "Knot (የመርከብ ፍጥነት መለኪያ)",
+       "exif-gpsdestdistance-k": "ኪሎሜትር",
+       "exif-gpsdestdistance-m": "ማይል",
+       "exif-gpsdop-excellent": "በጣም ጥሩ",
+       "exif-gpsdop-good": "ጥሩ ($1)",
+       "exif-objectcycle-a": "ጥዋት ብቻ",
+       "exif-objectcycle-p": "ማታ ብቻ",
+       "exif-objectcycle-b": "ጥዋትም ማታም",
+       "exif-gpsdirection-t": "ዕውነተኛ አቅጣጫ",
+       "exif-gpsdirection-m": "መግነጢሳዊ አቅጣጫ",
+       "exif-dc-publisher": "አሳታሚ",
+       "exif-dc-rights": "መብቶች",
+       "exif-isospeedratings-overflow": "ከ65535 በላይ",
+       "exif-iimcategory-clj": "ወንጀልና ሕግ",
+       "exif-iimcategory-fin": "ምጣኔ ሀብትና ንግድ",
+       "exif-iimcategory-edu": "ትምህርት",
+       "exif-iimcategory-hth": "ጤንነት",
+       "exif-iimcategory-lab": "ሥራ",
+       "exif-iimcategory-lif": "አኗኗርና መዝናናት",
+       "exif-iimcategory-pol": "ፖለቲካ",
+       "exif-iimcategory-rel": "ሀይማኖትና እምነት",
+       "exif-iimcategory-sci": "ሳይንስና ቴክኖዎሎጂ",
+       "exif-iimcategory-soi": "ኅብረተሠባዊ ጉዳይ",
+       "exif-iimcategory-spo": "ስፖርት",
+       "exif-iimcategory-war": "ጦርነት፣ ግጭት ወይም ሁከት",
+       "exif-urgency-high": "ከፍተኛ ($1)"
+}
diff --git a/languages/i18n/exif/an.json b/languages/i18n/exif/an.json
new file mode 100644 (file)
index 0000000..dfea141
--- /dev/null
@@ -0,0 +1,345 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Juanpabl"
+               ]
+       },
+       "exif-imagewidth": "Amplaria",
+       "exif-imagelength": "Altaria",
+       "exif-bitspersample": "Bits por component",
+       "exif-compression": "Esquema de compresión",
+       "exif-photometricinterpretation": "Composición d'os pixels",
+       "exif-orientation": "Orientación",
+       "exif-samplesperpixel": "Numero de components por píxel",
+       "exif-planarconfiguration": "Ordinación de datos",
+       "exif-ycbcrsubsampling": "Razón de submuestreyo de Y a C",
+       "exif-ycbcrpositioning": "Posición de Y y C",
+       "exif-xresolution": "Resolución horizontal",
+       "exif-yresolution": "Resolución vertical",
+       "exif-stripoffsets": "Localización d'os datos d'a imachen",
+       "exif-rowsperstrip": "Numero de ringleras por faixa",
+       "exif-stripbytecounts": "Bytes por faixa comprimita",
+       "exif-jpeginterchangeformat": "Offset d'o JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bytes de datos JPEG",
+       "exif-whitepoint": "Coordinatas cromaticas d'o punto blanco",
+       "exif-primarychromaticities": "Coordinatas cromaticas d'as colors primarias",
+       "exif-ycbcrcoefficients": "Coeficients d'a matriz de transformación d'o espacio de colors",
+       "exif-referenceblackwhite": "Parella de valuras blanco/negro de referencia",
+       "exif-datetime": "Calendata y hora d'o zaguer cambeo d'o fichero",
+       "exif-imagedescription": "Títol d'a imachen",
+       "exif-make": "Fabriquero d'a maquina",
+       "exif-model": "Modelo de maquina",
+       "exif-software": "Software emplegato",
+       "exif-artist": "Autor",
+       "exif-copyright": "Duenyo d'os dreitos d'autor (copyright)",
+       "exif-exifversion": "Versión Exif",
+       "exif-flashpixversion": "Versión de Flashpix admesa",
+       "exif-colorspace": "Espacio de colors",
+       "exif-componentsconfiguration": "Significación de cada component",
+       "exif-compressedbitsperpixel": "Modo de compresión d'a imachen",
+       "exif-pixelxdimension": "Amplaria d'a imachen",
+       "exif-pixelydimension": "Altaria d'a imachen",
+       "exif-usercomment": "Comentarios de l'usuario",
+       "exif-relatedsoundfile": "Fichero d'audio relacionato",
+       "exif-datetimeoriginal": "Calendata y hora de cheneración d'os datos",
+       "exif-datetimedigitized": "Calendata y hora d'a dichitalización",
+       "exif-subsectime": "Calendata y hora (fraccions de segundo)",
+       "exif-subsectimeoriginal": "Calendata y hora d'a cheneración d'os datos (fraccions de segundo)",
+       "exif-subsectimedigitized": "Calendata y hora d'a dichitalización (fraccions de segundo)",
+       "exif-exposuretime": "Tiempo d'exposición",
+       "exif-exposuretime-format": "$1 seg ($2)",
+       "exif-fnumber": "Numero F",
+       "exif-exposureprogram": "Programa d'exposición",
+       "exif-spectralsensitivity": "Sensibilidat espectral",
+       "exif-isospeedratings": "Sensibilidat ISO",
+       "exif-shutterspeedvalue": "Velocidat de l'obturador APEX",
+       "exif-aperturevalue": "Obredura APEX",
+       "exif-brightnessvalue": "Brilor APEX",
+       "exif-exposurebiasvalue": "Siesco d'exposición",
+       "exif-maxaperturevalue": "Obredura maxima",
+       "exif-subjectdistance": "Distancia a o sucheto",
+       "exif-meteringmode": "Modo de mesura",
+       "exif-lightsource": "Fuent de luz",
+       "exif-flash": "Flash",
+       "exif-focallength": "Longaria d'o lente focal",
+       "exif-subjectarea": "Aria d'o sucheto",
+       "exif-flashenergy": "Enerchía d'o flash",
+       "exif-focalplanexresolution": "Resolución en o plano focal X",
+       "exif-focalplaneyresolution": "Resolución en o plano focal Y",
+       "exif-focalplaneresolutionunit": "Unidatz d'a resolución en o plano focal",
+       "exif-subjectlocation": "Posición d'o sucheto",
+       "exif-exposureindex": "Endice d'exposición",
+       "exif-sensingmethod": "Metodo de sensache",
+       "exif-filesource": "Fuent d'o fichero",
+       "exif-scenetype": "Mena d'escena",
+       "exif-customrendered": "Procesau d'imachen presonalizato",
+       "exif-exposuremode": "Modo d'exposición",
+       "exif-whitebalance": "Balance de blancos",
+       "exif-digitalzoomratio": "Ratio de zoom dichital",
+       "exif-focallengthin35mmfilm": "Longaria focal equivalent a cinta de 35 mm",
+       "exif-scenecapturetype": "Mena de captura d'a escena",
+       "exif-gaincontrol": "Control d'escena",
+       "exif-contrast": "Contraste",
+       "exif-saturation": "Saturación",
+       "exif-sharpness": "Nitideza",
+       "exif-devicesettingdescription": "Descripción d'os achustes d'o dispositivo",
+       "exif-subjectdistancerange": "Rango de distancias a o sucheto",
+       "exif-imageuniqueid": "ID unico d'a imachen",
+       "exif-gpsversionid": "Versión d'as etiquetas de GPS",
+       "exif-gpslatituderef": "Latitut norte/sud",
+       "exif-gpslatitude": "Latitut",
+       "exif-gpslongituderef": "Lonchitut este/ueste",
+       "exif-gpslongitude": "Lonchitut",
+       "exif-gpsaltituderef": "Referencia d'a altitut",
+       "exif-gpsaltitude": "Altitut",
+       "exif-gpstimestamp": "Tiempo GPS (reloch atomico)",
+       "exif-gpssatellites": "Satelites emplegatos en a mida",
+       "exif-gpsstatus": "Estau d'o receptor",
+       "exif-gpsmeasuremode": "Modo de mesura",
+       "exif-gpsdop": "Precisión d'a mida",
+       "exif-gpsspeedref": "Unidatz de velocidat",
+       "exif-gpsspeed": "Velocidat d'o receptor GPS",
+       "exif-gpstrackref": "Referencia d'a endrecera d'o movimiento",
+       "exif-gpstrack": "Endrecera d'o movimiento",
+       "exif-gpsimgdirectionref": "Referencia d'a orientación d'a imachen",
+       "exif-gpsimgdirection": "Orientación d'a imachen",
+       "exif-gpsmapdatum": "Emplegatos datos de mesura cheodesica",
+       "exif-gpsdestlatituderef": "Referencia t'a latitut d'o destino",
+       "exif-gpsdestlatitude": "Latitut d'o destino",
+       "exif-gpsdestlongituderef": "Referencia d'a lonchitut d'o destino",
+       "exif-gpsdestlongitude": "Lonchitut d'o destino",
+       "exif-gpsdestbearingref": "Referencia d'a orientación a o destino",
+       "exif-gpsdestbearing": "Orientación d'o destino",
+       "exif-gpsdestdistanceref": "Referencia d'a distancia a o destino",
+       "exif-gpsdestdistance": "Distancia a o destino",
+       "exif-gpsprocessingmethod": "Nombre d'o metodo de procesamiento GPS",
+       "exif-gpsareainformation": "Nombre d'aria GPS",
+       "exif-gpsdatestamp": "Calendata GPS",
+       "exif-gpsdifferential": "Corrección diferencial de GPS",
+       "exif-jpegfilecomment": "Comentario de fichero JPEG",
+       "exif-keywords": "Parolas clau",
+       "exif-worldregioncreated": "Rechión d'o mundo en a qual se quitó a imachen",
+       "exif-countrycreated": "País en o qual se quitó a imachen",
+       "exif-countrycodecreated": "Codigo d'o país en o qual a imachen se quitó",
+       "exif-provinceorstatecreated": "Provincia u estau en o qual a imachen se quitó",
+       "exif-citycreated": "Ciudat en a qual se quitó a imachen",
+       "exif-sublocationcreated": "Rechión d'a ciudat en a qual a foto se quitó",
+       "exif-worldregiondest": "Rechión d'o mundo amostrada",
+       "exif-countrydest": "País amostrau",
+       "exif-countrycodedest": "Codigo de país amostrau",
+       "exif-provinceorstatedest": "Provincia u estau amostrau",
+       "exif-citydest": "Ciudat amostrada",
+       "exif-sublocationdest": "Rechión d'a ciudat amostrada",
+       "exif-objectname": "Titol breu",
+       "exif-specialinstructions": "Instruccions especials",
+       "exif-headline": "Encabezau",
+       "exif-credit": "Credito/proveyedor",
+       "exif-source": "Fuent",
+       "exif-editstatus": "Status editorial d'a imachen",
+       "exif-urgency": "Urchencia",
+       "exif-fixtureidentifier": "Nombre de l'elemento freqüent",
+       "exif-locationdest": "Ubicación amostrada",
+       "exif-locationdestcode": "Codigo d'a ubicación amostrada",
+       "exif-objectcycle": "Hora d'o día ta la quala ye destinau iste fichero",
+       "exif-contact": "Información de contacto",
+       "exif-writer": "Escritor",
+       "exif-languagecode": "Idioma",
+       "exif-iimversion": "Versión IIM",
+       "exif-iimcategory": "Categoría",
+       "exif-iimsupplementalcategory": "Categorías suplementarias",
+       "exif-datetimeexpires": "No emplegar dimpués de",
+       "exif-datetimereleased": "Lanzau o",
+       "exif-originaltransmissionref": "Codigo d'ubicación de transmisión orichinal",
+       "exif-identifier": "Identificador",
+       "exif-lens": "Lente emplegada",
+       "exif-serialnumber": "Numero de serie d'a camera",
+       "exif-cameraownername": "Propietario d'a camera",
+       "exif-label": "Etiqueta",
+       "exif-datetimemetadata": "Calendata en a quala se modificó por zaguera vez os metadatos",
+       "exif-nickname": "Nombre informal d'a imachen",
+       "exif-rating": "Valoración (sobre 5)",
+       "exif-rightscertificate": "Certificau de chestión de dreitos",
+       "exif-copyrighted": "Status de copyright",
+       "exif-copyrightowner": "Titular d'o copyright",
+       "exif-usageterms": "Termins d'uso",
+       "exif-webstatement": "Declaración de dreitos d'autor en linia",
+       "exif-originaldocumentid": "ID unico d'o documento orichinal",
+       "exif-licenseurl": "URL ta la licencia de copyright",
+       "exif-morepermissionsurl": "Información de licencia alternativa",
+       "exif-attributionurl": "Quan reutilice iste treballo, por favor enlace ta",
+       "exif-preferredattributionname": "En tornar a fer servir iste treballo, por favor, dé credito",
+       "exif-pngfilecomment": "Comentario de fichero PNG",
+       "exif-disclaimer": "Aviso legal",
+       "exif-contentwarning": "Alvertencia de conteniu",
+       "exif-giffilecomment": "Comentario de fichero GIF",
+       "exif-intellectualgenre": "Tipo d'elemento",
+       "exif-subjectnewscode": "Codigo d'afer",
+       "exif-scenecode": "Codigo de scena IPTC",
+       "exif-event": "Evento representau",
+       "exif-organisationinimage": "Organización representada",
+       "exif-personinimage": "Persona representada",
+       "exif-originalimageheight": "Altaria d'a imachen antes d'estar retallada",
+       "exif-originalimagewidth": "Amplaria d'a imachen antes d'estar retallada",
+       "exif-compression-1": "Sin de compresión",
+       "exif-compression-2": "CCITT Group 3 1-Dimensional Modified Huffman run length encoding",
+       "exif-compression-3": "Codificación de fax CCITT grupo 3",
+       "exif-compression-4": "Codificación de fax CCITT grupo 4",
+       "exif-copyrighted-true": "con Copyright",
+       "exif-copyrighted-false": "Dominio publico",
+       "exif-unknowndate": "Calendata esconoixita",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Contornata horizontalment",
+       "exif-orientation-3": "Chirata 180º",
+       "exif-orientation-4": "Contornata verticalment",
+       "exif-orientation-5": "Chirata 90° en contra d'as agullas d'o reloch y contornata verticalment",
+       "exif-orientation-6": "Chirata 90° en contra d'o sentiu d'as agullas d'o reloch",
+       "exif-orientation-7": "Chirata 90° como as agullas d'o reloch y contornata verticalment",
+       "exif-orientation-8": "Chirata 90° en o sentiu d'as agullas d'o reloch",
+       "exif-planarconfiguration-1": "formato de paquetz de píxels",
+       "exif-planarconfiguration-2": "formato plano",
+       "exif-colorspace-65535": "Sin calibrar",
+       "exif-componentsconfiguration-0": "no existe",
+       "exif-exposureprogram-0": "No definito",
+       "exif-exposureprogram-1": "Manual",
+       "exif-exposureprogram-2": "Modo normal",
+       "exif-exposureprogram-3": "Prioridat a l'obredura",
+       "exif-exposureprogram-4": "Prioridat a l'obturador",
+       "exif-exposureprogram-5": "Modo creyativo (con prioridat a la fondura de campo)",
+       "exif-exposureprogram-6": "Modo acción (alta velocidat de l'obturador)",
+       "exif-exposureprogram-7": "Modo retrato (ta primers planos con o fundo desenfocato)",
+       "exif-exposureprogram-8": "Modo paisache (ta fotos de paisaches con o fundo enfocato)",
+       "exif-subjectdistance-value": "$1 metros",
+       "exif-meteringmode-0": "Esconoixito",
+       "exif-meteringmode-1": "Meya",
+       "exif-meteringmode-2": "Meya aponderata a o centro",
+       "exif-meteringmode-3": "Puntual",
+       "exif-meteringmode-4": "Multipunto",
+       "exif-meteringmode-5": "Patrón",
+       "exif-meteringmode-6": "Parcial",
+       "exif-meteringmode-255": "Atros",
+       "exif-lightsource-0": "Esconoixito",
+       "exif-lightsource-1": "Luz de día",
+       "exif-lightsource-2": "Fluorescent",
+       "exif-lightsource-3": "Tungsteno (luz incandescent)",
+       "exif-lightsource-4": "Flash",
+       "exif-lightsource-9": "Buen orache",
+       "exif-lightsource-10": "Orache nublo",
+       "exif-lightsource-11": "Uembra",
+       "exif-lightsource-12": "Fluorescente de luz de día (D 5700 – 7100K)",
+       "exif-lightsource-13": "Fluorescent blanco de día (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fluorescent blanco fredo (W 3900 – 4500K)",
+       "exif-lightsource-15": "Fluorescent blanco (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Luz estándar A",
+       "exif-lightsource-18": "Luz estándar B",
+       "exif-lightsource-19": "Luz estándar C",
+       "exif-lightsource-24": "Bombeta de tungsteno d'estudeo ISO",
+       "exif-lightsource-255": "Atra fuent de luz",
+       "exif-flash-fired-0": "No se disparó o flash",
+       "exif-flash-fired-1": "Flash disparato",
+       "exif-flash-return-0": "no bi ha función de detección d'o retorno d'a luz estroboscopica",
+       "exif-flash-return-2": "no se detectó retorno de luz estroboscopica",
+       "exif-flash-return-3": "luz estroboscopica detectata",
+       "exif-flash-mode-1": "disparo de flash forzato",
+       "exif-flash-mode-2": "supresión de flash forzato",
+       "exif-flash-mode-3": "modo automatico",
+       "exif-flash-function-1": "Modo sin de flash",
+       "exif-flash-redeye-1": "modo de reducción de uellos royos",
+       "exif-focalplaneresolutionunit-2": "pulzadas",
+       "exif-sensingmethod-1": "No definito",
+       "exif-sensingmethod-2": "Sensor d'aria de color d'un chip",
+       "exif-sensingmethod-3": "Sensor d'aria de color de dos chips",
+       "exif-sensingmethod-4": "Sensor d'aria de color de tres chips",
+       "exif-sensingmethod-5": "Sensor d'aria de color seqüencial",
+       "exif-sensingmethod-7": "Sensor trilinial",
+       "exif-sensingmethod-8": "Sensor linial de color seqüencial",
+       "exif-filesource-3": "Camera dichital",
+       "exif-scenetype-1": "Una imachen fotiata dreitament",
+       "exif-customrendered-0": "Proceso normal",
+       "exif-customrendered-1": "Proceso presonalizato",
+       "exif-exposuremode-0": "Exposición automatica",
+       "exif-exposuremode-1": "Exposición manual",
+       "exif-exposuremode-2": "Bracketting automatico",
+       "exif-whitebalance-0": "Balance automatico de blancos",
+       "exif-whitebalance-1": "Balance manual de blancos",
+       "exif-scenecapturetype-0": "Estándar",
+       "exif-scenecapturetype-1": "Anvista (horizontal)",
+       "exif-scenecapturetype-2": "Retrato (vertical)",
+       "exif-scenecapturetype-3": "Escena de nueits",
+       "exif-gaincontrol-0": "Garra",
+       "exif-gaincontrol-1": "Ganancia baixa ta valuras altas (low gain up)",
+       "exif-gaincontrol-2": "Ganancia alta ta valuras altas (high gain up)",
+       "exif-gaincontrol-3": "Ganancia baixa ta valuras baixas (low gain down)",
+       "exif-gaincontrol-4": "Ganancia alta ta baluras baixas (high gain down)",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Suau",
+       "exif-contrast-2": "Fuerte",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Baixa saturación",
+       "exif-saturation-2": "Alta saturación",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Suau",
+       "exif-sharpness-2": "Fuerte",
+       "exif-subjectdistancerange-0": "Esconoixita",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Vista amanada",
+       "exif-subjectdistancerange-3": "Vista leixana",
+       "exif-gpslatitude-n": "Latitut norte",
+       "exif-gpslatitude-s": "Latitut sud",
+       "exif-gpslongitude-e": "Lonchitut este",
+       "exif-gpslongitude-w": "Lonchitut ueste",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metro|metros}} sobre o ran d'a mar",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metro|metros}} baixo o ran d'a mar",
+       "exif-gpsstatus-a": "S'está fendo a mida",
+       "exif-gpsstatus-v": "Interoperabilitat de mesura",
+       "exif-gpsmeasuremode-2": "Mesura bidimensional",
+       "exif-gpsmeasuremode-3": "Mesura tridimensional",
+       "exif-gpsspeed-k": "Kilometros por hora",
+       "exif-gpsspeed-m": "Millas por hora",
+       "exif-gpsspeed-n": "Nugos",
+       "exif-gpsdestdistance-k": "Kilometros",
+       "exif-gpsdestdistance-m": "Millas",
+       "exif-gpsdestdistance-n": "Millas nauticas",
+       "exif-gpsdop-excellent": "Excelent ($1)",
+       "exif-gpsdop-good": "Bueno ( $1 )",
+       "exif-gpsdop-moderate": "Moderau ($1)",
+       "exif-gpsdop-fair": "Pasable ($1)",
+       "exif-gpsdop-poor": "Pobre ($1)",
+       "exif-objectcycle-a": "Nomás de maitins",
+       "exif-objectcycle-p": "Nomás de tardes",
+       "exif-objectcycle-b": "De maitins y de tardes",
+       "exif-gpsdirection-t": "Endrecera reyal",
+       "exif-gpsdirection-m": "Endrecera magnetica",
+       "exif-ycbcrpositioning-1": "Centrau",
+       "exif-ycbcrpositioning-2": "Co-ubicaus",
+       "exif-dc-contributor": "Colaboradors",
+       "exif-dc-coverage": "Ambito espacial u temporal d'o fichero audiovisual",
+       "exif-dc-date": "Calendata(s)",
+       "exif-dc-publisher": "Editorial",
+       "exif-dc-relation": "Fichers audiovisuals relacionaus",
+       "exif-dc-rights": "Dreitos",
+       "exif-dc-source": "Fiches audiovisuals d'orichen",
+       "exif-dc-type": "Tipo de fichero audiovisual",
+       "exif-rating-rejected": "Refusau",
+       "exif-isospeedratings-overflow": "Mas de 65535",
+       "exif-iimcategory-ace": "Arte, cultura y entretenimiento",
+       "exif-iimcategory-clj": "Crimen y lei",
+       "exif-iimcategory-dis": "Esferras y accidents",
+       "exif-iimcategory-fin": "Economía y negocios",
+       "exif-iimcategory-edu": "Educación",
+       "exif-iimcategory-evn": "Medio ambient",
+       "exif-iimcategory-hth": "Salut",
+       "exif-iimcategory-hum": "Intrés humano",
+       "exif-iimcategory-lab": "Treballo",
+       "exif-iimcategory-lif": "Estilo de vida y ocio",
+       "exif-iimcategory-pol": "Politica",
+       "exif-iimcategory-rel": "Relichión y creyencias",
+       "exif-iimcategory-sci": "Sciencia y tecnolochía",
+       "exif-iimcategory-soi": "Qüestions socials",
+       "exif-iimcategory-spo": "Esportes",
+       "exif-iimcategory-war": "Guerra, conflictos y disturbios",
+       "exif-iimcategory-wea": "Clima",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Baixo ($1)",
+       "exif-urgency-high": "Alto ($1)",
+       "exif-urgency-other": "Prioridat definida por l'usuario ($1)"
+}
diff --git a/languages/i18n/exif/ang.json b/languages/i18n/exif/ang.json
new file mode 100644 (file)
index 0000000..268717b
--- /dev/null
@@ -0,0 +1,62 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Espreon",
+                       "Gott wisst",
+                       "Wōdenhelm"
+               ]
+       },
+       "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-whitebalance": "Hwītes blēos emnett",
+       "exif-sharpness": "Scearpnes",
+       "exif-gpslatituderef": "Norþ oþþe sūþ brǣdu",
+       "exif-gpslatitude": "Brǣdu",
+       "exif-gpslongituderef": "Ēast oþþe west lengu",
+       "exif-gpslongitude": "Lengu",
+       "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",
+       "exif-meteringmode-255": "Ōðer",
+       "exif-lightsource-0": "Uncūþ",
+       "exif-lightsource-1": "Dægeslēoht",
+       "exif-flash-mode-3": "selffremmende mōd",
+       "exif-focalplaneresolutionunit-2": "yncas",
+       "exif-exposuremode-1": "Handlic blice",
+       "exif-whitebalance-0": "Selffremmende hwītefnett",
+       "exif-scenecapturetype-1": "Landsceap",
+       "exif-gaincontrol-0": "Nān",
+       "exif-contrast-1": "Sōfte",
+       "exif-contrast-2": "Heard",
+       "exif-sharpness-1": "Sōfte",
+       "exif-sharpness-2": "Heard",
+       "exif-subjectdistancerange-2": "Nēah hāwung",
+       "exif-subjectdistancerange-3": "Feorr hāwung",
+       "exif-gpslatitude-n": "Norþ brǣdu",
+       "exif-gpslatitude-s": "Sūþ brǣdu",
+       "exif-gpslongitude-e": "Ēast lengu",
+       "exif-gpslongitude-w": "West lengu",
+       "exif-gpsdirection-t": "Sōþ rihtung"
+}
diff --git a/languages/i18n/exif/ar.json b/languages/i18n/exif/ar.json
new file mode 100644 (file)
index 0000000..8d1b1e9
--- /dev/null
@@ -0,0 +1,390 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Abanima",
+                       "BAB ZAA",
+                       "Ciphers",
+                       "Houcinee1",
+                       "Meno25",
+                       "Mido",
+                       "OsamaK",
+                       "Tarawneh",
+                       "أحمد",
+                       "ديفيد",
+                       "محمد أحمد عبد الفتاح"
+               ]
+       },
+       "exif-imagewidth": "العرض",
+       "exif-imagelength": "الارتفاع",
+       "exif-bitspersample": "بت لكل مكونة",
+       "exif-compression": "نظام الضغط",
+       "exif-photometricinterpretation": "تركيب البكسل",
+       "exif-orientation": "التوجيه",
+       "exif-samplesperpixel": "عدد المكونات",
+       "exif-planarconfiguration": "ترتيب البيانات",
+       "exif-ycbcrsubsampling": "نسبة العينة الفرعية لY إلى C",
+       "exif-ycbcrpositioning": "وضع Y و C",
+       "exif-xresolution": "الدقة الأفقية",
+       "exif-yresolution": "الدقة الرأسية",
+       "exif-stripoffsets": "موقع بيانات الصورة",
+       "exif-rowsperstrip": "عدد الصفوف لكل شريحة",
+       "exif-stripbytecounts": "بايت لكل شريحة مضغوطة",
+       "exif-jpeginterchangeformat": "الحد ل JPEG SOI",
+       "exif-jpeginterchangeformatlength": "بايت من بيانات JPEG",
+       "exif-whitepoint": "ألوان النقطة البيضاء",
+       "exif-primarychromaticities": "ألوان الأساسيات",
+       "exif-ycbcrcoefficients": "معاملات مصفوفة تحويل فضاء اللون",
+       "exif-referenceblackwhite": "زوج من قيم المرجع السوداء والبيضاء",
+       "exif-datetime": "تاريخ ووقت تغيير الملف",
+       "exif-imagedescription": "عنوان الصورة",
+       "exif-make": "صانع الكاميرا",
+       "exif-model": "طراز الكاميرا",
+       "exif-software": "البرمجيات المستخدمة",
+       "exif-artist": "المؤلف",
+       "exif-copyright": "مالك الحقوق",
+       "exif-exifversion": "نسخة Exif",
+       "exif-flashpixversion": "نسخة Flashpix المدعومة",
+       "exif-colorspace": "الفضاء اللوني",
+       "exif-componentsconfiguration": "معنى كل مكونة",
+       "exif-compressedbitsperpixel": "طور ضغط الصورة",
+       "exif-pixelxdimension": "عرض الصورة",
+       "exif-pixelydimension": "ارتفاع الصورة",
+       "exif-usercomment": "تعليقات المستخدم",
+       "exif-relatedsoundfile": "ملف صوتي مرتبط",
+       "exif-datetimeoriginal": "تاريخ ووقت توليد البيانات",
+       "exif-datetimedigitized": "تاريخ ووقت التحويل الرقمي",
+       "exif-subsectime": "وقت تاريخ ثواني فرعية",
+       "exif-subsectimeoriginal": "وقت تاريخ أصلي ثواني فرعية",
+       "exif-subsectimedigitized": "وقت تاريخ رقمي ثواني فرعية",
+       "exif-exposuretime": "زمن التعرض",
+       "exif-exposuretime-format": "$1 ثانية ($2)",
+       "exif-fnumber": "العدد البؤري",
+       "exif-fnumber-format": "البعد البؤري/$1",
+       "exif-exposureprogram": "برنامج التعرض",
+       "exif-spectralsensitivity": "الحساسية الطيفية",
+       "exif-isospeedratings": "تقييم سرعة أيزو",
+       "exif-shutterspeedvalue": "سرعة الغالق APEX",
+       "exif-aperturevalue": "فتحة الغالق APEX",
+       "exif-brightnessvalue": "سطوع APEX",
+       "exif-exposurebiasvalue": "تعويض التعرض",
+       "exif-maxaperturevalue": "أقصى غالق أرضي",
+       "exif-subjectdistance": "مسافة الجسم",
+       "exif-meteringmode": "طور القياس بالمتر",
+       "exif-lightsource": "مصدر الضوء",
+       "exif-flash": "فلاش",
+       "exif-focallength": "البعد البؤري للعدسة",
+       "exif-focallength-format": "$1 ملم",
+       "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": "توازن الأبيض",
+       "exif-digitalzoomratio": "نسبة التقريب الرقمية",
+       "exif-focallengthin35mmfilm": "البعد البؤري في فيلم 35 مم",
+       "exif-scenecapturetype": "نوع إمساك المشهد",
+       "exif-gaincontrol": "التحكم بالمشهد",
+       "exif-contrast": "التعارض",
+       "exif-saturation": "التشبع",
+       "exif-sharpness": "الحدة",
+       "exif-devicesettingdescription": "وصف إعدادات الجهاز",
+       "exif-subjectdistancerange": "نطاق مسافة الجسم",
+       "exif-imageuniqueid": "رقم الصورة الفريد",
+       "exif-gpsversionid": "نسخة وسم GPS",
+       "exif-gpslatituderef": "دائرة العرض الشمالية أو الجنوبية",
+       "exif-gpslatitude": "دائرة العرض",
+       "exif-gpslongituderef": "خط الطول الشرقي أو الغربي",
+       "exif-gpslongitude": "خط الطول",
+       "exif-gpsaltituderef": "مرجع الارتفاع",
+       "exif-gpsaltitude": "الارتفاع",
+       "exif-gpstimestamp": "وقت GPS (ساعة ذرية)",
+       "exif-gpssatellites": "الأقمار الصناعية المستخدمة للقياس",
+       "exif-gpsstatus": "حالة جهاز الاستقبال",
+       "exif-gpsmeasuremode": "طريقة القياس",
+       "exif-gpsdop": "دقة القياس",
+       "exif-gpsspeedref": "وحدة السرعة",
+       "exif-gpsspeed": "سرعة مستقبل GPS",
+       "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": "اسم مساحة GPS",
+       "exif-gpsdatestamp": "تاريخ GPS",
+       "exif-gpsdifferential": "تصحيح GPS التفاضلي",
+       "exif-jpegfilecomment": "تعليق ملف JPEG",
+       "exif-keywords": "الكلمات المفتاحية",
+       "exif-worldregioncreated": " المنطقة التي التقطت الصورة فيها",
+       "exif-countrycreated": "الدولة التي التقطت الصورة فيها",
+       "exif-countrycodecreated": "رمز البلد التي أخذت الصورة فيه",
+       "exif-provinceorstatecreated": "المقاطعة أو الدولة اين تم التقاط هذه الصورة",
+       "exif-citycreated": " المدينة التي التقطت الصورة فيها",
+       "exif-sublocationcreated": "موقع من المدينة التي تم التقاط هذه الصورة فيها",
+       "exif-worldregiondest": "مناطق العالم المعروضة",
+       "exif-countrydest": "الدولة المصورة",
+       "exif-countrycodedest": "رمز الدولة المصورة",
+       "exif-provinceorstatedest": "المقاطعة أو الولاية المصورة",
+       "exif-citydest": "المدينة المصورة",
+       "exif-sublocationdest": "موقع من المدينة المعروضة",
+       "exif-objectname": "عنوان قصير",
+       "exif-specialinstructions": "تعليمات خاصة",
+       "exif-headline": "عنوان",
+       "exif-credit": "الرصيد/المزود",
+       "exif-source": "المصدر",
+       "exif-editstatus": "الحالة التحريرية للصورة",
+       "exif-urgency": "عاجل",
+       "exif-fixtureidentifier": "اسم العنصر",
+       "exif-locationdest": "اسم الموقع مصورا",
+       "exif-locationdestcode": "رمز الموقع مصورا",
+       "exif-objectcycle": "الوقت من اليوم المتعلق بوسائل الإعلام",
+       "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": "آخر تعديل للبيانات التعريفية",
+       "exif-nickname": "الاسم غير الرسمي للصورة",
+       "exif-rating": "التقييم (من 5)",
+       "exif-rightscertificate": "شهادة إدارة الحقوق",
+       "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-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "غير مضغوط",
+       "exif-compression-2": "CCITT المجموعة 3 -1 تعديل طول تشغيل ترميز هوفمان البعدي",
+       "exif-compression-3": "ترميز فاكس المجموعة 3 CCITT",
+       "exif-compression-4": "ترميز فاكس المجموعة 4 CCITT",
+       "exif-compression-5": "إل زد دبليو",
+       "exif-compression-6": "JPEG (قديم)",
+       "exif-compression-7": "جيه بي إي جي",
+       "exif-compression-8": "Deflate (أدوبي)",
+       "exif-compression-32773": "PackBits (ماكنتوش RLE)",
+       "exif-compression-32946": "Deflate (بي كيه زيب)",
+       "exif-compression-34712": "جيه بي إي جي2000",
+       "exif-copyrighted-true": "محفوظ الحقوق",
+       "exif-copyrighted-false": "حالة حقوق النشر غير مُعرّفة",
+       "exif-photometricinterpretation-0": "أسود وأبيض (الأبيض هو 0)",
+       "exif-photometricinterpretation-1": "أسود وأبيض (الأسود 0)",
+       "exif-photometricinterpretation-2": "آر جي بي",
+       "exif-photometricinterpretation-3": "لوح الألوان",
+       "exif-photometricinterpretation-4": "قناع الشفافية",
+       "exif-photometricinterpretation-5": "مفصول (ربما CMYK)",
+       "exif-photometricinterpretation-6": "واي سب سر",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (تكويد ICC)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (تكويد ITU)",
+       "exif-photometricinterpretation-32803": "مصفوفة فلترة الألوان",
+       "exif-photometricinterpretation-34892": "خام خطي",
+       "exif-unknowndate": "تاريخ غير معروف",
+       "exif-orientation-1": "عادي",
+       "exif-orientation-2": "مقلوبة أفقياً",
+       "exif-orientation-3": "مدورة 180°",
+       "exif-orientation-4": "مقلوبة رأسياً",
+       "exif-orientation-5": "مدورة 90° عكس عقارب الساعة ومقلوبة رأسياً",
+       "exif-orientation-6": "مدورة 90° عكس عقارب الساعة",
+       "exif-orientation-7": "مدورة 90° في اتجاه عقارب الساعة ومقلوبة رأسياً",
+       "exif-orientation-8": "مدورة 90° في اتجاه عقارب الساعة",
+       "exif-planarconfiguration-1": "صيغة مكتنزة",
+       "exif-planarconfiguration-2": "صيغة مستوية",
+       "exif-xyresolution-i": "$1 نقطة لكل بوصة",
+       "exif-xyresolution-c": "$1 دي بي سي",
+       "exif-colorspace-1": "إس آر جي بي",
+       "exif-colorspace-65535": "غير معاير",
+       "exif-componentsconfiguration-0": "غير موجود",
+       "exif-componentsconfiguration-1": "واي",
+       "exif-componentsconfiguration-2": "سب",
+       "exif-componentsconfiguration-3": "سر",
+       "exif-componentsconfiguration-4": "آر",
+       "exif-componentsconfiguration-5": "جي",
+       "exif-componentsconfiguration-6": "بي",
+       "exif-exposureprogram-0": "غير معرف",
+       "exif-exposureprogram-1": "يدوي",
+       "exif-exposureprogram-2": "برنامج عادي",
+       "exif-exposureprogram-3": "أولوية الفتحة",
+       "exif-exposureprogram-4": "أولوية المغلاق",
+       "exif-exposureprogram-5": "برنامج خلاق (تحيز لصالح عمق الحقل)",
+       "exif-exposureprogram-6": "برنامج الفعل (تحيز لصالح سرعة المغلاق)",
+       "exif-exposureprogram-7": "أسلوب البورتريه (تصوير من قريب مع تغييم الخلفية)",
+       "exif-exposureprogram-8": "أسلوب المنظر الطبيعي (لصور المناظر الطبيعية مع الخلفية في البؤرة)",
+       "exif-subjectdistance-value": "$1 متر",
+       "exif-meteringmode-0": "غير معروف",
+       "exif-meteringmode-1": "متوسط",
+       "exif-meteringmode-2": "متوسط موزون بالمركز",
+       "exif-meteringmode-3": "بقعة",
+       "exif-meteringmode-4": "متعدد البقع",
+       "exif-meteringmode-5": "نمط",
+       "exif-meteringmode-6": "جزئي",
+       "exif-meteringmode-255": "غير ذلك",
+       "exif-lightsource-0": "غير معروف",
+       "exif-lightsource-1": "ضوء النهار",
+       "exif-lightsource-2": "فلورسنت",
+       "exif-lightsource-3": "تنجستين (ضوء مشع)",
+       "exif-lightsource-4": "فلاش",
+       "exif-lightsource-9": "جو صحو",
+       "exif-lightsource-10": "جو ملبد بالغيوم",
+       "exif-lightsource-11": "ظل",
+       "exif-lightsource-12": "فلورسنت ضوء النهار (D 5700 – 7100K)",
+       "exif-lightsource-13": "فلورسنت نهار أبيض (N 4600 – 5400K)",
+       "exif-lightsource-14": "فلورسنت أبيض هادئ (W 3900 – 4500K)",
+       "exif-lightsource-15": "فلورسنت أبيض (WW 3200 – 3700K)",
+       "exif-lightsource-17": "ضوء قياسي A",
+       "exif-lightsource-18": "ضوء قياسي B",
+       "exif-lightsource-19": "ضوء قياسي C",
+       "exif-lightsource-20": "دي55",
+       "exif-lightsource-21": "دي65",
+       "exif-lightsource-22": "دي75",
+       "exif-lightsource-23": "دي50",
+       "exif-lightsource-24": "تنجستين ستوديو أيزو",
+       "exif-lightsource-255": "مصدر ضوء آخر",
+       "exif-flash-fired-0": "الفلاش لم يبدأ",
+       "exif-flash-fired-1": "الفلاش بدأ",
+       "exif-flash-return-0": "لا دالة كشف رجوع وميض",
+       "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-sensingmethod-7": "مستشعر خطي ثلاثي",
+       "exif-sensingmethod-8": "مستشعر لون خطي متتابع",
+       "exif-filesource-3": "كاميرا رقمية",
+       "exif-scenetype-1": "صورة ملتقطة بشكل مباشر",
+       "exif-customrendered-0": "عملية عادية",
+       "exif-customrendered-1": "عملية حسب الطلب",
+       "exif-exposuremode-0": "تعرض تلقائي",
+       "exif-exposuremode-1": "تعرض يدوي",
+       "exif-exposuremode-2": "سلسلة تلقائية",
+       "exif-whitebalance-0": "توازن الأبيض تلقائي",
+       "exif-whitebalance-1": "توازن الأبيض يدوي",
+       "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-saturation-0": "عادي",
+       "exif-saturation-1": "إشباع منخفض",
+       "exif-saturation-2": "إشباع مرتفع",
+       "exif-sharpness-0": "عادي",
+       "exif-sharpness-1": "ناعم",
+       "exif-sharpness-2": "قاسي",
+       "exif-subjectdistancerange-0": "غير معروف",
+       "exif-subjectdistancerange-1": "ماكرو",
+       "exif-subjectdistancerange-2": "صورة من قريب",
+       "exif-subjectdistancerange-3": "صورة من بعيد",
+       "exif-gpslatitude-n": "دائرة العرض الشمالية",
+       "exif-gpslatitude-s": "دائرة العرض الجنوبية",
+       "exif-gpslongitude-e": "خط الطول الشرقي",
+       "exif-gpslongitude-w": "خط الطول الغربي",
+       "exif-gpsaltitude-above-sealevel": "{{PLURAL:$1||متر|متران|$1 أمتار|$1 مترًا|$1 متر}} فوق سطح البحر",
+       "exif-gpsaltitude-below-sealevel": "{{PLURAL:$1||متر|متران|$1 أمتار|$1 مترًا|$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-gpsdestdistance-m": "ميل",
+       "exif-gpsdestdistance-n": "ميل بحري",
+       "exif-gpsdop-excellent": "ممتاز ($1)",
+       "exif-gpsdop-good": "جيد ($1)",
+       "exif-gpsdop-moderate": "متوسط ($1)",
+       "exif-gpsdop-fair": "مقبول ($1)",
+       "exif-gpsdop-poor": "ضعيف ($1)",
+       "exif-objectcycle-a": "صباحا فقط",
+       "exif-objectcycle-p": "مساء فقط",
+       "exif-objectcycle-b": "صباحا ومساء",
+       "exif-gpsdirection-t": "الاتجاه الحقيقي",
+       "exif-gpsdirection-m": "الاتجاه المغناطيسي",
+       "exif-ycbcrpositioning-1": "توسيط",
+       "exif-ycbcrpositioning-2": "مذكورة في أكثر من موقع",
+       "exif-dc-contributor": "المساهمون",
+       "exif-dc-coverage": "النطاق المكاني أو الزماني لوسائل الإعلام",
+       "exif-dc-date": "التاريخ (التواريخ)",
+       "exif-dc-publisher": "الناشر",
+       "exif-dc-relation": "وسائط متعلقة",
+       "exif-dc-rights": "الحقوق",
+       "exif-dc-source": "مصدر الوسائط",
+       "exif-dc-type": "نوع  الوسيط",
+       "exif-rating-rejected": "مرفوض",
+       "exif-isospeedratings-overflow": "أكبر من 65535",
+       "exif-iimcategory-ace": "فنون وثقافة وترفيه",
+       "exif-iimcategory-clj": "جريمة وقانون",
+       "exif-iimcategory-dis": "كوارث وحوادث",
+       "exif-iimcategory-fin": "اقتصاد وتجارة",
+       "exif-iimcategory-edu": "تعليم",
+       "exif-iimcategory-evn": "بيئة",
+       "exif-iimcategory-hth": "صحة",
+       "exif-iimcategory-hum": "اهتمام البشرية",
+       "exif-iimcategory-lab": "عمل",
+       "exif-iimcategory-lif": "أسلوب الحياة وأوقات الفراغ",
+       "exif-iimcategory-pol": "سياسة",
+       "exif-iimcategory-rel": "دين ومعتقدات",
+       "exif-iimcategory-sci": "علم وتقنية",
+       "exif-iimcategory-soi": "قضايا اجتماعية",
+       "exif-iimcategory-spo": "رياضة",
+       "exif-iimcategory-war": "حروب وصراعات واضطرابات",
+       "exif-iimcategory-wea": "الطقس",
+       "exif-urgency-normal": "عادي ($1)",
+       "exif-urgency-low": "منخفض ( $1 )",
+       "exif-urgency-high": "عالي ( $1 )",
+       "exif-urgency-other": "الأولوية محددة من قبل المستخدم ($1)"
+}
diff --git a/languages/i18n/exif/ary.json b/languages/i18n/exif/ary.json
new file mode 100644 (file)
index 0000000..779ed7b
--- /dev/null
@@ -0,0 +1,246 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Anass Sedrati",
+                       "Zanatos",
+                       "زكريا"
+               ]
+       },
+       "exif-imagewidth": "laard",
+       "exif-imagelength": "lirtifaa",
+       "exif-bitspersample": "bit lkol mokawwin",
+       "exif-compression": "nidam daght",
+       "exif-photometricinterpretation": "tarkib lpixel",
+       "exif-orientation": "tawjih",
+       "exif-samplesperpixel": "adad lmokawwinat",
+       "exif-planarconfiguration": "tartib lbayanat",
+       "exif-ycbcrsubsampling": "nisbat laayina dyal  Y l C",
+       "exif-ycbcrpositioning": "lwada dyal Y o C",
+       "exif-xresolution": "ddiqa lofoqia",
+       "exif-yresolution": "diqa raissia",
+       "exif-stripoffsets": "mawqiaa bayanat sora",
+       "exif-rowsperstrip": "adad sofof lkol chariha",
+       "exif-stripbytecounts": "byte lkol chariha mdghota",
+       "exif-jpeginterchangeformat": "lhad l JPEG SOI",
+       "exif-jpeginterchangeformatlength": "bytes dyal JPEG",
+       "exif-whitepoint": "alwan noqta lbida",
+       "exif-primarychromaticities": "alwan assasia",
+       "exif-ycbcrcoefficients": "moamalat masfofa tahwil farigh lon",
+       "exif-referenceblackwhite": "zoj mn qiyam lmarjia lkhl olbid",
+       "exif-datetime": "tarikh owqt taghyir",
+       "exif-imagedescription": "onwan sora",
+       "exif-make": "manaa alat taswir",
+       "exif-model": "nawa alat taswir",
+       "exif-software": "logieciels li mstkhdmin",
+       "exif-artist": "lmoallif",
+       "exif-copyright": "malik lhoqoq",
+       "exif-exifversion": "noskha Exif",
+       "exif-flashpixversion": "noskha flash pix madoma",
+       "exif-colorspace": "farq lon",
+       "exif-componentsconfiguration": "maana kol mokawwin",
+       "exif-compressedbitsperpixel": "tor daght sora",
+       "exif-pixelxdimension": "ard sora sahih",
+       "exif-pixelydimension": "tol sora sahih",
+       "exif-usercomment": "taaliqat lmostakhdim",
+       "exif-relatedsoundfile": "milf sawti mortabit",
+       "exif-datetimeoriginal": "tarikh o wqt tawlid lbayanat",
+       "exif-datetimedigitized": "tarikh tahwil raqmi",
+       "exif-subsectime": "tarikh tawani fariya",
+       "exif-subsectimeoriginal": "waqt tarikh asli tawani fariya",
+       "exif-subsectimedigitized": "waqt tarikh raqmi tawani fariya",
+       "exif-exposuretime": "zaman taarrod",
+       "exif-exposuretime-format": "$1 taniya ($2)",
+       "exif-fnumber": "ladad lboaari",
+       "exif-exposureprogram": "barnamaj taarod",
+       "exif-spectralsensitivity": "ḫasasiya tayfiyya",
+       "exif-isospeedratings": "ṫqyim s-sorĝa ISO",
+       "exif-shutterspeedvalue": "s-soṛĝa dl-mġlaq d-APEX",
+       "exif-aperturevalue": "fṫḫa d-APEX",
+       "exif-brightnessvalue": "brillance APEX",
+       "exif-exposurebiasvalue": "ṫĝwiḍ ṫ-ṫaĝṛṛoḍ d-APEX",
+       "exif-subjectdistance": "masafṫ s-sujé",
+       "exif-meteringmode": "l-moḍ dl-qyas",
+       "exif-lightsource": "mṣḍr ḍ-ḍo",
+       "exif-flash": "flaċ",
+       "exif-focallength": "t-tol l-bo'ri dl-ĝadasa",
+       "exif-subjectarea": "misaḫṫ s-sujé",
+       "exif-flashenergy": "t-taqa dl-flaċ",
+       "exif-filesource": "ṃṣḍṛ l-milef",
+       "exif-whitebalance": "brillance dl-byid",
+       "exif-digitalzoomratio": "nisbaṫ z-zoom ṛ-ṛqmi",
+       "exif-imageuniqueid": "moĝrrid ṫ-ṫṣwiṛa l-waḫid",
+       "exif-gpsversionid": "nosĥaṫ tag GPS",
+       "exif-gpslongitude": "ĥatt t-tol",
+       "exif-gpsaltitude": "rtifaĝ",
+       "exif-gpstimestamp": "waqṫ GPS (saĝa dariyya)",
+       "exif-gpsspeedref": "waḫdaṫ sorĝa",
+       "exif-gpsspeed": "sorĝa dl-mostqbil GPS",
+       "exif-gpstrackref": "mrjiĝ dial iṫṫijah l-ḫaraka",
+       "exif-gpstrack": "iṫṫijah l-ḫaraka",
+       "exif-gpsimgdirectionref": "mrjiĝ dial iṫṫijah ṫ-ṫṣwiṛa",
+       "exif-gpsimgdirection": "iṫṫijah ṫ-ṫṣwiṛa",
+       "exif-gpsprocessingmethod": "smiṫ tariqa dial ijra' GPS",
+       "exif-gpsareainformation": "smiṫ mintaqat GPS",
+       "exif-gpsdatestamp": "ṫariĥ GPS",
+       "exif-gpsdifferential": "ṫ-ṫṣḫiḫ ṫ-ṫafaḍoli dial GPS",
+       "exif-jpegfilecomment": "ṫ-ṫĝliq dial milef JPEG",
+       "exif-keywords": "mo-kléaṫ",
+       "exif-worldregioncreated": "j-jiha lli ṫĥdaṫ fiha had ṫṣwira",
+       "exif-countrycreated": "l-blad lli ṫĥdaṫ fiha had ṫṣwira",
+       "exif-countrycodecreated": "l-code dial l-blad lli ṫĥdaṫ fiha had ṫṣwira",
+       "exif-provinceorstatecreated": "l-'iqlim wlla d-dwla lli ṫĥdaṫ fihom had ṫṣwira",
+       "exif-citycreated": "l-mdina lli ṫĥdaṫ fiha had ṫṣwira",
+       "exif-worldregiondest": "j-jiha lli mbyyna",
+       "exif-countrydest": "l-blad l-mbyyna",
+       "exif-countrycodedest": "l-code dial l-blad lli mbyyna",
+       "exif-citydest": "l-mdina l-mbyyna",
+       "exif-objectname": "ĝonwan qṣir",
+       "exif-credit": "mosahim/mozwwid",
+       "exif-source": "mṣḍr:",
+       "exif-urgency": "urjons",
+       "exif-objectcycle": "l-wqṫ dial n-nḫar lli mĥṣṣaṣ lih had l-media",
+       "exif-contact": "mĝlomat l-iṫṫiṣal",
+       "exif-writer": "l-katib",
+       "exif-languagecode": "loġa",
+       "exif-iimversion": "nosĥat IIM",
+       "exif-iimcategory": "ṫṣnif",
+       "exif-iimsupplementalcategory": "ṫṣnifaṫ iḍafiyya",
+       "exif-datetimeexpires": "ma tĥddemċ mn bĝd",
+       "exif-datetimereleased": "ṫtlqaṫ f-",
+       "exif-identifier": "l-moĝrrif",
+       "exif-lens": "l-ĝadasa l-mosṫĝmala",
+       "exif-serialnumber": "r-raqm ṫ-ṫaslsoli dial l-camera",
+       "exif-cameraownername": "mol(at) l-camera",
+       "exif-pngfilecomment": "ṫ-ṫĝliq dial milef PNG",
+       "exif-giffilecomment": "ṫ-ṫĝliq dial milef GIF",
+       "exif-intellectualgenre": "noĝ l-madda",
+       "exif-scenecode": "cod mċhd IPTC",
+       "exif-orientation-1": "عادي",
+       "exif-orientation-4": "mḍwwer ofoqiyyen",
+       "exif-orientation-8": "mḍwwer 90° <abbr title=\"Ĝks (ṫ-ṫijah) Ĝaqarib s-Saĝa\">ĜĜS</abbr>",
+       "exif-componentsconfiguration-0": "ma kayn-ċ",
+       "exif-exposureprogram-0": "ma mḫdded-ċ",
+       "exif-exposureprogram-1": "yadawi",
+       "exif-exposureprogram-2": "brnamaj ĝadi",
+       "exif-subjectdistance-value": "$1 mitro",
+       "exif-meteringmode-0": "mjhol",
+       "exif-meteringmode-1": "mṫwṣṣat",
+       "exif-meteringmode-3": "spot",
+       "exif-meteringmode-4": "multispot",
+       "exif-meteringmode-6": "joz'i",
+       "exif-meteringmode-255": "ḫwayej ĥrin",
+       "exif-lightsource-0": "mjhol",
+       "exif-lightsource-4": "flaċ",
+       "exif-lightsource-17": "ḍo qyasi A",
+       "exif-lightsource-18": "ḍo qyasi B",
+       "exif-lightsource-19": "ḍo qyasi C",
+       "exif-lightsource-24": "tungsten studio ISO",
+       "exif-lightsource-255": "ṃṣḍr ḍo aĥoṛ",
+       "exif-flash-fired-0": "l-flaċ ma ṫtlaq-ċ",
+       "exif-flash-fired-1": "lflach bda",
+       "exif-flash-return-0": "makaynach dalat rojoa lwamid",
+       "exif-flash-return-2": "dow rojoa lwamid makchfch",
+       "exif-flash-return-3": "dow rojoa lwamid bad lkachf dyalo",
+       "exif-flash-mode-1": "flsash gh ijbari",
+       "exif-flash-mode-2": "flash ijbari",
+       "exif-flash-mode-3": "namat tilqai",
+       "exif-flash-function-1": "makaynch lflash",
+       "exif-flash-redeye-1": "namat ikhtizal laqin lhmra",
+       "exif-focalplaneresolutionunit-2": "bossa",
+       "exif-sensingmethod-1": "mahddch",
+       "exif-sensingmethod-2": "motchair lon lmissaha mn roqaqa whda",
+       "exif-sensingmethod-3": "mostchair lon lmissaha mn  jouj d roqaqat",
+       "exif-sensingmethod-4": "mostchair lon lmissaha mn tlata d roqaqat",
+       "exif-sensingmethod-5": "motchair lon missaha motatabiaa",
+       "exif-sensingmethod-7": "mostachair khatti tolati",
+       "exif-sensingmethod-8": "mostchair lon khatti motatabi3",
+       "exif-filesource-3": "caméra rqmiyya waqfa",
+       "exif-scenetype-1": "sora moltaqata bchkl mobachir",
+       "exif-customrendered-0": "amaliya adiya",
+       "exif-customrendered-1": "amaliya hassab talab",
+       "exif-exposuremode-0": "tarod tilqa'i",
+       "exif-exposuremode-1": "taarod yadawi",
+       "exif-exposuremode-2": "aqwass tilqaiya",
+       "exif-whitebalance-0": "tawazon lbyin tilqa'i",
+       "exif-whitebalance-1": "l'ekilibre dyal lon lbyid",
+       "exif-scenecapturetype-0": "qiyassi",
+       "exif-scenecapturetype-1": "ardiyya",
+       "exif-scenecapturetype-2": "portrait",
+       "exif-scenecapturetype-3": "machhad layli",
+       "exif-gaincontrol-0": "Walo",
+       "exif-gaincontrol-1": "tahakkom aala monkhafid",
+       "exif-gaincontrol-2": "tahakkom  aala mortafi",
+       "exif-gaincontrol-3": "tahakkom asfal monkhafid",
+       "exif-gaincontrol-4": "tahakkom asfal mortafaa",
+       "exif-contrast-0": "normaol",
+       "exif-contrast-1": "triyy",
+       "exif-contrast-2": "qassi",
+       "exif-saturation-0": "normal",
+       "exif-saturation-1": "tachaboo qlil",
+       "exif-saturation-2": "tachaboo ali",
+       "exif-sharpness-0": "normal",
+       "exif-sharpness-1": "triyy",
+       "exif-sharpness-2": "qassi",
+       "exif-subjectdistancerange-0": "mjhol",
+       "exif-subjectdistancerange-1": "mavro",
+       "exif-subjectdistancerange-2": "ro'ya qriba",
+       "exif-subjectdistancerange-3": "ro'ya baida",
+       "exif-gpslatitude-n": "dairat ard chamaliya",
+       "exif-gpslatitude-s": "dairat ard ljanobiya",
+       "exif-gpslongitude-e": "khatt tol charqi",
+       "exif-gpslongitude-w": "khatt toll lgharbi",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|mitro|mitroaṫ}} foq ṣtḫ l-ḅḫṛ",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|mitro|mitroaṫ}} ṫḫṫ ṣtḫ l-ḅḫṛ",
+       "exif-gpsstatus-a": "amaliyat lqiyas lhaliya",
+       "exif-gpsstatus-v": "chomol lqiyass",
+       "exif-gpsmeasuremode-2": "amaliyat qiyas tonaiyat alabaad",
+       "exif-gpsmeasuremode-3": "amaliyat qiyas tolatiyat alabaad",
+       "exif-gpsspeed-k": "kilometr f saa",
+       "exif-gpsspeed-m": "mil f saa",
+       "exif-gpsspeed-n": "aqd",
+       "exif-gpsdestdistance-k": "kilometrat",
+       "exif-gpsdestdistance-m": "mial",
+       "exif-gpsdestdistance-n": "mial ḅḫriyya",
+       "exif-gpsdop-excellent": "naḍi ($1)",
+       "exif-gpsdop-good": "mzyan ($1)",
+       "exif-gpsdop-moderate": "bin o-bin ($1)",
+       "exif-gpsdop-fair": "ma bih-ċ",
+       "exif-gpsdop-poor": "ĝyyan ($1)",
+       "exif-objectcycle-a": "ġi ṣbaḫ",
+       "exif-objectcycle-p": "ġi ĝċiyya",
+       "exif-objectcycle-b": "ṣbaḫ o-ĝċiyya",
+       "exif-gpsdirection-t": "litijah lhaqiqi",
+       "exif-gpsdirection-m": "littijah lmighnatissi",
+       "exif-ycbcrpositioning-1": "centré",
+       "exif-ycbcrpositioning-2": "co-sité",
+       "exif-dc-contributor": "l-mosahimin",
+       "exif-dc-date": "t(aw)ariĥ",
+       "exif-dc-publisher": "n-naċir",
+       "exif-dc-relation": "media mrṫabta",
+       "exif-dc-rights": "l-ḫoqoq",
+       "exif-dc-source": "mṣḍṛ l-media",
+       "exif-dc-type": "noĝ l-media",
+       "exif-rating-rejected": "mṛfoḍ",
+       "exif-isospeedratings-overflow": "kṫr mn 65535",
+       "exif-iimcategory-ace": "fonon, ṫaqafa o-ṫrfih",
+       "exif-iimcategory-clj": "l-jarima o-lqanon",
+       "exif-iimcategory-dis": "l-kawariṫ o-lḫawadiṫ",
+       "exif-iimcategory-fin": "l-iqṫiṣad o-l'aĝmal",
+       "exif-iimcategory-edu": "ṫrbiya",
+       "exif-iimcategory-evn": "bi'a",
+       "exif-iimcategory-hth": "s-sḫḫa",
+       "exif-iimcategory-hum": "l-ihtimam l-baċari",
+       "exif-iimcategory-lab": "l-ĥdma",
+       "exif-iimcategory-lif": "l-ĝiċa o-lfaraġ",
+       "exif-iimcategory-pol": "s-siyasa",
+       "exif-iimcategory-rel": "d-din o-lĝaqida",
+       "exif-iimcategory-sci": "l-ĝolom o-ṫṫiknolojia",
+       "exif-iimcategory-soi": "ċo'on jtimaĝiyya",
+       "exif-iimcategory-spo": "ṛ-ṛiyaḍa",
+       "exif-iimcategory-war": "l-hṛḅ, n-niẓaĝaṫ o-lttirabaṫ",
+       "exif-iimcategory-wea": "t-taqṣ",
+       "exif-urgency-normal": "ĝadiyya ($1)",
+       "exif-urgency-low": "mnĥafḍa ($1)",
+       "exif-urgency-high": "ĝalia ($1)",
+       "exif-urgency-other": "l-awlawiyya lli ḫddadha l-mosṫĥdim ($1)"
+}
diff --git a/languages/i18n/exif/arz.json b/languages/i18n/exif/arz.json
new file mode 100644 (file)
index 0000000..5866e6c
--- /dev/null
@@ -0,0 +1,240 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ghaly",
+                       "Meno25",
+                       "Ramsis II"
+               ]
+       },
+       "exif-imagewidth": "العرض",
+       "exif-imagelength": "الطول",
+       "exif-bitspersample": "بتس لكل مكون",
+       "exif-compression": "نظام الضغط",
+       "exif-photometricinterpretation": "تركيب البكسل",
+       "exif-orientation": "التوجيه",
+       "exif-samplesperpixel": "عدد المكونات",
+       "exif-planarconfiguration": "ترتيب البيانات",
+       "exif-ycbcrsubsampling": "نسبة العينة الفرعية بتاعة Y لـ C",
+       "exif-ycbcrpositioning": "وضع Y و C",
+       "exif-xresolution": "الدقة الأفقية",
+       "exif-yresolution": "الدقة الرأسية",
+       "exif-stripoffsets": "موقع بيانات الصورة",
+       "exif-rowsperstrip": "عدد الصفوف لكل ستريب",
+       "exif-stripbytecounts": "بايت لكل ستريب مضغوط",
+       "exif-jpeginterchangeformat": "الحد ل JPEG SOI",
+       "exif-jpeginterchangeformatlength": "بايت من بيانات JPEG",
+       "exif-whitepoint": "ألوان النقطة البيضا",
+       "exif-primarychromaticities": "ألوان الأساسيات",
+       "exif-ycbcrcoefficients": "معاملات مصفوفة تحويل فراغ اللون",
+       "exif-referenceblackwhite": "جوز من قيم المرجع السودا والبيضا",
+       "exif-datetime": "تاريخ و وقت تغيير الملف",
+       "exif-imagedescription": "عنوان الصورة",
+       "exif-make": "منتج الكاميرا",
+       "exif-model": "موديل الكاميرا",
+       "exif-software": "البرمجيات المستخدمة",
+       "exif-artist": "المؤلف",
+       "exif-copyright": "صاحب الحقوق الممحفوظة",
+       "exif-exifversion": "نسخة Exif",
+       "exif-flashpixversion": "نسخة فلاش بكس المدعومة",
+       "exif-colorspace": "فرق اللون",
+       "exif-componentsconfiguration": "معنى كل مكون",
+       "exif-compressedbitsperpixel": "طور ضغط الصورة",
+       "exif-pixelxdimension": "عرض صورة صحيح",
+       "exif-pixelydimension": "ارتفاع صورة صحيح",
+       "exif-usercomment": "تعليقات اليوزر",
+       "exif-relatedsoundfile": "ملف صوت مرتبط",
+       "exif-datetimeoriginal": "تاريخ و وقت الإنتاج",
+       "exif-datetimedigitized": "تاريخ و وقت التحويل الرقمى",
+       "exif-subsectime": "وقت تاريخ ثوانى فرعية",
+       "exif-subsectimeoriginal": "وقت تاريخ أصلى ثوانى فرعية",
+       "exif-subsectimedigitized": "وقت تاريخ رقمى ثوانى فرعية",
+       "exif-exposuretime": "مدة التعرض",
+       "exif-exposuretime-format": "$1 ثانية ($2)",
+       "exif-fnumber": "العدد البؤرى",
+       "exif-fnumber-format": "البعد البؤرى/$1",
+       "exif-exposureprogram": "برنامج التعرض",
+       "exif-spectralsensitivity": "الحساسية الطيفية",
+       "exif-isospeedratings": "تقييم سرعة أيزو",
+       "exif-shutterspeedvalue": "سرعة القافل",
+       "exif-aperturevalue": "فتحة القافل",
+       "exif-brightnessvalue": "الضي",
+       "exif-exposurebiasvalue": "تعويض التعرض",
+       "exif-maxaperturevalue": "أقصى قافل أرضى",
+       "exif-subjectdistance": "مسافة من الجسم",
+       "exif-meteringmode": "طور القياس بالمتر",
+       "exif-lightsource": "مصدر النور",
+       "exif-flash": "فلاش",
+       "exif-focallength": "البعد البؤرى  للعدسة",
+       "exif-focallength-format": "$1 ملم",
+       "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": "توازن الأبيض",
+       "exif-digitalzoomratio": "نسبة الزوم الرقمية",
+       "exif-focallengthin35mmfilm": "البعد البؤرى فى فيلم 35 مم",
+       "exif-scenecapturetype": "نوع تصوير المشهد",
+       "exif-gaincontrol": "التحكم فى المشهد",
+       "exif-contrast": "التعارض",
+       "exif-saturation": "التشبع",
+       "exif-sharpness": "الحده",
+       "exif-devicesettingdescription": "وصف ظبط الأداة",
+       "exif-subjectdistancerange": "المسافه اللى بين  الهدف و الكاميرا",
+       "exif-imageuniqueid": "رقم الصورة الفريد",
+       "exif-gpsversionid": "نسخة علامة ال چى بى إس",
+       "exif-gpslatituderef": "شمال أو جنوب خطوط العرض",
+       "exif-gpslatitude": "خط العرض",
+       "exif-gpslongituderef": "خط الطول الشرقى أو الغربى",
+       "exif-gpslongitude": "خط الطول",
+       "exif-gpsaltituderef": "مرجع الارتفاع",
+       "exif-gpsaltitude": "الارتفاع",
+       "exif-gpstimestamp": "وقت ال چى پى إس (ساعه ذريه)",
+       "exif-gpssatellites": "الأقمار الصناعيه المستخدمه للقياس",
+       "exif-gpsstatus": "حالة جهاز الاستقبال",
+       "exif-gpsmeasuremode": "طريقة القياس",
+       "exif-gpsdop": "دقة القياس",
+       "exif-gpsspeedref": "وحدة السرعة",
+       "exif-gpsspeed": "سرعة مستقبل ال چى بى إس",
+       "exif-gpstrackref": "المرجع لاتجاه الحركة",
+       "exif-gpstrack": "اتجاه الحركه",
+       "exif-gpsimgdirectionref": "المرجع لاتجاه الصوره",
+       "exif-gpsimgdirection": "اتجاه الصوره",
+       "exif-gpsmapdatum": "بيانات استطلاع الجيوديسيك المستخدمة",
+       "exif-gpsdestlatituderef": "المرجع لخط عرض الهدف",
+       "exif-gpsdestlatitude": "خط عرض الهدف",
+       "exif-gpsdestlongituderef": "المرجع لخط طول الهدف",
+       "exif-gpsdestlongitude": "خط طول الهدف",
+       "exif-gpsdestbearingref": "المرجع لتحمل الهدف",
+       "exif-gpsdestbearing": "تحمل الهدف",
+       "exif-gpsdestdistanceref": "المرجع للمسافه للهدف",
+       "exif-gpsdestdistance": "المسافه للهدف",
+       "exif-gpsprocessingmethod": "اسم طريقة معالجة جى بى إس",
+       "exif-gpsareainformation": "اسم لمنطقة ال چى پى إس",
+       "exif-gpsdatestamp": "تاريخ GPS",
+       "exif-gpsdifferential": "تصحيح GPS التفاضلي",
+       "exif-compression-1": "مش مضغوط",
+       "exif-compression-6": "جيه بى إى جي",
+       "exif-photometricinterpretation-2": "آر جى بى",
+       "exif-photometricinterpretation-6": "واى سب سر",
+       "exif-unknowndate": "تاريخ مش معروف",
+       "exif-orientation-1": "عادي",
+       "exif-orientation-2": "دار بالعرض",
+       "exif-orientation-3": "دار 180°",
+       "exif-orientation-4": "دار بالطول",
+       "exif-orientation-5": "اتلفت 90° CW 90° CW و اتقلب على جنبه",
+       "exif-orientation-6": "اتلفت 90° CW",
+       "exif-orientation-7": "اتلفت 90° CW 90° CW و اتقلب على راسه",
+       "exif-orientation-8": "اتلفت 90° عكس عقارب الساعة",
+       "exif-planarconfiguration-1": "صيغه تخينه",
+       "exif-planarconfiguration-2": "الصيغه المستويه",
+       "exif-componentsconfiguration-0": "مش موجود",
+       "exif-exposureprogram-0": "مش معروف",
+       "exif-exposureprogram-1": "يدوي",
+       "exif-exposureprogram-2": "برنامج عادى",
+       "exif-exposureprogram-3": "أولوية القافل",
+       "exif-exposureprogram-4": "أولوية القفل",
+       "exif-exposureprogram-5": "برنامج صنع (بيميل ناحية عمق الفيلد)",
+       "exif-exposureprogram-6": "برنامج الفعل (بيميل ناحية سرعة القفل)",
+       "exif-exposureprogram-7": "وضع البورتريه (لصور القفل مع الخلفية بعيدة عن البؤرة)",
+       "exif-exposureprogram-8": "وضع الأرضية (لصور الأرضية مع الخلفية فى البؤرة)",
+       "exif-subjectdistance-value": "$1 متر",
+       "exif-meteringmode-0": "مش معروف",
+       "exif-meteringmode-1": "متوسط",
+       "exif-meteringmode-2": "متوسط موزون بالمركز",
+       "exif-meteringmode-3": "بقعة",
+       "exif-meteringmode-4": "مالتى سبوت",
+       "exif-meteringmode-5": "نمط",
+       "exif-meteringmode-6": "جزئي",
+       "exif-meteringmode-255": "تاني",
+       "exif-lightsource-0": "مش معروف",
+       "exif-lightsource-1": "نورالنهار",
+       "exif-lightsource-2": "فلورسنت",
+       "exif-lightsource-3": "تنجستين (ضوء مشع)",
+       "exif-lightsource-4": "فلاش",
+       "exif-lightsource-9": "جو صحو",
+       "exif-lightsource-10": "جو مغيم",
+       "exif-lightsource-11": "ضل",
+       "exif-lightsource-12": "فلورسنت نور النهار (D 5700 – 7100K)",
+       "exif-lightsource-13": "فلورسنت نهار أبيض (N 4600 – 5400K)",
+       "exif-lightsource-14": "فلورسنت أبيض كوول(W 3900 – 4500K)",
+       "exif-lightsource-15": "فلورسنت أبيض (WW 3200 – 3700K)",
+       "exif-lightsource-17": "ضوء قياسى  A",
+       "exif-lightsource-18": "ضوء قياسى B",
+       "exif-lightsource-19": "ضوء قياسى C",
+       "exif-lightsource-20": "دي55",
+       "exif-lightsource-21": "دي65",
+       "exif-lightsource-22": "دي75",
+       "exif-lightsource-23": "دي50",
+       "exif-lightsource-24": "تنجستين ستوديو أيزو",
+       "exif-lightsource-255": "مصدر  نور تانى",
+       "exif-flash-fired-0": "الفلاش ما بدأش",
+       "exif-flash-fired-1": "الفلاش ابتدى",
+       "exif-flash-return-0": "مفيش دالة كشف رجوع وميض",
+       "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-sensingmethod-7": "حساس بتلات خطوط",
+       "exif-sensingmethod-8": "حساس لون خطى متتابع",
+       "exif-filesource-3": "دى إس سي",
+       "exif-scenetype-1": "صورة متاخدة على طول",
+       "exif-customrendered-0": "عملية عادية",
+       "exif-customrendered-1": "عملية حسب الطلب",
+       "exif-exposuremode-0": "تعرض أوتوماتيكي",
+       "exif-exposuremode-1": "تعرض باللإيد",
+       "exif-exposuremode-2": "اقواس أوتوماتيكي",
+       "exif-whitebalance-0": "توازن الأبيض اوتوماتيكي",
+       "exif-whitebalance-1": "توازن الأبيض بالإيد",
+       "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-saturation-0": "عادي",
+       "exif-saturation-1": "تشبع واطي",
+       "exif-saturation-2": "تشبع عالي",
+       "exif-sharpness-0": "عادي",
+       "exif-sharpness-1": "ناعم",
+       "exif-sharpness-2": "ناشف",
+       "exif-subjectdistancerange-0": "مش معروف",
+       "exif-subjectdistancerange-1": "ماكرو",
+       "exif-subjectdistancerange-2": "منظر من قريب",
+       "exif-subjectdistancerange-3": "منظر من بعيد",
+       "exif-gpslatitude-n": "دايرة العرض الشمالية",
+       "exif-gpslatitude-s": "دايرة العرض الجنوبية",
+       "exif-gpslongitude-e": "خط الطول الشرقي",
+       "exif-gpslongitude-w": "خط الطول الغربي",
+       "exif-gpsstatus-a": "القياس شغال",
+       "exif-gpsstatus-v": "شمول القياس",
+       "exif-gpsmeasuremode-2": "قياس ببعدين",
+       "exif-gpsmeasuremode-3": "قياس  تلاتى الابعاد",
+       "exif-gpsspeed-k": "كيلومتر فى الساعة",
+       "exif-gpsspeed-m": "ميل فى الساعة",
+       "exif-gpsspeed-n": "عقد",
+       "exif-gpsdirection-t": "الاتجاه الحقيقي",
+       "exif-gpsdirection-m": "الاتجاه المغناطيسي"
+}
diff --git a/languages/i18n/exif/as.json b/languages/i18n/exif/as.json
new file mode 100644 (file)
index 0000000..2f5a0aa
--- /dev/null
@@ -0,0 +1,351 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Bishnu Saikia",
+                       "Chaipau",
+                       "Gitartha.bordoloi",
+                       "Jaminianurag",
+                       "Nilamdyuti",
+                       "Psneog",
+                       "Simbu123"
+               ]
+       },
+       "exif-imagewidth": "প্ৰস্থ",
+       "exif-imagelength": "উচ্চতা",
+       "exif-bitspersample": "প্ৰতি অংশৰ বিট",
+       "exif-compression": "সংকোচন আঁচনি",
+       "exif-photometricinterpretation": "পিক্সেল গঠন",
+       "exif-orientation": "দিশবিন্যাস",
+       "exif-samplesperpixel": "উপাদানৰ সংখ্যা",
+       "exif-planarconfiguration": "তথ্য বিন্যাস",
+       "exif-ycbcrsubsampling": "Y to C’ৰ হাৰৰ উপনমুনা",
+       "exif-ycbcrpositioning": "Y আৰু C অৱস্থান",
+       "exif-xresolution": "আনুভূমিক ৰিজ'লিউশ্যন",
+       "exif-yresolution": "উলম্বিক ৰিজ'লিউশ্যন",
+       "exif-stripoffsets": "ছবিৰ ডেটা অৱস্থান",
+       "exif-rowsperstrip": "প্ৰতি ষ্ট্ৰিপত শাৰীসমূহৰ সংখ্যা",
+       "exif-stripbytecounts": "প্ৰতি সংকোচিত স্ট্ৰিপ বাইটসমূহ",
+       "exif-jpeginterchangeformat": "JPEG SOI’লৈ অফচেট",
+       "exif-jpeginterchangeformatlength": "JPEG তথ্যৰ বাইটসমূহ",
+       "exif-whitepoint": "বগা বিন্দুৰ বৰ্ণ",
+       "exif-primarychromaticities": "প্ৰাথমিকতাৰ বৰ্ণসমূহ",
+       "exif-ycbcrcoefficients": "ৰঙ স্থান পৰিৱৰ্তন সাঁচৰ গুণকসমূহ",
+       "exif-referenceblackwhite": "কলা আৰু বগা প্ৰসংগ মানসমূহৰ যোৰ",
+       "exif-datetime": "নথিৰ সলনিৰ তাৰিখ আৰু সময়",
+       "exif-imagedescription": "চিত্ৰ শিৰোনামা",
+       "exif-make": "কেমেৰা নিৰ্মাতা",
+       "exif-model": "কেমেৰা মডেল",
+       "exif-software": "ব্যৱহৃত ছফ্টৱেৰ",
+       "exif-artist": "স্ৰষ্টা",
+       "exif-copyright": "স্বত্বাধিকাৰী",
+       "exif-exifversion": "Exif সংস্কৰণ",
+       "exif-flashpixversion": "সমৰ্থিত Flashpix সংস্কৰণ",
+       "exif-colorspace": "ৰং স্থান",
+       "exif-componentsconfiguration": "প্ৰতিটো উপাদানৰ অৰ্থ",
+       "exif-compressedbitsperpixel": "ছবি সংকোচন অৱস্থা",
+       "exif-pixelxdimension": "ছবিৰ প্ৰস্থতা",
+       "exif-pixelydimension": "ছবিৰ উচ্চতা",
+       "exif-usercomment": "সদস্যৰ মন্তব্য",
+       "exif-relatedsoundfile": "সংশ্লিষ্ট শ্ৰব্য ফাইল",
+       "exif-datetimeoriginal": "তথ্য সৃজনৰ তাৰিখ আৰু সময়",
+       "exif-datetimedigitized": "ডিজিটেলকৰণৰ তাৰিখ আৰু সময়",
+       "exif-subsectime": "তাৰিখসময় চাবছেকেণ্ড",
+       "exif-subsectimeoriginal": "তাৰিখসময়প্ৰকৃত চাবছেকেণ্ড",
+       "exif-subsectimedigitized": "তাৰিখসময়অঙ্কীয় চাবছেকেণ্ড",
+       "exif-exposuretime": "এক্সপ'জাৰ সময়",
+       "exif-exposuretime-format": "$1 ছেকেণ্ড ($2)",
+       "exif-fnumber": "F সংখ্যা",
+       "exif-exposureprogram": "উন্মুক্ত প্ৰগ্ৰাম",
+       "exif-spectralsensitivity": "বৰ্ণালীৰ সংবেদ্যতা",
+       "exif-isospeedratings": "ISO গতিৰ হাৰ",
+       "exif-shutterspeedvalue": "APEX চাটাৰ গতি",
+       "exif-aperturevalue": "APEX বিন্ধা",
+       "exif-brightnessvalue": "APEX উজ্জ্বলতা",
+       "exif-exposurebiasvalue": "APEX উন্মুক্ত পক্ষপাত",
+       "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": "বগা ভাৰসাম্য",
+       "exif-digitalzoomratio": "ডিজিটেল জুম অনুপাত",
+       "exif-focallengthin35mmfilm": "৩৫ মিমি ফ্লিমত ফোকাচ দৈৰ্ঘ্য",
+       "exif-scenecapturetype": "দৃশ্যগ্ৰহণ ধৰণ",
+       "exif-gaincontrol": "দৃশ্য নিয়ন্ত্ৰণ",
+       "exif-contrast": "কন্‌ট্ৰাষ্ট",
+       "exif-saturation": "সংপৃক্ততা",
+       "exif-sharpness": "স্পষ্টতা",
+       "exif-devicesettingdescription": "ডিভাইচ সংহতিসমূহৰ বিৱৰণ",
+       "exif-subjectdistancerange": "বিষয়বস্তুৰ দূৰত্বৰ পৰিসীমা",
+       "exif-imageuniqueid": "অবিকল্প ছবি ID",
+       "exif-gpsversionid": "GPS টেগ সংস্কৰণ",
+       "exif-gpslatituderef": "উত্তৰ বা দক্ষিণ অক্ষাংশ",
+       "exif-gpslatitude": "অক্ষাংশ",
+       "exif-gpslongituderef": "পূৱ বা পশ্চিম দ্ৰাঘিমাংশ",
+       "exif-gpslongitude": "দ্ৰাঘিমাংশ",
+       "exif-gpsaltituderef": "উচ্চতাৰ প্ৰসংগ",
+       "exif-gpsaltitude": "উচ্চতা",
+       "exif-gpstimestamp": "GPS সময় (পাৰমাণৱিক ঘড়ি)",
+       "exif-gpssatellites": "জোখ মাপত ব্যৱহৃত উপগ্ৰহ সমূহ",
+       "exif-gpsstatus": "গ্ৰাহকৰ অৱস্থা",
+       "exif-gpsmeasuremode": "পৰিমাপ অৱস্থা",
+       "exif-gpsdop": "পৰিমাপ পৰিশুদ্ধতা",
+       "exif-gpsspeedref": "দ্ৰুতি একক",
+       "exif-gpsspeed": "GPS গ্ৰাহকৰ গতি",
+       "exif-gpstrackref": "স্থানান্তৰৰ দিশৰ প্ৰসংগ",
+       "exif-gpstrack": "স্থানান্তৰৰ দিশ",
+       "exif-gpsimgdirectionref": "ছবিৰ দিশৰ প্ৰসংগ",
+       "exif-gpsimgdirection": "ছবিৰ দিশ",
+       "exif-gpsmapdatum": "Geodetic সমীক্ষণ তথ্য ব্যৱহৃত",
+       "exif-gpsdestlatituderef": "গন্তব্যৰ অক্ষাংশৰ বাবে প্ৰসংগ",
+       "exif-gpsdestlatitude": "অক্ষাংশৰ গন্তব্য",
+       "exif-gpsdestlongituderef": "গন্তব্যৰ দ্ৰাঘিমাৰ বাবে প্ৰসংগ",
+       "exif-gpsdestlongitude": "লক্ষ্যস্থানৰ দ্ৰাঘিমা",
+       "exif-gpsdestbearingref": "গন্তব্য ধাৰণৰ বাবে প্ৰসংগ",
+       "exif-gpsdestbearing": "গন্তব্য ধাৰণ",
+       "exif-gpsdestdistanceref": "গন্তব্যলৈ দূৰত্বৰ প্ৰসংগ",
+       "exif-gpsdestdistance": "লক্ষ্যস্থানলৈ দূৰত্ব",
+       "exif-gpsprocessingmethod": "GPS প্ৰক্ৰিয়কৰণ পদ্ধতিৰ নাম",
+       "exif-gpsareainformation": "GPS স্থানৰ নাম",
+       "exif-gpsdatestamp": "GPS তাৰিখ",
+       "exif-gpsdifferential": "GPS অৱকলন শুদ্ধ কৰা",
+       "exif-jpegfilecomment": "JPEG নথিপত্ৰ মন্তব্য",
+       "exif-keywords": "কীৱৰ্ডসমূহ",
+       "exif-worldregioncreated": "বিশ্বৰ অঞ্চল য'ত ছবিখন তোলা হৈছিল",
+       "exif-countrycreated": "যি দেশত চিত্ৰখন গ্ৰহণ কৰা হৈছে",
+       "exif-countrycodecreated": "দেশৰ ক'ড য'ত ছবিখন তোলা হৈছিল",
+       "exif-provinceorstatecreated": "প্ৰদেশ অথবা ৰাজ্য য'ত ছবিখন তোলা হৈছিল",
+       "exif-citycreated": "যি চহৰত চিত্ৰখন গ্ৰহণ কৰা হৈছে",
+       "exif-sublocationcreated": "নগৰৰ উপঅৱস্থান য'ত ছবিখন তোলা হৈছিল",
+       "exif-worldregiondest": "বিশ্বৰ অঞ্চল দেখুওৱা হল",
+       "exif-countrydest": "দেশ দেখুওৱা হল",
+       "exif-countrycodedest": "দেশৰ ক’ড প্ৰদৰ্শিত",
+       "exif-provinceorstatedest": "প্ৰদেশ অথবা ৰাজ্য দেখুৱা হল",
+       "exif-citydest": "চহৰ প্ৰদৰ্শিত",
+       "exif-sublocationdest": "নগৰৰ উপঅৱস্থান দেখুৱা হ'ল",
+       "exif-objectname": "চমু শীৰ্ষক",
+       "exif-specialinstructions": "বিশেষ নিৰ্দেশনাসমূহ",
+       "exif-headline": "শিৰোনাম",
+       "exif-credit": "কৃতিত্ব/যোগানকাৰী",
+       "exif-source": "উৎস",
+       "exif-editstatus": "ছবিৰ সম্পাদনীয় অৱস্থা",
+       "exif-urgency": "অত্যাৱশ্যকতা",
+       "exif-fixtureidentifier": "ফিকশ্চাৰৰ নাম",
+       "exif-locationdest": "অৱস্থান বৰ্ণিত",
+       "exif-locationdestcode": "অৱস্থানৰ ক'ড বৰ্ণিত",
+       "exif-objectcycle": "দিনৰ সময় যেতিয়ালৈ মাধ্যম ধাৰ্য্যত",
+       "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": "মেটাডেটাৰ শেষ পৰিৱৰ্তনৰ তাৰিখ",
+       "exif-nickname": "ছবিৰ খচৰা নাম",
+       "exif-rating": "মানাংক (৫ৰ ভিতৰত)",
+       "exif-rightscertificate": "অধিকাৰিত্ব ব্যৱস্থাপনাৰ প্ৰমাণপত্ৰ",
+       "exif-copyrighted": "স্বত্বাধিকাৰ স্থিতি",
+       "exif-copyrightowner": "স্বত্বাধিকাৰী",
+       "exif-usageterms": "ব্যৱহাৰ কৰাৰ চৰ্ত্ত",
+       "exif-webstatement": "অনলাইন স্বত্বাধিকাৰ বক্তব্য",
+       "exif-originaldocumentid": "মূল ডকুমেণ্টৰ অদ্বিতীয় আই.ডি.",
+       "exif-licenseurl": "কপিৰাইট অনুজ্ঞাপত্ৰৰ বাবে URL",
+       "exif-morepermissionsurl": "অতিৰিক্ত অনুজ্ঞাপত্ৰৰ তথ্য",
+       "exif-attributionurl": "এই কাৰ্যৰ পুনৰ ব্যৱহাৰ কৰিলে অনুগ্ৰহ এই লিংকটো যোগ কৰক",
+       "exif-preferredattributionname": "এই কাম পুনৰ-ব্যৱহাৰ কৰোতে, অনুগ্ৰহ কৰি কৃতিত্ব দিব",
+       "exif-pngfilecomment": "পি.এন.জি. ফাইল মন্তব্য",
+       "exif-disclaimer": "দায়লুপ্তি",
+       "exif-contentwarning": "বিষয়বস্তু সতৰ্কবাণী",
+       "exif-giffilecomment": "জি.আই.এফ. ফাইল মন্তব্য",
+       "exif-intellectualgenre": "আইটেমৰ প্ৰকাৰ",
+       "exif-subjectnewscode": "বিষয় ক’ড",
+       "exif-scenecode": "IPTC দৃশ্য ক'ড",
+       "exif-event": "ঘটনা বৰ্ণিত",
+       "exif-organisationinimage": "সংগঠন বৰ্ণিত",
+       "exif-personinimage": "ব্যক্তি বর্ণিত",
+       "exif-originalimageheight": "ক্ৰ'প কৰাৰ আগত ছবিৰ উচ্চতা",
+       "exif-originalimagewidth": "ক্ৰ'প কৰাৰ আগত ছবিৰ প্ৰস্থতা",
+       "exif-compression-1": "অসংকুচিত",
+       "exif-compression-2": "CCITT দল ৩ ১-পৰিসৰ পৰিৱৰ্তীত Huffman চলন দৈৰ্ঘ্য এনক'ডিং",
+       "exif-compression-3": "CCITT দল ৩ ফেক্স এনক'ডিং",
+       "exif-compression-4": "CCITT দল ৪ ফেক্স এনক'ডিং",
+       "exif-copyrighted-true": "কপিৰাইট আছে",
+       "exif-copyrighted-false": "কপিৰাইট সংক্ৰান্ত তথ্য নাই",
+       "exif-unknowndate": "অজ্ঞাত তাৰিখ",
+       "exif-orientation-1": "সাধাৰণ",
+       "exif-orientation-2": "আনুভূমিকভাৱে লুটিওৱা হল",
+       "exif-orientation-3": "১৮০° ঘুৰিলে",
+       "exif-orientation-4": "উলম্বভাৱে লুটিওৱা হল",
+       "exif-orientation-5": "৯০° CCW ঘুৰিলে আৰু উলম্ভভাৱে লুটি খালে",
+       "exif-orientation-6": "৯০° CCW ঘুৰিলে",
+       "exif-orientation-7": "৯০° CW ঘুৰিলে আৰু উলম্ভভাৱে লুটি খালে",
+       "exif-orientation-8": "৯০° CW ঘুৰিলে",
+       "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-exposureprogram-5": "সৃষ্টিমূলক প্ৰগ্ৰাম (ক্ষেত্ৰৰ গভীৰতাৰ প্ৰতি পক্ষপাতবিশিষ্ট)",
+       "exif-exposureprogram-6": "কাৰ্য্যত প্ৰ'গ্ৰাম (দ্ৰুত শ্বাটাৰ গতিৰ প্ৰতি পক্ষপাতবিশিষ্ট)",
+       "exif-exposureprogram-7": "প্ৰতিকৃতি অৱস্থা (পটভূমি ফকাচৰ বাহিৰ থকাকে ক্লজআপ চিত্ৰসমূহ)",
+       "exif-exposureprogram-8": "লেণ্ডস্কেপ অৱস্থা (পটভূমি ফকাচত থকাকৈ লেণ্ডস্কেপ চিত্ৰসমূহৰ বাবে)",
+       "exif-subjectdistance-value": "$1 মিটাৰ",
+       "exif-meteringmode-0": "অজ্ঞাত",
+       "exif-meteringmode-1": "গড়",
+       "exif-meteringmode-2": "কেন্দ্র ওজনকৃত গড়",
+       "exif-meteringmode-3": "স্পট",
+       "exif-meteringmode-4": "মাল্টি-স্পট",
+       "exif-meteringmode-5": "বিন্যাস",
+       "exif-meteringmode-6": "আংশিক",
+       "exif-meteringmode-255": "অন্য",
+       "exif-lightsource-0": "অজ্ঞাত",
+       "exif-lightsource-1": "দিনৰ পোহৰ",
+       "exif-lightsource-2": "প্রতিপ্রভ",
+       "exif-lightsource-3": "টাংষ্টেন (ভাষ্কৰ পোহৰ)",
+       "exif-lightsource-4": "ফ্লাছ",
+       "exif-lightsource-9": "ফটফটীয়া বতৰ",
+       "exif-lightsource-10": "ডাৱৰীয়া বতৰ",
+       "exif-lightsource-11": "ছাঁয়া",
+       "exif-lightsource-12": "দিনপোহৰৰ প্ৰতিপ্ৰভ (D 5700 – 7100K)",
+       "exif-lightsource-13": "দিন বগা প্ৰতিপ্ৰভ (N 4600 – 5400K)",
+       "exif-lightsource-14": "শীতল বগা প্ৰতিপ্ৰভ (W 3900 – 4500K)",
+       "exif-lightsource-15": "বগা প্ৰতিপ্ৰভ (WW 3200 – 3700K)",
+       "exif-lightsource-17": "প্ৰামাণিক পোহৰ A",
+       "exif-lightsource-18": "প্ৰামাণিক পোহৰ B",
+       "exif-lightsource-19": "প্ৰামাণিক পোহৰ C",
+       "exif-lightsource-24": "ISO স্টুডিঅ' টাংস্টেন",
+       "exif-lightsource-255": "অন্য পোহৰ উৎস",
+       "exif-flash-fired-0": "ফ্লেছ নজ্বলিলে",
+       "exif-flash-fired-1": "ফ্লেছ জ্বলিল",
+       "exif-flash-return-0": "কোনো স্ট্ৰৌব ঘুৰা চিনাক্ত কৰা ফলন নাই",
+       "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-sensingmethod-7": "ত্রিৰৈখিক সংবেদক",
+       "exif-sensingmethod-8": "ৰঙ ক্রমায়িত ৰৈখিক সংবেদক",
+       "exif-filesource-3": "ডিজিটাল স্টিল ক্যামেৰা",
+       "exif-scenetype-1": "এখন প্ৰত্যক্ষভাৱে তোলা ছবি",
+       "exif-customrendered-0": "স্বাভাবিক প্রক্রিয়া",
+       "exif-customrendered-1": "স্বনিৰ্বাচিত প্ৰক্ৰিয়া",
+       "exif-exposuremode-0": "স্বচালিত উন্মুক্তকৰণ",
+       "exif-exposuremode-1": "হস্তচালিত উন্মুক্তকৰণ",
+       "exif-exposuremode-2": "স্বচালিত বন্ধনী",
+       "exif-whitebalance-0": "স্বচালিত বগা ভাৰসাম্য",
+       "exif-whitebalance-1": "হস্তচালিত বগা ভাৰসাম্য",
+       "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-saturation-0": "সাধাৰণ",
+       "exif-saturation-1": "নিম্ন সংপৃক্তি",
+       "exif-saturation-2": "উচ্চ সংপৃক্তি",
+       "exif-sharpness-0": "সাধাৰণ",
+       "exif-sharpness-1": "কোমল",
+       "exif-sharpness-2": "কঠিন",
+       "exif-subjectdistancerange-0": "অজ্ঞাত",
+       "exif-subjectdistancerange-1": "মেক্ৰ'",
+       "exif-subjectdistancerange-2": "নিকট দৃষ্টি",
+       "exif-subjectdistancerange-3": "দূৰ দৃষ্টি",
+       "exif-gpslatitude-n": "উত্তৰ অক্ষাংশ",
+       "exif-gpslatitude-s": "দক্ষিণ অক্ষাংশ",
+       "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-gpsdestdistance-m": "মাইল",
+       "exif-gpsdestdistance-n": "নটিকেল মাইল",
+       "exif-gpsdop-excellent": "অতি উত্তম ($1)",
+       "exif-gpsdop-good": "ভাল ($1)",
+       "exif-gpsdop-moderate": "মোটামুটি ($1)",
+       "exif-gpsdop-fair": "ধুনীয়া ($1)",
+       "exif-gpsdop-poor": "বেয়া ($1)",
+       "exif-objectcycle-a": "কেৱল পুৱা",
+       "exif-objectcycle-p": "কেৱল সন্ধ্যা",
+       "exif-objectcycle-b": "দুয়ো ৰাতিপুৱা আৰু সন্ধিয়া",
+       "exif-gpsdirection-t": "প্ৰকৃত দিশ",
+       "exif-gpsdirection-m": "চুম্বকীয় দিশ",
+       "exif-ycbcrpositioning-1": "কেন্দ্ৰিত",
+       "exif-ycbcrpositioning-2": "সমানভাৱে চাইট কৰা",
+       "exif-dc-contributor": "বৰঙণিদাতাসকল",
+       "exif-dc-coverage": "মাধ্যমৰ ব্যৱধানীক অথবা অস্থায়ী অৱকাশ",
+       "exif-dc-date": "তাৰিখ(সমূহ)",
+       "exif-dc-publisher": "প্ৰকাশক",
+       "exif-dc-relation": "প্ৰাসংগিক মিডিয়া",
+       "exif-dc-rights": "অধিকাৰসমূহ",
+       "exif-dc-source": "উৎস মিডিয়া",
+       "exif-dc-type": "মিডিয়াৰ প্ৰকাৰ",
+       "exif-rating-rejected": "বাতিল কৰা হৈছে",
+       "exif-isospeedratings-overflow": "৬৫৫৩৫তকৈ বেছি",
+       "exif-iimcategory-ace": "কলা, সংস্কৃতি আৰু মনোৰঞ্জন",
+       "exif-iimcategory-clj": "অপৰাধ আৰু আইন",
+       "exif-iimcategory-dis": "দুৰ্যোগ আৰু দুৰ্ঘটনা",
+       "exif-iimcategory-fin": "অৰ্থনীতি আৰু ব্যৱসায়",
+       "exif-iimcategory-edu": "শিক্ষা",
+       "exif-iimcategory-evn": "পৰিবেশ",
+       "exif-iimcategory-hth": "স্বাস্থ্য",
+       "exif-iimcategory-hum": "মানৱ আগ্ৰহ",
+       "exif-iimcategory-lab": "শ্ৰম",
+       "exif-iimcategory-lif": "জীৱনশৈলী আৰু অৱকাশ",
+       "exif-iimcategory-pol": "ৰাজনীতি",
+       "exif-iimcategory-rel": "ধৰ্ম আৰু বিশ্বাস",
+       "exif-iimcategory-sci": "বিজ্ঞান আৰু প্ৰযুক্তি",
+       "exif-iimcategory-soi": "সামাজিক বিষয়সমূহ",
+       "exif-iimcategory-spo": "ক্ৰীড়া",
+       "exif-iimcategory-war": "যুদ্ধ, সংঘাত আৰু উত্তেজনা",
+       "exif-iimcategory-wea": "বতৰ",
+       "exif-urgency-normal": "সাধাৰণ ($1)",
+       "exif-urgency-low": "নিম্ন ($1)",
+       "exif-urgency-high": "উচ্চ ($1)",
+       "exif-urgency-other": "ব্যৱহাৰকাৰী-বিৱৰিত প্ৰাথমিকতা ($1)"
+}
diff --git a/languages/i18n/exif/ast.json b/languages/i18n/exif/ast.json
new file mode 100644 (file)
index 0000000..ae49993
--- /dev/null
@@ -0,0 +1,350 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Esbardu",
+                       "Xuacu"
+               ]
+       },
+       "exif-imagewidth": "Anchor",
+       "exif-imagelength": "Altor",
+       "exif-bitspersample": "Bits por componente",
+       "exif-compression": "Esquema de compresión",
+       "exif-photometricinterpretation": "Composición del píxel",
+       "exif-orientation": "Orientación",
+       "exif-samplesperpixel": "Númberu de componentes",
+       "exif-planarconfiguration": "Distribución de los datos",
+       "exif-ycbcrsubsampling": "Razón de somuestréu d'Y a C",
+       "exif-ycbcrpositioning": "Allugamientu Y y C",
+       "exif-xresolution": "Resolución horizontal",
+       "exif-yresolution": "Resolución vertical",
+       "exif-stripoffsets": "Allugamientu de los datos de la imaxe",
+       "exif-rowsperstrip": "Númberu de fileres por banda",
+       "exif-stripbytecounts": "Bytes por banda comprimida",
+       "exif-jpeginterchangeformat": "Desplazamientu al JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bytes de datos JPEG",
+       "exif-whitepoint": "Cromacidá de puntu blancu",
+       "exif-primarychromaticities": "Cromacidá de los primarios",
+       "exif-ycbcrcoefficients": "Coeficientes de la matriz de tresformación del espaciu de color",
+       "exif-referenceblackwhite": "Pareya de valores blancu y negru de referencia",
+       "exif-datetime": "Data y hora de cambiu del ficheru",
+       "exif-imagedescription": "Títulu de la imaxe",
+       "exif-make": "Fabricante de la cámara",
+       "exif-model": "Modelu de cámara",
+       "exif-software": "Software usáu",
+       "exif-artist": "Autor",
+       "exif-copyright": "Titular del Copyright",
+       "exif-exifversion": "Versión d'Exif",
+       "exif-flashpixversion": "Versión almitida de Flashpix",
+       "exif-colorspace": "Espaciu de color",
+       "exif-componentsconfiguration": "Significáu de cada componente",
+       "exif-compressedbitsperpixel": "Mou de compresión d'imaxe",
+       "exif-pixelxdimension": "Anchor d'imaxe",
+       "exif-pixelydimension": "Altor d'imaxe",
+       "exif-usercomment": "Comentarios del usuariu",
+       "exif-relatedsoundfile": "Archivu d'audiu rellacionáu",
+       "exif-datetimeoriginal": "Data y hora de xeneración de los datos",
+       "exif-datetimedigitized": "Data y hora de dixitalización",
+       "exif-subsectime": "Fecha y hora (precisión infrasegundu)",
+       "exif-subsectimeoriginal": "Fecha y hora del orixinal (precisión infrasegundu)",
+       "exif-subsectimedigitized": "Fecha y hora de la dixitalización (precisión infrasegundu)",
+       "exif-exposuretime": "Tiempu d'esposición",
+       "exif-exposuretime-format": "$1 seg ($2)",
+       "exif-fnumber": "Númberu F",
+       "exif-exposureprogram": "Programa d'esposición",
+       "exif-spectralsensitivity": "Sensitividá espeutral",
+       "exif-isospeedratings": "Sensibilidá ISO",
+       "exif-shutterspeedvalue": "Velocidá APEX del obturador",
+       "exif-aperturevalue": "Abertura APEX",
+       "exif-brightnessvalue": "Brillu APEX",
+       "exif-exposurebiasvalue": "Correición d'esposición",
+       "exif-maxaperturevalue": "Valor máximu d'apertura",
+       "exif-subjectdistance": "Distancia al suxetu",
+       "exif-meteringmode": "Mou de midición",
+       "exif-lightsource": "Fonte de la lluz",
+       "exif-flash": "Flax",
+       "exif-focallength": "Llonxitú focal de la lente",
+       "exif-subjectarea": "Área del suxetu",
+       "exif-flashenergy": "Enerxía del flax",
+       "exif-focalplanexresolution": "Resolución X del planu focal",
+       "exif-focalplaneyresolution": "Resolución Y del planu focal",
+       "exif-focalplaneresolutionunit": "Unidá de resolución del planu focal",
+       "exif-subjectlocation": "Allugamientu del suxetu",
+       "exif-exposureindex": "Índiz d'esposición",
+       "exif-sensingmethod": "Métodu de sensor",
+       "exif-filesource": "Orixe del archivu",
+       "exif-scenetype": "Triba d'escena",
+       "exif-customrendered": "Procesamientu d'imaxe personalizáu",
+       "exif-exposuremode": "Mou d'esposición",
+       "exif-whitebalance": "Balance de blancos",
+       "exif-digitalzoomratio": "Razón de zoom dixital",
+       "exif-focallengthin35mmfilm": "Llonxitú focal en película de 35 mm",
+       "exif-scenecapturetype": "Triba de captura d'escena",
+       "exif-gaincontrol": "Control d'escena",
+       "exif-contrast": "Contraste",
+       "exif-saturation": "Saturación",
+       "exif-sharpness": "Nitidez",
+       "exif-devicesettingdescription": "Descripción de la configuración del dispositivu",
+       "exif-subjectdistancerange": "Intervalu de distacia al suxetu",
+       "exif-imageuniqueid": "Identificación única d'imaxe",
+       "exif-gpsversionid": "Versión de la etiqueta GPS",
+       "exif-gpslatituderef": "Llatitú Norte o Sur",
+       "exif-gpslatitude": "Llatitú",
+       "exif-gpslongituderef": "Llonxitú Este o Oeste",
+       "exif-gpslongitude": "Llonxitú",
+       "exif-gpsaltituderef": "Referencia d'altitú",
+       "exif-gpsaltitude": "Altitú",
+       "exif-gpstimestamp": "Hora GPS (reló atómicu)",
+       "exif-gpssatellites": "Satélites usaos pa la midida",
+       "exif-gpsstatus": "Estáu del receptor",
+       "exif-gpsmeasuremode": "Mou de midida",
+       "exif-gpsdop": "Precisión de midida",
+       "exif-gpsspeedref": "Unidá de velocidá",
+       "exif-gpsspeed": "Velocidá del receutor GPS",
+       "exif-gpstrackref": "Referencia de la direición de movimientu",
+       "exif-gpstrack": "Direición de movimientu",
+       "exif-gpsimgdirectionref": "Referencia de la direición de la imaxe",
+       "exif-gpsimgdirection": "Direición de la imaxe",
+       "exif-gpsmapdatum": "Usaos datos del estudiu xeodésicu",
+       "exif-gpsdestlatituderef": "Referencia de la llatitú de destín",
+       "exif-gpsdestlatitude": "Llatitú de destín",
+       "exif-gpsdestlongituderef": "Referencia de la llonxitú de destín",
+       "exif-gpsdestlongitude": "Llonxitú de destín",
+       "exif-gpsdestbearingref": "Referencia de la orientación de destín",
+       "exif-gpsdestbearing": "Orientación del destín",
+       "exif-gpsdestdistanceref": "Referencia de la distancia al destín",
+       "exif-gpsdestdistance": "Distancia al destín",
+       "exif-gpsprocessingmethod": "Nome del métodu de procesamientu de GPS",
+       "exif-gpsareainformation": "Nome de l'área GPS",
+       "exif-gpsdatestamp": "Fecha GPS",
+       "exif-gpsdifferential": "Correición diferencial de GPS",
+       "exif-jpegfilecomment": "Comentariu del ficheru JPEG",
+       "exif-keywords": "Pallabres clave",
+       "exif-worldregioncreated": "Parte del mundu aú se sacó la semeya",
+       "exif-countrycreated": "País nel que se sacó la semeya",
+       "exif-countrycodecreated": "Códigu del país nel que se sacó la semeya",
+       "exif-provinceorstatecreated": "Provincia o estáu nel que se sacó la semeya",
+       "exif-citycreated": "Ciudá na que se sacó la semeya",
+       "exif-sublocationcreated": "Subdivisión de la ciudá onde se sacó esta semeya",
+       "exif-worldregiondest": "Rexón del mundu amosada",
+       "exif-countrydest": "País amosáu",
+       "exif-countrycodedest": "Códigu del país amosáu",
+       "exif-provinceorstatedest": "Provincia o estáu amosáu",
+       "exif-citydest": "Ciudá amosada",
+       "exif-sublocationdest": "Subdivisión de la ciudá amosada",
+       "exif-objectname": "Títulu curtiu",
+       "exif-specialinstructions": "Instrucciones especiales",
+       "exif-headline": "Titular",
+       "exif-credit": "Créitu/Fornidor",
+       "exif-source": "Fonte",
+       "exif-editstatus": "Estáu editorial de la imaxe",
+       "exif-urgency": "Urxencia",
+       "exif-fixtureidentifier": "Nome del elementu",
+       "exif-locationdest": "Llugar representáu",
+       "exif-locationdestcode": "Códigu del llugar representáu",
+       "exif-objectcycle": "Hora del día a la que se destina esti mediu",
+       "exif-contact": "Información de contautu",
+       "exif-writer": "Redactor",
+       "exif-languagecode": "Llingua",
+       "exif-iimversion": "Versión d'IIM",
+       "exif-iimcategory": "Categoría",
+       "exif-iimsupplementalcategory": "Categoríes suplementaries",
+       "exif-datetimeexpires": "Nun usar dempués de",
+       "exif-datetimereleased": "Asoleyada el",
+       "exif-originaltransmissionref": "Códigu orixinal de llocalización de tresmisión",
+       "exif-identifier": "Identificador",
+       "exif-lens": "Lente usada",
+       "exif-serialnumber": "Númberu de serie de la cámara",
+       "exif-cameraownername": "Dueñu de la cámara",
+       "exif-label": "Etiqueta",
+       "exif-datetimemetadata": "Hora que camudaron los metadatos la cabera vegada",
+       "exif-nickname": "Nome informal de la imaxe",
+       "exif-rating": "Puntos (sobre 5)",
+       "exif-rightscertificate": "Certificáu de xestión de drechos",
+       "exif-copyrighted": "Estáu del copyright",
+       "exif-copyrightowner": "Titular del copyright",
+       "exif-usageterms": "Términos d'usu",
+       "exif-webstatement": "Declaración en llinia de drechos d'autor",
+       "exif-originaldocumentid": "ID única del documentu orixinal",
+       "exif-licenseurl": "URL de la llicencia de drechos d'autor",
+       "exif-morepermissionsurl": "Información de llicencia alternativa",
+       "exif-attributionurl": "Al re-usar esta obra, por favor enllazar a",
+       "exif-preferredattributionname": "Al re-usar esta obra, por favor atribuir a",
+       "exif-pngfilecomment": "Comentariu del ficheru PNG",
+       "exif-disclaimer": "Avisu xeneral",
+       "exif-contentwarning": "Avisu sobro'l conteníu",
+       "exif-giffilecomment": "Comentariu del ficheru GIF",
+       "exif-intellectualgenre": "Triba d'elementu",
+       "exif-subjectnewscode": "Códigu del tema",
+       "exif-scenecode": "Códigu d'escena IPTC",
+       "exif-event": "Acontecimientu representáu",
+       "exif-organisationinimage": "Organización representada",
+       "exif-personinimage": "Persona representada",
+       "exif-originalimageheight": "Altor de la imaxe enantes de cortase",
+       "exif-originalimagewidth": "Anchor de la imaxe enantes de cortase",
+       "exif-compression-1": "Non comprimida",
+       "exif-compression-2": "CCITT Grupu 3 codificación Huffman RLE con Modificación 1-Dimensional",
+       "exif-compression-3": "Codificación de fax CCITT Grupu 3",
+       "exif-compression-4": "Codificación de fax CCITT Grupu 4",
+       "exif-compression-6": "JPEG (antiguu)",
+       "exif-copyrighted-true": "Con drechos d'autor",
+       "exif-copyrighted-false": "Drechos d'autor ensin configurar",
+       "exif-photometricinterpretation-1": "Blancu y prietu (El prietu ye 0)",
+       "exif-unknowndate": "Fecha desconocida",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Voltiada horizontalmente",
+       "exif-orientation-3": "Rotada 180°",
+       "exif-orientation-4": "Voltiada verticalmente",
+       "exif-orientation-5": "Rotada 90° a manzorga y voltiada verticalmente",
+       "exif-orientation-6": "Xirada 90° en sentíu antihorariu",
+       "exif-orientation-7": "Rotada 90° a mandrecha y voltiada verticalmente",
+       "exif-orientation-8": "Xirada 90° en sentíu horariu",
+       "exif-planarconfiguration-1": "formatu irregular",
+       "exif-planarconfiguration-2": "formatu planu",
+       "exif-xyresolution-i": "$1 ppp",
+       "exif-xyresolution-c": "$1 ppc",
+       "exif-colorspace-65535": "Ensin calibrar",
+       "exif-componentsconfiguration-0": "nun esiste",
+       "exif-exposureprogram-0": "Non definida",
+       "exif-exposureprogram-1": "Manual",
+       "exif-exposureprogram-2": "Programa normal",
+       "exif-exposureprogram-3": "Prioridá d'apertura",
+       "exif-exposureprogram-4": "Prioridá d'obturador",
+       "exif-exposureprogram-5": "Programa creativu (con prioridá de profundidá de campu)",
+       "exif-exposureprogram-6": "Programa d'aición (prioridá d'alta velocidá del obturador)",
+       "exif-exposureprogram-7": "Mou retratu (pa semeyes cercanes col fondu desenfocáu)",
+       "exif-exposureprogram-8": "Mou paisaxe (pa semeyes amplies col fondu enfocáu)",
+       "exif-subjectdistance-value": "{{PLURAL:$1|$1 metru|$1 metros}}",
+       "exif-meteringmode-0": "Desconocíu",
+       "exif-meteringmode-1": "Media",
+       "exif-meteringmode-2": "Media ponderada centrada",
+       "exif-meteringmode-3": "Puntual",
+       "exif-meteringmode-4": "Multipuntu",
+       "exif-meteringmode-5": "Patrón",
+       "exif-meteringmode-6": "Parcial",
+       "exif-meteringmode-255": "Otru",
+       "exif-lightsource-0": "Desconocida",
+       "exif-lightsource-1": "Lluz diurna",
+       "exif-lightsource-2": "Fluorescente",
+       "exif-lightsource-3": "Tungstenu (lluz incandescente)",
+       "exif-lightsource-4": "Flax",
+       "exif-lightsource-9": "Tiempu despexáu",
+       "exif-lightsource-10": "Tiempu ñubláu",
+       "exif-lightsource-11": "Solombra",
+       "exif-lightsource-12": "Fluorescente lluz de día (D 5700 – 7100K)",
+       "exif-lightsource-13": "Fluorescente blancu día (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fluorescente blancu fríu (W 3900 – 4500K)",
+       "exif-lightsource-15": "Fluorescente blancu (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Lluz estándar A",
+       "exif-lightsource-18": "Lluz estándar B",
+       "exif-lightsource-19": "Lluz estándar C",
+       "exif-lightsource-24": "Tungstenu ISO d'estudio",
+       "exif-lightsource-255": "Otra fonte de lluz",
+       "exif-flash-fired-0": "Flax non disparáu",
+       "exif-flash-fired-1": "Flax disparáu",
+       "exif-flash-return-0": "ensin función de deteición de retornu estroboscópicu",
+       "exif-flash-return-2": "lluz de retornu estroboscópicu non detectada",
+       "exif-flash-return-3": "lluz de retornu estroboscópicu detectada",
+       "exif-flash-mode-1": "disparu de flax forciáu",
+       "exif-flash-mode-2": "supresión de flax forciáu",
+       "exif-flash-mode-3": "mou automáticu",
+       "exif-flash-function-1": "Ensin función de flax",
+       "exif-flash-redeye-1": "mou d'amenorgamientu de güeyos encarnaos",
+       "exif-focalplaneresolutionunit-2": "pulgaes",
+       "exif-sensingmethod-1": "Non definíu",
+       "exif-sensingmethod-2": "Sensor d'área de color d'un chip",
+       "exif-sensingmethod-3": "Sensor d'área de color de dos chips",
+       "exif-sensingmethod-4": "Sensor d'área de color de tres chips",
+       "exif-sensingmethod-5": "Sensor d'área secuencial de color",
+       "exif-sensingmethod-7": "Sensor Trillinial",
+       "exif-sensingmethod-8": "Sensor llinial secuencial de color",
+       "exif-filesource-3": "Cámara fotográfica dixital",
+       "exif-scenetype-1": "Una imaxe fotografiada direutamente",
+       "exif-customrendered-0": "Procesu normal",
+       "exif-customrendered-1": "Procesu personalizáu",
+       "exif-exposuremode-0": "Esposición automática",
+       "exif-exposuremode-1": "Esposición manual",
+       "exif-exposuremode-2": "Puesta ente paréntesis automática",
+       "exif-whitebalance-0": "Balance automáticu de blancos",
+       "exif-whitebalance-1": "Balance manual de blancos",
+       "exif-scenecapturetype-0": "Estándar",
+       "exif-scenecapturetype-1": "Paisaxe",
+       "exif-scenecapturetype-2": "Retratu",
+       "exif-scenecapturetype-3": "Escena nocherniega",
+       "exif-gaincontrol-0": "Nenguna",
+       "exif-gaincontrol-1": "Aumentu de ganancia baxu",
+       "exif-gaincontrol-2": "Aumentu de ganancia altu",
+       "exif-gaincontrol-3": "Mengua de ganancia baxa",
+       "exif-gaincontrol-4": "Mengua de ganancia alta",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Suave",
+       "exif-contrast-2": "Fuerte",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Saturación baxa",
+       "exif-saturation-2": "Saturación alta",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Suave",
+       "exif-sharpness-2": "Fuerte",
+       "exif-subjectdistancerange-0": "Desconocíu",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Vista averada",
+       "exif-subjectdistancerange-3": "Vista alloñada",
+       "exif-gpslatitude-n": "Llatitú Norte",
+       "exif-gpslatitude-s": "Llatitú Sur",
+       "exif-gpslongitude-e": "Lloxitú Este",
+       "exif-gpslongitude-w": "Lloxitú Oeste",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metru|metros}} sobro'l nivel del mar",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metru|metros}} baxo'l nivel del mar",
+       "exif-gpsstatus-a": "Midición en progresu",
+       "exif-gpsstatus-v": "Interoperabilidá de la midición",
+       "exif-gpsmeasuremode-2": "Midición bidimensional",
+       "exif-gpsmeasuremode-3": "Midición tridimensional",
+       "exif-gpsspeed-k": "Quilómetros por hora",
+       "exif-gpsspeed-m": "Milles por hora",
+       "exif-gpsspeed-n": "Nueyos",
+       "exif-gpsdestdistance-k": "Quilómetros",
+       "exif-gpsdestdistance-m": "Milles",
+       "exif-gpsdestdistance-n": "Milles náutiques",
+       "exif-gpsdop-excellent": "Escelente ($1)",
+       "exif-gpsdop-good": "Bona ($1)",
+       "exif-gpsdop-moderate": "Moderada ($1)",
+       "exif-gpsdop-fair": "Xusta ($1)",
+       "exif-gpsdop-poor": "Probe ($1)",
+       "exif-objectcycle-a": "Sólo pola mañana",
+       "exif-objectcycle-p": "Sólo pola tarde",
+       "exif-objectcycle-b": "Pola mañana y pola tarde",
+       "exif-gpsdirection-t": "Direición real",
+       "exif-gpsdirection-m": "Direición magnética",
+       "exif-ycbcrpositioning-1": "Centráu",
+       "exif-ycbcrpositioning-2": "Co-llocalizaos",
+       "exif-dc-contributor": "Collaboradores",
+       "exif-dc-coverage": "Estensión espacial o temporal del conteníu",
+       "exif-dc-date": "Data(es)",
+       "exif-dc-publisher": "Editor",
+       "exif-dc-relation": "Otros medios rellacionaos",
+       "exif-dc-rights": "Drechos",
+       "exif-dc-source": "Mediu orixinal",
+       "exif-dc-type": "Triba de mediu",
+       "exif-rating-rejected": "Refugáu",
+       "exif-isospeedratings-overflow": "Mayor que 65535",
+       "exif-iimcategory-ace": "Arte, cultura y entretenimientu",
+       "exif-iimcategory-clj": "Crime y drechu",
+       "exif-iimcategory-dis": "Desastres y accidentes",
+       "exif-iimcategory-fin": "Economía y negocios",
+       "exif-iimcategory-edu": "Educación",
+       "exif-iimcategory-evn": "Mediu ambiente",
+       "exif-iimcategory-hth": "Salú",
+       "exif-iimcategory-hum": "Interés humanu",
+       "exif-iimcategory-lab": "Trabayu",
+       "exif-iimcategory-lif": "Estilu de vida y recréu",
+       "exif-iimcategory-pol": "Política",
+       "exif-iimcategory-rel": "Relixón y creencies",
+       "exif-iimcategory-sci": "Ciencia y teunoloxía",
+       "exif-iimcategory-soi": "Cuestiones sociales",
+       "exif-iimcategory-spo": "Deportes",
+       "exif-iimcategory-war": "Guerra, conflictos y protestes",
+       "exif-iimcategory-wea": "Meteoroloxía",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Baxa ($1)",
+       "exif-urgency-high": "Alta ($1)",
+       "exif-urgency-other": "Prioridá definía pol usuariu ($1)"
+}
diff --git a/languages/i18n/exif/avk.json b/languages/i18n/exif/avk.json
new file mode 100644 (file)
index 0000000..dae1057
--- /dev/null
@@ -0,0 +1,154 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Axel xadolik",
+                       "Sab",
+                       "Wikimistusik"
+               ]
+       },
+       "exif-imagewidth": "Mantuca",
+       "exif-imagelength": "Ontinuca",
+       "exif-compression": "Raxivaracave",
+       "exif-photometricinterpretation": "'Pixel' ponara",
+       "exif-orientation": "Woyok",
+       "exif-samplesperpixel": "Spertota",
+       "exif-planarconfiguration": "Vuks ke origeem",
+       "exif-ycbcrpositioning": "Y is C tirka",
+       "exif-xresolution": "Résolution de l'image en largeur",
+       "exif-yresolution": "Résolution de l'image en hauteur",
+       "exif-stripoffsets": "Xo ke ewavorigeem",
+       "exif-rowsperstrip": "Blayblayon conhota",
+       "exif-jpeginterchangeformat": "Position du SOI JPEG",
+       "exif-jpeginterchangeformatlength": "Taille en octet des données JPEG",
+       "exif-datetime": "Evla is bartiv va betara va iyeltak",
+       "exif-imagedescription": "Ewavavergumvelt",
+       "exif-make": "Iasik va de",
+       "exif-model": "Deteza",
+       "exif-software": "Faven talpeyot",
+       "exif-artist": "Askisik",
+       "exif-copyright": "Digisik va copyright",
+       "exif-exifversion": "Version exif",
+       "exif-colorspace": "Ksevaxo",
+       "exif-compressedbitsperpixel": "Ewavaraxivaracave",
+       "exif-pixelxdimension": "Mante ke enafa ewava",
+       "exif-pixelydimension": "Ontine ke enafa ewava",
+       "exif-usercomment": "Favesikaf sebuks",
+       "exif-relatedsoundfile": "Fichier audio lié",
+       "exif-datetimeoriginal": "Viel is gemelt ke nasbara va origeem",
+       "exif-datetimedigitized": "Evla is gemelt ke vulegara",
+       "exif-exposuretime": "Wonarugal",
+       "exif-fnumber": "F Ota",
+       "exif-exposureprogram": "Wonaratalpey",
+       "exif-isospeedratings": "ISO kalieka",
+       "exif-shutterspeedvalue": "Kaliuca ke budesiki",
+       "exif-aperturevalue": "Fenkura",
+       "exif-brightnessvalue": "Afiuca",
+       "exif-subjectdistance": "Soluma va plek",
+       "exif-lightsource": "Afiklita",
+       "exif-flash": "Divafira",
+       "exif-subjectarea": "Lizuxo ke plek",
+       "exif-flashenergy": "Divafirafa",
+       "exif-subjectlocation": "Xo ke plek",
+       "exif-exposureindex": "Konedireka",
+       "exif-sensingmethod": "Siakranuva",
+       "exif-filesource": "Iyeltakklita",
+       "exif-scenetype": "Nakilord",
+       "exif-exposuremode": "Konedirinda",
+       "exif-whitebalance": "Balance des blancs",
+       "exif-gaincontrol": "Stujera va nakila",
+       "exif-contrast": "Kevaxanuca",
+       "exif-saturation": "Keldelanuca",
+       "exif-sharpness": "Gentim",
+       "exif-imageuniqueid": "Tanewava ID",
+       "exif-gpslatituderef": "Lentef ok geef laksiwak",
+       "exif-gpslatitude": "Laksiwak",
+       "exif-gpslongituderef": "Ronef ok taltef wak",
+       "exif-gpslongitude": "Wak",
+       "exif-gpsaltituderef": "Ontinukeka",
+       "exif-gpsaltitude": "Ontinuk",
+       "exif-gpsmeasuremode": "Sabegaracave",
+       "exif-gpsdop": "Sabegarelimuca",
+       "exif-gpsspeedref": "Kaliucolk",
+       "exif-gpstrackref": "Kallizirafa giva",
+       "exif-gpstrack": "Lizirania",
+       "exif-gpsimgdirectionref": "Ewavaniafa giva",
+       "exif-gpsimgdirection": "Ewavania",
+       "exif-gpsdestlatituderef": "Kallaksiwakafa giva",
+       "exif-gpsdestlatitude": "Kof laksiwak",
+       "exif-gpsdestlongituderef": "Kalwakafa giva",
+       "exif-gpsdestlongitude": "Kof wak",
+       "exif-gpsdestdistanceref": "Kalsolumafa giva",
+       "exif-gpsdestdistance": "Kofa soluma",
+       "exif-gpsdatestamp": "GPS evla",
+       "exif-compression-1": "Raxivariskafa",
+       "exif-unknowndate": "Megrupena evla",
+       "exif-orientation-1": "Preksafa",
+       "exif-orientation-2": "Inversée horizontalement",
+       "exif-orientation-3": "Tournée de 180°",
+       "exif-orientation-4": "Inversée verticalement",
+       "exif-orientation-5": "Tournée de 90° à gauche et inversée verticalement",
+       "exif-orientation-6": "Tournée de 90° à droite",
+       "exif-orientation-7": "Tournée de 90° à droite et inversée verticalement",
+       "exif-orientation-8": "Tournée de 90° à gauche",
+       "exif-componentsconfiguration-0": "n'existe pas",
+       "exif-exposureprogram-0": "Metentuyun",
+       "exif-exposureprogram-1": "Nubedaf",
+       "exif-exposureprogram-2": "Preksaf talpey",
+       "exif-exposureprogram-3": "Abdukuca ke fenkura",
+       "exif-exposureprogram-4": "Abdukuca ke budesiki",
+       "exif-subjectdistance-value": "$1 metrolk",
+       "exif-meteringmode-0": "Megrupen",
+       "exif-meteringmode-1": "Mialuk",
+       "exif-meteringmode-5": "Fum",
+       "exif-meteringmode-6": "Pakaf",
+       "exif-meteringmode-255": "Ar",
+       "exif-lightsource-0": "Megrupen",
+       "exif-lightsource-1": "Afiz",
+       "exif-lightsource-4": "Divafira",
+       "exif-lightsource-9": "Sazanh",
+       "exif-lightsource-10": "Rujodaf saz",
+       "exif-lightsource-11": "Izga",
+       "exif-lightsource-17": "A preksayafi afi",
+       "exif-lightsource-18": "B preksayafi afi",
+       "exif-lightsource-19": "C preksayafi afi",
+       "exif-lightsource-255": "Ara afiklita",
+       "exif-focalplaneresolutionunit-2": "'inch'",
+       "exif-sensingmethod-1": "Metentun",
+       "exif-customrendered-0": "Preksafa abduaxa",
+       "exif-customrendered-1": "Favesikafa abduaxa",
+       "exif-exposuremode-0": "Mivaskafa konedira",
+       "exif-exposuremode-1": "Nubedafa konedira",
+       "exif-scenecapturetype-0": "Preksayon",
+       "exif-scenecapturetype-1": "Patctoykoron",
+       "exif-scenecapturetype-2": "Deltkoron",
+       "exif-scenecapturetype-3": "Mielnakila",
+       "exif-gaincontrol-0": "Mek",
+       "exif-gaincontrol-1": "Lopoamara",
+       "exif-gaincontrol-2": "Lopoapara",
+       "exif-gaincontrol-3": "Lepoamara",
+       "exif-gaincontrol-4": "Lepoapara",
+       "exif-contrast-0": "Prekson",
+       "exif-contrast-1": "Omon",
+       "exif-contrast-2": "Ontinon",
+       "exif-saturation-0": "Prekson",
+       "exif-saturation-1": "Keldelamara",
+       "exif-saturation-2": "Keldelapara",
+       "exif-sharpness-0": "Prekson",
+       "exif-sharpness-1": "Omon",
+       "exif-sharpness-2": "Ontinon",
+       "exif-subjectdistancerange-0": "Megrupenon",
+       "exif-subjectdistancerange-2": "Budera va wira",
+       "exif-subjectdistancerange-3": "Solumawira",
+       "exif-gpslatitude-n": "Lentelaksiwak",
+       "exif-gpslatitude-s": "Gelaksiwak",
+       "exif-gpslongitude-e": "Ronewak",
+       "exif-gpslongitude-w": "Taltewak",
+       "exif-gpsstatus-a": "Dun sabeson",
+       "exif-gpsmeasuremode-2": "2-lumafa sabera",
+       "exif-gpsmeasuremode-3": "3-lumafa sabera",
+       "exif-gpsspeed-k": "Bartivon decitmetrolk se",
+       "exif-gpsspeed-m": "Bartivon 'mile'",
+       "exif-gpsspeed-n": "Webokeem",
+       "exif-gpsdirection-t": "Ageltania",
+       "exif-gpsdirection-m": "Zatnia"
+}
diff --git a/languages/i18n/exif/awa.json b/languages/i18n/exif/awa.json
new file mode 100644 (file)
index 0000000..e8b3f08
--- /dev/null
@@ -0,0 +1,345 @@
+{
+       "@metadata": {
+               "authors": [
+                       "1AnuraagPandey"
+               ]
+       },
+       "exif-imagewidth": "चौडाई",
+       "exif-imagelength": "उचाई",
+       "exif-bitspersample": "प्रति घटक बीट्स",
+       "exif-compression": "कम्प्रेशन योजना",
+       "exif-photometricinterpretation": "पिक्सल रचना",
+       "exif-orientation": "अभिविन्यास",
+       "exif-samplesperpixel": "घटक कय संख्या",
+       "exif-planarconfiguration": "डाटा रचना",
+       "exif-ycbcrsubsampling": "Y कय C कय साथे सबसॅम्पलींग अनुमान",
+       "exif-ycbcrpositioning": "Y अव C व्यवस्थापन",
+       "exif-xresolution": "होरिज़ॉंटल रिज़ोल्यूशन",
+       "exif-yresolution": "व्हर्टिकल रिज़ोल्यूशन",
+       "exif-stripoffsets": "चित्र डाटा स्थान",
+       "exif-rowsperstrip": "हर स्ट्रीप मा कतार कय गिन्ती",
+       "exif-stripbytecounts": "कॉम्प्रेस्स्ड स्ट्रीपमें बाईट्स",
+       "exif-jpeginterchangeformat": "अफसेट से JPEG SOI",
+       "exif-jpeginterchangeformatlength": "JPEG डेटा कय बाइट",
+       "exif-whitepoint": "उज्जर बिंदू क्रोमॅटिसिटी",
+       "exif-primarychromaticities": "क्रोमॅटिसिटीज ऑफ प्राईमारिटीज",
+       "exif-ycbcrcoefficients": "कलर स्पेस ट्रान्स्फॉर्मेशन मॅट्रीक्स कोएफिशीयंट्स",
+       "exif-referenceblackwhite": "करीया औ उज्जर संदर्भ मूल्यन कय जोड़ी",
+       "exif-datetime": "फ़ाईल बदलाव दिनांक औ समय",
+       "exif-imagedescription": "चित्र शिर्षक",
+       "exif-make": "क्यामेरा निर्माता",
+       "exif-model": "क्यामरा मोडल",
+       "exif-software": "इस्तेमाल करल सॉफ्टवेयर",
+       "exif-artist": "लेखक",
+       "exif-copyright": "कपीराइट धारक",
+       "exif-exifversion": "Exif संस्करण",
+       "exif-flashpixversion": "सपोर्टेड फ्लॅशपीक्स अवतरण",
+       "exif-colorspace": "रंग स्थान",
+       "exif-componentsconfiguration": "हर घटक कय मतलब",
+       "exif-compressedbitsperpixel": "चित्र कॉम्प्रेशन मोड",
+       "exif-pixelxdimension": "छवि चौड़ाई",
+       "exif-pixelydimension": "छवि ऊँचाई",
+       "exif-usercomment": "सदस्य टिप्पणी",
+       "exif-relatedsoundfile": "संबंधित ध्वनी फ़ाईल",
+       "exif-datetimeoriginal": "डेटा सञ्चालन कय मिति अव समय",
+       "exif-datetimedigitized": "डिजिटाईज़िंग कय दिनांक औ समय",
+       "exif-subsectime": "दिनांकसमय उपसेकंद",
+       "exif-subsectimeoriginal": "मूलदिनांकसमय उपसेकंड",
+       "exif-subsectimedigitized": "दिनांकसमयडिजिटाईज्ड उपसेकेंड",
+       "exif-exposuretime": "एक्स्पोज़र समय",
+       "exif-exposuretime-format": "$1 सेकंड ($2)",
+       "exif-fnumber": "F संख्या",
+       "exif-exposureprogram": "एक्स्पोजर कार्यक्रम",
+       "exif-spectralsensitivity": "वर्णक्रमीय संवेदनशीलता",
+       "exif-isospeedratings": "आईएसओ गति रेटिंग",
+       "exif-shutterspeedvalue": "APEX शटर गती",
+       "exif-aperturevalue": "APEX ऍपर्चर",
+       "exif-brightnessvalue": "APEX चमक",
+       "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": "श्वेत सन्तुलन",
+       "exif-digitalzoomratio": "डिजिटल झूम अनुमान",
+       "exif-focallengthin35mmfilm": "३५ मी.मी. फ़ील्ममें फोकल लंबाई",
+       "exif-scenecapturetype": "दृश्य पकड़ प्रकार",
+       "exif-gaincontrol": "दृश्य नियन्त्रण",
+       "exif-contrast": "कॉन्ट्रास्ट",
+       "exif-saturation": "सॅचूरेशन",
+       "exif-sharpness": "शार्पनेस",
+       "exif-devicesettingdescription": "उपकरण रचना वर्णन",
+       "exif-subjectdistancerange": "विषय दूरी सीमा",
+       "exif-imageuniqueid": "यूनिक चित्र ID",
+       "exif-gpsversionid": "GPS टॅग अवतरण",
+       "exif-gpslatituderef": "उत्तर या दक्खिन अक्षांश",
+       "exif-gpslatitude": "अक्षांश",
+       "exif-gpslongituderef": "पुरुब या पच्छु रेखांश",
+       "exif-gpslongitude": "रेखांश",
+       "exif-gpsaltituderef": "ऊंचाई संदर्भ",
+       "exif-gpsaltitude": "उँचाई",
+       "exif-gpstimestamp": "GPS समय (एटोमिक क्लॉक)",
+       "exif-gpssatellites": "मापन खत्तिर इस्तेमाल करल सैटेलाईट",
+       "exif-gpsstatus": "रिसिभर अवस्था",
+       "exif-gpsmeasuremode": "माप मोड",
+       "exif-gpsdop": "मेज़रमेंट प्रिसिजन",
+       "exif-gpsspeedref": "गति इकाई",
+       "exif-gpsspeed": "GPS रिसिवर कय गती",
+       "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": "GPS विभाग कय नाम",
+       "exif-gpsdatestamp": "GPS दिनांक",
+       "exif-gpsdifferential": "GPS डिफरन्शियर करेक्शन",
+       "exif-jpegfilecomment": "JPEG फ़ाइल टिप्पणी",
+       "exif-keywords": "कीवर्ड",
+       "exif-worldregioncreated": "दुनिया क्षेत्र जहां इ चित्र लै ग रहा",
+       "exif-countrycreated": "देश जहां इ चित्र लै ग रहा",
+       "exif-countrycodecreated": "तस्विर खिचल देश कय कोड",
+       "exif-provinceorstatecreated": "प्रांत या राज्य जहां इ चित्र लै ग रहा",
+       "exif-citycreated": "शहर जहां इ चित्र लै ग रहा",
+       "exif-sublocationcreated": "यह चित्र शहर कि इस जगह जहा मे लिया गया था",
+       "exif-worldregiondest": "दुनिया कय क्षेत्र देखाइ गा है",
+       "exif-countrydest": "देश देखाइ गा है",
+       "exif-countrycodedest": "देखावल देश कय कोड",
+       "exif-provinceorstatedest": "देखावल प्रान्त या क्षेत्र",
+       "exif-citydest": "देखावल शहर",
+       "exif-sublocationdest": "देखावल सहर भित्तर कय क्षेत्र",
+       "exif-objectname": "छोट शीर्षक",
+       "exif-specialinstructions": "विशेष निर्देश",
+       "exif-headline": "शीर्षक",
+       "exif-credit": "श्रेय/प्रदायक",
+       "exif-source": "स्रोत",
+       "exif-editstatus": "तस्विर कय सम्पादकीय स्थिती",
+       "exif-urgency": "तात्कालिकता",
+       "exif-fixtureidentifier": "फिक्चर कय नाम",
+       "exif-locationdest": "देखावल जगह",
+       "exif-locationdestcode": "देखावल जगहि कय कोड",
+       "exif-objectcycle": " दिन के समय जिसके लिए यह मीडिया है",
+       "exif-contact": "संपर्क जानकारी",
+       "exif-writer": "लेखक",
+       "exif-languagecode": "भाषा",
+       "exif-iimversion": "आईआईएम संस्करण",
+       "exif-iimcategory": "श्रेणी",
+       "exif-iimsupplementalcategory": "पुरक श्रेणी",
+       "exif-datetimeexpires": "एकरे बाद मा इस्तेमाल ना करा जाइ",
+       "exif-datetimereleased": "पे जारी",
+       "exif-originaltransmissionref": "मूल प्रसारण स्थान कोड",
+       "exif-identifier": "पहचानकर्ता",
+       "exif-lens": "इस्तेमाल करल लेंस",
+       "exif-serialnumber": "कैमरा कय क्रमांक नंबर",
+       "exif-cameraownername": "कैमरा कय मालिक",
+       "exif-label": "लेबल",
+       "exif-datetimemetadata": "मेटा जानकारी अन्तिम सम्पादन करल दिन",
+       "exif-nickname": "छवि कय अनौपचारिक नाँव",
+       "exif-rating": "दर्ज़ा (5 से)",
+       "exif-rightscertificate": "अधिकार प्रबंधन प्रमाण पत्र",
+       "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-2": "CCITT समूह 3 1-Dimensional Modified Huffman संचालन इन्कोडिङ्ग",
+       "exif-compression-3": "CCITT ग्रुप 3 फ़ैक्स एनकोडिंग",
+       "exif-compression-4": "CCITT ग्रुप 4 फ़ैक्स एनकोडिंग",
+       "exif-copyrighted-true": "कॉपीराईट",
+       "exif-copyrighted-false": "कॉपीराइट स्थिति अनिर्दिष्ट",
+       "exif-unknowndate": "अज्ञात तारीख",
+       "exif-orientation-1": "सामान्य",
+       "exif-orientation-2": "हॉरिज़ॉन्टली घुमाइ गय",
+       "exif-orientation-3": "180° घूमाइ गय",
+       "exif-orientation-4": "वर्टिकली घुमाइ गय",
+       "exif-orientation-5": "90° CCW घुमाइ गय औ वर्टिकली बदलि गय",
+       "exif-orientation-6": "90° CCW घुमाइ गय",
+       "exif-orientation-7": "90° CW घुमाइ गय औ वर्टिकली बदलि गय",
+       "exif-orientation-8": "90° CW घुमाइ गय",
+       "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-exposureprogram-5": "क्रियेटीव्ह कार्यक्रम (फ़ील्ड कय डेप्थ कय तरफ बायस्‌ड)",
+       "exif-exposureprogram-6": "ऐक्शन कार्यक्रम (शटर कय गती कय तरफ बायस्‌ड)",
+       "exif-exposureprogram-7": "पोर्ट्रेट मोड (क्लोज़‍अप फ़ोटो कय लिये)",
+       "exif-exposureprogram-8": "लैंडस्केप मोड (बैकग्राउंड कय साथे लैंडस्केप फोटो)",
+       "exif-subjectdistance-value": "$1 मीटर",
+       "exif-meteringmode-0": "अज्ञात",
+       "exif-meteringmode-1": "औसत",
+       "exif-meteringmode-2": "सेंटरवेटेडएवरेज",
+       "exif-meteringmode-3": "स्पॉट",
+       "exif-meteringmode-4": "मल्टीस्पॉट",
+       "exif-meteringmode-5": "ढाँचा",
+       "exif-meteringmode-6": "आंशिक",
+       "exif-meteringmode-255": "अउर",
+       "exif-lightsource-0": "अज्ञात",
+       "exif-lightsource-1": "सूर्यप्रकाश",
+       "exif-lightsource-2": "फ्लूरोसेंट",
+       "exif-lightsource-3": "टंगस्ट्न (इनकॅन्‍डेसेंट प्रकाश)",
+       "exif-lightsource-4": "फ्लॅश",
+       "exif-lightsource-9": "साफ मौसम",
+       "exif-lightsource-10": "बदरी",
+       "exif-lightsource-11": "छाँह",
+       "exif-lightsource-12": "डेलाईट फ्लूरोसेंट (D 5700 – 7100K)",
+       "exif-lightsource-13": "डे व्हाईट फ्लूरोसेंट (N 4600 – 5400K)",
+       "exif-lightsource-14": "कूल व्हाईट फ्लूरोसेंट (W 3900 – 4500K)",
+       "exif-lightsource-15": "व्हाईट फ्लूरोसेंट (WW 3200 – 3700K)",
+       "exif-lightsource-17": "प्रमाण प्रकाश A",
+       "exif-lightsource-18": "प्रमाण प्रकाश B",
+       "exif-lightsource-19": "प्रमाण प्रकाश C",
+       "exif-lightsource-24": "ISO स्टूडीयो टंगस्टन",
+       "exif-lightsource-255": "अउर प्रकाश स्रोत",
+       "exif-flash-fired-0": "फ़्लैश नाइ चला",
+       "exif-flash-fired-1": "फ़्लैश चला",
+       "exif-flash-return-0": "कवनो फ़्लैश वापसी पहिचान सुविधा नाइ",
+       "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-sensingmethod-7": "ट्रायलिनीयर सेंसर",
+       "exif-sensingmethod-8": "कलर सिक्वेंशीयल लिनीयर सेन्सर",
+       "exif-filesource-3": "डिजिटल स्टिल कैमरा",
+       "exif-scenetype-1": "सिधै खिचल चित्र",
+       "exif-customrendered-0": "सामान्य प्रक्रिया",
+       "exif-customrendered-1": "व्यक्तिगत प्रक्रिया",
+       "exif-exposuremode-0": "ऑटो एक्स्पोज़र",
+       "exif-exposuremode-1": "मैन्युअल एक्पोज़र",
+       "exif-exposuremode-2": "ऑटो ब्रॅकेट",
+       "exif-whitebalance-0": "ऑटो व्हाईट बैलेन्स",
+       "exif-whitebalance-1": "मॅन्यूअल व्हाईट बॅलेन्स",
+       "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-saturation-0": "सामान्य",
+       "exif-saturation-1": "निम्न सैचुरेशन",
+       "exif-saturation-2": "उच्च सैचुरेशन",
+       "exif-sharpness-0": "साधारण",
+       "exif-sharpness-1": "नरम",
+       "exif-sharpness-2": "कडा",
+       "exif-subjectdistancerange-0": "अज्ञात",
+       "exif-subjectdistancerange-1": "मैक्रो",
+       "exif-subjectdistancerange-2": "नजदीक से देखा जाय",
+       "exif-subjectdistancerange-3": "लम्मे से देखा जाय",
+       "exif-gpslatitude-n": "उत्तरी अक्षांश",
+       "exif-gpslatitude-s": "दक्खिनी अक्षांश",
+       "exif-gpslongitude-e": "पुरुबी रेखांश",
+       "exif-gpslongitude-w": "पच्छु रेखांश",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter|meters}} समुद्र स्तर से ऊप्पर",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter|meters}} समुद्र स्तर कय नीचे",
+       "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-gpsdestdistance-m": "मील",
+       "exif-gpsdestdistance-n": "समुद्री मील",
+       "exif-gpsdop-excellent": "उत्कृष्ट ( $1 )",
+       "exif-gpsdop-good": "निक ($1)",
+       "exif-gpsdop-moderate": "मध्यम ($1)",
+       "exif-gpsdop-fair": "ठिकय ($1)",
+       "exif-gpsdop-poor": "खराब ($1)",
+       "exif-objectcycle-a": "खाली भिन्नही",
+       "exif-objectcycle-p": "खाली सन्झा",
+       "exif-objectcycle-b": "दुनो भिन्नही अव सन्झा",
+       "exif-gpsdirection-t": "असली दिशा",
+       "exif-gpsdirection-m": "चुम्बकिय दिशा",
+       "exif-ycbcrpositioning-1": "केंद्रित",
+       "exif-ycbcrpositioning-2": "को-साइटेड",
+       "exif-dc-contributor": "योगदानकर्ता",
+       "exif-dc-coverage": "मीडिया कय स्थानिक या लौकिक स्कोप",
+       "exif-dc-date": "दिनांक",
+       "exif-dc-publisher": "प्रकाशक",
+       "exif-dc-relation": "सम्बधित मीडिया",
+       "exif-dc-rights": "अधिकार",
+       "exif-dc-source": "मीडिया स्रोत",
+       "exif-dc-type": "मीडिया कय प्रकार",
+       "exif-rating-rejected": "खारिज कै दिहा गय",
+       "exif-isospeedratings-overflow": "६५५३५ से ढेर",
+       "exif-iimcategory-ace": "कला, संस्कृति औ मनोरंजन",
+       "exif-iimcategory-clj": "अपराध औ कानून",
+       "exif-iimcategory-dis": "प्रकोप अव दुर्घटना",
+       "exif-iimcategory-fin": "अर्थव्यवस्था औ व्यापार",
+       "exif-iimcategory-edu": "शिक्षा",
+       "exif-iimcategory-evn": "पर्यावरण",
+       "exif-iimcategory-hth": "स्वास्थ्य",
+       "exif-iimcategory-hum": "मानवी रुचि",
+       "exif-iimcategory-lab": "श्रम",
+       "exif-iimcategory-lif": "जीवन शैली औ अवकाश",
+       "exif-iimcategory-pol": "राजनीति",
+       "exif-iimcategory-rel": "धर्म औ विश्वास",
+       "exif-iimcategory-sci": "विज्ञान औ प्रौद्योगिकी",
+       "exif-iimcategory-soi": "सामाजिक मुद्दा",
+       "exif-iimcategory-spo": "खेल",
+       "exif-iimcategory-war": "युद्ध, संघर्ष औ अशांति",
+       "exif-iimcategory-wea": "मौसम",
+       "exif-urgency-normal": "सामान्य ( $1 )",
+       "exif-urgency-low": "न्यूनतम ($1)",
+       "exif-urgency-high": "उच्चतम ($1)",
+       "exif-urgency-other": "यूज़र-डिफ़ाइंड प्राथमिकता ( $1 )"
+}
diff --git a/languages/i18n/exif/az.json b/languages/i18n/exif/az.json
new file mode 100644 (file)
index 0000000..4295c64
--- /dev/null
@@ -0,0 +1,284 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Cekli829",
+                       "Dağlı95",
+                       "Emperyan",
+                       "Vago",
+                       "Vugar 1981",
+                       "Wertuose"
+               ]
+       },
+       "exif-imagewidth": "Genişlik",
+       "exif-imagelength": "Hündürlük",
+       "exif-compression": "Sıxılmamış",
+       "exif-photometricinterpretation": "Rəng modeli",
+       "exif-orientation": "Orientasiya",
+       "exif-samplesperpixel": "Rəng komponentlərinin sayı",
+       "exif-ycbcrpositioning": "Y və C komponetlərinə görə yerləşmə sırası",
+       "exif-xresolution": "Üfiqi xətt",
+       "exif-yresolution": "Şaquli xətt",
+       "exif-rowsperstrip": "Hər blokdakı sətirlərin sayı",
+       "exif-jpeginterchangeformatlength": "JPEG məlumatın ölçüsü",
+       "exif-datetime": "Faylın dəyişməsi tarixi və vaxtı",
+       "exif-imagedescription": "Şəkil başlığı",
+       "exif-make": "Kamera istehsalçısı",
+       "exif-model": "Kamera modeli",
+       "exif-software": "Proqram təminatı",
+       "exif-artist": "Müəllif",
+       "exif-copyright": "Sahibinin müəlliflik hüququ",
+       "exif-exifversion": "Exif versiyası",
+       "exif-colorspace": "Rəng sahəsi",
+       "exif-pixelxdimension": "Şəkilin eni",
+       "exif-pixelydimension": "Şə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ı",
+       "exif-spectralsensitivity": "Spektral həssaslıq",
+       "exif-isospeedratings": "ISO sürət reytinqi",
+       "exif-shutterspeedvalue": "APEX shutter speed",
+       "exif-aperturevalue": "Obyektiv gözü",
+       "exif-brightnessvalue": "Parlaqlıq",
+       "exif-exposurebiasvalue": "APEX exposure bias",
+       "exif-subjectdistance": "Obyektə qədər məsafə",
+       "exif-lightsource": "İşıq mənbəsi",
+       "exif-flash": "Flaş",
+       "exif-focallength": "Fokus məsafəsi",
+       "exif-subjectarea": "Subyekt sahəsi",
+       "exif-flashenergy": "Flaş enerjisi",
+       "exif-subjectlocation": "Subyekt yeri",
+       "exif-filesource": "Fayl mənbəsi",
+       "exif-scenetype": "Səhnə tipi",
+       "exif-whitebalance": "Ağ balansı",
+       "exif-gaincontrol": "Səhnə idarəsi",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Doymuşluq",
+       "exif-sharpness": "Kəskinlik",
+       "exif-gpsversionid": "GPS etiket versiyası",
+       "exif-gpslatituderef": "Şimal və ya cənub en dairəsi",
+       "exif-gpslatitude": "En dairəsi",
+       "exif-gpslongituderef": "Şəq və ya qərb uzunluq dairəsi",
+       "exif-gpslongitude": "Uzunluq dairəsi",
+       "exif-gpsaltitude": "Yüksəklik",
+       "exif-gpstimestamp": "GPS vaxtı (atom saatı)",
+       "exif-gpsstatus": "Statusu qəbul edən",
+       "exif-gpsmeasuremode": "Ölçmə üsulu",
+       "exif-gpsdop": "Ölçünün dəqiqliyi",
+       "exif-gpsspeedref": "Sürət uniti",
+       "exif-gpsspeed": "GPS qəbuledicinin sürəti",
+       "exif-gpstrack": "İdarəetmə mexanizmi",
+       "exif-gpsimgdirection": "Şəklin istiqaməti",
+       "exif-gpsdestlatitude": "En dairəsinin təyin olunması",
+       "exif-gpsdestlongitude": "Uzunluq dairəsinin təyin olunması",
+       "exif-gpsdestbearing": "Obyektin pelenqi",
+       "exif-gpsdestdistance": "Məsafə",
+       "exif-gpsprocessingmethod": "GPS prosesinin adı",
+       "exif-gpsareainformation": "GPS sahənin adı",
+       "exif-gpsdatestamp": "Zaman",
+       "exif-gpsdifferential": "GPS diferensial korreksiya",
+       "exif-jpegfilecomment": " JPEG şəkil şərhi",
+       "exif-keywords": "Açar sözlər",
+       "exif-worldregioncreated": "Şəklin çəkildiyi dünya regionu",
+       "exif-countrycreated": "Şəklin çəkildiyi ölkə",
+       "exif-countrycodecreated": "Şəklin çəkildiyi ölkənin kodu",
+       "exif-provinceorstatecreated": "Şəklin çəkildiyi əyalət, yaxud ştat",
+       "exif-citycreated": "Şəklin çəkildiyi şəhər",
+       "exif-sublocationcreated": "Şəklin çəkildiyi şəhər rayonu",
+       "exif-worldregiondest": "Təsvir edilmiş dünya bölgəsi",
+       "exif-countrydest": "Təsvir olunmuş ölkə",
+       "exif-countrycodedest": "Təsvir edilmiş ölkənin kodu",
+       "exif-provinceorstatedest": "Təsvir edilmiş bölgə yaxud ştat",
+       "exif-citydest": "Təsvir edilmiş şəhər",
+       "exif-sublocationdest": "Təsvie edilmiş şəhər bölgəsi",
+       "exif-objectname": "Qısa başlıq",
+       "exif-specialinstructions": "Xüsusi instruksiyalar",
+       "exif-headline": "Başlıq",
+       "exif-credit": "Təmin edici",
+       "exif-source": "Mənbə",
+       "exif-editstatus": "Şəklin redaktə statusu",
+       "exif-urgency": "Zərurilik",
+       "exif-fixtureidentifier": "Sütun adı",
+       "exif-locationdest": "Təsvir edilmiş ərazi",
+       "exif-locationdestcode": "Təsvir edilmiş yerin kodu",
+       "exif-objectcycle": "Şəklin nəzərdə tutulduğu sutka hissəsi",
+       "exif-contact": "Əlaqə məlumatı",
+       "exif-writer": "Yazıçı",
+       "exif-languagecode": "Dil",
+       "exif-iimversion": "IIM versiya",
+       "exif-iimcategory": "Kateqoriya",
+       "exif-iimsupplementalcategory": "Əlavə kateqoriyalar",
+       "exif-datetimeexpires": "Sonra işlətmə",
+       "exif-datetimereleased": "Çıxış tarixi",
+       "exif-identifier": "İdentifikator",
+       "exif-lens": "İstifadə olunmuş obyektiv",
+       "exif-serialnumber": "Kameranın serial nömrəsi",
+       "exif-cameraownername": "Kameranın sahibi",
+       "exif-label": "Nişan",
+       "exif-nickname": "Şəklin qeyri-rəsmi adı",
+       "exif-rating": "Qiymət (5 üzərində)",
+       "exif-copyrighted": "Statusun müəlliflik hüququ",
+       "exif-copyrightowner": "Sahibinin müəlliflik hüququ",
+       "exif-usageterms": "İstifadə qaydası",
+       "exif-webstatement": "İnternetdə müəlliflik hüquqları qaydaları",
+       "exif-licenseurl": "Müəllif hüququ lisenziyası üçün URL",
+       "exif-morepermissionsurl": "Alternativ lisenziya məlumatı",
+       "exif-pngfilecomment": "PNG şəkil şərhi",
+       "exif-disclaimer": "Məsuliyyətdən imtina",
+       "exif-contentwarning": "Mətn xəbərdarlığı",
+       "exif-giffilecomment": "GIF şəkil şərhi",
+       "exif-intellectualgenre": "Obyektin tipi",
+       "exif-subjectnewscode": "Mövzunun kodu",
+       "exif-scenecode": "IPTC səhnə kodu",
+       "exif-event": "təsvir edilmiş hadisə",
+       "exif-organisationinimage": "Təsvir edilmiş təşkilat",
+       "exif-personinimage": "Təsvir edilmiş şəxs",
+       "exif-compression-1": "Sıxılmış",
+       "exif-copyrighted-true": "Müəlliflik hüququ ilə qorunur",
+       "exif-copyrighted-false": "Müəlliflik hüququ göstərilməyib",
+       "exif-unknowndate": "Naməlum tarix",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Üfüqi çevrilib",
+       "exif-orientation-3": "180° döndərilib",
+       "exif-orientation-4": "Şaquli çevrilib",
+       "exif-orientation-5": "Saat əqrəbinin əksi istiqamətində 90° döndərilib və şaquli çevrilib",
+       "exif-orientation-6": "Saat əqrəbinin əksi istiqamətində 90° döndərilib",
+       "exif-orientation-7": "Saat əqrəbi istiqamətində 90° döndərilib və şaquli çevrilib",
+       "exif-orientation-8": "Saat əqrəbi istiqamətində 90° döndərilib",
+       "exif-planarconfiguration-1": "chunky format",
+       "exif-planarconfiguration-2": "planar format",
+       "exif-colorspace-65535": "Fotoşəkildə rəng seçimi edilməmişdir.",
+       "exif-componentsconfiguration-0": "mövcud deyil",
+       "exif-exposureprogram-0": "Tanınmadı",
+       "exif-exposureprogram-1": "Əl ilə",
+       "exif-exposureprogram-2": "Normal proqram",
+       "exif-exposureprogram-3": "Açıqlıq üstünlüyü",
+       "exif-subjectdistance-value": "$1 metr",
+       "exif-meteringmode-0": "Naməlum",
+       "exif-meteringmode-1": "Orta",
+       "exif-meteringmode-3": "Nöqtəli",
+       "exif-meteringmode-4": "Multi-Spot",
+       "exif-meteringmode-5": "Dizaynlı",
+       "exif-meteringmode-6": "Qismi",
+       "exif-meteringmode-255": "Digər",
+       "exif-lightsource-0": "Naməlum",
+       "exif-lightsource-1": "Sübh",
+       "exif-lightsource-2": "Flüorosensiya",
+       "exif-lightsource-4": "Flaş",
+       "exif-lightsource-9": "Gözəl hava",
+       "exif-lightsource-10": "Buludlu hava",
+       "exif-lightsource-11": "Kölgə",
+       "exif-lightsource-12": "D tipli gündüz işığı lampası (5700 − 7100K)",
+       "exif-lightsource-13": "N tipli gündüz işığı lampası (4600 – 5400K)",
+       "exif-lightsource-14": "W tipli gündüz işığı lampası (3900 – 4500K)",
+       "exif-lightsource-15": "WW tipli gündüz işığı lampası (3200 – 3700K)",
+       "exif-lightsource-17": "A tipi standart işıq",
+       "exif-lightsource-18": "B tipi standart işıq",
+       "exif-lightsource-19": "C tipi standart işıq",
+       "exif-lightsource-24": "ISO studiya lampası",
+       "exif-lightsource-255": "Digər işıq mənbəyi",
+       "exif-flash-fired-0": "Flaş yandırılmadı",
+       "exif-flash-fired-1": "Flaş yandırıldı",
+       "exif-flash-mode-3": "avtomatik rejim",
+       "exif-flash-function-1": "Fləş bağlıdır",
+       "exif-focalplaneresolutionunit-2": "düymlər",
+       "exif-sensingmethod-1": "Tanınmadı",
+       "exif-sensingmethod-2": "Birkristallı matrisli rəngli sensor",
+       "exif-sensingmethod-3": "İkikristallı matrisli rəngli sensor",
+       "exif-sensingmethod-4": "Üçkristallı matrisli rəngli sensor",
+       "exif-sensingmethod-5": "Rəngin ardıcıl ölçülməsilə birlikdə matrisli sensor",
+       "exif-sensingmethod-7": "Üçrəngli xətti sensor",
+       "exif-sensingmethod-8": "Rəngin ardıcıl ölçülməsilə birlikdə xətti sensor",
+       "exif-filesource-3": "Rəqəmsal fotoapparat",
+       "exif-scenetype-1": "Foto-təsvir birbaşa çəkilmişdir",
+       "exif-customrendered-0": "Normal proses",
+       "exif-customrendered-1": "Xüsusi proses",
+       "exif-exposuremode-0": "Avtomatik ekspozisiya",
+       "exif-exposuremode-1": "Əl ekspozisiyası",
+       "exif-exposuremode-2": "Avtomatik breketinq",
+       "exif-whitebalance-0": "Bəyaz balansın avtomatik tənzimlənməsi",
+       "exif-whitebalance-1": "Bəyaz balansın əllə tənzimlənməsi",
+       "exif-scenecapturetype-0": "Standart",
+       "exif-scenecapturetype-1": "Mənzərə",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Gecə görünüşü",
+       "exif-gaincontrol-0": "Heç biri",
+       "exif-gaincontrol-1": "Bir az artırma",
+       "exif-gaincontrol-2": "Kəskin artırma",
+       "exif-gaincontrol-3": " Bir az azaltma",
+       "exif-gaincontrol-4": "Kəskin azaltma",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Yumşaq",
+       "exif-contrast-2": "Ağır",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Aşağı doyma dərəcəsi",
+       "exif-saturation-2": "Yuxarı doyma dərəcəsi",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Yumşaq",
+       "exif-sharpness-2": "Ağır",
+       "exif-subjectdistancerange-0": "Naməlum",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Bağlı görünüş",
+       "exif-subjectdistancerange-3": "Uzaq məsafədən çəkiliş",
+       "exif-gpslatitude-n": "Şimal en dairəsi",
+       "exif-gpslatitude-s": "Cənub en dairəsi",
+       "exif-gpslongitude-e": "Qərb uzunluq dairəsi",
+       "exif-gpslongitude-w": "Şərq uzunluq dairəsi",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter|metr}} dəniz səviyyəsindən yüksəkdə",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter|metr}} dəniz səviyyəsindən aşağıda",
+       "exif-gpsstatus-a": "Ölçmə yekunlaşmayıb",
+       "exif-gpsstatus-v": "Verilənləri ötürmək üçün hazırdır",
+       "exif-gpsmeasuremode-2": "2-ölçülü koordinat",
+       "exif-gpsmeasuremode-3": "3-ölçülü koordinat",
+       "exif-gpsspeed-k": "km/saat",
+       "exif-gpsspeed-m": "Saatda mil",
+       "exif-gpsspeed-n": "Dəniz mili",
+       "exif-gpsdestdistance-k": "Kilometr",
+       "exif-gpsdestdistance-m": "Millər",
+       "exif-gpsdestdistance-n": "Dəniz mili",
+       "exif-gpsdop-excellent": "Əla ($1)",
+       "exif-gpsdop-good": "Yaxşı ($1)",
+       "exif-gpsdop-moderate": "Zəif ($1)",
+       "exif-gpsdop-fair": "Ədalətli ($1)",
+       "exif-gpsdop-poor": "Pis ($1)",
+       "exif-objectcycle-a": "Ancaq səhər",
+       "exif-objectcycle-p": "Ancaq axşam",
+       "exif-objectcycle-b": "Gündüzlər və axşamlar",
+       "exif-gpsdirection-t": "Doğru istiqamət",
+       "exif-gpsdirection-m": "Maqnit istiqaməti",
+       "exif-ycbcrpositioning-1": "Mərkəzləşdirilmiş",
+       "exif-ycbcrpositioning-2": "Co-sited",
+       "exif-dc-contributor": "Həmmüəlliflər",
+       "exif-dc-coverage": "Mediyanın məkan və zaman çərçivəsi",
+       "exif-dc-date": "Tarix(lər)",
+       "exif-dc-publisher": "Naşir",
+       "exif-dc-relation": "Əlaqəli media",
+       "exif-dc-rights": "Hüquqlar",
+       "exif-dc-source": "İlkin media",
+       "exif-dc-type": "Medianın tipi",
+       "exif-rating-rejected": "Rədd edildi",
+       "exif-isospeedratings-overflow": "65535-dən böyükdür",
+       "exif-iimcategory-ace": "İncəsənət, mədəniyyət və əyləncə",
+       "exif-iimcategory-clj": "Kriminal və qanun",
+       "exif-iimcategory-dis": "Faciə və qəzalar",
+       "exif-iimcategory-fin": "İqtisaqdiyyat və biznes",
+       "exif-iimcategory-edu": "Təhsil",
+       "exif-iimcategory-evn": "Ətraf mühit",
+       "exif-iimcategory-hth": "Səhiyyə",
+       "exif-iimcategory-hum": "İnsan maraqları",
+       "exif-iimcategory-lab": "Əmək",
+       "exif-iimcategory-lif": "Həyat tərzi və əyləncə",
+       "exif-iimcategory-pol": "Siyasət",
+       "exif-iimcategory-rel": "Din və iman",
+       "exif-iimcategory-sci": "Elm və texnologiya",
+       "exif-iimcategory-soi": "Sosial məsələlər",
+       "exif-iimcategory-spo": "İdman",
+       "exif-iimcategory-war": "Müharibə, münaqişə və iğtişaşlar",
+       "exif-iimcategory-wea": "Hava",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Aşağı ($1)",
+       "exif-urgency-high": "Yüksək ($1)",
+       "exif-urgency-other": "İstifadəçi tərəfindən müəyyən olunmuş birincilik ($1)"
+}
diff --git a/languages/i18n/exif/azb.json b/languages/i18n/exif/azb.json
new file mode 100644 (file)
index 0000000..1f9a83e
--- /dev/null
@@ -0,0 +1,349 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Amir a57",
+                       "E THP",
+                       "Ebrahimi-amir",
+                       "Koroğlu",
+                       "Mousa"
+               ]
+       },
+       "exif-imagewidth": "گئنیش‌لیک",
+       "exif-imagelength": "اوزوناسی",
+       "exif-bitspersample": "هر جز دا نقطه",
+       "exif-compression": "سیخیلمامیش",
+       "exif-photometricinterpretation": "نقاطین بیرلشمه‌سی",
+       "exif-orientation": "جهت",
+       "exif-samplesperpixel": "اجزا سایی س",
+       "exif-planarconfiguration": "معلومات نیزامی",
+       "exif-ycbcrsubsampling": "Y-C آلت نومونه نیسبتی",
+       "exif-ycbcrpositioning": "Y و C یئرلشمه سیراسی",
+       "exif-xresolution": "اوفیقی سئچیلمک",
+       "exif-yresolution": "عمودی سئچیلمک",
+       "exif-stripoffsets": "شکیل معلومات مؤوقئیی",
+       "exif-rowsperstrip": "هر بلوک‌داکی سطرلرین سایی",
+       "exif-stripbytecounts": "بایت هر نوار فشرده ده",
+       "exif-jpeginterchangeformat": "جابه‌جایی نسبت به JPEG SOI",
+       "exif-jpeginterchangeformatlength": "JPEG معلومات بازاسینین بایت‌لاری",
+       "exif-whitepoint": "آغ نقطه کروماتیغی",
+       "exif-primarychromaticities": "اولویت رنگ آلماقلاری",
+       "exif-ycbcrcoefficients": "رنگ آرا‌لیغی چئویرمه ماتریس امسا‌لی",
+       "exif-referenceblackwhite": "آغ قارا جفت مقادیر مرجع",
+       "exif-datetime": "فایلین دییشمه‌سی تاریخی و واختی",
+       "exif-imagedescription": "شکیل باشلیقی",
+       "exif-make": "کامئرا دوزلدنی",
+       "exif-model": "کامئرا مود‌لی",
+       "exif-software": "پروقرام تمیناتی",
+       "exif-artist": "یازار",
+       "exif-copyright": "یازانلار حقوقو صاحبی",
+       "exif-exifversion": "exif سۆرومو",
+       "exif-flashpixversion": "دستک‌لنن Flashpix نوسخه سی",
+       "exif-colorspace": "رنگ ساحه‌سی",
+       "exif-componentsconfiguration": "هر بیلشنین معناسی",
+       "exif-compressedbitsperpixel": "شکیل سیخیشدیرما فورماتی",
+       "exif-pixelxdimension": "شکیلین انی",
+       "exif-pixelydimension": "شکیلین اوزوناسی",
+       "exif-usercomment": "استفادچی شرحی",
+       "exif-relatedsoundfile": "حاقیندا سس لی فایل",
+       "exif-datetimeoriginal": "اورژینال یاراتما زامانی",
+       "exif-datetimedigitized": "دیجیتالی‌ اولان تاریخ و زمانی",
+       "exif-subsectime": "آلت-ایکینجی واخت",
+       "exif-subsectimeoriginal": "اورژینال آلت-ایکینجی واخت",
+       "exif-subsectimedigitized": "دیژیتالیز آلت-ایکینجی واخت",
+       "exif-exposuretime": "چکیلیش مدتی",
+       "exif-exposuretime-format": "$1 سانییه ($2)",
+       "exif-fnumber": "ف نؤمره‌سی",
+       "exif-exposureprogram": "پوزا برنامه سی",
+       "exif-spectralsensitivity": "طیفی حساس‌لیق",
+       "exif-isospeedratings": "ایزو سرعت درجه سی",
+       "exif-shutterspeedvalue": "آپکس شاتر سرعتی",
+       "exif-aperturevalue": "آپکس دیافراگم اندازه سی",
+       "exif-brightnessvalue": "آپکس پارلاقی",
+       "exif-exposurebiasvalue": "ایشیق وئرمه خطاسی",
+       "exif-maxaperturevalue": "یئرین ان چوخ آچیقلیغی",
+       "exif-subjectdistance": "سوژهه قدر مسافه",
+       "exif-meteringmode": "اؤلچمک دورومو",
+       "exif-lightsource": "ایشیق قایناقی",
+       "exif-flash": "فلاش",
+       "exif-focallength": "فوکوس مسافه‌سی",
+       "exif-subjectarea": "جسمین مساحتی",
+       "exif-flashenergy": "فلاش ائنئرژی‌سی",
+       "exif-focalplanexresolution": "صفحهٔ کانونی سویه X هللولما دقیق‌لیگی",
+       "exif-focalplaneyresolution": "صفحهٔ کانونی ده تفکیک‌پذیری Y",
+       "exif-focalplaneresolutionunit": "کانونی صحیفه نین بیربیرندن سئچمه واحدی",
+       "exif-subjectlocation": "سوژه یئری",
+       "exif-exposureindex": "ایشیق شاخیصی",
+       "exif-sensingmethod": "قبول ائتمه مئتودو",
+       "exif-filesource": "فایل قایناقی",
+       "exif-scenetype": "صحنه تیپی",
+       "exif-customrendered": "شخصی شکیل عملیاتی",
+       "exif-exposuremode": "ایشیق وئرمه حالتی",
+       "exif-whitebalance": "آغ بالانسی",
+       "exif-digitalzoomratio": "یاخینلاشدیرما نیسبتی (زوم)",
+       "exif-focallengthin35mmfilm": "35 میلی متر-لیک فیلمده مرکز اوزاق‌لیغی",
+       "exif-scenecapturetype": "سهنه توتما تیپی",
+       "exif-gaincontrol": "سهنه ایداره‌سی",
+       "exif-contrast": "کونتراست",
+       "exif-saturation": "دویموشلوق",
+       "exif-sharpness": "کسکین‌لیک",
+       "exif-devicesettingdescription": "دسگاهین تنظیم لر تعریف‌لری",
+       "exif-subjectdistancerange": "سوژه نین مسافه محدوده سی",
+       "exif-imageuniqueid": "شکیل خصوصی شخصیتی",
+       "exif-gpsversionid": "جی پی اس ائتیکئت نوسخه سی",
+       "exif-gpslatituderef": "شیمال و یا جنوب جغرافیایی ائنی",
+       "exif-gpslatitude": "جغرافیایی ائنی",
+       "exif-gpslongituderef": "جغرافیایی شرق و یا قرب اوزونلوقو",
+       "exif-gpslongitude": "جغرافیایی اوزوناسی",
+       "exif-gpsaltituderef": "اوجالیق یئری",
+       "exif-gpsaltitude": "يوکسکلیک",
+       "exif-gpstimestamp": "جی پی اس واختی (آتوم ساعتی)",
+       "exif-gpssatellites": "اؤلچمک اوچون ایستیفاده ائتدیگی پئیک‌لر",
+       "exif-gpsstatus": "ایستاتوسو قبول ائدن",
+       "exif-gpsmeasuremode": "اؤلچمه اوصولو",
+       "exif-gpsdop": "اؤلچونون دقیقلیگی",
+       "exif-gpsspeedref": "سرعت اونیتی",
+       "exif-gpsspeed": "چی پی اس قبولئدیجی‌نین سرعتی",
+       "exif-gpstrackref": "جهت حرکتی اوچون قایناق",
+       "exif-gpstrack": "ایدارئتمه مئخانیزمی",
+       "exif-gpsimgdirectionref": "شکیل جهتی اوچون قایناق",
+       "exif-gpsimgdirection": "شکلین ایستیقامتی",
+       "exif-gpsmapdatum": "نقشه‌گوتورمک اطلاعاتی ژئودزیک",
+       "exif-gpsdestlatituderef": "جغرافیایی ائنی مقصد اوچون قایناق",
+       "exif-gpsdestlatitude": "ائن دایره‌سی‌نین تعیین اولونماسی",
+       "exif-gpsdestlongituderef": "جغرافیایی اوزوناسی مقصد اوچون قایناق",
+       "exif-gpsdestlongitude": "اوزونلوق دایره‌سی‌نین تعیین اولونماسی",
+       "exif-gpsdestbearingref": "مقصد جهتی اوچون قایناق",
+       "exif-gpsdestbearing": "اوبيئکتین پئلئنقی",
+       "exif-gpsdestdistanceref": "قایناق فاصله مقصد چان",
+       "exif-gpsdestdistance": "مسافه",
+       "exif-gpsprocessingmethod": "چی پی اس پردازیشینین آدی",
+       "exif-gpsareainformation": "چی پی اس ساحه‌نین آدی",
+       "exif-gpsdatestamp": "چی پی اس زامانی",
+       "exif-gpsdifferential": "چی پی اس ین جزئی اصلاحی",
+       "exif-jpegfilecomment": "JPEG شکیل شرحی",
+       "exif-keywords": "آچار سؤزلر",
+       "exif-worldregioncreated": "شکلین چکیلدیگی دونيا یئرلری",
+       "exif-countrycreated": "شکلین چکیلدیگی اؤلکه",
+       "exif-countrycodecreated": "شکلین چکیلدیگی اؤلکه‌نین کودو",
+       "exif-provinceorstatecreated": "شکلین چکیلدیگی ایالت،آدی",
+       "exif-citycreated": "شکلین چکیلدیگی شهر",
+       "exif-sublocationcreated": "شکلین چکیلدیگی شهرین بخش آدی",
+       "exif-worldregiondest": "تصویر ائدیلمیش دونیا بؤلگه‌سی",
+       "exif-countrydest": "تصویر اولونموش اؤلکه",
+       "exif-countrycodedest": "تصویر ائدیلمیش اؤلکه‌نین کودو",
+       "exif-provinceorstatedest": "تصویر ائدیلمیش بؤلگه یاخود ایشتات",
+       "exif-citydest": "تصویر ائدیلمیش شهر",
+       "exif-sublocationdest": "تصویر ائدیلمیش شهر بؤلگه‌سی",
+       "exif-objectname": "قیسا باشلیق",
+       "exif-specialinstructions": "خصوصی دستور عمل لر",
+       "exif-headline": "باشلیق",
+       "exif-credit": "تعمین ائدیچی",
+       "exif-source": "قایناق",
+       "exif-editstatus": "شکلین دییشدیرمه وضعیته",
+       "exif-urgency": "ضروری‌لیک",
+       "exif-fixtureidentifier": "ستون آدی",
+       "exif-locationdest": "تصویر ائدیلمیش اراضی",
+       "exif-locationdestcode": "تصویر ائدیلمیش یئرین کودو",
+       "exif-objectcycle": "شکلین نظرده توتولدوغو زمان حیسه‌سی",
+       "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": "سون دَییشیکلر تاریخی",
+       "exif-nickname": "شکلین قئيری-رسمی آدی",
+       "exif-rating": "قیيمت (5 اوزرینده)",
+       "exif-rightscertificate": "ایداره‌چی گوواهی حاقی",
+       "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-2": "پسوورد قویماق سی‌سی‌آی‌تی‌تی ۳  گروه دا بیر بعدی هافمن روشی ایله اوزوناسی اوستونده دییشیلیب",
+       "exif-compression-3": "رمز قرار وئرمک سی‌سی‌آی‌تی‌تی قروپ ۳",
+       "exif-compression-4": "رمز قرار وئرمک سی‌سی‌آی‌تی‌تی قروپ 4",
+       "exif-copyrighted-true": "مؤلف‌لیک حقوقو ایله قورونور",
+       "exif-copyrighted-false": "کوپی‌رایت وضعیتی بلیرتیلمه‌میش",
+       "exif-unknowndate": "تانینمامیش تاریخ",
+       "exif-orientation-1": "نورمال",
+       "exif-orientation-2": "یاتای چئویریلیب",
+       "exif-orientation-3": "۱۸۰ درجه دؤنده‌ریلیب",
+       "exif-orientation-4": "دیکَی چئویریلیب",
+       "exif-orientation-5": "۹۰ درجه ساعات عکسی دؤنده‌ریلیب و دیکَی چئویریلیب",
+       "exif-orientation-6": "۹۰ درجه ساعات عکسی دؤنده‌ریلیب",
+       "exif-orientation-7": "۹۰ درجه ساعات یولوندا دؤنده‌ریلیب و دیکَی چئویریلیب",
+       "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-exposureprogram-5": "یارادیجی پروقرام (میدان درینلیگینه اَییلمیش)",
+       "exif-exposureprogram-6": "حرکت پروقرامی (شاتیر سورعتینه اَییلمیش)",
+       "exif-exposureprogram-7": "پورتره دورومو (دالیلاری فوکوس‌دا اولمایان یاخین عکسلر اوچون)",
+       "exif-exposureprogram-8": "منظره دورومو (دالیلاری فوکوس‌دا اولان منظره عکسلری اوچون)",
+       "exif-subjectdistance-value": "$1 متر",
+       "exif-meteringmode-0": "بیلینمه‌ین",
+       "exif-meteringmode-1": "اورتا",
+       "exif-meteringmode-2": "وسطی آغیر اورتا",
+       "exif-meteringmode-3": "بیر-نوقطه‌لی",
+       "exif-meteringmode-4": "نئچه-نوقطه‌لی",
+       "exif-meteringmode-5": "اؤرنک",
+       "exif-meteringmode-6": "قیسمی",
+       "exif-meteringmode-255": "باشقا",
+       "exif-lightsource-0": "بیلینمه‌ین",
+       "exif-lightsource-1": "گون‌ایشیغی",
+       "exif-lightsource-2": "فلورسانت",
+       "exif-lightsource-3": "تنگستن (ایستی‌سیز ایشیق)",
+       "exif-lightsource-4": "فلاش",
+       "exif-lightsource-9": "یاخشی هاوا",
+       "exif-lightsource-10": "بولودلو هاوا",
+       "exif-lightsource-11": "کؤلگه",
+       "exif-lightsource-12": "گون‌ایشیغی فلورسانت (D 5700 – 7100K)",
+       "exif-lightsource-13": "گون آغ فلورسانت (N 4600 – 5400K)",
+       "exif-lightsource-14": "سرین آغ فلورسانت (W 3900 – 4500K)",
+       "exif-lightsource-15": "آغ فلورسانت (WW 3200 – 3700K)",
+       "exif-lightsource-17": "A ایستاندارد ایشیق",
+       "exif-lightsource-18": "B ایستاندارد ایشیق",
+       "exif-lightsource-19": "C ایستاندارد ایشیق",
+       "exif-lightsource-24": "ISO ایستودیو تنگستنی",
+       "exif-lightsource-255": "باشقا ایشیق قایناغی",
+       "exif-flash-fired-0": "فلاش یاندیریلمادی",
+       "exif-flash-fired-1": "فلاش یاندیریلدی",
+       "exif-flash-return-0": "دؤنن ایشیق بیلن فونکسیاسی یوخدور",
+       "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-sensingmethod-7": "اوچ-خط‌لی سِنسور",
+       "exif-sensingmethod-8": "بیر چیپ‌لی رنگ خط سِنسورو",
+       "exif-filesource-3": "دیجیتال کامئرا",
+       "exif-scenetype-1": "موستقیم سالینمیش عکس",
+       "exif-customrendered-0": "نورمال پروسِس",
+       "exif-customrendered-1": "اؤزل پروسِس",
+       "exif-exposuremode-0": "اوتو ایشیق-توتما",
+       "exif-exposuremode-1": "ال ایله ایشیق-توتما",
+       "exif-exposuremode-2": "اوتو دیرَکلندیرمه",
+       "exif-whitebalance-0": "اوتوماتیک آغ رنگی بالانسلاندیرماسی",
+       "exif-whitebalance-1": "ای ایله آغ رنگ بالانسلاندیرماسی",
+       "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-saturation-0": "نورمال",
+       "exif-saturation-1": "آشاغی دویدورما",
+       "exif-saturation-2": "یوخاری دویدورما",
+       "exif-sharpness-0": "نورمال",
+       "exif-sharpness-1": "یوموشاق",
+       "exif-sharpness-2": "بَرک",
+       "exif-subjectdistancerange-0": "بیلینمه‌ین",
+       "exif-subjectdistancerange-1": "ماکرو",
+       "exif-subjectdistancerange-2": "یاخین گؤرونوش",
+       "exif-subjectdistancerange-3": "اوزاق گؤرونوش",
+       "exif-gpslatitude-n": "قوزئی عرض درجه‌سی",
+       "exif-gpslatitude-s": "گونئی عرض درجه‌سی",
+       "exif-gpslongitude-e": "دوغو عرض درجه‌سی",
+       "exif-gpslongitude-w": "باتی عرض درجه‌سی",
+       "exif-gpsaltitude-above-sealevel": "{{PLURAL:$1|بیر|$1}} متر دنیز سویه‌سیندن یوخاری",
+       "exif-gpsaltitude-below-sealevel": "{{PLURAL:$1|بیر|$1}} متر نیز سویه‌سیندن آشاغی",
+       "exif-gpsstatus-a": "اؤلچمه یئکونلاشماییب",
+       "exif-gpsstatus-v": "وئریلن‌لری اؤتورمک اوچون حاضردیر",
+       "exif-gpsmeasuremode-2": "2-اؤلچولو اولچو",
+       "exif-gpsmeasuremode-3": "3-اؤلچولو اولچو",
+       "exif-gpsspeed-k": "کیلومتر ساهات دا",
+       "exif-gpsspeed-m": "مایل ساهات دا",
+       "exif-gpsspeed-n": "دویون",
+       "exif-gpsdestdistance-k": "کیلومتر",
+       "exif-gpsdestdistance-m": "مایل",
+       "exif-gpsdestdistance-n": "دنیز مایلی",
+       "exif-gpsdop-excellent": "علا($1)",
+       "exif-gpsdop-good": "یاخشی($1)",
+       "exif-gpsdop-moderate": "متوسط($1)",
+       "exif-gpsdop-fair": "نه چوخ یاخشی ($1)",
+       "exif-gpsdop-poor": "ضعیف ($1)",
+       "exif-objectcycle-a": "فقظ صوبح",
+       "exif-objectcycle-p": "فقط آخشام",
+       "exif-objectcycle-b": "گوندوزلر و آخشام‌لار",
+       "exif-gpsdirection-t": "دوغرو جهت",
+       "exif-gpsdirection-m": "مغناطیسی جهت",
+       "exif-ycbcrpositioning-1": "مرکزلشدیریلمیش",
+       "exif-ycbcrpositioning-2": "اشتراکه",
+       "exif-dc-contributor": "مشارکت ائدنلر",
+       "exif-dc-coverage": "مئدیانین مکان و زامان چرچیوه‌سی",
+       "exif-dc-date": "تاریخ لر",
+       "exif-dc-publisher": "یایمچی",
+       "exif-dc-relation": "علاقه‌لی مئدیا",
+       "exif-dc-rights": "حاقلار",
+       "exif-dc-source": "قیناق مئدیا",
+       "exif-dc-type": "مئدیانین تیپی",
+       "exif-rating-rejected": "رد ائدیلدی",
+       "exif-isospeedratings-overflow": "65535-دن بؤیوک‌دور",
+       "exif-iimcategory-ace": "هنر، مدنیت و ایلنجه",
+       "exif-iimcategory-clj": "جنایت و قانون",
+       "exif-iimcategory-dis": "فاجعه و قزا‌لار",
+       "exif-iimcategory-fin": "ایقتصاد و تجارت",
+       "exif-iimcategory-edu": "تحصیل",
+       "exif-iimcategory-evn": "یاشام محیطی",
+       "exif-iimcategory-hth": "ساغللیک",
+       "exif-iimcategory-hum": "اینسان ماراق‌لاری",
+       "exif-iimcategory-lab": "ایش",
+       "exif-iimcategory-lif": "حیات طرزی و ایلنجه",
+       "exif-iimcategory-pol": "سیاست",
+       "exif-iimcategory-rel": "دین وایمان",
+       "exif-iimcategory-sci": "علم و تکنولوژی",
+       "exif-iimcategory-soi": "اجتماعی مسئله‌لر",
+       "exif-iimcategory-spo": "ورزش",
+       "exif-iimcategory-war": "محاربه، موناقیشه و ایغتیشاش‌لار",
+       "exif-iimcategory-wea": "هوا",
+       "exif-urgency-normal": "نورمال($1)",
+       "exif-urgency-low": "آز ($1)",
+       "exif-urgency-high": "چوخ($1)",
+       "exif-urgency-other": "ایستیفاده‌چی طرفین‌دن مویین اولونموش بیرینجی‌لیک ($1)"
+}
diff --git a/languages/i18n/exif/ba.json b/languages/i18n/exif/ba.json
new file mode 100644 (file)
index 0000000..691e54c
--- /dev/null
@@ -0,0 +1,352 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Alfiya55",
+                       "Assele",
+                       "Haqmar",
+                       "Roustammr",
+                       "Sagan",
+                       "Ләйсән",
+                       "Рустам Нурыев"
+               ]
+       },
+       "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": "X күсәре буйынса асыҡлыҡ",
+       "exif-yresolution": "Y күсәре буйынса асыҡлыҡ",
+       "exif-stripoffsets": "Рәсем мәғлүмәте урынлашыуы",
+       "exif-rowsperstrip": "Бер бүлектә юлдар һаны",
+       "exif-stripbytecounts": "Ҡыҫылған бүлектә байттар һаны",
+       "exif-jpeginterchangeformat": "JPEG SOI бүлегенең башланған урыны",
+       "exif-jpeginterchangeformatlength": "JPEG мәғлүмәте дәүмәле, байттарҙа",
+       "exif-whitepoint": "Аҡ нөктәнең төҫлөлөгө",
+       "exif-primarychromaticities": "Төп төҫтәрҙең төҫлөлөгө",
+       "exif-ycbcrcoefficients": "Төҫтәр киңлеген үҙгәртеү коэффициенты",
+       "exif-referenceblackwhite": "Аҡ һәм ҡара төҫтәрҙең урынлашыуы",
+       "exif-datetime": "Файлды үҙгәртеү көнө һәм ваҡыты",
+       "exif-imagedescription": "Рәсемдең исеме",
+       "exif-make": "Камераны етештереүсе",
+       "exif-model": "Камераның төрө",
+       "exif-software": "Ҡулланылған программа",
+       "exif-artist": "Автор",
+       "exif-copyright": "Авторлыҡ хоҡуғы эйәһе",
+       "exif-exifversion": "Exif өлгөһө",
+       "exif-flashpixversion": "Ҡулланылған Flashpix өлгөһө",
+       "exif-colorspace": "Төҫтәр киңлеге",
+       "exif-componentsconfiguration": "Төҫ өлөштәренең төҙөлөшө",
+       "exif-compressedbitsperpixel": "Рәсемде ҡыҫыу ысулы",
+       "exif-pixelxdimension": "Рәсем киңлеге",
+       "exif-pixelydimension": "Рәсем бейеклеге",
+       "exif-usercomment": "Ҡулланыусы иҫкәрмәһе",
+       "exif-relatedsoundfile": "Бәйле аудио файл",
+       "exif-datetimeoriginal": "Төп көнө һәм ваҡыты",
+       "exif-datetimedigitized": "Һанлаштырыу көнө һәм ваҡыты",
+       "exif-subsectime": "Файл үҙгәреү ваҡытының секунд бүлкәттәре",
+       "exif-subsectimeoriginal": "Төп ваҡыттың секунд бүлкәттәре",
+       "exif-subsectimedigitized": "Һанлаштырыу ваҡытының секунд бүлкәттәре",
+       "exif-exposuretime": "Экспозиция ваҡыты",
+       "exif-exposuretime-format": "$1 сек. ($2)",
+       "exif-fnumber": "Диафрагма һаны",
+       "exif-exposureprogram": "Экспозиция режимы",
+       "exif-spectralsensitivity": "Спектраль һиҙгерлек",
+       "exif-isospeedratings": "ISO буйынса яҡтыға һиҙгерлек",
+       "exif-shutterspeedvalue": "APEX затвор тиҙлеге",
+       "exif-aperturevalue": "APEX диафрагма",
+       "exif-brightnessvalue": "APEX баҙыҡлыҡ",
+       "exif-exposurebiasvalue": "Экспозиция компенсацияһы",
+       "exif-maxaperturevalue": "Иң ҙур диафрагма һаны",
+       "exif-subjectdistance": "Есемдең йыраҡлығы",
+       "exif-meteringmode": "Экспозиция үлсәү ысулы",
+       "exif-lightsource": "Яҡтылыҡ сығанағы",
+       "exif-flash": "Балҡыш (вспышка)",
+       "exif-focallength": "Фокус аралығы",
+       "exif-subjectarea": "Есемдең урынлашыу майҙаны",
+       "exif-flashenergy": "Балҡыш (вспышка) ҡеүәте",
+       "exif-focalplanexresolution": "Фокус яҫылығының Х күсәре буйынса асыҡлығы",
+       "exif-focalplaneyresolution": "Фокус яҫылығының Y күсәре буйынса асыҡлығы",
+       "exif-focalplaneresolutionunit": "Фокус яҫылығы асыҡлығының үлсәү берәмеге",
+       "exif-subjectlocation": "Есемдең урынлашыуы",
+       "exif-exposureindex": "Экспозиция индексы",
+       "exif-sensingmethod": "Сенсор төрө",
+       "exif-filesource": "Файл сығанағы",
+       "exif-scenetype": "Сәхнә төрө",
+       "exif-customrendered": "Рәсемде өҫтәмә эшкәртеү",
+       "exif-exposuremode": "Экспозиция төрө",
+       "exif-whitebalance": "Аҡ төҫ тигеҙләнеше",
+       "exif-digitalzoomratio": "Һанлы ҙурайтыу (зум) нисбәте",
+       "exif-focallengthin35mmfilm": "35 мм. таҫмала фокус йыраҡлығы",
+       "exif-scenecapturetype": "Төшөргәндә сәхнә төрө",
+       "exif-gaincontrol": "Сәхнәне көйләү",
+       "exif-contrast": "Ҡаршылыҡ (контраст)",
+       "exif-saturation": "Ҡуйылыҡ",
+       "exif-sharpness": "Киҫкенлек",
+       "exif-devicesettingdescription": "Ҡоролманың көйләүҙәре тасуирламаһы",
+       "exif-subjectdistancerange": "Есемгә тиклем ара",
+       "exif-imageuniqueid": "Рәсемдең билдәһе (ID)",
+       "exif-gpsversionid": "GPS бүлеге өлгөһө",
+       "exif-gpslatituderef": "Киңлек индексы",
+       "exif-gpslatitude": "Киңлек",
+       "exif-gpslongituderef": "Оҙонлоҡ индексы",
+       "exif-gpslongitude": "Оҙонлоҡ",
+       "exif-gpsaltituderef": "Бейеклек индексы",
+       "exif-gpsaltitude": "Бейеклек",
+       "exif-gpstimestamp": "GPS ваҡыты (UTC буйынса)",
+       "exif-gpssatellites": "Ҡулланылған юлдаштар",
+       "exif-gpsstatus": "Мәғлүмәт алғыс торошо",
+       "exif-gpsmeasuremode": "Үлсәү ысулы",
+       "exif-gpsdop": "Үлсәү дөрөҫлөгө",
+       "exif-gpsspeedref": "Тиҙлек берәмеге",
+       "exif-gpsspeed": "GPS мәғлүмәт алғысының тиҙлеге",
+       "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": "GPS өлкәһенең исеме",
+       "exif-gpsdatestamp": "GPS ваҡыты",
+       "exif-gpsdifferential": "GPS мәғлүмәтте дифференциаль төҙәтеү",
+       "exif-jpegfilecomment": "JPEG файл өсөн иҫкәрмә",
+       "exif-keywords": "Асҡыс һүҙҙәр",
+       "exif-worldregioncreated": "Фотография эшләнгән донъя регионы",
+       "exif-countrycreated": "Фотография эшләнгән ил",
+       "exif-countrycodecreated": "Фотография эшләнгән ил коды",
+       "exif-provinceorstatecreated": "Фотография эшләнгән өлкә, провинция йәки штат",
+       "exif-citycreated": "Фотография эшләнгән ҡала",
+       "exif-sublocationcreated": "Фотография эшләнгән ҡала районы",
+       "exif-worldregiondest": "Донъяның күрһәтелгән регионы",
+       "exif-countrydest": "Күрһәтелгән ил",
+       "exif-countrycodedest": "Күрһәтелгән ил коды",
+       "exif-provinceorstatedest": "Күрһәтелгән өлкә, провинция йәки штат",
+       "exif-citydest": "Күрһәтелгән ҡала",
+       "exif-sublocationdest": "Ҡаланың күрһәтелгән районы",
+       "exif-objectname": "Ҡыҫҡа исем",
+       "exif-specialinstructions": "Махсус күрһәтмәләр",
+       "exif-headline": "Исем",
+       "exif-credit": "Һүрәтте тәьмин итеүсе",
+       "exif-source": "Сығанаҡ",
+       "exif-editstatus": "Рәсемдең мөхәррирләү торошо",
+       "exif-urgency": "Ашығыслыҡ",
+       "exif-fixtureidentifier": "Бағана исеме",
+       "exif-locationdest": "Күрһәтелгән урын",
+       "exif-locationdestcode": "Күрһәтелгән урын коды",
+       "exif-objectcycle": "Рәсем өсөн тәғәйенләнгән тәүлек ваҡыты",
+       "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": "Метамәғлүмәттәрҙе һуңғы үҙгәртеү ваҡыты",
+       "exif-nickname": "Рәсемдең формаль булмаған исеме",
+       "exif-rating": "Баһа (5-тән)",
+       "exif-rightscertificate": "Хоҡуҡтарҙы идаралау сертфикаты",
+       "exif-copyrighted": "Авторлыҡ хоҡуғы торошо",
+       "exif-copyrightowner": "Авторлыҡ хоҡуғы эйәһе",
+       "exif-usageterms": "Ҡулланыу шарттары",
+       "exif-webstatement": "Интернеттағы авторлыҡ хоҡуҡтары тураһындағы белдереү",
+       "exif-originaldocumentid": "Сығанаҡ документтың уникаль идентификаторы",
+       "exif-licenseurl": "Авторлыҡ рөхсәтнәмәһенең URL",
+       "exif-morepermissionsurl": "Альтернатив рөхсәтнамә мәғлүмәттәре",
+       "exif-attributionurl": "Был эште ҡулланғанда, зинһар, ошонда һылтанма яһағыҙ",
+       "exif-preferredattributionname": "Был эште ҡулланғанда, зинһар, ошоларҙы белдерегеҙ",
+       "exif-pngfilecomment": "PNG файл өсөн иҫкәрмә",
+       "exif-disclaimer": "Яуаплылыҡтан баш тартыу",
+       "exif-contentwarning": "Эстәлек тураһында киҫәтеү",
+       "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-2": "CCITT Group 3, Хаффман сериялары оҙонлоҡтарын кодлауҙың 1 үлсәмле модификацияһы",
+       "exif-compression-3": "CCITT Group 3, факслы кодлау",
+       "exif-compression-4": "CCITT Group 4, факслы кодлау",
+       "exif-copyrighted-true": "Авторлыҡ хоҡуҡтары менән һаҡлана",
+       "exif-copyrighted-false": "Авторлыҡ-хоҡуҡи статус индерелмәгән",
+       "exif-photometricinterpretation-1": "Ҡара һәм аҡ (ҡара — 0)",
+       "exif-unknowndate": "Билдәһеҙ көн",
+       "exif-orientation-1": "Ғәҙәти",
+       "exif-orientation-2": "X күсәре буйынса сағылдырылған",
+       "exif-orientation-3": "180° әйләндерелгән",
+       "exif-orientation-4": "Y күсәре буйынса сағылдырылған",
+       "exif-orientation-5": "Сәғәт телдәренә ҡаршы 90° әйләндерелгән һәм Y күсәре буйынса сағылдырылған",
+       "exif-orientation-6": "Сәғәт телдәренә ҡаршы 90° әйләндерелгән",
+       "exif-orientation-7": "Сәғәт телдәре буйынса 90° әйләндерелгән һәм Y күсәре буйынса сағылдырылған",
+       "exif-orientation-8": "Сәғәт телдәре буйынса 90° әйләндерелгән",
+       "exif-planarconfiguration-1": "«chunky» форматы",
+       "exif-planarconfiguration-2": "«planar» форматы",
+       "exif-colorspace-65535": "Калибрацияһыҙ",
+       "exif-componentsconfiguration-0": "юҡ",
+       "exif-exposureprogram-0": "Билдәһеҙ",
+       "exif-exposureprogram-1": "Ҡул режимы",
+       "exif-exposureprogram-2": "Программа режимы (ғәҙәти)",
+       "exif-exposureprogram-3": "Диафрагма өҫтөнлөгө",
+       "exif-exposureprogram-4": "Затвор тиҙлеге өҫтөнлөгө",
+       "exif-exposureprogram-5": "Ижад режимы (кәрәкле киҫкенлек тәрәнлеге нигеҙендә)",
+       "exif-exposureprogram-6": "Спорт режимы (юғары затвор тиҙлеге нигеҙендә)",
+       "exif-exposureprogram-7": "Портрет режимы (яҡындан төшөрөү өсөн, артҡы фон фокуста түгел)",
+       "exif-exposureprogram-8": "Пейзаж режимы (пейзаждарҙы төшөрөү өсөн, артҡы фон фокуста)",
+       "exif-subjectdistance-value": "$1 метр",
+       "exif-meteringmode-0": "Билдәһеҙ",
+       "exif-meteringmode-1": "Уртаса",
+       "exif-meteringmode-2": "Үҙәге әһәмиәтле",
+       "exif-meteringmode-3": "Нөктәле",
+       "exif-meteringmode-4": "Күп нөктәле",
+       "exif-meteringmode-5": "Ҡалып нигеҙендә",
+       "exif-meteringmode-6": "Өлөшләтә",
+       "exif-meteringmode-255": "Икенсе",
+       "exif-lightsource-0": "Билдәһеҙ",
+       "exif-lightsource-1": "Көн яҡтылығы",
+       "exif-lightsource-2": "Көн яҡтылығы лампаһы",
+       "exif-lightsource-3": "Ҡыҙҙырыу лампаһы",
+       "exif-lightsource-4": "Балҡыш (вспышка)",
+       "exif-lightsource-9": "Асыҡ көн торошо",
+       "exif-lightsource-10": "Болотло көн торошо",
+       "exif-lightsource-11": "Күләгә",
+       "exif-lightsource-12": "Көн яҡтылығы лампаһы (D 5700 – 7100K)",
+       "exif-lightsource-13": "Көн яҡтылығы лампаһы (N 4600 – 5400K)",
+       "exif-lightsource-14": "Көн яҡтылығы лампаһы (W 3900 – 4500K)",
+       "exif-lightsource-15": "Көн яҡтылығы лампаһы (WW 3200 – 3700K)",
+       "exif-lightsource-17": "A ғәҙәти яҡтылыҡ сығанағы",
+       "exif-lightsource-18": "B ғәҙәти яҡтылыҡ сығанағы",
+       "exif-lightsource-19": "C ғәҙәти яҡтылыҡ сығанағы",
+       "exif-lightsource-24": "ISO студия лампаһы",
+       "exif-lightsource-255": "Башҡа яҡтылыҡ сығанағы",
+       "exif-flash-fired-0": "Балҡыш (вспышка) эшләмәне",
+       "exif-flash-fired-1": "Балҡыш (вспышка) эшләмәне",
+       "exif-flash-return-0": "алдан балҡыш режимы юҡ",
+       "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-sensingmethod-7": "Өс төҫлө һыҙма сенсор",
+       "exif-sensingmethod-8": "Эҙмә-эҙлекле төҫлө һыҙма сенсор",
+       "exif-filesource-3": "Һанлы фотоаппарат",
+       "exif-scenetype-1": "Туранан-тура төшөрөлгән һүрәт",
+       "exif-customrendered-0": "Ғәҙәти",
+       "exif-customrendered-1": "Өҫтәмә эшкәртелгән",
+       "exif-exposuremode-0": "Автоматик экспозиция",
+       "exif-exposuremode-1": "Ҡул менән көйләнгән экспозиция",
+       "exif-exposuremode-2": "Автоматик тотҡос",
+       "exif-whitebalance-0": "Автоматик аҡ төҫ тигеҙләнеше",
+       "exif-whitebalance-1": "Ҡул менән көйләнгән аҡ төҫ тигеҙләнеше",
+       "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-saturation-0": "Ғәҙәти",
+       "exif-saturation-1": "Түбән ҡуйылыҡ",
+       "exif-saturation-2": "Юғары ҡуйылыҡ",
+       "exif-sharpness-0": "Ғәҙәти",
+       "exif-sharpness-1": "Йомшаҡ",
+       "exif-sharpness-2": "Ныҡ",
+       "exif-subjectdistancerange-0": "Билдәһеҙ",
+       "exif-subjectdistancerange-1": "Макро",
+       "exif-subjectdistancerange-2": "Яҡындан төшөрөү",
+       "exif-subjectdistancerange-3": "Йыраҡтан төшөрөү",
+       "exif-gpslatitude-n": "Төньяҡ киңлек",
+       "exif-gpslatitude-s": "Көньяҡ киңлек",
+       "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": "2 күсәр буйынса үлсәү",
+       "exif-gpsmeasuremode-3": "3 күсәр буйынса үлсәү",
+       "exif-gpsspeed-k": "км/сәғ",
+       "exif-gpsspeed-m": "миль/сәғ",
+       "exif-gpsspeed-n": "Узел",
+       "exif-gpsdestdistance-k": "Километр",
+       "exif-gpsdestdistance-m": "Миль",
+       "exif-gpsdestdistance-n": "Диңгеҙ миле",
+       "exif-gpsdop-excellent": "Бик шәп ($1)",
+       "exif-gpsdop-good": "Һәйбәт ($1)",
+       "exif-gpsdop-moderate": "Уртаса ($1)",
+       "exif-gpsdop-fair": "Уртасанан насар ($1)",
+       "exif-gpsdop-poor": "Насар ($1)",
+       "exif-objectcycle-a": "Иртәнсәк кенә",
+       "exif-objectcycle-p": "Кис кенә",
+       "exif-objectcycle-b": "Иртән һәм кис",
+       "exif-gpsdirection-t": "Ысын йүнәлеш",
+       "exif-gpsdirection-m": "Магнитлы йүнәлеш",
+       "exif-ycbcrpositioning-1": "Урталанған",
+       "exif-ycbcrpositioning-2": "CO-sited",
+       "exif-dc-contributor": "Өлөш индереүселәр",
+       "exif-dc-coverage": "Медианың арауыҡ йәки ваҡыт солғауы",
+       "exif-dc-date": "Дата(лар)",
+       "exif-dc-publisher": "Нәшриәт",
+       "exif-dc-relation": "Бәйле медиа",
+       "exif-dc-rights": "Хоҡуҡтар",
+       "exif-dc-source": "Сығанаҡ медиа",
+       "exif-dc-type": "Медиа төрө",
+       "exif-rating-rejected": "Кире ҡағылды",
+       "exif-isospeedratings-overflow": "65535-тән күп",
+       "exif-iimcategory-ace": "Сәнғәт, мәҙәниәт һәм күңел асыу",
+       "exif-iimcategory-clj": "Енәйәт һәм хоҡуҡ",
+       "exif-iimcategory-dis": "Һәләкәттәр һәм авариялар",
+       "exif-iimcategory-fin": "Экономика һәм бизнес",
+       "exif-iimcategory-edu": "Мәғариф",
+       "exif-iimcategory-evn": "Тирә-яҡ",
+       "exif-iimcategory-hth": "Һаулыҡ",
+       "exif-iimcategory-hum": "Кеше ҡыҙыҡһыныуы",
+       "exif-iimcategory-lab": "Хеҙмәт",
+       "exif-iimcategory-lif": "Йәшәү рәүеше һәм ял",
+       "exif-iimcategory-pol": "Сәйәсәт",
+       "exif-iimcategory-rel": "Дин һәм иман",
+       "exif-iimcategory-sci": "Фән һәм техника",
+       "exif-iimcategory-soi": "Социаль мәсьәләләр",
+       "exif-iimcategory-spo": "Спорт",
+       "exif-iimcategory-war": "Һуғыштар, конфликттар һәм тәртипһеҙлектәр",
+       "exif-iimcategory-wea": "Һауа торошо",
+       "exif-urgency-normal": "Ғәҙәти ($1)",
+       "exif-urgency-low": "Түбән ($1)",
+       "exif-urgency-high": "Юғары ($1)",
+       "exif-urgency-other": "Ҡулланыусы билдәләгән өҫтөнлөк ($1)"
+}
diff --git a/languages/i18n/exif/bcc.json b/languages/i18n/exif/bcc.json
new file mode 100644 (file)
index 0000000..8a396d9
--- /dev/null
@@ -0,0 +1,259 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Baloch Afghanistan",
+                       "Mostafadaneshvar"
+               ]
+       },
+       "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": "بیت آن دیتا جیی پی جی",
+       "exif-whitepoint": "رنگ پذیری نکته اسپیت",
+       "exif-primarychromaticities": "رنگ پذیری اولیگی",
+       "exif-ycbcrcoefficients": " ضرایب فضا رنگ جاه په جاهی ماتریکس",
+       "exif-referenceblackwhite": "جفتی چه سیاه و اسپیتین ارزشان مرجع",
+       "exif-datetime": "فایل تغییر تاریح  و وهد",
+       "exif-imagedescription": "عنوان عکس",
+       "exif-make": "شرکنوک دوربین",
+       "exif-model": "مدل دوربین",
+       "exif-software": "برنامه استفاده بوتگ",
+       "exif-artist": "نویسنده",
+       "exif-copyright": "داروک حق کپی",
+       "exif-exifversion": "نسخه Exif",
+       "exif-flashpixversion": "نسخه فلش پیکس حمایتی",
+       "exif-colorspace": "فضا رنگ",
+       "exif-componentsconfiguration": "معنی هر جز",
+       "exif-compressedbitsperpixel": "مدل کمپرس کتن عکس",
+       "exif-pixelxdimension": "معتبرین پهنات عکس",
+       "exif-pixelydimension": "معتبرین ارتفاع عکس",
+       "exif-usercomment": "نظرات کاربر",
+       "exif-relatedsoundfile": "مربوطین فایل صوتی",
+       "exif-datetimeoriginal": "تاریح و وهد شرکتن دیتا",
+       "exif-datetimedigitized": "تاریح و هود دیجیتالی بوگ",
+       "exif-subsectime": "تاریح وهد زیر ثانیه",
+       "exif-subsectimeoriginal": "تاریخ زمان اصلی زیر ثانیه",
+       "exif-subsectimedigitized": "تاریح زمان دیجتالی بوتگین زیر ثانیه",
+       "exif-exposuretime": "وهد ته معرض بیگ",
+       "exif-exposuretime-format": "$1 ثانیه ($2)",
+       "exif-fnumber": "شماره اف",
+       "exif-fnumber-format": "ف/$1",
+       "exif-exposureprogram": "برنامه ته معرض بوتن",
+       "exif-spectralsensitivity": "حساسیت طیفی",
+       "exif-isospeedratings": "میزان سرعت ISO",
+       "exif-shutterspeedvalue": "سرعت شاتر",
+       "exif-aperturevalue": "پچ بیگ",
+       "exif-brightnessvalue": "روشنی",
+       "exif-exposurebiasvalue": "معرض پیشقدر",
+       "exif-maxaperturevalue": "آهری حد پیش بیگ سطح",
+       "exif-subjectdistance": "فاصله شی",
+       "exif-meteringmode": "مدل متر گنگ",
+       "exif-lightsource": "منبع نور",
+       "exif-flash": "فلاش",
+       "exif-focallength": "طول کانونی لنز",
+       "exif-focallength-format": "$1م.م",
+       "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": "توازن اسپیت",
+       "exif-digitalzoomratio": "نسبت زوم دیجیتالی",
+       "exif-focallengthin35mmfilm": "فاصله کانونی ته فیلم 35 م.م",
+       "exif-scenecapturetype": "نوع گرگ صحنه",
+       "exif-gaincontrol": "کنترل صحنه",
+       "exif-contrast": "کنتراست",
+       "exif-saturation": "اشباع",
+       "exif-sharpness": "تیزی",
+       "exif-devicesettingdescription": "توضیح تنظیمات وسیله",
+       "exif-subjectdistancerange": "محدوده فاصله شی",
+       "exif-imageuniqueid": "شناسگ یکی عکس",
+       "exif-gpsversionid": "برچسپ نسخه جی پی اس",
+       "exif-gpslatituderef": "عرض جنوبی یا شمالی",
+       "exif-gpslatitude": "عرض جغرافیایی",
+       "exif-gpslongituderef": "طول غربی یا شرقی",
+       "exif-gpslongitude": "طول جغرافیایی",
+       "exif-gpsaltituderef": "منبع ارتفاع",
+       "exif-gpsaltitude": "ارتفاع",
+       "exif-gpstimestamp": "وهد جی پی اس(ساع اتمی)",
+       "exif-gpssatellites": "ماهواره آنی که په اندازه گرگ استفاده بنت",
+       "exif-gpsstatus": "وضعیت رسیور",
+       "exif-gpsmeasuremode": "مدل اندازه گرگ",
+       "exif-gpsdop": "صحت اندازه گرگ",
+       "exif-gpsspeedref": "واحد سرعت",
+       "exif-gpsspeed": "سرعت رسیور جی پی اس",
+       "exif-gpstrackref": "منبع په مسیر حرکت",
+       "exif-gpstrack": "مسیر حرکت",
+       "exif-gpsimgdirectionref": "منبع په مسیر عکس",
+       "exif-gpsimgdirection": "مسیر عکس",
+       "exif-gpsmapdatum": "چه روش زمین پیمایی دیتا استفاده بیت",
+       "exif-gpsdestlatituderef": "مرجع په عرض جغرافیایی مقصد",
+       "exif-gpsdestlatitude": "عرض جغرافیای مقصد",
+       "exif-gpsdestlongituderef": "مرجع په طول جغرافیای مقصد",
+       "exif-gpsdestlongitude": "طول جغرافیای مقصد",
+       "exif-gpsdestbearingref": "مرجع په تاب مقصد",
+       "exif-gpsdestbearing": "تاب مقصد",
+       "exif-gpsdestdistanceref": "مرجع په فاصله دان مقصد",
+       "exif-gpsdestdistance": "فاصله تا مقصد",
+       "exif-gpsprocessingmethod": "نام روش پردازش جی پی اس",
+       "exif-gpsareainformation": "نام منطقه جی پی اس",
+       "exif-gpsdatestamp": "تاریح جی پی اس",
+       "exif-gpsdifferential": "اصلاح متفاوت جی پی اس",
+       "exif-countrydest": "نشان داته بوته گین ملک",
+       "exif-countrycodedest": "نشان داته بوته گین ملکِ کود",
+       "exif-provinceorstatedest": "نشان داته بوته گین ولایت یا ایالت",
+       "exif-citydest": "نشان داته بوته گین شار",
+       "exif-sublocationdest": "نشان داته بوته گین مئل",
+       "exif-writer": "نویسوک",
+       "exif-languagecode": "زبان",
+       "exif-iimcategory": "تهر",
+       "exif-compression-1": "کمپرس نه بوتت",
+       "exif-compression-6": "جیی پی ای جی",
+       "exif-photometricinterpretation-2": "آی جی بی",
+       "exif-photometricinterpretation-6": "وای سی بی سی آر",
+       "exif-unknowndate": "ناشناس تاریح",
+       "exif-orientation-1": "نرمال",
+       "exif-orientation-2": "چپ بیگ افقی",
+       "exif-orientation-3": "گردگ 180°",
+       "exif-orientation-4": "چپ بیگ عمودی",
+       "exif-orientation-5": "چرحتن 90° ضد ساعت گرد و چپ بیگ عمودی",
+       "exif-orientation-6": "چرحتن 90° ساعت گرد",
+       "exif-orientation-7": "چرحتن 90° ساعت گرد و چپ بیگ عمودی",
+       "exif-orientation-8": "چرتن 90°ساعت گرد",
+       "exif-planarconfiguration-1": "فرمتی چنکی",
+       "exif-planarconfiguration-2": "فرمت سطحی",
+       "exif-xyresolution-i": "$1 دی پی آی",
+       "exif-xyresolution-c": "$1 دی پی سی",
+       "exif-colorspace-1": "اس ار جی بی",
+       "exif-componentsconfiguration-0": "موجود نهنت",
+       "exif-componentsconfiguration-1": "وای",
+       "exif-componentsconfiguration-2": "سی بی",
+       "exif-componentsconfiguration-3": "سی آر",
+       "exif-componentsconfiguration-4": "س",
+       "exif-componentsconfiguration-5": "س",
+       "exif-componentsconfiguration-6": "ن",
+       "exif-exposureprogram-0": "تعریف نه بیتت",
+       "exif-exposureprogram-1": "دستی",
+       "exif-exposureprogram-2": "برنامه نرمال",
+       "exif-exposureprogram-3": "ترجیح سولاح",
+       "exif-exposureprogram-4": "ترجیح شاتر",
+       "exif-exposureprogram-5": "برنامه شرکنوک ( متمایل په عمق زمینه)",
+       "exif-exposureprogram-6": "برنامه کار (تمایل په سرعت سریع شاتر)",
+       "exif-exposureprogram-7": "حالت پرورتره(په نزیکین عکسان در چه تمرکز به پیش سر )",
+       "exif-exposureprogram-8": "حالت منظره (په تصاویر منظره ای گون تمرکز ته پیش صحنه)",
+       "exif-subjectdistance-value": "$1 متر",
+       "exif-meteringmode-0": "ناشناس",
+       "exif-meteringmode-1": "میانگین",
+       "exif-meteringmode-2": "میانگین وسط وزن",
+       "exif-meteringmode-3": "نکته",
+       "exif-meteringmode-4": "چندنکته ای",
+       "exif-meteringmode-5": "الگو",
+       "exif-meteringmode-6": "جزی",
+       "exif-meteringmode-255": "دگر",
+       "exif-lightsource-0": "ناشناس",
+       "exif-lightsource-1": "نور روچ",
+       "exif-lightsource-2": "فلورسنت",
+       "exif-lightsource-3": "تنگستن(نور اسپیت)",
+       "exif-lightsource-4": "فلاش",
+       "exif-lightsource-9": "وشین آپ و هوا",
+       "exif-lightsource-10": "هوری آپ و هوا",
+       "exif-lightsource-11": "ساهیل",
+       "exif-lightsource-12": "فلورسنت نور روچ (D 5700 – 7100K)",
+       "exif-lightsource-13": "فلورسنت اسپیت روچ (N 4600 – 5400K)",
+       "exif-lightsource-14": "فلورسنت اسپیتء وشین (W 3900 – 4500K)",
+       "exif-lightsource-15": "فلورسنت اسپیت(WW 3200 – 3700K)",
+       "exif-lightsource-17": "نور استاندارد آ",
+       "exif-lightsource-18": "نور استاندارد بی",
+       "exif-lightsource-19": "نور استاندارد سی",
+       "exif-lightsource-20": "د55",
+       "exif-lightsource-21": "د56",
+       "exif-lightsource-22": "ی57",
+       "exif-lightsource-23": "د50",
+       "exif-lightsource-24": "ایزو استدیو تنگستن",
+       "exif-lightsource-255": "دگ منبع نور",
+       "exif-flash-fired-0": "بی فلاش جنگ",
+       "exif-flash-fired-1": "فلاش جنت",
+       "exif-flash-return-0": "بی عملگر درگیزگ نور انعکاسی",
+       "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-sensingmethod-7": "سنسور سه خطی",
+       "exif-sensingmethod-8": "سنسور خطی ترکیبی رنگ",
+       "exif-filesource-3": "دی اس سی",
+       "exif-scenetype-1": "یک عکس مستقیمی گپتگین",
+       "exif-customrendered-0": "پردازش نرمال",
+       "exif-customrendered-1": "پردازش سنتی",
+       "exif-exposuremode-0": "مدت پچ بیگ دیافراگم دوربین",
+       "exif-exposuremode-1": "دستی پچ بیگ دیافراگ دوربین",
+       "exif-exposuremode-2": "اتوماتیکی پرانتز",
+       "exif-whitebalance-0": "اتوماتیکی توازن اسپیت",
+       "exif-whitebalance-1": "دستی توازن اسپیت",
+       "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-saturation-0": "نرمال",
+       "exif-saturation-1": "اشباع کم",
+       "exif-saturation-2": "اشباع بالا",
+       "exif-sharpness-0": "نرمال",
+       "exif-sharpness-1": "نرم",
+       "exif-sharpness-2": "ترند",
+       "exif-subjectdistancerange-0": "ناشناس",
+       "exif-subjectdistancerange-1": "مزن",
+       "exif-subjectdistancerange-2": "نزیک گندگ",
+       "exif-subjectdistancerange-3": "دورین گندگ",
+       "exif-gpslatitude-n": "عرض شمالی",
+       "exif-gpslatitude-s": "عرض جنوبی",
+       "exif-gpslongitude-e": "طول شرقی",
+       "exif-gpslongitude-w": "طول غربی",
+       "exif-gpsstatus-a": "اندازه گرگ ته جریاننت",
+       "exif-gpsstatus-v": "اندازه گرگ بین عملی",
+       "exif-gpsmeasuremode-2": "اندازه گرگ 2-بعدی",
+       "exif-gpsmeasuremode-3": "اندازه گرگ 3-بعدی",
+       "exif-gpsspeed-k": "کیلومتر ته ساعت",
+       "exif-gpsspeed-m": "مایل ته ساعت",
+       "exif-gpsspeed-n": "گرهنان",
+       "exif-gpsdestdistance-k": "کیلومتر",
+       "exif-gpsdestdistance-m": "مایل",
+       "exif-gpsdestdistance-n": "دریایی مایل",
+       "exif-gpsdirection-t": "جهت درست",
+       "exif-gpsdirection-m": "مسیر آهن ربایی"
+}
diff --git a/languages/i18n/exif/bcl.json b/languages/i18n/exif/bcl.json
new file mode 100644 (file)
index 0000000..f596568
--- /dev/null
@@ -0,0 +1,347 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Filipinayzd",
+                       "Geopoet",
+                       "Steven*fung"
+               ]
+       },
+       "exif-imagewidth": "Lakbáng",
+       "exif-imagelength": "Langkáw",
+       "exif-bitspersample": "Panaradit kada komponente",
+       "exif-compression": "Eskima sa kompresyon",
+       "exif-photometricinterpretation": "Komposisyon sa piksel",
+       "exif-orientation": "Oryentasyon",
+       "exif-samplesperpixel": "Numero kan mga komponente",
+       "exif-planarconfiguration": "Kahusayan kan datos",
+       "exif-ycbcrsubsampling": "Pan-irarom na sampol na rasyo kan Y sagkod C",
+       "exif-ycbcrpositioning": "Y asin C na pagpoposisyon",
+       "exif-xresolution": "Pahigdang resolusyon",
+       "exif-yresolution": "Patindog na resolusyon",
+       "exif-stripoffsets": "Lokasyon kan datos nin imahe",
+       "exif-rowsperstrip": "Numero kan mga row sa kada ginupit",
+       "exif-stripbytecounts": "Panadakol sa kada kompresadong ginupit",
+       "exif-jpeginterchangeformat": "Ipagpantay sa JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Panadakol kan datos sa JPEG",
+       "exif-whitepoint": "Puti na puntong kromatiko",
+       "exif-primarychromaticities": "Kromatisidad kan mga primarisidad",
+       "exif-ycbcrcoefficients": "Kulay kan espasyong transpormasyon sa matrisang mga koepisiyente",
+       "exif-referenceblackwhite": "Padis kan itom asin puting bilang sa reperensiya",
+       "exif-datetime": "Pansagunsong pagbabago sa petsa asin oras",
+       "exif-imagedescription": "Titulo kan retrato",
+       "exif-make": "Tagagibo nin kamera",
+       "exif-model": "Modelo nin kamera",
+       "exif-software": "Panuklob na ginamit",
+       "exif-artist": "Kagsúrat",
+       "exif-copyright": "Kagkapot nin karapatan sa panurat",
+       "exif-exifversion": "Exif bersyon",
+       "exif-flashpixversion": "Suportadong Flashpix na bersyon",
+       "exif-colorspace": "Espasyong kulay",
+       "exif-componentsconfiguration": "Panabot kan lambang komponente",
+       "exif-compressedbitsperpixel": "Moda nin kompresyon sa imahe",
+       "exif-pixelxdimension": "Lakbang kan imahe",
+       "exif-pixelydimension": "Langkaw kan imahe",
+       "exif-usercomment": "Mga komento kan paragamít",
+       "exif-relatedsoundfile": "Kaakibay kan sagunson na pandangog",
+       "exif-datetimeoriginal": "Petsa asin oras kan henerasyon nin datos",
+       "exif-datetimedigitized": "Petsa asin oras kan paghimong dihital",
+       "exif-subsectime": "PetsaOras na mga subsegundo",
+       "exif-subsectimeoriginal": "PetsaOrasOrihinal na mga subsegundo",
+       "exif-subsectimedigitized": "PetaOrasDihitalisadong mga subsegundo",
+       "exif-exposuretime": "Kahuyangang oras",
+       "exif-exposuretime-format": "$1 seg ($2)",
+       "exif-fnumber": "F numero",
+       "exif-exposureprogram": "Kahuyangang Programa",
+       "exif-spectralsensitivity": "Espektral na sensitibidad",
+       "exif-isospeedratings": "ISO grado nin rikas",
+       "exif-shutterspeedvalue": "APEX rikas kan kimlat",
+       "exif-aperturevalue": "APEX na Kamuklatan",
+       "exif-brightnessvalue": "APEX na kaliwanagan",
+       "exif-exposurebiasvalue": "APEX na kahuyangan nin kalaenan",
+       "exif-maxaperturevalue": "Pinakahalangkaw na kamuklatang pandaga",
+       "exif-subjectdistance": "Subhetong distansiya",
+       "exif-meteringmode": "Moda nin pagmemetro",
+       "exif-lightsource": "Ginikánan nin liwánag",
+       "exif-flash": "Kikilát",
+       "exif-focallength": "Laba sa turuhok kan lente",
+       "exif-subjectarea": "Lugar kan subheto",
+       "exif-flashenergy": "Kakusogan nin kikilát",
+       "exif-focalplanexresolution": "Sayon nin turuhok kan X na resolusyon",
+       "exif-focalplaneyresolution": "Sayon nin turuhok kan Y na resolusyon",
+       "exif-focalplaneresolutionunit": "Sayon nin turuhok sa resolusyon kan yunit",
+       "exif-subjectlocation": "Lokasyon kan subheto",
+       "exif-exposureindex": "Hukdo nin kahuyangan",
+       "exif-sensingmethod": "Metodo nin paghihimate",
+       "exif-filesource": "Ginikánan nin dokumento",
+       "exif-scenetype": "Tipo nin eksena",
+       "exif-customrendered": "Kapakarahayang proseso kan imahe",
+       "exif-exposuremode": "Moda nin Kahuyangan",
+       "exif-whitebalance": "Kapantayan nin kaputian",
+       "exif-digitalzoomratio": "Dihital na rata nin karanihan",
+       "exif-focallengthin35mmfilm": "Sayon nin kalabaan sa 35 mm na pelikula",
+       "exif-scenecapturetype": "Tipo kan pagdakop nin eksena",
+       "exif-gaincontrol": "Kontrol na pan-eksena",
+       "exif-contrast": "Kontraste",
+       "exif-saturation": "Kababadan",
+       "exif-sharpness": "Kahaisan",
+       "exif-devicesettingdescription": "Mga deskripsyon kan panuytoy nin aparato",
+       "exif-subjectdistancerange": "Hikwas kan distansiya nin subheto",
+       "exif-imageuniqueid": "Unikong ID kan ladawan",
+       "exif-gpsversionid": "Bersyon kan GPS tag",
+       "exif-gpslatituderef": "Hiraga o Timog na kahalaghagan",
+       "exif-gpslatitude": "Halaghag",
+       "exif-gpslongituderef": "Sirangan o Sulnupan na kalabaghan",
+       "exif-gpslongitude": "Kalabaghan",
+       "exif-gpsaltituderef": "Reperensiya nin kalangkawan",
+       "exif-gpsaltitude": "Kahalaghagan",
+       "exif-gpstimestamp": "GPS na oras (atomikong orasan)",
+       "exif-gpssatellites": "Mga satelayt na pinaggagamit para sa kasukolan",
+       "exif-gpsstatus": "Estado kan resibidor",
+       "exif-gpsmeasuremode": "Moda nin kasukolan",
+       "exif-gpsdop": "Katusayang kasukolan",
+       "exif-gpsspeedref": "Yunit nin karikasan",
+       "exif-gpsspeed": "Karikasan kan GPS na resibidor",
+       "exif-gpstrackref": "Reperensiya para sa direksyon nin kahiroan",
+       "exif-gpstrack": "Direksyon kan paghirô",
+       "exif-gpsimgdirectionref": "Reperensiya para sa direksyon kan imahe",
+       "exif-gpsimgdirection": "Direksyon kan ladáwan",
+       "exif-gpsmapdatum": "Heodetikong surbey an datos na pinaggamit",
+       "exif-gpsdestlatituderef": "Reperensiya para sa panlatitud na destinasyon",
+       "exif-gpsdestlatitude": "Panlatitud na destinasyon",
+       "exif-gpsdestlongituderef": "Reperensiya para sa panlongitud na destination",
+       "exif-gpsdestlongitude": "Panlongitud na destinasyon",
+       "exif-gpsdestbearingref": "Reperensiya para sa pandireksyon na destinasyon",
+       "exif-gpsdestbearing": "Pandireksyon na destinasyon",
+       "exif-gpsdestdistanceref": "Reperensiya para sa pandistansiya na destinasyon",
+       "exif-gpsdestdistance": "Distansya sa destinasyon",
+       "exif-gpsprocessingmethod": "Ngaran kan GPS na pamprosesong kapaagihan",
+       "exif-gpsareainformation": "Ngaran nin lugar kan GPS",
+       "exif-gpsdatestamp": "Petsa kan GPS",
+       "exif-gpsdifferential": "Diperensiyal na koreksyon kan GPS",
+       "exif-jpegfilecomment": "Komentaryo sa JPEG na sagunson",
+       "exif-keywords": "Mga Susing taramon",
+       "exif-worldregioncreated": "Rehiyon kan kinaban na pinagkuanan kan litrato",
+       "exif-countrycreated": "Nasyon na pinagkuanan kan litrato",
+       "exif-countrycodecreated": "Koda para sa nasyon na pinagkuanan kan litrato",
+       "exif-provinceorstatecreated": "Probinsiya o estado na pinagkuanan kan litratro",
+       "exif-citycreated": "Siyudad na pinagkuanan kan litrato",
+       "exif-sublocationcreated": "Sublokasyon kan siyudad na pinagkuanan kan litrato",
+       "exif-worldregiondest": "Rehiyon kan kinaban pinapahiling",
+       "exif-countrydest": "Nasyon ipinapahiling",
+       "exif-countrycodedest": "Koda para sa nasyon na ipinahiling",
+       "exif-provinceorstatedest": "Probinsiya o estadong ipinapahiling",
+       "exif-citydest": "Siyudad ipinahiling",
+       "exif-sublocationdest": "\nSublokas kan siyudad na ipinahiling",
+       "exif-objectname": "Halipot na titulo",
+       "exif-specialinstructions": "Espesyal na mga instruksyon",
+       "exif-headline": "Pamayuhang-linya",
+       "exif-credit": "Pautang/Tagapagtao",
+       "exif-source": "Pinaggikanan",
+       "exif-editstatus": "Editoryal na kamugtakan kan imahe",
+       "exif-urgency": "Kahidalian",
+       "exif-fixtureidentifier": "Ngaran kan agwerto",
+       "exif-locationdest": "Lokasyon pinagbiklad",
+       "exif-locationdestcode": "Koda kan lokasyon pinagbiklad",
+       "exif-objectcycle": "Oras kan aldaw na an midya pinagtuyuhan",
+       "exif-contact": "Impormasyon kan kontak",
+       "exif-writer": "Parasurat",
+       "exif-languagecode": "Lengguwahe",
+       "exif-iimversion": "IIM bersyon",
+       "exif-iimcategory": "Kategoriya",
+       "exif-iimsupplementalcategory": "Pansuplementong mga kategoriya",
+       "exif-datetimeexpires": "Dae gamiton pagkatapos",
+       "exif-datetimereleased": "Pinaluwas kan",
+       "exif-originaltransmissionref": "Orihinal na transmisyon sa koda nin lokasyon",
+       "exif-identifier": "Tagapagpamidbid",
+       "exif-lens": "Lenteng pinaggamit",
+       "exif-serialnumber": "Seryal na numero kan kamera",
+       "exif-cameraownername": "Kagsadire kan kamera",
+       "exif-label": "Tatak",
+       "exif-datetimemetadata": "Petsa kan metadata na huring pinagbago",
+       "exif-nickname": "Impormal na ngaran kan imahe",
+       "exif-rating": "Kamarkahan (luwas sa lima)",
+       "exif-rightscertificate": "Sertipiko kan manihamento nin mga karapatan",
+       "exif-copyrighted": "Estado sa karapatan nin panurat",
+       "exif-copyrightowner": "Kagsadire sa karapatan nin panurat",
+       "exif-usageterms": "Mga Terminong Ginagamit",
+       "exif-webstatement": "Online na testamento sa karapatan nin panurat",
+       "exif-originaldocumentid": "Unikong ID kan orihinal na dokumento",
+       "exif-licenseurl": "Kilyawan para sa lisensiya nin karapatan sa panurat",
+       "exif-morepermissionsurl": "Alternatibong impormasyon sa paglilisensiya",
+       "exif-attributionurl": "Kunsoarin gagamiton otro ining gibo, pakisugpon sa",
+       "exif-preferredattributionname": "Kunsoarin gagamiton otro ining gibo, sabihon tabi an kredito",
+       "exif-pngfilecomment": "Komentaryo sa PNG na sagunson",
+       "exif-disclaimer": "Pagpapasimuya",
+       "exif-contentwarning": "Patanid kan laog",
+       "exif-giffilecomment": "Komentary sa GIF na sagunson",
+       "exif-intellectualgenre": "Tipo kan Aytem",
+       "exif-subjectnewscode": "Koda kan subheto",
+       "exif-scenecode": "IPTC pan-eksenang koda",
+       "exif-event": "Panyayaring pinagbiklad",
+       "exif-organisationinimage": "Organisasyon pinagbiklad",
+       "exif-personinimage": "Persona pinagbiklad",
+       "exif-originalimageheight": "Langkaw kan imahe bago ini pinagkrap",
+       "exif-originalimagewidth": "Lakbang kan imahe bago ini pinagkrap",
+       "exif-compression-1": "Pinaghalugaan",
+       "exif-compression-2": "CCITT Grupong 3 1-Dimensyonal na pagbabago ni Huffman nagdadalagan nin halawig na pag-enkod",
+       "exif-compression-3": "CCITT Grupong 3 pinag-enkod sa fax",
+       "exif-compression-4": "CCITT Grupong 3 pinag-enkod sa fax",
+       "exif-copyrighted-true": "Nakatagamang karapatan sa panurat",
+       "exif-copyrighted-false": "An kamugtakan sa katanosan nin pagsasadiri dae nakakaag",
+       "exif-unknowndate": "Daí aram an petsa",
+       "exif-orientation-1": "Normalon",
+       "exif-orientation-2": "Pahigdang pinagbuklat",
+       "exif-orientation-3": "Pinag-ikot nin 180 grado",
+       "exif-orientation-4": "Patindog na pinagbuklot",
+       "exif-orientation-5": "Pinag-ikot nin 90 grade asin patindog na pinagbuklat",
+       "exif-orientation-6": "Pinag-ikot nin 90 grado sa CCW",
+       "exif-orientation-7": "Pinag-ikot nin 90 grade CW asin patindog na pinagbuklat",
+       "exif-orientation-8": "Pinag-ikot nin 90 grado sa CW",
+       "exif-planarconfiguration-1": "Patingi na pormat",
+       "exif-planarconfiguration-2": "Planar na pormat",
+       "exif-colorspace-65535": "Bakong kalibrado",
+       "exif-componentsconfiguration-0": "mayô man ini",
+       "exif-exposureprogram-0": "Mayong pinagkahulugan",
+       "exif-exposureprogram-1": "Manwal",
+       "exif-exposureprogram-2": "Normal na programa",
+       "exif-exposureprogram-3": "Apertoryong Prayoridad",
+       "exif-exposureprogram-4": "Panseradong Prayoridad",
+       "exif-exposureprogram-5": "Pangmuknaon na programa (minapabor sa hararomon na kinasakupan)",
+       "exif-exposureprogram-6": "Pamprogramang Aksyon (minauyon sa mabilison pampundong buklos)",
+       "exif-exposureprogram-7": "Modong patindog (para haranihang mga litrato na igwang kalikudan na luwas sa pokus)",
+       "exif-exposureprogram-8": "Modong pahigda ( para sa pahigdang mga litrato na igwang kalikudan na nakapokus)",
+       "exif-subjectdistance-value": "$1 metros",
+       "exif-meteringmode-0": "Dai aram",
+       "exif-meteringmode-1": "Kagtahawan",
+       "exif-meteringmode-2": "Sentrong pinaggabatan na kagtahawan",
+       "exif-meteringmode-3": "Kaghilngan",
+       "exif-meteringmode-4": "Pandakol na kaghilngan",
+       "exif-meteringmode-5": "Pangarugan",
+       "exif-meteringmode-6": "Parsyal",
+       "exif-meteringmode-255": "Iba pa",
+       "exif-lightsource-0": "Bakong bistado",
+       "exif-lightsource-1": "Maliwanagong aldaw",
+       "exif-lightsource-2": "Kalaadan",
+       "exif-lightsource-3": "Tungsten (mainitong liwanag)",
+       "exif-lightsource-4": "Kitkilát",
+       "exif-lightsource-9": "Magayón na panahón",
+       "exif-lightsource-10": "Mapanginurong panahon",
+       "exif-lightsource-11": "Lindong",
+       "exif-lightsource-12": "Pan-agang kalaadan (D 5700 - 7100K)",
+       "exif-lightsource-13": "Pan-agang mapution na kalaadan (N 4600 - 5400K)",
+       "exif-lightsource-14": "Malipotong mapution na kalaadan (W 3900 - 4500K)",
+       "exif-lightsource-15": "Maputiong kalaadan (WW 3200 - 3700K)",
+       "exif-lightsource-17": "Estandarteng Laad A",
+       "exif-lightsource-18": "Estandarteng Laad B",
+       "exif-lightsource-19": "Estandarteng Laad C",
+       "exif-lightsource-24": "ISO estudyong tungsten",
+       "exif-lightsource-255": "Mga ibang ginikanan nin ilaw",
+       "exif-flash-fired-0": "An flash dae nagsindi",
+       "exif-flash-fired-1": "An flash nagsindi",
+       "exif-flash-return-0": "mayong estrobo sa pambalik na punksyon sa deteksyon",
+       "exif-flash-return-2": "estrobong pambalik liwanag bakong detektado",
+       "exif-flash-return-3": "estrobong pambalik na liwanag detektado",
+       "exif-flash-mode-1": "kompulsaryong flash nagsindi",
+       "exif-flash-mode-2": "kompulsaryong flash pinupugulan",
+       "exif-flash-mode-3": "automatikong modo",
+       "exif-flash-function-1": "Mayong naggaganang flash",
+       "exif-flash-redeye-1": "mapulang-mata modong pambawas",
+       "exif-focalplaneresolutionunit-2": "pulgada",
+       "exif-sensingmethod-1": "Mayong pakahulugan",
+       "exif-sensingmethod-2": "Tagahimate kan solong pinyero nin pankolor sa erya",
+       "exif-sensingmethod-3": "Tagahimate kan panduwahang pinyero nin pankolor sa erya",
+       "exif-sensingmethod-4": "Tagahimate kan pantolohang pinyero nin pankolor sa erya",
+       "exif-sensingmethod-5": "Tagahimate kan pasurunod na pankolor sa erya",
+       "exif-sensingmethod-7": "Pantolohang linya na tagahimate",
+       "exif-sensingmethod-8": "Pankolor na pasurunod kan panlinyang tagahimate",
+       "exif-filesource-3": "Nakauntok na kamerang digital",
+       "exif-scenetype-1": "Direktong naretratong ladawan",
+       "exif-customrendered-0": "Normal na proseso",
+       "exif-customrendered-1": "Pambagong proseso",
+       "exif-exposuremode-0": "Awto na pamburiyas",
+       "exif-exposuremode-1": "Manwal na pamburiyas",
+       "exif-exposuremode-2": "Awto na pankorda",
+       "exif-whitebalance-0": "Awto pambalanse kan puti",
+       "exif-whitebalance-1": "Manwal na pambalanse kan puti",
+       "exif-scenecapturetype-0": "Estandarte",
+       "exif-scenecapturetype-1": "Pahigda",
+       "exif-scenecapturetype-2": "Retrato",
+       "exif-scenecapturetype-3": "Eksenang banggi",
+       "exif-gaincontrol-0": "Mayo",
+       "exif-gaincontrol-1": "Hababaong pampalangkaw",
+       "exif-gaincontrol-2": "Paitaas na pampalangkaw",
+       "exif-gaincontrol-3": "Hababaong pampababa",
+       "exif-gaincontrol-4": "Paitaas na pampababa",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Malumoy",
+       "exif-contrast-2": "Matagas",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Hababaon na satyurasyon",
+       "exif-saturation-2": "Halangkawon na satyurasyon",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Malumoy",
+       "exif-sharpness-2": "Matagas",
+       "exif-subjectdistancerange-0": "Bakong bisto",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Haranihon pagtanaw",
+       "exif-subjectdistancerange-3": "Harayoong pagtanaw",
+       "exif-gpslatitude-n": "Norteng kasalungaan",
+       "exif-gpslatitude-s": "Sur na kasalungaan",
+       "exif-gpslongitude-e": "Esteng kahalungaan",
+       "exif-gpslongitude-w": "Westeng kahalungaan",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metro|metros}} ibabaw sa kaabtangan nin dagat",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metro|metros}} ibaba sa kaabtangan nin dagat",
+       "exif-gpsstatus-a": "Kasukolan yaon sa progreso",
+       "exif-gpsstatus-v": "Kasukolan yaon sa panlaog na operabilidad",
+       "exif-gpsmeasuremode-2": "Duwahang dimensyon na kasukolan",
+       "exif-gpsmeasuremode-3": "Pantolohang dimensyon na kasukolan",
+       "exif-gpsspeed-k": "Kilometros kada oras",
+       "exif-gpsspeed-m": "Milya kada oras",
+       "exif-gpsspeed-n": "kanukso",
+       "exif-gpsdestdistance-k": "kilometros",
+       "exif-gpsdestdistance-m": "Milyas",
+       "exif-gpsdestdistance-n": "Milya nautikal",
+       "exif-gpsdop-excellent": "Ekselente ($1)",
+       "exif-gpsdop-good": "Marahayon ($1)",
+       "exif-gpsdop-moderate": "Moderato ($1)",
+       "exif-gpsdop-fair": "Marahay-rahay ($1)",
+       "exif-gpsdop-poor": "Maluyahon ($1)",
+       "exif-objectcycle-a": "Pan-aga sana",
+       "exif-objectcycle-p": "Panbanggi sana",
+       "exif-objectcycle-b": "Pareho sa pagka-aga asin pagkabanggi",
+       "exif-gpsdirection-t": "Tunay na direksyon",
+       "exif-gpsdirection-m": "Direksyón nin batobalani",
+       "exif-ycbcrpositioning-1": "Pinagpatahaw",
+       "exif-ycbcrpositioning-2": "Katampad-sityo",
+       "exif-dc-contributor": "Mga Tagapag-ambag",
+       "exif-dc-coverage": "Espasyal o temporal tungkos kan midya",
+       "exif-dc-date": "Petsa (s)",
+       "exif-dc-publisher": "Publikador",
+       "exif-dc-relation": "Kaampad na midya",
+       "exif-dc-rights": "Mga karapatan",
+       "exif-dc-source": "Ginikanang midya",
+       "exif-dc-type": "Tipo kan midya",
+       "exif-rating-rejected": "Dinihado",
+       "exif-isospeedratings-overflow": "Halangkawon kesa 65535",
+       "exif-iimcategory-ace": "Mga arte, kultura asin kasalingayan",
+       "exif-iimcategory-clj": "Krimen asin ley",
+       "exif-iimcategory-dis": "Mga destroso asin aksidente",
+       "exif-iimcategory-fin": "Ekonomiya asin negosyo",
+       "exif-iimcategory-edu": "Edukasyon",
+       "exif-iimcategory-evn": "Kapalibutan",
+       "exif-iimcategory-hth": "Salud",
+       "exif-iimcategory-hum": "Pantawong interes",
+       "exif-iimcategory-lab": "Trabaho",
+       "exif-iimcategory-lif": "Estilo nin buhay asin libangan",
+       "exif-iimcategory-pol": "Mga Pulitika",
+       "exif-iimcategory-rel": "Relihiyon asin paniniwala",
+       "exif-iimcategory-sci": "Siyensiya asin teknolohiya",
+       "exif-iimcategory-soi": "Mga pansosyal na mga isyu",
+       "exif-iimcategory-spo": "Mga Pakawat",
+       "exif-iimcategory-war": "Giyera, iriwal asin daeng-kahingaloan",
+       "exif-iimcategory-wea": "Panahon",
+       "exif-urgency-normal": "Normalon ($1)",
+       "exif-urgency-low": "Hababaon ($1)",
+       "exif-urgency-high": "Halangkawon ($1)",
+       "exif-urgency-other": "Prayoridad na pakahulugan nin paragamit ($1)"
+}
diff --git a/languages/i18n/exif/be-tarask.json b/languages/i18n/exif/be-tarask.json
new file mode 100644 (file)
index 0000000..98ddee3
--- /dev/null
@@ -0,0 +1,361 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Artsiom91",
+                       "EugeneZelenko",
+                       "Jim-by",
+                       "Red Winged Duck",
+                       "Wizardist",
+                       "Zedlik"
+               ]
+       },
+       "exif-imagewidth": "Шырыня",
+       "exif-imagelength": "Вышыня",
+       "exif-bitspersample": "Глыбіня колеру",
+       "exif-compression": "Мэтад сьцісканьня",
+       "exif-photometricinterpretation": "Колеравая мадэль",
+       "exif-orientation": "Арыентацыя кадра",
+       "exif-samplesperpixel": "Колькасьць колеравых кампанэнтаў",
+       "exif-planarconfiguration": "Прынцып арганізацыі зьвестак",
+       "exif-ycbcrsubsampling": "Суадносіны памераў кампанэнтаў Y і C",
+       "exif-ycbcrpositioning": "Парадак разьмяшчэньня кампанэнтаў Y і C",
+       "exif-xresolution": "Гарызантальнае разрозьненьне",
+       "exif-yresolution": "Вэртыкальнае разрозьненьне",
+       "exif-stripoffsets": "Разьмяшчэньне блёку зьвестак",
+       "exif-rowsperstrip": "Колькасьць радкоў у блёку",
+       "exif-stripbytecounts": "Памер сьціснутага блёку",
+       "exif-jpeginterchangeformat": "Разьмяшчэньне пачатку блёку JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Байты JPEG-зьвестак",
+       "exif-whitepoint": "Колернасьць белага пункту",
+       "exif-primarychromaticities": "Колернасьць асноўных колераў",
+       "exif-ycbcrcoefficients": "Каэфіцыенты пераўтварэньня колеравай прасторы",
+       "exif-referenceblackwhite": "Становішча белага і чорнага пунктаў",
+       "exif-datetime": "Дата і час зьмены файла",
+       "exif-imagedescription": "Назва выявы",
+       "exif-make": "Вытворца фотаапарата",
+       "exif-model": "Мадэль фотаапарата",
+       "exif-software": "Праграмнае забесьпячэньне",
+       "exif-artist": "Аўтар",
+       "exif-copyright": "Уласьнік аўтарскіх правоў",
+       "exif-exifversion": "Вэрсія Exif",
+       "exif-flashpixversion": "Вэрсія Flashpix, якая падтрымліваецца",
+       "exif-colorspace": "Колеравая прастора",
+       "exif-componentsconfiguration": "Канфігурацыя колеравых кампанэнтаў",
+       "exif-compressedbitsperpixel": "Глыбіня колеру пасьля сьцісканьня",
+       "exif-pixelxdimension": "Шырыня выявы",
+       "exif-pixelydimension": "Вышыня выявы",
+       "exif-usercomment": "Камэнтары карыстальніка",
+       "exif-relatedsoundfile": "Датычны аўдыё-файл",
+       "exif-datetimeoriginal": "Дата і час утварэньня зьвестак",
+       "exif-datetimedigitized": "Дата і час лічбаваньня",
+       "exif-subsectime": "Доля сэкундаў часу зьмяненьня файла",
+       "exif-subsectimeoriginal": "Долі сэкундаў арыгінальнага часу",
+       "exif-subsectimedigitized": "Долі сэкундаў часу лічбаваньня",
+       "exif-exposuretime": "Час насьвятленьня",
+       "exif-exposuretime-format": "$1 сэк ($2)",
+       "exif-fnumber": "Лік дыяфрагмы",
+       "exif-exposureprogram": "Праграма насьвятленьня",
+       "exif-spectralsensitivity": "Спэктральная адчувальнасьць",
+       "exif-isospeedratings": "Сьветаадчувальнасьць ISO",
+       "exif-shutterspeedvalue": "Вытрымка",
+       "exif-aperturevalue": "Дыяфрагма",
+       "exif-brightnessvalue": "Яркасьць",
+       "exif-exposurebiasvalue": "Кампэнсацыя насьвятленьня",
+       "exif-maxaperturevalue": "Мінімальны лік дыяфрагмы",
+       "exif-subjectdistance": "Адлегласьць да аб'екту",
+       "exif-meteringmode": "Лад вымярэньня насьвятленьня",
+       "exif-lightsource": "Крыніца сьвятла",
+       "exif-flash": "Успышка",
+       "exif-focallength": "Фокусная адлегласьць аб'ектыва",
+       "exif-focallength-format": "$1 мм",
+       "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": "Балянс белага",
+       "exif-digitalzoomratio": "Каэфіцыент лічбавага павелічэньня",
+       "exif-focallengthin35mmfilm": "Эквівалентная фокусная адлегласьць (для 35 мм стужкі)",
+       "exif-scenecapturetype": "Тып сцэны пры здымцы",
+       "exif-gaincontrol": "Падвышэньне яркасьці",
+       "exif-contrast": "Кантраст",
+       "exif-saturation": "Насычанасьць",
+       "exif-sharpness": "Рэзкасьць",
+       "exif-devicesettingdescription": "Апісаньне наладаў прыстасаваньня",
+       "exif-subjectdistancerange": "Адлегласьць да аб'екту",
+       "exif-imageuniqueid": "Унікальны ідэнтыфікатар выявы",
+       "exif-gpsversionid": "Вэрсія блёку GPS-інфармацыі",
+       "exif-gpslatituderef": "Паўночная ці паўднёвая шырата",
+       "exif-gpslatitude": "Шырата",
+       "exif-gpslongituderef": "Усходняя ці заходняя даўгата",
+       "exif-gpslongitude": "Даўгата",
+       "exif-gpsaltituderef": "Пункт адліку вышыні",
+       "exif-gpsaltitude": "Вышыня",
+       "exif-gpstimestamp": "Час GPS (атамны гадзіньнік)",
+       "exif-gpssatellites": "Спадарожнікі, ужытыя для вымярэньня",
+       "exif-gpsstatus": "Статус прымача",
+       "exif-gpsmeasuremode": "Лад вымярэньня",
+       "exif-gpsdop": "Дакладнасьць вымярэньня",
+       "exif-gpsspeedref": "Адзінка вымярэньня хуткасьці",
+       "exif-gpsspeed": "Хуткасьць руху GPS-прымача",
+       "exif-gpstrackref": "Тып азімуту GPS-прымача",
+       "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": "Назва GPS-зоны",
+       "exif-gpsdatestamp": "Дата GPS",
+       "exif-gpsdifferential": "Дыфэрэнцыяльная папраўка GPS",
+       "exif-jpegfilecomment": "Камэнтар да JPEG-файла",
+       "exif-keywords": "Ключавыя словы",
+       "exif-worldregioncreated": "Рэгіён сьвету, дзе была зробленая выява",
+       "exif-countrycreated": "Краіна, дзе была зробленая выява",
+       "exif-countrycodecreated": "Код краіны, дзе была зробленая выява",
+       "exif-provinceorstatecreated": "Вобласьць, правінцыя ці штат, дзе была зробленая выява",
+       "exif-citycreated": "Горад, дзе была зробленая выява",
+       "exif-sublocationcreated": "Раён гораду, дзе была зробленая выява",
+       "exif-worldregiondest": "Паказаны рэгіён сьвету",
+       "exif-countrydest": "Паказаная краіна",
+       "exif-countrycodedest": "Код паказанай краіны",
+       "exif-provinceorstatedest": "Паказаная вобласьць, правінцыя ці штат",
+       "exif-citydest": "Паказаны горад",
+       "exif-sublocationdest": "Паказаны раён гораду",
+       "exif-objectname": "Кароткая назва",
+       "exif-specialinstructions": "Спэцыяльныя інструкцыі",
+       "exif-headline": "Загаловак",
+       "exif-credit": "Падаўшы выяву",
+       "exif-source": "Крыніца",
+       "exif-editstatus": "Рэдакцыйны статус выявы",
+       "exif-urgency": "Тэрміновасьць",
+       "exif-fixtureidentifier": "Назва слупка",
+       "exif-locationdest": "Паказанае месца",
+       "exif-locationdestcode": "Код паказанага месца",
+       "exif-objectcycle": "Час дня, для якога ўласьцівае мэдыя",
+       "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": "Дата апошняй зьмены мэта-зьвестак",
+       "exif-nickname": "Нефармальная назва выявы",
+       "exif-rating": "Адзнака (да 5)",
+       "exif-rightscertificate": "Сэртыфікат кіраваньня правамі",
+       "exif-copyrighted": "Статус аўтарскіх правоў",
+       "exif-copyrightowner": "Уласьнік аўтарскіх правоў",
+       "exif-usageterms": "Умовы выкарыстаньня",
+       "exif-webstatement": "Зьвесткі пра аўтарскія правы он-лайн",
+       "exif-originaldocumentid": "Унікальны ідэнтыфікатар ці арыгінальны дакумэнт",
+       "exif-licenseurl": "URL-адрас аўтарскай ліцэнзіі",
+       "exif-morepermissionsurl": "Інфармацыя пра ўмовы карыстаньня на ўмовах іншых ліцэнзіяў",
+       "exif-attributionurl": "Выкарыстоўваючы гэтую працу, калі ласка, спасылайцеся на",
+       "exif-preferredattributionname": "Выкарыстоўваючы гэтую працу, калі ласка, пазначайце аўтара",
+       "exif-pngfilecomment": "Камэнтар да PNG-файла",
+       "exif-disclaimer": "Адмова ад адказнасьці",
+       "exif-contentwarning": "Папярэджаньне пра зьмест",
+       "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-2": "CCITT Група 3 аднамернае абноўленае кадаваньне адлегласьці Хафмана",
+       "exif-compression-3": "CCITT Група 3 факсымільнае кадаваньне",
+       "exif-compression-4": "CCITT Група 4 факсымільнае кадаваньне",
+       "exif-copyrighted-true": "Ахоўваецца аўтарскім правам",
+       "exif-copyrighted-false": "Статус аўтарскіх правоў ня вызначаны",
+       "exif-photometricinterpretation-0": "Чорны і белы (белы — 0)",
+       "exif-photometricinterpretation-1": "Чорны і белы (чорны — 0)",
+       "exif-photometricinterpretation-3": "Палітра",
+       "exif-photometricinterpretation-4": "Маска празрыстасьці",
+       "exif-photometricinterpretation-5": "Падзелены (імаверна, CMYK)",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (ICC-кадаваньне)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (ITU-кадаваньне)",
+       "exif-unknowndate": "Невядомая дата",
+       "exif-orientation-1": "Звычайная",
+       "exif-orientation-2": "Адлюстраваная па гарызанталі",
+       "exif-orientation-3": "Павернутая на 180°",
+       "exif-orientation-4": "Адлюстраваная па вэртыкалі",
+       "exif-orientation-5": "Павернутая на 90° супраць руху гадзіньнікавай стрэлкі і адлюстраваная вэртыкальна",
+       "exif-orientation-6": "Павернутая на 90° супраць руху гадзіньнікавай стрэлкі",
+       "exif-orientation-7": "Павернутая на 90° па руху гадзіньнікавай стрэлкі і адлюстраваная вэртыкальна",
+       "exif-orientation-8": "Павернутая на 90° па руху гадзіньнікавай стрэлкі",
+       "exif-planarconfiguration-1": "фармат «chunky»",
+       "exif-planarconfiguration-2": "фармат «planar»",
+       "exif-xyresolution-i": "$1 пунктаў на цалю",
+       "exif-xyresolution-c": "$1 пунктаў на сантымэтар",
+       "exif-colorspace-65535": "Некалібраваная",
+       "exif-componentsconfiguration-0": "не існуе",
+       "exif-exposureprogram-0": "Ня вызначана",
+       "exif-exposureprogram-1": "Ручны лад",
+       "exif-exposureprogram-2": "Праграмны лад",
+       "exif-exposureprogram-3": "Прыярытэт дыяфрагмы",
+       "exif-exposureprogram-4": "Прыярытэт затвора",
+       "exif-exposureprogram-5": "Творчы лад (перавага глыбіні рэзкасьці)",
+       "exif-exposureprogram-6": "Лад руху (перавага хуткасьці затвора)",
+       "exif-exposureprogram-7": "Партрэтны лад (здымкі ў набліжэньня, з фонам ня ў фокусе)",
+       "exif-exposureprogram-8": "Пэйзажны лад (для здымкаў краявідаў, з фонам у фокусе)",
+       "exif-subjectdistance-value": "$1 мэтры",
+       "exif-meteringmode-0": "Невядома",
+       "exif-meteringmode-1": "Сярэдні",
+       "exif-meteringmode-2": "Сярэдне-ўзважаны",
+       "exif-meteringmode-3": "Кропкавы",
+       "exif-meteringmode-4": "Шматкропкавы",
+       "exif-meteringmode-5": "Матрычны",
+       "exif-meteringmode-6": "Частковы",
+       "exif-meteringmode-255": "Іншы",
+       "exif-lightsource-0": "Невядомая",
+       "exif-lightsource-1": "Дзённае сьвятло",
+       "exif-lightsource-2": "Люмінісцэнтная",
+       "exif-lightsource-3": "Вальфрам (лямпа накальваньня)",
+       "exif-lightsource-4": "Успышка",
+       "exif-lightsource-9": "Выдатнае надвор'е",
+       "exif-lightsource-10": "Хмарнае надвор'е",
+       "exif-lightsource-11": "Цень",
+       "exif-lightsource-12": "Лямпа дзённага сьвятла (D 5700 – 7100K)",
+       "exif-lightsource-13": "Лямпа дзённага сьвятла (N 4600 – 5400K)",
+       "exif-lightsource-14": "Лямпа дзённага сьвятла (W 3900 – 4500K)",
+       "exif-lightsource-15": "Лямпа дзённага сьвятла (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Стандартнае асьвятленьне A",
+       "exif-lightsource-18": "Стандартнае асьвятленьне B",
+       "exif-lightsource-19": "Стандартнае асьвятленьне C",
+       "exif-lightsource-24": "студыйная лямпа стандарту ISO",
+       "exif-lightsource-255": "Іншая крыніца сьвятла",
+       "exif-flash-fired-0": "Успышка не спрацавала",
+       "exif-flash-fired-1": "Успышка спрацавала",
+       "exif-flash-return-0": "бяз функцыі папярэдняй успышкі",
+       "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-sensingmethod-7": "Трохлінейны сэнсар",
+       "exif-sensingmethod-8": "Лінейны сэнсар з пасьлядоўнай зьменай колеру",
+       "exif-filesource-3": "Лічбавы фотаапарат",
+       "exif-scenetype-1": "Непасрэдна сфатаграфаваная выява",
+       "exif-customrendered-0": "Звычайны працэс",
+       "exif-customrendered-1": "Нестандартны працэс",
+       "exif-exposuremode-0": "Аўтаматычны лад насьвятленьня",
+       "exif-exposuremode-1": "Ручная наладка парамэтраў насьвятленьня",
+       "exif-exposuremode-2": "Брэкетынг",
+       "exif-whitebalance-0": "Аўтаматычны балянс белага",
+       "exif-whitebalance-1": "Ручны балянс белага",
+       "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-saturation-0": "Звычайная",
+       "exif-saturation-1": "Невялікая насычанасьць",
+       "exif-saturation-2": "Вялікая насычанасьць",
+       "exif-sharpness-0": "Звычайная",
+       "exif-sharpness-1": "Мяккая",
+       "exif-sharpness-2": "Значнае павышэньне",
+       "exif-subjectdistancerange-0": "Невядомы",
+       "exif-subjectdistancerange-1": "Макраздымка",
+       "exif-subjectdistancerange-2": "Выгляд зблізку",
+       "exif-subjectdistancerange-3": "Выгляд здалёку",
+       "exif-gpslatitude-n": "паўночнай шыраты",
+       "exif-gpslatitude-s": "паўднёвай шыраты",
+       "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-gpsdestdistance-m": "Міляў",
+       "exif-gpsdestdistance-n": "Марскіх міляў",
+       "exif-gpsdop-excellent": "Выдатная ($1)",
+       "exif-gpsdop-good": "Добрая ($1)",
+       "exif-gpsdop-moderate": "Сярэдняя ($1)",
+       "exif-gpsdop-fair": "Прыймальная ($1)",
+       "exif-gpsdop-poor": "Дрэнная ($1)",
+       "exif-objectcycle-a": "Толькі ўранку",
+       "exif-objectcycle-p": "Толькі ўвечары",
+       "exif-objectcycle-b": "Уранку і ўвечары",
+       "exif-gpsdirection-t": "Сапраўдны накірунак",
+       "exif-gpsdirection-m": "магнітны кірунак",
+       "exif-ycbcrpositioning-1": "Цэнтраваны",
+       "exif-ycbcrpositioning-2": "Сумяшчоныя",
+       "exif-dc-contributor": "Аўтары",
+       "exif-dc-coverage": "Прасторавыя ці часавыя абмежаваньні мэдыя",
+       "exif-dc-date": "Дата(ы)",
+       "exif-dc-publisher": "Выдавецтва",
+       "exif-dc-relation": "Зьвязаныя мэдыя",
+       "exif-dc-rights": "Правы",
+       "exif-dc-source": "Крынічнае мэдыя",
+       "exif-dc-type": "Тып мэдыя",
+       "exif-rating-rejected": "Адхіленае",
+       "exif-isospeedratings-overflow": "Больш за 65535",
+       "exif-iimcategory-ace": "Мастацтва, культура і забавы",
+       "exif-iimcategory-clj": "Крымінал і права",
+       "exif-iimcategory-dis": "Катастрофы і здарэньні",
+       "exif-iimcategory-fin": "Эканоміка і бізнэс",
+       "exif-iimcategory-edu": "Адукацыя",
+       "exif-iimcategory-evn": "Навакольнае асяродзьдзе",
+       "exif-iimcategory-hth": "Здароўе",
+       "exif-iimcategory-hum": "Зацікаўленасьці",
+       "exif-iimcategory-lab": "Праца",
+       "exif-iimcategory-lif": "Стыль жыцьця і вольны час",
+       "exif-iimcategory-pol": "Палітыка",
+       "exif-iimcategory-rel": "Рэлігія і вера",
+       "exif-iimcategory-sci": "Навука і тэхналёгіі",
+       "exif-iimcategory-soi": "Сацыяльныя праблемы",
+       "exif-iimcategory-spo": "Спорт",
+       "exif-iimcategory-war": "Вайна, канфлікты і беспарадкі",
+       "exif-iimcategory-wea": "Надвор’е",
+       "exif-urgency-normal": "Звычайная ($1)",
+       "exif-urgency-low": "Нізкая ($1)",
+       "exif-urgency-high": "Высокая ($1)",
+       "exif-urgency-other": "Прыярытэт вызначаны карыстальнікам ($1)"
+}
diff --git a/languages/i18n/exif/be.json b/languages/i18n/exif/be.json
new file mode 100644 (file)
index 0000000..43a2b7a
--- /dev/null
@@ -0,0 +1,352 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Artsiom91",
+                       "LexArt",
+                       "Mikalai Udodau",
+                       "Yury Tarasievich",
+                       "Хомелка",
+                       "Чаховіч Уладзіслаў"
+               ]
+       },
+       "exif-imagewidth": "Шырыня",
+       "exif-imagelength": "Вышыня",
+       "exif-bitspersample": "Бітаў на кампанент",
+       "exif-compression": "Схема сціскання",
+       "exif-photometricinterpretation": "Колеравая мадэль",
+       "exif-orientation": "Арыентацыя",
+       "exif-samplesperpixel": "Кампанентаў на піксель",
+       "exif-planarconfiguration": "Прынцып арганізацыі дадзеных",
+       "exif-ycbcrsubsampling": "Адносіны памераў кампанент Y і C",
+       "exif-ycbcrpositioning": "Размяшчэнне Y і C",
+       "exif-xresolution": "Гарызантальнае разрозненне",
+       "exif-yresolution": "Вертыкальнае разрозненне",
+       "exif-stripoffsets": "Водступ палосаў выявы",
+       "exif-rowsperstrip": "Радкоў на паласу",
+       "exif-stripbytecounts": "Байтаў на сціснутую паласу",
+       "exif-jpeginterchangeformat": "Водступ пачатку даных JPEG (SOI)",
+       "exif-jpeginterchangeformatlength": "байтаў даных JPEG",
+       "exif-whitepoint": "Колернасць белай кропкі",
+       "exif-primarychromaticities": "Колернасць асноўных колераў",
+       "exif-ycbcrcoefficients": "Каэфіцыенты матрыцы пераўтварэння каляровай прасторы",
+       "exif-referenceblackwhite": "Пара апорных велічыняў, белая і чорная",
+       "exif-datetime": "Дата і час змянення файла",
+       "exif-imagedescription": "Назва выявы",
+       "exif-make": "Марка апарата",
+       "exif-model": "Мадэль апарата",
+       "exif-software": "Выкарыстаная праграма",
+       "exif-artist": "Аўтар",
+       "exif-copyright": "Уласнік аўтарскіх правоў",
+       "exif-exifversion": "Версія Exif",
+       "exif-flashpixversion": "Падтрымліваецца версія Flashpix",
+       "exif-colorspace": "Каляровая прастора",
+       "exif-componentsconfiguration": "Значэнні кампанентаў",
+       "exif-compressedbitsperpixel": "Лад сціскання выявы",
+       "exif-pixelxdimension": "Шырыня выявы",
+       "exif-pixelydimension": "Вышыня выявы",
+       "exif-usercomment": "Заўвагі карыстальніка",
+       "exif-relatedsoundfile": "Дачынены гукавы файл",
+       "exif-datetimeoriginal": "Дата і час стварэння дадзеных",
+       "exif-datetimedigitized": "Дата і час лічбавання",
+       "exif-subsectime": "Падсекунды DateTime",
+       "exif-subsectimeoriginal": "Падсекунды DateTimeOriginal",
+       "exif-subsectimedigitized": "Падсекунды DateTimeDigitized",
+       "exif-exposuretime": "Час вытрымкі",
+       "exif-exposuretime-format": "$1 сек ($2)",
+       "exif-fnumber": "Фокусны лік",
+       "exif-exposureprogram": "Лад вытрымкі",
+       "exif-spectralsensitivity": "Спектральная адчувальнасць",
+       "exif-isospeedratings": "Клас хуткасці ISO",
+       "exif-shutterspeedvalue": "Вытрымка ў APEX",
+       "exif-aperturevalue": "Дыяфрагма ў APEX",
+       "exif-brightnessvalue": "Яркасць у APEX",
+       "exif-exposurebiasvalue": "Час вытрымкі",
+       "exif-maxaperturevalue": "Мінімальны лік дыяфрагмы",
+       "exif-subjectdistance": "Адлегласць прадмета",
+       "exif-meteringmode": "Лад вымярэння",
+       "exif-lightsource": "Крыніца святла",
+       "exif-flash": "Сполах",
+       "exif-focallength": "Фокусная адлегласць лінзы",
+       "exif-focallength-format": "$1 мм",
+       "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": "Баланс белага",
+       "exif-digitalzoomratio": "Велічыня лікавага \"зума\"",
+       "exif-focallengthin35mmfilm": "Фокусная адлегласць 35 мм плёнкі",
+       "exif-scenecapturetype": "Абставіны здымка",
+       "exif-gaincontrol": "Кіраванне сцэнай",
+       "exif-contrast": "Кантраст",
+       "exif-saturation": "Насычанасць",
+       "exif-sharpness": "Выразнасць",
+       "exif-devicesettingdescription": "Апісанне настаўленняў прыстасавання",
+       "exif-subjectdistancerange": "Абсяг адлегласцяў прадмета",
+       "exif-imageuniqueid": "Унікальны ідэнтыфікатар выявы",
+       "exif-gpsversionid": "Версія меткі GPS",
+       "exif-gpslatituderef": "Паўночная ці паўднёвая шырата",
+       "exif-gpslatitude": "Шырата",
+       "exif-gpslongituderef": "Усходняя ці заходняя даўгата",
+       "exif-gpslongitude": "Даўгата",
+       "exif-gpsaltituderef": "Пункт адліку вышыні",
+       "exif-gpsaltitude": "Вышыня",
+       "exif-gpstimestamp": "Час GPS (атамны гадзіннік)",
+       "exif-gpssatellites": "Спадарожнікі, выбраныя дзеля вымярэння",
+       "exif-gpsstatus": "Стан прыймальніка",
+       "exif-gpsmeasuremode": "Лад вымярэння",
+       "exif-gpsdop": "Дакладнасць вымярэння",
+       "exif-gpsspeedref": "Адзінка хуткасці",
+       "exif-gpsspeed": "Хуткасць прыймальніка GPS",
+       "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": "Назва мясцовасці GPS",
+       "exif-gpsdatestamp": "Дата GPS",
+       "exif-gpsdifferential": "Дыферэнцыяльная карэкцыя GPS",
+       "exif-jpegfilecomment": "Заўвага JPEG-файла",
+       "exif-keywords": "Ключавыя словы",
+       "exif-worldregioncreated": "Рэгіён свету, дзе была зробленая фатаграфія",
+       "exif-countrycreated": "Краіна, дзе была зробленая фатаграфія",
+       "exif-countrycodecreated": "Код краіны, дзе была зробленая фатаграфія",
+       "exif-provinceorstatecreated": "Вобласць, правінцыя ці штат, дзе была зробленая фатаграфія",
+       "exif-citycreated": "Горад, дзе была зробленая фатаграфія",
+       "exif-sublocationcreated": "Раён горада, дзе была зробленая фоторафия",
+       "exif-worldregiondest": "Паказаны рэгіён свету",
+       "exif-countrydest": "Паказаная краіна",
+       "exif-countrycodedest": "Код паказанай краіны",
+       "exif-provinceorstatedest": "Паказаная правінцыя ці штат",
+       "exif-citydest": "Паказаны горад",
+       "exif-sublocationdest": "Паказаны раён горада",
+       "exif-objectname": "Кароткая назва",
+       "exif-specialinstructions": "Асобыя ўказанні",
+       "exif-headline": "Загаловак",
+       "exif-credit": "Пастаўшчык, хто падаў малюнак",
+       "exif-source": "Крыніца",
+       "exif-editstatus": "Рэдакцыйны статут выявы",
+       "exif-urgency": "Актуальнасць",
+       "exif-fixtureidentifier": "Назва калонкі",
+       "exif-locationdest": "Паказанае месца",
+       "exif-locationdestcode": "Код паказанага месца",
+       "exif-objectcycle": "Час сутак, для якога прызначана выява",
+       "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": "Дата апошніх змен метададзеных",
+       "exif-nickname": "Нефармальная назва выявы",
+       "exif-rating": "Адзнака (з 5)",
+       "exif-rightscertificate": "Сертыфікат кіравання правамі",
+       "exif-copyrighted": "Аўтарска-прававы статус:",
+       "exif-copyrightowner": "Уласнік аўтарскіх правоў",
+       "exif-usageterms": "Умовы выкарыстання",
+       "exif-webstatement": "Палажэнне аб аўтарскіх правах у Інтэрнэце",
+       "exif-originaldocumentid": "Унікальны ідэнтыфікатар зыходнага дакумента",
+       "exif-licenseurl": "URL аўтарскай ліцэнзіі",
+       "exif-morepermissionsurl": "Альтэрнатыўная ліцэнзійная інфармацыя",
+       "exif-attributionurl": "Пры выкарыстанні гэтай работы, калі ласка, спасылайцеся на",
+       "exif-preferredattributionname": "Пры выкарыстанні гэтай працы, калі ласка, указвайце",
+       "exif-pngfilecomment": "Заўвага да PNG-файла",
+       "exif-disclaimer": "Адмова ад адказнасці",
+       "exif-contentwarning": "Папярэджанне пра змест",
+       "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-2": "CCITT Group 3, 1-мерная мадыфікацыя кадзіравання даўжынь серый Хафмана",
+       "exif-compression-3": "CCITT Group 3, факсавае кадзіраванне",
+       "exif-compression-4": "CCITT Group 4, факсавае кадзіраванне",
+       "exif-copyrighted-true": "Ахоўваецца аўтарскім правам",
+       "exif-copyrighted-false": "Статус аўтарства не ўстаноўлены",
+       "exif-photometricinterpretation-1": "Чорны і белы (чорны — 0)",
+       "exif-unknowndate": "Невядомая дата",
+       "exif-orientation-1": "Звычайна",
+       "exif-orientation-2": "Адлюстравана злева ўправа",
+       "exif-orientation-3": "Павернута на 180°",
+       "exif-orientation-4": "Адлюстравана зверху ўніз",
+       "exif-orientation-5": "Павернута на 90° супраць гадзінніка і адлюстравана зверху ўніз",
+       "exif-orientation-6": "Павернута на 90° супраць гадзінніка",
+       "exif-orientation-7": "Павернута на 90° па гадзінніку і адлюстравана зверху ўніз",
+       "exif-orientation-8": "Павернута на 90° па гадзінніку",
+       "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-exposureprogram-5": "Творчы лад (перавага глыбіні кадру)",
+       "exif-exposureprogram-6": "Лад руху (перавага хуткасці дыяфрагмы)",
+       "exif-exposureprogram-7": "Партрэтны лад (здымкі ў набліжэнні, асноведзь па-за фокусам)",
+       "exif-exposureprogram-8": "Пейзажны лад (здымкі прасторы, асноведзь у фокусе)",
+       "exif-subjectdistance-value": "$1 метраў",
+       "exif-meteringmode-0": "Невядома",
+       "exif-meteringmode-1": "Сярэдняе",
+       "exif-meteringmode-2": "ЦэнтрСярэднеУзважаны",
+       "exif-meteringmode-3": "Кропка",
+       "exif-meteringmode-4": "МностваКропак",
+       "exif-meteringmode-5": "Узор",
+       "exif-meteringmode-6": "часткова",
+       "exif-meteringmode-255": "Іншае",
+       "exif-lightsource-0": "Невядома",
+       "exif-lightsource-1": "Дзённае святло",
+       "exif-lightsource-2": "Люмінесцэнтнае",
+       "exif-lightsource-3": "Лямпы напальвання",
+       "exif-lightsource-4": "Сполах",
+       "exif-lightsource-9": "Добрае надвор'е",
+       "exif-lightsource-10": "Хмарнае надвор'е",
+       "exif-lightsource-11": "Цень",
+       "exif-lightsource-12": "Люмінесцэнтнае, дзённае (D 5700 – 7100K)",
+       "exif-lightsource-13": "Люмінесцэнтнае, дзённае белае (N 4600 – 5400K)",
+       "exif-lightsource-14": "Люмінесцэнтнае, халоднае белае (W 3900 – 4500K)",
+       "exif-lightsource-15": "Люмінесцэнтнае, белае (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Стандартнае асвятленне A",
+       "exif-lightsource-18": "Стандартнае асвятленне B",
+       "exif-lightsource-19": "Стандартнае асвятленне C",
+       "exif-lightsource-24": "Студыйныя лямпы напальвання ISO",
+       "exif-lightsource-255": "Іншая крыніца святла",
+       "exif-flash-fired-0": "Бліскавіца не спрацоўвала",
+       "exif-flash-fired-1": "Бліскавіца спрацоўвала",
+       "exif-flash-return-0": "без здольнасці заўважання пілотнага бліску",
+       "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": "1-корпусны плошчавы каляровы датчык",
+       "exif-sensingmethod-3": "2-корпусны плошчавы каляровы датчык",
+       "exif-sensingmethod-4": "3-корпусны плошчавы каляровы датчык",
+       "exif-sensingmethod-5": "Паслядоўны плошчавы каляровы датчык",
+       "exif-sensingmethod-7": "3-лінійны датчык",
+       "exif-sensingmethod-8": "Паслядоўны лінейны каляровы датчык",
+       "exif-filesource-3": "Лічбавы фотаапарат",
+       "exif-scenetype-1": "Непасрэдна зроблены здымак",
+       "exif-customrendered-0": "Звычайны працэс",
+       "exif-customrendered-1": "Адмысловы працэс",
+       "exif-exposuremode-0": "Аўта-вытрымка",
+       "exif-exposuremode-1": "Самастойная вытрымка",
+       "exif-exposuremode-2": "Брэкетынг",
+       "exif-whitebalance-0": "Аўтаматычны баланс белага",
+       "exif-whitebalance-1": "Ручны баланс белага",
+       "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-saturation-0": "Звычайна",
+       "exif-saturation-1": "Слабая насычанасць",
+       "exif-saturation-2": "Моцная насычанасць",
+       "exif-sharpness-0": "Звычайны",
+       "exif-sharpness-1": "Мяккі",
+       "exif-sharpness-2": "Высокі",
+       "exif-subjectdistancerange-0": "Невядома",
+       "exif-subjectdistancerange-1": "Макрас",
+       "exif-subjectdistancerange-2": "Від зблізу",
+       "exif-subjectdistancerange-3": "Від зводдаль",
+       "exif-gpslatitude-n": "Паўночная шырата",
+       "exif-gpslatitude-s": "Паўднёвая шырата",
+       "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": "2-вымернае вымярэнне",
+       "exif-gpsmeasuremode-3": "3-вымернае вымярэнне",
+       "exif-gpsspeed-k": "кіламетраў за гадзіну",
+       "exif-gpsspeed-m": "міляў за гадзіну",
+       "exif-gpsspeed-n": "вузлоў",
+       "exif-gpsdestdistance-k": "Кіламетры",
+       "exif-gpsdestdistance-m": "Міль",
+       "exif-gpsdestdistance-n": "Марскіх міль",
+       "exif-gpsdop-excellent": "Выдатная ($1)",
+       "exif-gpsdop-good": "Добрая ($1)",
+       "exif-gpsdop-moderate": "Сярэдняя ($1)",
+       "exif-gpsdop-fair": "Ніжэй сярэдняга ($1)",
+       "exif-gpsdop-poor": "Дрэнная ($1)",
+       "exif-objectcycle-a": "Толькі раніцай",
+       "exif-objectcycle-p": "Толькі ўвечар",
+       "exif-objectcycle-b": "Раніцай і ўвечар",
+       "exif-gpsdirection-t": "сапраўдны азімут",
+       "exif-gpsdirection-m": "магнітны азімут",
+       "exif-ycbcrpositioning-1": "Цэнтрыраваны",
+       "exif-ycbcrpositioning-2": "CO-sited",
+       "exif-dc-contributor": "Суаўтары",
+       "exif-dc-coverage": "Прасторавыя ці часавыя рамкі медыя",
+       "exif-dc-date": "Дата(ы)",
+       "exif-dc-publisher": "Выдавец",
+       "exif-dc-relation": "Звязаныя медыя",
+       "exif-dc-rights": "Дазволы",
+       "exif-dc-source": "Зыходнае медыя",
+       "exif-dc-type": "Тып медыя",
+       "exif-rating-rejected": "Адхілена",
+       "exif-isospeedratings-overflow": "Больш 65535",
+       "exif-iimcategory-ace": "Мастацтва, культура і забавы",
+       "exif-iimcategory-clj": "Злачыннасць і закон",
+       "exif-iimcategory-dis": "Катастрофы і аварыі",
+       "exif-iimcategory-fin": "Эканоміка і бізнес",
+       "exif-iimcategory-edu": "Адукацыя",
+       "exif-iimcategory-evn": "Навакольнае асяроддзе",
+       "exif-iimcategory-hth": "Здароўе",
+       "exif-iimcategory-hum": "Характэрныя гісторыі",
+       "exif-iimcategory-lab": "Праца",
+       "exif-iimcategory-lif": "Лад жыцця і вольны час",
+       "exif-iimcategory-pol": "Палітыка",
+       "exif-iimcategory-rel": "Рэлігія і веравызнанне",
+       "exif-iimcategory-sci": "Навука і тэхналогія",
+       "exif-iimcategory-soi": "Сацыяльныя пытанні",
+       "exif-iimcategory-spo": "Спорт",
+       "exif-iimcategory-war": "Войны, канфлікты і беспарадкі",
+       "exif-iimcategory-wea": "Надвор'е",
+       "exif-urgency-normal": "Звычайная ($1)",
+       "exif-urgency-low": "Нізкая ($1)",
+       "exif-urgency-high": "Высокая ($1)",
+       "exif-urgency-other": "Вызначаны карыстальнікам прыярытэт ($1)"
+}
diff --git a/languages/i18n/exif/bg.json b/languages/i18n/exif/bg.json
new file mode 100644 (file)
index 0000000..5372a88
--- /dev/null
@@ -0,0 +1,339 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Borislav",
+                       "DCLXVI",
+                       "Spiritia",
+                       "StanProg",
+                       "Stanqo",
+                       "Vladimir Penov",
+                       "Vodnokon4e",
+                       "Петър Петров"
+               ]
+       },
+       "exif-imagewidth": "Ширина",
+       "exif-imagelength": "Височина",
+       "exif-bitspersample": "Дълбочина на цвета (битове)",
+       "exif-compression": "Вид компресия",
+       "exif-photometricinterpretation": "Състав на пиксела",
+       "exif-orientation": "Ориентация",
+       "exif-samplesperpixel": "Брой на компонентите",
+       "exif-planarconfiguration": "Принцип на организация на данните",
+       "exif-ycbcrsubsampling": "Коефициент в интервала от Y до C",
+       "exif-ycbcrpositioning": "Y и C позициониране",
+       "exif-xresolution": "Хоризонтална разделителна способност",
+       "exif-yresolution": "Вертикална разделителна способност",
+       "exif-stripoffsets": "адрес на картината",
+       "exif-rowsperstrip": "Брой редове на ивица",
+       "exif-stripbytecounts": "Байтове на компресирана ивица",
+       "exif-jpeginterchangeformat": "Начало на JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Байтове в JPEG формат",
+       "exif-whitepoint": "Хроматичност на бялото",
+       "exif-primarychromaticities": "Първични цветности",
+       "exif-ycbcrcoefficients": "Коефициенти в матрицата на трансформацията на цветовото пространство",
+       "exif-referenceblackwhite": "Двойка референтни стойности за баланса на черното и бялото",
+       "exif-datetime": "Дата и час на изменението на файла",
+       "exif-imagedescription": "Название на изображението",
+       "exif-make": "Производител",
+       "exif-model": "Модел на фотоапарата",
+       "exif-software": "Използван софтуер",
+       "exif-artist": "Автор",
+       "exif-copyright": "Притежател на авторското право",
+       "exif-exifversion": "Версия на Exif",
+       "exif-flashpixversion": "Поддържана версия на Flashpix",
+       "exif-colorspace": "Цветово пространство",
+       "exif-componentsconfiguration": "Значение на всеки компонент",
+       "exif-compressedbitsperpixel": "Режим на компресия на изображението",
+       "exif-pixelxdimension": "Ширина на изображението",
+       "exif-pixelydimension": "Височина на изображението",
+       "exif-usercomment": "Потребителски коментари",
+       "exif-relatedsoundfile": "Свързан звуков файл",
+       "exif-datetimeoriginal": "Дата и час на създаване",
+       "exif-datetimedigitized": "Дата и час на дигитализация",
+       "exif-subsectime": "DateTime части от секундата",
+       "exif-subsectimeoriginal": "DateTimeOriginal части от секундата",
+       "exif-subsectimedigitized": "DateTimeDigitized части от секундата",
+       "exif-exposuretime": "Време на експонация",
+       "exif-exposuretime-format": "$1 сек ($2)",
+       "exif-fnumber": "F (бленда)",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Програма на експонацията",
+       "exif-spectralsensitivity": "Спектрална чувствителност",
+       "exif-isospeedratings": "Светлочувствителност ISO",
+       "exif-shutterspeedvalue": "APEX скорост на затвора",
+       "exif-aperturevalue": "APEX апертура",
+       "exif-brightnessvalue": "APEX светлосила",
+       "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": "Баланс на бялото",
+       "exif-digitalzoomratio": "Съотношение на цифровото увеличение",
+       "exif-focallengthin35mmfilm": "Фокусно разстояние в 35 mm филм",
+       "exif-scenecapturetype": "Тип на заснетата сцена",
+       "exif-gaincontrol": "Увеличение на яркостта",
+       "exif-contrast": "Контраст",
+       "exif-saturation": "Наситеност",
+       "exif-sharpness": "Острота",
+       "exif-devicesettingdescription": "Описание на настройките на апарата",
+       "exif-subjectdistancerange": "Разстояние до обекта",
+       "exif-imageuniqueid": "Уникален идентификатор на изображението",
+       "exif-gpsversionid": "GPS версия",
+       "exif-gpslatituderef": "Географска ширина север или юг",
+       "exif-gpslatitude": "Географска ширина",
+       "exif-gpslongituderef": "Географска дължина изток или запад",
+       "exif-gpslongitude": "Географска дължина",
+       "exif-gpsaltituderef": "Референтна точка за височината",
+       "exif-gpsaltitude": "Височина",
+       "exif-gpstimestamp": "GPS време (атомен часовник)",
+       "exif-gpssatellites": "GPS спътници, използвани за измерването",
+       "exif-gpsstatus": "Статус на GPS-приемника",
+       "exif-gpsmeasuremode": "Режим на измерването",
+       "exif-gpsdop": "Точност на измерването",
+       "exif-gpsspeedref": "Мерна единица за скорост",
+       "exif-gpsspeed": "Скорост на GPS-приемника",
+       "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": "Име на GPS зоната",
+       "exif-gpsdatestamp": "GPS дата",
+       "exif-gpsdifferential": "Диференциална корекция на GPS",
+       "exif-jpegfilecomment": "Kоментар на JPEG файл",
+       "exif-keywords": "Ключови думи",
+       "exif-worldregioncreated": "Регион на света, където е направена снимката",
+       "exif-countrycreated": "Държава, в която е направена снимката",
+       "exif-countrycodecreated": "Код на държавата, в която е направена снимката",
+       "exif-provinceorstatecreated": "Област или щат, в който е направена снимката",
+       "exif-citycreated": "Град, в който е направена снимката",
+       "exif-worldregiondest": "Показан регион на света",
+       "exif-countrydest": "Показана държава",
+       "exif-countrycodedest": "Код на показаната държава",
+       "exif-provinceorstatedest": "Показана провинция или щат",
+       "exif-citydest": "Показан град",
+       "exif-sublocationdest": "Показан район на града",
+       "exif-objectname": "Кратко заглавие",
+       "exif-specialinstructions": "Специални инструкции",
+       "exif-headline": "Заглавие",
+       "exif-source": "Източник",
+       "exif-urgency": "Спешност",
+       "exif-contact": "Информация за контакти",
+       "exif-writer": "Автор на текста",
+       "exif-languagecode": "Език",
+       "exif-iimversion": "IIM версия",
+       "exif-iimcategory": "Категория",
+       "exif-iimsupplementalcategory": "Допълнителни категории",
+       "exif-datetimeexpires": "Да не се използва след",
+       "exif-identifier": "Идентификатор",
+       "exif-lens": "Използвана оптична леща",
+       "exif-serialnumber": "Сериен номер на фотоапарата",
+       "exif-cameraownername": "Собственик на фотоапарата",
+       "exif-label": "Етикет",
+       "exif-datetimemetadata": "Дата на последна модификация на метаданните",
+       "exif-nickname": "Неформално име на изображението",
+       "exif-rating": "Рейтинг (от 5)",
+       "exif-rightscertificate": "Сертификат за управление на правата",
+       "exif-copyrighted": "Авторскоправен статут",
+       "exif-copyrightowner": "Носител на авторското право",
+       "exif-usageterms": "Условия за използване",
+       "exif-webstatement": "Онлайн заявление на авторските права",
+       "exif-originaldocumentid": "Уникален номер на оригиналния документ",
+       "exif-licenseurl": "Адрес с информация за авторски права",
+       "exif-morepermissionsurl": "Алтернативна информация за лиценза",
+       "exif-pngfilecomment": "Kоментар на PNG файл",
+       "exif-disclaimer": "Уточнение",
+       "exif-contentwarning": "Предупреждение за съдържанието",
+       "exif-giffilecomment": "Kоментар на GIF файл",
+       "exif-intellectualgenre": "Тип елемент",
+       "exif-event": "Изобразено събитие",
+       "exif-organisationinimage": "Изобразена организация",
+       "exif-personinimage": "Изобразена личност",
+       "exif-originalimageheight": "Височина на изображението преди намаляването",
+       "exif-originalimagewidth": "Ширина на изображението преди намаляването",
+       "exif-compression-1": "Некомпресиран",
+       "exif-compression-5": "LZW",
+       "exif-compression-6": "JPEG (стар)",
+       "exif-compression-7": "JPEG",
+       "exif-copyrighted-true": "Заштитено с авторски права",
+       "exif-copyrighted-false": "Статутът на авторските права не е указан",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-unknowndate": "Неизвестна дата",
+       "exif-orientation-1": "Нормално",
+       "exif-orientation-2": "Отражение по хоризонталата",
+       "exif-orientation-3": "Обърнато на 180°",
+       "exif-orientation-4": "Отражение по вертикалата",
+       "exif-orientation-5": "Обърнато на 90° срещу часовниковата стрелка и отразено по вертикалата",
+       "exif-orientation-6": "Обърнато на 90° срещу часовниковата стрелка",
+       "exif-orientation-7": "Обърнато на 90° по часовниковата стрелка и отразено по вертикалата",
+       "exif-orientation-8": "Обърнато на 90° по часовниковата стрелка",
+       "exif-planarconfiguration-1": "формат „chunky“",
+       "exif-planarconfiguration-2": "формат „planar“",
+       "exif-colorspace-65535": "Некалибрирана",
+       "exif-componentsconfiguration-0": "не съществува",
+       "exif-exposureprogram-0": "Не е определено",
+       "exif-exposureprogram-1": "Ръчна настройка",
+       "exif-exposureprogram-2": "Нормална програма",
+       "exif-exposureprogram-3": "Приоритет на блендата",
+       "exif-exposureprogram-4": "Приоритет на скоростта",
+       "exif-exposureprogram-5": "Приоритет на дълбочината на рязкостта",
+       "exif-exposureprogram-6": "Приоритет на скоростта на затвора",
+       "exif-exposureprogram-7": "Режим „Портрет“ (за снимки в едър план, фонът не е на фокус)",
+       "exif-exposureprogram-8": "Режим „Пейзаж“ (за пейзажни снимки, в които фонът е на фокус)",
+       "exif-subjectdistance-value": "$1 метра",
+       "exif-meteringmode-0": "Неизвестно",
+       "exif-meteringmode-1": "Средно",
+       "exif-meteringmode-2": "Централно измерване на светлината",
+       "exif-meteringmode-3": "Точково измерване",
+       "exif-meteringmode-4": "Многоточково измерване",
+       "exif-meteringmode-5": "Образец",
+       "exif-meteringmode-6": "Частично измерване",
+       "exif-meteringmode-255": "Друго",
+       "exif-lightsource-0": "Неизвестно",
+       "exif-lightsource-1": "Дневна светлина",
+       "exif-lightsource-2": "Флуоресцентно осветление",
+       "exif-lightsource-3": "Волфрамово осветление",
+       "exif-lightsource-4": "Светкавица",
+       "exif-lightsource-9": "Хубаво време",
+       "exif-lightsource-10": "Облачно",
+       "exif-lightsource-11": "Сянка",
+       "exif-lightsource-12": "Дневна флуоресцентна (D 5700 – 7100K)",
+       "exif-lightsource-13": "Дневна бяла флуоресцентна (N 4600 – 5400K)",
+       "exif-lightsource-14": "Студена бяла флуоресцентна (W 3900 – 4500K)",
+       "exif-lightsource-15": "Бяла флуоресцентна (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Стандартна светлина тип A",
+       "exif-lightsource-18": "Стандартна светлина тип B",
+       "exif-lightsource-19": "Стандартна светлина тип C",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "Студийна лампа стандарт ISO",
+       "exif-lightsource-255": "Друг източник на светлина",
+       "exif-flash-fired-0": "Без светкавица",
+       "exif-flash-fired-1": "Със светкавица",
+       "exif-flash-return-0": "няма функция за улавяне на стробоскопични ефекти",
+       "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-sensingmethod-7": "Трилинеен сензор",
+       "exif-sensingmethod-8": "Цветови последователен линеен сензор",
+       "exif-filesource-3": "Цифров фотоапарат",
+       "exif-scenetype-1": "Пряко заснето изображение",
+       "exif-customrendered-0": "Нормален процес",
+       "exif-customrendered-1": "Нестандартна обработка",
+       "exif-exposuremode-0": "автоматична експонация",
+       "exif-exposuremode-1": "ръчна експонация",
+       "exif-exposuremode-2": "Автоматичен клин",
+       "exif-whitebalance-0": "Автоматичен баланс на бялото",
+       "exif-whitebalance-1": "Ръчно определяне на баланса на бялото",
+       "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-saturation-0": "Нормална",
+       "exif-saturation-1": "Неголяма наситеност",
+       "exif-saturation-2": "Голяма наситеност",
+       "exif-sharpness-0": "Нормална",
+       "exif-sharpness-1": "По-меко",
+       "exif-sharpness-2": "По-остро",
+       "exif-subjectdistancerange-0": "Неизвестен",
+       "exif-subjectdistancerange-1": "Макро",
+       "exif-subjectdistancerange-2": "Близко",
+       "exif-subjectdistancerange-3": "Далечно",
+       "exif-gpslatitude-n": "Северна ширина",
+       "exif-gpslatitude-s": "Южна ширина",
+       "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-gpsdestdistance-m": "Мили",
+       "exif-gpsdestdistance-n": "Морски мили",
+       "exif-gpsdop-excellent": "Отлично ($1)",
+       "exif-gpsdop-good": "Добро ($1)",
+       "exif-gpsdop-moderate": "Умерено ($1)",
+       "exif-gpsdop-fair": "Горе-долу ($1)",
+       "exif-gpsdop-poor": "Лошо ($1)",
+       "exif-objectcycle-a": "Само сутрин",
+       "exif-objectcycle-p": "Само вечер",
+       "exif-gpsdirection-t": "Истинска",
+       "exif-gpsdirection-m": "Магнитна",
+       "exif-ycbcrpositioning-1": "Центрирани",
+       "exif-dc-contributor": "Сътрудници",
+       "exif-dc-date": "Дата(и)",
+       "exif-dc-publisher": "Издател",
+       "exif-dc-relation": "Свързани медии",
+       "exif-dc-rights": "Права",
+       "exif-dc-source": "Изходен медиен файл",
+       "exif-dc-type": "Вид медия",
+       "exif-rating-rejected": "Отхвърлен",
+       "exif-isospeedratings-overflow": "По-голяма от 65535",
+       "exif-iimcategory-ace": "Изкуствa, култура и забавление",
+       "exif-iimcategory-clj": "Престъпност и право",
+       "exif-iimcategory-dis": "Бедствия и аварии",
+       "exif-iimcategory-fin": "Икономика и бизнес",
+       "exif-iimcategory-edu": "Образование",
+       "exif-iimcategory-evn": "Околна среда",
+       "exif-iimcategory-hth": "Здраве",
+       "exif-iimcategory-hum": "Човешки интереси",
+       "exif-iimcategory-lab": "Труд",
+       "exif-iimcategory-lif": "Начин на живот и отдих",
+       "exif-iimcategory-pol": "Политика",
+       "exif-iimcategory-rel": "Религия и вяра",
+       "exif-iimcategory-sci": "Наука и технологии",
+       "exif-iimcategory-soi": "Социални проблеми",
+       "exif-iimcategory-spo": "Спорт",
+       "exif-iimcategory-war": "Война, конфликти и безредици",
+       "exif-iimcategory-wea": "Време",
+       "exif-urgency-normal": "Нормална ($1)",
+       "exif-urgency-low": "Ниска ($1)",
+       "exif-urgency-high": "Висока ($1)",
+       "exif-urgency-other": "Зададен от потребителя приоритет ($1)"
+}
diff --git a/languages/i18n/exif/bgn.json b/languages/i18n/exif/bgn.json
new file mode 100644 (file)
index 0000000..6dd5fb7
--- /dev/null
@@ -0,0 +1,335 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Baloch Afghanistan",
+                       "Ibrahim khashrowdi"
+               ]
+       },
+       "exif-imagewidth": "گوور، عرض",
+       "exif-imagelength": "تَچکي",
+       "exif-bitspersample": "نقطه بئ هر جز ئی تا",
+       "exif-compression": "پرینچیتینوکین شیما",
+       "exif-photometricinterpretation": "ٹیک ئانی ترکیب",
+       "exif-orientation": "نیمگ ، جهت",
+       "exif-samplesperpixel": "اجزائانی اندازه گ",
+       "exif-planarconfiguration": "دیتا ئی آرایش",
+       "exif-ycbcrsubsampling": "جه هل نمونگ نسبت  Y بئ C",
+       "exif-ycbcrpositioning": "Y و C موقیعتان",
+       "exif-xresolution": "افقی ئین تفکیک پذیری",
+       "exif-yresolution": "عمودین تفکیک پذیری",
+       "exif-stripoffsets": "اکس ئی دیتای جاگه",
+       "exif-rowsperstrip": "ردیپ هانی اندازگ بئ هر نواری تا",
+       "exif-stripbytecounts": "بایت بئ هر پریننچیته بوته ئین نواری تا",
+       "exif-jpeginterchangeformat": "جابه‌جایی نسبت بئ JPEG SOI",
+       "exif-jpeginterchangeformatlength": "بایٹ  JPEG ئی دیتایی",
+       "exif-whitepoint": "سپیتین ٹیکئ رنگینی",
+       "exif-primarychromaticities": "اولویتانی رنگیری",
+       "exif-ycbcrcoefficients": "ماتریس ئی زرایب تبدیل رنگین په زایی",
+       "exif-referenceblackwhite": "سیاه و سپیتین مرجه ئانی اندازهگ",
+       "exif-datetime": "فایلی تغیر ئی وخت و تاریخ",
+       "exif-imagedescription": "اکسئ ئنوان",
+       "exif-make": "کامره ئی جۆڑ کنۆکین شرکت",
+       "exif-model": "کامره ئی موڈیل",
+       "exif-software": "استفاده بوته ئین ساپٹ ایر",
+       "exif-artist": "اکس گيروک/هنرمند",
+       "exif-copyright": "کاپی رایٹ ئی واوُند",
+       "exif-exifversion": "exif ئی نخسه",
+       "exif-flashpixversion": "Flashpix ئی پُشتیوانی بوته ئین نخسه",
+       "exif-colorspace": "رنگاني فضا",
+       "exif-componentsconfiguration": "هریک شه مووله په ئانی مانا",
+       "exif-compressedbitsperpixel": "اکس ئی پشرده ئی هالت",
+       "exif-pixelxdimension": "اکسئ گۆر",
+       "exif-pixelydimension": "اکسئ بُرزی",
+       "exif-usercomment": "کار زوروکئ توضیحات",
+       "exif-relatedsoundfile": "مربوتین توارین پایل",
+       "exif-datetimeoriginal": "دیتائانی ودئ بوتین ئی تاریخ و وخت",
+       "exif-datetimedigitized": "دیجیتالی بوتین ئی وخت و تاریخ",
+       "exif-subsectime": "تاریخ و وختی کسر سانیه",
+       "exif-subsectimeoriginal": "اسلی ین وختی کسر سانیه",
+       "exif-subsectimedigitized": "دیجیتالین وختی کسر سانیه",
+       "exif-exposuretime": "نوردهگی وخت",
+       "exif-exposuretime-format": "$1 ثانیه ($2)",
+       "exif-fnumber": "اف ئی نمبر",
+       "exif-exposureprogram": "نوردهئ پروگرام",
+       "exif-spectralsensitivity": "طیفئ ئین حساسیت",
+       "exif-isospeedratings": "ایزو ئی سرعت ئی درجه بندی",
+       "exif-shutterspeedvalue": "شاتر ئی آپکس ئی سرعت",
+       "exif-aperturevalue": "دیافراگم آپکس ئی اندازه گ",
+       "exif-brightnessvalue": "آپکس روشنائی",
+       "exif-exposurebiasvalue": "نوردهئ خطا",
+       "exif-maxaperturevalue": "ڈگاری پراخی هد اکسه ر",
+       "exif-subjectdistance": "سوژه ئی فاصله",
+       "exif-meteringmode": "روشنایی سنجیش هالت",
+       "exif-lightsource": "نور ئی منشا",
+       "exif-flash": "پلاش",
+       "exif-focallength": "ئدسی ئی کانونین پاسیله",
+       "exif-subjectarea": "جسم ئی مساحت",
+       "exif-flashenergy": "پلاش ئی قدرت",
+       "exif-focalplanexresolution": "تفکیک‌پذیری X کانونی دیم",
+       "exif-focalplaneyresolution": "تفکیک‌پذیری Y کانونین دیم",
+       "exif-focalplaneresolutionunit": "کانونی دیمی تپکیک زورتین ئی واهید",
+       "exif-subjectlocation": "سوژه ئی مکان",
+       "exif-exposureindex": "نوردهگی شاخس",
+       "exif-sensingmethod": "هسگری روش",
+       "exif-filesource": "فایلئ منشا",
+       "exif-scenetype": "سه هنه ئی ره کم",
+       "exif-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-provinceorstatedest": "ولایت یا ایالت نشان داته بوته",
+       "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-meteringmode-1": "میانگین",
+       "exif-meteringmode-2": "میانگین گو سنگین ئین مرکزا",
+       "exif-meteringmode-3": "یک ٹیکی",
+       "exif-meteringmode-4": "چینکه ٹیکئ",
+       "exif-meteringmode-5": "طرح‌والا",
+       "exif-meteringmode-6": "کم ئین",
+       "exif-meteringmode-255": "دیگرین",
+       "exif-lightsource-0": "نامئلوم",
+       "exif-lightsource-1": "روچی روشنائی",
+       "exif-lightsource-2": "فلورسانت",
+       "exif-lightsource-3": "تنگستن (نور بی گرمی ئا)",
+       "exif-lightsource-4": "پلاش",
+       "exif-lightsource-9": "جوانین هوا",
+       "exif-lightsource-10": "جمری ئین آسمان",
+       "exif-lightsource-11": "سیاهیگ",
+       "exif-lightsource-12": "ماهتاپئ بی روچئ تا (D 5700 – 7100K)",
+       "exif-lightsource-13": "سپیتین ماهتاپئ بئ روچئ تا (N 4600 – 5400K)",
+       "exif-lightsource-14": "سپیتین ماهتاپئ سرد (W 3900 – 4500K)",
+       "exif-lightsource-15": "سپیتین ماهتاپئ (WW 3200 – 3700K)",
+       "exif-lightsource-17": "A سٹاندارتین نور",
+       "exif-lightsource-18": "B سٹاندارتین نور",
+       "exif-lightsource-19": "C سٹاندارتین نور",
+       "exif-lightsource-24": "ISO ئی کارخانه ئي تنگستن ئی لامپ",
+       "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-saturation-0": "نورمال",
+       "exif-saturation-1": "کم ئین اشباع",
+       "exif-saturation-2": "بازین اشباع",
+       "exif-sharpness-0": "ساددگ",
+       "exif-sharpness-1": "نرم",
+       "exif-sharpness-2": "سک",
+       "exif-subjectdistancerange-0": "نامئلوم",
+       "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-gpsdestdistance-m": "مایل",
+       "exif-gpsdestdistance-n": "دریا ئین مایل",
+       "exif-gpsdop-excellent": "باز جووان ($1)",
+       "exif-gpsdop-good": "زبر ($1)",
+       "exif-gpsdop-moderate": "متوسط ($1)",
+       "exif-gpsdop-fair": "نه باز جووان ($1)",
+       "exif-gpsdop-poor": "ضعیف ($1)",
+       "exif-objectcycle-a": "تانا سوب",
+       "exif-objectcycle-p": "تانا دیگرونواشام",
+       "exif-objectcycle-b": "سوب و نواشام",
+       "exif-gpsdirection-t": "جوانین نیمگ",
+       "exif-gpsdirection-m": "آهنربائین نیمگ",
+       "exif-ycbcrpositioning-1": "مانجین بوتگ",
+       "exif-ycbcrpositioning-2": "اشتراکی",
+       "exif-dc-contributor": "شراکت کنۆک ئان",
+       "exif-dc-coverage": "رسانگ ئی زمانین یا مکانین محدوده",
+       "exif-dc-date": "تاریخ(ئان)",
+       "exif-dc-publisher": "ناشر",
+       "exif-dc-relation": "مربوتین میڈیاهان",
+       "exif-dc-rights": "حقوق",
+       "exif-dc-source": "بُنزهی ئین میڈیا",
+       "exif-dc-type": "میڈیایی رقم",
+       "exif-rating-rejected": "رد بوته ئین",
+       "exif-isospeedratings-overflow": "مزنتیر شه ۶۵۵۳۵",
+       "exif-iimcategory-ace": "هنر، فرهنگ و سرگرمی",
+       "exif-iimcategory-clj": "جنایت و قانون",
+       "exif-iimcategory-dis": "به لا و پیش آمدئان",
+       "exif-iimcategory-fin": "اقتصاد و تجارت",
+       "exif-iimcategory-edu": "یادگیپتین",
+       "exif-iimcategory-evn": "محیط زیست",
+       "exif-iimcategory-hth": "سلامت",
+       "exif-iimcategory-hum": "بشر ئی علاقه",
+       "exif-iimcategory-lab": "کار",
+       "exif-iimcategory-lif": "زنده گی ره قم و بیکاری وختان",
+       "exif-iimcategory-pol": "سیاست",
+       "exif-iimcategory-rel": "مذهب و باور",
+       "exif-iimcategory-sci": "علم و تخنیک",
+       "exif-iimcategory-soi": "اجتمائین مسائل",
+       "exif-iimcategory-spo": "سپورت",
+       "exif-iimcategory-war": "جنگ ، لٹ و کوٹ و ناآرامی",
+       "exif-iimcategory-wea": "آپ و هوا",
+       "exif-urgency-normal": "ئادی ($1)",
+       "exif-urgency-low": "کم ($1)",
+       "exif-urgency-high": "باز ($1)",
+       "exif-urgency-other": "تاریپ بوته ئین اولویت شه ($1) کارزوروک ئی نیمه گا"
+}
diff --git a/languages/i18n/exif/bjn.json b/languages/i18n/exif/bjn.json
new file mode 100644 (file)
index 0000000..bbe1483
--- /dev/null
@@ -0,0 +1,346 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ezagren",
+                       "J Subhi"
+               ]
+       },
+       "exif-imagewidth": "Libar",
+       "exif-imagelength": "Pancau",
+       "exif-bitspersample": "Bit par kumpunin",
+       "exif-compression": "Skima kumprasi",
+       "exif-photometricinterpretation": "Kumpusisi piksal",
+       "exif-orientation": "Uriantasi",
+       "exif-samplesperpixel": "Rikinan kumpunin",
+       "exif-planarconfiguration": "Pa-aturan data",
+       "exif-ycbcrsubsampling": "Rasiu sub-cuntuh matan Y ka C",
+       "exif-ycbcrpositioning": "Pawadahan Y wan C",
+       "exif-xresolution": "Risulusi horisontal",
+       "exif-yresolution": "Risulusi pertikal",
+       "exif-stripoffsets": "Data lukasi gambar",
+       "exif-rowsperstrip": "Rikinan baris par strip",
+       "exif-stripbytecounts": "Bita par strip kumprasi",
+       "exif-jpeginterchangeformat": "Ofset ka JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bita matan data JPEG",
+       "exif-whitepoint": "Puin putih krumatisitas",
+       "exif-primarychromaticities": "Krumatisitas matan warna primar",
+       "exif-ycbcrcoefficients": "Kuipisian kamar kelir transpurmasi matriks",
+       "exif-referenceblackwhite": "Nilai rujukan sapasang hirang wan putih",
+       "exif-datetime": "Tanggal wan wayah paubahan barakas",
+       "exif-imagedescription": "Judul gambar",
+       "exif-make": "Pabrikan kudakan",
+       "exif-model": "Mudil kudakan",
+       "exif-software": "Parangkat lunak dipuruk",
+       "exif-artist": "Pa-ulah",
+       "exif-copyright": "Pamingkut hak-rekap",
+       "exif-exifversion": "Parsi Exif",
+       "exif-flashpixversion": "Manyukung parsi Flashpix",
+       "exif-colorspace": "Kamar kalir",
+       "exif-componentsconfiguration": "Arti matan tiap kumpunin",
+       "exif-compressedbitsperpixel": "Muda kumprasi gambar",
+       "exif-pixelxdimension": "Lingai gambar",
+       "exif-pixelydimension": "Pancau gambar",
+       "exif-usercomment": "Kumintar pamuruk",
+       "exif-relatedsoundfile": "Barkas suara bahubung",
+       "exif-datetimeoriginal": "Tanggal wan wayah paulahan data",
+       "exif-datetimedigitized": "Tanggal wan wayah digitalisasi",
+       "exif-subsectime": "DateTime sub-datik",
+       "exif-subsectimeoriginal": "DateTimeOriginal sub-datik",
+       "exif-subsectimedigitized": "DateTimeDigitized sub-datik",
+       "exif-exposuretime": "Wayah paparan",
+       "exif-exposuretime-format": "$1 dat ($2)",
+       "exif-fnumber": "Rikinan F",
+       "exif-exposureprogram": "Parugram Paparan",
+       "exif-spectralsensitivity": "Sansitipitas spektral",
+       "exif-isospeedratings": "Dabit kahancapan ISO",
+       "exif-shutterspeedvalue": "Kahancapan rana APEX",
+       "exif-aperturevalue": "Singkaian APEX",
+       "exif-brightnessvalue": "Kacarahan APEX",
+       "exif-exposurebiasvalue": "Bias paparan APEX",
+       "exif-maxaperturevalue": "Singkaian maksimal tanah",
+       "exif-subjectdistance": "Halat subjek",
+       "exif-meteringmode": "Muda panakaran",
+       "exif-lightsource": "Asal mula sinar",
+       "exif-flash": "Kilat",
+       "exif-focallength": "Panjang linsa pukal",
+       "exif-subjectarea": "Wilayah subjek",
+       "exif-flashenergy": "Inargi kilat",
+       "exif-focalplanexresolution": "Risulusi bidang pukal X",
+       "exif-focalplaneyresolution": "Risulusi bidang pukal Y",
+       "exif-focalplaneresolutionunit": "Unit risulusi bidang pukal",
+       "exif-subjectlocation": "Lukasi subjek",
+       "exif-exposureindex": "Indiks paparan",
+       "exif-sensingmethod": "Mituda pangindraan",
+       "exif-filesource": "Asal-mula barakas",
+       "exif-scenetype": "Macam pamandangan",
+       "exif-customrendered": "Parusis ulahan gambar",
+       "exif-exposuremode": "Mode paparan",
+       "exif-whitebalance": "Kasaimbangan putih",
+       "exif-digitalzoomratio": "Rasiu pangganalan digital",
+       "exif-focallengthin35mmfilm": "Panjang pukal dalam pilem 35 mm",
+       "exif-scenecapturetype": "Macam panangkapan pamandangan",
+       "exif-gaincontrol": "Kandali pamandangan",
+       "exif-contrast": "Kuntras",
+       "exif-saturation": "Saturasi",
+       "exif-sharpness": "Kalandapan",
+       "exif-devicesettingdescription": "Diskripsi setelan pakakas",
+       "exif-subjectdistancerange": "Wilayah halat subjek",
+       "exif-imageuniqueid": "ID unik gambar",
+       "exif-gpsversionid": "Pirsi gantungan GPS",
+       "exif-gpslatituderef": "Lintang Utara atawa Selatan",
+       "exif-gpslatitude": "Lintang",
+       "exif-gpslongituderef": "Bujur timur ataw barat",
+       "exif-gpslongitude": "Bujur",
+       "exif-gpsaltituderef": "Rujukan kapancauan",
+       "exif-gpsaltitude": "Kapancauan",
+       "exif-gpstimestamp": "Wayah GPS (jam atumik)",
+       "exif-gpssatellites": "Satelit dipuruk gasan panakaran",
+       "exif-gpsstatus": "Status panarima",
+       "exif-gpsmeasuremode": "Muda panakaran",
+       "exif-gpsdop": "Katapatan panakaran",
+       "exif-gpsspeedref": "Unit kahancapan",
+       "exif-gpsspeed": "Kahancapan panarima GPS",
+       "exif-gpstrackref": "Rujukan gasan ampah bagarak",
+       "exif-gpstrack": "Ampah bagarak",
+       "exif-gpsimgdirectionref": "Rujukan gasan ampah gambar",
+       "exif-gpsimgdirection": "Ampah gambar",
+       "exif-gpsmapdatum": "Data surpai giudasi dipuruk",
+       "exif-gpsdestlatituderef": "Rujukan gasan lintang matan tujuan",
+       "exif-gpsdestlatitude": "Lintang tujuan",
+       "exif-gpsdestlongituderef": "Rujukan gasan bujur matan tujuan",
+       "exif-gpsdestlongitude": "Bujur tujuan",
+       "exif-gpsdestbearingref": "Rujukan gasan bantalan hubung matan tujuan",
+       "exif-gpsdestbearing": "Bantalan hubung tujuan",
+       "exif-gpsdestdistanceref": "Rujukan gasan halat ka tujuan",
+       "exif-gpsdestdistance": "Halat ka tujuan",
+       "exif-gpsprocessingmethod": "Ngaran mituda parusis GPS",
+       "exif-gpsareainformation": "Ngaran wilayah GPS",
+       "exif-gpsdatestamp": "Tanggal GPS",
+       "exif-gpsdifferential": "Pambujuran bibidaan GPS",
+       "exif-jpegfilecomment": "Kumintar barakas JPEG",
+       "exif-keywords": "Ujaran-sunduk",
+       "exif-worldregioncreated": "Wilayah dunia wadah gambar diambil",
+       "exif-countrycreated": "Nagara wadah gambar diambil",
+       "exif-countrycodecreated": "Kudi gasan nagara wadah gambar diambil",
+       "exif-provinceorstatecreated": "Parupinsi atawa nagara hagian wadah gambar diambil",
+       "exif-citycreated": "Kuta wadah gambar diambil",
+       "exif-sublocationcreated": "Sublukasi kuta wadah gambar diambil",
+       "exif-worldregiondest": "Wilayah dunia ditampaiakan",
+       "exif-countrydest": "Nagara ditampaiakan",
+       "exif-countrycodedest": "Kudi gasan nagara ditampaiakan",
+       "exif-provinceorstatedest": "Parupinsi atawa nagara hagian ditampaiakan",
+       "exif-citydest": "Kuta ditampaiakan",
+       "exif-sublocationdest": "Sub-lukasi kuta ditampaiakan",
+       "exif-objectname": "Judul handap",
+       "exif-specialinstructions": "Instruksi istimiwa",
+       "exif-headline": "Kapala-garis",
+       "exif-credit": "Kradit/Panyadia",
+       "exif-source": "Asal-mula",
+       "exif-editstatus": "Status editorial gambar",
+       "exif-urgency": "Urgansi",
+       "exif-fixtureidentifier": "Ngaran pikstur",
+       "exif-locationdest": "Lukasi digambarakan",
+       "exif-locationdestcode": "Kudi lukasi digambarakan",
+       "exif-objectcycle": "Wayah matan hari nang madia diambil",
+       "exif-contact": "Kuntak panjalasan",
+       "exif-writer": "Panulis",
+       "exif-languagecode": "Bahasa",
+       "exif-iimversion": "Parsi IIM",
+       "exif-iimcategory": "Tumbung",
+       "exif-iimsupplementalcategory": "Tumbung tambahan",
+       "exif-datetimeexpires": "Ditangati mamuruk sasudah",
+       "exif-datetimereleased": "Dirilis pada",
+       "exif-originaltransmissionref": "Kudi lukasi transmisi asli",
+       "exif-identifier": "Paminandu",
+       "exif-lens": "Linsa dipuruk",
+       "exif-serialnumber": "Rikinan seri kudakan",
+       "exif-cameraownername": "Ampunnya kudakan",
+       "exif-label": "Label",
+       "exif-datetimemetadata": "Tanggal mitadata pauncitnya diubah",
+       "exif-nickname": "Galaran gambar",
+       "exif-rating": "Dabit (matan 5)",
+       "exif-rightscertificate": "Sartipikat hak kalula",
+       "exif-copyrighted": "Status hak-rekap",
+       "exif-copyrightowner": "Pangampunnya hak-rekap",
+       "exif-usageterms": "Katantuan mamuruk",
+       "exif-webstatement": "Parnyataan hak-rekap daring",
+       "exif-originaldocumentid": "ID unik dukumin asli",
+       "exif-licenseurl": "URL lisansi hak-rekap",
+       "exif-morepermissionsurl": "Panjalasan lisansi altarnatip",
+       "exif-attributionurl": "Rahatan mamuruk-pulang gawian ngini, muhun tautakan ka",
+       "exif-preferredattributionname": "Rahatan mamuruk-pulang gawian ngini, muhun bari kradit",
+       "exif-pngfilecomment": "Kumintar barakas PNG",
+       "exif-disclaimer": "Panyangkalan",
+       "exif-contentwarning": "Paringatan isi",
+       "exif-giffilecomment": "Kumintar barakas GIF",
+       "exif-intellectualgenre": "Macanm barang",
+       "exif-subjectnewscode": "Kudi subjek",
+       "exif-scenecode": "Kudi pamandangan IPTC",
+       "exif-event": "Kajadian nang digambarakan",
+       "exif-organisationinimage": "Urganisasi nang digambarakan",
+       "exif-personinimage": "Urang nang digambarakan",
+       "exif-originalimageheight": "Pancau gambar sabalum dihandapi",
+       "exif-originalimagewidth": "Lingai gambar sabalum dihandapi",
+       "exif-compression-1": "Kada dikumpris",
+       "exif-compression-2": "Galambang CCITT 3 1-Dimensional Modified Huffman manjalankan panjang encoding",
+       "exif-compression-3": "Galambang CCITT 3 paks encoding",
+       "exif-compression-4": "Galambang CCITT 4 paks encoding",
+       "exif-copyrighted-true": "Bahak-rekap",
+       "exif-copyrighted-false": "Dumain publik",
+       "exif-unknowndate": "Tanggal kada dikatahui",
+       "exif-orientation-1": "Nurmal",
+       "exif-orientation-2": "Dibalik hurisuntal",
+       "exif-orientation-3": "Diputarakan 180°",
+       "exif-orientation-4": "Dibalik partikal",
+       "exif-orientation-5": "Diputarakan 90° CCW wan dibalik partikal",
+       "exif-orientation-6": "Diputarakan 90° CCW",
+       "exif-orientation-7": "Diputarakan 90° CW wan dibalik partikal",
+       "exif-orientation-8": "Diputarakan 90° CW",
+       "exif-planarconfiguration-1": "purmat chunky",
+       "exif-planarconfiguration-2": "purmat planar",
+       "exif-colorspace-65535": "Kada-dikalibrasi",
+       "exif-componentsconfiguration-0": "Kadada tasadia",
+       "exif-exposureprogram-0": "Kada tadapinisi",
+       "exif-exposureprogram-1": "Manual",
+       "exif-exposureprogram-2": "Nurmal parugram",
+       "exif-exposureprogram-3": "Priuritas singkaian",
+       "exif-exposureprogram-4": "Priuritas panungkup",
+       "exif-exposureprogram-5": "Parugram kariatip (hiring ka kadalaman lapangan)",
+       "exif-exposureprogram-6": "Parugram lakuan (hiring ka kahancapan singkaian)",
+       "exif-exposureprogram-7": "Muda putrait (gasan putu parak awan latar-balakang kaluar matan pukus)",
+       "exif-exposureprogram-8": "Moda pamandangan (gasan poto pamandangan awan latar balakang pokus)",
+       "exif-subjectdistance-value": "$1 mitir",
+       "exif-meteringmode-0": "Kada dikatahui",
+       "exif-meteringmode-1": "Rarata",
+       "exif-meteringmode-2": "Rarata pusat barat",
+       "exif-meteringmode-3": "Titik",
+       "exif-meteringmode-4": "Banyak-Titik",
+       "exif-meteringmode-5": "Pula",
+       "exif-meteringmode-6": "Sahagian",
+       "exif-meteringmode-255": "Lain",
+       "exif-lightsource-0": "Kada dikatahui",
+       "exif-lightsource-1": "Sinar-siang",
+       "exif-lightsource-2": "Fluorescent",
+       "exif-lightsource-3": "Tungsten (sinar incandescent)",
+       "exif-lightsource-4": "Kilat",
+       "exif-lightsource-9": "Cuaca baik",
+       "exif-lightsource-10": "Cuaca ba-awan",
+       "exif-lightsource-11": "Bayangan",
+       "exif-lightsource-12": "Sinar siang fluorescent (D 5700 – 7100K)",
+       "exif-lightsource-13": "Putih siang fluorescent (N 4600 – 5400K)",
+       "exif-lightsource-14": "Putih taduh fluorescent (W 3900 – 4500K)",
+       "exif-lightsource-15": "Putih fluorescent (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Sinar standar A",
+       "exif-lightsource-18": "Sinar standar B",
+       "exif-lightsource-19": "Sinar standar C",
+       "exif-lightsource-24": "studiu ISO tungsten",
+       "exif-lightsource-255": "Asal-mula sinar lain",
+       "exif-flash-fired-0": "Kilat kada banyala",
+       "exif-flash-fired-1": "Kilat banyala",
+       "exif-flash-return-0": "Kadada strobo/kilat tabulik bapungsi",
+       "exif-flash-return-2": "sinar stobo tabulik/kilat kada tadeteksi",
+       "exif-flash-return-3": "sinar stobo tabulik/kilat tadeteksi",
+       "exif-flash-mode-1": "wajib banyala kilat",
+       "exif-flash-mode-2": "lampu kilat ditikin",
+       "exif-flash-mode-3": "moda utumatis",
+       "exif-flash-function-1": "Kadada pungsi lampu kilat",
+       "exif-flash-redeye-1": "moda kurangi mata-habang",
+       "exif-focalplaneresolutionunit-2": "inci",
+       "exif-sensingmethod-1": "Kada-tajalasi",
+       "exif-sensingmethod-2": "Sinsur wilayah warna asa-chip",
+       "exif-sensingmethod-3": "Sinsur wilayah warna dua-chip",
+       "exif-sensingmethod-4": "Sinsur wilayah warna talu-chip",
+       "exif-sensingmethod-5": "Sinsur wilayah warna baurut",
+       "exif-sensingmethod-7": "Sinsur talu-garisan (trilinear)",
+       "exif-sensingmethod-8": "Sinsur wilayah warna baurut sagaris",
+       "exif-filesource-3": "Kudakan hinip digital",
+       "exif-scenetype-1": "Sabuah gambar poto langsung",
+       "exif-customrendered-0": "Parusis nurmal",
+       "exif-customrendered-1": "Parusis kustum",
+       "exif-exposuremode-0": "Paparan utumatis",
+       "exif-exposuremode-1": "Paparan manual",
+       "exif-exposuremode-2": "Kurungan utumatis",
+       "exif-whitebalance-0": "Kasaimbangan putih utumatis",
+       "exif-whitebalance-1": "Kasaimbangan putih manual",
+       "exif-scenecapturetype-0": "Standar",
+       "exif-scenecapturetype-1": "Balingai",
+       "exif-scenecapturetype-2": "Putrait",
+       "exif-scenecapturetype-3": "Pamandangan malam",
+       "exif-gaincontrol-0": "Kadada",
+       "exif-gaincontrol-1": "Naikakan sahikit",
+       "exif-gaincontrol-2": "Naikakan tabanyak",
+       "exif-gaincontrol-3": "Turunakan sahikit",
+       "exif-gaincontrol-4": "Turunakan fokus atas",
+       "exif-contrast-0": "Nurmal",
+       "exif-contrast-1": "Hapuk",
+       "exif-contrast-2": "Karas",
+       "exif-saturation-0": "Nurmal",
+       "exif-saturation-1": "Saturasi randah",
+       "exif-saturation-2": "Saturasi pancau",
+       "exif-sharpness-0": "Nurmal",
+       "exif-sharpness-1": "Hapuk",
+       "exif-sharpness-2": "Karas",
+       "exif-subjectdistancerange-0": "Kada dikatahui",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Tiringan rapat",
+       "exif-subjectdistancerange-3": "Tiringan bajarak",
+       "exif-gpslatitude-n": "Lintang utara",
+       "exif-gpslatitude-s": "Lintang selatan",
+       "exif-gpslongitude-e": "Bujur timur",
+       "exif-gpslongitude-w": "Bujur barat",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|mitir|mitir}} di atas parmukaan laut",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|mitir|mitir}} di bawah parmukaan laut",
+       "exif-gpsstatus-a": "Lagi ada pangukuran",
+       "exif-gpsstatus-v": "Pangukuran intaruparabilitas",
+       "exif-gpsmeasuremode-2": "Pangukuran 2-dimansi",
+       "exif-gpsmeasuremode-3": "Pangukuran 3-dimansi",
+       "exif-gpsspeed-k": "Kilumitir par jam",
+       "exif-gpsspeed-m": "Mil par jam",
+       "exif-gpsspeed-n": "Knot",
+       "exif-gpsdestdistance-k": "Kilumitir",
+       "exif-gpsdestdistance-m": "Mil",
+       "exif-gpsdestdistance-n": "Mil laut",
+       "exif-gpsdop-excellent": "Bungas banar ($1)",
+       "exif-gpsdop-good": "Bungas ($1)",
+       "exif-gpsdop-moderate": "Sadang ($1)",
+       "exif-gpsdop-fair": "Cukup ($1)",
+       "exif-gpsdop-poor": "Buruk ($1)",
+       "exif-objectcycle-a": "Sungsung haja",
+       "exif-objectcycle-p": "Malam haja",
+       "exif-objectcycle-b": "Sungsung wan malam",
+       "exif-gpsdirection-t": "Ampah bujur",
+       "exif-gpsdirection-m": "Ampah wasi wani",
+       "exif-ycbcrpositioning-1": "Tangahi",
+       "exif-ycbcrpositioning-2": "Atas (co-sited)",
+       "exif-dc-contributor": "Panyumbang",
+       "exif-dc-coverage": "Lingkup timpural atawa spasial madia",
+       "exif-dc-date": "Tanggal",
+       "exif-dc-publisher": "Panarbit",
+       "exif-dc-relation": "Madia tarait",
+       "exif-dc-rights": "Hak",
+       "exif-dc-source": "Madia asalmula",
+       "exif-dc-type": "Macam madia",
+       "exif-rating-rejected": "Ditulak",
+       "exif-isospeedratings-overflow": "Labih pada 65535",
+       "exif-iimcategory-ace": "Seni, budaya, wan hiburan",
+       "exif-iimcategory-clj": "Kajahatan wan hukum",
+       "exif-iimcategory-dis": "Bancana wan kacalakaan",
+       "exif-iimcategory-fin": "Ekonomi wan bisnis",
+       "exif-iimcategory-edu": "Pandidikan",
+       "exif-iimcategory-evn": "Lingkungan",
+       "exif-iimcategory-hth": "Kasihatan",
+       "exif-iimcategory-hum": "Minat insani",
+       "exif-iimcategory-lab": "Katanagagawian",
+       "exif-iimcategory-lif": "Gaya hidup wan rikriasi",
+       "exif-iimcategory-pol": "Pulitik",
+       "exif-iimcategory-rel": "Agama wan kaparcayaan",
+       "exif-iimcategory-sci": "Ilmu wan tiknulugi",
+       "exif-iimcategory-soi": "Isu susial",
+       "exif-iimcategory-spo": "Ulur-urat",
+       "exif-iimcategory-war": "Parang, cakut wan karasahan",
+       "exif-iimcategory-wea": "Cuaca",
+       "exif-urgency-normal": "Nurmal ($1)",
+       "exif-urgency-low": "Randah ($1)",
+       "exif-urgency-high": "Pancau ($1)",
+       "exif-urgency-other": "Ganti-suai utamaan ($1)"
+}
diff --git a/languages/i18n/exif/bn.json b/languages/i18n/exif/bn.json
new file mode 100644 (file)
index 0000000..0205ad0
--- /dev/null
@@ -0,0 +1,356 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Bellayet",
+                       "Nasir8891",
+                       "Wikitanvir",
+                       "Zaheen",
+                       "আফতাবুজ্জামান"
+               ]
+       },
+       "exif-imagewidth": "চওড়া",
+       "exif-imagelength": "লম্বা",
+       "exif-bitspersample": "উপাদানপ্রতি বিট",
+       "exif-compression": "সংকোচন পদ্ধতি",
+       "exif-photometricinterpretation": "পিক্সেল গঠন",
+       "exif-orientation": "দিকমুখিতা",
+       "exif-samplesperpixel": "উপাদানের সংখ্যা",
+       "exif-planarconfiguration": "উপাত্ত বিন্যাস",
+       "exif-ycbcrsubsampling": "Y থেকে C-এর সাবস্যাম্পলিং অনুপাত",
+       "exif-ycbcrpositioning": "Y ও C অবস্থান",
+       "exif-xresolution": "অনুভূমিক রেজোলিউশন",
+       "exif-yresolution": "উল্লম্ব রেজোলিউশন",
+       "exif-stripoffsets": "ছবির উপাত্তের অবস্থান",
+       "exif-rowsperstrip": "প্রতি স্ট্রিপে সারির সংখ্যা",
+       "exif-stripbytecounts": "প্রতি সংকুচিত স্ট্রিপে বাইটের পরিমাণ",
+       "exif-jpeginterchangeformat": "JPEG SOI-তে অফসেট করা হয়েছে",
+       "exif-jpeginterchangeformatlength": "JPEG উপাত্তের বাইট",
+       "exif-whitepoint": "শ্বেত বিন্দু বর্ণালীময়তা",
+       "exif-primarychromaticities": "মৌলিকত্বের বর্ণালীময়তা",
+       "exif-ycbcrcoefficients": "রঙ জগৎ রূপান্তর মেট্রিক্স সহগগুলি",
+       "exif-referenceblackwhite": "কালো-সাদা নির্দেশক মানের জোড়",
+       "exif-datetime": "ফাইল পরিবর্তনের তারিখ ও সময়",
+       "exif-imagedescription": "ছবির শিরোনাম",
+       "exif-make": "ক্যামেরার তৈরিকারক",
+       "exif-model": "ক্যামেরার মডেল",
+       "exif-software": "ব্যবহৃত সফটওয়্যার",
+       "exif-artist": "স্রষ্টা",
+       "exif-copyright": "কপিরাইট ধারক",
+       "exif-exifversion": "Exif সংস্করণ",
+       "exif-flashpixversion": "সমর্থিত Flashpix সংস্করণ",
+       "exif-colorspace": "রঙ জগৎ",
+       "exif-componentsconfiguration": "প্রতিটি উপাদানের অর্থ",
+       "exif-compressedbitsperpixel": "ছবি সংকোচন মোড",
+       "exif-pixelxdimension": "চিত্রের প্রস্থ",
+       "exif-pixelydimension": "চিত্রের উচ্চতা",
+       "exif-usercomment": "ব্যবহারকারীর মন্তব্য",
+       "exif-relatedsoundfile": "সংশ্লিষ্ট অডিও ফাইল",
+       "exif-datetimeoriginal": "উপাত্ত উৎপাদনের তারিখ ও সময়",
+       "exif-datetimedigitized": "ডিজিটালকরণের তারিখ ও সময়",
+       "exif-subsectime": "তারিখসময় উপসেকেন্ড",
+       "exif-subsectimeoriginal": "তারিখসময়মূল উপসেকেন্ড",
+       "exif-subsectimedigitized": "তারিখসময়ডিজিটালকৃত উপসেকেন্ড",
+       "exif-exposuretime": "আলোকসম্পাত কাল",
+       "exif-exposuretime-format": "$1 সেকেন্ড ($2)",
+       "exif-fnumber": "F নম্বর",
+       "exif-exposureprogram": "আলোকসম্পাত প্রোগ্রাম",
+       "exif-spectralsensitivity": "বর্ণালী সংবেদনশীলতা",
+       "exif-isospeedratings": "আইএসও দ্রুতি মূল্যায়ন",
+       "exif-shutterspeedvalue": "APEX শাটার দ্রুতি",
+       "exif-aperturevalue": "APEX উণ্মেষ",
+       "exif-brightnessvalue": "APEX উজ্জ্বলতা",
+       "exif-exposurebiasvalue": "আলোকসম্পাত প্রবণতা",
+       "exif-maxaperturevalue": "সর্বোচ্চ ভূমি আলোকসম্পাত",
+       "exif-subjectdistance": "বিষয়বস্তুর দূরত্ব",
+       "exif-meteringmode": "মিটারিং মোড",
+       "exif-lightsource": "বাতির উৎস",
+       "exif-flash": "ফ্ল্যাশ",
+       "exif-focallength": "লেন্সের ফোকাস দৈর্ঘ্য",
+       "exif-focallength-format": "$1 মিমি",
+       "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": "সাদা ভারসাম্য",
+       "exif-digitalzoomratio": "ডিজিটাল জুম অনুপাত",
+       "exif-focallengthin35mmfilm": "৩৫ মিমি ফিল্মে ফোকাস দৈর্ঘ্য",
+       "exif-scenecapturetype": "দৃশ্য গ্রহণ ধরন",
+       "exif-gaincontrol": "দৃশ্য নিয়ন্ত্রণ",
+       "exif-contrast": "বৈপরীত্য",
+       "exif-saturation": "সম্পৃক্ততা",
+       "exif-sharpness": "স্পষ্টতা",
+       "exif-devicesettingdescription": "যন্ত্রাংশের সেটিংসের বিবরণ",
+       "exif-subjectdistancerange": "বিষয়বস্তুর দূরত্বের সীমা",
+       "exif-imageuniqueid": "অদ্বিতীয় ছবি আইডি",
+       "exif-gpsversionid": "GPS ট্যাগ সংস্করণ",
+       "exif-gpslatituderef": "উত্তর বা দক্ষিণ অক্ষাংশ",
+       "exif-gpslatitude": "অক্ষাংশ",
+       "exif-gpslongituderef": "পূর্ব বা পশ্চিম দ্রাঘিমা",
+       "exif-gpslongitude": "দ্রাঘিমা",
+       "exif-gpsaltituderef": "উচ্চতা নির্দেশক",
+       "exif-gpsaltitude": "উচ্চতা",
+       "exif-gpstimestamp": "GPS সময় (পারমাণবিক ঘড়ি)",
+       "exif-gpssatellites": "পরিমাপে ব্যবহৃত উপগ্রহগুলি",
+       "exif-gpsstatus": "গ্রাহকের অবস্থা",
+       "exif-gpsmeasuremode": "পরিমাপ মোড",
+       "exif-gpsdop": "পরিমাপ নির্ভুলতা",
+       "exif-gpsspeedref": "দ্রুতি একক",
+       "exif-gpsspeed": "GPS গ্রাহকের দ্রুতি",
+       "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": "GPS এলাকার নাম",
+       "exif-gpsdatestamp": "GPS তারিখ",
+       "exif-gpsdifferential": "GPS ডিফারেনশিয়াল সংশোধন",
+       "exif-jpegfilecomment": "জেপিইজি ফাইলের মন্তব্য",
+       "exif-keywords": "মূলশব্দ",
+       "exif-worldregioncreated": "বিশ্বের যে স্থানে ছবিটি গ্রহণ করা হয়েছে",
+       "exif-countrycreated": "যে দেশে ছবিটি গ্রহণ করা হয়েছে",
+       "exif-countrycodecreated": "যে দেশে ছবিটি গ্রহণ করা হয়েছে তার কোড",
+       "exif-provinceorstatecreated": "যে প্রদেশে ছবিটি গ্রহণ করা হয়েছে",
+       "exif-citycreated": "যে শহরে ছবিটি গ্রহণ করা হয়েছে",
+       "exif-sublocationcreated": "শহরের যে স্থানে ছবিটি গ্রহণ করা হয়েছে",
+       "exif-worldregiondest": "বিশ্বের স্থান প্রদর্শিত",
+       "exif-countrydest": "দেশ প্রদর্শিত",
+       "exif-countrycodedest": "দেশের কোড প্রদর্শিত",
+       "exif-provinceorstatedest": "প্রদেশ প্রদর্শিত",
+       "exif-citydest": "শহর প্রদর্শিত",
+       "exif-sublocationdest": "শহরের স্থান প্রদর্শিত",
+       "exif-objectname": "সংক্ষিপ্ত শিরোনাম",
+       "exif-specialinstructions": "বিশেষ নির্দেশনাসমূহ",
+       "exif-headline": "শিরোনাম",
+       "exif-credit": "প্রণেতা/পরিবেশক",
+       "exif-source": "উৎস",
+       "exif-editstatus": "ছবির সম্পাদনা অবস্থা",
+       "exif-urgency": "অত্যাবশ্যকীয়তা",
+       "exif-fixtureidentifier": "ফিকশ্চারের নাম",
+       "exif-locationdest": "স্থান বর্ণিত",
+       "exif-locationdestcode": "স্থানের কোড বর্ণিত",
+       "exif-objectcycle": "দিনের যে সময়ের জন্য মিডিয়াটি ধারণকৃত হয়েছে",
+       "exif-contact": "যোগাযোগের তথ্য",
+       "exif-writer": "লেখক",
+       "exif-languagecode": "ভাষা",
+       "exif-iimversion": "আইআইএম সংস্করণ",
+       "exif-iimcategory": "বিষয়শ্রেণী",
+       "exif-iimsupplementalcategory": "সম্পূরক বিষয়শ্রেণী",
+       "exif-datetimeexpires": "যে সময়ের পর ব্যবহার করবেন না",
+       "exif-datetimereleased": "প্রকাশিত হয়েছে",
+       "exif-originaltransmissionref": "মূল ট্রান্সমিশনকৃত স্থানের কোড",
+       "exif-identifier": "আইডেন্টিফায়ার",
+       "exif-lens": "ব্যবহৃত লেন্স",
+       "exif-serialnumber": "ক্যামেরার ক্রমিক নম্বর",
+       "exif-cameraownername": "ক্যামেরার স্বত্ত্বাধিকারী",
+       "exif-label": "লেবেল",
+       "exif-datetimemetadata": "মেটাডেটার তারিখ সর্বশেষ পরিবর্তিত হয়েছিলো",
+       "exif-nickname": "ছবির খসড়া নাম",
+       "exif-rating": "রেটিং (৫-এর মধ্যে)",
+       "exif-rightscertificate": "অধিকার ব্যবস্থাপনা সনদপত্র",
+       "exif-copyrighted": "কপিরাইট অবস্থা",
+       "exif-copyrightowner": "কপিরাইট স্বত্ত্বাধিকারী",
+       "exif-usageterms": "ব্যবহারের পরিভাষা",
+       "exif-webstatement": "অনলাইন কপিরাইট বক্তব্য",
+       "exif-originaldocumentid": "মূল ডকুমেন্টের স্বতন্ত্র আইডি",
+       "exif-licenseurl": "কপিরাইট লাইসেন্সের ইউআরএল",
+       "exif-morepermissionsurl": "অতিরিক্ত লাইসেন্সিং তথ্যাদি",
+       "exif-attributionurl": "যখন এই কাজটি পুনরায় ব্যবহার করবেন, অনুগ্রহ করে এই লিংকটি যোগ করুন",
+       "exif-preferredattributionname": "যখন এই কাজটি পুনরায় ব্যবহার করবেন, অনুগ্রহ করে প্রণেতাকে ক্রেডিট দিন",
+       "exif-pngfilecomment": "পিএনজি ফাইলের মন্তব্য",
+       "exif-disclaimer": "দাবিত্যাগ",
+       "exif-contentwarning": "বিষয়বস্তু সতর্কবার্তা",
+       "exif-giffilecomment": "জিআইএফ ফাইলের মন্তব্য",
+       "exif-intellectualgenre": "উপাদানের প্রকার",
+       "exif-subjectnewscode": "বিষয় কোড",
+       "exif-scenecode": "আইপিটিসি সিন কোড",
+       "exif-event": "অনুষ্ঠান বর্ণিত",
+       "exif-organisationinimage": "প্রতিষ্ঠান বর্ণিত",
+       "exif-personinimage": "ব্যক্তি বর্ণিত",
+       "exif-originalimageheight": "ক্রপ করার পূর্বে চিত্রটির উচ্চতা",
+       "exif-originalimagewidth": "ক্রপ করার পূর্বে চিত্রটির প্রস্থ",
+       "exif-compression-1": "অসংকুচিত",
+       "exif-compression-2": "সিসিআইটিটি গ্রুপ ৩ ১-ডাইমেনশনাম মডিফাইড হাফম্যান রান লেংক্থ এনকোডিং",
+       "exif-compression-3": "সিসিআইটিটি গ্রুপ ৩ ফ্যাক্স এনকোডিং",
+       "exif-compression-4": "সিসিআইটিটি গ্রুপ ৪ ফ্যাক্স এনকোডিং",
+       "exif-compression-6": "JPEG (পুরনো)",
+       "exif-copyrighted-true": "কপিরাইটকৃত",
+       "exif-copyrighted-false": "কপিরাইট সংক্রান্ত তথ্য নেই",
+       "exif-photometricinterpretation-0": "কালো এবং সাদা (সাদা হল 0)",
+       "exif-photometricinterpretation-1": "কালো এবং সাদা (কালো হল 0)",
+       "exif-photometricinterpretation-3": "প্যালেট",
+       "exif-photometricinterpretation-4": "স্বচ্ছতা মাস্ক",
+       "exif-photometricinterpretation-5": "পৃথকীকৃত (সম্ভবত CMYK)",
+       "exif-unknowndate": "অজানা তারিখ",
+       "exif-orientation-1": "সাধারণ",
+       "exif-orientation-2": "অনুভূমিকভাবে উল্টানো",
+       "exif-orientation-3": "১৮০° ঘোরানো",
+       "exif-orientation-4": "উল্লম্বভাবে উল্টানো",
+       "exif-orientation-5": "ঘড়ির কাঁটার বিপরীতে ৯০° ঘোরানো এবং উল্লম্বভাবে উল্টানো",
+       "exif-orientation-6": "ঘড়ির কাঁটার বিপরীত দিকে ৯০° ঘোরানো",
+       "exif-orientation-7": "ঘড়ির কাঁটার দিকে ৯০° ঘোরানো এবং উল্লম্বভাবে উল্টানো",
+       "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-exposureprogram-5": "সৃষ্টিশীল প্রোগ্রাম (ক্ষেত্রের গভীরতার প্রতি পক্ষপাতবিশিষ্ট)",
+       "exif-exposureprogram-6": "অ্যাকশন প্রোগ্রাম (শাটার দ্রুতির প্রতি পক্ষপাতবিশিষ্ট)",
+       "exif-exposureprogram-7": "প্রতিকৃতি মোড (পটভূমিকে ফোকাসের বাইরে রেখে ক্লোজ-আপ ছবি তোলার জন্য)",
+       "exif-exposureprogram-8": "ল্যান্ডস্কেপ মোড (পটভূমি ফোকাসে রেখে তোলা ল্যান্ডস্কেপ আলোকচিত্রের জন্য)",
+       "exif-subjectdistance-value": "$1 মিটার",
+       "exif-meteringmode-0": "অজানা",
+       "exif-meteringmode-1": "গড়",
+       "exif-meteringmode-2": "কেন্দ্র ওজনকৃত গড়",
+       "exif-meteringmode-3": "স্পট",
+       "exif-meteringmode-4": "মাল্টিস্পট",
+       "exif-meteringmode-5": "বিন্যাস",
+       "exif-meteringmode-6": "আংশিক",
+       "exif-meteringmode-255": "অন্য",
+       "exif-lightsource-0": "অজানা",
+       "exif-lightsource-1": "দিনের আলো",
+       "exif-lightsource-2": "প্রতিপ্রভ",
+       "exif-lightsource-3": "টাংস্টেন (ভাস্বর বাতি)",
+       "exif-lightsource-4": "ফ্ল্যাশ",
+       "exif-lightsource-9": "চমৎকার আবহাওয়া",
+       "exif-lightsource-10": "মেঘাচ্ছন্ন আবহাওয়া",
+       "exif-lightsource-11": "ছায়া",
+       "exif-lightsource-12": "দিবালোক প্রতিপ্রভ (D 5700 – 7100K)",
+       "exif-lightsource-13": "দিন সাদা প্রতিপ্রভ (N 4600 – 5400K)",
+       "exif-lightsource-14": "শীতল সাদা প্রতিপ্রভ (W 3900 – 4500K)",
+       "exif-lightsource-15": "সাদা প্রতিপ্রভ (WW 3200 – 3700K)",
+       "exif-lightsource-17": "আদর্শ আলো A",
+       "exif-lightsource-18": "আদর্শ আলো B",
+       "exif-lightsource-19": "আদর্শ আলো C",
+       "exif-lightsource-24": "ISO স্টুডিও টাংস্টেন",
+       "exif-lightsource-255": "অন্য আলোক উৎস",
+       "exif-flash-fired-0": "ফ্লাস জ্বলেনি",
+       "exif-flash-fired-1": "ফ্ল্যাশ ব্যবহার করা হয়েছিল",
+       "exif-flash-return-0": "স্ট্রোব চিহ্নিতকরণ ফাংশন নেই",
+       "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-sensingmethod-7": "ত্রিরৈখিক সংবেদক",
+       "exif-sensingmethod-8": "রঙ ক্রমায়িত রৈখিক সংবেদক",
+       "exif-filesource-3": "ডিজিটাল স্টিল ক্যামেরা",
+       "exif-scenetype-1": "সরাসরি ফটো তোলা ছবি",
+       "exif-customrendered-0": "স্বাভাবিক প্রক্রিয়া",
+       "exif-customrendered-1": "পছন্দমাফিক প্রক্রিয়া",
+       "exif-exposuremode-0": "স্বয়ংক্রিয় আলোকসম্পাত",
+       "exif-exposuremode-1": "হাতে করা আলোকসম্পাত",
+       "exif-exposuremode-2": "স্বয়ংক্রিয় ব্র‌্যাকেট",
+       "exif-whitebalance-0": "স্বয়ংক্রিয় সাদা ভারসাম্য",
+       "exif-whitebalance-1": "হাতে করা সাদা ভারসাম্য",
+       "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-saturation-0": "সাধারণ",
+       "exif-saturation-1": "নিম্ন সম্পৃক্তি",
+       "exif-saturation-2": "উচ্চ সম্পৃক্তি",
+       "exif-sharpness-0": "সাধারণ",
+       "exif-sharpness-1": "নরম",
+       "exif-sharpness-2": "কঠিন",
+       "exif-subjectdistancerange-0": "অজানা",
+       "exif-subjectdistancerange-1": "ম্যাক্রো",
+       "exif-subjectdistancerange-2": "নিকট দৃষ্টি",
+       "exif-subjectdistancerange-3": "দূর দৃষ্টি",
+       "exif-gpslatitude-n": "উত্তর অক্ষাংশ",
+       "exif-gpslatitude-s": "দক্ষিণ অক্ষাংশ",
+       "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-gpsdestdistance-m": "ফাইল",
+       "exif-gpsdestdistance-n": "নটিক্যাল মাইল",
+       "exif-gpsdop-excellent": "খুব ভাল ($1)",
+       "exif-gpsdop-good": "ভাল ($1)",
+       "exif-gpsdop-moderate": "মোটামুটি ($1)",
+       "exif-gpsdop-fair": "ভাল ($1)",
+       "exif-gpsdop-poor": "খারাপ ($1)",
+       "exif-objectcycle-a": "শুধু সকালে",
+       "exif-objectcycle-p": "শুধু সন্ধ্যায়",
+       "exif-objectcycle-b": "উভয় সকাল এবং সন্ধ্যায়",
+       "exif-gpsdirection-t": "প্রকৃত দিক",
+       "exif-gpsdirection-m": "চৌম্বক দিক",
+       "exif-ycbcrpositioning-1": "কেন্দ্রীভূত",
+       "exif-ycbcrpositioning-2": "কো-সাইটেড",
+       "exif-dc-contributor": "অবদানকারী",
+       "exif-dc-coverage": "মিডিয়া ফাইলের বিশেষ অথবা অস্থায়ী ক্ষেত্র",
+       "exif-dc-date": "তারিখ",
+       "exif-dc-publisher": "প্রকাশক",
+       "exif-dc-relation": "সম্পর্কিত মিডিয়া",
+       "exif-dc-rights": "অধিকার",
+       "exif-dc-source": "উৎস মিডিয়া",
+       "exif-dc-type": "মিডিয়ার ধরন",
+       "exif-rating-rejected": "প্রত্যাখাত",
+       "exif-isospeedratings-overflow": "৬৫৫৩৫ থেকে বড়",
+       "exif-iimcategory-ace": "শিল্প, সংস্কৃতি এবং বিনোদন",
+       "exif-iimcategory-clj": "অপরাধ ও আইন",
+       "exif-iimcategory-dis": "দুর্যোগ ও দুর্ঘটনা",
+       "exif-iimcategory-fin": "অর্থনীতি এবং বাণিজ্য",
+       "exif-iimcategory-edu": "শিক্ষা",
+       "exif-iimcategory-evn": "পরিবেশ",
+       "exif-iimcategory-hth": "স্বাস্থ্য",
+       "exif-iimcategory-hum": "মানব আগ্রহ",
+       "exif-iimcategory-lab": "শ্রম",
+       "exif-iimcategory-lif": "লাইফস্টাইল এবং অবসর",
+       "exif-iimcategory-pol": "রাজনীতি",
+       "exif-iimcategory-rel": "ধর্ম এবং বিশ্বাস",
+       "exif-iimcategory-sci": "বিজ্ঞান ও প্রযুক্তি",
+       "exif-iimcategory-soi": "সামাজিক বিষয়",
+       "exif-iimcategory-spo": "ক্রীড়া",
+       "exif-iimcategory-war": "যুদ্ধ, সংঘাত ও উত্তেজনা",
+       "exif-iimcategory-wea": "আবহাওয়া",
+       "exif-urgency-normal": "সাধারণ ($1)",
+       "exif-urgency-low": "নিম্ন ($1)",
+       "exif-urgency-high": "উচ্চ ($1)",
+       "exif-urgency-other": "ব্যবহারকারী নির্ধারিত অগ্রাধিকার ক্রম ($1)"
+}
diff --git a/languages/i18n/exif/br.json b/languages/i18n/exif/br.json
new file mode 100644 (file)
index 0000000..6fb1c3d
--- /dev/null
@@ -0,0 +1,347 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Fohanno",
+                       "Fulup"
+               ]
+       },
+       "exif-imagewidth": "Ledander",
+       "exif-imagelength": "Hed",
+       "exif-bitspersample": "Niv. a vitoù dre barzhioù",
+       "exif-compression": "Seurt gwaskadur",
+       "exif-photometricinterpretation": "Kenaozadur piksel",
+       "exif-orientation": "Tuadur",
+       "exif-samplesperpixel": "Niver a standilhonoù",
+       "exif-planarconfiguration": "Kempenn ar roadennoù",
+       "exif-ycbcrsubsampling": "Feur standilhoniñ Y da C",
+       "exif-ycbcrpositioning": "Lec'hiadur Y ha C",
+       "exif-xresolution": "Pizhder led ar skeudenn",
+       "exif-yresolution": "Pizhder hed ar skeudenn",
+       "exif-stripoffsets": "Lec'hiadur roadennoù ar skeudenn",
+       "exif-rowsperstrip": "Niver a linennoù dre vandenn",
+       "exif-stripbytecounts": "Ment e oktedoù dre vandenn",
+       "exif-jpeginterchangeformat": "Lec'hiadur ar SOI JPEG",
+       "exif-jpeginterchangeformatlength": "Ment ar roadennoù JPEG en eizhbitoù",
+       "exif-whitepoint": "Kromategezh ar poent gwenn",
+       "exif-primarychromaticities": "Kromategezh al livioù orin",
+       "exif-ycbcrcoefficients": "Kenefederioù moull treuzfurmiñ an egorenn liv",
+       "exif-referenceblackwhite": "Talvoudenn dave gwenn ha du",
+       "exif-datetime": "Deiziad hag eur kemm restr",
+       "exif-imagedescription": "Titl ar skeudenn",
+       "exif-make": "Oberier ar benveg",
+       "exif-model": "Doare ar benveg",
+       "exif-software": "Meziant bet implijet",
+       "exif-artist": "Aozer",
+       "exif-copyright": "Perc'henn ar gwirioù aozer (copyright)",
+       "exif-exifversion": "Stumm exif",
+       "exif-flashpixversion": "Skoret ganti stumm Flashpix",
+       "exif-colorspace": "Lec'h al livioù",
+       "exif-componentsconfiguration": "Talvoudegezh pep parzh",
+       "exif-compressedbitsperpixel": "Doare gwaskañ ar skeudenn",
+       "exif-pixelxdimension": "Ledander ar skeudenn",
+       "exif-pixelydimension": "Sav ar skeudenn",
+       "exif-usercomment": "Evezhiadennoù",
+       "exif-relatedsoundfile": "Restr son stag",
+       "exif-datetimeoriginal": "Deiziad hag eur ar sevel roadoù",
+       "exif-datetimedigitized": "Deiziad hag eur an niverelaat",
+       "exif-subsectime": "Deiziad kemmañ diwezhañ",
+       "exif-subsectimeoriginal": "Deiziad an dennadenn orin",
+       "exif-subsectimedigitized": "Deiziad niverelaat",
+       "exif-exposuretime": "Amzer louc'hañ",
+       "exif-exposuretime-format": "$1 eilenn ($2)",
+       "exif-fnumber": "Hed etre sti",
+       "exif-exposureprogram": "Programm louc'hañ",
+       "exif-spectralsensitivity": "Kizidigezh spektrel",
+       "exif-isospeedratings": "Kizidigezh ISO",
+       "exif-shutterspeedvalue": "Tizh ar c'hlozer APEX",
+       "exif-aperturevalue": "Digorder APEX",
+       "exif-brightnessvalue": "Sklêrder APEX",
+       "exif-exposurebiasvalue": "Reizhadenn louc'hañ",
+       "exif-maxaperturevalue": "Maezienn digeriñ vrasañ",
+       "exif-subjectdistance": "Hed ar sujed",
+       "exif-meteringmode": "Doare muzuliañ",
+       "exif-lightsource": "Mammenn c'houloù",
+       "exif-flash": "Luc'h",
+       "exif-focallength": "Hirder ar fokalenn",
+       "exif-subjectarea": "Gorread ar sujed",
+       "exif-flashenergy": "Nerzh al luc'h",
+       "exif-focalplanexresolution": "Muzuliadur a-led ur fokalenn blaen",
+       "exif-focalplaneyresolution": "Muzuliadur a-serzh ur fokalenn blaen",
+       "exif-focalplaneresolutionunit": "Unanenn spisder evit ur fokalenn blaen",
+       "exif-subjectlocation": "Lec'hiadur an danvez",
+       "exif-exposureindex": "Meneger louc'hañ",
+       "exif-sensingmethod": "Hentenn detektiñ",
+       "exif-filesource": "Tarzh ar restr",
+       "exif-scenetype": "Seurt arvest",
+       "exif-customrendered": "Plediñ gant ar skeudennoù personelaet",
+       "exif-exposuremode": "Mod louc'hañ",
+       "exif-whitebalance": "Mentel ar gwennoù",
+       "exif-digitalzoomratio": "Feur brasaat niverel (zoum)",
+       "exif-focallengthin35mmfilm": "Hirder ar fokalenn e filmoù 35 mm",
+       "exif-scenecapturetype": "Doare pakañ an arvest",
+       "exif-gaincontrol": "Reizhañ ar sklêrder",
+       "exif-contrast": "Dargemm",
+       "exif-saturation": "Saturadur",
+       "exif-sharpness": "Spisder",
+       "exif-devicesettingdescription": "Deskrivadur doare ar wikefre",
+       "exif-subjectdistancerange": "Hed ar sujed",
+       "exif-imageuniqueid": "Anavezer nemetañ ar skeudenn",
+       "exif-gpsversionid": "Stumm an neudennad GPS",
+       "exif-gpslatituderef": "Ledred Norzh pe su",
+       "exif-gpslatitude": "Ledred",
+       "exif-gpslongituderef": "Hedred kornôg pe reter",
+       "exif-gpslongitude": "Hedred",
+       "exif-gpsaltituderef": "Daveenn uhelder",
+       "exif-gpsaltitude": "Uhelder",
+       "exif-gpstimestamp": "Eur GPS (eurier atomek)",
+       "exif-gpssatellites": "Loarelloù implijet evit ar muzuliañ",
+       "exif-gpsstatus": "Statud ar resever",
+       "exif-gpsmeasuremode": "Doare muzuliañ",
+       "exif-gpsdop": "Resisder ar muzul",
+       "exif-gpsspeedref": "Unanenn dizh",
+       "exif-gpsspeed": "Tizh ar resever GPS",
+       "exif-gpstrackref": "Daveenn evit durc'hadur ar fiñv",
+       "exif-gpstrack": "Durc'hadur ar fiñv",
+       "exif-gpsimgdirectionref": "Daveenn evit durc'hadur ar skeudenn",
+       "exif-gpsimgdirection": "Durc'hadur ar skeudenn",
+       "exif-gpsmapdatum": "Reizhiad geodetek implijet",
+       "exif-gpsdestlatituderef": "Daveenn evit ledred ar pal",
+       "exif-gpsdestlatitude": "Ledred ar pal",
+       "exif-gpsdestlongituderef": "Daveenn evit hedred ar pal",
+       "exif-gpsdestlongitude": "Hedred ar pal",
+       "exif-gpsdestbearingref": "Daveenn evit notenniñ ar pal",
+       "exif-gpsdestbearing": "Notenniñ ar pal",
+       "exif-gpsdestdistanceref": "Daveenn evit an hed betek ar pal",
+       "exif-gpsdestdistance": "Hed betek ar pal",
+       "exif-gpsprocessingmethod": "Anv hentenn blediñ ar GPS",
+       "exif-gpsareainformation": "Anv an takad GPS",
+       "exif-gpsdatestamp": "Deiziad GPS",
+       "exif-gpsdifferential": "Reizhadenn diforc'hadus GPS",
+       "exif-jpegfilecomment": "Evezhiadenn digant ar restr JPEG",
+       "exif-keywords": "Gerioù alc'hwez",
+       "exif-worldregioncreated": "Ranndir ma voe tennet ar skeudenn",
+       "exif-countrycreated": "Bro ma voe tennet ar skeudenn",
+       "exif-countrycodecreated": "Kod ar vro ma voe tennet ar skeudenn",
+       "exif-provinceorstatecreated": "Proviñs pe Stad ma voe tennet ar skeudenn",
+       "exif-citycreated": "Kêr ma voe tennet ar skeudenn",
+       "exif-sublocationcreated": "Islec'hiadur ar gêr ma voe tennet ar skeudenn",
+       "exif-worldregiondest": "Ranndir diskouezet",
+       "exif-countrydest": "Bro diskouezet",
+       "exif-countrycodedest": "Kod evit ar vro diskouezet",
+       "exif-provinceorstatedest": "Proviñs pe Stad diskouezet",
+       "exif-citydest": "Kêr diskouezet",
+       "exif-sublocationdest": "Islec'hiadur ar gêr diskouezet",
+       "exif-objectname": "Titl berr",
+       "exif-specialinstructions": "Kemennadurioù dibar",
+       "exif-headline": "Titl",
+       "exif-credit": "Kred/Pourvezer",
+       "exif-source": "Mammenn",
+       "exif-editstatus": "Statud skridaozañ ar skeudenn",
+       "exif-urgency": "Malluster",
+       "exif-fixtureidentifier": "Anv elefenn a zistro ingal",
+       "exif-locationdest": "Lec'h diskouezet",
+       "exif-locationdestcode": "Kod al lec'h diskouezet",
+       "exif-objectcycle": "Mare eus an deiz m'eo bet soñjet ar media-mañ evitañ",
+       "exif-contact": "Titouroù diwar-benn an darempred",
+       "exif-writer": "Skrivagner",
+       "exif-languagecode": "Yezh",
+       "exif-iimversion": "Stumm IIM",
+       "exif-iimcategory": "Rummad",
+       "exif-iimsupplementalcategory": "Rummadoù ouzhpenn",
+       "exif-datetimeexpires": "Arabat implijout goude",
+       "exif-datetimereleased": "Embannet d'an",
+       "exif-originaltransmissionref": "Treuzkas orin ar c'hod lec'hiañ",
+       "exif-identifier": "Anaouder",
+       "exif-lens": "Ferenn bet implijet",
+       "exif-serialnumber": "Niverenn rummad ar benveg",
+       "exif-cameraownername": "Perc'henn ar benveg",
+       "exif-label": "Tikedenn",
+       "exif-datetimemetadata": "Deiziad ma voe kemmet ar metaroadennoù da ziwezhañ",
+       "exif-nickname": "Anv anfurmel ar skeudenn",
+       "exif-rating": "Priziañ (war 5)",
+       "exif-rightscertificate": "Testeni merañ ar gwirioù",
+       "exif-copyrighted": "Statud a-fet gwirioù aozer",
+       "exif-copyrightowner": "Perc'henn ar gwirioù aozer (copyright)",
+       "exif-usageterms": "Termenoù implijout",
+       "exif-webstatement": "Disklêriadur gwrioù-aozer enlinenn",
+       "exif-originaldocumentid": "ID nemetañ an teul orin",
+       "exif-licenseurl": "Chomlec'h Internet evit an aotre gwirioù-aozer",
+       "exif-morepermissionsurl": "Titouroù all war an aotre-implijout",
+       "exif-attributionurl": "Ma adimplijt an oberenn-mañ, lakait ul liamm war-zu",
+       "exif-preferredattributionname": "Ma adimplijt an oberenn-mañ, roit kred da",
+       "exif-pngfilecomment": "Evezhiadenn digant ar restr PNG",
+       "exif-disclaimer": "Kemenn hollek",
+       "exif-contentwarning": "Kemenn-diwall diwar-benn an danvez",
+       "exif-giffilecomment": "Evezhiadenn digant ar restr GIF",
+       "exif-intellectualgenre": "Seurt elfenn",
+       "exif-subjectnewscode": "Kod ar sujed",
+       "exif-scenecode": "Kod leurenniñ IPTC",
+       "exif-event": "Darvoud diskouezet",
+       "exif-organisationinimage": "Anv an aozadurioù diskouezet war ar skeudenn",
+       "exif-personinimage": "Den diskouezet",
+       "exif-originalimageheight": "Sav ar skeudenn a-raok na vije bet krennet",
+       "exif-originalimagewidth": "Ledander ar skeudenn a-raok na vije bet krennet",
+       "exif-compression-1": "Hep gwaskañ",
+       "exif-compression-2": "CCITT Strollad 3 1 Hirder kodañ Huffman kemmet a vent 1",
+       "exif-compression-3": "CCITT Strollad 3 kodañ ar pelleiler",
+       "exif-compression-4": "CCITT Strollad 4 kodañ ar pelleiler",
+       "exif-copyrighted-true": "Pep gwir miret strizh",
+       "exif-copyrighted-false": "Domani foran",
+       "exif-photometricinterpretation-1": "Gwenn ha du (0 zo evit du)",
+       "exif-unknowndate": "Deiziad dianav",
+       "exif-orientation-1": "Boutin",
+       "exif-orientation-2": "Eilpennet a-hed",
+       "exif-orientation-3": "Troet eus 180°",
+       "exif-orientation-4": "Eilpennet a-serzh",
+       "exif-orientation-5": "Troet eus 90° a-gleiz hag eilpennet a-serzh",
+       "exif-orientation-6": "Troet eus 90° a-enep d'an eur",
+       "exif-orientation-7": "Troet eus 90° a-zehou hag eilpennet a-serzh",
+       "exif-orientation-8": "Troet eus 90° a-gleiz",
+       "exif-planarconfiguration-1": "Roadennoù kenstok",
+       "exif-planarconfiguration-2": "Roadennoù distag",
+       "exif-colorspace-65535": "N'eo ket diouzh ur stalon",
+       "exif-componentsconfiguration-0": "n'eus ket anezhi",
+       "exif-exposureprogram-0": "Anspisaet",
+       "exif-exposureprogram-1": "Dre zorn",
+       "exif-exposureprogram-2": "Programm boutin",
+       "exif-exposureprogram-3": "Rakgwir digeriñ",
+       "exif-exposureprogram-4": "Rakkwir serriñ",
+       "exif-exposureprogram-5": "Programm krouiñ (tuadur e-keñver donder ar maez)",
+       "exif-exposureprogram-6": "Programm seveniñ (tuadur e-keñver an tizh serriñ)",
+       "exif-exposureprogram-7": "Mod poltred (evit skeudennoù a-dost gant an diadreñv dispis)",
+       "exif-exposureprogram-8": "Mod gweledva (evit skeudennoù gweledva gant an diadreñv spis)",
+       "exif-subjectdistance-value": "$1 metr",
+       "exif-meteringmode-0": "Dianav",
+       "exif-meteringmode-1": "Keidenn",
+       "exif-meteringmode-2": "Muzul kreiz keitat",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "Liesspot",
+       "exif-meteringmode-5": "Patrom",
+       "exif-meteringmode-6": "Darnek",
+       "exif-meteringmode-255": "All",
+       "exif-lightsource-0": "Dianav",
+       "exif-lightsource-1": "Gouloù deiz",
+       "exif-lightsource-2": "Treluc'hus",
+       "exif-lightsource-3": "Tungsten (gouloù kann)",
+       "exif-lightsource-4": "Luc'h",
+       "exif-lightsource-9": "Amzer digoumoul",
+       "exif-lightsource-10": "Amzer goumoulek",
+       "exif-lightsource-11": "Skeud",
+       "exif-lightsource-12": "Gouloù deiz treluc'hus (D 5700 – 7100K)",
+       "exif-lightsource-13": "Gouloù deiz treluc'hus gwenn (N 4600 – 5400K)",
+       "exif-lightsource-14": "Gouloù treluc'hus gwenn yen (W 3900 – 4500K)",
+       "exif-lightsource-15": "Gouloù treluc'hus gwenn (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Gouloù standard A",
+       "exif-lightsource-18": "Gouloù standard B",
+       "exif-lightsource-19": "Gouloù standard C",
+       "exif-lightsource-24": "Goulaouiñ studio gant tungsten ISO",
+       "exif-lightsource-255": "Mammenn c'houloù all",
+       "exif-flash-fired-0": "Tamm luc'h ebet",
+       "exif-flash-fired-1": "Luc'h taolet",
+       "exif-flash-return-0": "ne zistro arc'hwel detektiñ ebet gant stroboskop ebet",
+       "exif-flash-return-2": "disteuler a ra ar stroboskop ur goulou n'eo ket deteket",
+       "exif-flash-return-3": "ur goulou detektet a zistro gant ar stroboskop",
+       "exif-flash-mode-1": "Taol luc'h dre ret",
+       "exif-flash-mode-2": "tennañ an taol luc'h dre ret",
+       "exif-flash-mode-3": "Mod emgefre",
+       "exif-flash-function-1": "Arc'hwel luc'h ebet",
+       "exif-flash-redeye-1": "Mod hep lagadoù ruz",
+       "exif-focalplaneresolutionunit-2": "meudad",
+       "exif-sensingmethod-1": "Hep resisaat",
+       "exif-sensingmethod-2": "Detekter takad liv monokromatek",
+       "exif-sensingmethod-3": "Detekter takad liv bikromatek",
+       "exif-sensingmethod-4": "Detekter takad liv trikromatek",
+       "exif-sensingmethod-5": "Detekter takad liv kemalennek",
+       "exif-sensingmethod-7": "Detekter teirlinennek",
+       "exif-sensingmethod-8": "Detekter liv linennek kemalennek",
+       "exif-filesource-3": "Luc'hskeudennerez niverel",
+       "exif-scenetype-1": "Lun luc'hskeudennet war-eeun",
+       "exif-customrendered-0": "Plediñ boutin",
+       "exif-customrendered-1": "Plediñ personelaet",
+       "exif-exposuremode-0": "Emlouc'hañ",
+       "exif-exposuremode-1": "Louc'hañ dre zorn",
+       "exif-exposuremode-2": "Emvraketiñ",
+       "exif-whitebalance-0": "Mentel ar gwennoù emgefre",
+       "exif-whitebalance-1": "Mentel ar gwennoù dre zorn",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Gweledva",
+       "exif-scenecapturetype-2": "Poltred",
+       "exif-scenecapturetype-3": "Arvest noz",
+       "exif-gaincontrol-0": "Hini ebet",
+       "exif-gaincontrol-1": "Kresk pakañ izel",
+       "exif-gaincontrol-2": "Kresk pakañ uhel",
+       "exif-gaincontrol-3": "Digresk pakañ izel",
+       "exif-gaincontrol-4": "Digresk pakañ uhel",
+       "exif-contrast-0": "Boutin",
+       "exif-contrast-1": "Dister",
+       "exif-contrast-2": "Kreñv",
+       "exif-saturation-0": "Boutin",
+       "exif-saturation-1": "Saturadur izel",
+       "exif-saturation-2": "Saturadur uhel",
+       "exif-sharpness-0": "Boutin",
+       "exif-sharpness-1": "Dister",
+       "exif-sharpness-2": "Kreñv",
+       "exif-subjectdistancerange-0": "Dianav",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Gwelet a-dost",
+       "exif-subjectdistancerange-3": "Gwelet a-bell",
+       "exif-gpslatitude-n": "Ledred norzh",
+       "exif-gpslatitude-s": "Ledred su",
+       "exif-gpslongitude-e": "Hedred reter",
+       "exif-gpslongitude-w": "Hedred kornôg",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metr|metr}} a-us da live ar mor",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metr|metr}} a-is da live ar mor",
+       "exif-gpsstatus-a": "O vuzuliañ",
+       "exif-gpsstatus-v": "etreoberatadusted ar muzul",
+       "exif-gpsmeasuremode-2": "Muzuliañ divventek",
+       "exif-gpsmeasuremode-3": "Muzuliañ teirventek",
+       "exif-gpsspeed-k": "Kilometr dre eur",
+       "exif-gpsspeed-m": "Miltir dre eur",
+       "exif-gpsspeed-n": "Skoulm",
+       "exif-gpsdestdistance-k": "Kilometr",
+       "exif-gpsdestdistance-m": "Miltir",
+       "exif-gpsdestdistance-n": "Miltir",
+       "exif-gpsdop-excellent": "Mat-kenañ ($1)",
+       "exif-gpsdop-good": "Mat ($1)",
+       "exif-gpsdop-moderate": "Etre ($1)",
+       "exif-gpsdop-fair": "Propik ($1)",
+       "exif-gpsdop-poor": "Dister ($1)",
+       "exif-objectcycle-a": "Da vintin hepken",
+       "exif-objectcycle-p": "Diouzh an abardaez hepken",
+       "exif-objectcycle-b": "Da vintin ha diouzh an abaradez",
+       "exif-gpsdirection-t": "Durc'hadur gwir",
+       "exif-gpsdirection-m": "Norzh magnetek",
+       "exif-ycbcrpositioning-1": "Kreizet",
+       "exif-ycbcrpositioning-2": "Ken-lec'hiet",
+       "exif-dc-contributor": "Aozerien",
+       "exif-dc-coverage": "Goloadur ar media a-fet amzer pe tachenn",
+       "exif-dc-date": "Deiziad(où)",
+       "exif-dc-publisher": "Embanner",
+       "exif-dc-relation": "Media kar",
+       "exif-dc-rights": "Gwirioù",
+       "exif-dc-source": "Media orin",
+       "exif-dc-type": "Seurt media",
+       "exif-rating-rejected": "Distaolet",
+       "exif-isospeedratings-overflow": "Brasoc'h eget 65535",
+       "exif-iimcategory-ace": "Arzoù, sevenadur ha diduamantoù",
+       "exif-iimcategory-clj": "Torfedoù ha lezennoù",
+       "exif-iimcategory-dis": "Reuzioù ha gwallzarvoudoù",
+       "exif-iimcategory-fin": "Armerzh hag aferioù",
+       "exif-iimcategory-edu": "Deskadurezh",
+       "exif-iimcategory-evn": "Endro",
+       "exif-iimcategory-hth": "Yec'hed",
+       "exif-iimcategory-hum": "Dedenn denel",
+       "exif-iimcategory-lab": "Bed al labour",
+       "exif-iimcategory-lif": "Doare bevañ ha dudiamantoù",
+       "exif-iimcategory-pol": "Politikerezh",
+       "exif-iimcategory-rel": "Relijion ha kredennoù",
+       "exif-iimcategory-sci": "Skiantoù ha teknologiezhoù",
+       "exif-iimcategory-soi": "Temoù kevredigezhel",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Brezelioù, tabutoù ha turmud",
+       "exif-iimcategory-wea": "Amzer",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Izel ($1)",
+       "exif-urgency-high": "Uhel ($1)",
+       "exif-urgency-other": "Priorelezh termenet gant an aozer ($1)"
+}
diff --git a/languages/i18n/exif/bs.json b/languages/i18n/exif/bs.json
new file mode 100644 (file)
index 0000000..69c1b3c
--- /dev/null
@@ -0,0 +1,354 @@
+{
+       "@metadata": {
+               "authors": [
+                       "CERminator",
+                       "DzWiki",
+                       "Edinwiki",
+                       "Kal-El",
+                       "Srdjan m"
+               ]
+       },
+       "exif-imagewidth": "Širina",
+       "exif-imagelength": "Visina",
+       "exif-bitspersample": "Bita po komponenti",
+       "exif-compression": "Šema kompresije",
+       "exif-photometricinterpretation": "Sastav piksela",
+       "exif-orientation": "Orjentacija",
+       "exif-samplesperpixel": "Broj komponenti",
+       "exif-planarconfiguration": "Aranžiranje podataka",
+       "exif-ycbcrsubsampling": "Odnos subsampling od Y do C",
+       "exif-ycbcrpositioning": "Pozicioniranje Y i C",
+       "exif-xresolution": "Horizontalna rezolucija",
+       "exif-yresolution": "Vertikalna rezolucija",
+       "exif-stripoffsets": "Lokacija podataka slike",
+       "exif-rowsperstrip": "Broj redaka po liniji",
+       "exif-stripbytecounts": "Bita po kompresovanoj liniji",
+       "exif-jpeginterchangeformat": "Presijek do JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bita JPEG podataka",
+       "exif-whitepoint": "Hromiranost bijele tačke",
+       "exif-primarychromaticities": "Hromaticitet primarnih boja",
+       "exif-ycbcrcoefficients": "Koeficijenti transformacije matrice prostora boja",
+       "exif-referenceblackwhite": "Par crnih i bijelih referentnih vrijednosti",
+       "exif-datetime": "Vrijeme i datum promjene datoteke",
+       "exif-imagedescription": "Naslov slike",
+       "exif-make": "Proizvođač kamere",
+       "exif-model": "Model kamere",
+       "exif-software": "Korišteni softver",
+       "exif-artist": "Autor",
+       "exif-copyright": "Vlasnik autorskih prava",
+       "exif-exifversion": "Exif verzija",
+       "exif-flashpixversion": "Podržana verzija Flashpix",
+       "exif-colorspace": "Prostor boje",
+       "exif-componentsconfiguration": "Značenje svake komponente",
+       "exif-compressedbitsperpixel": "Način kompresije slike",
+       "exif-pixelxdimension": "Širina slike",
+       "exif-pixelydimension": "Visina slike",
+       "exif-usercomment": "Korisnički komentari",
+       "exif-relatedsoundfile": "Povezana zvučna datoteka",
+       "exif-datetimeoriginal": "Datum i vrijeme generisanja podataka",
+       "exif-datetimedigitized": "Datum i vrijeme digitalizacije",
+       "exif-subsectime": "Datum i vrijeme u dijelovima sekunde",
+       "exif-subsectimeoriginal": "Originalno vrijeme i datum u dijelovima sekunde",
+       "exif-subsectimedigitized": "Datum i vrijeme digitalizacije u dijelovima sekunde",
+       "exif-exposuretime": "Vrijeme izlaganja (ekspozicije)",
+       "exif-exposuretime-format": "$1 sekundi ($2)",
+       "exif-fnumber": "F broj",
+       "exif-exposureprogram": "Program ekspozicije",
+       "exif-spectralsensitivity": "Spektralna osjetljivost",
+       "exif-isospeedratings": "Rejting ISO brzine",
+       "exif-shutterspeedvalue": "Brzina APEX okidača",
+       "exif-aperturevalue": "Otvor blende",
+       "exif-brightnessvalue": "Osvijetljenost",
+       "exif-exposurebiasvalue": "Kompozicija ekspozicije",
+       "exif-maxaperturevalue": "Najveći broj otvora blende",
+       "exif-subjectdistance": "Udaljenost objekta",
+       "exif-meteringmode": "Način mjerenja",
+       "exif-lightsource": "Izvor svjetlosti",
+       "exif-flash": "Blijesak",
+       "exif-focallength": "Fokusna dužina objektiva",
+       "exif-subjectarea": "Površina objekta",
+       "exif-flashenergy": "Energija blijeska",
+       "exif-focalplanexresolution": "Rezolucija fokusne ravni X",
+       "exif-focalplaneyresolution": "Rezolucija fokusne ravni Y",
+       "exif-focalplaneresolutionunit": "Jedinica rezolucije fokusne ravni",
+       "exif-subjectlocation": "Lokacija objekta",
+       "exif-exposureindex": "Indeks ekspozicije",
+       "exif-sensingmethod": "Vrsta senzora",
+       "exif-filesource": "Izvor datoteke",
+       "exif-scenetype": "Vrsta scene",
+       "exif-customrendered": "Podešeno uređivanje slike",
+       "exif-exposuremode": "Vrsta ekspozicije",
+       "exif-whitebalance": "Bijeli balans",
+       "exif-digitalzoomratio": "Odnos digitalnog zuma",
+       "exif-focallengthin35mmfilm": "Fokusna dužina kod 35 mm filma",
+       "exif-scenecapturetype": "Vrsta scene snimanja",
+       "exif-gaincontrol": "Kontrola scene",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Saturacija",
+       "exif-sharpness": "Izoštrenost",
+       "exif-devicesettingdescription": "Opis postavki uređaja",
+       "exif-subjectdistancerange": "Udaljenost od objekta",
+       "exif-imageuniqueid": "Jedinstveni ID slike",
+       "exif-gpsversionid": "Verzija GPS bloka informacija",
+       "exif-gpslatituderef": "Sjeverna ili južna širina",
+       "exif-gpslatitude": "Širina",
+       "exif-gpslongituderef": "Istočna ili zapadna dužina",
+       "exif-gpslongitude": "Dužina",
+       "exif-gpsaltituderef": "Referenca visine",
+       "exif-gpsaltitude": "Visina",
+       "exif-gpstimestamp": "GPS vrijeme (atomski sat)",
+       "exif-gpssatellites": "Sateliti korišteni pri mjerenju",
+       "exif-gpsstatus": "Status prijemnika",
+       "exif-gpsmeasuremode": "Način mjerenja",
+       "exif-gpsdop": "Preciznost mjerenja",
+       "exif-gpsspeedref": "Jedinica brzine",
+       "exif-gpsspeed": "Brzina GPS prijemnika",
+       "exif-gpstrackref": "Referenca za pravac kretanja",
+       "exif-gpstrack": "Pravac kretanja",
+       "exif-gpsimgdirectionref": "Referenca za pravac slike",
+       "exif-gpsimgdirection": "Pravac slike",
+       "exif-gpsmapdatum": "Upotrijebljeni podaci geoloških mjerenja",
+       "exif-gpsdestlatituderef": "Referenca za širinu odredišta",
+       "exif-gpsdestlatitude": "Širina odredišta",
+       "exif-gpsdestlongituderef": "Referenca za dužinu odredišta",
+       "exif-gpsdestlongitude": "Dužina odredišta",
+       "exif-gpsdestbearingref": "Indeks azimuta odredišta",
+       "exif-gpsdestbearing": "Azimut odredišta",
+       "exif-gpsdestdistanceref": "Referenca za udaljenost od odredišta",
+       "exif-gpsdestdistance": "Udaljenost do odredišta",
+       "exif-gpsprocessingmethod": "Naziv GPS metoda procesiranja",
+       "exif-gpsareainformation": "Naziv GPS područja",
+       "exif-gpsdatestamp": "GPS datum",
+       "exif-gpsdifferential": "GPS diferencijalna korekcija",
+       "exif-jpegfilecomment": "Komentar JPEG datoteke",
+       "exif-keywords": "Ključne riječi",
+       "exif-worldregioncreated": "Regija svijeta gdje je slika načinjena",
+       "exif-countrycreated": "Država gdje je slika načinjena",
+       "exif-countrycodecreated": "Kod države gdje je slika načinjena",
+       "exif-provinceorstatecreated": "Provincija ili pokrajina gdje je slika načinjena",
+       "exif-citycreated": "Grad gdje je slika načinjena",
+       "exif-sublocationcreated": "Podlokacija grada gdje je slika načinjena",
+       "exif-worldregiondest": "Prikazana regija svijeta",
+       "exif-countrydest": "Prikazana država",
+       "exif-countrycodedest": "Kod prikazane države",
+       "exif-provinceorstatedest": "Prikazana provincija ili pokrajina",
+       "exif-citydest": "Prikazani grad",
+       "exif-sublocationdest": "Podlokacija grada koja je prikazana",
+       "exif-objectname": "Kratki naslov",
+       "exif-specialinstructions": "Posebne upute",
+       "exif-headline": "Naslov",
+       "exif-credit": "Pripisivanje/Pružalac usluga",
+       "exif-source": "Izvor",
+       "exif-editstatus": "Urednički status slike",
+       "exif-urgency": "Hitnost",
+       "exif-fixtureidentifier": "Naziv rubrike",
+       "exif-locationdest": "Lokacija prikazana",
+       "exif-locationdestcode": "Kod prikazane lokacije",
+       "exif-objectcycle": "Doba dana za koje je namijenjena medija",
+       "exif-contact": "Podaci za kontakt",
+       "exif-writer": "Pisac",
+       "exif-languagecode": "Jezik",
+       "exif-iimversion": "IIM verzija",
+       "exif-iimcategory": "Kategorija",
+       "exif-iimsupplementalcategory": "Dodatne kategorije",
+       "exif-datetimeexpires": "Ne koristite nakon",
+       "exif-datetimereleased": "Objavljeno",
+       "exif-originaltransmissionref": "Originalna šifra mjesta prenosa",
+       "exif-identifier": "Oznaka",
+       "exif-lens": "Korišteni objektiv",
+       "exif-serialnumber": "Serijski broj fotoaparata",
+       "exif-cameraownername": "Vlasnik fotoaparata",
+       "exif-label": "Naslov",
+       "exif-datetimemetadata": "Datum posljednje izmjene meta podataka",
+       "exif-nickname": "Neformalni naziv slike",
+       "exif-rating": "Ocjena (od 5)",
+       "exif-rightscertificate": "Certifikat za upravljanje pravima",
+       "exif-copyrighted": "Status autorskih prava",
+       "exif-copyrightowner": "Vlasnik autorskih prava",
+       "exif-usageterms": "Uslovi upotrebe",
+       "exif-webstatement": "Online izjava o autorskom pravu",
+       "exif-originaldocumentid": "Jedinstveni ID originalnog dokumenta",
+       "exif-licenseurl": "URL za licencu autorskog prava",
+       "exif-morepermissionsurl": "Alternativni podaci o licenci",
+       "exif-attributionurl": "Kada ponovo upotrebljavate ovaj rad, molimo povežite do njega",
+       "exif-preferredattributionname": "Kada ponovo upotrebljavate ovaj rad, molimo navedite ga",
+       "exif-pngfilecomment": "Komentar PNG datoteke",
+       "exif-disclaimer": "Odricanje odgovornosti",
+       "exif-contentwarning": "Upozorenje o sadržaju",
+       "exif-giffilecomment": "Komentar GIF datoteke",
+       "exif-intellectualgenre": "Vrsta stavke",
+       "exif-subjectnewscode": "Kôd predmeta",
+       "exif-scenecode": "IPTC kôd scene",
+       "exif-event": "Prikazani događaj",
+       "exif-organisationinimage": "Prikazana organizacija",
+       "exif-personinimage": "Prikazana ličnost",
+       "exif-originalimageheight": "Visina slike prije nego što je odrezana",
+       "exif-originalimagewidth": "Širina slike prije nego što je odrezana",
+       "exif-compression-1": "Nekompresovano",
+       "exif-compression-2": "CCITT Grupa 3 1 — Dimenzionalno izmijenjeo Huffmanovo šifriranje po dužini",
+       "exif-compression-3": "CCITT Grupa 3 faks šifriranje",
+       "exif-compression-4": "CCITT Grupa 4 faks šifriranje",
+       "exif-copyrighted-true": "Zaštićeno autorskim pravima",
+       "exif-copyrighted-false": "Status autorskih prava nije postavljen",
+       "exif-photometricinterpretation-1": "Crno-bijelo (crna je 0)",
+       "exif-unknowndate": "Nepoznat datum",
+       "exif-orientation-1": "Normalna",
+       "exif-orientation-2": "Horizontalno preokrenuto",
+       "exif-orientation-3": "Rotirano 180°",
+       "exif-orientation-4": "Vertikalno preokrenuto",
+       "exif-orientation-5": "Rotirano 90° suprotno kazaljke i vertikalno obrnuto",
+       "exif-orientation-6": "Zaokrenuto 90° suprotno smjeru kazaljke",
+       "exif-orientation-7": "Rotirano 90° u smijeru kazaljke i preokrenuto vertikalno",
+       "exif-orientation-8": "Zaokrenuto 90° u smjeru kazaljke",
+       "exif-planarconfiguration-1": "grubi format",
+       "exif-planarconfiguration-2": "format u ravni",
+       "exif-colorspace-65535": "Nije podešeno",
+       "exif-componentsconfiguration-0": "ne postoji",
+       "exif-exposureprogram-0": "Nije određen",
+       "exif-exposureprogram-1": "Ručno",
+       "exif-exposureprogram-2": "Normalni program",
+       "exif-exposureprogram-3": "Prioritet otvora blende",
+       "exif-exposureprogram-4": "Prioritet okidača",
+       "exif-exposureprogram-5": "Kreativni program (usmjeren ka dubini polja)",
+       "exif-exposureprogram-6": "Program akcije (usmjereno na veću brzinu okidača)",
+       "exif-exposureprogram-7": "Način portreta (za fotografije iz blizine sa pozadinom van fokusa)",
+       "exif-exposureprogram-8": "Način pejsaža (za pejsažne fotografije sa pozadinom u fokusu)",
+       "exif-subjectdistance-value": "$1 metara",
+       "exif-meteringmode-0": "Nepoznat",
+       "exif-meteringmode-1": "Prosječan",
+       "exif-meteringmode-2": "Srednji prosjek težišta",
+       "exif-meteringmode-3": "Tačka",
+       "exif-meteringmode-4": "Višestruka tačka",
+       "exif-meteringmode-5": "Šema",
+       "exif-meteringmode-6": "Djelimični",
+       "exif-meteringmode-255": "Ostalo",
+       "exif-lightsource-0": "Nepoznat",
+       "exif-lightsource-1": "Dnevno svjetlo",
+       "exif-lightsource-2": "Fluorescentni",
+       "exif-lightsource-3": "Volfram (svjetlo)",
+       "exif-lightsource-4": "Blijesak",
+       "exif-lightsource-9": "Lijepo vrijeme",
+       "exif-lightsource-10": "Oblačno vrijeme",
+       "exif-lightsource-11": "Osjenčeno",
+       "exif-lightsource-12": "Dnevna fluorescencija (D 5700 – 7100K)",
+       "exif-lightsource-13": "Dnevna bijela fluorescencija (N 4600 – 5400K)",
+       "exif-lightsource-14": "Hladno bijela fluorescencija (W 3900 – 4500K)",
+       "exif-lightsource-15": "Bijela fluorescencija (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standardno svjetlo A",
+       "exif-lightsource-18": "Standardno svjetlo B",
+       "exif-lightsource-19": "Standardno svjetlo C",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-22": "D75",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "ISO studio volfram",
+       "exif-lightsource-255": "Ostali izvori svjetlosti",
+       "exif-flash-fired-0": "Blijesak nije radio",
+       "exif-flash-fired-1": "Blijesak radio",
+       "exif-flash-return-0": "blijesak nije poslao nikakav odziv",
+       "exif-flash-return-2": "nije otkriven blijesak",
+       "exif-flash-return-3": "otkriven blijesak",
+       "exif-flash-mode-1": "obavezan rad blijeska",
+       "exif-flash-mode-2": "obavezno izbjegavanje blijeska",
+       "exif-flash-mode-3": "automatski način",
+       "exif-flash-function-1": "Bez funkcije blijeska",
+       "exif-flash-redeye-1": "način redukcije \"crvenila očiju\"",
+       "exif-focalplaneresolutionunit-2": "inči",
+       "exif-sensingmethod-1": "Nedefinisan",
+       "exif-sensingmethod-2": "Senzor boje površine sa jednim čipom",
+       "exif-sensingmethod-3": "Senzor boje površine sa dva čipa",
+       "exif-sensingmethod-4": "Senzor boje površine sa tri čipa",
+       "exif-sensingmethod-5": "Sekvencijalni senzor boje površine",
+       "exif-sensingmethod-7": "Trilinearni senzor",
+       "exif-sensingmethod-8": "Sekvencijalni senzor boje linija",
+       "exif-filesource-3": "Digitalna kamera",
+       "exif-scenetype-1": "Direktno fotografisana slika",
+       "exif-customrendered-0": "Normalni proces",
+       "exif-customrendered-1": "Podešeni proces",
+       "exif-exposuremode-0": "Automatska ekpozicija",
+       "exif-exposuremode-1": "Ručna ekspozicija",
+       "exif-exposuremode-2": "Automatski određen raspon",
+       "exif-whitebalance-0": "Automatski bijeli balans",
+       "exif-whitebalance-1": "Ručno podešeni bijeli balans",
+       "exif-scenecapturetype-0": "Standardna",
+       "exif-scenecapturetype-1": "Pejsaž",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Noćna scena",
+       "exif-gaincontrol-0": "Ništa",
+       "exif-gaincontrol-1": "Malo povećanje",
+       "exif-gaincontrol-2": "Veće povećanje",
+       "exif-gaincontrol-3": "Manje smanjenje",
+       "exif-gaincontrol-4": "Veće smanjenje",
+       "exif-contrast-0": "Normalni",
+       "exif-contrast-1": "Mehki",
+       "exif-contrast-2": "Snažni",
+       "exif-saturation-0": "Normalna",
+       "exif-saturation-1": "Niska zasićenost",
+       "exif-saturation-2": "Jako zasićenje",
+       "exif-sharpness-0": "Normalna",
+       "exif-sharpness-1": "Blago",
+       "exif-sharpness-2": "Oštro",
+       "exif-subjectdistancerange-0": "Nepoznat",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Pogled izbliza",
+       "exif-subjectdistancerange-3": "Pogled iz daljine",
+       "exif-gpslatitude-n": "Sjeverna širina",
+       "exif-gpslatitude-s": "Južna širina",
+       "exif-gpslongitude-e": "Istočna dužina",
+       "exif-gpslongitude-w": "Zapadna dužina",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metar|metra|metara}} nadmorske visine",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metar|metra|metara}} ispod nivoa mora",
+       "exif-gpsstatus-a": "Mjerenje u toku",
+       "exif-gpsstatus-v": "Mjerenje van funkcije",
+       "exif-gpsmeasuremode-2": "dvodimenzionalno mjerenje",
+       "exif-gpsmeasuremode-3": "trodimenzionalno mjerenje",
+       "exif-gpsspeed-k": "Kilometara na sat",
+       "exif-gpsspeed-m": "Milja na sat",
+       "exif-gpsspeed-n": "Čvorova",
+       "exif-gpsdestdistance-k": "Kilometara",
+       "exif-gpsdestdistance-m": "Milja",
+       "exif-gpsdestdistance-n": "Nautičkih milja",
+       "exif-gpsdop-excellent": "Odlično ($1)",
+       "exif-gpsdop-good": "Dobro ($1)",
+       "exif-gpsdop-moderate": "Umjereno ($1)",
+       "exif-gpsdop-fair": "Zadovoljavajuće ($1)",
+       "exif-gpsdop-poor": "Loše ($1)",
+       "exif-objectcycle-a": "Samo jutro",
+       "exif-objectcycle-p": "Samo navečer",
+       "exif-objectcycle-b": "I ujutro i navečer",
+       "exif-gpsdirection-t": "Stvarni pravac",
+       "exif-gpsdirection-m": "Magnetski pravac",
+       "exif-ycbcrpositioning-1": "Centrirano",
+       "exif-ycbcrpositioning-2": "Uporedo",
+       "exif-dc-contributor": "Autori",
+       "exif-dc-coverage": "Prostorni ili vremenski okvir medije",
+       "exif-dc-date": "Datum(i)",
+       "exif-dc-publisher": "Izdavač",
+       "exif-dc-relation": "Povezana medija",
+       "exif-dc-rights": "Prava",
+       "exif-dc-source": "Izvor medije",
+       "exif-dc-type": "Vrsta medije",
+       "exif-rating-rejected": "Odbijeno",
+       "exif-isospeedratings-overflow": "Više od 65535",
+       "exif-iimcategory-ace": "Umjetnosti, kultura i zabava",
+       "exif-iimcategory-clj": "Kriminal i zakon",
+       "exif-iimcategory-dis": "Katastrofe i nesreće",
+       "exif-iimcategory-fin": "Ekonomija i posao",
+       "exif-iimcategory-edu": "Obrazovanje",
+       "exif-iimcategory-evn": "Okolina",
+       "exif-iimcategory-hth": "Zdravlje",
+       "exif-iimcategory-hum": "Ljudski interes",
+       "exif-iimcategory-lab": "Rad",
+       "exif-iimcategory-lif": "Način života i razonoda",
+       "exif-iimcategory-pol": "Politika",
+       "exif-iimcategory-rel": "Religija i vjerovanje",
+       "exif-iimcategory-sci": "Nauka i tehnologija",
+       "exif-iimcategory-soi": "Društvena pitanja",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Rat, sukob i nemir",
+       "exif-iimcategory-wea": "Vrijeme",
+       "exif-urgency-normal": "Normalno ($1)",
+       "exif-urgency-low": "Nisko ( $1 )",
+       "exif-urgency-high": "Visoko ($1)",
+       "exif-urgency-other": "Korisnički određen prioritet ($1)"
+}
diff --git a/languages/i18n/exif/ca.json b/languages/i18n/exif/ca.json
new file mode 100644 (file)
index 0000000..696e497
--- /dev/null
@@ -0,0 +1,369 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Aleator",
+                       "Alvaro Vidal-Abarca",
+                       "BroOk",
+                       "Cedric31",
+                       "Jaumeortola",
+                       "Martorell",
+                       "McDutchie",
+                       "Papapep",
+                       "Qllach",
+                       "SMP",
+                       "Toniher",
+                       "Vriullop"
+               ]
+       },
+       "exif-imagewidth": "Amplada",
+       "exif-imagelength": "Alçada",
+       "exif-bitspersample": "Octets per component",
+       "exif-compression": "Esquema de compressió",
+       "exif-photometricinterpretation": "Composició dels píxels",
+       "exif-orientation": "Orientació",
+       "exif-samplesperpixel": "Nombre de components",
+       "exif-planarconfiguration": "Ordenament de dades",
+       "exif-ycbcrsubsampling": "Proporció de mostreig secundari de Y amb C",
+       "exif-ycbcrpositioning": "Posició YCbCr",
+       "exif-xresolution": "Resolució horitzontal",
+       "exif-yresolution": "Resolució vertical",
+       "exif-stripoffsets": "Ubicació de les dades de la imatge",
+       "exif-rowsperstrip": "Nombre de fileres per franja",
+       "exif-stripbytecounts": "Octets per franja comprimida",
+       "exif-jpeginterchangeformat": "Ancorament del JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Octets de dades JPEG",
+       "exif-whitepoint": "Cromositat del punt blanc",
+       "exif-primarychromaticities": "Coordenada cromàtica del color primari",
+       "exif-ycbcrcoefficients": "Coeficients de la matriu de transformació de l'espai colorimètric",
+       "exif-referenceblackwhite": "Valors de referència negre i blanc",
+       "exif-datetime": "Data i hora de modificació del fitxer",
+       "exif-imagedescription": "Títol de la imatge",
+       "exif-make": "Fabricant de la càmera",
+       "exif-model": "Model de càmera",
+       "exif-software": "Programari utilitzat",
+       "exif-artist": "Autor",
+       "exif-copyright": "Titular dels drets d'autor",
+       "exif-exifversion": "Versió Exif",
+       "exif-flashpixversion": "Versió Flashpix admesa",
+       "exif-colorspace": "Espai de color",
+       "exif-componentsconfiguration": "Significat de cada component",
+       "exif-compressedbitsperpixel": "Mode de compressió d'imatge",
+       "exif-pixelxdimension": "Amplada de la imatge",
+       "exif-pixelydimension": "Alçada de la imatge",
+       "exif-usercomment": "Comentaris de l'usuari",
+       "exif-relatedsoundfile": "Fitxer d'àudio relacionat",
+       "exif-datetimeoriginal": "Dia i hora de generació de les dades",
+       "exif-datetimedigitized": "Dia i hora de digitalització",
+       "exif-subsectime": "Data i hora, fraccions de segon",
+       "exif-subsectimeoriginal": "Data i hora de creació, fraccions de segon",
+       "exif-subsectimedigitized": "Data i hora de digitalització, fraccions de segon",
+       "exif-exposuretime": "Temps d'exposició",
+       "exif-exposuretime-format": "$1 s ($2)",
+       "exif-fnumber": "Obertura del diafragma",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Programa d'exposició",
+       "exif-spectralsensitivity": "Sensibilitat espectral",
+       "exif-isospeedratings": "Sensibilitat ISO",
+       "exif-shutterspeedvalue": "APEX velocitat d'obturació",
+       "exif-aperturevalue": "APEX obertura",
+       "exif-brightnessvalue": "APEX brillantor",
+       "exif-exposurebiasvalue": "Correcció d'exposició",
+       "exif-maxaperturevalue": "Camp d'obertura màxim",
+       "exif-subjectdistance": "Distància del subjecte",
+       "exif-meteringmode": "Mode de mesura",
+       "exif-lightsource": "Font de llum",
+       "exif-flash": "Flaix",
+       "exif-focallength": "Longitud focal de la lent",
+       "exif-focallength-format": "$1 mm",
+       "exif-subjectarea": "Enquadre del subjecte",
+       "exif-flashenergy": "Energia del flaix",
+       "exif-focalplanexresolution": "Resolució X del pla focal",
+       "exif-focalplaneyresolution": "Resolució Y del pla focal",
+       "exif-focalplaneresolutionunit": "Unitat de resolució del pla focal",
+       "exif-subjectlocation": "Posició del subjecte",
+       "exif-exposureindex": "Índex d'exposició",
+       "exif-sensingmethod": "Mètode de detecció",
+       "exif-filesource": "Font del fitxer",
+       "exif-scenetype": "Tipus d'escena",
+       "exif-customrendered": "Processament d'imatge personalitzat",
+       "exif-exposuremode": "Mode d'exposició",
+       "exif-whitebalance": "Balanç de blancs",
+       "exif-digitalzoomratio": "Escala d'ampliació digital (zoom)",
+       "exif-focallengthin35mmfilm": "Distància focal per a pel·lícula de 35 mm",
+       "exif-scenecapturetype": "Tipus de captura d'escena",
+       "exif-gaincontrol": "Control d'escena",
+       "exif-contrast": "Contrast",
+       "exif-saturation": "Saturació",
+       "exif-sharpness": "Nitidesa",
+       "exif-devicesettingdescription": "Descripció dels paràmetres del dispositiu",
+       "exif-subjectdistancerange": "Escala de distància del subjecte",
+       "exif-imageuniqueid": "Identificador únic de la imatge",
+       "exif-gpsversionid": "Versió del tag GPS",
+       "exif-gpslatituderef": "Latitud nord o sud",
+       "exif-gpslatitude": "Latitud",
+       "exif-gpslongituderef": "Longitud est o oest",
+       "exif-gpslongitude": "Longitud",
+       "exif-gpsaltituderef": "Referència d'altitud",
+       "exif-gpsaltitude": "Altitud",
+       "exif-gpstimestamp": "Hora GPS (rellotge atòmic)",
+       "exif-gpssatellites": "Satèl·lits utilitzats en la mesura",
+       "exif-gpsstatus": "Estat del receptor",
+       "exif-gpsmeasuremode": "Mode de mesura",
+       "exif-gpsdop": "Precisió de la mesura",
+       "exif-gpsspeedref": "Unitat de velocitat",
+       "exif-gpsspeed": "Velocitat del receptor GPS",
+       "exif-gpstrackref": "Referència per la direcció del moviment",
+       "exif-gpstrack": "Direcció del moviment",
+       "exif-gpsimgdirectionref": "Referència per la direcció de la imatge",
+       "exif-gpsimgdirection": "Direcció de la imatge",
+       "exif-gpsmapdatum": "S'han utilitzat dades d'informes geodètics",
+       "exif-gpsdestlatituderef": "Referència per a la latitud de la destinació",
+       "exif-gpsdestlatitude": "Latitud de la destinació",
+       "exif-gpsdestlongituderef": "Referència per a la longitud de la destinació",
+       "exif-gpsdestlongitude": "Longitud de la destinació",
+       "exif-gpsdestbearingref": "Referència per a l'orientació de la destinació",
+       "exif-gpsdestbearing": "Orientació de la destinació",
+       "exif-gpsdestdistanceref": "Referència de la distància a la destinació",
+       "exif-gpsdestdistance": "Distància a la destinació",
+       "exif-gpsprocessingmethod": "Nom del mètode de processament GPS",
+       "exif-gpsareainformation": "Nom de l'àrea GPS",
+       "exif-gpsdatestamp": "Data GPS",
+       "exif-gpsdifferential": "Correcció diferencial GPS",
+       "exif-jpegfilecomment": "Comentari del fitxer JPEG",
+       "exif-keywords": "Paraules clau",
+       "exif-worldregioncreated": "Regió del món on la foto va ser presa",
+       "exif-countrycreated": "País on la foto va ser presa",
+       "exif-countrycodecreated": "Codi del país on la foto va ser presa",
+       "exif-provinceorstatecreated": "Província o estat on la foto va ser presa",
+       "exif-citycreated": "Ciutat on la foto va ser presa",
+       "exif-sublocationcreated": "Sublocalització de la ciutat on la foto va ser presa",
+       "exif-worldregiondest": "Regió del món que mostra",
+       "exif-countrydest": "País que mostra",
+       "exif-countrycodedest": "Codi del país que mostra",
+       "exif-provinceorstatedest": "Província o estat que mostra",
+       "exif-citydest": "Ciutat que mostra",
+       "exif-sublocationdest": "Sublocalització de la ciutat que mostra",
+       "exif-objectname": "Títol abreujat",
+       "exif-specialinstructions": "Instruccions especials",
+       "exif-headline": "Encapçalament",
+       "exif-credit": "Crèdit / Proveïdor",
+       "exif-source": "Font",
+       "exif-editstatus": "Estat de redacció de la imatge",
+       "exif-urgency": "Urgència",
+       "exif-fixtureidentifier": "Nom de l'accessori",
+       "exif-locationdest": "Ubicació representada",
+       "exif-locationdestcode": "Codi de la ubicació que mostra",
+       "exif-objectcycle": "Moment del dia al qual va destinat el mitjà de comunicació",
+       "exif-contact": "Informació de contacte",
+       "exif-writer": "Escriptor",
+       "exif-languagecode": "Idioma",
+       "exif-iimversion": "IIM versió",
+       "exif-iimcategory": "Categoria",
+       "exif-iimsupplementalcategory": "Categories suplementàries",
+       "exif-datetimeexpires": "No utilitzar després",
+       "exif-datetimereleased": "Data de llançament",
+       "exif-originaltransmissionref": "Transmissió original del codi de la ubicació",
+       "exif-identifier": "Identificador",
+       "exif-lens": "Objectiu utilitzat",
+       "exif-serialnumber": "Número de sèrie de la càmera",
+       "exif-cameraownername": "Propietari de la càmera",
+       "exif-label": "Etiqueta",
+       "exif-datetimemetadata": "Data que s'ha modificat les metadades per última vegada",
+       "exif-nickname": "Nom informal de la imatge",
+       "exif-rating": "Valoració (sobre 5)",
+       "exif-rightscertificate": "Certificat de gestió de drets",
+       "exif-copyrighted": "Estat dels drets d'autor",
+       "exif-copyrightowner": "Propietari dels drets d'autor",
+       "exif-usageterms": "Termes d'ús",
+       "exif-webstatement": "Declaració de drets d'autor en línia",
+       "exif-originaldocumentid": "ID únic del document original",
+       "exif-licenseurl": "Direcció de llicències de drets d'autor",
+       "exif-morepermissionsurl": "Alternativa informació de llicència",
+       "exif-attributionurl": "Quan reutilitzeu aquest treball, si us plau, poseu un enllaç a",
+       "exif-preferredattributionname": "Quan reutilitzeu aquest treball, si us plau posa un credit a",
+       "exif-pngfilecomment": "Comentari del fitxer PNG",
+       "exif-disclaimer": "Avís general",
+       "exif-contentwarning": "Advertència de contingut",
+       "exif-giffilecomment": "Comentari del fitxer GIF",
+       "exif-intellectualgenre": "Tipus d'article",
+       "exif-subjectnewscode": "Codi del subjecte",
+       "exif-scenecode": "Codi d'escena IPTC",
+       "exif-event": "Esdeveniment representat",
+       "exif-organisationinimage": "Organització representada",
+       "exif-personinimage": "Persona representada",
+       "exif-originalimageheight": "Alçada de la imatge abans que fos retallada",
+       "exif-originalimagewidth": "Amplada de la imatge abans que fos retallada",
+       "exif-compression-1": "Sense compressió",
+       "exif-compression-2": "Codificació CCITT Grup 3 longitud unidimensional de Huffman modificat",
+       "exif-compression-3": "Codificació de fax CCITT grup 3",
+       "exif-compression-4": "Codificació de fax CCITT grup 4",
+       "exif-compression-6": "JPEG (antic)",
+       "exif-copyrighted-true": "Sotmesa a drets d'autor",
+       "exif-copyrighted-false": "No s'ha definit l'estat de copyright",
+       "exif-photometricinterpretation-0": "Negre i blanc (blanc és 0)",
+       "exif-photometricinterpretation-1": "Negra i blanc (negre és 0)",
+       "exif-photometricinterpretation-3": "Paleta",
+       "exif-photometricinterpretation-4": "Màscara de transparència",
+       "exif-photometricinterpretation-5": "Separat (probablement CMYK)",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (codificació ICC)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (codificació ITU)",
+       "exif-unknowndate": "Data desconeguda",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Invertit horitzontalment",
+       "exif-orientation-3": "Girat 180°",
+       "exif-orientation-4": "Invertit verticalment",
+       "exif-orientation-5": "Girat 90° en sentit antihorari i invertit verticalment",
+       "exif-orientation-6": "Girat 90° en sentit antihorari",
+       "exif-orientation-7": "Girat 90° en sentit horari i invertit verticalment",
+       "exif-orientation-8": "Girat 90° en sentit horari",
+       "exif-planarconfiguration-1": "a blocs densos (chunky)",
+       "exif-planarconfiguration-2": "format pla",
+       "exif-xyresolution-i": "$1 ppp",
+       "exif-xyresolution-c": "$1 ppc",
+       "exif-colorspace-65535": "Sense calibrar",
+       "exif-componentsconfiguration-0": "no existeix",
+       "exif-exposureprogram-0": "No definit",
+       "exif-exposureprogram-1": "Manual",
+       "exif-exposureprogram-2": "Programa normal",
+       "exif-exposureprogram-3": "amb prioritat d'obertura",
+       "exif-exposureprogram-4": "amb prioritat de velocitat d'obturació",
+       "exif-exposureprogram-5": "Programa creatiu (preferència a la profunditat de camp)",
+       "exif-exposureprogram-6": "Programa acció (preferència a la velocitat d'obturació)",
+       "exif-exposureprogram-7": "Mode retrat (per primers plans amb fons desenfocat)",
+       "exif-exposureprogram-8": "Mode paisatge (per fotos de paisatges amb el fons enfocat)",
+       "exif-subjectdistance-value": "$1 metres",
+       "exif-meteringmode-0": "Desconegut",
+       "exif-meteringmode-1": "Mitjana",
+       "exif-meteringmode-2": "Mesura central mitjana",
+       "exif-meteringmode-3": "Puntual",
+       "exif-meteringmode-4": "Multipuntual",
+       "exif-meteringmode-5": "Patró",
+       "exif-meteringmode-6": "Parcial",
+       "exif-meteringmode-255": "Altres",
+       "exif-lightsource-0": "Desconegut",
+       "exif-lightsource-1": "Llum de dia",
+       "exif-lightsource-2": "Fluorescent",
+       "exif-lightsource-3": "Tungstè (llum incandescent)",
+       "exif-lightsource-4": "Flaix",
+       "exif-lightsource-9": "Clar",
+       "exif-lightsource-10": "Ennuvolat",
+       "exif-lightsource-11": "Ombra",
+       "exif-lightsource-12": "Fluorescent de llum del dia (D 5700 – 7100K)",
+       "exif-lightsource-13": "Fluorescent de llum blanca (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fluorescent blanc fred (W 3900 – 4500K)",
+       "exif-lightsource-15": "Fluorescent blanc (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Llum estàndard A",
+       "exif-lightsource-18": "Llum estàndard B",
+       "exif-lightsource-19": "Llum estàndard C",
+       "exif-lightsource-24": "Bombeta de tungstè d'estudi ISO",
+       "exif-lightsource-255": "Una altra font de llum",
+       "exif-flash-fired-0": "No s'ha disparat el flaix",
+       "exif-flash-fired-1": "Flaix disparat",
+       "exif-flash-return-0": "no hi ha funció de detecció del retorn de la llum estroboscòpica",
+       "exif-flash-return-2": "no s'ha detectat retorn de llum estroboscòpica",
+       "exif-flash-return-3": "s'ha detectat retorn de llum estroboscòpica",
+       "exif-flash-mode-1": "disparada de flaix obligatòria",
+       "exif-flash-mode-2": "tret de flash suprimit",
+       "exif-flash-mode-3": "mode automàtic",
+       "exif-flash-function-1": "Sense funció de flaix",
+       "exif-flash-redeye-1": "reducció d'ulls vermells",
+       "exif-focalplaneresolutionunit-2": "polzades",
+       "exif-sensingmethod-1": "Indefinit",
+       "exif-sensingmethod-2": "Sensor d'àrea de color a un xip",
+       "exif-sensingmethod-3": "Sensor d'àrea de color a dos xips",
+       "exif-sensingmethod-4": "Sensor d'àrea de color a tres xips",
+       "exif-sensingmethod-5": "Sensor d'àrea de color per seqüències",
+       "exif-sensingmethod-7": "Sensor trilineal",
+       "exif-sensingmethod-8": "Sensor linear de color per seqüències",
+       "exif-filesource-3": "Càmera fotogràfica digital",
+       "exif-scenetype-1": "Una imatge fotografiada directament",
+       "exif-customrendered-0": "Procés normal",
+       "exif-customrendered-1": "Processament personalitzat",
+       "exif-exposuremode-0": "Exposició automàtica",
+       "exif-exposuremode-1": "Exposició manual",
+       "exif-exposuremode-2": "Bracketting automàtic",
+       "exif-whitebalance-0": "Balanç automàtic de blancs",
+       "exif-whitebalance-1": "Balanç manual de blancs",
+       "exif-scenecapturetype-0": "Estàndard",
+       "exif-scenecapturetype-1": "Paisatge",
+       "exif-scenecapturetype-2": "Retrat",
+       "exif-scenecapturetype-3": "Escena nocturna",
+       "exif-gaincontrol-0": "Cap",
+       "exif-gaincontrol-1": "Baix augment del guany",
+       "exif-gaincontrol-2": "Fort augment del guany",
+       "exif-gaincontrol-3": "Baixa reducció del guany",
+       "exif-gaincontrol-4": "Fort augment del guany",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Suau",
+       "exif-contrast-2": "Fort",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Baixa saturació",
+       "exif-saturation-2": "Alta saturació",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Suau",
+       "exif-sharpness-2": "Fort",
+       "exif-subjectdistancerange-0": "Desconeguda",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Subjecte a prop",
+       "exif-subjectdistancerange-3": "Subjecte lluny",
+       "exif-gpslatitude-n": "Latitud nord",
+       "exif-gpslatitude-s": "Latitud sud",
+       "exif-gpslongitude-e": "Longitud est",
+       "exif-gpslongitude-w": "Longitud oest",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metre|metres}} sobre el nivell del mar",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metre|metres}} sota el nivell del mar",
+       "exif-gpsstatus-a": "Mesura en curs",
+       "exif-gpsstatus-v": "Interoperabilitat de mesura",
+       "exif-gpsmeasuremode-2": "Mesura bidimensional",
+       "exif-gpsmeasuremode-3": "Mesura tridimensional",
+       "exif-gpsspeed-k": "Quilòmetres per hora",
+       "exif-gpsspeed-m": "Milles per hora",
+       "exif-gpsspeed-n": "Nusos",
+       "exif-gpsdestdistance-k": "Quilòmetres",
+       "exif-gpsdestdistance-m": "Milles",
+       "exif-gpsdestdistance-n": "Milles nàutiques",
+       "exif-gpsdop-excellent": "Excel·lent ($1)",
+       "exif-gpsdop-good": "Bona ($1)",
+       "exif-gpsdop-moderate": "Moderada ($1)",
+       "exif-gpsdop-fair": "Justa ($1)",
+       "exif-gpsdop-poor": "Pobra ($1)",
+       "exif-objectcycle-a": "Només al matí",
+       "exif-objectcycle-p": "Només al vespre",
+       "exif-objectcycle-b": "Tant al matí com al vespre",
+       "exif-gpsdirection-t": "Direcció real",
+       "exif-gpsdirection-m": "Direcció magnètica",
+       "exif-ycbcrpositioning-1": "Centrat",
+       "exif-ycbcrpositioning-2": "co-localitzats",
+       "exif-dc-contributor": "Col·laboradors",
+       "exif-dc-coverage": "Abast espacial o temporal del contingut",
+       "exif-dc-date": "Data(es)",
+       "exif-dc-publisher": "Editorial",
+       "exif-dc-relation": "Fitxers multimèdia relacionats",
+       "exif-dc-rights": "Drets",
+       "exif-dc-source": "Fitxer d'origen",
+       "exif-dc-type": "Tipus de contingut",
+       "exif-rating-rejected": "Rebutjat",
+       "exif-isospeedratings-overflow": "Superior a 65535",
+       "exif-iimcategory-ace": "Art, cultura i entreteniment",
+       "exif-iimcategory-clj": "Crim i dret",
+       "exif-iimcategory-dis": "Desastres i accidents",
+       "exif-iimcategory-fin": "Economia i negocis",
+       "exif-iimcategory-edu": "Educació",
+       "exif-iimcategory-evn": "Medi ambient",
+       "exif-iimcategory-hth": "Salut",
+       "exif-iimcategory-hum": "Interès humà",
+       "exif-iimcategory-lab": "Treball",
+       "exif-iimcategory-lif": "Estil de vida i d'oci",
+       "exif-iimcategory-pol": "Política",
+       "exif-iimcategory-rel": "Religió i creences",
+       "exif-iimcategory-sci": "Ciència i tecnologia",
+       "exif-iimcategory-soi": "Qüestions socials",
+       "exif-iimcategory-spo": "Esport",
+       "exif-iimcategory-war": "Guerra, conflictes i disturbis",
+       "exif-iimcategory-wea": "Meteorologia",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Baixa ($1)",
+       "exif-urgency-high": "Alta ($1)",
+       "exif-urgency-other": "Prioritat definida per l'usuari ($1)"
+}
diff --git a/languages/i18n/exif/ce.json b/languages/i18n/exif/ce.json
new file mode 100644 (file)
index 0000000..d132c91
--- /dev/null
@@ -0,0 +1,249 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Sasan700",
+                       "Исмаил Садуев",
+                       "Умар"
+               ]
+       },
+       "exif-imagewidth": "Шоралла",
+       "exif-imagelength": "Локхалла",
+       "exif-bitspersample": "Бесан кIоргалла",
+       "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": "Доладаларан кеп preview",
+       "exif-jpeginterchangeformatlength": "Сизан хааман барам preview",
+       "exif-whitepoint": "Къайн тӀадаман бос",
+       "exif-primarychromaticities": "Коьрта беснийн бос",
+       "exif-referenceblackwhite": "Ӏаьржа а, къай а тӀадамийн меттиг",
+       "exif-datetime": "Файлан хийцам бина терахь а, хан а",
+       "exif-imagedescription": "Суьртан цӏе",
+       "exif-make": "Камера арахоьцург",
+       "exif-model": "Камеран модель",
+       "exif-software": "Лелина программа",
+       "exif-artist": "Автор",
+       "exif-copyright": "Авторан бакъо ерг",
+       "exif-exifversion": "Верси Exif",
+       "exif-flashpixversion": "Ловш йолу верси FlashPix",
+       "exif-colorspace": "Беснийн меттиг",
+       "exif-componentsconfiguration": "Бесара компонентин конфигураци",
+       "exif-compressedbitsperpixel": "Бесан кӀоргалла дацдиначул - цхьаьна",
+       "exif-pixelxdimension": "Суьртан шоралла",
+       "exif-pixelydimension": "Суьртан локхалла",
+       "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-isospeedratings": "ISO серло хааялар",
+       "exif-shutterspeedvalue": "APEX чура дешнаш",
+       "exif-aperturevalue": "APEX чура оьз",
+       "exif-exposurebiasvalue": "Сурт доккхуш яла оьшу серло меттаяло",
+       "exif-maxaperturevalue": "Минимальни оьзан дукхалла",
+       "exif-meteringmode": "Сурт доккхуш яла серло юьстаран хьал",
+       "exif-lightsource": "Серло схьайолу меттиг",
+       "exif-flash": "Серлонан статус",
+       "exif-focallength": "Фокусни бохалла",
+       "exif-focalplanexresolution": "X магийна фокалан тӀапа",
+       "exif-focalplaneyresolution": "Y магийна фокалан тӀапа",
+       "exif-focalplaneresolutionunit": "Магоран фокалан дустар",
+       "exif-sensingmethod": "Сенсоран тайп",
+       "exif-filesource": "Файлан хьост",
+       "exif-scenetype": "Сценан тайпа",
+       "exif-customrendered": "Кхин тӀе кечдар",
+       "exif-exposuremode": "Сурт доккхуш йолу серлон хьал харжар",
+       "exif-whitebalance": "Къайн баланс",
+       "exif-digitalzoomratio": "Терхьаш дукха хиларан коэффициент",
+       "exif-scenecapturetype": "Сценан кеп",
+       "exif-contrast": "Къастам",
+       "exif-saturation": "Ӏаьбна",
+       "exif-sharpness": "Къаьсташ хилар",
+       "exif-devicesettingdescription": "Камеран хьолахь лаьцна",
+       "exif-subjectdistancerange": "Сурт тӀехь йолучун хӀуман юкъ",
+       "exif-imageuniqueid": "Суьртан номер (ID)",
+       "exif-gpslatituderef": "Шораллин индекс",
+       "exif-gpslatitude": "Шоралла",
+       "exif-gpslongituderef": "Дохаллин индекс",
+       "exif-gpslongitude": "Дохалла",
+       "exif-gpsaltituderef": "Локхаллин индекс",
+       "exif-gpsaltitude": "Локхалла",
+       "exif-gpstimestamp": "UTC-ца нийса хан",
+       "exif-gpsdestlatitude": "Объектан дохалла",
+       "exif-gpsdatestamp": "Терахь",
+       "exif-jpegfilecomment": "JPEG-файлан билгалдаккхар",
+       "exif-keywords": "Коьрта дешнаш",
+       "exif-countrycreated": "Мохк, сурт дин хилла болу",
+       "exif-citycreated": "ГӀала, сурт дина йолу",
+       "exif-objectname": "Йоцца цӀе",
+       "exif-specialinstructions": "Къаьсттина тӀехьажор",
+       "exif-headline": "Корта",
+       "exif-credit": "Кхоьхьург, хьа делла сурт",
+       "exif-source": "Хьост",
+       "exif-urgency": "Керлачу хенахь",
+       "exif-fixtureidentifier": "МогӀан цӀе",
+       "exif-locationdest": "Сурт тӀера меттиг",
+       "exif-locationdestcode": "Сурт тӀера меттиган код",
+       "exif-contact": "Контактан хаам",
+       "exif-writer": "Йозан автор",
+       "exif-languagecode": "Мотт",
+       "exif-iimversion": "Верси IIM",
+       "exif-iimcategory": "Категори",
+       "exif-iimsupplementalcategory": "Кхин тӀе категореш",
+       "exif-datetimeexpires": "Ма лелае тӀехьа",
+       "exif-datetimereleased": "Араяларан терахь",
+       "exif-originaltransmissionref": "ДӀадолалун меттиган код",
+       "exif-identifier": "ID",
+       "exif-lens": "ID",
+       "exif-serialnumber": "Камеран серин номер",
+       "exif-cameraownername": "Камера ерг",
+       "exif-label": "Билгало",
+       "exif-datetimemetadata": "ТӀаьххьара метахаамаш хийцина терахь",
+       "exif-nickname": "ЧӀагӀъелла йоцу суьртан цӀе",
+       "exif-rating": "Мах хадор (5 нах)",
+       "exif-rightscertificate": "Бакъонийн урхалладаран сертификат",
+       "exif-copyrighted": "Авторийн-бакъонийн статус:",
+       "exif-copyrightowner": "Авторийн бакъонаш ерг",
+       "exif-usageterms": "Лелоран хьал",
+       "exif-webstatement": "Интернет чохь долу авторийн бакъонийн хьал",
+       "exif-originaldocumentid": "ДӀадолалун документан ша тайпа ID",
+       "exif-licenseurl": "Авторийн лицензин URL",
+       "exif-morepermissionsurl": "Альтернативан лицензин хаам",
+       "exif-pngfilecomment": "PNG-файлан билгалдаккхар",
+       "exif-disclaimer": "Жоьпалла тӀецалацар",
+       "exif-contentwarning": "Чулацамах лаьцна дӀахьедар",
+       "exif-giffilecomment": "GIF-файлан билгалдаккхар",
+       "exif-intellectualgenre": "ХӀуман тайп",
+       "exif-subjectnewscode": "Теман код",
+       "exif-scenecode": "IPTC сценан код",
+       "exif-event": "Сурт тӀе даьккхина хиларг",
+       "exif-organisationinimage": "Сурт тӀера организаци",
+       "exif-personinimage": "Сурт тӀера адам",
+       "exif-compression-1": "ТIеIовдан яц",
+       "exif-copyrighted-false": "Юкъараллин хьал",
+       "exif-unknowndate": "Хууш доцу терахь",
+       "exif-orientation-1": "Лартӏахь",
+       "exif-xyresolution-i": "$1 тӏадамаш дюйман",
+       "exif-xyresolution-c": "$1 тӀадамаш сантиметрна",
+       "exif-exposureprogram-1": "Куьйгаца",
+       "exif-exposureprogram-2": "Программин раж (лартӀахь)",
+       "exif-subjectdistance-value": "$1 {{PLURAL:$1|метр}}",
+       "exif-meteringmode-0": "Хууш дац",
+       "exif-meteringmode-1": "Юкъара",
+       "exif-meteringmode-2": "Юкъахь леррина",
+       "exif-meteringmode-3": "Билгала",
+       "exif-meteringmode-4": "Мульти билгала",
+       "exif-meteringmode-5": "Матрин",
+       "exif-meteringmode-6": "Ах",
+       "exif-meteringmode-255": "Кхиерг",
+       "exif-lightsource-0": "Хууш дац",
+       "exif-lightsource-1": "Ден хьехам",
+       "exif-lightsource-2": "Дена серлонан чиркх",
+       "exif-lightsource-4": "Серло",
+       "exif-lightsource-9": "Хаза хенан хӀоттам",
+       "exif-lightsource-10": "Мархаш йолу",
+       "exif-lightsource-11": "ӀиндагӀ",
+       "exif-flash-fired-1": "Йолаелла я́лар",
+       "exif-flash-mode-3": "авто хьал",
+       "exif-flash-function-1": "Серло яц",
+       "exif-focalplaneresolutionunit-2": "дюйм",
+       "exif-sensingmethod-1": "Билгала ца йинарг",
+       "exif-filesource-3": "Терахьийн суртдокху аппарат",
+       "exif-scenetype-1": "Сурт даьккхина нис дуьххьал",
+       "exif-customrendered-0": "ХӀума дина дац",
+       "exif-customrendered-1": "Нийса доцу кечдар",
+       "exif-whitebalance-0": "Къайн автоматически баланс",
+       "exif-whitebalance-1": "Куьйга хӀоттийна къайн баланс",
+       "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-saturation-0": "Лартӏахь",
+       "exif-saturation-1": "КӀезиг Ӏаьбна",
+       "exif-saturation-2": "Докха Ӏаьбна",
+       "exif-sharpness-0": "Лартӏахь",
+       "exif-sharpness-1": "КӀеда айина",
+       "exif-sharpness-2": "ЧӀогӀа айина",
+       "exif-subjectdistancerange-0": "Хууш дац",
+       "exif-subjectdistancerange-1": "Макро сурт даккхар",
+       "exif-subjectdistancerange-2": "Уллера сурт даккхар",
+       "exif-subjectdistancerange-3": "Генара сурт даккхар",
+       "exif-gpslatitude-n": "къилбседера шоралла",
+       "exif-gpslatitude-s": "къилбера шоралла",
+       "exif-gpslongitude-e": "малхбалера дохалла",
+       "exif-gpslongitude-w": "малхбузера шоралла",
+       "exif-gpsaltitude-above-sealevel": "Хи хIоттарал локхалла $1 {{PLURAL:$1|метр}}",
+       "exif-gpsaltitude-below-sealevel": "Хи хIоттарал локхаллин $1 {{PLURAL:$1|метр}} лахахь",
+       "exif-gpsstatus-a": "Дустар чекх даьлла дац",
+       "exif-gpsstatus-v": "Хаам дӀабала кичча ю",
+       "exif-gpsmeasuremode-2": "Дустар 2-х координаташ",
+       "exif-gpsmeasuremode-3": "Дустар 3-х координаташ",
+       "exif-gpsspeed-k": "км/сахьтехь",
+       "exif-gpsspeed-m": "миль/сахьтехь",
+       "exif-gpsspeed-n": "шеддаш",
+       "exif-gpsdestdistance-k": "Километр",
+       "exif-gpsdestdistance-m": "Миль",
+       "exif-gpsdestdistance-n": "ХӀордаца йолу миль",
+       "exif-gpsdop-excellent": "Дика ($1)",
+       "exif-gpsdop-good": "Хаза ($1)",
+       "exif-gpsdop-moderate": "Юкъара ($1)",
+       "exif-gpsdop-fair": "Юкъарал лахара ($1)",
+       "exif-gpsdop-poor": "Во ($1)",
+       "exif-objectcycle-a": "Ӏуьранна бен",
+       "exif-objectcycle-p": "Суьйранна бен",
+       "exif-objectcycle-b": "Ӏуьранна а, суьйранна а",
+       "exif-gpsdirection-t": "бакъалла",
+       "exif-gpsdirection-m": "магнитан",
+       "exif-ycbcrpositioning-1": "Юкъйина",
+       "exif-ycbcrpositioning-2": "CO-sited",
+       "exif-dc-contributor": "Дакъалаьцнарг",
+       "exif-dc-date": "Терахь(ш)",
+       "exif-dc-publisher": "Арахецархо",
+       "exif-dc-relation": "Йихкина медиа",
+       "exif-dc-rights": "Бакъонаш",
+       "exif-dc-source": "ДӀайолалун медиа",
+       "exif-dc-type": "Медиан тайп",
+       "exif-rating-rejected": "ДӀайайина",
+       "exif-isospeedratings-overflow": "65535 дукха",
+       "exif-iimcategory-ace": "Исбаьхьалла, культура а, синкъерам а",
+       "exif-iimcategory-clj": "Зулам дар а, Ӏедал а",
+       "exif-iimcategory-dis": "Ирча бохам а, авари а",
+       "exif-iimcategory-fin": "Экономика а, бизнес а",
+       "exif-iimcategory-edu": "Дешна хилар",
+       "exif-iimcategory-evn": "Гонахе",
+       "exif-iimcategory-hth": "Могшалла",
+       "exif-iimcategory-lab": "Къинхьегам",
+       "exif-iimcategory-pol": "Политика",
+       "exif-iimcategory-rel": "Дин а, тешар а",
+       "exif-iimcategory-sci": "Ӏилма а, техника а",
+       "exif-iimcategory-soi": "Социалан хаттарш",
+       "exif-iimcategory-spo": "Спорт",
+       "exif-iimcategory-wea": "Хенан хӀоттам",
+       "exif-urgency-normal": "Диканиг ($1)",
+       "exif-urgency-low": "Лахара ($1)",
+       "exif-urgency-high": "Лакхара ($1)",
+       "exif-urgency-other": "Декъашхочо билгалйина приоритет ($1)"
+}
diff --git a/languages/i18n/exif/ckb.json b/languages/i18n/exif/ckb.json
new file mode 100644 (file)
index 0000000..ec8327e
--- /dev/null
@@ -0,0 +1,213 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Arastein",
+                       "Asoxor",
+                       "Calak",
+                       "Diyar se",
+                       "Haval",
+                       "Marmzok",
+                       "Muhammed taha",
+                       "Épine"
+               ]
+       },
+       "exif-imagewidth": "پانی",
+       "exif-imagelength": "بەرزی",
+       "exif-orientation": "ئاڕاستە",
+       "exif-ycbcrpositioning": "شوێنی Y و C",
+       "exif-xresolution": "شێوازی ئاسۆیی",
+       "exif-yresolution": "شێوازی ستوونی",
+       "exif-datetime": "ڕێکەوتی و کاتی گۆڕانی پەڕگە",
+       "exif-imagedescription": "ناونیشانی وێنە",
+       "exif-make": "بەرھەمھێنەری کامێرا",
+       "exif-model": "جۆری کامێرا",
+       "exif-software": "نەرمەواڵەی بەکارهاتوو",
+       "exif-artist": "نووسەر",
+       "exif-copyright": "ھەڵگری مۆڵەتنامە",
+       "exif-exifversion": "وەشانی exif",
+       "exif-colorspace": "بۆشایی ره‌نگ",
+       "exif-pixelxdimension": "پانی وێنە",
+       "exif-pixelydimension": "بەرزی وێنە",
+       "exif-usercomment": "بۆچوونەکانی بەکارھێنەر",
+       "exif-relatedsoundfile": "فایلی ده‌نگی لێکچوو",
+       "exif-datetimeoriginal": "ڕێکەوت و کاتی بەرھەمھێنانی داتا",
+       "exif-datetimedigitized": "ڕێکەوت و کاتی بە دیجیتاڵی کردن",
+       "exif-exposuretime-format": "$1 چرکە ($2)",
+       "exif-fnumber": "ڕێژەی ئێف",
+       "exif-lightsource": "سەرچاوەی ڕووناکی",
+       "exif-flash": "فلاش",
+       "exif-subjectlocation": "شوێنی ناسکار",
+       "exif-filesource": "سەرچاوەی پەڕگە",
+       "exif-saturation": "تێربوون",
+       "exif-gpslatitude": "پانی",
+       "exif-gpslongitude": "درێژی",
+       "exif-gpsaltitude": "بەرزایی",
+       "exif-gpstimestamp": "کاتی GPS (سەعاتی ئەتۆمی)",
+       "exif-gpssatellites": "سەتەلایتەکانی بەکارگیراو بۆ پێوان",
+       "exif-gpsmeasuremode": "جۆری پێوان",
+       "exif-gpsdop": "وردی پێوان",
+       "exif-gpsspeedref": "یەکەی خێرایی",
+       "exif-gpsspeed": "خێرایی وەرگری GPS",
+       "exif-gpstrack": "ئاڕاستەی جوڵان",
+       "exif-gpsimgdirection": "ئاڕاستەی وێنە",
+       "exif-gpsareainformation": "ناوی ناوچەی GPS",
+       "exif-gpsdatestamp": "ڕێکەوتی GPS",
+       "exif-jpegfilecomment": "تێبینیی پەڕگەی JPEG",
+       "exif-worldregioncreated": "ناوچەی جیھانێک کە وێنەکە تێیدا گیراوە",
+       "exif-countrycreated": "وڵاتێک کە وێنەکە تێیدا گیراوە",
+       "exif-citycreated": "شارێک کە وێنەکە تێیدا گیراوە",
+       "exif-worldregiondest": "ناوچەی جیھانی نیشان دراو",
+       "exif-countrydest": "وڵاتی نیشان دراو",
+       "exif-countrycodedest": "کۆدی وڵاتی نیشان دراو",
+       "exif-provinceorstatedest": "پارێزگا یان ویلایەتی نیشان دراو",
+       "exif-citydest": "شاری نیشان دراو",
+       "exif-objectname": "سەردێڕی کورت",
+       "exif-specialinstructions": "ڕیسای کاری تایبەت",
+       "exif-headline": "سەردێڕ",
+       "exif-source": "سەرچاوە",
+       "exif-contact": "زانیاری پەیوەندیکردن",
+       "exif-writer": "نووسەر",
+       "exif-languagecode": "زمان",
+       "exif-iimversion": "وەشانی IIM",
+       "exif-iimcategory": "پۆل",
+       "exif-lens": "لێنزی بەکارگیراو",
+       "exif-serialnumber": "ژمارە زنجیرەی کامێرا",
+       "exif-cameraownername": "خاوەنی کامێرا",
+       "exif-rating": "تازیاری (لە ٥)",
+       "exif-copyrighted": "ڕەوشی مافی لەبەرگرتنەوە",
+       "exif-copyrightowner": "خاوەنی مافی بڵاوکردنەوە",
+       "exif-usageterms": "مەرجەکانی بەکارھێنان",
+       "exif-attributionurl": "لەکاتی بەکارھێنانی ئەم کارە، تکایە بەستەر بدە بۆ",
+       "exif-preferredattributionname": "لەکاتی بەکارھێنانی ئەم کارە، تکایە ئاماژە بکە بە",
+       "exif-pngfilecomment": "تێبینیی پەڕگەی PNG",
+       "exif-disclaimer": "نابەرپرسییەکان",
+       "exif-contentwarning": "ھۆشداری ناوەرۆک",
+       "exif-giffilecomment": "تێبینیی پەڕگەی GIF",
+       "exif-intellectualgenre": "جۆری بابەت",
+       "exif-subjectnewscode": "کۆدی بابەت",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "نەپەستێنراو",
+       "exif-copyrighted-true": "خاوەنی مافی بڵاوکردنەوە",
+       "exif-copyrighted-false": "ڕەوشی مافی لەبەرگرتنەوە دیاری نەکراوە",
+       "exif-photometricinterpretation-1": "ڕەش و سپی (ڕەش ٠)",
+       "exif-unknowndate": "ڕێکەوتی نەزانراو",
+       "exif-orientation-1": "ئاسایی",
+       "exif-orientation-2": "ئاسۆیی هەڵگێڕدراوەتەوە",
+       "exif-orientation-3": "١٨٠° سوڕاوەتەوە",
+       "exif-orientation-4": "ستوونی هەڵگێڕدراوەتەوە",
+       "exif-componentsconfiguration-0": "بوونی نییە",
+       "exif-exposureprogram-0": "پێناسە نەکراوە",
+       "exif-exposureprogram-1": "دەستکار",
+       "exif-exposureprogram-2": "بەرنامەی ئاسایی",
+       "exif-subjectdistance-value": "$1 مەتر",
+       "exif-meteringmode-0": "نەزانراو",
+       "exif-meteringmode-1": "تێکڕا",
+       "exif-meteringmode-5": "شێوە",
+       "exif-meteringmode-6": "بەش بەش",
+       "exif-meteringmode-255": "هیتر",
+       "exif-lightsource-0": "نەزانراو",
+       "exif-lightsource-1": "ڕووناکی ڕۆژ",
+       "exif-lightsource-2": "فلۆرسەنت",
+       "exif-lightsource-3": "تانگەستەن",
+       "exif-lightsource-4": "فلاش",
+       "exif-lightsource-9": "ئاسمانی ڕوون",
+       "exif-lightsource-10": "ئاسمانی هەوری",
+       "exif-lightsource-11": "سێبەر",
+       "exif-lightsource-12": "فلۆرسەنتی ڕووناکیی‌ڕۆژ (D 5700 – 7100K)",
+       "exif-lightsource-13": "فلۆرسەنتی سپیی ڕۆژ (N 4600 – 5400K)",
+       "exif-lightsource-14": "فلۆرسەنتی سپیی فێنک (W 3900 – 4500K)",
+       "exif-lightsource-15": "فلۆرسەنتی سپی (WW 3200 – 3700K)",
+       "exif-lightsource-17": "ڕووناکی ستانداردی A",
+       "exif-lightsource-18": "ڕووناکی ستانداردی B",
+       "exif-lightsource-19": "ڕووناکی ستانداردی C",
+       "exif-lightsource-24": "ISOـی تانگەستەنی ستۆدیۆ",
+       "exif-lightsource-255": "سەرچاوەی دیکە ڕووناکی",
+       "exif-flash-fired-0": "فلاش کاری نەکرد",
+       "exif-flash-fired-1": "فلاش کاری کرد",
+       "exif-flash-return-0": "فەنکشێنی بینینەوەی گەڕانەوەی ڕووناکی فلاش نیە",
+       "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-sensingmethod-7": "هەستەوەری سێ‌هێڵی",
+       "exif-sensingmethod-8": "هەستەوەری هێڵی ڕەنگی زنجیری",
+       "exif-scenetype-1": "وێنەیەکی ڕاستەوخۆ وێنەگیراو",
+       "exif-customrendered-0": "پرۆسەی ئاسایی",
+       "exif-customrendered-1": "پرۆسەی دڵخواز",
+       "exif-exposuremode-0": "بەرچاو خستنی خۆکار",
+       "exif-exposuremode-1": "بەرچاو خستنی دەستی",
+       "exif-exposuremode-2": "زنجیرە گرتنی خۆکار",
+       "exif-whitebalance-0": "خۆکار یەکسان‌کردنی سپیایی",
+       "exif-whitebalance-1": "دەستی یەکسان‌کردنی سپیایی",
+       "exif-scenecapturetype-0": "ستاندارد",
+       "exif-scenecapturetype-1": "دیمەن",
+       "exif-scenecapturetype-2": "پۆرترە",
+       "exif-scenecapturetype-3": "وێنەی شەو",
+       "exif-gaincontrol-0": "هیچ",
+       "exif-contrast-0": "ئاسایی",
+       "exif-contrast-1": "نەرم",
+       "exif-contrast-2": "ڕەق",
+       "exif-saturation-0": "ئاسایی",
+       "exif-saturation-1": "تێرکردنی کەم",
+       "exif-saturation-2": "تێرکردنی زۆر",
+       "exif-sharpness-0": "ئاسایی",
+       "exif-sharpness-1": "نەرم",
+       "exif-sharpness-2": "ڕەق",
+       "exif-subjectdistancerange-0": "نەزانراو",
+       "exif-subjectdistancerange-1": "گەورە",
+       "exif-subjectdistancerange-2": "دیمەنی نزیک",
+       "exif-subjectdistancerange-3": "دیمەنی دوور",
+       "exif-gpslatitude-n": "پانیی جوگرافیایی باکوور",
+       "exif-gpslatitude-s": "پانیی جوگرافیایی باشوور",
+       "exif-gpslongitude-e": "پانیی جوگرافیایی ڕۆژهەڵات",
+       "exif-gpslongitude-w": "پانیی جوگرافیایی ڕۆژئاوا",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|مەتر}} بەرزتر لە ئاستی زەریا",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|مەتر}} نزمتر لە ئاستی زەریا",
+       "exif-gpsspeed-k": "کیلۆمەتر هەر کاتژمێر",
+       "exif-gpsspeed-m": "مایل هەر کاتژمێر",
+       "exif-gpsdestdistance-k": "کیلۆمەتر",
+       "exif-gpsdestdistance-m": "میل",
+       "exif-gpsdestdistance-n": "میکی دەریایی",
+       "exif-gpsdop-excellent": "نایابە ($1)",
+       "exif-gpsdop-good": "چاک ($1)",
+       "exif-gpsdop-moderate": "مامناوەندە ($1)",
+       "exif-gpsdop-fair": "ئاساییە ($1)",
+       "exif-gpsdop-poor": "ھەژارە ($1)",
+       "exif-objectcycle-a": "تەنیا بەیانان",
+       "exif-objectcycle-p": "تەنیا ئێواران",
+       "exif-objectcycle-b": "بەیانان و ئێواران",
+       "exif-gpsdirection-t": "لای دروست",
+       "exif-dc-contributor": "بەشداربووان",
+       "exif-dc-date": "ڕۆژ(ەکان)",
+       "exif-dc-publisher": "بڵاوکار",
+       "exif-dc-relation": "میدیای پەیوەندیدار",
+       "exif-dc-rights": "مافەکان",
+       "exif-dc-source": "سەرچاوەی میدیا",
+       "exif-dc-type": "جۆری میدیا",
+       "exif-rating-rejected": "ڕەت کراوە",
+       "exif-isospeedratings-overflow": "گەورەتر لە ٦٥٥٣٥",
+       "exif-iimcategory-ace": "ھونەر، چاند و تاوژین",
+       "exif-iimcategory-fin": "ئابووری و بازرگانی",
+       "exif-iimcategory-edu": "فێرکاری",
+       "exif-iimcategory-evn": "ژینگە",
+       "exif-iimcategory-hth": "تەندروستی",
+       "exif-iimcategory-lab": "کار",
+       "exif-iimcategory-pol": "سیاسەت",
+       "exif-iimcategory-rel": "ئایین و باوەڕ",
+       "exif-iimcategory-sci": "زانست و تەکنۆلۆژیا",
+       "exif-iimcategory-soi": "بابەتە کۆمەڵایەتییەکان",
+       "exif-iimcategory-spo": "وەرزشەکان",
+       "exif-iimcategory-wea": "کەش و ھەوا",
+       "exif-urgency-normal": "ئاسایی ($1)",
+       "exif-urgency-low": "کەم ($1)",
+       "exif-urgency-high": "زۆر ($1)"
+}
diff --git a/languages/i18n/exif/cs.json b/languages/i18n/exif/cs.json
new file mode 100644 (file)
index 0000000..8bb3f07
--- /dev/null
@@ -0,0 +1,357 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Jkjk",
+                       "Li-sung",
+                       "LordMsz",
+                       "Matěj Suchánek",
+                       "Mormegil"
+               ]
+       },
+       "exif-imagewidth": "Šířka",
+       "exif-imagelength": "Výška",
+       "exif-bitspersample": "Bitů na složku",
+       "exif-compression": "Druh komprese",
+       "exif-photometricinterpretation": "Barevný prostor",
+       "exif-orientation": "Orientace",
+       "exif-samplesperpixel": "Počet složek",
+       "exif-planarconfiguration": "Uspořádání dat",
+       "exif-ycbcrsubsampling": "Poměr podvzorkování Y ku C",
+       "exif-ycbcrpositioning": "Umístění Y a C",
+       "exif-xresolution": "Rozlišení obrázku na šířku",
+       "exif-yresolution": "Rozlišení obrázku na výšku",
+       "exif-stripoffsets": "Umístění dat obrázku",
+       "exif-rowsperstrip": "Počet řádků na pás",
+       "exif-stripbytecounts": "Počet bajtů na komprimovaný pás",
+       "exif-jpeginterchangeformat": "Ofset k JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Počet bajtů JPEG dat",
+       "exif-whitepoint": "Chroma bílého bodu",
+       "exif-primarychromaticities": "Chroma primárních barev",
+       "exif-ycbcrcoefficients": "Koeficienty matice pro transformaci barevných prostorů",
+       "exif-referenceblackwhite": "Světlost referenčního černého a bílého bodu",
+       "exif-datetime": "Datum a čas vytvoření obrázku",
+       "exif-imagedescription": "Název obrázku",
+       "exif-make": "Značka fotoaparátu",
+       "exif-model": "Model fotoaparátu",
+       "exif-software": "Použitý software",
+       "exif-artist": "Autor",
+       "exif-copyright": "Držitel autorských práv",
+       "exif-exifversion": "Verze Exif",
+       "exif-flashpixversion": "Podporovaná verze Flashpix",
+       "exif-colorspace": "Barevný prostor",
+       "exif-componentsconfiguration": "Význam jednotlivých složek",
+       "exif-compressedbitsperpixel": "Komprimační režim",
+       "exif-pixelxdimension": "Šířka obrázku",
+       "exif-pixelydimension": "Výška obrázku",
+       "exif-usercomment": "Uživatelské poznámky",
+       "exif-relatedsoundfile": "Související zvukový soubor",
+       "exif-datetimeoriginal": "Datum a čas pořízení obrázku",
+       "exif-datetimedigitized": "Datum a čas digitalizace",
+       "exif-subsectime": "zlomky sekundy pro DateTime",
+       "exif-subsectimeoriginal": "zlomky sekundy pro DateTimeOriginal",
+       "exif-subsectimedigitized": "zlomky sekundy pro DateTimeDigitized",
+       "exif-exposuretime": "Expozice",
+       "exif-exposuretime-format": "$1 s ($2)",
+       "exif-fnumber": "Clona",
+       "exif-exposureprogram": "Expoziční program",
+       "exif-spectralsensitivity": "Spektrální citlivost",
+       "exif-isospeedratings": "Nastavení ISO citlivosti",
+       "exif-shutterspeedvalue": "Expoziční čas (APEX)",
+       "exif-aperturevalue": "Clona (APEX)",
+       "exif-brightnessvalue": "Jas (APEX)",
+       "exif-exposurebiasvalue": "Změna expozice",
+       "exif-maxaperturevalue": "Nejmenší clona",
+       "exif-subjectdistance": "Vzdálenost k předmětu",
+       "exif-meteringmode": "Způsob měření",
+       "exif-lightsource": "Světelný zdroj",
+       "exif-flash": "Blesk",
+       "exif-focallength": "Ohnisková vzdálenost",
+       "exif-subjectarea": "Umístění předmětu",
+       "exif-flashenergy": "Výkon blesku",
+       "exif-focalplanexresolution": "X rozlišení ohniskové roviny",
+       "exif-focalplaneyresolution": "Y rozlišení ohniskové roviny",
+       "exif-focalplaneresolutionunit": "Jednotka rozlišení ohniskové roviny",
+       "exif-subjectlocation": "Umístění předmětu",
+       "exif-exposureindex": "Expoziční index",
+       "exif-sensingmethod": "Senzor",
+       "exif-filesource": "Zdroj souboru",
+       "exif-scenetype": "Druh scény",
+       "exif-customrendered": "Uživatelské zpracování",
+       "exif-exposuremode": "Expoziční režim",
+       "exif-whitebalance": "Vyvážení bílé",
+       "exif-digitalzoomratio": "Digitální zoom",
+       "exif-focallengthin35mmfilm": "Ekvivalent ohniskové délky pro 35mm film",
+       "exif-scenecapturetype": "Druh scény",
+       "exif-gaincontrol": "Úprava světlosti",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Sytost",
+       "exif-sharpness": "Ostrost",
+       "exif-devicesettingdescription": "Popis nastavení zařízení",
+       "exif-subjectdistancerange": "Vzdálenost od předmětu",
+       "exif-imageuniqueid": "Unikátní ID obrázku",
+       "exif-gpsversionid": "Verze GPS tagu",
+       "exif-gpslatituderef": "Severní/jižní zeměpisná šířka",
+       "exif-gpslatitude": "Zeměpisná šířka",
+       "exif-gpslongituderef": "Východní/západní zeměpisná délka",
+       "exif-gpslongitude": "Zeměpisná délka",
+       "exif-gpsaltituderef": "Nad/podmořská výška/hloubka",
+       "exif-gpsaltitude": "Nadmořská výška",
+       "exif-gpstimestamp": "GPS čas (podle atomových hodin)",
+       "exif-gpssatellites": "Satelity použité pro měření",
+       "exif-gpsstatus": "Stav přijímače",
+       "exif-gpsmeasuremode": "Režim měření",
+       "exif-gpsdop": "Přesnost měření",
+       "exif-gpsspeedref": "Jednotka rychlosti",
+       "exif-gpsspeed": "Rychlost GPS přijímače",
+       "exif-gpstrackref": "Reference pro směr pohybu",
+       "exif-gpstrack": "Směr pohybu",
+       "exif-gpsimgdirectionref": "Reference pro orientaci obrázku",
+       "exif-gpsimgdirection": "Orientace obrázku",
+       "exif-gpsmapdatum": "Použitý geodetický systém",
+       "exif-gpsdestlatituderef": "Severní/jižní zeměpisná šířka předmětu",
+       "exif-gpsdestlatitude": "Zeměpisná šířka předmětu",
+       "exif-gpsdestlongituderef": "Východní/západní zeměpisná délka předmětu",
+       "exif-gpsdestlongitude": "Zeměpisná délka předmětu",
+       "exif-gpsdestbearingref": "Reference pro směr k předmětu",
+       "exif-gpsdestbearing": "Směr k předmětu",
+       "exif-gpsdestdistanceref": "Jednotka vzdálenosti od předmětu",
+       "exif-gpsdestdistance": "Vzdálenost od předmětu",
+       "exif-gpsprocessingmethod": "Označení metody zpracování GPS dat",
+       "exif-gpsareainformation": "Označení GPS oblasti",
+       "exif-gpsdatestamp": "Datum podle GPS",
+       "exif-gpsdifferential": "Diferenciální korekce GPS",
+       "exif-jpegfilecomment": "Poznámky ze souboru JPEG",
+       "exif-keywords": "Klíčová slova",
+       "exif-worldregioncreated": "Část světa, ve které byl snímek pořízen",
+       "exif-countrycreated": "Země, ve které byl snímek pořízen",
+       "exif-countrycodecreated": "Kód země, ve které byl snímek pořízen",
+       "exif-provinceorstatecreated": "Provincie nebo stát, kde byl snímek pořízen",
+       "exif-citycreated": "Město, ve kterém byl snímek pořízen",
+       "exif-sublocationcreated": "Část města, ve které byl snímek pořízen",
+       "exif-worldregiondest": "Zobrazená část světa",
+       "exif-countrydest": "Zobrazená země",
+       "exif-countrycodedest": "Kód zobrazené země",
+       "exif-provinceorstatedest": "Zobrazená provincie nebo stát",
+       "exif-citydest": "Zobrazené město",
+       "exif-sublocationdest": "Zobrazená část města",
+       "exif-objectname": "Krátký název",
+       "exif-specialinstructions": "Zvláštní pokyny",
+       "exif-headline": "Nadpis",
+       "exif-credit": "Zdroj/poskytovatel",
+       "exif-source": "Zdroj",
+       "exif-editstatus": "Redakční stav obrázku",
+       "exif-urgency": "Spěšnost",
+       "exif-fixtureidentifier": "Název pořadu",
+       "exif-locationdest": "Zobrazené místo",
+       "exif-locationdestcode": "Kód zobrazeného místa",
+       "exif-objectcycle": "Denní doba, pro kterou je soubor určen",
+       "exif-contact": "Kontaktní údaje",
+       "exif-writer": "Autor popisu",
+       "exif-languagecode": "Jazyk",
+       "exif-iimversion": "Verze IIM",
+       "exif-iimcategory": "Kategorie",
+       "exif-iimsupplementalcategory": "Doplňkové kategorie",
+       "exif-datetimeexpires": "Nepoužívat po",
+       "exif-datetimereleased": "K použití od",
+       "exif-originaltransmissionref": "Kód pro dohledání původního přenosu",
+       "exif-identifier": "Identifikátor",
+       "exif-lens": "Použitý objektiv",
+       "exif-serialnumber": "Sériové číslo přístroje",
+       "exif-cameraownername": "Majitel přístroje",
+       "exif-label": "Štítek",
+       "exif-datetimemetadata": "Datum poslední úpravy metadat",
+       "exif-nickname": "Neformální název obrázku",
+       "exif-rating": "Hodnocení (1–5)",
+       "exif-rightscertificate": "Certifikát řízení práv",
+       "exif-copyrighted": "Stav autorských práv",
+       "exif-copyrightowner": "Držitel autorských práv",
+       "exif-usageterms": "Podmínky užití",
+       "exif-webstatement": "Online informace o autorských právech",
+       "exif-originaldocumentid": "Unikátní ID původního dokumentu",
+       "exif-licenseurl": "URL licence",
+       "exif-morepermissionsurl": "Informace o jiném licencování",
+       "exif-attributionurl": "Pokud užíváte toto dílo, uveďte odkaz",
+       "exif-preferredattributionname": "Pokud užíváte toto dílo, uveďte jako autora",
+       "exif-pngfilecomment": "Poznámky ze souboru PNG",
+       "exif-disclaimer": "Vyloučení odpovědnosti",
+       "exif-contentwarning": "Upozornění k obsahu",
+       "exif-giffilecomment": "Poznámky ze souboru GIF",
+       "exif-intellectualgenre": "Typ položky",
+       "exif-subjectnewscode": "Kód tématu",
+       "exif-scenecode": "IPTC kód záběru",
+       "exif-event": "Zobrazená událost",
+       "exif-organisationinimage": "Zobrazená organizace",
+       "exif-personinimage": "Zobrazená osoba",
+       "exif-originalimageheight": "Výška obrázku před oříznutím",
+       "exif-originalimagewidth": "Šířka obrázku před oříznutím",
+       "exif-compression-1": "Nekomprimovaný",
+       "exif-compression-2": "1rozměrné modifikované Huffmanovo kódování délky běhu CCITT Group 3",
+       "exif-compression-3": "Kódování faxů CCITT Group 3",
+       "exif-compression-4": "Kódování faxů CCITT Group 4",
+       "exif-compression-6": "JPEG (starý)",
+       "exif-copyrighted-true": "Chráněno autorským právem",
+       "exif-copyrighted-false": "Bez informací o autorských právech",
+       "exif-photometricinterpretation-0": "Černobílá (bílá je 0)",
+       "exif-photometricinterpretation-1": "Černobílá (černá je 0)",
+       "exif-photometricinterpretation-3": "Paleta",
+       "exif-photometricinterpretation-4": "Maska průhlednosti",
+       "exif-photometricinterpretation-5": "Separované (pravděpodobně CMYK)",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (kódování ICC)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (kódování ITU)",
+       "exif-unknowndate": "neznámé datum",
+       "exif-orientation-1": "Normální",
+       "exif-orientation-2": "Vodorovně převráceno",
+       "exif-orientation-3": "Otočeno o 180°",
+       "exif-orientation-4": "Svisle převráceno",
+       "exif-orientation-5": "Otočeno o 90° proti směru hodinových ručiček a svisle převráceno",
+       "exif-orientation-6": "Otočeno o 90° proti směru hodinových ručiček",
+       "exif-orientation-7": "Otočeno o 90° ve směru hodinových ručiček a svisle převráceno",
+       "exif-orientation-8": "Otočeno o 90° po směru hodinových ručiček",
+       "exif-planarconfiguration-1": "chunky",
+       "exif-planarconfiguration-2": "planar",
+       "exif-colorspace-65535": "Nekalibrováno",
+       "exif-componentsconfiguration-0": "neexistuje",
+       "exif-exposureprogram-0": "Neuvedeno",
+       "exif-exposureprogram-1": "Ruční",
+       "exif-exposureprogram-2": "Normální",
+       "exif-exposureprogram-3": "Priorita clony",
+       "exif-exposureprogram-4": "Priorita závěrky",
+       "exif-exposureprogram-5": "Kreativní (lepší hloubka ostrosti)",
+       "exif-exposureprogram-6": "Akce (rychlejší závěrka)",
+       "exif-exposureprogram-7": "Portrét (detailní fotografie s neostrým pozadím)",
+       "exif-exposureprogram-8": "Krajina (fotografie krajiny s ostrým pozadím)",
+       "exif-subjectdistance-value": "$1 m",
+       "exif-meteringmode-0": "Není známo",
+       "exif-meteringmode-1": "Průměrové",
+       "exif-meteringmode-2": "Vážený průměr",
+       "exif-meteringmode-3": "Bodové",
+       "exif-meteringmode-4": "Zónové",
+       "exif-meteringmode-5": "Vzorkové",
+       "exif-meteringmode-6": "Částečné",
+       "exif-meteringmode-255": "Jiné",
+       "exif-lightsource-0": "Není známo",
+       "exif-lightsource-1": "Denní světlo",
+       "exif-lightsource-2": "Fluorescenční",
+       "exif-lightsource-3": "Žárovka",
+       "exif-lightsource-4": "Blesk",
+       "exif-lightsource-9": "Jasno",
+       "exif-lightsource-10": "Zamračeno",
+       "exif-lightsource-11": "Stín",
+       "exif-lightsource-12": "Zářivka denní světlo (D 5700 – 7100K)",
+       "exif-lightsource-13": "Zářivka bílé denní světlo (N 4600 – 5400K)",
+       "exif-lightsource-14": "Zářivka studená bílá (W 3900 – 4500K)",
+       "exif-lightsource-15": "Bílá zářivka (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standardní osvětlení A",
+       "exif-lightsource-18": "Standardní osvětlení B",
+       "exif-lightsource-19": "Standardní osvětlení C",
+       "exif-lightsource-24": "ISO studiová žárovka",
+       "exif-lightsource-255": "Jiný světelný zdroj",
+       "exif-flash-fired-0": "Blesk nebyl použit",
+       "exif-flash-fired-1": "Blesk byl použit",
+       "exif-flash-return-0": "funkce pro rozpoznání odrazů blesku není k dispozici",
+       "exif-flash-return-2": "odraz blesku nebyl zaznamenán",
+       "exif-flash-return-3": "byl zaznamenán odraz blesku",
+       "exif-flash-mode-1": "vynucené použití blesku",
+       "exif-flash-mode-2": "použití blesku zakázáno",
+       "exif-flash-mode-3": "automatický režim",
+       "exif-flash-function-1": "Blesk není k dispozici",
+       "exif-flash-redeye-1": "režim potlačení jevu červených očí",
+       "exif-focalplaneresolutionunit-2": "in",
+       "exif-sensingmethod-1": "Není známo",
+       "exif-sensingmethod-2": "Jednočipový plošný senzor",
+       "exif-sensingmethod-3": "Dvoučipový plošný senzor",
+       "exif-sensingmethod-4": "Tříčipový plošný senzor",
+       "exif-sensingmethod-5": "Sekvenční plošný senzor",
+       "exif-sensingmethod-7": "Trilineární senzor",
+       "exif-sensingmethod-8": "Sekvenční lineární senzor",
+       "exif-filesource-3": "Digitální fotoaparát",
+       "exif-scenetype-1": "Přímo fotografováno",
+       "exif-customrendered-0": "Běžné zpracování",
+       "exif-customrendered-1": "Uživatelské zpracování",
+       "exif-exposuremode-0": "Automatická expozice",
+       "exif-exposuremode-1": "Ruční expozice",
+       "exif-exposuremode-2": "Bracketing",
+       "exif-whitebalance-0": "Automatické vyvážení bílé",
+       "exif-whitebalance-1": "Ruční vyvážení bílé",
+       "exif-scenecapturetype-0": "Standardní",
+       "exif-scenecapturetype-1": "Na šířku",
+       "exif-scenecapturetype-2": "Na výšku",
+       "exif-scenecapturetype-3": "Noční scéna",
+       "exif-gaincontrol-0": "Žádná",
+       "exif-gaincontrol-1": "Mírné zvýšení jasu",
+       "exif-gaincontrol-2": "Výrazné zvýšení jasu",
+       "exif-gaincontrol-3": "Mírné snížení jasu",
+       "exif-gaincontrol-4": "Výrazné snížení jasu",
+       "exif-contrast-0": "Normální",
+       "exif-contrast-1": "Měkký",
+       "exif-contrast-2": "Tvrdý",
+       "exif-saturation-0": "Normální",
+       "exif-saturation-1": "Nízká sytost",
+       "exif-saturation-2": "Vysoká sytost",
+       "exif-sharpness-0": "Normální",
+       "exif-sharpness-1": "Měkká",
+       "exif-sharpness-2": "Tvrdá",
+       "exif-subjectdistancerange-0": "Není známo",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Detail",
+       "exif-subjectdistancerange-3": "Pohled zdálky",
+       "exif-gpslatitude-n": "Severní šířka",
+       "exif-gpslatitude-s": "Jižní šířka",
+       "exif-gpslongitude-e": "Východní délka",
+       "exif-gpslongitude-w": "Západní délka",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metr|metry|metrů}} nad mořem",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metr|metry|metrů}} pod úrovní moře",
+       "exif-gpsstatus-a": "Probíhá měření",
+       "exif-gpsstatus-v": "Měření mimo provoz",
+       "exif-gpsmeasuremode-2": "Dvourozměrné měření",
+       "exif-gpsmeasuremode-3": "Trojrozměrné měření",
+       "exif-gpsspeed-k": "km/h",
+       "exif-gpsspeed-m": "mph",
+       "exif-gpsspeed-n": "kt",
+       "exif-gpsdestdistance-k": "Kilometry",
+       "exif-gpsdestdistance-m": "Míle",
+       "exif-gpsdestdistance-n": "Námořní míle",
+       "exif-gpsdop-excellent": "Výtečná ($1)",
+       "exif-gpsdop-good": "Dobrá ($1)",
+       "exif-gpsdop-moderate": "Střední ($1)",
+       "exif-gpsdop-fair": "Ucházející ($1)",
+       "exif-gpsdop-poor": "Špatná ($1)",
+       "exif-objectcycle-a": "Pouze dopoledne",
+       "exif-objectcycle-p": "Pouze odpoledne",
+       "exif-objectcycle-b": "Dopoledne i odpoledne",
+       "exif-gpsdirection-t": "Pravý kurs",
+       "exif-gpsdirection-m": "Magnetický kurs",
+       "exif-ycbcrpositioning-1": "Uprostřed",
+       "exif-ycbcrpositioning-2": "U sebe",
+       "exif-dc-contributor": "Přispěvatelé",
+       "exif-dc-coverage": "Místní nebo časový rozsah média",
+       "exif-dc-date": "Datum (data)",
+       "exif-dc-publisher": "Vydavatel",
+       "exif-dc-relation": "Související média",
+       "exif-dc-rights": "Práva",
+       "exif-dc-source": "Zdrojové médium",
+       "exif-dc-type": "Typ média",
+       "exif-rating-rejected": "Vyřazeno",
+       "exif-isospeedratings-overflow": "Větší než 65535",
+       "exif-iimcategory-ace": "Kultura, umění a zábava",
+       "exif-iimcategory-clj": "Zločin a právo",
+       "exif-iimcategory-dis": "Nehody a neštěstí",
+       "exif-iimcategory-fin": "Ekonomika a obchod",
+       "exif-iimcategory-edu": "Vzdělávání",
+       "exif-iimcategory-evn": "Životní prostředí",
+       "exif-iimcategory-hth": "Zdraví",
+       "exif-iimcategory-hum": "Lidské záliby",
+       "exif-iimcategory-lab": "Práce",
+       "exif-iimcategory-lif": "Volný čas a životní styl",
+       "exif-iimcategory-pol": "Politika",
+       "exif-iimcategory-rel": "Víra a náboženství",
+       "exif-iimcategory-sci": "Věda a technika",
+       "exif-iimcategory-soi": "Sociální problematika",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Války, konflikty a nepokoje",
+       "exif-iimcategory-wea": "Počasí",
+       "exif-urgency-normal": "Normální ($1)",
+       "exif-urgency-low": "Nízká ($1)",
+       "exif-urgency-high": "Vysoká ($1)",
+       "exif-urgency-other": "Uživatelsky definovaná ($1)"
+}
diff --git a/languages/i18n/exif/cy.json b/languages/i18n/exif/cy.json
new file mode 100644 (file)
index 0000000..e3b25b2
--- /dev/null
@@ -0,0 +1,349 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Lloffiwr",
+                       "Robin Owain",
+                       "Thaf",
+                       "Xxglennxx"
+               ]
+       },
+       "exif-imagewidth": "Lled",
+       "exif-imagelength": "Uchder",
+       "exif-bitspersample": "Nifer y didau i bob cydran",
+       "exif-compression": "Cynllun cywasgu",
+       "exif-photometricinterpretation": "Cyfansoddiad picseli",
+       "exif-orientation": "Gogwydd",
+       "exif-samplesperpixel": "Nifer y cydrannau",
+       "exif-planarconfiguration": "Trefn y data",
+       "exif-ycbcrsubsampling": "Cymhareb is-samplo Y i C",
+       "exif-ycbcrpositioning": "Lleoli Y a C",
+       "exif-xresolution": "Datrysiad llorweddol",
+       "exif-yresolution": "Datrysiad fertigol",
+       "exif-stripoffsets": "Lleoliad data'r ddelwedd",
+       "exif-rowsperstrip": "Nifer y rhesi i bob stribed",
+       "exif-stripbytecounts": "Nifer y beitiau i bob stribed cywasgedig",
+       "exif-jpeginterchangeformat": "Yr atred i JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Nifer beitiau'r data JPEG",
+       "exif-whitepoint": "Cromatigedd y cyfeirbwynt gwyn",
+       "exif-primarychromaticities": "Cromatigedd y lliwiau cysefin",
+       "exif-ycbcrcoefficients": "Cyfernodau matrics trawsffurfio gofod lliw",
+       "exif-referenceblackwhite": "Pâr o gyfeirnodau du a gwyn",
+       "exif-datetime": "Dyddiad ac amser y newidiwyd y ffeil ddiwethaf",
+       "exif-imagedescription": "Teitl y ddelwedd",
+       "exif-make": "Gwneuthurwr y camera",
+       "exif-model": "Model y camera",
+       "exif-software": "Meddalwedd a ddefnyddir",
+       "exif-artist": "Awdur",
+       "exif-copyright": "Deiliad yr hawlfraint",
+       "exif-exifversion": "Fersiwn Exif",
+       "exif-flashpixversion": "Fersiwn Flashpix a gynhelir",
+       "exif-colorspace": "Gofod lliw",
+       "exif-componentsconfiguration": "Ystyr pob cydran",
+       "exif-compressedbitsperpixel": "Modd cywasgu delwedd",
+       "exif-pixelxdimension": "Lled y ddelwedd",
+       "exif-pixelydimension": "Uchder y ddelwedd",
+       "exif-usercomment": "Sylwadau'r defnyddiwr",
+       "exif-relatedsoundfile": "Ffeil sain gysylltiedig",
+       "exif-datetimeoriginal": "Dyddiad ac amser y cynhyrchwyd y data",
+       "exif-datetimedigitized": "Dyddiad ac amser y digido",
+       "exif-subsectime": "Manylyn iseiliad amser newid y ffeil",
+       "exif-subsectimeoriginal": "Manylyn iseiliad amser cynhyrchu'r llun",
+       "exif-subsectimedigitized": "Manylyn iseiliad amser digiteiddio'r llun",
+       "exif-exposuretime": "Amser dinoethi",
+       "exif-exposuretime-format": "$1 eiliad ($2)",
+       "exif-fnumber": "Cymhareb yr agorfa (rhif F)",
+       "exif-exposureprogram": "Rhaglen Dinoethi",
+       "exif-spectralsensitivity": "Sensitifedd sbectrol",
+       "exif-isospeedratings": "Cyfraddiad cyflymder ISO",
+       "exif-shutterspeedvalue": "Cyflymder APEX y caead",
+       "exif-aperturevalue": "Agorfa APEX",
+       "exif-brightnessvalue": "Disgleirdeb APEX",
+       "exif-exposurebiasvalue": "Bias dinoethi",
+       "exif-maxaperturevalue": "Maint mwyaf agorfa'r glan",
+       "exif-subjectdistance": "Pellter y goddrych",
+       "exif-meteringmode": "Modd mesur goleuni",
+       "exif-lightsource": "Tarddiad goleuni",
+       "exif-flash": "Fflach",
+       "exif-focallength": "Hyd ffocal y lens",
+       "exif-subjectarea": "Maint a lleoliad y goddrych",
+       "exif-flashenergy": "Ynni'r fflach",
+       "exif-focalplanexresolution": "Datrysiad y plân ffocysu X",
+       "exif-focalplaneyresolution": "Datrysiad y plân ffocysu Y",
+       "exif-focalplaneresolutionunit": "Uned mesur datrysiad y plân ffocysu",
+       "exif-subjectlocation": "Lleoliad y goddrych",
+       "exif-exposureindex": "Indecs dinoethiad",
+       "exif-sensingmethod": "Dull synhwyro",
+       "exif-filesource": "Ffynhonnell y ffeil",
+       "exif-scenetype": "Math o olygfa",
+       "exif-customrendered": "Hunan-ddewis gosodiadau prosesu'r ddelwedd",
+       "exif-exposuremode": "Modd dinoethi",
+       "exif-whitebalance": "Cydbwysedd Gwyn",
+       "exif-digitalzoomratio": "Cymhareb closio digidol",
+       "exif-focallengthin35mmfilm": "Hyd ffocal ar ffilm 35mm",
+       "exif-scenecapturetype": "Modd cipio yn ôl y math o olygfa",
+       "exif-gaincontrol": "Rheolydd golygfa",
+       "exif-contrast": "Cyferbyniad",
+       "exif-saturation": "Dirlawnder",
+       "exif-sharpness": "Eglurder",
+       "exif-devicesettingdescription": "Disgrifiad o osodiadau'r ddyfais",
+       "exif-subjectdistancerange": "Amrediad pellter y goddrych",
+       "exif-imageuniqueid": "ID unigryw y ddelwedd",
+       "exif-gpsversionid": "Fersiwn y tag GPS",
+       "exif-gpslatituderef": "Lledred i'r Gogledd neu i'r De",
+       "exif-gpslatitude": "Lledred",
+       "exif-gpslongituderef": "Hydred i'r Dwyrain neu i'r Gorllewin",
+       "exif-gpslongitude": "Hydred",
+       "exif-gpsaltituderef": "Cyfeirnod uchder",
+       "exif-gpsaltitude": "Uchder",
+       "exif-gpstimestamp": "Amser GPS (cloc atomig)",
+       "exif-gpssatellites": "Defnyddir lloerennau i fesur",
+       "exif-gpsstatus": "Statws y derbynnydd",
+       "exif-gpsmeasuremode": "Modd mesur",
+       "exif-gpsdop": "Manylder mesur",
+       "exif-gpsspeedref": "Uned cyflymder",
+       "exif-gpsspeed": "Cyflymder y derbynnydd GPS",
+       "exif-gpstrackref": "Cyfeirbwynt ar gyfer cyfeiriad y symud",
+       "exif-gpstrack": "Cyfeiriad symud",
+       "exif-gpsimgdirectionref": "Cyfeirbwynt ar gyfer cyfeiriad y ddelwedd",
+       "exif-gpsimgdirection": "Cyfeiriad y ddelwedd",
+       "exif-gpsmapdatum": "Defnyddir data o arolwg geodetig",
+       "exif-gpsdestlatituderef": "Cyfeirbwynt lledred y cyrchnod",
+       "exif-gpsdestlatitude": "Lledred y cyrchfan",
+       "exif-gpsdestlongituderef": "Cyfeirbwynt hydred y cyrchfan",
+       "exif-gpsdestlongitude": "Hydred y cyrchfan",
+       "exif-gpsdestbearingref": "Cyfeirnod ar gyfer cyfeiriant y cyrchfan",
+       "exif-gpsdestbearing": "Cyfeiriant y cyrchfan",
+       "exif-gpsdestdistanceref": "Cyfeirnod ar gyfer pellter y cyrchfan",
+       "exif-gpsdestdistance": "Pellter i ben y daith",
+       "exif-gpsprocessingmethod": "Enw'r dull prosesu GPS",
+       "exif-gpsareainformation": "Enw'r parth GPS",
+       "exif-gpsdatestamp": "Dyddiad GPS",
+       "exif-gpsdifferential": "cywiriad differol y GPS",
+       "exif-jpegfilecomment": "Sylwadau ar y ffeil JPEG",
+       "exif-keywords": "Allweddeiriau",
+       "exif-worldregioncreated": "Y parth lle y tynnwyd y llun",
+       "exif-countrycreated": "Y wlad lle y tynnwyd y llun",
+       "exif-countrycodecreated": "Côd y wlad lle y tynnwyd y llun",
+       "exif-provinceorstatecreated": "Sir neu dalaith lle y tynnwyd y llun",
+       "exif-citycreated": "Y dref lle y tynnwyd y llun",
+       "exif-sublocationcreated": "Y fan yn y dref lle y tynnwyd y llun",
+       "exif-worldregiondest": "Y parth a ddangosir",
+       "exif-countrydest": "Y wlad a ddangosir",
+       "exif-countrycodedest": "Côd y wlad a ddangosir",
+       "exif-provinceorstatedest": "Y sir neu dalaith a ddangosir",
+       "exif-citydest": "Y dref a ddangosir",
+       "exif-sublocationdest": "Y fan yn y dref a ddangosir",
+       "exif-objectname": "Teitl byr",
+       "exif-specialinstructions": "Cyfarwyddiadau arbennig",
+       "exif-headline": "Egluryn byr",
+       "exif-credit": "Cydnabod/Y darparwr",
+       "exif-source": "Ffynhonnell",
+       "exif-editstatus": "Statws golygyddol y ddelwedd",
+       "exif-urgency": "Brys",
+       "exif-fixtureidentifier": "Y man y defnyddir y llun yn gyson",
+       "exif-locationdest": "Y man a ddarlunir",
+       "exif-locationdestcode": "Côd y man a ddarlunir",
+       "exif-objectcycle": "Adeg y dydd y bwriedir i'r cyfrwng gael ei ddefnyddio",
+       "exif-contact": "Gwybodaeth cysylltu",
+       "exif-writer": "Awdur yr egluryn",
+       "exif-languagecode": "Iaith",
+       "exif-iimversion": "Fersiwn IIM",
+       "exif-iimcategory": "Categori",
+       "exif-iimsupplementalcategory": "Categorïau atodol",
+       "exif-datetimeexpires": "Peidier â'i ddefnyddio ar ôl",
+       "exif-datetimereleased": "Rhyddhawyd ar",
+       "exif-originaltransmissionref": "Côd y man lle y trosglwyddwyd yn wreiddiol",
+       "exif-identifier": "Dynodydd",
+       "exif-lens": "Y lens a ddefnyddiwyd",
+       "exif-serialnumber": "Rhif cyfresol y camera",
+       "exif-cameraownername": "Perchennog y camera",
+       "exif-label": "Label",
+       "exif-datetimemetadata": "Y dyddiad y newidiwyd y metadata ddiwethaf",
+       "exif-nickname": "Enw byr y ddelwedd",
+       "exif-rating": "Sgôr (allan o 5)",
+       "exif-rightscertificate": "Tystysgrif rheoli hawlfraint",
+       "exif-copyrighted": "Statws yr hawlfraint:",
+       "exif-copyrightowner": "Perchennog yr hawlfraint",
+       "exif-usageterms": "Termau defnyddio",
+       "exif-webstatement": "Datganiad hawlfraint ar-lein",
+       "exif-originaldocumentid": "ID unigryw y ddogfen wreiddiol",
+       "exif-licenseurl": "URL y drwydded hawlfraint",
+       "exif-morepermissionsurl": "Gwybodaeth trwyddedu amgen",
+       "exif-attributionurl": "Wrth ailddefnyddio'r gwaith yma, darparwch ddolen at",
+       "exif-preferredattributionname": "Wrth ailddefnyddio'r gwaith yma, cydnabyddwch",
+       "exif-pngfilecomment": "Sylwadau ar y ffeil PNG",
+       "exif-disclaimer": "Ymwadiad",
+       "exif-contentwarning": "Rhybudd am y cynnwys",
+       "exif-giffilecomment": "Sylwadau ar y ffeil GIF",
+       "exif-intellectualgenre": "Math yr eitem",
+       "exif-subjectnewscode": "Cod y pwnc",
+       "exif-scenecode": "Cod golygfa IPTC",
+       "exif-event": "Y digwyddiad a ddarlunnir",
+       "exif-organisationinimage": "Y sefydliad a ddarlunnir",
+       "exif-personinimage": "Y person a ddarlunnir",
+       "exif-originalimageheight": "Uchder y ddelwedd cyn iddi gael ei thocio",
+       "exif-originalimagewidth": "Lled y ddelwedd cyn iddi gael ei thocio",
+       "exif-compression-1": "Heb ei gywasgu",
+       "exif-compression-2": "Amgodio hyd rhediad Huffman Addasedig 1-Dimensiwn Grŵp 3 y CCITT",
+       "exif-compression-3": "Amgodio ffacs Grŵp 3 CCITT",
+       "exif-compression-4": "Amgodio ffacs Grŵp 4 CCITT",
+       "exif-copyrighted-true": "Hawlfraint",
+       "exif-copyrighted-false": "Statws yr hawlfraint heb ei osod",
+       "exif-photometricinterpretation-1": "Du a gwyn (du yw 0)",
+       "exif-unknowndate": "Dyddiad anhysbys",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Wedi troi tu chwith ar lorwedd",
+       "exif-orientation-3": "Wedi ei droi 180°",
+       "exif-orientation-4": "Wedi troi wyneb i waered",
+       "exif-orientation-5": "Wedi troi 90° yn erbyn y cloc a thu chwith yn fertigol",
+       "exif-orientation-6": "Cylchdrowyd 90° gwrthglocwedd",
+       "exif-orientation-7": "Wedi troi 90° gyda'r cloc a thu chwith yn fertigol",
+       "exif-orientation-8": "Cylchdrowyd 90° clocwedd",
+       "exif-planarconfiguration-1": "fformat talpiog",
+       "exif-planarconfiguration-2": "fformat planar",
+       "exif-colorspace-65535": "Heb ei raddnodi",
+       "exif-componentsconfiguration-0": "ddim i'w gael",
+       "exif-exposureprogram-0": "Heb ei gosod",
+       "exif-exposureprogram-1": "Hunan-ddewis",
+       "exif-exposureprogram-2": "Rhaglen normal",
+       "exif-exposureprogram-3": "Hunan-ddewis yr agorfa",
+       "exif-exposureprogram-4": "Hunan-ddewis cyflymder y caead",
+       "exif-exposureprogram-5": "Rhaglen creadigol (blaenoriaeth i ddyfnder ffocws)",
+       "exif-exposureprogram-6": "Rhaglen digwyddiad (yn tueddu at gyflymder caead uchel)",
+       "exif-exposureprogram-7": "Modd portread (ar gyfer lluniau agos a'r cefndir yn aneglur)",
+       "exif-exposureprogram-8": "Modd tirlun (ar gyfer tirluniau wedi ffocysu ar y cefndir)",
+       "exif-subjectdistance-value": "$1 medr",
+       "exif-meteringmode-0": "Anhysbys",
+       "exif-meteringmode-1": "Cyfartaleddu",
+       "exif-meteringmode-2": "Cyfartaleddu canol-bwysedig",
+       "exif-meteringmode-3": "Smotyn",
+       "exif-meteringmode-4": "Smotiau",
+       "exif-meteringmode-5": "Patrymu",
+       "exif-meteringmode-6": "Rhannol",
+       "exif-meteringmode-255": "Arall",
+       "exif-lightsource-0": "Anhysbys",
+       "exif-lightsource-1": "Golau dydd",
+       "exif-lightsource-2": "Fflworolau",
+       "exif-lightsource-3": "Twngsten (golau gwynias)",
+       "exif-lightsource-4": "Fflach",
+       "exif-lightsource-9": "Tywydd braf",
+       "exif-lightsource-10": "Tywydd cymylog",
+       "exif-lightsource-11": "Cysgod",
+       "exif-lightsource-12": "Fflworolau golau dydd (D 5700 – 7100K)",
+       "exif-lightsource-13": "Fflworolau gwyn golau dydd (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fflworolau gwyn oeraidd (W 3900 – 4500K)",
+       "exif-lightsource-15": "Fflworolau gwyn (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Lamp hirgoes A",
+       "exif-lightsource-18": "Lamp hirgoes B",
+       "exif-lightsource-19": "Lamp hirgoes C",
+       "exif-lightsource-24": "Twngsten stiwdio ISO",
+       "exif-lightsource-255": "Tarddiad arall i'r goleuni",
+       "exif-flash-fired-0": "Ni daniodd y fflach",
+       "exif-flash-fired-1": "Taniodd y fflach",
+       "exif-flash-return-0": "hepgor synhwyro golau'r fflach wedi ei daflu yn ôl",
+       "exif-flash-return-2": "ni synhwyrwyd golau'r fflach wedi ei daflu yn ôl",
+       "exif-flash-return-3": "synhwyrwyd golau'r fflach wedi ei daflu yn ôl",
+       "exif-flash-mode-1": "gosod y fflach i danio",
+       "exif-flash-mode-2": "hepgorwyd y fflach",
+       "exif-flash-mode-3": "modd awtomatig",
+       "exif-flash-function-1": "Dim fflach",
+       "exif-flash-redeye-1": "modd lleddfu llygaid cochion",
+       "exif-focalplaneresolutionunit-2": "modfeddi",
+       "exif-sensingmethod-1": "Heb ei ddiffinio",
+       "exif-sensingmethod-2": "Synhwyrydd lliw ardal un-naddyn",
+       "exif-sensingmethod-3": "Synhwyrydd lliw ardal dau-naddyn",
+       "exif-sensingmethod-4": "Synhwyrydd lliw ardal tri-naddyn",
+       "exif-sensingmethod-5": "Synhwyrydd lliw ardal dilyniannol",
+       "exif-sensingmethod-7": "Synhwyrydd trillinol",
+       "exif-sensingmethod-8": "Synhwyrydd lliw llinellol dilyniannol",
+       "exif-filesource-3": "Camera digidol lluniau llonydd",
+       "exif-scenetype-1": "Delwedd wedi ei dynnu'n uniongyrchol",
+       "exif-customrendered-0": "Proses normal",
+       "exif-customrendered-1": "Proses wedi'i addasu",
+       "exif-exposuremode-0": "Dinoethi awtomatig",
+       "exif-exposuremode-1": "Hunan-ddewis hyd y dinoethiad",
+       "exif-exposuremode-2": "Cyfres dinoethi awtomatig",
+       "exif-whitebalance-0": "Cydwysedd gwyn awtomatig",
+       "exif-whitebalance-1": "Cydbwysedd gwyn hunan-ddewisedig",
+       "exif-scenecapturetype-0": "Safonol",
+       "exif-scenecapturetype-1": "Tirlun",
+       "exif-scenecapturetype-2": "Portread",
+       "exif-scenecapturetype-3": "Golygfa nos",
+       "exif-gaincontrol-0": "Dim",
+       "exif-gaincontrol-1": "Lled-gynyddu disgleirdeb - cynyddu",
+       "exif-gaincontrol-2": "Tra-chynyddu disgleirdeb - cynyddu",
+       "exif-gaincontrol-3": "Lled-gynyddu disgleirdeb - lleihau",
+       "exif-gaincontrol-4": "Tra-chynyddu disgleirdeb - lleihau",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Meddal",
+       "exif-contrast-2": "Caled",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Dirlawnder isel",
+       "exif-saturation-2": "Dirlawnder uchel",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Meddal",
+       "exif-sharpness-2": "Caled",
+       "exif-subjectdistancerange-0": "Anhysbys",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Golygfa agos",
+       "exif-subjectdistancerange-3": "Golygfa pell",
+       "exif-gpslatitude-n": "Lledred i'r Gogledd",
+       "exif-gpslatitude-s": "Lledred i'r De",
+       "exif-gpslongitude-e": "Hydred i'r Dwyrain",
+       "exif-gpslongitude-w": "Hydred i'r Gorllewin",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|medr}} uwchlaw lefel y môr",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|medr}} islaw lefel y môr",
+       "exif-gpsstatus-a": "Wrthi'n mesur",
+       "exif-gpsstatus-v": "Y gallu i ryngweithredu o ran mesur",
+       "exif-gpsmeasuremode-2": "mesuriad 2 ddimensiwn",
+       "exif-gpsmeasuremode-3": "mesuriad 3 dimensiwn",
+       "exif-gpsspeed-k": "Cilomedr yr awr",
+       "exif-gpsspeed-m": "Milltir yr awr",
+       "exif-gpsspeed-n": "Notiau",
+       "exif-gpsdestdistance-k": "Cilomedrau",
+       "exif-gpsdestdistance-m": "Milltiroedd",
+       "exif-gpsdestdistance-n": "Milltiroedd môr",
+       "exif-gpsdop-excellent": "Rhagorol ($1)",
+       "exif-gpsdop-good": "Da ($1)",
+       "exif-gpsdop-moderate": "Cymedrol ($1)",
+       "exif-gpsdop-fair": "Gweddol ($1)",
+       "exif-gpsdop-poor": "Gwael ($1)",
+       "exif-objectcycle-a": "Y bore'n unig",
+       "exif-objectcycle-p": "Gyda'r nos yn unig",
+       "exif-objectcycle-b": "Bore a hwyr",
+       "exif-gpsdirection-t": "Gwir gyfeiriad",
+       "exif-gpsdirection-m": "Cyfeiriad magnetig",
+       "exif-ycbcrpositioning-1": "Canoledig",
+       "exif-ycbcrpositioning-2": "Cyd-leoledig",
+       "exif-dc-contributor": "Cyfranwyr",
+       "exif-dc-coverage": "Cwmpas y cyfrwng o ran lle neu amser",
+       "exif-dc-date": "Dyddiad",
+       "exif-dc-publisher": "Cyhoeddwr",
+       "exif-dc-relation": "Cyfryngau cysylltiedig",
+       "exif-dc-rights": "Hawliau",
+       "exif-dc-source": "Ffynhonnell y cyfrwng",
+       "exif-dc-type": "Math y cyfrwng",
+       "exif-rating-rejected": "Gwrthodwyd",
+       "exif-isospeedratings-overflow": "Mwy na 65535",
+       "exif-iimcategory-ace": "Celfyddyd, diwylliant ac adloniant",
+       "exif-iimcategory-clj": "Troseddu a'r gyfraith",
+       "exif-iimcategory-dis": "Trychinebau a damweiniau",
+       "exif-iimcategory-fin": "Yr economi a busnes",
+       "exif-iimcategory-edu": "Addysg",
+       "exif-iimcategory-evn": "Yr Amgylchedd",
+       "exif-iimcategory-hth": "Iechyd",
+       "exif-iimcategory-hum": "O ddiddordeb dynol",
+       "exif-iimcategory-lab": "Gwaith",
+       "exif-iimcategory-lif": "Ffordd o fyw a hamdden",
+       "exif-iimcategory-pol": "Gwleidyddiaeth",
+       "exif-iimcategory-rel": "Crefydd a chred",
+       "exif-iimcategory-sci": "Gwyddoniaeth a thechnoleg",
+       "exif-iimcategory-soi": "Cymdeithas",
+       "exif-iimcategory-spo": "Chwaraeon",
+       "exif-iimcategory-war": "Rhyfel, gwrthdaro ac aflonyddwch",
+       "exif-iimcategory-wea": "Tywydd",
+       "exif-urgency-normal": "Cyffredin ($1)",
+       "exif-urgency-low": "Isel ($1)",
+       "exif-urgency-high": "Uchel ($1)",
+       "exif-urgency-other": "Blaenoriaeth yn ôl y defnyddiwr ($1)"
+}
diff --git a/languages/i18n/exif/da.json b/languages/i18n/exif/da.json
new file mode 100644 (file)
index 0000000..b960391
--- /dev/null
@@ -0,0 +1,352 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Byrial",
+                       "Christian List",
+                       "EPO",
+                       "Peter Alberti",
+                       "Saederup92"
+               ]
+       },
+       "exif-imagewidth": "Bredde",
+       "exif-imagelength": "Længde",
+       "exif-bitspersample": "Bits pr. farvekomponent",
+       "exif-compression": "Kompressionstype",
+       "exif-photometricinterpretation": "Pixelsammensætning",
+       "exif-orientation": "Kameraretning",
+       "exif-samplesperpixel": "Antal komponenter",
+       "exif-planarconfiguration": "Dataretning",
+       "exif-ycbcrsubsampling": "Subsamplingrate fra Y til C",
+       "exif-ycbcrpositioning": "Y og C positionering",
+       "exif-xresolution": "Horisontal opløsning",
+       "exif-yresolution": "Vertikal opløsning",
+       "exif-stripoffsets": "Bileddata-forskydning",
+       "exif-rowsperstrip": "Antal linjer pr. stribe",
+       "exif-stripbytecounts": "Bytes pr. komprimeret stribe",
+       "exif-jpeginterchangeformat": "Offset til JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Størrelse af JPEG-fil i bytes",
+       "exif-whitepoint": "Manuel med måling",
+       "exif-primarychromaticities": "Kromaticitet af primærfarver",
+       "exif-ycbcrcoefficients": "YCbCr-koefficienter",
+       "exif-referenceblackwhite": "Sort/hvide-referencepunkter",
+       "exif-datetime": "Dato og tid for ændring af fil",
+       "exif-imagedescription": "Billedtitel",
+       "exif-make": "Kameraproducent",
+       "exif-model": "Kameramodel",
+       "exif-software": "Software",
+       "exif-artist": "Fotograf",
+       "exif-copyright": "Ophavsret",
+       "exif-exifversion": "Exif-version",
+       "exif-flashpixversion": "Understøttet Flashpix-version",
+       "exif-colorspace": "Farverum",
+       "exif-componentsconfiguration": "Betydning af enkelte komponenter",
+       "exif-compressedbitsperpixel": "Komprimerede bits pr. pixel",
+       "exif-pixelxdimension": "Billedbredde",
+       "exif-pixelydimension": "Billedhøjde",
+       "exif-usercomment": "Brugerkommentarer",
+       "exif-relatedsoundfile": "Tilhørende lydfil",
+       "exif-datetimeoriginal": "Optagelsestidspunkt",
+       "exif-datetimedigitized": "Dato og tid for digitalisering",
+       "exif-subsectime": "Lagringstidspunkt (1/100 s)",
+       "exif-subsectimeoriginal": "Optagelsestidspunkt (1/100 s)",
+       "exif-subsectimedigitized": "Digitaliseringstidspunkt (1/100 s)",
+       "exif-exposuretime": "Belysningsvarighed",
+       "exif-exposuretime-format": "$1 sekunder ($2)",
+       "exif-fnumber": "Blænde",
+       "exif-exposureprogram": "Belysningsprogram",
+       "exif-spectralsensitivity": "Spectral sensitivitet",
+       "exif-isospeedratings": "Film- eller sensorfølsomhed (ISO)",
+       "exif-shutterspeedvalue": "APEX lukkerhastighed",
+       "exif-aperturevalue": "APEX blændeåbning",
+       "exif-brightnessvalue": "APEX lysstyrke",
+       "exif-exposurebiasvalue": "Belysningsindstilling",
+       "exif-maxaperturevalue": "Største blænde",
+       "exif-subjectdistance": "Afstand",
+       "exif-meteringmode": "Målemetode",
+       "exif-lightsource": "Lyskilde",
+       "exif-flash": "Blitz",
+       "exif-focallength": "Brændvidde",
+       "exif-subjectarea": "Område",
+       "exif-flashenergy": "Blitzstyrke",
+       "exif-focalplanexresolution": "Fokuseringspunkt X-opløsning",
+       "exif-focalplaneyresolution": "Fokuseringspunkt Y-opløsning",
+       "exif-focalplaneresolutionunit": "Enhed for fokuseringsopløsning",
+       "exif-subjectlocation": "Motivsted",
+       "exif-exposureindex": "Belysningsindeks",
+       "exif-sensingmethod": "Målemetode",
+       "exif-filesource": "Filens kilde",
+       "exif-scenetype": "Scenetype",
+       "exif-customrendered": "Brugerdefineret billedbehandling",
+       "exif-exposuremode": "Belysningsmodus",
+       "exif-whitebalance": "Hvidafstemning",
+       "exif-digitalzoomratio": "Digitalzoom",
+       "exif-focallengthin35mmfilm": "Brændvidde (småbilledækvivalent)",
+       "exif-scenecapturetype": "Optagelsestype",
+       "exif-gaincontrol": "Forstærkning",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Mætning",
+       "exif-sharpness": "Skarphed",
+       "exif-devicesettingdescription": "Apparatindstilling",
+       "exif-subjectdistancerange": "Motivafstand",
+       "exif-imageuniqueid": "Billed-ID",
+       "exif-gpsversionid": "GPS-dag-version",
+       "exif-gpslatituderef": "Nordlig eller sydlig bredde",
+       "exif-gpslatitude": "Geografisk bredde",
+       "exif-gpslongituderef": "Østlig eller vestlig længde",
+       "exif-gpslongitude": "Geografisk længde",
+       "exif-gpsaltituderef": "Udgangshøjde",
+       "exif-gpsaltitude": "Højde",
+       "exif-gpstimestamp": "GPS-tid",
+       "exif-gpssatellites": "Til målingen brugte satelitter",
+       "exif-gpsstatus": "Modtagerstatus",
+       "exif-gpsmeasuremode": "Målemetode",
+       "exif-gpsdop": "Målepræcision",
+       "exif-gpsspeedref": "Hastighedsenhed",
+       "exif-gpsspeed": "GPS-modtagerens hastighed",
+       "exif-gpstrackref": "Reference for bevægelsesretningen",
+       "exif-gpstrack": "Bevægelsesretningen",
+       "exif-gpsimgdirectionref": "Reference for retningen af billedet",
+       "exif-gpsimgdirection": "Billedretning",
+       "exif-gpsmapdatum": "Geodætisk dato benyttet",
+       "exif-gpsdestlatituderef": "Reference for bredden",
+       "exif-gpsdestlatitude": "Bredde",
+       "exif-gpsdestlongituderef": "Reference for længden",
+       "exif-gpsdestlongitude": "Længde",
+       "exif-gpsdestbearingref": "Reference for motivretningen",
+       "exif-gpsdestbearing": "Motivretning",
+       "exif-gpsdestdistanceref": "Reference for motivafstanden",
+       "exif-gpsdestdistance": "Motivafstand",
+       "exif-gpsprocessingmethod": "GPS-metodens navn",
+       "exif-gpsareainformation": "GPS-områdets navn",
+       "exif-gpsdatestamp": "GPS-dato",
+       "exif-gpsdifferential": "GPS-differentialkorrektur",
+       "exif-jpegfilecomment": "JPEG-filkommentar",
+       "exif-keywords": "Nøgleord",
+       "exif-worldregioncreated": "Verdensregion, som billedet blev taget i",
+       "exif-countrycreated": "Landet, som billedet blev taget i",
+       "exif-countrycodecreated": "Kode for landet, billedet blev taget i",
+       "exif-provinceorstatecreated": "Provins, region eller delstat, som billedet blev taget i",
+       "exif-citycreated": "By, som billedet blev taget i",
+       "exif-sublocationcreated": "Bydel, som billedet blev taget i",
+       "exif-worldregiondest": "Den viste verdensregion",
+       "exif-countrydest": "Afbildet land",
+       "exif-countrycodedest": "Kode for afbildet land",
+       "exif-provinceorstatedest": "Afbildet provins eller delstat",
+       "exif-citydest": "Afbildet by",
+       "exif-sublocationdest": "Afbildet bydel eller område i by",
+       "exif-objectname": "Kort titel",
+       "exif-specialinstructions": "Særlige instruktioner",
+       "exif-headline": "Overskrift",
+       "exif-credit": "Tilskrivning/leverandør",
+       "exif-source": "Kilde",
+       "exif-editstatus": "Billedets redaktionelle status",
+       "exif-urgency": "Uopsættelighed",
+       "exif-fixtureidentifier": "Navn på fast bestanddel",
+       "exif-locationdest": "Afbildet sted",
+       "exif-locationdestcode": "Kode for det afbildede sted",
+       "exif-objectcycle": "Tid på dagen, som mediet er tiltænkt",
+       "exif-contact": "Kontaktoplysninger",
+       "exif-writer": "Forfatter",
+       "exif-languagecode": "Sprog",
+       "exif-iimversion": "IIM-version",
+       "exif-iimcategory": "Kategori",
+       "exif-iimsupplementalcategory": "Supplerende kategorier",
+       "exif-datetimeexpires": "Brug ikke efter",
+       "exif-datetimereleased": "Frigivet den",
+       "exif-originaltransmissionref": "Stedkode for oprindelig transmission",
+       "exif-identifier": "Identifikation",
+       "exif-lens": "Anvendt objektiv",
+       "exif-serialnumber": "Kameraets serienummer",
+       "exif-cameraownername": "Kameraets ejer",
+       "exif-label": "Mærke",
+       "exif-datetimemetadata": "Dato for seneste redigering af metadata",
+       "exif-nickname": "Uformelt navn på billede",
+       "exif-rating": "Vurdering (af 5)",
+       "exif-rightscertificate": "Rettighedsforvaltningscertifikat",
+       "exif-copyrighted": "Ophavsretsstatus",
+       "exif-copyrightowner": "Indehaver af ​​ophavsretten",
+       "exif-usageterms": "Betingelser for anvendelse",
+       "exif-webstatement": "Online ophavsretserklæring",
+       "exif-originaldocumentid": "Unik ID for det oprindelige dokument",
+       "exif-licenseurl": "URL til ophavsretslicens",
+       "exif-morepermissionsurl": "Informationer om alternative licensvilkår",
+       "exif-attributionurl": "Ved genanvendelse af dette værk, giv venligst et link til",
+       "exif-preferredattributionname": "Ved genanvendelse af dette værk, tilskriv det venligst til",
+       "exif-pngfilecomment": "PNG-filkommentar",
+       "exif-disclaimer": "Ansvarsfraskrivelse",
+       "exif-contentwarning": "Indholdsadvarsel",
+       "exif-giffilecomment": "GIF-filkommentar",
+       "exif-intellectualgenre": "Type af objekt",
+       "exif-subjectnewscode": "Emnekode",
+       "exif-scenecode": "IPTC-scenekode",
+       "exif-event": "Afbildet begivenhed",
+       "exif-organisationinimage": "Afbildet organisation",
+       "exif-personinimage": "Afbildet person",
+       "exif-originalimageheight": "Højden af billedet inden det blev beskåret",
+       "exif-originalimagewidth": "Bredden af billedet inden det blev beskåret",
+       "exif-compression-1": "Ukomprimeret",
+       "exif-compression-2": "CCITT Gruppe 3 1-dimensionel modificeret Huffman run length encoding",
+       "exif-compression-3": "CCITT Gruppe 3 fax-kodning",
+       "exif-compression-4": "CCITT Gruppe 4 fax-kodning",
+       "exif-compression-6": "JPEG (gammel)",
+       "exif-copyrighted-true": "Ophavsretligt beskyttet",
+       "exif-copyrighted-false": "Status for ophavsret er ikke angivet",
+       "exif-photometricinterpretation-0": "Sort-hvid (sort er 0)",
+       "exif-photometricinterpretation-1": "Sort-hvid (sort er 0)",
+       "exif-unknowndate": "Ukendt dato",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Horisontalt spejlet",
+       "exif-orientation-3": "Drejet 180°",
+       "exif-orientation-4": "Vertikalt spejlet",
+       "exif-orientation-5": "Drejet 90° mod uret og spejlet vertikalt",
+       "exif-orientation-6": "Drejet 90° mod uret",
+       "exif-orientation-7": "Drejet 90° med uret og spejlet vertikalt",
+       "exif-orientation-8": "Drejet 90° med uret",
+       "exif-planarconfiguration-1": "Grovformat",
+       "exif-planarconfiguration-2": "Planformat",
+       "exif-colorspace-65535": "Ukalibreret",
+       "exif-componentsconfiguration-0": "Findes ikke",
+       "exif-exposureprogram-0": "Ukendt",
+       "exif-exposureprogram-1": "Manuel",
+       "exif-exposureprogram-2": "Standardprogram",
+       "exif-exposureprogram-3": "Tidsautomatik",
+       "exif-exposureprogram-4": "Blændeautomatik",
+       "exif-exposureprogram-5": "Kreativprogram med tendens til stor skarphedsdybde",
+       "exif-exposureprogram-6": "Aktionprogram med tendens til kort belysningstid",
+       "exif-exposureprogram-7": "Portrætprogram",
+       "exif-exposureprogram-8": "Landskabsoptagelse",
+       "exif-subjectdistance-value": "$1 meter",
+       "exif-meteringmode-0": "Ukendt",
+       "exif-meteringmode-1": "Gennemsnitlig",
+       "exif-meteringmode-2": "Midtcentreret",
+       "exif-meteringmode-3": "Spotmåling",
+       "exif-meteringmode-4": "Flerspotmåling",
+       "exif-meteringmode-5": "Mønster",
+       "exif-meteringmode-6": "Billeddel",
+       "exif-meteringmode-255": "Ukendt",
+       "exif-lightsource-0": "Ukendt",
+       "exif-lightsource-1": "Dagslys",
+       "exif-lightsource-2": "Fluorescerende",
+       "exif-lightsource-3": "Glødelampe",
+       "exif-lightsource-4": "Blitz",
+       "exif-lightsource-9": "Godt vejr",
+       "exif-lightsource-10": "Overskyet",
+       "exif-lightsource-11": "Skyggefuldt",
+       "exif-lightsource-12": "Dagslys fluorescerende (D 5700–7100 K)",
+       "exif-lightsource-13": "Dagshvidt fluorescerende (N 4600–5400 K)",
+       "exif-lightsource-14": "Koldthvidt fluorescerende (W 3900–4500 K)",
+       "exif-lightsource-15": "Hvist fluorescerende (WW 3200–3700 K)",
+       "exif-lightsource-17": "Standardlys A",
+       "exif-lightsource-18": "Standardlys B",
+       "exif-lightsource-19": "Standardlys C",
+       "exif-lightsource-24": "ISO studio kunstlys",
+       "exif-lightsource-255": "Andre lyskilder",
+       "exif-flash-fired-0": "Blitz ikke udløst",
+       "exif-flash-fired-1": "Blitz udløst",
+       "exif-flash-return-0": "ingen funktion til at opdage pulserende lys",
+       "exif-flash-return-2": "pulserende lys ikke opdaget",
+       "exif-flash-return-3": "pulserende lys opdaget",
+       "exif-flash-mode-1": "tvunget blitzudløsning",
+       "exif-flash-mode-2": "tvunget blitzløs",
+       "exif-flash-mode-3": "automatisk modus",
+       "exif-flash-function-1": "Ingen blitzfunktion",
+       "exif-flash-redeye-1": "reducering af røde øjne",
+       "exif-focalplaneresolutionunit-2": "Tomme",
+       "exif-sensingmethod-1": "Udefineret",
+       "exif-sensingmethod-2": "En-chip-farvesensor",
+       "exif-sensingmethod-3": "To-chip-farvesensor",
+       "exif-sensingmethod-4": "Tre-chip-farvesensor",
+       "exif-sensingmethod-5": "Farvesekventiel områdesensor",
+       "exif-sensingmethod-7": "Triliniær sensor",
+       "exif-sensingmethod-8": "Farvesekventiel liniarsensor",
+       "exif-filesource-3": "Digitalt stillbilledekamera",
+       "exif-scenetype-1": "Normal",
+       "exif-customrendered-0": "Standard",
+       "exif-customrendered-1": "Brugerdefineret",
+       "exif-exposuremode-0": "Automatisk belysning",
+       "exif-exposuremode-1": "Manuel belysning",
+       "exif-exposuremode-2": "Belysningsrække",
+       "exif-whitebalance-0": "Automatisk",
+       "exif-whitebalance-1": "Manuel",
+       "exif-scenecapturetype-0": "Normal",
+       "exif-scenecapturetype-1": "Landskab",
+       "exif-scenecapturetype-2": "Portræt",
+       "exif-scenecapturetype-3": "Natscene",
+       "exif-gaincontrol-0": "Ingen",
+       "exif-gaincontrol-1": "Low gain up",
+       "exif-gaincontrol-2": "High gain up",
+       "exif-gaincontrol-3": "Low gain down",
+       "exif-gaincontrol-4": "High gain down",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Svag",
+       "exif-contrast-2": "Stærk",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Ringe",
+       "exif-saturation-2": "Høj",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Ringe",
+       "exif-sharpness-2": "Stærk",
+       "exif-subjectdistancerange-0": "Ukendt",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Nær",
+       "exif-subjectdistancerange-3": "Fjern",
+       "exif-gpslatitude-n": "nordl. bredde",
+       "exif-gpslatitude-s": "sydl. bredde",
+       "exif-gpslongitude-e": "østl. længde",
+       "exif-gpslongitude-w": "vestl. længde",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter|meter}} over havets overflade",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter|meter}} under havets overflade",
+       "exif-gpsstatus-a": "Måling kører",
+       "exif-gpsstatus-v": "Målingens interoperabilitet",
+       "exif-gpsmeasuremode-2": "2-dimensional måling",
+       "exif-gpsmeasuremode-3": "3-dimensional måling",
+       "exif-gpsspeed-k": "km/h",
+       "exif-gpsspeed-m": "mph",
+       "exif-gpsspeed-n": "Knob",
+       "exif-gpsdestdistance-k": "Kilometer",
+       "exif-gpsdestdistance-m": "Miles",
+       "exif-gpsdestdistance-n": "Sømil",
+       "exif-gpsdop-excellent": "Fremragende ($1)",
+       "exif-gpsdop-good": "God ($1)",
+       "exif-gpsdop-moderate": "Moderat ($1)",
+       "exif-gpsdop-fair": "Middelmådig ($1)",
+       "exif-gpsdop-poor": "Dårlig ($1)",
+       "exif-objectcycle-a": "Kun morgen",
+       "exif-objectcycle-p": "Kun aften",
+       "exif-objectcycle-b": "Både morgen og aften",
+       "exif-gpsdirection-t": "Faktisk retning",
+       "exif-gpsdirection-m": "Magnetisk retning",
+       "exif-ycbcrpositioning-1": "Centreret",
+       "exif-ycbcrpositioning-2": "Sammenfaldende",
+       "exif-dc-contributor": "Bidragsydere",
+       "exif-dc-coverage": "Rumlig eller tidslig afgrænsning for mediet",
+       "exif-dc-date": "Dato(er)",
+       "exif-dc-publisher": "Udgiver",
+       "exif-dc-relation": "Relaterede media",
+       "exif-dc-rights": "Rettigheder",
+       "exif-dc-source": "Kildemediet",
+       "exif-dc-type": "Medietype",
+       "exif-rating-rejected": "Afvist",
+       "exif-isospeedratings-overflow": "Større end 65535",
+       "exif-iimcategory-ace": "Kunst, kultur og underholdning",
+       "exif-iimcategory-clj": "Kriminalitet og jura",
+       "exif-iimcategory-dis": "Katastrofer og ulykker",
+       "exif-iimcategory-fin": "Økonomi og erhvervsliv",
+       "exif-iimcategory-edu": "Uddannelse",
+       "exif-iimcategory-evn": "Miljø",
+       "exif-iimcategory-hth": "Sundhed",
+       "exif-iimcategory-hum": "Menneskelig interesse",
+       "exif-iimcategory-lab": "Arbejde",
+       "exif-iimcategory-lif": "Livsstil og fritid",
+       "exif-iimcategory-pol": "Politik",
+       "exif-iimcategory-rel": "Religion og tro",
+       "exif-iimcategory-sci": "Videnskab og teknologi",
+       "exif-iimcategory-soi": "Sociale spørgsmål",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Krig, konflikt og uroligheder",
+       "exif-iimcategory-wea": "Vejrliget",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Lav ($1)",
+       "exif-urgency-high": "Høj ($1)",
+       "exif-urgency-other": "Bruger-defineret prioritet ($1)"
+}
diff --git a/languages/i18n/exif/de-ch.json b/languages/i18n/exif/de-ch.json
new file mode 100644 (file)
index 0000000..acc5739
--- /dev/null
@@ -0,0 +1,17 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Filzstift",
+                       "MichaelFrey"
+               ]
+       },
+       "exif-jpeginterchangeformatlength": "Grösse der JPEG-Daten in Bytes",
+       "exif-referenceblackwhite": "Schwarz/Weiss-Referenzpunkte",
+       "exif-maxaperturevalue": "Grösste Blende",
+       "exif-whitebalance": "Weissabgleich",
+       "exif-gpsdop": "Masspräzision",
+       "exif-lightsource-13": "Tagesweiss fluoreszierend (N 4600–5400 K)",
+       "exif-lightsource-14": "Kaltweiss fluoreszierend (W 3900–4500 K)",
+       "exif-lightsource-15": "Weiss fluoreszierend (WW 3200–3700 K)",
+       "exif-isospeedratings-overflow": "Grösser als 65535"
+}
diff --git a/languages/i18n/exif/de.json b/languages/i18n/exif/de.json
new file mode 100644 (file)
index 0000000..136aafb
--- /dev/null
@@ -0,0 +1,363 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Church of emacs",
+                       "Kghbln",
+                       "Metalhead64",
+                       "MichaelFrey",
+                       "Omnipaedista",
+                       "Purodha",
+                       "Red Baron",
+                       "Umherirrender",
+                       "W (aka Wuzur)"
+               ]
+       },
+       "exif-imagewidth": "Breite",
+       "exif-imagelength": "Höhe",
+       "exif-bitspersample": "Bits pro Farbkomponente",
+       "exif-compression": "Art der Kompression",
+       "exif-photometricinterpretation": "Pixelzusammensetzung",
+       "exif-orientation": "Kameraausrichtung",
+       "exif-samplesperpixel": "Anzahl Komponenten",
+       "exif-planarconfiguration": "Datenausrichtung",
+       "exif-ycbcrsubsampling": "Subsampling Rate von Y bis C",
+       "exif-ycbcrpositioning": "Y und C Positionierung",
+       "exif-xresolution": "Horizontale Auflösung",
+       "exif-yresolution": "Vertikale Auflösung",
+       "exif-stripoffsets": "Bilddaten-Versatz",
+       "exif-rowsperstrip": "Anzahl Zeilen pro Streifen",
+       "exif-stripbytecounts": "Bytes pro komprimiertem Streifen",
+       "exif-jpeginterchangeformat": "Offset zu JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Größe der JPEG-Daten in Bytes",
+       "exif-whitepoint": "Manuell mit Messung",
+       "exif-primarychromaticities": "Primäre Farbart",
+       "exif-ycbcrcoefficients": "YCbCr-Koeffizienten",
+       "exif-referenceblackwhite": "Schwarz/Weiß-Referenzpunkte",
+       "exif-datetime": "Speicherzeitpunkt",
+       "exif-imagedescription": "Bildtitel",
+       "exif-make": "Hersteller",
+       "exif-model": "Modell",
+       "exif-software": "Software",
+       "exif-artist": "Fotograf",
+       "exif-copyright": "Urheberrechte",
+       "exif-exifversion": "Exif-Version",
+       "exif-flashpixversion": "unterstützte Flashpix-Version",
+       "exif-colorspace": "Farbraum",
+       "exif-componentsconfiguration": "Bedeutung einzelner Komponenten",
+       "exif-compressedbitsperpixel": "Komprimierte Bits pro Pixel",
+       "exif-pixelxdimension": "Bildbreite",
+       "exif-pixelydimension": "Bildhöhe",
+       "exif-usercomment": "Benutzerkommentare",
+       "exif-relatedsoundfile": "Zugehörige Tondatei",
+       "exif-datetimeoriginal": "Erfassungszeitpunkt",
+       "exif-datetimedigitized": "Digitalisierungszeitpunkt",
+       "exif-subsectime": "Speicherzeitpunkt (1/100 s)",
+       "exif-subsectimeoriginal": "Erfassungszeitpunkt (1/100 s)",
+       "exif-subsectimedigitized": "Digitalisierungszeitpunkt (1/100 s)",
+       "exif-exposuretime": "Belichtungsdauer",
+       "exif-exposuretime-format": "$1 Sekunden ($2)",
+       "exif-fnumber": "Blende",
+       "exif-exposureprogram": "Belichtungsprogramm",
+       "exif-spectralsensitivity": "Spectral Sensitivity",
+       "exif-isospeedratings": "Film- oder Sensorempfindlichkeit (ISO)",
+       "exif-shutterspeedvalue": "APEX-Belichtungszeitwert",
+       "exif-aperturevalue": "APEX-Blendenwert",
+       "exif-brightnessvalue": "APEX-Helligkeitswert",
+       "exif-exposurebiasvalue": "Belichtungsvorgabe",
+       "exif-maxaperturevalue": "Größte Blende",
+       "exif-subjectdistance": "Entfernung",
+       "exif-meteringmode": "Messverfahren",
+       "exif-lightsource": "Lichtquelle",
+       "exif-flash": "Blitz",
+       "exif-focallength": "Brennweite",
+       "exif-subjectarea": "Bereich",
+       "exif-flashenergy": "Blitzstärke",
+       "exif-focalplanexresolution": "Sensorauflösung horizontal",
+       "exif-focalplaneyresolution": "Sensorauflösung vertikal",
+       "exif-focalplaneresolutionunit": "Einheit der Sensorauflösung",
+       "exif-subjectlocation": "Motivstandort",
+       "exif-exposureindex": "Belichtungsindex",
+       "exif-sensingmethod": "Messmethode",
+       "exif-filesource": "Quelle der Datei",
+       "exif-scenetype": "Szenentyp",
+       "exif-customrendered": "Benutzerdefinierte Bildverarbeitung",
+       "exif-exposuremode": "Belichtungsmodus",
+       "exif-whitebalance": "Weißabgleich",
+       "exif-digitalzoomratio": "Digitalzoom",
+       "exif-focallengthin35mmfilm": "Brennweite (Kleinbildäquivalent)",
+       "exif-scenecapturetype": "Aufnahmeart",
+       "exif-gaincontrol": "Verstärkung",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Sättigung",
+       "exif-sharpness": "Schärfe",
+       "exif-devicesettingdescription": "Geräteeinstellung",
+       "exif-subjectdistancerange": "Motiventfernung",
+       "exif-imageuniqueid": "Bild-ID",
+       "exif-gpsversionid": "GPS-Tag-Version",
+       "exif-gpslatituderef": "nördl. oder südl. Breite",
+       "exif-gpslatitude": "Geografische Breite",
+       "exif-gpslongituderef": "östl. oder westl. Länge",
+       "exif-gpslongitude": "Geografische Länge",
+       "exif-gpsaltituderef": "Bezugshöhe",
+       "exif-gpsaltitude": "Höhe",
+       "exif-gpstimestamp": "GPS-Zeit",
+       "exif-gpssatellites": "Für die Messung benutzte Satelliten",
+       "exif-gpsstatus": "Empfängerstatus",
+       "exif-gpsmeasuremode": "Messverfahren",
+       "exif-gpsdop": "Messgenauigkeit",
+       "exif-gpsspeedref": "Geschwindigkeitseinheit",
+       "exif-gpsspeed": "Geschwindigkeit des GPS-Empfängers",
+       "exif-gpstrackref": "Referenz für Bewegungsrichtung",
+       "exif-gpstrack": "Bewegungsrichtung",
+       "exif-gpsimgdirectionref": "Referenz für die Ausrichtung des Bildes",
+       "exif-gpsimgdirection": "Bildrichtung",
+       "exif-gpsmapdatum": "Geodätisches Referenzsystem",
+       "exif-gpsdestlatituderef": "Referenz für die Breite",
+       "exif-gpsdestlatitude": "Geografische Breite Zielpunkt",
+       "exif-gpsdestlongituderef": "Referenz für die Länge",
+       "exif-gpsdestlongitude": "Geografische Länge Zielpunkt",
+       "exif-gpsdestbearingref": "Referenz für Motivrichtung",
+       "exif-gpsdestbearing": "Motivrichtung",
+       "exif-gpsdestdistanceref": "Referenz für die Motiventfernung",
+       "exif-gpsdestdistance": "Motiventfernung",
+       "exif-gpsprocessingmethod": "Name des GPS-Verfahrens",
+       "exif-gpsareainformation": "Name des GPS-Gebietes",
+       "exif-gpsdatestamp": "GPS-Datum",
+       "exif-gpsdifferential": "GPS-Differentialkorrektur",
+       "exif-jpegfilecomment": "JPEG-Dateikommentar",
+       "exif-keywords": "Stichwörter",
+       "exif-worldregioncreated": "Weltregion in der das Foto aufgenommen wurde",
+       "exif-countrycreated": "Staat in dem das Foto aufgenommen wurde",
+       "exif-countrycodecreated": "Code für den Staat in dem das Foto aufgenommen wurde",
+       "exif-provinceorstatecreated": "Provinz oder Gliedstaat in dem das Foto aufgenommen wurde",
+       "exif-citycreated": "Stadt in der das Foto aufgenommen wurde",
+       "exif-sublocationcreated": "Bereich der Stadt in der das Foto aufgenommen wurde",
+       "exif-worldregiondest": "Gezeigte Weltregionen",
+       "exif-countrydest": "Gezeigter Staat",
+       "exif-countrycodedest": "Code für den gezeigten Staat",
+       "exif-provinceorstatedest": "Gezeigte Provinz oder angezeigter Gliedstaat",
+       "exif-citydest": "Gezeigte Stadt",
+       "exif-sublocationdest": "Bereich der gezeigten Stadt",
+       "exif-objectname": "Kurztitel",
+       "exif-specialinstructions": "Besondere Anweisungen",
+       "exif-headline": "Titel",
+       "exif-credit": "Namensnennung/Veröffentlicher",
+       "exif-source": "Quelle",
+       "exif-editstatus": "Redaktioneller Status des Fotos",
+       "exif-urgency": "Dringlichkeit",
+       "exif-fixtureidentifier": "Kolumne",
+       "exif-locationdest": "Dargestellter Standort",
+       "exif-locationdestcode": "Code für den dargestellten Standort",
+       "exif-objectcycle": "Veröffentlichungszeitraum während eines Tages für den dieses Medium bestimmt ist",
+       "exif-contact": "Kontaktinformationen",
+       "exif-writer": "Verfasser",
+       "exif-languagecode": "Sprache",
+       "exif-iimversion": "IIM-Version",
+       "exif-iimcategory": "Kategorie",
+       "exif-iimsupplementalcategory": "Zusätzliche Kategorien",
+       "exif-datetimeexpires": "Nicht verwenden nach",
+       "exif-datetimereleased": "Veröffentlicht am",
+       "exif-originaltransmissionref": "Code des Standorts von dem das Foto übermittelt wurde",
+       "exif-identifier": "Kennung",
+       "exif-lens": "Verwendetes Objektiv",
+       "exif-serialnumber": "Seriennummer der Kamera",
+       "exif-cameraownername": "Kamerabesitzer",
+       "exif-label": "Bezeichnung",
+       "exif-datetimemetadata": "Datum zu dem die Metadaten letztmalig geändert wurden",
+       "exif-nickname": "Gebräuchlicher Name des Fotos",
+       "exif-rating": "Bewertung (aus 5)",
+       "exif-rightscertificate": "Rechteverwaltungszertifikat",
+       "exif-copyrighted": "Urheberrechtsstatus",
+       "exif-copyrightowner": "Urheberrechtsinhaber",
+       "exif-usageterms": "Nutzungsbedingungen",
+       "exif-webstatement": "Online-Urheberrechtsangabe",
+       "exif-originaldocumentid": "Eindeutige Kennung des ursprünglichen Dokuments",
+       "exif-licenseurl": "URL der Urheberrechtsangabe (Lizenz)",
+       "exif-morepermissionsurl": "Alternative Lizenzinformationen",
+       "exif-attributionurl": "Bei Weiterverwendung dieses Werks, bitte verlinken auf:",
+       "exif-preferredattributionname": "Bei Weiterverwendung dieses Werks, bitte benennen:",
+       "exif-pngfilecomment": "PNG-Dateikommentar",
+       "exif-disclaimer": "Haftungsausschluss",
+       "exif-contentwarning": "Inhaltswarnung",
+       "exif-giffilecomment": "GIF-Dateikommentar",
+       "exif-intellectualgenre": "Art des Mediums",
+       "exif-subjectnewscode": "Themencode",
+       "exif-scenecode": "IPTC-Ansichtcode",
+       "exif-event": "Dargestelltes Ereignis",
+       "exif-organisationinimage": "Dargestellte Organisation",
+       "exif-personinimage": "Dargestellte Person",
+       "exif-originalimageheight": "Bildhöhe vor dem Zuschneiden",
+       "exif-originalimagewidth": "Bildbreite vor dem Zuschneiden",
+       "exif-compression-1": "Unkomprimiert",
+       "exif-compression-2": "CCITT Gruppe 3 1-dimensionale modifizierte Huffman-Lauflängenkodierung",
+       "exif-compression-3": "CCITT Gruppe 3 Faxcodierung",
+       "exif-compression-4": "CCITT Gruppe 4 Faxcodierung",
+       "exif-copyrighted-true": "Geschützt",
+       "exif-copyrighted-false": "Urheberrechtsstatus nicht festgelegt",
+       "exif-photometricinterpretation-0": "Schwarzweiß (Weiß ist 0)",
+       "exif-photometricinterpretation-1": "Schwarzweiß (Schwarz ist 0)",
+       "exif-photometricinterpretation-3": "Palette",
+       "exif-photometricinterpretation-4": "Transparenzmaske",
+       "exif-photometricinterpretation-5": "Getrennt (Wahrscheinlich CMYK)",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (ICC-Kodierung)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (ITU-Kodierung)",
+       "exif-photometricinterpretation-32803": "Farbfilteranordnung",
+       "exif-photometricinterpretation-34892": "Linear roh",
+       "exif-unknowndate": "Unbekanntes Datum",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Horizontal gespiegelt",
+       "exif-orientation-3": "Um 180° gedreht",
+       "exif-orientation-4": "Vertikal gespiegelt",
+       "exif-orientation-5": "Entgegen dem Uhrzeigersinn um 90° gedreht und vertikal gespiegelt",
+       "exif-orientation-6": "Um 90° entgegen dem Uhrzeigersinn gedreht",
+       "exif-orientation-7": "Um 90° im Uhrzeigersinn gedreht und vertikal gespiegelt",
+       "exif-orientation-8": "Um 90° im Uhrzeigersinn gedreht",
+       "exif-planarconfiguration-1": "Grobformat",
+       "exif-planarconfiguration-2": "Planarformat",
+       "exif-colorspace-65535": "Nicht kalibriert",
+       "exif-componentsconfiguration-0": "Existiert nicht",
+       "exif-exposureprogram-0": "Unbekannt",
+       "exif-exposureprogram-1": "Manuell",
+       "exif-exposureprogram-2": "Standardprogramm",
+       "exif-exposureprogram-3": "Zeitautomatik",
+       "exif-exposureprogram-4": "Blendenautomatik",
+       "exif-exposureprogram-5": "Kreativprogramm mit Bevorzugung hoher Schärfentiefe",
+       "exif-exposureprogram-6": "Action-Programm mit Bevorzugung einer kurzen Belichtungszeit",
+       "exif-exposureprogram-7": "Portrait-Programm",
+       "exif-exposureprogram-8": "Landschaftsaufnahmen",
+       "exif-subjectdistance-value": "$1 Meter",
+       "exif-meteringmode-0": "Unbekannt",
+       "exif-meteringmode-1": "Durchschnittlich",
+       "exif-meteringmode-2": "Mittenzentriert",
+       "exif-meteringmode-3": "Spotmessung",
+       "exif-meteringmode-4": "Mehrfachspotmessung",
+       "exif-meteringmode-5": "Muster",
+       "exif-meteringmode-6": "Bildteil",
+       "exif-meteringmode-255": "Unbekannt",
+       "exif-lightsource-0": "Unbekannt",
+       "exif-lightsource-1": "Tageslicht",
+       "exif-lightsource-2": "Fluoreszierend",
+       "exif-lightsource-3": "Glühlampe",
+       "exif-lightsource-4": "Blitz",
+       "exif-lightsource-9": "Schönes Wetter",
+       "exif-lightsource-10": "Bewölkt",
+       "exif-lightsource-11": "Schatten",
+       "exif-lightsource-12": "Tageslicht fluoreszierend (D 5700–7100 K)",
+       "exif-lightsource-13": "Tagesweiß fluoreszierend (N 4600–5400 K)",
+       "exif-lightsource-14": "Kaltweiß fluoreszierend (W 3900–4500 K)",
+       "exif-lightsource-15": "Weiß fluoreszierend (WW 3200–3700 K)",
+       "exif-lightsource-17": "Standardlicht A",
+       "exif-lightsource-18": "Standardlicht B",
+       "exif-lightsource-19": "Standardlicht C",
+       "exif-lightsource-24": "ISO Studio Kunstlicht",
+       "exif-lightsource-255": "Andere Lichtquelle",
+       "exif-flash-fired-0": "kein Blitz",
+       "exif-flash-fired-1": "Blitz ausgelöst",
+       "exif-flash-return-0": "Blitz sendet keine Daten",
+       "exif-flash-return-2": "keine Reflexion des Blitz festgestellt",
+       "exif-flash-return-3": "Reflexion des Blitz festgestellt",
+       "exif-flash-mode-1": "erzwungenes Blitzen",
+       "exif-flash-mode-2": "Blitz abgeschaltet",
+       "exif-flash-mode-3": "Automatik",
+       "exif-flash-function-1": "Keine Blitzfunktion",
+       "exif-flash-redeye-1": "Rotaugen Reduktion",
+       "exif-focalplaneresolutionunit-2": "Zoll",
+       "exif-sensingmethod-1": "Nicht angegeben",
+       "exif-sensingmethod-2": "Ein-Chip-Farbsensor",
+       "exif-sensingmethod-3": "Zwei-Chip-Farbsensor",
+       "exif-sensingmethod-4": "Drei-Chip-Farbsensor",
+       "exif-sensingmethod-5": "Farbraum sequentiell Sensor",
+       "exif-sensingmethod-7": "Trilinearer Sensor",
+       "exif-sensingmethod-8": "Farbraum linear sequentieller Sensor",
+       "exif-filesource-3": "Digitale Standbildkamera",
+       "exif-scenetype-1": "Normal",
+       "exif-customrendered-0": "Standard",
+       "exif-customrendered-1": "Benutzerdefiniert",
+       "exif-exposuremode-0": "Automatische Belichtung",
+       "exif-exposuremode-1": "Manuelle Belichtung",
+       "exif-exposuremode-2": "Belichtungsreihe",
+       "exif-whitebalance-0": "Automatisch",
+       "exif-whitebalance-1": "Manuell",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Landschaft",
+       "exif-scenecapturetype-2": "Portrait",
+       "exif-scenecapturetype-3": "Nachtszene",
+       "exif-gaincontrol-0": "Keine",
+       "exif-gaincontrol-1": "Gering",
+       "exif-gaincontrol-2": "High gain up",
+       "exif-gaincontrol-3": "Low gain down",
+       "exif-gaincontrol-4": "High gain down",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Schwach",
+       "exif-contrast-2": "Stark",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Gering",
+       "exif-saturation-2": "Hoch",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Gering",
+       "exif-sharpness-2": "Stark",
+       "exif-subjectdistancerange-0": "Unbekannt",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Nah",
+       "exif-subjectdistancerange-3": "Entfernt",
+       "exif-gpslatitude-n": "nördl. Breite",
+       "exif-gpslatitude-s": "südl. Breite",
+       "exif-gpslongitude-e": "östl. Länge",
+       "exif-gpslongitude-w": "westl. Länge",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|Meter}} über dem Meeresspiegel",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|Meter}} unter dem Meeresspiegel",
+       "exif-gpsstatus-a": "Messung läuft",
+       "exif-gpsstatus-v": "Interoperabilität von Messungen",
+       "exif-gpsmeasuremode-2": "2-dimensionale Messung",
+       "exif-gpsmeasuremode-3": "3-dimensionale Messung",
+       "exif-gpsspeed-k": "km/h",
+       "exif-gpsspeed-m": "mph",
+       "exif-gpsspeed-n": "Knoten",
+       "exif-gpsdestdistance-k": "Kilometer",
+       "exif-gpsdestdistance-m": "Meilen",
+       "exif-gpsdestdistance-n": "Nautische Meilen",
+       "exif-gpsdop-excellent": "Ausgezeichnet ($1)",
+       "exif-gpsdop-good": "Gut ($1)",
+       "exif-gpsdop-moderate": "Mittel ($1)",
+       "exif-gpsdop-fair": "Akzeptabel ($1)",
+       "exif-gpsdop-poor": "Schwach ($1)",
+       "exif-objectcycle-a": "Nur morgens",
+       "exif-objectcycle-p": "Nur abends",
+       "exif-objectcycle-b": "Sowohl morgens und abends",
+       "exif-gpsdirection-t": "Tatsächliche Richtung",
+       "exif-gpsdirection-m": "Magnetische Richtung",
+       "exif-ycbcrpositioning-1": "Zentriert",
+       "exif-ycbcrpositioning-2": "Benachbart",
+       "exif-dc-contributor": "Beteiligte",
+       "exif-dc-coverage": "Örtlicher oder zeitlicher Rahmen des Mediums",
+       "exif-dc-date": "Datumsangaben",
+       "exif-dc-publisher": "Veröffentlicher",
+       "exif-dc-relation": "Ähnliche Medien",
+       "exif-dc-rights": "Rechte",
+       "exif-dc-source": "Medienherkunft",
+       "exif-dc-type": "Medientyp",
+       "exif-rating-rejected": "Abgelehnt",
+       "exif-isospeedratings-overflow": "Größer als 65535",
+       "exif-iimcategory-ace": "Kunst, Kultur und Unterhaltung",
+       "exif-iimcategory-clj": "Kriminalität und Recht",
+       "exif-iimcategory-dis": "Katastrophen und Unfälle",
+       "exif-iimcategory-fin": "Wirtschaft und Geschäfte",
+       "exif-iimcategory-edu": "Bildung",
+       "exif-iimcategory-evn": "Umwelt",
+       "exif-iimcategory-hth": "Gesundheit",
+       "exif-iimcategory-hum": "Interessensgebiet",
+       "exif-iimcategory-lab": "Arbeit",
+       "exif-iimcategory-lif": "Lifestyle und Freizeit",
+       "exif-iimcategory-pol": "Politik",
+       "exif-iimcategory-rel": "Religion und Glaube",
+       "exif-iimcategory-sci": "Wissenschaft und Technologie",
+       "exif-iimcategory-soi": "Soziale Themen",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Krieg, Konflikte und Unruhen",
+       "exif-iimcategory-wea": "Wetter",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Niedrig ($1)",
+       "exif-urgency-high": "Hoch ($1)",
+       "exif-urgency-other": "Benutzerdefinierte Priorität ($1)"
+}
diff --git a/languages/i18n/exif/diq.json b/languages/i18n/exif/diq.json
new file mode 100644 (file)
index 0000000..1842374
--- /dev/null
@@ -0,0 +1,382 @@
+{
+       "@metadata": {
+               "authors": [
+                       "1917 Ekim Devrimi",
+                       "Asmen",
+                       "Aspar",
+                       "Erdemaslancan",
+                       "Gorizon",
+                       "Gırd",
+                       "Marmase",
+                       "Mirzali",
+                       "Xoser"
+               ]
+       },
+       "exif-imagewidth": "Herayiye",
+       "exif-imagelength": "Berziye",
+       "exif-bitspersample": "yew parçe de biti",
+       "exif-compression": "Planê kompresyoni",
+       "exif-photometricinterpretation": "Compozisyonê pixeli",
+       "exif-orientation": "Berhetkerdış",
+       "exif-samplesperpixel": "teneyê parçeyi",
+       "exif-planarconfiguration": "Rezeyê datayi",
+       "exif-ycbcrsubsampling": "Subsampleyi ebatê Y heta C",
+       "exif-ycbcrpositioning": "pozisyonê Y u C",
+       "exif-xresolution": "Qerarê verıniye",
+       "exif-yresolution": "Rezulasyanê derganiye",
+       "exif-stripoffsets": "Cayê melumatê resımi",
+       "exif-rowsperstrip": "Yew reze de teneyê dizeyi",
+       "exif-stripbytecounts": "Yew compresyon de dizeyi",
+       "exif-jpeginterchangeformat": "JPEG SOI rê ayar bike",
+       "exif-jpeginterchangeformatlength": "Bitê data yê JPEG",
+       "exif-whitepoint": "noktayê sipe ye kromaticiti",
+       "exif-primarychromaticities": "Kromaticitiyê eveli",
+       "exif-ycbcrcoefficients": "Cayê rengi yê transformasyon metriksê koefişinti",
+       "exif-referenceblackwhite": "Çiftyê siya u sipe değerê referansi",
+       "exif-datetime": "Zeman u tarixê vırnayışê dosya",
+       "exif-imagedescription": "Serê resimi",
+       "exif-make": "Vıraştoğê kamera",
+       "exif-model": "Modelê kamera",
+       "exif-software": "Karenaye nusnerek",
+       "exif-artist": "Nuştoğ",
+       "exif-copyright": "Wahirê copyrighti",
+       "exif-exifversion": "Versiyonê Exif",
+       "exif-flashpixversion": "Versiyonê Flashpix rê biyo desteg",
+       "exif-colorspace": "Cayê rengi",
+       "exif-componentsconfiguration": "manayê qisimê hemi",
+       "exif-compressedbitsperpixel": "Modê komprasyonê resimi",
+       "exif-pixelxdimension": "Herayeya resimi",
+       "exif-pixelydimension": "Berzeya resimi",
+       "exif-usercomment": "Mışewrey karberi",
+       "exif-relatedsoundfile": "Derhekê dosya yê vengi",
+       "exif-datetimeoriginal": "Demê afernayışê dayeyo sıfteyıni",
+       "exif-datetimedigitized": "Dema  dijital kerdışi",
+       "exif-subsectime": "ZemanTarix saniyeyibini",
+       "exif-subsectimeoriginal": "ZemanTarixOricinal saniyeyibini",
+       "exif-subsectimedigitized": "ZemanTarixDicital saniyeyibini",
+       "exif-exposuretime": "Zemanê orta de vinderdişi",
+       "exif-exposuretime-format": "$1 san ($2)",
+       "exif-fnumber": "F Amar",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Programê Orta de Vinderdişi",
+       "exif-spectralsensitivity": "Hesasiyetê spektrali",
+       "exif-isospeedratings": "ISO değerê piti",
+       "exif-shutterspeedvalue": "Pêtiya Deklanşor dê APEX'i",
+       "exif-aperturevalue": "Akerdina APEX'i",
+       "exif-brightnessvalue": "Berqeya APEX'i",
+       "exif-exposurebiasvalue": "Orta de viderdişi",
+       "exif-maxaperturevalue": "Tewr zafeyê wareyê apertur",
+       "exif-subjectdistance": "Duriyê ey",
+       "exif-meteringmode": "Modê pemawitişi",
+       "exif-lightsource": "Çimeyê roşni",
+       "exif-flash": "Flaş",
+       "exif-focallength": "Deganiyê fokus ê lensi",
+       "exif-focallength-format": "$1 mm",
+       "exif-subjectarea": "Wareyê ey",
+       "exif-flashenergy": "Kuvetê flaşi",
+       "exif-focalplanexresolution": "Focal plane X resolution",
+       "exif-focalplaneyresolution": "Focal plane Y resolution",
+       "exif-focalplaneresolutionunit": "Focal plane resolution unit",
+       "exif-subjectlocation": "cayê kerdoxi",
+       "exif-exposureindex": "rêzê (indexê) pozi",
+       "exif-sensingmethod": "metodê hiskerdışi",
+       "exif-filesource": "Çımey dosya",
+       "exif-scenetype": "tipa sehneyi",
+       "exif-customrendered": "karê resmê xususiyi",
+       "exif-exposuremode": "poz kerdışi",
+       "exif-whitebalance": "Dengeyo Sipe",
+       "exif-digitalzoomratio": "dijital zoom",
+       "exif-focallengthin35mmfilm": "filmê 35 mm'yın de dûriyê merkeziyi",
+       "exif-scenecapturetype": "tipa sehne gırewtışi",
+       "exif-gaincontrol": "kontrolê sehneyi",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Saturasyon",
+       "exif-sharpness": "Tucî",
+       "exif-devicesettingdescription": "daşınasnayişê 'eyarê cihazi",
+       "exif-subjectdistancerange": "Menzilê mesafeyê kerdoği",
+       "exif-imageuniqueid": "şınasnameyê resmê xususiyi",
+       "exif-gpsversionid": "revizyonê GPSyi",
+       "exif-gpslatituderef": "paralelê zıme û veroci",
+       "exif-gpslatitude": "Verıniye",
+       "exif-gpslongituderef": "meridyenê rocvetış û rocawavi",
+       "exif-gpslongitude": "Derganiye",
+       "exif-gpsaltituderef": "çımeyê berziyi",
+       "exif-gpsaltitude": "Berziye",
+       "exif-gpstimestamp": "Wextê GPSyi (se'eta atomiki)",
+       "exif-gpssatellites": "Qandê peymıtışi antenê ke vıstê kar",
+       "exif-gpsstatus": "cayê gırewtoxi",
+       "exif-gpsmeasuremode": "moda peymawıtışi",
+       "exif-gpsdop": "karê peymawıtışi",
+       "exif-gpsspeedref": "Uniteyê pitî",
+       "exif-gpsspeed": "pêtîyê receiveri",
+       "exif-gpstrackref": "Referansê ke ser hetiyê hereketi",
+       "exif-gpstrack": "hetiyê hereketi",
+       "exif-gpsimgdirectionref": "Referansê ke ser hetiyê resimi",
+       "exif-gpsimgdirection": "Hetiyê resimi",
+       "exif-gpsmapdatum": "Geodetic survey data used",
+       "exif-gpsdestlatituderef": "Reference for latitude of destination",
+       "exif-gpsdestlatitude": "Latitude destination",
+       "exif-gpsdestlongituderef": "Reference for longitude of destination",
+       "exif-gpsdestlongitude": "Longitude of destination",
+       "exif-gpsdestbearingref": "Reference for bearing of destination",
+       "exif-gpsdestbearing": "Bearing of destination",
+       "exif-gpsdestdistanceref": "Referanse ke ser duriyeyê cayê şiyayişi",
+       "exif-gpsdestdistance": "Duriyeyê cayê şiyayişi",
+       "exif-gpsprocessingmethod": "Name of GPS processing method",
+       "exif-gpsareainformation": "Nameyê wareyê GPSi",
+       "exif-gpsdatestamp": "Tarixê GPSi",
+       "exif-gpsdifferential": "GPS differential correction",
+       "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-jpegfilecomment": "Vatışê dosyada JPEG'i",
+       "exif-keywords": "Qesa kelimey",
+       "exif-worldregioncreated": "Mıntıqaya dınyaya ke tede resım gêriyayayo",
+       "exif-countrycreated": "Dewleta ke tede resım gêriyayayo",
+       "exif-countrycodecreated": "Kodê dewleta ke tede resım anciyayo",
+       "exif-provinceorstatecreated": "Wılayet ya zi dewleta ke tede resım anciyayo",
+       "exif-citycreated": "Sûka ke tede resım gêriyayayo",
+       "exif-sublocationcreated": "Bın lokasyonê resimê suker da cı grot",
+       "exif-worldregiondest": "Wareyo ke mocneyêno",
+       "exif-countrydest": "Dewleta ke mocneyêna",
+       "exif-countrycodedest": "Kodê dewleto ke mocneyoêno",
+       "exif-provinceorstatedest": "Eyalet yana wılayeto ke mocneyêno",
+       "exif-citydest": "Sûka ke mocneyêna",
+       "exif-sublocationdest": "Mıntıqeya sûker mocnayış",
+       "exif-objectname": "Sernuşteyo qıckek",
+       "exif-specialinstructions": "Talimatê xısusi",
+       "exif-headline": "Sername",
+       "exif-credit": "Kredi/Destegdaren",
+       "exif-source": "Çıme",
+       "exif-editstatus": "Resmi vurnayışê weziyeti",
+       "exif-urgency": "Aciliyet",
+       "exif-fixtureidentifier": "Namey fiksturi",
+       "exif-locationdest": "Tarifê cay",
+       "exif-locationdestcode": "Lokasyon kodi vaciya",
+       "exif-objectcycle": "Qandê medyay deme u roce cı",
+       "exif-contact": "Melumatê irtıbati",
+       "exif-writer": "Nuştekar",
+       "exif-languagecode": "Zıwan",
+       "exif-iimversion": "Verqaydê IIM",
+       "exif-iimcategory": "Kategoriye",
+       "exif-iimsupplementalcategory": "Kategoriyê temamkerdışi",
+       "exif-datetimeexpires": "No peyra mekarênê",
+       "exif-datetimereleased": "Bıroşe",
+       "exif-originaltransmissionref": "Oricinal pusula da kodê açarnayışi",
+       "exif-identifier": "Şınasnayer",
+       "exif-lens": "Lensê karkerdışi",
+       "exif-serialnumber": "Seri nımreyê kamera",
+       "exif-cameraownername": "Wayırê kamera",
+       "exif-label": "Etiket",
+       "exif-datetimemetadata": "Malumatê metamalumati peyd timarya",
+       "exif-nickname": "Bêresmi namey cı",
+       "exif-rating": "Rey dayış (5i sera)",
+       "exif-rightscertificate": "Sertifikayê idariya heqan",
+       "exif-copyrighted": "Weziyetê telifi",
+       "exif-copyrightowner": "Wayırê Telifi",
+       "exif-usageterms": "Şertê karkerdışi",
+       "exif-webstatement": "Heqê telifiya miyandene",
+       "exif-originaldocumentid": "Xasiya ID ya dokuman de orcinali",
+       "exif-licenseurl": "Qandê Lisans de heqê telifiye URL",
+       "exif-morepermissionsurl": "Alternatif malumatê lisansi",
+       "exif-attributionurl": "No nuşte çı wext karyayo, şıma ra reca gre dekerê de",
+       "exif-preferredattributionname": "No nuşte çı wext karyayo, Şıma ra reca morkerê",
+       "exif-pngfilecomment": "Vatışê dosyada PNG'i",
+       "exif-disclaimer": "Redê mesuliyeti",
+       "exif-contentwarning": "İkazê zerreki",
+       "exif-giffilecomment": "vatena dosya da GIF'i",
+       "exif-intellectualgenre": "Babeta çêki",
+       "exif-subjectnewscode": "Kodê muhtewa",
+       "exif-scenecode": "IPTC kodê sahni",
+       "exif-event": "Weqaya ke nameycıyo ravreno",
+       "exif-organisationinimage": "Organizasyono ke ravêreno",
+       "exif-personinimage": "Merdumo ke nameycıyo ravêreno",
+       "exif-originalimageheight": "Nêbırniyane ra ver derganiya resımi",
+       "exif-originalimagewidth": "Nêbırniyane ra ver verındiya resımi",
+       "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "Nêdegusneyayo",
+       "exif-compression-2": "CCITT Grube 3 1-ebadın kodkerdışê dergiya gurenayışê Huffmanio modifiyekerde",
+       "exif-compression-3": "CCITT Group 3 fax kodkerdış",
+       "exif-compression-4": "CCITT Group 4 fax kodkerdış",
+       "exif-compression-5": "LZW",
+       "exif-compression-6": "JPEG (verên)",
+       "exif-compression-7": "JPEG",
+       "exif-compression-8": "Deflate (Adobe)",
+       "exif-compression-32773": "PackBits (Macintosh RLE)",
+       "exif-compression-32946": "Deflate (PKZIP)",
+       "exif-compression-34712": "JPEG2000",
+       "exif-copyrighted-true": "Heqê telifiye",
+       "exif-copyrighted-false": "Telifiya waziyeta eyara",
+       "exif-photometricinterpretation-1": "Siya u sıpê (Siya 0)",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-unknowndate": "Tarix nizanyano",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "kıştki-ser çarnayiş",
+       "exif-orientation-3": "180° çariyayo",
+       "exif-orientation-4": "dergî-ser çarnayiş",
+       "exif-orientation-5": "90° çariyayo (çepser) u dergî-ser çarnayiş",
+       "exif-orientation-6": "90° CCW çariyayo (hetê saetê ra)",
+       "exif-orientation-7": "90° çariyayo (hetê se'eti ra) u dergî-ser çarnayiş",
+       "exif-orientation-8": "90° CW çariyayo (çepser)",
+       "exif-planarconfiguration-1": "chunky format",
+       "exif-planarconfiguration-2": "planar format",
+       "exif-xyresolution-i": "$1 dpi",
+       "exif-xyresolution-c": "$1 dpc",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "Kalibrasyon nêvıraziyayo",
+       "exif-componentsconfiguration-0": "çini yo",
+       "exif-componentsconfiguration-1": "Y",
+       "exif-componentsconfiguration-2": "Cb",
+       "exif-componentsconfiguration-3": "Cr",
+       "exif-componentsconfiguration-4": "R",
+       "exif-componentsconfiguration-5": "G",
+       "exif-componentsconfiguration-6": "B",
+       "exif-exposureprogram-0": "nêdiya daşınasnayişi",
+       "exif-exposureprogram-1": "Pê/bı dest",
+       "exif-exposureprogram-2": "Programo normal",
+       "exif-exposureprogram-3": "'ewwıliyê kıfşi",
+       "exif-exposureprogram-4": "'ewwıliyê denklanşori",
+       "exif-exposureprogram-5": "proğramo vıraştox",
+       "exif-exposureprogram-6": "proğramê hareketi (qey antışê sehneyê hereketıni)",
+       "exif-exposureprogram-7": "moda portreyi (zemin keno gerzawın, portre zi keno net u hema anceno)",
+       "exif-exposureprogram-8": "moda peyzaji (têna çi yo ke dûri re çım verdeno)",
+       "exif-subjectdistance-value": "$1 metreyi",
+       "exif-meteringmode-0": "Nêzanaye",
+       "exif-meteringmode-1": "orta",
+       "exif-meteringmode-2": "gıraniyê merkeziyi ser",
+       "exif-meteringmode-3": "noqtayın",
+       "exif-meteringmode-4": "zaf noqtayın",
+       "exif-meteringmode-5": "Desenın/fesalın",
+       "exif-meteringmode-6": "qısmî",
+       "exif-meteringmode-255": "Bin",
+       "exif-lightsource-0": "Nêzanaye",
+       "exif-lightsource-1": "Roşnê Tici",
+       "exif-lightsource-2": "Florasant",
+       "exif-lightsource-3": "roşnê bêbızate",
+       "exif-lightsource-4": "Flaş",
+       "exif-lightsource-9": "saye/hewayo weşî",
+       "exif-lightsource-10": "hewra/hora",
+       "exif-lightsource-11": "Sersiyın",
+       "exif-lightsource-12": "Florasanê roşnê tici (D 5700 – 7100K)",
+       "exif-lightsource-13": "Florasanê sipe ye roci (N 4600 – 5400K)",
+       "exif-lightsource-14": "Florasanê sipe ye hewli (W 3900 – 4500K)",
+       "exif-lightsource-15": "Florasanê sipe (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Roşna standarde A",
+       "exif-lightsource-18": "Roşna standarde B",
+       "exif-lightsource-19": "Roşna standarde C",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-22": "D75",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "ISO volframê studyoyi",
+       "exif-lightsource-255": "Çimeyê roşni yê bini",
+       "exif-flash-fired-0": "flash nêteqa/ta nêkewt",
+       "exif-flash-fired-1": "flash teqa/ta kewt",
+       "exif-flash-return-0": "moda roştê gêrayoxi qefelnaye yo",
+       "exif-flash-return-2": "roşto gêrayox çino",
+       "exif-flash-return-3": "roşto gêrayox tesbit bı/ca bı",
+       "exif-flash-mode-1": "flaşo mecburi teqa",
+       "exif-flash-mode-2": "flasho mecburi qefelnaye yo",
+       "exif-flash-mode-3": "moda otomatike",
+       "exif-flash-function-1": "Fonksiyonê flaşi çini yo",
+       "exif-flash-redeye-1": "modê çim-sur tay kerdişi",
+       "exif-focalplaneresolutionunit-2": "inchî",
+       "exif-sensingmethod-1": "daşinasnayişê ey çino",
+       "exif-sensingmethod-2": "Sensorê wareyê rengê yew-çipi",
+       "exif-sensingmethod-3": "Sensorê wareyê rengê di-çipi",
+       "exif-sensingmethod-4": "Sensorê wareyê rengê hirê-çipi",
+       "exif-sensingmethod-5": "sensora têrêz a ke rengın his kena",
+       "exif-sensingmethod-7": "Sensorê hirê-çizgi",
+       "exif-sensingmethod-8": "sensora aritmetik a ke rengın his kena",
+       "exif-filesource-3": "Dicital makinay kamera",
+       "exif-scenetype-1": "ca de fotoğraf ker",
+       "exif-customrendered-0": "Prosesê normali",
+       "exif-customrendered-1": "proseso xususi",
+       "exif-exposuremode-0": "pozkerdışê otomatiki",
+       "exif-exposuremode-1": "pozkerdışê manueli",
+       "exif-exposuremode-2": "Auto bracket",
+       "exif-whitebalance-0": "balansê sıpi yo otomatiki",
+       "exif-whitebalance-1": "balansê sıpi yo manueli",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Manzara",
+       "exif-scenecapturetype-2": "Portre",
+       "exif-scenecapturetype-3": "şew-antış",
+       "exif-gaincontrol-0": "Çıniyo",
+       "exif-gaincontrol-1": "Low gain up",
+       "exif-gaincontrol-2": "High gain up",
+       "exif-gaincontrol-3": "Low gain down",
+       "exif-gaincontrol-4": "High gain down",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Nerm",
+       "exif-contrast-2": "Huşk",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "mırdiyo kêm",
+       "exif-saturation-2": "mırdiyo ziyed",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Nerm",
+       "exif-sharpness-2": "Huşk",
+       "exif-subjectdistancerange-0": "Nêzanaye",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Vênayışo nêzdi",
+       "exif-subjectdistancerange-3": "Vênayışo dûri",
+       "exif-gpslatitude-n": "Veriniya zımeyi",
+       "exif-gpslatitude-s": "Veriniya veroci",
+       "exif-gpslongitude-e": "derganiya rocvetış",
+       "exif-gpslongitude-w": "Derganiya rocawan",
+       "exif-gpsaltitude-above-sealevel": "Sewiye de roy ra $1 {{PLURAL:$1|metre|metre}} cordeyo",
+       "exif-gpsaltitude-below-sealevel": "Sewiye de roy ra $1 {{PLURAL:$1|metre|metre}} cêrdeyo",
+       "exif-gpsstatus-a": "peymawıtış dewam keno",
+       "exif-gpsstatus-v": "şuxuliyayişê peymawıtışi",
+       "exif-gpsmeasuremode-2": "2-dimensional measurement",
+       "exif-gpsmeasuremode-3": "3-dimensional measurement",
+       "exif-gpsspeed-k": "km/s",
+       "exif-gpsspeed-m": "Mil/saat",
+       "exif-gpsspeed-n": "milê deryayi",
+       "exif-gpsdestdistance-k": "Kilometre",
+       "exif-gpsdestdistance-m": "Mil",
+       "exif-gpsdestdistance-n": "Milê roy",
+       "exif-gpsdop-excellent": "($1) Weşo",
+       "exif-gpsdop-good": "($1) rındo",
+       "exif-gpsdop-moderate": "($1) ne rınd nezi aro",
+       "exif-gpsdop-fair": "($1) idare keno",
+       "exif-gpsdop-poor": "($1) neqim nê keno",
+       "exif-objectcycle-a": "Teq ê şıfaqi",
+       "exif-objectcycle-p": "Teq ê şani",
+       "exif-objectcycle-b": "Heme şew u roce",
+       "exif-gpsdirection-t": "hetê raştê ey",
+       "exif-gpsdirection-m": "hetê manyetikê ey",
+       "exif-ycbcrpositioning-1": "Wertekerdış",
+       "exif-ycbcrpositioning-2": "Wayırê-site",
+       "exif-dc-contributor": "İştıraqkeri",
+       "exif-dc-coverage": "Hal ya zi demê xozerrenayışê medya",
+       "exif-dc-date": "Tarix(i)",
+       "exif-dc-publisher": "Hesrekar",
+       "exif-dc-relation": "Medyay cı",
+       "exif-dc-rights": "Heqi",
+       "exif-dc-source": "Medyaya çımeyi",
+       "exif-dc-type": "Babeta medyay",
+       "exif-rating-rejected": "Red ke",
+       "exif-isospeedratings-overflow": "65535 ra gırdo",
+       "exif-maxaperturevalue-value": "$1 APEX (f/$2)",
+       "exif-iimcategory-ace": "Zagon, kultur u keyfiye",
+       "exif-iimcategory-clj": "Arey u huquq",
+       "exif-iimcategory-dis": "Weqey u Qezey",
+       "exif-iimcategory-fin": "Ekonomi u Kar",
+       "exif-iimcategory-edu": "Terbiyet",
+       "exif-iimcategory-evn": "Dorme",
+       "exif-iimcategory-hth": "Weşeyey",
+       "exif-iimcategory-hum": "Elekey merduman",
+       "exif-iimcategory-lab": "Gurweyayin",
+       "exif-iimcategory-lif": "Cıwiyayış u keyf kerdış",
+       "exif-iimcategory-pol": "Siyaset",
+       "exif-iimcategory-rel": "Din u iman kerdış",
+       "exif-iimcategory-sci": "Zanış u teknoloci",
+       "exif-iimcategory-soi": "Sosyal meseley",
+       "exif-iimcategory-spo": "Spor",
+       "exif-iimcategory-war": "Leci, pê şanayış u dışmeney",
+       "exif-iimcategory-wea": "Hewa",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "($1) Kemiyo",
+       "exif-urgency-high": "( $1 ) Vêşiyo",
+       "exif-urgency-other": "Sıftê  şınasiya karberi ($1)"
+}
diff --git a/languages/i18n/exif/dsb.json b/languages/i18n/exif/dsb.json
new file mode 100644 (file)
index 0000000..865fbe1
--- /dev/null
@@ -0,0 +1,349 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Michawiki",
+                       "Nepl1",
+                       "Pe7er",
+                       "Qualia"
+               ]
+       },
+       "exif-imagewidth": "Šyrokosć",
+       "exif-imagelength": "Wusokosć",
+       "exif-bitspersample": "Bity na komponentu",
+       "exif-compression": "Wašnja kompriměrowanja",
+       "exif-photometricinterpretation": "Zestajenje pikselow",
+       "exif-orientation": "Wusměrjenje kamery",
+       "exif-samplesperpixel": "Licba komponentow",
+       "exif-planarconfiguration": "Struktura datow",
+       "exif-ycbcrsubsampling": "Subsamplingowa rata wót Y do C",
+       "exif-ycbcrpositioning": "Pozicijoněrowanje Y a C",
+       "exif-xresolution": "Horicontalne optiske wótgranicowanje",
+       "exif-yresolution": "Wertikalne optiske wótgranicowanje",
+       "exif-stripoffsets": "městnosć wobrazowych datow",
+       "exif-rowsperstrip": "Licba smužkow na rědku",
+       "exif-stripbytecounts": "Byty na kompriměrowanu rědku",
+       "exif-jpeginterchangeformat": "Offset k JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Byty JPEG-dataje",
+       "exif-whitepoint": "kwalita barwy běłego dypka",
+       "exif-primarychromaticities": "Kwalita barwy primarnych barwow.",
+       "exif-ycbcrcoefficients": "YCbCr-koeficienty",
+       "exif-referenceblackwhite": "Pórik carneje a běłeje referencneje gódnoty",
+       "exif-datetime": "Cas składowanja",
+       "exif-imagedescription": "Mě wobraza",
+       "exif-make": "Zgótowaŕ kamery",
+       "exif-model": "Model kamery",
+       "exif-software": "Softwara",
+       "exif-artist": "Awtor",
+       "exif-copyright": "Wobsejźaŕ stwóriśelskich pšawow",
+       "exif-exifversion": "Wersija Exif",
+       "exif-flashpixversion": "Pódpěrana wersija Flashpix",
+       "exif-colorspace": "Barwowy rum",
+       "exif-componentsconfiguration": "Wóznam jadnotliwych komponentow",
+       "exif-compressedbitsperpixel": "Kompriměrowane bity na piksel",
+       "exif-pixelxdimension": "Šyrokosć wobraza",
+       "exif-pixelydimension": "Wusokosć wobraza",
+       "exif-usercomment": "Komentary wužywarja",
+       "exif-relatedsoundfile": "Pśisłušna zukowa dataja",
+       "exif-datetimeoriginal": "Datum a cas wutwórjenja datow",
+       "exif-datetimedigitized": "Datum a cas digitalizěrowanja",
+       "exif-subsectime": "Źěły sekundow za datum a cas (1/100 s)",
+       "exif-subsectimeoriginal": "Źěły sekundow za datum a cas wutwórjenja datow (1/100 s)",
+       "exif-subsectimedigitized": "Źěły sekundow za datum a cas digitalizěrowanja (1/100 s)",
+       "exif-exposuretime": "Cas wobswětlenja",
+       "exif-exposuretime-format": "$1 sek ($2)",
+       "exif-fnumber": "Blenda",
+       "exif-exposureprogram": "Program wobswětlenja",
+       "exif-spectralsensitivity": "Spektralna cuśiwosć",
+       "exif-isospeedratings": "Cuśiwosć filma abo sensora (ISO)",
+       "exif-shutterspeedvalue": "Gódnota wobswětleńskego casa APEX",
+       "exif-aperturevalue": "APEX-blenda",
+       "exif-brightnessvalue": "APEX-swětłosć",
+       "exif-exposurebiasvalue": "Směrnica za wobswětlenje",
+       "exif-maxaperturevalue": "Nejžwětša blenda",
+       "exif-subjectdistance": "zdalonosć",
+       "exif-meteringmode": "Wašnja měrjenja",
+       "exif-lightsource": "Žrědło swětła",
+       "exif-flash": "Błysk",
+       "exif-focallength": "Palna dalokosć",
+       "exif-subjectarea": "wobłuk",
+       "exif-flashenergy": "mócnosć błyska",
+       "exif-focalplanexresolution": "horicontalne optiske wótgranicowanje sensora",
+       "exif-focalplaneyresolution": "wertikalne optiske wótgranicowanje sensora",
+       "exif-focalplaneresolutionunit": "Jadnotka optiskego wótgranicowanja sensora",
+       "exif-subjectlocation": "Městno motiwa",
+       "exif-exposureindex": "Indeks wobswětlenja",
+       "exif-sensingmethod": "wašnja měrjenja",
+       "exif-filesource": "Žrědło dataje",
+       "exif-scenetype": "Typ sceny",
+       "exif-customrendered": "Wót wužywarja definěrowane wobźěłanje wobraza",
+       "exif-exposuremode": "Modus wobswětlenja",
+       "exif-whitebalance": "Balansa běłosći",
+       "exif-digitalzoomratio": "digitalne zoomowanje",
+       "exif-focallengthin35mmfilm": "Palna dalokosć (wótpowědnik za małe wobraze)",
+       "exif-scenecapturetype": "wašnja nagraśa",
+       "exif-gaincontrol": "Regulěrowanje sceny",
+       "exif-contrast": "kontrast",
+       "exif-saturation": "naseśenje",
+       "exif-sharpness": "wótšosć",
+       "exif-devicesettingdescription": "Nastajenja aparata",
+       "exif-subjectdistancerange": "Zdalonosć motiwa",
+       "exif-imageuniqueid": "Jadnorazny ID wobraza",
+       "exif-gpsversionid": "Wersija taga GPS",
+       "exif-gpslatituderef": "Pódpołnocna abo pódpołdnjowa šyrina",
+       "exif-gpslatitude": "Šyrina",
+       "exif-gpslongituderef": "Pódzajtšna abo pódwjacorna dliń",
+       "exif-gpslongitude": "Dliń",
+       "exif-gpsaltituderef": "Referencna wusokosć",
+       "exif-gpsaltitude": "Wusokosć",
+       "exif-gpstimestamp": "GPS-cas",
+       "exif-gpssatellites": "Za měrjenje wužywane satelity",
+       "exif-gpsstatus": "Status pśidostawaka",
+       "exif-gpsmeasuremode": "wašnja měrjenja",
+       "exif-gpsdop": "dokradnosć měry",
+       "exif-gpsspeedref": "Jadnotka spěšnosći",
+       "exif-gpsspeed": "Spěšnosć GPS-pśidostawaka",
+       "exif-gpstrackref": "Referenca za směr pógibowanja",
+       "exif-gpstrack": "směr pógibowanja",
+       "exif-gpsimgdirectionref": "Referenca směra wobraza",
+       "exif-gpsimgdirection": "Směr wobraza",
+       "exif-gpsmapdatum": "Wužyte geodetiske dataje",
+       "exif-gpsdestlatituderef": "Referenca šyriny celowego městna",
+       "exif-gpsdestlatitude": "Šyrina celowego městna",
+       "exif-gpsdestlongituderef": "Referenca dlini celowego městna",
+       "exif-gpsdestlongitude": "Dliń abo celowe městno",
+       "exif-gpsdestbearingref": "Referenca za wusměrjenje",
+       "exif-gpsdestbearing": "Wusměrjenje",
+       "exif-gpsdestdistanceref": "Referenca za distancu k celowemu městnu",
+       "exif-gpsdestdistance": "Distanca k celowemu městnu",
+       "exif-gpsprocessingmethod": "Mě metody pśeźěłanja GPS",
+       "exif-gpsareainformation": "Mě wobcerka GPS",
+       "exif-gpsdatestamp": "GPS-datum",
+       "exif-gpsdifferential": "Diferencialna korektura GPS",
+       "exif-jpegfilecomment": "Komentar JPEG-dataje",
+       "exif-keywords": "Klucowe słowa",
+       "exif-worldregioncreated": "Swětowy region, w kótaremž wobraz jo se fotografěrował",
+       "exif-countrycreated": "Kraj, w kótaremž wobraz jo se fotografěrował",
+       "exif-countrycodecreated": "Code za kraj, w kótaremž wobraz jo se fotografěrował",
+       "exif-provinceorstatecreated": "Prowinca abo źělny stat, w kótaremž wobraz jo se fotografěrował",
+       "exif-citycreated": "Město, w kótaremž wobraz jo se fotografěrował",
+       "exif-sublocationcreated": "Wobcerk města, w kótaremž wobraz jo se fotografěrował",
+       "exif-worldregiondest": "Pokazany swětowy region",
+       "exif-countrydest": "Pokazany kraj",
+       "exif-countrycodedest": "Kod za pokazany kraj",
+       "exif-provinceorstatedest": "Pokazana prowinca abo pokazany źělny stat",
+       "exif-citydest": "Pokazane město",
+       "exif-sublocationdest": "Wobcerk pokazanego města",
+       "exif-objectname": "Krotki titel",
+       "exif-specialinstructions": "Wósebne instrukcije",
+       "exif-headline": "Nadpismo",
+       "exif-credit": "Spomnjenje/Póbitowaŕ",
+       "exif-source": "Žrědło",
+       "exif-editstatus": "Wobzěłowański status wobraza",
+       "exif-urgency": "Nuznosć",
+       "exif-fixtureidentifier": "Mě kolumny",
+       "exif-locationdest": "Zwobraznjone městno",
+       "exif-locationdestcode": "Code zwobraznjonego městna",
+       "exif-objectcycle": "Cas dnja, za kótaryž medium jo myslony",
+       "exif-contact": "Kontaktowe informacije",
+       "exif-writer": "Pisaŕ",
+       "exif-languagecode": "Rěc",
+       "exif-iimversion": "IIM-wersija",
+       "exif-iimcategory": "Kategorija",
+       "exif-iimsupplementalcategory": "Pśidatne kategorije",
+       "exif-datetimeexpires": "Njewužywaś pó",
+       "exif-datetimereleased": "Wózjawjony dnja",
+       "exif-originaltransmissionref": "Code městna, wót kótaregož jo se foto pśenjasło",
+       "exif-identifier": "Identifikator",
+       "exif-lens": "Wužyty objektiw",
+       "exif-serialnumber": "Serijowy numer kamery",
+       "exif-cameraownername": "Wobsejźaŕ kamery",
+       "exif-label": "Pomjenjenje",
+       "exif-datetimemetadata": "Datum, gaž metadaty su se slědny raz změnili",
+       "exif-nickname": "Nałožne mě wobraza",
+       "exif-rating": "Pógódnośenje (z 5)",
+       "exif-rightscertificate": "Certifikat zastojanja pšawow",
+       "exif-copyrighted": "Status awtorskego pšawa",
+       "exif-copyrightowner": "Wobsejźaŕ awtorskego pšawa",
+       "exif-usageterms": "Wužywańske wuměnjenja",
+       "exif-webstatement": "Online-deklaracija wó awtorskem pšawje",
+       "exif-originaldocumentid": "Jasny ID spócetnego dokumenta",
+       "exif-licenseurl": "URL za licencu awtorskego pšawa",
+       "exif-morepermissionsurl": "Alternatiwne licencne informacije",
+       "exif-attributionurl": "Pśi zasejwužywanju toś togo źěła, wótkaž pšosym na:",
+       "exif-preferredattributionname": "Pśi zasejwužywanju toś togo źěła, naspomnjej pšosym",
+       "exif-pngfilecomment": "Komentar PNG-dataje",
+       "exif-disclaimer": "Wuzamknjenje rukowanja",
+       "exif-contentwarning": "Wopśimjeśowe warnowanje",
+       "exif-giffilecomment": "Komentar GIF-dataje",
+       "exif-intellectualgenre": "Typ medija",
+       "exif-subjectnewscode": "Temowy code",
+       "exif-scenecode": "IPTC-code naglěda",
+       "exif-event": "Zwobraznjone tšojenje",
+       "exif-organisationinimage": "Zwobraznjona organizacija",
+       "exif-personinimage": "Zwobraznjona wósoba",
+       "exif-originalimageheight": "Wusokosć wobraza pśed pśirězowanim",
+       "exif-originalimagewidth": "Šyrokosć wobraza pśed pśirězowanim",
+       "exif-compression-1": "Njekompriměrowany",
+       "exif-compression-2": "CCITT kupka 3 jadnodimensionalne modificěrowane koděrowanje Huffman běgoweje dłujkosći",
+       "exif-compression-3": "CCITT kupka 3 faksowe koděrowanje",
+       "exif-compression-4": "CCITT kupka 4 faksowe koděrowanje",
+       "exif-copyrighted-true": "Pśez awtorske pšawo šćitany",
+       "exif-copyrighted-false": "Status awtorskego pšawa njepóstajony",
+       "exif-unknowndate": "Njeznaty datum",
+       "exif-orientation-1": "Normalny",
+       "exif-orientation-2": "horicontalnje wobrośony",
+       "exif-orientation-3": "Pśewobrośony",
+       "exif-orientation-4": "wertikalnje wobrośony",
+       "exif-orientation-5": "Wobrośony wó 90° nalěwo a wertikalnje",
+       "exif-orientation-6": "Wó 90° pśeśiwo směroju špěry zwjertnjony",
+       "exif-orientation-7": "Wobrośony wó 90° napšawo a wertikalnje",
+       "exif-orientation-8": "Wó 90° do směra špěry zwjertnjony",
+       "exif-planarconfiguration-1": "gropny format",
+       "exif-planarconfiguration-2": "płony format",
+       "exif-xyresolution-i": "$1 dpi (dypkow na col)",
+       "exif-colorspace-65535": "Njekalibrěrowany",
+       "exif-componentsconfiguration-0": "njeeksistěrujo",
+       "exif-exposureprogram-0": "Njedefiněrowane",
+       "exif-exposureprogram-1": "manualnje",
+       "exif-exposureprogram-2": "Normalny program",
+       "exif-exposureprogram-3": "Priorita blendy",
+       "exif-exposureprogram-4": "Priorita blendy",
+       "exif-exposureprogram-5": "Kreatiwny program (wjelika dłym wótšosći)",
+       "exif-exposureprogram-6": "Aktiwny program (wjelika malsnosć momentoweje bildki)",
+       "exif-exposureprogram-7": "portretowy modus (za closeup-fotografije z njefokusěrowaneju slězynu)",
+       "exif-exposureprogram-8": "wobraze krajiny",
+       "exif-subjectdistance-value": "{{PLURAL:$1|$1 meter|$1 metra|$1 metry}}",
+       "exif-meteringmode-0": "Njeznaty",
+       "exif-meteringmode-1": "Pśerězna gódnota",
+       "exif-meteringmode-2": "srjejźa wusměrjone",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "MultiSpot",
+       "exif-meteringmode-5": "Muster",
+       "exif-meteringmode-6": "Źělny",
+       "exif-meteringmode-255": "Drugi",
+       "exif-lightsource-0": "Njeznaty",
+       "exif-lightsource-1": "Dnjowne swětło",
+       "exif-lightsource-2": "Fluorescentny",
+       "exif-lightsource-3": "Žaglawka",
+       "exif-lightsource-4": "Błysk",
+       "exif-lightsource-9": "Rědne wjedro",
+       "exif-lightsource-10": "Mrokawe wjedro",
+       "exif-lightsource-11": "Seń",
+       "exif-lightsource-12": "Dnjowe swětło fluorescentne (D 5700 – 7100K)",
+       "exif-lightsource-13": "Dnjowoběły fluorescentny (N 4600 – 5400K)",
+       "exif-lightsource-14": "Zymny běły fluorescentny (W 3900 – 4500K)",
+       "exif-lightsource-15": "Běły fluorescentny (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standardne swětło A",
+       "exif-lightsource-18": "Standardne swětło B",
+       "exif-lightsource-19": "Standardne swětło C",
+       "exif-lightsource-24": "ISO studijowe swětło",
+       "exif-lightsource-255": "Druge žrědło swětła",
+       "exif-flash-fired-0": "Błysk njejo se zapusćił",
+       "exif-flash-fired-1": "Błysk jo se zapusćił",
+       "exif-flash-return-0": "žedna funkcija za nadejźenje refleksije fotobłyska",
+       "exif-flash-return-2": "Refleksija fotobłyska njejo se nadejšła",
+       "exif-flash-return-3": "Refleksija fotobłyska jo se nadejšła",
+       "exif-flash-mode-1": "wunuźone błysknjenje",
+       "exif-flash-mode-2": "wunuźone błysknjenje pódtłocone",
+       "exif-flash-mode-3": "awtomatiski modus",
+       "exif-flash-function-1": "Njejo błyskowa funkcija",
+       "exif-flash-redeye-1": "Modus redukcije cerwjenych wócow",
+       "exif-focalplaneresolutionunit-2": "cole",
+       "exif-sensingmethod-1": "Njedefiněrujobny",
+       "exif-sensingmethod-2": "Jadnochipowy barwowy sensor ruma",
+       "exif-sensingmethod-3": "Dwuchipowy barwowy sensor ruma",
+       "exif-sensingmethod-4": "Tśichipowy barwowy sensor ruma",
+       "exif-sensingmethod-5": "Sekwencielny barwowy sensor ruma",
+       "exif-sensingmethod-7": "Tśilinearny sensor",
+       "exif-sensingmethod-8": "Sekwencielny barwowy linearny sensor",
+       "exif-filesource-3": "Digitalna stojańskowobrazowa kamera",
+       "exif-scenetype-1": "Direktnje fotografěrowany wobraz",
+       "exif-customrendered-0": "Normalne wobźěłanje",
+       "exif-customrendered-1": "Wužywarske wobźěłanje",
+       "exif-exposuremode-0": "Awtomatiske wobswětlenje",
+       "exif-exposuremode-1": "Manuelna blenda",
+       "exif-exposuremode-2": "Awtoblenda",
+       "exif-whitebalance-0": "Awtomatiska rownowaga běłosći",
+       "exif-whitebalance-1": "Manuelna rownowaga běłosći",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Krajina",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Nocna scena",
+       "exif-gaincontrol-0": "Žedne",
+       "exif-gaincontrol-1": "Małe zmócnjenje",
+       "exif-gaincontrol-2": "wjelike zmócnjenje",
+       "exif-gaincontrol-3": "małe wósłabjenje",
+       "exif-gaincontrol-4": "Wjelike wósłabjenje",
+       "exif-contrast-0": "Normalny",
+       "exif-contrast-1": "Słaby",
+       "exif-contrast-2": "Mócny",
+       "exif-saturation-0": "Normalny",
+       "exif-saturation-1": "małe naseśenje",
+       "exif-saturation-2": "wjelike naseśenje",
+       "exif-sharpness-0": "Normalny",
+       "exif-sharpness-1": "Słaby",
+       "exif-sharpness-2": "Mócny",
+       "exif-subjectdistancerange-0": "Njeznaty",
+       "exif-subjectdistancerange-1": "makro",
+       "exif-subjectdistancerange-2": "Bliski rozglěd",
+       "exif-subjectdistancerange-3": "Daloki rozglěd",
+       "exif-gpslatitude-n": "Pódpołnocna šyrina",
+       "exif-gpslatitude-s": "Pódpołdnjowa šyrina",
+       "exif-gpslongitude-e": "Pódzajtšna dliń",
+       "exif-gpslongitude-w": "Pódwjacorna dliń",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter|metraj|metry|metrow}} nad mórskeju głaźinu",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter|metraj|metry|metrow}} pód mórskeju głaźinu",
+       "exif-gpsstatus-a": "Měrjenje w běgu",
+       "exif-gpsstatus-v": "kompatibelnosć měry",
+       "exif-gpsmeasuremode-2": "2-dimensionalne měrjenje",
+       "exif-gpsmeasuremode-3": "3-dimensionalne měrjenje",
+       "exif-gpsspeed-k": "Kilometry na góźinu",
+       "exif-gpsspeed-m": "Mile na góźinu",
+       "exif-gpsspeed-n": "Suki",
+       "exif-gpsdestdistance-k": "Kilometry",
+       "exif-gpsdestdistance-m": "Mile",
+       "exif-gpsdestdistance-n": "Mórske mile",
+       "exif-gpsdop-excellent": "Wuběrny ($1)",
+       "exif-gpsdop-good": "Dobry ($1)",
+       "exif-gpsdop-moderate": "Wósrědny ($1)",
+       "exif-gpsdop-fair": "Akceptabelny ($1)",
+       "exif-gpsdop-poor": "Špatny ($1)",
+       "exif-objectcycle-a": "Jano zajtša",
+       "exif-objectcycle-p": "Jano wjacor",
+       "exif-objectcycle-b": "Ako zajtša tak teke wjacor",
+       "exif-gpsdirection-t": "Wopšawdny směr",
+       "exif-gpsdirection-m": "Magnetiski směr",
+       "exif-ycbcrpositioning-1": "Centrěrowany",
+       "exif-ycbcrpositioning-2": "Susedny",
+       "exif-dc-contributor": "Sobuźěłaśerje",
+       "exif-dc-coverage": "Městny abo casny wobłuk mediuma",
+       "exif-dc-date": "Pódaśa datuma",
+       "exif-dc-publisher": "Wudawaŕ",
+       "exif-dc-relation": "Pśiswójźbne medije",
+       "exif-dc-rights": "Pšawa",
+       "exif-dc-source": "Medijowe žrědło",
+       "exif-dc-type": "Medijowy typ",
+       "exif-rating-rejected": "Wótpokazany",
+       "exif-isospeedratings-overflow": "Wětša ako 65535",
+       "exif-iimcategory-ace": "wuměłstwo, kultura a rozdrosćenje",
+       "exif-iimcategory-clj": "Kriminalita a pšawo",
+       "exif-iimcategory-dis": "Katastrofy a znjeglucenja",
+       "exif-iimcategory-fin": "Góspodarstwo a pśekupjenja",
+       "exif-iimcategory-edu": "Kubłanje",
+       "exif-iimcategory-evn": "Wobswět",
+       "exif-iimcategory-hth": "Strowje",
+       "exif-iimcategory-hum": "Zajm",
+       "exif-iimcategory-lab": "Źěło",
+       "exif-iimcategory-lif": "Žywjeński stil a wólny cas",
+       "exif-iimcategory-pol": "Politika",
+       "exif-iimcategory-rel": "Nabóžnina a wěra",
+       "exif-iimcategory-sci": "Wědomnosć a technika",
+       "exif-iimcategory-soi": "Socialne problemy",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Wójna, konfilkty a zběgi",
+       "exif-iimcategory-wea": "Wjedro",
+       "exif-urgency-normal": "Normalna ($1)",
+       "exif-urgency-low": "Niska ($1)",
+       "exif-urgency-high": "Wusoka ($1)",
+       "exif-urgency-other": "Swójska priorita ($1)"
+}
diff --git a/languages/i18n/exif/el.json b/languages/i18n/exif/el.json
new file mode 100644 (file)
index 0000000..213a6db
--- /dev/null
@@ -0,0 +1,359 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Assassingr",
+                       "Badseed",
+                       "Consta",
+                       "Crazymadlover",
+                       "Dead3y3",
+                       "Evropi",
+                       "Geraki",
+                       "Giorgos456",
+                       "Glavkos",
+                       "Lou",
+                       "Omnipaedista",
+                       "Protnet",
+                       "SucreRouge",
+                       "ZaDiak"
+               ]
+       },
+       "exif-imagewidth": "Πλάτος",
+       "exif-imagelength": "Υψος",
+       "exif-bitspersample": "Bits ανά στοιχείο",
+       "exif-compression": "Σχήμα συμπίεσης",
+       "exif-photometricinterpretation": "Σύνθεση των pixel",
+       "exif-orientation": "Προσανατολισμός",
+       "exif-samplesperpixel": "Αριθμός στοιχείων",
+       "exif-planarconfiguration": "Διάταξη δεδομένων",
+       "exif-ycbcrsubsampling": "Αναλογικό δείγμα σε φωτεινότητα και χρώμα",
+       "exif-ycbcrpositioning": "Ρύθμιση φωτεινότητας και χρώματος",
+       "exif-xresolution": "Οριζόντια ανάλυση",
+       "exif-yresolution": "Κατακόρυφη ανάλυση",
+       "exif-stripoffsets": "Τοποθέτηση δεδομένων εικόνας",
+       "exif-rowsperstrip": "Αριθμός σειρών ανά λωρίδα",
+       "exif-stripbytecounts": "Bytes ανά συμπιεσμένη λωρίδα",
+       "exif-jpeginterchangeformat": "Μετάθεση σε JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bytes δεδομένων JPEG",
+       "exif-whitepoint": "Χρωματικός προσδιορισμός λευκού",
+       "exif-primarychromaticities": "Πρωτεύοντες χρωματισμοί",
+       "exif-ycbcrcoefficients": "Συντελεστές μητρών μετασχηματισμού χρώματος",
+       "exif-referenceblackwhite": "Ζεύγος μαύρων και άσπρων αξιών αναφοράς",
+       "exif-datetime": "Ημερομηνία και ώρα τελευταίας επεξεργασίας αρχείου",
+       "exif-imagedescription": "Τίτλος εικόνας",
+       "exif-make": "Κατασκευαστής φωτογραφικής μηχανής",
+       "exif-model": "Μοντέλο φωτογραφικής μηχανής",
+       "exif-software": "Λογισμικό που χρησιμοποιήθηκε",
+       "exif-artist": "Δημιουργός",
+       "exif-copyright": "Ιδιοκτήτης του copyright",
+       "exif-exifversion": "Έκδοση exif",
+       "exif-flashpixversion": "Υποστηριζόμενη έκδοση Flashpix",
+       "exif-colorspace": "Χρωματική περιοχή",
+       "exif-componentsconfiguration": "Νόημα του κάθε στοιχείου",
+       "exif-compressedbitsperpixel": "Κατάσταση συμπίεσης εικόνας",
+       "exif-pixelxdimension": "Πλάτος εικόνας",
+       "exif-pixelydimension": "Ύψος εικόνας",
+       "exif-usercomment": "Σχόλια χρήστη",
+       "exif-relatedsoundfile": "Σχετικό αρχείο ήχου",
+       "exif-datetimeoriginal": "Ημερομηνία και ώρα της παραγωγής ψηφιακών δεδομένων",
+       "exif-datetimedigitized": "Ημερομηνία και ώρα της μετατροπής σε ψηφιακή μορφή",
+       "exif-subsectime": "ΗμερομηνίαΏρα κλάσματα δευτερολέπτου",
+       "exif-subsectimeoriginal": "ΗμερομηνίαΏραΑρχικά κλάσματα δευτερολέπτου",
+       "exif-subsectimedigitized": "ΗμερομηνίαΏρα κλάσματα δευτερολέπτου ψηφιοποίησης",
+       "exif-exposuretime": "Χρόνος έκθεσης",
+       "exif-exposuretime-format": "$1 δευτ ($2)",
+       "exif-fnumber": "Αριθμός F",
+       "exif-exposureprogram": "Πρόγραμμα έκθεσης",
+       "exif-spectralsensitivity": "Ευαισθησία φάσματος",
+       "exif-isospeedratings": "Βαθμολόγηση ταχύτητας ISO",
+       "exif-shutterspeedvalue": "APEX ταχύτητα κλείστρου",
+       "exif-aperturevalue": "Διάφραγμα APEX",
+       "exif-brightnessvalue": "APEX φωτεινότητα",
+       "exif-exposurebiasvalue": "Προτεραιότητα έκθεσης",
+       "exif-maxaperturevalue": "Μέγιστο διάφραγμα ξηράς",
+       "exif-subjectdistance": "Απόσταση αντικειμένου",
+       "exif-meteringmode": "Κατάσταση λειτουργίας φωτόμετρου",
+       "exif-lightsource": "Πηγή φωτός",
+       "exif-flash": "Φλας",
+       "exif-focallength": "Εστιακή απόσταση του φακού",
+       "exif-subjectarea": "Θεματική περιοχή",
+       "exif-flashenergy": "Ενέργεια του φλας",
+       "exif-focalplanexresolution": "Ανάλυση εστιακού επιπέδου Χ",
+       "exif-focalplaneyresolution": "Ανάλυση εστιακού επιπέδου Υ",
+       "exif-focalplaneresolutionunit": "Μονάδα μέτρησης ανάλυσης εστιακού επιπέδου",
+       "exif-subjectlocation": "Τοποθέτηση του αντικειμένου",
+       "exif-exposureindex": "Δείκτης έκθεσης",
+       "exif-sensingmethod": "Μέθοδος αισθητήρα",
+       "exif-filesource": "Πηγή αρχείου",
+       "exif-scenetype": "Τύπος σκηνής",
+       "exif-customrendered": "Ειδική επεξεργασία εικόνας",
+       "exif-exposuremode": "Κατάσταση λειτουργίας έκθεσης",
+       "exif-whitebalance": "Ισορροπία των λευκών",
+       "exif-digitalzoomratio": "Αναλογία ψηφιακού zoom",
+       "exif-focallengthin35mmfilm": "Εστιακή απόσταση σε φιλμ 35 mm",
+       "exif-scenecapturetype": "Τύπος σύλληψης της σκηνής",
+       "exif-gaincontrol": "Έλεγχος πεδίου",
+       "exif-contrast": "Αντίθεση",
+       "exif-saturation": "Κορεσμός",
+       "exif-sharpness": "Όξυνση",
+       "exif-devicesettingdescription": "Περιγραφή των ρυθμίσεων του μηχανήματος",
+       "exif-subjectdistancerange": "Περιοχή διακύμανσης της απόστασης του αντικειμένου",
+       "exif-imageuniqueid": "Μονοσήμαντη ταυτοποίηση εικόνας",
+       "exif-gpsversionid": "Έκδοση με GPS tag",
+       "exif-gpslatituderef": "Βόρειο ή Νότιο γεωγραφικό πλάτος",
+       "exif-gpslatitude": "Γεωγραφικό πλάτος",
+       "exif-gpslongituderef": "Ανατολικό ή Δυτικό γεωγραφικό μήκος",
+       "exif-gpslongitude": "Γεωγραφικό μήκος",
+       "exif-gpsaltituderef": "Αναφορές υψομέτρου",
+       "exif-gpsaltitude": "Υψόμετρο",
+       "exif-gpstimestamp": "Ώρα GPS (ατομικό ρολόι)",
+       "exif-gpssatellites": "Δορυφόροι που χρησιμοποιήθηκαν για τις μετρήσεις",
+       "exif-gpsstatus": "Κατάσταση δέκτη",
+       "exif-gpsmeasuremode": "Τρόπος λειτουργίας μετρήσεων",
+       "exif-gpsdop": "Ακρίβεια μέτρησης",
+       "exif-gpsspeedref": "Μονάδα μέτρησης ταχύτητας",
+       "exif-gpsspeed": "Ταχύτητα δέκτη GPS",
+       "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": "Όνομα περιοχής GPS",
+       "exif-gpsdatestamp": "Ημερομηνία GPS",
+       "exif-gpsdifferential": "Διαφορική διόρθωση GPS",
+       "exif-jpegfilecomment": "Σχόλιο αρχείου JPEG",
+       "exif-keywords": "Λέξεις κλειδιά",
+       "exif-worldregioncreated": "Περιοχή του κόσμου που τραβήξατε τη φωτογραφία",
+       "exif-countrycreated": "Χώρα που τραβήξατε τη φωτογραφία στο",
+       "exif-countrycodecreated": "Κωδικός για τη χώρα ότι η φωτογραφία τραβήχτηκε στις",
+       "exif-provinceorstatecreated": "Επαρχία ή κράτους που τραβήξατε τη φωτογραφία στο",
+       "exif-citycreated": "Η πόλη που τραβήξατε τη φωτογραφία στο",
+       "exif-sublocationcreated": "Υποτοποθεσία της πόλης όπου τραβήχτηκε η φωτογραφία",
+       "exif-worldregiondest": "Περιοχή του κόσμου που εμφανίζεται",
+       "exif-countrydest": "Χώρα που εμφανίζεται",
+       "exif-countrycodedest": "Κωδικός για τη χώρα που εμφανίζεται",
+       "exif-provinceorstatedest": "Επαρχία ή κράτος που εμφανίζεται",
+       "exif-citydest": "Πόλη που εμφανίζεται",
+       "exif-sublocationdest": "Υποτοποθεσία της πόλης που εμφανίζεται",
+       "exif-objectname": "Συνοπτικός τίτλος",
+       "exif-specialinstructions": "Ειδικές οδηγίες",
+       "exif-headline": "Κύριος τίτλος",
+       "exif-credit": "Αναφορά/Πάροχος",
+       "exif-source": "Πηγή",
+       "exif-editstatus": "Συντακτικό καθεστώς της εικόνας",
+       "exif-urgency": "Χαρακτήρας επείγοντος",
+       "exif-fixtureidentifier": "Εντοιχισμένο όνομα",
+       "exif-locationdest": "Τοποθεσία που απεικονίζεται",
+       "exif-locationdestcode": "Κώδικος της  τοποθεσίας που απεικονίζεται",
+       "exif-objectcycle": "Ώρα της ημέρας για την οποία προορίζεται το ΜΜΕ",
+       "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": "Η ημερομηνία μετα-δεδομένων τροποποιήθηκε τελευταία",
+       "exif-nickname": "Ανεπίσημο όνομα της εικόνας",
+       "exif-rating": "Βαθμολογία (από 5)",
+       "exif-rightscertificate": "Πιστοποιητικό διαχείρισης δικαιωμάτων",
+       "exif-copyrighted": "Κατάσταση πνευματικών δικαιωμάτων:",
+       "exif-copyrightowner": "Κάτοχος των πνευματικών δικαιωμάτων",
+       "exif-usageterms": "Όροι χρήσης",
+       "exif-webstatement": "Online δήλωση πνευματικής ιδιοκτησίας",
+       "exif-originaldocumentid": "Μοναδικό αναγνωριστικό του αρχικού εγγράφου",
+       "exif-licenseurl": "Διεύθυνση URL για πνευματικά δικαιώματα άδειας χρήσης",
+       "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-2": "Εκτέλεση μήκους κωδικοποίησης CCITT Ομάδα 3 Μιας-Διαστάσεως Modified Huffman",
+       "exif-compression-3": "Κωδικοποίηση Φαξ CCITT Ομάδας 3",
+       "exif-compression-4": "Κωδικοποίηση Φαξ CCITT Ομάδας 4",
+       "exif-copyrighted-true": "Προστατεύεται από πνευματικά δικαιώματα",
+       "exif-copyrighted-false": "Δεν έχει οριστεί καθεστώς πνευματικών δικαιωμάτων",
+       "exif-photometricinterpretation-1": "Μαύρο και λευκό (Μαύρο 0)",
+       "exif-unknowndate": "Άγνωστη ημερομηνία",
+       "exif-orientation-1": "Φυσικός",
+       "exif-orientation-2": "Έχει αντιστραφεί οριζόντια.",
+       "exif-orientation-3": "Έχει περιστραφεί κατά 180° μοίρες.",
+       "exif-orientation-4": "Έχει αντιστραφεί κατακόρυφα.",
+       "exif-orientation-5": "Έχει περιστραφεί κατά 90° μοίρες με φορά αντίθετα προς τη φορά των δεικτών του ρολογιού και έχει αντιστραφεί κατακόρυφα.",
+       "exif-orientation-6": "Έχει περιστραφεί κατά 90° μοίρες CCW",
+       "exif-orientation-7": "Έχει περιστραφεί κατά 90° μοίρες κατά τη φορά των δεικτών του ρολογιού και έχει αντιστραφεί κατακόρυφα.",
+       "exif-orientation-8": "Περιστραμμένη κατά 90° μοίρες προς τη φορά των δεικτών του ρολογιού.",
+       "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-exposureprogram-5": "Δημιουργικό πρόγραμμα (με προτεραιότητα το βάθος πεδίου)",
+       "exif-exposureprogram-6": "Δημιουργικό πρόγραμμα (με προτεραιότητα την ταχύτητα του κλείστρου)",
+       "exif-exposureprogram-7": "Επιλογή λειτουργίας \"πορτραίτου\" (για φωτογραφίες closeup με το φόντο εκτός εστίασης)",
+       "exif-exposureprogram-8": "Επιλογή λειτουργίας \"τοπίου\" (για φωτογραφίες τοπίου με εστιασμένο φόντο)",
+       "exif-subjectdistance-value": "$1 μέτρα",
+       "exif-meteringmode-0": "Άγνωστη",
+       "exif-meteringmode-1": "Μέση τιμή",
+       "exif-meteringmode-2": "Μέση τιμή με έμφαση στο κέντρο",
+       "exif-meteringmode-3": "Ένα σημείο",
+       "exif-meteringmode-4": "Πολλά σημεία",
+       "exif-meteringmode-5": "Μοτίβο",
+       "exif-meteringmode-6": "Μερική",
+       "exif-meteringmode-255": "Άλλο",
+       "exif-lightsource-0": "Άγνωστη",
+       "exif-lightsource-1": "Φως ημέρας",
+       "exif-lightsource-2": "Φωσφορίζον",
+       "exif-lightsource-3": "Tungsten (φωτισμός από λυχνίες πυράκτωσης)",
+       "exif-lightsource-4": "Φλας",
+       "exif-lightsource-9": "Αίθριος καιρός",
+       "exif-lightsource-10": "Συννεφιά",
+       "exif-lightsource-11": "Σκιά",
+       "exif-lightsource-12": "Φως ημέρας φωσφορίζον (D 5700 – 7100K)",
+       "exif-lightsource-13": "Λευκό φως ημέρας  (N 4600 – 5400K)",
+       "exif-lightsource-14": "Κρύο λευκό φως fluorescent (W 3900 – 4500K)",
+       "exif-lightsource-15": "Λευκό φως φωσφορίζον (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Τυποποιημένος φωτισμός A",
+       "exif-lightsource-18": "Τυποποιημένος φωτισμός B",
+       "exif-lightsource-19": "Τυποποιημένος φωτισμός C",
+       "exif-lightsource-24": "Βολφράμιο ISO του εργαστηρίου",
+       "exif-lightsource-255": "Άλλη πηγή φωτός",
+       "exif-flash-fired-0": "Το φλας δεν πυροδοτήθηκε",
+       "exif-flash-fired-1": "Το φλας πυροδοτήθηκε",
+       "exif-flash-return-0": "λειτουργία μη επιστροφής φωτός από το στροβοσκόπιο",
+       "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-sensingmethod-7": "Τριγραμμικός αισθητήρας",
+       "exif-sensingmethod-8": "Γραμμικό συνεχές χρώμα",
+       "exif-filesource-3": "Ψηφιακή φωτογραφική μηχανή",
+       "exif-scenetype-1": "Εικόνα που φωτογραφήθηκε απ` ευθείας",
+       "exif-customrendered-0": "Κανονική επεξεργασία",
+       "exif-customrendered-1": "Ειδική επεξεργασία",
+       "exif-exposuremode-0": "Αυτόματη έκθεση",
+       "exif-exposuremode-1": "Χειροκίνητη έκθεση",
+       "exif-exposuremode-2": "Αυτόματο bracket",
+       "exif-whitebalance-0": "Αυτόματη ισορροπία των λευκών",
+       "exif-whitebalance-1": "Χειροκίνητη ισορροπία των λευκών",
+       "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-saturation-0": "Φυσικός",
+       "exif-saturation-1": "Χαμηλός κορεσμός",
+       "exif-saturation-2": "Υψηλός κορεσμός",
+       "exif-sharpness-0": "Φυσική",
+       "exif-sharpness-1": "Απαλή",
+       "exif-sharpness-2": "Σκληρή",
+       "exif-subjectdistancerange-0": "Άγνωστη",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Κοντινή λήψη",
+       "exif-subjectdistancerange-3": "Μακρινή λήψη",
+       "exif-gpslatitude-n": "Βόρειο γεωγραφικό πλάτος",
+       "exif-gpslatitude-s": "Νότιο γεωγραφικό πλάτος",
+       "exif-gpslongitude-e": "Ανατολικό γεωγραφικό μήκος",
+       "exif-gpslongitude-w": "Δυτικό γεωγραφικό μήκος",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|Meter|meters}} πάνω από το επίπεδο της θάλασσας",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|Meter|meters}} κάτω από το επίπεδο της θάλασσας",
+       "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-gpsdestdistance-m": "Μίλια",
+       "exif-gpsdestdistance-n": "Ναυτικά μίλια",
+       "exif-gpsdop-excellent": "Εξαιρετικά ( $1 )",
+       "exif-gpsdop-good": "Καλή ( $1 )",
+       "exif-gpsdop-moderate": "Μέτρια ($1)",
+       "exif-gpsdop-fair": "Ικανοποιητική ($1)",
+       "exif-gpsdop-poor": "Κακή ($1)",
+       "exif-objectcycle-a": "Πρωινή μόνο",
+       "exif-objectcycle-p": "Βραδινή μόνο",
+       "exif-objectcycle-b": "Πρωί και βράδυ",
+       "exif-gpsdirection-t": "Πραγματική κατεύθυνση",
+       "exif-gpsdirection-m": "Μαγνητική κατεύθυνση",
+       "exif-ycbcrpositioning-1": "Κέντρο",
+       "exif-ycbcrpositioning-2": "Κοινή-χωροθέτηση",
+       "exif-dc-contributor": "Συντελεστές",
+       "exif-dc-coverage": "Εδαφική και χρονική έκταση των μέσων ενημέρωσης",
+       "exif-dc-date": "Ημερομηνία (-ες)",
+       "exif-dc-publisher": "Εκδότης",
+       "exif-dc-relation": "Σχετικά μέσα",
+       "exif-dc-rights": "Δικαιώματα",
+       "exif-dc-source": "Μέσο προέλευσης",
+       "exif-dc-type": "Τύπος μέσου",
+       "exif-rating-rejected": "Απορρίφθηκε",
+       "exif-isospeedratings-overflow": "Μεγαλύτερο του 65535",
+       "exif-iimcategory-ace": "Τέχνες, πολιτισμός και ψυχαγωγία",
+       "exif-iimcategory-clj": "Έγκλημα και δίκαιο",
+       "exif-iimcategory-dis": "Καταστροφές και ατυχήματα",
+       "exif-iimcategory-fin": "Οικονομία και επιχειρήσεις",
+       "exif-iimcategory-edu": "Εκπαίδευση",
+       "exif-iimcategory-evn": "Περιβάλλον",
+       "exif-iimcategory-hth": "Υγεία",
+       "exif-iimcategory-hum": "Ανθρώπινου ενδιαφέροντος",
+       "exif-iimcategory-lab": "Εργασία",
+       "exif-iimcategory-lif": "Τρόπος ζωής και αναψυχή",
+       "exif-iimcategory-pol": "Πολιτική",
+       "exif-iimcategory-rel": "Θρησκεία και πεποιθήσεις",
+       "exif-iimcategory-sci": "Επιστήμη και τεχνολογία",
+       "exif-iimcategory-soi": "Κοινωνικά θέματα",
+       "exif-iimcategory-spo": "Αθλητικά",
+       "exif-iimcategory-war": "Πόλεμος, συγκρούσεις και αναταραχές",
+       "exif-iimcategory-wea": "Καιρός",
+       "exif-urgency-normal": "Κανονική ($1)",
+       "exif-urgency-low": "Χαμηλή ($1)",
+       "exif-urgency-high": "Υψηλή ($1)",
+       "exif-urgency-other": "Προτεραιότητα που ορίστηκε από το χρήστη ($1)"
+}
diff --git a/languages/i18n/exif/en-ca.json b/languages/i18n/exif/en-ca.json
new file mode 100644 (file)
index 0000000..5c01fbe
--- /dev/null
@@ -0,0 +1,23 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Dantman",
+                       "Techman224"
+               ]
+       },
+       "exif-ycbcrcoefficients": "Colour space transformation matrix coefficients",
+       "exif-colorspace": "Colour space",
+       "exif-licenseurl": "URL for copyright licence",
+       "exif-subjectdistance-value": "$1 metres",
+       "exif-meteringmode-2": "Centre weighted average",
+       "exif-sensingmethod-2": "One-chip colour area sensor",
+       "exif-sensingmethod-3": "Two-chip colour area sensor",
+       "exif-sensingmethod-4": "Three-chip colour area sensor",
+       "exif-sensingmethod-5": "Colour sequential area sensor",
+       "exif-sensingmethod-8": "Colour sequential linear sensor",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metre|metres}} above sea level",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metre|metres}} below sea level",
+       "exif-gpsspeed-k": "Kilometres per hour",
+       "exif-gpsdestdistance-k": "Kilometres",
+       "exif-ycbcrpositioning-1": "Centred"
+}
diff --git a/languages/i18n/exif/en-gb.json b/languages/i18n/exif/en-gb.json
new file mode 100644 (file)
index 0000000..b2dd9bd
--- /dev/null
@@ -0,0 +1,34 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Jon Harald Søby",
+                       "Lloffiwr",
+                       "Reedy",
+                       "Shirayuki"
+               ]
+       },
+       "exif-ycbcrcoefficients": "Colour space transformation matrix coefficients",
+       "exif-colorspace": "Colour space",
+       "exif-datetimedigitized": "Date and time of digitising",
+       "exif-subsectimedigitized": "DateTimeDigitised subseconds",
+       "exif-exposureprogram": "Exposure Programme",
+       "exif-licenseurl": "URL for copyright licence",
+       "exif-morepermissionsurl": "Alternative licencing information",
+       "exif-organisationinimage": "Organisation depicted",
+       "exif-exposureprogram-2": "Normal programme",
+       "exif-exposureprogram-5": "Creative programme (biased toward depth of field)",
+       "exif-exposureprogram-6": "Action programme (biased toward fast shutter speed)",
+       "exif-subjectdistance-value": "$1 metres",
+       "exif-meteringmode-2": "Centre weighted average",
+       "exif-sensingmethod-2": "One-chip colour area sensor",
+       "exif-sensingmethod-3": "Two-chip colour area sensor",
+       "exif-sensingmethod-4": "Three-chip colour area sensor",
+       "exif-sensingmethod-5": "Colour sequential area sensor",
+       "exif-sensingmethod-8": "Colour sequential linear sensor",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metre|metres}} above sea level",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metre|metres}} below sea level",
+       "exif-gpsspeed-k": "Kilometres per hour",
+       "exif-gpsdestdistance-k": "Kilometres",
+       "exif-ycbcrpositioning-1": "Centred",
+       "exif-iimcategory-lab": "Labour"
+}
diff --git a/languages/i18n/exif/eo.json b/languages/i18n/exif/eo.json
new file mode 100644 (file)
index 0000000..09c1772
--- /dev/null
@@ -0,0 +1,354 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Michawiki",
+                       "Mihxil",
+                       "Objectivesea",
+                       "Petrus Adamus",
+                       "Robin van der Vliet",
+                       "Tlustulimu",
+                       "Yekrats",
+                       "YvesNevelsteen"
+               ]
+       },
+       "exif-imagewidth": "Larĝeco",
+       "exif-imagelength": "Alteco",
+       "exif-bitspersample": "Bitokoj en komponanto",
+       "exif-compression": "Densiga procedo",
+       "exif-photometricinterpretation": "Komponaĵo de rastrumeroj",
+       "exif-orientation": "Orientiĝo",
+       "exif-samplesperpixel": "Nombro de komponaĵoj",
+       "exif-planarconfiguration": "Datuma aranĝo",
+       "exif-ycbcrsubsampling": "Subdiskretiga proporcio de Y al C",
+       "exif-ycbcrpositioning": "Y kaj C situado",
+       "exif-xresolution": "Horizontala distingivo",
+       "exif-yresolution": "Vertikala distingivo",
+       "exif-stripoffsets": "Loko de bilda datumo",
+       "exif-rowsperstrip": "Nombro de vicoj por strio",
+       "exif-stripbytecounts": "Bitikoj por densigita strio",
+       "exif-jpeginterchangeformat": "Flankigo al JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bitokoj de JPEG-datumo",
+       "exif-whitepoint": "Koloreco de blanka punkto",
+       "exif-primarychromaticities": "Kolorecoj de primaraĵoj",
+       "exif-ycbcrcoefficients": "Koeficientoj de kolorspaca transformiga matrikso",
+       "exif-referenceblackwhite": "Paro de nigraj kaj blankaj referencaj valoroj",
+       "exif-datetime": "Dato kaj tempo de dosiera ŝanĝo",
+       "exif-imagedescription": "Titolo de bildo",
+       "exif-make": "Fabrikejo de fotilo",
+       "exif-model": "Speco de fotilo",
+       "exif-software": "Programaro uzata",
+       "exif-artist": "Kreinto",
+       "exif-copyright": "Posedanto de la aŭtorrajto",
+       "exif-exifversion": "Exif-versio",
+       "exif-flashpixversion": "Subtena Flashpix-versio",
+       "exif-colorspace": "Kolor-spaco",
+       "exif-componentsconfiguration": "Signifo de ĉiu kompono",
+       "exif-compressedbitsperpixel": "Reĝimo de bilda densigado",
+       "exif-pixelxdimension": "Larĝeco de bildo",
+       "exif-pixelydimension": "Alteco de bildo",
+       "exif-usercomment": "Komentoj de uzanto",
+       "exif-relatedsoundfile": "Rilata son-dosiero",
+       "exif-datetimeoriginal": "Dato kaj tempo de datuma generado",
+       "exif-datetimedigitized": "Dato kaj tempo de ciferecigado",
+       "exif-subsectime": "DatoTempo subsekundoj",
+       "exif-subsectimeoriginal": "DatoTempoOriginalaj subsekundoj",
+       "exif-subsectimedigitized": "DatoTempoCiferecigitaj subsekundoj",
+       "exif-exposuretime": "Tempo de ekspono",
+       "exif-exposuretime-format": "$1 sek ($2)",
+       "exif-fnumber": "F-nombro",
+       "exif-exposureprogram": "Ekspona programo",
+       "exif-spectralsensitivity": "Spektruma sensemo",
+       "exif-isospeedratings": "ISO sentiveco",
+       "exif-shutterspeedvalue": "APEX-Rapido de obturatoro",
+       "exif-aperturevalue": "APEX-Aperturo",
+       "exif-brightnessvalue": "APEX-Heleco",
+       "exif-exposurebiasvalue": "Ekspona emo",
+       "exif-maxaperturevalue": "Maksimuma pejzaĝa diafragmo",
+       "exif-subjectdistance": "Distanco de subjekto",
+       "exif-meteringmode": "Mezurila reĝimo",
+       "exif-lightsource": "Fonto de lumo",
+       "exif-flash": "Fulmilo",
+       "exif-focallength": "Fokusa longo de lenso",
+       "exif-subjectarea": "Subjekta areo",
+       "exif-flashenergy": "Fulmila energio",
+       "exif-focalplanexresolution": "X distingivo de fokusa ebeno",
+       "exif-focalplaneyresolution": "Y distingivo de fokusa ebeno",
+       "exif-focalplaneresolutionunit": "Distingivo-unuo de fokusa ebeno",
+       "exif-subjectlocation": "Loko de subjekto",
+       "exif-exposureindex": "Ekspona indekso",
+       "exif-sensingmethod": "Metodo de sensado",
+       "exif-filesource": "Dosiera fonto",
+       "exif-scenetype": "Speco de sceno",
+       "exif-customrendered": "Propra foto-rivelado",
+       "exif-exposuremode": "Ekspona reĝimo",
+       "exif-whitebalance": "Blanka balanciĝo",
+       "exif-digitalzoomratio": "Cifereca zumproporcio",
+       "exif-focallengthin35mmfilm": "fokusa longo en 35-mm filmo",
+       "exif-scenecapturetype": "Scenkapta speco",
+       "exif-gaincontrol": "Scena kontrolo",
+       "exif-contrast": "Kontrasto",
+       "exif-saturation": "Saturado",
+       "exif-sharpness": "Akreco",
+       "exif-devicesettingdescription": "Resumo pri aparataj reguligiloj",
+       "exif-subjectdistancerange": "Subjekta distanco",
+       "exif-imageuniqueid": "Unika identigo de bildo",
+       "exif-gpsversionid": "versio de GPS etikedo",
+       "exif-gpslatituderef": "Norda aŭ suda latitudo",
+       "exif-gpslatitude": "Latitudo",
+       "exif-gpslongituderef": "Orienta aŭ uesta longitudo",
+       "exif-gpslongitude": "Longitudo",
+       "exif-gpsaltituderef": "Altituda referenco",
+       "exif-gpsaltitude": "Alteco",
+       "exif-gpstimestamp": "GPS tempo (atoma horloĝo)",
+       "exif-gpssatellites": "Satelitoj uzataj por mezurado",
+       "exif-gpsstatus": "Statuso de recevilo",
+       "exif-gpsmeasuremode": "Mezura reĝimo",
+       "exif-gpsdop": "Precizeco de mezuro",
+       "exif-gpsspeedref": "Unuo de rapido",
+       "exif-gpsspeed": "Rapido de GPS recevilo",
+       "exif-gpstrackref": "Referenco por direkto de movado",
+       "exif-gpstrack": "Direkto de movado",
+       "exif-gpsimgdirectionref": "Referenco por direkto de bildo",
+       "exif-gpsimgdirection": "Direkto de bildo",
+       "exif-gpsmapdatum": "Datumoj uzatoj de geodezia esploro",
+       "exif-gpsdestlatituderef": "Referenco por latitudo de destino",
+       "exif-gpsdestlatitude": "Latituda destino",
+       "exif-gpsdestlongituderef": "Referenco por longitudo de destino",
+       "exif-gpsdestlongitude": "Longitudo de destino",
+       "exif-gpsdestbearingref": "Referenco por direkto de destino",
+       "exif-gpsdestbearing": "Direkto aŭ destino",
+       "exif-gpsdestdistanceref": "Referenco por distanco al destino",
+       "exif-gpsdestdistance": "Distanco al destino",
+       "exif-gpsprocessingmethod": "Nomo de GPS procesmetodo",
+       "exif-gpsareainformation": "Nomo de GPS areo",
+       "exif-gpsdatestamp": "GPS dato",
+       "exif-gpsdifferential": "GPS diferenca korektado",
+       "exif-jpegfilecomment": "Komento de JPEG-dosiero",
+       "exif-keywords": "Ŝlosilvortoj",
+       "exif-worldregioncreated": "Monda regiono kie la foto estis fotita",
+       "exif-countrycreated": "Lando kie la foto estis fotita",
+       "exif-countrycodecreated": "Landokodo kie la foto estis fotita",
+       "exif-provinceorstatecreated": "Provinco aŭ subŝtato kie la foto estis fotita",
+       "exif-citycreated": "Urbo kie la foto estis fotita",
+       "exif-sublocationcreated": "Subloko de la urbo kie la foto estis fotita",
+       "exif-worldregiondest": "Monda regiono montrita",
+       "exif-countrydest": "Lando montrita",
+       "exif-countrycodedest": "ISO-kodo por lando montrita",
+       "exif-provinceorstatedest": "Provinco aŭ subŝtato montrita",
+       "exif-citydest": "Urbo montrita",
+       "exif-sublocationdest": "Subloko de urbo montrita",
+       "exif-objectname": "Mallonga titolo",
+       "exif-specialinstructions": "Speciala instrukcio",
+       "exif-headline": "Titolo",
+       "exif-credit": "Provizanto",
+       "exif-source": "Fonto",
+       "exif-editstatus": "Redaktora statuso de bildo",
+       "exif-urgency": "Urĝeco",
+       "exif-fixtureidentifier": "Nomo de rikura kolumno",
+       "exif-locationdest": "Loko montrita",
+       "exif-locationdestcode": "Kodo de loko montrita",
+       "exif-objectcycle": "Tempo de tago kiun medio estas intenciita",
+       "exif-contact": "Informo por mesaĝigi",
+       "exif-writer": "Aŭtoro",
+       "exif-languagecode": "Lingvo",
+       "exif-iimversion": "IIM-versio",
+       "exif-iimcategory": "Kategorio",
+       "exif-iimsupplementalcategory": "Aldonaj kategorioj",
+       "exif-datetimeexpires": "Ne uzu post",
+       "exif-datetimereleased": "Eldonitaj je",
+       "exif-originaltransmissionref": "Loko-kodo de originala komunikaĵo",
+       "exif-identifier": "Identigo",
+       "exif-lens": "Lenso uzita",
+       "exif-serialnumber": "Seria numero de fotilo",
+       "exif-cameraownername": "Propranto de fotilo",
+       "exif-label": "Etikedo",
+       "exif-datetimemetadata": "Dato kiam metadatumoj estis laste modifitaj",
+       "exif-nickname": "Malformala nomo de bildo",
+       "exif-rating": "Taksado (el 5)",
+       "exif-rightscertificate": "Atestilo de rajtoj-administrado",
+       "exif-copyrighted": "Aŭtorrajta stato:",
+       "exif-copyrightowner": "Posedanto de la aŭtorrajto",
+       "exif-usageterms": "Regularo pri uzado",
+       "exif-webstatement": "Interreta deklarado pri aŭtorrajtoj",
+       "exif-originaldocumentid": "Unika identigo de originala dokumento",
+       "exif-licenseurl": "URL-o por aŭtorrajta permesilo",
+       "exif-morepermissionsurl": "Informo pri alternativa permesado",
+       "exif-attributionurl": "Kiam reuzante ĉi tiun verkon, bonvolu ligigi al:",
+       "exif-preferredattributionname": "Kiam reuzante ĉi tiun verkon, bonvolu mencii al:",
+       "exif-pngfilecomment": "Komento de PNG-dosiero",
+       "exif-disclaimer": "Malgarantio",
+       "exif-contentwarning": "Averto pri enhavo",
+       "exif-giffilecomment": "Komento de GIF-dosiero",
+       "exif-intellectualgenre": "Tipo de aĵo",
+       "exif-subjectnewscode": "Temo-kodo",
+       "exif-scenecode": "IPTC sceno-kodo",
+       "exif-event": "Evento montrita",
+       "exif-organisationinimage": "Organizaĵo montrita",
+       "exif-personinimage": "Persono montrita",
+       "exif-originalimageheight": "Alto de bildo antaŭ stuco",
+       "exif-originalimagewidth": "Larĝo de bildo antaŭ stuco",
+       "exif-compression-1": "Nedensigita",
+       "exif-compression-2": "CCITT-Grupo 3 modifita ciferado laŭ Huffman Dimensio-1",
+       "exif-compression-3": "CCITT Grupo-3 ĉifrado por faksilo",
+       "exif-compression-4": "CCITT Grupo-4 ĉifrado por faksilo",
+       "exif-compression-8": "Malŝveli (Adobe)",
+       "exif-copyrighted-true": "Sub aŭtorrajto",
+       "exif-copyrighted-false": "Sub publika domajno",
+       "exif-photometricinterpretation-1": "Nigra kaj blanka (nigra estas 0)",
+       "exif-unknowndate": "Nekonata dato",
+       "exif-orientation-1": "Normala",
+       "exif-orientation-2": "Spegulumita horizontale",
+       "exif-orientation-3": "Rotaciigita 180°",
+       "exif-orientation-4": "Spegulumita vertikale",
+       "exif-orientation-5": "Turnita 90° maldekstre kaj spegulita vertikale",
+       "exif-orientation-6": "Turnita 90° maldekstre",
+       "exif-orientation-7": "Turnita 90° dekstre kaj spegulita vertikale",
+       "exif-orientation-8": "Turnita 90° dekstre",
+       "exif-planarconfiguration-1": "bloka formato",
+       "exif-planarconfiguration-2": "ebena formato",
+       "exif-colorspace-65535": "Nekalibrita",
+       "exif-componentsconfiguration-0": "ne ekzistas",
+       "exif-exposureprogram-0": "Ne difinita",
+       "exif-exposureprogram-1": "Permana",
+       "exif-exposureprogram-2": "Normala programo",
+       "exif-exposureprogram-3": "Diafragma prioritato <!-- vidu http://www.fw.hu/eventoj/steb/vortaroj/fotografio/fotografio.htm -->",
+       "exif-exposureprogram-4": "Prioritato de obturatoro",
+       "exif-exposureprogram-5": "Kreiva programo (emata al kampa profundo)",
+       "exif-exposureprogram-6": "Agada programo (ema al rapida ekspon-daŭro)",
+       "exif-exposureprogram-7": "Portreta reĝimo (por apudaj fotoj kun la fono malfokusita)",
+       "exif-exposureprogram-8": "Pejzaĝa reĝimo (por pejzaĝaj fotoj kun la fono en fokuso)",
+       "exif-subjectdistance-value": "$1 metroj",
+       "exif-meteringmode-0": "Nekonata",
+       "exif-meteringmode-1": "Averaĝo",
+       "exif-meteringmode-2": "CentraPezAveraĝo",
+       "exif-meteringmode-3": "Elekt-angula eksponometro (Spot)",
+       "exif-meteringmode-4": "Mult-elekt-angula eksponometro (MultiSpot)",
+       "exif-meteringmode-5": "Skemo",
+       "exif-meteringmode-6": "Parta",
+       "exif-meteringmode-255": "Alia",
+       "exif-lightsource-0": "Nekonata",
+       "exif-lightsource-1": "Taglumo",
+       "exif-lightsource-2": "Fluoreska",
+       "exif-lightsource-3": "Volframa (inkandeska lumo)",
+       "exif-lightsource-4": "Fulmilo",
+       "exif-lightsource-9": "Bona vetero",
+       "exif-lightsource-10": "Nuba vetero",
+       "exif-lightsource-11": "Ombro",
+       "exif-lightsource-12": "Tagluma fluoreska (D 5700 – 7100K)",
+       "exif-lightsource-13": "Tag-blanka fluoreska (N 4600 – 5400K)",
+       "exif-lightsource-14": "Malvarmblanka fluoreska (W 3900 – 4500K)",
+       "exif-lightsource-15": "Blanka fluoreska (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Norma lumo A",
+       "exif-lightsource-18": "Norma lumo B",
+       "exif-lightsource-19": "Norma lumo C",
+       "exif-lightsource-24": "ISO artefarita lumo volframa",
+       "exif-lightsource-255": "Alia luma fonto",
+       "exif-flash-fired-0": "Fulmilo ne ekbruliĝis",
+       "exif-flash-fired-1": "Fulmilo ekbriliĝis",
+       "exif-flash-return-0": "neniu funkcio por detekti liveraĵon de stroboskopo",
+       "exif-flash-return-2": "revenanta lumo de stroboskopo ne detektiĝis",
+       "exif-flash-return-3": "revenanta lumo de stroboskopo detektiĝis",
+       "exif-flash-mode-1": "deviga fulmado",
+       "exif-flash-mode-2": "deviga dampado de fulmilo",
+       "exif-flash-mode-3": "aŭtomata reĝimo",
+       "exif-flash-function-1": "Neniu fulmila funkcio",
+       "exif-flash-redeye-1": "reĝimo por ruĝokula redukcio",
+       "exif-focalplaneresolutionunit-2": "coloj",
+       "exif-sensingmethod-1": "Nedefinita",
+       "exif-sensingmethod-2": "Sensilo de zono de unukromataj koloroj",
+       "exif-sensingmethod-3": "Sensilo de zono de dukromataj koloroj",
+       "exif-sensingmethod-4": "Sensilo de zono de trikromataj koloroj",
+       "exif-sensingmethod-5": "Sensilo de laŭvicaj zonaj koloroj",
+       "exif-sensingmethod-7": "Trilinia sensilo",
+       "exif-sensingmethod-8": "Sensilo de laŭvicaj liniaj koloroj",
+       "exif-filesource-3": "Cifereca senmova fotilo",
+       "exif-scenetype-1": "Rekte fotita bildo",
+       "exif-customrendered-0": "Norma proceso",
+       "exif-customrendered-1": "Propra procezo",
+       "exif-exposuremode-0": "Automata ekspono",
+       "exif-exposuremode-1": "Permana ekspono",
+       "exif-exposuremode-2": "Aŭtomata krampo",
+       "exif-whitebalance-0": "Aŭtomata blank-egaleco",
+       "exif-whitebalance-1": "Permana blank-egaleco",
+       "exif-scenecapturetype-0": "Norma",
+       "exif-scenecapturetype-1": "Pejzaĝo",
+       "exif-scenecapturetype-2": "Portreta",
+       "exif-scenecapturetype-3": "Nokta sceno",
+       "exif-gaincontrol-0": "Neniu",
+       "exif-gaincontrol-1": "Malalta teleobjektivo supren",
+       "exif-gaincontrol-2": "Alta teleobjektivo supren",
+       "exif-gaincontrol-3": "Malalta teleobjektivo malsupren",
+       "exif-gaincontrol-4": "Alta teleobjektivo malsupren",
+       "exif-contrast-0": "Norma",
+       "exif-contrast-1": "Mola",
+       "exif-contrast-2": "Malmola",
+       "exif-saturation-0": "Norma",
+       "exif-saturation-1": "Malalta saturado",
+       "exif-saturation-2": "Alta saturado",
+       "exif-sharpness-0": "Ordinara",
+       "exif-sharpness-1": "Mola",
+       "exif-sharpness-2": "Malmola",
+       "exif-subjectdistancerange-0": "Nekonata",
+       "exif-subjectdistancerange-1": "Makroo",
+       "exif-subjectdistancerange-2": "Apuda perspektivo",
+       "exif-subjectdistancerange-3": "Fora perspektivo",
+       "exif-gpslatitude-n": "Norda latitudo",
+       "exif-gpslatitude-s": "Suda latitudo",
+       "exif-gpslongitude-e": "Orienta longitudo",
+       "exif-gpslongitude-w": "Uesta longitudo",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metro|metroj}} super marnivelo",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metro|metroj}} sub marnivelo",
+       "exif-gpsstatus-a": "Mezurado estanta",
+       "exif-gpsstatus-v": "Mezurada interoperaciado",
+       "exif-gpsmeasuremode-2": "2-dimensia mezuro",
+       "exif-gpsmeasuremode-3": "3-dimensia mezuro",
+       "exif-gpsspeed-k": "Kilometroj por horo",
+       "exif-gpsspeed-m": "Mejloj por horo",
+       "exif-gpsspeed-n": "Knotoj",
+       "exif-gpsdestdistance-k": "Kilometroj",
+       "exif-gpsdestdistance-m": "Mejloj",
+       "exif-gpsdestdistance-n": "Maraj mejloj",
+       "exif-gpsdop-excellent": "Bonega ($1)",
+       "exif-gpsdop-good": "Bona ($1)",
+       "exif-gpsdop-moderate": "Meza ($1)",
+       "exif-gpsdop-fair": "Submeza ($1)",
+       "exif-gpsdop-poor": "Malbona ($1)",
+       "exif-objectcycle-a": "Nur mateno",
+       "exif-objectcycle-p": "Nur vespero",
+       "exif-objectcycle-b": "Kaj mateno kaj vespero",
+       "exif-gpsdirection-t": "Vera direkto",
+       "exif-gpsdirection-m": "Magneta direkto",
+       "exif-ycbcrpositioning-1": "Centrigita",
+       "exif-ycbcrpositioning-2": "Multaj situoj",
+       "exif-dc-contributor": "Kontribuintoj",
+       "exif-dc-coverage": "Spaca aŭ tempa amplekso de bildo",
+       "exif-dc-date": "Dato(j)",
+       "exif-dc-publisher": "Eldonejo",
+       "exif-dc-relation": "Rilata al bildo",
+       "exif-dc-rights": "Rajtoj",
+       "exif-dc-source": "Fonto de bildo",
+       "exif-dc-type": "Tipo de medio",
+       "exif-rating-rejected": "Malakceptita",
+       "exif-isospeedratings-overflow": "Pli granda ol 65535",
+       "exif-iimcategory-ace": "Arto, kulturo, kaj regalado",
+       "exif-iimcategory-clj": "Krimo kaj leĝo",
+       "exif-iimcategory-dis": "Katastrofoj kaj akcidentoj",
+       "exif-iimcategory-fin": "Ekonomio kaj entrepreno",
+       "exif-iimcategory-edu": "Edukado",
+       "exif-iimcategory-evn": "Medio",
+       "exif-iimcategory-hth": "Sano",
+       "exif-iimcategory-hum": "Homaj interesaĵoj",
+       "exif-iimcategory-lab": "Laboro",
+       "exif-iimcategory-lif": "Vivmaniero kaj ŝatokupo",
+       "exif-iimcategory-pol": "Politiko",
+       "exif-iimcategory-rel": "Religio kaj kreado",
+       "exif-iimcategory-sci": "Scienco kaj teknologio",
+       "exif-iimcategory-soi": "Sociaj aferoj",
+       "exif-iimcategory-spo": "Sporto",
+       "exif-iimcategory-war": "Milito, konflikto kaj malpacaĵo",
+       "exif-iimcategory-wea": "Vetero",
+       "exif-urgency-normal": "Norma ($1)",
+       "exif-urgency-low": "Malalta ($1)",
+       "exif-urgency-high": "Alta ($1)",
+       "exif-urgency-other": "Prioritato difinita de uzanto ($1)"
+}
diff --git a/languages/i18n/exif/es.json b/languages/i18n/exif/es.json
new file mode 100644 (file)
index 0000000..e814327
--- /dev/null
@@ -0,0 +1,364 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Alpertron",
+                       "Cerealito",
+                       "Crazymadlover",
+                       "Dgstranz",
+                       "Fitoschido",
+                       "Icvav",
+                       "Lemondoge",
+                       "Lin linao",
+                       "Locos epraix",
+                       "Macofe",
+                       "MarcoAurelio",
+                       "Sanbec",
+                       "Vivaelcelta"
+               ]
+       },
+       "exif-imagewidth": "Anchura",
+       "exif-imagelength": "Altura",
+       "exif-bitspersample": "Bits por componente",
+       "exif-compression": "Esquema de compresión",
+       "exif-photometricinterpretation": "Composición de pixel",
+       "exif-orientation": "Orientación",
+       "exif-samplesperpixel": "Número de componentes",
+       "exif-planarconfiguration": "Distribución de datos",
+       "exif-ycbcrsubsampling": "Razón de submuestreo de Y a C",
+       "exif-ycbcrpositioning": "Posicionamientos Y y C",
+       "exif-xresolution": "Resolución horizontal",
+       "exif-yresolution": "Resolución vertical",
+       "exif-stripoffsets": "Localización de datos de imagen",
+       "exif-rowsperstrip": "Número de filas por banda",
+       "exif-stripbytecounts": "Bytes por banda comprimida",
+       "exif-jpeginterchangeformat": "Desplazamiento al JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bytes de datos JPEG",
+       "exif-whitepoint": "Cromacidad de punto blanco",
+       "exif-primarychromaticities": "Cromacidades primarias",
+       "exif-ycbcrcoefficients": "Coeficientes de la matriz de transformación de espacio de color",
+       "exif-referenceblackwhite": "Pareja de valores blanco y negro de referencia",
+       "exif-datetime": "Fecha y hora de modificación del archivo",
+       "exif-imagedescription": "Título de la imagen",
+       "exif-make": "Fabricante de la cámara",
+       "exif-model": "Modelo de cámara",
+       "exif-software": "Software usado",
+       "exif-artist": "Autor",
+       "exif-copyright": "Titular de los derechos de autor",
+       "exif-exifversion": "Versión de Exif",
+       "exif-flashpixversion": "Versión admitida de Flashpix",
+       "exif-colorspace": "Espacio de color",
+       "exif-componentsconfiguration": "Significado de cada componente",
+       "exif-compressedbitsperpixel": "Modo de compresión de la imagen",
+       "exif-pixelxdimension": "Anchura de la imagen",
+       "exif-pixelydimension": "Altura de la imagen",
+       "exif-usercomment": "Comentarios de usuario",
+       "exif-relatedsoundfile": "Archivo de audio relacionado",
+       "exif-datetimeoriginal": "Fecha y hora de la generación de los datos",
+       "exif-datetimedigitized": "Fecha y hora de la digitalización",
+       "exif-subsectime": "Fecha y hora (precisión por debajo del segundo)",
+       "exif-subsectimeoriginal": "Fecha y hora de la generación de los datos (precisión por debajo del segundo)",
+       "exif-subsectimedigitized": "Fecha y hora de la digitalización (precisión por debajo del segundo)",
+       "exif-exposuretime": "Tiempo de exposición",
+       "exif-exposuretime-format": "$1 seg ($2)",
+       "exif-fnumber": "Número F",
+       "exif-exposureprogram": "Programa de exposición",
+       "exif-spectralsensitivity": "Sensibilidad espectral",
+       "exif-isospeedratings": "Calificación de velocidad ISO",
+       "exif-shutterspeedvalue": "Velocidad de obturación APEX",
+       "exif-aperturevalue": "Apertura APEX",
+       "exif-brightnessvalue": "Brillo APEX",
+       "exif-exposurebiasvalue": "Sesgo de exposición",
+       "exif-maxaperturevalue": "Valor máximo de apertura",
+       "exif-subjectdistance": "Distancia al sujeto",
+       "exif-meteringmode": "Modo de medición",
+       "exif-lightsource": "Fuente de luz",
+       "exif-flash": "Flash",
+       "exif-focallength": "Longitud focal de la lente",
+       "exif-subjectarea": "Área del sujeto",
+       "exif-flashenergy": "Energía del flash",
+       "exif-focalplanexresolution": "Resolución X del plano focal",
+       "exif-focalplaneyresolution": "Resolución Y del plano focal",
+       "exif-focalplaneresolutionunit": "Unidad de resolución del plano focal",
+       "exif-subjectlocation": "Localización del sujeto",
+       "exif-exposureindex": "Índice de exposición",
+       "exif-sensingmethod": "Método de sensor",
+       "exif-filesource": "Fuente de archivo",
+       "exif-scenetype": "Tipo de escena",
+       "exif-customrendered": "Procesador personalizado de imagen",
+       "exif-exposuremode": "Modo de exposición",
+       "exif-whitebalance": "Balance de blanco",
+       "exif-digitalzoomratio": "Razón de zoom digital",
+       "exif-focallengthin35mmfilm": "Longitud focal en película de 35 mm",
+       "exif-scenecapturetype": "Tipo de captura de escena",
+       "exif-gaincontrol": "Control de escena",
+       "exif-contrast": "Contraste",
+       "exif-saturation": "Saturación",
+       "exif-sharpness": "Agudeza",
+       "exif-devicesettingdescription": "Descripción de los ajustes del dispositivo",
+       "exif-subjectdistancerange": "Intervalo de distancia al sujeto",
+       "exif-imageuniqueid": "ID único de imagen",
+       "exif-gpsversionid": "Versión de la etiqueta GPS",
+       "exif-gpslatituderef": "Latitud norte o sur",
+       "exif-gpslatitude": "Latitud",
+       "exif-gpslongituderef": "Longitud este u oeste",
+       "exif-gpslongitude": "Longitud",
+       "exif-gpsaltituderef": "Refencia de altitud",
+       "exif-gpsaltitude": "Altitud",
+       "exif-gpstimestamp": "Tiempo GPS (reloj atómico)",
+       "exif-gpssatellites": "Satélites usados para la medición",
+       "exif-gpsstatus": "Estado del receptor",
+       "exif-gpsmeasuremode": "Modo de medición",
+       "exif-gpsdop": "Precisión de medición",
+       "exif-gpsspeedref": "Unidad de velocidad",
+       "exif-gpsspeed": "Velocidad del receptor GPS",
+       "exif-gpstrackref": "Referencia para la dirección del movimiento",
+       "exif-gpstrack": "Dirección del movimiento",
+       "exif-gpsimgdirectionref": "Referencia para la dirección de la imagen",
+       "exif-gpsimgdirection": "Dirección de imagen",
+       "exif-gpsmapdatum": "Utilizados datos de medición geodésica",
+       "exif-gpsdestlatituderef": "Referencia para la latitud del destino",
+       "exif-gpsdestlatitude": "Destino de latitud",
+       "exif-gpsdestlongituderef": "Referencia para la longitud del destino",
+       "exif-gpsdestlongitude": "Longitud del destino",
+       "exif-gpsdestbearingref": "Referencia para la orientación al destino",
+       "exif-gpsdestbearing": "Orientación del destino",
+       "exif-gpsdestdistanceref": "Referencia para la distancia al destino",
+       "exif-gpsdestdistance": "Distancia al destino",
+       "exif-gpsprocessingmethod": "Nombre del método de procesado GPS",
+       "exif-gpsareainformation": "Nombre de la área GPS",
+       "exif-gpsdatestamp": "Fecha GPS",
+       "exif-gpsdifferential": "Corrección diferencial de GPS",
+       "exif-jpegfilecomment": "Comentario de archivo JPEG",
+       "exif-keywords": "Palabras clave",
+       "exif-worldregioncreated": "Región del mundo en la que se tomó la imagen",
+       "exif-countrycreated": "País en el que se tomó la imagen",
+       "exif-countrycodecreated": "Código para el país en el que la imagen fue tomada",
+       "exif-provinceorstatecreated": "Provincia o estado en el que la imagen fue tomada",
+       "exif-citycreated": "Ciudad en la que se tomó la imagen",
+       "exif-sublocationcreated": "Región de la ciudad en la que la foto fue tomada",
+       "exif-worldregiondest": "Región del mundo mostrada",
+       "exif-countrydest": "País mostrado",
+       "exif-countrycodedest": "Código de país mostrado",
+       "exif-provinceorstatedest": "Provincia o estado mostrado",
+       "exif-citydest": "Ciudad mostrada",
+       "exif-sublocationdest": "Región de la ciudad mostrada",
+       "exif-objectname": "Título breve",
+       "exif-specialinstructions": "Instrucciones especiales",
+       "exif-headline": "Encabezado",
+       "exif-credit": "Crédito/proveedor",
+       "exif-source": "Fuente",
+       "exif-editstatus": "Estado editorial de la imagen",
+       "exif-urgency": "Urgencia",
+       "exif-fixtureidentifier": "Nome del elemento habitual",
+       "exif-locationdest": "Ubicación mostrada",
+       "exif-locationdestcode": "Código de la ubicación mostrada",
+       "exif-objectcycle": "Hora del día para la cual está destinado este archivo",
+       "exif-contact": "Información de contacto",
+       "exif-writer": "Escritor",
+       "exif-languagecode": "Idioma",
+       "exif-iimversion": "Versión IIM",
+       "exif-iimcategory": "Categoría",
+       "exif-iimsupplementalcategory": "Categorías suplementarias",
+       "exif-datetimeexpires": "No usar después de",
+       "exif-datetimereleased": "Lanzado el",
+       "exif-originaltransmissionref": "Código de ubicación de transmisión original",
+       "exif-identifier": "Identificador",
+       "exif-lens": "Lente utilizada",
+       "exif-serialnumber": "Número de serie de la cámara",
+       "exif-cameraownername": "Propietario de la cámara",
+       "exif-label": "Etiqueta",
+       "exif-datetimemetadata": "Fecha en la cual fueron modificados por última vez los metadatos",
+       "exif-nickname": "Nombre informal de la imagen",
+       "exif-rating": "Valoración (sobre 5)",
+       "exif-rightscertificate": "Certificado de gestión de derechos",
+       "exif-copyrighted": "Estado de copyright",
+       "exif-copyrightowner": "Titular del copyright",
+       "exif-usageterms": "Términos de uso",
+       "exif-webstatement": "Declaración de derechos de autor en línea",
+       "exif-originaldocumentid": "Id. único del documento original",
+       "exif-licenseurl": "URL para la licencia de copyright",
+       "exif-morepermissionsurl": "Información de licencia alternativa",
+       "exif-attributionurl": "Cuando reutilices este trabajo, por favor enlaza a",
+       "exif-preferredattributionname": "Al volver a utilizar este trabajo, por favor da crédito",
+       "exif-pngfilecomment": "Comentario de archivo PNG",
+       "exif-disclaimer": "Exoneración de responsabilidad",
+       "exif-contentwarning": "Alerta de contenido",
+       "exif-giffilecomment": "Comentario de archivo GIF",
+       "exif-intellectualgenre": "Tipo de elemento",
+       "exif-subjectnewscode": "Código de asunto",
+       "exif-scenecode": "Código de escena IPTC",
+       "exif-event": "Evento representado",
+       "exif-organisationinimage": "Organización representada",
+       "exif-personinimage": "Persona representada",
+       "exif-originalimageheight": "Altura de la imagen antes de que fuera recortada",
+       "exif-originalimagewidth": "Anchura de la imagen antes de que fuera recortada",
+       "exif-compression-1": "Sin comprimir",
+       "exif-compression-2": "CCITT Group 3 1-Dimensional Modified Huffman run length encoding",
+       "exif-compression-3": "Codificación de fax CCITT grupo 3",
+       "exif-compression-4": "Codificación de fax CCITT grupo 4",
+       "exif-compression-6": "JPEG (antiguo)",
+       "exif-copyrighted-true": "Con derechos de autor",
+       "exif-copyrighted-false": "No se ha definido el estado del copyright",
+       "exif-photometricinterpretation-0": "Blanco y negro (blanco es 0)",
+       "exif-photometricinterpretation-1": "Blanco y negro (el negro es 0)",
+       "exif-photometricinterpretation-4": "Máscara de transparencia",
+       "exif-photometricinterpretation-5": "Separados (Probablemente CMYK)",
+       "exif-photometricinterpretation-32803": "Matriz de filtro de color",
+       "exif-unknowndate": "Fecha desconocida",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Volteada horizontalmente",
+       "exif-orientation-3": "Rotada 180°",
+       "exif-orientation-4": "Volteada verticalmente",
+       "exif-orientation-5": "Rotada 90° CCW y volteada verticalmente",
+       "exif-orientation-6": "Rotada 90° a la izquierda",
+       "exif-orientation-7": "Rotada 90° CW y volteada verticalmente",
+       "exif-orientation-8": "Rotada 90° a la derecha",
+       "exif-planarconfiguration-1": "formato panorámico",
+       "exif-planarconfiguration-2": "formato plano",
+       "exif-xyresolution-i": "$1 ppp",
+       "exif-colorspace-65535": "Sin calibrar",
+       "exif-componentsconfiguration-0": "no existe",
+       "exif-exposureprogram-0": "No definido",
+       "exif-exposureprogram-1": "Manual",
+       "exif-exposureprogram-2": "Programa normal",
+       "exif-exposureprogram-3": "Prioridad de apertura",
+       "exif-exposureprogram-4": "Prioridad de obturador",
+       "exif-exposureprogram-5": "Programa creativo (con prioridad a la profundidad de campo)",
+       "exif-exposureprogram-6": "Programa de acción (alta velocidad de obturador)",
+       "exif-exposureprogram-7": "Modo retrato (para primeros planos con el fondo desenfocado)",
+       "exif-exposureprogram-8": "Modo panorama (para fotos panorámicas con el fondo enfocado)",
+       "exif-subjectdistance-value": "$1 metros",
+       "exif-meteringmode-0": "Desconocido",
+       "exif-meteringmode-1": "Media",
+       "exif-meteringmode-2": "Promedio centrado",
+       "exif-meteringmode-3": "Puntual",
+       "exif-meteringmode-4": "Multipunto",
+       "exif-meteringmode-5": "Patrón",
+       "exif-meteringmode-6": "Parcial",
+       "exif-meteringmode-255": "Otro",
+       "exif-lightsource-0": "Desconocido",
+       "exif-lightsource-1": "Luz diurna",
+       "exif-lightsource-2": "Fluorescente",
+       "exif-lightsource-3": "Tungsteno (luz incandescente)",
+       "exif-lightsource-4": "Flash",
+       "exif-lightsource-9": "Buen tiempo",
+       "exif-lightsource-10": "Tiempo nublado",
+       "exif-lightsource-11": "Penumbra",
+       "exif-lightsource-12": "Fluorescente de luz diurna (D 5700 – 7100K)",
+       "exif-lightsource-13": "Fluorescente de día soleado (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fluorescente blanco frío (W 3900 – 4500K)",
+       "exif-lightsource-15": "Fluroescente blanco (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Luz estándar A",
+       "exif-lightsource-18": "Luz estándar B",
+       "exif-lightsource-19": "Luz estándar C",
+       "exif-lightsource-24": "Tungsteno de estudio ISO",
+       "exif-lightsource-255": "Otra fuente de luz",
+       "exif-flash-fired-0": "No se disparó el flash",
+       "exif-flash-fired-1": "Flash disparado",
+       "exif-flash-return-0": "no hay función de detección del retorno de la luz estroboscópica",
+       "exif-flash-return-2": "no se detectó retorno de luz estroboscópica",
+       "exif-flash-return-3": "detectado retorno de luz estroboscópica",
+       "exif-flash-mode-1": "disparo de flash forzado",
+       "exif-flash-mode-2": "disparo de flash anulado",
+       "exif-flash-mode-3": "modo automático",
+       "exif-flash-function-1": "Modo sin flash",
+       "exif-flash-redeye-1": "modo de reducción de ojos rojos",
+       "exif-focalplaneresolutionunit-2": "pulgadas",
+       "exif-sensingmethod-1": "No definido",
+       "exif-sensingmethod-2": "Sensor de área de color de un chip",
+       "exif-sensingmethod-3": "Sensor de área de color de dos chips",
+       "exif-sensingmethod-4": "Sensor de área de color de tres chips",
+       "exif-sensingmethod-5": "Sensor de área secuencial de color",
+       "exif-sensingmethod-7": "Sensor trilineal",
+       "exif-sensingmethod-8": "Sensor lineal secuencial de color",
+       "exif-filesource-3": "Cámara digital",
+       "exif-scenetype-1": "Una imagen directamente fotografiada",
+       "exif-customrendered-0": "Proceso normal",
+       "exif-customrendered-1": "Proceso personalizado",
+       "exif-exposuremode-0": "Exposición automática",
+       "exif-exposuremode-1": "Exposición manual",
+       "exif-exposuremode-2": "Auto bracket",
+       "exif-whitebalance-0": "Balance de blanco automático",
+       "exif-whitebalance-1": "Balance de blanco manual",
+       "exif-scenecapturetype-0": "Estándar",
+       "exif-scenecapturetype-1": "Paisaje",
+       "exif-scenecapturetype-2": "Retrato",
+       "exif-scenecapturetype-3": "Escena nocturna",
+       "exif-gaincontrol-0": "Ninguna",
+       "exif-gaincontrol-1": "Bajo aumento de ganancia",
+       "exif-gaincontrol-2": "Alto aumento de ganancia",
+       "exif-gaincontrol-3": "Baja disminución de ganancia",
+       "exif-gaincontrol-4": "Alta disminución de ganancia",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Suave",
+       "exif-contrast-2": "Duro",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Baja saturación",
+       "exif-saturation-2": "Alta saturación",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Suave",
+       "exif-sharpness-2": "Dura",
+       "exif-subjectdistancerange-0": "Desconocida",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Vista cercana",
+       "exif-subjectdistancerange-3": "Vista lejana",
+       "exif-gpslatitude-n": "Latitud norte",
+       "exif-gpslatitude-s": "Latitud sur",
+       "exif-gpslongitude-e": "Longitud este",
+       "exif-gpslongitude-w": "Longitud oeste",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metro|metros}} sobre el nivel del mar",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metro|metros}} bajo el nivel del mar",
+       "exif-gpsstatus-a": "Medida en proceso",
+       "exif-gpsstatus-v": "Interoperabilidad de medida",
+       "exif-gpsmeasuremode-2": "Medición bidimensional",
+       "exif-gpsmeasuremode-3": "Medición tridimensional",
+       "exif-gpsspeed-k": "Kilómetros por hora",
+       "exif-gpsspeed-m": "Millas por hora",
+       "exif-gpsspeed-n": "Nudos",
+       "exif-gpsdestdistance-k": "Kilómetros",
+       "exif-gpsdestdistance-m": "Millas",
+       "exif-gpsdestdistance-n": "Millas náuticas",
+       "exif-gpsdop-excellent": "Excelente ($1)",
+       "exif-gpsdop-good": "Bueno ( $1 )",
+       "exif-gpsdop-moderate": "Moderado ($1)",
+       "exif-gpsdop-fair": "Pasable ($1)",
+       "exif-gpsdop-poor": "Pobre ( $1 )",
+       "exif-objectcycle-a": "Por la mañana únicamente",
+       "exif-objectcycle-p": "Por el atardecer únicamente",
+       "exif-objectcycle-b": "Tanto por la mañana y por la tarde",
+       "exif-gpsdirection-t": "Dirección real",
+       "exif-gpsdirection-m": "Dirección magnética",
+       "exif-ycbcrpositioning-1": "Centrado",
+       "exif-ycbcrpositioning-2": "Co-localizados",
+       "exif-dc-contributor": "Colaboradores",
+       "exif-dc-coverage": "Ámbito espacial o temporal del medio",
+       "exif-dc-date": "Fecha(s)",
+       "exif-dc-publisher": "Editorial",
+       "exif-dc-relation": "Medios relacionados",
+       "exif-dc-rights": "Derechos",
+       "exif-dc-source": "Medios de origen",
+       "exif-dc-type": "Tipo de medio",
+       "exif-rating-rejected": "Rechazado",
+       "exif-isospeedratings-overflow": "Más de 65535",
+       "exif-iimcategory-ace": "Arte, cultura y entretenimiento",
+       "exif-iimcategory-clj": "Crimen y ley",
+       "exif-iimcategory-dis": "Desastres y accidentes",
+       "exif-iimcategory-fin": "Economía y negocios",
+       "exif-iimcategory-edu": "Educación",
+       "exif-iimcategory-evn": "Medio ambiente",
+       "exif-iimcategory-hth": "Salud",
+       "exif-iimcategory-hum": "Interés humano",
+       "exif-iimcategory-lab": "Trabajo",
+       "exif-iimcategory-lif": "Estilo de vida y ocio",
+       "exif-iimcategory-pol": "Política",
+       "exif-iimcategory-rel": "Religión y creencias",
+       "exif-iimcategory-sci": "Ciencia y tecnología",
+       "exif-iimcategory-soi": "Cuestiones sociales",
+       "exif-iimcategory-spo": "Deportes",
+       "exif-iimcategory-war": "Guerra, conflictos y disturbios",
+       "exif-iimcategory-wea": "Clima",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Bajo ($1)",
+       "exif-urgency-high": "Alto ($1)",
+       "exif-urgency-other": "Prioridad definida por el usuario ($1)"
+}
diff --git a/languages/i18n/exif/et.json b/languages/i18n/exif/et.json
new file mode 100644 (file)
index 0000000..bcf0e74
--- /dev/null
@@ -0,0 +1,358 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Avjoska",
+                       "Cylly1512",
+                       "Oop",
+                       "Pikne",
+                       "Silvar",
+                       "WikedKentaur"
+               ]
+       },
+       "exif-imagewidth": "Laius",
+       "exif-imagelength": "Kõrgus",
+       "exif-bitspersample": "Bitti komponendi kohta",
+       "exif-compression": "Pakkimise skeem",
+       "exif-photometricinterpretation": "Pikslite koosseis",
+       "exif-orientation": "Orientatsioon",
+       "exif-samplesperpixel": "Komponentide arv",
+       "exif-planarconfiguration": "Andmejärjestus",
+       "exif-ycbcrsubsampling": "Y-i ja C diskreetimissuhe",
+       "exif-ycbcrpositioning": "Y- ja C-positsioonimine",
+       "exif-xresolution": "Horisontaalne eraldus",
+       "exif-yresolution": "Vertikaalne eraldus",
+       "exif-stripoffsets": "Pildi andmete asukoht",
+       "exif-rowsperstrip": "Ridade arv riba kohta",
+       "exif-stripbytecounts": "Baitide hulk kokkusurutud riba kohta",
+       "exif-jpeginterchangeformat": "Kaugus JPEG SOI-ni",
+       "exif-jpeginterchangeformatlength": "JPEG-andmete suurus baitides",
+       "exif-whitepoint": "Valgepunkti värvsus",
+       "exif-primarychromaticities": "Põhivärvide värvsus",
+       "exif-ycbcrcoefficients": "Värviruumi ümberkujundamise maatriksi koefitsiendid",
+       "exif-referenceblackwhite": "Musta ja valge kontrollväärtused",
+       "exif-datetime": "Faili muutmise kuupäev ja kellaaeg",
+       "exif-imagedescription": "Pildi pealkiri",
+       "exif-make": "Kaamera tootja",
+       "exif-model": "Kaamera mudel",
+       "exif-software": "Kasutatud tarkvara",
+       "exif-artist": "Autor",
+       "exif-copyright": "Autoriõiguse omanik",
+       "exif-exifversion": "Exif-versioon",
+       "exif-flashpixversion": "Toetatud Flashpixi versioon",
+       "exif-colorspace": "Värviruum",
+       "exif-componentsconfiguration": "Iga komponendi tähendus",
+       "exif-compressedbitsperpixel": "Pildi pakkimise meetod",
+       "exif-pixelxdimension": "Pildi laius",
+       "exif-pixelydimension": "Pildi kõrgus",
+       "exif-usercomment": "Kasutaja kommentaarid",
+       "exif-relatedsoundfile": "Seotud helifail",
+       "exif-datetimeoriginal": "Andmete loomise kuupäev ja kellaaeg",
+       "exif-datetimedigitized": "Digiteerimise kuupäev ja kellaaeg",
+       "exif-subsectime": "Muutmisaja sekundi murdosa",
+       "exif-subsectimeoriginal": "Loomisaja sekundi murdosa",
+       "exif-subsectimedigitized": "Digiteerimise sekundi murdosa",
+       "exif-exposuretime": "Säriaeg",
+       "exif-exposuretime-format": "$1 sek ($2)",
+       "exif-fnumber": "F-arv",
+       "exif-exposureprogram": "Säriprogramm",
+       "exif-spectralsensitivity": "Spektraalne tundlikkus",
+       "exif-isospeedratings": "Valgustundlikkus (ISO)",
+       "exif-shutterspeedvalue": "APEX-säriaeg",
+       "exif-aperturevalue": "APEX-avaarv",
+       "exif-brightnessvalue": "APEX-heledus",
+       "exif-exposurebiasvalue": "Särituse mõju",
+       "exif-maxaperturevalue": "Vähim ava",
+       "exif-subjectdistance": "Põhimotiivi kaugus",
+       "exif-meteringmode": "Mõõtmisviis",
+       "exif-lightsource": "Valgusallikas",
+       "exif-flash": "Välk",
+       "exif-focallength": "Fookuskaugus",
+       "exif-subjectarea": "Põhimotiivi ala",
+       "exif-flashenergy": "Välgu võimsus",
+       "exif-focalplanexresolution": "Fokaaltasandi rõhteraldus",
+       "exif-focalplaneyresolution": "Fokaaltasandi püsteraldus",
+       "exif-focalplaneresolutionunit": "Fokaaltasandi eraldusühik",
+       "exif-subjectlocation": "Põhimotiivi asukoht",
+       "exif-exposureindex": "Särituse number",
+       "exif-sensingmethod": "Tundlikustamismeetod",
+       "exif-filesource": "Faili päritolu",
+       "exif-scenetype": "Võtte tüüp",
+       "exif-customrendered": "Kohandatud pilditöötlus",
+       "exif-exposuremode": "Särituse meetod",
+       "exif-whitebalance": "Valge tasakaal",
+       "exif-digitalzoomratio": "Digisuumi tegur",
+       "exif-focallengthin35mmfilm": "35 mm-se filmi fookuskaugus",
+       "exif-scenecapturetype": "Ülesvõtte tüüp",
+       "exif-gaincontrol": "Tundlikkus",
+       "exif-contrast": "Kontrastsus",
+       "exif-saturation": "Küllastus",
+       "exif-sharpness": "Teravus",
+       "exif-devicesettingdescription": "Seadme seadistuste kirjeldus",
+       "exif-subjectdistancerange": "Põhimotiivi kaugusvahemik",
+       "exif-imageuniqueid": "Pildi ainuline identifikaator",
+       "exif-gpsversionid": "GPS-tähise versioon",
+       "exif-gpslatituderef": "Põhja- või lõunalaius",
+       "exif-gpslatitude": "Laius",
+       "exif-gpslongituderef": "Ida- või läänepikkus",
+       "exif-gpslongitude": "Pikkus",
+       "exif-gpsaltituderef": "Kõrgusreferents",
+       "exif-gpsaltitude": "Kõrgus merepinnast",
+       "exif-gpstimestamp": "GPS-aeg (aatomkell)",
+       "exif-gpssatellites": "Mõõtmiseks kasutatud satelliidid",
+       "exif-gpsstatus": "Vastuvõtja olek",
+       "exif-gpsmeasuremode": "Mõõtmise meetod",
+       "exif-gpsdop": "Mõõtmise täpsus",
+       "exif-gpsspeedref": "Kiirusühik",
+       "exif-gpsspeed": "GPS-vastuvõtja kiirus",
+       "exif-gpstrackref": "Liikumissuuna tüüp",
+       "exif-gpstrack": "Liikumissuund",
+       "exif-gpsimgdirectionref": "Pildi suuna tüüp",
+       "exif-gpsimgdirection": "Pildi suund",
+       "exif-gpsmapdatum": "Geodeetiline alus",
+       "exif-gpsdestlatituderef": "Poolkera (laius)",
+       "exif-gpsdestlatitude": "Kujutatud koha laius",
+       "exif-gpsdestlongituderef": "Poolkera (pikkus)",
+       "exif-gpsdestlongitude": "Kujutatud koha pikkus",
+       "exif-gpsdestbearingref": "Sihtpunkti suuna tüüp",
+       "exif-gpsdestbearing": "Sihtpunkti suund",
+       "exif-gpsdestdistanceref": "Sihtpunkti kauguse ühik",
+       "exif-gpsdestdistance": "Sihtpunkti kaugus",
+       "exif-gpsprocessingmethod": "GPS-töötlusmeetodi nimi",
+       "exif-gpsareainformation": "GPS-ala nimi",
+       "exif-gpsdatestamp": "GPS-kuupäev",
+       "exif-gpsdifferential": "GPS-i diferentsiaalparand",
+       "exif-jpegfilecomment": "JPEG-faili kommentaar",
+       "exif-keywords": "Märksõnad",
+       "exif-worldregioncreated": "Maailma piirkond, kus pilt on üles võetud",
+       "exif-countrycreated": "Maa, kus pilt on üles võetud",
+       "exif-countrycodecreated": "Ülesvõtte maa ISO-kood",
+       "exif-provinceorstatecreated": "Haldusüksus, kus pilt on üles võetud",
+       "exif-citycreated": "Linn, kus pilt on üles võetud",
+       "exif-sublocationcreated": "Linnaosa, kus pilt on üles võetud",
+       "exif-worldregiondest": "Kujutatud maailma piirkond",
+       "exif-countrydest": "Kujutatud maa",
+       "exif-countrycodedest": "Kujutatud maa ISO-kood",
+       "exif-provinceorstatedest": "Kujutatud haldusüksus",
+       "exif-citydest": "Kujutatud linn",
+       "exif-sublocationdest": "Kujutatud linnaosa",
+       "exif-objectname": "Lühipealkiri",
+       "exif-specialinstructions": "Erijuhised",
+       "exif-headline": "Pealkiri",
+       "exif-credit": "Päritolu/Annetaja",
+       "exif-source": "Allikas",
+       "exif-editstatus": "Pildi toimetusolek",
+       "exif-urgency": "Pakilisus",
+       "exif-fixtureidentifier": "Tugiandmete nimi",
+       "exif-locationdest": "Kujutatud asukoht",
+       "exif-locationdestcode": "Kujutatud asukoha kood",
+       "exif-objectcycle": "Päeva osa, milleks meediafail on ette nähtud",
+       "exif-contact": "Kontaktteave",
+       "exif-writer": "Autor",
+       "exif-languagecode": "Keel",
+       "exif-iimversion": "IIM-i versioon",
+       "exif-iimcategory": "Kategooria",
+       "exif-iimsupplementalcategory": "Lisakategooriad",
+       "exif-datetimeexpires": "Mitte kasutada hiljem kui",
+       "exif-datetimereleased": "Avaldamiskuupäev",
+       "exif-originaltransmissionref": "Algse edastuskoha kood",
+       "exif-identifier": "Identifikaator",
+       "exif-lens": "Kasutatud objektiiv",
+       "exif-serialnumber": "Kaamera seerianumber",
+       "exif-cameraownername": "Kaamera omanik",
+       "exif-label": "Silt",
+       "exif-datetimemetadata": "Metaandmete viimane muutmisaeg",
+       "exif-nickname": "Pildi vabas vormis nimi",
+       "exif-rating": "Hinne (5 palli skaala)",
+       "exif-rightscertificate": "Õiguste haldamise sertifikaat",
+       "exif-copyrighted": "Autoriõiguslik seisund",
+       "exif-copyrightowner": "Autoriõiguse valdaja",
+       "exif-usageterms": "Kasutustingimused",
+       "exif-webstatement": "Autoriõiguse ütlus võrgus",
+       "exif-originaldocumentid": "Algse dokumendi ainuline ID",
+       "exif-licenseurl": "Autoriõiguse litsentsi URL",
+       "exif-morepermissionsurl": "Teave muude võimalike litsentside kohta",
+       "exif-attributionurl": "Kui teost uuesti kasutad, lingi järgmiselt",
+       "exif-preferredattributionname": "Kui teost uuesti kasutad, too ära järgmine autorinimi",
+       "exif-pngfilecomment": "PNG-faili kommentaar",
+       "exif-disclaimer": "Lahtiütlus",
+       "exif-contentwarning": "Sisuhoiatus",
+       "exif-giffilecomment": "GIF-faili kommentaar",
+       "exif-intellectualgenre": "Üksuse tüüp",
+       "exif-subjectnewscode": "Teemakood",
+       "exif-scenecode": "IPTC-võttekood",
+       "exif-event": "Kujutatud sündmus",
+       "exif-organisationinimage": "Kujutatud organisatsioon",
+       "exif-personinimage": "Kujutatud isik",
+       "exif-originalimageheight": "Pildi kõrgus enne kärpimist",
+       "exif-originalimagewidth": "Pildi laius enne kärpimist",
+       "exif-compression-1": "Pakkimata",
+       "exif-compression-2": "CCITT G3 ühemõõtmeline muudetud Hoffmani sarikodeerimine",
+       "exif-compression-3": "CCITT G3 faksikodeerimine",
+       "exif-compression-4": "CCITT G4 faksikodeerimine",
+       "exif-compression-6": "JPEG (vana)",
+       "exif-copyrighted-true": "Kaitstud",
+       "exif-copyrighted-false": "Autoriõiguslik seisund määramata",
+       "exif-photometricinterpretation-0": "Mustvalge (valge on 0)",
+       "exif-photometricinterpretation-1": "Mustvalge (must on 0)",
+       "exif-photometricinterpretation-3": "Palett",
+       "exif-photometricinterpretation-4": "Läbipaistvusmask",
+       "exif-photometricinterpretation-5": "Eraldatud (arvatavasti CMYK)",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (ICC kodeering)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (ITU kodeering)",
+       "exif-unknowndate": "Kuupäev teadmata",
+       "exif-orientation-1": "Normaalne",
+       "exif-orientation-2": "Pööratud pikali",
+       "exif-orientation-3": "Pööratud 180°",
+       "exif-orientation-4": "Pööratud püsti",
+       "exif-orientation-5": "Pööratud 90° vastupäeva ja püstselt ümberpööratud",
+       "exif-orientation-6": "Pööratud 90° vastupäeva",
+       "exif-orientation-7": "Pööratud 90° päripäeva ja püstselt ümberpööratud",
+       "exif-orientation-8": "Pööratud 90° päripäeva",
+       "exif-planarconfiguration-1": "järjestikvorming",
+       "exif-planarconfiguration-2": "kihiline vorming",
+       "exif-colorspace-65535": "Kalibreerimata",
+       "exif-componentsconfiguration-0": "ei ole",
+       "exif-exposureprogram-0": "Määratlemata",
+       "exif-exposureprogram-1": "Manuaalne",
+       "exif-exposureprogram-2": "Tavaprogramm",
+       "exif-exposureprogram-3": "Ava prioriteet",
+       "exif-exposureprogram-4": "Katiku prioriteet",
+       "exif-exposureprogram-5": "Loovprogramm (ülekaalus väljasügavus)",
+       "exif-exposureprogram-6": "Aktiivprogramm (ülekaalus lühike säriaeg)",
+       "exif-exposureprogram-7": "Portree töörežiim (lähifotode jaoks, taust fookusest väljas)",
+       "exif-exposureprogram-8": "Maastiku töörežiim (maastikupiltide jaoks, taust on teravdatud)",
+       "exif-subjectdistance-value": "$1 meetrit",
+       "exif-meteringmode-0": "Teadmata",
+       "exif-meteringmode-1": "Keskmine",
+       "exif-meteringmode-2": "Kaalutud keskmine",
+       "exif-meteringmode-3": "Punkt",
+       "exif-meteringmode-4": "Mitmikpunkt",
+       "exif-meteringmode-5": "Muster",
+       "exif-meteringmode-6": "Osaline",
+       "exif-meteringmode-255": "Muu",
+       "exif-lightsource-0": "Teadmata",
+       "exif-lightsource-1": "Päevavalgus",
+       "exif-lightsource-2": "Fluorestsentsvalgus",
+       "exif-lightsource-3": "Hõõglambi valgus",
+       "exif-lightsource-4": "Välk",
+       "exif-lightsource-9": "Hea ilm",
+       "exif-lightsource-10": "Pilvine ilm",
+       "exif-lightsource-11": "Varjus",
+       "exif-lightsource-12": "Päevane fluorestsentsvalgus (D 5700 – 7100K)",
+       "exif-lightsource-13": "Päevavalge fluorestsentsvalgus (N 4600 – 5400K)",
+       "exif-lightsource-14": "Külmvalge fluorestsentsvalgus (W 3900 – 4500K)",
+       "exif-lightsource-15": "Valge fluorestsentsvalgus (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standardne valgus A",
+       "exif-lightsource-18": "Standardne valgus B",
+       "exif-lightsource-19": "Standardne valgus C",
+       "exif-lightsource-24": "Stuudio hõõglamp (ISO)",
+       "exif-lightsource-255": "Muu valgusallikas",
+       "exif-flash-fired-0": "Välk ei töötanud",
+       "exif-flash-fired-1": "Välk töötas",
+       "exif-flash-return-0": "ei ole välgu peegeldumist tuvastavat funktsiooni",
+       "exif-flash-return-2": "välgu peegeldust ei tuvastatud",
+       "exif-flash-return-3": "tuvastati välgu peegeldus",
+       "exif-flash-mode-1": "sundvälk",
+       "exif-flash-mode-2": "välk keelatud",
+       "exif-flash-mode-3": "automaatne töörežiim",
+       "exif-flash-function-1": "Välgu funktsiooni ei ole",
+       "exif-flash-redeye-1": "punasilmsust vähendav režiim",
+       "exif-focalplaneresolutionunit-2": "toll",
+       "exif-sensingmethod-1": "Määramata",
+       "exif-sensingmethod-2": "Ühe kiibiga värviandur",
+       "exif-sensingmethod-3": "Kahe kiibiga värviandur",
+       "exif-sensingmethod-4": "Kolme kiibiga värviandur",
+       "exif-sensingmethod-5": "Jadavärviandur",
+       "exif-sensingmethod-7": "Trilineaarne andur",
+       "exif-sensingmethod-8": "Lineaarne jadavärviandur",
+       "exif-filesource-3": "Digitaalne fotokaamera",
+       "exif-scenetype-1": "Pildistatud otse",
+       "exif-customrendered-0": "Tavatöötlus",
+       "exif-customrendered-1": "Kohandatud töötlus",
+       "exif-exposuremode-0": "Automaatne säritus",
+       "exif-exposuremode-1": "Manuaalne säritus",
+       "exif-exposuremode-2": "Automaatne särikahvel",
+       "exif-whitebalance-0": "Automaatne valge tasakaal",
+       "exif-whitebalance-1": "Manuaalne valge tasakaal",
+       "exif-scenecapturetype-0": "Standardne",
+       "exif-scenecapturetype-1": "Maastik",
+       "exif-scenecapturetype-2": "Portree",
+       "exif-scenecapturetype-3": "Ööpilt",
+       "exif-gaincontrol-0": "Puudub",
+       "exif-gaincontrol-1": "Natuke tõstetud",
+       "exif-gaincontrol-2": "Suur",
+       "exif-gaincontrol-3": "Natuke vähendatud",
+       "exif-gaincontrol-4": "Vähene",
+       "exif-contrast-0": "Normaalne",
+       "exif-contrast-1": "Nõrk",
+       "exif-contrast-2": "Tugev",
+       "exif-saturation-0": "Normaalne",
+       "exif-saturation-1": "Vähene värviküllastus",
+       "exif-saturation-2": "Suur värviküllastus",
+       "exif-sharpness-0": "Normaalne",
+       "exif-sharpness-1": "Nõrk",
+       "exif-sharpness-2": "Tugev",
+       "exif-subjectdistancerange-0": "Teadmata",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Lähivõte",
+       "exif-subjectdistancerange-3": "Kaugvõte",
+       "exif-gpslatitude-n": "Põhjalaius",
+       "exif-gpslatitude-s": "Lõunalaius",
+       "exif-gpslongitude-e": "Idapikkus",
+       "exif-gpslongitude-w": "Läänepikkus",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meeter|meetrit}} üle merepinna",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meeter|meetrit}} allpool merepinda",
+       "exif-gpsstatus-a": "Mõõtmine pooleli",
+       "exif-gpsstatus-v": "Koostalitlevus",
+       "exif-gpsmeasuremode-2": "2-mõõtmeline ulatus",
+       "exif-gpsmeasuremode-3": "3-mõõtmeline ulatus",
+       "exif-gpsspeed-k": "Kilomeetrit tunnis",
+       "exif-gpsspeed-m": "Miili tunnis",
+       "exif-gpsspeed-n": "Sõlme",
+       "exif-gpsdestdistance-k": "Kilomeetrid",
+       "exif-gpsdestdistance-m": "Miilid",
+       "exif-gpsdestdistance-n": "Meremiilid",
+       "exif-gpsdop-excellent": "Suurepärane ($1)",
+       "exif-gpsdop-good": "Hea ($1)",
+       "exif-gpsdop-moderate": "Keskpärane ($1)",
+       "exif-gpsdop-fair": "Rahuldav ($1)",
+       "exif-gpsdop-poor": "Vilets ($1)",
+       "exif-objectcycle-a": "Ainult hommikuks",
+       "exif-objectcycle-p": "Ainult õhtuks",
+       "exif-objectcycle-b": "Nii hommikuks kui õhtuks",
+       "exif-gpsdirection-t": "Tõeline suund",
+       "exif-gpsdirection-m": "Magnetiline suund",
+       "exif-ycbcrpositioning-1": "Keskele asetatud",
+       "exif-ycbcrpositioning-2": "Kõrvuti asetatud",
+       "exif-dc-contributor": "Asjaosalised",
+       "exif-dc-coverage": "Teabevahendi ruumiline või ajaline ulatus",
+       "exif-dc-date": "Kuupäevad",
+       "exif-dc-publisher": "Väljaandja",
+       "exif-dc-relation": "Seotud teabevahendid",
+       "exif-dc-rights": "Õigused",
+       "exif-dc-source": "Allikmeediafail",
+       "exif-dc-type": "Meediafaili tüüp",
+       "exif-rating-rejected": "Tagasi lükatud",
+       "exif-isospeedratings-overflow": "Suurem kui 65535",
+       "exif-iimcategory-ace": "Kunstid, kultuur ja meelelahutus",
+       "exif-iimcategory-clj": "Kuritegevus ja õigus",
+       "exif-iimcategory-dis": "Katastroofid ja õnnetused",
+       "exif-iimcategory-fin": "Majandus ja äri",
+       "exif-iimcategory-edu": "Haridus",
+       "exif-iimcategory-evn": "Keskkond",
+       "exif-iimcategory-hth": "Tervis",
+       "exif-iimcategory-hum": "Huviala",
+       "exif-iimcategory-lab": "Töö",
+       "exif-iimcategory-lif": "Eluviis ja vaba aeg",
+       "exif-iimcategory-pol": "Poliitika",
+       "exif-iimcategory-rel": "Religioon ja usk",
+       "exif-iimcategory-sci": "Teadus ja tehnika",
+       "exif-iimcategory-soi": "Sotsiaalküsimused",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Sõjad, konfliktid ja rahutused",
+       "exif-iimcategory-wea": "Ilm",
+       "exif-urgency-normal": "Harilik ($1)",
+       "exif-urgency-low": "Madal ($1)",
+       "exif-urgency-high": "Kõrge ($1)",
+       "exif-urgency-other": "Kasutaja määratud tähtsus ($1)"
+}
diff --git a/languages/i18n/exif/eu.json b/languages/i18n/exif/eu.json
new file mode 100644 (file)
index 0000000..5831e69
--- /dev/null
@@ -0,0 +1,369 @@
+{
+       "@metadata": {
+               "authors": [
+                       "An13sa",
+                       "Bengoa",
+                       "Subi",
+                       "Theklan",
+                       "Unai Fdz. de Betoño",
+                       "Xabier Armendaritz"
+               ]
+       },
+       "exif-imagewidth": "Zabalera",
+       "exif-imagelength": "Altuera",
+       "exif-bitspersample": "Bit osagaiko",
+       "exif-compression": "Konpresio eskema",
+       "exif-photometricinterpretation": "Pixelen konposaketa",
+       "exif-orientation": "Orientazioa",
+       "exif-samplesperpixel": "Atal kopurua",
+       "exif-planarconfiguration": "Datuen banaketa",
+       "exif-ycbcrsubsampling": "Ytik Crako azpisanpleatu erlazioa",
+       "exif-ycbcrpositioning": "Y eta Cren kokatzea",
+       "exif-xresolution": "Bereizmen horizontala",
+       "exif-yresolution": "Bereizmen bertikala",
+       "exif-stripoffsets": "Irudiaren datuen kokalekua",
+       "exif-rowsperstrip": "Zutabe bakoitzean dauden lerro kopurua",
+       "exif-stripbytecounts": "Konprimatutako zerrenda bakoitzeko byte kopurua",
+       "exif-jpeginterchangeformat": "JPEG SOIren offseta",
+       "exif-jpeginterchangeformatlength": "JPEG datuen byteak",
+       "exif-whitepoint": "Puntu txuriaren kromatizitatea",
+       "exif-primarychromaticities": "Primarioen kromatizitateak",
+       "exif-ycbcrcoefficients": "Kolore espzioaren aldatze koefiziente matrizeak",
+       "exif-referenceblackwhite": "Txuri eta beltzaren erreferentzia balioen parea",
+       "exif-datetime": "Fitxategi aldaketaren data eta ordua",
+       "exif-imagedescription": "Irudiaren izenburua",
+       "exif-make": "Kameraren fabrikatzailea",
+       "exif-model": "Kamara mota",
+       "exif-software": "Erabilitako softwarea",
+       "exif-artist": "Egilea",
+       "exif-copyright": "Copyright-aren jabea",
+       "exif-exifversion": "Exif bertsioa",
+       "exif-flashpixversion": "Gaitutako Flashpix bertsioa",
+       "exif-colorspace": "Kolore tartea",
+       "exif-componentsconfiguration": "Osagai bakoitzaren esanahia",
+       "exif-compressedbitsperpixel": "Irudi konpresio mota",
+       "exif-pixelxdimension": "Irudiaren zabalera",
+       "exif-pixelydimension": "Irudiaren altuera",
+       "exif-usercomment": "Erabiltzailearen iruzkinak",
+       "exif-relatedsoundfile": "Harremanetan dagoen audio fitxategia",
+       "exif-datetimeoriginal": "Datuen sorreraren data eta ordua",
+       "exif-datetimedigitized": "Digitalizazioaren data eta ordua",
+       "exif-subsectime": "DataDenbora azpisegunduak",
+       "exif-subsectimeoriginal": "DataDenboraOrijinala azpisegunduak",
+       "exif-subsectimedigitized": "DataDenboraDigitalizatu azpisekunduak",
+       "exif-exposuretime": "Esposizio denbora",
+       "exif-exposuretime-format": "$1 seg ($2)",
+       "exif-fnumber": "F Zenbakia",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Esposizio Programa",
+       "exif-spectralsensitivity": "Sentiberatasun espektrala",
+       "exif-isospeedratings": "ISO abiadura",
+       "exif-shutterspeedvalue": "APEX argazkiaren itxiera-abiadura",
+       "exif-aperturevalue": "APEX irekiera",
+       "exif-brightnessvalue": "APEX distira",
+       "exif-exposurebiasvalue": "Esposizio biasa",
+       "exif-maxaperturevalue": "Gehienezko landa irekiera",
+       "exif-subjectdistance": "Subjetuarekiko distantzia",
+       "exif-meteringmode": "Distantzia-neurtze modua",
+       "exif-lightsource": "Argiaren jatorria",
+       "exif-flash": "Flash",
+       "exif-focallength": "Lentearen fokatze luzera",
+       "exif-focallength-format": "$1 mm",
+       "exif-subjectarea": "Subjektuaren zonaldea",
+       "exif-flashenergy": "Flasharen indarra",
+       "exif-focalplanexresolution": "Plano fokalaren X erresoluzioa",
+       "exif-focalplaneyresolution": "Plano fokalaren Y erresoluzioa",
+       "exif-focalplaneresolutionunit": "Plano fokalaren erresoluzio unitatea",
+       "exif-subjectlocation": "Subjektuaren kokalekua",
+       "exif-exposureindex": "Esposaketa indizea",
+       "exif-sensingmethod": "Sensorearen metodoa",
+       "exif-filesource": "Fitxategiaren jatorria",
+       "exif-scenetype": "Eskena mota",
+       "exif-customrendered": "Irudien prozesamendu pertsonalizatua",
+       "exif-exposuremode": "Esposaketa mota",
+       "exif-whitebalance": "Txurien oreka",
+       "exif-digitalzoomratio": "Zoom digitalaren eskala",
+       "exif-focallengthin35mmfilm": "35 mm.ko filmean luzera fokala",
+       "exif-scenecapturetype": "Eskena hartze mota",
+       "exif-gaincontrol": "Eskena kontrola",
+       "exif-contrast": "Kontrastea",
+       "exif-saturation": "Asetasuna",
+       "exif-sharpness": "Fokatzea",
+       "exif-devicesettingdescription": "Gailuaren konfigurazio deskribapena",
+       "exif-subjectdistancerange": "Subjektuaren distantzia balio-eremua",
+       "exif-imageuniqueid": "Irudiaren ID bakarra",
+       "exif-gpsversionid": "GPS etiketa bertsioa",
+       "exif-gpslatituderef": "Iparraldeko edo hegoaldeko latitudea",
+       "exif-gpslatitude": "Latitudea",
+       "exif-gpslongituderef": "Ekialdeko edo mendebaldeko longitudea",
+       "exif-gpslongitude": "Longitudea",
+       "exif-gpsaltituderef": "Garaiera erreferentzia",
+       "exif-gpsaltitude": "Garaiera",
+       "exif-gpstimestamp": "GPS ordua (erloju atomikoa)",
+       "exif-gpssatellites": "Neurketarako erabilitako sateliteak",
+       "exif-gpsstatus": "Hartzailearen egoera",
+       "exif-gpsmeasuremode": "Neurketarako modua",
+       "exif-gpsdop": "Neurketaren zehaztasuna",
+       "exif-gpsspeedref": "Abiadura unitatea",
+       "exif-gpsspeed": "GPS hartzailearen abiadura",
+       "exif-gpstrackref": "Mugimenduaren norabidearentzako erreferentzia",
+       "exif-gpstrack": "Mugimenduaren norabidea",
+       "exif-gpsimgdirectionref": "Irudiaren norabidearentzako erreferentzia",
+       "exif-gpsimgdirection": "Irudiaren norabidea",
+       "exif-gpsmapdatum": "Ikerketa geodetikorako erabilitako datuak",
+       "exif-gpsdestlatituderef": "Helburu eta latituderako erreferentzia",
+       "exif-gpsdestlatitude": "Latitude helburua",
+       "exif-gpsdestlongituderef": "Luzera eta helbururako erreferentzia",
+       "exif-gpsdestlongitude": "Helburuaren luzera",
+       "exif-gpsdestbearingref": "Helburuaren norabiderako erreferentzia",
+       "exif-gpsdestbearing": "Helburuaren norabidea",
+       "exif-gpsdestdistanceref": "Helbururako dagoen distantziarako erreferentzia",
+       "exif-gpsdestdistance": "Helburuarekiko distantzia",
+       "exif-gpsprocessingmethod": "GPS prozesamendu metodoaren izena",
+       "exif-gpsareainformation": "GPS eskualdearen izena",
+       "exif-gpsdatestamp": "GPS data",
+       "exif-gpsdifferential": "GPSaren zuzenketa diferentziala",
+       "exif-jpegfilecomment": "JPEG fitxategiaren iruzkina",
+       "exif-keywords": "Hitz gakoak",
+       "exif-worldregioncreated": "Munduko zein eskualdetan egin den argazki hau",
+       "exif-countrycreated": "Argazkia egin den herrialdea",
+       "exif-countrycodecreated": "Argazkia egin deneko herrialdearen kodea",
+       "exif-provinceorstatecreated": "Argazkia egin deneko probintzia edo estatua",
+       "exif-citycreated": "Argazkia egin deneko hiria",
+       "exif-sublocationcreated": "Argazkia egin deneko hiriaren azpieremua",
+       "exif-worldregiondest": "Munduko eskualdea erakusten da",
+       "exif-countrydest": "Erakutsitako herrialdea",
+       "exif-countrycodedest": "Herrialdearen kodea erakusten da",
+       "exif-provinceorstatedest": "Pronbitzia edo estatua erakusten da",
+       "exif-citydest": "Hiria erakusten da",
+       "exif-sublocationdest": "Hiriaren azpikokapena erakusten da",
+       "exif-objectname": "Izenburua laburra",
+       "exif-specialinstructions": "Agindu bereziak",
+       "exif-headline": "Goiburua",
+       "exif-credit": "Kreditua/Emalea",
+       "exif-source": "Jatorria",
+       "exif-editstatus": "Irudiaren egoera editoriala",
+       "exif-urgency": "Larrialdia",
+       "exif-fixtureidentifier": "Konpontzearen izena",
+       "exif-locationdest": "Agertzen den lekua",
+       "exif-locationdestcode": "Agertzen den lekuaren kodea",
+       "exif-objectcycle": "Media hau baliagarria den egunaren ordua",
+       "exif-contact": "Kontratuaren informazioa",
+       "exif-writer": "Idazlea",
+       "exif-languagecode": "Hizkuntza",
+       "exif-iimversion": "IIM bertsioa",
+       "exif-iimcategory": "Kategoria",
+       "exif-iimsupplementalcategory": "Kategoria gehigarriak",
+       "exif-datetimeexpires": "Ez erabili data hau pasata:",
+       "exif-datetimereleased": "Ekoizpen data:",
+       "exif-originaltransmissionref": "Trasmisio originalaren kokapen kodea",
+       "exif-identifier": "Identifikatzailea",
+       "exif-lens": "Erabilitako lentea",
+       "exif-serialnumber": "Kameraren serie-zenbakia",
+       "exif-cameraownername": "Kameraren jabea",
+       "exif-label": "Etiketa",
+       "exif-datetimemetadata": "Datuaren metadata azken aldiz aldatu da",
+       "exif-nickname": "Irudiaren izen ez-formala",
+       "exif-rating": "Balorazioa (5 arte)",
+       "exif-rightscertificate": "Eskubideen kudeaketa ziurtagiria",
+       "exif-copyrighted": "Copyright egoera",
+       "exif-copyrightowner": "Copyright-aren jabea",
+       "exif-usageterms": "Erabilera baldintzak",
+       "exif-webstatement": "Copyright azapena sarean",
+       "exif-originaldocumentid": "Jatorrizko dokumentuaren ID bakarra",
+       "exif-licenseurl": "Copyright lizentziaren URLa",
+       "exif-morepermissionsurl": "Lizentziaren informazio alternatiboa",
+       "exif-attributionurl": "Lan hau berrerabiltzean, mesedez lotura hau erabili",
+       "exif-preferredattributionname": "Lan hau berrerabiltzean, mesedez aipatu",
+       "exif-pngfilecomment": "PNG fitxategiaren iruzkina",
+       "exif-disclaimer": "Mugaketak",
+       "exif-contentwarning": "Edukiarekin adi",
+       "exif-giffilecomment": "GIF fitxategiaren iruzkina",
+       "exif-intellectualgenre": "Elementu mota",
+       "exif-subjectnewscode": "Gaiaren kodea",
+       "exif-scenecode": "IPTC eskena kodea",
+       "exif-event": "Agertzen den ebentoa",
+       "exif-organisationinimage": "Agertzen den antolakundea",
+       "exif-personinimage": "Agertzen den pertsona",
+       "exif-originalimageheight": "Irudiaren altuera moztu aurretik",
+       "exif-originalimagewidth": "Irudiaren zabalera moztu aurretik",
+       "exif-compression-1": "Konprimatu gabe",
+       "exif-compression-2": "CCITT Group 3 1-Dimensional Modified Huffman kodetzea abiatu da",
+       "exif-compression-3": "CCITT Group 3 fax kodetzea",
+       "exif-compression-4": "CCITT Group 4 fax kodetzea",
+       "exif-compression-6": "JPEG",
+       "exif-copyrighted-true": "Copyrightduna",
+       "exif-copyrighted-false": "Copyright egoera ez da ezarri",
+       "exif-photometricinterpretation-1": "Zuri-beltza (beltza 0 da)",
+       "exif-photometricinterpretation-2": "GBU (RGB)",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-unknowndate": "Data ezezaguna",
+       "exif-orientation-1": "Arrunta",
+       "exif-orientation-2": "Horizontalki buelta emana",
+       "exif-orientation-3": "180° biratuta",
+       "exif-orientation-4": "Bertikalki buelta emana",
+       "exif-orientation-5": "Erlojuaren aurka 90º biratuta eta bertikalki buelta emana",
+       "exif-orientation-6": "Erlojuaren norantzaren aurka 90º biratuta",
+       "exif-orientation-7": "Erlojuaren norantzan 90º biratuta eta bertikalki buelta emana",
+       "exif-orientation-8": "Erlojuaren norantzan 90º biratuta",
+       "exif-planarconfiguration-1": "formatu potoloa",
+       "exif-planarconfiguration-2": "formatu planarra",
+       "exif-xyresolution-i": "$1 dpi",
+       "exif-xyresolution-c": "$1 dpc",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "Kalibratu gabe",
+       "exif-componentsconfiguration-0": "ez da existitzen",
+       "exif-componentsconfiguration-1": "Y",
+       "exif-componentsconfiguration-2": "Cb",
+       "exif-componentsconfiguration-3": "Cr",
+       "exif-componentsconfiguration-4": "G",
+       "exif-componentsconfiguration-5": "B",
+       "exif-componentsconfiguration-6": "U",
+       "exif-exposureprogram-0": "Definitu gabe",
+       "exif-exposureprogram-1": "Eskuz",
+       "exif-exposureprogram-2": "Programa arrunta",
+       "exif-exposureprogram-3": "Irekiera prioritatea",
+       "exif-exposureprogram-4": "Abiaduraren prioritatea",
+       "exif-exposureprogram-5": "Programa kreatiboa (eremu sakonera lortze bidean)",
+       "exif-exposureprogram-6": "Akzioa (argazki abiadura azkarra lortze bidean)",
+       "exif-exposureprogram-7": "Erretratu modua (atzealde ez fokatua duten gertuko argazkientzat)",
+       "exif-exposureprogram-8": "Paisaia modua (atzealde fokatua duten paisaia argazkientzat)",
+       "exif-subjectdistance-value": "$1 metro",
+       "exif-meteringmode-0": "Ezezaguna",
+       "exif-meteringmode-1": "Bataz bestekoa",
+       "exif-meteringmode-2": "ZentruanNeurketaBatazBestekoa",
+       "exif-meteringmode-3": "Puntua",
+       "exif-meteringmode-4": "MultiPuntua",
+       "exif-meteringmode-5": "Eredua",
+       "exif-meteringmode-6": "Partziala",
+       "exif-meteringmode-255": "Beste bat",
+       "exif-lightsource-0": "Ezezaguna",
+       "exif-lightsource-1": "Egun argia",
+       "exif-lightsource-2": "Fluoreszentea",
+       "exif-lightsource-3": "Wolframioa (argi inkandeszentea)",
+       "exif-lightsource-4": "Flash",
+       "exif-lightsource-9": "Eguraldi ona",
+       "exif-lightsource-10": "Eguraldi lainotsua",
+       "exif-lightsource-11": "Itzala",
+       "exif-lightsource-12": "Egun argiko fluoreszentea (D 5700 – 7100K)",
+       "exif-lightsource-13": "Eguneko fluoreszente txuria (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fluoreszente txuri hotza (W 3900 – 4500K)",
+       "exif-lightsource-15": "Fluoreszente txuria (WW 3200 – 3700K)",
+       "exif-lightsource-17": "A argi estandarra",
+       "exif-lightsource-18": "B argi estandarra",
+       "exif-lightsource-19": "C argi estandarra",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-22": "D75",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "ISO estudio wolframioa",
+       "exif-lightsource-255": "Beste argi iturburu bat",
+       "exif-flash-fired-0": "Flashik gabe",
+       "exif-flash-fired-1": "Flasharekin",
+       "exif-flash-return-0": "ez dauka estrobo itzulera detekzio funtziorik",
+       "exif-flash-return-2": "estrobo itzulera argirik ez da detektatu",
+       "exif-flash-return-3": "estrobo itzulera argia detektatu da",
+       "exif-flash-mode-1": "flashak derrigorrez bota du argia",
+       "exif-flash-mode-2": "flasha derrigorrez kendu da",
+       "exif-flash-mode-3": "auto modua",
+       "exif-flash-function-1": "Ez dauka flash funtziorik",
+       "exif-flash-redeye-1": "begi-gorriak kentzeko modua",
+       "exif-focalplaneresolutionunit-2": "hazbete",
+       "exif-sensingmethod-1": "Definitu gabea",
+       "exif-sensingmethod-2": "Txip bakarreko kolorezko eremu sentsorea",
+       "exif-sensingmethod-3": "Bi txipeko kolorezko eremu sentsorea",
+       "exif-sensingmethod-4": "Hiru txipeko kolorezko eremu sentsorea",
+       "exif-sensingmethod-5": "Kolore sekuentzialeko eremu sentsorea",
+       "exif-sensingmethod-7": "Hiru lerroko sentsorea",
+       "exif-sensingmethod-8": "Kolore sekuentzialeko sentsore linearra",
+       "exif-filesource-3": "Argazki kamera digitala",
+       "exif-scenetype-1": "Zuzenean argazkia atera zaion irudi bat",
+       "exif-customrendered-0": "Prozesu arrunta",
+       "exif-customrendered-1": "Prozesu pertsonalizatua",
+       "exif-exposuremode-0": "Esposizio automatikoa",
+       "exif-exposuremode-1": "Eskuzko esposizioa",
+       "exif-exposuremode-2": "Bracket automatikoa",
+       "exif-whitebalance-0": "Zurien balantze automatikoa",
+       "exif-whitebalance-1": "Zurien eskuzko balantzea",
+       "exif-scenecapturetype-0": "Arrunta",
+       "exif-scenecapturetype-1": "Paisaia",
+       "exif-scenecapturetype-2": "Erretratua",
+       "exif-scenecapturetype-3": "Gau eskena",
+       "exif-gaincontrol-0": "Ezer",
+       "exif-gaincontrol-1": "Gain igotze baxua",
+       "exif-gaincontrol-2": "Gain igotze altua",
+       "exif-gaincontrol-3": "Gain beheragotze baxua",
+       "exif-gaincontrol-4": "Gain beheratze altua",
+       "exif-contrast-0": "Arrunta",
+       "exif-contrast-1": "Leuna",
+       "exif-contrast-2": "Zakarra",
+       "exif-saturation-0": "Arrunta",
+       "exif-saturation-1": "Asetasun baxua",
+       "exif-saturation-2": "Asetasun altua",
+       "exif-sharpness-0": "Arrunta",
+       "exif-sharpness-1": "Leuna",
+       "exif-sharpness-2": "Zakarra",
+       "exif-subjectdistancerange-0": "Ezezaguna",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Ikuspegi itxia",
+       "exif-subjectdistancerange-3": "Urruneko ikuspegia",
+       "exif-gpslatitude-n": "Iparraldeko latitudea",
+       "exif-gpslatitude-s": "Hegoaldeko latitudea",
+       "exif-gpslongitude-e": "Ekialdeko longitudea",
+       "exif-gpslongitude-w": "Mendebaldeko longitudea",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metro|metro}} itsasoaren mailaren gainetik",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metro|metro}} itsasoaren mailaren azpitik",
+       "exif-gpsstatus-a": "Neurketa burutzen",
+       "exif-gpsstatus-v": "Neurketen interoperabilitatea",
+       "exif-gpsmeasuremode-2": "2 dimentsioko neurketa",
+       "exif-gpsmeasuremode-3": "3 dimentsioko neurketa",
+       "exif-gpsspeed-k": "Kilometro orduko",
+       "exif-gpsspeed-m": "Milia orduko",
+       "exif-gpsspeed-n": "Lotailuak",
+       "exif-gpsdestdistance-k": "Kilometro",
+       "exif-gpsdestdistance-m": "Milia",
+       "exif-gpsdestdistance-n": "Itsas milia",
+       "exif-gpsdop-excellent": "Bikaina ($1)",
+       "exif-gpsdop-good": "Ona  ($1)",
+       "exif-gpsdop-moderate": "Moderatua ($1)",
+       "exif-gpsdop-fair": "Justua ($1)",
+       "exif-gpsdop-poor": "Pobrea ($1)",
+       "exif-objectcycle-a": "Goizetan bakarrik",
+       "exif-objectcycle-p": "Arratsaldetan bakarrik",
+       "exif-objectcycle-b": "Goiz zein arratsalde",
+       "exif-gpsdirection-t": "Benetako norabidea",
+       "exif-gpsdirection-m": "Norabide magnetikoa",
+       "exif-ycbcrpositioning-1": "Zentratua",
+       "exif-ycbcrpositioning-2": "Gune partekatua",
+       "exif-dc-contributor": "Egileak",
+       "exif-dc-coverage": "Media honen denbora- edo leku-esparrua",
+       "exif-dc-date": "Data(k)",
+       "exif-dc-publisher": "Argitaratzailea",
+       "exif-dc-relation": "Harremana duen media",
+       "exif-dc-rights": "Eskubideak",
+       "exif-dc-source": "Jatorrizko media",
+       "exif-dc-type": "Media mota",
+       "exif-rating-rejected": "Ukatua",
+       "exif-isospeedratings-overflow": "65535 baino handiago",
+       "exif-iimcategory-ace": "Arteak, kultura eta aisia",
+       "exif-iimcategory-clj": "Krimena eta zuzenbidea",
+       "exif-iimcategory-dis": "Hondamendiak eta istripuak",
+       "exif-iimcategory-fin": "Ekonomia eta negozioa",
+       "exif-iimcategory-edu": "Hezkuntza",
+       "exif-iimcategory-evn": "Ingurumena",
+       "exif-iimcategory-hth": "Osasuna",
+       "exif-iimcategory-hum": "Gizakientzako interesa",
+       "exif-iimcategory-lab": "Lana",
+       "exif-iimcategory-lif": "Bizimoduak eta denborapasak",
+       "exif-iimcategory-pol": "Politika",
+       "exif-iimcategory-rel": "Erlijioa eta sinesmenak",
+       "exif-iimcategory-sci": "Zientzia eta teknologia",
+       "exif-iimcategory-soi": "Gizarte gaiak",
+       "exif-iimcategory-spo": "Kirola",
+       "exif-iimcategory-war": "Gerra, gatazka eta iraultza",
+       "exif-iimcategory-wea": "Eguraldia",
+       "exif-urgency-normal": "Arrunta ($1)",
+       "exif-urgency-low": "Baxua ($1)",
+       "exif-urgency-high": "Altua ($1)",
+       "exif-urgency-other": "Definitutako lehentasuna ($1)"
+}
diff --git a/languages/i18n/exif/ext.json b/languages/i18n/exif/ext.json
new file mode 100644 (file)
index 0000000..f2c61ce
--- /dev/null
@@ -0,0 +1,177 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Better"
+               ]
+       },
+       "exif-imagewidth": "Anchón",
+       "exif-imagelength": "Artura",
+       "exif-bitspersample": "Bits pol componenti",
+       "exif-compression": "Esquema e compresión",
+       "exif-photometricinterpretation": "Composición del pixel",
+       "exif-orientation": "Orientación",
+       "exif-samplesperpixel": "Númeru e componentis",
+       "exif-planarconfiguration": "Distribuieru e los datus",
+       "exif-ycbcrpositioning": "Posicionamientus Y i C",
+       "exif-xresolution": "Resolución orizontal",
+       "exif-yresolution": "Resolución vertical",
+       "exif-jpeginterchangeformatlength": "Bytes de datus JPEG",
+       "exif-whitepoint": "Cromaciá e puntu brancu",
+       "exif-primarychromaticities": "Cromaciais primarias",
+       "exif-imagedescription": "Entítulu la imáhin",
+       "exif-make": "Fabricanti e la cámara",
+       "exif-model": "Moelu la cámara",
+       "exif-software": "Software gastau",
+       "exif-artist": "Autol",
+       "exif-copyright": "Entitulal el Copyright",
+       "exif-exifversion": "Velsión Exif",
+       "exif-flashpixversion": "Velsión Flashpix soportá",
+       "exif-colorspace": "Espaciu e colol",
+       "exif-componentsconfiguration": "Senificau e ca componenti",
+       "exif-compressedbitsperpixel": "Mó de compresión la imahin",
+       "exif-pixelxdimension": "Anchón la imahin premitiu",
+       "exif-pixelydimension": "Artu la imahin premitiu",
+       "exif-usercomment": "Comentárius del usuáriu",
+       "exif-relatedsoundfile": "Archivu d'audiu relacionau",
+       "exif-datetimeoriginal": "Fecha i ora la heneración los datus",
+       "exif-exposuretime": "Tiempu d'esposición",
+       "exif-exposuretime-format": "$1 seg ($2)",
+       "exif-fnumber": "Númeru F",
+       "exif-exposureprogram": "Pograma d'esposición",
+       "exif-isospeedratings": "Calificación de velociá ISO",
+       "exif-aperturevalue": "Apertura",
+       "exif-brightnessvalue": "Brillu",
+       "exif-maxaperturevalue": "Máisima apertura",
+       "exif-lightsource": "Huenti e lús",
+       "exif-subjectarea": "Ária",
+       "exif-flashenergy": "Poténcia el Flash",
+       "exif-subjectlocation": "Asiahamientu",
+       "exif-sensingmethod": "Métu e sensol",
+       "exif-filesource": "Coigu el archivu",
+       "exif-scenetype": "Crasi d'escena",
+       "exif-customrendered": "Procesamientu d'imahin presonalizau",
+       "exif-exposuremode": "Mó d'esposición",
+       "exif-whitebalance": "Balanci e brancu",
+       "exif-digitalzoomratio": "Ratiu el zoom dehital",
+       "exif-focallengthin35mmfilm": "Longol focal en carreti e 35 mm",
+       "exif-gaincontrol": "Control la escena",
+       "exif-contrast": "Contrasti",
+       "exif-saturation": "Saturáncia",
+       "exif-imageuniqueid": "Ientificaeru d'imahin",
+       "exif-gpsversionid": "Velsión la etiqueta GPS",
+       "exif-gpslatituderef": "Latitú Norti u Sul",
+       "exif-gpslatitude": "Latitú",
+       "exif-gpslongituderef": "Lonhitú Esti u Oesti",
+       "exif-gpslongitude": "Lonhitú",
+       "exif-gpsaltituderef": "Artitú e referéncia",
+       "exif-gpsaltitude": "Artitú",
+       "exif-gpstimestamp": "Ora el GPS (Reló atómicu)",
+       "exif-gpssatellites": "Satélitis gastaus pala miia",
+       "exif-gpsstatus": "Estau el recetol",
+       "exif-gpsmeasuremode": "Mó e miia",
+       "exif-gpsdop": "Precisión de miia",
+       "exif-gpsspeedref": "Uniá e velociá",
+       "exif-gpsspeed": "Velociá el recetol GPS",
+       "exif-gpstrack": "Direción el movimientu",
+       "exif-gpsimgdirection": "Direción la imahin",
+       "exif-gpsdestlatituderef": "Referéncia pala latitú el destinu",
+       "exif-gpsdestlatitude": "Latitú el destinu",
+       "exif-gpsdestlongituderef": "Referéncia pala lonhitú el destinu",
+       "exif-gpsdestlongitude": "Lonhitú el destinu",
+       "exif-gpsdestbearingref": "Referéncia la orientación de destinu",
+       "exif-gpsdestbearing": "Orientación de destinu",
+       "exif-gpsdestdistanceref": "Longol al destinu",
+       "exif-gpsdestdistance": "Longol al destinu",
+       "exif-gpsprocessingmethod": "Nombri el métu e procesamientu e GPS",
+       "exif-gpsareainformation": "Nombri el ária GPS",
+       "exif-gpsdatestamp": "Fecha el GPS",
+       "exif-gpsdifferential": "Correción diferencial de GPS",
+       "exif-compression-1": "Descomprimiu",
+       "exif-unknowndate": "Fecha andarria",
+       "exif-orientation-2": "Gorteau orizontalmenti",
+       "exif-orientation-3": "Repiau 180°",
+       "exif-orientation-4": "Gorteau verticalmenti",
+       "exif-orientation-5": "Repiau 90° CCW i gorteau verticalmenti",
+       "exif-orientation-6": "Repiau 90° CW",
+       "exif-orientation-7": "Repiau 90° CW i gorteau verticalmenti",
+       "exif-orientation-8": "Repiau 90° CCW",
+       "exif-planarconfiguration-1": "hormatu gruesu",
+       "exif-planarconfiguration-2": "hormatu pranu",
+       "exif-componentsconfiguration-0": "nu desisti",
+       "exif-exposureprogram-0": "Sin definil",
+       "exif-exposureprogram-2": "Pograma normal",
+       "exif-exposureprogram-3": "Prioriá d'apertura",
+       "exif-exposureprogram-4": "Prioriá d'oturaol",
+       "exif-exposureprogram-5": "Pograma criativu (con prioriá e prohundiá e campu)",
+       "exif-exposureprogram-6": "Pograma d'ación (prioridá d'arta velociá el oturaol)",
+       "exif-exposureprogram-7": "Mó retrataura (p'afotus cercanas con el hondu desenfocau)",
+       "exif-exposureprogram-8": "Mó paisahi (p'afotus amprias con el hondu enfocau)",
+       "exif-subjectdistance-value": "$1 metrus",
+       "exif-meteringmode-0": "Andarriu",
+       "exif-meteringmode-1": "Promeyu",
+       "exif-meteringmode-2": "Promeyu centrau",
+       "exif-meteringmode-4": "MurtiSpot",
+       "exif-meteringmode-5": "Patrón",
+       "exif-meteringmode-6": "Parcial",
+       "exif-meteringmode-255": "Otru",
+       "exif-lightsource-0": "Andarriu",
+       "exif-lightsource-1": "Lus el dia",
+       "exif-lightsource-2": "Fluorescenti",
+       "exif-lightsource-3": "Tungstenu (lús encandescenti)",
+       "exif-lightsource-9": "Güen tiempu",
+       "exif-lightsource-10": "Tiempu nubrau",
+       "exif-lightsource-12": "Fluorescenti lús diulna (D 5700 – 7100K)",
+       "exif-lightsource-13": "Fluorescenti Brancu-Dia (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fluorescenti Brancu-Friu (W 3900 – 4500K)",
+       "exif-lightsource-15": "Fluorescenti brancu (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Lús estándal A",
+       "exif-lightsource-18": "Lús estándal B",
+       "exif-lightsource-19": "Lús estándal C",
+       "exif-lightsource-24": "Tungstenu d'estuyu ISO",
+       "exif-lightsource-255": "Otra huenti e lús",
+       "exif-focalplaneresolutionunit-2": "purgás",
+       "exif-sensingmethod-1": "Nu definiu",
+       "exif-sensingmethod-7": "Sensol trilinial",
+       "exif-scenetype-1": "Una imahin diretamenti afotugrafiá",
+       "exif-customrendered-0": "Procesu normal",
+       "exif-customrendered-1": "Procesu presonalizau",
+       "exif-exposuremode-0": "Esposición autumática",
+       "exif-exposuremode-1": "Esposición manual",
+       "exif-whitebalance-0": "Balanci e brancu autumáticu",
+       "exif-whitebalance-1": "Balanci e brancu manual",
+       "exif-scenecapturetype-0": "Estándal",
+       "exif-scenecapturetype-1": "Paisahi",
+       "exif-scenecapturetype-2": "Retratu",
+       "exif-scenecapturetype-3": "Escena notúlnia",
+       "exif-gaincontrol-0": "Dengunu",
+       "exif-gaincontrol-1": "Umentu bahu e ganáncia",
+       "exif-gaincontrol-2": "Umentu artu e ganáncia",
+       "exif-gaincontrol-3": "Deminución baha e ganáncia",
+       "exif-gaincontrol-4": "Deminución arta e ganáncia",
+       "exif-contrast-0": "Nolmal",
+       "exif-contrast-1": "Suavi",
+       "exif-contrast-2": "Duru",
+       "exif-saturation-0": "Nolmal",
+       "exif-saturation-1": "Poca saturación",
+       "exif-saturation-2": "Mucha saturación",
+       "exif-sharpness-0": "Nolmal",
+       "exif-sharpness-1": "Suavi",
+       "exif-sharpness-2": "Dura",
+       "exif-subjectdistancerange-0": "Andarriu",
+       "exif-subjectdistancerange-1": "Macru",
+       "exif-subjectdistancerange-2": "Afechal vista",
+       "exif-subjectdistancerange-3": "Vista dendi largu",
+       "exif-gpslatitude-n": "Latitú norti",
+       "exif-gpslatitude-s": "Latitú sul",
+       "exif-gpslongitude-e": "Lonhitú esti",
+       "exif-gpslongitude-w": "Lonhitú oesti",
+       "exif-gpsstatus-a": "Miia en pogresu",
+       "exif-gpsstatus-v": "Enteloperabiliá e miia",
+       "exif-gpsmeasuremode-2": "Miia bidimensional",
+       "exif-gpsmeasuremode-3": "Miia tridimensional",
+       "exif-gpsspeed-k": "Quilómetrus pol ora",
+       "exif-gpsspeed-m": "Millas pol ora",
+       "exif-gpsspeed-n": "Ñus",
+       "exif-gpsdirection-t": "Direción verdaera",
+       "exif-gpsdirection-m": "Direción manética"
+}
diff --git a/languages/i18n/exif/fa.json b/languages/i18n/exif/fa.json
new file mode 100644 (file)
index 0000000..13454d1
--- /dev/null
@@ -0,0 +1,352 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ebraminio",
+                       "Huji",
+                       "Meisam",
+                       "ZxxZxxZ"
+               ]
+       },
+       "exif-imagewidth": "عرض",
+       "exif-imagelength": "طول",
+       "exif-bitspersample": "نقطه در هر جزء",
+       "exif-compression": "شِمای فشرده‌سازی",
+       "exif-photometricinterpretation": "ترکیب نقاط",
+       "exif-orientation": "جهت",
+       "exif-samplesperpixel": "تعداد اجزا",
+       "exif-planarconfiguration": "آرایش داده‌ها",
+       "exif-ycbcrsubsampling": "نسبت زیرنمونهٔ Y به C",
+       "exif-ycbcrpositioning": "موقعیت Y و C",
+       "exif-xresolution": "تفکیک‌پذیری افقی",
+       "exif-yresolution": "تفکیک‌پذیری عمودی",
+       "exif-stripoffsets": "جایگاه داده‌های تصویر",
+       "exif-rowsperstrip": "تعداد ردیف‌ها در هر نوار",
+       "exif-stripbytecounts": "بایت در هر نوار فشرده",
+       "exif-jpeginterchangeformat": "جابه‌جایی نسبت به JPEG SOI",
+       "exif-jpeginterchangeformatlength": "بایت دادهٔ JPEG",
+       "exif-whitepoint": "رنگینگی نقطهٔ سفید",
+       "exif-primarychromaticities": "رنگ‌پذیری اولویت‌ها",
+       "exif-ycbcrcoefficients": "ضرایب ماتریس تبدیل فضای رنگی",
+       "exif-referenceblackwhite": "جفت مقادیر مرجع سیاه و سفید",
+       "exif-datetime": "تاریخ و زمان تغییر پرونده",
+       "exif-imagedescription": "عنوان تصویر",
+       "exif-make": "شرکت سازندهٔ دوربین",
+       "exif-model": "مدل دوربین",
+       "exif-software": "نرم‌افزار استفاده‌شده",
+       "exif-artist": "تصویربردار/هنرمند",
+       "exif-copyright": "دارندهٔ حق تکثیر",
+       "exif-exifversion": "نسخهٔ exif",
+       "exif-flashpixversion": "نسخهٔ پشتیبانی‌شدهٔ Flashpix",
+       "exif-colorspace": "فضای رنگی",
+       "exif-componentsconfiguration": "معنی هر یک از مؤلفه‌ها",
+       "exif-compressedbitsperpixel": "حالت فشرده‌سازی تصویر",
+       "exif-pixelxdimension": "پهنای تصویر",
+       "exif-pixelydimension": "بلندی تصویر",
+       "exif-usercomment": "توضیحات کاربر",
+       "exif-relatedsoundfile": "پروندهٔ صوتی مربوط",
+       "exif-datetimeoriginal": "تاریخ و زمان تولید داده‌ها",
+       "exif-datetimedigitized": "تاریخ و زمان دیجیتالی‌شدن",
+       "exif-subsectime": "کسر ثانیهٔ تاریخ و زمان",
+       "exif-subsectimeoriginal": "کسر ثانیهٔ زمان اصلی",
+       "exif-subsectimedigitized": "کسر ثانیهٔ زمان دیجیتال",
+       "exif-exposuretime": "زمان نوردهی",
+       "exif-exposuretime-format": "$1 ثانیه ($2)",
+       "exif-fnumber": "ضریب اف",
+       "exif-exposureprogram": "برنامهٔ نوردهی",
+       "exif-spectralsensitivity": "حساسیت طیفی",
+       "exif-isospeedratings": "درجه‌بندی سرعت ایزو",
+       "exif-shutterspeedvalue": "سرعت آپکس شاتر",
+       "exif-aperturevalue": "اندازهٔ آپکس دیافراگم",
+       "exif-brightnessvalue": "روشنایی آپکس",
+       "exif-exposurebiasvalue": "خطای نوردهی",
+       "exif-maxaperturevalue": "حداکثر گشادگی زمین",
+       "exif-subjectdistance": "فاصلهٔ سوژه",
+       "exif-meteringmode": "حالت سنجش نور",
+       "exif-lightsource": "منبع نور",
+       "exif-flash": "فلاش",
+       "exif-focallength": "فاصلهٔ کانونی عدسی",
+       "exif-focallength-format": "$1 میلی‌متر",
+       "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": "یکای سرعت",
+       "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-provinceorstatedest": "استان یا ایالت نمایش داده شده",
+       "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": "زمان روز که این رسانه برای آن در نظر گرفته شده",
+       "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": "تاریخ آخرین تغییر فراداده",
+       "exif-nickname": "نام غیررسمی تصویر",
+       "exif-rating": "امتیاز (از 5)",
+       "exif-rightscertificate": "گواهینامه مدیریت حقوق",
+       "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-2": "رمزگذاری سی‌سی‌آی‌تی‌تی گروه ۳ یک بعدی به روش هافمن تغییریافته روی طول",
+       "exif-compression-3": "رمزگذاری نمابر سی‌سی‌آی‌تی‌تی گروه ۳",
+       "exif-compression-4": "رمزگذاری نمابر سی‌سی‌آی‌تی‌تی گروه ۴",
+       "exif-copyrighted-true": "دارای حق تکثیر",
+       "exif-copyrighted-false": "وضعیت حق‌تکثیر تعیین نشده است",
+       "exif-photometricinterpretation-1": "سیاه و سفید (سیاه ۰ است)",
+       "exif-unknowndate": "تاریخ نامعلوم",
+       "exif-orientation-1": "عادی",
+       "exif-orientation-2": "افقی پشت و روشده",
+       "exif-orientation-3": "۱۸۰ درجه چرخیده",
+       "exif-orientation-4": "عمودی پشت و روشده",
+       "exif-orientation-5": "۹۰° پادساعتگرد چرخیده و عمودی پشت و رو شده",
+       "exif-orientation-6": "۹۰° پادساعتگرد چرخیده",
+       "exif-orientation-7": "۹۰° ساعتگرد چرخیده و عمودی پشت و رو شده",
+       "exif-orientation-8": "۹۰° ساعتگرد چرخیده",
+       "exif-planarconfiguration-1": "قالب فربه",
+       "exif-planarconfiguration-2": "قالب دووجهی",
+       "exif-xyresolution-i": "$1 نقطه در اینچ",
+       "exif-xyresolution-c": "$1 نقطه در سانتی‌متر",
+       "exif-colorspace-65535": "تنظیم‌نشده",
+       "exif-componentsconfiguration-0": "وجود ندارد",
+       "exif-exposureprogram-0": "تعریف‌نشده",
+       "exif-exposureprogram-1": "دستی",
+       "exif-exposureprogram-2": "برنامهٔ عادی",
+       "exif-exposureprogram-3": "اولویت دیافراگم",
+       "exif-exposureprogram-4": "اولویت شاتر",
+       "exif-exposureprogram-5": "برنامه خلاق (با گرایش به سمت عمق میدان)",
+       "exif-exposureprogram-6": "برنامه پرجنبش (با گرایش به سمت سرعت بیشتر شاتر)",
+       "exif-exposureprogram-7": "حالت پرتره (برای عکس‌های نزدیک که پس‌زمینه خارج از فاصلهٔ کانونی است)",
+       "exif-exposureprogram-8": "حالت منظره (برای عکس‌های منظره که تمرکز روی پس‌زمینه است)",
+       "exif-subjectdistance-value": "$1 متر",
+       "exif-meteringmode-0": "نامعلوم",
+       "exif-meteringmode-1": "میانگین",
+       "exif-meteringmode-2": "میانگین با مرکز سنگین",
+       "exif-meteringmode-3": "تک‌نقطه‌ای",
+       "exif-meteringmode-4": "چندنقطه‌ای",
+       "exif-meteringmode-5": "طرح‌دار",
+       "exif-meteringmode-6": "جزئی",
+       "exif-meteringmode-255": "غیره",
+       "exif-lightsource-0": "نامعلوم",
+       "exif-lightsource-1": "روشنایی روز",
+       "exif-lightsource-2": "فلورسانت",
+       "exif-lightsource-3": "تنگستن (نور بدون گرما)",
+       "exif-lightsource-4": "فلاش",
+       "exif-lightsource-9": "هوای خوب",
+       "exif-lightsource-10": "آسمان ابری",
+       "exif-lightsource-11": "سایه",
+       "exif-lightsource-12": "مهتابی در روز (D 5700 – 7100K)",
+       "exif-lightsource-13": "مهتابی سفید در روز (N 4600 – 5400K)",
+       "exif-lightsource-14": "مهتابی سفید خنک (W 3900 – 4500K)",
+       "exif-lightsource-15": "مهتابی سفید (WW 3200 – 3700K)",
+       "exif-lightsource-17": "نور استاندارد A",
+       "exif-lightsource-18": "نور استاندارد B",
+       "exif-lightsource-19": "نور استاندارد C",
+       "exif-lightsource-24": "لامپ تنگستن کارخانه ISO",
+       "exif-lightsource-255": "سایر",
+       "exif-flash-fired-0": "فلاش زده نشد",
+       "exif-flash-fired-1": "با زدن فلاش",
+       "exif-flash-return-0": "فاقد عملکرد کشف نور انعکاسی",
+       "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-sensingmethod-7": "حسگر سه‌خطی",
+       "exif-sensingmethod-8": "حسگر خطی ترتیبی رنگ‌ها",
+       "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-saturation-0": "عادی",
+       "exif-saturation-1": "رنگ‌های رقیق شده",
+       "exif-saturation-2": "رنگ‌های تغلیظ شده",
+       "exif-sharpness-0": "عادی",
+       "exif-sharpness-1": "نرم",
+       "exif-sharpness-2": "زبر",
+       "exif-subjectdistancerange-0": "نامعلوم",
+       "exif-subjectdistancerange-1": "ماکرو",
+       "exif-subjectdistancerange-2": "نمای نزدیک",
+       "exif-subjectdistancerange-3": "نمای دور",
+       "exif-gpslatitude-n": "عرض جغرافیایی شمالی",
+       "exif-gpslatitude-s": "عرض جغرافیایی جنوبی",
+       "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-gpsdestdistance-m": "مایل",
+       "exif-gpsdestdistance-n": "مایل دریایی",
+       "exif-gpsdop-excellent": "عالی ($1)",
+       "exif-gpsdop-good": "خوب ($1)",
+       "exif-gpsdop-moderate": "متوسط ($1)",
+       "exif-gpsdop-fair": "نه چندان خوب ($1)",
+       "exif-gpsdop-poor": "ضعیف ($1)",
+       "exif-objectcycle-a": "تنها صبح",
+       "exif-objectcycle-p": "تنها عصر",
+       "exif-objectcycle-b": "صبح و عصر",
+       "exif-gpsdirection-t": "جهت درست",
+       "exif-gpsdirection-m": "جهت مغناطیسی",
+       "exif-ycbcrpositioning-1": "وسط‌چین‌شده",
+       "exif-ycbcrpositioning-2": "اشتراکی",
+       "exif-dc-contributor": "مشارکت‌کنندگان",
+       "exif-dc-coverage": "محدوده مکانی و یا زمانی رسانه",
+       "exif-dc-date": "تاریخ(ها)",
+       "exif-dc-publisher": "ناشر",
+       "exif-dc-relation": "رسانه‌های مرتبط",
+       "exif-dc-rights": "حقوق",
+       "exif-dc-source": "رسانه منبع",
+       "exif-dc-type": "نوع رسانه",
+       "exif-rating-rejected": "رد شده",
+       "exif-isospeedratings-overflow": "بزرگتر از ۶۵۵۳۵",
+       "exif-iimcategory-ace": "هنر، فرهنگ و سرگرمی",
+       "exif-iimcategory-clj": "جنایت و قانون",
+       "exif-iimcategory-dis": "بلایا و حوادث",
+       "exif-iimcategory-fin": "اقتصاد و تجارت",
+       "exif-iimcategory-edu": "آموزش",
+       "exif-iimcategory-evn": "محیط زیست",
+       "exif-iimcategory-hth": "سلامت",
+       "exif-iimcategory-hum": "علاقه بشر",
+       "exif-iimcategory-lab": "کار",
+       "exif-iimcategory-lif": "شیوه زندگی و اوقات فراغت",
+       "exif-iimcategory-pol": "سیاست",
+       "exif-iimcategory-rel": "مذهب و اعتقاد",
+       "exif-iimcategory-sci": "علم و فناوری",
+       "exif-iimcategory-soi": "مسائل اجتماعی",
+       "exif-iimcategory-spo": "ورزش",
+       "exif-iimcategory-war": "جنگ ، درگیری و ناآرامی",
+       "exif-iimcategory-wea": "آب و هوا",
+       "exif-urgency-normal": "عادی ($1)",
+       "exif-urgency-low": "کم ($1)",
+       "exif-urgency-high": "زیاد ($1)",
+       "exif-urgency-other": "اولویت تعریف شده توسط کاربر ($1)"
+}
diff --git a/languages/i18n/exif/fi.json b/languages/i18n/exif/fi.json
new file mode 100644 (file)
index 0000000..2462857
--- /dev/null
@@ -0,0 +1,365 @@
+{
+       "@metadata": {
+               "authors": [
+                       "01miki10",
+                       "Centerlink",
+                       "Crt",
+                       "Nedergard",
+                       "Nike",
+                       "Olli",
+                       "Pxos",
+                       "Snidata",
+                       "Str4nd",
+                       "Surjection",
+                       "Tarmo",
+                       "Wix"
+               ]
+       },
+       "exif-imagewidth": "Leveys",
+       "exif-imagelength": "Korkeus",
+       "exif-bitspersample": "Bittiä komponentissa",
+       "exif-compression": "Pakkaustapa",
+       "exif-photometricinterpretation": "Kuvapisteen koostumus",
+       "exif-orientation": "Suunta",
+       "exif-samplesperpixel": "Komponenttien lukumäärä",
+       "exif-planarconfiguration": "Tiedon järjestely",
+       "exif-ycbcrsubsampling": "Y:n ja C:n alinäytteistyssuhde",
+       "exif-ycbcrpositioning": "Y:n ja C:n asemointi",
+       "exif-xresolution": "Kuvan resoluutio leveyssuunnassa",
+       "exif-yresolution": "Kuvan resoluutio korkeussuunnassa",
+       "exif-stripoffsets": "Kuvatiedon sijainti",
+       "exif-rowsperstrip": "Kaistan rivien lukumäärä",
+       "exif-stripbytecounts": "Tavua pakatussa kaistassa",
+       "exif-jpeginterchangeformat": "Etäisyys JPEG SOI:hin",
+       "exif-jpeginterchangeformatlength": "JPEG-tiedon tavujen lukumäärä",
+       "exif-whitepoint": "Valkoisen pisteen väriarvot",
+       "exif-primarychromaticities": "Päävärien väriarvot",
+       "exif-ycbcrcoefficients": "Väriavaruuden muuntomatriisin kertoimet",
+       "exif-referenceblackwhite": "Musta-valkoparin vertailuarvot",
+       "exif-datetime": "Viimeksi muokattu",
+       "exif-imagedescription": "Kuvan nimi",
+       "exif-make": "Kameran valmistaja",
+       "exif-model": "Kameran malli",
+       "exif-software": "Käytetty ohjelmisto",
+       "exif-artist": "Tekijä",
+       "exif-copyright": "Tekijänoikeuden omistaja",
+       "exif-exifversion": "Exif-versio",
+       "exif-flashpixversion": "Tuettu Flashpix-versio",
+       "exif-colorspace": "Väriavaruus",
+       "exif-componentsconfiguration": "Kunkin komponentin määritelmä",
+       "exif-compressedbitsperpixel": "Kuvan pakkaustapa",
+       "exif-pixelxdimension": "Kuvan leveys",
+       "exif-pixelydimension": "Kuvan korkeus",
+       "exif-usercomment": "Käyttäjän kommentit",
+       "exif-relatedsoundfile": "Liitetty äänitiedosto",
+       "exif-datetimeoriginal": "Luontipäivämäärä",
+       "exif-datetimedigitized": "Digitointipäivämäärä",
+       "exif-subsectime": "Aikaleiman sekunninosat",
+       "exif-subsectimeoriginal": "Luontiaikaleiman sekunninosat",
+       "exif-subsectimedigitized": "Digitointiaikaleiman sekunninosat",
+       "exif-exposuretime": "Valotusaika",
+       "exif-exposuretime-format": "$1 s ($2)",
+       "exif-fnumber": "Aukkosuhde",
+       "exif-exposureprogram": "Valotusohjelma",
+       "exif-spectralsensitivity": "Värikirjoherkkyys",
+       "exif-isospeedratings": "Herkkyys (ISO)",
+       "exif-shutterspeedvalue": "APEX-suljinaika",
+       "exif-aperturevalue": "APEX-aukko",
+       "exif-brightnessvalue": "APEX-kirkkaus",
+       "exif-exposurebiasvalue": "Valotuksen korjaus",
+       "exif-maxaperturevalue": "Suurin aukko",
+       "exif-subjectdistance": "Kohteen etäisyys",
+       "exif-meteringmode": "Mittaustapa",
+       "exif-lightsource": "Valolähde",
+       "exif-flash": "Salama",
+       "exif-focallength": "Linssin polttoväli",
+       "exif-subjectarea": "Kohteen ala",
+       "exif-flashenergy": "Salaman teho",
+       "exif-focalplanexresolution": "Tarkennustason X-resoluutio",
+       "exif-focalplaneyresolution": "Tarkennustason Y-resoluutio",
+       "exif-focalplaneresolutionunit": "Tarkennustason resoluution yksikkö",
+       "exif-subjectlocation": "Kohteen sijainti",
+       "exif-exposureindex": "Valotusindeksi",
+       "exif-sensingmethod": "Mittausmenetelmä",
+       "exif-filesource": "Tiedostolähde",
+       "exif-scenetype": "Kuvatyyppi",
+       "exif-customrendered": "Muokattu kuvankäsittely",
+       "exif-exposuremode": "Valotustapa",
+       "exif-whitebalance": "Valkotasapaino",
+       "exif-digitalzoomratio": "Digitaalinen suurennoskerroin",
+       "exif-focallengthin35mmfilm": "35 mm:n filmiä vastaava polttoväli",
+       "exif-scenecapturetype": "Kuvan kaappaustapa",
+       "exif-gaincontrol": "Kuvasäätö",
+       "exif-contrast": "Kontrasti",
+       "exif-saturation": "Värikylläisyys",
+       "exif-sharpness": "Terävyys",
+       "exif-devicesettingdescription": "Laitteen asetuskuvaus",
+       "exif-subjectdistancerange": "Kohteen etäisyysväli",
+       "exif-imageuniqueid": "Kuvan yksilöivä tunniste",
+       "exif-gpsversionid": "GPS-muotoilukoodin versio",
+       "exif-gpslatituderef": "Pohjoinen tai eteläinen leveysaste",
+       "exif-gpslatitude": "Leveysaste",
+       "exif-gpslongituderef": "Itäinen tai läntinen pituusaste",
+       "exif-gpslongitude": "Pituusaste",
+       "exif-gpsaltituderef": "Korkeuden vertailukohta",
+       "exif-gpsaltitude": "Korkeus",
+       "exif-gpstimestamp": "GPS-aika (atomikello)",
+       "exif-gpssatellites": "Mittaukseen käytetyt satelliitit",
+       "exif-gpsstatus": "Vastaanottimen tila",
+       "exif-gpsmeasuremode": "Mittaustila",
+       "exif-gpsdop": "Mittatarkkuus",
+       "exif-gpsspeedref": "Nopeuden yksikkö",
+       "exif-gpsspeed": "GPS-vastaanottimen nopeus",
+       "exif-gpstrackref": "Liikesuunnan vertailukohta",
+       "exif-gpstrack": "Liikesuunta",
+       "exif-gpsimgdirectionref": "Kuvan suunnan vertailukohta",
+       "exif-gpsimgdirection": "Kuvan suunta",
+       "exif-gpsmapdatum": "Käytetty geodeettinen maanmittaustieto",
+       "exif-gpsdestlatituderef": "Loppupisteen leveysasteen vertailukohta",
+       "exif-gpsdestlatitude": "Loppupisteen leveysaste",
+       "exif-gpsdestlongituderef": "Loppupisteen pituusasteen vertailukohta",
+       "exif-gpsdestlongitude": "Loppupisteen pituusaste",
+       "exif-gpsdestbearingref": "Loppupisteen suuntiman vertailukohta",
+       "exif-gpsdestbearing": "Loppupisteen suuntima",
+       "exif-gpsdestdistanceref": "Loppupisteen etäisyyden vertailukohta",
+       "exif-gpsdestdistance": "Loppupisteen etäisyys",
+       "exif-gpsprocessingmethod": "GPS-käsittelymenetelmän nimi",
+       "exif-gpsareainformation": "GPS-alueen nimi",
+       "exif-gpsdatestamp": "GPS-päivämäärä",
+       "exif-gpsdifferential": "GPS-differentiaalikorjaus",
+       "exif-jpegfilecomment": "JPEG-tiedoston kommentti",
+       "exif-keywords": "Avainsanat",
+       "exif-worldregioncreated": "Maailmanosa, jossa kuva on otettu",
+       "exif-countrycreated": "Maa, jossa kuva on otettu",
+       "exif-countrycodecreated": "Maakoodi, jossa kuva on otettu",
+       "exif-provinceorstatecreated": "Maakunta tai osavaltio, jossa kuva on otettu",
+       "exif-citycreated": "Kaupunki, jossa kuva on otettu",
+       "exif-sublocationcreated": "Sijainti kaupungissa, jossa kuva otettiin",
+       "exif-worldregiondest": "Kuvan maailmanosa",
+       "exif-countrydest": "Kuvan maa",
+       "exif-countrycodedest": "Kuvan maan maatunnus",
+       "exif-provinceorstatedest": "Kuvan provinssi tai osavaltio",
+       "exif-citydest": "Kuvan kaupunki",
+       "exif-sublocationdest": "Sijainti kuvan kaupungissa",
+       "exif-objectname": "Lyhyt otsikko",
+       "exif-specialinstructions": "Erityiset ohjeet",
+       "exif-headline": "Otsikko",
+       "exif-credit": "Tekijä/toimittaja",
+       "exif-source": "Lähde",
+       "exif-editstatus": "Kuvan toimituksellinen asema",
+       "exif-urgency": "Kiireellisyys",
+       "exif-fixtureidentifier": "Asetelman nimi",
+       "exif-locationdest": "Kuvattu sijainti",
+       "exif-locationdestcode": "Kuvatun sijainnin sijaintikoodi",
+       "exif-objectcycle": "Päivän aika, jolloin median näyttö on suositeltavaa",
+       "exif-contact": "Yhteystiedot",
+       "exif-writer": "Kirjoittaja",
+       "exif-languagecode": "Kieli",
+       "exif-iimversion": "IIM:n versio",
+       "exif-iimcategory": "Luokka",
+       "exif-iimsupplementalcategory": "Täydentävät luokat",
+       "exif-datetimeexpires": "Viimeinen käyttöpäivämäärä",
+       "exif-datetimereleased": "Julkaistu",
+       "exif-originaltransmissionref": "Alkuperäisen lähetyspaikan tunnus",
+       "exif-identifier": "Tunniste",
+       "exif-lens": "Objektiivi",
+       "exif-serialnumber": "Kameran sarjanumero",
+       "exif-cameraownername": "Kameran omistaja",
+       "exif-label": "Merkinnät",
+       "exif-datetimemetadata": "Metatietojen viimeinen muokkauspäivämäärä",
+       "exif-nickname": "Kuvan epävirallinen nimi",
+       "exif-rating": "Arvostelu (enintään 5)",
+       "exif-rightscertificate": "Oikeuksien hallintasertifikaatti",
+       "exif-copyrighted": "Tekijänoikeudellinen tila",
+       "exif-copyrightowner": "Tekijänoikeuden haltija",
+       "exif-usageterms": "Käyttöehdot",
+       "exif-webstatement": "Verkossa oleva tekijänoikeustieto",
+       "exif-originaldocumentid": "Alkuperäisen asiakirjan tunniste",
+       "exif-licenseurl": "Tekijänoikeuslisenssin URL",
+       "exif-morepermissionsurl": "Vaihtoehtoiset lisenssitiedot",
+       "exif-attributionurl": "Kun kuvaa käytetään, linkitä tähän osoitteeseen",
+       "exif-preferredattributionname": "Kun kuvaa käytetään, mainitse nämä henkilöt",
+       "exif-pngfilecomment": "PNG-tiedoston kommentti",
+       "exif-disclaimer": "Vastuuvapauslauseke",
+       "exif-contentwarning": "Sisältövaroitus",
+       "exif-giffilecomment": "GIF-tiedoston kommentti",
+       "exif-intellectualgenre": "Kohteen tyyppi",
+       "exif-subjectnewscode": "Aihekoodi",
+       "exif-scenecode": "IPTC-kohtauskoodi",
+       "exif-event": "Kuvan tapahtuma",
+       "exif-organisationinimage": "Kuvan organisaatio",
+       "exif-personinimage": "Kuvan henkilö",
+       "exif-originalimageheight": "Kuvan korkeus ennen kuin sitä rajattiin",
+       "exif-originalimagewidth": "Kuvan leveys ennen kuin sitä rajattiin",
+       "exif-compression-1": "Pakkaamaton",
+       "exif-compression-2": "CCITT:n Group 3 -yksiulotteinen muokattu Huffman-ajopituuskoodaus",
+       "exif-compression-3": "CCITT:n Group 3 -faksipakkaus",
+       "exif-compression-4": "CCITT:n Group 4 -faksipakkaus",
+       "exif-compression-6": "JPEG (vanha)",
+       "exif-copyrighted-true": "Tekijänoikeuksien alainen",
+       "exif-copyrighted-false": "Tekijänoikeustiedot puuttuvat",
+       "exif-photometricinterpretation-0": "Mustavalkoinen (valkoinen on 0)",
+       "exif-photometricinterpretation-1": "Mustavalkoinen (musta on 0)",
+       "exif-photometricinterpretation-3": "Paletti",
+       "exif-photometricinterpretation-4": "Läpinäkyvyysmaski",
+       "exif-photometricinterpretation-5": "Erotettu (luultavasti CMYK)",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (ICC-koodaus)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (ITU-koodaus)",
+       "exif-unknowndate": "Tuntematon päiväys",
+       "exif-orientation-1": "Normaali",
+       "exif-orientation-2": "Käännetty vaakasuunnassa",
+       "exif-orientation-3": "Käännetty 180°",
+       "exif-orientation-4": "Käännetty pystysuunnassa",
+       "exif-orientation-5": "Käännetty 90° vastapäivään ja pystysuunnassa",
+       "exif-orientation-6": "Käännetty 90° vastapäivään",
+       "exif-orientation-7": "Käännetty 90° myötäpäivään ja pystysuunnassa",
+       "exif-orientation-8": "Käännetty 90° myötäpäivään",
+       "exif-planarconfiguration-1": "kokkaremuoto",
+       "exif-planarconfiguration-2": "litteämuoto",
+       "exif-colorspace-65535": "Kalibroimaton",
+       "exif-componentsconfiguration-0": "ei ole",
+       "exif-exposureprogram-0": "Ei määritelty",
+       "exif-exposureprogram-1": "Käsinsäädetty",
+       "exif-exposureprogram-2": "Perusohjelma",
+       "exif-exposureprogram-3": "Aukon etuoikeus",
+       "exif-exposureprogram-4": "Suljinajan etuoikeus",
+       "exif-exposureprogram-5": "Luova ohjelma (painotettu syvyysterävyyttä)",
+       "exif-exposureprogram-6": "Toimintaohjelma (painotettu nopeaa suljinaikaa)",
+       "exif-exposureprogram-7": "Muotokuvatila (lähikuviin, joissa tausta on epätarkka)",
+       "exif-exposureprogram-8": "Maisematila (maisemakuviin, joissa tausta on tarkka)",
+       "exif-subjectdistance-value": "$1 metriä",
+       "exif-meteringmode-0": "Tuntematon",
+       "exif-meteringmode-1": "Keskiarvo",
+       "exif-meteringmode-2": "Keskustapainotteinen keskiarvo",
+       "exif-meteringmode-3": "Piste",
+       "exif-meteringmode-4": "Monipiste",
+       "exif-meteringmode-5": "Kuvio",
+       "exif-meteringmode-6": "Osittainen",
+       "exif-meteringmode-255": "Muu",
+       "exif-lightsource-0": "Tuntematon",
+       "exif-lightsource-1": "Päivänvalo",
+       "exif-lightsource-2": "Loisteputki",
+       "exif-lightsource-3": "Hehkulamppu (keinovalo)",
+       "exif-lightsource-4": "Salama",
+       "exif-lightsource-9": "Hyvä sää",
+       "exif-lightsource-10": "Pilvinen sää",
+       "exif-lightsource-11": "Varjoinen",
+       "exif-lightsource-12": "Päivänvaloloisteputki (D 5700 – 7100K)",
+       "exif-lightsource-13": "Päivänvalkoinen loisteputki (N 4600 – 5400K)",
+       "exif-lightsource-14": "Kylmä valkoinen loisteputki (W 3900 – 4500K)",
+       "exif-lightsource-15": "Valkoinen loisteputki (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Oletusvalo A",
+       "exif-lightsource-18": "Oletusvalo B",
+       "exif-lightsource-19": "Oletusvalo C",
+       "exif-lightsource-24": "ISO-studiohehkulamppu",
+       "exif-lightsource-255": "Muu valonlähde",
+       "exif-flash-fired-0": "Salama ei lauennut",
+       "exif-flash-fired-1": "Salama lauennut",
+       "exif-flash-return-0": "ei pulssivalon tunnistustoimintoa",
+       "exif-flash-return-2": "pulssivalon paluuta ei havaittu",
+       "exif-flash-return-3": "pulssivalon paluu havaittu",
+       "exif-flash-mode-1": "salamavalo käytössä",
+       "exif-flash-mode-2": "salamavalo estetty",
+       "exif-flash-mode-3": "automaattitila",
+       "exif-flash-function-1": "Ei salamatoimintoa",
+       "exif-flash-redeye-1": "punasilmäisyyden vähennystila",
+       "exif-focalplaneresolutionunit-2": "tuumaa",
+       "exif-sensingmethod-1": "Määrittelemätön",
+       "exif-sensingmethod-2": "Yksisiruinen värikenno",
+       "exif-sensingmethod-3": "Kaksisiruinen värikenno",
+       "exif-sensingmethod-4": "Kolmisiruinen värikenno",
+       "exif-sensingmethod-5": "Sarjavärikenno",
+       "exif-sensingmethod-7": "Trilineaarikenno",
+       "exif-sensingmethod-8": "Sarjalineaarivärikenno",
+       "exif-filesource-3": "Digitaalikamera",
+       "exif-scenetype-1": "Suoraan valokuvattu kuva",
+       "exif-customrendered-0": "Normaali käsittely",
+       "exif-customrendered-1": "Muokattu käsittely",
+       "exif-exposuremode-0": "Automaattinen valotus",
+       "exif-exposuremode-1": "Käsinsäädetty valotus",
+       "exif-exposuremode-2": "Automaattinen haarukointi",
+       "exif-whitebalance-0": "Automaattinen valkotasapaino",
+       "exif-whitebalance-1": "Käsinsäädetty valkotasapaino",
+       "exif-scenecapturetype-0": "Perus",
+       "exif-scenecapturetype-1": "Maisema",
+       "exif-scenecapturetype-2": "Henkilökuva",
+       "exif-scenecapturetype-3": "Yökuva",
+       "exif-gaincontrol-0": "Ei ole",
+       "exif-gaincontrol-1": "Matala ylävahvistus",
+       "exif-gaincontrol-2": "Korkea ylävahvistus",
+       "exif-gaincontrol-3": "Matala alavahvistus",
+       "exif-gaincontrol-4": "Korkea alavahvistus",
+       "exif-contrast-0": "Normaali",
+       "exif-contrast-1": "Pehmeä",
+       "exif-contrast-2": "Kova",
+       "exif-saturation-0": "Normaali",
+       "exif-saturation-1": "Alhainen värikylläisyys",
+       "exif-saturation-2": "Korkea värikylläisyys",
+       "exif-sharpness-0": "Normaali",
+       "exif-sharpness-1": "Pehmeä",
+       "exif-sharpness-2": "Kova",
+       "exif-subjectdistancerange-0": "Tuntematon",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Lähikuva",
+       "exif-subjectdistancerange-3": "Kaukokuva",
+       "exif-gpslatitude-n": "Pohjoista leveyttä",
+       "exif-gpslatitude-s": "Eteläistä leveyttä",
+       "exif-gpslongitude-e": "Itäistä pituutta",
+       "exif-gpslongitude-w": "Läntistä pituutta",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metri|metriä}} merenpinnan yläpuolella",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metri|metriä}} merenpinnan alapuolella",
+       "exif-gpsstatus-a": "Mittaus käynnissä",
+       "exif-gpsstatus-v": "Ristiinmittaus",
+       "exif-gpsmeasuremode-2": "2-ulotteinen mittaus",
+       "exif-gpsmeasuremode-3": "3-ulotteinen mittaus",
+       "exif-gpsspeed-k": "km/h",
+       "exif-gpsspeed-m": "mailia tunnissa",
+       "exif-gpsspeed-n": "solmua",
+       "exif-gpsdestdistance-k": "Kilometriä",
+       "exif-gpsdestdistance-m": "Mailia",
+       "exif-gpsdestdistance-n": "Merimailia",
+       "exif-gpsdop-excellent": "Erinomainen ($1)",
+       "exif-gpsdop-good": "Hyvä ($1)",
+       "exif-gpsdop-moderate": "Kohtalainen ($1)",
+       "exif-gpsdop-fair": "Välttävä ($1)",
+       "exif-gpsdop-poor": "Huono ($1)",
+       "exif-objectcycle-a": "Vain aamulla",
+       "exif-objectcycle-p": "Vain illalla",
+       "exif-objectcycle-b": "Sekä aamulla että illalla",
+       "exif-gpsdirection-t": "Todellinen suunta",
+       "exif-gpsdirection-m": "Magneettinen suunta",
+       "exif-ycbcrpositioning-1": "Keskitetty",
+       "exif-ycbcrpositioning-2": "Rinnakkaissivuinen",
+       "exif-dc-contributor": "Osallistujat",
+       "exif-dc-coverage": "Median avaruudellinen ja ajallinen ulottuvuus",
+       "exif-dc-date": "Päivämäärä(t)",
+       "exif-dc-publisher": "Julkaisija",
+       "exif-dc-relation": "Katso myös",
+       "exif-dc-rights": "Oikeudet",
+       "exif-dc-source": "Lähdemedia",
+       "exif-dc-type": "Median tyyppi",
+       "exif-rating-rejected": "Hylätty",
+       "exif-isospeedratings-overflow": "Suurempi kuin 65535",
+       "exif-iimcategory-ace": "Taide, kulttuuri ja viihde",
+       "exif-iimcategory-clj": "Rikos ja oikeus",
+       "exif-iimcategory-dis": "Katastrofit ja onnettomuudet",
+       "exif-iimcategory-fin": "Talous ja liiketoiminta",
+       "exif-iimcategory-edu": "Koulutus",
+       "exif-iimcategory-evn": "Ympäristö",
+       "exif-iimcategory-hth": "Terveys",
+       "exif-iimcategory-hum": "Ihmisten kiinnostus",
+       "exif-iimcategory-lab": "Työnteko",
+       "exif-iimcategory-lif": "Elämäntapa ja vapaa-aika",
+       "exif-iimcategory-pol": "Politiikka",
+       "exif-iimcategory-rel": "Uskonto ja usko",
+       "exif-iimcategory-sci": "Tiede ja tekniikka",
+       "exif-iimcategory-soi": "Sosiaaliset kysymykset",
+       "exif-iimcategory-spo": "Urheilu",
+       "exif-iimcategory-war": "Sota, konflikti ja levottomuus",
+       "exif-iimcategory-wea": "Sää",
+       "exif-urgency-normal": "Tavallinen ($1)",
+       "exif-urgency-low": "Matala ($1)",
+       "exif-urgency-high": "Korkea ($1)",
+       "exif-urgency-other": "Käyttäjän määrittelemä prioriteetti ($1)"
+}
diff --git a/languages/i18n/exif/fo.json b/languages/i18n/exif/fo.json
new file mode 100644 (file)
index 0000000..78f6fa7
--- /dev/null
@@ -0,0 +1,113 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Diupwijk",
+                       "EileenSanda",
+                       "Spacebirdy"
+               ]
+       },
+       "exif-imagewidth": "Breidd",
+       "exif-imagelength": "Hædd",
+       "exif-bitspersample": "Bits per komponent",
+       "exif-orientation": "Rætningur",
+       "exif-xresolution": "Vatnrøtt upploysn",
+       "exif-yresolution": "Loddrøtt upploysn",
+       "exif-datetime": "Broytingartíð",
+       "exif-make": "Framleiðari av myndatólinum",
+       "exif-model": "Slag av myndatóli",
+       "exif-software": "Forrit brúkt",
+       "exif-artist": "Rithøvundur",
+       "exif-copyright": "Upphavsrætt haldari",
+       "exif-exifversion": "Exif versión",
+       "exif-colorspace": "Litrúm",
+       "exif-usercomment": "Viðmerkingar frá brúkarum",
+       "exif-datetimeoriginal": "Nær myndin bleiv tikin",
+       "exif-datetimedigitized": "Tíðspunkt fyri talgildan",
+       "exif-exposuretime-format": "$1 sek ($2)",
+       "exif-flash": "Blits",
+       "exif-jpegfilecomment": "JPEG-fíluviðmerking",
+       "exif-keywords": "Lyklaorð",
+       "exif-worldregioncreated": "Heimsregión har myndin varð tikin",
+       "exif-countrycreated": "Landið har myndin varð tikin",
+       "exif-countrycodecreated": "Kota fyri landið, sum myndin varð tikin í",
+       "exif-provinceorstatecreated": "Landslutur ella lutastatur, sum myndin varð tikin í",
+       "exif-citycreated": "Býurin sum myndin varð tikin í",
+       "exif-sublocationcreated": "Býarpartur av býnum, har myndin varð tikin",
+       "exif-countrydest": "Landið víst",
+       "exif-countrycodedest": "Landakota verður víst",
+       "exif-citydest": "Vísir bý",
+       "exif-sublocationdest": "Býarpartur vístur",
+       "exif-objectname": "Stutt heiti",
+       "exif-headline": "Yvirskrift",
+       "exif-source": "Kelda",
+       "exif-writer": "Høvundur",
+       "exif-languagecode": "Mál",
+       "exif-iimversion": "IIM-versjón",
+       "exif-iimcategory": "Bólkur",
+       "exif-iimsupplementalcategory": "Aðrir bólkar",
+       "exif-datetimeexpires": "Ikki brúka eftir",
+       "exif-datetimereleased": "Útgivið hin",
+       "exif-lens": "Linsa brúkt",
+       "exif-serialnumber": "Seriunummar á myndatóli",
+       "exif-cameraownername": "Eigari av myndatóli",
+       "exif-copyrighted": "Upphavsrættarstøða:",
+       "exif-copyrightowner": "Eigari av upphavsrættinum",
+       "exif-usageterms": "Brúkstreytir",
+       "exif-personinimage": "Avmyndaður persónur",
+       "exif-originalimageheight": "Hæddin á myndini, áðrenn hon varð skorin",
+       "exif-originalimagewidth": "Breiddin á myndini, áðrenn hon varð skorin",
+       "exif-compression-1": "Ikki komprimerað",
+       "exif-copyrighted-true": "Vard av upphavrætti",
+       "exif-unknowndate": "Ókendur dagur",
+       "exif-orientation-1": "Normalt",
+       "exif-subjectdistance-value": "$1 metrar",
+       "exif-meteringmode-0": "Ókent",
+       "exif-meteringmode-1": "Miðal",
+       "exif-meteringmode-255": "Annað",
+       "exif-lightsource-0": "Ókent",
+       "exif-lightsource-1": "Dagsljós",
+       "exif-lightsource-2": "Ljósrør",
+       "exif-lightsource-3": "Gløðilampa",
+       "exif-lightsource-4": "Blits",
+       "exif-lightsource-9": "Gott veður",
+       "exif-lightsource-10": "Skýggjað veður",
+       "exif-lightsource-11": "Skuggi",
+       "exif-lightsource-12": "Dagsljós ljósrør (D 5700 – 7100K)",
+       "exif-lightsource-13": "Dagshvítt ljósrør (N 4600 – 5400K)",
+       "exif-lightsource-14": "Kalthvítt ljósrør (W 3900 – 4500K)",
+       "exif-lightsource-15": "Hvítt ljósrør (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standardljós A",
+       "exif-lightsource-18": "Standardljós B",
+       "exif-lightsource-19": "Standardljós C",
+       "exif-scenecapturetype-1": "Landsskap",
+       "exif-scenecapturetype-2": "Portrett",
+       "exif-contrast-0": "Vanligt",
+       "exif-contrast-1": "Bleytt",
+       "exif-contrast-2": "Hart",
+       "exif-saturation-0": "Vanligt",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metur|metrar}} yvir havið",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metur|metrar}} undir havinum",
+       "exif-gpsspeed-k": "Kilometrar pr. tíma",
+       "exif-gpsspeed-m": "Míl pr. tíma",
+       "exif-gpsdestdistance-k": "Kilometrar",
+       "exif-gpsdestdistance-m": "Míl",
+       "exif-gpsdestdistance-n": "Sjómíl",
+       "exif-gpsdop-excellent": "Einastandandi ($1)",
+       "exif-gpsdop-good": "Gott ($1)",
+       "exif-gpsdop-fair": "Hampuligt ($1)",
+       "exif-gpsdop-poor": "Vánaligt ($1)",
+       "exif-objectcycle-a": "Bert um morgunin",
+       "exif-objectcycle-p": "Bert um kvøldið",
+       "exif-objectcycle-b": "Bæði morgun og kvøld",
+       "exif-iimcategory-edu": "Útbúgving",
+       "exif-iimcategory-evn": "Umhvørvi",
+       "exif-iimcategory-hth": "Heilsa",
+       "exif-iimcategory-lif": "Lívsstílur og frítíð",
+       "exif-iimcategory-pol": "Politikkur",
+       "exif-iimcategory-rel": "Átrúnaður og trúgv",
+       "exif-iimcategory-sci": "Vísund og tøkni",
+       "exif-iimcategory-soi": "Sosialmál",
+       "exif-iimcategory-spo": "Ítróttur",
+       "exif-iimcategory-wea": "Veðrið",
+       "exif-urgency-normal": "Vanligt ($1)"
+}
diff --git a/languages/i18n/exif/fr.json b/languages/i18n/exif/fr.json
new file mode 100644 (file)
index 0000000..e97e583
--- /dev/null
@@ -0,0 +1,382 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Cedric31",
+                       "Crochet.david",
+                       "Derugon",
+                       "Diti",
+                       "Gomoko",
+                       "Grondin",
+                       "Hashar",
+                       "Hello71",
+                       "IAlex",
+                       "Lemondoge",
+                       "Louperivois",
+                       "Mattho69",
+                       "Meithal",
+                       "Od1n",
+                       "Orlodrim",
+                       "Peter17",
+                       "PieRRoMaN",
+                       "Sandji",
+                       "Seb35",
+                       "Sherbrooke",
+                       "Urhixidur",
+                       "Verdy p",
+                       "Wladek92",
+                       "Wyz"
+               ]
+       },
+       "exif-imagewidth": "Largeur",
+       "exif-imagelength": "Hauteur",
+       "exif-bitspersample": "Bits par composante",
+       "exif-compression": "Type de compression",
+       "exif-photometricinterpretation": "Modèle colorimétrique",
+       "exif-orientation": "Orientation",
+       "exif-samplesperpixel": "Nombre de composants",
+       "exif-planarconfiguration": "Arrangement des données",
+       "exif-ycbcrsubsampling": "Taux de sous-échantillonnage de Y à C",
+       "exif-ycbcrpositioning": "Positionnement YCbCr",
+       "exif-xresolution": "Résolution horizontale",
+       "exif-yresolution": "Résolution verticale",
+       "exif-stripoffsets": "Emplacement des données de l'image",
+       "exif-rowsperstrip": "Nombre de lignes par bande",
+       "exif-stripbytecounts": "Taille en octets par bande compressée",
+       "exif-jpeginterchangeformat": "Position du SOI JPEG",
+       "exif-jpeginterchangeformatlength": "Taille en octets des données JPEG",
+       "exif-whitepoint": "Chromaticité du point blanc",
+       "exif-primarychromaticities": "Chromaticité des primaires",
+       "exif-ycbcrcoefficients": "Coefficients YCbCr",
+       "exif-referenceblackwhite": "Valeurs des couples noir et blanc de référence",
+       "exif-datetime": "Date de modification du fichier",
+       "exif-imagedescription": "Titre de l'image",
+       "exif-make": "Fabricant de l'appareil photo",
+       "exif-model": "Modèle de l'appareil photo",
+       "exif-software": "Logiciel utilisé",
+       "exif-artist": "Auteur",
+       "exif-copyright": "Détenteur du droit d'auteur",
+       "exif-exifversion": "Version EXIF",
+       "exif-flashpixversion": "Version FlashPix prise en charge",
+       "exif-colorspace": "Espace colorimétrique",
+       "exif-componentsconfiguration": "Signification de chaque composante",
+       "exif-compressedbitsperpixel": "Mode de compression de l'image",
+       "exif-pixelxdimension": "Largeur de l'image",
+       "exif-pixelydimension": "Hauteur de l'image",
+       "exif-usercomment": "Commentaires de l'utilisateur",
+       "exif-relatedsoundfile": "Fichier audio associé",
+       "exif-datetimeoriginal": "Date de la prise originelle",
+       "exif-datetimedigitized": "Date de la numérisation",
+       "exif-subsectime": "Date en fraction de seconde",
+       "exif-subsectimeoriginal": "Date de la prise originelle",
+       "exif-subsectimedigitized": "Date de la numérisation",
+       "exif-exposuretime": "Temps d'exposition",
+       "exif-exposuretime-format": "$1 s ($2 s)",
+       "exif-fnumber": "Ouverture",
+       "exif-exposureprogram": "Programme d'exposition",
+       "exif-spectralsensitivity": "Sensibilité spectrale",
+       "exif-isospeedratings": "Sensibilité ISO",
+       "exif-shutterspeedvalue": "vitesse d'obturation de l'APEX",
+       "exif-aperturevalue": "Ouverture de l'APEX",
+       "exif-brightnessvalue": "Luminance APEX",
+       "exif-exposurebiasvalue": "Correction d'exposition",
+       "exif-maxaperturevalue": "Ouverture maximale",
+       "exif-subjectdistance": "Distance du sujet",
+       "exif-meteringmode": "Mode de mesure",
+       "exif-lightsource": "Source de lumière",
+       "exif-flash": "Flash",
+       "exif-focallength": "Longueur focale",
+       "exif-subjectarea": "Emplacement du sujet",
+       "exif-flashenergy": "Énergie du flash",
+       "exif-focalplanexresolution": "Résolution horizontale du plan focal",
+       "exif-focalplaneyresolution": "Résolution verticale du plan focal",
+       "exif-focalplaneresolutionunit": "Unité de résolution du plan focal",
+       "exif-subjectlocation": "Localisation du sujet",
+       "exif-exposureindex": "Index d'exposition",
+       "exif-sensingmethod": "Type de capteur",
+       "exif-filesource": "Source du fichier",
+       "exif-scenetype": "Type de scène",
+       "exif-customrendered": "Rendu personnalisé",
+       "exif-exposuremode": "Mode d'exposition",
+       "exif-whitebalance": "Balance des blancs",
+       "exif-digitalzoomratio": "Taux de zoom numérique",
+       "exif-focallengthin35mmfilm": "Longueur focale pour un film 35 mm",
+       "exif-scenecapturetype": "Type de capture de la scène",
+       "exif-gaincontrol": "Contrôle du gain",
+       "exif-contrast": "Contraste",
+       "exif-saturation": "Saturation",
+       "exif-sharpness": "Netteté",
+       "exif-devicesettingdescription": "Description de la configuration du dispositif",
+       "exif-subjectdistancerange": "Distance du sujet",
+       "exif-imageuniqueid": "Identifiant unique de l'image",
+       "exif-gpsversionid": "Version de la balise GPS",
+       "exif-gpslatituderef": "Référence pour la latitude",
+       "exif-gpslatitude": "Latitude",
+       "exif-gpslongituderef": "Référence pour la longitude",
+       "exif-gpslongitude": "Longitude",
+       "exif-gpsaltituderef": "Référence d'altitude (0=altitude, 1=profondeur)",
+       "exif-gpsaltitude": "Altitude",
+       "exif-gpstimestamp": "Heure GPS (horloge atomique)",
+       "exif-gpssatellites": "Satellites utilisés pour la mesure",
+       "exif-gpsstatus": "État du récepteur",
+       "exif-gpsmeasuremode": "Mode de mesure",
+       "exif-gpsdop": "Précision de la mesure",
+       "exif-gpsspeedref": "Unité de vitesse",
+       "exif-gpsspeed": "Vitesse du récepteur GPS",
+       "exif-gpstrackref": "Référence pour la direction du mouvement",
+       "exif-gpstrack": "Direction du mouvement",
+       "exif-gpsimgdirectionref": "Référence pour la direction de l'image",
+       "exif-gpsimgdirection": "Direction de l'image",
+       "exif-gpsmapdatum": "Système géodésique utilisé",
+       "exif-gpsdestlatituderef": "Référence pour la latitude de la destination",
+       "exif-gpsdestlatitude": "Latitude de la destination",
+       "exif-gpsdestlongituderef": "Référence pour la longitude de la destination",
+       "exif-gpsdestlongitude": "Longitude de la destination",
+       "exif-gpsdestbearingref": "Référence pour le relèvement de la destination",
+       "exif-gpsdestbearing": "Relèvement de la destination",
+       "exif-gpsdestdistanceref": "Référence pour la distance à la destination",
+       "exif-gpsdestdistance": "Distance à la destination",
+       "exif-gpsprocessingmethod": "Nom de la méthode de traitement du GPS",
+       "exif-gpsareainformation": "Nom de la zone GPS",
+       "exif-gpsdatestamp": "Date GPS",
+       "exif-gpsdifferential": "Correction différentielle GPS",
+       "exif-jpegfilecomment": "Commentaire de fichier JPEG",
+       "exif-keywords": "Mots-clés",
+       "exif-worldregioncreated": "Région du monde où la photo a été prise",
+       "exif-countrycreated": "Pays dans lequel la photo a été prise",
+       "exif-countrycodecreated": "Code du pays dans lequel la photo a été prise",
+       "exif-provinceorstatecreated": "Province ou État dans lequel la photo a été prise",
+       "exif-citycreated": "Ville dans laquelle la photo a été prise",
+       "exif-sublocationcreated": "Partie de la ville dans laquelle la photo a été prise",
+       "exif-worldregiondest": "Région du monde représentée",
+       "exif-countrydest": "Pays représenté",
+       "exif-countrycodedest": "Code du pays représenté",
+       "exif-provinceorstatedest": "Province ou État représenté",
+       "exif-citydest": "Ville représentée",
+       "exif-sublocationdest": "Partie de la ville représentée",
+       "exif-objectname": "Titre court",
+       "exif-specialinstructions": "Instructions spéciales",
+       "exif-headline": "Titre",
+       "exif-credit": "Crédit / fournisseur",
+       "exif-source": "Source",
+       "exif-editstatus": "Statut éditorial de l'image",
+       "exif-urgency": "Urgence",
+       "exif-fixtureidentifier": "Nom élément récurrent",
+       "exif-locationdest": "Lieu représenté",
+       "exif-locationdestcode": "Code du lieu représenté",
+       "exif-objectcycle": "Moment de la journée auquel ce média est destiné",
+       "exif-contact": "Informations de contact",
+       "exif-writer": "Auteur",
+       "exif-languagecode": "Langue",
+       "exif-iimversion": "version IIM",
+       "exif-iimcategory": "Catégorie",
+       "exif-iimsupplementalcategory": "Catégories supplémentaires",
+       "exif-datetimeexpires": "Ne pas utiliser après",
+       "exif-datetimereleased": "Paru le",
+       "exif-originaltransmissionref": "Code de localisation de la transmission originale",
+       "exif-identifier": "Identifiant",
+       "exif-lens": "Lentille utilisée",
+       "exif-serialnumber": "Numéro de série de l'appareil photo",
+       "exif-cameraownername": "Propriétaire de l'appareil photo",
+       "exif-label": "Libellé",
+       "exif-datetimemetadata": "Date de la dernière modification des métadonnées",
+       "exif-nickname": "Nom informel de l'image",
+       "exif-rating": "Note (sur 5)",
+       "exif-rightscertificate": "Certificat de gestion des droits",
+       "exif-copyrighted": "Statut du droit d'auteur",
+       "exif-copyrightowner": "Détenteur du droit d'auteur",
+       "exif-usageterms": "Conditions d'utilisation",
+       "exif-webstatement": "Déclaration de droits d'auteur en ligne",
+       "exif-originaldocumentid": "Identifiant unique du document original",
+       "exif-licenseurl": "URL de la licence",
+       "exif-morepermissionsurl": "Informations sur les licences alternatives",
+       "exif-attributionurl": "Lors de la réutilisation de ce travail, veuillez lier à",
+       "exif-preferredattributionname": "Lors de la réutilisation de ce travail, veuillez créditer",
+       "exif-pngfilecomment": "Commentaire de fichier PNG",
+       "exif-disclaimer": "Désistement",
+       "exif-contentwarning": "Avertissement sur le contenu",
+       "exif-giffilecomment": "Commentaire de fichier GIF",
+       "exif-intellectualgenre": "Type d'élément",
+       "exif-subjectnewscode": "Code du sujet",
+       "exif-scenecode": "Code de scène IPTC",
+       "exif-event": "Événement représenté",
+       "exif-organisationinimage": "Organisation représentée",
+       "exif-personinimage": "Personne représentée",
+       "exif-originalimageheight": "Hauteur de l'image avant qu'elle ait été recadrée",
+       "exif-originalimagewidth": "Largeur de l'image avant qu'elle ait été recadrée",
+       "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$6 $4, $5\n\n$7\n</div>\n$8",
+       "exif-compression-1": "Non compressé",
+       "exif-compression-2": "CCITT Groupe 3 Longueur du codage Huffman modifié de dimension 1",
+       "exif-compression-3": "CCITT Groupe 3 codage du fax",
+       "exif-compression-4": "CCITT Groupe 4 codage du fax",
+       "exif-compression-6": "JPEG (ancien)",
+       "exif-copyrighted-true": "Soumis au droit d'auteur",
+       "exif-copyrighted-false": "État des droits d’auteur non défini",
+       "exif-photometricinterpretation-0": "Noir et blanc (Blanc est 0)",
+       "exif-photometricinterpretation-1": "Noir et blanc (0 pour le noir)",
+       "exif-photometricinterpretation-3": "Palette",
+       "exif-photometricinterpretation-4": "Masque de transparence",
+       "exif-photometricinterpretation-5": "Séparé (sans doute CMYK)",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (encodage ICC)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (encodage ITU)",
+       "exif-photometricinterpretation-32803": "Matrice de Filtre de Couleur",
+       "exif-unknowndate": "Date inconnue",
+       "exif-orientation-1": "Normale",
+       "exif-orientation-2": "Inversée horizontalement",
+       "exif-orientation-3": "Tournée de 180°",
+       "exif-orientation-4": "Inversée verticalement",
+       "exif-orientation-5": "Tournée de 90° dans le sens antihoraire et inversée verticalement",
+       "exif-orientation-6": "Tournée de 90° dans le sens antihoraire",
+       "exif-orientation-7": "Tournée de 90° dans le sens horaire et inversée verticalement",
+       "exif-orientation-8": "Tournée de 90° dans le sens horaire",
+       "exif-planarconfiguration-1": "Données contiguës",
+       "exif-planarconfiguration-2": "Données séparées",
+       "exif-xyresolution-i": "$1 ppp",
+       "exif-xyresolution-c": "$1 p/cm",
+       "exif-colorspace-65535": "Non calibré",
+       "exif-componentsconfiguration-0": "N'existe pas",
+       "exif-componentsconfiguration-5": "V",
+       "exif-exposureprogram-0": "Indéfini",
+       "exif-exposureprogram-1": "Manuel",
+       "exif-exposureprogram-2": "Programme normal",
+       "exif-exposureprogram-3": "Priorité à l'ouverture",
+       "exif-exposureprogram-4": "Priorité à l'obturateur",
+       "exif-exposureprogram-5": "Programme création (préférence à la profondeur de champ)",
+       "exif-exposureprogram-6": "Programme action (préférence à la vitesse d'obturation)",
+       "exif-exposureprogram-7": "Mode portrait (pour clichés de près avec arrière-plan flou)",
+       "exif-exposureprogram-8": "Mode paysage (pour des clichés de paysages nets)",
+       "exif-subjectdistance-value": "$1 mètre{{PLURAL:$1||s}}",
+       "exif-meteringmode-0": "Inconnu",
+       "exif-meteringmode-1": "Moyenne",
+       "exif-meteringmode-2": "Moyenne pondérée au centre",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "Multi-spot",
+       "exif-meteringmode-5": "Modèle",
+       "exif-meteringmode-6": "Partielle",
+       "exif-meteringmode-255": "Autre",
+       "exif-lightsource-0": "Inconnue",
+       "exif-lightsource-1": "Lumière du jour",
+       "exif-lightsource-2": "Fluorescent",
+       "exif-lightsource-3": "Tungstène (lumière incandescente)",
+       "exif-lightsource-4": "Flash",
+       "exif-lightsource-9": "Temps clair",
+       "exif-lightsource-10": "Temps nuageux",
+       "exif-lightsource-11": "Ombre",
+       "exif-lightsource-12": "Éclairage fluorescent « lumière du jour » (D 5700 – 7100 K)",
+       "exif-lightsource-13": "Éclairage fluorescent blanc « jour » (N 4600 – 5400 K)",
+       "exif-lightsource-14": "Éclairage fluorescent blanc « froid » (W 3900 – 4500 K)",
+       "exif-lightsource-15": "Éclairage fluorescent blanc (WW 3200 – 3700 K)",
+       "exif-lightsource-17": "Lumière standard A",
+       "exif-lightsource-18": "Lumière standard B",
+       "exif-lightsource-19": "Lumière standard C",
+       "exif-lightsource-24": "Tungstène ISO de studio",
+       "exif-lightsource-255": "Autre source de lumière",
+       "exif-flash-fired-0": "Flash non déclenché",
+       "exif-flash-fired-1": "Flash déclenché",
+       "exif-flash-return-0": "aucun stroboscope ne retourne une fonction de détection",
+       "exif-flash-return-2": "le stroboscope ne détecte pas de lumière retournée",
+       "exif-flash-return-3": "le stroboscope détecte un retour de lumière",
+       "exif-flash-mode-1": "lumière du flash obligatoire",
+       "exif-flash-mode-2": "suppression du flash obligatoire",
+       "exif-flash-mode-3": "mode automatique",
+       "exif-flash-function-1": "Pas de fonction de flash",
+       "exif-flash-redeye-1": "Mode anti-yeux rouges",
+       "exif-focalplaneresolutionunit-2": "Pouce",
+       "exif-sensingmethod-1": "Non défini",
+       "exif-sensingmethod-2": "Capteur de couleur à une puce",
+       "exif-sensingmethod-3": "Capteur de couleur à deux puces",
+       "exif-sensingmethod-4": "Capteur de couleur à trois puces",
+       "exif-sensingmethod-5": "Capteur de couleur séquentiel",
+       "exif-sensingmethod-7": "Capteur trilinéaire",
+       "exif-sensingmethod-8": "Capteur de couleur linéaire séquentiel",
+       "exif-filesource-3": "Appareil photo numérique",
+       "exif-scenetype-1": "Image photographiée directement",
+       "exif-customrendered-0": "Procédé normal",
+       "exif-customrendered-1": "Procédé personnalisé",
+       "exif-exposuremode-0": "Automatique",
+       "exif-exposuremode-1": "Manuelle",
+       "exif-exposuremode-2": "Fourchette automatique",
+       "exif-whitebalance-0": "Automatique",
+       "exif-whitebalance-1": "Manuelle",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Paysage",
+       "exif-scenecapturetype-2": "Portrait",
+       "exif-scenecapturetype-3": "Scène de nuit",
+       "exif-gaincontrol-0": "Aucun",
+       "exif-gaincontrol-1": "Gain faiblement positif",
+       "exif-gaincontrol-2": "Gain fortement positif",
+       "exif-gaincontrol-3": "Gain faiblement négatif",
+       "exif-gaincontrol-4": "Gain fortement négatif",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Faible",
+       "exif-contrast-2": "Fort",
+       "exif-saturation-0": "Normale",
+       "exif-saturation-1": "Faible",
+       "exif-saturation-2": "Élevée",
+       "exif-sharpness-0": "Normale",
+       "exif-sharpness-1": "Douce",
+       "exif-sharpness-2": "Dure",
+       "exif-subjectdistancerange-0": "Inconnue",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Rapproché",
+       "exif-subjectdistancerange-3": "Distant",
+       "exif-gpslatitude-n": "Nord",
+       "exif-gpslatitude-s": "Sud",
+       "exif-gpslongitude-e": "Est",
+       "exif-gpslongitude-w": "Ouest",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|mètre|mètres}} au-dessus du niveau de la mer",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|mètre|mètres}} au-dessous du niveau de la mer",
+       "exif-gpsstatus-a": "Mesure en cours",
+       "exif-gpsstatus-v": "Interfonctionnement de la mesure",
+       "exif-gpsmeasuremode-2": "Mesure à 2 dimensions",
+       "exif-gpsmeasuremode-3": "Mesure à 3 dimensions",
+       "exif-gpsspeed-k": "Kilomètres à l'heure",
+       "exif-gpsspeed-m": "Milles à l'heure",
+       "exif-gpsspeed-n": "Nœud",
+       "exif-gpsdestdistance-k": "Kilomètres",
+       "exif-gpsdestdistance-m": "Milles",
+       "exif-gpsdestdistance-n": "Milles marins",
+       "exif-gpsdop-excellent": "Excellente ($1)",
+       "exif-gpsdop-good": "Bonne ($1)",
+       "exif-gpsdop-moderate": "Moyenne ($1)",
+       "exif-gpsdop-fair": "Passable ($1)",
+       "exif-gpsdop-poor": "Mauvaise ($1)",
+       "exif-objectcycle-a": "Matin seulement",
+       "exif-objectcycle-p": "Soirée seulement",
+       "exif-objectcycle-b": "Matin et soir",
+       "exif-gpsdirection-t": "Nord vrai",
+       "exif-gpsdirection-m": "Nord magnétique",
+       "exif-ycbcrpositioning-1": "Centré",
+       "exif-ycbcrpositioning-2": "Co-situé",
+       "exif-dc-contributor": "Contributeurs",
+       "exif-dc-coverage": "Portée spatiale ou temporelle du média",
+       "exif-dc-date": "Date(s)",
+       "exif-dc-publisher": "Éditeur",
+       "exif-dc-relation": "Médias connexes",
+       "exif-dc-rights": "Droits",
+       "exif-dc-source": "Média source",
+       "exif-dc-type": "Type de média",
+       "exif-rating-rejected": "Rejeté",
+       "exif-isospeedratings-overflow": "Plus grand que 65535",
+       "exif-iimcategory-ace": "Arts, culture et loisirs",
+       "exif-iimcategory-clj": "Crime et droit",
+       "exif-iimcategory-dis": "Catastrophes et accidents",
+       "exif-iimcategory-fin": "Économie et affaires",
+       "exif-iimcategory-edu": "Éducation",
+       "exif-iimcategory-evn": "Environnement",
+       "exif-iimcategory-hth": "Santé",
+       "exif-iimcategory-hum": "Intérêt humain",
+       "exif-iimcategory-lab": "Travail",
+       "exif-iimcategory-lif": "Mode de vie et de loisirs",
+       "exif-iimcategory-pol": "Politique",
+       "exif-iimcategory-rel": "Religion et croyances",
+       "exif-iimcategory-sci": "Science et technologie",
+       "exif-iimcategory-soi": "Questions sociales",
+       "exif-iimcategory-spo": "Sports",
+       "exif-iimcategory-war": "Guerre, conflit et trouble",
+       "exif-iimcategory-wea": "Météo",
+       "exif-urgency-normal": "Normale ($1)",
+       "exif-urgency-low": "Faible ($1)",
+       "exif-urgency-high": "Haute ($1)",
+       "exif-urgency-other": "Urgence définie par l'utilisateur ($1)"
+}
diff --git a/languages/i18n/exif/frp.json b/languages/i18n/exif/frp.json
new file mode 100644 (file)
index 0000000..45ff642
--- /dev/null
@@ -0,0 +1,348 @@
+{
+       "@metadata": {
+               "authors": [
+                       "ChrisPtDe"
+               ]
+       },
+       "exif-imagewidth": "Largior",
+       "exif-imagelength": "Hôtior",
+       "exif-bitspersample": "Bits per composenta",
+       "exif-compression": "Tipo de comprèssion",
+       "exif-photometricinterpretation": "Composicion des pixèls",
+       "exif-orientation": "Oriantacion",
+       "exif-samplesperpixel": "Nombro de composentes",
+       "exif-planarconfiguration": "Arrengement de les balyês",
+       "exif-ycbcrsubsampling": "Quota de sot-èchantelyonâjo de Y a C",
+       "exif-ycbcrpositioning": "Posicionament Y et C",
+       "exif-xresolution": "Rèsolucion plana",
+       "exif-yresolution": "Rèsolucion drêta",
+       "exif-stripoffsets": "Endrêt de les balyês de l’émâge",
+       "exif-rowsperstrip": "Nombro de legnes per benda",
+       "exif-stripbytecounts": "Octèts per benda comprimâye",
+       "exif-jpeginterchangeformat": "Posicion du SOI JPEG",
+       "exif-jpeginterchangeformatlength": "Octèts de les balyês JPEG",
+       "exif-whitepoint": "Cromaticitât du pouent blanc",
+       "exif-primarychromaticities": "Cromaticitât de les colors primères",
+       "exif-ycbcrcoefficients": "Factors de la matrice de transformacion de l’èspâço colorimètrico",
+       "exif-referenceblackwhite": "Cobla de valors de rèference nêr et blanc",
+       "exif-datetime": "Dâta et hora de changement du fichiér",
+       "exif-imagedescription": "Titro de l’émâge",
+       "exif-make": "Fabrecant de l’aparèly-fotô",
+       "exif-model": "Modèlo de l’aparèly-fotô",
+       "exif-software": "Programeria empleyêe",
+       "exif-artist": "Ôtor",
+       "exif-copyright": "Dètentior des drêts d’ôtor",
+       "exif-exifversion": "Vèrsion Exif",
+       "exif-flashpixversion": "Vèrsion Flashpix recognua",
+       "exif-colorspace": "Èspâço colorimètrico",
+       "exif-componentsconfiguration": "Significacion de châque composenta",
+       "exif-compressedbitsperpixel": "Fôrma de comprèssion de l’émâge",
+       "exif-pixelxdimension": "Largior de l’émâge",
+       "exif-pixelydimension": "Hôtior de l’émâge",
+       "exif-usercomment": "Comentèros de l’utilisator",
+       "exif-relatedsoundfile": "Fichiér ôdiô associyê",
+       "exif-datetimeoriginal": "Dâta et hora de la prêsa originâla",
+       "exif-datetimedigitized": "Dâta et hora de la numerisacion",
+       "exif-subsectime": "Dâta et hora en fraccions de seconda",
+       "exif-subsectimeoriginal": "Dâta et hora de la prêsa originâla en fraccions de seconda",
+       "exif-subsectimedigitized": "Dâta et hora de la numerisacion en fraccions de seconda",
+       "exif-exposuretime": "Temps d’èxposicion",
+       "exif-exposuretime-format": "$1 s ($2 s)",
+       "exif-fnumber": "Uvèrtura",
+       "exif-exposureprogram": "Programo d’èxposicion",
+       "exif-spectralsensitivity": "Sensibilitât spèctrâla",
+       "exif-isospeedratings": "Sensibilitât ISO",
+       "exif-shutterspeedvalue": "Vitèsse d’ètopâ de l’APEX",
+       "exif-aperturevalue": "Uvèrtura de l’APEX",
+       "exif-brightnessvalue": "Brilyent de l’APEX",
+       "exif-exposurebiasvalue": "Corrèccion d’èxposicion de l’APEX",
+       "exif-maxaperturevalue": "Uvèrtura maximon",
+       "exif-subjectdistance": "Distance de la chousa",
+       "exif-meteringmode": "Fôrma de mesera",
+       "exif-lightsource": "Sôrsa de lumiére",
+       "exif-flash": "Èludo",
+       "exif-focallength": "Longior focâla",
+       "exif-subjectarea": "Sôl de la chousa",
+       "exif-flashenergy": "Ènèrg·ia de l’èludo",
+       "exif-focalplanexresolution": "Rèsolucion plana de la vision focâla",
+       "exif-focalplaneyresolution": "Rèsolucion drêta de la vision focâla",
+       "exif-focalplaneresolutionunit": "Unitât de rèsolucion de la vision focâla",
+       "exif-subjectlocation": "Endrêt de la chousa",
+       "exif-exposureindex": "Endèx d’èxposicion",
+       "exif-sensingmethod": "Tipo de captior",
+       "exif-filesource": "Sôrsa du fichiér",
+       "exif-scenetype": "Tipo de scèna",
+       "exif-customrendered": "Rendu d’émâge pèrsonalisâ",
+       "exif-exposuremode": "Fôrma d’èxposicion",
+       "exif-whitebalance": "Balance des blancs",
+       "exif-digitalzoomratio": "Quota d’agrantissement numerico (<em>zoom</em>)",
+       "exif-focallengthin35mmfilm": "Longior focâla por un filmo 35 mm",
+       "exif-scenecapturetype": "Tipo de captura de la scèna",
+       "exif-gaincontrol": "Contrôlo de la scèna",
+       "exif-contrast": "Contrasto",
+       "exif-saturation": "Saturacion",
+       "exif-sharpness": "Nètetât",
+       "exif-devicesettingdescription": "Dèscripcion de la configuracion du dispositif",
+       "exif-subjectdistancerange": "Èchiéla de distance de la chousa",
+       "exif-imageuniqueid": "Identifient solèt de l’émâge",
+       "exif-gpsversionid": "Vèrsion de la balisa GPS",
+       "exif-gpslatituderef": "Latituda bise (<em>nord</em>) ou ben mié-jorn (<em>sud</em>)",
+       "exif-gpslatitude": "Latituda",
+       "exif-gpslongituderef": "Longituda levant (<em>èste</em>) ou ben cuchient (<em>ouèste</em>)",
+       "exif-gpslongitude": "Longituda",
+       "exif-gpsaltituderef": "Rèference d’hôtior",
+       "exif-gpsaltitude": "Hôtior",
+       "exif-gpstimestamp": "Hora GPS (relojo atomico)",
+       "exif-gpssatellites": "Satèlitos empleyês por la mesera",
+       "exif-gpsstatus": "Ètat du recevior",
+       "exif-gpsmeasuremode": "Fôrma de mesera",
+       "exif-gpsdop": "Prècision de la mesera",
+       "exif-gpsspeedref": "Unitât de vitèsse",
+       "exif-gpsspeed": "Vitèsse du recevior GPS",
+       "exif-gpstrackref": "Rèference por la dirèccion du mouvement",
+       "exif-gpstrack": "Dirèccion du mouvement",
+       "exif-gpsimgdirectionref": "Rèference por la dirèccion de l’émâge",
+       "exif-gpsimgdirection": "Dirèccion de l’émâge",
+       "exif-gpsmapdatum": "Balyês de sondâjo g·eodèsico empleyêes",
+       "exif-gpsdestlatituderef": "Rèference por la latituda de la dèstinacion",
+       "exif-gpsdestlatitude": "Latituda de la dèstinacion",
+       "exif-gpsdestlongituderef": "Rèference por la longituda de la dèstinacion",
+       "exif-gpsdestlongitude": "Longituda de la dèstinacion",
+       "exif-gpsdestbearingref": "Rèference por lo relèvament de la dèstinacion",
+       "exif-gpsdestbearing": "Relèvament de la dèstinacion",
+       "exif-gpsdestdistanceref": "Rèference por la distance a la dèstinacion",
+       "exif-gpsdestdistance": "Distance a la dèstinacion",
+       "exif-gpsprocessingmethod": "Nom de la mètoda de trètament du GPS",
+       "exif-gpsareainformation": "Nom du sôl GPS",
+       "exif-gpsdatestamp": "Dâta GPS",
+       "exif-gpsdifferential": "Corrèccion difèrencièla GPS",
+       "exif-jpegfilecomment": "Comentèro de fichiér JPEG",
+       "exif-keywords": "Mots-cllâfs",
+       "exif-worldregioncreated": "Règ·ion du mondo yô que la fotô est étâye prêsa",
+       "exif-countrycreated": "Payis yô que la fotô est étâye prêsa",
+       "exif-countrycodecreated": "Code du payis yô que la fotô est étâye prêsa",
+       "exif-provinceorstatecreated": "Province Ètat yô que la fotô est étâye prêsa",
+       "exif-citycreated": "Vela yô que la fotô est étâye prêsa",
+       "exif-sublocationcreated": "Partia de la vela yô que la fotô est étâye prêsa",
+       "exif-worldregiondest": "Règ·ion du mondo montrâye",
+       "exif-countrydest": "Payis montrâ",
+       "exif-countrycodedest": "Code du payis montrâ",
+       "exif-provinceorstatedest": "Province Ètat montrâ(ye)",
+       "exif-citydest": "Vela montrâye",
+       "exif-sublocationdest": "Partia de la vela montrâye",
+       "exif-objectname": "Titro côrt",
+       "exif-specialinstructions": "Enstruccions spèciâles",
+       "exif-headline": "Titro",
+       "exif-credit": "Crèdit / fornissor",
+       "exif-source": "Sôrsa",
+       "exif-editstatus": "Statut èditoriâl de l’émâge",
+       "exif-urgency": "Prèssa",
+       "exif-fixtureidentifier": "Nom de la colona",
+       "exif-locationdest": "Endrêt fotografiâ",
+       "exif-locationdestcode": "Code de l’endrêt fotografiâ",
+       "exif-objectcycle": "Temps de la jornâ que cél mèdiâ y est dèstinâ",
+       "exif-contact": "Enformacions de contacto",
+       "exif-writer": "Ôtor",
+       "exif-languagecode": "Lengoua",
+       "exif-iimversion": "Vèrsion IIM",
+       "exif-iimcategory": "Catègoria",
+       "exif-iimsupplementalcategory": "Catègories de més",
+       "exif-datetimeexpires": "Pas empleyér aprés",
+       "exif-datetimereleased": "Paru lo",
+       "exif-originaltransmissionref": "Code d’endrêt de la transmission originâla",
+       "exif-identifier": "Identifient",
+       "exif-lens": "Lentelye empleyêe",
+       "exif-serialnumber": "Numerô de sèria de l’aparèly-fotô",
+       "exif-cameraownername": "Propriètèro de l’aparèly-fotô",
+       "exif-label": "Lambél",
+       "exif-datetimemetadata": "Dâta du dèrriér changement de les mètabalyês",
+       "exif-nickname": "Nom famelyér de l’émâge",
+       "exif-rating": "Nota (sur 5)",
+       "exif-rightscertificate": "Cèrtificat de maneyance des drêts",
+       "exif-copyrighted": "Statut des drêts d’ôtor",
+       "exif-copyrightowner": "Dètentior des drêts d’ôtor",
+       "exif-usageterms": "Condicions d’usâjo",
+       "exif-webstatement": "Dècllaracion de drêts d’ôtor en legne",
+       "exif-originaldocumentid": "Identifient solèt du document originâl",
+       "exif-licenseurl": "URL de la licence des drêts d’ôtor",
+       "exif-morepermissionsurl": "Enformacions sur les licences altèrnatives",
+       "exif-attributionurl": "Pendent lo reusâjo de cel’ôvra, se vos plét liyéd a",
+       "exif-preferredattributionname": "Pendent lo reusâjo de cel’ôvra, se vos plét crèditâd",
+       "exif-pngfilecomment": "Comentèro de fichiér PNG",
+       "exif-disclaimer": "Semonce de nan-rèsponsabilitât",
+       "exif-contentwarning": "Semonce sur lo contegnu",
+       "exif-giffilecomment": "Comentèro de fichiér GIF",
+       "exif-intellectualgenre": "Tipo de piéce",
+       "exif-subjectnewscode": "Code de la chousa",
+       "exif-scenecode": "Code de scèna IPTC",
+       "exif-event": "Èvènement fotografiâ",
+       "exif-organisationinimage": "Organisacion fotografiâye",
+       "exif-personinimage": "Pèrsona fotografiâye",
+       "exif-originalimageheight": "Hôtior de l’émâge devant que seye étâye recadrâye",
+       "exif-originalimagewidth": "Largior de l’émâge devant que seye étâye recadrâye",
+       "exif-compression-1": "Pas damâ",
+       "exif-compression-2": "CCITT Groupo 3 Longior du codâjo Huffman changiê de dimension 1",
+       "exif-compression-3": "CCITT Groupo 3 codâjo du faxe",
+       "exif-compression-4": "CCITT Groupo 4 codâjo du faxe",
+       "exif-compression-6": "JPEG (viely)",
+       "exif-copyrighted-true": "Protègiê per los drêts d’ôtor",
+       "exif-copyrighted-false": "Ètat des drêts d’ôtor pas dèfeni",
+       "exif-photometricinterpretation-1": "Nêr et blanc (0 por lo nêr)",
+       "exif-unknowndate": "Dâta encognua",
+       "exif-orientation-1": "Normala",
+       "exif-orientation-2": "Envèrsâye d’aplan",
+       "exif-orientation-3": "Veriêe de 180°",
+       "exif-orientation-4": "Envèrsâye d’aplomb",
+       "exif-orientation-5": "Veriêe de 90° du fllanc antihorèro et envèrsâye d’aplomb",
+       "exif-orientation-6": "Veriêe de 90° du fllanc antihorèro",
+       "exif-orientation-7": "Veriêe de 90° du fllanc horèro et envèrsâye d’aplomb",
+       "exif-orientation-8": "Veriêe de 90° du fllanc horèro",
+       "exif-planarconfiguration-1": "format en bocons",
+       "exif-planarconfiguration-2": "format plan",
+       "exif-colorspace-65535": "Pas calibrâ",
+       "exif-componentsconfiguration-0": "ègziste pas",
+       "exif-componentsconfiguration-5": "V",
+       "exif-exposureprogram-0": "Pas dèfeni",
+       "exif-exposureprogram-1": "Manuâl",
+       "exif-exposureprogram-2": "Programo normal",
+       "exif-exposureprogram-3": "Prioritât a l’uvèrtura",
+       "exif-exposureprogram-4": "Prioritât a l’ètopior",
+       "exif-exposureprogram-5": "Programo crèacion (prèference a la provondior de champ)",
+       "exif-exposureprogram-6": "Programo accion (prèference a la vitèsse d’ètopâ)",
+       "exif-exposureprogram-7": "Fôrma portrèt (por visions de prés avouéc dèrriér troblo)",
+       "exif-exposureprogram-8": "Fôrma payisâjo (por visions de payisâjos avouéc dèrriér nèt)",
+       "exif-subjectdistance-value": "$1 mètro{{PLURAL:$1||s}}",
+       "exif-meteringmode-0": "Encognua",
+       "exif-meteringmode-1": "Moyena",
+       "exif-meteringmode-2": "Moyena d’aplomb u centro",
+       "exif-meteringmode-3": "Spote",
+       "exif-meteringmode-4": "Multi-spote",
+       "exif-meteringmode-5": "Modèlo",
+       "exif-meteringmode-6": "Parciâla",
+       "exif-meteringmode-255": "Ôtra",
+       "exif-lightsource-0": "Encognua",
+       "exif-lightsource-1": "Lumiére du jorn",
+       "exif-lightsource-2": "Fluorèscenta",
+       "exif-lightsource-3": "Tungstène (lumiére enfarâye)",
+       "exif-lightsource-4": "Èludo",
+       "exif-lightsource-9": "Temps cllâr",
+       "exif-lightsource-10": "Temps enneblo",
+       "exif-lightsource-11": "Ombra",
+       "exif-lightsource-12": "Ècllèrâjo fluorèscent « lumiére du jorn » (D 5700 – 7100 K)",
+       "exif-lightsource-13": "Ècllèrâjo fluorèscent blanc « jorn » (N 4600 – 5400 K)",
+       "exif-lightsource-14": "Ècllèrâjo fluorèscent blanc « frêd » (W 3900 – 4500 K)",
+       "exif-lightsource-15": "Ècllèrâjo fluorèscent blanc (WW 3200 – 3700 K)",
+       "exif-lightsource-17": "Lumiére standârd A",
+       "exif-lightsource-18": "Lumiére standârd B",
+       "exif-lightsource-19": "Lumiére standârd C",
+       "exif-lightsource-24": "Tungstène ISO de studiô",
+       "exif-lightsource-255": "Ôtra sôrsa de lumiére",
+       "exif-flash-fired-0": "Èludo pas dècllenchiê",
+       "exif-flash-fired-1": "Èludo dècllenchiê",
+       "exif-flash-return-0": "nion stroboscopo retôrne na fonccion de dècelâjo",
+       "exif-flash-return-2": "lo stroboscopo dècèle gins de lumiére retornâye",
+       "exif-flash-return-3": "lo stroboscopo dècèle un retôrn de lumiére",
+       "exif-flash-mode-1": "lumiére de l’èludo oblegatouèra",
+       "exif-flash-mode-2": "suprèssion de l’èludo oblegatouèra",
+       "exif-flash-mode-3": "fôrma ôtomatica",
+       "exif-flash-function-1": "Niona fonccion d’èludo",
+       "exif-flash-redeye-1": "fôrma anti-uelys rojos",
+       "exif-focalplaneresolutionunit-2": "pôjos",
+       "exif-sensingmethod-1": "Pas dèfeni",
+       "exif-sensingmethod-2": "Captior de color a na puge",
+       "exif-sensingmethod-3": "Captior de color a doves puges",
+       "exif-sensingmethod-4": "Captior de color a três puges",
+       "exif-sensingmethod-5": "Captior de color sèquencièl",
+       "exif-sensingmethod-7": "Captior trilinèâr",
+       "exif-sensingmethod-8": "Captior de color linèâr sèquencièl",
+       "exif-filesource-3": "Aparèly-fotô numerico",
+       "exif-scenetype-1": "Émâge fotografiâye tot drêt",
+       "exif-customrendered-0": "Pratica normala",
+       "exif-customrendered-1": "Pratica pèrsonalisâye",
+       "exif-exposuremode-0": "Èxposicion ôtomatica",
+       "exif-exposuremode-1": "Èxposicion manuâla",
+       "exif-exposuremode-2": "Forchèta ôtomatica",
+       "exif-whitebalance-0": "Balance des blancs ôtomatica",
+       "exif-whitebalance-1": "Balance des blancs manuâla",
+       "exif-scenecapturetype-0": "Standârd",
+       "exif-scenecapturetype-1": "Payisâjo",
+       "exif-scenecapturetype-2": "Portrèt",
+       "exif-scenecapturetype-3": "Scèna de nuet",
+       "exif-gaincontrol-0": "Nion",
+       "exif-gaincontrol-1": "Fêblo guen positif",
+       "exif-gaincontrol-2": "Fôrt guen positif",
+       "exif-gaincontrol-3": "Fêblo guen nègatif",
+       "exif-gaincontrol-4": "Fôrt guen nègatif",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Fêblo",
+       "exif-contrast-2": "Fôrt",
+       "exif-saturation-0": "Normala",
+       "exif-saturation-1": "Saturacion bâssa",
+       "exif-saturation-2": "Saturacion hôta",
+       "exif-sharpness-0": "Normala",
+       "exif-sharpness-1": "Doce",
+       "exif-sharpness-2": "Dura",
+       "exif-subjectdistancerange-0": "Encognua",
+       "exif-subjectdistancerange-1": "Vision en grôs",
+       "exif-subjectdistancerange-2": "Vision de prés",
+       "exif-subjectdistancerange-3": "Vision de luen",
+       "exif-gpslatitude-n": "Latituda bise (<em>nord</em>)",
+       "exif-gpslatitude-s": "Latituda mié-jorn (<em>sud</em>)",
+       "exif-gpslongitude-e": "Longituda levant (<em>èste</em>)",
+       "exif-gpslongitude-w": "Longituda cuchient (<em>ouèste</em>)",
+       "exif-gpsaltitude-above-sealevel": "$1 mètro{{PLURAL:$1||s}} d’amont lo nivél de la mar",
+       "exif-gpsaltitude-below-sealevel": "$1 mètro{{PLURAL:$1||s}} desot lo nivél de la mar",
+       "exif-gpsstatus-a": "Mesera en cors",
+       "exif-gpsstatus-v": "Entèrfonccionement de la mesera",
+       "exif-gpsmeasuremode-2": "Mesera a 2 dimensions",
+       "exif-gpsmeasuremode-3": "Mesera a 3 dimensions",
+       "exif-gpsspeed-k": "Kilomètros a l’hora",
+       "exif-gpsspeed-m": "Milos a l’hora",
+       "exif-gpsspeed-n": "Nuods",
+       "exif-gpsdestdistance-k": "Kilomètros",
+       "exif-gpsdestdistance-m": "Milos",
+       "exif-gpsdestdistance-n": "Milos navâls",
+       "exif-gpsdop-excellent": "Famosa ($1)",
+       "exif-gpsdop-good": "Bôna ($1)",
+       "exif-gpsdop-moderate": "Moyena ($1)",
+       "exif-gpsdop-fair": "Tot justo bôna ($1)",
+       "exif-gpsdop-poor": "Crouye ($1)",
+       "exif-objectcycle-a": "Ren qu’u matin",
+       "exif-objectcycle-p": "Ren qu’a nuet",
+       "exif-objectcycle-b": "Matin et nuet",
+       "exif-gpsdirection-t": "Veretâbla bise (<em>nord</em>)",
+       "exif-gpsdirection-m": "Bise (<em>nord</em>) magnètica",
+       "exif-ycbcrpositioning-1": "Centrâ",
+       "exif-ycbcrpositioning-2": "Co-placiê",
+       "exif-dc-contributor": "Contributors",
+       "exif-dc-coverage": "Portâ spaciâla ou ben temporâla du mèdiâ",
+       "exif-dc-date": "Dâta(/-es)",
+       "exif-dc-publisher": "Èditor",
+       "exif-dc-relation": "Mèdiâs liyês",
+       "exif-dc-rights": "Drêts",
+       "exif-dc-source": "Mèdiâ sôrsa",
+       "exif-dc-type": "Tipo de mèdiâ",
+       "exif-rating-rejected": "Refusâ",
+       "exif-isospeedratings-overflow": "Ples grant que 65535",
+       "exif-iimcategory-ace": "Ârts, cultura et spèctâcllos",
+       "exif-iimcategory-clj": "Crimo et drêt",
+       "exif-iimcategory-dis": "Catastrofes et accidents",
+       "exif-iimcategory-fin": "Èconomia et afâres",
+       "exif-iimcategory-edu": "Èducacion",
+       "exif-iimcategory-evn": "Enveronance",
+       "exif-iimcategory-hth": "Santât",
+       "exif-iimcategory-hum": "Entèrèt d’homo",
+       "exif-iimcategory-lab": "Travâly",
+       "exif-iimcategory-lif": "Fôrma de via et pâssa-temps",
+       "exif-iimcategory-pol": "Politica",
+       "exif-iimcategory-rel": "Religion et creyences",
+       "exif-iimcategory-sci": "Science et tècnologia",
+       "exif-iimcategory-soi": "Quèstions sociâles",
+       "exif-iimcategory-spo": "Sports",
+       "exif-iimcategory-war": "Guèrra, disputa et troblo",
+       "exif-iimcategory-wea": "Temps",
+       "exif-urgency-normal": "Normala ($1)",
+       "exif-urgency-low": "Bâssa ($1)",
+       "exif-urgency-high": "Hôta ($1)",
+       "exif-urgency-other": "Prioritât dèfenia per l’utilisator ($1)"
+}
diff --git a/languages/i18n/exif/frr.json b/languages/i18n/exif/frr.json
new file mode 100644 (file)
index 0000000..2cae4ab
--- /dev/null
@@ -0,0 +1,345 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Murma174"
+               ]
+       },
+       "exif-imagewidth": "Breetje",
+       "exif-imagelength": "Hööchde",
+       "exif-bitspersample": "Bits per klöör",
+       "exif-compression": "Komprimiarang",
+       "exif-photometricinterpretation": "Pixel bonk",
+       "exif-orientation": "Perspektiiw",
+       "exif-samplesperpixel": "Taal faan komponenten",
+       "exif-planarconfiguration": "Dooten skak",
+       "exif-ycbcrsubsampling": "subsampling rate faan Y bit C",
+       "exif-ycbcrpositioning": "Y an C positjuun",
+       "exif-xresolution": "Wairocht apliasang",
+       "exif-yresolution": "Luadrocht apliasang",
+       "exif-stripoffsets": "Image data location",
+       "exif-rowsperstrip": "Taal faan rän per strimel",
+       "exif-stripbytecounts": "Bytes per komprimiaret strimel",
+       "exif-jpeginterchangeformat": "Offset tu JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bytes faan JPEG-dooten",
+       "exif-whitepoint": "White point chromaticity",
+       "exif-primarychromaticities": "Chromaticities of primarities",
+       "exif-ycbcrcoefficients": "Color space transformation matrix coefficients",
+       "exif-referenceblackwhite": "Suart/witj referens ponkter",
+       "exif-datetime": "Dootem an klooktidj faan't seekrin",
+       "exif-imagedescription": "Nööm faan't bil",
+       "exif-make": "Knipser onernemen",
+       "exif-model": "Knipser marke/model",
+       "exif-software": "Software",
+       "exif-artist": "Fotogroof",
+       "exif-copyright": "Bilrochten",
+       "exif-exifversion": "Stant faan Exif",
+       "exif-flashpixversion": "Flashpix-werjuun",
+       "exif-colorspace": "Klöörenrüm",
+       "exif-componentsconfiguration": "Enkelt komponenten",
+       "exif-compressedbitsperpixel": "Komprimiaret bits per pixel",
+       "exif-pixelxdimension": "Bilbreetje",
+       "exif-pixelydimension": "Bilhööchde",
+       "exif-usercomment": "Brüker komentaaren",
+       "exif-relatedsoundfile": "Ferbünjen tuundatei",
+       "exif-datetimeoriginal": "Dootem an klooktidj faan't knipsin",
+       "exif-datetimedigitized": "Dootem an klooktidj faan't digitalisiarin",
+       "exif-subsectime": "Tidjponkt faan seekrin (1/100 s)",
+       "exif-subsectimeoriginal": "Tidjponkt faan't knipsin (1/100 s)",
+       "exif-subsectimedigitized": "Tidjponkt faan't digitalisiarin (1/100 s)",
+       "exif-exposuretime": "Belaachtangstidj",
+       "exif-exposuretime-format": "$1 sekunden ($2)",
+       "exif-fnumber": "F numer (blend)",
+       "exif-exposureprogram": "Belaachtangsprogram",
+       "exif-spectralsensitivity": "Spectral sensitivity",
+       "exif-isospeedratings": "ISO emfintelkhaid",
+       "exif-shutterspeedvalue": "APEX shutter speed",
+       "exif-aperturevalue": "APEX aperture",
+       "exif-brightnessvalue": "APEX brightness",
+       "exif-exposurebiasvalue": "APEX exposure bias",
+       "exif-maxaperturevalue": "Gratst blend",
+       "exif-subjectdistance": "Wai tu't subjekt",
+       "exif-meteringmode": "Meed muude",
+       "exif-lightsource": "Laachtkwel",
+       "exif-flash": "Laid",
+       "exif-focallength": "Braanwidjens",
+       "exif-subjectarea": "Rüm",
+       "exif-flashenergy": "Laidmäächt",
+       "exif-focalplanexresolution": "Focal plane X resolution",
+       "exif-focalplaneyresolution": "Focal plane Y resolution",
+       "exif-focalplaneresolutionunit": "Focal plane resolution unit",
+       "exif-subjectlocation": "Steed faan't motiif",
+       "exif-exposureindex": "Belaachtangsindex",
+       "exif-sensingmethod": "Meed muude",
+       "exif-filesource": "Dateikwel",
+       "exif-scenetype": "Scene type",
+       "exif-customrendered": "Custom image processing",
+       "exif-exposuremode": "Belaachtangsmuude",
+       "exif-whitebalance": "Witjufglik",
+       "exif-digitalzoomratio": "Digital zoom ratio",
+       "exif-focallengthin35mmfilm": "Braanwidjens bi en 35 mm film",
+       "exif-scenecapturetype": "Scene capture type",
+       "exif-gaincontrol": "Scene control",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Intensiteet faan klöören",
+       "exif-sharpness": "Skarepens",
+       "exif-devicesettingdescription": "Iinstelangen",
+       "exif-subjectdistancerange": "Wai uf faan't motiif",
+       "exif-imageuniqueid": "Bil-ID",
+       "exif-gpsversionid": "GPS tag werjuun",
+       "exif-gpslatituderef": "Nuurdelk of süüdelk breetje",
+       "exif-gpslatitude": "Geograafisk Breetje",
+       "exif-gpslongituderef": "Uastelk of waastelk lengde",
+       "exif-gpslongitude": "Geograafisk lengde",
+       "exif-gpsaltituderef": "Hööchde uun ferglik mä",
+       "exif-gpsaltitude": "Hööchde",
+       "exif-gpstimestamp": "GPS-tidj",
+       "exif-gpssatellites": "För't meeden brükt sateliten",
+       "exif-gpsstatus": "Receiver status",
+       "exif-gpsmeasuremode": "Muude för't meeden",
+       "exif-gpsdop": "Nauhaid faan't meeden",
+       "exif-gpsspeedref": "Ianhaid faan't faard",
+       "exif-gpsspeed": "Faard faan a GPS-aperoot",
+       "exif-gpstrackref": "Referens för di kurs faan't faard",
+       "exif-gpstrack": "Kurs faan't faard",
+       "exif-gpsimgdirectionref": "Referens för't ütjrachtang",
+       "exif-gpsimgdirection": "Ütjrachtang faan't bil",
+       "exif-gpsmapdatum": "Geodeetisk referens-süsteem",
+       "exif-gpsdestlatituderef": "Referens för't geograafisk breetje",
+       "exif-gpsdestlatitude": "Geograafisk breetje faan't aanj",
+       "exif-gpsdestlongituderef": "Referens för't geograafisk lengde",
+       "exif-gpsdestlongitude": "Geograafisk lengde faan't aanj",
+       "exif-gpsdestbearingref": "Referens för di kurs faan't aanj",
+       "exif-gpsdestbearing": "Kurs faan't aanj",
+       "exif-gpsdestdistanceref": "Referens för di wai tu't motiif",
+       "exif-gpsdestdistance": "Wai tu't motiif",
+       "exif-gpsprocessingmethod": "GPS muude",
+       "exif-gpsareainformation": "GPS rüm",
+       "exif-gpsdatestamp": "GPS dootem",
+       "exif-gpsdifferential": "GPS diferential korektuur",
+       "exif-jpegfilecomment": "JPEG dateikomentaar",
+       "exif-keywords": "Steegwurden",
+       "exif-worldregioncreated": "Weltregiuun, huar det bil apnimen wurden as",
+       "exif-countrycreated": "Lun, huar det bil apnimen wurden as",
+       "exif-countrycodecreated": "ISO-code faan det lun",
+       "exif-provinceorstatecreated": "Prowins of federaalstoot, huar det bil aonimen wurden as",
+       "exif-citycreated": "Stääd, huar det bil apnimen wurden as",
+       "exif-sublocationcreated": "Stäädregiuun, huar det bil apnimen wurden as",
+       "exif-worldregiondest": "Uunwiset weltregiuun",
+       "exif-countrydest": "Uunwiset lun",
+       "exif-countrycodedest": "ISO-code för det uunwiset lun",
+       "exif-provinceorstatedest": "Prowins of federaalstoot",
+       "exif-citydest": "Uunwiset stääd",
+       "exif-sublocationdest": "Uunwiset stäädregiuun",
+       "exif-objectname": "Kurt tiitel",
+       "exif-specialinstructions": "Ekstra uunwisangen",
+       "exif-headline": "Auerskraft",
+       "exif-credit": "Faan hoker",
+       "exif-source": "Faan huar",
+       "exif-editstatus": "Hüwidj bewerket",
+       "exif-urgency": "Hü nuadag",
+       "exif-fixtureidentifier": "Ööders wat",
+       "exif-locationdest": "Steed üüb det bil",
+       "exif-locationdestcode": "ISO-code faan det steed üüb't bil",
+       "exif-objectcycle": "Tidj üüb a dai för't iinstelen",
+       "exif-contact": "Kontaktdooten",
+       "exif-writer": "Skriiwer",
+       "exif-languagecode": "Spriak",
+       "exif-iimversion": "IIM werjuun",
+       "exif-iimcategory": "Kategorii",
+       "exif-iimsupplementalcategory": "Muar kategooriin",
+       "exif-datetimeexpires": "Ei muar tu brüken efter",
+       "exif-datetimereleased": "Ütjden di",
+       "exif-originaltransmissionref": "ISO-code faan det steed, huar det bil auerdraanj wurden as",
+       "exif-identifier": "Käänang",
+       "exif-lens": "Hün objektiif",
+       "exif-serialnumber": "Luupen numer faan a knipser",
+       "exif-cameraownername": "Hoker di knipser hiart",
+       "exif-label": "Betiaknang",
+       "exif-datetimemetadata": "Leetst feranrang faan meta-dooten",
+       "exif-nickname": "Nööm för det bil",
+       "exif-rating": "Wäärdaghaid (1 tu 5, 5 as best)",
+       "exif-rightscertificate": "Rights management certificate",
+       "exif-copyrighted": "Copyright-Status:",
+       "exif-copyrightowner": "Bilrochten lei bi",
+       "exif-usageterms": "Brükerreegeln",
+       "exif-webstatement": "Online copyright statement",
+       "exif-originaldocumentid": "Iandüüdag käänang (ID) faan't dokument",
+       "exif-licenseurl": "URL for copyright license",
+       "exif-morepermissionsurl": "Muar lisensen",
+       "exif-attributionurl": "Wan dü det bil brük wel, saat en ferwisang üüb:",
+       "exif-preferredattributionname": "Wan dü det bil brük wel, nääm:",
+       "exif-pngfilecomment": "PNG dateikomentaar",
+       "exif-disclaimer": "Disclaimer",
+       "exif-contentwarning": "Wäärnang",
+       "exif-giffilecomment": "GIF dateikomentaar",
+       "exif-intellectualgenre": "Slach faan bil",
+       "exif-subjectnewscode": "Motiif-code",
+       "exif-scenecode": "IPTC-code",
+       "exif-event": "Begeebenhaid",
+       "exif-organisationinimage": "Organisatjuun",
+       "exif-personinimage": "Persuun",
+       "exif-originalimageheight": "Hööchde faan't bil föör't beklapen",
+       "exif-originalimagewidth": "Breetje faan't bil föör't beklapen",
+       "exif-compression-1": "Ünkomprimiaret",
+       "exif-compression-2": "CCITT Group 3 1-Dimensional Modified Huffman run length encoding",
+       "exif-compression-3": "CCITT Group 3 fax encoding",
+       "exif-compression-4": "CCITT Group 4 fax encoding",
+       "exif-copyrighted-true": "Mä kopiarrocht",
+       "exif-copyrighted-false": "Kopiarrochten noch ei fäästlaanj",
+       "exif-unknowndate": "Ünbekäänd dootem",
+       "exif-orientation-1": "Normool",
+       "exif-orientation-2": "Wairocht speegelt",
+       "exif-orientation-3": "Am 180° dreid",
+       "exif-orientation-4": "Luadrocht speegelt",
+       "exif-orientation-5": "Jin a klook am 90° dreid an luadrocht speegelt.",
+       "exif-orientation-6": "Jin a klook am 90° dreid",
+       "exif-orientation-7": "Mä a klook am 90° dreid an luadrocht speegelt.",
+       "exif-orientation-8": "Mä a klook am 90° dreid",
+       "exif-planarconfiguration-1": "Grööw formaat",
+       "exif-planarconfiguration-2": "Planaar formaat",
+       "exif-colorspace-65535": "Ei kalibriaret",
+       "exif-componentsconfiguration-0": "as ei diar",
+       "exif-exposureprogram-0": "ei bekäänd",
+       "exif-exposureprogram-1": "Manuel",
+       "exif-exposureprogram-2": "Normool program",
+       "exif-exposureprogram-3": "Tidjautomaatik",
+       "exif-exposureprogram-4": "Blendenautomaatik",
+       "exif-exposureprogram-5": "Kreatiifprogram mä jip skarepens",
+       "exif-exposureprogram-6": "Aktjuunsprogram mä kurt belaachtangstidj",
+       "exif-exposureprogram-7": "Portree-muude mä skarepen föörgrünj",
+       "exif-exposureprogram-8": "Loonskap-muude mä skarepen bääftgrünj",
+       "exif-subjectdistance-value": "$1 meetern",
+       "exif-meteringmode-0": "Ünbekäänd",
+       "exif-meteringmode-1": "Madel",
+       "exif-meteringmode-2": "Skarep maden",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "Multi-Spot",
+       "exif-meteringmode-5": "Münster",
+       "exif-meteringmode-6": "Bil-dial",
+       "exif-meteringmode-255": "Ööder",
+       "exif-lightsource-0": "Ünbekäänd",
+       "exif-lightsource-1": "Dailaacht",
+       "exif-lightsource-2": "Fluorescent",
+       "exif-lightsource-3": "Konstlaacht",
+       "exif-lightsource-4": "Laid",
+       "exif-lightsource-9": "Smok weder",
+       "exif-lightsource-10": "Betaanj",
+       "exif-lightsource-11": "Skaad",
+       "exif-lightsource-12": "Daylight fluorescent (D 5700 – 7100K)",
+       "exif-lightsource-13": "Day white fluorescent (N 4600 – 5400K)",
+       "exif-lightsource-14": "Cool white fluorescent (W 3900 – 4500K)",
+       "exif-lightsource-15": "White fluorescent (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standard light A",
+       "exif-lightsource-18": "Standard light B",
+       "exif-lightsource-19": "Standard light C",
+       "exif-lightsource-24": "ISO studio konstlaacht",
+       "exif-lightsource-255": "Ööder laacht",
+       "exif-flash-fired-0": "Nään laid",
+       "exif-flash-fired-1": "Laid ütjliaset",
+       "exif-flash-return-0": "Laid schüürt nian dooten",
+       "exif-flash-return-2": "Nään laid tu sen",
+       "exif-flash-return-3": "Laid wiar tu sen",
+       "exif-flash-mode-1": "Mä twüngen laid",
+       "exif-flash-mode-2": "Laid ufsteld",
+       "exif-flash-mode-3": "Automaatik",
+       "exif-flash-function-1": "Nään laid mögelk",
+       "exif-flash-redeye-1": "Nian ruad uugen muude",
+       "exif-focalplaneresolutionunit-2": "tol",
+       "exif-sensingmethod-1": "Ei bekäänd",
+       "exif-sensingmethod-2": "One-chip color area sensor",
+       "exif-sensingmethod-3": "Two-chip color area sensor",
+       "exif-sensingmethod-4": "Three-chip color area sensor",
+       "exif-sensingmethod-5": "Color sequential area sensor",
+       "exif-sensingmethod-7": "Trilinear sensor",
+       "exif-sensingmethod-8": "Color sequential linear sensor",
+       "exif-filesource-3": "Digitaal stunbilknipser",
+       "exif-scenetype-1": "Normool",
+       "exif-customrendered-0": "Normool",
+       "exif-customrendered-1": "Brüker-iinsteld",
+       "exif-exposuremode-0": "Automaatisk belaachtang",
+       "exif-exposuremode-1": "Manuel belaachtang",
+       "exif-exposuremode-2": "Belaachtangsrä",
+       "exif-whitebalance-0": "Automaatisk",
+       "exif-whitebalance-1": "Manuel",
+       "exif-scenecapturetype-0": "Normool",
+       "exif-scenecapturetype-1": "Loonskap",
+       "exif-scenecapturetype-2": "Portree",
+       "exif-scenecapturetype-3": "Naacht",
+       "exif-gaincontrol-0": "Nian",
+       "exif-gaincontrol-1": "Letjet ap",
+       "exif-gaincontrol-2": "Föl ap",
+       "exif-gaincontrol-3": "Letjet deel",
+       "exif-gaincontrol-4": "Föl deel",
+       "exif-contrast-0": "Normool",
+       "exif-contrast-1": "Swaak",
+       "exif-contrast-2": "Stark",
+       "exif-saturation-0": "Normool",
+       "exif-saturation-1": "Letjet",
+       "exif-saturation-2": "Huuch",
+       "exif-sharpness-0": "Normool",
+       "exif-sharpness-1": "Swaak",
+       "exif-sharpness-2": "Stark",
+       "exif-subjectdistancerange-0": "Ünbekäänd",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Nai bi",
+       "exif-subjectdistancerange-3": "Widj wech",
+       "exif-gpslatitude-n": "Nuurdelk breetje",
+       "exif-gpslatitude-s": "Süüdelk breetje",
+       "exif-gpslongitude-e": "Uastelk lengde",
+       "exif-gpslongitude-w": "Waastelk lengde",
+       "exif-gpsaltitude-above-sealevel": "{{PLURAL:$1|Ään meeter|$1 meetern}} auer siapeegel",
+       "exif-gpsaltitude-below-sealevel": "{{PLURAL:$1|Ään meeter|$1 meetern}} oner siapeegel",
+       "exif-gpsstatus-a": "Measurement in progress",
+       "exif-gpsstatus-v": "Measurement interoperability",
+       "exif-gpsmeasuremode-2": "2-dimensional measurement",
+       "exif-gpsmeasuremode-3": "3-dimensional measurement",
+       "exif-gpsspeed-k": "km/h",
+       "exif-gpsspeed-m": "mph",
+       "exif-gpsspeed-n": "kn",
+       "exif-gpsdestdistance-k": "Kilomeetern",
+       "exif-gpsdestdistance-m": "Miilen",
+       "exif-gpsdestdistance-n": "Siamiilen",
+       "exif-gpsdop-excellent": "Auer a miaten ($1)",
+       "exif-gpsdop-good": "Gud ($1)",
+       "exif-gpsdop-moderate": "Madel ($1)",
+       "exif-gpsdop-fair": "Gongt so ($1)",
+       "exif-gpsdop-poor": "Ei so dol ($1)",
+       "exif-objectcycle-a": "Bluas am maarlem",
+       "exif-objectcycle-p": "Bluas am injem",
+       "exif-objectcycle-b": "Eder am maarlam an am injem",
+       "exif-gpsdirection-t": "Rochtwisin kurs",
+       "exif-gpsdirection-m": "Magneetisk kurs",
+       "exif-ycbcrpositioning-1": "Uun a maden",
+       "exif-ycbcrpositioning-2": "Uun naiberskap",
+       "exif-dc-contributor": "Bidracher faan",
+       "exif-dc-coverage": "Spatial or temporal scope of media",
+       "exif-dc-date": "Dootem",
+       "exif-dc-publisher": "Ütjden faan",
+       "exif-dc-relation": "Ferbünjen meedien",
+       "exif-dc-rights": "Rochten",
+       "exif-dc-source": "Meeedienkwel",
+       "exif-dc-type": "Meedienslach",
+       "exif-rating-rejected": "Turagwiset",
+       "exif-isospeedratings-overflow": "Grater üs 65535",
+       "exif-iimcategory-ace": "Konst, kultüür an onerhualang",
+       "exif-iimcategory-clj": "Rocht an ferbreegen",
+       "exif-iimcategory-dis": "Katastroofen an ünfaaler",
+       "exif-iimcategory-fin": "Wiartskap an bedriiwer",
+       "exif-iimcategory-edu": "Onerracht",
+       "exif-iimcategory-evn": "Natüür an amwelt",
+       "exif-iimcategory-hth": "Sünjhaid",
+       "exif-iimcategory-hum": "Persöönelk intresen",
+       "exif-iimcategory-lab": "Werk",
+       "exif-iimcategory-lif": "Freitidj an muude",
+       "exif-iimcategory-pol": "Politik",
+       "exif-iimcategory-rel": "Religioon an gluuw",
+       "exif-iimcategory-sci": "Wedenskap an technologii",
+       "exif-iimcategory-soi": "Mäenööder",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Kriich, stridj an ünrau",
+       "exif-iimcategory-wea": "Weder",
+       "exif-urgency-normal": "Normool ($1)",
+       "exif-urgency-low": "Liach ($1)",
+       "exif-urgency-high": "Huuch ($1)",
+       "exif-urgency-other": "Faan a brüker fäästlaanj prioriteet ($1)"
+}
diff --git a/languages/i18n/exif/fy.json b/languages/i18n/exif/fy.json
new file mode 100644 (file)
index 0000000..a3ce398
--- /dev/null
@@ -0,0 +1,109 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Kening Aldgilles",
+                       "Robin van der Vliet",
+                       "Snakesteuben"
+               ]
+       },
+       "exif-imagewidth": "Breedte",
+       "exif-imagelength": "Hichte",
+       "exif-orientation": "Oriïntaasje",
+       "exif-samplesperpixel": "Oantal komponinten",
+       "exif-xresolution": "Horizontale resolúsje",
+       "exif-yresolution": "Fertikale resolúsje",
+       "exif-imagedescription": "Ofbylding titel",
+       "exif-make": "Kamera makker",
+       "exif-model": "Kameramodel",
+       "exif-software": "Brûkte software",
+       "exif-artist": "Auteur",
+       "exif-copyright": "Auteursrjochtenhâlder",
+       "exif-exifversion": "Exif-ferzje",
+       "exif-colorspace": "Kleurromte",
+       "exif-compressedbitsperpixel": "Ofbylding kompresjemetoade",
+       "exif-pixelxdimension": "Ofbyldingsbreedte",
+       "exif-pixelydimension": "Ofbyldingshichte",
+       "exif-usercomment": "Opmerkings",
+       "exif-relatedsoundfile": "Besibbe audiotriem",
+       "exif-datetimeoriginal": "Tiidstip gegevensoanmaak",
+       "exif-datetimedigitized": "Tiidstip digitalisearring",
+       "exif-subsectime": "Datum tijd subsekonden",
+       "exif-exposuretime-format": "$1 sek ($2)",
+       "exif-fnumber": "F-nûmer",
+       "exif-fnumber-format": "f/$1",
+       "exif-shutterspeedvalue": "APEX-slutertiid",
+       "exif-aperturevalue": "APEX-beljochting",
+       "exif-brightnessvalue": "APEX-helderens",
+       "exif-lightsource": "Ljochtboarne",
+       "exif-flash": "Flits",
+       "exif-focallength-format": "$1 mm",
+       "exif-filesource": "Triemboarne",
+       "exif-whitebalance": "Wytbalâns",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Sêding",
+       "exif-sharpness": "Skerpte",
+       "exif-gpslatitude": "Breedtegraad",
+       "exif-gpslongitude": "Lingtegraad",
+       "exif-gpsaltitude": "Hichte",
+       "exif-gpstimestamp": "GPS-tiid (atoomklok)",
+       "exif-gpsspeedref": "Snelheidsienheid",
+       "exif-gpsdatestamp": "GPS-datum",
+       "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-keywords": "Kaaiwurden",
+       "exif-source": "Boarne",
+       "exif-contact": "Kontakt ynformaasje",
+       "exif-writer": "Skriuwer",
+       "exif-languagecode": "Taal",
+       "exif-iimversion": "IIM-ferzje",
+       "exif-iimcategory": "Kategory",
+       "exif-datetimereleased": "Utbrocht op",
+       "exif-serialnumber": "Searjenûmer fan de kamera",
+       "exif-cameraownername": "Eigner fan de kamera",
+       "exif-label": "Label",
+       "exif-copyrightowner": "Copyright eigner",
+       "exif-usageterms": "Gebrûksbetingsten",
+       "exif-disclaimer": "Foarbehâld",
+       "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-unknowndate": "Datum ûnbekend",
+       "exif-orientation-1": "Normaal",
+       "exif-componentsconfiguration-0": "bestiet net",
+       "exif-exposureprogram-0": "Net bepaald",
+       "exif-exposureprogram-2": "Normaal programma",
+       "exif-subjectdistance-value": "$1 meter",
+       "exif-meteringmode-0": "Unbekend",
+       "exif-meteringmode-5": "Patroan",
+       "exif-lightsource-0": "Unbekend",
+       "exif-lightsource-1": "Deiljocht",
+       "exif-lightsource-4": "Flits",
+       "exif-focalplaneresolutionunit-2": "inch",
+       "exif-customrendered-0": "Normale ferwurking",
+       "exif-scenecapturetype-0": "Standert",
+       "exif-scenecapturetype-1": "Lânskip",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Nachtsjêne",
+       "exif-gaincontrol-0": "Gjin",
+       "exif-contrast-0": "Normaal",
+       "exif-saturation-0": "Normaal",
+       "exif-sharpness-0": "Normaal",
+       "exif-subjectdistancerange-0": "Unbekend",
+       "exif-subjectdistancerange-2": "Tichtby",
+       "exif-gpsspeed-k": "Kilometer per oere",
+       "exif-gpsspeed-m": "Mile per oere",
+       "exif-gpsspeed-n": "Knopen",
+       "exif-gpsdestdistance-k": "Kilometers",
+       "exif-gpsdestdistance-m": "Milen",
+       "exif-gpsdestdistance-n": "Seemilen",
+       "exif-dc-rights": "Rjochten",
+       "exif-iimcategory-clj": "Misdied en rjocht",
+       "exif-iimcategory-edu": "Underwiis",
+       "exif-iimcategory-evn": "Miljeu",
+       "exif-iimcategory-hth": "Sûnens",
+       "exif-iimcategory-lab": "Arbeid",
+       "exif-iimcategory-pol": "Polityk",
+       "exif-iimcategory-sci": "Wittenskip en technology",
+       "exif-iimcategory-soi": "Sosjale kwestjes",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-wea": "Waar",
+       "exif-urgency-normal": "Normaal ($1)"
+}
diff --git a/languages/i18n/exif/ga.json b/languages/i18n/exif/ga.json
new file mode 100644 (file)
index 0000000..0f07d68
--- /dev/null
@@ -0,0 +1,229 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Alison",
+                       "Moilleadóir",
+                       "Nmacu",
+                       "Tem",
+                       "පසිඳු කාවින්ද"
+               ]
+       },
+       "exif-imagewidth": "Leithead",
+       "exif-imagelength": "Airde",
+       "exif-bitspersample": "Gíotáin sa chomhpháirt",
+       "exif-compression": "Scéim comhbhrúite",
+       "exif-photometricinterpretation": "Comhbhrú picteilíní",
+       "exif-orientation": "Treoshuíomh",
+       "exif-samplesperpixel": "Líon na gcomhpháirt",
+       "exif-planarconfiguration": "Eagar na sonraí",
+       "exif-ycbcrsubsampling": "Cóimheas foshamplála de Y i gcoinne C",
+       "exif-ycbcrpositioning": "Suí Y agus C",
+       "exif-xresolution": "Taifeach íomhá i dtreo an leithid",
+       "exif-yresolution": "Taifeach íomhá i dtreo an airde",
+       "exif-stripoffsets": "Suíomh na sonraí íomhá",
+       "exif-rowsperstrip": "Líon na rónna sa stráice",
+       "exif-stripbytecounts": "Bearta sa stráice comhbhrúite",
+       "exif-jpeginterchangeformat": "Aischló don SOI JPEG",
+       "exif-jpeginterchangeformatlength": "Bearta sonraí JPEG",
+       "exif-whitepoint": "Crómatacht na bpointí bán",
+       "exif-primarychromaticities": "Crómatachta na bpríomhacht",
+       "exif-ycbcrcoefficients": "Comhéifeachtaí mhaitrís trasfhoirmithe an dathspáis",
+       "exif-referenceblackwhite": "Péire luachanna tagartha don dubh is don bán",
+       "exif-datetime": "Dáta agus am athrú an chomhaid",
+       "exif-imagedescription": "Íomhátheideal",
+       "exif-make": "Déantóir an ceamara",
+       "exif-model": "Déanamh an ceamara",
+       "exif-software": "Na bogearraí a úsáideadh",
+       "exif-artist": "Údar",
+       "exif-copyright": "Úinéir an chóipchirt",
+       "exif-exifversion": "Leagan EXIF",
+       "exif-flashpixversion": "Leagan Flashpix atá á thacú",
+       "exif-colorspace": "Dathspás",
+       "exif-componentsconfiguration": "Ciall le gach giota",
+       "exif-compressedbitsperpixel": "Modh chomhbhrú na n-íomhánna",
+       "exif-pixelxdimension": "Leithead bailí don íomhá",
+       "exif-pixelydimension": "Airde bailí don íomhá",
+       "exif-usercomment": "Nótaí an úsáideora",
+       "exif-relatedsoundfile": "comhad gaolmhara fuaime",
+       "exif-datetimeoriginal": "Dáta agus am ghiniúint na sonraí",
+       "exif-datetimedigitized": "Dáta agus am digitithe",
+       "exif-subsectime": "Foshoicindí DateTime",
+       "exif-subsectimeoriginal": "Foshoicindí DateTimeOriginal",
+       "exif-subsectimedigitized": "Foshoicindí DateTimeDigitized",
+       "exif-exposuretime": "Am nochta",
+       "exif-exposuretime-format": "$1 soic ($2)",
+       "exif-fnumber": "Uimhir F",
+       "exif-exposureprogram": "Clár nochta",
+       "exif-spectralsensitivity": "Íogaireacht an speictrim",
+       "exif-isospeedratings": "Grádú ISO luais",
+       "exif-shutterspeedvalue": "Luas nochta",
+       "exif-aperturevalue": "Cró",
+       "exif-brightnessvalue": "Gile",
+       "exif-exposurebiasvalue": "Laobh nochta",
+       "exif-maxaperturevalue": "Cró tíre uasmhéideach",
+       "exif-subjectdistance": "Fad ón ábhar",
+       "exif-meteringmode": "Modh meadarachta",
+       "exif-lightsource": "Foinse solais",
+       "exif-flash": "Splanc",
+       "exif-focallength": "Fad fócasach an lionsa",
+       "exif-subjectarea": "Achar an ábhair",
+       "exif-flashenergy": "Splancfhuinneamh",
+       "exif-focalplanexresolution": "Taifeach an plána fócasaigh X",
+       "exif-focalplaneyresolution": "Taifeach an plána fócasaigh Y",
+       "exif-focalplaneresolutionunit": "Aonad taifigh an plána fócasaigh",
+       "exif-subjectlocation": "Suíomh an ábhair",
+       "exif-exposureindex": "Innéacs nochta",
+       "exif-sensingmethod": "Modh braite",
+       "exif-filesource": "Foinse comhaid",
+       "exif-scenetype": "Cineál radhairc",
+       "exif-customrendered": "Íomháphróiseáil saincheaptha",
+       "exif-exposuremode": "Modh nochta",
+       "exif-whitebalance": "Bánchothromaíocht",
+       "exif-digitalzoomratio": "Cóimheas zúmála digiteaí",
+       "exif-focallengthin35mmfilm": "Fad fócasach i scannán 35 mm",
+       "exif-scenecapturetype": "Cineál gabhála radhairc",
+       "exif-gaincontrol": "Rialú radhairc",
+       "exif-contrast": "Codarsnacht",
+       "exif-saturation": "Sáithiú",
+       "exif-sharpness": "Géire",
+       "exif-devicesettingdescription": "Cur síos ar socruithe gléis",
+       "exif-subjectdistancerange": "Raon fada ón ábhar",
+       "exif-imageuniqueid": "Aitheantas uathúil an íomhá",
+       "exif-gpsversionid": "Leagan clibe GPS",
+       "exif-gpslatituderef": "Domhan-leithead Thuaidh no Theas",
+       "exif-gpslatitude": "Domhan-leithead",
+       "exif-gpslongituderef": "Domhanfhad Thoir nó Thiar",
+       "exif-gpslongitude": "Domhanfhad",
+       "exif-gpsaltituderef": "Tagairt airde",
+       "exif-gpsaltitude": "Airde",
+       "exif-gpstimestamp": "Am GPS (clog adamhach)",
+       "exif-gpssatellites": "Satailítí úsáidte don tomhas",
+       "exif-gpsstatus": "Stádas an ghlacadóra",
+       "exif-gpsmeasuremode": "Modh tomhais",
+       "exif-gpsdop": "Beachtas tomhais",
+       "exif-gpsspeedref": "Aonad luais",
+       "exif-gpsspeed": "Luas an ghlacadóra GPS",
+       "exif-gpstrackref": "Tagairt don treo gluaiseachta",
+       "exif-gpstrack": "Treo gluaiseachta",
+       "exif-gpsimgdirectionref": "Tagairt do treo an íomhá",
+       "exif-gpsimgdirection": "Treo an íomhá",
+       "exif-gpsmapdatum": "Sonraí suirbhéireachta geodasaí a úsáideadh",
+       "exif-gpsdestlatituderef": "Tagairt don domhan-leithead sprice",
+       "exif-gpsdestlatitude": "Domhan-leithead sprice",
+       "exif-gpsdestlongituderef": "Tagairt don domhanfhad sprice",
+       "exif-gpsdestlongitude": "Domhanfhad sprice",
+       "exif-gpsdestbearingref": "Tagairt don treo-uillinn sprice",
+       "exif-gpsdestbearing": "Treo-uillinn sprice",
+       "exif-gpsdestdistanceref": "Tagairt don fad ón áit sprice",
+       "exif-gpsdestdistance": "Fad ón áit sprice",
+       "exif-gpsprocessingmethod": "Ainm an modha próiseála GPS",
+       "exif-gpsareainformation": "Ainm an cheantair GPS",
+       "exif-gpsdatestamp": "Dáta GPS",
+       "exif-gpsdifferential": "Ceartú difreálach GPS",
+       "exif-source": "Foinse",
+       "exif-languagecode": "Teanga",
+       "exif-iimcategory": "Catagóir",
+       "exif-intellectualgenre": "Cineál na míre",
+       "exif-compression-1": "Neamh-chomhbhrúite",
+       "exif-unknowndate": "Dáta anaithnid",
+       "exif-orientation-1": "Gnáth",
+       "exif-orientation-2": "Iompaithe go cothrománach",
+       "exif-orientation-3": "Rothlaithe trí 180°",
+       "exif-orientation-4": "Iompaithe go hingearach",
+       "exif-orientation-5": "Rothlaithe trí 90° CCW agus iompaithe go hingearach",
+       "exif-orientation-6": "Rothlaithe trí 90° tuathalach",
+       "exif-orientation-7": "Rothlaithe trí 90° CW agus iompaithe go hingearach",
+       "exif-orientation-8": "Rothlaithe trí 90° deiseal",
+       "exif-planarconfiguration-1": "Formáid shmutánach",
+       "exif-planarconfiguration-2": "Formáid phlánach",
+       "exif-componentsconfiguration-0": "níl a leithéid ann",
+       "exif-exposureprogram-0": "Gan sainiú",
+       "exif-exposureprogram-1": "Leis na lámha",
+       "exif-exposureprogram-2": "Gnáthchlár",
+       "exif-exposureprogram-3": "Tosaíocht nochta",
+       "exif-exposureprogram-4": "Tosaíocht cró",
+       "exif-exposureprogram-5": "Clár cúise (laofa do doimhneacht réimse)",
+       "exif-exposureprogram-6": "Clár gnímh (laofa do cróluas tapaidh)",
+       "exif-exposureprogram-7": "Modh portráide (do grianghraif i ngar don ábhar,\nle cúlra as fócas)",
+       "exif-exposureprogram-8": "Modh tírdhreacha (do grianghraif tírdhreacha le\ncúlra i bhfócas)",
+       "exif-subjectdistance-value": "$1 méadair",
+       "exif-meteringmode-0": "Anaithnid",
+       "exif-meteringmode-1": "Meán",
+       "exif-meteringmode-2": "MeánUalaitheDonLár",
+       "exif-meteringmode-3": "Spota",
+       "exif-meteringmode-4": "Ilspotach",
+       "exif-meteringmode-5": "Patrún",
+       "exif-meteringmode-6": "Páirteach",
+       "exif-meteringmode-255": "Eile",
+       "exif-lightsource-0": "Anaithnid",
+       "exif-lightsource-1": "Solas lae",
+       "exif-lightsource-2": "Fluaraiseach",
+       "exif-lightsource-3": "Tungstan (solas gealbhruthach)",
+       "exif-lightsource-4": "Splanc",
+       "exif-lightsource-9": "Aimsir breá",
+       "exif-lightsource-10": "Aimsir scamallach",
+       "exif-lightsource-11": "Scáth",
+       "exif-lightsource-12": "Solas lae fluaraiseach (D 5700 â€“ 7100K)",
+       "exif-lightsource-13": "Solas bán lae fluaraiseach (N 4600 â€“ 5400K)",
+       "exif-lightsource-14": "Solas fuar bán fluaraiseach (W 3900 â€“ 4500K)",
+       "exif-lightsource-15": "Solas bán fluaraiseach (WW 3200 â€“ 3700K)",
+       "exif-lightsource-17": "Gnáthsholas A",
+       "exif-lightsource-18": "Gnáthsholas B",
+       "exif-lightsource-19": "Gnáthsholas C",
+       "exif-lightsource-24": "Tungstan stiúideó ISO",
+       "exif-lightsource-255": "Foinse eile solais",
+       "exif-focalplaneresolutionunit-2": "orlaigh",
+       "exif-sensingmethod-1": "Gan sainiú",
+       "exif-sensingmethod-2": "Braiteoir aonshliseach ceantair datha",
+       "exif-sensingmethod-3": "Braiteoir dháshliseach ceantair datha",
+       "exif-sensingmethod-4": "Braiteoir tríshliseach ceantair datha",
+       "exif-sensingmethod-5": "Braiteoir dathsheicheamhach ceantair",
+       "exif-sensingmethod-7": "Braiteoir trílíneach",
+       "exif-sensingmethod-8": "Braiteoir dathsheicheamhach línte",
+       "exif-scenetype-1": "Grianghraf a rinneadh go díreach",
+       "exif-customrendered-0": "Gnáthphróiseas",
+       "exif-customrendered-1": "Próiseas saincheaptha",
+       "exif-exposuremode-0": "Nochtadh uathoibríoch",
+       "exif-exposuremode-1": "Nochtadh láimhe",
+       "exif-exposuremode-2": "Brac uathoibríoch",
+       "exif-whitebalance-0": "Bánchothromaíocht uathoibríoch",
+       "exif-whitebalance-1": "Bánchothromaíocht láimhe",
+       "exif-scenecapturetype-0": "Gnáth",
+       "exif-scenecapturetype-1": "Tírdhreach",
+       "exif-scenecapturetype-2": "Portráid",
+       "exif-scenecapturetype-3": "Radharc oíche",
+       "exif-gaincontrol-0": "Dada",
+       "exif-gaincontrol-1": "Íosneartúchán suas",
+       "exif-gaincontrol-2": "Uasneartúchán suas",
+       "exif-gaincontrol-3": "Íosneartúchán síos",
+       "exif-gaincontrol-4": "Uasneartúchán síos",
+       "exif-contrast-0": "Gnáth",
+       "exif-contrast-1": "Bog",
+       "exif-contrast-2": "Crua",
+       "exif-saturation-0": "Gnáth",
+       "exif-saturation-1": "Sáithiúchán íseal",
+       "exif-saturation-2": "Ard-sáithiúchán",
+       "exif-sharpness-0": "Gnáth",
+       "exif-sharpness-1": "Bog",
+       "exif-sharpness-2": "Crua",
+       "exif-subjectdistancerange-0": "Anaithnid",
+       "exif-subjectdistancerange-1": "Macra",
+       "exif-subjectdistancerange-2": "Radharc teann",
+       "exif-subjectdistancerange-3": "Cianradharc",
+       "exif-gpslatitude-n": "Domhan-leithead thuaidh",
+       "exif-gpslatitude-s": "Domhan-leithead theas",
+       "exif-gpslongitude-e": "Domhanfhad Thoir",
+       "exif-gpslongitude-w": "Domhanfhad Thiar",
+       "exif-gpsstatus-a": "Tomhas ar siúl",
+       "exif-gpsstatus-v": "Tomhas dodhéanta",
+       "exif-gpsmeasuremode-2": "Tomhas déthoiseach",
+       "exif-gpsmeasuremode-3": "Tomhas tríthoiseach",
+       "exif-gpsspeed-k": "Ciliméadair san uair",
+       "exif-gpsspeed-m": "Mílte san uair",
+       "exif-gpsspeed-n": "Muirmhílte",
+       "exif-gpsdirection-t": "Fíorthreo",
+       "exif-gpsdirection-m": "Treo maighnéadach",
+       "exif-dc-publisher": "Foilsitheoir",
+       "exif-dc-type": "Cineál an mheáin",
+       "exif-iimcategory-hum": "Suim daonna"
+}
diff --git a/languages/i18n/exif/gan-hans.json b/languages/i18n/exif/gan-hans.json
new file mode 100644 (file)
index 0000000..67a1082
--- /dev/null
@@ -0,0 +1,214 @@
+{
+       "@metadata": [],
+       "exif-imagewidth": "阔",
+       "exif-imagelength": "高",
+       "exif-bitspersample": "每像素byte数",
+       "exif-compression": "压缩方法",
+       "exif-photometricinterpretation": "像素合成",
+       "exif-orientation": "摆放方向",
+       "exif-samplesperpixel": "像素数",
+       "exif-planarconfiguration": "数据排列",
+       "exif-ycbcrsubsampling": "黄色对洋红二次抽样比率",
+       "exif-ycbcrpositioning": "黄色同洋红配置",
+       "exif-xresolution": "横分辨率",
+       "exif-yresolution": "直分辨率",
+       "exif-stripoffsets": "图像资料位置",
+       "exif-rowsperstrip": "每带行数",
+       "exif-stripbytecounts": "每压缩带byte数",
+       "exif-jpeginterchangeformat": "JPEG SOI𠮶偏移量",
+       "exif-jpeginterchangeformatlength": "JPEG𠮶byte数",
+       "exif-whitepoint": "白点色度",
+       "exif-primarychromaticities": "主要𠮶色度",
+       "exif-ycbcrcoefficients": "颜色空间转换矩阵系数",
+       "exif-referenceblackwhite": "黑白参照值",
+       "exif-datetime": "档案改动日期同时间",
+       "exif-imagedescription": "图像标题",
+       "exif-make": "相机厂商",
+       "exif-model": "相机型号",
+       "exif-software": "用𠮶软件",
+       "exif-artist": "作者",
+       "exif-copyright": "版权人",
+       "exif-exifversion": "Exif版本",
+       "exif-flashpixversion": "支持𠮶Flashpix版本",
+       "exif-colorspace": "颜色空间",
+       "exif-componentsconfiguration": "每部分𠮶意思",
+       "exif-compressedbitsperpixel": "图像压缩模式",
+       "exif-pixelxdimension": "有效图像𠮶阔",
+       "exif-pixelydimension": "有效图像𠮶高",
+       "exif-usercomment": "用户摘要",
+       "exif-relatedsoundfile": "相关𠮶声气资料",
+       "exif-datetimeoriginal": "资料创作时间",
+       "exif-datetimedigitized": "数码化𠮶时间",
+       "exif-subsectime": "日期时间秒",
+       "exif-subsectimeoriginal": "原始日期时间秒",
+       "exif-subsectimedigitized": "数码化日期时间秒",
+       "exif-exposuretime": "曝光长度",
+       "exif-exposuretime-format": "$1 秒 ($2)",
+       "exif-fnumber": "光圈(F值)",
+       "exif-exposureprogram": "曝光模式",
+       "exif-spectralsensitivity": "感光度",
+       "exif-isospeedratings": "ISO速率",
+       "exif-shutterspeedvalue": "快门速度",
+       "exif-aperturevalue": "光圈",
+       "exif-brightnessvalue": "亮度",
+       "exif-exposurebiasvalue": "曝光补偿",
+       "exif-maxaperturevalue": "最大陆地光圈",
+       "exif-subjectdistance": "物距",
+       "exif-meteringmode": "测量模式",
+       "exif-lightsource": "光源",
+       "exif-flash": "闪光灯",
+       "exif-focallength": "焦距",
+       "exif-subjectarea": "主体区域",
+       "exif-flashenergy": "闪光灯强度",
+       "exif-focalplanexresolution": "焦平面X轴𠮶分辨率",
+       "exif-focalplaneyresolution": "焦平面Y轴𠮶分辨率",
+       "exif-focalplaneresolutionunit": "焦平面𠮶分辨率单位",
+       "exif-subjectlocation": "主体位置",
+       "exif-exposureindex": "曝光指数",
+       "exif-sensingmethod": "感光模式",
+       "exif-filesource": "档案来源",
+       "exif-scenetype": "场景类型",
+       "exif-customrendered": "自定义图像处理",
+       "exif-exposuremode": "曝光模式",
+       "exif-whitebalance": "白平衡",
+       "exif-digitalzoomratio": "数码放大比例",
+       "exif-focallengthin35mmfilm": "35毫米胶片焦距",
+       "exif-scenecapturetype": "场景拍摄类型",
+       "exif-gaincontrol": "场景控制",
+       "exif-contrast": "对比度",
+       "exif-saturation": "饱和度",
+       "exif-sharpness": "清晰度",
+       "exif-devicesettingdescription": "设备设定描述",
+       "exif-subjectdistancerange": "主体距离范围",
+       "exif-imageuniqueid": "图像独有ID",
+       "exif-gpsversionid": "GPS定位(tag)版本",
+       "exif-gpslatituderef": "南北纬",
+       "exif-gpslatitude": "纬度",
+       "exif-gpslongituderef": "东西经",
+       "exif-gpslongitude": "经度",
+       "exif-gpsaltituderef": "海拔参照值",
+       "exif-gpsaltitude": "海拔",
+       "exif-gpstimestamp": "GPS时间(原子钟)",
+       "exif-gpssatellites": "测量用𠮶卫星",
+       "exif-gpsstatus": "接收器状态",
+       "exif-gpsmeasuremode": "测量模式",
+       "exif-gpsdop": "测量精度",
+       "exif-gpsspeedref": "速度单位",
+       "exif-gpsspeed": "GPS接收器速度",
+       "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": "GPS区功能变量名",
+       "exif-gpsdatestamp": "GPS日期",
+       "exif-gpsdifferential": "GPS差动修正",
+       "exif-compression-1": "冇压缩",
+       "exif-unknowndate": "未知𠮶日期",
+       "exif-orientation-1": "标准",
+       "exif-orientation-2": "左右斢转",
+       "exif-orientation-3": "转动180°",
+       "exif-orientation-4": "上下翻转",
+       "exif-orientation-5": "逆时针转90°接到上下翻转",
+       "exif-orientation-6": "顺时针转90°",
+       "exif-orientation-7": "顺时针转90°接到上下翻转",
+       "exif-orientation-8": "逆时针转90°",
+       "exif-planarconfiguration-1": "chunky格式",
+       "exif-planarconfiguration-2": "planar格式",
+       "exif-componentsconfiguration-0": "伓存在",
+       "exif-exposureprogram-0": "冇定义",
+       "exif-exposureprogram-1": "手动",
+       "exif-exposureprogram-2": "标准程式",
+       "exif-exposureprogram-3": "光圈优先模式",
+       "exif-exposureprogram-4": "快门优先模式",
+       "exif-exposureprogram-5": "艺术程式(着重景深)",
+       "exif-exposureprogram-6": "运动程式(着重快门速度)",
+       "exif-exposureprogram-7": "人像模式(背景朦胧)",
+       "exif-exposureprogram-8": "风景模式(聚焦背景)",
+       "exif-subjectdistance-value": "$1米",
+       "exif-meteringmode-0": "未知",
+       "exif-meteringmode-1": "平均水平",
+       "exif-meteringmode-2": "中心加权平均测量",
+       "exif-meteringmode-3": "单点测",
+       "exif-meteringmode-4": "多点测",
+       "exif-meteringmode-5": "模式测量",
+       "exif-meteringmode-6": "局部测量",
+       "exif-meteringmode-255": "别𠮶",
+       "exif-lightsource-0": "未知",
+       "exif-lightsource-1": "日光灯",
+       "exif-lightsource-2": "萤光灯",
+       "exif-lightsource-3": "白炽灯",
+       "exif-lightsource-4": "闪光灯",
+       "exif-lightsource-9": "天晴",
+       "exif-lightsource-10": "多云",
+       "exif-lightsource-11": "深色调阴影",
+       "exif-lightsource-12": "日光萤光灯(色温 D 5700 – 7100K)",
+       "exif-lightsource-13": "日温白色萤光灯(N 4600 – 5400K)",
+       "exif-lightsource-14": "冷白色萤光灯(W 3900 – 4500K)",
+       "exif-lightsource-15": "白色萤光 (WW 3200 – 3700K)",
+       "exif-lightsource-17": "标准光A",
+       "exif-lightsource-18": "标准光B",
+       "exif-lightsource-19": "标准光C",
+       "exif-lightsource-24": "ISO摄影棚钨灯",
+       "exif-lightsource-255": "别𠮶光源",
+       "exif-focalplaneresolutionunit-2": "英寸",
+       "exif-sensingmethod-1": "冇定义",
+       "exif-sensingmethod-2": "一只彩色区域感应器",
+       "exif-sensingmethod-3": "两只彩色区域感应器",
+       "exif-sensingmethod-4": "三只彩色区域感应器",
+       "exif-sensingmethod-5": "连续彩色区域感应器",
+       "exif-sensingmethod-7": "三线感应器",
+       "exif-sensingmethod-8": "连续彩色线性感应器",
+       "exif-scenetype-1": "直接照像图片",
+       "exif-customrendered-0": "标准程式",
+       "exif-customrendered-1": "自定义程式",
+       "exif-exposuremode-0": "自动曝光",
+       "exif-exposuremode-1": "手动曝光",
+       "exif-exposuremode-2": "自动曝光感知调节",
+       "exif-whitebalance-0": "自动白平衡",
+       "exif-whitebalance-1": "手动白平衡",
+       "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-saturation-0": "标准",
+       "exif-saturation-1": "低饱和度",
+       "exif-saturation-2": "高饱和度",
+       "exif-sharpness-0": "标准",
+       "exif-sharpness-1": "低",
+       "exif-sharpness-2": "高",
+       "exif-subjectdistancerange-0": "未知",
+       "exif-subjectdistancerange-1": "宏观",
+       "exif-subjectdistancerange-2": "近景",
+       "exif-subjectdistancerange-3": "远景",
+       "exif-gpslatitude-n": "北纬",
+       "exif-gpslatitude-s": "南纬",
+       "exif-gpslongitude-e": "东经",
+       "exif-gpslongitude-w": "西经",
+       "exif-gpsstatus-a": "测量过程",
+       "exif-gpsstatus-v": "互动测量",
+       "exif-gpsmeasuremode-2": "二维测量",
+       "exif-gpsmeasuremode-3": "三维测量",
+       "exif-gpsspeed-k": "公里每小时",
+       "exif-gpsspeed-m": "英里每小时",
+       "exif-gpsspeed-n": "海浬每小时(节)",
+       "exif-gpsdirection-t": "真实方位",
+       "exif-gpsdirection-m": "地磁方位"
+}
diff --git a/languages/i18n/exif/gan-hant.json b/languages/i18n/exif/gan-hant.json
new file mode 100644 (file)
index 0000000..270f1ae
--- /dev/null
@@ -0,0 +1,219 @@
+{
+       "@metadata": {
+               "authors": [
+                       "LNDDYL",
+                       "Symane"
+               ]
+       },
+       "exif-imagewidth": "闊",
+       "exif-imagelength": "高",
+       "exif-bitspersample": "每像素byte數",
+       "exif-compression": "壓縮方法",
+       "exif-photometricinterpretation": "像素合成",
+       "exif-orientation": "擺放方向",
+       "exif-samplesperpixel": "像素數",
+       "exif-planarconfiguration": "數據排列",
+       "exif-ycbcrsubsampling": "黃色對洋紅二次抽樣比率",
+       "exif-ycbcrpositioning": "黃色同洋紅配置",
+       "exif-xresolution": "橫解析度",
+       "exif-yresolution": "直解析度",
+       "exif-stripoffsets": "圖像資料位置",
+       "exif-rowsperstrip": "每帶行數",
+       "exif-stripbytecounts": "每壓縮帶byte數",
+       "exif-jpeginterchangeformat": "JPEG SOI嗰偏移量",
+       "exif-jpeginterchangeformatlength": "JPEG嗰byte數",
+       "exif-whitepoint": "白點色度",
+       "exif-primarychromaticities": "主要嗰色度",
+       "exif-ycbcrcoefficients": "顏色空間轉換矩陣系數",
+       "exif-referenceblackwhite": "黑白參照值",
+       "exif-datetime": "檔案改動日期同時間",
+       "exif-imagedescription": "圖像標題",
+       "exif-make": "相機廠商",
+       "exif-model": "相機型號",
+       "exif-software": "用嗰軟件",
+       "exif-artist": "作者",
+       "exif-copyright": "版權人",
+       "exif-exifversion": "Exif版本",
+       "exif-flashpixversion": "支持嗰Flashpix版本",
+       "exif-colorspace": "顏色空間",
+       "exif-componentsconfiguration": "每部分嗰意思",
+       "exif-compressedbitsperpixel": "圖像壓縮模式",
+       "exif-pixelxdimension": "有效圖像嗰闊",
+       "exif-pixelydimension": "有效圖像嗰高",
+       "exif-usercomment": "用戶摘要",
+       "exif-relatedsoundfile": "相關嗰聲氣資料",
+       "exif-datetimeoriginal": "資料創作時間",
+       "exif-datetimedigitized": "數碼化嗰時間",
+       "exif-subsectime": "日期時間秒",
+       "exif-subsectimeoriginal": "原始日期時間秒",
+       "exif-subsectimedigitized": "數碼化日期時間秒",
+       "exif-exposuretime": "曝光長度",
+       "exif-exposuretime-format": "$1 秒 ($2)",
+       "exif-fnumber": "光圈(F值)",
+       "exif-exposureprogram": "曝光模式",
+       "exif-spectralsensitivity": "感光度",
+       "exif-isospeedratings": "ISO速率",
+       "exif-shutterspeedvalue": "快門速度",
+       "exif-aperturevalue": "光圈",
+       "exif-brightnessvalue": "亮度",
+       "exif-exposurebiasvalue": "曝光補償",
+       "exif-maxaperturevalue": "頂大嗰陸地光圈",
+       "exif-subjectdistance": "物距",
+       "exif-meteringmode": "測量模式",
+       "exif-lightsource": "光源",
+       "exif-flash": "閃光燈",
+       "exif-focallength": "焦距",
+       "exif-subjectarea": "主體區域",
+       "exif-flashenergy": "閃光燈強度",
+       "exif-focalplanexresolution": "焦平面X軸嗰解析度",
+       "exif-focalplaneyresolution": "焦平面Y軸嗰解析度",
+       "exif-focalplaneresolutionunit": "焦平面嗰解析度單位",
+       "exif-subjectlocation": "主體位置",
+       "exif-exposureindex": "曝光指數",
+       "exif-sensingmethod": "感光模式",
+       "exif-filesource": "檔案來源",
+       "exif-scenetype": "場景類型",
+       "exif-customrendered": "自定義圖像處理",
+       "exif-exposuremode": "曝光模式",
+       "exif-whitebalance": "白平衡",
+       "exif-digitalzoomratio": "數碼放大比例",
+       "exif-focallengthin35mmfilm": "35毫米膠片焦距",
+       "exif-scenecapturetype": "場景拍攝類型",
+       "exif-gaincontrol": "場景控制",
+       "exif-contrast": "對比度",
+       "exif-saturation": "飽和度",
+       "exif-sharpness": "清晰度",
+       "exif-devicesettingdescription": "裝置設定描述",
+       "exif-subjectdistancerange": "主體距離範圍",
+       "exif-imageuniqueid": "圖像獨有ID",
+       "exif-gpsversionid": "GPS定位(tag)版本",
+       "exif-gpslatituderef": "南北緯",
+       "exif-gpslatitude": "緯度",
+       "exif-gpslongituderef": "東西經",
+       "exif-gpslongitude": "經度",
+       "exif-gpsaltituderef": "海拔參照值",
+       "exif-gpsaltitude": "海拔",
+       "exif-gpstimestamp": "GPS時間(原子鐘)",
+       "exif-gpssatellites": "測量用嗰衛星",
+       "exif-gpsstatus": "接收器狀態",
+       "exif-gpsmeasuremode": "測量模式",
+       "exif-gpsdop": "測量精度",
+       "exif-gpsspeedref": "速度單位",
+       "exif-gpsspeed": "GPS接收器速度",
+       "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": "GPS區功能變數名",
+       "exif-gpsdatestamp": "GPS日期",
+       "exif-gpsdifferential": "GPS差動修正",
+       "exif-compression-1": "冇壓縮",
+       "exif-unknowndate": "未知嗰日期",
+       "exif-orientation-1": "標準",
+       "exif-orientation-2": "左右斢轉",
+       "exif-orientation-3": "轉動180°",
+       "exif-orientation-4": "上下翻轉",
+       "exif-orientation-5": "逆時針轉90°接到上下翻轉",
+       "exif-orientation-6": "順時針轉90°",
+       "exif-orientation-7": "順時針轉90°接到上下翻轉",
+       "exif-orientation-8": "逆時針轉90°",
+       "exif-planarconfiguration-1": "chunky格式",
+       "exif-planarconfiguration-2": "planar格式",
+       "exif-componentsconfiguration-0": "伓存在",
+       "exif-exposureprogram-0": "冇定義",
+       "exif-exposureprogram-1": "手動",
+       "exif-exposureprogram-2": "標準程式",
+       "exif-exposureprogram-3": "光圈優先模式",
+       "exif-exposureprogram-4": "快門優先模式",
+       "exif-exposureprogram-5": "藝術程式(著重景深)",
+       "exif-exposureprogram-6": "運動程式(著重快門速度)",
+       "exif-exposureprogram-7": "人像模式(背景朦朧)",
+       "exif-exposureprogram-8": "風景模式(聚焦背景)",
+       "exif-subjectdistance-value": "$1米",
+       "exif-meteringmode-0": "未知",
+       "exif-meteringmode-1": "平均水準",
+       "exif-meteringmode-2": "中心加權平均測量",
+       "exif-meteringmode-3": "單點測",
+       "exif-meteringmode-4": "多點測",
+       "exif-meteringmode-5": "模式測量",
+       "exif-meteringmode-6": "局部測量",
+       "exif-meteringmode-255": "別嗰",
+       "exif-lightsource-0": "未知",
+       "exif-lightsource-1": "日光燈",
+       "exif-lightsource-2": "螢光燈",
+       "exif-lightsource-3": "白熾燈",
+       "exif-lightsource-4": "閃光燈",
+       "exif-lightsource-9": "天晴",
+       "exif-lightsource-10": "多雲",
+       "exif-lightsource-11": "深色調陰影",
+       "exif-lightsource-12": "日光螢光燈(色溫 D 5700 – 7100K)",
+       "exif-lightsource-13": "日溫白色螢光燈(N 4600 – 5400K)",
+       "exif-lightsource-14": "冷白色螢光燈(W 3900 – 4500K)",
+       "exif-lightsource-15": "白色螢光 (WW 3200 – 3700K)",
+       "exif-lightsource-17": "標準光A",
+       "exif-lightsource-18": "標準光B",
+       "exif-lightsource-19": "標準光C",
+       "exif-lightsource-24": "ISO攝影棚鎢燈",
+       "exif-lightsource-255": "別嗰光源",
+       "exif-focalplaneresolutionunit-2": "英寸",
+       "exif-sensingmethod-1": "冇定義",
+       "exif-sensingmethod-2": "一隻彩色區域感應器",
+       "exif-sensingmethod-3": "兩隻彩色區域感應器",
+       "exif-sensingmethod-4": "三隻彩色區域感應器",
+       "exif-sensingmethod-5": "連續彩色區域感應器",
+       "exif-sensingmethod-7": "三線感應器",
+       "exif-sensingmethod-8": "連續彩色綫性感應器",
+       "exif-scenetype-1": "直接照像圖片",
+       "exif-customrendered-0": "標準程式",
+       "exif-customrendered-1": "自定義程式",
+       "exif-exposuremode-0": "自動曝光",
+       "exif-exposuremode-1": "手動曝光",
+       "exif-exposuremode-2": "自動曝光感知調節",
+       "exif-whitebalance-0": "自動白平衡",
+       "exif-whitebalance-1": "手動白平衡",
+       "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-saturation-0": "標準",
+       "exif-saturation-1": "低飽和度",
+       "exif-saturation-2": "高飽和度",
+       "exif-sharpness-0": "標準",
+       "exif-sharpness-1": "低",
+       "exif-sharpness-2": "高",
+       "exif-subjectdistancerange-0": "未知",
+       "exif-subjectdistancerange-1": "宏觀",
+       "exif-subjectdistancerange-2": "近景",
+       "exif-subjectdistancerange-3": "遠景",
+       "exif-gpslatitude-n": "北緯",
+       "exif-gpslatitude-s": "南緯",
+       "exif-gpslongitude-e": "東經",
+       "exif-gpslongitude-w": "西經",
+       "exif-gpsstatus-a": "測量過程",
+       "exif-gpsstatus-v": "互動測量",
+       "exif-gpsmeasuremode-2": "二維測量",
+       "exif-gpsmeasuremode-3": "三維測量",
+       "exif-gpsspeed-k": "公里每小時",
+       "exif-gpsspeed-m": "英里每小時",
+       "exif-gpsspeed-n": "海浬每小時(節)",
+       "exif-gpsdirection-t": "真實方位",
+       "exif-gpsdirection-m": "地磁方位"
+}
diff --git a/languages/i18n/exif/gd.json b/languages/i18n/exif/gd.json
new file mode 100644 (file)
index 0000000..ee9de23
--- /dev/null
@@ -0,0 +1,361 @@
+{
+       "@metadata": {
+               "authors": [
+                       "GunChleoc"
+               ]
+       },
+       "exif-imagewidth": "Leud",
+       "exif-imagelength": "Àirde",
+       "exif-bitspersample": "Biod sa cho-phàirt",
+       "exif-compression": "Sgeama an dùmhlachaidh",
+       "exif-photometricinterpretation": "Co-dhèanamh nam piogsail",
+       "exif-orientation": "Comhair",
+       "exif-samplesperpixel": "Àireamh nan co-phàirtean",
+       "exif-planarconfiguration": "Rian an dàta",
+       "exif-xresolution": "Dùmhlachd-bhreacaidh chòmhnard",
+       "exif-yresolution": "Dùmhlachd-bhreacaidh inghearach",
+       "exif-stripoffsets": "Ionad dàta an deilbh",
+       "exif-jpeginterchangeformat": "Frith-àireamh gu JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Baidhtichean de dhàta JPEG",
+       "exif-ycbcrcoefficients": "Co-èifeachdan a' mheatraigs atharrachaidh airson an spàs datha",
+       "exif-referenceblackwhite": "Càraid de luachan iomraidh dubh is geal",
+       "exif-datetime": "Ceann-là 's àm aig atharrachadh an fhaidhle",
+       "exif-imagedescription": "Tiotal an deilbh",
+       "exif-make": "Dèanadair a' chamara",
+       "exif-model": "Modail a' chamara",
+       "exif-software": "Am bathar-bog a chleachdadh",
+       "exif-artist": "Ùghdar",
+       "exif-copyright": "Seilbheadair na còrach-lethbhreac",
+       "exif-exifversion": "Tionndadh de Exif",
+       "exif-flashpixversion": "An tionndadh de Flashpix ris an cuirear taic",
+       "exif-colorspace": "Spàs datha",
+       "exif-componentsconfiguration": "Ciall aig gach co-phàirt",
+       "exif-compressedbitsperpixel": "Modh dùmhlachd-bhreacaidh an deilbh",
+       "exif-pixelxdimension": "Leud an deilbh",
+       "exif-pixelydimension": "Àirde an deilbh",
+       "exif-usercomment": "Beachdan nan cleachdaichean",
+       "exif-relatedsoundfile": "Faidhle fuaime co-cheangailte ris",
+       "exif-datetimeoriginal": "Ceann-là 's àm a chaidh an dàta a chruthachadh",
+       "exif-datetimedigitized": "Ceann-là 's àm a chaidh cruth digiteach a chur air an dàta",
+       "exif-subsectime": "Fo-dhiogan cinn-là 's ama",
+       "exif-subsectimeoriginal": "Fo-dhiogan cinn-là 's ama thùsail",
+       "exif-subsectimedigitized": "Fo-dhiogan cinn-là 's ama an dreach digitich",
+       "exif-exposuretime": "Ùine deisearais",
+       "exif-exposuretime-format": "$1 diog ($2)",
+       "exif-fnumber": "Àireamh F",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Prògram deisearais",
+       "exif-spectralsensitivity": "Mothalachd speictreach",
+       "exif-isospeedratings": "Rangachadh astar ISO",
+       "exif-shutterspeedvalue": "Luaths siutair APEX",
+       "exif-aperturevalue": "Fosgladh APEX",
+       "exif-brightnessvalue": "Soilleireachd APEX",
+       "exif-exposurebiasvalue": "Claonadh deisearais APEX",
+       "exif-subjectdistance": "Astar a' chuspair",
+       "exif-meteringmode": "Modh meidheachaidh",
+       "exif-lightsource": "Tùs an t-solais",
+       "exif-flash": "Solas-boillsgidh",
+       "exif-focallength": "Faid fòcas an lionsa",
+       "exif-focallength-format": "$1 mm",
+       "exif-subjectarea": "Raon a' chuspair",
+       "exif-flashenergy": "Lùths an t-solais boillsgidh",
+       "exif-focalplanexresolution": "Dùmhlachd-bhreacaidh X aig plèana an fhòcais",
+       "exif-focalplaneyresolution": "Dùmhlachd-bhreacaidh Y aig plèana an fhòcais",
+       "exif-focalplaneresolutionunit": "Aonad dùmhlachd-breacaidh aig plèana an fhòcais",
+       "exif-subjectlocation": "Ionad a' chuspair",
+       "exif-exposureindex": "Inneacs deisearais",
+       "exif-sensingmethod": "Dòigh a' mhothaicheir",
+       "exif-filesource": "Tùs an fhaidhle",
+       "exif-scenetype": "Seòrsa an t-seallaidh",
+       "exif-customrendered": "Pròiseasadh gnàthaichte an deilbh",
+       "exif-exposuremode": "Modh deisearais",
+       "exif-whitebalance": "Meidh na gile",
+       "exif-digitalzoomratio": "Co-mheas an t-sùma dhigitich",
+       "exif-focallengthin35mmfilm": "Faid fòcas an am film 35 mm",
+       "exif-scenecapturetype": "Seòrsa glacaidh-sgrìn",
+       "exif-gaincontrol": "Smachd air an t-seallaidh",
+       "exif-contrast": "Iomsgaradh",
+       "exif-saturation": "Sàthachd",
+       "exif-sharpness": "Geurad",
+       "exif-devicesettingdescription": "Tuairisgeul aig roghainnean an uidheim",
+       "exif-subjectdistancerange": "Rainse astar a' chuspair",
+       "exif-imageuniqueid": "ID fa leth an deilbh",
+       "exif-gpsversionid": "Tionndadh dhen taga GPS",
+       "exif-gpslatituderef": "Domhan-leud tuath no deas",
+       "exif-gpslatitude": "Domhan-leud",
+       "exif-gpslongituderef": "Domhan-fhad ear no siar",
+       "exif-gpslongitude": "Domhan-fhad",
+       "exif-gpsaltituderef": "Iomradh na h-àirde",
+       "exif-gpsaltitude": "Àirde",
+       "exif-gpstimestamp": "Àm GPS (uaireadair atomach)",
+       "exif-gpssatellites": "Saidealan a chaidh a chleachdadh airson an tomhais",
+       "exif-gpsstatus": "Staid a' ghlacadair",
+       "exif-gpsmeasuremode": "Modh an tomhais",
+       "exif-gpsdop": "Pongalachd an tomhais",
+       "exif-gpsspeedref": "Aonad an luaiths",
+       "exif-gpsspeed": "Luaths a' ghlacadair GPS",
+       "exif-gpstrackref": "Iomradh airson comhair a' ghluasaid",
+       "exif-gpstrack": "Comhair a' ghluasaid",
+       "exif-gpsimgdirectionref": "Iomradh airson comhair an deilbh",
+       "exif-gpsimgdirection": "Comhair an deilbh",
+       "exif-gpsdestlatituderef": "Iomradh airson domhan-leud a' chinn-uidhe",
+       "exif-gpsdestlatitude": "Domhan-leud a' chinn-uidhe",
+       "exif-gpsdestlongituderef": "Iomradh airson domhan-fhad a' chinn-uidhe",
+       "exif-gpsdestlongitude": "Domhan-fhad a' chinn-uidhe",
+       "exif-gpsdestbearingref": "Iomradh airson comhair a' chinn-uidhe",
+       "exif-gpsdestbearing": "Comhair a' chinn-uidhe",
+       "exif-gpsdestdistanceref": "Iomradh airson astar on cheann-uidhe",
+       "exif-gpsdestdistance": "Astar on cheann-uidhe",
+       "exif-gpsprocessingmethod": "Ainm air modh pròiseasadh GPS",
+       "exif-gpsareainformation": "Ainm raon GPS",
+       "exif-gpsdatestamp": "Ceann-là GPS",
+       "exif-gpsdifferential": "Ceartachadh diofarail GPS",
+       "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-jpegfilecomment": "Beachd faidhle JPEG",
+       "exif-keywords": "Faclan-luirg",
+       "exif-worldregioncreated": "An roinn-dùthcha san deach an dealbh a thogail",
+       "exif-countrycreated": "An dùthaich san deach an dealbh a thogail",
+       "exif-countrycodecreated": "Còd na dùthcha san deach an dealbh a thogail",
+       "exif-provinceorstatecreated": "An t-siorrachd no còigeamh san deach an dealbh a thogail",
+       "exif-citycreated": "Am baile san deach an dealbh a thogail",
+       "exif-sublocationcreated": "An t-ionad sa bhaile san deach an dealbh a thogail",
+       "exif-worldregiondest": "Tha an roinn-dùthcha 'ga sealltainn",
+       "exif-countrydest": "Tha an dùthaich 'ga sealltainn",
+       "exif-countrycodedest": "Tha còd na dùthcha air 'ga sealltainn",
+       "exif-provinceorstatedest": "Tha an t-siorrachd no còigeamh 'ga sealltainn",
+       "exif-citydest": "Tha am baile 'ga shealltainn",
+       "exif-sublocationdest": "Tha an t-ionad sa bhaile 'ga shealltainn",
+       "exif-objectname": "Tiotal goirid",
+       "exif-specialinstructions": "Stiùireadh sònraichte",
+       "exif-headline": "Ceann-sgrìobhadh",
+       "exif-credit": "Cliù/Solaraiche",
+       "exif-source": "Tùs",
+       "exif-editstatus": "Staid deasachaidh an deilbh",
+       "exif-urgency": "Èiginneachd",
+       "exif-fixtureidentifier": "Ainm nì shocraichte",
+       "exif-locationdest": "An t-ionad san dealbh",
+       "exif-locationdestcode": "Còs an ionaid san dealbh",
+       "exif-objectcycle": "Àm an latha iomchaidh airson a' mheadhain",
+       "exif-contact": "Fiosrachadh conaltraidh",
+       "exif-writer": "Sgrìobhadair",
+       "exif-languagecode": "Cànan",
+       "exif-iimversion": "Tionndadh de IIM",
+       "exif-iimcategory": "Roinn-seòrsa",
+       "exif-iimsupplementalcategory": "Roinnean-seòrsa foirlionach",
+       "exif-datetimeexpires": "Na cleachd às dèidh",
+       "exif-datetimereleased": "'Ga sgaoileadh o",
+       "exif-originaltransmissionref": "Còd ionaid tùsail an tar-chuir",
+       "exif-identifier": "Aithnichear",
+       "exif-lens": "An lionsa a chaidh a chleachdadh",
+       "exif-serialnumber": "Àireamh shreathach a' chamara",
+       "exif-cameraownername": "Seilbheadair a' chamara",
+       "exif-label": "Leubail",
+       "exif-datetimemetadata": "An ceann-là a chaidh am meata-dàta atharrachadh an turas mu dheireadh",
+       "exif-nickname": "Ainm neo-fhoirmeil an deilbh",
+       "exif-rating": "Rangachadh (a-mach à 5)",
+       "exif-rightscertificate": "Teisteanas rianachd chòraichean",
+       "exif-copyrighted": "Staid na còrach-lethbhreac",
+       "exif-copyrightowner": "Seilbheadair na còrach-lethbhreac",
+       "exif-usageterms": "Teirmichean a' chleachdaidh",
+       "exif-webstatement": "Aithris na còrach-lethbhreac air loidhne",
+       "exif-originaldocumentid": "ID fa leth na sgrìobhainn tùsail",
+       "exif-licenseurl": "URL airson ceadachas na còrach-lethbhreac",
+       "exif-morepermissionsurl": "Fiosrachadh ceadachais eile",
+       "exif-attributionurl": "Nuair a chleachdas sibh an obair seo, dèanaibh ceangal gu",
+       "exif-preferredattributionname": "Nuair a chleachdas sibh an obair seo, thoiribh cliù do",
+       "exif-pngfilecomment": "Beachd faidhle PNG",
+       "exif-disclaimer": "Aithris-àichidh",
+       "exif-contentwarning": "Rabhadh susbainte",
+       "exif-giffilecomment": "Beachd faidhle GIF",
+       "exif-intellectualgenre": "Seòrsa na susbainte",
+       "exif-subjectnewscode": "Còd a' chuspair",
+       "exif-scenecode": "Còd seallaidh IPTC",
+       "exif-event": "Tachartas san dealbh",
+       "exif-organisationinimage": "Buidheann san dealbh",
+       "exif-personinimage": "Neach sa dealbh",
+       "exif-originalimageheight": "Àirde an deilbh mus deach a bhearradh",
+       "exif-originalimagewidth": "Leud an deilbh mus deach a bhearradh",
+       "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "Gun dùmhlachadh",
+       "exif-compression-3": "Còdachadh facs CCITT Group 3",
+       "exif-compression-4": "Còdachadh facs CCITT Group 4",
+       "exif-compression-5": "LZW",
+       "exif-compression-6": "JPEG (sean)",
+       "exif-compression-7": "JPEG",
+       "exif-compression-8": "Deflate (Adobe)",
+       "exif-compression-32773": "PackBits (Macintosh RLE)",
+       "exif-compression-32946": "Deflate (PKZIP)",
+       "exif-compression-34712": "JPEG2000",
+       "exif-copyrighted-true": "Fo chòir-lethbhreac",
+       "exif-copyrighted-false": "Cha deach staid na còrach-lethbhreac a shuidheachadh",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-unknowndate": "Gun fhios air a' cheann-là",
+       "exif-orientation-1": "Àbhaisteach",
+       "exif-orientation-2": "Air a fhlipeadh air a' chòmhnard",
+       "exif-orientation-3": "Cuairtichte le 180°",
+       "exif-orientation-4": "Air a fhlipeadh gu h-inghearach",
+       "exif-orientation-5": "Cuairtichte le 90° gu tuathail 's air a fhlipeadh gu h-inghearach",
+       "exif-orientation-6": "Cuairtichte le 90° gu tuathail",
+       "exif-orientation-7": "Cuairtichte le 90° gu deiseil 's air a fhlipeadh gu h-inghearach",
+       "exif-orientation-8": "Cuairtichte le 90° gu deiseil",
+       "exif-xyresolution-i": "$1 dpi",
+       "exif-xyresolution-c": "$1 dpc",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "Gun chailbhreachadh",
+       "exif-componentsconfiguration-0": "chan eil e ann",
+       "exif-componentsconfiguration-1": "Y",
+       "exif-componentsconfiguration-2": "Cb",
+       "exif-componentsconfiguration-3": "Cr",
+       "exif-componentsconfiguration-4": "R",
+       "exif-componentsconfiguration-5": "G",
+       "exif-componentsconfiguration-6": "B",
+       "exif-exposureprogram-0": "Gun mhìneachadh",
+       "exif-exposureprogram-1": "A làimh",
+       "exif-exposureprogram-2": "Prògram àbhaisteach",
+       "exif-exposureprogram-3": "Prìomhachas fosglaidh",
+       "exif-exposureprogram-4": "Prìomhachas siutair",
+       "exif-exposureprogram-5": "Prògram cruthachail (le claonadh gu doimhne an raoin)",
+       "exif-exposureprogram-6": "Prògram gluasaid (le claonadh gu siutair luath)",
+       "exif-exposureprogram-7": "Modh portraid (airson dealbhan faisg gun fhòcas air a' chùlaibh)",
+       "exif-exposureprogram-8": "Modh crutha-tìre (airson dealbhan crutha-tìre le fòcas air a' chùlaibh)",
+       "exif-subjectdistance-value": "$1 {{PLURAL:$1|mheatair|mheatair|meatairean|meatair}}",
+       "exif-meteringmode-0": "Chan eil fhios",
+       "exif-meteringmode-1": "Cuibheasach",
+       "exif-meteringmode-2": "Cuibheas le cuideam sa bheadhan",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "Iomadh-spot",
+       "exif-meteringmode-5": "Pàtran",
+       "exif-meteringmode-6": "Leth-phàirteach",
+       "exif-meteringmode-255": "Eile",
+       "exif-lightsource-0": "Chan eil fhios",
+       "exif-lightsource-1": "Eile",
+       "exif-lightsource-2": "Fluaraiseach",
+       "exif-lightsource-3": "Tungstan (solas-dealain)",
+       "exif-lightsource-4": "Solas-boillsgidh",
+       "exif-lightsource-9": "Deagh shìde",
+       "exif-lightsource-10": "Sìde neulach",
+       "exif-lightsource-11": "Sgàil",
+       "exif-lightsource-12": "Fluaraiseach solas an latha (D 5700 – 7100K)",
+       "exif-lightsource-13": "Fluaraiseach geal an latha (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fluaraiseach geal fuair (W 3900 – 4500K)",
+       "exif-lightsource-15": "Fluaraiseach geal (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Solas stannardach A",
+       "exif-lightsource-18": "Solas stannardach B",
+       "exif-lightsource-19": "Solas stannardach C",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-22": "D75",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "Tungstan stiùideo ISO",
+       "exif-lightsource-255": "Tùs solais eile",
+       "exif-flash-fired-0": "Cha deach an solas-boillsgidh air",
+       "exif-flash-fired-1": "Chaidh an solas-boillsgidh air",
+       "exif-flash-return-0": "gun fhoincsean mothachaidh airson an t-solais-bhoillsgidh",
+       "exif-flash-return-2": "cha deach solas-boillsgidh a mhothachadh",
+       "exif-flash-return-3": "chaidh solas-boillsgidh a mhothachadh",
+       "exif-flash-mode-1": "solas-boillsgidh riatanach",
+       "exif-flash-mode-2": "bacadh riatanach air an t-solas-bhoillsgidh",
+       "exif-flash-mode-3": "modh fèin-obrachail",
+       "exif-flash-function-1": "Gun solas-boillsgidh",
+       "exif-flash-redeye-1": "modh lùghdachadh nan sùilean dearga",
+       "exif-focalplaneresolutionunit-2": "òirleach",
+       "exif-sensingmethod-1": "Gun mhìneachadh",
+       "exif-sensingmethod-2": "Mothaichear raon datha aon-sgeilbe",
+       "exif-sensingmethod-3": "Mothaichear raon datha dà-sgeilbe",
+       "exif-sensingmethod-4": "Mothaichear raon datha trì-sgeilbe",
+       "exif-sensingmethod-5": "Mothaichear raon datha sreathach",
+       "exif-sensingmethod-7": "Mothaichear trì-loidhneach",
+       "exif-sensingmethod-8": "Mothaichear datha sreathach loidhneach",
+       "exif-filesource-3": "Camara dhealbhan digiteach",
+       "exif-scenetype-1": "Dealbh a chaidh a thogail gu dìreach",
+       "exif-customrendered-0": "Pròiseas àbhaisteach",
+       "exif-customrendered-1": "Pròiseas gnàthaichte",
+       "exif-exposuremode-0": "Deisearas fèin-obrachail",
+       "exif-exposuremode-1": "Deisearas a làimh",
+       "exif-exposuremode-2": "Bracaid fèin-obrachail",
+       "exif-whitebalance-0": "Meidh na gile fèin-obrachail",
+       "exif-whitebalance-1": "Meidh na gile a làimh",
+       "exif-scenecapturetype-0": "Stannardach",
+       "exif-scenecapturetype-1": "Dreach-tìre",
+       "exif-scenecapturetype-2": "Portraid",
+       "exif-scenecapturetype-3": "Sealladh oidhche",
+       "exif-gaincontrol-0": "Chan eil gin",
+       "exif-gaincontrol-1": "Buannachd ìosal suas",
+       "exif-gaincontrol-2": "Buannachd àrd suas",
+       "exif-gaincontrol-3": "Buannachd ìosal sìos",
+       "exif-gaincontrol-4": "Buannachd àrd sìos",
+       "exif-contrast-0": "Àbhaisteach",
+       "exif-contrast-1": "Lag",
+       "exif-contrast-2": "Cruaidh",
+       "exif-saturation-0": "Àbhaisteach",
+       "exif-saturation-1": "Sàthachd ìosal",
+       "exif-saturation-2": "Sàthachd àrd",
+       "exif-sharpness-0": "Àbhaisteach",
+       "exif-sharpness-1": "Lag",
+       "exif-sharpness-2": "Cruaidh",
+       "exif-subjectdistancerange-0": "Chan eil fios",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Sealladh dlùth",
+       "exif-subjectdistancerange-3": "Sealladh aig astar",
+       "exif-gpslatitude-n": "Domhan-leud tuath",
+       "exif-gpslatitude-s": "Domhan-leud deas",
+       "exif-gpslongitude-e": "Domhan-fhad ear",
+       "exif-gpslongitude-w": "Domhan-fhad siar",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|mheatair|mheatair|meatairean|meatair}} os cionn àirde na mara",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|mheatair|mheatair|meatairean|meatair}} fo àirde na mara",
+       "exif-gpsstatus-a": "'Ga thomhas",
+       "exif-gpsstatus-v": "Comas eadar-obrachadh an tomhais",
+       "exif-gpsmeasuremode-2": "Tomhas air 2 dhimeinsean",
+       "exif-gpsmeasuremode-3": "Tomhas air 3 dimeinseanan",
+       "exif-gpsspeed-k": "Cilemeatair san uair",
+       "exif-gpsspeed-m": "Mìle gach uair",
+       "exif-gpsspeed-n": "Mìle-mara san uair",
+       "exif-gpsdestdistance-k": "Cilemeatair",
+       "exif-gpsdestdistance-m": "Mìle",
+       "exif-gpsdestdistance-n": "Mìle-mara",
+       "exif-gpsdop-excellent": "Sgoinneil ($1)",
+       "exif-gpsdop-good": "Math ($1)",
+       "exif-gpsdop-moderate": "Meadhanach ($1)",
+       "exif-gpsdop-fair": "Ceart gu leòr ($1)",
+       "exif-gpsdop-poor": "Dona ($1)",
+       "exif-objectcycle-a": "Sa madainn a-mhàin",
+       "exif-objectcycle-p": "Feasgar a-mhàin",
+       "exif-objectcycle-b": "An dà chuid sa mhadainn 's feasgar",
+       "exif-gpsdirection-t": "Fìor-chomhair",
+       "exif-gpsdirection-m": "Comhair mhagnaiteach",
+       "exif-ycbcrpositioning-1": "Meadhanaichte",
+       "exif-dc-contributor": "Deasaichean",
+       "exif-dc-coverage": "Sgòp na h-aite no ama aig a' mheadhan",
+       "exif-dc-date": "Ceann-là",
+       "exif-dc-publisher": "Foillsichear",
+       "exif-dc-relation": "Meadhanan co-cheangailte",
+       "exif-dc-rights": "Còirichean",
+       "exif-dc-source": "Meadhan tùsail",
+       "exif-dc-type": "Seòrsa a' mheadhain",
+       "exif-rating-rejected": "Air a dhiùltadh",
+       "exif-isospeedratings-overflow": "Nas motha na 65535",
+       "exif-maxaperturevalue-value": "$1 APEX (f/$2)",
+       "exif-iimcategory-ace": "Na h-ealain, cultar 's dibhearsan",
+       "exif-iimcategory-clj": "Eucoir 's lagha",
+       "exif-iimcategory-dis": "Dunaidh 's tubhaistean",
+       "exif-iimcategory-fin": "Eaconamaidh 's gnìomhachas",
+       "exif-iimcategory-edu": "Foghlam",
+       "exif-iimcategory-evn": "An àrainneachd",
+       "exif-iimcategory-hth": "Slàinte",
+       "exif-iimcategory-hum": "Daoine",
+       "exif-iimcategory-lab": "Obair",
+       "exif-iimcategory-lif": "Dòigh-bheatha 's cur-seachad",
+       "exif-iimcategory-pol": "Polataigs",
+       "exif-iimcategory-rel": "Creideamh",
+       "exif-iimcategory-sci": "Saidheans 's teicneolas",
+       "exif-iimcategory-soi": "Cuspairean sòisealta",
+       "exif-iimcategory-spo": "Spòrs",
+       "exif-iimcategory-war": "Cogadh, còmhstri 's aramach",
+       "exif-iimcategory-wea": "Aimsir",
+       "exif-urgency-normal": "Àbhaisteach ($1)",
+       "exif-urgency-low": "Ìosal ($1)",
+       "exif-urgency-high": "Àrd ($1)",
+       "exif-urgency-other": "Prìomhachas gnàthaiche ($1)"
+}
diff --git a/languages/i18n/exif/gl.json b/languages/i18n/exif/gl.json
new file mode 100644 (file)
index 0000000..eb00793
--- /dev/null
@@ -0,0 +1,369 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Alma",
+                       "Banjo",
+                       "Elisardojm",
+                       "Prevert",
+                       "Toliño",
+                       "Xosé"
+               ]
+       },
+       "exif-imagewidth": "Ancho",
+       "exif-imagelength": "Alto",
+       "exif-bitspersample": "Bits por compoñente",
+       "exif-compression": "Esquema de compresión",
+       "exif-photometricinterpretation": "Composición de píxeles",
+       "exif-orientation": "Orientación",
+       "exif-samplesperpixel": "Número de compoñentes",
+       "exif-planarconfiguration": "Disposición dos datos",
+       "exif-ycbcrsubsampling": "Razón de submostraxe de Y a C",
+       "exif-ycbcrpositioning": "Posicionamentos Y e C",
+       "exif-xresolution": "Resolución horizontal",
+       "exif-yresolution": "Resolución vertical",
+       "exif-stripoffsets": "Localización dos datos da imaxe",
+       "exif-rowsperstrip": "Número de filas por tira",
+       "exif-stripbytecounts": "Bytes por tira comprimida",
+       "exif-jpeginterchangeformat": "Desprazamento do SOI do JPEG",
+       "exif-jpeginterchangeformatlength": "Bytes de datos JPEG",
+       "exif-whitepoint": "Cromacidade do punto branco",
+       "exif-primarychromaticities": "Cromacidades primarias",
+       "exif-ycbcrcoefficients": "Coeficientes da matriz de transformación do espazo de cores",
+       "exif-referenceblackwhite": "Par de valores de referencia branco e negro",
+       "exif-datetime": "Data e hora de modificación do ficheiro",
+       "exif-imagedescription": "Título da imaxe",
+       "exif-make": "Fabricante da cámara",
+       "exif-model": "Modelo da cámara",
+       "exif-software": "Software utilizado",
+       "exif-artist": "Autor",
+       "exif-copyright": "Titular dos dereitos de autor",
+       "exif-exifversion": "Versión Exif",
+       "exif-flashpixversion": "Versión de Flashpix soportada",
+       "exif-colorspace": "Espazo de cor",
+       "exif-componentsconfiguration": "Significado de cada compoñente",
+       "exif-compressedbitsperpixel": "Modo de compresión da imaxe",
+       "exif-pixelxdimension": "Ancho da imaxe",
+       "exif-pixelydimension": "Altura da imaxe",
+       "exif-usercomment": "Comentarios do usuario",
+       "exif-relatedsoundfile": "Ficheiro de son relacionado",
+       "exif-datetimeoriginal": "Data e hora de xeración do ficheiro",
+       "exif-datetimedigitized": "Data e hora de dixitalización",
+       "exif-subsectime": "Subsegundo da data e hora",
+       "exif-subsectimeoriginal": "Subsegundo da data e hora orixinais",
+       "exif-subsectimedigitized": "Subsegundo da data e hora de dixitalización",
+       "exif-exposuretime": "Tempo de exposición",
+       "exif-exposuretime-format": "$1 segundos ($2)",
+       "exif-fnumber": "Número f",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Programa de exposición",
+       "exif-spectralsensitivity": "Sensibilidade espectral",
+       "exif-isospeedratings": "Relación de velocidade ISO",
+       "exif-shutterspeedvalue": "Velocidade de obturación APEX",
+       "exif-aperturevalue": "Apertura APEX",
+       "exif-brightnessvalue": "Brillo APEX",
+       "exif-exposurebiasvalue": "Corrección da exposición mediante APEX",
+       "exif-maxaperturevalue": "Máxima apertura do diafragma",
+       "exif-subjectdistance": "Distancia do suxeito",
+       "exif-meteringmode": "Modo de medida da exposición",
+       "exif-lightsource": "Fonte da luz",
+       "exif-flash": "Flash",
+       "exif-focallength": "Lonxitude focal",
+       "exif-focallength-format": "$1 mm",
+       "exif-subjectarea": "Área do suxeito",
+       "exif-flashenergy": "Enerxía do flash",
+       "exif-focalplanexresolution": "Resolución X do plano focal",
+       "exif-focalplaneyresolution": "Resolución Y do plano focal",
+       "exif-focalplaneresolutionunit": "Unidade de resolución do plano focal",
+       "exif-subjectlocation": "Posición do suxeito",
+       "exif-exposureindex": "Índice de exposición",
+       "exif-sensingmethod": "Tipo de sensor",
+       "exif-filesource": "Fonte do ficheiro",
+       "exif-scenetype": "Tipo de escena",
+       "exif-customrendered": "Procesamento de imaxe personalizado",
+       "exif-exposuremode": "Modo de exposición",
+       "exif-whitebalance": "Balance de brancos",
+       "exif-digitalzoomratio": "Valor do zoom dixital",
+       "exif-focallengthin35mmfilm": "Lonxitude focal na película de 35 mm",
+       "exif-scenecapturetype": "Tipo de captura da escena",
+       "exif-gaincontrol": "Control de escena",
+       "exif-contrast": "Contraste",
+       "exif-saturation": "Saturación",
+       "exif-sharpness": "Nitidez",
+       "exif-devicesettingdescription": "Descrición da configuración do dispositivo",
+       "exif-subjectdistancerange": "Rango de distancia ao suxeito",
+       "exif-imageuniqueid": "ID único da imaxe",
+       "exif-gpsversionid": "Versión da etiqueta GPS",
+       "exif-gpslatituderef": "Latitude norte ou sur",
+       "exif-gpslatitude": "Latitude",
+       "exif-gpslongituderef": "Lonxitude leste ou oeste",
+       "exif-gpslongitude": "Lonxitude",
+       "exif-gpsaltituderef": "Referencia da altitude",
+       "exif-gpsaltitude": "Altitude",
+       "exif-gpstimestamp": "Hora GPS (reloxo atómico)",
+       "exif-gpssatellites": "Satélites utilizados para a medida",
+       "exif-gpsstatus": "Estado do receptor",
+       "exif-gpsmeasuremode": "Modo de medida",
+       "exif-gpsdop": "Precisión da medida",
+       "exif-gpsspeedref": "Unidade de velocidade",
+       "exif-gpsspeed": "Velocidade do receptor GPS",
+       "exif-gpstrackref": "Referencia para a dirección do movemento",
+       "exif-gpstrack": "Dirección do movemento",
+       "exif-gpsimgdirectionref": "Referencia para a dirección da imaxe",
+       "exif-gpsimgdirection": "Dirección da imaxe",
+       "exif-gpsmapdatum": "Datos xeodésicos usados",
+       "exif-gpsdestlatituderef": "Referencia para a latitude do destino",
+       "exif-gpsdestlatitude": "Latitude do destino",
+       "exif-gpsdestlongituderef": "Referencia para a lonxitude do destino",
+       "exif-gpsdestlongitude": "Lonxitude do destino",
+       "exif-gpsdestbearingref": "Referencia para a orientación de destino",
+       "exif-gpsdestbearing": "Orientación de destino",
+       "exif-gpsdestdistanceref": "Referencia para a distancia ao destino",
+       "exif-gpsdestdistance": "Distancia ao destino",
+       "exif-gpsprocessingmethod": "Nome do método de procesamento GPS",
+       "exif-gpsareainformation": "Nome da área GPS",
+       "exif-gpsdatestamp": "Data do GPS",
+       "exif-gpsdifferential": "Corrección diferencial do GPS",
+       "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-jpegfilecomment": "Comentario do ficheiro JPEG",
+       "exif-keywords": "Palabras clave",
+       "exif-worldregioncreated": "Rexión do mundo onde se tirou a foto",
+       "exif-countrycreated": "País onde se tirou a foto",
+       "exif-countrycodecreated": "Código do país onde se tirou a foto",
+       "exif-provinceorstatecreated": "Provincia ou estado onde se tirou a foto",
+       "exif-citycreated": "Cidade onde se tirou a foto",
+       "exif-sublocationcreated": "Sublocalización da cidade onde se tirou a foto",
+       "exif-worldregiondest": "Rexión do mundo amosada",
+       "exif-countrydest": "País amosado",
+       "exif-countrycodedest": "Código do país amosado",
+       "exif-provinceorstatedest": "Provincia ou estado amosado",
+       "exif-citydest": "Cidade amosada",
+       "exif-sublocationdest": "Sublocalización da cidade amosada",
+       "exif-objectname": "Título curto",
+       "exif-specialinstructions": "Instrucións especiais",
+       "exif-headline": "Cabeceira",
+       "exif-credit": "Créditos/Provedor",
+       "exif-source": "Orixe",
+       "exif-editstatus": "Estado editorial da imaxe",
+       "exif-urgency": "Urxencia",
+       "exif-fixtureidentifier": "Nome do elemento habitual",
+       "exif-locationdest": "Localización representada",
+       "exif-locationdestcode": "Código da localización representada",
+       "exif-objectcycle": "Hora do día para o que está destinado",
+       "exif-contact": "Información de contacto",
+       "exif-writer": "Escritor",
+       "exif-languagecode": "Lingua",
+       "exif-iimversion": "Versión IIM",
+       "exif-iimcategory": "Categoría",
+       "exif-iimsupplementalcategory": "Categorías suplementarias",
+       "exif-datetimeexpires": "Non utilizar despois do",
+       "exif-datetimereleased": "Publicado o",
+       "exif-originaltransmissionref": "Código orixinal do lugar de transmisión",
+       "exif-identifier": "Identificador",
+       "exif-lens": "Lente usada",
+       "exif-serialnumber": "Número de serie da cámara",
+       "exif-cameraownername": "Propietario da cámara",
+       "exif-label": "Etiqueta",
+       "exif-datetimemetadata": "Data da última modificación dos metadatos",
+       "exif-nickname": "Nome informal da imaxe",
+       "exif-rating": "Valoración (sobre 5)",
+       "exif-rightscertificate": "Certificado de xestión dos dereitos",
+       "exif-copyrighted": "Estado dos dereitos de autor",
+       "exif-copyrightowner": "Propietario dos dereitos de autor",
+       "exif-usageterms": "Termos de uso",
+       "exif-webstatement": "Declaración de dereitos de autor en liña",
+       "exif-originaldocumentid": "Identificación única do documento orixinal",
+       "exif-licenseurl": "URL da licenza",
+       "exif-morepermissionsurl": "Información de licenza alternativa",
+       "exif-attributionurl": "Ao reusar esta obra, cómpre ligar cara a",
+       "exif-preferredattributionname": "Ao reusar esta obra, cómpre atribuír os dereitos a",
+       "exif-pngfilecomment": "Comentario do ficheiro PNG",
+       "exif-disclaimer": "Advertencia",
+       "exif-contentwarning": "Aviso sobre o contido",
+       "exif-giffilecomment": "Comentario do ficheiro GIF",
+       "exif-intellectualgenre": "Tipo de elemento",
+       "exif-subjectnewscode": "Código do tema",
+       "exif-scenecode": "Código de escena IPTC",
+       "exif-event": "Evento representado",
+       "exif-organisationinimage": "Organización representada",
+       "exif-personinimage": "Persoa retratada",
+       "exif-originalimageheight": "Altura da imaxe antes de ser cortada",
+       "exif-originalimagewidth": "Ancho da imaxe antes de ser cortada",
+       "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "Sen comprimir",
+       "exif-compression-2": "CCITT Grupo 3 Lonxitude de codificación unidimensional Huffman modificada",
+       "exif-compression-3": "CCITT Grupo 3 codificación de fax",
+       "exif-compression-4": "CCITT Grupo 4 codificación de fax",
+       "exif-compression-6": "JPEG (vello)",
+       "exif-compression-7": "JPEG",
+       "exif-compression-34712": "JPEG2000",
+       "exif-copyrighted-true": "Con dereitos de autoría",
+       "exif-copyrighted-false": "Dereitos de autoría non definidos",
+       "exif-photometricinterpretation-0": "Branco e negro (branco é 0)",
+       "exif-photometricinterpretation-1": "Negro e branco (negro é 0)",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-3": "Paleta",
+       "exif-photometricinterpretation-4": "Máscara de transparencia",
+       "exif-photometricinterpretation-5": "Separados (Probablemente CMYK)",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (codificación ICC)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (codificación ITU)",
+       "exif-photometricinterpretation-32803": "Matriz de filtro de cor",
+       "exif-unknowndate": "Data descoñecida",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Volteada horizontalmente",
+       "exif-orientation-3": "Rotada 180°",
+       "exif-orientation-4": "Volteada verticalmente",
+       "exif-orientation-5": "Rotada 90° en sentido antihorario e volteada verticalmente",
+       "exif-orientation-6": "Rotada 90° en sentido antihorario",
+       "exif-orientation-7": "Rotada 90° en sentido horario e volteada verticalmente",
+       "exif-orientation-8": "Rotada 90° en sentido horario",
+       "exif-planarconfiguration-1": "formato de paquete de píxeles",
+       "exif-planarconfiguration-2": "formato de planos",
+       "exif-xyresolution-i": "$1 ppp",
+       "exif-colorspace-65535": "Sen calibrar",
+       "exif-componentsconfiguration-0": "non existe",
+       "exif-exposureprogram-0": "Sen definir",
+       "exif-exposureprogram-1": "Manual",
+       "exif-exposureprogram-2": "Programa normal",
+       "exif-exposureprogram-3": "Prioridade da apertura",
+       "exif-exposureprogram-4": "Prioridade do obturador",
+       "exif-exposureprogram-5": "Programa creativo (preferencia pola profundidade de campo)",
+       "exif-exposureprogram-6": "Programa de acción (preferencia por unha velocidade do obturador máis rápida)",
+       "exif-exposureprogram-7": "Modo retrato (para primeiros planos co fondo desenfocado)",
+       "exif-exposureprogram-8": "Modo paisaxe (para paisaxes co fondo enfocado)",
+       "exif-subjectdistance-value": "$1 metros",
+       "exif-meteringmode-0": "Descoñecido",
+       "exif-meteringmode-1": "Media",
+       "exif-meteringmode-2": "Media ponderada no centro",
+       "exif-meteringmode-3": "Puntual",
+       "exif-meteringmode-4": "Multipuntual",
+       "exif-meteringmode-5": "Patrón",
+       "exif-meteringmode-6": "Parcial",
+       "exif-meteringmode-255": "Outro",
+       "exif-lightsource-0": "Descoñecida",
+       "exif-lightsource-1": "Luz do día",
+       "exif-lightsource-2": "Fluorescente",
+       "exif-lightsource-3": "Tungsteno (luz incandescente)",
+       "exif-lightsource-4": "Flash",
+       "exif-lightsource-9": "Bo tempo",
+       "exif-lightsource-10": "Tempo anubrado",
+       "exif-lightsource-11": "Sombra",
+       "exif-lightsource-12": "Fluorescente de luz de día (D 5700 – 7100K)",
+       "exif-lightsource-13": "Fluorescente de branco diurno (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fluorescente de branco frío (W 3900 – 4500K)",
+       "exif-lightsource-15": "Fluorescente branco (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Luz estándar A",
+       "exif-lightsource-18": "Luz estándar B",
+       "exif-lightsource-19": "Luz estándar C",
+       "exif-lightsource-24": "Tungsteno de estudio ISO",
+       "exif-lightsource-255": "Outra fonte de luz",
+       "exif-flash-fired-0": "Non se disparou o flash",
+       "exif-flash-fired-1": "Disparouse o flash",
+       "exif-flash-return-0": "sen a función de detección do retorno da luz",
+       "exif-flash-return-2": "non se detectou a función do retorno da luz",
+       "exif-flash-return-3": "detectouse a función do retorno da luz",
+       "exif-flash-mode-1": "disparo obrigatorio do flash",
+       "exif-flash-mode-2": "disparo do flash desactivado",
+       "exif-flash-mode-3": "modo automático",
+       "exif-flash-function-1": "Sen función flash",
+       "exif-flash-redeye-1": "modo de redución de ollos vermellos",
+       "exif-focalplaneresolutionunit-2": "polgadas",
+       "exif-sensingmethod-1": "Sen definir",
+       "exif-sensingmethod-2": "Sensor da área de cor dun chip",
+       "exif-sensingmethod-3": "Sensor da área de cor de dous chips",
+       "exif-sensingmethod-4": "Sensor da área de cor de tres chips",
+       "exif-sensingmethod-5": "Sensor da área de cor secuencial",
+       "exif-sensingmethod-7": "Sensor trilinear",
+       "exif-sensingmethod-8": "Sensor da cor linear secuencial",
+       "exif-filesource-3": "Cámara fotográfica dixital",
+       "exif-scenetype-1": "Unha imaxe fotografada directamente",
+       "exif-customrendered-0": "Procesamento normal",
+       "exif-customrendered-1": "Procesamento personalizado",
+       "exif-exposuremode-0": "Exposición automática",
+       "exif-exposuremode-1": "Exposición manual",
+       "exif-exposuremode-2": "Compensación automática da exposición",
+       "exif-whitebalance-0": "Balance de brancos automático",
+       "exif-whitebalance-1": "Balance de brancos manual",
+       "exif-scenecapturetype-0": "Estándar",
+       "exif-scenecapturetype-1": "Paisaxe",
+       "exif-scenecapturetype-2": "Retrato",
+       "exif-scenecapturetype-3": "Escena nocturna",
+       "exif-gaincontrol-0": "Ningunha",
+       "exif-gaincontrol-1": "Baixa ganancia superior",
+       "exif-gaincontrol-2": "Alta ganancia superior",
+       "exif-gaincontrol-3": "Baixa ganancia inferior",
+       "exif-gaincontrol-4": "Alta ganancia inferior",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Suave",
+       "exif-contrast-2": "Forte",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Saturación baixa",
+       "exif-saturation-2": "Saturación alta",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Suave",
+       "exif-sharpness-2": "Forte",
+       "exif-subjectdistancerange-0": "Descoñecida",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Primeiro plano",
+       "exif-subjectdistancerange-3": "Vista distante",
+       "exif-gpslatitude-n": "Latitude norte",
+       "exif-gpslatitude-s": "Latitude sur",
+       "exif-gpslongitude-e": "Lonxitude leste",
+       "exif-gpslongitude-w": "Lonxitude oeste",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metro|metros}} sobre o nivel do mar",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metro|metros}} baixo o nivel do mar",
+       "exif-gpsstatus-a": "Medida en progreso",
+       "exif-gpsstatus-v": "Interoperabilidade da medida",
+       "exif-gpsmeasuremode-2": "Medida bidimensional",
+       "exif-gpsmeasuremode-3": "Medida tridimensional",
+       "exif-gpsspeed-k": "Quilómetros por hora",
+       "exif-gpsspeed-m": "Millas por hora",
+       "exif-gpsspeed-n": "Nós",
+       "exif-gpsdestdistance-k": "Quilómetros",
+       "exif-gpsdestdistance-m": "Millas",
+       "exif-gpsdestdistance-n": "Millas náuticas",
+       "exif-gpsdop-excellent": "Excelente ($1)",
+       "exif-gpsdop-good": "Boa ($1)",
+       "exif-gpsdop-moderate": "Moderada ($1)",
+       "exif-gpsdop-fair": "Xusta ($1)",
+       "exif-gpsdop-poor": "Pobre ($1)",
+       "exif-objectcycle-a": "Mañá soamente",
+       "exif-objectcycle-p": "Serán soamente",
+       "exif-objectcycle-b": "Tanto na mañá como no serán",
+       "exif-gpsdirection-t": "Dirección verdadeira",
+       "exif-gpsdirection-m": "Dirección magnética",
+       "exif-ycbcrpositioning-1": "Centrado",
+       "exif-ycbcrpositioning-2": "Co-localizados",
+       "exif-dc-contributor": "Colaboradores",
+       "exif-dc-coverage": "Eido espacial ou temporal do contido",
+       "exif-dc-date": "Data(s)",
+       "exif-dc-publisher": "Editor",
+       "exif-dc-relation": "Contidos relacionados",
+       "exif-dc-rights": "Dereitos",
+       "exif-dc-source": "Imaxe de orixe",
+       "exif-dc-type": "Tipo de contido",
+       "exif-rating-rejected": "Rexeitado",
+       "exif-isospeedratings-overflow": "Superior a 65535",
+       "exif-iimcategory-ace": "Arte, cultura e lecer",
+       "exif-iimcategory-clj": "Crime e dereito",
+       "exif-iimcategory-dis": "Desastres e accidentes",
+       "exif-iimcategory-fin": "Economía e negocios",
+       "exif-iimcategory-edu": "Educación",
+       "exif-iimcategory-evn": "Medio ambiente",
+       "exif-iimcategory-hth": "Saúde",
+       "exif-iimcategory-hum": "Intereses humanos",
+       "exif-iimcategory-lab": "Traballo",
+       "exif-iimcategory-lif": "Estilo de vida e lecer",
+       "exif-iimcategory-pol": "Política",
+       "exif-iimcategory-rel": "Relixión e crenzas",
+       "exif-iimcategory-sci": "Ciencia e tecnoloxía",
+       "exif-iimcategory-soi": "Cuestións sociais",
+       "exif-iimcategory-spo": "Deportes",
+       "exif-iimcategory-war": "Guerras e conflitos",
+       "exif-iimcategory-wea": "Tempo",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Baixa ($1)",
+       "exif-urgency-high": "Alta ($1)",
+       "exif-urgency-other": "Prioridade definida polo usuario ($1)"
+}
diff --git a/languages/i18n/exif/grc.json b/languages/i18n/exif/grc.json
new file mode 100644 (file)
index 0000000..1552121
--- /dev/null
@@ -0,0 +1,247 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Crazymadlover",
+                       "LeighvsOptimvsMaximvs",
+                       "Omnipaedista"
+               ]
+       },
+       "exif-imagewidth": "Πλάτος",
+       "exif-imagelength": "Ὕψος",
+       "exif-bitspersample": "Δυφία ἀνὰ συνιστῶσαν",
+       "exif-compression": "Σχῆμα συμπιέσεως",
+       "exif-photometricinterpretation": "Σύνθεσις εἰκονοστοιχείων",
+       "exif-orientation": "Προσανατόλισις",
+       "exif-samplesperpixel": "Ἀριθμὸς συνιστωσῶν",
+       "exif-planarconfiguration": "Παράταξις δεδομένων",
+       "exif-ycbcrsubsampling": "Λόγος ὑποδειγματίσεως τοῦ Y πρὸς τὸ C",
+       "exif-ycbcrpositioning": "Τοποθέτησις τῶν Y καὶ C",
+       "exif-xresolution": "Ὁριζόντιος ἀνάλυσις",
+       "exif-yresolution": "Κάθετος ἀνάλυσις",
+       "exif-stripoffsets": "Τοποθεσία δεδομένων εἰκόνος",
+       "exif-rowsperstrip": "Ἀριθμὸς σειρῶν ἀνὰ λῶρον",
+       "exif-stripbytecounts": "Δυφία ἀνὰ συμπεπιεσμένον λῶρον",
+       "exif-jpeginterchangeformat": "Μετάθεσις εἰς JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Δυφιολέξεις δεδομένων JPEG",
+       "exif-whitepoint": "Χρωματικότης λευκοῦ σημείου",
+       "exif-primarychromaticities": "Πρωτεύουσαι χρωματικότητες",
+       "exif-ycbcrcoefficients": "Συντελεσταὶ μητρῶν μετασχηματισμοῦ χρώματος",
+       "exif-referenceblackwhite": "Ζεῦγος μελανῶν καὶ λευκῶν τιμῶν ἀναφορᾶς",
+       "exif-datetime": "Χρονολογία μεταβολῆς τοῦ ἀρχείου",
+       "exif-imagedescription": "Ἐπιγραφὴ εἰκόνος",
+       "exif-make": "Ἐξεργαστὴς τῆς εἰκονοληπτικῆς μηχανῆς",
+       "exif-model": "Πρότυπον τῆς εἰκονοληπτικῆς μηχανῆς",
+       "exif-software": "Χρησθὲν λογισμικόν",
+       "exif-artist": "Πρωτουργός",
+       "exif-copyright": "Κάτοχος δικαιωμάτων",
+       "exif-exifversion": "ἔκδοσις Exif",
+       "exif-flashpixversion": "Ὑποστηριζομένη ἔκδοσις τῆς μορφοποιίας Flashpix",
+       "exif-colorspace": "Χρωματικὸς χῶρος",
+       "exif-componentsconfiguration": "Νόημα ἑκάστης συνιστώσης",
+       "exif-compressedbitsperpixel": "Τρόπος συμπιέσεως εἰκόνος",
+       "exif-pixelxdimension": "Πλάτος εἰκόνος",
+       "exif-pixelydimension": "Ὕψος εἰκόνος",
+       "exif-usercomment": "Σχόλια χρωμένου",
+       "exif-relatedsoundfile": "Σχετιζόμενον ἀρχεῖον ἤχου",
+       "exif-datetimeoriginal": "Χρονολογία καὶ ὥρα παραγωγῆς δεδομένων",
+       "exif-datetimedigitized": "Χρονολογία καὶ ὥρα ψηφιοποιήσεως",
+       "exif-subsectime": "Ὑποδευτερόλεπτα χρονολογίας",
+       "exif-subsectimeoriginal": "Χρονολογίας ἀρχικῆς λήψεως ὑποδευτερόλεπτα",
+       "exif-subsectimedigitized": "Χρονολογίας ψηφιοποίησεως ὑποδευτερόλεπτα",
+       "exif-exposuretime": "Χρόνος ἐκθέσεως",
+       "exif-exposuretime-format": "$1 δευτ. ($2)",
+       "exif-fnumber": "Ἀριθμός F",
+       "exif-exposureprogram": "Πρόγραμμα ἐκθέσεως",
+       "exif-spectralsensitivity": "Φασματικὴ εὐαισθητότης",
+       "exif-isospeedratings": "Βαθμολόγησις ταχύτητος ISO",
+       "exif-shutterspeedvalue": "Ταχύτης κλῄσεως APEX",
+       "exif-aperturevalue": "Ἄνοιξις διαφράγματος APEX",
+       "exif-brightnessvalue": "Φωτεινότης APEX",
+       "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": "Ἰσορροπία λευκῶν",
+       "exif-digitalzoomratio": "Ἀναλογία ψηφιακῆς μεταβλητῆς ἑστιάσεως",
+       "exif-focallengthin35mmfilm": "Ἑστιακὴ ἀπόστασις ἐν πελνῷ 35 χστ.μ.",
+       "exif-scenecapturetype": "Τύπος συλλήψεως σκηνῆς",
+       "exif-gaincontrol": "Ἔλεγχος σκηνῆς",
+       "exif-contrast": "Ἀντίθεσις",
+       "exif-saturation": "Κορεσμός",
+       "exif-sharpness": "Ὀξύτης",
+       "exif-devicesettingdescription": "Περιγραφὴ ῥυθμίσεων τῆς συσκευῆς",
+       "exif-subjectdistancerange": "Ἐμβέλεια διακύμανσεως τῆς ἀποστάσεως τοῦ ἀντικειμένου",
+       "exif-imageuniqueid": "Μονοσήμαντος ταυτοποίησις εἰκόνος",
+       "exif-gpsversionid": "Ἔκδοσις μετὰ GPS σημάντρου",
+       "exif-gpslatituderef": "Βόρειον ἢ Νότιον γεωγραφικὸν πλάτος",
+       "exif-gpslatitude": "Πλάτος γεωγραφικόν",
+       "exif-gpslongituderef": "Ἀνατολικὸν ἢ Δυτικὸν γεωγραφικὸν μῆκος",
+       "exif-gpslongitude": "Γεωγραφικὸν μῆκος",
+       "exif-gpsaltituderef": "Ἀναφορὰ ὕψους γεωγραφικοῦ",
+       "exif-gpsaltitude": "Γεωγραφικὸν ὕψος",
+       "exif-gpstimestamp": "Χρόνος GPS (ἀτομικὸν ὡρολόγιον)",
+       "exif-gpssatellites": "Δορυφόροι χρησθέντες ταῖς μετρήσεσιν",
+       "exif-gpsstatus": "Κατάστασις δέκτου",
+       "exif-gpsmeasuremode": "Τρόπος μετρήσεως",
+       "exif-gpsdop": "Ἀκριβεία μετρήσεως",
+       "exif-gpsspeedref": "Μονὰς ταχύτητος",
+       "exif-gpsspeed": "Ταχύτης τοῦ δέκτου GPS",
+       "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": "Ὄνομα GPS-ζώνης",
+       "exif-gpsdatestamp": "Χρονολογία GPS",
+       "exif-gpsdifferential": "Διαφορικὴ διόρθωσις τοῦ GPS",
+       "exif-keywords": "Λέξεις κλειδία",
+       "exif-source": "Πηγή",
+       "exif-urgency": "Ἐπεῖγον",
+       "exif-writer": "Συγγραφεύς",
+       "exif-languagecode": "Γλῶττα",
+       "exif-iimcategory": "Κατηγορία",
+       "exif-label": "Ἐπιγραφή",
+       "exif-disclaimer": "Ἀποποίησις εὐθύνης",
+       "exif-compression-1": "Ἀσυμπίεστος",
+       "exif-copyrighted-true": "Ὑποκείμενον έν δικαιώμασιν",
+       "exif-copyrighted-false": "Κοινὸ κτῆμα",
+       "exif-unknowndate": "Ἄγνωτος χρονολογία",
+       "exif-orientation-1": "Κανονικόν",
+       "exif-orientation-2": "Ἀντεστραμμένη ὁριζοντίως",
+       "exif-orientation-3": "Περιεστραμμένη κατὰ 180°",
+       "exif-orientation-4": "Ἀντεστραμμένη καθέτως",
+       "exif-orientation-5": "Περιεστραμμένη 90° ἀνθωρολογιακῶς καὶ ἀντεστραμμένη καθέτως",
+       "exif-orientation-6": "Περιεστραμμένη 90° ὡρολογιακώς",
+       "exif-orientation-7": "Περιεστραμμένη 90° ὡρολογιακῶς καὶ ἀντεστραμμένη καθέτως",
+       "exif-orientation-8": "Περιεστραμμένη 90° ἀνθωρολογιακώς",
+       "exif-planarconfiguration-1": "πεπλατυσμένη μορφοποιία",
+       "exif-planarconfiguration-2": "ἐπίπεδος μορφοποιία",
+       "exif-componentsconfiguration-0": "Οὐκ ἔστι",
+       "exif-exposureprogram-0": "Ἀκαθόριστον",
+       "exif-exposureprogram-1": "Χειροκίνητον",
+       "exif-exposureprogram-2": "Κανονικὸν πρόγραμμα",
+       "exif-exposureprogram-3": "Προτεραιότης ἀνοἰξεως διαφράγματος",
+       "exif-exposureprogram-4": "Προτεραιότης κλείστρου",
+       "exif-exposureprogram-5": "Δημιουργικὸν πρόγραμμα (μεροληψία ὑπέρ τοῦ βάθους πεδίου)",
+       "exif-exposureprogram-6": "Δραστικὸν πρόγραμμα (μεροληψία ὑπέρ τοῦ τάχους κλείστρου)",
+       "exif-exposureprogram-7": "Κεντρικῆς ἀναπαραστάσεως τρόπος (διὰ προσεχῆ φωτογραφήματα οἷσπερ τὸ ὑπόβαθρον μὴ εἱστιαμένον ἐστίν)",
+       "exif-exposureprogram-8": "Τοπίου τρόπος (διὰ φωτογραφήματα οἷσπερ τὸ ὑπόβαθρον εἱστιαμένον ἐστίν)",
+       "exif-subjectdistance-value": "$1 μέτρα",
+       "exif-meteringmode-0": "Ἄγνωτον",
+       "exif-meteringmode-1": "Μέσον",
+       "exif-meteringmode-2": "Κεντροβαρὴς Μέση Τιμή",
+       "exif-meteringmode-3": "Μονοσημειακόν",
+       "exif-meteringmode-4": "Πολυσημειακόν",
+       "exif-meteringmode-5": "Ὑπόδειγμα",
+       "exif-meteringmode-6": "Μερικόν",
+       "exif-meteringmode-255": "Ἄλλη",
+       "exif-lightsource-0": "Ἄγνωτος",
+       "exif-lightsource-1": "Ἡμερινὸν φῶς",
+       "exif-lightsource-2": "Φθορίζον",
+       "exif-lightsource-3": "Βαρυλίθιον (πυρακτωσικὸν φῶς)",
+       "exif-lightsource-4": "Ἀστραποβόλος συσκευή",
+       "exif-lightsource-9": "Αἴθρια μετέωρα",
+       "exif-lightsource-10": "Συννεφῆ μετέωρα",
+       "exif-lightsource-11": "Σκίασις",
+       "exif-lightsource-12": "Ἡμερινοφωτικὴ φθοριοφάνεια (D 5700 – 7100K)",
+       "exif-lightsource-13": "Ἡμερινὴ λευκὴ φθοριοφάνεια (N 4600 – 5400K)",
+       "exif-lightsource-14": "Ψυχρὴ λευκὴ φθοριοφάνεια (W 3900 – 4500K)",
+       "exif-lightsource-15": "Λευκὴ φθοριοφάνεια (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Τυπικὸν φῶς A",
+       "exif-lightsource-18": "Τυπικὸν φῶς B",
+       "exif-lightsource-19": "Τυπικὸν φῶς C",
+       "exif-lightsource-24": "Βαρυλίθιον τοῦ ἐργαστηρίου κανονικοποιημένον κατὰ ISO",
+       "exif-lightsource-255": "Ἕτεραι φωτοπηγαί",
+       "exif-flash-fired-0": "Τὸ ἀστραποβόλον οὐκ ἧψεν",
+       "exif-flash-fired-1": "Τὸ ἀστραποβόλον ἧψεν",
+       "exif-flash-return-0": "οὐδὲν στροβοσκόπιον ἐπιστρέφει φῶς τι διακριτόν",
+       "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": "Aἰσθητὴρ χρωματικῆς περιοχῆς ἑνὸς \"φαιοῦ\"",
+       "exif-sensingmethod-3": "Aἰσθητὴρ χρωματικῆς περιοχῆς δύο \"φαιῶν\"",
+       "exif-sensingmethod-4": "Aἰσθητὴρ χρωματικῆς περιοχῆς τριῶν \"φαιῶν\"",
+       "exif-sensingmethod-5": "Σειραϊκος ἐμβαδικὸς αἰσθητήρ χρωμάτων",
+       "exif-sensingmethod-7": "Τριγραμμικὸν αἰσθητήριον",
+       "exif-sensingmethod-8": "Σειραϊκος γραμμικὸς αἰσθητήρ χρωμάτων",
+       "exif-scenetype-1": "Ἀπεὐθείας φωτογραφημένη εἰκών",
+       "exif-customrendered-0": "Κανονικὴ διαδικασία",
+       "exif-customrendered-1": "Συνήθης διαδικασία",
+       "exif-exposuremode-0": "Αὐτοέκθεσις",
+       "exif-exposuremode-1": "Χειροκίνητος ἔκθεσις",
+       "exif-exposuremode-2": "Αὐτόματος διαδοχικὴ λῆψις",
+       "exif-whitebalance-0": "Αὐτόματος ἰσορροπία λευκῶν",
+       "exif-whitebalance-1": "Χειροκίνητος ἰσορροπία λευκῶν",
+       "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-saturation-0": "Κανονικόν",
+       "exif-saturation-1": "Χαμηλὸς κορεσμός",
+       "exif-saturation-2": "Ὑψηλὸς κορεσμός",
+       "exif-sharpness-0": "Κανονική",
+       "exif-sharpness-1": "Ἁπαλή",
+       "exif-sharpness-2": "Σκληρά",
+       "exif-subjectdistancerange-0": "Ἄγνωτος",
+       "exif-subjectdistancerange-1": "Μακρο.",
+       "exif-subjectdistancerange-2": "Ἐγγεῖα θέα",
+       "exif-subjectdistancerange-3": "Ἀφεστηκυῖα θέα",
+       "exif-gpslatitude-n": "Βόρειον γεωγραφικὸν πλάτος",
+       "exif-gpslatitude-s": "Νότιον γεωγραφικὸν πλάτος",
+       "exif-gpslongitude-e": "Ἀνατολικὸν γεωγραφικὸν μῆκος",
+       "exif-gpslongitude-w": "Δυτικὸν γεωγραφικὸν μῆκος",
+       "exif-gpsstatus-a": "Μέτρησις ἐν ἐξελίξει",
+       "exif-gpsstatus-v": "Διαχρηστικότης μετρήσεων",
+       "exif-gpsmeasuremode-2": "2-διάστατος μέτρησις",
+       "exif-gpsmeasuremode-3": "3-διάστατος μέτρησις",
+       "exif-gpsspeed-k": "Χιλιόμετρα ἀνὰ ὥρα",
+       "exif-gpsspeed-m": "Μίλια ἀνὰ ὥρα",
+       "exif-gpsspeed-n": "Κόμβοι",
+       "exif-gpsdestdistance-k": "Χιλιόμετρα",
+       "exif-gpsdestdistance-m": "Μίλια",
+       "exif-gpsdestdistance-n": "Ναυτικά μίλια",
+       "exif-gpsdirection-t": "Ἀληθὴς κατεύθυνσις",
+       "exif-gpsdirection-m": "Μαγνητικὴ διεύθυνσις",
+       "exif-dc-contributor": "Συνεισφέροντες",
+       "exif-dc-publisher": "Ἐκδότης",
+       "exif-iimcategory-pol": "Πολιτική",
+       "exif-iimcategory-spo": "Άθλοπαιδιαί"
+}
diff --git a/languages/i18n/exif/gsw.json b/languages/i18n/exif/gsw.json
new file mode 100644 (file)
index 0000000..24bc21c
--- /dev/null
@@ -0,0 +1,345 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Als-Holder"
+               ]
+       },
+       "exif-imagewidth": "Breiti",
+       "exif-imagelength": "Längi",
+       "exif-bitspersample": "Bit pro Farbkomponente",
+       "exif-compression": "Art vu dr Kompression",
+       "exif-photometricinterpretation": "Pixelzämmesetzig",
+       "exif-orientation": "Orientierung",
+       "exif-samplesperpixel": "Aazahl vu dr Komponente",
+       "exif-planarconfiguration": "Dateusrichtig",
+       "exif-ycbcrsubsampling": "Subsampling Rate vu Y bis C",
+       "exif-ycbcrpositioning": "Y un C Positionierig",
+       "exif-xresolution": "Horizontali Uflesig",
+       "exif-yresolution": "Vertikali Uflesig",
+       "exif-stripoffsets": "Bilddate-Versatz",
+       "exif-rowsperstrip": "Aazahl vu dr Zyylete pro Streife",
+       "exif-stripbytecounts": "Bytes pro komprimiertem Streife",
+       "exif-jpeginterchangeformat": "Offset zue JPEG SOI",
+       "exif-jpeginterchangeformatlength": "JPEG-Date in Bytes",
+       "exif-whitepoint": "Manuäll mit Mässig",
+       "exif-primarychromaticities": "Primäri Farbart",
+       "exif-ycbcrcoefficients": "YCbCr-Koeffiziente",
+       "exif-referenceblackwhite": "Schwarz/Wyss-Referenzpinkt",
+       "exif-datetime": "Spycherzytpunkt",
+       "exif-imagedescription": "Bildtitel",
+       "exif-make": "Hersteller",
+       "exif-model": "Modell",
+       "exif-software": "Software",
+       "exif-artist": "Fotograf",
+       "exif-copyright": "Urheberrächt",
+       "exif-exifversion": "Exif-Version",
+       "exif-flashpixversion": "unterstitzti Flashpix-Version",
+       "exif-colorspace": "Farbruum",
+       "exif-componentsconfiguration": "Bedytig vu einzelne Komponente",
+       "exif-compressedbitsperpixel": "Komprimierti Bit pro Pixel",
+       "exif-pixelxdimension": "Bildbreiti",
+       "exif-pixelydimension": "Bildhechi",
+       "exif-usercomment": "Benutzerkommentar",
+       "exif-relatedsoundfile": "Zuegherigi Tondatei",
+       "exif-datetimeoriginal": "Erfassigszytpunkt",
+       "exif-datetimedigitized": "Digitalisierigszytpunkt",
+       "exif-subsectime": "Spycherzytpunkt (1/100 s)",
+       "exif-subsectimeoriginal": "Erfassigszytpunkt (1/100 s)",
+       "exif-subsectimedigitized": "Digitalisierigszytpunkt (1/100 s)",
+       "exif-exposuretime": "Beliechtigsduur",
+       "exif-exposuretime-format": "$1 Sekunde ($2)",
+       "exif-fnumber": "F-Wert",
+       "exif-exposureprogram": "Beliechtigsprogramm",
+       "exif-spectralsensitivity": "Spektrali Empfindligkeit",
+       "exif-isospeedratings": "Filmempfindlichkeit (ISO)",
+       "exif-shutterspeedvalue": "APEX-Beliechtigszytwärt",
+       "exif-aperturevalue": "APEX-Bländewärt",
+       "exif-brightnessvalue": "APEX-Hälligkeitswärt",
+       "exif-exposurebiasvalue": "Beliechtigsvorgab",
+       "exif-maxaperturevalue": "Greschti Bländi",
+       "exif-subjectdistance": "Entfärnig",
+       "exif-meteringmode": "Mässverfahre",
+       "exif-lightsource": "Liechtquäll",
+       "exif-flash": "Blitz",
+       "exif-focallength": "Brännwyti",
+       "exif-subjectarea": "Beryych",
+       "exif-flashenergy": "Blitzstärchi",
+       "exif-focalplanexresolution": "Sensor-Uflesig horizontal",
+       "exif-focalplaneyresolution": "Sensor-Uflesig vertikal",
+       "exif-focalplaneresolutionunit": "Einheit vu dr Sensor-Uflesig",
+       "exif-subjectlocation": "Motivstandort",
+       "exif-exposureindex": "Beliechtigsindex",
+       "exif-sensingmethod": "Mässmethod",
+       "exif-filesource": "Quäll vu dr Datei",
+       "exif-scenetype": "Szenetyp",
+       "exif-customrendered": "Benutzerdefinierti Bildverarbeitig",
+       "exif-exposuremode": "Beliechtigsmodus",
+       "exif-whitebalance": "Wyssabglyych",
+       "exif-digitalzoomratio": "Digitalzoom",
+       "exif-focallengthin35mmfilm": "Brännwyti (Chleibildäquivalent)",
+       "exif-scenecapturetype": "Art vu dr Ufnahm",
+       "exif-gaincontrol": "Verstärchig",
+       "exif-contrast": "Kontrascht",
+       "exif-saturation": "Sättigung",
+       "exif-sharpness": "Schärfi",
+       "exif-devicesettingdescription": "Grät-Yystellig",
+       "exif-subjectdistancerange": "Motiventfärnig",
+       "exif-imageuniqueid": "Bild-ID",
+       "exif-gpsversionid": "GPS-Tag-Version",
+       "exif-gpslatituderef": "nerdl. oder sidl. Breiti",
+       "exif-gpslatitude": "Geografischi Breiti",
+       "exif-gpslongituderef": "eschtl. oder weschtl. Längi",
+       "exif-gpslongitude": "Geografischi Längi",
+       "exif-gpsaltituderef": "Bezugshechi",
+       "exif-gpsaltitude": "Hechi",
+       "exif-gpstimestamp": "GPS-Zyt",
+       "exif-gpssatellites": "Satellite, wu fir d Mässig brucht wore sin",
+       "exif-gpsstatus": "Empfängerstatus",
+       "exif-gpsmeasuremode": "Mässverfahre",
+       "exif-gpsdop": "Masspräzision",
+       "exif-gpsspeedref": "Gschwindigkeitseinheit",
+       "exif-gpsspeed": "Gschwindigkeit vum GPS-Empfänger",
+       "exif-gpstrackref": "Referänz fir d Bewegigsrichtig",
+       "exif-gpstrack": "Bewegigsrichtig",
+       "exif-gpsimgdirectionref": "Referänz fir d Usrichtig vum Bild",
+       "exif-gpsimgdirection": "Bildrichtig",
+       "exif-gpsmapdatum": "Geodätisch Datum brucht",
+       "exif-gpsdestlatituderef": "Referänz fir d Breiti",
+       "exif-gpsdestlatitude": "Breiti",
+       "exif-gpsdestlongituderef": "Referänz fir d Längi",
+       "exif-gpsdestlongitude": "Längi",
+       "exif-gpsdestbearingref": "Referänz fir d Motivrichtig",
+       "exif-gpsdestbearing": "Motivrichtig",
+       "exif-gpsdestdistanceref": "Referänz fir d Motiventfärnig",
+       "exif-gpsdestdistance": "Motiventfärnig",
+       "exif-gpsprocessingmethod": "Name vum GPS-Verfahre",
+       "exif-gpsareainformation": "Name vum GPS-Biet",
+       "exif-gpsdatestamp": "GPS-Datum",
+       "exif-gpsdifferential": "GPS-Differentialkorrektur",
+       "exif-jpegfilecomment": "JPEG-Dateikommentar",
+       "exif-keywords": "Schlisselwerter",
+       "exif-worldregioncreated": "Wältregion, wu s Foto ufgnuu woren isch",
+       "exif-countrycreated": "Staat, wu s Foto ufgnuu woren isch",
+       "exif-countrycodecreated": "Code fir dr Staat, wu s Foto ufgnuu woren isch",
+       "exif-provinceorstatecreated": "Provinz oder Gliedstaat, wu s Foto ufgnuu woren isch",
+       "exif-citycreated": "Stadt, wu s Foto ufgnuu woren isch",
+       "exif-sublocationcreated": "Stadtteil, wu s Foto ufgnuu woren isch",
+       "exif-worldregiondest": "Zeigti Wältregione",
+       "exif-countrydest": "Zeigte Staat",
+       "exif-countrycodedest": "Code fir dr zeigt Staat",
+       "exif-provinceorstatedest": "Zeigti Provinz oder zeigte Gliedstaat",
+       "exif-citydest": "Zeigti Stadt",
+       "exif-sublocationdest": "Zeigte Stadtteil",
+       "exif-objectname": "Churztitel",
+       "exif-specialinstructions": "Bsunderi Aawysige",
+       "exif-headline": "Iberschrift",
+       "exif-credit": "Namesnännig/ Vereffetliger",
+       "exif-source": "Quälle",
+       "exif-editstatus": "Redaktionälle Status vum Foto",
+       "exif-urgency": "Dringligkeit",
+       "exif-fixtureidentifier": "Kolumne",
+       "exif-locationdest": "Dargstellte Standort",
+       "exif-locationdestcode": "Code fir dr dargstellte Standort",
+       "exif-objectcycle": "Tageszyt, wu des Medium drfir bstimmt isch",
+       "exif-contact": "Kontaktinformatione",
+       "exif-writer": "Schryber",
+       "exif-languagecode": "Sproch",
+       "exif-iimversion": "IIM-Version",
+       "exif-iimcategory": "Kategorii",
+       "exif-iimsupplementalcategory": "Zuesätzligi Kategorie",
+       "exif-datetimeexpires": "Nit bruche no",
+       "exif-datetimereleased": "Vereffetligt am",
+       "exif-originaltransmissionref": "Code vum Standort wu s Foto uus ibermittlet woren isch",
+       "exif-identifier": "Chännig",
+       "exif-lens": "Brucht Objektiv",
+       "exif-serialnumber": "Serienummere vu dr Kamera",
+       "exif-cameraownername": "Kamerabsitzer",
+       "exif-label": "Bezeichnig",
+       "exif-datetimemetadata": "Datum, wu d Metadate s letscht Mol gänderet wore sin",
+       "exif-nickname": "Gängige Name vum Foto",
+       "exif-rating": "Bewärting (us 5)",
+       "exif-rightscertificate": "Rächtverwaltigszertifikat",
+       "exif-copyrighted": "Urheberrächtsstatus",
+       "exif-copyrightowner": "Urheberrächtsinhaber",
+       "exif-usageterms": "Nutzigsbedingige",
+       "exif-webstatement": "Online-Urheberrächtsaagab",
+       "exif-originaldocumentid": "Eidytigi Chännig vum Orginaldokumänt",
+       "exif-licenseurl": "URL vu dr Urheberrächtsaagab (Lizänz)",
+       "exif-morepermissionsurl": "Alternativi Lizänzinformatione",
+       "exif-attributionurl": "Bi Wyterverwändig vu däm Wärch bitte verlinke uf:",
+       "exif-preferredattributionname": "Bi Wyterverwändig vu däm Wärch, bitte nänne:",
+       "exif-pngfilecomment": "PNG-Dateikommentar",
+       "exif-disclaimer": "Haftigsuusschluss",
+       "exif-contentwarning": "Inhaltswarnig",
+       "exif-giffilecomment": "GIF-Dateikommentar",
+       "exif-intellectualgenre": "Art vum Medium",
+       "exif-subjectnewscode": "Themecode",
+       "exif-scenecode": "IPTC-Aasichtcode",
+       "exif-event": "Dargstellt Ereignis",
+       "exif-organisationinimage": "Dargstellti Organisation",
+       "exif-personinimage": "Dargstellti Person",
+       "exif-originalimageheight": "Bildhechi vor em Zueschnyde",
+       "exif-originalimagewidth": "Bildbreiti vor em Zueschnyde",
+       "exif-compression-1": "Uukomprimiert",
+       "exif-compression-2": "CCITT Gruppe 3 1-dimensionali modifizierti Huffman-Lauflengekodierig",
+       "exif-compression-3": "CCITT Gruppe 3 Faxkodierig",
+       "exif-compression-4": "CCITT Gruppe 4 Faxkodierig",
+       "exif-copyrighted-true": "Gschitzt",
+       "exif-copyrighted-false": "Urheberrächtsstatus nit feschtgleit",
+       "exif-unknowndate": "Nit bekannt Datum",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Horizontal gspieglet",
+       "exif-orientation-3": "Um 180° drillt",
+       "exif-orientation-4": "Vertikal gspieglet",
+       "exif-orientation-5": "Gege dr Uhrzeigersinn um 90° drillt un derno vertikal gspieglet",
+       "exif-orientation-6": "Um 90° gege dr Uhrzeigersinn drillt",
+       "exif-orientation-7": "Um 90° im Uhrzeigersinn drillt un derno vertikal gspieglet",
+       "exif-orientation-8": "Um 90° im dr Uhrzeigersinn drillt",
+       "exif-planarconfiguration-1": "Grobformat",
+       "exif-planarconfiguration-2": "Planarformat",
+       "exif-colorspace-65535": "Nit kalibriert",
+       "exif-componentsconfiguration-0": "Git s nit",
+       "exif-exposureprogram-0": "Nit bekannt",
+       "exif-exposureprogram-1": "Manuell",
+       "exif-exposureprogram-2": "Standardprogramm",
+       "exif-exposureprogram-3": "Zytautomatik",
+       "exif-exposureprogram-4": "Bländeautomatik",
+       "exif-exposureprogram-5": "Kreativprogramm (hochi Schärfetiefi bevorzugt)",
+       "exif-exposureprogram-6": "Aktions-Programm (churzi Beliechtigszyt bevorzugt)",
+       "exif-exposureprogram-7": "Porträ-Programm",
+       "exif-exposureprogram-8": "Landschaftsufnahme",
+       "exif-subjectdistance-value": "$1 Meter",
+       "exif-meteringmode-0": "Nit bekannt",
+       "exif-meteringmode-1": "Durchschnittlig",
+       "exif-meteringmode-2": "Mittizentriert",
+       "exif-meteringmode-3": "Spot-Mässig",
+       "exif-meteringmode-4": "Mehfach-Spot-Mässig",
+       "exif-meteringmode-5": "Muschter",
+       "exif-meteringmode-6": "Bildteil",
+       "exif-meteringmode-255": "Anderi",
+       "exif-lightsource-0": "Nit bekannt",
+       "exif-lightsource-1": "Tagliecht",
+       "exif-lightsource-2": "Fluoreszierig",
+       "exif-lightsource-3": "Glieilampe",
+       "exif-lightsource-4": "Blitz",
+       "exif-lightsource-9": "Schen Wätter",
+       "exif-lightsource-10": "Wulchig",
+       "exif-lightsource-11": "Schatte",
+       "exif-lightsource-12": "Tagliecht fluoreszierig (D 5700–7100 K)",
+       "exif-lightsource-13": "Tagwyss fluoreszierig (N 4600–5400 K)",
+       "exif-lightsource-14": "Chaltwyss fluoreszierig (W 3900–4500 K)",
+       "exif-lightsource-15": "Wyss fluoreszierig (WW 3200–3700 K)",
+       "exif-lightsource-17": "Standardliecht A",
+       "exif-lightsource-18": "Standardliecht B",
+       "exif-lightsource-19": "Standardliecht C",
+       "exif-lightsource-24": "ISO Studio Chunschtliecht",
+       "exif-lightsource-255": "Anderi Liechtquäll",
+       "exif-flash-fired-0": "kei Blitz",
+       "exif-flash-fired-1": "Blitz usglest",
+       "exif-flash-return-0": "Blitz schickt kei Date",
+       "exif-flash-return-2": "kei Reflexion vum Blitz feschtgstellt",
+       "exif-flash-return-3": "Reflexion vum Blitz feschtgstellt",
+       "exif-flash-mode-1": "erzwunge Blitze",
+       "exif-flash-mode-2": "Blitz abgstellt",
+       "exif-flash-mode-3": "Automatik",
+       "exif-flash-function-1": "Kei Blitzfunktion",
+       "exif-flash-redeye-1": "Roti-Auge-Reduktion",
+       "exif-focalplaneresolutionunit-2": "Zoll",
+       "exif-sensingmethod-1": "Nit definiert",
+       "exif-sensingmethod-2": "Ei-Chip-Farbsensor",
+       "exif-sensingmethod-3": "Zwee-Chip-Farbsensor",
+       "exif-sensingmethod-4": "Drej-Chip-Farbsensor",
+       "exif-sensingmethod-5": "Farbruum sequenziäll Sensor",
+       "exif-sensingmethod-7": "Trilineare Sensor",
+       "exif-sensingmethod-8": "Farbruum linear sequenziälle Sensor",
+       "exif-filesource-3": "Digitali Standbildkamera",
+       "exif-scenetype-1": "E diräkt fotografiert Bild",
+       "exif-customrendered-0": "Normal",
+       "exif-customrendered-1": "Benutzerdefiniert",
+       "exif-exposuremode-0": "Automatischi Beliechtig",
+       "exif-exposuremode-1": "Manuälli Beliechtig",
+       "exif-exposuremode-2": "Beliechtigzyylete",
+       "exif-whitebalance-0": "Automatisch",
+       "exif-whitebalance-1": "Manuäll",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Landschaft",
+       "exif-scenecapturetype-2": "Porträt",
+       "exif-scenecapturetype-3": "Nachtszene",
+       "exif-gaincontrol-0": "Keini",
+       "exif-gaincontrol-1": "Low gain up",
+       "exif-gaincontrol-2": "High gain up",
+       "exif-gaincontrol-3": "Low gain down",
+       "exif-gaincontrol-4": "High gain down",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Schwach",
+       "exif-contrast-2": "Starch",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Niideri Sättigung",
+       "exif-saturation-2": "Hochi Sättigung",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Schwach",
+       "exif-sharpness-2": "Starch",
+       "exif-subjectdistancerange-0": "Nit bekannt",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Noch",
+       "exif-subjectdistancerange-3": "Wyt ewäg",
+       "exif-gpslatitude-n": "nerdl. Breiti",
+       "exif-gpslatitude-s": "sidl. Breiti",
+       "exif-gpslongitude-e": "eschtl. Längi",
+       "exif-gpslongitude-w": "weschtl. Längi",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|Meter}} iber em Meeresspiegel",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|Meter}} unter em Meeresspiegel",
+       "exif-gpsstatus-a": "Mässig lauft",
+       "exif-gpsstatus-v": "Interoperabilität vu Mässige",
+       "exif-gpsmeasuremode-2": "2-dimensionali Mässig",
+       "exif-gpsmeasuremode-3": "3-dimensionali Mässig",
+       "exif-gpsspeed-k": "km/h",
+       "exif-gpsspeed-m": "mph",
+       "exif-gpsspeed-n": "Chnote",
+       "exif-gpsdestdistance-k": "Kilometer",
+       "exif-gpsdestdistance-m": "Myle",
+       "exif-gpsdestdistance-n": "Seemyle",
+       "exif-gpsdop-excellent": "Uuszeichnet ($1)",
+       "exif-gpsdop-good": "Guet ($1)",
+       "exif-gpsdop-moderate": "Mittel ($1)",
+       "exif-gpsdop-fair": "Akzeptabel ($1)",
+       "exif-gpsdop-poor": "Schwach ($1)",
+       "exif-objectcycle-a": "Nume demorge",
+       "exif-objectcycle-p": "Nume zobe",
+       "exif-objectcycle-b": "Demorge un zobe",
+       "exif-gpsdirection-t": "Tatsächligi Richtig",
+       "exif-gpsdirection-m": "Magnetischi Richtig",
+       "exif-ycbcrpositioning-1": "Zäntriert",
+       "exif-ycbcrpositioning-2": "Benochbert",
+       "exif-dc-contributor": "Mitmacher",
+       "exif-dc-coverage": "Ertlige oder zytlige Ramme vum Medium",
+       "exif-dc-date": "Datumsaagabe",
+       "exif-dc-publisher": "Vereffentlige",
+       "exif-dc-relation": "Ähnligi Medie",
+       "exif-dc-rights": "Rächt",
+       "exif-dc-source": "Mediehärchumft",
+       "exif-dc-type": "Medietyp",
+       "exif-rating-rejected": "Abglähnt",
+       "exif-isospeedratings-overflow": "Greßer wie 65535",
+       "exif-iimcategory-ace": "Chunscht, Kultur un Unterhaltig",
+       "exif-iimcategory-clj": "Kriminalitet un Rächt",
+       "exif-iimcategory-dis": "Katastrofen un Uafäll",
+       "exif-iimcategory-fin": "Wirtschaft un Gschäft",
+       "exif-iimcategory-edu": "Bildig",
+       "exif-iimcategory-evn": "Umwält",
+       "exif-iimcategory-hth": "Gsundheit",
+       "exif-iimcategory-hum": "Inträssebiet",
+       "exif-iimcategory-lab": "Arbet",
+       "exif-iimcategory-lif": "Lifestyle un Frejzyt",
+       "exif-iimcategory-pol": "Politik",
+       "exif-iimcategory-rel": "Religion un Glaube",
+       "exif-iimcategory-sci": "Wisseschaft un Tächnologi",
+       "exif-iimcategory-soi": "Soziali Theme",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Chrieg, Konflikt un Uurueje",
+       "exif-iimcategory-wea": "Wätter",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Nider ($1)",
+       "exif-urgency-high": "Hoch ($1)",
+       "exif-urgency-other": "Benutzerdefinierti Prioritet ($1)"
+}
diff --git a/languages/i18n/exif/gu.json b/languages/i18n/exif/gu.json
new file mode 100644 (file)
index 0000000..f8a129c
--- /dev/null
@@ -0,0 +1,356 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Aguddi",
+                       "Ashok modhvadia",
+                       "Dineshjk",
+                       "Dsvyas",
+                       "Haritosh",
+                       "KartikMistry",
+                       "Metrix1312",
+                       "Mohit.dalal",
+                       "Nehal",
+                       "Ramesh",
+                       "Rangilo Gujarati",
+                       "Sushant savla"
+               ]
+       },
+       "exif-imagewidth": "પહોળાઈ",
+       "exif-imagelength": "ઊંચાઈ",
+       "exif-bitspersample": "બીટ્સ પ્રતિ ભાગ",
+       "exif-compression": "સંકોચન પ્રણાલી",
+       "exif-photometricinterpretation": "Pixel સંરચના",
+       "exif-orientation": "દિશામાન",
+       "exif-samplesperpixel": "ભાગની સંખ્યા",
+       "exif-planarconfiguration": "માહિતી ગોઠવણ",
+       "exif-ycbcrsubsampling": "Y થી C નો સબસેમ્પલીંગ ગુણોત્તર",
+       "exif-ycbcrpositioning": "Y અને C સ્થાનાંતરણ",
+       "exif-xresolution": "આડું ઘનત્વ",
+       "exif-yresolution": "ઊભું ઘનત્વ",
+       "exif-stripoffsets": "ચિત્ર સંબંધિત માહિતીનું સ્થાન",
+       "exif-rowsperstrip": "દરેક પટ્ટીમાં હરોળની સંખ્યા",
+       "exif-stripbytecounts": "સંકુચિત પટ્ટીમાં બાઈટની સંખ્યા",
+       "exif-jpeginterchangeformat": "JPEG SOI નો ફણગો",
+       "exif-jpeginterchangeformatlength": "JPEG માહિતીની બાઇટ્સ",
+       "exif-whitepoint": "ધવલ બિંદુ રંગ તીવ્રતા",
+       "exif-primarychromaticities": "મૂળ રંગોની રંગછટા",
+       "exif-ycbcrcoefficients": "રંગ અવકાશ પરિવર્તન ગર્ભ અચળાંક",
+       "exif-referenceblackwhite": "શ્યામ અને ધવલ સંદર્ભ કિંમતોની જોડી",
+       "exif-datetime": "ફાઇલ સુધારાની તારીખ અને સમય",
+       "exif-imagedescription": "ચિત્ર શીર્ષક",
+       "exif-make": "કેમેરા ઉત્પાદક",
+       "exif-model": "કેમેરાનું મોડેલ",
+       "exif-software": "વપરાયેલ સોફ્ટવેર",
+       "exif-artist": "કલાકાર",
+       "exif-copyright": "પ્રકાશનાધિકાર ધારક",
+       "exif-exifversion": "Exif આવૃત્તિ",
+       "exif-flashpixversion": "આધારીત Flashpix  આવૃત્તિ",
+       "exif-colorspace": "રંગ માટે જગ્યા",
+       "exif-componentsconfiguration": "દરેક ભાગનો અર્થ",
+       "exif-compressedbitsperpixel": "ચિત્ર સરખામણી મોડ",
+       "exif-pixelxdimension": "ચિત્ર પહોળાઇ",
+       "exif-pixelydimension": "ચિત્રની ઊઁચાઈ",
+       "exif-usercomment": "સભ્યની ટિપ્પણી",
+       "exif-relatedsoundfile": "સંબંધિત શ્રાવ્ય ફાઈલો",
+       "exif-datetimeoriginal": "નિર્મિતીનો સમય અને તારીખ",
+       "exif-datetimedigitized": "અંકલેખિત કરવાનો સમય",
+       "exif-subsectime": "તારીખ સમય સબસેકંડ્માં",
+       "exif-subsectimeoriginal": "અંકલેખિત કરવાનો સમય સબસેકંડમાં",
+       "exif-subsectimedigitized": "અંકલેખિત કરવાનો સમય સબસેકંડમાં",
+       "exif-exposuretime": "પ્રકાશાગમ સમય",
+       "exif-exposuretime-format": " $1 સેકંડ ($2)",
+       "exif-fnumber": "F ક્રમ",
+       "exif-exposureprogram": "પ્રકાશાગમ પ્રોગ્રામ",
+       "exif-spectralsensitivity": "રંગપટલ સંવેદના",
+       "exif-isospeedratings": "ISO ઝડપ ક્ર્માંક",
+       "exif-shutterspeedvalue": "સર્વોચ્ચ શટર ઝડપ",
+       "exif-aperturevalue": "બાકોરું",
+       "exif-brightnessvalue": "સર્વોચ્ચ તેજ",
+       "exif-exposurebiasvalue": "પ્રકાશાગમ ફરક્",
+       "exif-maxaperturevalue": "મહત્તમ ભૂમિ છીદ્ર",
+       "exif-subjectdistance": "વસ્તુનું અંતર",
+       "exif-meteringmode": "મીટરીંગ ઢબ",
+       "exif-lightsource": "પ્રકાશ સ્રોત",
+       "exif-flash": "જબકારો (ફ્લેશ)",
+       "exif-focallength": "કાંચનું કેન્દ્રીય લંબાઇ (ફોકલ લેંથ)",
+       "exif-subjectarea": "વિષ્યવસ્તુ  ક્ષેત્ર",
+       "exif-flashenergy": "ઝબકારાની શક્તિ",
+       "exif-focalplanexresolution": "કેન્દ્રીત X ફલક નું ઘનત્વ",
+       "exif-focalplaneyresolution": "કેન્દ્રીત Y ફલક નું ઘનત્વ",
+       "exif-focalplaneresolutionunit": "કેંન્દ્રીત ફલક ઘનત્વનો એકમ",
+       "exif-subjectlocation": "વસ્તુનું સ્થાન",
+       "exif-exposureindex": "પ્રકાશાગમ અનુક્ર્મ",
+       "exif-sensingmethod": "સંવેદનાની રીત",
+       "exif-filesource": "ફાઇલ સ્રોત",
+       "exif-scenetype": "દ્રશ્ય પ્રકાર",
+       "exif-customrendered": "સ્થાનીય ચિત્ર પ્રક્રિયા",
+       "exif-exposuremode": "પ્રકાશાગમ પ્રકાર",
+       "exif-whitebalance": "ધવલ સમતોલન",
+       "exif-digitalzoomratio": "ડીજીટલ ઝુમ પ્રમાણ",
+       "exif-focallengthin35mmfilm": "35 mm ફીલ્મનું કેંદ્રીય અંતર",
+       "exif-scenecapturetype": "દ્રશ્ય ગ્રહણ પ્રકાર",
+       "exif-gaincontrol": "દ્રશ્ય નિયંત્રણ",
+       "exif-contrast": "રંગછટા",
+       "exif-saturation": "સંતૃપ્તતા",
+       "exif-sharpness": "તીવ્રતા",
+       "exif-devicesettingdescription": "યંત્રના વિકલ્પ ગોઠવણનું વિવરણ",
+       "exif-subjectdistancerange": "વિષયાવસ્તુ અંતર મર્યાદા",
+       "exif-imageuniqueid": "અનન્ય ચિત્ર ID",
+       "exif-gpsversionid": "GPS ચિન્હ સંસ્કરણ",
+       "exif-gpslatituderef": "ઉત્તર કે દક્ષીણ અક્ષાંસ",
+       "exif-gpslatitude": "અક્ષાંસ",
+       "exif-gpslongituderef": "પૂર્વ પશ્ચિમ રેખાંશ",
+       "exif-gpslongitude": "રેખાંશ",
+       "exif-gpsaltituderef": "ઊંચાઈ સંદર્ભ",
+       "exif-gpsaltitude": "ઊંચાઈ",
+       "exif-gpstimestamp": "GPS સમય (આણ્વીક ઘડિયાળ)",
+       "exif-gpssatellites": "માપન માટે વપરાયેલ ઉપગ્રહ",
+       "exif-gpsstatus": "ગ્રાહકની સ્થિતિ",
+       "exif-gpsmeasuremode": "માપનની ઢબ",
+       "exif-gpsdop": "માપન ચોકસાઈ",
+       "exif-gpsspeedref": "ઝડપનું એકમ",
+       "exif-gpsspeed": "GPS ગ્રાહક ઝડપ",
+       "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": "GPS ક્ષેત્રનું નામ",
+       "exif-gpsdatestamp": "GPS તારીખ",
+       "exif-gpsdifferential": "GPS ફેરફારનો સુધારો",
+       "exif-jpegfilecomment": "JPEG ફાઈલ પરની ટીપ્પણી",
+       "exif-keywords": "ચાવી રૂપ શબ્દો",
+       "exif-worldregioncreated": "ચિત જે સ્થળે લેવાયું છે તે સ્થળનું વિશ્વ સ્થાન",
+       "exif-countrycreated": "જે દેશમાં આ ચિત્ર લેવાયું તેનું નામ",
+       "exif-countrycodecreated": "જે દેશમાં ચિત્ર લેવાયું તે દેશનો કોડ",
+       "exif-provinceorstatecreated": "જે સ્થળે ચિત્ર લેવાયું તે રાજ્યનું નામ",
+       "exif-citycreated": "જે શહેરમાં આ ચિત્ર લેવાયું તેનું નામ",
+       "exif-sublocationcreated": "આ ચિત્ર શહૅર ના આ જગ્યા મા લિધુ હતુ",
+       "exif-worldregiondest": "વિશ્વ સંદર્ભ ક્ષેત્ર દર્શાવાયું",
+       "exif-countrydest": "દેશ દર્શાવાયો",
+       "exif-countrycodedest": "દેશનો કોડ બતાવાયો",
+       "exif-provinceorstatedest": "રાજ્ય દર્શાવાયું",
+       "exif-citydest": "શહેર દર્શાવાયું",
+       "exif-sublocationdest": "દર્શાવેલ શહેરનો ઉપ વિભાગ",
+       "exif-objectname": "લઘુ શીર્ષક",
+       "exif-specialinstructions": "ખાસ સૂચનાઓ",
+       "exif-headline": "મથાળું",
+       "exif-credit": "ઋણ સ્વીકાર/સ્રોત",
+       "exif-source": "સ્રોત",
+       "exif-editstatus": "ચિત્ર સંપાદનની સ્થિતી",
+       "exif-urgency": "તાત્કાલિકતા",
+       "exif-fixtureidentifier": "સાધન નામ",
+       "exif-locationdest": "સ્થાન જણાવાયું",
+       "exif-locationdestcode": "સ્થાનનો કોડ વર્ણવાયો",
+       "exif-objectcycle": "માધ્યમ વપરશનો સમય",
+       "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": "મેટાડેટામાં છેલ્લા ફેરફારની તારીખ",
+       "exif-nickname": "ચિત્રનું અનૌપચારીક નામ",
+       "exif-rating": "ગુણાંક (૫ માંથી)",
+       "exif-rightscertificate": "હક્ક વ્યવસ્થાપન પ્રમાણપત્ર",
+       "exif-copyrighted": "પ્રકાશનાધિકાર સ્થિતિ",
+       "exif-copyrightowner": "પ્રકાશનાધિકાર ધારક",
+       "exif-usageterms": "વપરાશની શરતો",
+       "exif-webstatement": "ઑનલાઈન પ્રકાશન અધિકાર વક્તવ્ય",
+       "exif-originaldocumentid": "મૂલ પ્રતનું એક ID",
+       "exif-licenseurl": "પ્રકાશન પરવાનગી ધરવતા પાનાનું URL",
+       "exif-morepermissionsurl": "વૈકલ્પિક લાઇસન્સ માહિતી",
+       "exif-attributionurl": "આ કાર્ય ફરીથી વાપરતાં અહીં કડી આપો",
+       "exif-preferredattributionname": "આ કાર્ય ફરીથી વાપરતાં અહીં કડી આપો",
+       "exif-pngfilecomment": "JPEG ફાઈલ પરની ટીપ્પણી",
+       "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-2": "CCITT સમુદાય ૩ ૧-પરિમાણિય ફેરફાર કરેલુ Huffman રન લંબઈ એન્કોડિંગ",
+       "exif-compression-3": "CCITT સમૂહ 3 ફેક્સ ઍનકોડિંગ",
+       "exif-compression-4": "CCITT સમૂહ 3 ફેક્સ ઍનકોડિંગ",
+       "exif-copyrighted-true": "પ્રકાશન અધિકારથી સુરક્ષિત",
+       "exif-copyrighted-false": "કોપીરાઇટ સ્થિતિ ગોઠવેલ નથી",
+       "exif-unknowndate": "અજ્ઞાત તારીખ",
+       "exif-orientation-1": "સામાન્ય",
+       "exif-orientation-2": "ક્ષિતીજા સમાંતર પલટાવો",
+       "exif-orientation-3": "૧૮૦° ફેરવો",
+       "exif-orientation-4": "ઊભી દિશામાં પ્રતિબિંબિત કરો.",
+       "exif-orientation-5": " ઘડિયાળની વિરુદ્ધ દિશામાં ૯૦° ફેરવો અને ઊભી દિશામાં પ્રતિબિંબિત કરો",
+       "exif-orientation-6": "૯૦° કક્ષામાં ફરવું",
+       "exif-orientation-7": " ઘડિયાળની દિશામાં ૯૦° ફેરવો અને ઊભી દિશામાં પ્રતિબિંબિત કરો",
+       "exif-orientation-8": "ઘડિયાળની દિશામાં ૯૦° ફેરવો",
+       "exif-planarconfiguration-1": "ખરબચડું",
+       "exif-planarconfiguration-2": "સપાટ",
+       "exif-colorspace-65535": "અન કેલિબરેટેડ (Uncalibrated)",
+       "exif-componentsconfiguration-0": "નથી",
+       "exif-exposureprogram-0": "અવ્યાખ્યાયિત",
+       "exif-exposureprogram-1": "માનવ ચાલિત",
+       "exif-exposureprogram-2": "સામાન્ય પ્રણાલી",
+       "exif-exposureprogram-3": "છીદ્ર અગ્રતા",
+       "exif-exposureprogram-4": "શટર અગ્રતા",
+       "exif-exposureprogram-5": "રચનાત્મક પ્રોગ્રામ ( દ્રશ્યની ઊંડાઇ તરફ પૂર્વગ્રાહી)",
+       "exif-exposureprogram-6": "સક્રિય પ્રોગ્રામ ( ઝડપી શટર ગતિ પ્રત્યે પક્ષપાતી)",
+       "exif-exposureprogram-7": "વ્યક્તિ વિશેષ ચિત્રિકરણ ઢબ ( નજીકના કે ચહેરા પર લક્ષ્ય કેંદ્રીત અને પાછળનો દેખાવ લક્ષ્યથી બહાર)",
+       "exif-exposureprogram-8": "દેખાવ ચિત્રિકરણ ઢબ  (આજુબાજુ અને પાછળ ના પ્રાકૃતિક દેખાવ પર લક્ષ્ય કેન્દ્રીત)",
+       "exif-subjectdistance-value": "$1 મીટર",
+       "exif-meteringmode-0": "અજાણ્યો",
+       "exif-meteringmode-1": "સરાસરી",
+       "exif-meteringmode-2": "કેન્દ્રીય સરાસરી સમતોલન",
+       "exif-meteringmode-3": "બિંદુ",
+       "exif-meteringmode-4": "બિંદુઓ",
+       "exif-meteringmode-5": "ભાત",
+       "exif-meteringmode-6": "આશિંક",
+       "exif-meteringmode-255": "અન્ય",
+       "exif-lightsource-0": "અજાણ્યો",
+       "exif-lightsource-1": "દિવસ પ્રકાશ",
+       "exif-lightsource-2": "ફ્લોરોસ્કેન્ટ રંગો",
+       "exif-lightsource-3": "ટંગસ્ટાન  (બલ્બ પ્રકાશ)",
+       "exif-lightsource-4": "જબકારો (ફ્લેશ)",
+       "exif-lightsource-9": "સામાન્ય વાતાવરણ",
+       "exif-lightsource-10": "વાદળીયું વાતાવરણ",
+       "exif-lightsource-11": "છાયા",
+       "exif-lightsource-12": "દિવસ પ્રકાશ ટ્યૂબ લાઇટ (D 5700 – 7100K)",
+       "exif-lightsource-13": "દિન ધવલ ફ્લોરોસ્કેન્ટ (N 4600 – 5400K)",
+       "exif-lightsource-14": "શીત ધવલ ફ્લોરોસ્કેન્ટ (W 3900 – 4500K)",
+       "exif-lightsource-15": "ધવલ ફ્લોરોસ્કેન્ટ (WW 3200 – 3700K)",
+       "exif-lightsource-17": "પ્રમાણભૂત પ્રકાશ A",
+       "exif-lightsource-18": "પ્રમાણભૂત પ્રકાશ B",
+       "exif-lightsource-19": "પ્રમાણભૂત પ્રકાશ C",
+       "exif-lightsource-24": "ISO સ્ટુડીયો ટંગસ્ટન",
+       "exif-lightsource-255": "અન્ય પ્રકાશ સ્રોત",
+       "exif-flash-fired-0": "પ્રકાશ ઝબકારો ન થયો",
+       "exif-flash-fired-1": "ઝબકારો કરાયો",
+       "exif-flash-return-0": "પરતીનો સ્ટ્રોબ શોધ કાર્ય",
+       "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-sensingmethod-7": "ત્રિરેખીક સંવેદક",
+       "exif-sensingmethod-8": "અનુક્રમિત રંગ ક્ષેત્ર સંવેદક",
+       "exif-filesource-3": "ડિજીટલ સ્થિર કેમેરા",
+       "exif-scenetype-1": "અસલ ફોટો ધરાવતું ચિત્ર",
+       "exif-customrendered-0": "સામાન્ય પ્રક્રિયા",
+       "exif-customrendered-1": "પસંદગી પ્રક્રિયા",
+       "exif-exposuremode-0": "સ્વયંચાલિત પ્રકાશાભિમુખતા",
+       "exif-exposuremode-1": "માનવ ચાલિત પ્રકાશાભિમુખતા",
+       "exif-exposuremode-2": "સ્વયંચાલિત બ્રેકેટ પ્રણાલી (અન્ય પ્રકાશ સંવેદના સ્તરે)",
+       "exif-whitebalance-0": "સ્વયંચાલિત ધવલ સમતોલન",
+       "exif-whitebalance-1": "માનવાચાલિત ધવલ સમતોલન",
+       "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": "Soft",
+       "exif-contrast-2": "તીવ્ર",
+       "exif-saturation-0": "સામાન્ય",
+       "exif-saturation-1": "અલ્પ સંતૃપ્તિ",
+       "exif-saturation-2": "અધિક સંતૃપ્તિ",
+       "exif-sharpness-0": "સામાન્ય",
+       "exif-sharpness-1": "સૌમ્ય",
+       "exif-sharpness-2": "તીવ્ર",
+       "exif-subjectdistancerange-0": "અજાણ્યો",
+       "exif-subjectdistancerange-1": "કાર્યસૂચના- મેક્રો",
+       "exif-subjectdistancerange-2": "નજીક દર્શન",
+       "exif-subjectdistancerange-3": "દૂરનું દ્રશ્ય",
+       "exif-gpslatitude-n": "ઉત્તર અક્ષાંસ",
+       "exif-gpslatitude-s": "દક્ષિણ અક્ષાંસ",
+       "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-gpsdestdistance-m": "માઈલ",
+       "exif-gpsdestdistance-n": "દરિયાઈ માઈલ",
+       "exif-gpsdop-excellent": "ઉત્તમ ($1)",
+       "exif-gpsdop-good": "સાર્ ($1)",
+       "exif-gpsdop-moderate": "મધ્યમ ($1)",
+       "exif-gpsdop-fair": "વાજબી ($1)",
+       "exif-gpsdop-poor": "અપૂરતું  ($1)",
+       "exif-objectcycle-a": "સવાર",
+       "exif-objectcycle-p": "સાંજ",
+       "exif-objectcycle-b": "સવાર-સાંજ",
+       "exif-gpsdirection-t": "વાસ્તવિક દિશા",
+       "exif-gpsdirection-m": "ચુંબકીય દિશા",
+       "exif-ycbcrpositioning-1": "મધ્ય",
+       "exif-ycbcrpositioning-2": "સહ-સાઈટ",
+       "exif-dc-contributor": "યોગદાન આપનાર",
+       "exif-dc-coverage": "વ્યાપેલ",
+       "exif-dc-date": "તારીખ",
+       "exif-dc-publisher": "પ્રકાશક",
+       "exif-dc-relation": "સંબધિત માધ્યમ",
+       "exif-dc-rights": "હક્કો",
+       "exif-dc-source": "સ્રોત માધ્યમ",
+       "exif-dc-type": "માધ્યમનો પ્રકાર",
+       "exif-rating-rejected": "નામંજૂર",
+       "exif-isospeedratings-overflow": "65535 કરતાં વધુ",
+       "exif-iimcategory-ace": "કલા, સંસ્કૃતિ અને મનોરંજન",
+       "exif-iimcategory-clj": "ગુનો અને કાયદો",
+       "exif-iimcategory-dis": "હોનારતો અને અકસ્માતો",
+       "exif-iimcategory-fin": "અર્થશાસ્ત્ર અને વ્યાપાર",
+       "exif-iimcategory-edu": "અભ્યાસ",
+       "exif-iimcategory-evn": "પર્યાવરણ",
+       "exif-iimcategory-hth": "ત્અબ્ઇય્અત્",
+       "exif-iimcategory-hum": "માનવ રસ",
+       "exif-iimcategory-lab": "મજૂર",
+       "exif-iimcategory-lif": "લાઇફસ્ટાઇલ અને લેઝર",
+       "exif-iimcategory-pol": "રાજકારણ",
+       "exif-iimcategory-rel": "ધર્મ અને માન્યતા",
+       "exif-iimcategory-sci": "સાયન્સ અને ટેકનોલોજી",
+       "exif-iimcategory-soi": "સામાજિક સમસ્યાઓ",
+       "exif-iimcategory-spo": "રમતગમત",
+       "exif-iimcategory-war": "યુદ્ધ સંઘર્ષ, અને અશાંતિ",
+       "exif-iimcategory-wea": "હવામાન",
+       "exif-urgency-normal": "સામાન્ય ($1)",
+       "exif-urgency-low": "નિમ્ન ($1)",
+       "exif-urgency-high": "ઉચ્ચ ($1)",
+       "exif-urgency-other": "વપરાશકર્તા-વ્યાખ્યાયિત અગ્રતા ($1)"
+}
diff --git a/languages/i18n/exif/he.json b/languages/i18n/exif/he.json
new file mode 100644 (file)
index 0000000..0f51ec5
--- /dev/null
@@ -0,0 +1,363 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Amire80",
+                       "Guycn2",
+                       "Rotemliss"
+               ]
+       },
+       "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": "צבעוניות ה־Primarity",
+       "exif-ycbcrcoefficients": "מקדמי פעולת הטרנספורמציה של מרחב הצבע",
+       "exif-referenceblackwhite": "זוג ערכי התייחסות לשחור ולבן",
+       "exif-datetime": "התאריך והשעה של שינוי הקובץ",
+       "exif-imagedescription": "כותרת התמונה",
+       "exif-make": "יצרן המצלמה",
+       "exif-model": "דגם המצלמה",
+       "exif-software": "תוכנה בשימוש",
+       "exif-artist": "יוצר",
+       "exif-copyright": "בעל זכויות היוצרים",
+       "exif-exifversion": "גרסת Exif",
+       "exif-flashpixversion": "גרסת Flashpix נתמכת",
+       "exif-colorspace": "מרחב הצבע",
+       "exif-componentsconfiguration": "משמעות כל רכיב",
+       "exif-compressedbitsperpixel": "שיטת דחיסת התמונה",
+       "exif-pixelxdimension": "רוחב התמונה",
+       "exif-pixelydimension": "גובה התמונה",
+       "exif-usercomment": "הערות המשתמש",
+       "exif-relatedsoundfile": "קובץ שמע מקושר",
+       "exif-datetimeoriginal": "התאריך והשעה של יצירת הקובץ",
+       "exif-datetimedigitized": "התאריך והשעה של הפיכת הקובץ לדיגיטלי",
+       "exif-subsectime": "תת־השניות של שינוי הקובץ",
+       "exif-subsectimeoriginal": "תת־השניות של יצירת הקובץ",
+       "exif-subsectimedigitized": "תת־השניות של הפיכת הקובץ לדיגיטלי",
+       "exif-exposuretime": "זמן חשיפה",
+       "exif-exposuretime-format": "$1 שניות ($2)",
+       "exif-fnumber": "מספר המִפתח",
+       "exif-exposureprogram": "תוכנית החשיפה",
+       "exif-spectralsensitivity": "רגישות הספקטרום",
+       "exif-isospeedratings": "דירוג מהירות ה־ISO",
+       "exif-shutterspeedvalue": "מהירות צמצם ביחידות APEX",
+       "exif-aperturevalue": "מִפתח APEX",
+       "exif-brightnessvalue": "בהירות ביחידות APEX",
+       "exif-exposurebiasvalue": "נטיית החשיפה ביחידות APEX",
+       "exif-maxaperturevalue": "גודל המִפתח המרבי",
+       "exif-subjectdistance": "מרחק נושא הצילום",
+       "exif-meteringmode": "שיטת מדידה",
+       "exif-lightsource": "מקור אור",
+       "exif-flash": "מַבזק",
+       "exif-focallength": "אורך מוקדי העדשות",
+       "exif-focallength-format": "{{PLURAL:$1|מילימטר אחד|$1 מילימטרים}}",
+       "exif-subjectarea": "נושא האזור",
+       "exif-flashenergy": "אנרגיית המַבזק",
+       "exif-focalplanexresolution": "משטח המוקד ברזולוציה האופקית",
+       "exif-focalplaneyresolution": "משטח המוקד ברזולוציה האנכית",
+       "exif-focalplaneresolutionunit": "יחידת המידה של משטח המוקד ברזולוציה",
+       "exif-subjectlocation": "נושא המיקום",
+       "exif-exposureindex": "מדד החשיפה",
+       "exif-sensingmethod": "שיטת חישה",
+       "exif-filesource": "מקור הקובץ",
+       "exif-scenetype": "סוג הסצנה",
+       "exif-customrendered": "עיבוד תמונה מותאם",
+       "exif-exposuremode": "מצב החשיפה",
+       "exif-whitebalance": "איזון צבע לבן",
+       "exif-digitalzoomratio": "יחס ההתקרבות הדיגיטלית",
+       "exif-focallengthin35mmfilm": "אורך מוקדי העדשות בסרט צילום של 35 מ\"מ",
+       "exif-scenecapturetype": "אופן צילום הסצנה",
+       "exif-gaincontrol": "בקרת הסצנה",
+       "exif-contrast": "ניגוד",
+       "exif-saturation": "רוויה",
+       "exif-sharpness": "חדות",
+       "exif-devicesettingdescription": "תיאור הגדרות ההתקן",
+       "exif-subjectdistancerange": "טווח נושא המרחק",
+       "exif-imageuniqueid": "מזהה תמונה ייחודי",
+       "exif-gpsversionid": "גרסת תגי GPS",
+       "exif-gpslatituderef": "קו־רוחב צפוני או דרומי",
+       "exif-gpslatitude": "קו־רוחב",
+       "exif-gpslongituderef": "קו־אורך מזרחי או מערבי",
+       "exif-gpslongitude": "קו־אורך",
+       "exif-gpsaltituderef": "התייחסות גובה",
+       "exif-gpsaltitude": "גובה",
+       "exif-gpstimestamp": "זמן GPS (שעון אטומי)",
+       "exif-gpssatellites": "לוויינים ששימשו למדידה",
+       "exif-gpsstatus": "מעמד המקלט",
+       "exif-gpsmeasuremode": "מצב מדידה",
+       "exif-gpsdop": "דיוק מדידה",
+       "exif-gpsspeedref": "יחידת מהירות",
+       "exif-gpsspeed": "יחידת מהירות של מקלט GPS",
+       "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": "שם אזור ה־GPS",
+       "exif-gpsdatestamp": "תאריך ה־GPS",
+       "exif-gpsdifferential": "תיקון דיפרנציאלי של ה־GPS",
+       "exif-jpegfilecomment": "הערה בקובץ JPEG",
+       "exif-keywords": "מילות מפתח",
+       "exif-worldregioncreated": "האזור בעולם שבו התמונה צולמה",
+       "exif-countrycreated": "מדינה שבה התמונה צולמה",
+       "exif-countrycodecreated": "קוד מדינה שבה התמונה צולמה",
+       "exif-provinceorstatecreated": "הישות התת־לאומית שבה התמונה צולמה",
+       "exif-citycreated": "העיר שבה התמונה צולמה",
+       "exif-sublocationcreated": "התת־מיקום בתוך העיר שבו התמונה צולמה",
+       "exif-worldregiondest": "האזור בעולם שמוצג",
+       "exif-countrydest": "המדינה המוצגת",
+       "exif-countrycodedest": "קוד המדינה המוצגת",
+       "exif-provinceorstatedest": "הישות התת־לאומיות המוצגת",
+       "exif-citydest": "העיר המוצגת",
+       "exif-sublocationdest": "התת־מיקום בתוך העיר שמוצג",
+       "exif-objectname": "כותרת קצרה",
+       "exif-specialinstructions": "הוראות מיוחדות",
+       "exif-headline": "כותרת",
+       "exif-credit": "מִזכה/סַפָּק",
+       "exif-source": "מקור",
+       "exif-editstatus": "מצב העריכה של תמונה",
+       "exif-urgency": "דחיפות",
+       "exif-fixtureidentifier": "קבועה",
+       "exif-locationdest": "המיקום המוצג",
+       "exif-locationdestcode": "קוד המיקום המוצג",
+       "exif-objectcycle": "הזמן ביום שהמדיה מיועדת אליו",
+       "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": "תאריך השינוי האחרון של המטא־נתונים",
+       "exif-nickname": "שם תיאורי של התמונה",
+       "exif-rating": "דירוג (מתוך 5)",
+       "exif-rightscertificate": "אישור ניהול זכויות",
+       "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-2": "קידוד הופמן מותאם חד־ממדי לאורך ריצה CCITT קבוצה 3",
+       "exif-compression-3": "קידוד פקס CCITT קבוצה 3",
+       "exif-compression-4": "קידוד פקס CCITT קבוצה 4",
+       "exif-compression-6": "JPEG (ישן)",
+       "exif-compression-8": "Deflate (של Adobe)",
+       "exif-compression-32773": "PackBits (של Macintosh RLE)",
+       "exif-compression-32946": "Deflate (של PKZIP)",
+       "exif-copyrighted-true": "מוגן בזכויות יוצרים",
+       "exif-copyrighted-false": "מצב זכויות היוצרים לא הוגדר",
+       "exif-photometricinterpretation-0": "שחור־לבן (לבן זה 0)",
+       "exif-photometricinterpretation-1": "שחור־לבן (שחור זה 0)",
+       "exif-photometricinterpretation-3": "לוח צבעים",
+       "exif-photometricinterpretation-4": "מסכת שקיפות",
+       "exif-photometricinterpretation-5": "מופרד (כנראה CMYK)",
+       "exif-photometricinterpretation-8": "CIE L*a*b*‎",
+       "exif-photometricinterpretation-9": "CIE L*a*b*‎ (קידוד ICC)",
+       "exif-photometricinterpretation-10": "CIE L*a*b*‎ (קידוד ITU)",
+       "exif-photometricinterpretation-32803": "מערך סינון צבע",
+       "exif-photometricinterpretation-34892": "גולמי קווי",
+       "exif-unknowndate": "תאריך בלתי ידוע",
+       "exif-orientation-1": "רגילה",
+       "exif-orientation-2": "הפוך אופקית",
+       "exif-orientation-3": "מסובב 180°",
+       "exif-orientation-4": "הפוך אנכית",
+       "exif-orientation-5": "מסובב 90° נגד כיוון השעון והפוך אנכית",
+       "exif-orientation-6": "מסובב 90° נגד כיוון השעון",
+       "exif-orientation-7": "מסובב 90° עם כיוון השעון והפוך אנכית",
+       "exif-orientation-8": "מסובב 90° עם כיוון השעון",
+       "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-exposureprogram-5": "תוכנית יוצרת (עם נטייה לעומק השדה)",
+       "exif-exposureprogram-6": "תוכנית פועלת (עם נטייה למהירות צמצם גבוהה)",
+       "exif-exposureprogram-7": "מצב דיוקן (לתמונות צילום מקרוב כשהרקע לא ממוקד)",
+       "exif-exposureprogram-8": "מצב נוף (לתמונות נוף כשהרקע ממוקד)",
+       "exif-subjectdistance-value": "{{PLURAL:$1|מטר אחד|$1 מטרים}}",
+       "exif-meteringmode-0": "לא ידוע",
+       "exif-meteringmode-1": "ממוצע",
+       "exif-meteringmode-2": "מרכז משקל ממוצע",
+       "exif-meteringmode-3": "נקודה",
+       "exif-meteringmode-4": "רב־נקודה",
+       "exif-meteringmode-5": "תבנית",
+       "exif-meteringmode-6": "חלקי",
+       "exif-meteringmode-255": "אחר",
+       "exif-lightsource-0": "לא ידוע",
+       "exif-lightsource-1": "אור יום",
+       "exif-lightsource-2": "פלואורסצנטי",
+       "exif-lightsource-3": "טונגסטן (אור מתלהט)",
+       "exif-lightsource-4": "מַבזק",
+       "exif-lightsource-9": "מזג־אוויר נאה",
+       "exif-lightsource-10": "מזג־אוויר מעונן",
+       "exif-lightsource-11": "צל",
+       "exif-lightsource-12": "אור יום פלואורסצנטי (D 5700 – 7100K)",
+       "exif-lightsource-13": "אור יום לבן פלואורסצנטי (N 4600 – 5400K)",
+       "exif-lightsource-14": "אור יום קריר לבן פלואורסצנטי (W 3900 – 4500K)",
+       "exif-lightsource-15": "פלואורסצנטי לבן (WW 3200 – 3700K)",
+       "exif-lightsource-17": "אור רגיל A",
+       "exif-lightsource-18": "אור רגיל B",
+       "exif-lightsource-19": "אור רגיל C",
+       "exif-lightsource-24": "טונגסטן אולפן ISO",
+       "exif-lightsource-255": "מקור אור אחר",
+       "exif-flash-fired-0": "המַבזק לא הופעל",
+       "exif-flash-fired-1": "המַבזק הופעל",
+       "exif-flash-return-0": "ללא התכונה של גילוי חזרת סטרובוסקופ",
+       "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-sensingmethod-7": "חיישן טריליניארי",
+       "exif-sensingmethod-8": "חיישן עם צבע רציף קווי",
+       "exif-filesource-3": "מצלמת תמונות ספרתית",
+       "exif-scenetype-1": "תמונה שצולמה ישירות",
+       "exif-customrendered-0": "תהליך רגיל",
+       "exif-customrendered-1": "תהליך מותאם",
+       "exif-exposuremode-0": "חשיפה אוטומטית",
+       "exif-exposuremode-1": "חשיפה ידנית",
+       "exif-exposuremode-2": "מסגרת אוטומטית",
+       "exif-whitebalance-0": "איזון צבע לבן אוטומטי",
+       "exif-whitebalance-1": "איזון צבע לבן ידני",
+       "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-saturation-0": "רגילה",
+       "exif-saturation-1": "רוויה נמוכה",
+       "exif-saturation-2": "רוויה גבוהה",
+       "exif-sharpness-0": "רגילה",
+       "exif-sharpness-1": "רכה",
+       "exif-sharpness-2": "קשה",
+       "exif-subjectdistancerange-0": "לא ידוע",
+       "exif-subjectdistancerange-1": "מאקרו",
+       "exif-subjectdistancerange-2": "תצוגה קרובה",
+       "exif-subjectdistancerange-3": "תצוגה רחוקה",
+       "exif-gpslatitude-n": "קו־רוחב צפוני",
+       "exif-gpslatitude-s": "קו־רוחב דרומי",
+       "exif-gpslongitude-e": "קו־אורך מזרחי",
+       "exif-gpslongitude-w": "קו־אורך מערבי",
+       "exif-gpsaltitude-above-sealevel": "{{PLURAL:$1|מטר אחד|$1 מטרים}} מעל פני הים",
+       "exif-gpsaltitude-below-sealevel": "{{PLURAL:$1|מטר אחד|$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-gpsdestdistance-m": "מיילים",
+       "exif-gpsdestdistance-n": "מיילים ימיים",
+       "exif-gpsdop-excellent": "מצוין ($1)",
+       "exif-gpsdop-good": "טוב ($1)",
+       "exif-gpsdop-moderate": "בינוני ($1)",
+       "exif-gpsdop-fair": "סביר ($1)",
+       "exif-gpsdop-poor": "גרוע ($1)",
+       "exif-objectcycle-a": "בוקר בלבד",
+       "exif-objectcycle-p": "ערב בלבד",
+       "exif-objectcycle-b": "בוקר וערב",
+       "exif-gpsdirection-t": "כיוון אמיתי",
+       "exif-gpsdirection-m": "כיוון מגנטי",
+       "exif-ycbcrpositioning-1": "ממורכזים",
+       "exif-ycbcrpositioning-2": "באותו מקום",
+       "exif-dc-contributor": "תורמים",
+       "exif-dc-coverage": "היקף מרחבי או זמני של המדיה",
+       "exif-dc-date": "תאריך/תאריכים",
+       "exif-dc-publisher": "מוציא לאור",
+       "exif-dc-relation": "מדיה קשורה",
+       "exif-dc-rights": "זכויות",
+       "exif-dc-source": "המדיה המקורית",
+       "exif-dc-type": "סוג המדיה",
+       "exif-rating-rejected": "נדחה",
+       "exif-isospeedratings-overflow": "מעל 65535",
+       "exif-maxaperturevalue-value": "$1 APEX (יחידות: f/$2)",
+       "exif-iimcategory-ace": "אומנויות, תרבות ובידור",
+       "exif-iimcategory-clj": "פשע ומשפט",
+       "exif-iimcategory-dis": "אסונות ותאונות",
+       "exif-iimcategory-fin": "כלכלה ועסקים",
+       "exif-iimcategory-edu": "חינוך",
+       "exif-iimcategory-evn": "סביבה",
+       "exif-iimcategory-hth": "בריאות",
+       "exif-iimcategory-hum": "עניין לאדם",
+       "exif-iimcategory-lab": "עבודה",
+       "exif-iimcategory-lif": "סגנון חיים ופנאי",
+       "exif-iimcategory-pol": "פוליטיקה",
+       "exif-iimcategory-rel": "דת ואמונה",
+       "exif-iimcategory-sci": "מדע וטכנולוגיה",
+       "exif-iimcategory-soi": "סוגיות חברתיות",
+       "exif-iimcategory-spo": "ספורט",
+       "exif-iimcategory-war": "מלחמה, סכסוך והפרת סדר",
+       "exif-iimcategory-wea": "מזג־אוויר",
+       "exif-urgency-normal": "רגילה ($1)",
+       "exif-urgency-low": "נמוכה ($1)",
+       "exif-urgency-high": "גבוהה ($1)",
+       "exif-urgency-other": "מותאמת אישית ($1)"
+}
diff --git a/languages/i18n/exif/hi.json b/languages/i18n/exif/hi.json
new file mode 100644 (file)
index 0000000..6eebde3
--- /dev/null
@@ -0,0 +1,357 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ansumang",
+                       "Hindustanilanguage",
+                       "Kannankumar",
+                       "Kaustubh",
+                       "Sajeel.irkal",
+                       "Sfic",
+                       "Shantanoo",
+                       "Siddhartha Ghai",
+                       "आलोक",
+                       "रोहित रावत"
+               ]
+       },
+       "exif-imagewidth": "चौड़ाई",
+       "exif-imagelength": "ऊँचाई",
+       "exif-bitspersample": "प्रति घटक बीट्स",
+       "exif-compression": "कम्प्रेशन योजना",
+       "exif-photometricinterpretation": "पिक्सेल कॉम्पोझीशन",
+       "exif-orientation": "अभिविन्यास",
+       "exif-samplesperpixel": "घटकोंकी संख्या",
+       "exif-planarconfiguration": "डाटा रचना",
+       "exif-ycbcrsubsampling": "Y का C के साथ सबसॅम्पलींग अनुमान",
+       "exif-ycbcrpositioning": "Y और C का पोज़िशनिंग",
+       "exif-xresolution": "होरिज़ॉंटल रिज़ोल्यूशन",
+       "exif-yresolution": "व्हर्टिकल रिज़ोल्यूशन",
+       "exif-stripoffsets": "चित्र डाटा स्थान",
+       "exif-rowsperstrip": "हर स्ट्रीपमें कतारोंकी संख्या",
+       "exif-stripbytecounts": "कॉम्प्रेस्स्ड स्ट्रीपमें बाईट्स",
+       "exif-jpeginterchangeformat": "JPEG SOI के लिये ऑफसेट",
+       "exif-jpeginterchangeformatlength": "JPEG डाटाके बाईट्स",
+       "exif-whitepoint": "सफेद बिंदू क्रोमॅटिसिटी",
+       "exif-primarychromaticities": "क्रोमॅटिसिटीज ऑफ प्राईमारिटीज",
+       "exif-ycbcrcoefficients": "कलर स्पेस ट्रान्स्फॉर्मेशन मॅट्रीक्स कोएफिशीयंट्स",
+       "exif-referenceblackwhite": "काले और सफेद संदर्भ मूल्योंकी जोड़ी",
+       "exif-datetime": "फ़ाईल बदलाव दिनांक और समय",
+       "exif-imagedescription": "चित्र शीर्षक",
+       "exif-make": "कैमेरा उत्पादक",
+       "exif-model": "कैमेरा मॉडेल",
+       "exif-software": "इस्तेमाल किया हुआ सॉफ्टवेयर",
+       "exif-artist": "लेखक",
+       "exif-copyright": "कोपीराईट का धारक",
+       "exif-exifversion": "Exif अवतरण",
+       "exif-flashpixversion": "सपोर्टेड फ्लॅशपीक्स अवतरण",
+       "exif-colorspace": "रंग स्थान",
+       "exif-componentsconfiguration": "हर घटक का मतलब",
+       "exif-compressedbitsperpixel": "चित्र कॉम्प्रेशन मोड",
+       "exif-pixelxdimension": "छवि चौड़ाई",
+       "exif-pixelydimension": "छवि ऊँचाई",
+       "exif-usercomment": "सदस्य टिप्पणी",
+       "exif-relatedsoundfile": "संबंधित ध्वनी फ़ाईल",
+       "exif-datetimeoriginal": "डाटा बनाने का दिनांक और समय",
+       "exif-datetimedigitized": "डिजिटाईज़िंग का दिनांक और समय",
+       "exif-subsectime": "दिनांकसमय उपसेकंद",
+       "exif-subsectimeoriginal": "मूलदिनांकसमय उपसेकंड",
+       "exif-subsectimedigitized": "दिनांकसमयडिजिटाईज्ड उपसेकेंड",
+       "exif-exposuretime": "एक्स्पोज़र समय",
+       "exif-exposuretime-format": "$1 सेकंड ($2)",
+       "exif-fnumber": "F संख्या",
+       "exif-exposureprogram": "एक्स्पोज़र प्रोग्रेम",
+       "exif-spectralsensitivity": "स्पेक्ट्रल सेन्सिटीव्हिटी",
+       "exif-isospeedratings": "ISO गती मूल्यमापन",
+       "exif-shutterspeedvalue": "APEX शटर गती",
+       "exif-aperturevalue": "APEX ऍपर्चर",
+       "exif-brightnessvalue": "APEX ब्राईटनेस",
+       "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": "व्हाईट बॅलन्स",
+       "exif-digitalzoomratio": "डिजिटल झूम अनुमान",
+       "exif-focallengthin35mmfilm": "३५ मी.मी. फ़ील्ममें फोकल लंबाई",
+       "exif-scenecapturetype": "सीन कॅप्चर प्रकार",
+       "exif-gaincontrol": "सीन नियंत्रण",
+       "exif-contrast": "कॉन्ट्रास्ट",
+       "exif-saturation": "सॅचूरेशन",
+       "exif-sharpness": "शार्पनेस",
+       "exif-devicesettingdescription": "उपकरण रचना वर्णन",
+       "exif-subjectdistancerange": "सब्जेक्ट डिस्टन्स रेंज",
+       "exif-imageuniqueid": "यूनिक चित्र ID",
+       "exif-gpsversionid": "GPS टॅग अवतरण",
+       "exif-gpslatituderef": "उत्तर या दक्षिण अक्षांश",
+       "exif-gpslatitude": "अक्षांश",
+       "exif-gpslongituderef": "पूर्व या पश्चिम रेखांश",
+       "exif-gpslongitude": "रेखांश",
+       "exif-gpsaltituderef": "अल्टिट्यूड संदर्भ",
+       "exif-gpsaltitude": "अल्टिट्यूड",
+       "exif-gpstimestamp": "GPS समय (एटोमिक क्लॉक)",
+       "exif-gpssatellites": "मापनके लिये इस्तेमाल किया हुआ सैटेलाईट",
+       "exif-gpsstatus": "प्राप्तकर्ता की स्थिती",
+       "exif-gpsmeasuremode": "मेज़रमेंट मोड",
+       "exif-gpsdop": "मेज़रमेंट प्रिसिजन",
+       "exif-gpsspeedref": "गती एकक",
+       "exif-gpsspeed": "GPS रिसिवर की गती",
+       "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": "GPS विभागका नाम",
+       "exif-gpsdatestamp": "GPS दिनांक",
+       "exif-gpsdifferential": "GPS डिफरन्शियर करेक्शन",
+       "exif-jpegfilecomment": "JPEG फ़ाइल टिप्पणी",
+       "exif-keywords": "कीवर्ड",
+       "exif-worldregioncreated": "दुनिया क्षेत्र जहां ये चित्र लिया गया है",
+       "exif-countrycreated": "देश जहां ये चित्र लिया गया है",
+       "exif-countrycodecreated": "देश के लिए कोड जहां ये चित्र लिया गया है",
+       "exif-provinceorstatecreated": "प्रांत या राज्य जहां ये चित्र लिया गया है",
+       "exif-citycreated": "शहर जहां ये चित्र लिया गया है",
+       "exif-sublocationcreated": "यह चित्र शहर कि इस जगह जहा मे लिया गया था",
+       "exif-worldregiondest": "दुनिया का क्षेत्र दिखाया हे",
+       "exif-countrydest": "देश दिखया गया हे",
+       "exif-countrycodedest": "देश के लिए कोड दिखाया गया हे",
+       "exif-provinceorstatedest": "प्रांत या राज्य दिखाया गया हे",
+       "exif-citydest": "शहर दिखया गया हे",
+       "exif-sublocationdest": "शहर के एक जगह दिखाया गया हे",
+       "exif-objectname": "लघु शीर्षक",
+       "exif-specialinstructions": "विशेष निर्देश",
+       "exif-headline": "शीर्षक",
+       "exif-credit": "क्रेडिट/प्रदाता",
+       "exif-source": "स्रोत",
+       "exif-editstatus": "छवि की संपादकीय स्थिति",
+       "exif-urgency": "तात्कालिकता",
+       "exif-fixtureidentifier": "स्थिरता का नाम",
+       "exif-locationdest": "स्थान दिखाया गया हे",
+       "exif-locationdestcode": "स्थान का कोड दिखाया गया हे",
+       "exif-objectcycle": " दिन के समय जिस्केलियए यह मीडिया है",
+       "exif-contact": "संपर्क जानकारी",
+       "exif-writer": "लेखक",
+       "exif-languagecode": "भाषा",
+       "exif-iimversion": "आईआईएम संस्करण",
+       "exif-iimcategory": "श्रेणी",
+       "exif-iimsupplementalcategory": "पूरक श्रेणियाँ",
+       "exif-datetimeexpires": "के बाद का उपयोग न करें",
+       "exif-datetimereleased": "पर जारी",
+       "exif-originaltransmissionref": "मूल प्रसारण स्थान कोड",
+       "exif-identifier": "पहचानकर्ता",
+       "exif-lens": "इस्तेमाल किया गया लेंस",
+       "exif-serialnumber": "कैमरे का क्रमांक नंबर",
+       "exif-cameraownername": "कैमरे के मालिक",
+       "exif-label": "लेबल",
+       "exif-datetimemetadata": "दिनांक जब मेटाडेटा अंतिम बार संशोधित किया गया",
+       "exif-nickname": "छवि के अनौपचारिक नाम",
+       "exif-rating": "दर्ज़ा (5 से)",
+       "exif-rightscertificate": "अधिकार प्रबंधन प्रमाण पत्र",
+       "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-2": "सी०सी०आई०टी०टी० ग्रुप ३ १-डाइमेंशन वाली संशोधित हफ़मैन दौड़ की लम्बाई से जुड़ी एनकोडिंग",
+       "exif-compression-3": "CCITT ग्रुप 3 फ़ैक्स एनकोडिंग",
+       "exif-compression-4": "CCITT ग्रुप 4 फ़ैक्स एनकोडिंग",
+       "exif-copyrighted-true": "कॉपीराईट",
+       "exif-copyrighted-false": "कॉपीराइट स्थिति अनिर्दिष्ट",
+       "exif-photometricinterpretation-0": "काला और सफेद (सफेद 0 है)",
+       "exif-photometricinterpretation-1": "काला और सफेद (काला 0 है)",
+       "exif-unknowndate": "अज्ञात तारीख",
+       "exif-orientation-1": "सामान्य",
+       "exif-orientation-2": "हॉरिज़ॉन्टली बदला",
+       "exif-orientation-3": "180° घूमाया",
+       "exif-orientation-4": "वर्टिकली बदला",
+       "exif-orientation-5": "90° CCW घूमाया और वर्टिकली बदला",
+       "exif-orientation-6": "90° CCW घुमाया",
+       "exif-orientation-7": "90° CW घूमाया और वर्टिकली बदला",
+       "exif-orientation-8": "90° CW घुमाया",
+       "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-exposureprogram-5": "क्रियेटीव्ह कार्यक्रम (फ़ील्ड की डेप्थ की तरफ बायस्‌ड)",
+       "exif-exposureprogram-6": "ऐक्शन कार्यक्रम (शटर की गती की तरफ बायस्‌ड)",
+       "exif-exposureprogram-7": "पोर्ट्रेट मोड (क्लोज़‍अप फ़ोटो के लिये)",
+       "exif-exposureprogram-8": "लैंडस्केप मोड (बैकग्राउंड के साथ लैंडस्केप फोटो)",
+       "exif-subjectdistance-value": "$1 मीटर",
+       "exif-meteringmode-0": "अज्ञात",
+       "exif-meteringmode-1": "ऍव्हरेज",
+       "exif-meteringmode-2": "सेंटरवेटेडएवरेज",
+       "exif-meteringmode-3": "स्पॉट",
+       "exif-meteringmode-4": "मल्टीस्पॉट",
+       "exif-meteringmode-5": "पॅटर्न",
+       "exif-meteringmode-6": "पार्शिअल",
+       "exif-meteringmode-255": "अन्य",
+       "exif-lightsource-0": "अज्ञात",
+       "exif-lightsource-1": "सूर्यप्रकाश",
+       "exif-lightsource-2": "फ्लूरोसेंट",
+       "exif-lightsource-3": "टंगस्ट्न (इनकॅन्‍डेसेंट प्रकाश)",
+       "exif-lightsource-4": "फ्लॅश",
+       "exif-lightsource-9": "अच्छा वातावरण",
+       "exif-lightsource-10": "बादलसे युक्त वातावरण",
+       "exif-lightsource-11": "शेड",
+       "exif-lightsource-12": "डेलाईट फ्लूरोसेंट (D 5700 – 7100K)",
+       "exif-lightsource-13": "डे व्हाईट फ्लूरोसेंट (N 4600 – 5400K)",
+       "exif-lightsource-14": "कूल व्हाईट फ्लूरोसेंट (W 3900 – 4500K)",
+       "exif-lightsource-15": "व्हाईट फ्लूरोसेंट (WW 3200 – 3700K)",
+       "exif-lightsource-17": "प्रमाण प्रकाश A",
+       "exif-lightsource-18": "प्रमाण प्रकाश B",
+       "exif-lightsource-19": "प्रमाण प्रकाश C",
+       "exif-lightsource-21": "D75",
+       "exif-lightsource-24": "ISO स्टूडीयो टंगस्टन",
+       "exif-lightsource-255": "अन्य प्रकाश स्रोत",
+       "exif-flash-fired-0": "फ़्लैश नहीं चला",
+       "exif-flash-fired-1": "फ़्लैश चला",
+       "exif-flash-return-0": "कोई फ़्लैश वापसी पहचान सुविधा नहीं",
+       "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-sensingmethod-7": "ट्रायलिनीयर सेंसर",
+       "exif-sensingmethod-8": "कलर सिक्वेंशीयल लिनीयर सेन्सर",
+       "exif-filesource-3": "डिजिटल स्टिल कैमरा",
+       "exif-scenetype-1": "डायरेक्टली छायाचित्रीत चित्र",
+       "exif-customrendered-0": "सामान्य प्रक्रिया",
+       "exif-customrendered-1": "कस्टम प्रक्रिया",
+       "exif-exposuremode-0": "ऑटो एक्स्पोज़र",
+       "exif-exposuremode-1": "मैन्युअल एक्पोज़र",
+       "exif-exposuremode-2": "ऑटो ब्रॅकेट",
+       "exif-whitebalance-0": "ऑटो व्हाईट बैलेन्स",
+       "exif-whitebalance-1": "मॅन्यूअल व्हाईट बॅलेन्स",
+       "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-saturation-0": "सामान्य",
+       "exif-saturation-1": "निम्न सैचुरेशन",
+       "exif-saturation-2": "उच्च सैचुरेशन",
+       "exif-sharpness-0": "साधारण",
+       "exif-sharpness-1": "मृदू",
+       "exif-sharpness-2": "कठीन",
+       "exif-subjectdistancerange-0": "अज्ञात",
+       "exif-subjectdistancerange-1": "मैक्रो",
+       "exif-subjectdistancerange-2": "नजदीक से देखें",
+       "exif-subjectdistancerange-3": "दूर से देखें",
+       "exif-gpslatitude-n": "उत्तरी अक्षांश",
+       "exif-gpslatitude-s": "दक्षिणी अक्षांश",
+       "exif-gpslongitude-e": "पूर्वी रेखांश",
+       "exif-gpslongitude-w": "पश्चिमी रेखांश",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter|meters}} समुद्र स्तर से ऊपर",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter|meters}} समुद्र स्तर के नीचे",
+       "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-gpsdestdistance-m": "मील की दूरी",
+       "exif-gpsdestdistance-n": "समुद्री मील",
+       "exif-gpsdop-excellent": "उत्कृष्ट ( $1 )",
+       "exif-gpsdop-good": "अच्छा ($1)",
+       "exif-gpsdop-moderate": "मध्यम ($1)",
+       "exif-gpsdop-fair": "निष्पक्ष ($1)",
+       "exif-gpsdop-poor": "गरिब ($1)",
+       "exif-objectcycle-a": "केवल सुबह",
+       "exif-objectcycle-p": "केवल शाम",
+       "exif-objectcycle-b": "दोनों सुबह और शाम",
+       "exif-gpsdirection-t": "असली दिशा",
+       "exif-gpsdirection-m": "मैग्नेटिक दिशा",
+       "exif-ycbcrpositioning-1": "केंद्रित",
+       "exif-ycbcrpositioning-2": "द्वि-जालस्थलीय",
+       "exif-dc-contributor": "योगदानकर्ताएँ",
+       "exif-dc-coverage": "मीडिया के स्थानिक या लौकिक स्कोप",
+       "exif-dc-date": "दिनांक",
+       "exif-dc-publisher": "प्रकाशक",
+       "exif-dc-relation": "सम्बधित मीडिया",
+       "exif-dc-rights": "अधिकार",
+       "exif-dc-source": "मीडिया स्रोत",
+       "exif-dc-type": "मीडिया का प्रकार",
+       "exif-rating-rejected": "खारिज कर दियागया",
+       "exif-isospeedratings-overflow": "६५५३५ से अधिक",
+       "exif-iimcategory-ace": "कला, संस्कृति और मनोरंजन",
+       "exif-iimcategory-clj": "अपराध और कानून",
+       "exif-iimcategory-dis": "आपदाओं और दुर्घटनाओं",
+       "exif-iimcategory-fin": "अर्थव्यवस्था और व्यापार",
+       "exif-iimcategory-edu": "शिक्षा",
+       "exif-iimcategory-evn": "पर्यावरण",
+       "exif-iimcategory-hth": "स्वास्थ्य",
+       "exif-iimcategory-hum": "मानवी रुचि",
+       "exif-iimcategory-lab": "श्रम",
+       "exif-iimcategory-lif": "जीवन शैली और अवकाश",
+       "exif-iimcategory-pol": "राजनीति",
+       "exif-iimcategory-rel": "धर्म और विश्वास",
+       "exif-iimcategory-sci": "विज्ञान और प्रौद्योगिकी",
+       "exif-iimcategory-soi": "सामाजिक मुद्दे",
+       "exif-iimcategory-spo": "खेल",
+       "exif-iimcategory-war": "युद्ध, संघर्ष और अशांति",
+       "exif-iimcategory-wea": "मौसम",
+       "exif-urgency-normal": "सामान्य ( $1 )",
+       "exif-urgency-low": "न्यूनतम ($1)",
+       "exif-urgency-high": "उच्चतम ($1)",
+       "exif-urgency-other": "यूज़र-डिफ़ाइंड प्राथमिकता ( $1 )"
+}
diff --git a/languages/i18n/exif/hif-latn.json b/languages/i18n/exif/hif-latn.json
new file mode 100644 (file)
index 0000000..40b93e5
--- /dev/null
@@ -0,0 +1,351 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Abdul Kadir",
+                       "Bihari",
+                       "Brijlal",
+                       "Girmitya",
+                       "Smcnarayan",
+                       "Thakurji"
+               ]
+       },
+       "exif-imagewidth": "Chaurrai",
+       "exif-imagelength": "Unchai",
+       "exif-bitspersample": "Bits per component",
+       "exif-compression": "Compression scheme",
+       "exif-photometricinterpretation": "Pixel ke banawat",
+       "exif-orientation": "Orientation",
+       "exif-samplesperpixel": "Tukrraa ke ginti",
+       "exif-planarconfiguration": "aakrraa ke parbandh",
+       "exif-ycbcrsubsampling": "Subsampling ratio of Y to C",
+       "exif-ycbcrpositioning": "Y aur C ke jagha",
+       "exif-xresolution": "Baraabar ke resolution",
+       "exif-yresolution": "Kharraa resolution",
+       "exif-stripoffsets": "Chapa ke aankrraa ke jagha",
+       "exif-rowsperstrip": "Ek strip me etna row hae",
+       "exif-stripbytecounts": "Ek compressed strip pe ketna byte",
+       "exif-jpeginterchangeformat": "JPEG SOI se ketna offset",
+       "exif-jpeginterchangeformatlength": "Ketna JPEG data, bytes me",
+       "exif-whitepoint": "Ujjar point ke quality",
+       "exif-primarychromaticities": "Primary rang ke quality",
+       "exif-ycbcrcoefficients": "Rang space transformation matrix coefficients",
+       "exif-referenceblackwhite": "Ek jorraa karia aur ujjar reference values",
+       "exif-datetime": "Suchi ke badle waala tarik aur samay",
+       "exif-imagedescription": "Chapa ke padwi",
+       "exif-make": "Camera ke banae waala",
+       "exif-model": "Camera ke model",
+       "exif-software": "Software jiske kaam me lawa gais hae",
+       "exif-artist": "Likhe waala",
+       "exif-copyright": "Copyright ke adhikar rakkhae waala",
+       "exif-exifversion": "Exif ke version",
+       "exif-flashpixversion": "Flashpix version jiske support karaa jaawe hae",
+       "exif-colorspace": "Rang ke jagha",
+       "exif-componentsconfiguration": "Har ek component ke matlab",
+       "exif-compressedbitsperpixel": "Chapa ke compression mode",
+       "exif-pixelxdimension": "Chaapa ke thiik chaurrai",
+       "exif-pixelydimension": "Chaapa ke thiik uunchai",
+       "exif-usercomment": "Sadasysa ke bichar",
+       "exif-relatedsoundfile": "Saathe waala awaaj waala file",
+       "exif-datetimeoriginal": "Data generation ke tarik aur time",
+       "exif-datetimedigitized": "Digitizing ke tarik aur time",
+       "exif-subsectime": "Tarik aur time subseconds me",
+       "exif-subsectimeoriginal": "Pahila tarik aur time subseconds me",
+       "exif-subsectimedigitized": "Digitized tarik aur time subseconds me",
+       "exif-exposuretime": "Exposure time",
+       "exif-exposuretime-format": "$1 sec ($2)",
+       "exif-fnumber": "F Number",
+       "exif-exposureprogram": "Exposure Program",
+       "exif-spectralsensitivity": "Ketna achchhaa se ujaala ke pakrre sake hae",
+       "exif-isospeedratings": "ISO ke raftaar rating",
+       "exif-shutterspeedvalue": "APEX shutter ke raftaar",
+       "exif-aperturevalue": "APEX aperture",
+       "exif-brightnessvalue": "APEX chamak",
+       "exif-exposurebiasvalue": "Exposure bias",
+       "exif-maxaperturevalue": "Sab se jaada land aperture",
+       "exif-subjectdistance": "Chij se duuri",
+       "exif-meteringmode": "Meter ke mode",
+       "exif-lightsource": "Ujala ke soti",
+       "exif-flash": "Chamak",
+       "exif-focallength": "Lens ke focal length",
+       "exif-subjectarea": "Vishay ke jagha",
+       "exif-flashenergy": "Chamak ke taagat",
+       "exif-focalplanexresolution": "Focal plane X resolution",
+       "exif-focalplaneyresolution": "Focal plane Y ke resolution",
+       "exif-focalplaneresolutionunit": "Focal plane resolution unit",
+       "exif-subjectlocation": "Subject ke location",
+       "exif-exposureindex": "Exposure ke index",
+       "exif-sensingmethod": "Sense kare waala method",
+       "exif-filesource": "File ke source",
+       "exif-scenetype": "Kon rakam ke scene hae",
+       "exif-customrendered": "Custom image processing",
+       "exif-exposuremode": "Custom image processing",
+       "exif-whitebalance": "White balance",
+       "exif-digitalzoomratio": "Digital zoom ratio",
+       "exif-focallengthin35mmfilm": "35 mm film me focal length",
+       "exif-scenecapturetype": "Scene capture type",
+       "exif-gaincontrol": "Scene ke control kare waala",
+       "exif-contrast": "Contrast",
+       "exif-saturation": "Saturation",
+       "exif-sharpness": "Sharpness",
+       "exif-devicesettingdescription": "Device settings ke description",
+       "exif-subjectdistancerange": "Custom image processing",
+       "exif-imageuniqueid": "Unique image ID",
+       "exif-gpsversionid": "GPS tag version",
+       "exif-gpslatituderef": "Uttar aur dakchhin latitude",
+       "exif-gpslatitude": "Latitude",
+       "exif-gpslongituderef": "Purab aur pachchhim longitude",
+       "exif-gpslongitude": "Longitude",
+       "exif-gpsaltituderef": "Altitude reference",
+       "exif-gpsaltitude": "Uunchai",
+       "exif-gpstimestamp": "GPS ke time (atomic clock)",
+       "exif-gpssatellites": "Satellites jieke ii naap me kaam me lawa gais hae",
+       "exif-gpsstatus": "Receiver ke status",
+       "exif-gpsmeasuremode": "Measurement ke mode",
+       "exif-gpsdop": "Measurement ke precision",
+       "exif-gpsspeedref": "Raftar ke unit",
+       "exif-gpsspeed": "GPS receiver ke raftaar",
+       "exif-gpstrackref": "Direction aur movement ke khatir reference",
+       "exif-gpstrack": "Movement ke direction",
+       "exif-gpsimgdirectionref": "Chaapa ke direction ke reference",
+       "exif-gpsimgdirection": "Chaapa ke direction",
+       "exif-gpsmapdatum": "Kon geodetic survey data ke kaam me lawa gais hae",
+       "exif-gpsdestlatituderef": "Reference for latitude of destination",
+       "exif-gpsdestlatitude": "Latitude ke manjil",
+       "exif-gpsdestlongituderef": "Destination ke longitude ke reference",
+       "exif-gpsdestlongitude": "Destination ke longitude",
+       "exif-gpsdestbearingref": "Destination ke bearing ke destination",
+       "exif-gpsdestbearing": "Destination ke bearing",
+       "exif-gpsdestdistanceref": "Destination talak distance ke reference",
+       "exif-gpsdestdistance": "Manjil se duuri",
+       "exif-gpsprocessingmethod": "GPS processing method ke naam",
+       "exif-gpsareainformation": "GPS ilaka ke naam",
+       "exif-gpsdatestamp": "GPS ke taarik",
+       "exif-gpsdifferential": "GPS differential correction",
+       "exif-jpegfilecomment": "JPEG file comment",
+       "exif-keywords": "Khaas sabd",
+       "exif-worldregioncreated": "Duniya ke hissa jahan pe ii chhapa lewa gais hae",
+       "exif-countrycreated": "Des jahan pe ii chhapa lewa gais hae",
+       "exif-countrycodecreated": "Des ke code jahan pe ii chhapa lewa gais hae",
+       "exif-provinceorstatecreated": "Province nai to state jahan pe ii chhapa lewa gais hae",
+       "exif-citycreated": "City jahan pe ii chhapa lewa gais hae",
+       "exif-sublocationcreated": "City ke hissa jahan pe ii chhapa lewa gais hae",
+       "exif-worldregiondest": "Dunia ke region dekhawa jaawe hae",
+       "exif-countrydest": "Des dekhawa gais",
+       "exif-countrycodedest": "Des ke code dekhawa gais",
+       "exif-provinceorstatedest": "Province, nai to state dekhawa gais",
+       "exif-citydest": "City dekhawa gais",
+       "exif-sublocationdest": "City ke hissa dekhawa gais",
+       "exif-objectname": "Chhota title",
+       "exif-specialinstructions": "Khaas instruction",
+       "exif-headline": "Headline",
+       "exif-credit": "Credit/Provider",
+       "exif-source": "Source",
+       "exif-editstatus": "Chhapa ke editorial status",
+       "exif-urgency": "Urgency",
+       "exif-fixtureidentifier": "Fixture ke naam",
+       "exif-locationdest": "Location depicted",
+       "exif-locationdestcode": "Code of location depicted",
+       "exif-objectcycle": "Time of day that media is intended for",
+       "exif-contact": "Contact ke jaankari.",
+       "exif-writer": "Likhe waala",
+       "exif-languagecode": "Bhasa",
+       "exif-iimversion": "IIM ke version",
+       "exif-iimcategory": "Vibhag",
+       "exif-iimsupplementalcategory": "Supplemental categories",
+       "exif-datetimeexpires": "Nai use karnaa ii time kebaad",
+       "exif-datetimereleased": "Release karaa gais",
+       "exif-originaltransmissionref": "Pahile waala transmission location code",
+       "exif-identifier": "Identifier",
+       "exif-lens": "Kaam me laawa gais lens",
+       "exif-serialnumber": "Camera ke serial number",
+       "exif-cameraownername": "Camera ke owner",
+       "exif-label": "Label",
+       "exif-datetimemetadata": "Metadata ke pichhla dafe bala gais",
+       "exif-nickname": "Chaapa ke informal naam",
+       "exif-rating": "Rating (out of 5)",
+       "exif-rightscertificate": "Rights management certificate",
+       "exif-copyrighted": "Copyright ke haalat:",
+       "exif-copyrightowner": "Copyright ke adhikar rakkhe waala",
+       "exif-usageterms": "Use kare ke shart",
+       "exif-webstatement": "Online copyright statement",
+       "exif-originaldocumentid": "Unique ID of original document",
+       "exif-licenseurl": "Copyright licence ke khatir URl",
+       "exif-morepermissionsurl": "Duusra licencing jaankari",
+       "exif-attributionurl": "Iske fir se use kare ke time, link karo",
+       "exif-preferredattributionname": "Ii jaankari ke kaam me laae se phile, credit do",
+       "exif-pngfilecomment": "PNG file ke bare me comment",
+       "exif-disclaimer": "Jimwaari nai leta",
+       "exif-contentwarning": "Content ke bare me chetauni",
+       "exif-giffilecomment": "GIG file ke bare me comment",
+       "exif-intellectualgenre": "Item ke rakam",
+       "exif-subjectnewscode": "Subject ke code",
+       "exif-scenecode": "IPTC scene ke code",
+       "exif-event": "Ghatna",
+       "exif-organisationinimage": "Sanstha",
+       "exif-personinimage": "Log",
+       "exif-originalimageheight": "Crop kare se pahile, chaapa ke uunchai",
+       "exif-originalimagewidth": "Crop kare se pahike, chhapa ke churrai",
+       "exif-compression-1": "Bina compres karaa gais",
+       "exif-compression-2": "CCITT Group 3 1-Dimensional Modified Huffman run length ke encoding",
+       "exif-compression-3": "CCITT Group 3 fax ke encoding",
+       "exif-compression-4": "CCITT Group 4 fax ke encoding",
+       "exif-copyrighted-true": "Copyright karaa gais hae",
+       "exif-copyrighted-false": "Copyright status ke nai set karaa gais hae",
+       "exif-photometricinterpretation-1": "Kariyaa aur ujjar (Kariyaa 0 hai)",
+       "exif-unknowndate": "Taarik nai maalum",
+       "exif-orientation-1": "Saamaan",
+       "exif-orientation-2": "Baraabar ultawa gais hae",
+       "exif-orientation-3": "180° ghumawa gais hae",
+       "exif-orientation-4": "Khrraa ultawa gais hae",
+       "exif-orientation-5": "90° CCW ghumawa aur kharraa ultawa gais hae",
+       "exif-orientation-6": "90° CCW ghumawa gais hae",
+       "exif-orientation-7": "90° CW ghumawa aur kharraa ultawa gais hae",
+       "exif-orientation-8": "90° CW ghumawa gais hae",
+       "exif-planarconfiguration-1": "dekhe me chunky hae",
+       "exif-planarconfiguration-2": " planar format",
+       "exif-colorspace-65535": "Bina calibrate karaa gais",
+       "exif-componentsconfiguration-0": "nai hae",
+       "exif-exposureprogram-0": "define nai karaa gais hae",
+       "exif-exposureprogram-1": "Haanth se",
+       "exif-exposureprogram-2": "Saamaan program",
+       "exif-exposureprogram-3": "Aperture ke priority",
+       "exif-exposureprogram-4": "Shutter ke priority",
+       "exif-exposureprogram-5": "Creative program (field ke deph ke bagal biased hae)",
+       "exif-exposureprogram-6": "Action program (fast shutter speed ke bagal biased)",
+       "exif-exposureprogram-7": "Portrait mode (uu closeup photo ke khatir jisme  background out of focus hae)",
+       "exif-exposureprogram-8": "Landscape mode (landscape photo ke khatir jisme  background focus me nai hae)",
+       "exif-subjectdistance-value": "$1 meter",
+       "exif-meteringmode-0": "Nai maluum",
+       "exif-meteringmode-1": "Biich waala",
+       "exif-meteringmode-2": "Biich waala weighted average",
+       "exif-meteringmode-3": "Jagha",
+       "exif-meteringmode-4": "Dher jagha",
+       "exif-meteringmode-5": "Design",
+       "exif-meteringmode-6": "Puura nai",
+       "exif-meteringmode-255": "Duusra",
+       "exif-lightsource-0": "Nai maluum",
+       "exif-lightsource-1": "Din",
+       "exif-lightsource-2": "Chamke waala",
+       "exif-lightsource-3": "Tungsten (incandescent batti)",
+       "exif-lightsource-4": "Chamak",
+       "exif-lightsource-9": "Achchhaa mausam",
+       "exif-lightsource-10": "Baadal ke mausam",
+       "exif-lightsource-11": "Chhanhi",
+       "exif-lightsource-12": "Din ke unjer fluorescent (D 5700 – 7100K)",
+       "exif-lightsource-13": "Din waala ujjarfluorescent (N 4600 – 5400K)",
+       "exif-lightsource-14": "Cool ujjar fluorescent (W 3900 – 4500K)",
+       "exif-lightsource-15": "Ujjar fluorescent (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standard batti A",
+       "exif-lightsource-18": "Standard batti B",
+       "exif-lightsource-19": "Standard batti C",
+       "exif-lightsource-24": "ISO studio tungsten dhaatu",
+       "exif-lightsource-255": "Dusra light ke source",
+       "exif-flash-fired-0": "Flash nai chalaa",
+       "exif-flash-fired-1": "Flash chal gais hae",
+       "exif-flash-return-0": "koi strobe return detection function nai hae",
+       "exif-flash-return-2": "strobe return light ke detect nai karaa gais hae",
+       "exif-flash-return-3": "strobe return light ke detect nai karaa gais hae",
+       "exif-flash-mode-1": "flash ke kaam me laae ke jaruri hae",
+       "exif-flash-mode-2": "flash ke kaam me nai laae ke chaahi",
+       "exif-flash-mode-3": "apne se hoe waala mode",
+       "exif-flash-function-1": "Flash nai hae",
+       "exif-flash-redeye-1": "laal-aankhi ke kamti kare waala mode",
+       "exif-focalplaneresolutionunit-2": "inch",
+       "exif-sensingmethod-1": "Define nai karaa gais hae",
+       "exif-sensingmethod-2": "Ek-chip rang area sensor",
+       "exif-sensingmethod-3": "Dui-chip rang area sensor",
+       "exif-sensingmethod-4": "Tiin-chip rang area sensor",
+       "exif-sensingmethod-5": "Rang sequential area sensor",
+       "exif-sensingmethod-7": "Tiinlinear sensor",
+       "exif-sensingmethod-8": "Rang sequential linear sensor",
+       "exif-filesource-3": "Digital still waala camera",
+       "exif-scenetype-1": "Directly utaara gais chaapa",
+       "exif-customrendered-0": "Saamaan process",
+       "exif-customrendered-1": "Custom kare waala process",
+       "exif-exposuremode-0": "Apne se hoe waala exposure",
+       "exif-exposuremode-1": "Haanth se adjust kare waala exposure",
+       "exif-exposuremode-2": "Different exposure ke dher chhaapa utaro",
+       "exif-whitebalance-0": "Apne se ujjar balance",
+       "exif-whitebalance-1": "Haanth se ujjar balance",
+       "exif-scenecapturetype-0": "Ek rakam",
+       "exif-scenecapturetype-1": "Chaklaa",
+       "exif-scenecapturetype-2": "Patraa",
+       "exif-scenecapturetype-3": "Raat waala scene",
+       "exif-gaincontrol-0": "Kuchh bhi nai",
+       "exif-gaincontrol-1": "Brightness level ke uppar karo",
+       "exif-gaincontrol-2": "Brightness level ke uppar karo",
+       "exif-gaincontrol-3": "Brightness level ke niche karo",
+       "exif-gaincontrol-4": "Brightness level ke niche karo",
+       "exif-contrast-0": "Saamaan",
+       "exif-contrast-1": "Naram",
+       "exif-contrast-2": "Karraa",
+       "exif-saturation-0": "Saamaan",
+       "exif-saturation-1": "Kamti saturation",
+       "exif-saturation-2": "Jaada saturation",
+       "exif-sharpness-0": "Saamaan",
+       "exif-sharpness-1": "Naram",
+       "exif-sharpness-2": "Karraa",
+       "exif-subjectdistancerange-0": "nai maalum",
+       "exif-subjectdistancerange-1": "Macro hae",
+       "exif-subjectdistancerange-2": "Najdik se dekho",
+       "exif-subjectdistancerange-3": "Duur se dekho",
+       "exif-gpslatitude-n": "Uttar latitude",
+       "exif-gpslatitude-s": "Dakchhin latitude",
+       "exif-gpslongitude-e": "Purab latitude",
+       "exif-gpslongitude-w": "Pachhim latitude",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter}} samundar se uppar",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter}} samundar se niche",
+       "exif-gpsstatus-a": "Naapa jaawe hae",
+       "exif-gpsstatus-v": "Naapa nai jaae sake hae",
+       "exif-gpsmeasuremode-2": "2-dimensional naap",
+       "exif-gpsmeasuremode-3": "3-dimensional naap",
+       "exif-gpsspeed-k": "Kilometer har ghantaa",
+       "exif-gpsspeed-m": "Mile har ghantaa",
+       "exif-gpsspeed-n": "Knots",
+       "exif-gpsdestdistance-k": "Kilometer",
+       "exif-gpsdestdistance-m": "Mile",
+       "exif-gpsdestdistance-n": "Nautical mile",
+       "exif-gpsdop-excellent": "Be haal ($1)",
+       "exif-gpsdop-good": "Achchhaa ($1)",
+       "exif-gpsdop-moderate": "Thiik hae ($1)",
+       "exif-gpsdop-fair": "Chal jaai ($1)",
+       "exif-gpsdop-poor": "Kharaab ($1)",
+       "exif-objectcycle-a": "Khaali sabere",
+       "exif-objectcycle-p": "Khaali sanjhaa ke",
+       "exif-objectcycle-b": "Duuno sabere aur sanjhaa",
+       "exif-gpsdirection-t": "Aslii direction",
+       "exif-gpsdirection-m": "Magnet waala direction",
+       "exif-ycbcrpositioning-1": "Biich me karaa gais",
+       "exif-ycbcrpositioning-2": "Ekke saathe",
+       "exif-dc-contributor": "Yogdaan de waala",
+       "exif-dc-coverage": "Spatial nai to temporal scope of media",
+       "exif-dc-date": "Taarik",
+       "exif-dc-publisher": "Chhaape waala",
+       "exif-dc-relation": "Saathe waala media",
+       "exif-dc-rights": "Adhikaar",
+       "exif-dc-source": "Media ke source",
+       "exif-dc-type": "Media ke rakam",
+       "exif-rating-rejected": "Namanjuur",
+       "exif-isospeedratings-overflow": "65535 se barraa",
+       "exif-iimcategory-ace": "Arts, culture aur entertainment",
+       "exif-iimcategory-clj": "Crime aur law",
+       "exif-iimcategory-dis": "Disasters aur accidents",
+       "exif-iimcategory-fin": "Economy aur business",
+       "exif-iimcategory-edu": "Parrhai",
+       "exif-iimcategory-evn": "Mausam",
+       "exif-iimcategory-hth": "Haal",
+       "exif-iimcategory-hum": "Insaan ke interest",
+       "exif-iimcategory-lab": "Kaam",
+       "exif-iimcategory-lif": "Lifestyle aur leisure",
+       "exif-iimcategory-pol": "Politics ke baare me",
+       "exif-iimcategory-rel": "Religion aur belief",
+       "exif-iimcategory-sci": "Science aur technology",
+       "exif-iimcategory-soi": "Samaj ke issue",
+       "exif-iimcategory-spo": "Khel",
+       "exif-iimcategory-war": "War, conflict aur unrest",
+       "exif-iimcategory-wea": "Mausam",
+       "exif-urgency-normal": "Saamaan ($1)",
+       "exif-urgency-low": "Kamti ($1)",
+       "exif-urgency-high": "Jaada ($1)",
+       "exif-urgency-other": "Sadasya-defined priority ($1)"
+}
diff --git a/languages/i18n/exif/hr.json b/languages/i18n/exif/hr.json
new file mode 100644 (file)
index 0000000..67bb561
--- /dev/null
@@ -0,0 +1,353 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Anton008",
+                       "Bugoslav",
+                       "Dalibor Bosits",
+                       "Ex13",
+                       "MaGa",
+                       "Roberta F.",
+                       "SpeedyGonsales",
+                       "Tivek"
+               ]
+       },
+       "exif-imagewidth": "Širina",
+       "exif-imagelength": "Visina",
+       "exif-bitspersample": "Dubina boje",
+       "exif-compression": "Način sažimanja",
+       "exif-photometricinterpretation": "Kolor model",
+       "exif-orientation": "Orijentacija kadra",
+       "exif-samplesperpixel": "Broj kolor komponenata",
+       "exif-planarconfiguration": "Princip rasporeda podataka",
+       "exif-ycbcrsubsampling": "Omjer komponente Y prema C",
+       "exif-ycbcrpositioning": "Razmještaj komponenata Y i C",
+       "exif-xresolution": "Vodoravna razlučivost",
+       "exif-yresolution": "Okomita razlučivost",
+       "exif-stripoffsets": "Položaj bloka podataka",
+       "exif-rowsperstrip": "Broj redova u bloku",
+       "exif-stripbytecounts": "Veličina komprimiranog bloka",
+       "exif-jpeginterchangeformat": "Udaljenost JPEG mini-pregleda od početka datoteke",
+       "exif-jpeginterchangeformatlength": "Količina bajtova JPEG previewa",
+       "exif-whitepoint": "Kromaticitet bijele točke",
+       "exif-primarychromaticities": "Kromaticitet primarnih boja",
+       "exif-ycbcrcoefficients": "Matrični koeficijenti preobrazbe kolor prostora",
+       "exif-referenceblackwhite": "Mjesto bijele i crne točke",
+       "exif-datetime": "Datum posljednje promjene datoteke",
+       "exif-imagedescription": "Ime slike",
+       "exif-make": "Proizvođač kamere",
+       "exif-model": "Model kamere",
+       "exif-software": "Korišteni softver",
+       "exif-artist": "Autor",
+       "exif-copyright": "Nositelj prava",
+       "exif-exifversion": "Inačica Exifa",
+       "exif-flashpixversion": "Podržana inačica Flashpixa",
+       "exif-colorspace": "Kolor prostor",
+       "exif-componentsconfiguration": "Značenje pojedinih komponenti",
+       "exif-compressedbitsperpixel": "Dubina boje poslije sažimanja",
+       "exif-pixelxdimension": "Važeća širina slike",
+       "exif-pixelydimension": "Važeća visina slike",
+       "exif-usercomment": "Suradnički komentar",
+       "exif-relatedsoundfile": "Povezani zvučni zapis",
+       "exif-datetimeoriginal": "Datum i vrijeme slikanja",
+       "exif-datetimedigitized": "Datum i vrijeme digitalizacije",
+       "exif-subsectime": "Dio sekunde u kojem je slikano",
+       "exif-subsectimeoriginal": "Dio sekunde u kojem je fotografirano",
+       "exif-subsectimedigitized": "Dio sekunde u kojem je digitalizirano",
+       "exif-exposuretime": "Ekspozicija",
+       "exif-exposuretime-format": "$1 sekunda ($2)",
+       "exif-fnumber": "F broj dijafragme",
+       "exif-exposureprogram": "Program ekspozicije",
+       "exif-spectralsensitivity": "Spektralna osjetljivost",
+       "exif-isospeedratings": "ISO vrijednost",
+       "exif-shutterspeedvalue": "Brzina zatvarača",
+       "exif-aperturevalue": "Otvor",
+       "exif-brightnessvalue": "Osvijetljenost",
+       "exif-exposurebiasvalue": "Kompenzacija ekspozicije",
+       "exif-maxaperturevalue": "Minimalni broj dijafragme",
+       "exif-subjectdistance": "Udaljenost do objekta",
+       "exif-meteringmode": "Režim mjerača vremena",
+       "exif-lightsource": "Izvor svjetlosti",
+       "exif-flash": "Bljeskalica",
+       "exif-focallength": "Žarišna duljina leće",
+       "exif-subjectarea": "Položaj i površina objekta snimke",
+       "exif-flashenergy": "Energija bljeskalice",
+       "exif-focalplanexresolution": "Vodoravna razlučivost žarišne ravnine",
+       "exif-focalplaneyresolution": "Okomita razlučivost žarišne ravnine",
+       "exif-focalplaneresolutionunit": "Jedinica razlučivosti žarišne ravnine",
+       "exif-subjectlocation": "Položaj subjekta",
+       "exif-exposureindex": "Indeks ekspozicije",
+       "exif-sensingmethod": "Tip senzora",
+       "exif-filesource": "Izvorna datoteka",
+       "exif-scenetype": "Tip scene",
+       "exif-customrendered": "Dodatna obrada slike",
+       "exif-exposuremode": "Režim izbora ekspozicije",
+       "exif-whitebalance": "Balans bijele",
+       "exif-digitalzoomratio": "Razmjer digitalnog zooma",
+       "exif-focallengthin35mmfilm": "Ekvivalent žarišne daljine za 35 mm film",
+       "exif-scenecapturetype": "Tip scene na snimci",
+       "exif-gaincontrol": "Kontrola osvijetljenosti",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Zasićenje",
+       "exif-sharpness": "Oštrina",
+       "exif-devicesettingdescription": "Opis postavki uređaja",
+       "exif-subjectdistancerange": "Raspon udaljenosti subjekata",
+       "exif-imageuniqueid": "Jedinstveni identifikator slike",
+       "exif-gpsversionid": "Verzija bloka GPS-informacije",
+       "exif-gpslatituderef": "Sjeverna ili južna širina",
+       "exif-gpslatitude": "Širina",
+       "exif-gpslongituderef": "Istočna ili zapadna dužina",
+       "exif-gpslongitude": "Dužina",
+       "exif-gpsaltituderef": "Visina ispod ili iznad mora",
+       "exif-gpsaltitude": "Visina",
+       "exif-gpstimestamp": "Vrijeme po GPS-u (atomski sat)",
+       "exif-gpssatellites": "Korišteni sateliti",
+       "exif-gpsstatus": "Status prijemnika",
+       "exif-gpsmeasuremode": "Režim mjerenja",
+       "exif-gpsdop": "Preciznost mjerenja",
+       "exif-gpsspeedref": "Jedinica brzine",
+       "exif-gpsspeed": "Brzina GPS prijemnika",
+       "exif-gpstrackref": "Tip azimuta prijemnika (pravi ili magnetni)",
+       "exif-gpstrack": "Azimut prijemnika",
+       "exif-gpsimgdirectionref": "Tip azimuta slike (pravi ili magnetni)",
+       "exif-gpsimgdirection": "Azimut slike",
+       "exif-gpsmapdatum": "Korišteni geodetski koordinatni sustav",
+       "exif-gpsdestlatituderef": "Indeks zemlj. širine objekta",
+       "exif-gpsdestlatitude": "Zemlj. širina objekta",
+       "exif-gpsdestlongituderef": "Indeks zemlj. dužine objekta",
+       "exif-gpsdestlongitude": "Zemljopisna dužina objekta",
+       "exif-gpsdestbearingref": "Indeks pelenga objekta",
+       "exif-gpsdestbearing": "Peleng objekta",
+       "exif-gpsdestdistanceref": "Mjerne jedinice udaljenosti objekta",
+       "exif-gpsdestdistance": "Udaljenost objekta",
+       "exif-gpsprocessingmethod": "Ime metode obrade GPS podataka",
+       "exif-gpsareainformation": "Ime GPS područja",
+       "exif-gpsdatestamp": "GPS datum",
+       "exif-gpsdifferential": "GPS diferencijalna korekcija",
+       "exif-jpegfilecomment": "JPEG komentar datoteke",
+       "exif-keywords": "Ključne riječi",
+       "exif-worldregioncreated": "Regija svijeta u kojoj je slika snimljena",
+       "exif-countrycreated": "Zemlja u kojoj je slika snimljena",
+       "exif-countrycodecreated": "Kôd za zemlju u kojoj je slika snimljena",
+       "exif-provinceorstatecreated": "Provincija ili država u kojoj je slika snimljena",
+       "exif-citycreated": "Grad u kojem je slika snimljena",
+       "exif-sublocationcreated": "Podlokacija grada gdje je slika snimljena",
+       "exif-worldregiondest": "Prikazana regija svijeta",
+       "exif-countrydest": "Prikazana zemlja",
+       "exif-countrycodedest": "Kôd za prikazanu zemlju",
+       "exif-provinceorstatedest": "Prikazana provincija ili država",
+       "exif-citydest": "Prikazani grad",
+       "exif-sublocationdest": "Prikazana podlokacija grada",
+       "exif-objectname": "Kratki naslov",
+       "exif-specialinstructions": "Posebne upute",
+       "exif-headline": "Naslov",
+       "exif-credit": "Pripisivanje/Pružatelj",
+       "exif-source": "Izvor",
+       "exif-editstatus": "Urednički status slike",
+       "exif-urgency": "Žurnost",
+       "exif-fixtureidentifier": "Naziv rubrike",
+       "exif-locationdest": "Prikazana lokacija",
+       "exif-locationdestcode": "Kôd prikazane lokacije",
+       "exif-objectcycle": "Doba dana za koji je medij namijenjen",
+       "exif-contact": "Podaci za kontakt",
+       "exif-writer": "Pisac",
+       "exif-languagecode": "Jezik",
+       "exif-iimversion": "IIM inačica",
+       "exif-iimcategory": "Kategorija",
+       "exif-iimsupplementalcategory": "Dopunske kategorije",
+       "exif-datetimeexpires": "Nemojte rabiti nakon",
+       "exif-datetimereleased": "Objavljeno",
+       "exif-originaltransmissionref": "Izvorni prijenos kôda lokacije",
+       "exif-identifier": "Oznaka",
+       "exif-lens": "Korišteni objektiv",
+       "exif-serialnumber": "Serijski broj kamere",
+       "exif-cameraownername": "Vlasnik kamere",
+       "exif-label": "Oznaka",
+       "exif-datetimemetadata": "Datum posljednje promjene metapodataka",
+       "exif-nickname": "Neformalni naziv slike",
+       "exif-rating": "Ocjena (od 5)",
+       "exif-rightscertificate": "Certifikat za upravljanje pravima",
+       "exif-copyrighted": "Status autorskog prava",
+       "exif-copyrightowner": "Nositelj autorskog prava",
+       "exif-usageterms": "Uporaba pojmova",
+       "exif-webstatement": "Online izjava o autorskom pravu",
+       "exif-originaldocumentid": "Jedinstveni ID izvornog dokumenta",
+       "exif-licenseurl": "URL za licenciju o autorskom pravu",
+       "exif-morepermissionsurl": "Informacije o alternativnom licenciranju",
+       "exif-attributionurl": "Kada ponovno rabite ovo djelo, molim povežite ga s",
+       "exif-preferredattributionname": "Kada ponovno rabite ovo djelo, molim naslovite ga",
+       "exif-pngfilecomment": "PNG komentar datoteke",
+       "exif-disclaimer": "Odricanje od odgovornosti",
+       "exif-contentwarning": "Upozorenje o sadržaju",
+       "exif-giffilecomment": "GIF komentar datoteke",
+       "exif-intellectualgenre": "Vrsta stavke",
+       "exif-subjectnewscode": "Kôd predmeta",
+       "exif-scenecode": "IPTC kôd scene",
+       "exif-event": "Prikazani događaj",
+       "exif-organisationinimage": "Prikazana organizacija",
+       "exif-personinimage": "Prikazana osoba",
+       "exif-originalimageheight": "Visina slike prije nego što je obrezana",
+       "exif-originalimagewidth": "Širina slike prije nego što je obrezana",
+       "exif-compression-1": "Nesažeto",
+       "exif-compression-2": "CCITT Grupa 3 1 — Dimenzionalno izmijenjeno Huffmanovo šifriranje po dužini",
+       "exif-compression-3": "CCITT Grupa 3 faks kodiranje",
+       "exif-compression-4": "CCITT Grupa 4 faks kodiranje",
+       "exif-copyrighted-true": "Zaštićeno autorskim pravom",
+       "exif-copyrighted-false": "Status autorskih prava nije postavljen",
+       "exif-photometricinterpretation-1": "Crno-bijelo (crna je 0)",
+       "exif-unknowndate": "nepoznat datum",
+       "exif-orientation-1": "Normalno",
+       "exif-orientation-2": "Zrcaljeno po horizontali",
+       "exif-orientation-3": "Zaokrenuto 180°",
+       "exif-orientation-4": "Zrcaljeno po vertikali",
+       "exif-orientation-5": "Zaokrenuto 90° suprotno od sata i zrcaljeno po vertikali",
+       "exif-orientation-6": "Zaokrenuto 90° suprotno od kazaljke na satu",
+       "exif-orientation-7": "Zaokrenuto 90° u smjeru sata i zrcaljeno po vertikali",
+       "exif-orientation-8": "Zaokrenuto 90° u smjeru kazaljke na satu",
+       "exif-planarconfiguration-1": "zrnasti format",
+       "exif-planarconfiguration-2": "planarni format",
+       "exif-colorspace-65535": "Nekalibrirano",
+       "exif-componentsconfiguration-0": "ne postoji",
+       "exif-exposureprogram-0": "Nepoznato",
+       "exif-exposureprogram-1": "Ručno",
+       "exif-exposureprogram-2": "Normalni program",
+       "exif-exposureprogram-3": "Prioritet dijafragme",
+       "exif-exposureprogram-4": "Prioritet zatvarača",
+       "exif-exposureprogram-5": "Umjetnički program (na temelju nužne dubine polja)",
+       "exif-exposureprogram-6": "Sportski program (na temelju što bržeg zatvarača)",
+       "exif-exposureprogram-7": "Portretni režim (za krupne planove s neoštrom pozadinom)",
+       "exif-exposureprogram-8": "Režim krajolika (za slike krajolika s oštrom pozadinom)",
+       "exif-subjectdistance-value": "$1 metara",
+       "exif-meteringmode-0": "Nepoznato",
+       "exif-meteringmode-1": "Prosjek",
+       "exif-meteringmode-2": "Prosjek s težištem na sredini",
+       "exif-meteringmode-3": "Točka",
+       "exif-meteringmode-4": "Više točaka",
+       "exif-meteringmode-5": "Matrični",
+       "exif-meteringmode-6": "Djelomični",
+       "exif-meteringmode-255": "Drugo",
+       "exif-lightsource-0": "Nepoznato",
+       "exif-lightsource-1": "Dnevna svjetlost",
+       "exif-lightsource-2": "Fluorescentno",
+       "exif-lightsource-3": "Volframska žarulja",
+       "exif-lightsource-4": "Bljeskalica",
+       "exif-lightsource-9": "Lijepo vrijeme",
+       "exif-lightsource-10": "Oblačno vrijeme",
+       "exif-lightsource-11": "Sjena",
+       "exif-lightsource-12": "Fluorescentna svjetlost (D 5700 – 7100K)",
+       "exif-lightsource-13": "Fluorescentna svjetlost (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fluorescentna svjetlost (W 3900 – 4500K)",
+       "exif-lightsource-15": "Bijela fluorescencija (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standardno svjetlo A",
+       "exif-lightsource-18": "Standardno svjetlo B",
+       "exif-lightsource-19": "Standardno svjetlo C",
+       "exif-lightsource-24": "ISO studijska svjetiljka",
+       "exif-lightsource-255": "Drugi izvor svjetla",
+       "exif-flash-fired-0": "Bez upotrebe bljeskalice",
+       "exif-flash-fired-1": "S upotrebom bljeskalice",
+       "exif-flash-return-0": "bez upotrebe funkcije stroboskopa",
+       "exif-flash-return-2": "stroboskop nije opazio svjetlo",
+       "exif-flash-return-3": "stroboskop je opazio svjetlo",
+       "exif-flash-mode-1": "bljeskalica ručno uključena",
+       "exif-flash-mode-2": "bljeskalica ručno isključena",
+       "exif-flash-mode-3": "automatski način rada",
+       "exif-flash-function-1": "Nema funkcije bljeskalice",
+       "exif-flash-redeye-1": "način rada za smanjenje crvenih očiju",
+       "exif-focalplaneresolutionunit-2": "inči",
+       "exif-sensingmethod-1": "Nedefinirano",
+       "exif-sensingmethod-2": "Jednokristalni matrični senzor",
+       "exif-sensingmethod-3": "Dvokristalni matrični senzor",
+       "exif-sensingmethod-4": "Trokristalni matrični senzor",
+       "exif-sensingmethod-5": "Sekvencijalni matrični senzor",
+       "exif-sensingmethod-7": "Trobojni linearni senzor",
+       "exif-sensingmethod-8": "Sekvencijalni linearni senzor",
+       "exif-filesource-3": "Digitalni fotoaparat",
+       "exif-scenetype-1": "Izravno fotografirana slika",
+       "exif-customrendered-0": "Normalni proces",
+       "exif-customrendered-1": "Nestadardni proces",
+       "exif-exposuremode-0": "Automatski",
+       "exif-exposuremode-1": "Ručno",
+       "exif-exposuremode-2": "Automatski sa zadanim rasponom",
+       "exif-whitebalance-0": "Automatski",
+       "exif-whitebalance-1": "Ručno",
+       "exif-scenecapturetype-0": "Standardno",
+       "exif-scenecapturetype-1": "Pejzaž",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Noćno",
+       "exif-gaincontrol-0": "Nema",
+       "exif-gaincontrol-1": "Malo povećanje",
+       "exif-gaincontrol-2": "Veliko povećanje",
+       "exif-gaincontrol-3": "Malo smanjenje",
+       "exif-gaincontrol-4": "Veliko smanjenje",
+       "exif-contrast-0": "Normalno",
+       "exif-contrast-1": "Slabo",
+       "exif-contrast-2": "Jako",
+       "exif-saturation-0": "Normalno",
+       "exif-saturation-1": "Niska saturacija",
+       "exif-saturation-2": "Visoka saturacija",
+       "exif-sharpness-0": "Normalno",
+       "exif-sharpness-1": "Meko",
+       "exif-sharpness-2": "Tvrdo",
+       "exif-subjectdistancerange-0": "Nepoznato",
+       "exif-subjectdistancerange-1": "Krupni plan",
+       "exif-subjectdistancerange-2": "Bliski plan",
+       "exif-subjectdistancerange-3": "Udaljeno",
+       "exif-gpslatitude-n": "Sjever",
+       "exif-gpslatitude-s": "Jug",
+       "exif-gpslongitude-e": "Istok",
+       "exif-gpslongitude-w": "Zapad",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metar|metra|metara}} nadmorske visine",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metar|metra|metara}} ispod razine mora",
+       "exif-gpsstatus-a": "Mjerenje u tijeku",
+       "exif-gpsstatus-v": "Spreman za prijenos",
+       "exif-gpsmeasuremode-2": "Dvodimenzionalno mjerenje",
+       "exif-gpsmeasuremode-3": "Trodimenzionalno mjerenje",
+       "exif-gpsspeed-k": "kmh",
+       "exif-gpsspeed-m": "mph",
+       "exif-gpsspeed-n": "čv",
+       "exif-gpsdestdistance-k": "Kilometara",
+       "exif-gpsdestdistance-m": "Milja",
+       "exif-gpsdestdistance-n": "Nautičkih milja",
+       "exif-gpsdop-excellent": "Odlično ($1)",
+       "exif-gpsdop-good": "Dobro ($1)",
+       "exif-gpsdop-moderate": "Umjereno ($1)",
+       "exif-gpsdop-fair": "U redu ($1)",
+       "exif-gpsdop-poor": "Loše ($1)",
+       "exif-objectcycle-a": "Samo jutro",
+       "exif-objectcycle-p": "Samo večer",
+       "exif-objectcycle-b": "Oba jutro i večer",
+       "exif-gpsdirection-t": "Pravi sjever",
+       "exif-gpsdirection-m": "Magnetni sjever",
+       "exif-ycbcrpositioning-1": "Centrirano",
+       "exif-ycbcrpositioning-2": "Susmještene",
+       "exif-dc-contributor": "Doprinositelji",
+       "exif-dc-coverage": "Prostorni i vremenski opseg medija",
+       "exif-dc-date": "Datum(i)",
+       "exif-dc-publisher": "Izdavač",
+       "exif-dc-relation": "Povezani mediji",
+       "exif-dc-rights": "Prava",
+       "exif-dc-source": "Izvor medija",
+       "exif-dc-type": "Vrsta medija",
+       "exif-rating-rejected": "Odbijeno",
+       "exif-isospeedratings-overflow": "Veći od 65535",
+       "exif-iimcategory-ace": "Umjetnost, kultura i zabava",
+       "exif-iimcategory-clj": "Kriminal i zakon",
+       "exif-iimcategory-dis": "Katastrofe i nesreće",
+       "exif-iimcategory-fin": "Gospodarstvo i poslovanje",
+       "exif-iimcategory-edu": "Obrazovanje",
+       "exif-iimcategory-evn": "Okoliš",
+       "exif-iimcategory-hth": "Zdravlje",
+       "exif-iimcategory-hum": "Čovjekov interes",
+       "exif-iimcategory-lab": "Rad",
+       "exif-iimcategory-lif": "Životni stil i slobodno vrijeme",
+       "exif-iimcategory-pol": "Politika",
+       "exif-iimcategory-rel": "Religija i vjerovanje",
+       "exif-iimcategory-sci": "Znanost i tehnologija",
+       "exif-iimcategory-soi": "Socijalna pitanja",
+       "exif-iimcategory-spo": "Šport",
+       "exif-iimcategory-war": "Rat, sukob i nemiri",
+       "exif-iimcategory-wea": "Vrijeme",
+       "exif-urgency-normal": "Normalno ($1)",
+       "exif-urgency-low": "Nisko ( $1 )",
+       "exif-urgency-high": "Visoko ($1)",
+       "exif-urgency-other": "Suradnički definiran prioritet ($1)"
+}
diff --git a/languages/i18n/exif/hrx.json b/languages/i18n/exif/hrx.json
new file mode 100644 (file)
index 0000000..7c34223
--- /dev/null
@@ -0,0 +1,345 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Paul Beppler"
+               ]
+       },
+       "exif-imagewidth": "Breit",
+       "exif-imagelength": "Höch",
+       "exif-bitspersample": "Bits por Farrebkomponent",
+       "exif-compression": "Oort von der Kompression",
+       "exif-photometricinterpretation": "Pixelzusammersetzung",
+       "exif-orientation": "Kameraausrichtung",
+       "exif-samplesperpixel": "Oonzoohl von Komponente",
+       "exif-planarconfiguration": "Dateausrichtung",
+       "exif-ycbcrsubsampling": "Subsampling Rate von Y bis C",
+       "exif-ycbcrpositioning": "Y und C Positionierung",
+       "exif-xresolution": "Horizontale Auflösung",
+       "exif-yresolution": "Vertikale Auflösung",
+       "exif-stripoffsets": "Bilddate-Versatz",
+       "exif-rowsperstrip": "Oonzoohl Zeile por Streife",
+       "exif-stripbytecounts": "Bytes por komprimiertem Streif",
+       "exif-jpeginterchangeformat": "Offset zu JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Gröss von der JPEG-Date in Bytes",
+       "exif-whitepoint": "Manuell mit Messung",
+       "exif-primarychromaticities": "Primäre Farreboort",
+       "exif-ycbcrcoefficients": "YCbCr-Koeffiziente",
+       "exif-referenceblackwhite": "Schwarz/Weiß-Referenzpunkte",
+       "exif-datetime": "Speicherzeitpunkt",
+       "exif-imagedescription": "Bildtitel",
+       "exif-make": "Hearsteller",
+       "exif-model": "Modell",
+       "exif-software": "Software",
+       "exif-artist": "Fotograf",
+       "exif-copyright": "Uarheberrechte (Copyright halter)",
+       "exif-exifversion": "Exif-Version",
+       "exif-flashpixversion": "nterstützte Flashpix-Version",
+       "exif-colorspace": "Farrebraum",
+       "exif-componentsconfiguration": "Bedeitung einzelner Komponente",
+       "exif-compressedbitsperpixel": "Komprimierte Bits por Pixel",
+       "exif-pixelxdimension": "Bildbreit",
+       "exif-pixelydimension": "Bildhöch",
+       "exif-usercomment": "Benutzerkommentare",
+       "exif-relatedsoundfile": "Zugehöriche Tondatei",
+       "exif-datetimeoriginal": "Erfassungszeitpunkt",
+       "exif-datetimedigitized": "Digitalisierungszeitpunkt",
+       "exif-subsectime": "Speicherzeitpunkt (1/100 s)",
+       "exif-subsectimeoriginal": "Erfassungszeitpunkt (1/100 s)",
+       "exif-subsectimedigitized": "Digitalisierungszeitpunkt (1/100 s)",
+       "exif-exposuretime": "Belichtungsdauer",
+       "exif-exposuretime-format": "$1 Sekunde ($2)",
+       "exif-fnumber": "Blend (Englisch: F Number)",
+       "exif-exposureprogram": "Belichtungsprogramm",
+       "exif-spectralsensitivity": "Spectral Sensitivity",
+       "exif-isospeedratings": "Film- orrer Sensoremfindlichkeit (ISO)",
+       "exif-shutterspeedvalue": "APEX-Belichtungszeitwert",
+       "exif-aperturevalue": "APEX-Blendenweart",
+       "exif-brightnessvalue": "APEX-Helligkeitsweart",
+       "exif-exposurebiasvalue": "Belichtungsvorgab",
+       "exif-maxaperturevalue": "Grösste Blend",
+       "exif-subjectdistance": "Entfernung",
+       "exif-meteringmode": "Messverfoohre",
+       "exif-lightsource": "Lichtquell",
+       "exif-flash": "Blitz",
+       "exif-focallength": "Brennweit",
+       "exif-subjectarea": "Bereich",
+       "exif-flashenergy": "Blitzstärrek",
+       "exif-focalplanexresolution": "Sensorauflösung horizontal",
+       "exif-focalplaneyresolution": "Sensorauflösung vertikal",
+       "exif-focalplaneresolutionunit": "Einheit von der Sensorauflösung",
+       "exif-subjectlocation": "Motivstandplatz",
+       "exif-exposureindex": "Belichtungsindex",
+       "exif-sensingmethod": "Messmethode",
+       "exif-filesource": "Quell von der Datei",
+       "exif-scenetype": "Szenetyp",
+       "exif-customrendered": "Benutzerdefiniert Bildveroorbeitung",
+       "exif-exposuremode": "Belichtungsmodus",
+       "exif-whitebalance": "Weissabgleich",
+       "exif-digitalzoomratio": "Digitalzoom",
+       "exif-focallengthin35mmfilm": "Brennweite (Klenbildäquivalent)",
+       "exif-scenecapturetype": "Uffnoohmoort",
+       "exif-gaincontrol": "Verstärkung",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Sättichung",
+       "exif-sharpness": "Schärref",
+       "exif-devicesettingdescription": "Geräteinstellung",
+       "exif-subjectdistancerange": "Motiventfernung",
+       "exif-imageuniqueid": "Bild-ID",
+       "exif-gpsversionid": "GPS-Tag-Version",
+       "exif-gpslatituderef": "nördl. orrer südl. Breit",
+       "exif-gpslatitude": "Geografische Breit",
+       "exif-gpslongituderef": "östl. orrer westl. Länge",
+       "exif-gpslongitude": "Geografische Länge",
+       "exif-gpsaltituderef": "Bezuchshöch",
+       "exif-gpsaltitude": "Höch",
+       "exif-gpstimestamp": "GPS-Zeit",
+       "exif-gpssatellites": "Für die Messung benutzte Satellite",
+       "exif-gpsstatus": "Emfängerstatus",
+       "exif-gpsmeasuremode": "Messverfoohre",
+       "exif-gpsdop": "Messgenauigkeit",
+       "exif-gpsspeedref": "Geschwindichkeitseinheit",
+       "exif-gpsspeed": "Geschwindichkeit von des GPS-Empfänger",
+       "exif-gpstrackref": "Referenz für Bewechungsrichtung",
+       "exif-gpstrack": "Bewechungsrichtung",
+       "exif-gpsimgdirectionref": "Referenz für das Bild sein Ausrichtung",
+       "exif-gpsimgdirection": "Bildrichtung",
+       "exif-gpsmapdatum": "Geodätisches Referenzsystem benutzt",
+       "exif-gpsdestlatituderef": "Referenz für die Breit",
+       "exif-gpsdestlatitude": "Geografische Breit Zielpunkt",
+       "exif-gpsdestlongituderef": "Referenz für die Läng",
+       "exif-gpsdestlongitude": "Geografische Läng Zielpunkt",
+       "exif-gpsdestbearingref": "Referenz für Motivrichtung",
+       "exif-gpsdestbearing": "Motivrichtung",
+       "exif-gpsdestdistanceref": "Referenz für die Motiventfernung",
+       "exif-gpsdestdistance": "Motiventfernung",
+       "exif-gpsprocessingmethod": "Noome von dem GPS-Verfoohr",
+       "exif-gpsareainformation": "Noome von der GPS-Gebiete",
+       "exif-gpsdatestamp": "GPS-Datum",
+       "exif-gpsdifferential": "GPS-Differentialkorrektur",
+       "exif-jpegfilecomment": "JPEG-Dateikommentar",
+       "exif-keywords": "Stichwörter",
+       "exif-worldregioncreated": "Weltregion in der das Foto uffgenomm woard",
+       "exif-countrycreated": "Stoot in dem das Foto uffgenomm woard",
+       "exif-countrycodecreated": "Code für den Stoot in dem das Foto uffgenomm woard",
+       "exif-provinceorstatecreated": "Provinz orrer Gliedstoot in dem das Foto uffgenomm woard",
+       "exif-citycreated": "Stadt in der das Foto uffgenomm woard",
+       "exif-sublocationcreated": "Bereich der Stadt in der das Foto uffgenomm woard",
+       "exif-worldregiondest": "Gezeichte Weltregione",
+       "exif-countrydest": "Gezeichter Stoot",
+       "exif-countrycodedest": "Code für den gezeichten Stoot",
+       "exif-provinceorstatedest": "Gezeichte Provinz orrer oongezeichter Gliedstoot",
+       "exif-citydest": "Gezeichte Stadt",
+       "exif-sublocationdest": "Bereich der gezeichten Stadt",
+       "exif-objectname": "Koorztitel",
+       "exif-specialinstructions": "Besondre Oonweisunge",
+       "exif-headline": "Titel",
+       "exif-credit": "Noomenennung/Veröffentlicher",
+       "exif-source": "Quell",
+       "exif-editstatus": "Das Foto sein Redaktioneller Status",
+       "exif-urgency": "Dringlichkeit",
+       "exif-fixtureidentifier": "Kolumne",
+       "exif-locationdest": "Dorgestellter Standplatz",
+       "exif-locationdestcode": "Code für den dorgestellte Standplatz",
+       "exif-objectcycle": "Veröffentlichungszeitraum im Verloof von (während) von en Tooch für den das Medium bestimmt ist",
+       "exif-contact": "Kontaktinformatione",
+       "exif-writer": "Verfasser",
+       "exif-languagecode": "Sproch",
+       "exif-iimversion": "IIM-Version",
+       "exif-iimcategory": "Kategorie",
+       "exif-iimsupplementalcategory": "Zusätzliche Kategorie",
+       "exif-datetimeexpires": "Net verwenne noh",
+       "exif-datetimereleased": "Veröffentlicht am",
+       "exif-originaltransmissionref": "Code von das Standplatz von dem das Foto üwermittelt woard",
+       "exif-identifier": "Kennung",
+       "exif-lens": "Verwenntes Objektiv",
+       "exif-serialnumber": "Der Kamera sein Serienummer",
+       "exif-cameraownername": "Kamerabesitzer",
+       "exif-label": "Bezeichnung",
+       "exif-datetimemetadata": "Datum zu dem die Metadaten letztmoolich geännert woard",
+       "exif-nickname": "Gebräichlicher Noome vons Foto",
+       "exif-rating": "Beweartung (aus 5)",
+       "exif-rightscertificate": "Rechteverwaltungszertifikat",
+       "exif-copyrighted": "Uarheberrechtsstatus",
+       "exif-copyrightowner": "Uarheberrechtsinhaber",
+       "exif-usageterms": "Nutzungsbedingunge",
+       "exif-webstatement": "Online-Uarheberrechtsangäb",
+       "exif-originaldocumentid": "Eindeitiche Kennung von dem uarsprüngliche Dokument",
+       "exif-licenseurl": "URL von der Uarheberrechtsangäb (Lizenz)",
+       "exif-morepermissionsurl": "Alternative Lizenzinformatione",
+       "exif-attributionurl": "Bei Weiterverwennung von das Werk, bittschön verlinke uff:",
+       "exif-preferredattributionname": "Bei Weiterverwennung von das Werrek, bittschön benenne:",
+       "exif-pngfilecomment": "PNG-Dateikommentar",
+       "exif-disclaimer": "Haftungsausschluss",
+       "exif-contentwarning": "Inhaltswarnung",
+       "exif-giffilecomment": "GIF-Dateikommentar",
+       "exif-intellectualgenre": "Der Medium sein Oort",
+       "exif-subjectnewscode": "Themecode",
+       "exif-scenecode": "IPTC-Oonsichtcode",
+       "exif-event": "Dorgestelltes Ereichnis",
+       "exif-organisationinimage": "Dorgestellte Organisation",
+       "exif-personinimage": "Dorgestellte Person",
+       "exif-originalimageheight": "Bildhöch voar dem Zuschnit",
+       "exif-originalimagewidth": "Bildbreit voar dem Zuschnit",
+       "exif-compression-1": "Unkomprimiert",
+       "exif-compression-2": "CCITT Grupp 3 1-dimensional modifizierte Huffman-Looflängenkodierung",
+       "exif-compression-3": "CCITT Grupp 3 Faxcodierung",
+       "exif-compression-4": "CCITT Grupp 4 Faxcodierung",
+       "exif-copyrighted-true": "Geschützt",
+       "exif-copyrighted-false": "Uarheberrechtsstatus net festgeleht",
+       "exif-unknowndate": "Unbekanntes Datum",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Horizontal gespiechelt",
+       "exif-orientation-3": "Um 180° gedreht",
+       "exif-orientation-4": "Vertikal gespiechelt",
+       "exif-orientation-5": "Entgeche dem Uahrzeichersinn um 90° gedreht und vertikal gespiechelt",
+       "exif-orientation-6": "Um 90° entgeche dem Uahrzeichersinn gedreht",
+       "exif-orientation-7": "Um 90° im Uahrzeigersinn gedreht und vertikal gespiechelt",
+       "exif-orientation-8": "Um 90° im Uahrzeichersinn gedreht",
+       "exif-planarconfiguration-1": "Grobformat",
+       "exif-planarconfiguration-2": "Planarformat",
+       "exif-colorspace-65535": "Net kalibriert",
+       "exif-componentsconfiguration-0": "Existiert net",
+       "exif-exposureprogram-0": "Unbekannt",
+       "exif-exposureprogram-1": "Manuell",
+       "exif-exposureprogram-2": "Standardprogramm",
+       "exif-exposureprogram-3": "Zeitautomatik",
+       "exif-exposureprogram-4": "Blendenautomatik",
+       "exif-exposureprogram-5": "Kreativprogramm mit Bevoarzuchung höcher Schärfentief",
+       "exif-exposureprogram-6": "Action-Programm mit Bevoarzuchung von en koorzer Belichtungszeit",
+       "exif-exposureprogram-7": "Portrait-Programm",
+       "exif-exposureprogram-8": "Landschaftsaufnahmen",
+       "exif-subjectdistance-value": "$1 Meter",
+       "exif-meteringmode-0": "Unbekannt",
+       "exif-meteringmode-1": "Doorrichschnittlich",
+       "exif-meteringmode-2": "Mittezentriert",
+       "exif-meteringmode-3": "Spotmessung",
+       "exif-meteringmode-4": "Mehrfachspotmessung",
+       "exif-meteringmode-5": "Muster",
+       "exif-meteringmode-6": "Bildtel",
+       "exif-meteringmode-255": "Unbekannt",
+       "exif-lightsource-0": "Unbekannt",
+       "exif-lightsource-1": "Toochlicht",
+       "exif-lightsource-2": "Fluoreszierend",
+       "exif-lightsource-3": "Glühlamp",
+       "exif-lightsource-4": "Blitz",
+       "exif-lightsource-9": "Schönes Wetter",
+       "exif-lightsource-10": "Bewölkt",
+       "exif-lightsource-11": "Schatte",
+       "exif-lightsource-12": "Toochlicht fluoreszierend (D 5700–7100 K)",
+       "exif-lightsource-13": "Toochweiss fluoreszierend (N 4600–5400 K)",
+       "exif-lightsource-14": "Kaltweiss fluoreszierend (W 3900–4500 K)",
+       "exif-lightsource-15": "Weiss fluoreszierend (WW 3200–3700 K)",
+       "exif-lightsource-17": "Standardlicht A",
+       "exif-lightsource-18": "Standardlicht B",
+       "exif-lightsource-19": "Standardlicht C",
+       "exif-lightsource-24": "ISO Studio Kunstlicht",
+       "exif-lightsource-255": "Anner Lichtquell",
+       "exif-flash-fired-0": "ken Blitz",
+       "exif-flash-fired-1": "Blitz abgewischt",
+       "exif-flash-return-0": "Blitz schickt ken Date",
+       "exif-flash-return-2": "ken Reflexion von Blitz festgestellt",
+       "exif-flash-return-3": "Reflexion des Blitz festgestellt",
+       "exif-flash-mode-1": "erzwungnes Blitz",
+       "exif-flash-mode-2": "Blitz abgeschaltet",
+       "exif-flash-mode-3": "Automatik",
+       "exif-flash-function-1": "Ken Blitzfunktion",
+       "exif-flash-redeye-1": "Rotauge Reduktion",
+       "exif-focalplaneresolutionunit-2": "Zoll",
+       "exif-sensingmethod-1": "Net oongeb",
+       "exif-sensingmethod-2": "En-Chip-Farrebsensoar",
+       "exif-sensingmethod-3": "Zwooi-Chip-Farbsensoar",
+       "exif-sensingmethod-4": "Drei-Chip-Farbsensoar",
+       "exif-sensingmethod-5": "Farrebraum sequentiell Sensor",
+       "exif-sensingmethod-7": "Trilinearer Sensoar",
+       "exif-sensingmethod-8": "Farrebraum linear sequentieller Sensoar",
+       "exif-filesource-3": "Digital Standbildkamera",
+       "exif-scenetype-1": "Normal",
+       "exif-customrendered-0": "Standard",
+       "exif-customrendered-1": "Benutzerdefiniert",
+       "exif-exposuremode-0": "Automatische Belichtung",
+       "exif-exposuremode-1": "Manuelle Belichtung",
+       "exif-exposuremode-2": "Belichtungsreih",
+       "exif-whitebalance-0": "Automatisch",
+       "exif-whitebalance-1": "Manuell",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Landschaft",
+       "exif-scenecapturetype-2": "Portrait",
+       "exif-scenecapturetype-3": "Nachtszen",
+       "exif-gaincontrol-0": "Ken",
+       "exif-gaincontrol-1": "Gering",
+       "exif-gaincontrol-2": "High gain up",
+       "exif-gaincontrol-3": "Low gain down",
+       "exif-gaincontrol-4": "High gain down",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Schwach",
+       "exif-contrast-2": "Stark",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Gering",
+       "exif-saturation-2": "Hoch",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Gering",
+       "exif-sharpness-2": "Starrek",
+       "exif-subjectdistancerange-0": "Unbekannt",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Näh",
+       "exif-subjectdistancerange-3": "Entfernt",
+       "exif-gpslatitude-n": "nördl. Breit",
+       "exif-gpslatitude-s": "südl. Breit",
+       "exif-gpslongitude-e": "östl. Läng",
+       "exif-gpslongitude-w": "westl. Läng",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|Meter}} üwer dem Meeresspiechel",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|Meter}} unner dem Meeresspiechel",
+       "exif-gpsstatus-a": "Messung looft",
+       "exif-gpsstatus-v": "Interoperabilität von Messunge",
+       "exif-gpsmeasuremode-2": "2-dimensionale Messung",
+       "exif-gpsmeasuremode-3": "3-dimensionale Messung",
+       "exif-gpsspeed-k": "km/h",
+       "exif-gpsspeed-m": "mph",
+       "exif-gpsspeed-n": "Knote",
+       "exif-gpsdestdistance-k": "Kilometer",
+       "exif-gpsdestdistance-m": "Meile",
+       "exif-gpsdestdistance-n": "Nautische Meile",
+       "exif-gpsdop-excellent": "Ausgezeichnet ($1)",
+       "exif-gpsdop-good": "Gut ($1)",
+       "exif-gpsdop-moderate": "Mittel ($1)",
+       "exif-gpsdop-fair": "Akzeptabel ($1)",
+       "exif-gpsdop-poor": "Schwach ($1)",
+       "exif-objectcycle-a": "Nuar moints",
+       "exif-objectcycle-p": "Nuar oments",
+       "exif-objectcycle-b": "Sowohl moints und obments",
+       "exif-gpsdirection-t": "Tatsächliche Richtung",
+       "exif-gpsdirection-m": "Magnetische Richtung",
+       "exif-ycbcrpositioning-1": "Zentriert",
+       "exif-ycbcrpositioning-2": "Benochbarscht",
+       "exif-dc-contributor": "Beteilichte",
+       "exif-dc-coverage": "Örtlicher orrer zeitlicher Roohme von dem Medium",
+       "exif-dc-date": "Datumsoongäb",
+       "exif-dc-publisher": "Veröffentlicher",
+       "exif-dc-relation": "Ähnliche Medie",
+       "exif-dc-rights": "Rechte",
+       "exif-dc-source": "Medieherkunft",
+       "exif-dc-type": "Medientyp",
+       "exif-rating-rejected": "Abgelehnt",
+       "exif-isospeedratings-overflow": "Grösser wie 65535",
+       "exif-iimcategory-ace": "Kunst, Kultuar und Unnerhaltung",
+       "exif-iimcategory-clj": "Kriminalität und Recht",
+       "exif-iimcategory-dis": "Katastrophe und Unfälle",
+       "exif-iimcategory-fin": "Weertschaft und Geschäfte",
+       "exif-iimcategory-edu": "Bildung",
+       "exif-iimcategory-evn": "Umwelt",
+       "exif-iimcategory-hth": "Gesundheit",
+       "exif-iimcategory-hum": "Interessensgebiet",
+       "exif-iimcategory-lab": "Oorbeit",
+       "exif-iimcategory-lif": "Lifestyle und Freizeit",
+       "exif-iimcategory-pol": "Politik",
+       "exif-iimcategory-rel": "Religion und Gloob",
+       "exif-iimcategory-sci": "Wissenschaft und Technologie",
+       "exif-iimcategory-soi": "Soziale Theme",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Kriech, Konflikte und Unruhe",
+       "exif-iimcategory-wea": "Wetter",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Niedrich ($1)",
+       "exif-urgency-high": "Hoch ($1)",
+       "exif-urgency-other": "Benutzerdefinierte Priorität ($1)"
+}
diff --git a/languages/i18n/exif/hsb.json b/languages/i18n/exif/hsb.json
new file mode 100644 (file)
index 0000000..7909930
--- /dev/null
@@ -0,0 +1,346 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Dundak",
+                       "Michawiki"
+               ]
+       },
+       "exif-imagewidth": "Šěrokosć",
+       "exif-imagelength": "Wysokosć",
+       "exif-bitspersample": "Bitow na barbowu komponentu",
+       "exif-compression": "Metoda kompresije",
+       "exif-photometricinterpretation": "Zestajenje pikselow",
+       "exif-orientation": "Wusměrjenje kamery",
+       "exif-samplesperpixel": "Ličba komponentow",
+       "exif-planarconfiguration": "Porjad datow",
+       "exif-ycbcrsubsampling": "Poměr podwotmasanja (Subsampling) wot Y do C",
+       "exif-ycbcrpositioning": "Zaměstnjenje Y a C",
+       "exif-xresolution": "Wodorune rozeznaće",
+       "exif-yresolution": "Padorune rozeznaće",
+       "exif-stripoffsets": "Městno wobrazowych datow",
+       "exif-rowsperstrip": "Ličba rjadkow na pas",
+       "exif-stripbytecounts": "Bajty na komprimowany pas",
+       "exif-jpeginterchangeformat": "Offset k JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bajty JPEG datow",
+       "exif-whitepoint": "Barbowa kwalita běłeho dypka",
+       "exif-primarychromaticities": "Barbowa kwalita primarnych barbow",
+       "exif-ycbcrcoefficients": "Koeficienty matriksy za transformaciju barbneho ruma",
+       "exif-referenceblackwhite": "Por čorneje a běłeje referencneje hódnoty",
+       "exif-datetime": "Datum a čas datajoweje změny",
+       "exif-imagedescription": "Titl wobraza",
+       "exif-make": "Zhotowjer kamery",
+       "exif-model": "Model kamery",
+       "exif-software": "Wužiwana softwara",
+       "exif-artist": "Awtor",
+       "exif-copyright": "Mějićel awtorskich prawow",
+       "exif-exifversion": "Wersija EXIF",
+       "exif-flashpixversion": "Podpěrowana wersija Flashpix",
+       "exif-colorspace": "Barbny rum",
+       "exif-componentsconfiguration": "Woznam kóždeje komponenty",
+       "exif-compressedbitsperpixel": "Modus wobrazoweje kompresije",
+       "exif-pixelxdimension": "Šěrokosć wobraza",
+       "exif-pixelydimension": "Wysokosć wobraza",
+       "exif-usercomment": "Přispomjenja wužiwarja",
+       "exif-relatedsoundfile": "Zwjazana zynkowa dataja",
+       "exif-datetimeoriginal": "Datum a čas wutworjenja datow",
+       "exif-datetimedigitized": "Datum a čas digitalizowanja",
+       "exif-subsectime": "Dźěle sekundy za DateTime",
+       "exif-subsectimeoriginal": "Dźěle sekundy za DateTimeOriginal",
+       "exif-subsectimedigitized": "Dźěle sekundy za DateTimeDigitized",
+       "exif-exposuretime": "Naswětlenski čas",
+       "exif-exposuretime-format": "$1 sek. ($2)",
+       "exif-fnumber": "Zasłona",
+       "exif-exposureprogram": "Naswětlenski program",
+       "exif-spectralsensitivity": "Spektralna cutliwosć",
+       "exif-isospeedratings": "Cutliwosć filma abo sensora (ISO)",
+       "exif-shutterspeedvalue": "Čas zasłonoweje zawěrki APEX",
+       "exif-aperturevalue": "Zasłonowa šěrokosć APEX",
+       "exif-brightnessvalue": "APEX-swětłosć",
+       "exif-exposurebiasvalue": "Naswětlenska korektura",
+       "exif-maxaperturevalue": "Najwjetša zasłona",
+       "exif-subjectdistance": "Zdalenje k předmjetej",
+       "exif-meteringmode": "Měrjenska metoda",
+       "exif-lightsource": "Žórło swěcy",
+       "exif-flash": "Błysk",
+       "exif-focallength": "Palnišćowa zdalenosć",
+       "exif-subjectarea": "Wobwod předmjeta",
+       "exif-flashenergy": "Sylnosć błyska",
+       "exif-focalplanexresolution": "Wodorune rozeznaće sensora",
+       "exif-focalplaneyresolution": "Padorune rozeznaće sensora",
+       "exif-focalplaneresolutionunit": "Jednotka rozeznaća sensora",
+       "exif-subjectlocation": "Městno předmjeta",
+       "exif-exposureindex": "Naswětlenski indeks",
+       "exif-sensingmethod": "Měrjenska metoda",
+       "exif-filesource": "Žórło dataje",
+       "exif-scenetype": "Typ sceny",
+       "exif-customrendered": "Wot wužiwarja definowane předźěłanje wobrazow",
+       "exif-exposuremode": "Naswětlenski modus",
+       "exif-whitebalance": "Balansa běłeho dypka",
+       "exif-digitalzoomratio": "Digitalny zoom",
+       "exif-focallengthin35mmfilm": "Palnišćowa zdalenosć za film 35 mm přeličena",
+       "exif-scenecapturetype": "Družina sceny",
+       "exif-gaincontrol": "Regulowanje sceny",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Nasyćenosć",
+       "exif-sharpness": "Wótrosć",
+       "exif-devicesettingdescription": "Nastajenja nastroja",
+       "exif-subjectdistancerange": "Zdalenosć k motiwej",
+       "exif-imageuniqueid": "ID wobraza",
+       "exif-gpsversionid": "Wersija ID GPS",
+       "exif-gpslatituderef": "Sewjerna abo južna šěrina",
+       "exif-gpslatitude": "Geografiska šěrina",
+       "exif-gpslongituderef": "Wuchodna abo zapadna dołhosć",
+       "exif-gpslongitude": "Geografiska dołhosć",
+       "exif-gpsaltituderef": "Referencna wyšina",
+       "exif-gpsaltitude": "Wyšina",
+       "exif-gpstimestamp": "Čas GPS (atomowy časnik)",
+       "exif-gpssatellites": "Satelity wužiwane za měrjenje",
+       "exif-gpsstatus": "Status přijimaka",
+       "exif-gpsmeasuremode": "Měrjenska metoda",
+       "exif-gpsdop": "Měrjenska dokładnosć",
+       "exif-gpsspeedref": "Jednotka spěšnosće",
+       "exif-gpsspeed": "Spěšnosć přijimaka GPS",
+       "exif-gpstrackref": "Referenca za směr pohiba",
+       "exif-gpstrack": "Směr pohiba",
+       "exif-gpsimgdirectionref": "Referenca za wusměrjenje wobraza",
+       "exif-gpsimgdirection": "Wobrazowy směr",
+       "exif-gpsmapdatum": "Wužiwane geodetiske daty",
+       "exif-gpsdestlatituderef": "Referenca za šěrinu",
+       "exif-gpsdestlatitude": "Šěrina",
+       "exif-gpsdestlongituderef": "Referenca dołhosće",
+       "exif-gpsdestlongitude": "Dołhosć",
+       "exif-gpsdestbearingref": "Referenca za wusměrjenje",
+       "exif-gpsdestbearing": "Wusměrjenje",
+       "exif-gpsdestdistanceref": "Referenca za zdalenosć k cilej",
+       "exif-gpsdestdistance": "Zdalenosć k cilej",
+       "exif-gpsprocessingmethod": "Metoda předźěłanja GPS",
+       "exif-gpsareainformation": "Mjeno wobwoda GPS",
+       "exif-gpsdatestamp": "Datum GPS",
+       "exif-gpsdifferential": "Diferencialna korektura GPS",
+       "exif-jpegfilecomment": "Komentar JPEG-dataje",
+       "exif-keywords": "Klučowe słowa",
+       "exif-worldregioncreated": "Swětowy region, w kotrymž bu sfotografowane",
+       "exif-countrycreated": "Kraj, w kotrymž bu sfotografowane",
+       "exif-countrycodecreated": "Kod za kraj, w kotrymž je so sfotografowało",
+       "exif-provinceorstatecreated": "Zwjazkowy kraj, w kotrymž bu sfotografowane",
+       "exif-citycreated": "Město, w kotrymž bu sfotografowane",
+       "exif-sublocationcreated": "Wobwod města, w kotrymž wobraz je so sfotografował",
+       "exif-worldregiondest": "Pokazany swětowy region",
+       "exif-countrydest": "Pokazany kraj",
+       "exif-countrycodedest": "Kod za pokazany kraj",
+       "exif-provinceorstatedest": "Pokazany zwjazkowy kraj",
+       "exif-citydest": "Pokazane město",
+       "exif-sublocationdest": "Wobwod pokazaneho města",
+       "exif-objectname": "Krótki titul",
+       "exif-specialinstructions": "Wosebite instrukcije",
+       "exif-headline": "Nadpis",
+       "exif-credit": "Mjenowanje/Poskićowar",
+       "exif-source": "Žórło",
+       "exif-editstatus": "Wobdźěłowanski status wobraza",
+       "exif-urgency": "Nuznosć",
+       "exif-fixtureidentifier": "Mjeno kolumny",
+       "exif-locationdest": "Zwobraznjene městno",
+       "exif-locationdestcode": "Kod za zwobraznjene městno",
+       "exif-objectcycle": "Čas dnja, za kotryž medij je mysleny",
+       "exif-contact": "Kontaktowe informacije",
+       "exif-writer": "Spisar",
+       "exif-languagecode": "Rěč",
+       "exif-iimversion": "IIM-wersija",
+       "exif-iimcategory": "Kategorija",
+       "exif-iimsupplementalcategory": "Přidatne kategorije",
+       "exif-datetimeexpires": "Njewužiwać po",
+       "exif-datetimereleased": "Wozjewjeny dnja",
+       "exif-originaltransmissionref": "Kod městna, wot kotrehož je so foto přenjesło",
+       "exif-identifier": "Identfikator",
+       "exif-lens": "Wužity objektiw",
+       "exif-serialnumber": "Serijowe čisło kamery",
+       "exif-cameraownername": "Wobsedźer kamery",
+       "exif-label": "Pomjenowanje",
+       "exif-datetimemetadata": "Datum, hdyž su so metadaty posledni raz změnili",
+       "exif-nickname": "Zwučene mjeno wobraza",
+       "exif-rating": "Pohódnoćenje (z 5)",
+       "exif-rightscertificate": "Certifikat zarjadowanja prawow",
+       "exif-copyrighted": "Status awtorskeho prawa:",
+       "exif-copyrightowner": "Mějićel awtorskeho prawa",
+       "exif-usageterms": "Wužiwanske wuměnjenja",
+       "exif-webstatement": "Online-deklaracija wo awtorskim prawje",
+       "exif-originaldocumentid": "Jednozmyslny ID originalneho dokumenta",
+       "exif-licenseurl": "URL za licencu awtorskeho prawa",
+       "exif-morepermissionsurl": "Alternatiwne licencne informacije",
+       "exif-attributionurl": "Při zasowužiwanju tutoho dźěła, wotkazaj prošu do:",
+       "exif-preferredattributionname": "Při zasowužiwanju tutoho dźěła, naspomń prošu",
+       "exif-pngfilecomment": "Komentar PNG-dataje",
+       "exif-disclaimer": "Wuzamknjenje rukowanja",
+       "exif-contentwarning": "Wobsahowe warnowanje",
+       "exif-giffilecomment": "Komentar GIF-dataje",
+       "exif-intellectualgenre": "Typ medija",
+       "exif-subjectnewscode": "Temowy kod",
+       "exif-scenecode": "IPTC-kod napohlada",
+       "exif-event": "Zwobraznjeny podawk",
+       "exif-organisationinimage": "Zwobraznjena organizacija",
+       "exif-personinimage": "Zwobraznjena wosoba",
+       "exif-originalimageheight": "Wysokosć wobraza před přitřihowanjom",
+       "exif-originalimagewidth": "Šěrokosć wobraza před přitřihowanjom",
+       "exif-compression-1": "Njekomprimowany",
+       "exif-compression-2": "CCITT skupina 3 jednodimensionalne modificěrowane kodowanje Huffman běhoweje dołhosće",
+       "exif-compression-3": "CCITT skupina 3 faksowe kodowanje",
+       "exif-compression-4": "CCITT skupina 4 faksowe kodowanje",
+       "exif-copyrighted-true": "Přez awtorske prawo škitany",
+       "exif-copyrighted-false": "Status awtorskeho prawa njepostajeny",
+       "exif-unknowndate": "Njeznaty datum",
+       "exif-orientation-1": "Normalnje",
+       "exif-orientation-2": "Wodorunje wobroćeny",
+       "exif-orientation-3": "180° zwjertnjeny",
+       "exif-orientation-4": "Padorunje wobroćeny",
+       "exif-orientation-5": "90° přećiwo směrej časnika zwjertneny a padorunje wobroćeny",
+       "exif-orientation-6": "90° přećiwo směrej časnika zwjertnjeny",
+       "exif-orientation-7": "90° w směrje časnika zwjertnjeny a padorunje wobroćeny",
+       "exif-orientation-8": "90° w směrje časnika zwjertnjeny",
+       "exif-planarconfiguration-1": "Škropawy format",
+       "exif-planarconfiguration-2": "Płony format",
+       "exif-colorspace-65535": "Njekalibrowany",
+       "exif-componentsconfiguration-0": "Njeeksistuje",
+       "exif-exposureprogram-0": "Njeznaty",
+       "exif-exposureprogram-1": "Manuelny",
+       "exif-exposureprogram-2": "Normalny program",
+       "exif-exposureprogram-3": "Priorita zasłony",
+       "exif-exposureprogram-4": "Priorita zawěrki",
+       "exif-exposureprogram-5": "Kreatiwny program (za hłubokosć wótrosće)",
+       "exif-exposureprogram-6": "Akciski program (za wyšu spěšnosć zawěrki)",
+       "exif-exposureprogram-7": "Portretowy modus (za fota z blikosće z pozadkom zwonka fokusa)",
+       "exif-exposureprogram-8": "Krajinowy modus (za fota krajinow z pozadkom we fokusu)",
+       "exif-subjectdistance-value": "$1 m",
+       "exif-meteringmode-0": "Njeznata",
+       "exif-meteringmode-1": "Přerězk",
+       "exif-meteringmode-2": "Srjedźa wusměrjeny",
+       "exif-meteringmode-3": "Spotowe měrjenje",
+       "exif-meteringmode-4": "Multispot",
+       "exif-meteringmode-5": "Šema",
+       "exif-meteringmode-6": "Dźělna",
+       "exif-meteringmode-255": "Druha",
+       "exif-lightsource-0": "Njeznata",
+       "exif-lightsource-1": "Dnjowe swětło",
+       "exif-lightsource-2": "Fluorescentne",
+       "exif-lightsource-3": "Žehlawka",
+       "exif-lightsource-4": "Błysk",
+       "exif-lightsource-9": "Rjane wjedro",
+       "exif-lightsource-10": "Pomróčene",
+       "exif-lightsource-11": "Sćin",
+       "exif-lightsource-12": "Dnjowe swětło fluoreskowace (D 5700 – 7100K)",
+       "exif-lightsource-13": "Dnjowoběły fluoreskowacy (N 4600 – 5400K)",
+       "exif-lightsource-14": "Zymnoběły fluoreskowacy (W 3900 – 4500K)",
+       "exif-lightsource-15": "běły fluoroskowacy (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standardne swětło A",
+       "exif-lightsource-18": "Standardne swětło B",
+       "exif-lightsource-19": "Standardne swětło C",
+       "exif-lightsource-24": "ISO studijowa wolframowa žehlawka",
+       "exif-lightsource-255": "Druhe žórło swětła",
+       "exif-flash-fired-0": "Błysk so njepušći",
+       "exif-flash-fired-1": "Błysk zahibany",
+       "exif-flash-return-0": "žana funkcija za spóznaće błyskoweje refleksije",
+       "exif-flash-return-2": "žana refleksija błyska wotkryta",
+       "exif-flash-return-3": "refleksija błyska wotkryta",
+       "exif-flash-mode-1": "wunućeny błysk",
+       "exif-flash-mode-2": "Wunućeny błysk potłóčeny",
+       "exif-flash-mode-3": "awtomatiski modus",
+       "exif-flash-function-1": "Žana błyskowa funkcija",
+       "exif-flash-redeye-1": "Redukcija čerwjenych wočow",
+       "exif-focalplaneresolutionunit-2": "cól",
+       "exif-sensingmethod-1": "Njedefinowany",
+       "exif-sensingmethod-2": "Jednočipowy barbowy přestrjenjowy sensor",
+       "exif-sensingmethod-3": "Dwučipowy barbowy přestrjenjowy sensor",
+       "exif-sensingmethod-4": "Třičipowy barbowy přestrjenjowy sensor",
+       "exif-sensingmethod-5": "Sekwencielny barbowy přestrjenjowy sensor",
+       "exif-sensingmethod-7": "Třilinearny sensor",
+       "exif-sensingmethod-8": "Barbowy sekwencielny linearny sensor",
+       "exif-filesource-3": "Digitalna stejenskowobrazowa kamera",
+       "exif-scenetype-1": "Direktnje fotografowany wobraz",
+       "exif-customrendered-0": "Normalne wobdźěłanje",
+       "exif-customrendered-1": "Wužiwarske wobdźěłanje",
+       "exif-exposuremode-0": "Awtomatiske naswětlenje",
+       "exif-exposuremode-1": "Manuelne naswětlenje",
+       "exif-exposuremode-2": "Rjad naswětlenjow (Bracketing)",
+       "exif-whitebalance-0": "Automatiske wurunanje běłeho",
+       "exif-whitebalance-1": "Manuelne wurunanje běłeho",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Krajina",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Nócna scena",
+       "exif-gaincontrol-0": "Žane",
+       "exif-gaincontrol-1": "Snadne",
+       "exif-gaincontrol-2": "Wysoke zesylnjenje",
+       "exif-gaincontrol-3": "Niske wosłabjenje",
+       "exif-gaincontrol-4": "Wysoke wosłabjenje",
+       "exif-contrast-0": "Normalny",
+       "exif-contrast-1": "Mjechki",
+       "exif-contrast-2": "Sylny",
+       "exif-saturation-0": "Normalna nasyćenosć",
+       "exif-saturation-1": "Niska nasyćenosć",
+       "exif-saturation-2": "Wysoka nasyćenosć",
+       "exif-sharpness-0": "Normalna",
+       "exif-sharpness-1": "Mjechka",
+       "exif-sharpness-2": "Sylna",
+       "exif-subjectdistancerange-0": "Njeznata",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Bliski pohlad",
+       "exif-subjectdistancerange-3": "Zdaleny pohlad",
+       "exif-gpslatitude-n": "Sewjerna šěrina",
+       "exif-gpslatitude-s": "Južna šěrina",
+       "exif-gpslongitude-e": "Wuchodna dołhosć",
+       "exif-gpslongitude-w": "Zapadna dołhosć",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter|metraj|metry|metrow}} nad mórskej hładźinu",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter|metraj|metry|metrow}} pod mórskej hładźinu",
+       "exif-gpsstatus-a": "Měrjenje běži",
+       "exif-gpsstatus-v": "Interoperabilita měrjenja",
+       "exif-gpsmeasuremode-2": "dwudimensionalne měrjenje",
+       "exif-gpsmeasuremode-3": "třidimensionalne měrjenje",
+       "exif-gpsspeed-k": "km/h",
+       "exif-gpsspeed-m": "mila/h",
+       "exif-gpsspeed-n": "Suki",
+       "exif-gpsdestdistance-k": "Kilometry",
+       "exif-gpsdestdistance-m": "Mile",
+       "exif-gpsdestdistance-n": "Mórske mile",
+       "exif-gpsdop-excellent": "Wuběrny ($1)",
+       "exif-gpsdop-good": "Dobry ($1)",
+       "exif-gpsdop-moderate": "Srěni ($1)",
+       "exif-gpsdop-fair": "Akceptabelny ($1)",
+       "exif-gpsdop-poor": "Špatny ($1)",
+       "exif-objectcycle-a": "Jenož rano",
+       "exif-objectcycle-p": "Jenož wječor",
+       "exif-objectcycle-b": "Rano kaž tež wječor",
+       "exif-gpsdirection-t": "Woprawdźity směr",
+       "exif-gpsdirection-m": "Magnetiski směr",
+       "exif-ycbcrpositioning-1": "Centrowano",
+       "exif-ycbcrpositioning-2": "Susodny",
+       "exif-dc-contributor": "Sobuskutkowarjo",
+       "exif-dc-coverage": "Městny abo časny wobłuk medija",
+       "exif-dc-date": "Datumowe podaća",
+       "exif-dc-publisher": "Wudawaćel",
+       "exif-dc-relation": "Přiwuzne medije",
+       "exif-dc-rights": "Prawa",
+       "exif-dc-source": "Žórło medija",
+       "exif-dc-type": "Typ medija",
+       "exif-rating-rejected": "Wotpokazany",
+       "exif-isospeedratings-overflow": "Wjetše hač 65535",
+       "exif-iimcategory-ace": "Wuměłstwo, kultura a zabawa",
+       "exif-iimcategory-clj": "Kriminalita a prawo",
+       "exif-iimcategory-dis": "Katastrofy a njezboža",
+       "exif-iimcategory-fin": "Hospodarstwo a wobchody",
+       "exif-iimcategory-edu": "Zdźěłanosć",
+       "exif-iimcategory-evn": "Wobswět",
+       "exif-iimcategory-hth": "Strowosć",
+       "exif-iimcategory-hum": "Zajimowy wobwod",
+       "exif-iimcategory-lab": "Dźěło",
+       "exif-iimcategory-lif": "Žiwjenske wašnje a swobodny čas",
+       "exif-iimcategory-pol": "Politika",
+       "exif-iimcategory-rel": "Nabožina a wěra",
+       "exif-iimcategory-sci": "Wědomosć a technika",
+       "exif-iimcategory-soi": "Socialne problemy",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Wójna, konfikty a zběžki",
+       "exif-iimcategory-wea": "Wjedro",
+       "exif-urgency-normal": "Normalna ($1)",
+       "exif-urgency-low": "Niska ($1)",
+       "exif-urgency-high": "Wysoka ($1)",
+       "exif-urgency-other": "Swójska priorita ($1)"
+}
diff --git a/languages/i18n/exif/hu.json b/languages/i18n/exif/hu.json
new file mode 100644 (file)
index 0000000..eb70603
--- /dev/null
@@ -0,0 +1,354 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Bencemac",
+                       "BáthoryPéter",
+                       "Dani",
+                       "Dj",
+                       "Dorgan",
+                       "Misibacsi",
+                       "R-Joe",
+                       "Terik"
+               ]
+       },
+       "exif-imagewidth": "Szélesség",
+       "exif-imagelength": "Magasság",
+       "exif-bitspersample": "Bitek összetevőnként",
+       "exif-compression": "Tömörítési séma",
+       "exif-photometricinterpretation": "Színösszetevők",
+       "exif-orientation": "Tájolás",
+       "exif-samplesperpixel": "Színösszetevők száma",
+       "exif-planarconfiguration": "Adatok csoportosítása",
+       "exif-ycbcrsubsampling": "Y to C almintavételezésének aránya",
+       "exif-ycbcrpositioning": "Y és C pozicionálása",
+       "exif-xresolution": "Vízszintes felbontás",
+       "exif-yresolution": "Függőleges felbontás",
+       "exif-stripoffsets": "Képadatok elhelyezése",
+       "exif-rowsperstrip": "Egy csíkban levő sorok száma",
+       "exif-stripbytecounts": "Bájt/csík",
+       "exif-jpeginterchangeformat": "Eltolás JPEG SOI-be",
+       "exif-jpeginterchangeformatlength": "JPEG adatok bájtjai",
+       "exif-whitepoint": "Fehér pont színérték",
+       "exif-primarychromaticities": "Színinger",
+       "exif-ycbcrcoefficients": "Színtér transzformációs mátrixának együtthatói",
+       "exif-referenceblackwhite": "Fekete-fehér referenciaértékek párja",
+       "exif-datetime": "Utolsó változtatás ideje",
+       "exif-imagedescription": "Kép címe",
+       "exif-make": "Fényképezőgép gyártója",
+       "exif-model": "Fényképezőgép típusa",
+       "exif-software": "Használt szoftver",
+       "exif-artist": "Szerző",
+       "exif-copyright": "Szerzői jog tulajdonosa",
+       "exif-exifversion": "EXIF verzió",
+       "exif-flashpixversion": "Támogatott Flashpix verzió",
+       "exif-colorspace": "Színtér",
+       "exif-componentsconfiguration": "Az egyes összetevők jelentése",
+       "exif-compressedbitsperpixel": "Képtömörítési mód",
+       "exif-pixelxdimension": "Képszélesség",
+       "exif-pixelydimension": "Képmagasság",
+       "exif-usercomment": "Felhasználók megjegyzései",
+       "exif-relatedsoundfile": "Kapcsolódó hangfájl",
+       "exif-datetimeoriginal": "EXIF információ létrehozásának dátuma",
+       "exif-datetimedigitized": "Digitalizálás dátuma és időpontja",
+       "exif-subsectime": "DateTime almásodpercek",
+       "exif-subsectimeoriginal": "DateTimeOriginal almásodpercek",
+       "exif-subsectimedigitized": "DateTimeDigitized almásodpercek",
+       "exif-exposuretime": "Expozíciós idő",
+       "exif-exposuretime-format": "$1 mp. ($2)",
+       "exif-fnumber": "Rekesznyílás",
+       "exif-exposureprogram": "Expozíciós program",
+       "exif-spectralsensitivity": "Színkép érzékenysége",
+       "exif-isospeedratings": "ISO érzékenység értéke",
+       "exif-shutterspeedvalue": "APEX zársebesség",
+       "exif-aperturevalue": "APEX lencsenyílás",
+       "exif-brightnessvalue": "APEX fényerő",
+       "exif-exposurebiasvalue": "Expozíciós eltolás",
+       "exif-maxaperturevalue": "Legnagyobb rekesznyílás",
+       "exif-subjectdistance": "Tárgy távolsága",
+       "exif-meteringmode": "Fénymérési mód",
+       "exif-lightsource": "Fényforrás",
+       "exif-flash": "Vaku",
+       "exif-focallength": "Fókusztávolság",
+       "exif-subjectarea": "Tárgy területe",
+       "exif-flashenergy": "Vaku ereje",
+       "exif-focalplanexresolution": "Mátrixdetektor X felbontása",
+       "exif-focalplaneyresolution": "Mátrixdetektor Y felbontása",
+       "exif-focalplaneresolutionunit": "Mátrixdetektor felbontásának mértékegysége",
+       "exif-subjectlocation": "Tárgy helye",
+       "exif-exposureindex": "Expozíciós index",
+       "exif-sensingmethod": "Érzékelési mód",
+       "exif-filesource": "Fájl forrása",
+       "exif-scenetype": "Színhely típusa",
+       "exif-customrendered": "Egyéni képfeldolgozás",
+       "exif-exposuremode": "Expozíciós mód",
+       "exif-whitebalance": "Fehéregyensúly",
+       "exif-digitalzoomratio": "Digitális zoom aránya",
+       "exif-focallengthin35mmfilm": "Fókusztávolság 35 mm-es filmen",
+       "exif-scenecapturetype": "Színhely rögzítési típusa",
+       "exif-gaincontrol": "Érzékelés vezérlése",
+       "exif-contrast": "Kontraszt",
+       "exif-saturation": "Telítettség",
+       "exif-sharpness": "Élesség",
+       "exif-devicesettingdescription": "Eszközbeállítások leírása",
+       "exif-subjectdistancerange": "Tárgy távolsági tartománya",
+       "exif-imageuniqueid": "Egyedi képazonosító",
+       "exif-gpsversionid": "GPS kód verziója",
+       "exif-gpslatituderef": "Északi vagy déli szélességi fok",
+       "exif-gpslatitude": "Szélességi fok",
+       "exif-gpslongituderef": "Keleti vagy nyugati hosszúsági fok",
+       "exif-gpslongitude": "Hosszúsági fok",
+       "exif-gpsaltituderef": "Tengerszint feletti magasság hivatkozás",
+       "exif-gpsaltitude": "Tengerszint feletti magasság",
+       "exif-gpstimestamp": "GPS idő (atomóra)",
+       "exif-gpssatellites": "Méréshez felhasznált műholdak",
+       "exif-gpsstatus": "Vevő állapota",
+       "exif-gpsmeasuremode": "Mérési mód",
+       "exif-gpsdop": "Mérés pontossága",
+       "exif-gpsspeedref": "Sebesség mértékegysége",
+       "exif-gpsspeed": "GPS vevő sebessége",
+       "exif-gpstrackref": "Hivatkozás a mozgásirányra",
+       "exif-gpstrack": "Mozgásirány",
+       "exif-gpsimgdirectionref": "Hivatkozás a kép irányára",
+       "exif-gpsimgdirection": "Kép iránya",
+       "exif-gpsmapdatum": "Felhasznált geodéziai kérdőív adatai",
+       "exif-gpsdestlatituderef": "Hivatkozás a cél szélességi fokára",
+       "exif-gpsdestlatitude": "Szélességi fok célja",
+       "exif-gpsdestlongituderef": "Hivatkozás a cél hosszúsági fokára",
+       "exif-gpsdestlongitude": "Cél hosszúsági foka",
+       "exif-gpsdestbearingref": "Hivatkozás a cél hordozójára",
+       "exif-gpsdestbearing": "Cél hordozója",
+       "exif-gpsdestdistanceref": "Hivatkozás a cél távolságára",
+       "exif-gpsdestdistance": "Cél távolsága",
+       "exif-gpsprocessingmethod": "GPS feldolgozási mód neve",
+       "exif-gpsareainformation": "GPS terület neve",
+       "exif-gpsdatestamp": "GPS dátum",
+       "exif-gpsdifferential": "GPS különbözeti korrekció",
+       "exif-jpegfilecomment": "JPEG fájlmegjegyzés",
+       "exif-keywords": "Kulcsszavak",
+       "exif-worldregioncreated": "Világrész, ahol a kép készült",
+       "exif-countrycreated": "Ország, ahol a kép készült",
+       "exif-countrycodecreated": "Ország kódja, ahol a kép készült",
+       "exif-provinceorstatecreated": "Tartomány vagy állam, ahol a kép készült",
+       "exif-citycreated": "Város, ahol a kép készült",
+       "exif-sublocationcreated": "Városbeli hely, ahol a kép készült",
+       "exif-worldregiondest": "Ábrázolt világrész",
+       "exif-countrydest": "Ábrázolt ország",
+       "exif-countrycodedest": "Ábrázolt ország kódja",
+       "exif-provinceorstatedest": "Ábrázolt tartomány vagy állam",
+       "exif-citydest": "Ábrázolt város",
+       "exif-sublocationdest": "Ábrázolt városbeli hely",
+       "exif-objectname": "Rövid cím",
+       "exif-specialinstructions": "Különleges utasítások",
+       "exif-headline": "Fejléc",
+       "exif-credit": "Köszönet/Készítő",
+       "exif-source": "Forrás",
+       "exif-editstatus": "Kép szerkesztési állapota",
+       "exif-urgency": "Sürgősség",
+       "exif-fixtureidentifier": "A készülék neve",
+       "exif-locationdest": "Ábrázolt helyszín",
+       "exif-locationdestcode": "Ábrázolt helyszín kódja",
+       "exif-objectcycle": "Napszak, amikorra a média készült",
+       "exif-contact": "Elérhetőségi adatok",
+       "exif-writer": "Író",
+       "exif-languagecode": "Nyelv",
+       "exif-iimversion": "IIM-verzió",
+       "exif-iimcategory": "Kategória",
+       "exif-iimsupplementalcategory": "Kiegészítő kategóriák",
+       "exif-datetimeexpires": "Nem használandó ezután",
+       "exif-datetimereleased": "Megjelenés ideje",
+       "exif-originaltransmissionref": "Eredeti átviteli hely kódja",
+       "exif-identifier": "Azonosító",
+       "exif-lens": "Használt lencse",
+       "exif-serialnumber": "Kamera sorozatszáma",
+       "exif-cameraownername": "Kamera tulajdonosa",
+       "exif-label": "Címke",
+       "exif-datetimemetadata": "Dátum metaadat utolsó módosítása",
+       "exif-nickname": "A kép informális neve",
+       "exif-rating": "Értékelés (5-ből)",
+       "exif-rightscertificate": "Jogokat kezelő tanúsítvány",
+       "exif-copyrighted": "Szerzői jogi állapot",
+       "exif-copyrightowner": "Szerzői jog tulajdonosa",
+       "exif-usageterms": "Felhasználási feltételek",
+       "exif-webstatement": "Online szerzői jogi nyilatkozat",
+       "exif-originaldocumentid": "Eredeti dokumentum egyedi azonosítója",
+       "exif-licenseurl": "Szerzői jog engedély URL-címe",
+       "exif-morepermissionsurl": "Alternatív licencinformáció",
+       "exif-attributionurl": "Újrafelhasználás során hivatkozz erre:",
+       "exif-preferredattributionname": "Ha újra felhasználód, köszönd meg:",
+       "exif-pngfilecomment": "PNG fájlmegjegyzés",
+       "exif-disclaimer": "Jogi nyilatkozat",
+       "exif-contentwarning": "Tartalom figyelmeztetés",
+       "exif-giffilecomment": "GIF fájlmegjegyzés",
+       "exif-intellectualgenre": "Elemtípus",
+       "exif-subjectnewscode": "Tárgykód",
+       "exif-scenecode": "IPTC jelenet kód",
+       "exif-event": "Ábrázolt esemény",
+       "exif-organisationinimage": "Ábrázolt szervezet",
+       "exif-personinimage": "Ábrázolt személy",
+       "exif-originalimageheight": "Kép magassága a levágás előtt",
+       "exif-originalimagewidth": "Kép szélessége a levágás előtt",
+       "exif-compression-1": "Nem tömörített",
+       "exif-compression-2": "CCITT Group 3 1 dimenziós módosított Huffman kódolás",
+       "exif-compression-3": "CCITT Group 3 fax kódolás",
+       "exif-compression-4": "CCITT Group 4 fax kódolás",
+       "exif-copyrighted-true": "Szerzői jog által védett",
+       "exif-copyrighted-false": "Szerzői jogi állapot nincs beállítva",
+       "exif-photometricinterpretation-0": "Fekete és fehér (0 a fehér)",
+       "exif-photometricinterpretation-1": "Fekete és fehér (Fekete 0)",
+       "exif-unknowndate": "Ismeretlen dátum",
+       "exif-orientation-1": "Normál",
+       "exif-orientation-2": "Vízszintesen tükrözött",
+       "exif-orientation-3": "Elforgatott 180°",
+       "exif-orientation-4": "Függőlegesen tükrözött",
+       "exif-orientation-5": "Elforgatott 90° ÓE és függőlegesen tükrözött",
+       "exif-orientation-6": "Elforgatott 90° ÓE",
+       "exif-orientation-7": "Elforgatott 90° ÓSZ és függőlegesen tükrözött",
+       "exif-orientation-8": "Elforgatott 90° ÓSZ",
+       "exif-planarconfiguration-1": "Egyben",
+       "exif-planarconfiguration-2": "sík formátum",
+       "exif-colorspace-65535": "Nem kalibrált",
+       "exif-componentsconfiguration-0": "nem létezik",
+       "exif-exposureprogram-0": "Nem meghatározott",
+       "exif-exposureprogram-1": "Kézi",
+       "exif-exposureprogram-2": "Normál program",
+       "exif-exposureprogram-3": "Lencsenyílás elsőbbsége",
+       "exif-exposureprogram-4": "Zár elsőbbsége",
+       "exif-exposureprogram-5": "Létrehozó program (a mezőmélység felé eltolva)",
+       "exif-exposureprogram-6": "Működtető program (a gyors zársebesség felé eltolva)",
+       "exif-exposureprogram-7": "Arckép mód (a fókuszon kívüli hátterű közeli fényképekhez)",
+       "exif-exposureprogram-8": "Tájkép mód (a fókuszban lévő hátterű tájkép fotókhoz)",
+       "exif-subjectdistance-value": "$1 méter",
+       "exif-meteringmode-0": "Ismeretlen",
+       "exif-meteringmode-1": "Átlagos",
+       "exif-meteringmode-2": "CenterWeightedAverage",
+       "exif-meteringmode-3": "Megvilágítás",
+       "exif-meteringmode-4": "Többszörös megvilágítás",
+       "exif-meteringmode-5": "Minta",
+       "exif-meteringmode-6": "Részleges",
+       "exif-meteringmode-255": "Egyéb",
+       "exif-lightsource-0": "Ismeretlen",
+       "exif-lightsource-1": "Természetes fény",
+       "exif-lightsource-2": "Fénycső",
+       "exif-lightsource-3": "Wolfram (izzófény)",
+       "exif-lightsource-4": "Vaku",
+       "exif-lightsource-9": "Derült idő",
+       "exif-lightsource-10": "Felhős idő",
+       "exif-lightsource-11": "Árnyék",
+       "exif-lightsource-12": "Természetes fény fénycső (D 5700 – 7100K)",
+       "exif-lightsource-13": "Napfehér fénycső (N 4600 – 5400K)",
+       "exif-lightsource-14": "Hideg fehér fénycső (W 3900 – 4500K)",
+       "exif-lightsource-15": "Fehér fénycső (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Hagyományos izzó A",
+       "exif-lightsource-18": "Hagyományos izzó B",
+       "exif-lightsource-19": "Hagyományos izzó C",
+       "exif-lightsource-24": "ISO stúdió wolfram",
+       "exif-lightsource-255": "Egyéb fényforrás",
+       "exif-flash-fired-0": "A vaku nem sült el",
+       "exif-flash-fired-1": "A vaku elsült",
+       "exif-flash-return-0": "Nincs strobe return detection funkció.",
+       "exif-flash-return-2": "strobe return light nincs érzékelve",
+       "exif-flash-return-3": "strobe return light érzékelve",
+       "exif-flash-mode-1": "Kötelező vaku",
+       "exif-flash-mode-2": "Kötelező vakukikapcsolás",
+       "exif-flash-mode-3": "automatikus mód",
+       "exif-flash-function-1": "Nincs vakufunkció",
+       "exif-flash-redeye-1": "Vörös szem eltávolító mód",
+       "exif-focalplaneresolutionunit-2": "hüvelyk",
+       "exif-sensingmethod-1": "Nem meghatározott",
+       "exif-sensingmethod-2": "Egylapkás színterület-érzékelő",
+       "exif-sensingmethod-3": "Kétlapkás színterület-érzékelő",
+       "exif-sensingmethod-4": "Háromlapkás színterület-érzékelő",
+       "exif-sensingmethod-5": "Színsorrendi területérzékelő",
+       "exif-sensingmethod-7": "Háromvonalas érzékelő",
+       "exif-sensingmethod-8": "Színsorrendi vonalas érzékelő",
+       "exif-filesource-3": "Digitális fényképezőgép",
+       "exif-scenetype-1": "Egy közvetlenül lefotózott kép",
+       "exif-customrendered-0": "Normál feldolgozás",
+       "exif-customrendered-1": "Egyéni feldolgozás",
+       "exif-exposuremode-0": "Automatikus felvétel",
+       "exif-exposuremode-1": "Kézi felvétel",
+       "exif-exposuremode-2": "automatikus zárás",
+       "exif-whitebalance-0": "Automatikus fehéregyensúly",
+       "exif-whitebalance-1": "Kézi fehéregyensúly",
+       "exif-scenecapturetype-0": "Hagyományos",
+       "exif-scenecapturetype-1": "Tájkép",
+       "exif-scenecapturetype-2": "Arckép",
+       "exif-scenecapturetype-3": "Éjszakai színhely",
+       "exif-gaincontrol-0": "Nincs",
+       "exif-gaincontrol-1": "Alacsony frekvenciák kiemelése",
+       "exif-gaincontrol-2": "Magas frekvenciák kiemelése",
+       "exif-gaincontrol-3": "Alacsony frekvenciák elnyomása",
+       "exif-gaincontrol-4": "Magas frekvenciák elnyomása",
+       "exif-contrast-0": "Normál",
+       "exif-contrast-1": "Lágy",
+       "exif-contrast-2": "Kemény",
+       "exif-saturation-0": "Normál",
+       "exif-saturation-1": "Alacsony telítettség",
+       "exif-saturation-2": "Magas telítettség",
+       "exif-sharpness-0": "Normál",
+       "exif-sharpness-1": "Lágy",
+       "exif-sharpness-2": "Kemény",
+       "exif-subjectdistancerange-0": "Ismeretlen",
+       "exif-subjectdistancerange-1": "Makró",
+       "exif-subjectdistancerange-2": "Közeli nézet",
+       "exif-subjectdistancerange-3": "Távoli nézet",
+       "exif-gpslatitude-n": "Északi szélességi fok",
+       "exif-gpslatitude-s": "Déli szélességi fok",
+       "exif-gpslongitude-e": "Keleti hosszúsági fok",
+       "exif-gpslongitude-w": "Nyugati hosszúsági fok",
+       "exif-gpsaltitude-above-sealevel": "$1 méterrel a tengerszint felett",
+       "exif-gpsaltitude-below-sealevel": "$1 méterrel a tengerszint alatt",
+       "exif-gpsstatus-a": "Mérés folyamatban",
+       "exif-gpsstatus-v": "Mérés közbeni működőképesség",
+       "exif-gpsmeasuremode-2": "2-dimenziós méret",
+       "exif-gpsmeasuremode-3": "3-dimenziós méret",
+       "exif-gpsspeed-k": "Kilométer óránként",
+       "exif-gpsspeed-m": "Mérföld óránként",
+       "exif-gpsspeed-n": "Csomó",
+       "exif-gpsdestdistance-k": "kilométer",
+       "exif-gpsdestdistance-m": "mérföld",
+       "exif-gpsdestdistance-n": "tengeri mérföld",
+       "exif-gpsdop-excellent": "Kiváló ($1)",
+       "exif-gpsdop-good": "Jó ($1)",
+       "exif-gpsdop-moderate": "Mérsékelt ($1)",
+       "exif-gpsdop-fair": "Elfogadható ($1)",
+       "exif-gpsdop-poor": "Gyenge ($1)",
+       "exif-objectcycle-a": "Csak reggel",
+       "exif-objectcycle-p": "Csak este",
+       "exif-objectcycle-b": "Reggel és este",
+       "exif-gpsdirection-t": "Igazi irány",
+       "exif-gpsdirection-m": "Mágneses irány",
+       "exif-ycbcrpositioning-1": "Központosított",
+       "exif-ycbcrpositioning-2": "Szomszédos",
+       "exif-dc-contributor": "Közreműködők",
+       "exif-dc-coverage": "A média térbeli vagy időbeli hatálya",
+       "exif-dc-date": "Dátum(ok)",
+       "exif-dc-publisher": "Kiadó",
+       "exif-dc-relation": "Kapcsolódó média",
+       "exif-dc-rights": "Jogok",
+       "exif-dc-source": "Forrás-adathordozó",
+       "exif-dc-type": "Adathordozó típusa",
+       "exif-rating-rejected": "Elutasítva",
+       "exif-isospeedratings-overflow": "Nagyobb, mint 65535",
+       "exif-iimcategory-ace": "Művészetek, kultúra és szórakoztatás",
+       "exif-iimcategory-clj": "Bűnözés és törvény",
+       "exif-iimcategory-dis": "Katasztrófák és a balesetek",
+       "exif-iimcategory-fin": "Gazdaság és üzlet",
+       "exif-iimcategory-edu": "Oktatás",
+       "exif-iimcategory-evn": "Környezet",
+       "exif-iimcategory-hth": "Egészség",
+       "exif-iimcategory-hum": "Emberi érdeklődés",
+       "exif-iimcategory-lab": "Munka",
+       "exif-iimcategory-lif": "Életmód és szabadidő",
+       "exif-iimcategory-pol": "Politika",
+       "exif-iimcategory-rel": "Vallás és hit",
+       "exif-iimcategory-sci": "Tudomány és technológia",
+       "exif-iimcategory-soi": "Társadalmi kérdések",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Háború, konfliktus és nyugtalanság",
+       "exif-iimcategory-wea": "Időjárás",
+       "exif-urgency-normal": "Normális ($1)",
+       "exif-urgency-low": "Alacsony ($1)",
+       "exif-urgency-high": "Magas ($1)",
+       "exif-urgency-other": "Egyedi prioritás ($1)"
+}
diff --git a/languages/i18n/exif/ia.json b/languages/i18n/exif/ia.json
new file mode 100644 (file)
index 0000000..37d33f2
--- /dev/null
@@ -0,0 +1,353 @@
+{
+       "@metadata": {
+               "authors": [
+                       "McDutchie"
+               ]
+       },
+       "exif-imagewidth": "Latitude",
+       "exif-imagelength": "Altitude",
+       "exif-bitspersample": "Bits per componente",
+       "exif-compression": "Schema de compression",
+       "exif-photometricinterpretation": "Composition de pixel",
+       "exif-orientation": "Orientation",
+       "exif-samplesperpixel": "Numero de componentes",
+       "exif-planarconfiguration": "Arrangiamento del datos",
+       "exif-ycbcrsubsampling": "Ration de reduction de Y a C",
+       "exif-ycbcrpositioning": "Positionamento Y e C",
+       "exif-xresolution": "Resolution horizontal",
+       "exif-yresolution": "Resolution vertical",
+       "exif-stripoffsets": "Location del datos del imagine",
+       "exif-rowsperstrip": "Numero de lineas per banda",
+       "exif-stripbytecounts": "Bytes per banda comprimite",
+       "exif-jpeginterchangeformat": "Position de JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bytes del datos JPEG",
+       "exif-whitepoint": "Chromaticitate del puncto blanc",
+       "exif-primarychromaticities": "Chromaticitates del colores primari",
+       "exif-ycbcrcoefficients": "Coefficientes del matrice de transformation del spatio de colores",
+       "exif-referenceblackwhite": "Par de valores de referentia nigre e blanc",
+       "exif-datetime": "Data e hora de modification del file",
+       "exif-imagedescription": "Titulo del imagine",
+       "exif-make": "Fabricante del camera",
+       "exif-model": "Modello del camera",
+       "exif-software": "Software usate",
+       "exif-artist": "Autor",
+       "exif-copyright": "Titular del copyright",
+       "exif-exifversion": "Version de Exif",
+       "exif-flashpixversion": "Version supportate de Flashpix",
+       "exif-colorspace": "Spatio de colores",
+       "exif-componentsconfiguration": "Significato de cata componente",
+       "exif-compressedbitsperpixel": "Modo de compression del imagine",
+       "exif-pixelxdimension": "Latitude del imagine",
+       "exif-pixelydimension": "Altitude del imagine",
+       "exif-usercomment": "Commentos del usator",
+       "exif-relatedsoundfile": "File audio connexe",
+       "exif-datetimeoriginal": "Data e hora del generation del datos",
+       "exif-datetimedigitized": "Data e hora del digitalisation",
+       "exif-subsectime": "Fractiones de secundas DateTime",
+       "exif-subsectimeoriginal": "Fractiones de secundas DateTimeOriginal",
+       "exif-subsectimedigitized": "Fractiones de secundas DateTimeDigitized",
+       "exif-exposuretime": "Tempore de exposition",
+       "exif-exposuretime-format": "$1 sec ($2)",
+       "exif-fnumber": "Numero F",
+       "exif-exposureprogram": "Programma de exposition",
+       "exif-spectralsensitivity": "Sensibilitate spectral",
+       "exif-isospeedratings": "Classification de velocitate ISO",
+       "exif-shutterspeedvalue": "Velocitate del obturator in unitates APEX",
+       "exif-aperturevalue": "Latitude del apertura in unitates APEX",
+       "exif-brightnessvalue": "Luminositate in unitates APEX",
+       "exif-exposurebiasvalue": "Correction de exposition",
+       "exif-maxaperturevalue": "Apertura maxime pro terra",
+       "exif-subjectdistance": "Distantia del subjecto",
+       "exif-meteringmode": "Modo de mesura",
+       "exif-lightsource": "Fonte de lumine",
+       "exif-flash": "Flash",
+       "exif-focallength": "Longitude focal del lente",
+       "exif-subjectarea": "Area de subjecto",
+       "exif-flashenergy": "Energia del flash",
+       "exif-focalplanexresolution": "Resolution X del plano focal",
+       "exif-focalplaneyresolution": "Resolution Y del plano focal",
+       "exif-focalplaneresolutionunit": "Unitate del resolution del plano focal",
+       "exif-subjectlocation": "Location del subjecto",
+       "exif-exposureindex": "Indice de exposition",
+       "exif-sensingmethod": "Methodo de sensor",
+       "exif-filesource": "Origine del file",
+       "exif-scenetype": "Typo de scena",
+       "exif-customrendered": "Processamento de imagines personalisate",
+       "exif-exposuremode": "Modo de exposition",
+       "exif-whitebalance": "Balancia de blanc",
+       "exif-digitalzoomratio": "Ration de zoom digital",
+       "exif-focallengthin35mmfilm": "Longitude focal in film de 35 mm",
+       "exif-scenecapturetype": "Typo de captura de scena",
+       "exif-gaincontrol": "Controlo de scena",
+       "exif-contrast": "Contrasto",
+       "exif-saturation": "Saturation",
+       "exif-sharpness": "Nitiditate",
+       "exif-devicesettingdescription": "Description del configurationes del apparato",
+       "exif-subjectdistancerange": "Intervallo de distantia del subjecto",
+       "exif-imageuniqueid": "ID unic del imagine",
+       "exif-gpsversionid": "Version del etiquetta GPS",
+       "exif-gpslatituderef": "Latitude nord o sud",
+       "exif-gpslatitude": "Latitude",
+       "exif-gpslongituderef": "Longitude est o west",
+       "exif-gpslongitude": "Longitude",
+       "exif-gpsaltituderef": "Referentia de altitude",
+       "exif-gpsaltitude": "Altitude",
+       "exif-gpstimestamp": "Hora GPS (horologio atomic)",
+       "exif-gpssatellites": "Satellites usate pro mesura",
+       "exif-gpsstatus": "Stato del receptor",
+       "exif-gpsmeasuremode": "Modo de mesura",
+       "exif-gpsdop": "Precision de mesura",
+       "exif-gpsspeedref": "Unitate de velocitate",
+       "exif-gpsspeed": "Velocitate del receptor GPS",
+       "exif-gpstrackref": "Referentia pro direction de movimento",
+       "exif-gpstrack": "Direction de movimento",
+       "exif-gpsimgdirectionref": "Referentia pro direction de imagine",
+       "exif-gpsimgdirection": "Direction de imagine",
+       "exif-gpsmapdatum": "Datos de examination geodesic usate",
+       "exif-gpsdestlatituderef": "Referentia pro latitude de destination",
+       "exif-gpsdestlatitude": "Latitude de destination",
+       "exif-gpsdestlongituderef": "Referentia pro longitude de destination",
+       "exif-gpsdestlongitude": "Longitude de destination",
+       "exif-gpsdestbearingref": "Referentia pro relevamento de destination",
+       "exif-gpsdestbearing": "Relevamento de destination",
+       "exif-gpsdestdistanceref": "Referentia pro distantia a destination",
+       "exif-gpsdestdistance": "Distantia a destination",
+       "exif-gpsprocessingmethod": "Nomine de methodo de processamento GPS",
+       "exif-gpsareainformation": "Nomine de area GPS",
+       "exif-gpsdatestamp": "Data GPS",
+       "exif-gpsdifferential": "Correction differential GPS",
+       "exif-jpegfilecomment": "Commento del file JPEG",
+       "exif-keywords": "Parolas-clave",
+       "exif-worldregioncreated": "Region del mundo ubi le photo esseva prendite",
+       "exif-countrycreated": "Pais ubi le photo esseva prendite",
+       "exif-countrycodecreated": "Codice pro le pais ubi le photo esseva prendite",
+       "exif-provinceorstatecreated": "Provincia o stato ubi le photo esseva prendite",
+       "exif-citycreated": "Citate ubi le photo esseva prendite",
+       "exif-sublocationcreated": "Sublocalitate del citate ubi le photo esseva prendite",
+       "exif-worldregiondest": "Region del mundo monstrate",
+       "exif-countrydest": "Pais monstrate",
+       "exif-countrycodedest": "Codice del pais monstrate",
+       "exif-provinceorstatedest": "Provincia o stato monstrate",
+       "exif-citydest": "Citate monstrate",
+       "exif-sublocationdest": "Sublocalitate del citate monstrate",
+       "exif-objectname": "Titulo curte",
+       "exif-specialinstructions": "Instructiones special",
+       "exif-headline": "Titulo",
+       "exif-credit": "Credito/Fornitor",
+       "exif-source": "Origine",
+       "exif-editstatus": "Stato redactorial del imagine",
+       "exif-urgency": "Urgentia",
+       "exif-fixtureidentifier": "Nomine del rubrica",
+       "exif-locationdest": "Loco representate",
+       "exif-locationdestcode": "Codice del loco representate",
+       "exif-objectcycle": "Horas del die a que iste objecto es destinate",
+       "exif-contact": "Informationes de contacto",
+       "exif-writer": "Scriptor",
+       "exif-languagecode": "Lingua",
+       "exif-iimversion": "Version de IIM",
+       "exif-iimcategory": "Categoria",
+       "exif-iimsupplementalcategory": "Categorias supplementari",
+       "exif-datetimeexpires": "Non usar post",
+       "exif-datetimereleased": "Data de publication",
+       "exif-originaltransmissionref": "Codice de localitate del transmission original",
+       "exif-identifier": "Identificator",
+       "exif-lens": "Objectivo usate",
+       "exif-serialnumber": "Numero de serie del camera",
+       "exif-cameraownername": "Proprietario del camera",
+       "exif-label": "Etiquetta",
+       "exif-datetimemetadata": "Data del ultime modification del metadatos",
+       "exif-nickname": "Nomine informal del imagine",
+       "exif-rating": "Evalutation (1-5)",
+       "exif-rightscertificate": "Certificato de gestion de derectos",
+       "exif-copyrighted": "Stato de copyright",
+       "exif-copyrightowner": "Titular del copyright",
+       "exif-usageterms": "Conditiones de uso",
+       "exif-webstatement": "Declaration in linea de copyright",
+       "exif-originaldocumentid": "ID unic del documento original",
+       "exif-licenseurl": "URL pro licentia de copyright",
+       "exif-morepermissionsurl": "Information alternative de licentia",
+       "exif-attributionurl": "Si tu re-usa iste obra, per favor insere un ligamine a",
+       "exif-preferredattributionname": "Si tu re-usa iste obra, per favor da recognoscentia a",
+       "exif-pngfilecomment": "Commento del file PNG",
+       "exif-disclaimer": "Repudiation",
+       "exif-contentwarning": "Advertimento de contento",
+       "exif-giffilecomment": "Commento del file GIF",
+       "exif-intellectualgenre": "Typo de elemento",
+       "exif-subjectnewscode": "Codice de subjecto",
+       "exif-scenecode": "Codice de scena IPTC",
+       "exif-event": "Evento representate",
+       "exif-organisationinimage": "Organisation representate",
+       "exif-personinimage": "Persona representate",
+       "exif-originalimageheight": "Altitude del imagine ante taliar",
+       "exif-originalimagewidth": "Latitude del imagine ante taliar",
+       "exif-compression-1": "Non comprimite",
+       "exif-compression-2": "CCITT Group 3 1-Dimensional Modified Huffman run length encoding",
+       "exif-compression-3": "CCITT Group 3 codification fax",
+       "exif-compression-4": "CCITT Group 4 codification fax",
+       "exif-copyrighted-true": "Sub copyright",
+       "exif-copyrighted-false": "Stato de copyright non definite",
+       "exif-photometricinterpretation-0": "Nigro e blanco (blanco es 0)",
+       "exif-photometricinterpretation-1": "Nigre e blanc (0 pro nigre)",
+       "exif-photometricinterpretation-3": "Paletta",
+       "exif-photometricinterpretation-4": "Masca de transparentia",
+       "exif-photometricinterpretation-5": "Separate (probabilemente CMYK)",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (codification ICC)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (codification ITU)",
+       "exif-unknowndate": "Data incognite",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Invertite horizontalmente",
+       "exif-orientation-3": "Rotate 180°",
+       "exif-orientation-4": "Invertite verticalmente",
+       "exif-orientation-5": "Rotate 90° in senso antihorologic e invertite verticalmente",
+       "exif-orientation-6": "Rotate 90° in senso antihorologic",
+       "exif-orientation-7": "Rotate 90° in senso horologic e invertite verticalmente",
+       "exif-orientation-8": "Rotate 90° in senso horologic",
+       "exif-planarconfiguration-1": "formato a blocos (chunky)",
+       "exif-planarconfiguration-2": "formato planar",
+       "exif-colorspace-65535": "Non calibrate",
+       "exif-componentsconfiguration-0": "non existe",
+       "exif-exposureprogram-0": "Non definite",
+       "exif-exposureprogram-1": "Manual",
+       "exif-exposureprogram-2": "Programma normal",
+       "exif-exposureprogram-3": "Prioritate del apertura",
+       "exif-exposureprogram-4": "Prioritate del obturator",
+       "exif-exposureprogram-5": "Programma creative (preferentia verso profunditate de campo)",
+       "exif-exposureprogram-6": "Programma de action (preferentia verso rapiditate del obturator)",
+       "exif-exposureprogram-7": "Modo de portrait (pro subjectos vicin con fundo foras de foco)",
+       "exif-exposureprogram-8": "Modo panorama (pro photos de panoramas con fundo in foco)",
+       "exif-subjectdistance-value": "$1 metros",
+       "exif-meteringmode-0": "Incognite",
+       "exif-meteringmode-1": "Media",
+       "exif-meteringmode-2": "Media pesate in centro",
+       "exif-meteringmode-3": "Puncto",
+       "exif-meteringmode-4": "MultiPuncto",
+       "exif-meteringmode-5": "Patrono",
+       "exif-meteringmode-6": "Partial",
+       "exif-meteringmode-255": "Altere",
+       "exif-lightsource-0": "Incognite",
+       "exif-lightsource-1": "Lumine diurne",
+       "exif-lightsource-2": "Fluorescente",
+       "exif-lightsource-3": "Tungsten (lumine incandescente)",
+       "exif-lightsource-4": "Flash",
+       "exif-lightsource-9": "Tempore clar",
+       "exif-lightsource-10": "Tempore nubilose",
+       "exif-lightsource-11": "Umbra",
+       "exif-lightsource-12": "Fluorescente de lumine diurne (D 5700 – 7100K)",
+       "exif-lightsource-13": "Fluorescente blanc diurne (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fluorescente blanc fresc (W 3900 – 4500K)",
+       "exif-lightsource-15": "Fluorescente blanc (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Lumine standard A",
+       "exif-lightsource-18": "Lumine standard B",
+       "exif-lightsource-19": "Lumine standard C",
+       "exif-lightsource-24": "Tungsten de studio ISO",
+       "exif-lightsource-255": "Altere origine de lumine",
+       "exif-flash-fired-0": "Flash non ha fulgurate",
+       "exif-flash-fired-1": "Flash ha fulgurate",
+       "exif-flash-return-0": "nulle function pro deteger stroboscopio",
+       "exif-flash-return-2": "stroboscopio non detegite",
+       "exif-flash-return-3": "stroboscopio detegite",
+       "exif-flash-mode-1": "activation del flash fortiate",
+       "exif-flash-mode-2": "suppression del flash fortiate",
+       "exif-flash-mode-3": "modo automatic",
+       "exif-flash-function-1": "Nulle function de flash",
+       "exif-flash-redeye-1": "modo de reduction de oculos rubie",
+       "exif-focalplaneresolutionunit-2": "uncias",
+       "exif-sensingmethod-1": "Non definite",
+       "exif-sensingmethod-2": "Sensor de area de colores a singule chip",
+       "exif-sensingmethod-3": "Sensor de area de colores a duo chips",
+       "exif-sensingmethod-4": "Sensor de area de colores a tres chips",
+       "exif-sensingmethod-5": "Sensor de area sequential de colores",
+       "exif-sensingmethod-7": "Sensor trilinear",
+       "exif-sensingmethod-8": "Sensor de color linear sequential",
+       "exif-filesource-3": "Camera photographic digital",
+       "exif-scenetype-1": "Un imagine directemente photographiate",
+       "exif-customrendered-0": "Processo normal",
+       "exif-customrendered-1": "Processo personalisate",
+       "exif-exposuremode-0": "Exposition automatic",
+       "exif-exposuremode-1": "Exposition manual",
+       "exif-exposuremode-2": "Bracketing automatic",
+       "exif-whitebalance-0": "Balancia de blanc automatic",
+       "exif-whitebalance-1": "Balancia de blanc manual",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Paisage",
+       "exif-scenecapturetype-2": "Portrait",
+       "exif-scenecapturetype-3": "Scena nocturne",
+       "exif-gaincontrol-0": "Nulle",
+       "exif-gaincontrol-1": "Basse ganio positive",
+       "exif-gaincontrol-2": "Alte ganio positive",
+       "exif-gaincontrol-3": "Basse ganio negative",
+       "exif-gaincontrol-4": "Alte ganio negative",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Suave",
+       "exif-contrast-2": "Forte",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Basse saturation",
+       "exif-saturation-2": "Alte saturation",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Dulce",
+       "exif-sharpness-2": "Dur",
+       "exif-subjectdistancerange-0": "Incognite",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Vista proxime",
+       "exif-subjectdistancerange-3": "Vista distante",
+       "exif-gpslatitude-n": "Latitude nord",
+       "exif-gpslatitude-s": "Latitude sud",
+       "exif-gpslongitude-e": "Longitude est",
+       "exif-gpslongitude-w": "Longitude west",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metro|metros}} super le nivello del mar",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metro|metros}} sub le nivello del mar",
+       "exif-gpsstatus-a": "Mesura in curso",
+       "exif-gpsstatus-v": "Interoperabilitate del mesura",
+       "exif-gpsmeasuremode-2": "Mesura bidimensional",
+       "exif-gpsmeasuremode-3": "Mesura tridimensional",
+       "exif-gpsspeed-k": "Kilometros per hora",
+       "exif-gpsspeed-m": "Millias per hora",
+       "exif-gpsspeed-n": "Nodos",
+       "exif-gpsdestdistance-k": "Kilometros",
+       "exif-gpsdestdistance-m": "Millias",
+       "exif-gpsdestdistance-n": "Millias nautic",
+       "exif-gpsdop-excellent": "Excellente ($1)",
+       "exif-gpsdop-good": "Bon ($1)",
+       "exif-gpsdop-moderate": "Moderate ($1)",
+       "exif-gpsdop-fair": "Acceptabile ($1)",
+       "exif-gpsdop-poor": "Mal ($1)",
+       "exif-objectcycle-a": "Matino solmente",
+       "exif-objectcycle-p": "Vespere solmente",
+       "exif-objectcycle-b": "Matino e vespere",
+       "exif-gpsdirection-t": "Direction real",
+       "exif-gpsdirection-m": "Direction magnetic",
+       "exif-ycbcrpositioning-1": "Centrate",
+       "exif-ycbcrpositioning-2": "Co-situate",
+       "exif-dc-contributor": "Contributores",
+       "exif-dc-coverage": "Scopo spatial o temporal del objecto",
+       "exif-dc-date": "Data(s)",
+       "exif-dc-publisher": "Editor",
+       "exif-dc-relation": "Objectos connexe",
+       "exif-dc-rights": "Derectos",
+       "exif-dc-source": "Objecto original",
+       "exif-dc-type": "Typo de objecto",
+       "exif-rating-rejected": "Rejectate",
+       "exif-isospeedratings-overflow": "Superior a 65535",
+       "exif-iimcategory-ace": "Arte, cultura e intertenimento",
+       "exif-iimcategory-clj": "Crimine e lege",
+       "exif-iimcategory-dis": "Catastrophes e accidentes",
+       "exif-iimcategory-fin": "Economia e negotios",
+       "exif-iimcategory-edu": "Education",
+       "exif-iimcategory-evn": "Ambiente",
+       "exif-iimcategory-hth": "Sanitate",
+       "exif-iimcategory-hum": "Interesse human",
+       "exif-iimcategory-lab": "Labor",
+       "exif-iimcategory-lif": "Stilo de vita e tempore libere",
+       "exif-iimcategory-pol": "Politica",
+       "exif-iimcategory-rel": "Religion e credentia",
+       "exif-iimcategory-sci": "Scientia e technologia",
+       "exif-iimcategory-soi": "Questiones social",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Guerra, conflicto e perturbation",
+       "exif-iimcategory-wea": "Meteo",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Basse ($1)",
+       "exif-urgency-high": "Alte ($1)",
+       "exif-urgency-other": "Prioritate definite per usator ($1)"
+}
diff --git a/languages/i18n/exif/id.json b/languages/i18n/exif/id.json
new file mode 100644 (file)
index 0000000..96cc2a4
--- /dev/null
@@ -0,0 +1,389 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Bennylin",
+                       "Borgx",
+                       "IvanLanin",
+                       "Iwan Novirion",
+                       "J Subhi",
+                       "Kenrick95",
+                       "Meursault2004",
+                       "Rachmat04",
+                       "Rex"
+               ]
+       },
+       "exif-imagewidth": "Lebar",
+       "exif-imagelength": "Tinggi",
+       "exif-bitspersample": "Bit per komponen",
+       "exif-compression": "Skema kompresi",
+       "exif-photometricinterpretation": "Komposisi piksel",
+       "exif-orientation": "Orientasi",
+       "exif-samplesperpixel": "Jumlah komponen",
+       "exif-planarconfiguration": "Pengaturan data",
+       "exif-ycbcrsubsampling": "Rasio subsampling Y ke C",
+       "exif-ycbcrpositioning": "Penempatan Y dan C",
+       "exif-xresolution": "Resolusi horizontal",
+       "exif-yresolution": "Resolusi vertikal",
+       "exif-stripoffsets": "Lokasi data gambar",
+       "exif-rowsperstrip": "Jumlah baris per strip",
+       "exif-stripbytecounts": "Bita per strip kompresi",
+       "exif-jpeginterchangeformat": "Ofset ke JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bita data JPEG",
+       "exif-whitepoint": "Kromatisitas titik putih",
+       "exif-primarychromaticities": "Kromatisitas warna primer",
+       "exif-ycbcrcoefficients": "Koefisien matriks transformasi ruang warna",
+       "exif-referenceblackwhite": "Nilai referensi pasangan hitam putih",
+       "exif-datetime": "Tanggal dan waktu perubahan berkas",
+       "exif-imagedescription": "Judul gambar",
+       "exif-make": "Produsen kamera",
+       "exif-model": "Model kamera",
+       "exif-software": "Perangkat lunak",
+       "exif-artist": "Pembuat",
+       "exif-copyright": "Pemilik hak cipta",
+       "exif-exifversion": "Versi Exif",
+       "exif-flashpixversion": "Dukungan versi Flashpix",
+       "exif-colorspace": "Ruang warna",
+       "exif-componentsconfiguration": "Arti tiap komponen",
+       "exif-compressedbitsperpixel": "Mode kompresi gambar",
+       "exif-pixelxdimension": "Lebar gambar",
+       "exif-pixelydimension": "Tinggi gambar",
+       "exif-usercomment": "Komentar pengguna",
+       "exif-relatedsoundfile": "Berkas audio yang berhubungan",
+       "exif-datetimeoriginal": "Tanggal dan waktu pembuatan data",
+       "exif-datetimedigitized": "Tanggal dan waktu digitalisasi",
+       "exif-subsectime": "Subdetik DateTime",
+       "exif-subsectimeoriginal": "Subdetik DateTimeOriginal",
+       "exif-subsectimedigitized": "Subdetik DateTimeDigitized",
+       "exif-exposuretime": "Waktu pajanan",
+       "exif-exposuretime-format": "$1 detik ($2)",
+       "exif-fnumber": "Nilai F",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Program pajanan",
+       "exif-spectralsensitivity": "Sensitivitas spektral",
+       "exif-isospeedratings": "Rating kecepatan ISO",
+       "exif-shutterspeedvalue": "Kecepatan rana APEX",
+       "exif-aperturevalue": "Bukaan APEX",
+       "exif-brightnessvalue": "Kecerahan APEX",
+       "exif-exposurebiasvalue": "Bias pajanan",
+       "exif-maxaperturevalue": "Bukaan tanah maksimum",
+       "exif-subjectdistance": "Jarak subjek",
+       "exif-meteringmode": "Mode pengukuran",
+       "exif-lightsource": "Sumber cahaya",
+       "exif-flash": "Kilas",
+       "exif-focallength": "Jarak fokus lensa",
+       "exif-focallength-format": "$1 mm",
+       "exif-subjectarea": "Wilayah subjek",
+       "exif-flashenergy": "Energi kilas",
+       "exif-focalplanexresolution": "Resolusi bidang fokus X",
+       "exif-focalplaneyresolution": "Resolusi bidang fokus Y",
+       "exif-focalplaneresolutionunit": "Unit resolusi bidang fokus",
+       "exif-subjectlocation": "Lokasi subjek",
+       "exif-exposureindex": "Indeks pajanan",
+       "exif-sensingmethod": "Metode penginderaan",
+       "exif-filesource": "Sumber berkas",
+       "exif-scenetype": "Tipe pemandangan",
+       "exif-customrendered": "Proses buatan gambar",
+       "exif-exposuremode": "Mode pajanan",
+       "exif-whitebalance": "Keseimbangan putih",
+       "exif-digitalzoomratio": "Rasio pembesaran digital",
+       "exif-focallengthin35mmfilm": "Panjang fokus pada film 35 mm",
+       "exif-scenecapturetype": "Tipe penangkapan",
+       "exif-gaincontrol": "Kontrol pemandangan",
+       "exif-contrast": "Kontras",
+       "exif-saturation": "Saturasi",
+       "exif-sharpness": "Ketajaman",
+       "exif-devicesettingdescription": "Deskripsi pengaturan alat",
+       "exif-subjectdistancerange": "Jarak subjek",
+       "exif-imageuniqueid": "ID unik gambar",
+       "exif-gpsversionid": "Versi tag GPS",
+       "exif-gpslatituderef": "Lintang Utara atau Selatan",
+       "exif-gpslatitude": "Lintang",
+       "exif-gpslongituderef": "Bujur Timur atau Barat",
+       "exif-gpslongitude": "Bujur",
+       "exif-gpsaltituderef": "Referensi ketinggian",
+       "exif-gpsaltitude": "Ketinggian",
+       "exif-gpstimestamp": "Waktu GPS (jam atom)",
+       "exif-gpssatellites": "Satelit untuk pengukuran",
+       "exif-gpsstatus": "Status penerima",
+       "exif-gpsmeasuremode": "Mode pengukuran",
+       "exif-gpsdop": "Ketepatan pengukuran",
+       "exif-gpsspeedref": "Unit kecepatan",
+       "exif-gpsspeed": "Kecepatan penerima GPS",
+       "exif-gpstrackref": "Referensi arah gerakan",
+       "exif-gpstrack": "Arah gerakan",
+       "exif-gpsimgdirectionref": "Referensi arah gambar",
+       "exif-gpsimgdirection": "Arah gambar",
+       "exif-gpsmapdatum": "Data survei geodesi",
+       "exif-gpsdestlatituderef": "Referensi lintang dari tujuan",
+       "exif-gpsdestlatitude": "Lintang tujuan",
+       "exif-gpsdestlongituderef": "Referensi bujur dari tujuan",
+       "exif-gpsdestlongitude": "Bujur tujuan",
+       "exif-gpsdestbearingref": "Referensi bearing tujuan",
+       "exif-gpsdestbearing": "Bearing tujuan",
+       "exif-gpsdestdistanceref": "Referensi jarak dari tujuan",
+       "exif-gpsdestdistance": "Jarak dari tujuan",
+       "exif-gpsprocessingmethod": "Nama metode proses GPS",
+       "exif-gpsareainformation": "Nama wilayah GPS",
+       "exif-gpsdatestamp": "Tanggal GPS",
+       "exif-gpsdifferential": "Koreksi diferensial GPS",
+       "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-jpegfilecomment": "Komentar berkas JPEG",
+       "exif-keywords": "Kata kunci",
+       "exif-worldregioncreated": "Wilayah dunia tempat pengambilan gambar",
+       "exif-countrycreated": "Negara tempat pengambilan gambar",
+       "exif-countrycodecreated": "Kode negara tempat pengambilan gambar",
+       "exif-provinceorstatecreated": "Provinsi atau negara bagian tempat pengambilan gambar",
+       "exif-citycreated": "Kota tempat pengambilan gambar",
+       "exif-sublocationcreated": "Sublokasi kota tempat pengambilan gambar",
+       "exif-worldregiondest": "Wilayah dunia yang ditampilkan",
+       "exif-countrydest": "Negara yang ditampilkan",
+       "exif-countrycodedest": "Kode negara yang ditampilkan",
+       "exif-provinceorstatedest": "Provinsi atau negara bagian yang ditampilkan",
+       "exif-citydest": "Kota yang ditampilkan",
+       "exif-sublocationdest": "Sublokasi kota yang ditampilkan",
+       "exif-objectname": "Judul singkat",
+       "exif-specialinstructions": "Instruksi khusus",
+       "exif-headline": "Tajuk",
+       "exif-credit": "Kredit/Penyedia",
+       "exif-source": "Sumber",
+       "exif-editstatus": "Status editorial gambar",
+       "exif-urgency": "Urgensi",
+       "exif-fixtureidentifier": "Nama fikstur",
+       "exif-locationdest": "Lokasi yang digambarkan",
+       "exif-locationdestcode": "Kode lokasi yang digambarkan",
+       "exif-objectcycle": "Waktu tujuan media",
+       "exif-contact": "Informasi kontak",
+       "exif-writer": "Penulis",
+       "exif-languagecode": "Bahasa",
+       "exif-iimversion": "Versi IIM",
+       "exif-iimcategory": "Kategori",
+       "exif-iimsupplementalcategory": "Kategori tambahan",
+       "exif-datetimeexpires": "Jangan gunakan setelah",
+       "exif-datetimereleased": "Dirilis pada",
+       "exif-originaltransmissionref": "Kode lokasi transmisi asli",
+       "exif-identifier": "Pengenal",
+       "exif-lens": "Lensa yang digunakan",
+       "exif-serialnumber": "Nomor seri kamera",
+       "exif-cameraownername": "Pemilik kamera",
+       "exif-label": "Label",
+       "exif-datetimemetadata": "Tanggal terakhir perubahan metadata",
+       "exif-nickname": "Nama informal gambar",
+       "exif-rating": "Nilai (dari 5)",
+       "exif-rightscertificate": "Sertifikat manajemen hak",
+       "exif-copyrighted": "Status hak cipta",
+       "exif-copyrightowner": "Pemilik hak cipta",
+       "exif-usageterms": "Ketentuan penggunaan",
+       "exif-webstatement": "Pernyataan hak cipta daring",
+       "exif-originaldocumentid": "ID unik dokumen asli",
+       "exif-licenseurl": "URL lisensi hak cipta",
+       "exif-morepermissionsurl": "Informasi lisensi alternatif",
+       "exif-attributionurl": "Ketika menggunakan kembali karya ini, tolong tautkan ke",
+       "exif-preferredattributionname": "Ketika menggunakan kembali karya ini, tolong berikan kredit",
+       "exif-pngfilecomment": "Komentar berkas PNG",
+       "exif-disclaimer": "Penyangkalan",
+       "exif-contentwarning": "Peringatan konten",
+       "exif-giffilecomment": "Komentar berkas GIF",
+       "exif-intellectualgenre": "Jenis objek",
+       "exif-subjectnewscode": "Kode subjek",
+       "exif-scenecode": "Kode adegan IPTC",
+       "exif-event": "Peristiwa yang digambarkan",
+       "exif-organisationinimage": "Organisasi yang digambarkan",
+       "exif-personinimage": "Orang yang digambarkan",
+       "exif-originalimageheight": "Tinggi gambar sebelum dipotong",
+       "exif-originalimagewidth": "Lebar gambar sebelum dipotong",
+       "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5 - $6, $7\n</div>\n$8",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "Tak terkompresi",
+       "exif-compression-2": "CCITT Group 3 1-Dimensional Modified Huffman RLE",
+       "exif-compression-3": "CCITT Group 3 fax encoding",
+       "exif-compression-4": "CCITT Group 4 fax encoding",
+       "exif-compression-5": "LZW",
+       "exif-compression-6": "JPEG (lama)",
+       "exif-compression-7": "JPEG",
+       "exif-compression-8": "Turunan (Adobe)",
+       "exif-compression-32773": "PackBits (Macintosh RLE)",
+       "exif-compression-32946": "Turunan (PKZIP)",
+       "exif-compression-34712": "JPEG2000",
+       "exif-copyrighted-true": "Berhak cipta",
+       "exif-copyrighted-false": "Status hak cipta belum diatur",
+       "exif-photometricinterpretation-0": "Hitam dan putih (Putih adalah 0)",
+       "exif-photometricinterpretation-1": "Hitam dan putih (Hitam adalah 0)",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-3": "Palet",
+       "exif-photometricinterpretation-4": "Masker transparansi",
+       "exif-photometricinterpretation-5": "Terpisah (Kemungkinan CMYK)",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (pengkodean ICC)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (pengkodean ITU)",
+       "exif-unknowndate": "Tanggal tak diketahui",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Dibalik horisontal",
+       "exif-orientation-3": "Diputar 180°",
+       "exif-orientation-4": "Dibalik vertikal",
+       "exif-orientation-5": "Diputar 90° CCW dan dibalik vertikal",
+       "exif-orientation-6": "Diputar 90° CCW",
+       "exif-orientation-7": "Diputar 90° CW dan dibalik vertikal",
+       "exif-orientation-8": "Diputar 90° CW",
+       "exif-planarconfiguration-1": "format chunky",
+       "exif-planarconfiguration-2": "format planar",
+       "exif-xyresolution-i": "$1 dpi",
+       "exif-xyresolution-c": "$1 dpc",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "Tidak dikalibrasi",
+       "exif-componentsconfiguration-0": "tak tersedia",
+       "exif-componentsconfiguration-1": "Y",
+       "exif-componentsconfiguration-2": "Cb",
+       "exif-componentsconfiguration-3": "Cr",
+       "exif-componentsconfiguration-4": "R",
+       "exif-componentsconfiguration-5": "G",
+       "exif-componentsconfiguration-6": "B",
+       "exif-exposureprogram-0": "Tak terdefinisi",
+       "exif-exposureprogram-1": "Manual",
+       "exif-exposureprogram-2": "Program normal",
+       "exif-exposureprogram-3": "Prioritas bukaan",
+       "exif-exposureprogram-4": "Prioritas penutup",
+       "exif-exposureprogram-5": "Program kreatif (condong ke kedalaman ruang)",
+       "exif-exposureprogram-6": "Program aksi (condong ke kecepatan rana)",
+       "exif-exposureprogram-7": "Modus potret (untuk foto closeup dengan latar belakang tak fokus)",
+       "exif-exposureprogram-8": "Modus pemandangan (untuk foto pemandangan dengan latar belakang fokus)",
+       "exif-subjectdistance-value": "$1 meter",
+       "exif-meteringmode-0": "Tidak diketahui",
+       "exif-meteringmode-1": "Rerata",
+       "exif-meteringmode-2": "RerataBerbobot",
+       "exif-meteringmode-3": "Terpusat",
+       "exif-meteringmode-4": "BanyakPusat",
+       "exif-meteringmode-5": "Pola",
+       "exif-meteringmode-6": "Parsial",
+       "exif-meteringmode-255": "Lain-lain",
+       "exif-lightsource-0": "Tidak diketahui",
+       "exif-lightsource-1": "Cahaya siang",
+       "exif-lightsource-2": "Pendarflour",
+       "exif-lightsource-3": "Wolfram (cahaya pijar)",
+       "exif-lightsource-4": "Kilas",
+       "exif-lightsource-9": "Cuaca baik",
+       "exif-lightsource-10": "Cuaca berkabut",
+       "exif-lightsource-11": "Bayangan",
+       "exif-lightsource-12": "Pendarflour cahaya siang (D 5700 – 7100K)",
+       "exif-lightsource-13": "Pendarflour putih siang (N 4600 – 5400K)",
+       "exif-lightsource-14": "Pendarflour putih teduh (W 3900 – 4500K)",
+       "exif-lightsource-15": "Pendarflour putih (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Cahaya standar A",
+       "exif-lightsource-18": "Cahaya standar B",
+       "exif-lightsource-19": "Cahaya standar C",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-22": "D75",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "studio ISO tungsten",
+       "exif-lightsource-255": "Sumber cahaya lain",
+       "exif-flash-fired-0": "Lampu kilat tidak menyala",
+       "exif-flash-fired-1": "Lampu kilat menyala",
+       "exif-flash-return-0": "tidak ada fungsi pendeteksian strobo balik",
+       "exif-flash-return-2": "lampu strobo balik tidak terdeteksi",
+       "exif-flash-return-3": "lampu strobo balik terdeteksi",
+       "exif-flash-mode-1": "lampu kilat diperlukan",
+       "exif-flash-mode-2": "lampu kilat dimatikan",
+       "exif-flash-mode-3": "modus otomatis",
+       "exif-flash-function-1": "Tidak ada fungsi lampu kilat",
+       "exif-flash-redeye-1": "mode reduksi pantulan mata-merah",
+       "exif-focalplaneresolutionunit-2": "inci",
+       "exif-sensingmethod-1": "Tak terdefinisi",
+       "exif-sensingmethod-2": "Sensor area warna satu keping",
+       "exif-sensingmethod-3": "Sensor area warna dua keping",
+       "exif-sensingmethod-4": "Sensor area warna tiga keping",
+       "exif-sensingmethod-5": "Sensor area warna berurut",
+       "exif-sensingmethod-7": "Sensor trilinear",
+       "exif-sensingmethod-8": "Sensor linear warna berurut",
+       "exif-filesource-3": "Kamera diam digital",
+       "exif-scenetype-1": "Gambar foto langsung",
+       "exif-customrendered-0": "Proses normal",
+       "exif-customrendered-1": "Proses kustom",
+       "exif-exposuremode-0": "Pajanan otomatis",
+       "exif-exposuremode-1": "Pajanan manual",
+       "exif-exposuremode-2": "Braket otomatis",
+       "exif-whitebalance-0": "Keseimbangan putih otomatis",
+       "exif-whitebalance-1": "Keseimbangan putih manual",
+       "exif-scenecapturetype-0": "Standar",
+       "exif-scenecapturetype-1": "Melebar",
+       "exif-scenecapturetype-2": "Potret",
+       "exif-scenecapturetype-3": "Pemandangan malam",
+       "exif-gaincontrol-0": "Tidak ada",
+       "exif-gaincontrol-1": "Naikkan fokus rendah",
+       "exif-gaincontrol-2": "Naikkan fokus tinggi",
+       "exif-gaincontrol-3": "Turunkan fokus rendah",
+       "exif-gaincontrol-4": "Turunkan fokus tinggi",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Lembut",
+       "exif-contrast-2": "Keras",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Saturasi rendah",
+       "exif-saturation-2": "Saturasi tinggi",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Lembut",
+       "exif-sharpness-2": "Keras",
+       "exif-subjectdistancerange-0": "Tidak diketahui",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Tampak dekat",
+       "exif-subjectdistancerange-3": "Tampak jauh",
+       "exif-gpslatitude-n": "Lintang utara",
+       "exif-gpslatitude-s": "Lintang selatan",
+       "exif-gpslongitude-e": "Bujur timur",
+       "exif-gpslongitude-w": "Bujur barat",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter}} di atas permukaan laut",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter}} di bawah permukaan laut",
+       "exif-gpsstatus-a": "Pengukuran sedang berlangsung",
+       "exif-gpsstatus-v": "Interoperabilitas pengukuran",
+       "exif-gpsmeasuremode-2": "Pengukuran 2-dimensi",
+       "exif-gpsmeasuremode-3": "Pengukuran 3-dimensi",
+       "exif-gpsspeed-k": "Kilometer per jam",
+       "exif-gpsspeed-m": "Mil per jam",
+       "exif-gpsspeed-n": "Knot",
+       "exif-gpsdestdistance-k": "Kilometer",
+       "exif-gpsdestdistance-m": "Mil",
+       "exif-gpsdestdistance-n": "Mil laut",
+       "exif-gpsdop-excellent": "Sangat baik ($1)",
+       "exif-gpsdop-good": "Baik ($1)",
+       "exif-gpsdop-moderate": "Moderat ($1)",
+       "exif-gpsdop-fair": "Cukup ($1)",
+       "exif-gpsdop-poor": "Buruk ($1)",
+       "exif-objectcycle-a": "Hanya pagi",
+       "exif-objectcycle-p": "Hanya malam",
+       "exif-objectcycle-b": "Baik pagi maupun malam",
+       "exif-gpsdirection-t": "Arah sejati",
+       "exif-gpsdirection-m": "Arah magnetis",
+       "exif-ycbcrpositioning-1": "Tengah (centered)",
+       "exif-ycbcrpositioning-2": "Atas (co-sited)",
+       "exif-dc-contributor": "Kontributor",
+       "exif-dc-coverage": "Lingkup temporal atau spasial media",
+       "exif-dc-date": "Tanggal",
+       "exif-dc-publisher": "Penerbit",
+       "exif-dc-relation": "Media terkait",
+       "exif-dc-rights": "Hak",
+       "exif-dc-source": "Media sumber",
+       "exif-dc-type": "Jenis media",
+       "exif-rating-rejected": "Ditolak",
+       "exif-isospeedratings-overflow": "Lebih dari 65535",
+       "exif-maxaperturevalue-value": "$1 APEX (f/$2)",
+       "exif-iimcategory-ace": "Seni, budaya, dan hiburan",
+       "exif-iimcategory-clj": "Kejahatan dan hukum",
+       "exif-iimcategory-dis": "Bencana dan kecelakaan",
+       "exif-iimcategory-fin": "Ekonomi dan bisnis",
+       "exif-iimcategory-edu": "Pendidikan",
+       "exif-iimcategory-evn": "Lingkungan",
+       "exif-iimcategory-hth": "Kesehatan",
+       "exif-iimcategory-hum": "Minat insani",
+       "exif-iimcategory-lab": "Ketenagakerjaan",
+       "exif-iimcategory-lif": "Gaya hidup dan rekreasi",
+       "exif-iimcategory-pol": "Politik",
+       "exif-iimcategory-rel": "Agama dan kepercayaan",
+       "exif-iimcategory-sci": "Ilmu dan teknologi",
+       "exif-iimcategory-soi": "Isu sosial",
+       "exif-iimcategory-spo": "Olahraga",
+       "exif-iimcategory-war": "Perang, konflik, dan keresahan",
+       "exif-iimcategory-wea": "Cuaca",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Rendah ($1)",
+       "exif-urgency-high": "Tinggi ($1)",
+       "exif-urgency-other": "Prioritas ubahsuaian ($1)"
+}
diff --git a/languages/i18n/exif/ig.json b/languages/i18n/exif/ig.json
new file mode 100644 (file)
index 0000000..9f2035b
--- /dev/null
@@ -0,0 +1,81 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ukabia"
+               ]
+       },
+       "exif-imagewidth": "Àsáa",
+       "exif-imagelength": "Ógólógó",
+       "exif-orientation": "Ívú nà àsáa",
+       "exif-imagedescription": "Íshí nhuunuche",
+       "exif-software": "Ndiriusòrò ejìème",
+       "exif-artist": "Odé ákwụ́kwọ́",
+       "exif-exifversion": "Ùdị Exif",
+       "exif-colorspace": "Ámá àgwà",
+       "exif-exposuretime-format": "sec $1 ($2)",
+       "exif-fnumber": "Ónúọgụgụ F",
+       "exif-brightnessvalue": "Ọ̀chạ́ APEX",
+       "exif-lightsource": "Mkpọlógwù ìfè",
+       "exif-flash": "Gbu fịàfịà",
+       "exif-filesource": "Mkpọ̀lọ́gwụ̀ usòrò",
+       "exif-citydest": "Ámá ukwu ziri",
+       "exif-writer": "Òdìdè",
+       "exif-languagecode": "Ásụ̀sụ̀",
+       "exif-iimcategory": "Ụdàkọ",
+       "exif-label": "Ọdụ",
+       "exif-disclaimer": "Ńwepụ̀aka",
+       "exif-orientation-1": "Nkịtị",
+       "exif-exposureprogram-1": "Ònyèmáká",
+       "exif-subjectdistance-value": "meter $1",
+       "exif-meteringmode-0": "Nke námaghị",
+       "exif-meteringmode-1": "Nà nke ñkịtị",
+       "exif-meteringmode-3": "Ntụpọ",
+       "exif-meteringmode-5": "Nnòmi",
+       "exif-meteringmode-6": "Mmẹtụ",
+       "exif-meteringmode-255": "Nke ozor",
+       "exif-lightsource-0": "Nke námaghị",
+       "exif-lightsource-1": "Nta ubochi",
+       "exif-lightsource-4": "Gbu fịàfịà",
+       "exif-lightsource-9": "Iru igwē di ómá",
+       "exif-lightsource-10": "Iru igwē di ulùkpù ulùkpù",
+       "exif-lightsource-11": "Ǹdò",
+       "exif-focalplaneresolutionunit-2": "inch",
+       "exif-scenecapturetype-1": "Mkpọlógwù'àlà",
+       "exif-gaincontrol-0": "Efù",
+       "exif-contrast-0": "Nkịtị",
+       "exif-contrast-1": "Bịàlịị",
+       "exif-contrast-2": "Kàràká",
+       "exif-saturation-0": "Nkịtị",
+       "exif-sharpness-0": "Nkịtị",
+       "exif-sharpness-1": "Bịàlịị",
+       "exif-sharpness-2": "Kàràká",
+       "exif-subjectdistancerange-0": "Nke námaghị",
+       "exif-subjectdistancerange-2": "Mèchí ǹyò",
+       "exif-gpslatitude-n": "Asá olile anyanwu",
+       "exif-gpslatitude-s": "Asá nleda anyanwu",
+       "exif-gpslongitude-e": "Ógólógó owuwa anyanwu",
+       "exif-gpslongitude-w": "Ógólógó odida anyanwu",
+       "exif-gpsspeed-n": "Knot",
+       "exif-gpsdestdistance-k": "Kilomitas",
+       "exif-gpsdestdistance-m": "Maisu",
+       "exif-gpsdop-good": "Ọma ($1)",
+       "exif-gpsdop-moderate": "Dịtụnma ($1)",
+       "exif-gpsdop-fair": "Òzú ($1)",
+       "exif-dc-date": "Ngụụ̀bọ̀chì",
+       "exif-dc-publisher": "Ọ̀má ákwụ́kwọ́",
+       "exif-dc-rights": "Nkwènyé",
+       "exif-rating-rejected": "Gbụ́fụ̀rụ̀",
+       "exif-iimcategory-clj": "Nsọ na iwú",
+       "exif-iimcategory-edu": "Ńkúzí",
+       "exif-iimcategory-evn": "Èzí",
+       "exif-iimcategory-hth": "Wíké",
+       "exif-iimcategory-hum": "Mmasịrị madu",
+       "exif-iimcategory-lab": "Íké aka",
+       "exif-iimcategory-pol": "Ọ́chị́",
+       "exif-iimcategory-spo": "Ụ̀gbàmà",
+       "exif-iimcategory-war": "Ághá, ọ̀gụ̀ na ághàrà",
+       "exif-iimcategory-wea": "Ihü ígwe",
+       "exif-urgency-normal": "Nkịtị ($1)",
+       "exif-urgency-low": "Nàlà ($1)",
+       "exif-urgency-high": "Nélú ($1)"
+}
diff --git a/languages/i18n/exif/ilo.json b/languages/i18n/exif/ilo.json
new file mode 100644 (file)
index 0000000..6d2cfe2
--- /dev/null
@@ -0,0 +1,343 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Lam-ang",
+                       "Saluyot"
+               ]
+       },
+       "exif-imagewidth": "Kaakaba",
+       "exif-imagelength": "Katayag",
+       "exif-bitspersample": "Dagiti bit tunggal maysa a komponente",
+       "exif-compression": "Kompresion a pamuspusan",
+       "exif-photometricinterpretation": "Pakabuklan ti piksel",
+       "exif-orientation": "Pagturongan",
+       "exif-samplesperpixel": "Bilang dagiti komponente",
+       "exif-planarconfiguration": "Pannakaurnos ti datos",
+       "exif-ycbcrsubsampling": "Subwadan pannakaibagi ti Y iti C",
+       "exif-ycbcrpositioning": "Y ken C a panakaipatakderan",
+       "exif-xresolution": "Horisontal a resolusion",
+       "exif-yresolution": "Bertikal a resolusion",
+       "exif-stripoffsets": "Lokasion ti datos ti ladawan",
+       "exif-rowsperstrip": "Bilang ti ar-aray tunggal maysa a pirgis",
+       "exif-stripbytecounts": "Dagiti byte tunggal maysa a natalmegan  a pirgis",
+       "exif-jpeginterchangeformat": "Timbengan iti JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Dagiti byte ti datos ti JPEG",
+       "exif-whitepoint": "Kromatisidad ti puntos ti puraw",
+       "exif-primarychromaticities": "Dagiti kromasidad dagiti primaridad",
+       "exif-referenceblackwhite": "Reperensia a patpateg iti agparis a nangisit ken puraw",
+       "exif-datetime": "Panagsukat ti papeles ti petsa ken oras",
+       "exif-imagedescription": "Titulo ti ladawan",
+       "exif-make": "Nangpartuat iti kamera",
+       "exif-model": "Modelo ti kamera",
+       "exif-software": "Naaramat a sopwer",
+       "exif-artist": "Mannurat",
+       "exif-copyright": "Nakatengngel iti karbengan ti kopia",
+       "exif-exifversion": "Bersion ti Exif",
+       "exif-flashpixversion": "Nasuportaran a bersion ti Flashpix",
+       "exif-colorspace": "Espasio ti maris",
+       "exif-componentsconfiguration": "Kaibuksilan iti tunggal maysa a komponente",
+       "exif-compressedbitsperpixel": "Moda ti kompresion ti ladawan",
+       "exif-pixelxdimension": "Kaakaba ti ladawan",
+       "exif-pixelydimension": "Katayag ti ladawan",
+       "exif-usercomment": "Dagiti komentario ti agar-aramat",
+       "exif-relatedsoundfile": "Mainaig a papeles ti audio",
+       "exif-datetimeoriginal": "Petsa ken oras ti pannakaaramid ti datos",
+       "exif-datetimedigitized": "Petsa ken oras ti panang-dihitado",
+       "exif-subsectime": "DateTime subseconds",
+       "exif-subsectimeoriginal": "DateTimeOriginal subseconds",
+       "exif-subsectimedigitized": "DateTimeDigitized subseconds",
+       "exif-exposuretime": "Exposure time",
+       "exif-exposuretime-format": "$1 sec ($2)",
+       "exif-fnumber": "F a Numero",
+       "exif-exposureprogram": "Programa ti panakailatakan",
+       "exif-spectralsensitivity": "Espektral a sensitibidad",
+       "exif-isospeedratings": "Grado ti kapardas ti ISO",
+       "exif-shutterspeedvalue": "APEX Shutter speed",
+       "exif-aperturevalue": "Apex aperture",
+       "exif-brightnessvalue": "Kalawag ti APEX",
+       "exif-exposurebiasvalue": "Exposure bias",
+       "exif-maxaperturevalue": "Kangato ti apertura ti daga",
+       "exif-subjectdistance": "Kaadayo ti suheto",
+       "exif-meteringmode": "Panagmetro a moda",
+       "exif-lightsource": "Paggapuan ti lawag",
+       "exif-flash": "Silap",
+       "exif-focallength": "Lens focal length",
+       "exif-subjectarea": "Paset ti suheto",
+       "exif-flashenergy": "Enerhia ti silap",
+       "exif-focalplanexresolution": "Focal plane X resolution",
+       "exif-focalplaneyresolution": "Focal plane Y resolution",
+       "exif-focalplaneresolutionunit": "Focal plane resolution unit",
+       "exif-subjectlocation": "Lokasion ti suheto",
+       "exif-exposureindex": "Pagsurotan ti panakailatakan",
+       "exif-sensingmethod": "Pamay-an ti panagrikna",
+       "exif-filesource": "Taudan ti papeles",
+       "exif-scenetype": "Kita ti senario",
+       "exif-customrendered": "Naiduma a panagproseso ti ladawan",
+       "exif-exposuremode": "Moda ti panakailatakan",
+       "exif-whitebalance": "Pagtimbangan ti puraw",
+       "exif-digitalzoomratio": "Digital zoom ratio",
+       "exif-focallengthin35mmfilm": "Focal length iti 35 mm a film",
+       "exif-scenecapturetype": "Kita ti panagala iti senario",
+       "exif-gaincontrol": "Panagtengngel ti senario",
+       "exif-contrast": "Contrast",
+       "exif-saturation": "Saturation",
+       "exif-sharpness": "Kalawag",
+       "exif-devicesettingdescription": "Deskripsion dagiti pannakaidisso ti ramit",
+       "exif-subjectdistancerange": "Nasakup a kaadayo ti suheto",
+       "exif-imageuniqueid": "Naisangsangayan nga ID ti ladawan",
+       "exif-gpsversionid": "Etiketa a bersion ti GPS",
+       "exif-gpslatituderef": "Amianan wenno Abagatan a Latitud",
+       "exif-gpslatitude": "Latitud",
+       "exif-gpslongituderef": "Daya wenno Laud a Longitud",
+       "exif-gpslongitude": "Longitud",
+       "exif-gpsaltituderef": "Reperensia ti kangato",
+       "exif-gpsaltitude": "Kangato",
+       "exif-gpstimestamp": "GPS nga oras (atomiko a pagorasan)",
+       "exif-gpssatellites": "Dagiti satelite a naaramat para iti panagrukod",
+       "exif-gpsstatus": "Kasasaad ti pangawat",
+       "exif-gpsmeasuremode": "Panagrukod a moda",
+       "exif-gpsdop": "Kasayaat ti panagrukod",
+       "exif-gpsspeedref": "Yunit ti kapardas",
+       "exif-gpsspeed": "Kapaspas ti pangawat ti GPS",
+       "exif-gpstrackref": "Reperensia iti direksion ti kuti",
+       "exif-gpstrack": "Direksion ti kuti",
+       "exif-gpsimgdirectionref": "Reperensia iti direksion ti ladawan",
+       "exif-gpsimgdirection": "Direksion ti ladawan",
+       "exif-gpsmapdatum": "Datos nga inaramat ti geodetiko a panagsukimat",
+       "exif-gpsdestlatituderef": "Reperensia iti papanan a latitud",
+       "exif-gpsdestlatitude": "Papanan a latitud",
+       "exif-gpsdestlongituderef": "Reperensia iti papanan a longitud",
+       "exif-gpsdestlongitude": "Papanan a longitud",
+       "exif-gpsdestbearingref": "Reperensia iti dalan a papanan",
+       "exif-gpsdestbearing": "Dalan ti papanan",
+       "exif-gpsdestdistanceref": "Reperensia ti kaadayo  ti papanan",
+       "exif-gpsdestdistance": "Kaadayo iti papanan",
+       "exif-gpsprocessingmethod": "Nagan ti panagproseo a pamay-an ti GPS",
+       "exif-gpsareainformation": "Nagan ti lugar ti GPS",
+       "exif-gpsdatestamp": "Petsa ti GPS",
+       "exif-gpsdifferential": "Nasimpa a paggiddiatan ti GPS",
+       "exif-jpegfilecomment": "Komentario ti papeles ti JPEG",
+       "exif-keywords": "Nangruna a balbalikas",
+       "exif-worldregioncreated": "Rehion ti lubong a nakaalaan ti retrato",
+       "exif-countrycreated": "Pagilian a nakaalaan ti retrato",
+       "exif-countrycodecreated": "Kodigo ti pagilian a nakaalaan ti retrato",
+       "exif-provinceorstatecreated": "Probinsia wenno estado a nakaalaan ti retrato",
+       "exif-citycreated": "Siudad a nakaalaan ti retrato",
+       "exif-sublocationcreated": "Sabali pay a lokasion ti siudad a nakaalaan ti retrato",
+       "exif-worldregiondest": "Rehion ti lubong a naipakita",
+       "exif-countrydest": "Naipakita a pagilian",
+       "exif-countrycodedest": "Kodigo para ti pagilian a naipakita",
+       "exif-provinceorstatedest": "Probinsia wenno estado a naipakita",
+       "exif-citydest": "Naipakita a siudad",
+       "exif-sublocationdest": "Sublokasion ti siudad a naipakita",
+       "exif-objectname": "Ababa a titulo",
+       "exif-specialinstructions": "Kangrunaan a panagipalpalawag",
+       "exif-headline": "Paulo",
+       "exif-credit": "Pammadayaw/Nangted",
+       "exif-source": "Taudan",
+       "exif-editstatus": "Panagurnos a kasasaad ti ladawan",
+       "exif-urgency": "Ganat",
+       "exif-fixtureidentifier": "Nagan ti naikabit a banag",
+       "exif-locationdest": "Lugar a naibaga",
+       "exif-locationdestcode": "Kodigo ti lugar a naibaga",
+       "exif-objectcycle": "Oras ti aldaw a nairebbeng para iti daytoy a midia",
+       "exif-contact": "Pakaammo ti pagdamagan",
+       "exif-writer": "Mannurat",
+       "exif-languagecode": "Pagsasao",
+       "exif-iimversion": "Bersion ti IIM",
+       "exif-iimcategory": "Kategoria",
+       "exif-iimsupplementalcategory": "Dagiti sabali pay a kategoria",
+       "exif-datetimeexpires": "Saan nga usaren kalpasanna",
+       "exif-datetimereleased": "Nakairuar idi",
+       "exif-originaltransmissionref": "Kasisigud a transmision ti kodigo ti lokasion",
+       "exif-identifier": "Panangilasin",
+       "exif-lens": "Lente nga inusar",
+       "exif-serialnumber": "Agsasaruno a numero ti kamera",
+       "exif-cameraownername": "Akinkukua ti kamera",
+       "exif-label": "Etiketa",
+       "exif-datetimemetadata": "Petsa ti kinaudi a panagbaliw ti metadata",
+       "exif-nickname": "Di pormal a nagan ti ladwan",
+       "exif-rating": "Pategan (ti maysa kadagiti 5)",
+       "exif-rightscertificate": "Sertipikado ti panagtaripato kadagiti karbengan",
+       "exif-copyrighted": "Kasasaad ti karbengan ti kopia",
+       "exif-copyrightowner": "Akinkukua ti karbengan ti kopia",
+       "exif-usageterms": "Dagiti termino ti panagusar",
+       "exif-webstatement": "Insasao ti karbengan ti kopia nga addaan iti online",
+       "exif-originaldocumentid": "Naisangayan nga ID iti kinasigud a dokumento",
+       "exif-licenseurl": "URL para iti lisensia ti karbengan ti kopia",
+       "exif-morepermissionsurl": "Sabali a pakaammo ti lisensia",
+       "exif-attributionurl": "No usaren manen daytoy nga obra, pangngaasi nga isilpo iti",
+       "exif-preferredattributionname": "No usaren manen daytoy nga obra, pangngaasi a padayawan ni",
+       "exif-pngfilecomment": "Komentario ti papeles ti PNG",
+       "exif-disclaimer": "Renunsia",
+       "exif-contentwarning": "Ballaag ti linaon",
+       "exif-giffilecomment": "Komentario ti papeles ti GIF",
+       "exif-intellectualgenre": "Kita ti banag",
+       "exif-subjectnewscode": "Kodigo ti suheto",
+       "exif-scenecode": "Buya ti kodigo ti IPTC",
+       "exif-event": "Pasamak a naibaga",
+       "exif-organisationinimage": "Gunglo a naibaga",
+       "exif-personinimage": "Tao a naibaga",
+       "exif-originalimageheight": "Katayag ti ladawan sakbay a naputed",
+       "exif-originalimagewidth": "Kaakaba ti ladawan sakbay a naputed",
+       "exif-compression-1": "Saan a napespes",
+       "exif-copyrighted-true": "Nakarbengan ti kopia",
+       "exif-copyrighted-false": "Saan a naisaad ti kasasaad ti karbengan ti kopia",
+       "exif-photometricinterpretation-1": "Nangisit ken puraw (Ti nangisit ket 0)",
+       "exif-unknowndate": "Di ammo a petsa",
+       "exif-orientation-1": "Kadawyan",
+       "exif-orientation-2": "Horisontal a binaliktad",
+       "exif-orientation-3": "Naipusipus iti 180°",
+       "exif-orientation-4": "Bertikal a binaliktad",
+       "exif-orientation-5": "Naipisipus iti 90° CCW ken bertikal a binaliktad",
+       "exif-orientation-6": "Naipusipus iti 90° CCW",
+       "exif-orientation-7": "Naipisipus iti 90° CW ken bertikal a nabaliktad",
+       "exif-orientation-8": "Naipusipus iti 90° CW",
+       "exif-planarconfiguration-1": "chunky format",
+       "exif-planarconfiguration-2": "planar format",
+       "exif-colorspace-65535": "Di-nakalibrar",
+       "exif-componentsconfiguration-0": "awan",
+       "exif-exposureprogram-0": "Saan a naipalpalawag",
+       "exif-exposureprogram-1": "Manual",
+       "exif-exposureprogram-2": "Kadawyan a programa",
+       "exif-exposureprogram-3": "Prioridad ti apertura",
+       "exif-exposureprogram-4": "Shutter priority",
+       "exif-exposureprogram-5": "Kreatibo a programa (di nalinteg iti  kauneg ti pagikabilan)",
+       "exif-exposureprogram-6": "Aktion a programa (di nalinteg iti kapartak ti napardas a shutter)",
+       "exif-exposureprogram-7": "Retrato a kita (para iti asideg a ladladawan nga addaan ti lugar ti likud a saan a naipatengnga)",
+       "exif-exposureprogram-8": "Moda ti ladawan ti daga (para iti ladawan ti daga a retato nga addaan ti lugar ti likud a panaptengna)",
+       "exif-subjectdistance-value": "$1 a metmetro",
+       "exif-meteringmode-0": "Di ammo",
+       "exif-meteringmode-1": "Natimbeng",
+       "exif-meteringmode-2": "Napipia nga agtennga a pinadagsenan",
+       "exif-meteringmode-3": "Disso",
+       "exif-meteringmode-4": "Sabsabali a disso",
+       "exif-meteringmode-5": "Tabas",
+       "exif-meteringmode-6": "Sangkapaset laeng",
+       "exif-meteringmode-255": "Sabali",
+       "exif-lightsource-0": "Di ammo",
+       "exif-lightsource-1": "Aldaw",
+       "exif-lightsource-2": "Fluorescent",
+       "exif-lightsource-3": "Tungsten (incandescent light)",
+       "exif-lightsource-4": "Silap",
+       "exif-lightsource-9": "Napintas a panawen",
+       "exif-lightsource-10": "Naulep a panawen",
+       "exif-lightsource-11": "Linong",
+       "exif-lightsource-12": "Daylight fluorescent (D 5700 – 7100K)",
+       "exif-lightsource-13": "Day white fluorescent (N 4600 – 5400K)",
+       "exif-lightsource-14": "Cool white fluorescent (W 3900 – 4500K)",
+       "exif-lightsource-15": "White fluorescent (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Pagalagadan a lawag A",
+       "exif-lightsource-18": "Pagalagadan a lawag B",
+       "exif-lightsource-19": "Pagalagadan a lawag C",
+       "exif-lightsource-24": "ISO studio tungsten",
+       "exif-lightsource-255": "Sabali a nagtaudan ti lawag",
+       "exif-flash-fired-0": "Saan a nagsilap",
+       "exif-flash-fired-1": "Nagsilap",
+       "exif-flash-return-0": "awan ti opisio nga aglasin ti pinagsubli ti strobe",
+       "exif-flash-return-2": "saan a nalasin ti pinagsubli ti strobe a lawag",
+       "exif-flash-return-3": "nalasin ti pinagsubli ti strobe a lawag",
+       "exif-flash-mode-1": "kinasigud a pinagsilap",
+       "exif-flash-mode-2": "kinasigud a pinagiddep ti pinagsilap",
+       "exif-flash-mode-3": "automatiko",
+       "exif-flash-function-1": "Awan ti silap nga opisio",
+       "exif-flash-redeye-1": "wagas a panagikkat ti panaglabbaga ti mata",
+       "exif-focalplaneresolutionunit-2": "pulgada",
+       "exif-sensingmethod-1": "Saan a naipalpalawag",
+       "exif-sensingmethod-2": "Maysa a-chip sensor ti kolor ti lugar",
+       "exif-sensingmethod-3": "Dua a-chip sensor ti kolor ti lugar",
+       "exif-sensingmethod-4": "Tallo a-chip sensor ti kolor ti lugar",
+       "exif-sensingmethod-5": "Color sequential area sensor",
+       "exif-sensingmethod-7": "Agtallo a linia a sensor",
+       "exif-sensingmethod-8": "Color sequential linear sensor",
+       "exif-filesource-3": "Pinagrettrato a digital",
+       "exif-scenetype-1": "Dagus a naretrato nga imahen",
+       "exif-customrendered-0": "Kadawyan panagaramid",
+       "exif-customrendered-1": "Naiduma a panagaramid",
+       "exif-exposuremode-0": "Automatiko a panakailatakan",
+       "exif-exposuremode-1": "Manual a panakailatakan",
+       "exif-exposuremode-2": "Auto bracket",
+       "exif-whitebalance-0": "Automatiko a panagtimbang ti puraw",
+       "exif-whitebalance-1": "Manual a panagtimbang ti puraw",
+       "exif-scenecapturetype-0": "Pagalagadan",
+       "exif-scenecapturetype-1": "Ladawan ti daga",
+       "exif-scenecapturetype-2": "Retrato",
+       "exif-scenecapturetype-3": "Rabii a buya",
+       "exif-gaincontrol-0": "Awan",
+       "exif-gaincontrol-1": "Ipangato ti nababa a ganab",
+       "exif-gaincontrol-2": "Ipangato ti nangato a ganab",
+       "exif-gaincontrol-3": "Ipababati nababa a ganab",
+       "exif-gaincontrol-4": "High gain down",
+       "exif-contrast-0": "Kadawyan",
+       "exif-contrast-1": "Nalamuyot",
+       "exif-contrast-2": "Natangken",
+       "exif-saturation-0": "Kadawyan",
+       "exif-saturation-1": "Nababa a saturation",
+       "exif-saturation-2": "Nangato a saturation",
+       "exif-sharpness-0": "Kadawyan",
+       "exif-sharpness-1": "Nalamuyot",
+       "exif-sharpness-2": "Natangken",
+       "exif-subjectdistancerange-0": "Di ammo",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Asideg a pinagkita",
+       "exif-subjectdistancerange-3": "Adayo a pinagkita",
+       "exif-gpslatitude-n": "Amianan a latitud",
+       "exif-gpslatitude-s": "Abagatan a latitud",
+       "exif-gpslongitude-e": "Daya a longitud",
+       "exif-gpslongitude-w": "Abagatan a longitud",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|a metro|kadagiti metro}} a nangatngato ngem ti baybay",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|a metro|kadagiti metro}} a nababbaba ngem ti baybay",
+       "exif-gpsstatus-a": "Agrukrukoden",
+       "exif-gpsstatus-v": "Panagrukod ken interoperabilidad",
+       "exif-gpsmeasuremode-2": "2-kalawa pagrukod",
+       "exif-gpsmeasuremode-3": "3-kalawa pagrukod",
+       "exif-gpsspeed-k": "Dagiti kilometro kada oras",
+       "exif-gpsspeed-m": "Dagiti milia tunggal maysa nga oras",
+       "exif-gpsspeed-n": "Knots",
+       "exif-gpsdestdistance-k": "Kilometro",
+       "exif-gpsdestdistance-m": "Milia",
+       "exif-gpsdestdistance-n": "Nautiko a milia",
+       "exif-gpsdop-excellent": "Napayus ($1)",
+       "exif-gpsdop-good": "Nalaing ($1)",
+       "exif-gpsdop-moderate": "Natimbeng ($1)",
+       "exif-gpsdop-fair": "Nasayaat ($1)",
+       "exif-gpsdop-poor": "Makurkurangan ($1)",
+       "exif-objectcycle-a": "Agsapa laeng",
+       "exif-objectcycle-p": "Rabii laeng",
+       "exif-objectcycle-b": "Agsapa ken rabii",
+       "exif-gpsdirection-t": "Agpayso a turong",
+       "exif-gpsdirection-m": "Magnetiko a turong",
+       "exif-ycbcrpositioning-1": "Ipatingnga",
+       "exif-ycbcrpositioning-2": "Kaduana nagkita",
+       "exif-dc-contributor": "Dagiti nakaaramid",
+       "exif-dc-coverage": "Maipapan iti espasio wenno temporal a sakop ti midia",
+       "exif-dc-date": "Petsa (dagiti petsa)",
+       "exif-dc-publisher": "Nangipablaak",
+       "exif-dc-relation": "Mainaig a midia",
+       "exif-dc-rights": "Dagiti Kaberngan",
+       "exif-dc-source": "Taudan ti midia",
+       "exif-dc-type": "Kita ti midia",
+       "exif-rating-rejected": "Saan a naawat",
+       "exif-isospeedratings-overflow": "Dakdakkel ngem 65535",
+       "exif-iimcategory-ace": "Dagiti arte, kultura ken linglingay",
+       "exif-iimcategory-clj": "Basbasol ken linteg",
+       "exif-iimcategory-dis": "Dagiti disatro ken aksidente",
+       "exif-iimcategory-fin": "Ekonomia ken negosio",
+       "exif-iimcategory-edu": "Edukasion",
+       "exif-iimcategory-evn": "Enbironmento",
+       "exif-iimcategory-hth": "Salun-at",
+       "exif-iimcategory-hum": "Kaykayat ti tattao",
+       "exif-iimcategory-lab": "Trabaho",
+       "exif-iimcategory-lif": "Wagas ti panagbiag ken liwliwa",
+       "exif-iimcategory-pol": "Dagiti politiko",
+       "exif-iimcategory-rel": "Relihion ken pammati",
+       "exif-iimcategory-sci": "Siensia ken teknolohia",
+       "exif-iimcategory-soi": "Bambanag a sosial",
+       "exif-iimcategory-spo": "Ay-ayam",
+       "exif-iimcategory-war": "Gubat, ringgor ken gulgulo",
+       "exif-iimcategory-wea": "Panawen",
+       "exif-urgency-normal": "Kadawyan ($1)",
+       "exif-urgency-low": "Nababa ($1)",
+       "exif-urgency-high": "Nangato ($1)",
+       "exif-urgency-other": "Inpalawag ti agar-aramat a prioridad ($1)"
+}
diff --git a/languages/i18n/exif/is.json b/languages/i18n/exif/is.json
new file mode 100644 (file)
index 0000000..4b361b4
--- /dev/null
@@ -0,0 +1,382 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Bjarki S",
+                       "Jóna Þórunn",
+                       "Maxí",
+                       "S.Örvarr.S",
+                       "Snævar",
+                       "Steinninn",
+                       "Sveinn í Felli"
+               ]
+       },
+       "exif-imagewidth": "Breidd",
+       "exif-imagelength": "Hæð",
+       "exif-bitspersample": "Bæti á einingu",
+       "exif-compression": "Þjöppunar aðferð",
+       "exif-photometricinterpretation": "Uppbygging mynddíla",
+       "exif-orientation": "Stefna",
+       "exif-samplesperpixel": "Fjöldi eininga",
+       "exif-planarconfiguration": "Tilhögun gagna",
+       "exif-ycbcrsubsampling": "Undirstökunarsnið Y gagnvart C",
+       "exif-ycbcrpositioning": "Staðsetning Y og C",
+       "exif-xresolution": "Lárétt upplausn",
+       "exif-yresolution": "Lóðrétt upplausn",
+       "exif-stripoffsets": "Staðsetning myndgagna",
+       "exif-rowsperstrip": "Fjöldi raða á ræmu",
+       "exif-stripbytecounts": "Bæti á hverri þjappaðri ræmu",
+       "exif-jpeginterchangeformat": "Jöfnun JPEG SOI",
+       "exif-jpeginterchangeformatlength": "bæti af JPEG gögnum",
+       "exif-whitepoint": "Krómatísmi hvítpunkts",
+       "exif-primarychromaticities": "Krómatísmi frumlita",
+       "exif-ycbcrcoefficients": "Umbreytingarfylkistuðlar litrýmdar",
+       "exif-referenceblackwhite": "Pör svartra og hvítra tilvísanagilda",
+       "exif-datetime": "Dagsetning og tími breytingar",
+       "exif-imagedescription": "Titill myndar",
+       "exif-make": "Framleiðandi myndavélar",
+       "exif-model": "Tegund myndavélar",
+       "exif-software": "Hugbúnaður",
+       "exif-artist": "Höfundur",
+       "exif-copyright": "Handhafi höfundarréttar",
+       "exif-exifversion": "Exif-útgáfa",
+       "exif-flashpixversion": "Studd Flashpix útgáfa",
+       "exif-colorspace": "Litrýmd",
+       "exif-componentsconfiguration": "Merking hverrar einingar",
+       "exif-compressedbitsperpixel": "Aðferð við myndþjöppun",
+       "exif-pixelxdimension": "Breidd myndar",
+       "exif-pixelydimension": "Hæð myndar",
+       "exif-usercomment": "Athugunarsemdir notanda",
+       "exif-relatedsoundfile": "Tengd hljóðskrá",
+       "exif-datetimeoriginal": "Upprunaleg dagsetning",
+       "exif-datetimedigitized": "Dagsetning stafrænnar myndar",
+       "exif-subsectime": "DagsetningTími sekúndubrot",
+       "exif-subsectimeoriginal": "DagurTímiUpprunaleg sekúndubrot",
+       "exif-subsectimedigitized": "DagurTímiStafrænt sekúndubrot",
+       "exif-exposuretime": "Lýsingartími",
+       "exif-exposuretime-format": "$1 sekúnda ($2)",
+       "exif-fnumber": "F-ljósop",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Lýsingarforrit",
+       "exif-spectralsensitivity": "Litrófsnæmni",
+       "exif-isospeedratings": "ISO filmuhraði",
+       "exif-shutterspeedvalue": "APEX lokhraði",
+       "exif-aperturevalue": "APEX ljósop",
+       "exif-brightnessvalue": "APEX birtustig",
+       "exif-exposurebiasvalue": "APEX lýsingarbjögun",
+       "exif-maxaperturevalue": "Hámarksvídd ljósops innra byrðis linsu",
+       "exif-subjectdistance": "Fjarlægð að viðfangsefni",
+       "exif-meteringmode": "Mælingahamur",
+       "exif-lightsource": "Ljósgjafi",
+       "exif-flash": "Leifturljós",
+       "exif-focallength": "Brennivídd",
+       "exif-focallength-format": "$1 mm",
+       "exif-subjectarea": "Svæði viðfangsefnis",
+       "exif-flashenergy": "Orka leifturljóss",
+       "exif-focalplanexresolution": "Upplausn brennidepils flatar X",
+       "exif-focalplaneyresolution": "Upplausn brennidepils flatar Y",
+       "exif-focalplaneresolutionunit": "Eining upplausnar brennidepils flatar",
+       "exif-subjectlocation": "Staðsetning viðfangsefnis",
+       "exif-exposureindex": "Vísistala lýsingar",
+       "exif-sensingmethod": "Skynjun",
+       "exif-filesource": "Uppruni skráar",
+       "exif-scenetype": "Myndefni",
+       "exif-customrendered": "Sérstök myndvinnsla",
+       "exif-exposuremode": "Lýsingarhamur",
+       "exif-whitebalance": "Hvítvægi",
+       "exif-digitalzoomratio": "Aðdráttarhlutfall",
+       "exif-focallengthin35mmfilm": "Brennivídd 35 mm filmu",
+       "exif-scenecapturetype": "Gerð myndefnis",
+       "exif-contrast": "Birtuskil",
+       "exif-saturation": "Litmettun",
+       "exif-sharpness": "Skerpa",
+       "exif-devicesettingdescription": "Lýsing á stillingum tækisins",
+       "exif-subjectdistancerange": "Svið lengdar á viðfangsefni",
+       "exif-imageuniqueid": "Einstakt auðkenni myndar",
+       "exif-gpsversionid": "Útgáfa GPS-merkis",
+       "exif-gpslatituderef": "Norður- eða suður breiddargráða",
+       "exif-gpslatitude": "Breiddargráða",
+       "exif-gpslongituderef": "Austur- eða vestur lengdargráða",
+       "exif-gpslongitude": "Lengdargráða",
+       "exif-gpsaltituderef": "Hæðarviðmið",
+       "exif-gpsaltitude": "Hæð",
+       "exif-gpstimestamp": "GPS tími (atómklukka)",
+       "exif-gpssatellites": "Gervihnettir sem voru notaðir við mælingu",
+       "exif-gpsstatus": "Staða móttakara",
+       "exif-gpsmeasuremode": "Mælingarmáti",
+       "exif-gpsdop": "Nákvæmni mælinga",
+       "exif-gpsspeedref": "Hraðaeining",
+       "exif-gpsspeed": "Hraði GPS-móttakara",
+       "exif-gpstrack": "Átt hreyfingar",
+       "exif-gpsimgdirection": "Stefna myndarinnar",
+       "exif-gpsmapdatum": "Landmælingagögn",
+       "exif-gpsdestlatituderef": "Tilvísun breiddargráðu áfangastaðar",
+       "exif-gpsdestlatitude": "Breiddargráða áfangastaðar",
+       "exif-gpsdestlongituderef": "Tilvísun lengdargráðu áfangastaðar",
+       "exif-gpsdestlongitude": "Lengdargráða áfangastaðar",
+       "exif-gpsdestbearingref": "Tilvísun stefnu áfangastaðar",
+       "exif-gpsdestbearing": "Stefna til áfangastaðar",
+       "exif-gpsdestdistanceref": "Tilvísun fyrir fjarlægð á áfangastað",
+       "exif-gpsdestdistance": "Fjarlægð á áfangastað",
+       "exif-gpsprocessingmethod": "GPS vinnsluaðferð",
+       "exif-gpsareainformation": "Heiti GPS-svæðis",
+       "exif-gpsdatestamp": "GPS dagsetning",
+       "exif-gpsdifferential": "GPS mismunaleiðrétting",
+       "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-jpegfilecomment": "JPEG athugasemd",
+       "exif-keywords": "Lykilorð",
+       "exif-worldregioncreated": "Heimsálfa þar sem myndin var tekin",
+       "exif-countrycreated": "Land þar sem myndin var tekin",
+       "exif-countrycodecreated": "Kóði fyrir landið þar sem myndin var tekin",
+       "exif-provinceorstatecreated": "Hérað eða fylki þar sem myndin var tekin",
+       "exif-citycreated": "Borg þar sem myndin var tekin",
+       "exif-sublocationcreated": "Hverfi borgarinnar þar sem myndin var tekin",
+       "exif-worldregiondest": "Heimsálfa sýnd",
+       "exif-countrydest": "Land sýnt",
+       "exif-countrycodedest": "Kóði fyrir landið sýndur",
+       "exif-provinceorstatedest": "Fylki sýnt",
+       "exif-citydest": "Borg sýnd",
+       "exif-sublocationdest": "Hverfi borgar sýnt",
+       "exif-objectname": "Stuttur titill",
+       "exif-specialinstructions": "Sérstakar leiðbeiningar",
+       "exif-headline": "Fyrirsögn",
+       "exif-credit": "Eigandi/Miðlari",
+       "exif-source": "Uppruni",
+       "exif-editstatus": "Ritstjórnarleg staða myndar",
+       "exif-urgency": "Nauðsyn",
+       "exif-locationdest": "Staður á mynd",
+       "exif-locationdestcode": "Kóði staðar á mynd",
+       "exif-objectcycle": "Tími dags sem efnið er ætlað fyrir",
+       "exif-contact": "Samskipta upplýsingar",
+       "exif-writer": "Ritari myndlýsingar",
+       "exif-languagecode": "Tungumál",
+       "exif-iimversion": "IIM útgáfa",
+       "exif-iimcategory": "Flokkur",
+       "exif-iimsupplementalcategory": "Undirflokkar",
+       "exif-datetimeexpires": "Ekki nota eftir",
+       "exif-datetimereleased": "Útgefið klukkan",
+       "exif-originaltransmissionref": "Upphaflegur sendingarkóði staðsetningar",
+       "exif-identifier": "Auðkenni",
+       "exif-lens": "Linsa notuð",
+       "exif-serialnumber": "Raðnúmer myndavélarinnar",
+       "exif-cameraownername": "Eigandi myndavélarinnar",
+       "exif-label": "Skýring",
+       "exif-datetimemetadata": "Lýsigögnum síðast breytt",
+       "exif-nickname": "Látlaust nafn myndar",
+       "exif-rating": "Einkunn (af 5 mögulegum)",
+       "exif-rightscertificate": "Skilríki fyrir réttindastýringu",
+       "exif-copyrighted": "Staða höfundaréttar",
+       "exif-copyrightowner": "Eigandi höfundaréttar",
+       "exif-usageterms": "Notkunarskilmálar",
+       "exif-webstatement": "Höfundaréttarleyfi á netinu",
+       "exif-originaldocumentid": "Einstakt auðkenni upphafslegs skjals",
+       "exif-licenseurl": "Vefslóð höfundarleyfis",
+       "exif-morepermissionsurl": "Aðrar leyfisupplýsingar",
+       "exif-attributionurl": "Þegar þetta verk er endurnýtt, tengdu á",
+       "exif-preferredattributionname": "Þegar þetta verk er endurnýtt, vísaðu í",
+       "exif-pngfilecomment": "PNG athugasemd",
+       "exif-disclaimer": "Fyrirvari",
+       "exif-contentwarning": "Viðvörun innihalds myndar",
+       "exif-giffilecomment": "GIF athugasemd",
+       "exif-intellectualgenre": "Tegund hlutar",
+       "exif-subjectnewscode": "Kóði efnis í flokkunarkerfi",
+       "exif-scenecode": "IPTC kóði myndefnis",
+       "exif-event": "Atburður á mynd",
+       "exif-organisationinimage": "Stofnun/félag á mynd",
+       "exif-personinimage": "Persóna á mynd",
+       "exif-originalimageheight": "Hæð myndarinnar fyrir skerðingu",
+       "exif-originalimagewidth": "Breidd myndar fyrir skerðingu",
+       "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "Óþjappað",
+       "exif-compression-2": "CCITT Group 3 1-Dimensional Modified Huffman run length kóðun",
+       "exif-compression-3": "CCITT Group 3 Fax kóðun",
+       "exif-compression-4": "CCITT Group 4 Fax kóðun",
+       "exif-compression-5": "LZW",
+       "exif-compression-6": "JPEG (eldra)",
+       "exif-compression-7": "JPEG",
+       "exif-compression-8": "Afþjappa (Adobe)",
+       "exif-compression-32773": "PackBits (Macintosh RLE)",
+       "exif-compression-32946": "Afþjappa (PKZIP)",
+       "exif-compression-34712": "JPEG2000",
+       "exif-copyrighted-true": "Höfundaréttarvarið",
+       "exif-copyrighted-false": "Höfundaréttarstaða ekki tilgreind",
+       "exif-photometricinterpretation-0": "Svarthvítt (hvítt er 0)",
+       "exif-photometricinterpretation-1": "Svarthvítt (svart er 0)",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-3": "Litaspjald",
+       "exif-photometricinterpretation-4": "Gegnsæismaski",
+       "exif-photometricinterpretation-5": "Aðskilið (líklegast CMYK)",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (ICC kóðun)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (ITU kóðun)",
+       "exif-photometricinterpretation-32803": "Litsíunarfylki",
+       "exif-photometricinterpretation-34892": "Línulegt RAW",
+       "exif-unknowndate": "Óþekkt dagsetning",
+       "exif-orientation-1": "Venjuleg",
+       "exif-orientation-2": "Speglað lárétt",
+       "exif-orientation-3": "Snúið 180°",
+       "exif-orientation-4": "Speglað lóðrétt",
+       "exif-orientation-5": "Snúið 90° rangsælis og speglað lóðrétt",
+       "exif-orientation-6": "Snúið 90° rangsælis",
+       "exif-orientation-7": "Snúið 90° réttsælis og speglað lóðrétt",
+       "exif-orientation-8": "Snúið 90° réttsælis",
+       "exif-planarconfiguration-1": "kögglað snið (chunky)",
+       "exif-planarconfiguration-2": "flatt snið (planar)",
+       "exif-xyresolution-i": "$1 pát",
+       "exif-xyresolution-c": "$1 p/sm",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "Ekki litkvarðað",
+       "exif-componentsconfiguration-0": "er ekki til",
+       "exif-componentsconfiguration-1": "Y",
+       "exif-componentsconfiguration-2": "Cb",
+       "exif-componentsconfiguration-3": "Cr",
+       "exif-componentsconfiguration-4": "R",
+       "exif-componentsconfiguration-5": "G",
+       "exif-componentsconfiguration-6": "B",
+       "exif-exposureprogram-0": "Ekki skilgreind",
+       "exif-exposureprogram-1": "Handvirk",
+       "exif-exposureprogram-2": "Hefðbundin stilling",
+       "exif-exposureprogram-3": "Forgangur ljósops",
+       "exif-exposureprogram-4": "Forgangur lokara",
+       "exif-exposureprogram-5": "Listræn forritun (styður frekar dýpt sjónsviðs)",
+       "exif-exposureprogram-6": "Sportleg forritun (styður frekar hraða myndatöku)",
+       "exif-exposureprogram-7": "Andlitsmynda stilling (fyrir nærmyndir með bakrunninn í þoku)",
+       "exif-exposureprogram-8": "Landslags stilling (fyrir landslagsmyndir með skarpan bakrunn)",
+       "exif-subjectdistance-value": "$1 metrar",
+       "exif-meteringmode-0": "Óþekkt",
+       "exif-meteringmode-1": "Miðlungs",
+       "exif-meteringmode-2": "Miðjuvegið meðaltal",
+       "exif-meteringmode-3": "Blettur",
+       "exif-meteringmode-4": "Margir-blettir",
+       "exif-meteringmode-5": "Mynstur",
+       "exif-meteringmode-6": "Að hluta",
+       "exif-meteringmode-255": "Annað",
+       "exif-lightsource-0": "Óþekkt",
+       "exif-lightsource-1": "Dagsbirta",
+       "exif-lightsource-2": "Flúrljós",
+       "exif-lightsource-3": "Tungsten ljós (glóðarpera)",
+       "exif-lightsource-4": "Leiftur",
+       "exif-lightsource-9": "Gott veður",
+       "exif-lightsource-10": "Skýjað",
+       "exif-lightsource-11": "Skuggi",
+       "exif-lightsource-12": "Dagsljós flúrlýsing (D 5700 - 7100K)",
+       "exif-lightsource-13": "Dagur hvít flúrlýsing (N 4600 - 5400K)",
+       "exif-lightsource-14": "Köld hvít flúrlýsing (W 3900 - 4500K)",
+       "exif-lightsource-15": "Hvít flúrlýsing (WW 3200 - 3700K)",
+       "exif-lightsource-17": "Staðalljós A",
+       "exif-lightsource-18": "Staðalljós B",
+       "exif-lightsource-19": "Staðalljós C",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-22": "D75",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "ISO stúdíótungsten",
+       "exif-lightsource-255": "Annar ljósgjafi",
+       "exif-flash-fired-0": "Leifturljósið hleypti ekki af",
+       "exif-flash-fired-1": "Leifturljósið kviknaði",
+       "exif-flash-mode-1": "skyldubundið leifturljós",
+       "exif-flash-mode-2": "skyldubundin bæling leifturljóss",
+       "exif-flash-mode-3": "sjálfvirkt",
+       "exif-flash-function-1": "Ekkert leifturljós",
+       "exif-flash-redeye-1": "lagfæring rauðra-augna",
+       "exif-focalplaneresolutionunit-2": "tommur",
+       "exif-sensingmethod-1": "Óskilgreint",
+       "exif-sensingmethod-2": "Einnar-kísilflögu litsviðsskynjari",
+       "exif-sensingmethod-3": "Tveggja-kísilflögu litsviðsskynjari",
+       "exif-sensingmethod-4": "Þriggja-kísilflögu litsviðsskynjari",
+       "exif-sensingmethod-5": "Raðbundinn litsviðsskynjari",
+       "exif-sensingmethod-7": "Þrílínulegur skynjari",
+       "exif-sensingmethod-8": "Raðbundinn línulegur litskynjari",
+       "exif-filesource-3": "Stafræn ljósmyndavél",
+       "exif-scenetype-1": "Beint ljósmyndað myndefni",
+       "exif-customrendered-0": "Venjuleg vinnsla",
+       "exif-customrendered-1": "Sérstök vinnsla",
+       "exif-exposuremode-0": "Sjálfvirk lýsing",
+       "exif-exposuremode-1": "Handstillt lýsing",
+       "exif-exposuremode-2": "Sjálfvirk mislýsing (auto bracket)",
+       "exif-whitebalance-0": "Sjálfgefinn ljóshiti",
+       "exif-whitebalance-1": "Handstilltur ljóshiti",
+       "exif-scenecapturetype-0": "Staðlað",
+       "exif-scenecapturetype-1": "Landslag",
+       "exif-scenecapturetype-2": "Skammsnið",
+       "exif-scenecapturetype-3": "Næturvettvangur",
+       "exif-gaincontrol-0": "Ekkert",
+       "exif-gaincontrol-1": "Lægðar hækkun",
+       "exif-gaincontrol-2": "Hæðar hækkun",
+       "exif-gaincontrol-3": "Lægðar lækkun",
+       "exif-gaincontrol-4": "Hæðar lækkun",
+       "exif-contrast-0": "Venjuleg",
+       "exif-contrast-1": "Mjúk",
+       "exif-contrast-2": "Hörð",
+       "exif-saturation-0": "Venjulegur",
+       "exif-saturation-1": "Lítill litstyrkur",
+       "exif-saturation-2": "Mikill litstyrkur",
+       "exif-sharpness-0": "Venjulegur",
+       "exif-sharpness-1": "Mjúkur",
+       "exif-sharpness-2": "Harður",
+       "exif-subjectdistancerange-0": "Óþekkt",
+       "exif-subjectdistancerange-1": "Nærmyndar fókus",
+       "exif-subjectdistancerange-2": "Nærmynd",
+       "exif-subjectdistancerange-3": "Fjarlægt sjónarhorn",
+       "exif-gpslatitude-n": "Norður breiddargráða",
+       "exif-gpslatitude-s": "Suður breiddargráða",
+       "exif-gpslongitude-e": "Austur lengdargráða",
+       "exif-gpslongitude-w": "Vestur lengdargráða",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metri|metra}} fyrir ofan sjávarmál",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metri|metra}} fyrir neðan sjávarmál",
+       "exif-gpsstatus-a": "Mæling í vinnslu",
+       "exif-gpsstatus-v": "Samvirkni mælinga",
+       "exif-gpsmeasuremode-2": "2-víddar mæling",
+       "exif-gpsmeasuremode-3": "3-víddar mæling",
+       "exif-gpsspeed-k": "Kílómetrar á klukkustund",
+       "exif-gpsspeed-m": "Mílur á klukkustund",
+       "exif-gpsspeed-n": "Hnútar",
+       "exif-gpsdestdistance-k": "Kílómetrar",
+       "exif-gpsdestdistance-m": "Mílur",
+       "exif-gpsdestdistance-n": "Sjómílur",
+       "exif-gpsdop-excellent": "Frábært ($1)",
+       "exif-gpsdop-good": "Gott ($1)",
+       "exif-gpsdop-moderate": "Miðlungs ($1)",
+       "exif-gpsdop-fair": "Bjart ($1)",
+       "exif-gpsdop-poor": "Lélegt ($1)",
+       "exif-objectcycle-a": "að morgni",
+       "exif-objectcycle-p": "að kvöldi",
+       "exif-objectcycle-b": "að morgni og kvöldi",
+       "exif-gpsdirection-t": "Réttvísandi stefna",
+       "exif-gpsdirection-m": "Segulstefna",
+       "exif-ycbcrpositioning-1": "Miðjað",
+       "exif-ycbcrpositioning-2": "Samsetið (co-sited)",
+       "exif-dc-contributor": "Framleggjendur",
+       "exif-dc-coverage": "Umfjöllunarefni miðað við tíma eða rúm",
+       "exif-dc-date": "Dagsetning(ar)",
+       "exif-dc-publisher": "Útgefandi",
+       "exif-dc-relation": "Tengd margmiðlunargögn",
+       "exif-dc-rights": "Réttindi",
+       "exif-dc-source": "Uppruni margmiðlunarskrár",
+       "exif-dc-type": "Gerð miðlunarefnis",
+       "exif-rating-rejected": "Hafnað",
+       "exif-isospeedratings-overflow": "Stærri en 65535",
+       "exif-maxaperturevalue-value": "$1 APEX (f/$2)",
+       "exif-iimcategory-ace": "Listir, menning og afþreying",
+       "exif-iimcategory-clj": "Gæpir og lög",
+       "exif-iimcategory-dis": "Hamfarir og slys",
+       "exif-iimcategory-fin": "Hagfræði og viðskipti",
+       "exif-iimcategory-edu": "Menntun",
+       "exif-iimcategory-evn": "Umhverfi",
+       "exif-iimcategory-hth": "Heilsa",
+       "exif-iimcategory-hum": "Fólk",
+       "exif-iimcategory-lab": "Vinnumarkaður",
+       "exif-iimcategory-lif": "Lífstíll og tómstundagaman",
+       "exif-iimcategory-pol": "Pólitík",
+       "exif-iimcategory-rel": "Trúarbrögð og trú",
+       "exif-iimcategory-sci": "Vísindi og tækni",
+       "exif-iimcategory-soi": "Félagsleg mál",
+       "exif-iimcategory-spo": "Íþróttir",
+       "exif-iimcategory-war": "Stríð, átök og ókyrrð",
+       "exif-iimcategory-wea": "Veður",
+       "exif-urgency-normal": "Venjulegt ($1)",
+       "exif-urgency-low": "Lítið ($1)",
+       "exif-urgency-high": "Hátt ($1)",
+       "exif-urgency-other": "Mikilvægi ákveðið af notanda ($1)"
+}
diff --git a/languages/i18n/exif/it.json b/languages/i18n/exif/it.json
new file mode 100644 (file)
index 0000000..9ba8e44
--- /dev/null
@@ -0,0 +1,366 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Beta16",
+                       "BrokenArrow",
+                       "Darth Kule",
+                       "Gianfranco",
+                       "Lucas2",
+                       "Martorell",
+                       "Nemo bis",
+                       "Ninniuz",
+                       "Oile11",
+                       "Pietrodn",
+                       "Rippitippi",
+                       "SabineCretella",
+                       "Stefano-c",
+                       "Valepert"
+               ]
+       },
+       "exif-imagewidth": "Larghezza",
+       "exif-imagelength": "Altezza",
+       "exif-bitspersample": "Bit per campione",
+       "exif-compression": "Meccanismo di compressione",
+       "exif-photometricinterpretation": "Struttura dei pixel",
+       "exif-orientation": "Orientamento",
+       "exif-samplesperpixel": "Numero delle componenti",
+       "exif-planarconfiguration": "Disposizione dei dati",
+       "exif-ycbcrsubsampling": "Rapporto di campionamento Y / C",
+       "exif-ycbcrpositioning": "Posizionamento componenti Y e C",
+       "exif-xresolution": "Risoluzione orizzontale",
+       "exif-yresolution": "Risoluzione verticale",
+       "exif-stripoffsets": "Posizione dei dati immagine",
+       "exif-rowsperstrip": "Numero righe per striscia",
+       "exif-stripbytecounts": "Numero di byte per striscia compressa",
+       "exif-jpeginterchangeformat": "Posizione byte SOI JPEG",
+       "exif-jpeginterchangeformatlength": "Numero di byte di dati JPEG",
+       "exif-whitepoint": "Coordinate cromatiche del punto di bianco",
+       "exif-primarychromaticities": "Coordinate cromatiche dei colori primari",
+       "exif-ycbcrcoefficients": "Coefficienti matrice di trasformazione spazi dei colori",
+       "exif-referenceblackwhite": "Coppia di valori di riferimento (nero e bianco)",
+       "exif-datetime": "Data e ora di modifica del file",
+       "exif-imagedescription": "Descrizione dell'immagine",
+       "exif-make": "Produttore fotocamera",
+       "exif-model": "Modello fotocamera",
+       "exif-software": "Software",
+       "exif-artist": "Autore",
+       "exif-copyright": "Informazioni sul copyright",
+       "exif-exifversion": "Versione del formato Exif",
+       "exif-flashpixversion": "Versione Flashpix supportata",
+       "exif-colorspace": "Spazio dei colori",
+       "exif-componentsconfiguration": "Significato di ciascuna componente",
+       "exif-compressedbitsperpixel": "Modalità di compressione immagine",
+       "exif-pixelxdimension": "Larghezza immagine",
+       "exif-pixelydimension": "Altezza immagine",
+       "exif-usercomment": "Note dell'utente",
+       "exif-relatedsoundfile": "File audio collegato",
+       "exif-datetimeoriginal": "Data e ora di creazione dei dati",
+       "exif-datetimedigitized": "Data e ora di digitalizzazione",
+       "exif-subsectime": "Data e ora, frazioni di secondo",
+       "exif-subsectimeoriginal": "Data e ora di creazione, frazioni di secondo",
+       "exif-subsectimedigitized": "Data e ora di digitalizzazione, frazioni di secondo",
+       "exif-exposuretime": "Tempo di esposizione",
+       "exif-exposuretime-format": "$1 s ($2)",
+       "exif-fnumber": "Rapporto focale",
+       "exif-exposureprogram": "Programma di esposizione",
+       "exif-spectralsensitivity": "Sensibilità spettrale",
+       "exif-isospeedratings": "Sensibilità ISO",
+       "exif-shutterspeedvalue": "Velocità dell'otturatore APEX",
+       "exif-aperturevalue": "Apertura APEX",
+       "exif-brightnessvalue": "Luminosità APEX",
+       "exif-exposurebiasvalue": "Correzione esposizione",
+       "exif-maxaperturevalue": "Apertura massima",
+       "exif-subjectdistance": "Distanza del soggetto",
+       "exif-meteringmode": "Metodo di misurazione",
+       "exif-lightsource": "Sorgente luminosa",
+       "exif-flash": "Caratteristiche e stato del flash",
+       "exif-focallength": "Distanza focale obiettivo",
+       "exif-subjectarea": "Area inquadrante il soggetto",
+       "exif-flashenergy": "Potenza del flash",
+       "exif-focalplanexresolution": "Risoluzione X sul piano focale",
+       "exif-focalplaneyresolution": "Risoluzione Y sul piano focale",
+       "exif-focalplaneresolutionunit": "Unità di misura risoluzione sul piano focale",
+       "exif-subjectlocation": "Posizione del soggetto",
+       "exif-exposureindex": "Sensibilità impostata",
+       "exif-sensingmethod": "Metodo di rilevazione",
+       "exif-filesource": "Origine del file",
+       "exif-scenetype": "Tipo di inquadratura",
+       "exif-customrendered": "Elaborazione personalizzata",
+       "exif-exposuremode": "Modalità di esposizione",
+       "exif-whitebalance": "Bilanciamento del bianco",
+       "exif-digitalzoomratio": "Rapporto zoom digitale",
+       "exif-focallengthin35mmfilm": "Focale equivalente su 35 mm",
+       "exif-scenecapturetype": "Tipo di acquisizione",
+       "exif-gaincontrol": "Controllo inquadratura",
+       "exif-contrast": "Controllo contrasto",
+       "exif-saturation": "Controllo saturazione",
+       "exif-sharpness": "Controllo nitidezza",
+       "exif-devicesettingdescription": "Descrizione impostazioni dispositivo",
+       "exif-subjectdistancerange": "Scala distanza soggetto",
+       "exif-imageuniqueid": "ID univoco immagine",
+       "exif-gpsversionid": "Versione dei tag GPS",
+       "exif-gpslatituderef": "Latitudine nord/sud",
+       "exif-gpslatitude": "Latitudine",
+       "exif-gpslongituderef": "Longitudine est/ovest",
+       "exif-gpslongitude": "Longitudine",
+       "exif-gpsaltituderef": "Riferimento per l'altitudine",
+       "exif-gpsaltitude": "Altitudine",
+       "exif-gpstimestamp": "Ora GPS (orologio atomico)",
+       "exif-gpssatellites": "Satelliti usati per la misurazione",
+       "exif-gpsstatus": "Stato del ricevitore",
+       "exif-gpsmeasuremode": "Modalità di misurazione",
+       "exif-gpsdop": "Precisione della misurazione",
+       "exif-gpsspeedref": "Unità di misura della velocità",
+       "exif-gpsspeed": "Velocità del ricevitore GPS",
+       "exif-gpstrackref": "Riferimento per la direzione movimento",
+       "exif-gpstrack": "Direzione del movimento",
+       "exif-gpsimgdirectionref": "Riferimento per la direzione dell'immagine",
+       "exif-gpsimgdirection": "Direzione dell'immagine",
+       "exif-gpsmapdatum": "Rilevamento geodetico usato",
+       "exif-gpsdestlatituderef": "Riferimento per la latitudine della destinazione",
+       "exif-gpsdestlatitude": "Latitudine della destinazione",
+       "exif-gpsdestlongituderef": "Riferimento per la longitudine della destinazione",
+       "exif-gpsdestlongitude": "Longitudine della destinazione",
+       "exif-gpsdestbearingref": "Riferimento per la direzione della destinazione",
+       "exif-gpsdestbearing": "Direzione della destinazione",
+       "exif-gpsdestdistanceref": "Riferimento per la distanza della destinazione",
+       "exif-gpsdestdistance": "Distanza della destinazione",
+       "exif-gpsprocessingmethod": "Nome del metodo di elaborazione GPS",
+       "exif-gpsareainformation": "Nome della zona GPS",
+       "exif-gpsdatestamp": "Data GPS",
+       "exif-gpsdifferential": "Correzione differenziale GPS",
+       "exif-jpegfilecomment": "Commento del file JPEG",
+       "exif-keywords": "Parole chiave",
+       "exif-worldregioncreated": "Regione del Mondo in cui l'immagine è stata scattata",
+       "exif-countrycreated": "Paese dove è stata scattata la foto",
+       "exif-countrycodecreated": "Codice del paese dove è stata scattata la foto",
+       "exif-provinceorstatecreated": "Provincia o stato dove è stata scattata la foto",
+       "exif-citycreated": "Città dove è stata scattata la foto",
+       "exif-sublocationcreated": "Parte della città in cui la foto è stata scattata",
+       "exif-worldregiondest": "Regione del Mondo visualizzata",
+       "exif-countrydest": "Nazione visualizzata",
+       "exif-countrycodedest": "Codice per il Paese indicato",
+       "exif-provinceorstatedest": "Provincia o stato visualizzato",
+       "exif-citydest": "Città mostrata",
+       "exif-sublocationdest": "Parte della città visualizzata",
+       "exif-objectname": "Titolo breve",
+       "exif-specialinstructions": "Istruzioni speciali",
+       "exif-headline": "Titolo",
+       "exif-credit": "Crediti",
+       "exif-source": "Fonte",
+       "exif-editstatus": "Stato di edizione dell'immagine",
+       "exif-urgency": "Urgenza",
+       "exif-fixtureidentifier": "Nome del riferimento",
+       "exif-locationdest": "Località raffigurata",
+       "exif-locationdestcode": "Codice del luogo raffigurato",
+       "exif-objectcycle": "Momento del giorno per il quale il medium è progettato",
+       "exif-contact": "Informazioni di contatto",
+       "exif-writer": "Scrittore",
+       "exif-languagecode": "Lingua",
+       "exif-iimversion": "Versione IIM",
+       "exif-iimcategory": "Categoria",
+       "exif-iimsupplementalcategory": "Categorie aggiuntive",
+       "exif-datetimeexpires": "Non utilizzare dopo",
+       "exif-datetimereleased": "Rilasciato il",
+       "exif-originaltransmissionref": "Codice del luogo di trasmissione originaria",
+       "exif-identifier": "Identificatore",
+       "exif-lens": "Obiettivo utilizzato",
+       "exif-serialnumber": "Numero di serie della fotocamera",
+       "exif-cameraownername": "Proprietario della macchina fotografica",
+       "exif-label": "Etichetta",
+       "exif-datetimemetadata": "Data in cui i metadata sono stati modificati l'ultima volta",
+       "exif-nickname": "Nome informale dell'immagine",
+       "exif-rating": "Valutazione (su 5)",
+       "exif-rightscertificate": "Certificato di gestione dei diritti",
+       "exif-copyrighted": "Informazioni sul copyright",
+       "exif-copyrightowner": "Detentore del copyright",
+       "exif-usageterms": "Termini di utilizzo",
+       "exif-webstatement": "Dichiarazione online di copyright",
+       "exif-originaldocumentid": "ID univoco del documento originale",
+       "exif-licenseurl": "URL per la licenza del copyright",
+       "exif-morepermissionsurl": "Informazioni sulle licenze alternative",
+       "exif-attributionurl": "Per il riutilizzo di quest'opera, si prega di inserire un collegamento ipertestuale a",
+       "exif-preferredattributionname": "Per il riutilizzo di quest'opera, si prega di attribuirne la paternità a",
+       "exif-pngfilecomment": "Commento del file PNG",
+       "exif-disclaimer": "Avvertenze",
+       "exif-contentwarning": "Avviso sul contenuto",
+       "exif-giffilecomment": "Commento del file GIF",
+       "exif-intellectualgenre": "Tipo di elemento",
+       "exif-subjectnewscode": "Codice dell'oggetto",
+       "exif-scenecode": "Codice di scena IPTC",
+       "exif-event": "Evento raffigurato",
+       "exif-organisationinimage": "Organizzazione raffigurata",
+       "exif-personinimage": "Persona raffigurata",
+       "exif-originalimageheight": "Altezza dell'immagine prima che fosse ritagliata",
+       "exif-originalimagewidth": "Larghezza dell'immagine prima che fosse ritagliata",
+       "exif-compression-1": "Senza compressione",
+       "exif-compression-2": "CCITT gruppo 3 monodimensionale - codifica run length di Huffman modificata",
+       "exif-compression-3": "Codifica fax CCITT Group 3",
+       "exif-compression-4": "Codifica fax CCITT gruppo 4",
+       "exif-compression-6": "JPEG (vecchio)",
+       "exif-copyrighted-true": "Protetto da copyright",
+       "exif-copyrighted-false": "Status del copyright non impostato",
+       "exif-photometricinterpretation-1": "Bianco e nero (nero è 0)",
+       "exif-unknowndate": "Data sconosciuta",
+       "exif-orientation-1": "Normale",
+       "exif-orientation-2": "Capovolto orizzontalmente",
+       "exif-orientation-3": "Ruotato di 180°",
+       "exif-orientation-4": "Capovolto verticalmente",
+       "exif-orientation-5": "Ruotato 90° in senso antiorario e capovolto verticalmente",
+       "exif-orientation-6": "Ruotato di 90° in senso antiorario",
+       "exif-orientation-7": "Ruotato 90° in senso orario e capovolto verticalmente",
+       "exif-orientation-8": "Ruotato di 90° in senso orario",
+       "exif-planarconfiguration-1": "a blocchi (chunky)",
+       "exif-planarconfiguration-2": "lineare (planar)",
+       "exif-xyresolution-i": "$1 punti per pollice (dpi)",
+       "exif-xyresolution-c": "$1 punti per centimetro (dpc)",
+       "exif-colorspace-65535": "Non calibrato",
+       "exif-componentsconfiguration-0": "assente",
+       "exif-exposureprogram-0": "Non definito",
+       "exif-exposureprogram-1": "Manuale",
+       "exif-exposureprogram-2": "Standard",
+       "exif-exposureprogram-3": "Priorità al diaframma",
+       "exif-exposureprogram-4": "Priorità all'esposizione",
+       "exif-exposureprogram-5": "Artistico (orientato alla profondità di campo)",
+       "exif-exposureprogram-6": "Sportivo (orientato alla velocità di ripresa)",
+       "exif-exposureprogram-7": "Ritratto (soggetti vicini con sfondo fuori fuoco)",
+       "exif-exposureprogram-8": "Panorama (soggetti lontani con sfondo a fuoco)",
+       "exif-subjectdistance-value": "$1 metri",
+       "exif-meteringmode-0": "Sconosciuto",
+       "exif-meteringmode-1": "Media",
+       "exif-meteringmode-2": "Media pesata centrata",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "MultiSpot",
+       "exif-meteringmode-5": "Pattern",
+       "exif-meteringmode-6": "Parziale",
+       "exif-meteringmode-255": "Altro",
+       "exif-lightsource-0": "Sconosciuta",
+       "exif-lightsource-1": "Luce diurna",
+       "exif-lightsource-2": "Lampada a fluorescenza",
+       "exif-lightsource-3": "Lampada al tungsteno (a incandescenza)",
+       "exif-lightsource-4": "Flash",
+       "exif-lightsource-9": "Bel tempo",
+       "exif-lightsource-10": "Nuvoloso",
+       "exif-lightsource-11": "In ombra",
+       "exif-lightsource-12": "Daylight fluorescent (D 5700 - 7100K)",
+       "exif-lightsource-13": "Day white fluorescent (N 4600 - 5400K)",
+       "exif-lightsource-14": "Cool white fluorescent (W 3900 - 4500K)",
+       "exif-lightsource-15": "White fluorescent (WW 3200 - 3700K)",
+       "exif-lightsource-17": "Luce standard A",
+       "exif-lightsource-18": "Luce standard B",
+       "exif-lightsource-19": "Luce standard C",
+       "exif-lightsource-20": "Illuminante D55",
+       "exif-lightsource-21": "Illuminante D65",
+       "exif-lightsource-22": "Illuminante D75",
+       "exif-lightsource-23": "Illuminante D50",
+       "exif-lightsource-24": "Lampada da studio ISO al tungsteno",
+       "exif-lightsource-255": "Altra sorgente luminosa",
+       "exif-flash-fired-0": "Il flash non è scattato",
+       "exif-flash-fired-1": "Flash scattato",
+       "exif-flash-return-0": "nessuna funzione di individuazione del ritorno della luce stroboscopica",
+       "exif-flash-return-2": "luce stroboscopica di ritorno non individuata",
+       "exif-flash-return-3": "luce stroboscopica di ritorno individuata",
+       "exif-flash-mode-1": "attivazione flash forzato",
+       "exif-flash-mode-2": "rimozione flash forzato",
+       "exif-flash-mode-3": "modalità automatica",
+       "exif-flash-function-1": "Disattiva flash",
+       "exif-flash-redeye-1": "modalità riduzione occhi rossi",
+       "exif-focalplaneresolutionunit-2": "pollici",
+       "exif-sensingmethod-1": "Non definito",
+       "exif-sensingmethod-2": "Sensore area colore a 1 chip",
+       "exif-sensingmethod-3": "Sensore area colore a 2 chip",
+       "exif-sensingmethod-4": "Sensore area colore a 3 chip",
+       "exif-sensingmethod-5": "Sensore area colore sequenziale",
+       "exif-sensingmethod-7": "Sensore trilineare",
+       "exif-sensingmethod-8": "Sensore lineare colore sequenziale",
+       "exif-filesource-3": "Fotocamera digitale",
+       "exif-scenetype-1": "Fotografia diretta",
+       "exif-customrendered-0": "Processo normale",
+       "exif-customrendered-1": "Processo personalizzato",
+       "exif-exposuremode-0": "Esposizione automatica",
+       "exif-exposuremode-1": "Esposizione manuale",
+       "exif-exposuremode-2": "Bracketing automatico",
+       "exif-whitebalance-0": "Bilanciamento del bianco automatico",
+       "exif-whitebalance-1": "Bilanciamento del bianco manuale",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Panorama",
+       "exif-scenecapturetype-2": "Ritratto",
+       "exif-scenecapturetype-3": "Notturna",
+       "exif-gaincontrol-0": "Nessuno",
+       "exif-gaincontrol-1": "Enfasi per basso guadagno",
+       "exif-gaincontrol-2": "Enfasi per alto guadagno",
+       "exif-gaincontrol-3": "Deenfasi per basso guadagno",
+       "exif-gaincontrol-4": "Deenfasi per alto guadagno",
+       "exif-contrast-0": "Normale",
+       "exif-contrast-1": "Alto contrasto",
+       "exif-contrast-2": "Basso contrasto",
+       "exif-saturation-0": "Normale",
+       "exif-saturation-1": "Bassa saturazione",
+       "exif-saturation-2": "Alta saturazione",
+       "exif-sharpness-0": "Normale",
+       "exif-sharpness-1": "Minore nitidezza",
+       "exif-sharpness-2": "Maggiore nitidezza",
+       "exif-subjectdistancerange-0": "Sconosciuta",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Soggetto vicino",
+       "exif-subjectdistancerange-3": "Soggetto lontano",
+       "exif-gpslatitude-n": "Latitudine nord",
+       "exif-gpslatitude-s": "Latitudine sud",
+       "exif-gpslongitude-e": "Longitudine est",
+       "exif-gpslongitude-w": "Longitudine ovest",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metro|metri}} sul livello del mare",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metro|metri}} sotto il livello del mare",
+       "exif-gpsstatus-a": "Misurazione in corso",
+       "exif-gpsstatus-v": "Misurazione interoperabile",
+       "exif-gpsmeasuremode-2": "Misurazione bidimensionale",
+       "exif-gpsmeasuremode-3": "Misurazione tridimensionale",
+       "exif-gpsspeed-k": "Chilometri orari",
+       "exif-gpsspeed-m": "Miglia orarie",
+       "exif-gpsspeed-n": "Nodi",
+       "exif-gpsdestdistance-k": "Chilometri",
+       "exif-gpsdestdistance-m": "Miglia",
+       "exif-gpsdestdistance-n": "Miglia nautiche",
+       "exif-gpsdop-excellent": "Eccellente ($1)",
+       "exif-gpsdop-good": "Buono ($1)",
+       "exif-gpsdop-moderate": "Moderata ($1)",
+       "exif-gpsdop-fair": "Discreto ($1)",
+       "exif-gpsdop-poor": "Scarso ($1)",
+       "exif-objectcycle-a": "Solo la mattina",
+       "exif-objectcycle-p": "Solo la sera",
+       "exif-objectcycle-b": "Mattina e sera",
+       "exif-gpsdirection-t": "Direzione reale",
+       "exif-gpsdirection-m": "Direzione magnetica",
+       "exif-ycbcrpositioning-1": "Centrato",
+       "exif-ycbcrpositioning-2": "Co-situato",
+       "exif-dc-contributor": "Collaboratori",
+       "exif-dc-coverage": "Ambito spaziale o temporale dei media",
+       "exif-dc-date": "Data (e)",
+       "exif-dc-publisher": "Editore",
+       "exif-dc-relation": "File correlati",
+       "exif-dc-rights": "Diritti",
+       "exif-dc-source": "Fonte del file",
+       "exif-dc-type": "Tipologia di file",
+       "exif-rating-rejected": "Rifiutato",
+       "exif-isospeedratings-overflow": "Maggiore di 65535",
+       "exif-iimcategory-ace": "Arte, cultura e spettacolo",
+       "exif-iimcategory-clj": "Criminalità e diritto",
+       "exif-iimcategory-dis": "Disastri e incidenti",
+       "exif-iimcategory-fin": "Economia e affari",
+       "exif-iimcategory-edu": "Istruzione",
+       "exif-iimcategory-evn": "Ambiente",
+       "exif-iimcategory-hth": "Salute",
+       "exif-iimcategory-hum": "Interesse umano",
+       "exif-iimcategory-lab": "Lavoro",
+       "exif-iimcategory-lif": "Stile di vita e tempo libero",
+       "exif-iimcategory-pol": "Politica",
+       "exif-iimcategory-rel": "Religione e fede",
+       "exif-iimcategory-sci": "Scienza e tecnologia",
+       "exif-iimcategory-soi": "Questioni sociali",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Guerra, conflitti e disordini",
+       "exif-iimcategory-wea": "Meteo",
+       "exif-urgency-normal": "Normale ($1)",
+       "exif-urgency-low": "Bassa ($1)",
+       "exif-urgency-high": "Alta ($1)",
+       "exif-urgency-other": "Priorità definite dal'utente ($1)"
+}
diff --git a/languages/i18n/exif/ja.json b/languages/i18n/exif/ja.json
new file mode 100644 (file)
index 0000000..0c5ed54
--- /dev/null
@@ -0,0 +1,392 @@
+{
+       "@metadata": {
+               "authors": [
+                       "2nd-player",
+                       "Fryed-peach",
+                       "Likibp",
+                       "Ohgi",
+                       "Otokoume",
+                       "Rxy",
+                       "Schu",
+                       "Shirayuki",
+                       "Suisui",
+                       "Whym",
+                       "ネイ"
+               ]
+       },
+       "exif-imagewidth": "画像の幅",
+       "exif-imagelength": "画像の高さ",
+       "exif-bitspersample": "画像のビットの深さ",
+       "exif-compression": "圧縮の種類",
+       "exif-photometricinterpretation": "画素構成",
+       "exif-orientation": "画像方向",
+       "exif-samplesperpixel": "コンポーネント数",
+       "exif-planarconfiguration": "画像データの並び",
+       "exif-ycbcrsubsampling": "YCCの画素構成 (Cの間引き率)",
+       "exif-ycbcrpositioning": "YCCの画素構成 (YとCの位置)",
+       "exif-xresolution": "水平方向の解像度",
+       "exif-yresolution": "垂直方向の解像度",
+       "exif-stripoffsets": "画像データのロケーション",
+       "exif-rowsperstrip": "1ストリップごとの行数",
+       "exif-stripbytecounts": "ストリップの総バイト数",
+       "exif-jpeginterchangeformat": "JPEGのSOIへのオフセット",
+       "exif-jpeginterchangeformatlength": "JPEGデータのバイト数",
+       "exif-whitepoint": "参照白色点の色度座標値",
+       "exif-primarychromaticities": "原色の色度座標値",
+       "exif-ycbcrcoefficients": "色変換マトリックス係数",
+       "exif-referenceblackwhite": "参照黒色点値と参照白色点値",
+       "exif-datetime": "ファイル変更日時",
+       "exif-imagedescription": "画像の説明",
+       "exif-make": "撮影機器のメーカー名",
+       "exif-model": "撮影機器のモデル名",
+       "exif-software": "使用ソフトウェア名",
+       "exif-artist": "作者",
+       "exif-copyright": "撮影著作権者/編集著作権者",
+       "exif-exifversion": "Exifバージョン",
+       "exif-flashpixversion": "対応フラッシュピックスバージョン",
+       "exif-colorspace": "色空間情報",
+       "exif-componentsconfiguration": "各コンポーネントの意味",
+       "exif-compressedbitsperpixel": "画像圧縮モード",
+       "exif-pixelxdimension": "実効画像の幅",
+       "exif-pixelydimension": "実効画像の高さ",
+       "exif-usercomment": "ユーザー コメント",
+       "exif-relatedsoundfile": "関連音声ファイル",
+       "exif-datetimeoriginal": "原画像データの生成日時",
+       "exif-datetimedigitized": "デジタルデータの作成日時",
+       "exif-subsectime": "ファイル変更日時(1秒未満)",
+       "exif-subsectimeoriginal": "原画像データの生成日時(1秒未満)",
+       "exif-subsectimedigitized": "デジタルデータの作成日時(1秒未満)",
+       "exif-exposuretime": "露出時間",
+       "exif-exposuretime-format": "$1秒 ($2)",
+       "exif-fnumber": "F値",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "露出プログラム",
+       "exif-spectralsensitivity": "スペクトル感度",
+       "exif-isospeedratings": "ISO 感度",
+       "exif-shutterspeedvalue": "シャッタースピード",
+       "exif-aperturevalue": "絞り値",
+       "exif-brightnessvalue": "輝度値",
+       "exif-exposurebiasvalue": "露出補正値",
+       "exif-maxaperturevalue": "レンズ最小F値",
+       "exif-subjectdistance": "被写体距離",
+       "exif-meteringmode": "測光モード",
+       "exif-lightsource": "光源",
+       "exif-flash": "フラッシュ",
+       "exif-focallength": "レンズ焦点距離",
+       "exif-focallength-format": "$1 ミリ",
+       "exif-subjectarea": "被写体領域",
+       "exif-flashenergy": "フラッシュ強度",
+       "exif-focalplanexresolution": "焦点面の幅の解像度",
+       "exif-focalplaneyresolution": "焦点面の高さの解像度",
+       "exif-focalplaneresolutionunit": "焦点面解像度単位",
+       "exif-subjectlocation": "被写体位置",
+       "exif-exposureindex": "露出インデックス",
+       "exif-sensingmethod": "センサー方式",
+       "exif-filesource": "ファイルソース",
+       "exif-scenetype": "シーンタイプ",
+       "exif-customrendered": "個別画像処理",
+       "exif-exposuremode": "露出モード",
+       "exif-whitebalance": "ホワイトバランス",
+       "exif-digitalzoomratio": "デジタルズーム倍率",
+       "exif-focallengthin35mmfilm": "35mmフィルム換算焦点距離",
+       "exif-scenecapturetype": "撮影シーンタイプ",
+       "exif-gaincontrol": "ゲイン制御",
+       "exif-contrast": "撮影コントラスト",
+       "exif-saturation": "撮影彩度",
+       "exif-sharpness": "撮影シャープネス",
+       "exif-devicesettingdescription": "撮影条件記述情報",
+       "exif-subjectdistancerange": "被写体距離レンジ",
+       "exif-imageuniqueid": "ユニーク画像ID",
+       "exif-gpsversionid": "GPSタグのバージョン",
+       "exif-gpslatituderef": "北緯/南緯",
+       "exif-gpslatitude": "緯度",
+       "exif-gpslongituderef": "東経/西経",
+       "exif-gpslongitude": "経度",
+       "exif-gpsaltituderef": "高度の基準",
+       "exif-gpsaltitude": "高度",
+       "exif-gpstimestamp": "GPS日時 (原子時計)",
+       "exif-gpssatellites": "測位に用いた衛星信号",
+       "exif-gpsstatus": "GPS受信機の状態",
+       "exif-gpsmeasuremode": "GPSの測位方法",
+       "exif-gpsdop": "測位の信頼性",
+       "exif-gpsspeedref": "速度の単位",
+       "exif-gpsspeed": "GPS 受信機の速度",
+       "exif-gpstrackref": "進行方向の単位",
+       "exif-gpstrack": "進行方向",
+       "exif-gpsimgdirectionref": "撮影方向の基準",
+       "exif-gpsimgdirection": "画像の方向",
+       "exif-gpsmapdatum": "測位に用いた地図データ",
+       "exif-gpsdestlatituderef": "目的地の北緯/南緯",
+       "exif-gpsdestlatitude": "目的地の緯度",
+       "exif-gpsdestlongituderef": "目的地の東経/西経",
+       "exif-gpsdestlongitude": "目的地の経度",
+       "exif-gpsdestbearingref": "目的地の方角の単位",
+       "exif-gpsdestbearing": "目的地の方角",
+       "exif-gpsdestdistanceref": "目的地までの距離の単位",
+       "exif-gpsdestdistance": "目的地までの距離",
+       "exif-gpsprocessingmethod": "測位方式の名称",
+       "exif-gpsareainformation": "測位地点の名称",
+       "exif-gpsdatestamp": "GPS日付",
+       "exif-gpsdifferential": "GPS補正測位",
+       "exif-coordinate-format": "$4$1度$2分$3秒",
+       "exif-jpegfilecomment": "JPEGファイルのコメント",
+       "exif-keywords": "キーワード",
+       "exif-worldregioncreated": "写真が撮影された大陸/地域",
+       "exif-countrycreated": "写真が撮影された国",
+       "exif-countrycodecreated": "写真が撮影された国のコード",
+       "exif-provinceorstatecreated": "写真が撮影された州/県",
+       "exif-citycreated": "写真が撮影された都市",
+       "exif-sublocationcreated": "写真が撮影された町や通りの名前",
+       "exif-worldregiondest": "写っている大陸/地域",
+       "exif-countrydest": "写っている国",
+       "exif-countrycodedest": "写っている国のコード",
+       "exif-provinceorstatedest": "写っている州/県",
+       "exif-citydest": "写っている都市",
+       "exif-sublocationdest": "写っている町や通りの名前",
+       "exif-objectname": "短いタイトル",
+       "exif-specialinstructions": "取扱いに関する特記事項",
+       "exif-headline": "見出し",
+       "exif-credit": "帰属/提供者",
+       "exif-source": "ソース",
+       "exif-editstatus": "画像の編集上の状態",
+       "exif-urgency": "緊急度",
+       "exif-fixtureidentifier": "フィクスチャ名",
+       "exif-locationdest": "映っている場所",
+       "exif-locationdestcode": "映っている場所のコード",
+       "exif-objectcycle": "このメディアファイルが意図されている時間帯",
+       "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": "メタデータの最終更新日",
+       "exif-nickname": "画像の非公式名",
+       "exif-rating": "評価 (5点満点)",
+       "exif-rightscertificate": "権利管理証明書",
+       "exif-copyrighted": "著作権情報",
+       "exif-copyrightowner": "著作権者",
+       "exif-usageterms": "使用条件",
+       "exif-webstatement": "オンライン上の著作権文",
+       "exif-originaldocumentid": "元文書の一意なID",
+       "exif-licenseurl": "著作権ライセンスのURL",
+       "exif-morepermissionsurl": "代替ライセンス情報",
+       "exif-attributionurl": "この作品を再利用する際に、次のURLにリンクしてください",
+       "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-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "無圧縮",
+       "exif-compression-2": "CCITT Group 3 1次元修正ハフマン連長符号化",
+       "exif-compression-3": "CCITT Group 3 ファックス符号化",
+       "exif-compression-4": "CCITT Group 4 ファックス符号化",
+       "exif-compression-5": "LZW",
+       "exif-compression-6": "JPEG (旧式)",
+       "exif-compression-7": "JPEG",
+       "exif-compression-8": "Deflate (Adobe)",
+       "exif-compression-32773": "PackBits (Macintosh RLE)",
+       "exif-compression-32946": "Deflate (PKZIP)",
+       "exif-compression-34712": "JPEG2000",
+       "exif-copyrighted-true": "著作権あり",
+       "exif-copyrighted-false": "著作権情報未設定",
+       "exif-photometricinterpretation-0": "黒と白(白が0です)",
+       "exif-photometricinterpretation-1": "黒と白(黒が0)",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-3": "Palette",
+       "exif-photometricinterpretation-5": "Separated (Probably CMYK)",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (ICC エンコード)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (ITU エンコード)",
+       "exif-photometricinterpretation-32803": "カラーフィルター配列",
+       "exif-photometricinterpretation-34892": "リニア RAW",
+       "exif-unknowndate": "不明な日付",
+       "exif-orientation-1": "通常",
+       "exif-orientation-2": "左右反転",
+       "exif-orientation-3": "180°回転",
+       "exif-orientation-4": "上下反転",
+       "exif-orientation-5": "反時計回りに90°回転、上下反転",
+       "exif-orientation-6": "反時計回りに90°回転",
+       "exif-orientation-7": "時計回りに90°回転、上下反転",
+       "exif-orientation-8": "時計回りに90°回転",
+       "exif-planarconfiguration-1": "点順次フォーマット",
+       "exif-planarconfiguration-2": "面順次フォーマット",
+       "exif-xyresolution-i": "$1dpi",
+       "exif-xyresolution-c": "$1dpc",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "その他",
+       "exif-componentsconfiguration-0": "存在しない",
+       "exif-componentsconfiguration-1": "Y",
+       "exif-componentsconfiguration-2": "Cb",
+       "exif-componentsconfiguration-3": "Cr",
+       "exif-componentsconfiguration-4": "R",
+       "exif-componentsconfiguration-5": "G",
+       "exif-componentsconfiguration-6": "B",
+       "exif-exposureprogram-0": "未定義",
+       "exif-exposureprogram-1": "マニュアル",
+       "exif-exposureprogram-2": "ノーマルプログラム",
+       "exif-exposureprogram-3": "絞り優先",
+       "exif-exposureprogram-4": "シャッター優先",
+       "exif-exposureprogram-5": "クリエイティブプログラム(被写界を深度方向に偏らせる)",
+       "exif-exposureprogram-6": "アクションプログラム(シャッタースピードを高速側に偏らせる)",
+       "exif-exposureprogram-7": "ポートレイトモード(近接撮影、フォーカスを背景から外す)",
+       "exif-exposureprogram-8": "ランドスケープモード(風景撮影、フォーカスを背景に合わせる)",
+       "exif-subjectdistance-value": "$1メートル",
+       "exif-meteringmode-0": "不明",
+       "exif-meteringmode-1": "平均",
+       "exif-meteringmode-2": "中央重点",
+       "exif-meteringmode-3": "スポット",
+       "exif-meteringmode-4": "マルチスポット",
+       "exif-meteringmode-5": "分割測光",
+       "exif-meteringmode-6": "部分測光",
+       "exif-meteringmode-255": "その他の測光形式",
+       "exif-lightsource-0": "不明",
+       "exif-lightsource-1": "昼光",
+       "exif-lightsource-2": "蛍光灯",
+       "exif-lightsource-3": "タングステン (白熱灯)",
+       "exif-lightsource-4": "フラッシュ",
+       "exif-lightsource-9": "晴天",
+       "exif-lightsource-10": "曇天",
+       "exif-lightsource-11": "日陰",
+       "exif-lightsource-12": "昼光色蛍光灯 (D:5700 - 7100K)",
+       "exif-lightsource-13": "昼白色蛍光灯 (N:4600 - 5400K)",
+       "exif-lightsource-14": "白色蛍光灯 (W:3900 - 4500K)",
+       "exif-lightsource-15": "温白色蛍光灯 (WW:3200 - 3700K)",
+       "exif-lightsource-17": "標準光A",
+       "exif-lightsource-18": "標準光B",
+       "exif-lightsource-19": "標準光C",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-22": "D75",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "ISOスタジオタングステン",
+       "exif-lightsource-255": "その他の光源",
+       "exif-flash-fired-0": "フラッシュ発光せず",
+       "exif-flash-fired-1": "フラッシュ発光",
+       "exif-flash-return-0": "ストロボのリターン検出機能なし",
+       "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": "2板カラーセンサー",
+       "exif-sensingmethod-4": "3板カラーセンサー",
+       "exif-sensingmethod-5": "色順次カラーセンサー",
+       "exif-sensingmethod-7": "3線リニアセンサー",
+       "exif-sensingmethod-8": "色順次リニアセンサー",
+       "exif-filesource-3": "デジタルスチルカメラ",
+       "exif-scenetype-1": "直接撮影された画像",
+       "exif-customrendered-0": "通常処理",
+       "exif-customrendered-1": "特殊処理",
+       "exif-exposuremode-0": "露出自動",
+       "exif-exposuremode-1": "露出マニュアル",
+       "exif-exposuremode-2": "オートブラケット",
+       "exif-whitebalance-0": "ホワイトバランス自動",
+       "exif-whitebalance-1": "ホワイトバランスマニュアル",
+       "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-saturation-0": "標準",
+       "exif-saturation-1": "低彩度",
+       "exif-saturation-2": "高彩度",
+       "exif-sharpness-0": "標準",
+       "exif-sharpness-1": "弱い",
+       "exif-sharpness-2": "強い",
+       "exif-subjectdistancerange-0": "不明",
+       "exif-subjectdistancerange-1": "マクロ",
+       "exif-subjectdistancerange-2": "近景",
+       "exif-subjectdistancerange-3": "遠景",
+       "exif-gpslatitude-n": "北緯",
+       "exif-gpslatitude-s": "南緯",
+       "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": "2 次元測位",
+       "exif-gpsmeasuremode-3": "3 次元測位",
+       "exif-gpsspeed-k": "キロメートル/時",
+       "exif-gpsspeed-m": "マイル/時",
+       "exif-gpsspeed-n": "ノット",
+       "exif-gpsdestdistance-k": "キロメートル",
+       "exif-gpsdestdistance-m": "マイル",
+       "exif-gpsdestdistance-n": "海里",
+       "exif-gpsdop-excellent": "優秀 ($1)",
+       "exif-gpsdop-good": "良好 ($1)",
+       "exif-gpsdop-moderate": "適度 ($1)",
+       "exif-gpsdop-fair": "中程度 ($1)",
+       "exif-gpsdop-poor": "劣悪 ($1)",
+       "exif-objectcycle-a": "午前のみ",
+       "exif-objectcycle-p": "午後のみ",
+       "exif-objectcycle-b": "午後と午前の両方",
+       "exif-gpsdirection-t": "真方位",
+       "exif-gpsdirection-m": "磁気方位",
+       "exif-ycbcrpositioning-1": "中心",
+       "exif-ycbcrpositioning-2": "一致",
+       "exif-dc-contributor": "貢献者",
+       "exif-dc-coverage": "メディアの空間的または時間的範囲",
+       "exif-dc-date": "日付",
+       "exif-dc-publisher": "公開者",
+       "exif-dc-relation": "関連メディア",
+       "exif-dc-rights": "権利",
+       "exif-dc-source": "ソースメディア",
+       "exif-dc-type": "メディアの種類",
+       "exif-rating-rejected": "却下",
+       "exif-isospeedratings-overflow": "65535より大きい",
+       "exif-maxaperturevalue-value": "$1 APEX (f/$2)",
+       "exif-iimcategory-ace": "芸術、文化、娯楽",
+       "exif-iimcategory-clj": "犯罪と法律",
+       "exif-iimcategory-dis": "災害、事故",
+       "exif-iimcategory-fin": "経済とビジネス",
+       "exif-iimcategory-edu": "教育",
+       "exif-iimcategory-evn": "環境",
+       "exif-iimcategory-hth": "健康",
+       "exif-iimcategory-hum": "人々の興味",
+       "exif-iimcategory-lab": "労働",
+       "exif-iimcategory-lif": "ライフスタイルとレジャー",
+       "exif-iimcategory-pol": "政治",
+       "exif-iimcategory-rel": "宗教と信仰",
+       "exif-iimcategory-sci": "科学と技術",
+       "exif-iimcategory-soi": "社会問題",
+       "exif-iimcategory-spo": "スポーツ",
+       "exif-iimcategory-war": "戦争、紛争、動乱",
+       "exif-iimcategory-wea": "天気",
+       "exif-urgency-normal": "通常 ($1)",
+       "exif-urgency-low": "低 ($1)",
+       "exif-urgency-high": "高 ($1)",
+       "exif-urgency-other": "利用者定義の優先度 ($1)"
+}
diff --git a/languages/i18n/exif/jv.json b/languages/i18n/exif/jv.json
new file mode 100644 (file)
index 0000000..c777d92
--- /dev/null
@@ -0,0 +1,348 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Bennylin",
+                       "Meursault2004",
+                       "NoiX180",
+                       "Pras"
+               ]
+       },
+       "exif-imagewidth": "Jembar",
+       "exif-imagelength": "Dhuwur",
+       "exif-bitspersample": "Bit per komponèn",
+       "exif-compression": "Skéma komprèsi",
+       "exif-photometricinterpretation": "Komposisi piksel",
+       "exif-orientation": "Kéblat",
+       "exif-samplesperpixel": "Cacah komponèn",
+       "exif-planarconfiguration": "Tata rakiting data",
+       "exif-ycbcrsubsampling": "Rasio subsampling Y ke C",
+       "exif-ycbcrpositioning": "Pandokokan Y lan C",
+       "exif-xresolution": "Résolusi horisontal",
+       "exif-yresolution": "Résolusi vèrtikal",
+       "exif-stripoffsets": "Lokasi data gambar",
+       "exif-rowsperstrip": "Cacah baris per strip",
+       "exif-stripbytecounts": "Bita per strip komprèsi",
+       "exif-jpeginterchangeformat": "Ofset menyang JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bita data JPEG",
+       "exif-whitepoint": "Kromatisitas titik putih",
+       "exif-primarychromaticities": "Kromatisitas werna primer",
+       "exif-ycbcrcoefficients": "Koèfisièn matriks transformasi papan werna",
+       "exif-referenceblackwhite": "Wiji réferènsi pasangan ireng putih",
+       "exif-datetime": "Tanggal lan wektu owahé barkas",
+       "exif-imagedescription": "Sesirah gambar",
+       "exif-make": "Prodhusèn kodhak",
+       "exif-model": "Modhèl kaméra",
+       "exif-software": "Piranti alus kang kaanggo",
+       "exif-artist": "Prodhusèn",
+       "exif-copyright": "Kang duwé hak cipta",
+       "exif-exifversion": "Vèrsi Exif",
+       "exif-flashpixversion": "Dukungan versi Flashpix",
+       "exif-colorspace": "Lowah warna",
+       "exif-componentsconfiguration": "Teges saben komponèn",
+       "exif-compressedbitsperpixel": "Modhe komprèsi gambar",
+       "exif-pixelxdimension": "Jembaring gambar",
+       "exif-pixelydimension": "Dhuwuring gambar",
+       "exif-usercomment": "Komentar panganggo",
+       "exif-relatedsoundfile": "Barkas swara magepokan",
+       "exif-datetimeoriginal": "Tanggal lan wektu turuné dhata",
+       "exif-datetimedigitized": "Tanggal lan wektu dhigitalisasi",
+       "exif-subsectime": "Subdetik DateTime",
+       "exif-subsectimeoriginal": "Subdetik DateTimeOriginal",
+       "exif-subsectimedigitized": "Subdetik DateTimeDigitized",
+       "exif-exposuretime": "Wektu pajanan",
+       "exif-exposuretime-format": "$1 detik ($2)",
+       "exif-fnumber": "Wiji F",
+       "exif-exposureprogram": "Program pajanan",
+       "exif-spectralsensitivity": "Sènsitivitas spèktral",
+       "exif-isospeedratings": "Rating kacepetan ISO",
+       "exif-shutterspeedvalue": "Cepeté rana APEX",
+       "exif-aperturevalue": "Bukakan APEX",
+       "exif-brightnessvalue": "Kapadhangan APEX",
+       "exif-exposurebiasvalue": "Bias pajanan",
+       "exif-maxaperturevalue": "Bukaan tanah maksimum",
+       "exif-subjectdistance": "Jarak subjèk",
+       "exif-meteringmode": "Modhe pangukuran",
+       "exif-lightsource": "Sumber cahya",
+       "exif-flash": "Kilas",
+       "exif-focallength": "Jarak fokus lènsa",
+       "exif-subjectarea": "Wilayah subjèk",
+       "exif-flashenergy": "Énèrgi kilas",
+       "exif-focalplanexresolution": "Résolusi bidang fokus X",
+       "exif-focalplaneyresolution": "Résolusi bidang fokus Y",
+       "exif-focalplaneresolutionunit": "Unit résolusi bidang fokus",
+       "exif-subjectlocation": "Lokasi subjèk",
+       "exif-exposureindex": "Indhèks pajanan",
+       "exif-sensingmethod": "Métodhe pangindran",
+       "exif-filesource": "Sumber barkas",
+       "exif-scenetype": "Tipe panyawangan",
+       "exif-customrendered": "Prosès nggawé gambar",
+       "exif-exposuremode": "Modhe pajanan",
+       "exif-whitebalance": "Kaseimbangan putih",
+       "exif-digitalzoomratio": "Rasio pambesaran digital",
+       "exif-focallengthin35mmfilm": "Dhawa fokus ing fil 35 mm",
+       "exif-scenecapturetype": "Tipe panangkepan",
+       "exif-gaincontrol": "Kontrol panyawangan",
+       "exif-contrast": "Kontras",
+       "exif-saturation": "Saturasi",
+       "exif-sharpness": "Kalandhepan",
+       "exif-devicesettingdescription": "Wedharaning setèlaning piranti",
+       "exif-subjectdistancerange": "Jarak subjèk",
+       "exif-imageuniqueid": "ID unik gambar",
+       "exif-gpsversionid": "Vèrsi tag GPS",
+       "exif-gpslatituderef": "Lintang Lor utawa Kidul",
+       "exif-gpslatitude": "Lintang",
+       "exif-gpslongituderef": "Bujur Wétan utawa Kulon",
+       "exif-gpslongitude": "Bujur",
+       "exif-gpsaltituderef": "Réferènsi dhuwur",
+       "exif-gpsaltitude": "Dhuwuré",
+       "exif-gpstimestamp": "Wektu GPS (jam atom)",
+       "exif-gpssatellites": "Satelit kanggo pangukuran",
+       "exif-gpsstatus": "Status panrima",
+       "exif-gpsmeasuremode": "Modhe pangukuran",
+       "exif-gpsdop": "Katepatan pangukuran",
+       "exif-gpsspeedref": "Unit kacepetan",
+       "exif-gpsspeed": "Kacepetan panrima GPS",
+       "exif-gpstrackref": "Réferènsi arah obah",
+       "exif-gpstrack": "Arah obah",
+       "exif-gpsimgdirectionref": "Réferènsi arah gambar",
+       "exif-gpsimgdirection": "Arah gambar",
+       "exif-gpsmapdatum": "Data survéi géodèsi",
+       "exif-gpsdestlatituderef": "Réferènsi lintang saka patujon",
+       "exif-gpsdestlatitude": "Lintang tujuan",
+       "exif-gpsdestlongituderef": "Réferènsi bujur saka patujon",
+       "exif-gpsdestlongitude": "Bujur tujuan",
+       "exif-gpsdestbearingref": "Réferènsi bearing of destination",
+       "exif-gpsdestbearing": "Arah tujuan",
+       "exif-gpsdestdistanceref": "Réferènsi jarak saka patujon",
+       "exif-gpsdestdistance": "Jarak saka patujon",
+       "exif-gpsprocessingmethod": "Jeneng métodhe prosès GPS",
+       "exif-gpsareainformation": "Jeneng wilayah GPS",
+       "exif-gpsdatestamp": "Tanggal GPS",
+       "exif-gpsdifferential": "Korèksi diférènsial GPS",
+       "exif-jpegfilecomment": "Tanggepan barkas JPEG",
+       "exif-keywords": "Tembung kunci",
+       "exif-worldregioncreated": "Tlatah ing donya anggoné gambaré dijupuk",
+       "exif-countrycreated": "Nagara anggoné gambaré dijupuk",
+       "exif-countrycodecreated": "Kodhe nagara anggoné gambaré dijupuk",
+       "exif-provinceorstatecreated": "Propinsi utawa nagara bagéyan ing endi gambar dujupuk",
+       "exif-citycreated": "Kutha anggoné gambaré dijupuk",
+       "exif-sublocationcreated": "Laladan ing kutha anggoné gambaré dijupuk",
+       "exif-worldregiondest": "Wewengkon dunya katampilaké",
+       "exif-countrydest": "Nagara katampilaké",
+       "exif-countrycodedest": "Kodhe nagara katampilaké",
+       "exif-provinceorstatedest": "Propinsi utawa nagara bagéyan katampilaké",
+       "exif-citydest": "Kutha katampilaké",
+       "exif-sublocationdest": "Dhaèrahé kutha katampilaké",
+       "exif-objectname": "Sesirah cekak",
+       "exif-specialinstructions": "Prèntah kusus",
+       "exif-headline": "Tajuk",
+       "exif-credit": "Krédit/Panyadhiya",
+       "exif-source": "Sumber",
+       "exif-editstatus": "Status kapanyuntingan gambar",
+       "exif-urgency": "Kawigatèn",
+       "exif-fixtureidentifier": "Jeneng pikstur",
+       "exif-locationdest": "Panggon digambaraké",
+       "exif-locationdestcode": "Kodhe dhaérah kagambaraké",
+       "exif-objectcycle": "Wektu katujon mèdia iku",
+       "exif-contact": "Inpormasi kontak",
+       "exif-writer": "Panulis",
+       "exif-languagecode": "Basa",
+       "exif-iimversion": "Vèrsi IIM",
+       "exif-iimcategory": "Kategori",
+       "exif-iimsupplementalcategory": "Kategori tambahan",
+       "exif-datetimeexpires": "Aja dianggo sakbaré",
+       "exif-datetimereleased": "Dimetukaké ing",
+       "exif-originaltransmissionref": "Kodhe panggon transmisi asli",
+       "exif-identifier": "Pangenal",
+       "exif-lens": "Lénsa kang dianggo",
+       "exif-serialnumber": "Nomer seri kaméra",
+       "exif-cameraownername": "Kang duwé kaméra",
+       "exif-label": "Labèl",
+       "exif-datetimemetadata": "Tanggal pungkasan metadata diowah",
+       "exif-nickname": "Jeneng ora resminé gambar",
+       "exif-rating": "Biji (saka 5)",
+       "exif-rightscertificate": "Sertipikat pranata hak",
+       "exif-copyrighted": "Status hak cipta",
+       "exif-copyrightowner": "Kang duwé hak cipta",
+       "exif-usageterms": "Katemton panganggoan",
+       "exif-webstatement": "Pranyatan hak cipta online",
+       "exif-originaldocumentid": "ID unik dokumèn asli",
+       "exif-licenseurl": "URL kanggo lisènsi hak cipta",
+       "exif-morepermissionsurl": "Inpormasi lisènsi alternatip",
+       "exif-attributionurl": "Nalika nganggo manèh karya iki, tulung gayutaké marang",
+       "exif-preferredattributionname": "Nalika nganggo manèh karya iki, mangga awèhi krèdit",
+       "exif-pngfilecomment": "Tanggepan barkas PNG",
+       "exif-disclaimer": "Sélakan",
+       "exif-contentwarning": "Pèngetan kontèn",
+       "exif-giffilecomment": "Tanggepan berkas GIF",
+       "exif-intellectualgenre": "Jinis barang",
+       "exif-subjectnewscode": "Aturan jejer",
+       "exif-scenecode": "Aturan adegan IPTC",
+       "exif-event": "Kadadéan digambaraké",
+       "exif-organisationinimage": "Organisasi digambaraké",
+       "exif-personinimage": "Uwong digambaraké",
+       "exif-originalimageheight": "Dhuwuré gambar sakdurungé dikethok",
+       "exif-originalimagewidth": "Jembaré gambar sakdurungé dikethok",
+       "exif-compression-1": "Ora dikomprèsi",
+       "exif-compression-2": "CCITT Group 3 1-Dimensional Modified Huffman RLE",
+       "exif-compression-3": "CCITT Group 3 fax encoding",
+       "exif-compression-4": "CCITT Group 4 fax encoding",
+       "exif-copyrighted-true": "Mawa hak cipta",
+       "exif-copyrighted-false": "Status hak cipta durung ditemtokake",
+       "exif-unknowndate": "Tanggal ora dingertèni",
+       "exif-orientation-1": "Sedhengan",
+       "exif-orientation-2": "Baliken sacara horisontal",
+       "exif-orientation-3": "Diputer 180°",
+       "exif-orientation-4": "Baliken sacara vèrtikal",
+       "exif-orientation-5": "Diputer 90° nglawan arah dom jam dan dibalik sacara vèrtikal",
+       "exif-orientation-6": "Puter 90° lawan arah dom jam",
+       "exif-orientation-7": "Diputer 90° miturut arah dom jam lan diwalik sacara vèrtikal",
+       "exif-orientation-8": "Puter 90° saarah dom jam",
+       "exif-planarconfiguration-1": "format ''chunky'' (kumothak)",
+       "exif-planarconfiguration-2": "format planar",
+       "exif-colorspace-65535": "Ora dikalibrasi",
+       "exif-componentsconfiguration-0": "ora ana",
+       "exif-exposureprogram-0": "Ora didéfinisi",
+       "exif-exposureprogram-1": "Mawa tangan (manual)",
+       "exif-exposureprogram-2": "Program normal",
+       "exif-exposureprogram-3": "Prioritas diafragma",
+       "exif-exposureprogram-4": "Prioritas panutup",
+       "exif-exposureprogram-5": "Program kréatif (condong menyang jroning bilik (''depth of field''))",
+       "exif-exposureprogram-6": "Program aksi (condhong marang kacepetan rana)",
+       "exif-exposureprogram-7": "Modus potret (kanggo foto ''closeup'' mawa latar wuri ora fokus)",
+       "exif-exposureprogram-8": "Modus pamandhangan (''landscape'') (kanggo foto pamandhangan mawa latar wuri fokus)",
+       "exif-subjectdistance-value": "$1 mèter",
+       "exif-meteringmode-0": "Ora dingertèni",
+       "exif-meteringmode-1": "Rata-rata",
+       "exif-meteringmode-2": "Rata-rataAbobot",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "MultiSpot",
+       "exif-meteringmode-5": "Pola utawa patron multi-sègmèn",
+       "exif-meteringmode-6": "Parsial (sabagéyan)",
+       "exif-meteringmode-255": "Liya-liyané",
+       "exif-lightsource-0": "Ora dingertèni",
+       "exif-lightsource-1": "Cahya srengéngé",
+       "exif-lightsource-2": "Cahya néon",
+       "exif-lightsource-3": "Wolfram (cahya pijer)",
+       "exif-lightsource-4": "Blitz",
+       "exif-lightsource-9": "Hawa apik",
+       "exif-lightsource-10": "Hawa apedhut",
+       "exif-lightsource-11": "Bayangan",
+       "exif-lightsource-12": "Fluorescent cahya pepadhang awan (D 5700 – 7100K)",
+       "exif-lightsource-13": "Fluorescent putih pepadhang awan (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fluorescent putih éyup (W 3900 – 4500K)",
+       "exif-lightsource-15": "Fluorescent putih (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Cahya standar A",
+       "exif-lightsource-18": "Cahya standar B",
+       "exif-lightsource-19": "Cahya standar C",
+       "exif-lightsource-24": "ISO studio tungsten",
+       "exif-lightsource-255": "Sumber cahya liya",
+       "exif-flash-fired-0": "Lampu kilat ora murub",
+       "exif-flash-fired-1": "Lampu kilat murub",
+       "exif-flash-return-0": "ora ana fungsi panditèksian strobo balik",
+       "exif-flash-return-2": "lampu strobo balik ora kaditèksi",
+       "exif-flash-return-3": "lampu strobo balik kaditèksi",
+       "exif-flash-mode-1": "lampu kilat diperlokaké",
+       "exif-flash-mode-2": "lampu kilat dipatèni",
+       "exif-flash-mode-3": "modus otomatis",
+       "exif-flash-function-1": "Ora ana fungsi lampu blitz (''flash'')",
+       "exif-flash-redeye-1": "modus réduksi mata-abang",
+       "exif-focalplaneresolutionunit-2": "inci",
+       "exif-sensingmethod-1": "Ora didéfinisi",
+       "exif-sensingmethod-2": "Sènsor aréa werna sa-tugelan",
+       "exif-sensingmethod-3": "Sènsor aréa werna rong tugelan",
+       "exif-sensingmethod-4": "Sènsor aréa werna telung tugelan",
+       "exif-sensingmethod-5": "Sènsor aréa werna urut-urutan",
+       "exif-sensingmethod-7": "Sènsor trilinéar",
+       "exif-sensingmethod-8": "Sènsor linéar werna urut-urutan",
+       "exif-filesource-3": "Kaméra meneng digital",
+       "exif-scenetype-1": "Gambar foto langsung",
+       "exif-customrendered-0": "Prosès normal",
+       "exif-customrendered-1": "Prosès kustom",
+       "exif-exposuremode-0": "Pajanan (èkspos) otomatis",
+       "exif-exposuremode-1": "Pajanan (èkspos) manual",
+       "exif-exposuremode-2": "Brakèt otomatis",
+       "exif-whitebalance-0": "Kababagan (''kasaimbangan'') putih otomatis",
+       "exif-whitebalance-1": "Kababagan (kasaimbangan) putih manual",
+       "exif-scenecapturetype-0": "Standar",
+       "exif-scenecapturetype-1": "Dawa (''landscape'')",
+       "exif-scenecapturetype-2": "Potrèt",
+       "exif-scenecapturetype-3": "Pamandhangan wengi",
+       "exif-gaincontrol-0": "Ora ana",
+       "exif-gaincontrol-1": "Puncak-puncak ngisor munggah",
+       "exif-gaincontrol-2": "Puncak-puncak dhuwur munggah",
+       "exif-gaincontrol-3": "Puncak-puncak ngisor medhun",
+       "exif-gaincontrol-4": "Puncak-puncak dhuwur medhun",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Lembut",
+       "exif-contrast-2": "Atos",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Saturasi ngisor",
+       "exif-saturation-2": "Saturasi dhuwur",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Lembut",
+       "exif-sharpness-2": "Atos",
+       "exif-subjectdistancerange-0": "Ora dimangertèni",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Katon cedhak",
+       "exif-subjectdistancerange-3": "Katon adoh",
+       "exif-gpslatitude-n": "Lintang lor",
+       "exif-gpslatitude-s": "Lintang kidul",
+       "exif-gpslongitude-e": "Bujur wétan",
+       "exif-gpslongitude-w": "Bujur kulon",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|mèter|mèter}} ndhuwur segara",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|mèter|mèter}} ngisor segara",
+       "exif-gpsstatus-a": "Pangukuran lagi dilakoni",
+       "exif-gpsstatus-v": "Interoperabilitas pangukuran",
+       "exif-gpsmeasuremode-2": "Pangukuran 2-dimènsi",
+       "exif-gpsmeasuremode-3": "Pangukuran 3-dimènsi",
+       "exif-gpsspeed-k": "Kilométer per jam",
+       "exif-gpsspeed-m": "Mil per jam",
+       "exif-gpsspeed-n": "Knot",
+       "exif-gpsdestdistance-k": "Kilomèter",
+       "exif-gpsdestdistance-m": "Mil",
+       "exif-gpsdestdistance-n": "Mil segara",
+       "exif-gpsdop-excellent": "Apik banget ($1)",
+       "exif-gpsdop-good": "Apik ($1)",
+       "exif-gpsdop-moderate": "Sedhengan ($1)",
+       "exif-gpsdop-fair": "Cukup ($1)",
+       "exif-gpsdop-poor": "Èlèk ($1)",
+       "exif-objectcycle-a": "Èsuk thok",
+       "exif-objectcycle-p": "Mbengi thok",
+       "exif-objectcycle-b": "Èsuk lan mbengi",
+       "exif-gpsdirection-t": "Arah sejati",
+       "exif-gpsdirection-m": "Arah magnètis",
+       "exif-ycbcrpositioning-1": "Kapusat",
+       "exif-ycbcrpositioning-2": "Atas (co-sited)",
+       "exif-dc-contributor": "Kontributor",
+       "exif-dc-coverage": "Cakepan latar utawa wektu média",
+       "exif-dc-date": "Tanggal",
+       "exif-dc-publisher": "Panyithak",
+       "exif-dc-relation": "Média kakait",
+       "exif-dc-rights": "Hak",
+       "exif-dc-source": "Mèdia sumber",
+       "exif-dc-type": "Jinisé média",
+       "exif-rating-rejected": "Ditolak",
+       "exif-isospeedratings-overflow": "Luwih saka 65535",
+       "exif-iimcategory-ace": "Seni, budhaya lan dolanan",
+       "exif-iimcategory-clj": "Kriminal lan ukum",
+       "exif-iimcategory-dis": "Musibah lan kacilakan",
+       "exif-iimcategory-fin": "Èkonomi lan bisnis",
+       "exif-iimcategory-edu": "Pandhidhikan",
+       "exif-iimcategory-evn": "Lingkungan",
+       "exif-iimcategory-hth": "Kasehatan",
+       "exif-iimcategory-hum": "Kasenengan manungsa",
+       "exif-iimcategory-lab": "Buruh",
+       "exif-iimcategory-lif": "Gaya urip lan peprèian",
+       "exif-iimcategory-pol": "Politik",
+       "exif-iimcategory-rel": "Agama lan kapitayan",
+       "exif-iimcategory-sci": "Èlmu lan tehnologi",
+       "exif-iimcategory-soi": "Bab masarakat",
+       "exif-iimcategory-spo": "Krida",
+       "exif-iimcategory-war": "Perang, cengkah, rusuh",
+       "exif-iimcategory-wea": "Mangsa",
+       "exif-urgency-normal": "Sedhengan ($1)",
+       "exif-urgency-low": "Cendhèk ($1)",
+       "exif-urgency-high": "Dhuwur ($1)",
+       "exif-urgency-other": "Prioritas kang ditetepaké panganggo ($1)"
+}
diff --git a/languages/i18n/exif/ka.json b/languages/i18n/exif/ka.json
new file mode 100644 (file)
index 0000000..9fc812d
--- /dev/null
@@ -0,0 +1,371 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Alsandro",
+                       "BRUTE",
+                       "David1010",
+                       "Dawid Deutschland",
+                       "ITshnik",
+                       "MIKHEIL",
+                       "Malafaya",
+                       "გიორგიმელა"
+               ]
+       },
+       "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": "1 ბლოკში ხაზთა რაოდენობა",
+       "exif-stripbytecounts": "შეკუმშული ბლოკის ზომა",
+       "exif-jpeginterchangeformat": "ბლოკ preview-ს მდებარეობა",
+       "exif-jpeginterchangeformatlength": "JPEG მონაცემთა ზომა",
+       "exif-whitepoint": "თეთრი წერტილის ფერადობა",
+       "exif-primarychromaticities": "ძირითადი ფერების ფერადობა",
+       "exif-ycbcrcoefficients": "ფერადი მოდელის გარდაქმნის კოეფიციენტი",
+       "exif-referenceblackwhite": "შავი და თეთრი წერტილების მდებარეობა",
+       "exif-datetime": "ფაილის შეცვლის თარიღი და დრო",
+       "exif-imagedescription": "სურათის ტიტული",
+       "exif-make": "კამერის მწარმოებელი",
+       "exif-model": "კამერის მოდელი",
+       "exif-software": "გამოყენებული პროგრამა",
+       "exif-artist": "ავტორი",
+       "exif-copyright": "საავტორო უფლებების მფლობელი",
+       "exif-exifversion": "ვერსია Exif",
+       "exif-flashpixversion": "FlashPix-ის მხარდამჭერი ვერსია",
+       "exif-colorspace": "ფერთა სივრცე",
+       "exif-componentsconfiguration": "ცალკეულ კომპონენტთა კონფიგურაცია",
+       "exif-compressedbitsperpixel": "სურათის შეკუმშვის რეჟიმი",
+       "exif-pixelxdimension": "სურათის სიგანე",
+       "exif-pixelydimension": "სურათის სიმაღლე",
+       "exif-usercomment": "მომხმარებლის კომენტარი",
+       "exif-relatedsoundfile": "შესაბამისი აუდიო ფაილი",
+       "exif-datetimeoriginal": "გენერირების თარიღი და დრო",
+       "exif-datetimedigitized": "ციფრირების თარიღი და დრო",
+       "exif-subsectime": "წამების მეათედები ფაილის ცვლილებისას",
+       "exif-subsectimeoriginal": "წამების მეათედები ორიგინალურ დროში",
+       "exif-subsectimedigitized": "წამების მეათედები ფაილების კომპიუტერიზაციისას",
+       "exif-exposuretime": "ექსპოზიციის დრო",
+       "exif-exposuretime-format": "$1 წამ ($2)",
+       "exif-fnumber": "F ნომერი",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "ექსპოზიციის პროგრამა",
+       "exif-spectralsensitivity": "სპექტრული გრძNობადობა",
+       "exif-isospeedratings": "ISO ფერისგრძნობადობა",
+       "exif-shutterspeedvalue": "APEX-ის დახურვის სიჩქარე",
+       "exif-aperturevalue": "APEX-დიაფრაგმა",
+       "exif-brightnessvalue": "APEX-სინათლე",
+       "exif-exposurebiasvalue": "ექსპოზიციის კომპენსაცია",
+       "exif-maxaperturevalue": "დიაფრაგმას მინიმალური რიცხვი",
+       "exif-subjectdistance": "ობიექტამდე მანძილი",
+       "exif-meteringmode": "ექსპოზიციის დათვლის რეჟიმი",
+       "exif-lightsource": "განათების წყარო",
+       "exif-flash": "ფლეშის სტატუსი",
+       "exif-focallength": "ფოკუსური დაშორება",
+       "exif-focallength-format": "$1 მმ",
+       "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": "თეთრის ბალანსი",
+       "exif-digitalzoomratio": "ციფრული გადიდების კოეფიციენტი (ციფრული ზუმი)",
+       "exif-focallengthin35mmfilm": "ეკვივალენტური ფოკუსური მანძილი (35 მმ-იანი პლიონკისთვის)",
+       "exif-scenecapturetype": "სცენის ტიპი გადაღებისას",
+       "exif-gaincontrol": "სცენის კონტროლი",
+       "exif-contrast": "კონტრასტი",
+       "exif-saturation": "ნაჯერობა",
+       "exif-sharpness": "სიმკვეთრე",
+       "exif-devicesettingdescription": "მოწყობილობის პარამეტრების აღწერილობა",
+       "exif-subjectdistancerange": "მანძილი გადაღების ობიექტამდე",
+       "exif-imageuniqueid": "გამოსახულების ნომერი (ID)",
+       "exif-gpsversionid": "GPS ინფორმაციის ბლოკის ვერსია",
+       "exif-gpslatituderef": "განედის ინდექსი",
+       "exif-gpslatitude": "განედი",
+       "exif-gpslongituderef": "გრძედის ინდექსი",
+       "exif-gpslongitude": "გრძედი",
+       "exif-gpsaltituderef": "სიმაღლის ინდექსი",
+       "exif-gpsaltitude": "სიმაღლე",
+       "exif-gpstimestamp": "ზუსტი დრო UTC-თ",
+       "exif-gpssatellites": "გამოყენებული თანამგზავრების აღწერა",
+       "exif-gpsstatus": "რისივერის სტატუსი",
+       "exif-gpsmeasuremode": "მდებარეობის გამოთვლის მეთოდი",
+       "exif-gpsdop": "გაზომვის სიზუსტე",
+       "exif-gpsspeedref": "სიჩქარის ერთეული",
+       "exif-gpsspeed": "GPS რისივერის სიჩქარე",
+       "exif-gpstrackref": "GPS მიმღების აზიმუტი",
+       "exif-gpstrack": "მოძრაობის მიმართულება",
+       "exif-gpsimgdirectionref": "გამოსახულების აზიმუტი",
+       "exif-gpsimgdirection": "სურათზე მიმართულება",
+       "exif-gpsmapdatum": "გამოყენებული კორდინატთა გეოდეზური სისტემა",
+       "exif-gpsdestlatituderef": "ობიექტის გაედის ინდექსი",
+       "exif-gpsdestlatitude": "ობიექტის გრძედი",
+       "exif-gpsdestlongituderef": "ობიექტის განედი",
+       "exif-gpsdestlongitude": "ობიექტის სიგანე",
+       "exif-gpsdestbearingref": "მიმართულების ორიენტირების სახე",
+       "exif-gpsdestbearing": "ორიენტირების სახე",
+       "exif-gpsdestdistanceref": "მანძილის გაზომვის ერთეულები",
+       "exif-gpsdestdistance": "მანძილი დანიშნულებამდე",
+       "exif-gpsprocessingmethod": "მდებარეობის გამოთვლის მეთოდი",
+       "exif-gpsareainformation": "GPS მხარის სახელწოდება",
+       "exif-gpsdatestamp": "GPS-ის მონაცემი",
+       "exif-gpsdifferential": "დიფერენციალური შესწორება",
+       "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-jpegfilecomment": "JPEG-ფაილის კომენტარი",
+       "exif-keywords": "საძიებო სიტყვები",
+       "exif-worldregioncreated": "მსოფლიოს რეგიონი, სადაც გადაღებულია ფოტო",
+       "exif-countrycreated": "ქვეყანა, სადაც გადაღებულია ფოტო",
+       "exif-countrycodecreated": "ქვეყნის კოდი, სადაც გადაღებულია ფოტო",
+       "exif-provinceorstatecreated": "ოლქი, პროვინცია ან შტატი, სადაც გადაღებულია ფოტო",
+       "exif-citycreated": "ქალაქი, სადაც გადაღებულია ფოტო",
+       "exif-sublocationcreated": "ქალაქის რაიონი, სადაც გადაღებულია ფოტო",
+       "exif-worldregiondest": "მსოფლიოს ნაჩვენები რეგიონი",
+       "exif-countrydest": "ნაჩვენები სახელმწიფო",
+       "exif-countrycodedest": "ნაჩვენები სახელმწიფოს კოდი",
+       "exif-provinceorstatedest": "ნაჩვენები პროვინცია, ან შტატი",
+       "exif-citydest": "ნაჩვენები ქალაქი",
+       "exif-sublocationdest": "ნაჩვენები ქალაქის რაიონი",
+       "exif-objectname": "მოკლე სათაური",
+       "exif-specialinstructions": "სპეციალური ინსტრუქციები",
+       "exif-headline": "სათაური",
+       "exif-credit": "კრედიტი/პროვაიდერი",
+       "exif-source": "წყარო",
+       "exif-editstatus": "სურათის საგამომცემლო სტატუსი",
+       "exif-urgency": "აქტუალურობა",
+       "exif-fixtureidentifier": "სვეტის სახელი",
+       "exif-locationdest": "გამოსახული ადგილი",
+       "exif-locationdestcode": "გამოსახული ადგილის კოდი",
+       "exif-objectcycle": "დღე-ღამის მონაკვეთი, რომლისთვისაც განკუთვნილია გამოსახულება",
+       "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": "მეტამონაცემების ბოლო ცვლილების თარიღი",
+       "exif-nickname": "სურათის არაფორმალური სახელი",
+       "exif-rating": "რეიტინგი (5-დან)",
+       "exif-rightscertificate": "უფლებათა მართვის სერთიფიკატი",
+       "exif-copyrighted": "საავტორო უფლებების სტატუსი",
+       "exif-copyrightowner": "საავტორო უფლებების მფლობელი",
+       "exif-usageterms": "გამოყენების პირობები",
+       "exif-webstatement": "საავტორო უფლებების მდგომარეობა ინტერნეტში",
+       "exif-originaldocumentid": "ორიგინალი დოკუმენტის უნიკალური იდენტიფიკატორი",
+       "exif-licenseurl": "საავტორო ლიცენზიის URL",
+       "exif-morepermissionsurl": "ალტერნატიული სალიცენზიო ინფორმაცია",
+       "exif-attributionurl": "ამ სამუშაოს გამოყენებისას, გთხოვთ, დატოვეთ ბმული",
+       "exif-preferredattributionname": "ამ სამუშაოს გამოყენებისას, გთხოვთ, მიუთითეთ",
+       "exif-pngfilecomment": "PNG ფაილის კომენტარი",
+       "exif-disclaimer": "პასუხისმგებლობის უარყოფა",
+       "exif-contentwarning": "გაფრთხილება შინაარსის შესახებ",
+       "exif-giffilecomment": "GIF ფაილის კომენტარი",
+       "exif-intellectualgenre": "ობიექტის ტიპი",
+       "exif-subjectnewscode": "თემის კოდი",
+       "exif-scenecode": "IPTC სცენის კოდი",
+       "exif-event": "გამოსახული მოვლენა",
+       "exif-organisationinimage": "გამოსახული ორგანიზაცია",
+       "exif-personinimage": "გამოსახული პიროვნება",
+       "exif-originalimageheight": "სურათის სიმაღლე კადრირებამდე",
+       "exif-originalimagewidth": "სურათის სიგანე კადრირებამდე",
+       "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "შეუკუმშავი",
+       "exif-compression-2": "CCITT Group 3, ჰაფმანის სერიის სიგრძის კოდირების 1-განზომილებიანი მოდიფიკაცია",
+       "exif-compression-3": "CCITT Group 3 ფაქსის კოდირება",
+       "exif-compression-4": "CCITT Group 4 ფაქსის კოდირება",
+       "exif-compression-5": "LZW",
+       "exif-compression-6": "JPEG (ძველი)",
+       "exif-compression-7": "JPEG",
+       "exif-compression-8": "Deflate (Adobe)",
+       "exif-compression-32773": "PackBits (Macintosh RLE)",
+       "exif-compression-32946": "Deflate (PKZIP)",
+       "exif-compression-34712": "JPEG2000",
+       "exif-copyrighted-true": "საავტორო უფლებებით დაცული",
+       "exif-copyrighted-false": "საავტორო უფლებები არ არის არჩეული",
+       "exif-photometricinterpretation-1": "შავი და თეთრი (შავი არის 0)",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-unknowndate": "უცნობი თარიღი",
+       "exif-orientation-1": "ნორმალური",
+       "exif-orientation-2": "ჰორიზონტალით აირეკლა",
+       "exif-orientation-3": "180°-ით შებრუნდა",
+       "exif-orientation-4": "აირეკლა ვერტიკალურად",
+       "exif-orientation-5": "შეტრიალებული 90°-ით CCW და ვერტიკალურად აირეკლა",
+       "exif-orientation-6": "მობრუნებულია 90°-ით",
+       "exif-orientation-7": "შეტრიალებულია 90°-ით CW და ვერტიკალურად აირეკლა",
+       "exif-orientation-8": " 90°-ით მობრუნება",
+       "exif-planarconfiguration-1": "ფორმატი «chunky»",
+       "exif-planarconfiguration-2": "ფორმატი «planar»",
+       "exif-xyresolution-i": "$1 dpi",
+       "exif-xyresolution-c": "$1 dpc",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "არაკალიბრირებული",
+       "exif-componentsconfiguration-0": "არ არსებობს",
+       "exif-exposureprogram-0": "უცნობია",
+       "exif-exposureprogram-1": "მანუალური",
+       "exif-exposureprogram-2": "სტანდარტული პროგრამა",
+       "exif-exposureprogram-3": "დიაფრაგმის პრიორიტეტი",
+       "exif-exposureprogram-4": "ჩამკეტის პრიორიტეტი",
+       "exif-exposureprogram-5": "მხატვრული პროგრამა (აქცენტი სიმკვეთრის სიღრმეზე)",
+       "exif-exposureprogram-6": "სპორტული რეჟიმი (ჩამკეტის მაქსიმალური სისწრაფით)",
+       "exif-exposureprogram-7": "პორტრეტის რეჟიმი (მსხვილი პლანებისთვის ფონით ფოკუსის\nგარეშე)",
+       "exif-exposureprogram-8": "პეიზაჟის რეჟიმი (პანორამული ფოტოებისთვის ფონით ფოკუსში)",
+       "exif-subjectdistance-value": "$1 მეტრი",
+       "exif-meteringmode-0": "უცნობი",
+       "exif-meteringmode-1": "საშუალო",
+       "exif-meteringmode-2": "ცენტრულადაწონილი",
+       "exif-meteringmode-3": "წერტილოვანი",
+       "exif-meteringmode-4": "მულტიწერტილოვანი",
+       "exif-meteringmode-5": "მატრიცული",
+       "exif-meteringmode-6": "ნაწილობრივი",
+       "exif-meteringmode-255": "სხვა",
+       "exif-lightsource-0": "უცნობი",
+       "exif-lightsource-1": "დღის სინათლე",
+       "exif-lightsource-2": "დღის სინათლის ლამპა",
+       "exif-lightsource-3": "ნათურა",
+       "exif-lightsource-4": "ფლეში",
+       "exif-lightsource-9": "კარგი ამინდი",
+       "exif-lightsource-10": "მოღრუბლული ამინდი",
+       "exif-lightsource-11": "ჩრდილი",
+       "exif-lightsource-12": "დღის სინათლის ნათურა D (5700 − 7100K)",
+       "exif-lightsource-13": "დღის სინათლის ნათურა N(4600 − 5400K)",
+       "exif-lightsource-14": "დღის სინათლის ნათურა W (3900 − 4500K)",
+       "exif-lightsource-15": "დღის სინათლის ნათურა WW (3200 − 3700K)",
+       "exif-lightsource-17": "სტანდარტული განათება A",
+       "exif-lightsource-18": "სტანდარტული განათება B",
+       "exif-lightsource-19": "სტანდარტული განათება C",
+       "exif-lightsource-24": "სტტუდიური ნათურა  ISO სტანდარტის",
+       "exif-lightsource-255": "განათების სხვა წყარო",
+       "exif-flash-fired-0": "ფლეში არ მუშაობს",
+       "exif-flash-fired-1": "ფლეში მოქმედებს",
+       "exif-flash-return-0": "წინასწარი ფლეშის რეჟიმი გათიშულია",
+       "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-sensingmethod-7": "სამფერიანი ხაზოვანი სენსორი",
+       "exif-sensingmethod-8": "ხაზოვანი სენსორი ფერთა შეცვლით",
+       "exif-filesource-3": "ციფრული ფოტოაპარატი",
+       "exif-scenetype-1": "გამოსახულება გადაღებულია პირდაპირ",
+       "exif-customrendered-0": "სტანდარტული დამუშავება",
+       "exif-customrendered-1": "არასტანდარტული დამუშავება",
+       "exif-exposuremode-0": "ავტომატური ექსპოზიცია",
+       "exif-exposuremode-1": "მანუალური ექსპოზიცია",
+       "exif-exposuremode-2": "ფოტოფირის ექსპონირების მწკრივი (ბრეკეტინგი)",
+       "exif-whitebalance-0": "თეთრის ავტობალანსი",
+       "exif-whitebalance-1": "თეთრის ბალანსის ხელოვნური დაყენება",
+       "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-saturation-0": "ნორმალური",
+       "exif-saturation-1": "მცირე სავსებადობა",
+       "exif-saturation-2": "დიდი სავსებადობა",
+       "exif-sharpness-0": "ნორმალური",
+       "exif-sharpness-1": "სუსტი",
+       "exif-sharpness-2": "ძლიერი",
+       "exif-subjectdistancerange-0": "უცნობი",
+       "exif-subjectdistancerange-1": "მაკროგადაღება",
+       "exif-subjectdistancerange-2": "ახლო მანძილიდან გადაღება",
+       "exif-subjectdistancerange-3": "შორიდან გადაღება",
+       "exif-gpslatitude-n": "ჩრდილოეთი განედი",
+       "exif-gpslatitude-s": "სამხრეთი განედი",
+       "exif-gpslongitude-e": "აღმოსავლეთი განედი",
+       "exif-gpslongitude-w": "დასავლეთი განედი",
+       "exif-gpsaltitude-above-sealevel": "$1 მეტრი ზღვის დონიდან",
+       "exif-gpsaltitude-below-sealevel": "$1 მეტრი ზღვის დონის ქვემოთ",
+       "exif-gpsstatus-a": "ცვლილება დაუსრულებელია",
+       "exif-gpsstatus-v": "მონაცემთა გადაცემისთვის მზადაა",
+       "exif-gpsmeasuremode-2": "2 კოორდინატის ცვლილება",
+       "exif-gpsmeasuremode-3": "3-განზომილებიანი გაზომვა",
+       "exif-gpsspeed-k": "კილომეტრი საათში",
+       "exif-gpsspeed-m": "მილი საათში",
+       "exif-gpsspeed-n": "კვანძები",
+       "exif-gpsdestdistance-k": "კილომეტრი",
+       "exif-gpsdestdistance-m": "მილი",
+       "exif-gpsdestdistance-n": "საზღვაო მილი",
+       "exif-gpsdop-excellent": "შესანიშნავი ($1)",
+       "exif-gpsdop-good": "კარგი ($1)",
+       "exif-gpsdop-moderate": "ზომიერი ($1)",
+       "exif-gpsdop-fair": "საშუალოზე დაბალი ($1)",
+       "exif-gpsdop-poor": "ცუდი ($1)",
+       "exif-objectcycle-a": "მხოლოდ დილით",
+       "exif-objectcycle-p": "მხოლოდ საღამოს",
+       "exif-objectcycle-b": "ორივე დილას და საღამოს",
+       "exif-gpsdirection-t": "ჭეშმარიტი",
+       "exif-gpsdirection-m": "მაგნიტური",
+       "exif-ycbcrpositioning-1": "ცენტრირებული",
+       "exif-ycbcrpositioning-2": "Co-sited",
+       "exif-dc-contributor": "წვლილის შემომტანები",
+       "exif-dc-coverage": "მედიის სივრცული, ან დროებითი ჩარჩოები",
+       "exif-dc-date": "თარიღ(ებ)ი",
+       "exif-dc-publisher": "გამომქვეყნებელი",
+       "exif-dc-relation": "დაკავშირებული მედია",
+       "exif-dc-rights": "უფლებები",
+       "exif-dc-source": "წყაროს მედია",
+       "exif-dc-type": "მედიის ტიპი",
+       "exif-rating-rejected": "უარყოფილია",
+       "exif-isospeedratings-overflow": "65535-ზე მეტი",
+       "exif-maxaperturevalue-value": "$1 APEX (f/$2)",
+       "exif-iimcategory-ace": "ხელოვნება, კულტურა და გართობა",
+       "exif-iimcategory-clj": "დანაშაული და კანონი",
+       "exif-iimcategory-dis": "კატასტროფები და ავარიები",
+       "exif-iimcategory-fin": "ეკონომიკა და ბიზნესი",
+       "exif-iimcategory-edu": "განათლება",
+       "exif-iimcategory-evn": "გარემო",
+       "exif-iimcategory-hth": "ჯანმრთელობა",
+       "exif-iimcategory-hum": "ღირსშესანიშნავი ისტორიები",
+       "exif-iimcategory-lab": "შრომა",
+       "exif-iimcategory-lif": "ცხოვრების წესი და დასვენება",
+       "exif-iimcategory-pol": "პოლიტიკა",
+       "exif-iimcategory-rel": "რელიგია და რწმენა",
+       "exif-iimcategory-sci": "მეცნიერება და ტექნოლოგია",
+       "exif-iimcategory-soi": "სოციალური კითხვები",
+       "exif-iimcategory-spo": "სპორტი",
+       "exif-iimcategory-war": "ომი, კონფლიქტი და არეულობა",
+       "exif-iimcategory-wea": "ამინდი",
+       "exif-urgency-normal": "ნორმალური ($1)",
+       "exif-urgency-low": "დაბალი ($1)",
+       "exif-urgency-high": "მაღალი ($1)",
+       "exif-urgency-other": "მომხმარებლის მიერ განსაზღვრული პრიორიტეტი ($1)"
+}
diff --git a/languages/i18n/exif/kab.json b/languages/i18n/exif/kab.json
new file mode 100644 (file)
index 0000000..1b4a2c5
--- /dev/null
@@ -0,0 +1,346 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Agurzil",
+                       "Mmistmurt"
+               ]
+       },
+       "exif-imagewidth": "Tehri",
+       "exif-imagelength": "Taɣwzi",
+       "exif-bitspersample": "Ibitten s isger",
+       "exif-compression": "Tawsit n asekkusem",
+       "exif-photometricinterpretation": "Talɣa n uferdis n tugna",
+       "exif-orientation": "Taɣda",
+       "exif-samplesperpixel": "Tisegranin s uferdis n tugna",
+       "exif-planarconfiguration": "Aheggi n isefka",
+       "exif-ycbcrsubsampling": "Atug n adu-isefka n ulemmec n Y ar C",
+       "exif-ycbcrpositioning": "Aselfu n Y d C",
+       "exif-xresolution": "Tabadut taglawit",
+       "exif-yresolution": "Tabadut taratakt",
+       "exif-stripoffsets": "Asun n isefka n tugna",
+       "exif-rowsperstrip": "Amḍan n ijerriden s tasfift",
+       "exif-stripbytecounts": "Tiddi n itamḍanen s tasfift",
+       "exif-jpeginterchangeformat": "Ideg n SOI JPEG",
+       "exif-jpeginterchangeformatlength": "Tiddi s itamḍanen n isefka JPEG",
+       "exif-whitepoint": "Tiniskit n uqqa amellal",
+       "exif-primarychromaticities": "Tiniskit n tizwaranin",
+       "exif-ycbcrcoefficients": "Imuskiren YCbCr",
+       "exif-referenceblackwhite": "Azalen n tamselɣut aberkan d umellal",
+       "exif-datetime": "Azmez n ubeddel",
+       "exif-imagedescription": "Aglam n tugna",
+       "exif-make": "Amakras n taweṣṣaft",
+       "exif-model": "Talɣa n taweṣṣaft",
+       "exif-software": "Aseɣẓan yetseqdecen",
+       "exif-artist": "Ameskar",
+       "exif-copyright": "Amli n uzref n umeskar",
+       "exif-exifversion": "Lqem EXIF",
+       "exif-flashpixversion": "Lqem FlashPix",
+       "exif-colorspace": "Tallunt n tiniskit",
+       "exif-componentsconfiguration": "Anamek n yal isger",
+       "exif-compressedbitsperpixel": "Askar n usekkusem n tugna",
+       "exif-pixelxdimension": "Tehri n tugna",
+       "exif-pixelydimension": "Taɣwzi n tugna",
+       "exif-usercomment": "Iwenniten n useqdac",
+       "exif-relatedsoundfile": "Afaylu n eslu yeqqnen",
+       "exif-datetimeoriginal": "Azmez n tuddma tamezwarut",
+       "exif-datetimedigitized": "Azmez n usemḍen",
+       "exif-subsectime": "Azmez n ubeddel",
+       "exif-subsectimeoriginal": "Azmez n tuddma tamezwarut",
+       "exif-subsectimedigitized": "Azmez n usemḍen",
+       "exif-exposuretime": "Akud n timzikent",
+       "exif-exposuretime-format": "$1 tas ($2 tas)",
+       "exif-fnumber": "Alday",
+       "exif-exposureprogram": "Ahil n timzikent",
+       "exif-spectralsensitivity": "Aḥalfu n uylal",
+       "exif-isospeedratings": "Aḥalfu ISO",
+       "exif-shutterspeedvalue": "Azzal n urjal n APEX",
+       "exif-aperturevalue": "Alday n APEX",
+       "exif-brightnessvalue": "Asaddi APEX",
+       "exif-exposurebiasvalue": "Aseɣti n timzikent",
+       "exif-maxaperturevalue": "Alday afellay",
+       "exif-subjectdistance": "Ameccaq n usentel",
+       "exif-meteringmode": "Askar n usket",
+       "exif-lightsource": "Aɣbalu n tafat",
+       "exif-flash": "Lebṛaq",
+       "exif-focallength": "Taɣwzi n usaḍas",
+       "exif-subjectarea": "Asun n usentel",
+       "exif-flashenergy": "Tanezmart n lebṛaq",
+       "exif-focalplanexresolution": "Tabadut taglawit n uɣawas asaḍas",
+       "exif-focalplaneyresolution": "Tabadut taratakt n uɣawas asaḍas",
+       "exif-focalplaneresolutionunit": "Aferdis n tabadut n uɣawas asaḍas",
+       "exif-subjectlocation": "Asideg n usentel",
+       "exif-exposureindex": "Amatar n timzikent",
+       "exif-sensingmethod": "Tawsit n umaṭṭaf",
+       "exif-filesource": "Aɣbal n ufaylu",
+       "exif-scenetype": "Tawsit n usayes",
+       "exif-customrendered": "Agmuḍ asagan",
+       "exif-exposuremode": "askar n timzikent",
+       "exif-whitebalance": "Tisistelt n imellalen",
+       "exif-digitalzoomratio": "Afmiḍi n zoom umḍin",
+       "exif-focallengthin35mmfilm": "Teɣzef n usaḍas i usaru 35 mm",
+       "exif-scenecapturetype": "Tawsit n tuddma n usayes",
+       "exif-gaincontrol": "Aḥkam n urrbeḥ",
+       "exif-contrast": "Amyeẓli",
+       "exif-saturation": "Aserhwu",
+       "exif-sharpness": "Tezdeg",
+       "exif-devicesettingdescription": "Aglam n tawila n allal",
+       "exif-subjectdistancerange": "Ameccaq n tamsalt",
+       "exif-imageuniqueid": "Asulay asuf n tugna",
+       "exif-gpsversionid": "Lqem n ticṛeṭ GPS",
+       "exif-gpslatituderef": "Tamselɣut i tafeltirit",
+       "exif-gpslatitude": "Tafeltirit",
+       "exif-gpslongituderef": "Tamselɣut i tazegrart",
+       "exif-gpslongitude": "Tazegrart",
+       "exif-gpsaltituderef": "Tamselɣut n usawen (0=asawen, 1=talqayt)",
+       "exif-gpsaltitude": "Talqayt",
+       "exif-gpstimestamp": "Asrag GPS (tamasragt tabelkamit)",
+       "exif-gpssatellites": "Igensaten yetseqdacen i akat",
+       "exif-gpsstatus": "Addad n unermas",
+       "exif-gpsmeasuremode": "askar n akat",
+       "exif-gpsdop": "Tiseddi n akat",
+       "exif-gpsspeedref": "Aferdis n tazzla n unermas GPS",
+       "exif-gpsspeed": "Tazzla n unermas GPS",
+       "exif-gpstrackref": "Tamesɣult i tanila n uwliwel",
+       "exif-gpstrack": "Tanila n uwliwel",
+       "exif-gpsimgdirectionref": "Tamesɣult i tanila n tugna",
+       "exif-gpsimgdirection": "Tanila n tugna",
+       "exif-gpsmapdatum": "Anagraw akalɣa yetseqdacen",
+       "exif-gpsdestlatituderef": "Tamesɣult i turrut n userken",
+       "exif-gpsdestlatitude": "Turrut n userken",
+       "exif-gpsdestlongituderef": "Tamesɣult i tazegrart n userken",
+       "exif-gpsdestlongitude": "Tazegrart n userken",
+       "exif-gpsdestbearingref": "Tamesɣult i anker n userken",
+       "exif-gpsdestbearing": "Anker n userken",
+       "exif-gpsdestdistanceref": "Tamesɣult i umeccaq ar userken",
+       "exif-gpsdestdistance": "Ameccaq ar userken",
+       "exif-gpsprocessingmethod": "Isem n tarrayt n usekker n GPS",
+       "exif-gpsareainformation": "Isem n taɣzut GPS",
+       "exif-gpsdatestamp": "Azmez GPS",
+       "exif-gpsdifferential": "Aseɣti aneẓlay GPS",
+       "exif-jpegfilecomment": "Awennit n ufaylu JPEG",
+       "exif-keywords": "Awalen yufraren",
+       "exif-worldregioncreated": "Aẓi n Umaḍal deg anwa tawlaft agi tetwadem",
+       "exif-countrycreated": "Tamurt deg anta tawlaft agi tetwadem",
+       "exif-countrycodecreated": "Angal n tamurt deg anta tawlaft agi tetwadem",
+       "exif-provinceorstatecreated": "Tamnaḍt neɣ Awanak deg anwa tawlaft agi tetwadem",
+       "exif-citycreated": "Tamdint deg anta tawlaft agi tetwadem",
+       "exif-sublocationcreated": "Amur n temdint deg anwa tawlaft agi tetwadem",
+       "exif-worldregiondest": "Timnaḍin n umaḍal yebeqqeḍen",
+       "exif-countrydest": "Timura yebeqqeḍen",
+       "exif-countrycodedest": "Tangalt n tamurt yebeqqeḍen",
+       "exif-provinceorstatedest": "Tamnaṭ naɣ Tamurt yebeqqeḍen",
+       "exif-citydest": "Tamdint yebeqqeḍen",
+       "exif-sublocationdest": "Aḥric n temdint yebeqqeḍen",
+       "exif-objectname": "Azwel amectuḥ",
+       "exif-specialinstructions": "Tinaḍi tusligin",
+       "exif-headline": "Azwel",
+       "exif-credit": "Asmad / imefki",
+       "exif-source": "Aɣbalu",
+       "exif-editstatus": "Aẓayer amaẓrag n tugna",
+       "exif-urgency": "Lḥir",
+       "exif-fixtureidentifier": "Isem n uferdis aslagan",
+       "exif-locationdest": "Amḍiq yebeqqeḍen",
+       "exif-locationdestcode": "Tangalt n umḍiq yebeqqeḍen",
+       "exif-objectcycle": "Taswiɛt n wass i amedia agi yessefra-d",
+       "exif-contact": "Tilɣa n unermis",
+       "exif-writer": "Ameskar",
+       "exif-languagecode": "Tutlayt",
+       "exif-iimversion": "Lqem n IIM",
+       "exif-iimcategory": "Taggayt",
+       "exif-iimsupplementalcategory": "Taggayin timarnanin",
+       "exif-datetimeexpires": "Ur tseqdac ara sakin",
+       "exif-datetimereleased": "Tuffɣa ass n",
+       "exif-originaltransmissionref": "Tangalt n usideg n tuzzna tamezwarut",
+       "exif-identifier": "Asulay",
+       "exif-lens": "Tilintit yetseqdacen",
+       "exif-serialnumber": "Uṭṭun n umazrar n timseknewt",
+       "exif-cameraownername": "Amli n timseknewt",
+       "exif-label": "Aglam",
+       "exif-datetimemetadata": "Azmez n abeddil aneggaru n adferisefka",
+       "exif-nickname": "Isem aralɣawi n tugna",
+       "exif-rating": "Tazmilt (ɣef 5)",
+       "exif-rightscertificate": "Aselkin n usefrek n izerfan",
+       "exif-copyrighted": "Aẓayer n uzref n umeskar",
+       "exif-copyrightowner": "Amaway n uzref n umeskar",
+       "exif-usageterms": "Tawtilt n usseqdec",
+       "exif-webstatement": "Taseɣrut n copyright askar uqqin",
+       "exif-originaldocumentid": "ID awḥid n taftart taneṣlit",
+       "exif-licenseurl": "URL n turagt",
+       "exif-morepermissionsurl": "Tilɣa ɣef turagin timlellayin",
+       "exif-attributionurl": "Deg alsasseqdec n tawuri agi, ilaq ad qqeneḍ ar",
+       "exif-preferredattributionname": "Deg alsasseqdec n tawuri agi, ilaq ad snemmer",
+       "exif-pngfilecomment": "Awennit n ufaylu PNG",
+       "exif-disclaimer": "Ur-tamasit",
+       "exif-contentwarning": "Alɣu ɣef ugbur",
+       "exif-giffilecomment": "Awennit n ufaylu GIF",
+       "exif-intellectualgenre": "Tawsit n uferdis",
+       "exif-subjectnewscode": "Angal n usentel",
+       "exif-scenecode": "Angal n usayes IPTC",
+       "exif-event": "Tadyant yetsnazelen",
+       "exif-organisationinimage": "Tuddsa yetsnazelen",
+       "exif-personinimage": "Aterras yetsnazelen",
+       "exif-originalimageheight": "Tafelleyt n tugna uqbel att ili tetwalssurret",
+       "exif-originalimagewidth": "Tehri n tugna uqbel att ili tetwalssurret",
+       "exif-compression-1": "War asekkusem",
+       "exif-compression-2": "CCITT Agraw 3 Teɣzef n usettengel Huffman yetbeddlen n tasekta 1",
+       "exif-compression-3": "CCITT Agraw 3 asettengel n fax",
+       "exif-compression-4": "CCITT Agraw 4 asettengel n fax",
+       "exif-copyrighted-true": "Ddaw azref n umeskar",
+       "exif-copyrighted-false": "Addad n izerfan n umeskar ur yesbadu ara",
+       "exif-unknowndate": "Azmez warisem",
+       "exif-orientation-1": "Amagnu",
+       "exif-orientation-2": "Tetti s udem aglawan",
+       "exif-orientation-3": "Tezzi s 180°",
+       "exif-orientation-4": "Tetti s udem aratak",
+       "exif-orientation-5": "Tezzi s 90° deg unamek imitti n usrag dɣa tetti s udem aratak",
+       "exif-orientation-6": "Tezzi s 90° deg unamek imitti n usrag",
+       "exif-orientation-7": "Tezzi s 90° deg unamek n usrag dɣa tetti s udem aratak",
+       "exif-orientation-8": "Tezzi s 90° deg unamek n usrag",
+       "exif-planarconfiguration-1": "Isefka iqriben",
+       "exif-planarconfiguration-2": "Isefka ibrarazen",
+       "exif-colorspace-65535": "Ur yezize ara",
+       "exif-componentsconfiguration-0": "Ulac it",
+       "exif-exposureprogram-0": "Ur yersen ara",
+       "exif-exposureprogram-1": "Awfus",
+       "exif-exposureprogram-2": "Ahil alugan",
+       "exif-exposureprogram-3": "Tazwart i ulday",
+       "exif-exposureprogram-4": "Tazwart i uqfel",
+       "exif-exposureprogram-5": "Ahil n usnulfu (azullen i tadrut n urti)",
+       "exif-exposureprogram-6": "Ahil n tigawt (azullen i urured n yqfel)",
+       "exif-exposureprogram-7": "Askar tafrist (i tugniwin s tama dɣa s ugilal iluɣen)",
+       "exif-exposureprogram-8": "Askar agama (i tugniwin n igmaten i llulcen)",
+       "exif-subjectdistance-value": "$1 lmitra",
+       "exif-meteringmode-0": "Warisem",
+       "exif-meteringmode-1": "Alemmas",
+       "exif-meteringmode-2": "Allal amnekna deg agwans",
+       "exif-meteringmode-3": "Asfaw",
+       "exif-meteringmode-4": "Aget-asfaw",
+       "exif-meteringmode-5": "Talɣa",
+       "exif-meteringmode-6": "Aḥric",
+       "exif-meteringmode-255": "Nniḍen",
+       "exif-lightsource-0": "Warisem",
+       "exif-lightsource-1": "Tafukt n ass",
+       "exif-lightsource-2": "Arafaw afliyuṛi",
+       "exif-lightsource-3": "Tungsten (tafat tanesfawt)",
+       "exif-lightsource-4": "Lebṛaq",
+       "exif-lightsource-9": "Akud aceεlal",
+       "exif-lightsource-10": "Akud isignew",
+       "exif-lightsource-11": "Tili",
+       "exif-lightsource-12": "Asfaw afliyuṛi  « tafukt n ass » (D 5700 – 7100 K)",
+       "exif-lightsource-13": "Asfaw afliyuṛi amellal « ass » (N 4600 – 5400 K)",
+       "exif-lightsource-14": "Asfaw afliyuṛi amellal « asemmaḍ » (W 3900 – 4500 K)",
+       "exif-lightsource-15": "Asfaw afliyuṛi amellal (WW 3200 – 3700 K)",
+       "exif-lightsource-17": "Tafat talugent A",
+       "exif-lightsource-18": "Tafat talugent B",
+       "exif-lightsource-19": "Tafat talugent C",
+       "exif-lightsource-24": "Tungsten ISU n usakwen",
+       "exif-lightsource-255": "Aɣbalu nniḍen n tafat",
+       "exif-flash-fired-0": "Lebṛaq ur yendeḥ ara",
+       "exif-flash-fired-1": "Lebṛaq yendeḥ",
+       "exif-flash-return-0": "ula d yiwen n strub ur d-yerra ara tasɣent n tifin",
+       "exif-flash-return-2": "strub ur-d i t-aff ara tafat id yuɣalen",
+       "exif-flash-return-3": "strub yuffad tuqqla n tafat",
+       "exif-flash-mode-1": "Tafat n lebaq yuwren",
+       "exif-flash-mode-2": "Tukksa n lebaq yuwren",
+       "exif-flash-mode-3": "askar awurman",
+       "exif-flash-function-1": "Ulac tasɣent n lebṛaq",
+       "exif-flash-redeye-1": "Tasɣent mgel-allen izeggwaɣen",
+       "exif-focalplaneresolutionunit-2": "Idebbuzen",
+       "exif-sensingmethod-1": "Aranbadu",
+       "exif-sensingmethod-2": "Amaṭṭaf n ini s yiwen aceṛṛun",
+       "exif-sensingmethod-3": "Amaṭṭaf n ini s sin iceṛṛunen",
+       "exif-sensingmethod-4": "Amaṭṭaf n ini s kṛaḍ iceṛṛunen",
+       "exif-sensingmethod-5": "Amaṭṭaf n ini ulkim",
+       "exif-sensingmethod-7": "Amaṭṭaf kṛaḍimzireg",
+       "exif-sensingmethod-8": "Amaṭṭaf n ini imzireg ulkim",
+       "exif-filesource-3": "Taweṣṣaft tumḍint",
+       "exif-scenetype-1": "Tugna n tafarut tusridt",
+       "exif-customrendered-0": "Akala alugen",
+       "exif-customrendered-1": "Akala yesagen",
+       "exif-exposuremode-0": "Awurman",
+       "exif-exposuremode-1": "Awfus",
+       "exif-exposuremode-2": "Tazercet tawurmant",
+       "exif-whitebalance-0": "Awurman",
+       "exif-whitebalance-1": "Awfus",
+       "exif-scenecapturetype-0": "Alugen",
+       "exif-scenecapturetype-1": "Agama",
+       "exif-scenecapturetype-2": "Tafrist",
+       "exif-scenecapturetype-3": "Asayes n iḍ",
+       "exif-gaincontrol-0": "Ulac",
+       "exif-gaincontrol-1": "Rrbeḥ ufrir s ubedlez",
+       "exif-gaincontrol-2": "Rrbeḥ ufrir s aṭas",
+       "exif-gaincontrol-3": "Rrbeḥ uzdir s ubedlez",
+       "exif-gaincontrol-4": "Rrbeḥ uzdir s aṭas",
+       "exif-contrast-0": "Amagnu",
+       "exif-contrast-1": "Abadlaz",
+       "exif-contrast-2": "Aẓayan",
+       "exif-saturation-0": "Amagnu",
+       "exif-saturation-1": "Abadlaz",
+       "exif-saturation-2": "Tameqqṛant",
+       "exif-sharpness-0": "Amagnu",
+       "exif-sharpness-1": "Alegɣan",
+       "exif-sharpness-2": "Aẓayan",
+       "exif-subjectdistancerange-0": "Warisem",
+       "exif-subjectdistancerange-1": "Amɣer",
+       "exif-subjectdistancerange-2": "Imeẓri iqerrben",
+       "exif-subjectdistancerange-3": "Imeẓri ibɛeden",
+       "exif-gpslatitude-n": "Agafa",
+       "exif-gpslatitude-s": "Anẓul",
+       "exif-gpslongitude-e": "Agmuḍ",
+       "exif-gpslongitude-w": "Amalu",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|lmitra}} nnig aswir n ilel",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|lmitra}} ddaw aswir n ilel",
+       "exif-gpsstatus-a": "Akat imir",
+       "exif-gpsstatus-v": "Agertiddit n akat",
+       "exif-gpsmeasuremode-2": "Akat s 2 tisektiwin",
+       "exif-gpsmeasuremode-3": "Akat s 3 tisektiwin",
+       "exif-gpsspeed-k": "Kilometr deg ssaɛa",
+       "exif-gpsspeed-m": "Miles deg usrag",
+       "exif-gpsspeed-n": "Tikerrist",
+       "exif-gpsdestdistance-k": "Ikilumetren",
+       "exif-gpsdestdistance-m": "igimen",
+       "exif-gpsdestdistance-n": "Miles iwlalen",
+       "exif-gpsdop-excellent": "Yufrar ($1)",
+       "exif-gpsdop-good": "Tamellayt ($1)",
+       "exif-gpsdop-moderate": "Tallalt ($1)",
+       "exif-gpsdop-fair": "Attwadag ($1)",
+       "exif-gpsdop-poor": "Yecmet ($1)",
+       "exif-objectcycle-a": "Tanzayt kan",
+       "exif-objectcycle-p": "Tameddit kan",
+       "exif-objectcycle-b": "Tanzayt d tameddit",
+       "exif-gpsdirection-t": "Anamud n tidett",
+       "exif-gpsdirection-m": "Anamud adkiran",
+       "exif-ycbcrpositioning-1": "Agwans",
+       "exif-ycbcrpositioning-2": "Azdi-sideg",
+       "exif-dc-contributor": "Imttekkiyen",
+       "exif-dc-coverage": "Azrag allunan naɣ akudan n umedia",
+       "exif-dc-date": "Azmez",
+       "exif-dc-publisher": "Amaẓrag",
+       "exif-dc-relation": "Imediaten iqqenen",
+       "exif-dc-rights": "Izerfan",
+       "exif-dc-source": "Aɣbalu umedia",
+       "exif-dc-type": "Tawsit n umedia",
+       "exif-rating-rejected": "Yerrad",
+       "exif-isospeedratings-overflow": "Ameqqṛan ugar 65535",
+       "exif-iimcategory-ace": "Tiẓuṛiyin, idles d amzel",
+       "exif-iimcategory-clj": "Anɣa d uṣaḍuf",
+       "exif-iimcategory-dis": "Tiwaɣin d timedriyin",
+       "exif-iimcategory-fin": "Tadamsa d tidyanin",
+       "exif-iimcategory-edu": "Asileɣ",
+       "exif-iimcategory-evn": "Tawennaṭ",
+       "exif-iimcategory-hth": "Tadawsa",
+       "exif-iimcategory-hum": "Aramsu alsi",
+       "exif-iimcategory-lab": "Amahil",
+       "exif-iimcategory-lif": "Askar n tudert dɣa n imezlan",
+       "exif-iimcategory-pol": "Tasertit",
+       "exif-iimcategory-rel": "Ddin d tifelsin",
+       "exif-iimcategory-sci": "Tussna d tatiknulujit",
+       "exif-iimcategory-soi": "Tuttriwin timettiyin",
+       "exif-iimcategory-spo": "Addalen",
+       "exif-iimcategory-war": "Ṭrad, taẓit d tasmessit",
+       "exif-iimcategory-wea": "Tasnignewt",
+       "exif-urgency-normal": "Alugen ($1)",
+       "exif-urgency-low": "Anammum ($1)",
+       "exif-urgency-high": "Afella ($1)",
+       "exif-urgency-other": "Lḥir id yefka amseqdac ($1)"
+}
diff --git a/languages/i18n/exif/kk-arab.json b/languages/i18n/exif/kk-arab.json
new file mode 100644 (file)
index 0000000..8799bca
--- /dev/null
@@ -0,0 +1,214 @@
+{
+       "@metadata": [],
+       "exif-imagewidth": "ەنى",
+       "exif-imagelength": "بىيىكتىگى",
+       "exif-bitspersample": "قۇراش سايىن بىيت سانى",
+       "exif-compression": "قىسىم سۇلباسى",
+       "exif-photometricinterpretation": "نۇكتە قىيىسۋى",
+       "exif-orientation": "مەگزەۋى",
+       "exif-samplesperpixel": "قۇراش سانى",
+       "exif-planarconfiguration": "دەرەك رەتتەۋى",
+       "exif-ycbcrsubsampling": "Y قۇراشىنىڭ C قۇراشىنا جارناقتاۋى",
+       "exif-ycbcrpositioning": "Y قۇراشى جانە C قۇراشى مەكەندەۋى",
+       "exif-xresolution": "دەرەلەي اجىراتىلىمدىعى",
+       "exif-yresolution": "تىرەلەي اجىراتىلىمدىعى",
+       "exif-stripoffsets": "سۋرەت دەرەرەكتەرىنىڭ جايعاسۋى",
+       "exif-rowsperstrip": "بەلدىك سايىن جول سانى",
+       "exif-stripbytecounts": "قىسىمدالعان بەلدىك سايىن بايت سانى",
+       "exif-jpeginterchangeformat": "JPEG SOI دەگەنگە ىعىسۋى",
+       "exif-jpeginterchangeformatlength": "JPEG دەرەكتەرىنىڭ بايت سانى",
+       "exif-whitepoint": "اق نۇكتە تۇستىلىگى",
+       "exif-primarychromaticities": "العى شەپتەگى تۇستىلىكتەرى",
+       "exif-ycbcrcoefficients": "ٴتۇس اياسىن تاسىمالداۋ ماترىيتسالىق ەسەلىكتەرى",
+       "exif-referenceblackwhite": "قارا جانە اق انىقتاۋىش قوس كولەمدەرى",
+       "exif-datetime": "فايلدىڭ وزگەرتىلگەن كۇن-ايى",
+       "exif-imagedescription": "سۋرەت تاقىرىبىن اتى",
+       "exif-make": "كامەرا ٴوندىرۋشىسى",
+       "exif-model": "كامەرا ۇلگىسى",
+       "exif-software": "قولدانىلعان باعدارلامالىق جاساقتاما",
+       "exif-artist": "تۋىندىگەرى",
+       "exif-copyright": "اۋتورلىق قۇقىقتار ىييەسى",
+       "exif-exifversion": "Exif نۇسقاسى",
+       "exif-flashpixversion": "قولدانعان Flashpix نۇسقاسى",
+       "exif-colorspace": "ٴتۇس اياسى",
+       "exif-componentsconfiguration": "ارقايسى قۇراش ٴمانى",
+       "exif-compressedbitsperpixel": "سۋرەت قىسىمداۋ ٴتارتىبى",
+       "exif-pixelxdimension": "سۋرەتتىڭ جارامدى ەنى",
+       "exif-pixelydimension": "سۋرەتتىڭ جارامدى بىيىكتىگى",
+       "exif-usercomment": "قاتىسۋشىنىڭ ماندەمەلەرى",
+       "exif-relatedsoundfile": "قاتىستى دىبىس فايلى",
+       "exif-datetimeoriginal": "جاسالعان كەزى",
+       "exif-datetimedigitized": "ساندىقتاۋ كەزى",
+       "exif-subsectime": "جاسالعان كەزىنىڭ سەكۋند بولشەكتەرى",
+       "exif-subsectimeoriginal": "تۇپنۇسقا كەزىنىڭ سەكۋند بولشەكتەرى",
+       "exif-subsectimedigitized": "ساندىقتاۋ كەزىنىڭ سەكۋند بولشەكتەرى",
+       "exif-exposuretime": "ۇستالىم ۋاقىتى",
+       "exif-exposuretime-format": "$1 س ($2)",
+       "exif-fnumber": "ساڭىلاۋ مولشەرى",
+       "exif-exposureprogram": "ۇستالىم باعدارلاماسى",
+       "exif-spectralsensitivity": "سپەكتر بويىنشا سەزگىشتىگى",
+       "exif-isospeedratings": "ISO جىلدامدىق جارناقتاۋى (جارىق سەزگىشتىگى)",
+       "exif-shutterspeedvalue": "جاپقىش جىلدامدىلىعى",
+       "exif-aperturevalue": "ساڭىلاۋلىق",
+       "exif-brightnessvalue": "جارىقتىلىق",
+       "exif-exposurebiasvalue": "ۇستالىم وتەمى",
+       "exif-maxaperturevalue": "بارىنشا ساڭىلاۋ اشۋى",
+       "exif-subjectdistance": "نىسانا قاشىقتىعى",
+       "exif-meteringmode": "ولشەۋ ٴادىسى",
+       "exif-lightsource": "جارىق كوزى",
+       "exif-flash": "جارقىلداعىش",
+       "exif-focallength": "شوعىرلاۋ الشاقتىعى",
+       "exif-subjectarea": "نىسانا اۋقىمى",
+       "exif-flashenergy": "جارقىلداعىش قارقىنى",
+       "exif-focalplanexresolution": "ح بويىنشا شوعىرلاۋ جايپاقتىقتىڭ اجىراتىلىمدىعى",
+       "exif-focalplaneyresolution": "Y بويىنشا شوعىرلاۋ جايپاقتىقتىڭ اجىراتىلىمدىعى",
+       "exif-focalplaneresolutionunit": "شوعىرلاۋ جايپاقتىقتىڭ اجىراتىلىمدىق ولشەمى",
+       "exif-subjectlocation": "نىسانا ورنالاسۋى",
+       "exif-exposureindex": "ۇستالىم ايقىنداۋى",
+       "exif-sensingmethod": "سەنسوردىڭ ولشەۋ ٴادىسى",
+       "exif-filesource": "فايل قاينارى",
+       "exif-scenetype": "ساحنا ٴتۇرى",
+       "exif-customrendered": "قوسىمشا سۋرەت وڭدەتۋى",
+       "exif-exposuremode": "ۇستالىم ٴتارتىبى",
+       "exif-whitebalance": "اق ٴتۇسىنىڭ تەندەستىگى",
+       "exif-digitalzoomratio": "ساندىق اۋقىمداۋ جارناقتاۋى",
+       "exif-focallengthin35mmfilm": "35 mm تاسپاسىنىڭ شوعىرلاۋ الشاقتىعى",
+       "exif-scenecapturetype": "تۇسىرگەن ساحنا ٴتۇرى",
+       "exif-gaincontrol": "ساحنانى رەتتەۋ",
+       "exif-contrast": "اشىقتىق",
+       "exif-saturation": "قانىقتىق",
+       "exif-sharpness": "ايقىندىق",
+       "exif-devicesettingdescription": "جابدىق باپتاۋ سىيپاتتاماسى",
+       "exif-subjectdistancerange": "ساحنا قاشىقتىعىنىڭ كولەمى",
+       "exif-imageuniqueid": "سۋرەتتىڭ بىرەگەي ٴنومىرى (ID)",
+       "exif-gpsversionid": "GPS بەلگىشەسىنىڭ نۇسقاسى",
+       "exif-gpslatituderef": "سولتۇستىك نەمەسە وڭتۇستىك بويلىعى",
+       "exif-gpslatitude": "بويلىعى",
+       "exif-gpslongituderef": "شىعىس نەمەسە باتىس ەندىگى",
+       "exif-gpslongitude": "ەندىگى",
+       "exif-gpsaltituderef": "بىيىكتىك كورسەتۋى",
+       "exif-gpsaltitude": "بىيىكتىك",
+       "exif-gpstimestamp": "GPS ۋاقىتى (اتوم ساعاتى)",
+       "exif-gpssatellites": "ولشەۋگە پيدالانىلعان جەر سەرىكتەرى",
+       "exif-gpsstatus": "قابىلداعىش كۇيى",
+       "exif-gpsmeasuremode": "ولشەۋ ٴتارتىبى",
+       "exif-gpsdop": "ولشەۋ دالدىگى",
+       "exif-gpsspeedref": "جىلدامدىلىق ولشەمى",
+       "exif-gpsspeed": "GPS قابىلداعىشتىڭ جىلدامدىلىعى",
+       "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": "GPS اۋماعىنىڭ اتاۋى",
+       "exif-gpsdatestamp": "GPS كۇن-ايى",
+       "exif-gpsdifferential": "GPS سارالانعان دۇرىستاۋ",
+       "exif-compression-1": "ۇلعايتىلعان",
+       "exif-unknowndate": "بەلگىسىز كۇن-ايى",
+       "exif-orientation-1": "قالىپتى",
+       "exif-orientation-2": "دەرەلەي شاعىلىسقان",
+       "exif-orientation-3": "180° بۇرىشقا اينالعان",
+       "exif-orientation-4": "تىرەلەي شاعىلىسقان",
+       "exif-orientation-5": "ساعات تىلشەسىنە قارسى 90° بۇرىشقا اينالعان جانە تىرەلەي شاعىلىسقان",
+       "exif-orientation-6": "ساعات تىلشە بويىنشا 90° بۇرىشقا اينالعان",
+       "exif-orientation-7": "ساعات تىلشە بويىنشا 90° بۇرىشقا اينالعان جانە تىرەلەي شاعىلىسقان",
+       "exif-orientation-8": "ساعات تىلشەسىنە قارسى 90° بۇرىشقا اينالعان",
+       "exif-planarconfiguration-1": "تالپاق ٴپىشىم",
+       "exif-planarconfiguration-2": "تايپاق ٴپىشىم",
+       "exif-componentsconfiguration-0": "بار بولمادى",
+       "exif-exposureprogram-0": "انىقتالماعان",
+       "exif-exposureprogram-1": "قولمەن",
+       "exif-exposureprogram-2": "باعدارلامالى ٴادىس (قالىپتى)",
+       "exif-exposureprogram-3": "ساڭىلاۋ باسىڭقىلىعى",
+       "exif-exposureprogram-4": "ىسىرما باسىڭقىلىعى",
+       "exif-exposureprogram-5": "ونەر باعدارلاماسى (انىقتىق تەرەندىگىنە ساناسقان)",
+       "exif-exposureprogram-6": "قىيمىل باعدارلاماسى (جاپقىش شاپشاندىلىعىنا ساناسقان)",
+       "exif-exposureprogram-7": "تىرەلەي ٴادىسى (ارتى شوعىرلاۋسىز تاياۋ تۇسىرمەلەر)",
+       "exif-exposureprogram-8": "دەرەلەي ٴادىسى (ارتى شوعىرلانعان دەرەلەي تۇسىرمەلەر)",
+       "exif-subjectdistance-value": "$1 m",
+       "exif-meteringmode-0": "بەلگىسىز",
+       "exif-meteringmode-1": "بىركەلكى",
+       "exif-meteringmode-2": "بۇلدىر داق",
+       "exif-meteringmode-3": "بىرداقتى",
+       "exif-meteringmode-4": "كوپداقتى",
+       "exif-meteringmode-5": "ورنەكتى",
+       "exif-meteringmode-6": "جىرتىندى",
+       "exif-meteringmode-255": "باسقا",
+       "exif-lightsource-0": "بەلگىسىز",
+       "exif-lightsource-1": "كۇن جارىعى",
+       "exif-lightsource-2": "كۇنجارىقتى شام",
+       "exif-lightsource-3": "قىزدىرعىشتى شام",
+       "exif-lightsource-4": "جارقىلداعىش",
+       "exif-lightsource-9": "اشىق كۇن",
+       "exif-lightsource-10": "بۇلىنعىر كۇن",
+       "exif-lightsource-11": "كولەنكەلى",
+       "exif-lightsource-12": "كۇنجارىقتى شام (D 5700–7100 K)",
+       "exif-lightsource-13": "كۇنجارىقتى شام (N 4600–5400 K)",
+       "exif-lightsource-14": "كۇنجارىقتى شام (W 3900–4500 K)",
+       "exif-lightsource-15": "كۇنجارىقتى شام (WW 3200–3700 K)",
+       "exif-lightsource-17": "قالىپتى جارىق قاينارى A",
+       "exif-lightsource-18": "قالىپتى جارىق قاينارى B",
+       "exif-lightsource-19": "قالىپتى جارىق قاينارى C",
+       "exif-lightsource-24": "ستۋدىييالىق ISO كۇنجارىقتى شام",
+       "exif-lightsource-255": "باسقا جارىق كوزى",
+       "exif-focalplaneresolutionunit-2": "ٴدۇيم",
+       "exif-sensingmethod-1": "انىقتالماعان",
+       "exif-sensingmethod-2": "1-ٴتشىيپتى اۋماقتى تۇسسەزگىش",
+       "exif-sensingmethod-3": "2-ٴتشىيپتى اۋماقتى تۇسسەزگىش",
+       "exif-sensingmethod-4": "3-ٴتشىيپتى اۋماقتى تۇسسەزگىش",
+       "exif-sensingmethod-5": "كەزەكتى اۋماقتى تۇسسەزگىش",
+       "exif-sensingmethod-7": "3-سىزىقتى تۇسسەزگىش",
+       "exif-sensingmethod-8": "كەزەكتى سىزىقتى تۇسسەزگىش",
+       "exif-scenetype-1": "تىكەلەي تۇسىرىلگەن فوتوسۋرەت",
+       "exif-customrendered-0": "قالىپتى وڭدەتۋ",
+       "exif-customrendered-1": "قوسىمشا وڭدەتۋ",
+       "exif-exposuremode-0": "وزدىكتىك ۇستالىمداۋ",
+       "exif-exposuremode-1": "قولمەن ۇستالىمداۋ",
+       "exif-exposuremode-2": "وزدىكتىك جارقىلداۋ",
+       "exif-whitebalance-0": "اق ٴتۇسى وزدىكتىك تەندەستىرىلگەن",
+       "exif-whitebalance-1": "اق ٴتۇسى قولمەن تەندەستىرىلگەن",
+       "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-saturation-0": "قالىپتى",
+       "exif-saturation-1": "تومەن قانىقتى",
+       "exif-saturation-2": "جوعارى قانىقتى",
+       "exif-sharpness-0": "قالىپتى",
+       "exif-sharpness-1": "ۇيان",
+       "exif-sharpness-2": "تۇرپايى",
+       "exif-subjectdistancerange-0": "بەلگىسىز",
+       "exif-subjectdistancerange-1": "تاياۋ تۇسىرىلگەن",
+       "exif-subjectdistancerange-2": "جاقىن تۇسىرىلگەن",
+       "exif-subjectdistancerange-3": "الىس تۇسىرىلگەن",
+       "exif-gpslatitude-n": "سولتۇستىك بويلىعى",
+       "exif-gpslatitude-s": "وڭتۇستىك بويلىعى",
+       "exif-gpslongitude-e": "شىعىس ەندىگى",
+       "exif-gpslongitude-w": "باتىس ەندىگى",
+       "exif-gpsstatus-a": "ولشەۋ ۇلاسۋدا",
+       "exif-gpsstatus-v": "ولشەۋ ٴوزارا ارەكەتتە",
+       "exif-gpsmeasuremode-2": "2-باعىتتىق ولشەم",
+       "exif-gpsmeasuremode-3": "3-باعىتتىق ولشەم",
+       "exif-gpsspeed-k": "km/h",
+       "exif-gpsspeed-m": "mil/h",
+       "exif-gpsspeed-n": "knot",
+       "exif-gpsdirection-t": "شىن باعىت",
+       "exif-gpsdirection-m": "ماگنىيتتى باعىت"
+}
diff --git a/languages/i18n/exif/kk-cyrl.json b/languages/i18n/exif/kk-cyrl.json
new file mode 100644 (file)
index 0000000..ed0f6cc
--- /dev/null
@@ -0,0 +1,345 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Arystanbek"
+               ]
+       },
+       "exif-imagewidth": "Ені",
+       "exif-imagelength": "Биіктігі",
+       "exif-bitspersample": "Құраш сайын бит саны",
+       "exif-compression": "Қысым сұлбасы",
+       "exif-photometricinterpretation": "Нүкте қиысуы",
+       "exif-orientation": "Мегзеуі",
+       "exif-samplesperpixel": "Құраш саны",
+       "exif-planarconfiguration": "Дерек реттеуі",
+       "exif-ycbcrsubsampling": "Y құрашының C құрашына жарнақтауы",
+       "exif-ycbcrpositioning": "Y құрашы және C құрашы мекендеуі",
+       "exif-xresolution": "Дерелей ажыратылымдығы",
+       "exif-yresolution": "Тірелей ажыратылымдығы",
+       "exif-stripoffsets": "Сурет дереректерінің жайғасуы",
+       "exif-rowsperstrip": "Белдік сайын жол саны",
+       "exif-stripbytecounts": "Қысымдалған белдік сайын байт саны",
+       "exif-jpeginterchangeformat": "JPEG SOI дегенге ығысуы",
+       "exif-jpeginterchangeformatlength": "JPEG деректерінің байт саны",
+       "exif-whitepoint": "Ақ нүкте түстілігі",
+       "exif-primarychromaticities": "Алғы шептегі түстіліктері",
+       "exif-ycbcrcoefficients": "Түс аясын тасымалдау матрицалық еселіктері",
+       "exif-referenceblackwhite": "Қара және ақ анықтауыш қос көлемдері",
+       "exif-datetime": "Файлдың өзгертілген күн-айы",
+       "exif-imagedescription": "Сурет тақырыбының аты",
+       "exif-make": "Фотоаппарат өндірушісі",
+       "exif-model": "Фотоаппарат үлгісі",
+       "exif-software": "Қолданылған бағдарламалық жасақтама",
+       "exif-artist": "Авторы",
+       "exif-copyright": "Авторлық құқықтар иесі",
+       "exif-exifversion": "Exif нұсқасы",
+       "exif-flashpixversion": "Қолданған Flashpix нұсқасы",
+       "exif-colorspace": "Түс кеңістігі",
+       "exif-componentsconfiguration": "Әрқайсы құраш мәні",
+       "exif-compressedbitsperpixel": "Сурет қысымдау тәртібі",
+       "exif-pixelxdimension": "Сурет ені",
+       "exif-pixelydimension": "Сурет биіктігі",
+       "exif-usercomment": "Қатысушы пікірі",
+       "exif-relatedsoundfile": "Қатысты дыбыс файлы",
+       "exif-datetimeoriginal": "Жасалған кезі",
+       "exif-datetimedigitized": "Сандықтау кезі",
+       "exif-subsectime": "Жасалған кезінің секунд бөлшектері",
+       "exif-subsectimeoriginal": "Түпнұсқа кезінің секунд бөлшектері",
+       "exif-subsectimedigitized": "Сандықтау кезінің секунд бөлшектері",
+       "exif-exposuretime": "Ұсталым уақыты",
+       "exif-exposuretime-format": "$1 сек ($2)",
+       "exif-fnumber": "Саңылау мөлшері",
+       "exif-exposureprogram": "Ұсталым бағдарламасы",
+       "exif-spectralsensitivity": "Спектр бойынша сезгіштігі",
+       "exif-isospeedratings": "ISO жылдамдық жарнақтауы (жарық сезгіштігі)",
+       "exif-shutterspeedvalue": "APEX жапқыш жылдамдылығы",
+       "exif-aperturevalue": "APEX саңылаулық",
+       "exif-brightnessvalue": "APEX жарықтылық",
+       "exif-exposurebiasvalue": "Ұсталым өтемі",
+       "exif-maxaperturevalue": "Барынша саңылау ашуы",
+       "exif-subjectdistance": "Нысана қашықтығы",
+       "exif-meteringmode": "Өлшеу әдісі",
+       "exif-lightsource": "Жарық көзі",
+       "exif-flash": "Жарқылдағыш",
+       "exif-focallength": "Шоғырлау алшақтығы",
+       "exif-subjectarea": "Нысана ауқымы",
+       "exif-flashenergy": "Жарқылдағыш қарқыны",
+       "exif-focalplanexresolution": "Х бойынша шоғырлау жайпақтықтың ажыратылымдығы",
+       "exif-focalplaneyresolution": "Y бойынша шоғырлау жайпақтықтың ажыратылымдығы",
+       "exif-focalplaneresolutionunit": "Шоғырлау жайпақтықтың ажыратылымдық өлшемі",
+       "exif-subjectlocation": "Нысана орналасуы",
+       "exif-exposureindex": "Ұсталым айқындауы",
+       "exif-sensingmethod": "Сенсордің өлшеу әдісі",
+       "exif-filesource": "Файл қайнары",
+       "exif-scenetype": "Сахна түрі",
+       "exif-customrendered": "Қосымша сурет өңдетуі",
+       "exif-exposuremode": "Ұсталым тәртібі",
+       "exif-whitebalance": "Ақ түсінің тендестігі",
+       "exif-digitalzoomratio": "Сандық ауқымдау жарнақтауы",
+       "exif-focallengthin35mmfilm": "35 mm таспасының шоғырлау алшақтығы",
+       "exif-scenecapturetype": "Түсірген сахна түрі",
+       "exif-gaincontrol": "Сахнаны реттеу",
+       "exif-contrast": "Ашықтық",
+       "exif-saturation": "Қанықтық",
+       "exif-sharpness": "Айқындық",
+       "exif-devicesettingdescription": "Жабдық баптау сипаттамасы",
+       "exif-subjectdistancerange": "Сахна қашықтығының көлемі",
+       "exif-imageuniqueid": "Суреттің бірегей нөмірі (ID)",
+       "exif-gpsversionid": "GPS белгішесінің нұсқасы",
+       "exif-gpslatituderef": "Солтүстік немесе оңтүстік бойлығы",
+       "exif-gpslatitude": "Бойлығы",
+       "exif-gpslongituderef": "Шығыс немесе батыс ендігі",
+       "exif-gpslongitude": "Ендігі",
+       "exif-gpsaltituderef": "Биіктік көрсетуі",
+       "exif-gpsaltitude": "Биіктік",
+       "exif-gpstimestamp": "GPS уақыты (атом сағаты)",
+       "exif-gpssatellites": "Өлшеуге пйдаланылған Жер серіктері",
+       "exif-gpsstatus": "Қабылдағыш күйі",
+       "exif-gpsmeasuremode": "Өлшеу тәртібі",
+       "exif-gpsdop": "Өлшеу дәлдігі",
+       "exif-gpsspeedref": "Жылдамдылық өлшемі",
+       "exif-gpsspeed": "GPS қабылдағыштың жылдамдылығы",
+       "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": "GPS аумағының атауы",
+       "exif-gpsdatestamp": "GPS күн-айы",
+       "exif-gpsdifferential": "GPS сараланған дұрыстау",
+       "exif-jpegfilecomment": "JPEG файл пікірі",
+       "exif-keywords": "Пернетақталар",
+       "exif-worldregioncreated": "Бұл суретте Әлем аймақтары түсірілген",
+       "exif-countrycreated": "Бұл суретте мемлекет түсірілген",
+       "exif-countrycodecreated": "Бұл суретте мемлекет коды түсірілген",
+       "exif-provinceorstatecreated": "Бұл суретте облыс немесе штат түсірілген",
+       "exif-citycreated": "Бұл суретте қала түсірілген",
+       "exif-sublocationcreated": "Бұл суретте қала ауданы түсірілген",
+       "exif-worldregiondest": "Әлем аймақтары көрсетілген",
+       "exif-countrydest": "Мемлекет көрсетілген",
+       "exif-countrycodedest": "Мемлекет коды көрсетілген",
+       "exif-provinceorstatedest": "облыс (провинция) немесе штат көрсетілген",
+       "exif-citydest": "Қала көрсетілген",
+       "exif-sublocationdest": "Қала ауданы көрсетілген",
+       "exif-objectname": "Қысқаша атауы",
+       "exif-specialinstructions": "Арнайы таныстырылымдар",
+       "exif-headline": "Тақырып",
+       "exif-credit": "Қоюшы, суретті қоюшы қатысушы",
+       "exif-source": "Қайнары",
+       "exif-editstatus": "Суреттің өңделмелі статусы",
+       "exif-urgency": "Қауырттық",
+       "exif-fixtureidentifier": "Бейімдеу есімі",
+       "exif-locationdest": "Бейнеленген орын",
+       "exif-locationdestcode": "Бейнеленген орынның коды",
+       "exif-objectcycle": "Медианың жобаланған күндерінің уақыты",
+       "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": "Метадеректерді соңғы рет түрлендірген мерзімі",
+       "exif-nickname": "Суреттің бейресми атауы",
+       "exif-rating": "Рейтинг (бесеуден)",
+       "exif-rightscertificate": "Құқықтар басқару куәлігі",
+       "exif-copyrighted": "Авторлық құқық күйі:",
+       "exif-copyrightowner": "Авторлық құқықтар иесі",
+       "exif-usageterms": "Қолдану шарттары",
+       "exif-webstatement": "Онлайн авторлық құқық туралы есеп",
+       "exif-originaldocumentid": "Алғашқы құжаттың бірегей ID-і",
+       "exif-licenseurl": "Авторлық құқық лицензиясы үшін URL",
+       "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-2": "CCITT Group 3 1-өлшемді түрлендірген Хаффман сериясының ұзындығын кодтау",
+       "exif-compression-3": "CCITT Group 3 факстық кодтау",
+       "exif-compression-4": "CCITT Group 4 факстық кодтау",
+       "exif-copyrighted-true": "Авторлық құқық қорғалған",
+       "exif-copyrighted-false": "Авторлық құқық қорғау статусы орнамаған",
+       "exif-unknowndate": "Белгісіз күн-айы",
+       "exif-orientation-1": "Қалыпты",
+       "exif-orientation-2": "Дерелей шағылысқан",
+       "exif-orientation-3": "180° бұрышқа айналған",
+       "exif-orientation-4": "Тірелей шағылысқан",
+       "exif-orientation-5": "Сағат тілшесіне қарсы 90° бұрышқа айналған және тірелей шағылысқан",
+       "exif-orientation-6": "Сағат тілшесіне қарсы 90° бұрышқа айналған",
+       "exif-orientation-7": "Сағат тілше бойынша 90° бұрышқа айналған және тірелей шағылысқан",
+       "exif-orientation-8": "Сағат тілшесі бойынша 90° бұрышқа айналған",
+       "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-exposureprogram-5": "Өнер бағдарламасы (анықтық терендігіне санасқан)",
+       "exif-exposureprogram-6": "Қимыл бағдарламасы (жапқыш шапшандылығына санасқан)",
+       "exif-exposureprogram-7": "Тірелей әдісі (арты шоғырлаусыз таяу түсірмелер)",
+       "exif-exposureprogram-8": "Дерелей әдісі (арты шоғырланған дерелей түсірмелер)",
+       "exif-subjectdistance-value": "$1 m",
+       "exif-meteringmode-0": "Белгісіз",
+       "exif-meteringmode-1": "Біркелкі",
+       "exif-meteringmode-2": "Бұлдыр дақ",
+       "exif-meteringmode-3": "БірДақты",
+       "exif-meteringmode-4": "КөпДақты",
+       "exif-meteringmode-5": "Өрнекті",
+       "exif-meteringmode-6": "Жыртынды",
+       "exif-meteringmode-255": "Басқа",
+       "exif-lightsource-0": "Белгісіз",
+       "exif-lightsource-1": "Күн жарығы",
+       "exif-lightsource-2": "Күнжарықты шам",
+       "exif-lightsource-3": "Қыздырғышты шам",
+       "exif-lightsource-4": "Жарқылдағыш",
+       "exif-lightsource-9": "Ашық күн",
+       "exif-lightsource-10": "Бұлынғыр күн",
+       "exif-lightsource-11": "Көленкелі",
+       "exif-lightsource-12": "Күнжарықты шам (D 5700–7100 K)",
+       "exif-lightsource-13": "Күнжарықты шам (N 4600–5400 K)",
+       "exif-lightsource-14": "Күнжарықты шам (W 3900–4500 K)",
+       "exif-lightsource-15": "Күнжарықты шам (WW 3200–3700 K)",
+       "exif-lightsource-17": "Қалыпты жарық қайнары A",
+       "exif-lightsource-18": "Қалыпты жарық қайнары B",
+       "exif-lightsource-19": "Қалыпты жарық қайнары C",
+       "exif-lightsource-24": "Студиялық ISO күнжарықты шам",
+       "exif-lightsource-255": "Басқа жарық көзі",
+       "exif-flash-fired-0": "Жарқыл шығарушы жұмыстамады",
+       "exif-flash-fired-1": "Жарқыл шығарушы жұмыстады",
+       "exif-flash-return-0": "Табу функциясына қайтуға жарқыл жоқ",
+       "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": "1-чипті аумақты түссезгіш",
+       "exif-sensingmethod-3": "2-чипті аумақты түссезгіш",
+       "exif-sensingmethod-4": "3-чипті аумақты түссезгіш",
+       "exif-sensingmethod-5": "Кезекті аумақты түссезгіш",
+       "exif-sensingmethod-7": "3-сызықты түссезгіш",
+       "exif-sensingmethod-8": "Кезекті сызықты түссезгіш",
+       "exif-filesource-3": "Сандық камера",
+       "exif-scenetype-1": "Тікелей түсірілген фотосурет",
+       "exif-customrendered-0": "Қалыпты өңдету",
+       "exif-customrendered-1": "Қосымша өңдету",
+       "exif-exposuremode-0": "Өздіктік ұсталымдау",
+       "exif-exposuremode-1": "Қолмен ұсталымдау",
+       "exif-exposuremode-2": "Өздіктік жарқылдау",
+       "exif-whitebalance-0": "Ақ түсі өздіктік тендестірілген",
+       "exif-whitebalance-1": "Ақ түсі қолмен тендестірілген",
+       "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-saturation-0": "Қалыпты",
+       "exif-saturation-1": "Төмен қанықты",
+       "exif-saturation-2": "Жоғары қанықты",
+       "exif-sharpness-0": "Қалыпты",
+       "exif-sharpness-1": "Ұян",
+       "exif-sharpness-2": "Тұрпайы",
+       "exif-subjectdistancerange-0": "Белгісіз",
+       "exif-subjectdistancerange-1": "Таяу түсірілген",
+       "exif-subjectdistancerange-2": "Жақын түсірілген",
+       "exif-subjectdistancerange-3": "Алыс түсірілген",
+       "exif-gpslatitude-n": "Солтүстік бойлығы",
+       "exif-gpslatitude-s": "Оңтүстік бойлығы",
+       "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": "2-бағыттық өлшем",
+       "exif-gpsmeasuremode-3": "3-бағыттық өлшем",
+       "exif-gpsspeed-k": "km/h",
+       "exif-gpsspeed-m": "mil/h",
+       "exif-gpsspeed-n": "knot",
+       "exif-gpsdestdistance-k": "Километр",
+       "exif-gpsdestdistance-m": "Миль",
+       "exif-gpsdestdistance-n": "Табиғи мильдер",
+       "exif-gpsdop-excellent": "($1) керемет",
+       "exif-gpsdop-good": "($1) жақсы",
+       "exif-gpsdop-moderate": "($1) орташа",
+       "exif-gpsdop-fair": "($1) әділ",
+       "exif-gpsdop-poor": "($1) жаман",
+       "exif-objectcycle-a": "Тек таңертең",
+       "exif-objectcycle-p": "Тек кешке",
+       "exif-objectcycle-b": "таңертең және кешке екеуі де",
+       "exif-gpsdirection-t": "Шын бағыт",
+       "exif-gpsdirection-m": "Магнитты бағыт",
+       "exif-ycbcrpositioning-1": "Орталықты",
+       "exif-ycbcrpositioning-2": "Co-sited",
+       "exif-dc-contributor": "Үлескерлер",
+       "exif-dc-coverage": "Медианың кеңістіктік немесе уақытша ауқымы",
+       "exif-dc-date": "Күн(дер)",
+       "exif-dc-publisher": "Жариялаушы",
+       "exif-dc-relation": "Қатысты медиа",
+       "exif-dc-rights": "Құқықтар",
+       "exif-dc-source": "Қайнар медиа",
+       "exif-dc-type": "Медиа түрі",
+       "exif-rating-rejected": "Өшірілген",
+       "exif-isospeedratings-overflow": "65535-нан үлкенірек",
+       "exif-iimcategory-ace": "Өнер, мәдениет және ойын-сауық",
+       "exif-iimcategory-clj": "Қылмыс және заң",
+       "exif-iimcategory-dis": "Апаттар және оқыс оқиғалар",
+       "exif-iimcategory-fin": "Экономика және бизнес",
+       "exif-iimcategory-edu": "Білім",
+       "exif-iimcategory-evn": "Қоршаған орта",
+       "exif-iimcategory-hth": "Денсаулық",
+       "exif-iimcategory-hum": "Адам қызығушылығы",
+       "exif-iimcategory-lab": "Еңбек",
+       "exif-iimcategory-lif": "Өмір салты және демалыс",
+       "exif-iimcategory-pol": "Саясат",
+       "exif-iimcategory-rel": "Дін және сенім",
+       "exif-iimcategory-sci": "Ғылым және технология",
+       "exif-iimcategory-soi": "Әлеуметтік мәселелер",
+       "exif-iimcategory-spo": "Спорт",
+       "exif-iimcategory-war": "Соғыс, қақтығыс және бүлік",
+       "exif-iimcategory-wea": "Ауа райы",
+       "exif-urgency-normal": "Қалыпты ($1)",
+       "exif-urgency-low": "Төмен ($1)",
+       "exif-urgency-high": "Жоғары ($1)",
+       "exif-urgency-other": "Қатысушының анықталған артықшылығы ($1)"
+}
diff --git a/languages/i18n/exif/kk-latn.json b/languages/i18n/exif/kk-latn.json
new file mode 100644 (file)
index 0000000..f117e9f
--- /dev/null
@@ -0,0 +1,214 @@
+{
+       "@metadata": [],
+       "exif-imagewidth": "Eni",
+       "exif-imagelength": "Bïiktigi",
+       "exif-bitspersample": "Quraş saýın bït sanı",
+       "exif-compression": "Qısım sulbası",
+       "exif-photometricinterpretation": "Nükte qïıswı",
+       "exif-orientation": "Megzewi",
+       "exif-samplesperpixel": "Quraş sanı",
+       "exif-planarconfiguration": "Derek rettewi",
+       "exif-ycbcrsubsampling": "Y quraşınıñ C quraşına jarnaqtawı",
+       "exif-ycbcrpositioning": "Y quraşı jäne C quraşı mekendewi",
+       "exif-xresolution": "Dereleý ajıratılımdığı",
+       "exif-yresolution": "Tireleý ajıratılımdığı",
+       "exif-stripoffsets": "Swret dererekteriniñ jaýğaswı",
+       "exif-rowsperstrip": "Beldik saýın jol sanı",
+       "exif-stripbytecounts": "Qısımdalğan beldik saýın baýt sanı",
+       "exif-jpeginterchangeformat": "JPEG SOI degenge ığıswı",
+       "exif-jpeginterchangeformatlength": "JPEG derekteriniñ baýt sanı",
+       "exif-whitepoint": "Aq nükte tüstiligi",
+       "exif-primarychromaticities": "Alğı şeptegi tüstilikteri",
+       "exif-ycbcrcoefficients": "Tüs ayasın tasımaldaw matrïcalıq eselikteri",
+       "exif-referenceblackwhite": "Qara jäne aq anıqtawış qos kolemderi",
+       "exif-datetime": "Faýldıñ özgertilgen kün-aýı",
+       "exif-imagedescription": "Swret taqırıbın atı",
+       "exif-make": "Kamera öndirwşisi",
+       "exif-model": "Kamera ülgisi",
+       "exif-software": "Qoldanılğan bağdarlamalıq jasaqtama",
+       "exif-artist": "Twındıgeri",
+       "exif-copyright": "Awtorlıq quqıqtar ïesi",
+       "exif-exifversion": "Exif nusqası",
+       "exif-flashpixversion": "Qoldanğan Flashpix nusqası",
+       "exif-colorspace": "Tüs ayası",
+       "exif-componentsconfiguration": "Ärqaýsı quraş mäni",
+       "exif-compressedbitsperpixel": "Swret qısımdaw tärtibi",
+       "exif-pixelxdimension": "Swrettiñ jaramdı eni",
+       "exif-pixelydimension": "Swrettiñ jaramdı bïiktigi",
+       "exif-usercomment": "Qatıswşınıñ mändemeleri",
+       "exif-relatedsoundfile": "Qatıstı dıbıs faýlı",
+       "exif-datetimeoriginal": "Jasalğan kezi",
+       "exif-datetimedigitized": "Sandıqtaw kezi",
+       "exif-subsectime": "Jasalğan keziniñ sekwnd bölşekteri",
+       "exif-subsectimeoriginal": "Tüpnusqa keziniñ sekwnd bölşekteri",
+       "exif-subsectimedigitized": "Sandıqtaw keziniñ sekwnd bölşekteri",
+       "exif-exposuretime": "Ustalım waqıtı",
+       "exif-exposuretime-format": "$1 s ($2)",
+       "exif-fnumber": "Sañılaw mölşeri",
+       "exif-exposureprogram": "Ustalım bağdarlaması",
+       "exif-spectralsensitivity": "Spektr boýınşa sezgiştigi",
+       "exif-isospeedratings": "ISO jıldamdıq jarnaqtawı (jarıq sezgiştigi)",
+       "exif-shutterspeedvalue": "Japqış jıldamdılığı",
+       "exif-aperturevalue": "Sañılawlıq",
+       "exif-brightnessvalue": "Jarıqtılıq",
+       "exif-exposurebiasvalue": "Ustalım ötemi",
+       "exif-maxaperturevalue": "Barınşa sañılaw aşwı",
+       "exif-subjectdistance": "Nısana qaşıqtığı",
+       "exif-meteringmode": "Ölşew ädisi",
+       "exif-lightsource": "Jarıq közi",
+       "exif-flash": "Jarqıldağış",
+       "exif-focallength": "Şoğırlaw alşaqtığı",
+       "exif-subjectarea": "Nısana awqımı",
+       "exif-flashenergy": "Jarqıldağış qarqını",
+       "exif-focalplanexresolution": "X boýınşa şoğırlaw jaýpaqtıqtıñ ajıratılımdığı",
+       "exif-focalplaneyresolution": "Y boýınşa şoğırlaw jaýpaqtıqtıñ ajıratılımdığı",
+       "exif-focalplaneresolutionunit": "Şoğırlaw jaýpaqtıqtıñ ajıratılımdıq ölşemi",
+       "exif-subjectlocation": "Nısana ornalaswı",
+       "exif-exposureindex": "Ustalım aýqındawı",
+       "exif-sensingmethod": "Sensordiñ ölşew ädisi",
+       "exif-filesource": "Faýl qaýnarı",
+       "exif-scenetype": "Saxna türi",
+       "exif-customrendered": "Qosımşa swret öñdetwi",
+       "exif-exposuremode": "Ustalım tärtibi",
+       "exif-whitebalance": "Aq tüsiniñ tendestigi",
+       "exif-digitalzoomratio": "Sandıq awqımdaw jarnaqtawı",
+       "exif-focallengthin35mmfilm": "35 mm taspasınıñ şoğırlaw alşaqtığı",
+       "exif-scenecapturetype": "Tüsirgen saxna türi",
+       "exif-gaincontrol": "Saxnanı rettew",
+       "exif-contrast": "Aşıqtıq",
+       "exif-saturation": "Qanıqtıq",
+       "exif-sharpness": "Aýqındıq",
+       "exif-devicesettingdescription": "Jabdıq baptaw sïpattaması",
+       "exif-subjectdistancerange": "Saxna qaşıqtığınıñ kölemi",
+       "exif-imageuniqueid": "Swrettiñ biregeý nömiri (ID)",
+       "exif-gpsversionid": "GPS belgişesiniñ nusqası",
+       "exif-gpslatituderef": "Soltüstik nemese Oñtüstik boýlığı",
+       "exif-gpslatitude": "Boýlığı",
+       "exif-gpslongituderef": "Şığıs nemese Batıs endigi",
+       "exif-gpslongitude": "Endigi",
+       "exif-gpsaltituderef": "Bïiktik körsetwi",
+       "exif-gpsaltitude": "Bïiktik",
+       "exif-gpstimestamp": "GPS waqıtı (atom sağatı)",
+       "exif-gpssatellites": "Ölşewge pýdalanılğan Jer serikteri",
+       "exif-gpsstatus": "Qabıldağış küýi",
+       "exif-gpsmeasuremode": "Ölşew tärtibi",
+       "exif-gpsdop": "Ölşew däldigi",
+       "exif-gpsspeedref": "Jıldamdılıq ölşemi",
+       "exif-gpsspeed": "GPS qabıldağıştıñ jıldamdılığı",
+       "exif-gpstrackref": "Qozğalıs bağıtın körsetwi",
+       "exif-gpstrack": "Qozğalıs bağıtı",
+       "exif-gpsimgdirectionref": "Swret bağıtın körsetwi",
+       "exif-gpsimgdirection": "Swret bağıtı",
+       "exif-gpsmapdatum": "Paýdalanılğan geodezïyalıq tüsirme derekteri",
+       "exif-gpsdestlatituderef": "Nısana boýlığın körsetwi",
+       "exif-gpsdestlatitude": "Nısana boýlığı",
+       "exif-gpsdestlongituderef": "Nısana endigin körsetwi",
+       "exif-gpsdestlongitude": "Nısana endigi",
+       "exif-gpsdestbearingref": "Nısana azïmwtın körsetwi",
+       "exif-gpsdestbearing": "Nısana azïmwtı",
+       "exif-gpsdestdistanceref": "Nısana qaşıqtığın körsetwi",
+       "exif-gpsdestdistance": "Nısana qaşıqtığı",
+       "exif-gpsprocessingmethod": "GPS öñdetw ädisiniñ atawı",
+       "exif-gpsareainformation": "GPS awmağınıñ atawı",
+       "exif-gpsdatestamp": "GPS kün-aýı",
+       "exif-gpsdifferential": "GPS saralanğan durıstaw",
+       "exif-compression-1": "Ulğaýtılğan",
+       "exif-unknowndate": "Belgisiz kün-aýı",
+       "exif-orientation-1": "Qalıptı",
+       "exif-orientation-2": "Dereleý şağılısqan",
+       "exif-orientation-3": "180° burışqa aýnalğan",
+       "exif-orientation-4": "Tireleý şağılısqan",
+       "exif-orientation-5": "Sağat tilşesine qarsı 90° burışqa aýnalğan jäne tireleý şağılısqan",
+       "exif-orientation-6": "Sağat tilşe boýınşa 90° burışqa aýnalğan",
+       "exif-orientation-7": "Sağat tilşe boýınşa 90° burışqa aýnalğan jäne tireleý şağılısqan",
+       "exif-orientation-8": "Sağat tilşesine qarsı 90° burışqa aýnalğan",
+       "exif-planarconfiguration-1": "talpaq pişim",
+       "exif-planarconfiguration-2": "taýpaq pişim",
+       "exif-componentsconfiguration-0": "bar bolmadı",
+       "exif-exposureprogram-0": "Anıqtalmağan",
+       "exif-exposureprogram-1": "Qolmen",
+       "exif-exposureprogram-2": "Bağdarlamalı ädis (qalıptı)",
+       "exif-exposureprogram-3": "Sañılaw basıñqılığı",
+       "exif-exposureprogram-4": "Isırma basıñqılığı",
+       "exif-exposureprogram-5": "Öner bağdarlaması (anıqtıq terendigine sanasqan)",
+       "exif-exposureprogram-6": "Qïmıl bağdarlaması (japqış şapşandılığına sanasqan)",
+       "exif-exposureprogram-7": "Tireleý ädisi (artı şoğırlawsız tayaw tüsirmeler)",
+       "exif-exposureprogram-8": "Dereleý ädisi (artı şoğırlanğan dereleý tüsirmeler)",
+       "exif-subjectdistance-value": "$1 m",
+       "exif-meteringmode-0": "Belgisiz",
+       "exif-meteringmode-1": "Birkelki",
+       "exif-meteringmode-2": "Buldır daq",
+       "exif-meteringmode-3": "BirDaqtı",
+       "exif-meteringmode-4": "KöpDaqtı",
+       "exif-meteringmode-5": "Örnekti",
+       "exif-meteringmode-6": "Jırtındı",
+       "exif-meteringmode-255": "Basqa",
+       "exif-lightsource-0": "Belgisiz",
+       "exif-lightsource-1": "Kün jarığı",
+       "exif-lightsource-2": "Künjarıqtı şam",
+       "exif-lightsource-3": "Qızdırğıştı şam",
+       "exif-lightsource-4": "Jarqıldağış",
+       "exif-lightsource-9": "Aşıq kün",
+       "exif-lightsource-10": "Bulınğır kün",
+       "exif-lightsource-11": "Kölenkeli",
+       "exif-lightsource-12": "Künjarıqtı şam (D 5700–7100 K)",
+       "exif-lightsource-13": "Künjarıqtı şam (N 4600–5400 K)",
+       "exif-lightsource-14": "Künjarıqtı şam (W 3900–4500 K)",
+       "exif-lightsource-15": "Künjarıqtı şam (WW 3200–3700 K)",
+       "exif-lightsource-17": "Qalıptı jarıq qaýnarı A",
+       "exif-lightsource-18": "Qalıptı jarıq qaýnarı B",
+       "exif-lightsource-19": "Qalıptı jarıq qaýnarı C",
+       "exif-lightsource-24": "Stwdïyalıq ISO künjarıqtı şam",
+       "exif-lightsource-255": "Basqa jarıq közi",
+       "exif-focalplaneresolutionunit-2": "düým",
+       "exif-sensingmethod-1": "Anıqtalmağan",
+       "exif-sensingmethod-2": "1-çïpti awmaqtı tüssezgiş",
+       "exif-sensingmethod-3": "2-çïpti awmaqtı tüssezgiş",
+       "exif-sensingmethod-4": "3-çïpti awmaqtı tüssezgiş",
+       "exif-sensingmethod-5": "Kezekti awmaqtı tüssezgiş",
+       "exif-sensingmethod-7": "3-sızıqtı tüssezgiş",
+       "exif-sensingmethod-8": "Kezekti sızıqtı tüssezgiş",
+       "exif-scenetype-1": "Tikeleý tüsirilgen fotoswret",
+       "exif-customrendered-0": "Qalıptı öñdetw",
+       "exif-customrendered-1": "Qosımşa öñdetw",
+       "exif-exposuremode-0": "Özdiktik ustalımdaw",
+       "exif-exposuremode-1": "Qolmen ustalımdaw",
+       "exif-exposuremode-2": "Özdiktik jarqıldaw",
+       "exif-whitebalance-0": "Aq tüsi özdiktik tendestirilgen",
+       "exif-whitebalance-1": "Aq tüsi qolmen tendestirilgen",
+       "exif-scenecapturetype-0": "Qalıptalğan",
+       "exif-scenecapturetype-1": "Dereleý",
+       "exif-scenecapturetype-2": "Tireleý",
+       "exif-scenecapturetype-3": "Tüngi saxna",
+       "exif-gaincontrol-0": "Joq",
+       "exif-gaincontrol-1": "Tömen zorayw",
+       "exif-gaincontrol-2": "Joğarı zorayw",
+       "exif-gaincontrol-3": "Tömen bayawlaw",
+       "exif-gaincontrol-4": "Joğarı bayawlaw",
+       "exif-contrast-0": "Qalıptı",
+       "exif-contrast-1": "Uyan",
+       "exif-contrast-2": "Turpaýı",
+       "exif-saturation-0": "Qalıptı",
+       "exif-saturation-1": "Tömen qanıqtı",
+       "exif-saturation-2": "Joğarı qanıqtı",
+       "exif-sharpness-0": "Qalıptı",
+       "exif-sharpness-1": "Uyan",
+       "exif-sharpness-2": "Turpaýı",
+       "exif-subjectdistancerange-0": "Belgisiz",
+       "exif-subjectdistancerange-1": "Tayaw tüsirilgen",
+       "exif-subjectdistancerange-2": "Jaqın tüsirilgen",
+       "exif-subjectdistancerange-3": "Alıs tüsirilgen",
+       "exif-gpslatitude-n": "Soltüstik boýlığı",
+       "exif-gpslatitude-s": "Oñtüstik boýlığı",
+       "exif-gpslongitude-e": "Şığıs endigi",
+       "exif-gpslongitude-w": "Batıs endigi",
+       "exif-gpsstatus-a": "Ölşew ulaswda",
+       "exif-gpsstatus-v": "Ölşew özara ärekette",
+       "exif-gpsmeasuremode-2": "2-bağıttıq ölşem",
+       "exif-gpsmeasuremode-3": "3-bağıttıq ölşem",
+       "exif-gpsspeed-k": "km/h",
+       "exif-gpsspeed-m": "mil/h",
+       "exif-gpsspeed-n": "knot",
+       "exif-gpsdirection-t": "Şın bağıt",
+       "exif-gpsdirection-m": "Magnïttı bağıt"
+}
diff --git a/languages/i18n/exif/km.json b/languages/i18n/exif/km.json
new file mode 100644 (file)
index 0000000..ad249c3
--- /dev/null
@@ -0,0 +1,227 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Chhorran",
+                       "Lovekhmer",
+                       "Sovichet",
+                       "T-Rithy",
+                       "Thearith",
+                       "គីមស៊្រុន",
+                       "វ័ណថារិទ្ធ"
+               ]
+       },
+       "exif-imagewidth": "ទទឹង",
+       "exif-imagelength": "កម្ពស់",
+       "exif-bitspersample": "",
+       "exif-orientation": "ទិស",
+       "exif-planarconfiguration": "ការរៀបចំទិន្នន័យ",
+       "exif-xresolution": "ភាពម៉ត់ផ្ដេក",
+       "exif-yresolution": "ភាពម៉ត់បញ្ឈរ​",
+       "exif-stripoffsets": "ទីតាំងទិន្នន័យរូបភាព",
+       "exif-jpeginterchangeformatlength": "ទំហំជាបៃនៃទិន្នន័យJPEG",
+       "exif-datetime": "កាលបរិច្ឆេទ​និង​ពេលវេលា​នៃ​ការផ្លាស់ប្តូរ​​ឯកសារ",
+       "exif-imagedescription": "ចំណងជើងរូបភាព",
+       "exif-make": "ក្រុមហ៊ុនផលិតកាមេរ៉ា",
+       "exif-model": "ម៉ូដែលកាមេរ៉ា",
+       "exif-software": "ផ្នែកទន់​ត្រូវបា​ន​ប្រើប្រាស់",
+       "exif-artist": "អ្នកនិពន្ធ",
+       "exif-copyright": "ម្ចាស់កម្មសិទ្ធិ",
+       "exif-exifversion": "កំណែ នៃ Exif",
+       "exif-flashpixversion": "បានគាំទ្រ កំណែ Flashpix",
+       "exif-colorspace": "លំហពណ៌",
+       "exif-compressedbitsperpixel": "កម្រិតហាប់ នៃរូបភាព (ប៊ិត/ចំណុច)",
+       "exif-pixelxdimension": "ទទឹងរូបភាព",
+       "exif-pixelydimension": "កម្ពស់រូបភាព",
+       "exif-usercomment": "យោបល់របស់អ្នកប្រើប្រាស់",
+       "exif-relatedsoundfile": "ឯកសារសំឡេងពាក់ព័ន្ធ",
+       "exif-datetimeoriginal": "ពេលវេលានិងកាលបរិច្ឆេទបង្កើតទិន្នន័យ",
+       "exif-datetimedigitized": "ពេលវេលានិងការបរិច្ឆេទធ្វើជាឌីជីថល",
+       "exif-exposuretime-format": "$1វិនាទី($2)",
+       "exif-fnumber": "លេខ F (F Number)",
+       "exif-shutterspeedvalue": "ល្បឿន Shutter APEX (Shutter speed)",
+       "exif-aperturevalue": "អាប៉ាឆឺ​ APEX (Aperture)",
+       "exif-brightnessvalue": "ពន្លឺ APEX",
+       "exif-lightsource": "ប្រភពពន្លឺ",
+       "exif-flash": "បញ្ចេញពន្លឺ",
+       "exif-focallength": "ប្រវែង​កំនុំ​ឡង់ទី",
+       "exif-flashenergy": "ថាមពល​បញ្ចេញពន្លឺ",
+       "exif-filesource": "ប្រភពឯកសារ",
+       "exif-scenetype": "ប្រភេទ​នៃ​ទិដ្ឋភាព​",
+       "exif-whitebalance": "តុល្យភាពនៃ​​ពណ៌​ស​ (White Balance)",
+       "exif-contrast": "កម្រិតពណ៌",
+       "exif-saturation": "តិត្ថិភាព",
+       "exif-gpslatituderef": "រយៈទទឹង​ខាងជើងឬខាងត្បូង",
+       "exif-gpslatitude": "រយៈទទឹង",
+       "exif-gpslongituderef": "រយៈបណ្ដោយ​ខាងកើតឬខាងលិច",
+       "exif-gpslongitude": "រយៈបណ្តោយ",
+       "exif-gpsaltituderef": "តំរុយរយៈកម្ពស់",
+       "exif-gpsaltitude": "រយៈកម្ពស់",
+       "exif-gpstimestamp": "ពេល GPS (នាឡិកាអាតូមិច)",
+       "exif-gpssatellites": "ផ្កាយរណបដែលប្រើសំរាប់វាស់វែង",
+       "exif-gpsstatus": "ស្ថានភាពរបស់ម៉ាស៊ីនទទួលសញ្ញា",
+       "exif-gpsmeasuremode": "ម៉ូដវាស់វែល",
+       "exif-gpsspeedref": "ខ្នាតល្បឿន",
+       "exif-gpsspeed": "ល្បឿន​នៃ​ឧបករណ៍​ទទួល​​ GPS",
+       "exif-gpstrackref": "ឯកសារ​យោង​ ទិស​នៃ​ចលនា​",
+       "exif-gpstrack": "ទិស​នៃ​ចលនា​",
+       "exif-gpsimgdirectionref": "ឯកសារ​យោង​ ទិស​នៃ​រូបភាព​",
+       "exif-gpsimgdirection": "ទិស​នៃ​រូបភាព​",
+       "exif-gpsdestlatituderef": "ឯកសារ​យោង​នៃ​រយៈទទឹង​នៃ​គោលដៅ​",
+       "exif-gpsdestlatitude": "រយៈទទឹង​នៃ​គោលដៅ​",
+       "exif-gpsdestlongituderef": "ឯកសារ​យោង​សម្រាប់​រយៈបណ្ដោយ​​នៃ​គោលដៅ​",
+       "exif-gpsdestlongitude": "រយៈបណ្ដោយ​​នៃ​គោលដៅ​",
+       "exif-gpsdestdistance": "ចម្ងាយ​ទៅ​គោលដៅ",
+       "exif-gpsareainformation": "ឈ្មោះ នៃ តំបន់ GPS",
+       "exif-gpsdatestamp": "កាលបរិច្ឆេទ GPS",
+       "exif-keywords": "ពាក្យគន្លឹះ​",
+       "exif-worldregioncreated": "តំបន់នៅលើផែនដីដែលរូបនេះត្រូវបានថត",
+       "exif-countrycreated": "ប្រទេសដែលរូបនេះត្រូវបានថត",
+       "exif-countrycodecreated": "លេខកូដប្រទេសដែលរូបនេះត្រូវបានថត",
+       "exif-provinceorstatecreated": "ខេត្តឬរដ្ឋដែលរូបនេះត្រូវបានថត",
+       "exif-citycreated": "ទីក្រុងដែលរូបនេះត្រូវបានថត",
+       "exif-sublocationcreated": "ឈ្មោះសង្កាត់របស់ទីក្រុងដែលរួបនេះត្រូវបានថត",
+       "exif-worldregiondest": "តំបន់លើពិភពលោកដែលត្រូវបង្ហាញ",
+       "exif-countrydest": "ប្រទេសដែលត្រូវបង្ហាញ",
+       "exif-countrycodedest": "លេខកូដសំរាប់ប្រទេសដែលត្រូវបង្ហាញ",
+       "exif-provinceorstatedest": "ខេត្តឬរដ្ឋដែលត្រូវបង្ហាញ",
+       "exif-citydest": "ទីក្រុងដែលត្រូវបង្ហាញ",
+       "exif-sublocationdest": "សង្កាត់របស់ទីក្រុងដែលត្រូវបង្ហាញ",
+       "exif-objectname": "ចំណងជើងខ្លី",
+       "exif-specialinstructions": "ការណែនាំពិសេស",
+       "exif-headline": "ចំណងជើងធំ",
+       "exif-credit": "អ្នកផ្ដល់",
+       "exif-source": "ប្រភព",
+       "exif-contact": "ព័ត៌មានសំរាប់ធ្វើការទាក់ទង",
+       "exif-writer": "អ្នកសរសេរ",
+       "exif-languagecode": "ភាសា​",
+       "exif-iimcategory": "ចំណាត់ថ្នាក់ក្រុម",
+       "exif-iimsupplementalcategory": "ចំណាត់ថ្នាក់ក្រុមបំពេញ",
+       "exif-datetimeexpires": "កុំប្រើបន្ទាប់ពី",
+       "exif-datetimereleased": "ចេញផ្សាយនៅ",
+       "exif-lens": "ឡង់ទីដែលបានប្រើ",
+       "exif-cameraownername": "ម្ចាស់កាមេរ៉ា",
+       "exif-label": "ផ្លាក",
+       "exif-rating": "រង្វាយតំលៃ (ធំបំផុត ៥)",
+       "exif-rightscertificate": "លិខិត្របញ្ជាក់ការគ្រប់គ្រងកម្មសិទ្ធបញ្ញា",
+       "exif-copyrighted": "ស្ថានភាពកម្មសិទ្ធបញ្ញា",
+       "exif-copyrightowner": "ម្ចាស់កម្មសិទ្ធិបញ្ញា",
+       "exif-usageterms": "លក្ខខណ្ឌប្រើប្រាស់",
+       "exif-webstatement": "សេចក្ដីប្រកាសកម្មសិទ្ធបញ្ញាលើអ៊ីនធើណិត",
+       "exif-licenseurl": "URL សម្រាប់​អាជ្ញាបណ្ណ​កម្មសិទ្ធិ​បញ្ញា",
+       "exif-morepermissionsurl": "ព័ត៌មាន​អាជ្ញាបណ្ណ​ជំនួស",
+       "exif-attributionurl": "នៅពេលកែច្នៃស្នាដៃនេះយកទៅប្រើ សូមដាក់តំណភ្ជាប់ទៅ",
+       "exif-preferredattributionname": "នៅពេលកែច្នៃស្នាដៃនេះយកទៅប្រើ សូមថ្លែងអំណរគុណដល់ម្ចាស់ដើម",
+       "exif-pngfilecomment": "វិចារលើឯកសារ PNG",
+       "exif-disclaimer": "ការបដិសេធ",
+       "exif-contentwarning": "ការព្រមានអំពីខ្លឹមសារ",
+       "exif-giffilecomment": "វិចារលើឯកសារ GIF",
+       "exif-intellectualgenre": "ប្រភេទរបស់",
+       "exif-originalimageheight": "កំពស់របស់រូបភាពមុនពេលកាត់តំរឹម",
+       "exif-originalimagewidth": "ទទឹងរបស់រូបភាពមុនពេលកាត់តំរឹម",
+       "exif-compression-1": "លែងបានបង្ហាប់",
+       "exif-copyrighted-true": "រក្សាសិទ្ឋ",
+       "exif-copyrighted-false": "ស្ថានភាពរក្សាសិទ្ធិមិនទាន់កំណត់",
+       "exif-unknowndate": "មិនដឹងកាលបរិច្ឆេទ",
+       "exif-orientation-1": "ធម្មតា",
+       "exif-orientation-2": "ផ្កាប់​ផ្ដេក​",
+       "exif-orientation-3": "ត្រូវបាន​បង្វិល 180°",
+       "exif-orientation-4": "ផ្កាប់​បញ្ឈរ​",
+       "exif-orientation-5": "បង្វិល​ 90° បញ្ច្រាស់​ទ្រនិច​នាឡិកា​ រូច​ហើយ​ផ្កាប់​បញ្ឈរ​",
+       "exif-orientation-6": "បានបង្វិល 90° តាមទិសទ្រនិចនាឡិកា",
+       "exif-orientation-7": "បង្វិល​ 90° ស្រប​ទ្រនិច​នាឡិកា​ រូច​ហើយ​ផ្កាប់​បញ្ឈរ​",
+       "exif-orientation-8": "បានបង្វិល 90° ច្រាស់ទិសទ្រនិចនាឡិកា",
+       "exif-componentsconfiguration-0": "មិនមាន",
+       "exif-exposureprogram-0": "មិនត្រូវបានកំណត់",
+       "exif-exposureprogram-1": "ដោយដៃ",
+       "exif-subjectdistance-value": "$1ម៉ែត្រ",
+       "exif-meteringmode-0": "មិនបានស្គាល់",
+       "exif-meteringmode-1": "មធ្យម",
+       "exif-meteringmode-255": "ផ្សេង",
+       "exif-lightsource-0": "មិនដឹង",
+       "exif-lightsource-1": "ពន្លឺថ្ងៃ",
+       "exif-lightsource-2": "អំពូលម៉ែត",
+       "exif-lightsource-3": "អំពូលតឹងស្តែន (ចង្កៀងរង្គុំ)",
+       "exif-lightsource-4": "បញ្ចេញពន្លឺ",
+       "exif-lightsource-9": "ធាតុអាកាសស្រឡះល្អ",
+       "exif-lightsource-10": "អាកាស​ធាតុ​​មាន​ពពក​ច្រើន​",
+       "exif-lightsource-11": "ម្លប់​",
+       "exif-lightsource-17": "ពន្លឺ​ស្តង់​ដារ​ A",
+       "exif-lightsource-18": "ពន្លឺ​ស្តង់​ដារ​ B",
+       "exif-lightsource-19": "ពន្លឺ​ស្តង់​ដារ​ C",
+       "exif-lightsource-255": "ប្រភពពន្លឺដទៃ",
+       "exif-flash-fired-0": "ពន្លឺ​ហ្វេស​(Flash) អត់​ភ្លឺ​",
+       "exif-flash-fired-1": "ពន្លឺ​ហ្វេស​(Flash) ភ្លឺ​",
+       "exif-flash-mode-3": "ម៉ូដ​ហ្វ្លាស់​ ស្វ័យ​ប្រវត្តិ​ (auto mode)",
+       "exif-flash-function-1": "មុខ​ងារ​អត់​មាន​ពន្លឺ​ហ្វេស​(No flash function)",
+       "exif-flash-redeye-1": "ម៉ូដ​ហ្វ្លាស់​ ​កាត់​បន្ថយ​ភ្នែក​ក្រហម​(red-eye reduction)",
+       "exif-focalplaneresolutionunit-2": "អ៊ិន្ឈ៍",
+       "exif-sensingmethod-1": "មិនត្រូវបានកំណត់",
+       "exif-customrendered-0": "ដំឡើរ​ការ​ធម្មតា​",
+       "exif-customrendered-1": "ដំឡើរ​ការ​ Custom",
+       "exif-whitebalance-0": "តុល្យភាព​ពណ៌ស​ដោយ​ស្វ័យ​ប្រវត្តិ (Auto white balance)",
+       "exif-whitebalance-1": "តុល្យភាព​ពណ៌ស​ដោយ​ខ្លួន​ឯង​ (Manual white balance)",
+       "exif-scenecapturetype-0": "ស្តង់ដារ",
+       "exif-scenecapturetype-1": "រូបផ្តេក",
+       "exif-scenecapturetype-2": "រូបបញ្ឈរ",
+       "exif-scenecapturetype-3": "ទិដ្ឋភាព​ពេលរាត្រី​",
+       "exif-gaincontrol-0": "ទទេ",
+       "exif-contrast-0": "ធម្មតា",
+       "exif-contrast-1": "ស្រទន់",
+       "exif-contrast-2": "ធ្ងន់",
+       "exif-saturation-0": "ធម្មតា",
+       "exif-sharpness-0": "ធម្មតា",
+       "exif-sharpness-1": "ស្រទន់",
+       "exif-sharpness-2": "ធ្ងន់",
+       "exif-subjectdistancerange-0": "មិនដឹង",
+       "exif-subjectdistancerange-1": "ម៉ាក្រូ",
+       "exif-subjectdistancerange-2": "បិទការមើល",
+       "exif-subjectdistancerange-3": "ទិដ្ឋភាព​ពីចម្ងាយ​",
+       "exif-gpslatitude-n": "ខាងជើង",
+       "exif-gpslatitude-s": "ខាងត្បូង",
+       "exif-gpslongitude-e": "ខាងកើត",
+       "exif-gpslongitude-w": "ខាងលិច",
+       "exif-gpsspeed-k": "គីឡូម៉ែត្រក្នុងមួយម៉ោង",
+       "exif-gpsspeed-m": "ម៉ាយល៍ក្នុងមួយម៉ោង",
+       "exif-gpsspeed-n": "ណុត",
+       "exif-gpsdestdistance-k": "គីឡូម៉ែត្រ",
+       "exif-gpsdestdistance-m": "ម៉ាយល៍",
+       "exif-gpsdop-excellent": "ល្អណាស់ ($1)",
+       "exif-gpsdop-good": "ល្អ ($1)",
+       "exif-gpsdop-moderate": "ល្អបង្គួរ ($1)",
+       "exif-gpsdop-fair": "មធ្យម ($1)",
+       "exif-gpsdop-poor": "អន់ ($1)",
+       "exif-objectcycle-a": "តែពេលព្រឹកប៉ុណ្ណោះ",
+       "exif-objectcycle-p": "តែពេលល្ងាចប៉ុណ្ណោះ",
+       "exif-objectcycle-b": "ទាំងពេលព្រឹកនិងពេលល្ងាច",
+       "exif-gpsdirection-t": "ខាងជើងពិត",
+       "exif-gpsdirection-m": "ខាងជើងម៉ាញេទិក",
+       "exif-dc-date": "កាលបរិច្ឆេទ",
+       "exif-dc-publisher": "ក្រុមហ៊ុនផ្សព្វផ្យាយ",
+       "exif-dc-relation": "មេឌាទាក់ទិន",
+       "exif-dc-rights": "កម្មសិទ្ធិបញ្ញា",
+       "exif-dc-source": "ប្រភពមេឌា",
+       "exif-dc-type": "ប្រភេទមេឌា",
+       "exif-rating-rejected": "ច្រានចោល",
+       "exif-isospeedratings-overflow": "ធំជាង 65535",
+       "exif-iimcategory-ace": "សិល្បៈ វប្បធម៌និងការកំសាន្ត",
+       "exif-iimcategory-clj": "ឧក្រិដកម្មនិងច្បាប់",
+       "exif-iimcategory-dis": "គ្រោះមហន្តរាយនិងគ្រោះថ្នាក់",
+       "exif-iimcategory-fin": "សេដ្ឋកិច្ចនិងពាណិជ្ជកម្ម",
+       "exif-iimcategory-edu": "ការអប់រំ",
+       "exif-iimcategory-evn": "បរិស្ថាន",
+       "exif-iimcategory-hth": "សុខភាព",
+       "exif-iimcategory-hum": "ចំណាប់អារម្មណ៍របស់មនុស្សជាតិ",
+       "exif-iimcategory-lab": "ពលកម្ម",
+       "exif-iimcategory-lif": "ជីវភាពរស់នៅនិងការលំហែកាយ",
+       "exif-iimcategory-pol": "នយោបាយ",
+       "exif-iimcategory-rel": "ជំនឿនិងសាសនា",
+       "exif-iimcategory-sci": "វិទ្យាសាស្ត្រនិងបច្ចេកវិទ្យា",
+       "exif-iimcategory-soi": "បញ្ហាសង្គម",
+       "exif-iimcategory-spo": "កីឡា",
+       "exif-iimcategory-war": "សង្គ្រាម ជំលោះនិងអស្ថេរភាព",
+       "exif-iimcategory-wea": "អាកាសធាតុ",
+       "exif-urgency-normal": "ធម្មតា ($1)",
+       "exif-urgency-low": "ទាប ($1)",
+       "exif-urgency-high": "ខ្ពស់ ($1)",
+       "exif-urgency-other": "តាមការកំណត់របស់អ្នកប្រើប្រាស់ ($1)"
+}
diff --git a/languages/i18n/exif/kn.json b/languages/i18n/exif/kn.json
new file mode 100644 (file)
index 0000000..c813f1a
--- /dev/null
@@ -0,0 +1,89 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ananth subray",
+                       "Nayvik",
+                       "Omshivaprakash",
+                       "Shushruth",
+                       "VASANTH S.N."
+               ]
+       },
+       "exif-imagewidth": "ಅಗಲ",
+       "exif-imagelength": "ಎತ್ತರ",
+       "exif-bitspersample": "ಪ್ರತಿ ಭಾಗಕ್ಕಿರುವ ಬಿಟ್‍ಗಳು",
+       "exif-compression": "ಕುಗ್ಗಿಸಲು ಉಪಯೋಗಿಸಿರುವ ಪ್ರಕಾರ",
+       "exif-photometricinterpretation": "ಚಿತ್ರಬಿಂದು ರಚನೆ",
+       "exif-orientation": "ದೃಷ್ಟಿಕೋನ",
+       "exif-ycbcrpositioning": "Y ಮತ್ತು C ಸ್ಥಾನ",
+       "exif-datetime": "ಫೈಲು ಬದಲಾದ ದಿನಾಂಕ ಮತ್ತು ಕಾಲ",
+       "exif-imagedescription": "ಚಿತ್ರದ ಶೀರ್ಷಿಕೆ",
+       "exif-make": "ಕ್ಯಾಮೆರಾದ ತಯಾರಕರು",
+       "exif-model": "ಕ್ಯಾಮೆರಾ ಮಾದರಿ",
+       "exif-software": "ಉಪಯೋಗಿಸಲ್ಪಟ್ಟ ತಂತ್ರಾಂಶ",
+       "exif-artist": "ಕರ್ತೃ",
+       "exif-copyright": "ಕೃತಿಸ್ವಾಮ್ಯತೆಯನ್ನು ಹೊಂದಿರುವವರು",
+       "exif-exifversion": "Exif ಆವೃತ್ತಿ",
+       "exif-colorspace": "ರಂಗ ವಿಸ್ತಾರ",
+       "exif-pixelxdimension": "ಭಾವಚಿತ್ರದ ಅಗಲ",
+       "exif-pixelydimension": "ಭಾವಚಿತ್ರದ ಎತ್ತರ",
+       "exif-usercomment": "ಬಳಕೆದಾರನ ಟಿಪ್ಪಣಿ",
+       "exif-relatedsoundfile": "ಸಂಬಂಧಿತ ಧ್ವನಿ ಫೈಲು",
+       "exif-datetimeoriginal": "ಮಾಹಿತಿ ಸೃಷ್ಟಿಯಾದ ದಿನಾಂಕ ಮತ್ತು ಕಾಲ",
+       "exif-datetimedigitized": "ಗಣಕೀಕರಣದ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ",
+       "exif-exposuretime-format": "$1 ಕ್ಷಣ ($2)",
+       "exif-fnumber": "F ಸಂಖ್ಯೆ",
+       "exif-brightnessvalue": "ಪ್ರಕಾಶತೆ",
+       "exif-lightsource": "ಬೆಳಕಿನ ಮೂಲ",
+       "exif-flash": "ಫ್ಲಾಶ್",
+       "exif-filesource": "ಫೈಲಿನ ಮೂಲ",
+       "exif-gpslatituderef": "ಉತ್ತರ ಅಥವಾ ದಕ್ಷಿಣ ಅಕ್ಷಾಂಶ",
+       "exif-gpslatitude": "ಅಕ್ಷಾಂಶ",
+       "exif-gpslongituderef": "ಪೂರ್ವ ಅಥವಾ ಪಶ್ಚಿಮ ರೇಖಾಂಶ",
+       "exif-gpslongitude": "ರೇಖಾಂಶ",
+       "exif-gpsaltitude": "ಎತ್ತರ",
+       "exif-gpstimestamp": "GPS ಕಾಲ (ಅಣು ಗಡಿಯಾರ)",
+       "exif-gpssatellites": "ಅಳತೆಗೆ ಉಪಯೋಗಿಸಲಾದ ಉಪಗ್ರಹಗಳು",
+       "exif-gpsmeasuremode": "ಅಳತೆಯ ವಿಧ",
+       "exif-gpsspeedref": "ವೇಗದ ಘಟಕ",
+       "exif-gpsareainformation": "GPS ಪ್ರದೇಶದ ಹೆಸರು",
+       "exif-gpsdatestamp": "GPS ದಿನಾಂಕ",
+       "exif-keywords": "ಪ್ರಮುಖ ಪದಗಳು",
+       "exif-source": "ಆಕರ",
+       "exif-languagecode": "ಭಾಷೆ",
+       "exif-iimcategory": "ವರ್ಗ",
+       "exif-label": "ಗುರುತು ಪಟ್ಟಿ",
+       "exif-copyrighted": "ಕೃತಿಸ್ವಾಮ್ಯತೆಯ ಸ್ಥಿತಿ",
+       "exif-copyrightowner": "ಕೃತಿಸ್ವಾಮ್ಯತೆಯನ್ನು ಹೊಂದಿರುವವರು",
+       "exif-unknowndate": "ದಿನಾಂಕ ತಿಳಿದಿಲ್ಲ",
+       "exif-orientation-1": "ಸಾಧಾರಣ",
+       "exif-orientation-3": "180° ತಿರುಗಿಸಲ್ಪಟ್ಟಿದೆ",
+       "exif-componentsconfiguration-0": "ಅಸ್ಥಿತ್ವದಲ್ಲಿ ಇಲ್ಲ",
+       "exif-meteringmode-0": "ತಿಳಿದಿಲ್ಲ",
+       "exif-meteringmode-1": "ಸರಾಸರಿ",
+       "exif-meteringmode-5": "ವಿನ್ಯಾಸ",
+       "exif-meteringmode-255": "ಇತರ",
+       "exif-lightsource-0": "ತಿಳಿದಿಲ್ಲ",
+       "exif-lightsource-1": "ದಿನದ ಬೆಳಕು",
+       "exif-lightsource-3": "ಟಂಗ್ಸ್ಟನ್ (ಪ್ರಕಾಶಮಾನ ಬೆಳಕು)",
+       "exif-lightsource-4": "ಫ್ಲಾಶ್",
+       "exif-lightsource-11": "ನೆರಳು",
+       "exif-lightsource-17": "ನಿರ್ದಿಷ್ಟ ಬೆಳಕು A",
+       "exif-lightsource-18": "ನಿರ್ದಿಷ್ಟ ಬೆಳಕು B",
+       "exif-lightsource-19": "ನಿರ್ದಿಷ್ಟ ಬೆಳಕು C",
+       "exif-lightsource-255": "ಇತರೆ ಬೆಳಕಿನ ಮೂಲ",
+       "exif-focalplaneresolutionunit-2": "ಇಂಚುಗಳು",
+       "exif-scenetype-1": "ನೇರವಾಗಿ ಛಾಯಾಚಿತ್ರಣಗೊಂಡ ಒಂದು ಚಿತ್ರ",
+       "exif-gaincontrol-0": "ಯಾವುದೂ ಇಲ್ಲ",
+       "exif-gpslatitude-n": "ಉತ್ತರ ಆಕಾಂಕ್ಷ",
+       "exif-gpslatitude-s": "ದಕ್ಷಿಣ ಅಕ್ಷಾಂಶ",
+       "exif-gpslongitude-e": "ಪೂರ್ವ ರೇಖಾಂಶ",
+       "exif-gpslongitude-w": "ಪಶ್ಚಿಮ ರೇಖಾಂಶ",
+       "exif-gpsstatus-a": "ಅಳತೆ ಪ್ರಗತಿಯಲ್ಲಿದೆ",
+       "exif-gpsmeasuremode-2": "೨-ಆಯಾಮಗಳಲ್ಲಿ ಅಳತೆ",
+       "exif-gpsmeasuremode-3": "೩-ಆಯಾಮಗಳಲ್ಲಿ ಅಳತೆ",
+       "exif-gpsspeed-k": "ಪ್ರತಿ ಗಂಟೆಗೆ ಕಿಲೊಮೀಟರ್‍ಗಳು",
+       "exif-gpsspeed-m": "ಪ್ರತಿ ಗಂಟೆಗೆ ಮೈಲಿಗಳು",
+       "exif-gpsspeed-n": "ಕ್ನಾಟ್‍ಗಳು",
+       "exif-gpsdirection-t": "ನಿಜ ದಿಕ್ಕು",
+       "exif-gpsdirection-m": "ಆಯಸ್ಕಾಂತೀಯ ದಿಕ್ಕು"
+}
diff --git a/languages/i18n/exif/ko.json b/languages/i18n/exif/ko.json
new file mode 100644 (file)
index 0000000..8b02c4a
--- /dev/null
@@ -0,0 +1,363 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Cwt96",
+                       "Freebiekr",
+                       "Gapo",
+                       "Klutzy",
+                       "Kwj2772",
+                       "Mooozi",
+                       "아라"
+               ]
+       },
+       "exif-imagewidth": "너비",
+       "exif-imagelength": "높이",
+       "exif-bitspersample": "픽셀당 비트 수",
+       "exif-compression": "압축 방식",
+       "exif-photometricinterpretation": "픽셀 배열",
+       "exif-orientation": "방향",
+       "exif-samplesperpixel": "화소 수",
+       "exif-planarconfiguration": "데이터 정렬 방식",
+       "exif-ycbcrsubsampling": "Y와 C의 축소 비율",
+       "exif-ycbcrpositioning": "Y와 C 위치",
+       "exif-xresolution": "수평 해상도",
+       "exif-yresolution": "수직 해상도",
+       "exif-stripoffsets": "그림 데이터 위치",
+       "exif-rowsperstrip": "스트립당 행의 수",
+       "exif-stripbytecounts": "압축된 스트립당 바이트 수",
+       "exif-jpeginterchangeformat": "JPEG SOI와의 차이",
+       "exif-jpeginterchangeformatlength": "JPEG 데이터 바이트 수",
+       "exif-whitepoint": "화이트 포인트 색도",
+       "exif-primarychromaticities": "색도의 우선 색",
+       "exif-ycbcrcoefficients": "색 공간 변환 표 계수",
+       "exif-referenceblackwhite": "흑백 값에 대한 정보",
+       "exif-datetime": "파일이 바뀐 날짜와 시간",
+       "exif-imagedescription": "그림 제목",
+       "exif-make": "카메라 제조사",
+       "exif-model": "카메라 모델",
+       "exif-software": "사용한 소프트웨어",
+       "exif-artist": "저작자",
+       "exif-copyright": "저작권자",
+       "exif-exifversion": "Exif 버전",
+       "exif-flashpixversion": "지원하는 플래시픽스 버전",
+       "exif-colorspace": "색 공간",
+       "exif-componentsconfiguration": "각 구성 요소의 의미",
+       "exif-compressedbitsperpixel": "그림 압축 방식",
+       "exif-pixelxdimension": "그림 너비",
+       "exif-pixelydimension": "그림 높이",
+       "exif-usercomment": "사용자 주",
+       "exif-relatedsoundfile": "관련된 오디오 파일",
+       "exif-datetimeoriginal": "날짜와 시간",
+       "exif-datetimedigitized": "날짜와 시간(디지털 데이터)",
+       "exif-subsectime": "파일을 수정한 날짜와 시간 (초단위 미만)",
+       "exif-subsectimeoriginal": "파일을 만든 날짜와 시간 (초단위 미만)",
+       "exif-subsectimedigitized": "디지털화된 날짜와 시간 (초단위 미만)",
+       "exif-exposuretime": "노출 시간",
+       "exif-exposuretime-format": "$1초 ($2)",
+       "exif-fnumber": "F 번호",
+       "exif-exposureprogram": "노출 프로그램",
+       "exif-spectralsensitivity": "스펙트럼 감도",
+       "exif-isospeedratings": "ISO 속도",
+       "exif-shutterspeedvalue": "APEX 셔터 속도",
+       "exif-aperturevalue": "APEX 조리개",
+       "exif-brightnessvalue": "APEX 밝기",
+       "exif-exposurebiasvalue": "노출 보정값",
+       "exif-maxaperturevalue": "최대 조리개 값 (최소 F 값)",
+       "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": "화이트 밸런스",
+       "exif-digitalzoomratio": "디지털 줌 비율",
+       "exif-focallengthin35mmfilm": "35 mm 필름에서의 초점 거리",
+       "exif-scenecapturetype": "장면 포착 방식",
+       "exif-gaincontrol": "장면 제어",
+       "exif-contrast": "대비",
+       "exif-saturation": "채도",
+       "exif-sharpness": "선명도",
+       "exif-devicesettingdescription": "장치 설정에 대한 설명",
+       "exif-subjectdistancerange": "대상과의 거리 범위",
+       "exif-imageuniqueid": "그림 고유 ID",
+       "exif-gpsversionid": "GPS 태그 버전",
+       "exif-gpslatituderef": "북위 또는 남위",
+       "exif-gpslatitude": "위도",
+       "exif-gpslongituderef": "동경 또는 서경",
+       "exif-gpslongitude": "경도",
+       "exif-gpsaltituderef": "고도 정보",
+       "exif-gpsaltitude": "고도",
+       "exif-gpstimestamp": "GPS 시간 (원자 시계)",
+       "exif-gpssatellites": "측정에 사용된 위성",
+       "exif-gpsstatus": "수신기 상태",
+       "exif-gpsmeasuremode": "측정 방식",
+       "exif-gpsdop": "측정 정확도",
+       "exif-gpsspeedref": "속도 단위",
+       "exif-gpsspeed": "GPS 수신기 속도",
+       "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": "GPS 구역 이름",
+       "exif-gpsdatestamp": "GPS 날짜",
+       "exif-gpsdifferential": "GPS 차이 보정",
+       "exif-jpegfilecomment": "JPEG 파일 주석",
+       "exif-keywords": "핵심 단어",
+       "exif-worldregioncreated": "사진을 촬영한 곳의 대륙/지역",
+       "exif-countrycreated": "사진을 촬영한 곳의 국가",
+       "exif-countrycodecreated": "사진을 촬영한 곳의 국가 ISO 코드",
+       "exif-provinceorstatecreated": "사진을 촬영한 지역(주/도 단위)",
+       "exif-citycreated": "사진을 촬영한 지역(시/군 단위)",
+       "exif-sublocationcreated": "사진을 촬영한 곳의 세부 지역",
+       "exif-worldregiondest": "사진 속 대륙/지역",
+       "exif-countrydest": "사진 속 국가",
+       "exif-countrycodedest": "사진 속 국가의 ISO 코드",
+       "exif-provinceorstatedest": "사진 속 지역(주/도 단위)",
+       "exif-citydest": "사진 속 지역(시/군 단위)",
+       "exif-sublocationdest": "사진 속 세부 지역",
+       "exif-objectname": "짧은 제목",
+       "exif-specialinstructions": "사진 이용에 대한 특이 사항",
+       "exif-headline": "표제어",
+       "exif-credit": "기여자/제공자",
+       "exif-source": "출처",
+       "exif-editstatus": "그림의 편집/구성",
+       "exif-urgency": "긴급",
+       "exif-fixtureidentifier": "고정 이름",
+       "exif-locationdest": "장소",
+       "exif-locationdestcode": "장소의 위치 코드(ISO, XSP 등)",
+       "exif-objectcycle": "미디어 파일이 의도하는 시간대",
+       "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": "메타데이터가 마지막으로 수정된 날짜",
+       "exif-nickname": "그림의 비공식적 이름",
+       "exif-rating": "평가 (5점 만점)",
+       "exif-rightscertificate": "권리 관리 인증서",
+       "exif-copyrighted": "저작권 정보",
+       "exif-copyrightowner": "저작권자",
+       "exif-usageterms": "이용 조건",
+       "exif-webstatement": "온라인 저작권 선언",
+       "exif-originaldocumentid": "원본 문서의 고유 ID",
+       "exif-licenseurl": "저작권 라이선스의 URL",
+       "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-2": "CCITT 그룹-3 1차원 수정 허프먼 반복 길이 부호화",
+       "exif-compression-3": "CCITT 그룹-3 팩스 인코딩",
+       "exif-compression-4": "CCITT 그룹-4 팩스 인코딩",
+       "exif-compression-6": "JPEG (오래됨)",
+       "exif-compression-8": "수축 (Adobe)",
+       "exif-compression-32773": "PackBits (Macintosh RLE)",
+       "exif-compression-32946": "수축 (PKZIP)",
+       "exif-copyrighted-true": "저작권의 보호를 받음",
+       "exif-copyrighted-false": "저작권 상태를 설정하지 않음",
+       "exif-photometricinterpretation-0": "흑백 (백은 0)",
+       "exif-photometricinterpretation-1": "검은색과 흰색 (검은색이 0)",
+       "exif-photometricinterpretation-3": "팔레트",
+       "exif-photometricinterpretation-4": "투명 마스크",
+       "exif-photometricinterpretation-5": "분리 (아마도 CMYK)",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (ICC 인코딩)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (ITU 인코딩)",
+       "exif-photometricinterpretation-32803": "컬러 필터 어레이",
+       "exif-unknowndate": "날짜를 알 수 없음",
+       "exif-orientation-1": "일반",
+       "exif-orientation-2": "수평으로 뒤집음",
+       "exif-orientation-3": "180° 회전됨",
+       "exif-orientation-4": "수직으로 뒤집음",
+       "exif-orientation-5": "시계 반대 방향으로 90° 회전하고 수직으로 뒤집음",
+       "exif-orientation-6": "반시계 방향으로 90° 회전함",
+       "exif-orientation-7": "시계 방향으로 90° 회전하고 수직으로 뒤집음",
+       "exif-orientation-8": "시계 방향으로 90° 회전됨",
+       "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-exposureprogram-5": "크리에이티브 프로그램 (피사계 심도 우선)",
+       "exif-exposureprogram-6": "액션 프로그램 (빠른 셔터 속도에 치중)",
+       "exif-exposureprogram-7": "인물 사진 모드 (배경을 초점 밖으로 해서 대상을 강조)",
+       "exif-exposureprogram-8": "풍경 모드 (초점이 배경인 풍경 사진용)",
+       "exif-subjectdistance-value": "$1 미터",
+       "exif-meteringmode-0": "알 수 없음",
+       "exif-meteringmode-1": "평균 측광",
+       "exif-meteringmode-2": "중앙 중점 평균 측광",
+       "exif-meteringmode-3": "스팟 측광",
+       "exif-meteringmode-4": "멀티스팟 측광",
+       "exif-meteringmode-5": "평가 측광",
+       "exif-meteringmode-6": "부분",
+       "exif-meteringmode-255": "기타",
+       "exif-lightsource-0": "알 수 없음",
+       "exif-lightsource-1": "태양광",
+       "exif-lightsource-2": "형광등",
+       "exif-lightsource-3": "텅스텐 (백열광)",
+       "exif-lightsource-4": "플래시",
+       "exif-lightsource-9": "맑은 날씨",
+       "exif-lightsource-10": "흐린 날씨",
+       "exif-lightsource-11": "그늘",
+       "exif-lightsource-12": "주광색 형광등 (D 5700 – 7100K)",
+       "exif-lightsource-13": "주백색 형광등 (N 4600 – 5400K)",
+       "exif-lightsource-14": "냉백색 형광등 (W 3900 – 4500K)",
+       "exif-lightsource-15": "백색 형광등 (WW 3200 – 3700K)",
+       "exif-lightsource-17": "표준 A",
+       "exif-lightsource-18": "표준 B",
+       "exif-lightsource-19": "표준 C",
+       "exif-lightsource-24": "ISO 스튜디오 백열광",
+       "exif-lightsource-255": "다른 광원",
+       "exif-flash-fired-0": "플래시가 터지지 않음",
+       "exif-flash-fired-1": "플래시 터짐",
+       "exif-flash-return-0": "플래시 반사광 감지 기능을 사용하지 않음",
+       "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": "1칩 색 공간 센서",
+       "exif-sensingmethod-3": "2칩 색 공간 센서",
+       "exif-sensingmethod-4": "3칩 색 공간 센서",
+       "exif-sensingmethod-5": "순차적 색 공간 센서",
+       "exif-sensingmethod-7": "3선 센서",
+       "exif-sensingmethod-8": "순차적 색 공간 선형 센서",
+       "exif-filesource-3": "디지털 정지 카메라",
+       "exif-scenetype-1": "직접 촬영한 그림",
+       "exif-customrendered-0": "일반",
+       "exif-customrendered-1": "사용자 지정 처리",
+       "exif-exposuremode-0": "자동 노출",
+       "exif-exposuremode-1": "수동 노출",
+       "exif-exposuremode-2": "자동 노출 브래킷",
+       "exif-whitebalance-0": "자동 화이트 밸런스",
+       "exif-whitebalance-1": "수동 화이트 밸런스",
+       "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-saturation-0": "보통",
+       "exif-saturation-1": "저채도",
+       "exif-saturation-2": "고채도",
+       "exif-sharpness-0": "보통",
+       "exif-sharpness-1": "부드러움",
+       "exif-sharpness-2": "강함",
+       "exif-subjectdistancerange-0": "알 수 없음",
+       "exif-subjectdistancerange-1": "접사",
+       "exif-subjectdistancerange-2": "근거리",
+       "exif-subjectdistancerange-3": "원거리",
+       "exif-gpslatitude-n": "북위",
+       "exif-gpslatitude-s": "남위",
+       "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": "2차원 측정",
+       "exif-gpsmeasuremode-3": "3차원 측정",
+       "exif-gpsspeed-k": "킬로미터 매 시간",
+       "exif-gpsspeed-m": "마일 매 시간",
+       "exif-gpsspeed-n": "노트",
+       "exif-gpsdestdistance-k": "킬로미터",
+       "exif-gpsdestdistance-m": "마일",
+       "exif-gpsdestdistance-n": "해리",
+       "exif-gpsdop-excellent": "우수 ($1)",
+       "exif-gpsdop-good": "좋음 ($1)",
+       "exif-gpsdop-moderate": "보통 ($1)",
+       "exif-gpsdop-fair": "적당 ($1)",
+       "exif-gpsdop-poor": "나쁨 ($1)",
+       "exif-objectcycle-a": "오전 중에만",
+       "exif-objectcycle-p": "오후 중에만",
+       "exif-objectcycle-b": "오전, 오후 모두",
+       "exif-gpsdirection-t": "실제 방위",
+       "exif-gpsdirection-m": "자기 방위",
+       "exif-ycbcrpositioning-1": "중앙",
+       "exif-ycbcrpositioning-2": "코사이티드",
+       "exif-dc-contributor": "기여자",
+       "exif-dc-coverage": "미디어의 시공간적 범위",
+       "exif-dc-date": "날짜",
+       "exif-dc-publisher": "출판사",
+       "exif-dc-relation": "관련된 미디어",
+       "exif-dc-rights": "권리",
+       "exif-dc-source": "원본 출처 미디어",
+       "exif-dc-type": "미디어 종류",
+       "exif-rating-rejected": "거부",
+       "exif-isospeedratings-overflow": "65535 이상",
+       "exif-iimcategory-ace": "예술, 문화, 엔터테인먼트",
+       "exif-iimcategory-clj": "범죄와 법률",
+       "exif-iimcategory-dis": "재난 및 사고",
+       "exif-iimcategory-fin": "경제 및 비즈니스",
+       "exif-iimcategory-edu": "교육",
+       "exif-iimcategory-evn": "환경",
+       "exif-iimcategory-hth": "건강",
+       "exif-iimcategory-hum": "인간의 흥미",
+       "exif-iimcategory-lab": "노동",
+       "exif-iimcategory-lif": "생활 방식과 레저",
+       "exif-iimcategory-pol": "정치",
+       "exif-iimcategory-rel": "종교 및 신념",
+       "exif-iimcategory-sci": "과학 기술",
+       "exif-iimcategory-soi": "사회적 문제",
+       "exif-iimcategory-spo": "스포츠",
+       "exif-iimcategory-war": "전쟁, 분쟁과 사회 불안",
+       "exif-iimcategory-wea": "날씨",
+       "exif-urgency-normal": "보통 ($1)",
+       "exif-urgency-low": "낮음 ($1)",
+       "exif-urgency-high": "높음 ($1)",
+       "exif-urgency-other": "사용자 정의 ($1)"
+}
diff --git a/languages/i18n/exif/krc.json b/languages/i18n/exif/krc.json
new file mode 100644 (file)
index 0000000..dc17582
--- /dev/null
@@ -0,0 +1,334 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ernác",
+                       "Къарачайлы"
+               ]
+       },
+       "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": "1 блокда болгъан тизгинни саны",
+       "exif-stripbytecounts": "Къысдырылгъан блокну ёлчеми",
+       "exif-jpeginterchangeformat": "preview блокну тамалыны туруму",
+       "exif-jpeginterchangeformatlength": "preview блокну билгилерини ёлчеми",
+       "exif-whitepoint": "Акъ нохтаны боялулугъу",
+       "exif-primarychromaticities": "Баш бояуланы бояулулугъу",
+       "exif-ycbcrcoefficients": "Бояу модельни трансформация матрикс коофициенти",
+       "exif-referenceblackwhite": "Акъ бла къара нохталаны турумлары",
+       "exif-datetime": "Файлны тюрлендириуню датасы бла заманы",
+       "exif-imagedescription": "Суратны аты",
+       "exif-make": "Камераны маркасы",
+       "exif-model": "Камераны модели",
+       "exif-software": "Программа баджарыу",
+       "exif-artist": "Автор",
+       "exif-copyright": "Автор хакъланы иеси",
+       "exif-exifversion": "Exif версиясы",
+       "exif-flashpixversion": "Джакъланнган FlashPix версиясы",
+       "exif-colorspace": "Бояу алам",
+       "exif-componentsconfiguration": "Хар компонентни ангыламы",
+       "exif-compressedbitsperpixel": "Суратны къысдырыу амалы",
+       "exif-pixelxdimension": "Суратны кенглиги",
+       "exif-pixelydimension": "Суратны мийиклиги",
+       "exif-usercomment": "Къошакъ комментарий",
+       "exif-relatedsoundfile": "Тауушлу комментарийни файлы",
+       "exif-datetimeoriginal": "Оригинал джаратыу заман",
+       "exif-datetimedigitized": "Цифралашдрыуну заманы",
+       "exif-subsectime": "Файлны тюрлендириу заманны дакъикъалары",
+       "exif-subsectimeoriginal": "Оригинал заманны дакъикъалары",
+       "exif-subsectimedigitized": "Цифралашдырыу заманны дакъикъалары",
+       "exif-exposuretime": "Экспозиция заман",
+       "exif-exposuretime-format": "$1 с ($2)",
+       "exif-fnumber": "Диафрагманы номери",
+       "exif-exposureprogram": "Экспозицияны программасы",
+       "exif-spectralsensitivity": "Спектрал сезимлилик",
+       "exif-isospeedratings": "ISO терклик дараджасы",
+       "exif-shutterspeedvalue": "APEX декланшорну терклиги",
+       "exif-aperturevalue": "APEX-де диафрагма",
+       "exif-brightnessvalue": "APEX-де джарыкълыкъ",
+       "exif-exposurebiasvalue": "Экспозицияны коменсациясы",
+       "exif-maxaperturevalue": "Максимум диафрагма саны",
+       "exif-subjectdistance": "Объектге дери узакълыкъ",
+       "exif-meteringmode": "Ёлчем типи",
+       "exif-lightsource": "Джарыкъны къайнагъы",
+       "exif-flash": "Флеш",
+       "exif-focallength": "Фокус узакълыкъ",
+       "exif-focallength-format": "$1 мм",
+       "exif-subjectarea": "Субъект алам",
+       "exif-flashenergy": "Флешни энергиясы",
+       "exif-focalplanexresolution": "Фокал аламда Х резолюциясы",
+       "exif-focalplaneyresolution": "Фокал аламда Y резолюциясы",
+       "exif-focalplaneresolutionunit": "Фокал аламда резолюцияны ёлчем бирими",
+       "exif-subjectlocation": "Субъектни туруму",
+       "exif-exposureindex": "Экспозицияны индекси",
+       "exif-sensingmethod": "Сенсор амалы",
+       "exif-filesource": "Файлны къайнагъы",
+       "exif-scenetype": "Сахнаны типи",
+       "exif-customrendered": "Айырма сурат ишлем",
+       "exif-exposuremode": "Экспозицияны сайлауну режими",
+       "exif-whitebalance": "Акъны балансы",
+       "exif-digitalzoomratio": "Цифра джууукълашдырыуну ёлчеми",
+       "exif-focallengthin35mmfilm": "35 мм-лик плёнкада фокал узунлукъ",
+       "exif-scenecapturetype": "Алыуда сахнаны типи",
+       "exif-gaincontrol": "Сахна контролу",
+       "exif-contrast": "Контраст",
+       "exif-saturation": "Бояуну толулугъу",
+       "exif-sharpness": "Кескинлик",
+       "exif-devicesettingdescription": "Камераны джарашдырыуларыны ангылатыу",
+       "exif-subjectdistancerange": "Алыуну объектине дери узунлукъ",
+       "exif-imageuniqueid": "Суратны энчи номери (ID)",
+       "exif-gpsversionid": "GPS версиясы",
+       "exif-gpslatituderef": "Шимал неда Къыбыла кенглик",
+       "exif-gpslatitude": "Кенглик",
+       "exif-gpslongituderef": "Кюнчыгъыш неда кюнбатыш узунлукъ",
+       "exif-gpslongitude": "Узунлукъ",
+       "exif-gpsaltituderef": "Мийикликни индекси",
+       "exif-gpsaltitude": "Мийиклик",
+       "exif-gpstimestamp": "GPS заман (атом сагъат)",
+       "exif-gpssatellites": "Хайырланнган спутниклени ангылатыу",
+       "exif-gpsstatus": "Ресиверни статусу",
+       "exif-gpsmeasuremode": "Ёлчелеуню амалы",
+       "exif-gpsdop": "Ёлчемни тюзлюгю",
+       "exif-gpsspeedref": "Теркликни ёлчем бирими",
+       "exif-gpsspeed": "GPS алыучуну терклиги",
+       "exif-gpstrackref": "GPS алыучуну азимутуну типи",
+       "exif-gpstrack": "GPS алыучуну азимуту",
+       "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": "GPS тёгерекни аты",
+       "exif-gpsdatestamp": "GPS заман",
+       "exif-gpsdifferential": "GPS дифференциялы тюзетиу",
+       "exif-jpegfilecomment": "JPEG-файлны белгиси",
+       "exif-keywords": "Ачхыч сёзле",
+       "exif-worldregioncreated": "Бу сурат этилген дуния регион",
+       "exif-countrycreated": "Бу сурат этилген кърал",
+       "exif-countrydest": "Суратланнган кърал",
+       "exif-provinceorstatedest": "Суратланнган провинция, территория неда штат",
+       "exif-citydest": "Суратланнган шахар",
+       "exif-objectname": "Къысха аты",
+       "exif-specialinstructions": "Энчи ангылатыула",
+       "exif-headline": "Башлыкъ",
+       "exif-credit": "Суратны берген",
+       "exif-source": "Къайнакъ",
+       "exif-editstatus": "Суратны редакцион статусу",
+       "exif-urgency": "Бу сагъатха магъаналылыгъы",
+       "exif-fixtureidentifier": "Колонканы аты",
+       "exif-locationdest": "Суратланнган джер",
+       "exif-objectcycle": "Бу сурат ючюн сутканы кёзюую",
+       "exif-contact": "Контактлы информация",
+       "exif-writer": "Текстни автору",
+       "exif-languagecode": "Тил",
+       "exif-iimversion": "IIM версиясы",
+       "exif-iimcategory": "Категория",
+       "exif-iimsupplementalcategory": "Къошакъ категорияла",
+       "exif-datetimeexpires": "Бу датадан сора хайырланмагъыз:",
+       "exif-datetimereleased": "Чыкъгъан датасы:",
+       "exif-identifier": "Идентификатор",
+       "exif-lens": "Хайырланнган объектив",
+       "exif-serialnumber": "Камераны сериялы номери",
+       "exif-cameraownername": "Камераны иеси",
+       "exif-label": "Белги",
+       "exif-datetimemetadata": "Метабилгилени ахыр тюрлениулерини датасы",
+       "exif-nickname": "Суратны, формализмли болмагъан аты",
+       "exif-rating": "Багъа (5-ден)",
+       "exif-rightscertificate": "Хакъланы джюрютюу сертификат",
+       "exif-copyrighted": "Автор хакъланы статусу:",
+       "exif-copyrightowner": "Автор хакъланы иеси",
+       "exif-usageterms": "Хайырланыуну шартлары",
+       "exif-pngfilecomment": "PNG-файлны белгиси",
+       "exif-disclaimer": "Джууаблылыкъны унамау",
+       "exif-contentwarning": "Ичиндегисини юсюнден эсгертиу",
+       "exif-giffilecomment": "GIF-файлны белгиси",
+       "exif-intellectualgenre": "Объектни типи",
+       "exif-subjectnewscode": "Теманы коду",
+       "exif-scenecode": "IPTC сахнаны коду",
+       "exif-event": "Суратланнган болуу",
+       "exif-organisationinimage": "Суратланнган организация",
+       "exif-personinimage": "Суратланнган адам",
+       "exif-compression-1": "Къысдырылмагъан",
+       "exif-compression-3": "CCITT Group 3, факс кодлау",
+       "exif-compression-4": "CCITT Group 4, факс кодлау",
+       "exif-copyrighted-true": "Автор хакъла бла джакъланыбды",
+       "exif-copyrighted-false": "Автор онгну статусу берилмегенди",
+       "exif-unknowndate": "Билинмеген заман",
+       "exif-orientation-1": "Нормал",
+       "exif-orientation-2": "Горизонтал бла кёргюзюлгенди",
+       "exif-orientation-3": "180° бурулгъанды",
+       "exif-orientation-4": "Вертикал бла кёргюзюлгенди",
+       "exif-orientation-5": "90° бурулгъан (солгъа) эмда вертикал бла кёргюзюлгенди",
+       "exif-orientation-6": "Сагъат стрелкагъа къаршчы 90° бурулгъанды",
+       "exif-orientation-7": "90° бурулгъанды (сагъат стрелкагъа) эмда вертикал бла кёргюзюлгенди",
+       "exif-orientation-8": "Сагъат стрелкагъа кёре 90° бурулгъанды",
+       "exif-planarconfiguration-1": "«chunky» формат",
+       "exif-planarconfiguration-2": "«planar» формат",
+       "exif-xyresolution-i": "$1 dpi",
+       "exif-xyresolution-c": "$1 dpc",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "Суратны бояу джарашдырыуу этилмегенди",
+       "exif-componentsconfiguration-0": "Джокъду",
+       "exif-exposureprogram-0": "Танылмады",
+       "exif-exposureprogram-1": "Къол режим",
+       "exif-exposureprogram-2": "Нормал программа",
+       "exif-exposureprogram-3": "Дифрагманы аллы",
+       "exif-exposureprogram-4": "Декланшёр аллы",
+       "exif-exposureprogram-5": "Суратлау программа (кескинликни керекли теренлигини тамалында)",
+       "exif-exposureprogram-6": "Спорт режим",
+       "exif-exposureprogram-7": "Портрет режим (фокуссуз фонда, джууукъ аралыкъдан сурат алыр ючюн)",
+       "exif-exposureprogram-8": "Пейзаж режим (фокусда фону бла пейзаж суратла ючюн)",
+       "exif-subjectdistance-value": "$1 метр",
+       "exif-meteringmode-0": "Билинмейди",
+       "exif-meteringmode-1": "Орта",
+       "exif-meteringmode-2": "Ара аурлукълу",
+       "exif-meteringmode-3": "Нохталы",
+       "exif-meteringmode-4": "Кёб нохталы",
+       "exif-meteringmode-5": "Матрицалы",
+       "exif-meteringmode-6": "Джартылы",
+       "exif-meteringmode-255": "Башха",
+       "exif-lightsource-0": "Билинмеген",
+       "exif-lightsource-1": "Кюн джарыкъ",
+       "exif-lightsource-2": "Кюндюз джарыкъны лампасы",
+       "exif-lightsource-3": "Къызыуну лампасы",
+       "exif-lightsource-4": "Флэш",
+       "exif-lightsource-9": "Ачыкъ хауа",
+       "exif-lightsource-10": "Булутлу",
+       "exif-lightsource-11": "Ауана",
+       "exif-lightsource-12": "Кюн джарыкъны лампасы (D 5700 – 7100K)",
+       "exif-lightsource-13": "Кюндюз джарыкъны лампасы (N 4600 – 5400K)",
+       "exif-lightsource-14": "Кюндюз джарыкъны лампасы (W 3900 – 4500K)",
+       "exif-lightsource-15": "Кюндюз джарыкъны лампасы (W 3900 – 4500K)",
+       "exif-lightsource-17": "А типли стандарт джарыкъ",
+       "exif-lightsource-18": "B типли стандарт джарыкъ",
+       "exif-lightsource-19": "С типли стандарт джарыкъ",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-24": "ISO стандартлы студиялыкъ лампа",
+       "exif-lightsource-255": "Джарыкъны башха къайнакълары",
+       "exif-flash-fired-0": "Флэши ишлемеди",
+       "exif-flash-fired-1": "Флэши ишледи",
+       "exif-flash-return-0": "алгъаракъ флэш джаныу режими джокъду",
+       "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-sensingmethod-7": "Юс бетли сызлы сенсор",
+       "exif-sensingmethod-8": "Бетни кёюзюулю тюрлениую бла сызлы сенсор",
+       "exif-filesource-3": "Цифра фотоаппарат",
+       "exif-scenetype-1": "Сурат эрлай алыннганды",
+       "exif-customrendered-0": "Нормал ишлеу",
+       "exif-customrendered-1": "Стандарт тышында ишлеу",
+       "exif-exposuremode-0": "Автомат экспозиция",
+       "exif-exposuremode-1": "Экспозицияны къол бла джарашдырыу",
+       "exif-exposuremode-2": "Автобрекет",
+       "exif-whitebalance-0": "Автомат халда акъны балансы",
+       "exif-whitebalance-1": "Акъны балансын къол бла джарашдырыу",
+       "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-saturation-0": "Нормал",
+       "exif-saturation-1": "Аз тойгъанлыкъ",
+       "exif-saturation-2": "Бек тойгъанлыкъ",
+       "exif-sharpness-0": "Нормал",
+       "exif-sharpness-1": "Джумушакъ",
+       "exif-sharpness-2": "Кючлю",
+       "exif-subjectdistancerange-0": "Билинмейди",
+       "exif-subjectdistancerange-1": "Макро (джууукъдан картха алыу)",
+       "exif-subjectdistancerange-2": "Джабыкъ кёрюнюу",
+       "exif-subjectdistancerange-3": "Узакъ кёрюнюу",
+       "exif-gpslatitude-n": "Шимал кенглик",
+       "exif-gpslatitude-s": "Къыбыла кенглик",
+       "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": "2-ли координатланы ёлчелеу",
+       "exif-gpsmeasuremode-3": "3-лю коорданатланы ёлчелеу",
+       "exif-gpsspeed-k": "км/с",
+       "exif-gpsspeed-m": "Миль/сагъат",
+       "exif-gpsspeed-n": "Тенгиз миля",
+       "exif-gpsdestdistance-k": "Километрле",
+       "exif-gpsdestdistance-m": "Миляла",
+       "exif-gpsdestdistance-n": "Тенгиз миляла",
+       "exif-gpsdop-excellent": "Айырма иги ($1)",
+       "exif-gpsdop-good": "Иги ($1)",
+       "exif-gpsdop-moderate": "Орта ($1)",
+       "exif-gpsdop-fair": "Ортадан аман ($1)",
+       "exif-gpsdop-poor": "Аман ($1)",
+       "exif-objectcycle-a": "Къуру эртдембла",
+       "exif-objectcycle-p": "Къуру ингирде",
+       "exif-objectcycle-b": "Эртдембла эм ингирде",
+       "exif-gpsdirection-t": "Керти",
+       "exif-gpsdirection-m": "Мукъладис",
+       "exif-ycbcrpositioning-1": "Centered",
+       "exif-ycbcrpositioning-2": "CO-sited",
+       "exif-dc-contributor": "Автор нёгерле",
+       "exif-dc-coverage": "Медианы кенгликле чеклери бла заман чеклери",
+       "exif-dc-date": "Дата(ла)",
+       "exif-dc-publisher": "Басмагъа чыгъаргъан",
+       "exif-dc-relation": "Байламлы медиа",
+       "exif-dc-rights": "Хакъла",
+       "exif-dc-source": "Къайнакъ медиа",
+       "exif-dc-type": "Медианы типи",
+       "exif-rating-rejected": "Къабыл этилмеди",
+       "exif-isospeedratings-overflow": "65535-ден уллуду",
+       "exif-iimcategory-ace": "Санат, культура эм кёз ачыу",
+       "exif-iimcategory-clj": "Аманлыкъчылыкъ эм закон",
+       "exif-iimcategory-dis": "Катастрофала эм аварияла",
+       "exif-iimcategory-fin": "Экономика эм бизнес",
+       "exif-iimcategory-edu": "Окъуу",
+       "exif-iimcategory-evn": "Тёгерекдеги табийгъат",
+       "exif-iimcategory-hth": "Саулукъ",
+       "exif-iimcategory-hum": "Интересли хапарла",
+       "exif-iimcategory-lab": "Урунуу",
+       "exif-iimcategory-lif": "Джашау хал эм бош заман",
+       "exif-iimcategory-pol": "Политика",
+       "exif-iimcategory-rel": "Дин бла ийнам",
+       "exif-iimcategory-sci": "Илму эм техника",
+       "exif-iimcategory-soi": "Социал соруула",
+       "exif-iimcategory-spo": "Спорт",
+       "exif-iimcategory-war": "Къазауатла, конфликтле эмда къозгъалыула",
+       "exif-iimcategory-wea": "Хауаны халы",
+       "exif-urgency-normal": "Тюз ($1)",
+       "exif-urgency-low": "Алаша ($1)",
+       "exif-urgency-high": "Мийик ($1)",
+       "exif-urgency-other": "Къошулуучу салгъан приоритет ($1)"
+}
diff --git a/languages/i18n/exif/ksh.json b/languages/i18n/exif/ksh.json
new file mode 100644 (file)
index 0000000..c117461
--- /dev/null
@@ -0,0 +1,362 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Purodha"
+               ]
+       },
+       "exif-imagewidth": "Breejd",
+       "exif-imagelength": "Läng",
+       "exif-bitspersample": "Bits per Färvaandeil",
+       "exif-compression": "Kompräßjonßtüp",
+       "exif-photometricinterpretation": "Zosammesetzung fun Pixelle",
+       "exif-orientation": "Ußrechtung fun de Kammera",
+       "exif-samplesperpixel": "Aanzahl Färvaandeile",
+       "exif-planarconfiguration": "De Ußreschtung udder Zusammestellung fun de Date",
+       "exif-ycbcrsubsampling": "Ongerafftastongsroht fun Y bes C",
+       "exif-ycbcrpositioning": "Y un C Posizjioneerung",
+       "exif-xresolution": "Oplösung fun Lenks noh Räähß",
+       "exif-yresolution": "Oplösung fun Bovve noh Onge",
+       "exif-stripoffsets": "Der Aanfang fun de Date fun däm Beld en dä Dattei",
+       "exif-rowsperstrip": "De Aanzahl Reije en jedem Striefe",
+       "exif-stripbytecounts": "De Aanzahl Bytes en jedem kompremierte Striefe",
+       "exif-jpeginterchangeformat": "Bytes Affshtand zom JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bytes aan JPEG-Date",
+       "exif-whitepoint": "Fun Hand met Messung",
+       "exif-primarychromaticities": "De drei Houpfärve ier Färf-Intensität",
+       "exif-ycbcrcoefficients": "YCbCr-Geweeschte",
+       "exif-referenceblackwhite": "Schwazz-Wiiß-Bezochs-Punk-Paare",
+       "exif-datetime": "Zickpunk fum Affshpeischere",
+       "exif-imagedescription": "Dem Beld sing Övverschreff",
+       "exif-make": "Dä Kammera ier Heershtäller",
+       "exif-model": "Dat Kammerra-Modäll",
+       "exif-software": "De enjesatz ẞoffwär",
+       "exif-artist": "Fotojraf odder Maacher",
+       "exif-copyright": "Wä et Urhävverrääsch hät",
+       "exif-exifversion": "Exif-Väsjohn",
+       "exif-flashpixversion": "De ongershtözte <i lang=\"en\">Flashpix</i>-Version",
+       "exif-colorspace": "Färveroum",
+       "exif-componentsconfiguration": "Bedüggening fun all de enkele Komponente",
+       "exif-compressedbitsperpixel": "Aat fun de Kompreßjohn fun däm Beld",
+       "exif-pixelxdimension": "De jöltije Beld-Breede en Pixelle",
+       "exif-pixelydimension": "De jöltije Beld-Hühde en Pixelle",
+       "exif-usercomment": "Aanmerkong fum Aanwender",
+       "exif-relatedsoundfile": "De Tondatei, di do bei jehööt",
+       "exif-datetimeoriginal": "Zickpunk fun de Opzeischnong fun de Date",
+       "exif-datetimedigitized": "Zickpunk fun de Dijjitalisierong",
+       "exif-subsectime": "Honderstel Sekonde fun däm Zickpunk",
+       "exif-subsectimeoriginal": "Honderstel Sekonde fun däm Zickpunk fun de Opzeichnung fun de Date",
+       "exif-subsectimedigitized": "Honderstel Sekonde fun däm Zickpunk fun de Dijjitalisierong fun de Date",
+       "exif-exposuretime": "Beleeshtungsduur",
+       "exif-exposuretime-format": "$1 Sekund{{PLURAL:$1||e|Sekund}} ($2)",
+       "exif-fnumber": "Blende",
+       "exif-exposureprogram": "Beleeshtungsprojramm",
+       "exif-spectralsensitivity": "Emfendleschkeit för et Färvespäktrom",
+       "exif-isospeedratings": "Dem Fillem odder Sensor sing Emfindlischkeit (als ISO Wäät)",
+       "exif-shutterspeedvalue": "De Jeschwendeschkeit fum Verschloß bem Beleeschte en APEX Einheite",
+       "exif-aperturevalue": "De Blend iere Wäät en APEX Einheite",
+       "exif-brightnessvalue": "De Hellishkeit en APEX Einheite",
+       "exif-exposurebiasvalue": "Förjejovve Beleeschtung",
+       "exif-maxaperturevalue": "De Jrözte Blend ier Öffnong",
+       "exif-subjectdistance": "Affshtand nohm Motif",
+       "exif-meteringmode": "De Metood ze Messe",
+       "exif-lightsource": "Leechquell",
+       "exif-flash": "Bletz",
+       "exif-focallength": "De Brennwigde fun de Lenß",
+       "exif-focallength-format": "$1&nbsp;mm",
+       "exif-subjectarea": "Em Motiv singe Bereich",
+       "exif-flashenergy": "Dem Bletz sing Ennäjii",
+       "exif-focalplanexresolution": "De Kammera ierem Sensor sing räächs-lengks-Oplühsong",
+       "exif-focalplaneyresolution": "De Kammera ierem Sensor sing bovve-unge-Oplösung",
+       "exif-focalplaneresolutionunit": "De Oplösung fum Sensor ier Moß-Einheit",
+       "exif-subjectlocation": "Dä Plaz fun dämm Motif",
+       "exif-exposureindex": "Beleeschtungs-Index",
+       "exif-sensingmethod": "De Metood, woh der Kammera ier Sensor met messe deit",
+       "exif-filesource": "Dä Dattei ier Quell",
+       "exif-scenetype": "Dä Tüp för de Darstellung udder der Szenopbou",
+       "exif-customrendered": "Däm Maacher sing eije Aat, et Beld ze beärrbeide",
+       "exif-exposuremode": "Beleeschtungs-Aat",
+       "exif-whitebalance": "Wießaffjleich",
+       "exif-digitalzoomratio": "Dijitalzoom",
+       "exif-focallengthin35mmfilm": "De Brennwigde op 35 Millimeeter Kleinbeldfillem betrocke",
+       "exif-scenecapturetype": "De Aat Opnahm",
+       "exif-gaincontrol": "Aanpassung fun de Hällischkeit",
+       "exif-contrast": "der Kontraß",
+       "exif-saturation": "de Färfsättijung",
+       "exif-sharpness": "De Beldschärf",
+       "exif-devicesettingdescription": "Dem Jerät sing Enstellong",
+       "exif-subjectdistancerange": "Em Motif singe Affshtandsbereisch",
+       "exif-imageuniqueid": "Eindeutije Kännong för dat Beld",
+       "exif-gpsversionid": "De Version fum GPS singe Stempel",
+       "exif-gpslatituderef": "nöödlesch udder södlesch Breed fum GPS",
+       "exif-gpslatitude": "De Breed om Äädball fum GPS",
+       "exif-gpslongituderef": "ösßlesch udder weßlesch Läng fum GPS",
+       "exif-gpslongitude": "Läng om Äädball fum GPS",
+       "exif-gpsaltituderef": "Wo drop de Hühde nohm GPS betrocke es",
+       "exif-gpsaltitude": "Hühde nohm GPS",
+       "exif-gpstimestamp": "Zick fun de Atom-Uhr nohm GPS",
+       "exif-gpssatellites": "Dem GPS sing Sattelitte för disse Meßvörjang",
+       "exif-gpsstatus": "Dä Shtattus fum GPS Emfangsjeräät",
+       "exif-gpsmeasuremode": "Dat GPS-Meßverfahre",
+       "exif-gpsdop": "De Jenoueschkeit beim Meßße vum GPS",
+       "exif-gpsspeedref": "De Moß_Einheit fun de Jeschwendeshkeit",
+       "exif-gpsspeed": "Dem GPS-Emfangsejeräät sing Tempo",
+       "exif-gpstrackref": "Der Bezoch för de Bewääjong nohm GPS  ier Reeschtong",
+       "exif-gpstrack": "De Bewäjong nohm GPS ier Reeshtong",
+       "exif-gpsimgdirectionref": "Der Bezoch för de Ußreschtong fum Beld nohm GPS",
+       "exif-gpsimgdirection": "Ußreschtong fum Beld nohm GPS",
+       "exif-gpsmapdatum": "Jeodätisches Beobachtongs-Dattum nohm GPS jebruch",
+       "exif-gpsdestlatituderef": "Bezoch för de Breede fum Zihl nohm <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Global Positioning System\">GPS</i>",
+       "exif-gpsdestlatitude": "De Brehde fum Zihl nohm <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Global Positioning System\">GPS</i>",
+       "exif-gpsdestlongituderef": "Bezoch för de Längde fum Zihl nohm <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Global Positioning System\">GPS</i>",
+       "exif-gpsdestlongitude": "De Längde fum Zihl nohm <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Global Positioning System\">GPS</i>",
+       "exif-gpsdestbearingref": "Bezoch för de Reschtong fum Mottif nohm GPS",
+       "exif-gpsdestbearing": "De Reschtong fum Mottif nohm GPS",
+       "exif-gpsdestdistanceref": "Bezoch för de Entfernong fum Mottif nohm GPS",
+       "exif-gpsdestdistance": "De Entfernong fum Mottif nohm GPS",
+       "exif-gpsprocessingmethod": "Dä Nahme fum <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Global Positioning System\">GPS</i>-Verfahre",
+       "exif-gpsareainformation": "Dä Nahme fum <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Global Positioning System\">GPS</i>-Jebeet",
+       "exif-gpsdatestamp": "GPS-Dattum",
+       "exif-gpsdifferential": "De Differenzjahl-Bereschtijong fum GPS",
+       "exif-jpegfilecomment": "Aanmärkong uss ene <i lang=\"en\">JPEG</i>-Dattei",
+       "exif-keywords": "Schlößelwööter",
+       "exif-worldregioncreated": "De Rejoon op de Ääd, woh dat Fotto jeknips wood",
+       "exif-countrycreated": "Et Land, woh dat Fotto jeknips wood",
+       "exif-countrycodecreated": "Et Köözel för dat Land, woh dat Fotto jeknips wood",
+       "exif-provinceorstatecreated": "De Provins, et Bundesland, der Bundsshtaat udder esu, woh dat Fotto jeknips wood",
+       "exif-citycreated": "De Shtadt, woh dat Fotto jeknips wood",
+       "exif-sublocationcreated": "Et Veedel, udder de Shtrooß, udder esu, en dä Shtadt, woh dat Fotto jeknips wood",
+       "exif-worldregiondest": "De jezeishte Rejoon op de Ääd",
+       "exif-countrydest": "Et jezeishte Land",
+       "exif-countrycodedest": "Et Köözel för et jezeishte Land",
+       "exif-provinceorstatedest": "De jezeishte Provins, et jezeishte Bundesland, der jezeishte Bundesstaat, un esu wigger",
+       "exif-citydest": "De jezeishte Shtadt",
+       "exif-sublocationdest": "Et jezeishte Veedel, udder de jezeishte Shtrooß, udder esu",
+       "exif-objectname": "De Övverschreff en koot",
+       "exif-specialinstructions": "Extra Aanweisonge",
+       "exif-headline": "Övverschreff",
+       "exif-credit": "Wigger jejovve vum",
+       "exif-source": "Hääkunf, Besezer",
+       "exif-editstatus": "Enodenong vum Fotto en de Redakzjuhn",
+       "exif-urgency": "De Ieleschkeit",
+       "exif-fixtureidentifier": "Kolumne",
+       "exif-locationdest": "Dä volle Name vum jezeishte Oot udder Plaz",
+       "exif-locationdestcode": "Dä Kopod vum jezeishte Oot udder Plaz",
+       "exif-objectcycle": "De Daachszick, för wann dat Denge zom Verdeile jedaach es",
+       "exif-contact": "Kuntak",
+       "exif-writer": "Schriiver",
+       "exif-languagecode": "Schprohch",
+       "exif-iimversion": "Dem <i lang=\"en\">IIM</i> sing Version",
+       "exif-iimcategory": "Saachjropp udder Zoot",
+       "exif-iimsupplementalcategory": "Extra Saachjroppe udder Zoote",
+       "exif-datetimeexpires": "Nit mih verwännde noh",
+       "exif-datetimereleased": "Öffentlesch jemaat aam",
+       "exif-originaltransmissionref": "Ojinaal Kood vun de Övvermeddelong",
+       "exif-identifier": "Kännong",
+       "exif-lens": "De jebruchte Lens",
+       "exif-serialnumber": "Däm Knipskaste sing Seerije-Nommer",
+       "exif-cameraownername": "Däm Knipskaste singe Besetzer",
+       "exif-label": "Bezeishnong, Ätikätt, Singnatuur",
+       "exif-datetimemetadata": "Et Dattum vun de läzde Änderong vun de Metta_Daate",
+       "exif-nickname": "Jeläufijje Nahme för dat Beld",
+       "exif-rating": "Enschäzong (uß 5)",
+       "exif-rightscertificate": "Zächtifikaat för de dijitaale Rääschdeverwalldong",
+       "exif-copyrighted": "Zohshtand vum Urhävver singe Rääschde",
+       "exif-copyrightowner": "Besezer vum Urhävver singe Rääschde",
+       "exif-usageterms": "Räjelle för et Benöze",
+       "exif-webstatement": "Aanjahbe em Internet övver em Urhävver sing Rääschde",
+       "exif-originaldocumentid": "En eijmohleje Kännong för et Ojinaal",
+       "exif-licenseurl": "En <i lang=\"en\">URL</i> för de Lizänz",
+       "exif-morepermissionsurl": "Övver zohsäzlejje Lizänze",
+       "exif-attributionurl": "Wann De dat Wärk sellver bruchs, leng op",
+       "exif-preferredattributionname": "Wann De dat Wärk bruchs, donn en Danksaarung dobei, aan",
+       "exif-pngfilecomment": "Aanmärkong uss ene <i lang=\"en\">PNG</i>-Dattei",
+       "exif-disclaimer": "Et Verwahre jääje Haftong",
+       "exif-contentwarning": "Warnong för em Enhallt",
+       "exif-giffilecomment": "Aanmärkong uss ene <i lang=\"en\">GIF</i>-Dattei",
+       "exif-intellectualgenre": "De Zoot vun Enhallt",
+       "exif-subjectnewscode": "Der Schlößel (Kohd) för et Tehma",
+       "exif-scenecode": "Dä <i lang=\"en\">IPTC</i>-Kood för Zoot vun wat mer süht",
+       "exif-event": "Der jezeishte Aanlaß",
+       "exif-organisationinimage": "De jezeishte Ojanisazjuhn udder Ferma",
+       "exif-personinimage": "Der jezeishte Minsch",
+       "exif-originalimageheight": "De Hühde vum Beld, ih dat es zohjeschnedde wood, en Pixelle",
+       "exif-originalimagewidth": "De Breede vum Beld, ih dat es zohjeschnedde wood, en Pixelle",
+       "exif-compression-1": "Oohne Kompressjuhn",
+       "exif-compression-2": "Noh de <i lang=\"en\">CCITT</i> ier Jrop 3 kodeet mem eindimänsjonalle aanjepaßte Verfahre noh_m <i lang=\"en\">Huffman</i> singe „Läng vum Rötsch“",
+       "exif-compression-3": "Noh de <i lang=\"en\">CCITT</i> ier Jrop 3 als Fax kodeet",
+       "exif-compression-4": "Noh de <i lang=\"en\">CCITT</i> ier Jrop 4 als Fax kodeet",
+       "exif-compression-5": "<i lang=\"en\">LZW</i>",
+       "exif-compression-6": "<i lang=\"en\">JPEG</i> (ahl)",
+       "exif-compression-7": "<i lang=\"en\">JPEG</i>",
+       "exif-compression-8": "<i lang=\"en\">Deflate (Adobe)</i>",
+       "exif-compression-32773": "<i lang=\"en\">PackBits (Macintosh RLE)</i>",
+       "exif-compression-32946": "<i lang=\"en\">Deflate (PKZIP)</i>",
+       "exif-compression-34712": "<i lang=\"en\">JPEG</i>2000",
+       "exif-copyrighted-true": "Häd_en Urhävverrääsch",
+       "exif-copyrighted-false": "Nix övver et Urhävverrääsch jesaat",
+       "exif-photometricinterpretation-1": "Schwazz un Wiiß (Schwazz es 0)",
+       "exif-photometricinterpretation-2": "RJB",
+       "exif-photometricinterpretation-6": "<i lang=\"en\">YCbCr</i>",
+       "exif-unknowndate": "Dattum onbikannt",
+       "exif-orientation-1": "Nommahl",
+       "exif-orientation-2": "Op der Kopp jespeejelt",
+       "exif-orientation-3": "Op der Kopp jedrieht",
+       "exif-orientation-4": "Lingks-Rääschß jeschpehjelt",
+       "exif-orientation-5": "En Vehdelsdriehjong mem Uhrzeijer un dann lengks-rähß jespehjelt",
+       "exif-orientation-6": "En Veedelsdriejong mem Uhrzeijer",
+       "exif-orientation-7": "En Veedelsdriejong jääje der Uhrzeijer un dann lengks-rähß jespehjelt",
+       "exif-orientation-8": "En Veedelsdriejong jääje der Uhrzeijer",
+       "exif-planarconfiguration-1": "Dat Fomaat es en Stöckscher",
+       "exif-planarconfiguration-2": "Dat Fomaat es flaach",
+       "exif-xyresolution-i": "{{PLURAL:$1|eine Punk|$1 Punkte|keine Punk}} pro Zoll",
+       "exif-xyresolution-c": "{{PLURAL:$1|eine Punk|$1 Punkte|keine Punk}} pro Zenntimeeter",
+       "exif-colorspace-1": "<i lang=\"en\">sRGB</i>",
+       "exif-colorspace-65535": "De Färve sin nit kallibreert",
+       "exif-componentsconfiguration-0": "Jidd_et nit",
+       "exif-componentsconfiguration-5": "J",
+       "exif-exposureprogram-0": "Nit faßjelaat",
+       "exif-exposureprogram-1": "Vun Hand",
+       "exif-exposureprogram-2": "Et Standat Projramm",
+       "exif-exposureprogram-3": "De Automattek noh Zig fun de Öffnong",
+       "exif-exposureprogram-4": "De Automattik för der Blende-Verschloß",
+       "exif-exposureprogram-5": "E kreativ Projramm, ußjerescht op en hue Schärfedeefe",
+       "exif-exposureprogram-6": "E Akßions-Projramm, ußjerescht op en koote Zick för de Beleeschtung",
+       "exif-exposureprogram-7": "Us de Nöhde en huhkant opjenomme, mem Bleck op Fürre",
+       "exif-exposureprogram-8": "Landschaff em Querfommaat opjenomme, mem Bleck op der Hengerjrond",
+       "exif-subjectdistance-value": "{{PLURAL:$1|eine|$1|keine}} Meter",
+       "exif-meteringmode-0": "Onbikannt",
+       "exif-meteringmode-1": "Meddelmääßesch",
+       "exif-meteringmode-2": "Op de Medde fum Beld betrocke",
+       "exif-meteringmode-3": "Punkmessung",
+       "exif-meteringmode-4": "Miehpunkmessung",
+       "exif-meteringmode-5": "Muster",
+       "exif-meteringmode-6": "Deijl fum Beld",
+       "exif-meteringmode-255": "Ander",
+       "exif-lightsource-0": "Onbikannt",
+       "exif-lightsource-1": "Daresleech",
+       "exif-lightsource-2": "Leusch fun sellver",
+       "exif-lightsource-3": "Jlöh-Lampe-Leesch",
+       "exif-lightsource-4": "Bletz",
+       "exif-lightsource-9": "Joodt Wedder",
+       "exif-lightsource-10": "Wedder met Wolke",
+       "exif-lightsource-11": "Schadde",
+       "exif-lightsource-12": "Daresleesch — selfs aam leuschte (D 5700–7100 K)",
+       "exif-lightsource-13": "Daresleechs-Wiiß — selfs aam leuschte (N 4600–5400 K)",
+       "exif-lightsource-14": "Kaal Wieß Leesch — selfs aam leuschte (W 3900–4500 K)",
+       "exif-lightsource-15": "Wieß Leesch — selfs aam leuschte (WW 3200–3700 K)",
+       "exif-lightsource-17": "Standat Leech Tüp A",
+       "exif-lightsource-18": "Standat Leech Tüp B",
+       "exif-lightsource-19": "Standat Leech Tüp C",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "Studio-Kunsleesch noh ISO-Norrem",
+       "exif-lightsource-255": "Söns en Leechquell",
+       "exif-flash-fired-0": "Bletz hät nit jedonn",
+       "exif-flash-fired-1": "met Bletz",
+       "exif-flash-return-0": "Dä Bletz säät nit, wat loß es",
+       "exif-flash-return-2": "Däm Bletz sing Leesch schingk nit zeröck jekumme ze sin",
+       "exif-flash-return-3": "Däm Bletz sing Leesch es zeröck jekumme",
+       "exif-flash-mode-1": "Dä Bletz moot ußjelöß wääde",
+       "exif-flash-mode-2": "Dä Bletz wohr afjeschalldt",
+       "exif-flash-mode-3": "Automattesch",
+       "exif-flash-function-1": "Kammera ohne Bletz",
+       "exif-flash-redeye-1": "Ruude Aure fott jemaat",
+       "exif-focalplaneresolutionunit-2": "Zoll",
+       "exif-sensingmethod-1": "Onbikannt",
+       "exif-sensingmethod-2": "Ene Sensor fö Färve op einem Bousteijn",
+       "exif-sensingmethod-3": "Ene Sensor fö Färve op zweij Bousteijn",
+       "exif-sensingmethod-4": "Ene Sensor fö Färve op dreij Bousteijn",
+       "exif-sensingmethod-5": "Ene sequenzjelle Bereijschs-Sensor fö Färve",
+       "exif-sensingmethod-7": "Ene trilinejare sequenzjelle Sensor fö Färve",
+       "exif-sensingmethod-8": "Ene linejare sequenzjelle Sensor fö Färve",
+       "exif-filesource-3": "Ene onbewääschlesche dijitaale Knepskaste (<i lang=\"en\">DSC</i>)",
+       "exif-scenetype-1": "Normal — e tirek fotmafeet Beld",
+       "exif-customrendered-0": "Standat — der jewöhnlijje Aflouf",
+       "exif-customrendered-1": "Eijen — dem Maacher singe Aflouf",
+       "exif-exposuremode-0": "Automattesch Beleeschdt",
+       "exif-exposuremode-1": "Fun Hand Beleeschtd",
+       "exif-exposuremode-2": "Beleeshtungsreih",
+       "exif-whitebalance-0": "Automattesche Wiiß-Affjleich",
+       "exif-whitebalance-1": "Wieß-Affjleisch fun Hand jemaat",
+       "exif-scenecapturetype-0": "Nommahl",
+       "exif-scenecapturetype-1": "Queerfommaat",
+       "exif-scenecapturetype-2": "Huhkant",
+       "exif-scenecapturetype-3": "Et Naakß",
+       "exif-gaincontrol-0": "Nix",
+       "exif-gaincontrol-1": "E beßje heller",
+       "exif-gaincontrol-2": "Vill heller",
+       "exif-gaincontrol-3": "E beßje dungkeler",
+       "exif-gaincontrol-4": "Vill dungkeler",
+       "exif-contrast-0": "Nommahl",
+       "exif-contrast-1": "Weijsch",
+       "exif-contrast-2": "Hatt",
+       "exif-saturation-0": "Nommahl",
+       "exif-saturation-1": "Winnisch Sättejung",
+       "exif-saturation-2": "En hue Sättejung",
+       "exif-sharpness-0": "Nommahl",
+       "exif-sharpness-1": "Nit esu scharf",
+       "exif-sharpness-2": "Scharf",
+       "exif-subjectdistancerange-0": "Onbikannt",
+       "exif-subjectdistancerange-1": "Janz deesch draan (Makro-Opnahm)",
+       "exif-subjectdistancerange-2": "Vun Noh",
+       "exif-subjectdistancerange-3": "Vun Fähn",
+       "exif-gpslatitude-n": "Breed nöödlesch noh_m GPS",
+       "exif-gpslatitude-s": "Breed södlesch noh_m GPS",
+       "exif-gpslongitude-e": "Läng ößlesch noh_m GPS",
+       "exif-gpslongitude-w": "Läng weßlesch noh_m GPS",
+       "exif-gpsaltitude-above-sealevel": "{{PLURAL:$1|Eine|$1|Keine}} Meter övver em Meer",
+       "exif-gpsaltitude-below-sealevel": "{{PLURAL:$1|Eine|$1|Keine}} Meter onger em Meer",
+       "exif-gpsstatus-a": "De Messung fum GPS es aam Loufe",
+       "exif-gpsstatus-v": "Engeropperabilität fun Messunge noh_m GPS",
+       "exif-gpsmeasuremode-2": "Zweidimensjonal Mohß fum GPS",
+       "exif-gpsmeasuremode-3": "Dreidimensjonal Mohß fum GPS",
+       "exif-gpsspeed-k": "Killomeeter en de Shtondt noh_m GPS",
+       "exif-gpsspeed-m": "Miehle en de Shtondt noh_m GPS",
+       "exif-gpsspeed-n": "Knote noh_m GPS",
+       "exif-gpsdestdistance-k": "Killometer",
+       "exif-gpsdestdistance-m": "Meile",
+       "exif-gpsdestdistance-n": "Seemeile",
+       "exif-gpsdop-excellent": "Supper ($1)",
+       "exif-gpsdop-good": "Jood ($1)",
+       "exif-gpsdop-moderate": "Et jeiht ($1)",
+       "exif-gpsdop-fair": "Schlapp ($1)",
+       "exif-gpsdop-poor": "Schlääsch ($1)",
+       "exif-objectcycle-a": "Bloß es Murjens",
+       "exif-objectcycle-p": "Bloß es Oovens",
+       "exif-objectcycle-b": "Es Murjens un es Oovens",
+       "exif-gpsdirection-t": "Wohre Rechtung noh_m GPS",
+       "exif-gpsdirection-m": "Mangneetesche Rechtung noh_m GPS",
+       "exif-ycbcrpositioning-1": "En de Medde",
+       "exif-ycbcrpositioning-2": "Dropjesaz",
+       "exif-dc-contributor": "Metwerker, Metmaacher",
+       "exif-dc-coverage": "Zick un Jääjend, woh dat Meedijum dren jehööt",
+       "exif-dc-date": "Dattum udder Daate",
+       "exif-dc-publisher": "Verläjer udder Veröffentlescher",
+       "exif-dc-relation": "Medije, di domet zosamme hange",
+       "exif-dc-rights": "Rääschde",
+       "exif-dc-source": "Dat Beld, wo et her kütt",
+       "exif-dc-type": "Meedije_Zoot",
+       "exif-rating-rejected": "Affjelehnt",
+       "exif-isospeedratings-overflow": "Övver 65535",
+       "exif-maxaperturevalue-value": "$1 <i lang=\"en\" xml:lang=\"en\" title=\"Öffnong\">APEX</i> (f/$2)",
+       "exif-iimcategory-ace": "Kunß, Kultuur, Vermaache",
+       "exif-iimcategory-clj": "Verbräsche, Rääsch",
+       "exif-iimcategory-dis": "Onjlöck, Onfäll, Kattaßtroofe",
+       "exif-iimcategory-fin": "Jeschäff, Weetschaffte",
+       "exif-iimcategory-edu": "Ußbeldong. Liehre",
+       "exif-iimcategory-evn": "Ömwält, Natuur",
+       "exif-iimcategory-hth": "Jesondheit",
+       "exif-iimcategory-hum": "Enträße vun de Minsche",
+       "exif-iimcategory-lab": "Ärbeid",
+       "exif-iimcategory-lif": "Freije Zigg",
+       "exif-iimcategory-pol": "Poletek",
+       "exif-iimcategory-rel": "Jlaube un Jläuve",
+       "exif-iimcategory-sci": "Weßeschavv un Täschnek",
+       "exif-iimcategory-soi": "Meddenander vun de Minsche",
+       "exif-iimcategory-spo": "Shpocht",
+       "exif-iimcategory-war": "Kreesch, Zängk, Opshtänd",
+       "exif-iimcategory-wea": "Wädder",
+       "exif-urgency-normal": "Nommahl ($1)",
+       "exif-urgency-low": "Klein ($1)",
+       "exif-urgency-high": "Huh ($1)",
+       "exif-urgency-other": "Selfs faßjelaat ($1)"
+}
diff --git a/languages/i18n/exif/ku-latn.json b/languages/i18n/exif/ku-latn.json
new file mode 100644 (file)
index 0000000..6ce9ead
--- /dev/null
@@ -0,0 +1,78 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Bangin",
+                       "Bikarhêner",
+                       "George Animal",
+                       "Ghybu",
+                       "Gomada"
+               ]
+       },
+       "exif-imagewidth": "Panbûn",
+       "exif-imagelength": "Dirêjbûn",
+       "exif-orientation": "Beralîkirin",
+       "exif-jpeginterchangeformatlength": "Byte'ên daneya JPEG",
+       "exif-datetime": "Dem û demjimêra guherandina dosyeyê",
+       "exif-imagedescription": "Navê wêne",
+       "exif-model": "Modela kamerayê",
+       "exif-software": "Nivîsbarîya tê bikaranîn",
+       "exif-artist": "Nûser",
+       "exif-exifversion": "Versiyona exif",
+       "exif-pixelxdimension": "Firehiya wêne",
+       "exif-pixelydimension": "Dirêjiya wêne",
+       "exif-usercomment": "Şîroveyên bikarhêner",
+       "exif-datetimedigitized": "Dema pencekîkirinê",
+       "exif-exposuretime-format": "$1 sanî ($2)",
+       "exif-brightnessvalue": "Zelaliya APEX",
+       "exif-flash": "Flaş",
+       "exif-filesource": "Çavkaniya pelê",
+       "exif-contrast": "Kontrast",
+       "exif-gpslatitude": "Hêlîpan",
+       "exif-gpslongitude": "Hêlîlar",
+       "exif-objectname": "Sernavê kurt",
+       "exif-source": "Çavkanî",
+       "exif-writer": "Nivîskar",
+       "exif-languagecode": "Ziman",
+       "exif-iimcategory": "Kategorî",
+       "exif-cameraownername": "Xwediyê kamerayê",
+       "exif-label": "Etîket",
+       "exif-copyrighted": "Rewşa telîfê",
+       "exif-disclaimer": "Ferexetname",
+       "exif-unknowndate": "Dîroka nayê zanîn",
+       "exif-orientation-1": "Normal",
+       "exif-componentsconfiguration-0": "tune ye",
+       "exif-exposureprogram-1": "Manûel",
+       "exif-exposureprogram-2": "Programa normal",
+       "exif-subjectdistance-value": "$1 metre",
+       "exif-meteringmode-0": "Nenas",
+       "exif-meteringmode-255": "Yên din",
+       "exif-lightsource-0": "Nenas",
+       "exif-lightsource-9": "Hewaya baş",
+       "exif-lightsource-10": "Hewaya bi ewr",
+       "exif-scenecapturetype-0": "Standart",
+       "exif-scenecapturetype-1": "Bergeh",
+       "exif-scenecapturetype-2": "Portre",
+       "exif-gaincontrol-0": "Nîne",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Nerm",
+       "exif-saturation-0": "Normal",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Nerm",
+       "exif-subjectdistancerange-0": "Nenas",
+       "exif-gpsspeed-m": "Serê saetê mîl",
+       "exif-gpsdestdistance-k": "Kîlometre",
+       "exif-gpsdestdistance-m": "Mîl",
+       "exif-objectcycle-a": "Tenê sibehan",
+       "exif-objectcycle-p": "Tenê êvaran",
+       "exif-dc-date": "Dîrok",
+       "exif-dc-rights": "Maf",
+       "exif-iimcategory-edu": "Perwerdehî",
+       "exif-iimcategory-evn": "Hawirdor",
+       "exif-iimcategory-hth": "Tenduristî",
+       "exif-iimcategory-pol": "Siyaset",
+       "exif-iimcategory-rel": "Dîn û bawerî",
+       "exif-iimcategory-sci": "Zanist û teknolojî",
+       "exif-iimcategory-spo": "Werzîş",
+       "exif-iimcategory-war": "Şer, pevçûn û alozî",
+       "exif-iimcategory-wea": "Hewa"
+}
diff --git a/languages/i18n/exif/ky.json b/languages/i18n/exif/ky.json
new file mode 100644 (file)
index 0000000..f61cce1
--- /dev/null
@@ -0,0 +1,110 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Chorobek",
+                       "Growingup",
+                       "Викиней"
+               ]
+       },
+       "exif-imagewidth": "Туурасы",
+       "exif-imagelength": "Бийиктиги",
+       "exif-imagedescription": "Сүрөт аты",
+       "exif-artist": "Автор",
+       "exif-pixelxdimension": "Сүрөттүн туурасы",
+       "exif-pixelydimension": "Сүрөттүн бийиктиги",
+       "exif-usercomment": "Колдонуучунун комментарийи",
+       "exif-relatedsoundfile": "Байланыштуу аудио-файл",
+       "exif-fnumber": "Диафрагманын саны",
+       "exif-lightsource": "Жарыктын булагы",
+       "exif-flash": "Жарк",
+       "exif-filesource": "Файлдын булагы",
+       "exif-scenetype": "Сахнанын түрү",
+       "exif-contrast": "Карама-каршылык",
+       "exif-gpslatitude": "Кеңдик",
+       "exif-gpslongitude": "Узундук",
+       "exif-gpsaltitude": "Бийиктик",
+       "exif-gpstimestamp": "GPS убакыты (атомдук саат)",
+       "exif-gpsspeedref": "Ылдамдыктын өлчөө бирдиги",
+       "exif-gpsdatestamp": "Дата",
+       "exif-jpegfilecomment": "JPEG-файл үчүн эскертүү",
+       "exif-keywords": "Ачкыч сөздөр",
+       "exif-countrydest": "Көрсөтүлгөн өлкө",
+       "exif-citydest": "Көрсөтүлгөн шаар",
+       "exif-objectname": "Кыска аталышы",
+       "exif-source": "Булак",
+       "exif-contact": "Байланыш маалыматы",
+       "exif-writer": "Тексттин автору",
+       "exif-languagecode": "Тили",
+       "exif-iimversion": "IIM версиясы",
+       "exif-iimcategory": "Категория",
+       "exif-identifier": "Идентификатор",
+       "exif-label": "Белги",
+       "exif-rating": "Баа (5тен)",
+       "exif-copyrighted": "Автордук-укуктук статус",
+       "exif-copyrightowner": "Автордук укуктардын ээси",
+       "exif-usageterms": "Колдонуу шарттары",
+       "exif-pngfilecomment": "PNG-файл үчүн эскертүү",
+       "exif-disclaimer": "Жоопкерчиликтен баш тартуу",
+       "exif-contentwarning": "Мазмун жөнүндө эскертүү",
+       "exif-giffilecomment": "GIF-файл үчүн эскертүү",
+       "exif-intellectualgenre": "Объекттин түрү",
+       "exif-subjectnewscode": "Теманын коду",
+       "exif-compression-1": "Кыстырылбаган",
+       "exif-copyrighted-true": "Автордук укук менен корголгон",
+       "exif-copyrighted-false": "Автордук укук абалы көрсөтүлгөн эмес",
+       "exif-unknowndate": "Белгисиз дата",
+       "exif-orientation-1": "Нормалдуу",
+       "exif-exposureprogram-1": "Кол менен",
+       "exif-exposureprogram-2": "Программалык режим (нормалдуу)",
+       "exif-subjectdistance-value": "$1 метр",
+       "exif-meteringmode-0": "Белгисиз",
+       "exif-meteringmode-1": "Орточо",
+       "exif-meteringmode-5": "Матрицалуу",
+       "exif-meteringmode-6": "Жарым-жартылай",
+       "exif-meteringmode-255": "Башка",
+       "exif-lightsource-0": "Белгисиз",
+       "exif-lightsource-4": "Жарк",
+       "exif-lightsource-11": "Көлөкө",
+       "exif-lightsource-255": "Жарыктын башка булагы",
+       "exif-flash-mode-3": "автоматтык режим",
+       "exif-focalplaneresolutionunit-2": "дюйм",
+       "exif-sensingmethod-1": "Аныкталбаган",
+       "exif-scenecapturetype-0": "Стандарттуу",
+       "exif-scenecapturetype-1": "Ландшафт",
+       "exif-scenecapturetype-2": "Портрет",
+       "exif-scenecapturetype-3": "Түнкү тартуу",
+       "exif-gaincontrol-0": "Жок",
+       "exif-contrast-0": "Кадимки",
+       "exif-contrast-1": "Жумшак жогорулатуу",
+       "exif-contrast-2": "Катуу жогорулатуу",
+       "exif-saturation-0": "Кадимки",
+       "exif-sharpness-0": "Кадимки",
+       "exif-sharpness-1": "Жумшак жогорулатуу",
+       "exif-sharpness-2": "Катуулатуу",
+       "exif-subjectdistancerange-0": "Белгисиз",
+       "exif-subjectdistancerange-1": "Макротартуу",
+       "exif-subjectdistancerange-2": "Жакын аралыктагы тартуу",
+       "exif-gpsdestdistance-k": "Километр",
+       "exif-gpsdestdistance-m": "Миля",
+       "exif-gpsdop-excellent": "Мыкты ($1)",
+       "exif-gpsdop-good": "Жакшы ($1)",
+       "exif-gpsdop-moderate": "Орточо ($1)",
+       "exif-gpsdop-poor": "Начар ($1)",
+       "exif-dc-contributor": "Авторлоштор",
+       "exif-dc-date": "Дата(лар)",
+       "exif-dc-publisher": "Бастыруучу",
+       "exif-dc-rights": "Укуктар",
+       "exif-dc-source": "Баштапкы медиа",
+       "exif-dc-type": "Медианын түрү",
+       "exif-iimcategory-fin": "Экономика жана бизнес",
+       "exif-iimcategory-edu": "Билим",
+       "exif-iimcategory-evn": "Айлана чөйрө",
+       "exif-iimcategory-hth": "Ден соолук",
+       "exif-iimcategory-lab": "Эмгек",
+       "exif-iimcategory-pol": "Саясат",
+       "exif-iimcategory-rel": "Дин жана ишеним",
+       "exif-iimcategory-sci": "Илим жана техника",
+       "exif-iimcategory-soi": "Социалдык маселелер",
+       "exif-iimcategory-spo": "Спорт",
+       "exif-iimcategory-wea": "Аба-ырайы"
+}
diff --git a/languages/i18n/exif/la.json b/languages/i18n/exif/la.json
new file mode 100644 (file)
index 0000000..e85e51d
--- /dev/null
@@ -0,0 +1,165 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Andrew Dalby",
+                       "Autokrator",
+                       "Laurentianus",
+                       "Omnipaedista",
+                       "SPQRobin",
+                       "UV"
+               ]
+       },
+       "exif-imagewidth": "Amplitudo",
+       "exif-imagelength": "Altitudo",
+       "exif-bitspersample": "Biti per componentem",
+       "exif-compression": "Schema compressionis",
+       "exif-photometricinterpretation": "Compositio elementorum imaginalium",
+       "exif-orientation": "Orientatio",
+       "exif-samplesperpixel": "Numerus componentum",
+       "exif-ycbcrsubsampling": "Ratio subexemplationis Y / C",
+       "exif-ycbcrpositioning": "situatio Y et C",
+       "exif-xresolution": "Resolutio horizontalis",
+       "exif-yresolution": "Resolutio verticalis",
+       "exif-jpeginterchangeformatlength": "Chiliocteti datorum JPEG",
+       "exif-whitepoint": "Chromaticitas puncti albi",
+       "exif-primarychromaticities": "Chromaticitates primariae",
+       "exif-datetime": "Dies et hora mutationis",
+       "exif-imagedescription": "Descriptio imaginis",
+       "exif-model": "Typus photomachinae",
+       "exif-artist": "Auctor",
+       "exif-exifversion": "Redactio modi \"Exif\"",
+       "exif-colorspace": "Spatium colorimetricum",
+       "exif-pixelxdimension": "Amplitudo imaginis",
+       "exif-pixelydimension": "Altitudo imaginis",
+       "exif-usercomment": "Adnota usoris",
+       "exif-relatedsoundfile": "Fasciculus soni relatus",
+       "exif-datetimeoriginal": "Dies et tempus creationis",
+       "exif-datetimedigitized": "Dies digitizationis",
+       "exif-exposuretime": "Tempus expositionis",
+       "exif-exposuretime-format": "$1 sec ($2)",
+       "exif-fnumber": "Numerus F",
+       "exif-exposureprogram": "Programma expositionis",
+       "exif-spectralsensitivity": "Sensitivitas spectralis",
+       "exif-shutterspeedvalue": "Celeritas foriculae APEX",
+       "exif-aperturevalue": "Apertura APEX",
+       "exif-brightnessvalue": "Luminositas APEX",
+       "exif-exposurebiasvalue": "Obliquitas expositionis",
+       "exif-meteringmode": "Modus mensurae",
+       "exif-lightsource": "Fons lucis",
+       "exif-flash": "Organum fulminescens",
+       "exif-subjectarea": "Area subiecti",
+       "exif-flashenergy": "Energia organi fulminescentis",
+       "exif-focalplanexresolution": "Resolutio horizontalis plani focalis",
+       "exif-focalplaneyresolution": "Resolutio verticalis plani focalis",
+       "exif-subjectlocation": "Localizatio subiecti",
+       "exif-exposureindex": "Index expositionis",
+       "exif-sensingmethod": "Methodus sensationis",
+       "exif-filesource": "Fons fasciculi",
+       "exif-scenetype": "Typus scaenae",
+       "exif-exposuremode": "Modus expositionis",
+       "exif-whitebalance": "Compensatio Alba",
+       "exif-gaincontrol": "Censura campi",
+       "exif-contrast": "Contentio",
+       "exif-saturation": "Saturatio",
+       "exif-sharpness": "Exacerbatio",
+       "exif-imageuniqueid": "Identificatio imaginis unica",
+       "exif-gpslatitude": "Latitudo",
+       "exif-gpslongitude": "Longitudo",
+       "exif-gpsaltituderef": "Notatio altitudinis",
+       "exif-gpsaltitude": "Altitudo",
+       "exif-gpstimestamp": "Tempus GPS (horologium atomicum)",
+       "exif-gpssatellites": "Satellites in mensura adhibiti",
+       "exif-gpsstatus": "Status receptoris",
+       "exif-gpsmeasuremode": "Modus mensurae",
+       "exif-gpsdop": "Amussis mensurae",
+       "exif-gpsspeedref": "Unitum celeritatis",
+       "exif-gpsspeed": "Celeritas receptoris GPS",
+       "exif-gpstrack": "Directio motus",
+       "exif-gpsimgdirection": "Directio imaginis",
+       "exif-gpsmapdatum": "Data percensionis geodaeticae adhibita",
+       "exif-gpsdestlatitude": "Latitudo destinationis",
+       "exif-gpsdestlongitude": "Longitudo destinationis",
+       "exif-gpsareainformation": "Nomen areae GPS",
+       "exif-gpsdatestamp": "Dies GPS",
+       "exif-gpsdifferential": "Correctio differentialis GPS",
+       "exif-source": "Fons",
+       "exif-compression-1": "Incompressus",
+       "exif-unknowndate": "Dies ignota",
+       "exif-orientation-1": "Normalis",
+       "exif-orientation-3": "Converta 180°",
+       "exif-planarconfiguration-1": "formatio dilatata",
+       "exif-planarconfiguration-2": "formatio planaris",
+       "exif-componentsconfiguration-0": "non existit",
+       "exif-exposureprogram-0": "Infinita",
+       "exif-exposureprogram-1": "Manuale",
+       "exif-exposureprogram-2": "Programma normale",
+       "exif-exposureprogram-3": "Prioritas aperturae",
+       "exif-subjectdistance-value": "$1 metra",
+       "exif-meteringmode-0": "Ignotus",
+       "exif-meteringmode-1": "Media",
+       "exif-meteringmode-2": "Centrogravata mediocre",
+       "exif-meteringmode-3": "Unipunctualis",
+       "exif-meteringmode-4": "Multipunctualis",
+       "exif-meteringmode-5": "Exemplar",
+       "exif-meteringmode-6": "Partialis",
+       "exif-meteringmode-255": "Alia",
+       "exif-lightsource-0": "Ignota",
+       "exif-lightsource-1": "Lumen diei",
+       "exif-lightsource-2": "Fluorescens",
+       "exif-lightsource-3": "Wolframium (lumen incandescens)",
+       "exif-lightsource-4": "Organum fulminescens",
+       "exif-lightsource-11": "Umbra",
+       "exif-lightsource-15": "Fluorescentia alba (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Lumen accommodum A",
+       "exif-lightsource-18": "Lumen accommodum B",
+       "exif-lightsource-19": "Lumen accommodum C",
+       "exif-lightsource-24": "Wolframium studiorii normalizatum per ISO",
+       "exif-lightsource-255": "Alius fons luminis",
+       "exif-flash-fired-0": "Organum fulminescens non accendit",
+       "exif-flash-fired-1": "Organum fulminescens accendit",
+       "exif-flash-return-0": "nullum stroboscopium functionem detectionis reddat",
+       "exif-flash-return-2": "stroboscopium lumen detectum non reddat",
+       "exif-flash-return-3": "stroboscopium lumen detectum reddat",
+       "exif-flash-mode-1": "lumen organi fulminescentis necessarium",
+       "exif-flash-mode-2": "suppressio organi fulminescentis necessaria",
+       "exif-flash-mode-3": "Modus automaticus",
+       "exif-flash-function-1": "Nulla functio fulminescens",
+       "exif-focalplaneresolutionunit-2": "unciae",
+       "exif-sensingmethod-1": "Infinitus",
+       "exif-sensingmethod-7": "Sensor trilinearis",
+       "exif-exposuremode-0": "Expositio automatica",
+       "exif-exposuremode-1": "Expositio manualis",
+       "exif-exposuremode-2": "Latitudo expositionis",
+       "exif-whitebalance-0": "Compensatio alba automatica",
+       "exif-whitebalance-1": "Compensatio alba manualis",
+       "exif-scenecapturetype-0": "Commoda",
+       "exif-scenecapturetype-3": "Nocturna",
+       "exif-gaincontrol-0": "Nullum",
+       "exif-gaincontrol-1": "Augmentum demisse positivum",
+       "exif-gaincontrol-2": "Augmentum alte positivum",
+       "exif-gaincontrol-3": "Augmentum demisse negativum",
+       "exif-gaincontrol-4": "Augmentum alte negativum",
+       "exif-contrast-0": "Normalis",
+       "exif-saturation-0": "Normalis",
+       "exif-saturation-1": "Saturatio demissa",
+       "exif-saturation-2": "Saturatio alta",
+       "exif-sharpness-0": "Normalis",
+       "exif-subjectdistancerange-0": "Ignota",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-gpslatitude-n": "Latitudo borealis",
+       "exif-gpslatitude-s": "Latitudo australis",
+       "exif-gpslongitude-e": "Longitudo orientalis",
+       "exif-gpslongitude-w": "Longitudo occidentalis",
+       "exif-gpsstatus-a": "Mensura in progressu",
+       "exif-gpsstatus-v": "Interoperabilitas mensurae",
+       "exif-gpsmeasuremode-2": "Mensura 2-dimensionalis",
+       "exif-gpsmeasuremode-3": "Mensura 3-dimensionalis",
+       "exif-gpsspeed-k": "Chiliometra per horam",
+       "exif-gpsspeed-m": "Milia per horam",
+       "exif-gpsspeed-n": "Nodi",
+       "exif-gpsdestdistance-k": "Kilometra",
+       "exif-gpsdestdistance-m": "Milia",
+       "exif-gpsdestdistance-n": "Milia nautica",
+       "exif-gpsdirection-t": "Directio vera",
+       "exif-gpsdirection-m": "Directio magnetica"
+}
diff --git a/languages/i18n/exif/lb.json b/languages/i18n/exif/lb.json
new file mode 100644 (file)
index 0000000..8ddd137
--- /dev/null
@@ -0,0 +1,341 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Robby",
+                       "Soued031"
+               ]
+       },
+       "exif-imagewidth": "Breet",
+       "exif-imagelength": "Längt",
+       "exif-bitspersample": "Bite pro Faarfkomponent",
+       "exif-compression": "Aart vun der Kompressioun",
+       "exif-photometricinterpretation": "Pixelzesummesetzung",
+       "exif-orientation": "Kameraausriichtung",
+       "exif-samplesperpixel": "Zuel vun de Komponenten",
+       "exif-planarconfiguration": "Datenausriichtung",
+       "exif-ycbcrsubsampling": "Subsampling-Taux vun Y bis C",
+       "exif-ycbcrpositioning": "Y an C Positionéierung",
+       "exif-xresolution": "Horizontal Opléisung",
+       "exif-yresolution": "Vertikal Opléisung",
+       "exif-stripoffsets": "Plaz wou de Fichier vum Bild gespäichert ass",
+       "exif-rowsperstrip": "Zuel vun den Zeile pro Strëpp",
+       "exif-stripbytecounts": "Byte pro kompriméiert Strëpp",
+       "exif-jpeginterchangeformat": "Offset zou JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Gréisst vun de JPEG-Daten a Byten",
+       "exif-whitepoint": "Manuell mat Miessung",
+       "exif-primarychromaticities": "Faarwe vun de primäre Faarwen",
+       "exif-ycbcrcoefficients": "YCbCr-Koeffizienten",
+       "exif-referenceblackwhite": "Schwaarz/Wäiss-Referenzpunkten",
+       "exif-datetime": "Späicherzäitpunkt",
+       "exif-imagedescription": "Numm vum Bild",
+       "exif-make": "Fabrikant",
+       "exif-model": "Modell",
+       "exif-software": "Benotzte Software",
+       "exif-artist": "Auteur",
+       "exif-copyright": "Auteursrechter",
+       "exif-exifversion": "Exif-Versioun",
+       "exif-flashpixversion": "Ënnerstëtzte Flashpix-Versioun",
+       "exif-colorspace": "Faarfraum",
+       "exif-componentsconfiguration": "Bedeitung vun eenzelne Komponenten",
+       "exif-compressedbitsperpixel": "Kompriméiert Bite pro Pixel",
+       "exif-pixelxdimension": "Breet vum Bild",
+       "exif-pixelydimension": "Héicht vum Bild",
+       "exif-usercomment": "Bemierkunge vum Benotzer",
+       "exif-relatedsoundfile": "Tounfichier deen dozou gehéiert",
+       "exif-datetimeoriginal": "Erfaassungszäitpunkt",
+       "exif-datetimedigitized": "Digitaliséierungszäitpunkt",
+       "exif-subsectime": "Späicherzäitpunkt (1/100 s)",
+       "exif-subsectimeoriginal": "Erfaassungszäitpunkt (1/100 s)",
+       "exif-subsectimedigitized": "Digitaliséirungszäitpunkt (1/100 s)",
+       "exif-exposuretime": "Beliichtungsdauer",
+       "exif-exposuretime-format": "$1 Sekonnen ($2)",
+       "exif-fnumber": "Blend",
+       "exif-exposureprogram": "Beliichtungsprogramm",
+       "exif-spectralsensitivity": "Spectral Sensitivitéit",
+       "exif-isospeedratings": "Film- oder Sensorempfindlechkeet (ISO)",
+       "exif-shutterspeedvalue": "APEX Beliichtungszäit",
+       "exif-aperturevalue": "APEX Blendewäert",
+       "exif-brightnessvalue": "APEX Hellegkeet",
+       "exif-exposurebiasvalue": "Beliichtungsvirgab",
+       "exif-maxaperturevalue": "Gréisste Blend",
+       "exif-subjectdistance": "Distanz zum Sujet",
+       "exif-meteringmode": "Miessmethod",
+       "exif-lightsource": "Liichtquell",
+       "exif-flash": "Blëtz",
+       "exif-focallength": "Brennwäit",
+       "exif-subjectarea": "Beräich",
+       "exif-flashenergy": "Blëtzstäerkt",
+       "exif-focalplanexresolution": "Sensoropléisung horizontal",
+       "exif-focalplaneyresolution": "Sensoropléisung vertikal",
+       "exif-focalplaneresolutionunit": "Eenheet vun der Sensoropléisung",
+       "exif-subjectlocation": "Motivstanduert",
+       "exif-exposureindex": "Beliichtungsindex",
+       "exif-sensingmethod": "Miessmethod",
+       "exif-filesource": "Quell vum Fichier",
+       "exif-scenetype": "Typ vun der Szeen",
+       "exif-customrendered": "Benotzerdefinéiert Bildveraarbechtung",
+       "exif-exposuremode": "Beliichtungsmodus",
+       "exif-whitebalance": "Wäissofgläich",
+       "exif-digitalzoomratio": "Digitalzoom",
+       "exif-focallengthin35mmfilm": "Brennwäit (Klengbildäquivalent)",
+       "exif-scenecapturetype": "Aart vun der Opnam",
+       "exif-gaincontrol": "Verstäerkung",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Saturatioun",
+       "exif-sharpness": "Schäerft",
+       "exif-devicesettingdescription": "Beschreiwung vun den Astellunge vum Apparat",
+       "exif-subjectdistancerange": "Motivdistanz",
+       "exif-imageuniqueid": "Bild-ID",
+       "exif-gpsversionid": "Versioun vum GPS-Tag",
+       "exif-gpslatituderef": "nördlech oder südlech Breet",
+       "exif-gpslatitude": "Geografesch Breet",
+       "exif-gpslongituderef": "östlech oder westlech geografesch Längt",
+       "exif-gpslongitude": "Geografesch Längt",
+       "exif-gpsaltituderef": "Referenzhéicht",
+       "exif-gpsaltitude": "Héicht",
+       "exif-gpstimestamp": "GPS-Zäit",
+       "exif-gpssatellites": "Satelitten déi fir d'Moosse benotzt goufen",
+       "exif-gpsstatus": "Status vum Empfänger",
+       "exif-gpsmeasuremode": "Moossmethod",
+       "exif-gpsdop": "Prezisioun vun der Miessung",
+       "exif-gpsspeedref": "Eenheet vun der Vitesse",
+       "exif-gpsspeed": "Vitesse vum GPS-Empfänger",
+       "exif-gpstrackref": "Referenz fir d'Bewegungsrichtung",
+       "exif-gpstrack": "Bewegungsrichtung",
+       "exif-gpsimgdirectionref": "Referenz fir d'Ausriichtung vum Bild",
+       "exif-gpsimgdirection": "Bildrichtung",
+       "exif-gpsmapdatum": "Geodäteschen Datum benotzt",
+       "exif-gpsdestlatituderef": "Referenz fir d'Breet",
+       "exif-gpsdestlatitude": "Breet",
+       "exif-gpsdestlongituderef": "Referenz fir d'Längt",
+       "exif-gpsdestlongitude": "Längt",
+       "exif-gpsdestbearingref": "Referenz fir d'Motivrichtung",
+       "exif-gpsdestbearing": "Richtung vum Motiv",
+       "exif-gpsdestdistanceref": "Referenz fir d'Distanz bis bei den Objet (vun der Foto)",
+       "exif-gpsdestdistance": "Motivdistanz",
+       "exif-gpsprocessingmethod": "Numm vun der GPS-Prozedur-Method",
+       "exif-gpsareainformation": "Numm vun der GPS-Géigend",
+       "exif-gpsdatestamp": "GPS-Datum",
+       "exif-gpsdifferential": "GPS-Differentialverbesserung",
+       "exif-jpegfilecomment": "Bemierkung zum JPEG-Fichier",
+       "exif-keywords": "Stéchwierder",
+       "exif-worldregioncreated": "Welt-Regioun an där d'Bild gemaach gouf",
+       "exif-countrycreated": "Land an deem d'Bild gemaach gouf",
+       "exif-countrycodecreated": "Code fir d'Land an deem d'Bild gemaach gouf",
+       "exif-provinceorstatecreated": "Provënz oder Staat an deem d'Bild gemaach gouf",
+       "exif-citycreated": "Stad an där d'Bild gemaach gouf",
+       "exif-sublocationcreated": "Deel vun der Stad an deem d'Bild gemaach gouf",
+       "exif-worldregiondest": "Gewise Welt-Regioun",
+       "exif-countrydest": "Gewisent Land",
+       "exif-countrycodedest": "Code vum gewisene Land",
+       "exif-provinceorstatedest": "Gewise Provënz oder Deel vun engem Land",
+       "exif-citydest": "Gewise Stad",
+       "exif-sublocationdest": "Gewisenen Deel vun der Stad",
+       "exif-objectname": "Kuerzen Titel",
+       "exif-specialinstructions": "Besonnesch Instruktiounen",
+       "exif-headline": "Iwwerschrëft",
+       "exif-source": "Quell",
+       "exif-editstatus": "Redaktionnelle Statut vum Bild",
+       "exif-urgency": "Urgence",
+       "exif-fixtureidentifier": "Numm vun der Rubrik",
+       "exif-locationdest": "Gewise Plaz",
+       "exif-locationdestcode": "Code fir déi gewise Plaz",
+       "exif-objectcycle": "Zäit vum Dag fir deen dëse Fichier geduecht ass",
+       "exif-contact": "Kontaktinformatioun",
+       "exif-writer": "Auteur",
+       "exif-languagecode": "Sprooch",
+       "exif-iimversion": "IIM-Versioun",
+       "exif-iimcategory": "Kategorie",
+       "exif-iimsupplementalcategory": "Zousätzlech Kategorien",
+       "exif-datetimeexpires": "Net benotzen nom",
+       "exif-datetimereleased": "Erausginn den",
+       "exif-originaltransmissionref": "Geo-Code vun der Plaz vu wou d'Foto iwwermëttelt gouf",
+       "exif-identifier": "Identifiant",
+       "exif-lens": "Objektiv dat benotzt gouf",
+       "exif-serialnumber": "Seriennummer vun der Kamera",
+       "exif-cameraownername": "Besëtzer vun der Kamera",
+       "exif-label": "Etikett",
+       "exif-datetimemetadata": "Datum vun der leschter Ännerung vun de Metadaten",
+       "exif-nickname": "Informellen Numm vum Bild",
+       "exif-rating": "Bewäertung (vu 5)",
+       "exif-rightscertificate": "Zertifikat vun der Gestioun vun de Rechter",
+       "exif-copyrighted": "Copyright Status",
+       "exif-copyrightowner": "Titulaire vun den Auteursrechter",
+       "exif-usageterms": "Benotzungsbedingungen",
+       "exif-webstatement": "Omline Copyright Deklaratioun",
+       "exif-originaldocumentid": "Identifikatiounsnummer vum Original-Dokument",
+       "exif-licenseurl": "URL vum Copyright (Lizenz)",
+       "exif-morepermissionsurl": "Alternativ Lizenzinformatiounen",
+       "exif-attributionurl": "Wann dëst Wierk weiderbenotzt gëtt, da linkt w.e.g. op",
+       "exif-preferredattributionname": "Wann dëst Wierk weiderbenotzt gëtt, da nennt w.e.g.",
+       "exif-pngfilecomment": "Bemierkung zum PNG-Fichier",
+       "exif-disclaimer": "Limitatioun vun der Responsabilitéit",
+       "exif-contentwarning": "Warnung iwwer den Inhalt",
+       "exif-giffilecomment": "Bemierkung zum GIF-Fichier",
+       "exif-intellectualgenre": "Typ vum Element",
+       "exif-subjectnewscode": "Code vum Sujet",
+       "exif-event": "Duergestallten Evenement",
+       "exif-organisationinimage": "Organisatioun um Bild",
+       "exif-personinimage": "Persoun um Bild",
+       "exif-originalimageheight": "Héicht vum Bild virum Ofschneiden",
+       "exif-originalimagewidth": "Breet vum Bild virum Ofschneiden",
+       "exif-compression-1": "Onkompriméiert",
+       "exif-compression-6": "JPEG (al)",
+       "exif-copyrighted-true": "Duerch Copyright geschützt",
+       "exif-copyrighted-false": "Copyright status net agestallt",
+       "exif-photometricinterpretation-1": "Schwaarz a wäiss (Schwaarz ass 0)",
+       "exif-unknowndate": "Onbekannten Datum",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Horizontal gedréit",
+       "exif-orientation-3": "Ëm 180° gedréit",
+       "exif-orientation-4": "Vertikal gedréit",
+       "exif-orientation-5": "90° géint d'Richtung vun den Zäre vun der Auer gedréint a vertikal ëmgedréint",
+       "exif-orientation-6": "Ëm 90° an d'Richtung vun den Zäre vun der Auer gedréint",
+       "exif-orientation-7": "90° an der Richtung vun den Zäre vun der Auer gedréint a vertikal ëmgedréint",
+       "exif-orientation-8": "Ëm 90° géint d'Richtung vun den Zäre vun der Auer gedréint",
+       "exif-planarconfiguration-1": "Graffe Format",
+       "exif-planarconfiguration-2": "Planare Format",
+       "exif-colorspace-65535": "Net kalibréiert",
+       "exif-componentsconfiguration-0": "Gëtt et net",
+       "exif-exposureprogram-0": "Onbekannt",
+       "exif-exposureprogram-1": "Manuell",
+       "exif-exposureprogram-2": "Standardprogramm",
+       "exif-exposureprogram-3": "Zäitautomatik",
+       "exif-exposureprogram-4": "Blendenautomatik",
+       "exif-exposureprogram-5": "Kreative Programm (optiméiert fir Déifteschärft)",
+       "exif-exposureprogram-6": "Action-Programm (optiméiert fir kuerz Beliichtungszäiten)",
+       "exif-exposureprogram-7": "Portrait-Programm (fir Fotoe vun no mat engem net-scharfen Hannergrond)",
+       "exif-exposureprogram-8": "Landschaftsopnamen",
+       "exif-subjectdistance-value": "$1 Meter",
+       "exif-meteringmode-0": "Onbekannt",
+       "exif-meteringmode-1": "Duerchschnëttlech",
+       "exif-meteringmode-2": "An der Mëtt zentréiert",
+       "exif-meteringmode-3": "Spotmiessung",
+       "exif-meteringmode-4": "Méifachspotmiessung",
+       "exif-meteringmode-5": "Modell",
+       "exif-meteringmode-6": "Bilddeel",
+       "exif-meteringmode-255": "Onbekannt",
+       "exif-lightsource-0": "Onbekannt",
+       "exif-lightsource-1": "Dageslut",
+       "exif-lightsource-2": "Fluoreszéierend",
+       "exif-lightsource-3": "Tungsten (Liicht wéi vun enger elektrescher Bir)",
+       "exif-lightsource-4": "Blëtz",
+       "exif-lightsource-9": "Schéint Wieder",
+       "exif-lightsource-10": "Wollekeg",
+       "exif-lightsource-11": "Schiet",
+       "exif-lightsource-12": "Dagesliicht fluoreszéiert (D 5700 – 7100 K)",
+       "exif-lightsource-13": "Dageswäiss fluoreszéierend (N 4600 – 5400K)",
+       "exif-lightsource-14": "Kill wäiss fluoreséierent (W 3900 – 4500K)",
+       "exif-lightsource-15": "Wäiss fluoreszéierent (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standardluucht A",
+       "exif-lightsource-18": "Standardluucht B",
+       "exif-lightsource-19": "Standardluucht C",
+       "exif-lightsource-24": "ISO Studio Konschtliicht",
+       "exif-lightsource-255": "Aner Liichtquell",
+       "exif-flash-fired-0": "Ouni Blëtz",
+       "exif-flash-fired-1": "mat Blëtz",
+       "exif-flash-return-0": "keng Funktioun fir d'Reflexioun vum Blëtz festzestellen",
+       "exif-flash-return-2": "keng Reflexioun vum Blëtz festgestallt",
+       "exif-flash-return-3": "Reflexioun vum Blëtz festgestallt",
+       "exif-flash-mode-1": "erzwongene Blëtz",
+       "exif-flash-mode-2": "De Blëtz war ausgeschalt",
+       "exif-flash-mode-3": "Automatik",
+       "exif-flash-function-1": "Ouni Blëtzfonctioun",
+       "exif-flash-redeye-1": "Reduktioun vun de rouden Aen",
+       "exif-focalplaneresolutionunit-2": "Zoll/Inchen",
+       "exif-sensingmethod-1": "Ondefinéiert",
+       "exif-sensingmethod-2": "Een-Chip-Faarfsensor",
+       "exif-sensingmethod-3": "Zwee-Chip-Faarfsensor",
+       "exif-sensingmethod-4": "Dräi-Chip-Faarfsensor",
+       "exif-sensingmethod-5": "Sequentielle raimleche Farwsensor",
+       "exif-sensingmethod-7": "Dräilineare Sensor",
+       "exif-sensingmethod-8": "Sequentielle lineare Farwsensor",
+       "exif-filesource-3": "Digital Kamera",
+       "exif-scenetype-1": "D'Bild gouf photograféiert",
+       "exif-customrendered-0": "Standard",
+       "exif-customrendered-1": "Benotzerdefinéiert",
+       "exif-exposuremode-0": "Automatesch Beliichtung",
+       "exif-exposuremode-1": "Manuell Beliichtung",
+       "exif-exposuremode-2": "Beliichtungsserie",
+       "exif-whitebalance-0": "Automatesche Wäissofgläich",
+       "exif-whitebalance-1": "Manuelle Wäissofgläich",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Landschaft",
+       "exif-scenecapturetype-2": "Portrait",
+       "exif-scenecapturetype-3": "Nuetszeen",
+       "exif-gaincontrol-0": "Keng",
+       "exif-gaincontrol-1": "Kleng",
+       "exif-gaincontrol-2": "High Gain up",
+       "exif-gaincontrol-3": "Low gain down",
+       "exif-gaincontrol-4": "High gain down",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Schwaach",
+       "exif-contrast-2": "Staark",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Niddreg Saturatioun",
+       "exif-saturation-2": "Héich",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Douce",
+       "exif-sharpness-2": "Staark",
+       "exif-subjectdistancerange-0": "Onbekannt",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "No",
+       "exif-subjectdistancerange-3": "wäit ewech",
+       "exif-gpslatitude-n": "nërdlech Breet",
+       "exif-gpslatitude-s": "südlech Breet",
+       "exif-gpslongitude-e": "ëstlech Längt",
+       "exif-gpslongitude-w": "westlech Längt",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|Meter}} iwwer dem Niveau vum Mier",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|Meter}} ënner dem Niveau vum Mier",
+       "exif-gpsstatus-a": "Miessung am Gaang",
+       "exif-gpsstatus-v": "Interoperabilitéit vu der Miessung",
+       "exif-gpsmeasuremode-2": "2-dimensional Miessung",
+       "exif-gpsmeasuremode-3": "3-dimensional Miessung",
+       "exif-gpsspeed-k": "Kilometer pro Stonn",
+       "exif-gpsspeed-m": "Meile pro Stonn",
+       "exif-gpsspeed-n": "Kniet",
+       "exif-gpsdestdistance-k": "Kilometer",
+       "exif-gpsdestdistance-m": "Meilen",
+       "exif-gpsdestdistance-n": "Nautesch Meilen",
+       "exif-gpsdop-excellent": "Exzellent ($1)",
+       "exif-gpsdop-good": "Gutt ($1)",
+       "exif-gpsdop-moderate": "Mëttel ($1)",
+       "exif-gpsdop-fair": "Ongeféier ($1)",
+       "exif-gpsdop-poor": "Schwaach ($1)",
+       "exif-objectcycle-a": "Nëmme moies",
+       "exif-objectcycle-p": "Nëmmen owes",
+       "exif-objectcycle-b": "Souwuel moies wéi owes",
+       "exif-gpsdirection-t": "Tatsächlech Richtung",
+       "exif-gpsdirection-m": "Magnéitesch Richtung",
+       "exif-ycbcrpositioning-1": "Zentréiert",
+       "exif-dc-contributor": "Bedeelegt",
+       "exif-dc-date": "Datum(en)",
+       "exif-dc-publisher": "Editeur",
+       "exif-dc-relation": "Verbonne Medien",
+       "exif-dc-rights": "Rechter",
+       "exif-dc-source": "Ursprong vum Fichier",
+       "exif-dc-type": "Medientyp",
+       "exif-rating-rejected": "Refuséiert",
+       "exif-isospeedratings-overflow": "Méi grouss wéi 65535",
+       "exif-iimcategory-ace": "Konscht, Kultur an Ënnerhalung",
+       "exif-iimcategory-clj": "Kriminalitéit a Recht",
+       "exif-iimcategory-dis": "Katastrofen an Akzidenter",
+       "exif-iimcategory-fin": "Economie a Geschäft",
+       "exif-iimcategory-edu": "Formatioun",
+       "exif-iimcategory-evn": "Ëmwelt",
+       "exif-iimcategory-hth": "Gesondheet",
+       "exif-iimcategory-hum": "Interessen",
+       "exif-iimcategory-lab": "Aarbecht",
+       "exif-iimcategory-lif": "Lifestyle a Fräizäit",
+       "exif-iimcategory-pol": "Politik",
+       "exif-iimcategory-rel": "Relioun a Glawen",
+       "exif-iimcategory-sci": "Wëssenschaft an Technologie",
+       "exif-iimcategory-soi": "Sozial Themen",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Krich, Konflikt an Onrou",
+       "exif-iimcategory-wea": "Wieder",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Niddreg ($1)",
+       "exif-urgency-high": "Héich ($1)",
+       "exif-urgency-other": "Benotzerdefinéiert Prioritéit ($1)"
+}
diff --git a/languages/i18n/exif/lfn.json b/languages/i18n/exif/lfn.json
new file mode 100644 (file)
index 0000000..3309436
--- /dev/null
@@ -0,0 +1,349 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Cgboeree",
+                       "Chabi",
+                       "Katxis",
+                       "Malafaya"
+               ]
+       },
+       "exif-imagewidth": "Largia",
+       "exif-imagelength": "Altia",
+       "exif-bitspersample": "Bitios per composante",
+       "exif-compression": "Scema de densi",
+       "exif-photometricinterpretation": "Composa de pixeles",
+       "exif-orientation": "Orienta",
+       "exif-samplesperpixel": "Cuantia de composantes",
+       "exif-planarconfiguration": "Posa de datos",
+       "exif-ycbcrsubsampling": "Proportio susamplal de Y a C",
+       "exif-ycbcrpositioning": "Posa de Y e C",
+       "exif-xresolution": "Densia orizonal",
+       "exif-yresolution": "Densia vertical",
+       "exif-stripoffsets": "Loca de datos de imaje",
+       "exif-rowsperstrip": "Cuantia de linias per banda",
+       "exif-stripbytecounts": "Baites per banda compresada",
+       "exif-jpeginterchangeformat": "Desloca a SOI JPEG",
+       "exif-jpeginterchangeformatlength": "Baites de datos JPEG",
+       "exif-whitepoint": "Cromaticia de punto blanca",
+       "exif-primarychromaticities": "Cromaticias de colores xef",
+       "exif-ycbcrcoefficients": "Fatores de matris de transforma de spasio de color",
+       "exif-referenceblackwhite": "Duple de valuas referal monocromata",
+       "exif-datetime": "Data e ora de cambia de fix",
+       "exif-imagedescription": "Titulo de imaje",
+       "exif-make": "Fabricor de camera",
+       "exif-model": "Model de camera",
+       "exif-software": "Program usada",
+       "exif-artist": "Autor",
+       "exif-copyright": "Autor con diretos",
+       "exif-exifversion": "Varia de Exif",
+       "exif-flashpixversion": "Varia suportada de Flashpix",
+       "exif-colorspace": "Spasio de color",
+       "exif-componentsconfiguration": "Sinifia de cada composante",
+       "exif-compressedbitsperpixel": "Moda de densi de imaje",
+       "exif-pixelxdimension": "Largia de imaje",
+       "exif-pixelydimension": "Altia de imaje",
+       "exif-usercomment": "Comentas de usor",
+       "exif-relatedsoundfile": "Fix audio relatada",
+       "exif-datetimeoriginal": "Data e ora de jenera de datos",
+       "exif-datetimedigitized": "Data e ora de dijitali",
+       "exif-subsectime": "Susecondos de datetime",
+       "exif-subsectimeoriginal": "Susecondos de datetimeoriginal",
+       "exif-subsectimedigitized": "Susecondos de DateTimeDigitized",
+       "exif-exposuretime": "Tempo de esposa",
+       "exif-exposuretime-format": "$1 sec. ($2)",
+       "exif-fnumber": "Numero F",
+       "exif-exposureprogram": "Program de esposa",
+       "exif-spectralsensitivity": "Sensosia spetral",
+       "exif-isospeedratings": "Gradi ISO de rapidia",
+       "exif-shutterspeedvalue": "Rapidida APEX de cluador",
+       "exif-aperturevalue": "Abri APEX",
+       "exif-brightnessvalue": "Brilia APEX",
+       "exif-exposurebiasvalue": "Compensa APEX de esposa",
+       "exif-maxaperturevalue": "Masima de abri de lente",
+       "exif-subjectdistance": "Distantia de sujeto",
+       "exif-meteringmode": "Moda de determina esposa",
+       "exif-lightsource": "Fonte de lus",
+       "exif-flash": "Flaxador",
+       "exif-focallength": "Distantia focal de lente",
+       "exif-subjectarea": "Area de sujeto",
+       "exif-flashenergy": "Enerjia de flaxador",
+       "exif-focalplanexresolution": "Densia X de plana focal",
+       "exif-focalplaneyresolution": "Densia Y de plana focal",
+       "exif-focalplaneresolutionunit": "Unia de densia de plana focal",
+       "exif-subjectlocation": "Loca de sujeto",
+       "exif-exposureindex": "Indise de esposa",
+       "exif-sensingmethod": "Metodo de sensa",
+       "exif-filesource": "Fonte de fix",
+       "exif-scenetype": "Tipo de sena",
+       "exif-customrendered": "Trata spesial de imaje",
+       "exif-exposuremode": "Moda de esposa",
+       "exif-whitebalance": "Ecuilibra blanca",
+       "exif-digitalzoomratio": "Proportio de zuma dijital",
+       "exif-focallengthin35mmfilm": "Distantia focal en filma de 35 mm",
+       "exif-scenecapturetype": "Tipo de catura de sena",
+       "exif-gaincontrol": "Controla de brilia",
+       "exif-contrast": "Contrasta",
+       "exif-saturation": "Satura",
+       "exif-sharpness": "Agia",
+       "exif-devicesettingdescription": "Descrive de ajustas de aparato",
+       "exif-subjectdistancerange": "Estende de distantia de sujeto",
+       "exif-imageuniqueid": "Numero unica de imaje",
+       "exif-gpsversionid": "Varia de eticeta GPS",
+       "exif-gpslatituderef": "Latitude norde o sude",
+       "exif-gpslatitude": "Latitude",
+       "exif-gpslongituderef": "Lonjitude este o ueste",
+       "exif-gpslongitude": "Lonjitude",
+       "exif-gpsaltituderef": "Refere de altia",
+       "exif-gpsaltitude": "Altia",
+       "exif-gpstimestamp": "Ora GPS (orolojo atomal)",
+       "exif-gpssatellites": "Satelites usada per mesura",
+       "exif-gpsstatus": "State de resetador",
+       "exif-gpsmeasuremode": "Moda de mesura",
+       "exif-gpsdop": "Esatia de mesura",
+       "exif-gpsspeedref": "Unia de rapidia",
+       "exif-gpsspeed": "Rapidia de resetador GPS",
+       "exif-gpstrackref": "Refere per dirije de move",
+       "exif-gpstrack": "Dirije de move",
+       "exif-gpsimgdirectionref": "Refere per dirije de imaje",
+       "exif-gpsimgdirection": "Dirije de imaje",
+       "exif-gpsmapdatum": "Datos jeodesial usada",
+       "exif-gpsdestlatituderef": "Refere per latitude de destina",
+       "exif-gpsdestlatitude": "Latitude de destina",
+       "exif-gpsdestlongituderef": "Refere per lonjitude de destina",
+       "exif-gpsdestlongitude": "Lonjitude de destina",
+       "exif-gpsdestbearingref": "Refere per dirije de destina",
+       "exif-gpsdestbearing": "Dirije de destina",
+       "exif-gpsdestdistanceref": "Refere per distantia a destina",
+       "exif-gpsdestdistance": "Distantia a destina",
+       "exif-gpsprocessingmethod": "Nom de metodo de trata GPS",
+       "exif-gpsareainformation": "Nom de area GPS",
+       "exif-gpsdatestamp": "Data GPS",
+       "exif-gpsdifferential": "Coreti diferensial GPS",
+       "exif-jpegfilecomment": "Comenta de fix JPEG",
+       "exif-keywords": "Parolas de clave",
+       "exif-worldregioncreated": "Rejion de mundo en cual la foto ia es fada",
+       "exif-countrycreated": "Pais en cual la foto ia es fada",
+       "exif-countrycodecreated": "Codigo per la pais en cual la foto ia es fada",
+       "exif-provinceorstatecreated": "Provinse o state en cual la foto ia es fada",
+       "exif-citycreated": "Site en cual la foto ia es fada",
+       "exif-sublocationcreated": "Parte de la site en cual la foto ia es fada",
+       "exif-worldregiondest": "Rejion de mundo mostrada",
+       "exif-countrydest": "Pais mostrada",
+       "exif-countrycodedest": "Codigo per pais mostrada",
+       "exif-provinceorstatedest": "Provinse o state mostrada",
+       "exif-citydest": "Site mostrada",
+       "exif-sublocationdest": "Parte de site mostrada",
+       "exif-objectname": "Titulo corta",
+       "exif-specialinstructions": "Instruis spesial",
+       "exif-headline": "Slogan",
+       "exif-credit": "Atribui/Furnor",
+       "exif-source": "Fonte",
+       "exif-editstatus": "State edital de imaje",
+       "exif-urgency": "Urjentia",
+       "exif-fixtureidentifier": "Nom de fisada",
+       "exif-locationdest": "Loca imajida",
+       "exif-locationdestcode": "Codigo de loca imajida",
+       "exif-objectcycle": "Parte de dia per cual la media es intendeda",
+       "exif-contact": "Informa de contata",
+       "exif-writer": "Scrivor",
+       "exif-languagecode": "Lingua",
+       "exif-iimversion": "Varia IIM",
+       "exif-iimcategory": "Categoria",
+       "exif-iimsupplementalcategory": "Categorias aumental",
+       "exif-datetimeexpires": "No usa pos",
+       "exif-datetimereleased": "Relasada a",
+       "exif-originaltransmissionref": "Codigo de loca de transmete orijinal",
+       "exif-identifier": "Identifiante",
+       "exif-lens": "Lente usada",
+       "exif-serialnumber": "Numero serial de camera",
+       "exif-cameraownername": "Posesor de camera",
+       "exif-label": "Eticeta",
+       "exif-datetimemetadata": "Data de cambia la plu resente de metadatos",
+       "exif-nickname": "Nom nonformal de imaje",
+       "exif-rating": "Gradi (asta 5)",
+       "exif-rightscertificate": "Documento de maneja de diretos",
+       "exif-copyrighted": "State de direto de autor",
+       "exif-copyrightowner": "Autor con diretos",
+       "exif-usageterms": "Restrinjes de usa",
+       "exif-webstatement": "Declara enlinia de diretos de autor",
+       "exif-originaldocumentid": "Numero unica de documento orijinal",
+       "exif-licenseurl": "URL per lisensa de direto de autor",
+       "exif-morepermissionsurl": "Informa lisensal alternativa",
+       "exif-attributionurl": "Si tu reusa esta obra, per favore lia a",
+       "exif-preferredattributionname": "Si tu reusa esta obra, per favore atribui lo a",
+       "exif-pngfilecomment": "Comenta de fix PNG",
+       "exif-disclaimer": "Renunsia",
+       "exif-contentwarning": "Averti sur contenida",
+       "exif-giffilecomment": "Comenta de fix GIF",
+       "exif-intellectualgenre": "Tipo de cosa",
+       "exif-subjectnewscode": "Codigo de sujeto",
+       "exif-scenecode": "Codigo de sena IPTC",
+       "exif-event": "Aveni imajida",
+       "exif-organisationinimage": "Organiza imajida",
+       "exif-personinimage": "Person imajida",
+       "exif-originalimageheight": "Altia de imaje ante corti",
+       "exif-originalimagewidth": "Largia de imaje ante corti",
+       "exif-compression-1": "No densida",
+       "exif-compression-2": "CCITT Group 3 1-Dimensional Modified Huffman run length encoding",
+       "exif-compression-3": "CCITT Group 3 fax encoding",
+       "exif-compression-4": "CCITT Group 4 fax encoding",
+       "exif-copyrighted-true": "Su direto de autor",
+       "exif-copyrighted-false": "State de direto de autor no es definida",
+       "exif-photometricinterpretation-1": "Blanca-negra (negra es 0)",
+       "exif-unknowndate": "Data nonconoseda",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Orizonal mirorida",
+       "exif-orientation-3": "Jirada par 180°",
+       "exif-orientation-4": "Vertical mirorida",
+       "exif-orientation-5": "Nonorolojin jirada par 90° e vertical mirorida",
+       "exif-orientation-6": "Nonorolojin jirada par 90°",
+       "exif-orientation-7": "Orolojin jirada 90° e vertical mirorida",
+       "exif-orientation-8": "Orolojin jirada 90°",
+       "exif-planarconfiguration-1": "chunky format",
+       "exif-planarconfiguration-2": "planar format",
+       "exif-colorspace-65535": "Colores nonajustada",
+       "exif-componentsconfiguration-0": "no esiste",
+       "exif-exposureprogram-0": "No definida",
+       "exif-exposureprogram-1": "Par mano",
+       "exif-exposureprogram-2": "Program normal",
+       "exif-exposureprogram-3": "Primia de abri",
+       "exif-exposureprogram-4": "Primia de cluador",
+       "exif-exposureprogram-5": "Program creosa (favorente profondia de campo)",
+       "exif-exposureprogram-6": "Program ativa (favorente rapidia de cluador)",
+       "exif-exposureprogram-7": "Orienta vertical (per fotos prosima con fondo nonfocada)",
+       "exif-exposureprogram-8": "Orienta vertical (per fotos prosima con fondo nonfocada)",
+       "exif-subjectdistance-value": "$1 metres",
+       "exif-meteringmode-0": "Nonconoseda",
+       "exif-meteringmode-1": "Promedia",
+       "exif-meteringmode-2": "Promedia favorente la sentro",
+       "exif-meteringmode-3": "Punto",
+       "exif-meteringmode-4": "Multipuntal",
+       "exif-meteringmode-5": "Motif",
+       "exif-meteringmode-6": "Partal",
+       "exif-meteringmode-255": "Otra",
+       "exif-lightsource-0": "Nonconoseda",
+       "exif-lightsource-1": "Lus de dia",
+       "exif-lightsource-2": "Fluoresente",
+       "exif-lightsource-3": "Uolfram (lus incandesente)",
+       "exif-lightsource-4": "Flax",
+       "exif-lightsource-9": "Clima bela",
+       "exif-lightsource-10": "Clima nubosa",
+       "exif-lightsource-11": "Ombra",
+       "exif-lightsource-12": "Lus de dia fluoresente (D 5700 – 7100K)",
+       "exif-lightsource-13": "Dia blanca fluoresente (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fresca blanca fluoresente (W 3900 – 4500K)",
+       "exif-lightsource-15": "Blanca fluoresente (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Lus normal A",
+       "exif-lightsource-18": "Lus normal B",
+       "exif-lightsource-19": "Lus normal C",
+       "exif-lightsource-24": "Uolfram de studio ISO",
+       "exif-lightsource-255": "Otra fonte de lus",
+       "exif-flash-fired-0": "Flaxador no ia funsiona",
+       "exif-flash-fired-1": "Flaxador ia funsiona",
+       "exif-flash-return-0": "no strobe return detection function",
+       "exif-flash-return-2": "strobe return light not detected",
+       "exif-flash-return-3": "strobe return light detected",
+       "exif-flash-mode-1": "compulsory flash firing",
+       "exif-flash-mode-2": "compulsory flash suppression",
+       "exif-flash-mode-3": "auto mode",
+       "exif-flash-function-1": "Funsiona flax manca",
+       "exif-flash-redeye-1": "moda desrojinte",
+       "exif-focalplaneresolutionunit-2": "ditones",
+       "exif-sensingmethod-1": "Nondefinida",
+       "exif-sensingmethod-2": "One-chip color area sensor",
+       "exif-sensingmethod-3": "Two-chip color area sensor",
+       "exif-sensingmethod-4": "Three-chip color area sensor",
+       "exif-sensingmethod-5": "Color sequential area sensor",
+       "exif-sensingmethod-7": "Trilinear sensor",
+       "exif-sensingmethod-8": "Color sequential linear sensor",
+       "exif-filesource-3": "Camera de fotos dijital",
+       "exif-scenetype-1": "Un imaje direta fotografida",
+       "exif-customrendered-0": "Trata normal",
+       "exif-customrendered-1": "Trata spesial",
+       "exif-exposuremode-0": "Esposa automata",
+       "exif-exposuremode-1": "Esposa par mano",
+       "exif-exposuremode-2": "Braseti automata",
+       "exif-whitebalance-0": "Ecuilibra blanca automata",
+       "exif-whitebalance-1": "Ecuilibra blanca par mano",
+       "exif-scenecapturetype-0": "Normal",
+       "exif-scenecapturetype-1": "Vista",
+       "exif-scenecapturetype-2": "Person",
+       "exif-scenecapturetype-3": "Sena de note",
+       "exif-gaincontrol-0": "No",
+       "exif-gaincontrol-1": "Aumenta de brilia basa",
+       "exif-gaincontrol-2": "Aumenta de brilia alta",
+       "exif-gaincontrol-3": "Redui de brilia basa",
+       "exif-gaincontrol-4": "Redui de brilia alta",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Mol",
+       "exif-contrast-2": "Dur",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Satura basa",
+       "exif-saturation-2": "Satura alta",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Mol",
+       "exif-sharpness-2": "Dur",
+       "exif-subjectdistancerange-0": "Nonconoseda",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Prosima",
+       "exif-subjectdistancerange-3": "Distante",
+       "exif-gpslatitude-n": "Latitude norde",
+       "exif-gpslatitude-s": "Latitude sude",
+       "exif-gpslongitude-e": "Lonjitude este",
+       "exif-gpslongitude-w": "Lonjitude ueste",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metre|metres}} supra nivel de mar",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metre|metres}} su nivel de mar",
+       "exif-gpsstatus-a": "Mesura progresante",
+       "exif-gpsstatus-v": "Interopera de mesura",
+       "exif-gpsmeasuremode-2": "Mesura de du dimensiones",
+       "exif-gpsmeasuremode-3": "Mesura de tre dimensiones",
+       "exif-gpsspeed-k": "Cilometres per ora",
+       "exif-gpsspeed-m": "Milias per ora",
+       "exif-gpsspeed-n": "Milias maral per ora",
+       "exif-gpsdestdistance-k": "Cilometres",
+       "exif-gpsdestdistance-m": "Milias",
+       "exif-gpsdestdistance-n": "Milias maral",
+       "exif-gpsdop-excellent": "Eselente ($1)",
+       "exif-gpsdop-good": "Bon ($1)",
+       "exif-gpsdop-moderate": "Moderada ($1)",
+       "exif-gpsdop-fair": "Asetable ($1)",
+       "exif-gpsdop-poor": "Povre ($1)",
+       "exif-objectcycle-a": "Sola matina",
+       "exif-objectcycle-p": "Sola sera",
+       "exif-objectcycle-b": "Matina e sera",
+       "exif-gpsdirection-t": "Dirije vera",
+       "exif-gpsdirection-m": "Dirije magnetal",
+       "exif-ycbcrpositioning-1": "Sentrida",
+       "exif-ycbcrpositioning-2": "Cosituada",
+       "exif-dc-contributor": "Contribuores",
+       "exif-dc-coverage": "Estende spasial o tempal de media",
+       "exif-dc-date": "Data(s)",
+       "exif-dc-publisher": "Publicor",
+       "exif-dc-relation": "Medias relatada",
+       "exif-dc-rights": "Diretos",
+       "exif-dc-source": "Media fontal",
+       "exif-dc-type": "Tipo de media",
+       "exif-rating-rejected": "Rejetada",
+       "exif-isospeedratings-overflow": "Plu ca 65535",
+       "exif-iimcategory-ace": "Artes, cultur e diverti",
+       "exif-iimcategory-clj": "Crimin e lege",
+       "exif-iimcategory-dis": "Desastres e asidentes",
+       "exif-iimcategory-fin": "Economia e comersia",
+       "exif-iimcategory-edu": "Educa",
+       "exif-iimcategory-evn": "Ambiente",
+       "exif-iimcategory-hth": "Sania",
+       "exif-iimcategory-hum": "Interesa umana",
+       "exif-iimcategory-lab": "Labora",
+       "exif-iimcategory-lif": "Vive e osio",
+       "exif-iimcategory-pol": "Politica",
+       "exif-iimcategory-rel": "Relijio e crede",
+       "exif-iimcategory-sci": "Siensa e tecnolojia",
+       "exif-iimcategory-soi": "Problemes sosial",
+       "exif-iimcategory-spo": "Sportes",
+       "exif-iimcategory-war": "Gera, disputa e turba",
+       "exif-iimcategory-wea": "Clima",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Basa ($1)",
+       "exif-urgency-high": "Alta ($1)",
+       "exif-urgency-other": "Primia definida par usor ($1)"
+}
diff --git a/languages/i18n/exif/li.json b/languages/i18n/exif/li.json
new file mode 100644 (file)
index 0000000..e1b3b9f
--- /dev/null
@@ -0,0 +1,347 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ooswesthoesbes",
+                       "Pahles"
+               ]
+       },
+       "exif-imagewidth": "Breidte",
+       "exif-imagelength": "Hoogte",
+       "exif-bitspersample": "Bits per componènt",
+       "exif-compression": "Cómpressiesjema",
+       "exif-photometricinterpretation": "Pixelcompositie",
+       "exif-orientation": "Oriëntatie",
+       "exif-samplesperpixel": "Aantal componente",
+       "exif-planarconfiguration": "Gegaevesstructuur",
+       "exif-ycbcrsubsampling": "Subsampleverhajing van Y toet C",
+       "exif-ycbcrpositioning": "Y- en C-positionering",
+       "exif-xresolution": "Horizontale resolutie",
+       "exif-yresolution": "Verticale resolutie",
+       "exif-stripoffsets": "Locatie aafbeildingsgegaeves",
+       "exif-rowsperstrip": "Rie per strip",
+       "exif-stripbytecounts": "Bytes per gecomprimeerde strip",
+       "exif-jpeginterchangeformat": "Aafstandj towt JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bytes JPEG-gegaeves",
+       "exif-whitepoint": "Witpuntchromaticiteit",
+       "exif-primarychromaticities": "Chromaticities of primaries",
+       "exif-ycbcrcoefficients": "Transformatiematrixcoëfficiënte veur de kleurruumde",
+       "exif-referenceblackwhite": "Paar zwarte en wite referentiewaarde",
+       "exif-datetime": "Datum en momènt besjtandjsverangering",
+       "exif-imagedescription": "Omsjrieving aafbeilding",
+       "exif-make": "Merk camera",
+       "exif-model": "Cameramodel",
+       "exif-software": "Gebroekdje software",
+       "exif-artist": "Auteur",
+       "exif-copyright": "Copyrighthawter",
+       "exif-exifversion": "Exif-versie",
+       "exif-flashpixversion": "Ongersteundje Flashpix-versie",
+       "exif-colorspace": "Kläörruumde",
+       "exif-componentsconfiguration": "Beteikenis van edere componènt",
+       "exif-compressedbitsperpixel": "Cómpressiemeneer bie dit plaetje",
+       "exif-pixelxdimension": "Aafbeildingsbrèdje",
+       "exif-pixelydimension": "Aafbeildingsheugdje",
+       "exif-usercomment": "Opmerkinge",
+       "exif-relatedsoundfile": "Biebeheurendj audiobestandj",
+       "exif-datetimeoriginal": "Datum en momint van verwèkking",
+       "exif-datetimedigitized": "Datum en momènt van digitizing",
+       "exif-subsectime": "Datum tied subsecond",
+       "exif-subsectimeoriginal": "Subsecond tiedstip datageneratie",
+       "exif-subsectimedigitized": "Subsecond tiedstip digitalisatie",
+       "exif-exposuretime": "Beleechtingstied",
+       "exif-exposuretime-format": "$1 sec ($2)",
+       "exif-fnumber": "F-getal",
+       "exif-exposureprogram": "Beleechtingsprogramma",
+       "exif-spectralsensitivity": "Spectrale geveuligheid",
+       "exif-isospeedratings": "ISO/ASA-waarde",
+       "exif-shutterspeedvalue": "Sloetersnelheid in APEX",
+       "exif-aperturevalue": "Äöpening in APEX",
+       "exif-brightnessvalue": "Heljerheid in APEX",
+       "exif-exposurebiasvalue": "Beleechtingscompensatie",
+       "exif-maxaperturevalue": "Maximale diafragma-äöpening",
+       "exif-subjectdistance": "Objekaafstandj",
+       "exif-meteringmode": "Methode leechmaeting",
+       "exif-lightsource": "Leechbron",
+       "exif-flash": "Flitser",
+       "exif-focallength": "Brandjpuntjsaafstandj",
+       "exif-subjectarea": "Objekruumde",
+       "exif-flashenergy": "Flitssterkdje",
+       "exif-focalplanexresolution": "Brandjpuntjsvlak-X-resolutie",
+       "exif-focalplaneyresolution": "Brandjpuntjsvlak-Y-resolutie",
+       "exif-focalplaneresolutionunit": "Einheid CCD-resolutie",
+       "exif-subjectlocation": "Objekslocatie",
+       "exif-exposureindex": "Beleechtingsindex",
+       "exif-sensingmethod": "Opvangmethode",
+       "exif-filesource": "Bestandjsbron",
+       "exif-scenetype": "Saort scene",
+       "exif-customrendered": "Aangepasdje beildverwerking",
+       "exif-exposuremode": "Beleechtingsinstelling",
+       "exif-whitebalance": "Witbalans",
+       "exif-digitalzoomratio": "Digitale zoomfactor",
+       "exif-focallengthin35mmfilm": "Brandjpuntjsaafstandj (35mm-equivalent)",
+       "exif-scenecapturetype": "Saort opname",
+       "exif-gaincontrol": "Piekbeheersing",
+       "exif-contrast": "Contras",
+       "exif-saturation": "Verzaodiging",
+       "exif-sharpness": "Sjerpdje",
+       "exif-devicesettingdescription": "Besjrieving methode-opties",
+       "exif-subjectdistancerange": "Bereik objekaafstandj",
+       "exif-imageuniqueid": "Unieke ID aafbeilding",
+       "exif-gpsversionid": "GPS versienómmer",
+       "exif-gpslatituderef": "Noorder- of zuderbreidte",
+       "exif-gpslatitude": "Breidtegraod",
+       "exif-gpslongituderef": "Ooster- of westerlingdje",
+       "exif-gpslongitude": "Lingdjegraod",
+       "exif-gpsaltituderef": "Hoogdjereferentie",
+       "exif-gpsaltitude": "Hoogdje",
+       "exif-gpstimestamp": "GPS-tied (atoomklok)",
+       "exif-gpssatellites": "Gebroekdje satelliete veur maeting",
+       "exif-gpsstatus": "Ontvangerstatus",
+       "exif-gpsmeasuremode": "Maetmodus",
+       "exif-gpsdop": "Maetprontheid",
+       "exif-gpsspeedref": "Snelheid einheid",
+       "exif-gpsspeed": "Snelheid van GPS-ontvanger",
+       "exif-gpstrackref": "Referentie veur bewaegingsrichting",
+       "exif-gpstrack": "Bewaegingsrichting",
+       "exif-gpsimgdirectionref": "Referentie veur aafbeildingsrichting",
+       "exif-gpsimgdirection": "Aafbeildingsrichting",
+       "exif-gpsmapdatum": "Gebroekdje geodetische ongerzeuksgegaeves",
+       "exif-gpsdestlatituderef": "Referentie veur breidtegraod bestömming",
+       "exif-gpsdestlatitude": "Breidtegraod bestömming",
+       "exif-gpsdestlongituderef": "Referentie veur lingdjegraod bestömming",
+       "exif-gpsdestlongitude": "Lingdjegraod bestömming",
+       "exif-gpsdestbearingref": "Referentie veur richting nao bestömming",
+       "exif-gpsdestbearing": "Richting nao bestömming",
+       "exif-gpsdestdistanceref": "Referentie veur aafstandj toet bestömming",
+       "exif-gpsdestdistance": "Aafstandj toet bestömming",
+       "exif-gpsprocessingmethod": "GPS-verwerkingsmethode",
+       "exif-gpsareainformation": "Naam GPS-gebied",
+       "exif-gpsdatestamp": "GPS-datum",
+       "exif-gpsdifferential": "Differentiële GPS-correctie",
+       "exif-jpegfilecomment": "Opmirking bie JPEG-bestandj",
+       "exif-keywords": "Trefweurd",
+       "exif-worldregioncreated": "Regio vanne welt wo de aafbeilding gemaak is",
+       "exif-countrycreated": "Landj wo de aafbeilding gemaak is",
+       "exif-countrycodecreated": "Landjcode van wo de aafbeilding gemaak is",
+       "exif-provinceorstatecreated": "Provincie of staat wo de aafbeilding gemaak is",
+       "exif-citycreated": "Sjtad wo de aafbeilding gemaak is",
+       "exif-sublocationcreated": "Wiek vanne plaats wo de aafbeilding gemaak is",
+       "exif-worldregiondest": "Getuinde weltregio",
+       "exif-countrydest": "Getuind landj",
+       "exif-countrycodedest": "Landjcode van 't getuind",
+       "exif-provinceorstatedest": "Getuinde provincie of staat",
+       "exif-citydest": "Getuinde sjtad",
+       "exif-sublocationdest": "Getuinde wiek vanne sjtad",
+       "exif-objectname": "Kórte naam",
+       "exif-specialinstructions": "Speciaal instructies",
+       "exif-headline": "Kópteks",
+       "exif-credit": "Credit/Leveranceer",
+       "exif-source": "Brón",
+       "exif-editstatus": "Bewirkingsstaat vanne aafbeilding",
+       "exif-urgency": "Urgensie",
+       "exif-fixtureidentifier": "Groepsnaam",
+       "exif-locationdest": "Getuinde locatie",
+       "exif-locationdestcode": "Locatiecode van 't getuind",
+       "exif-objectcycle": "Tied vannen daag wo de media veur gemèndj is",
+       "exif-contact": "Kóntakgegaeves",
+       "exif-writer": "Sjriever",
+       "exif-languagecode": "Sjpraok",
+       "exif-iimversion": "IIM-versie",
+       "exif-iimcategory": "Categorie",
+       "exif-iimsupplementalcategory": "Aanvöllendje categorië",
+       "exif-datetimeexpires": "Neet te broeke nao",
+       "exif-datetimereleased": "Gepubliceerd óp",
+       "exif-originaltransmissionref": "Originele taaklocatiecode",
+       "exif-identifier": "Id",
+       "exif-lens": "Gebroekdje laens",
+       "exif-serialnumber": "Serienommer vanne camera",
+       "exif-cameraownername": "Eigeneer vanne camera",
+       "exif-label": "Label",
+       "exif-datetimemetadata": "Datum woróp de metadata 't lets is bewirk",
+       "exif-nickname": "Informele naam vanne aafbeilding",
+       "exif-rating": "Werdering (sjaol van 5)",
+       "exif-rightscertificate": "Rechtebehiercertifikaot",
+       "exif-copyrighted": "Auteursrechtestaat",
+       "exif-copyrightowner": "Copyrighthawter",
+       "exif-usageterms": "Gebroekersveurwaerd",
+       "exif-webstatement": "Online copyrightverklaoring",
+       "exif-originaldocumentid": "Unieke ID van 't origineel dokement",
+       "exif-licenseurl": "URL veur copyrightlicensie",
+       "exif-morepermissionsurl": "Alternatief licensiegegaeves",
+       "exif-attributionurl": "Gebroek de volgende verwiezing bie hergebroek van dit wirk",
+       "exif-preferredattributionname": "Gebroek de volgende credits bie hergebroek van dit wirk",
+       "exif-pngfilecomment": "Opmirking bie PNG-bestandj",
+       "exif-disclaimer": "Veurbehawd",
+       "exif-contentwarning": "Waorsjoewing euver inhawd",
+       "exif-giffilecomment": "Opmirking bie GIF-bestandj",
+       "exif-intellectualgenre": "Itemtype",
+       "exif-subjectnewscode": "Ongerwerpcode",
+       "exif-scenecode": "IPTC-scènecode",
+       "exif-event": "Aafgebeilde gebäörtenis",
+       "exif-organisationinimage": "Aafgebeilde organisatie",
+       "exif-personinimage": "Aafgebeild persoen",
+       "exif-originalimageheight": "Heugdje vanne aafbeilding veur biesnieje",
+       "exif-originalimagewidth": "Brèdje vanne aafbeilding veur biesnieje",
+       "exif-compression-1": "Óngecómprimeerd",
+       "exif-compression-2": "CCITT Groep 3 1-dimensionale aangepasde \"Huffman run length\"-codering",
+       "exif-compression-3": "CCITT Groep 3 faxcodering",
+       "exif-compression-4": "CCITT Groep 4 faxcodering",
+       "exif-copyrighted-true": "Mit copyright",
+       "exif-copyrighted-false": "Auteursrechtelike staot neet ingestèld",
+       "exif-photometricinterpretation-1": "Zwart-wit (zwart is 0)",
+       "exif-unknowndate": "Datum ónbekindj",
+       "exif-orientation-1": "Normaal",
+       "exif-orientation-2": "Horizontaal gespegeldj",
+       "exif-orientation-3": "180° gedrejd",
+       "exif-orientation-4": "Verticaal gespegeldj",
+       "exif-orientation-5": "Gespegeldj om as linksbaove-rechsonger",
+       "exif-orientation-6": "90° linksom gedrejd",
+       "exif-orientation-7": "Gespegeldj om as linksonger-rechsbaove",
+       "exif-orientation-8": "90° rechsom gedrejd",
+       "exif-planarconfiguration-1": "chunky gegaevesformaat",
+       "exif-planarconfiguration-2": "planar gegaevesformaat",
+       "exif-colorspace-65535": "Ongekalibreerd",
+       "exif-componentsconfiguration-0": "besjteit neet",
+       "exif-exposureprogram-0": "Neet gedefiniëerd",
+       "exif-exposureprogram-1": "Handjmaotig",
+       "exif-exposureprogram-2": "Normaal programma",
+       "exif-exposureprogram-3": "Diafragmaprioriteit",
+       "exif-exposureprogram-4": "Sloeterprioriteit",
+       "exif-exposureprogram-5": "Creatief (veurkeur veur hoge sjerpte/deepdje)",
+       "exif-exposureprogram-6": "Actie (veurkeur veur hoge sloetersnelheid)",
+       "exif-exposureprogram-7": "Portret (detailopname mit ónsjerpe achtergróndj)",
+       "exif-exposureprogram-8": "Landjsjap (sjerpe achtergróndj)",
+       "exif-subjectdistance-value": "$1 maeter",
+       "exif-meteringmode-0": "Ónbekindj",
+       "exif-meteringmode-1": "Gemiddeldj",
+       "exif-meteringmode-2": "Centrumgewaoge",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "Multi-spot",
+       "exif-meteringmode-5": "Multi-segment (patroon)",
+       "exif-meteringmode-6": "Deilmaeting",
+       "exif-meteringmode-255": "Anges",
+       "exif-lightsource-0": "Ónbekindj",
+       "exif-lightsource-1": "Daagleech",
+       "exif-lightsource-2": "TL-leech",
+       "exif-lightsource-3": "Tungsten (lampeleech)",
+       "exif-lightsource-4": "Flits",
+       "exif-lightsource-9": "Net waer",
+       "exif-lightsource-10": "Bewólk waer",
+       "exif-lightsource-11": "Sjeem",
+       "exif-lightsource-12": "Daagleech fluorescerend (D 5700 – 7100K)",
+       "exif-lightsource-13": "Daagwit fluorescerend (N 4600 - 5400K)",
+       "exif-lightsource-14": "Keul wit fluorescerend (W 3900 - 4500K)",
+       "exif-lightsource-15": "Wit fluorescerend (WW 3200 - 3700K)",
+       "exif-lightsource-17": "Standaard leech A",
+       "exif-lightsource-18": "Standaard leech B",
+       "exif-lightsource-19": "Standaard leech C",
+       "exif-lightsource-24": "ISO-studiotungsten",
+       "exif-lightsource-255": "Angere leechbron",
+       "exif-flash-fired-0": "Flits is neet aafgegange",
+       "exif-flash-fired-1": "Mit flitser",
+       "exif-flash-return-0": "gein stroboscoopontvangsfunctie",
+       "exif-flash-return-2": "gein stroboscoopontvangs gedetecteerd",
+       "exif-flash-return-3": "stroboscoopontvangs gedetecteerd",
+       "exif-flash-mode-1": "verplich mit flitser",
+       "exif-flash-mode-2": "flitser verplich ongerdruk",
+       "exif-flash-mode-3": "automatische modus",
+       "exif-flash-function-1": "Gein flitserfunctie",
+       "exif-flash-redeye-1": "filter rooj öjg verwiedere",
+       "exif-focalplaneresolutionunit-2": "inch",
+       "exif-sensingmethod-1": "Neet gedefiniëerd",
+       "exif-sensingmethod-2": "Ein-chip-kleursensor",
+       "exif-sensingmethod-3": "Twee-chip-kleursensor",
+       "exif-sensingmethod-4": "Drie-chip-kleursensor",
+       "exif-sensingmethod-5": "Kleurvolgendje gebiedssensor",
+       "exif-sensingmethod-7": "Drielienige sensor",
+       "exif-sensingmethod-8": "Kleurvolgendje liensensor",
+       "exif-filesource-3": "Digitale fotocamera",
+       "exif-scenetype-1": "'ne Direk gefotografeerdje aafbeilding",
+       "exif-customrendered-0": "Normaal perces",
+       "exif-customrendered-1": "Aangepasdje verwerking",
+       "exif-exposuremode-0": "Automatische beleechting",
+       "exif-exposuremode-1": "Handjmaotige beleechting",
+       "exif-exposuremode-2": "Auto-Bracket",
+       "exif-whitebalance-0": "Automatische witbalans",
+       "exif-whitebalance-1": "Handjmaotige witbalans",
+       "exif-scenecapturetype-0": "Standaard",
+       "exif-scenecapturetype-1": "Landjsjap",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Nachscène",
+       "exif-gaincontrol-0": "Gein",
+       "exif-gaincontrol-1": "Lege pieke omhoog",
+       "exif-gaincontrol-2": "Hoge pieke omhoog",
+       "exif-gaincontrol-3": "Lege pieke omleeg",
+       "exif-gaincontrol-4": "Hoge pieke omleeg",
+       "exif-contrast-0": "Normaal",
+       "exif-contrast-1": "Weik",
+       "exif-contrast-2": "Hel",
+       "exif-saturation-0": "Normaal",
+       "exif-saturation-1": "Leeg",
+       "exif-saturation-2": "Hoog",
+       "exif-sharpness-0": "Normaal",
+       "exif-sharpness-1": "Zaach",
+       "exif-sharpness-2": "Hel",
+       "exif-subjectdistancerange-0": "Onbekindj",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Kortbie",
+       "exif-subjectdistancerange-3": "Wied weg",
+       "exif-gpslatitude-n": "Noorderbreidte",
+       "exif-gpslatitude-s": "Zuderbreidte",
+       "exif-gpslongitude-e": "Oosterlingdje",
+       "exif-gpslongitude-w": "Westerlingdje",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|maeter|maeter}} baoven 't ziespegel",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|maeter|maeter}} ónger 't ziespegel",
+       "exif-gpsstatus-a": "Bezig mit maete",
+       "exif-gpsstatus-v": "Maetinteroperabiliteit",
+       "exif-gpsmeasuremode-2": "2-dimensionale maeting",
+       "exif-gpsmeasuremode-3": "3-dimensionale maeting",
+       "exif-gpsspeed-k": "Kilomaeter per oer",
+       "exif-gpsspeed-m": "Miel per oer",
+       "exif-gpsspeed-n": "Knuip",
+       "exif-gpsdestdistance-k": "Kilomaeter",
+       "exif-gpsdestdistance-m": "Miel",
+       "exif-gpsdestdistance-n": "Knuip",
+       "exif-gpsdop-excellent": "Oetstaekendj ($1)",
+       "exif-gpsdop-good": "Good ($1)",
+       "exif-gpsdop-moderate": "Gemiddeldj ($1)",
+       "exif-gpsdop-fair": "Redelik ($1)",
+       "exif-gpsdop-poor": "Slech ($1)",
+       "exif-objectcycle-a": "Allein 's óchtes",
+       "exif-objectcycle-p": "Allein 's aoves",
+       "exif-objectcycle-b": "Zwaal 's óchtes es 's aoves",
+       "exif-gpsdirection-t": "Eigelike richting",
+       "exif-gpsdirection-m": "Magnetische richting",
+       "exif-ycbcrpositioning-1": "Gecentreerd",
+       "exif-ycbcrpositioning-2": "Gecositueerd",
+       "exif-dc-contributor": "Mitwirkers",
+       "exif-dc-coverage": "Ruumdjelik of temporeel scoop vanne media",
+       "exif-dc-date": "Datum/data",
+       "exif-dc-publisher": "Oetgaever",
+       "exif-dc-relation": "Gerelateerde media",
+       "exif-dc-rights": "Rechte",
+       "exif-dc-source": "Brónmedia",
+       "exif-dc-type": "Mediatype",
+       "exif-rating-rejected": "Aafgeweze",
+       "exif-isospeedratings-overflow": "Grótter es 65535",
+       "exif-iimcategory-ace": "Kóns, keltuur en vermaak",
+       "exif-iimcategory-clj": "Misdaod en rech",
+       "exif-iimcategory-dis": "Rampe en óngevalle",
+       "exif-iimcategory-fin": "Ikkenomie en bedriefslaeve",
+       "exif-iimcategory-edu": "Óngerwies",
+       "exif-iimcategory-evn": "Miljeu",
+       "exif-iimcategory-hth": "Gezóndjheid",
+       "exif-iimcategory-hum": "Mienselik gerei",
+       "exif-iimcategory-lab": "Wirk",
+       "exif-iimcategory-lif": "Laeve en vrieje tied",
+       "exif-iimcategory-pol": "Politiek",
+       "exif-iimcategory-rel": "Gódsdeens en euvertuging",
+       "exif-iimcategory-sci": "Weitesjap en technologie",
+       "exif-iimcategory-soi": "Sociaal kwesties",
+       "exif-iimcategory-spo": "Spórt",
+       "exif-iimcategory-war": "Krieg, conflik en ónrös",
+       "exif-iimcategory-wea": "Waer",
+       "exif-urgency-normal": "Normaal ($1)",
+       "exif-urgency-low": "Lieg ($1)",
+       "exif-urgency-high": "Hoeg ($1)",
+       "exif-urgency-other": "Door gebroeker gedefinieerde prioriteit ($1)"
+}
diff --git a/languages/i18n/exif/lij.json b/languages/i18n/exif/lij.json
new file mode 100644 (file)
index 0000000..30c9c28
--- /dev/null
@@ -0,0 +1,347 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Giromin Cangiaxo",
+                       "S4b1nuz E.656"
+               ]
+       },
+       "exif-imagewidth": "Largheçça",
+       "exif-imagelength": "Ateçça",
+       "exif-bitspersample": "Bit pe campion",
+       "exif-compression": "Meccanismo de comprescion",
+       "exif-photometricinterpretation": "Struttua di pixel",
+       "exif-orientation": "Òrientaménto",
+       "exif-samplesperpixel": "Nummero di componenti",
+       "exif-planarconfiguration": "Dispoxiçion di dæti",
+       "exif-ycbcrsubsampling": "Rapporto de campionamento Y / C",
+       "exif-ycbcrpositioning": "Poxiçionamento di componenti Y e C",
+       "exif-xresolution": "Risoluçion orizzontâ",
+       "exif-yresolution": "Risoluçion verticâ",
+       "exif-stripoffsets": "Poxiçion di dæti de l'inmaggine",
+       "exif-rowsperstrip": "Nummero righe pe striscia",
+       "exif-stripbytecounts": "Nummero di byte pe striscia compressa",
+       "exif-jpeginterchangeformat": "Poxiçion byte SOI JPEG",
+       "exif-jpeginterchangeformatlength": "Nummero di byte di dæti JPEG",
+       "exif-whitepoint": "Coordinæ cromattiche do ponto de gianco",
+       "exif-primarychromaticities": "Coordinæ cromattiche di coî primai",
+       "exif-ycbcrcoefficients": "Coeffixenti de matrixe de transformaçion di spaççi de cô",
+       "exif-referenceblackwhite": "Cobbia di valoî de rifeimento (neigro e gianco)",
+       "exif-datetime": "Dæta e ôa de modìfica do file",
+       "exif-imagedescription": "Tittolo de l'inmaggine",
+       "exif-make": "Produttô fotocamera",
+       "exif-model": "Modello fotocamera",
+       "exif-software": "Software",
+       "exif-artist": "Autô",
+       "exif-copyright": "Diritti d'autô de",
+       "exif-exifversion": "Verscion do formato Exif",
+       "exif-flashpixversion": "Verscion Flashpix supportâ",
+       "exif-colorspace": "Spàçio di coî",
+       "exif-componentsconfiguration": "Scignificou de ogni componente",
+       "exif-compressedbitsperpixel": "Modalitæ de comprescion immaggine",
+       "exif-pixelxdimension": "Largheçça immaggine",
+       "exif-pixelydimension": "Ateçça immaggine",
+       "exif-usercomment": "Notte de l'utente",
+       "exif-relatedsoundfile": "File audio conligou",
+       "exif-datetimeoriginal": "Dæta e oa de creassion di dæti",
+       "exif-datetimedigitized": "Dæta e oa de digitalizzaçion",
+       "exif-subsectime": "Dæta e oa, fraçioin de segondo",
+       "exif-subsectimeoriginal": "Dæta e oa de creaçion, fraçioin de segondo",
+       "exif-subsectimedigitized": "Dæta e oa de digitalizzaçion, fraçioin dr segondo",
+       "exif-exposuretime": "Tempo de espoxiçion",
+       "exif-exposuretime-format": "$1 s ($2)",
+       "exif-fnumber": "Rapporto focâ",
+       "exif-exposureprogram": "Programma de espoxiçion",
+       "exif-spectralsensitivity": "Senscibilitæ spettrâ",
+       "exif-isospeedratings": "Senscibilitæ ISO",
+       "exif-shutterspeedvalue": "Veloçitæ de l'otturatô APEX",
+       "exif-aperturevalue": "Avertua APEX",
+       "exif-brightnessvalue": "Luminoxitæ APEX",
+       "exif-exposurebiasvalue": "Correçion espoxiçion",
+       "exif-maxaperturevalue": "Avertua mascima",
+       "exif-subjectdistance": "Distança do soggetto",
+       "exif-meteringmode": "Mettodo de mesuaçion",
+       "exif-lightsource": "Sorgente luminosa",
+       "exif-flash": "Caratteristeghe e stæto do flash",
+       "exif-focallength": "Distança focâ de l'obiettivo",
+       "exif-subjectarea": "Area inquadrante o soggetto",
+       "exif-flashenergy": "Potença do flash",
+       "exif-focalplanexresolution": "Risoluçion X in sciô cian focâ",
+       "exif-focalplaneyresolution": "Risoluçion Y in sciô cian focâ",
+       "exif-focalplaneresolutionunit": "Unitæ de mesua risoluçion in sciô cian focâ",
+       "exif-subjectlocation": "Poxiçion do soggetto",
+       "exif-exposureindex": "Senscibilitæ impostâ",
+       "exif-sensingmethod": "Mettodo de rilevaçion",
+       "exif-filesource": "Origgine do file",
+       "exif-scenetype": "Tipo de inquadratua",
+       "exif-customrendered": "Elaboaçion personalizzâ",
+       "exif-exposuremode": "Modalitæ d'espoxiçion",
+       "exif-whitebalance": "Bançamento do gianco",
+       "exif-digitalzoomratio": "Rapporto zoom digitale",
+       "exif-focallengthin35mmfilm": "Longheçça focâ sciu peliccola 35 mm",
+       "exif-scenecapturetype": "Tipo de aquixiçion da scena",
+       "exif-gaincontrol": "Controllo inquadratua",
+       "exif-contrast": "Controllo contrasto",
+       "exif-saturation": "Controllo saturaçion",
+       "exif-sharpness": "Controllo nitideçça",
+       "exif-devicesettingdescription": "Descriçion de impostaçioin do dispoxitivo",
+       "exif-subjectdistancerange": "Scaa distança soggetto",
+       "exif-imageuniqueid": "ID univvoco immaggine",
+       "exif-gpsversionid": "Verscion di tag GPS",
+       "exif-gpslatituderef": "Latituddine nord/sud",
+       "exif-gpslatitude": "Latituddine",
+       "exif-gpslongituderef": "Lonxituddine est/ovest",
+       "exif-gpslongitude": "Lonxituddine",
+       "exif-gpsaltituderef": "Rifeimento pe l'ærtituddine",
+       "exif-gpsaltitude": "Ærtituddine",
+       "exif-gpstimestamp": "Oa GPS (reloeuio atommico)",
+       "exif-gpssatellites": "Satelliti doeuviæ pe-a mesuaçion",
+       "exif-gpsstatus": "Stato do riçevitô",
+       "exif-gpsmeasuremode": "Modalitæ de mesuaçion",
+       "exif-gpsdop": "Precixone da mezuaçion",
+       "exif-gpsspeedref": "Unitæ de mesua da veloçitæ",
+       "exif-gpsspeed": "Veloçitæ do riçevitô GPS",
+       "exif-gpstrackref": "Rifeimento pe-a direçion de movimento",
+       "exif-gpstrack": "Direçion do movimento",
+       "exif-gpsimgdirectionref": "Rifeimento pe-a direçion de l'immaggine",
+       "exif-gpsimgdirection": "Direçion de l'immaggine",
+       "exif-gpsmapdatum": "Rilevamento geodetico doeuviou",
+       "exif-gpsdestlatituderef": "Rifeimento pe-a latituddine da destinaçion",
+       "exif-gpsdestlatitude": "Latituddine da destinaçion",
+       "exif-gpsdestlongituderef": "Rifeimento pe-a lonxituddine da destinaçion",
+       "exif-gpsdestlongitude": "Lonxituddine da destinaçion",
+       "exif-gpsdestbearingref": "Rifeimento pe-a direçion da destinaçion",
+       "exif-gpsdestbearing": "Direçion da destinaçion",
+       "exif-gpsdestdistanceref": "Rifeimento pe-a distança da destinaçion",
+       "exif-gpsdestdistance": "Distança da destinaçion",
+       "exif-gpsprocessingmethod": "Nomme do mettodo de elaboaçion GPS",
+       "exif-gpsareainformation": "Nomme da zona GPS",
+       "exif-gpsdatestamp": "Data GPS",
+       "exif-gpsdifferential": "Correçion differençiâ GPS",
+       "exif-jpegfilecomment": "Commento do file JPEG",
+       "exif-keywords": "Paole ciave",
+       "exif-worldregioncreated": "Region do mondo donde l'è stæto scattou l'immaggine",
+       "exif-countrycreated": "Paise dovve l'è stæto scattou a foto",
+       "exif-countrycodecreated": "Codiçe do paise dovve l'è stæto scattou a foto",
+       "exif-provinceorstatecreated": "Provincia o stato dovve l'è stæto scattou a foto",
+       "exif-citycreated": "Çittæ dovve l'è stæto scattou a foto",
+       "exif-sublocationcreated": "Parte da çittæ donde l'è stæto scattou a foto",
+       "exif-worldregiondest": "Region do mondo vixualizzâ",
+       "exif-countrydest": "Naçion vixualizzâ",
+       "exif-countrycodedest": "Codiçe pe-o paise indicou",
+       "exif-provinceorstatedest": "Provincia o stato vixualizzou",
+       "exif-citydest": "Çittæ mostrâ",
+       "exif-sublocationdest": "Parte da çittæ visualizzâ",
+       "exif-objectname": "Tittolo curto",
+       "exif-specialinstructions": "Instruçioin speciale",
+       "exif-headline": "Tittolo",
+       "exif-credit": "Credditi",
+       "exif-source": "Fonte",
+       "exif-editstatus": "Stato d'ediçion de l'inmaggine",
+       "exif-urgency": "Urgença",
+       "exif-fixtureidentifier": "Nomme do rifeimento",
+       "exif-locationdest": "Localitæ raffiguâ",
+       "exif-locationdestcode": "Coddiçe do loeugo raffiguou",
+       "exif-objectcycle": "Parte do giorno a-o quæ o medium o l'è destinou",
+       "exif-contact": "Contatti",
+       "exif-writer": "Chi l'ha scrito",
+       "exif-languagecode": "Lengua",
+       "exif-iimversion": "Verscion IIM",
+       "exif-iimcategory": "Categoria",
+       "exif-iimsupplementalcategory": "Categorie azontive",
+       "exif-datetimeexpires": "No doeuviâ doppo",
+       "exif-datetimereleased": "Pubricou o",
+       "exif-originaltransmissionref": "Coddiçe do loeugo de transmiscion originaia",
+       "exif-identifier": "Identificatô",
+       "exif-lens": "Obiettivo doeuviou",
+       "exif-serialnumber": "Nummero de serrie da fotocammia",
+       "exif-cameraownername": "Proprietaio da macchina fotograffica",
+       "exif-label": "Etichetta",
+       "exif-datetimemetadata": "Dæta inta quæ i metadata son stæti modificæ l'urtima votta",
+       "exif-nickname": "Nomme informale de l'immaggine",
+       "exif-rating": "Valutaçion (su 5)",
+       "exif-rightscertificate": "Çertificou de gestion di driti",
+       "exif-copyrighted": "Informaçioin in scî driti d'aotô:",
+       "exif-copyrightowner": "Detentô di driti d'aotô",
+       "exif-usageterms": "Termi d'utilizzo",
+       "exif-webstatement": "Deciaraçion online do copyright",
+       "exif-originaldocumentid": "ID univvoco do documento origin*a",
+       "exif-licenseurl": "URL pe-a liçença do copyright",
+       "exif-morepermissionsurl": "Informaçioin insce e liçençe alternative",
+       "exif-attributionurl": "Se quest'œuvia ti l'adœuvi torna, pe piaxei metti 'n ingancio a",
+       "exif-preferredattributionname": "Se quest'oeuvia ti l'adoeuvi torna, pe piaxei attribuiscine a paternitæ a",
+       "exif-pngfilecomment": "Commento do file JPEG",
+       "exif-disclaimer": "Avertençe",
+       "exif-contentwarning": "Avviso in sciô contegnuo",
+       "exif-giffilecomment": "Commento do file GIF",
+       "exif-intellectualgenre": "Tipo d'elemento",
+       "exif-subjectnewscode": "Coddiçe de l'ögetto",
+       "exif-scenecode": "Coddiçe de scena IPTC",
+       "exif-event": "Evento raffiguou",
+       "exif-organisationinimage": "Organizzaçion raffiguâ",
+       "exif-personinimage": "Person-a raffiguâ",
+       "exif-originalimageheight": "Ateçça de l'inmaggine primma ch'a foise retagiâ",
+       "exif-originalimagewidth": "Largheçça de l'immaggine primma ch'a foise retagiâ",
+       "exif-compression-1": "Nisciun",
+       "exif-compression-2": "CCITT gruppo 3 monodimenscionâ - codifica run length di Huffman modificâ",
+       "exif-compression-3": "Codiffica fax CCITT Group 3",
+       "exif-compression-4": "Codiffica fax CCITT groppo 4",
+       "exif-copyrighted-true": "Protezuo da-o drito d'aotô",
+       "exif-copyrighted-false": "Stato do drito d'aotô non impostou",
+       "exif-photometricinterpretation-1": "Gianco e neigro (o neigro o l'è 0)",
+       "exif-unknowndate": "Dæta sconosciua",
+       "exif-orientation-1": "Normâle",
+       "exif-orientation-2": "Imbösòu orizontalmente",
+       "exif-orientation-3": "Curlou de 180°",
+       "exif-orientation-4": "Imbösòu verticalmente",
+       "exif-orientation-5": "Curlou 90° in senso antiorario e imbösòu verticalmente",
+       "exif-orientation-6": "Curlou di 90° in senso antioraio",
+       "exif-orientation-7": "Curlou 90° in senso oraio e imbosou verticalmente",
+       "exif-orientation-8": "Curlou di 90° in senso oraio",
+       "exif-planarconfiguration-1": "formato a tocchi",
+       "exif-planarconfiguration-2": "formato planare",
+       "exif-colorspace-65535": "Non calibrou",
+       "exif-componentsconfiguration-0": "assente",
+       "exif-exposureprogram-0": "Non definio",
+       "exif-exposureprogram-1": "Manoale",
+       "exif-exposureprogram-2": "Programma normale",
+       "exif-exposureprogram-3": "Prioritæ a-o diaframma",
+       "exif-exposureprogram-4": "Prioritæ a l'espoxiçion",
+       "exif-exposureprogram-5": "Artistego (orientou a-a profonditæ de campo)",
+       "exif-exposureprogram-6": "Sportivo (orientou a-a veloçitæ de ripreisa)",
+       "exif-exposureprogram-7": "Ritræto (soggetti vexin con sfondo sfocou)",
+       "exif-exposureprogram-8": "Panoramma (soggetti lonten con sfondo a foeugo)",
+       "exif-subjectdistance-value": "$1 metri",
+       "exif-meteringmode-0": "Sconosciuo",
+       "exif-meteringmode-1": "Meddia",
+       "exif-meteringmode-2": "Meddia pesâ into centro",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "Murti-Spot",
+       "exif-meteringmode-5": "Pattern",
+       "exif-meteringmode-6": "Parçiâ",
+       "exif-meteringmode-255": "Atro",
+       "exif-lightsource-0": "Sconosciua",
+       "exif-lightsource-1": "Luxe diurna",
+       "exif-lightsource-2": "Lampa a fluorescença",
+       "exif-lightsource-3": "Lampa a-o tungsteno (a incandescença)",
+       "exif-lightsource-4": "Flash",
+       "exif-lightsource-9": "Tempo bello",
+       "exif-lightsource-10": "Nuvio",
+       "exif-lightsource-11": "Ombra",
+       "exif-lightsource-12": "Diurno fluorescente (D 5700 - 7100K)",
+       "exif-lightsource-13": "Giorno gianco fluorescente (N 4600 - 5400K)",
+       "exif-lightsource-14": "Gianco freido fluorescente (W 3900 - 4500K)",
+       "exif-lightsource-15": "Gianco fluorescente (WW 3200 - 3700K)",
+       "exif-lightsource-17": "Luxe standard A",
+       "exif-lightsource-18": "Luxe standard B",
+       "exif-lightsource-19": "Luxe standard C",
+       "exif-lightsource-24": "Lampa da studdio ISO a-o tungsten",
+       "exif-lightsource-255": "Atra sorgente luminosa",
+       "exif-flash-fired-0": "O flash o no l'è scattou",
+       "exif-flash-fired-1": "O flash o l'è scattou",
+       "exif-flash-return-0": "nisciun-a fonçion de individuaçion do ritorno da luxe stroboscoppica",
+       "exif-flash-return-2": "luxe stroboscoppica de ritorno non individoâ",
+       "exif-flash-return-3": "luxe stroboscoppica de ritorno individoâ",
+       "exif-flash-mode-1": "attivaçion forçâ do flash",
+       "exif-flash-mode-2": "rimoçion forçâ do flash",
+       "exif-flash-mode-3": "modalitæ aotomattica",
+       "exif-flash-function-1": "Disattiva o flash",
+       "exif-flash-redeye-1": "modalitæ riduçion oeuggi rosci",
+       "exif-focalplaneresolutionunit-2": "polliçi",
+       "exif-sensingmethod-1": "Non definio",
+       "exif-sensingmethod-2": "Sensô area cô a 1 chip",
+       "exif-sensingmethod-3": "Sensô area cô a 2 chip",
+       "exif-sensingmethod-4": "Sensô area colô a 3 chip",
+       "exif-sensingmethod-5": "Sensô area cô sequençiale",
+       "exif-sensingmethod-7": "Sensô triliniare",
+       "exif-sensingmethod-8": "Sensô liniare de cô sequençiale",
+       "exif-filesource-3": "Fotocammia digitâ",
+       "exif-scenetype-1": "Fotografia diretta",
+       "exif-customrendered-0": "Processo normale",
+       "exif-customrendered-1": "Processo personalizzou",
+       "exif-exposuremode-0": "Espoxiçion aotomattica",
+       "exif-exposuremode-1": "Espoxiçion manoâ",
+       "exif-exposuremode-2": "Bracketing aotomattico",
+       "exif-whitebalance-0": "Bançamento do gianco aotomattico",
+       "exif-whitebalance-1": "Bançamento do gianco manoâ",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Panorama",
+       "exif-scenecapturetype-2": "Ritræto",
+       "exif-scenecapturetype-3": "Notturna",
+       "exif-gaincontrol-0": "Nisciun",
+       "exif-gaincontrol-1": "Enfaxi pe basso guaagno",
+       "exif-gaincontrol-2": "Enfaxi pe ato guaagno",
+       "exif-gaincontrol-3": "Deenfaxi pe basso guaagno",
+       "exif-gaincontrol-4": "Deenfaxi pe ato guaagno",
+       "exif-contrast-0": "Normale",
+       "exif-contrast-1": "Ato contrasto",
+       "exif-contrast-2": "Basso contrasto",
+       "exif-saturation-0": "Normale",
+       "exif-saturation-1": "Bassa saturaçion",
+       "exif-saturation-2": "Ata saturaçion",
+       "exif-sharpness-0": "Normale",
+       "exif-sharpness-1": "Minô nitideçça",
+       "exif-sharpness-2": "Maggiô nitideçça",
+       "exif-subjectdistancerange-0": "Sconosciua",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Soggetto vexin",
+       "exif-subjectdistancerange-3": "Soggetto lontan",
+       "exif-gpslatitude-n": "Latituddine nord",
+       "exif-gpslatitude-s": "Latituddine sud",
+       "exif-gpslongitude-e": "Lonxituddine est",
+       "exif-gpslongitude-w": "Lonxituddine ovest",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metro|metri}} in sciô livello do mâ",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metro|metri}} sotta o livello do mâ",
+       "exif-gpsstatus-a": "Mezuaçion in corso",
+       "exif-gpsstatus-v": "Mesuaçion interopiabile",
+       "exif-gpsmeasuremode-2": "Mesuaçion bidimenscionâ",
+       "exif-gpsmeasuremode-3": "Mesuaçion tridimenscionâ",
+       "exif-gpsspeed-k": "Chilommetri orai",
+       "exif-gpsspeed-m": "Miggia oraie",
+       "exif-gpsspeed-n": "Noeui",
+       "exif-gpsdestdistance-k": "Chilommetri",
+       "exif-gpsdestdistance-m": "Miggia",
+       "exif-gpsdestdistance-n": "Miggia naotiche",
+       "exif-gpsdop-excellent": "Eccelente ($1)",
+       "exif-gpsdop-good": "Bon ($1)",
+       "exif-gpsdop-moderate": "Moderâ ($1)",
+       "exif-gpsdop-fair": "Discreto ($1)",
+       "exif-gpsdop-poor": "Scarso ($1)",
+       "exif-objectcycle-a": "Solo a-a mattin",
+       "exif-objectcycle-p": "Solo a-a seia",
+       "exif-objectcycle-b": "Mattin e seia",
+       "exif-gpsdirection-t": "Direçion reale",
+       "exif-gpsdirection-m": "Direçion magnettica",
+       "exif-ycbcrpositioning-1": "Centrou",
+       "exif-ycbcrpositioning-2": "Co-scituou",
+       "exif-dc-contributor": "contributoî",
+       "exif-dc-coverage": "Ambito spaçiâ o tempoâ di meddia",
+       "exif-dc-date": "Dæta (e)",
+       "exif-dc-publisher": "Editô",
+       "exif-dc-relation": "File correlæ",
+       "exif-dc-rights": "Driti",
+       "exif-dc-source": "Fonte do file",
+       "exif-dc-type": "Tipologia do file",
+       "exif-rating-rejected": "Refuou",
+       "exif-isospeedratings-overflow": "Maggiô de 65535",
+       "exif-iimcategory-ace": "Arte, coltua e spetaccolo",
+       "exif-iimcategory-clj": "Crimmine e lezze",
+       "exif-iimcategory-dis": "Disastri e açidenti",
+       "exif-iimcategory-fin": "Economia e affæ",
+       "exif-iimcategory-edu": "Instruçion",
+       "exif-iimcategory-evn": "Ambiente",
+       "exif-iimcategory-hth": "Salute",
+       "exif-iimcategory-hum": "Interesse uman",
+       "exif-iimcategory-lab": "Travaggio",
+       "exif-iimcategory-lif": "Stile di vitta e tempo libbero",
+       "exif-iimcategory-pol": "Polittica",
+       "exif-iimcategory-rel": "Religion e fe'",
+       "exif-iimcategory-sci": "Sciença e tecnologia",
+       "exif-iimcategory-soi": "Questioin sociale",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Guæra, confliti e disordini",
+       "exif-iimcategory-wea": "Meteo",
+       "exif-urgency-normal": "Normale ($1)",
+       "exif-urgency-low": "Bassa ($1)",
+       "exif-urgency-high": "Ata ($1)",
+       "exif-urgency-other": "Prioritæ definie da l'utente ($1)"
+}
diff --git a/languages/i18n/exif/lki.json b/languages/i18n/exif/lki.json
new file mode 100644 (file)
index 0000000..e0ea7a3
--- /dev/null
@@ -0,0 +1,347 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Hosseinblue",
+                       "Lakzon"
+               ]
+       },
+       "exif-imagewidth": "پهنا",
+       "exif-imagelength": "بةرزی/ارتفاع",
+       "exif-bitspersample": "نقطه در هر جزء",
+       "exif-compression": "شِمای فشرده‌سازی",
+       "exif-photometricinterpretation": "ترکیب نقاط",
+       "exif-orientation": "جهت",
+       "exif-samplesperpixel": "تعداد اجزا",
+       "exif-planarconfiguration": "آرایش داده‌ها",
+       "exif-ycbcrsubsampling": "نسبت زیرنمونهٔ Y به C",
+       "exif-ycbcrpositioning": "موقعیت Y و C",
+       "exif-xresolution": "تفکیک‌پذیری افقی",
+       "exif-yresolution": "تفکیک‌پذیری عمودی",
+       "exif-stripoffsets": "جایگاه داده‌های تصویر",
+       "exif-rowsperstrip": "تعداد ردیف‌ها در هر نوار",
+       "exif-stripbytecounts": "بایت در هر نوار فشرده",
+       "exif-jpeginterchangeformat": "جابه‌جایی نسبت به JPEG SOI",
+       "exif-jpeginterchangeformatlength": "بایت دادهٔ JPEG",
+       "exif-whitepoint": "رنگینگی نقطهٔ سفید",
+       "exif-primarychromaticities": "رنگ‌پذیری اولویت‌ها",
+       "exif-ycbcrcoefficients": "ضرایب ماتریس تبدیل فضای رنگی",
+       "exif-referenceblackwhite": "جفت مقادیر مرجع سیاه و سفید",
+       "exif-datetime": "تاریخ و زمان تغییر پرونده",
+       "exif-imagedescription": "عنوان تصویر",
+       "exif-make": "شرکت سازندهٔ دوربین",
+       "exif-model": "مدل دوربین",
+       "exif-software": "نرم‌افزار استفاده‌شده",
+       "exif-artist": "تصویربردار/هنرمند",
+       "exif-copyright": "دارندهٔ حق تکثیر",
+       "exif-exifversion": "نسخهٔ exif",
+       "exif-flashpixversion": "نسخهٔ پشتیبانی‌شدهٔ Flashpix",
+       "exif-colorspace": "فضای رۀنگی",
+       "exif-componentsconfiguration": "معنی هر یک از مؤلفه‌ها",
+       "exif-compressedbitsperpixel": "حالت فشرده‌سازی تصویر",
+       "exif-pixelxdimension": "پهنای تصویر",
+       "exif-pixelydimension": "بلندی تصویر",
+       "exif-usercomment": "توضیحات کاربر",
+       "exif-relatedsoundfile": "پروندهٔ صوتی مربوط",
+       "exif-datetimeoriginal": "تاریخ و زمان تولید داده‌ها",
+       "exif-datetimedigitized": "تاریخ و زمان دیجیتالی‌شدن",
+       "exif-subsectime": "کسر ثانیهٔ تاریخ و زمان",
+       "exif-subsectimeoriginal": "کسر ثانیهٔ زمان اصلی",
+       "exif-subsectimedigitized": "کسر ثانیهٔ زمان دیجیتال",
+       "exif-exposuretime": "زمان نوردهی",
+       "exif-exposuretime-format": "$1 ثانیه ($2)",
+       "exif-fnumber": "ضریب اف",
+       "exif-exposureprogram": "برنامهٔ نوردهی",
+       "exif-spectralsensitivity": "حساسیت طیفی",
+       "exif-isospeedratings": "درجه‌بندی سرعت ایزو",
+       "exif-shutterspeedvalue": "سرعت آپکس شاتر",
+       "exif-aperturevalue": "انازه اپکس دیافراگم",
+       "exif-brightnessvalue": "روشنایی آپکس",
+       "exif-exposurebiasvalue": "خطای نوردهی",
+       "exif-maxaperturevalue": "حداکثر گشادگی زمین",
+       "exif-subjectdistance": "فاصلهٔ سوژه",
+       "exif-meteringmode": "حالت سنجش نور",
+       "exif-lightsource": "منبع نور",
+       "exif-flash": "فلاش",
+       "exif-focallength": "فاصلهٔ کانونی عدسی",
+       "exif-subjectarea": "مساحت جسم",
+       "exif-flashenergy": "قدرت فلاش",
+       "exif-focalplanexresolution": "تفکیک‌پذیری X صفحهٔ کانونی",
+       "exif-focalplaneyresolution": "تفکیک‌پذیری Y صفحهٔ کانونی",
+       "exif-focalplaneresolutionunit": "واحد تفکیک‌پذیری صفحهٔ کانونی",
+       "exif-subjectlocation": "جاگه موضوع",
+       "exif-exposureindex": "شاخص نوردهی",
+       "exif-sensingmethod": "روش حسگری",
+       "exif-filesource": "منبع پرونده",
+       "exif-scenetype": "نوع صحنه",
+       "exif-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": "یکای سرعت",
+       "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-provinceorstatedest": "استان یا ایالت نمایش داده شده",
+       "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": "زمان روز که این رسانه برای آن در نظر گرفته شده",
+       "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": "تاریخ آخرین گؤەڕانن/تغییر فراداده",
+       "exif-nickname": "نام غیررسمی تصویر",
+       "exif-rating": "امتیاز (از 5)",
+       "exif-rightscertificate": "گواهینامه مدیریت حقوق",
+       "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-2": "رمزگذاری سی‌سی‌آی‌تی‌تی گروه ۳ یک بعدی به روش هافمن تغییریافته روی طول",
+       "exif-compression-3": "رمزگذاری نمابر سی‌سی‌آی‌تی‌تی گروه ۳",
+       "exif-compression-4": "رمزگذاری نمابر سی‌سی‌آی‌تی‌تی گروه ۴",
+       "exif-copyrighted-true": "دارای حق تکثیر",
+       "exif-copyrighted-false": "وضعیت حق‌تکثیر تعیین نشده است",
+       "exif-photometricinterpretation-1": "سیاه و سفید (سیاه ۰ است)",
+       "exif-unknowndate": "تاریخ نامعلوم/نادیار",
+       "exif-orientation-1": "عادی",
+       "exif-orientation-2": "افقی/لاووةلا پشت و رو بیة",
+       "exif-orientation-3": "۱۸۰ درجه چرخیده",
+       "exif-orientation-4": "عمودی پشت و روشده",
+       "exif-orientation-5": "۹۰° پادساعتگرد چرخیده و عمودی پشت و رو شده",
+       "exif-orientation-6": "۹۰° پادساعتگرد چرخیده",
+       "exif-orientation-7": "۹۰° ساعتگرد چرخیده و عمودی پشت و رو شده",
+       "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-exposureprogram-5": "برنامه خلاق (با گرایش به سمت عمق میدان)",
+       "exif-exposureprogram-6": "برنامه پرجنبش (با گرایش به سمت سرعت بیشتر شاتر)",
+       "exif-exposureprogram-7": "حالت پرتره (برای عکس‌های نزدیک که پس‌زمینه خارج از فاصلهٔ کانونی است)",
+       "exif-exposureprogram-8": "حالت منظره (برای عکس‌های منظره که تمرکز روی پس‌زمینه است)",
+       "exif-subjectdistance-value": "$1 متر",
+       "exif-meteringmode-0": "ناشنا/نادیار",
+       "exif-meteringmode-1": "میانگین",
+       "exif-meteringmode-2": "میانگین با مرکز سنگین",
+       "exif-meteringmode-3": "تک‌نقطه‌ای",
+       "exif-meteringmode-4": "چندنقطه‌ای",
+       "exif-meteringmode-5": "طرح‌دار",
+       "exif-meteringmode-6": "جزئی",
+       "exif-meteringmode-255": "بۀقیۀ",
+       "exif-lightsource-0": "ناشنا/نادیار",
+       "exif-lightsource-1": "رووشتای رووژ",
+       "exif-lightsource-2": "فلورسانت",
+       "exif-lightsource-3": "تنگستن (نور بدون گرما)",
+       "exif-lightsource-4": "فلاش",
+       "exif-lightsource-9": "هوای خوب",
+       "exif-lightsource-10": "آسمان ابری",
+       "exif-lightsource-11": "سایه",
+       "exif-lightsource-12": "مهتابی در روز (D 5700 – 7100K)",
+       "exif-lightsource-13": "مهتابی سفید در روز (N 4600 – 5400K)",
+       "exif-lightsource-14": "مهتابی سفید خنک (W 3900 – 4500K)",
+       "exif-lightsource-15": "مهتابی سفید (WW 3200 – 3700K)",
+       "exif-lightsource-17": "نور استاندارد A",
+       "exif-lightsource-18": "نور استاندارد B",
+       "exif-lightsource-19": "نور استاندارد C",
+       "exif-lightsource-24": "لامپ تنگستن کارخانه ISO",
+       "exif-lightsource-255": "سایر منبةل/بِنچةکةل",
+       "exif-flash-fired-0": "فلاش زده نشد",
+       "exif-flash-fired-1": "با زدن فلاش",
+       "exif-flash-return-0": "فاقد عملکرد کشف نور انعکاسی",
+       "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-sensingmethod-7": "حسگر سه‌خطی",
+       "exif-sensingmethod-8": "حسگر خطی ترتیبی رنگ‌ها",
+       "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-saturation-0": "عادی",
+       "exif-saturation-1": "رنگ‌های رقیق شده",
+       "exif-saturation-2": "رنگ‌های تغلیظ شده",
+       "exif-sharpness-0": "عادی",
+       "exif-sharpness-1": "نرم",
+       "exif-sharpness-2": "زبر",
+       "exif-subjectdistancerange-0": "ناشنا/نادیار",
+       "exif-subjectdistancerange-1": "کةڵِنگ",
+       "exif-subjectdistancerange-2": "نمای نزدیک",
+       "exif-subjectdistancerange-3": "نمای دور",
+       "exif-gpslatitude-n": "عرض جغرافیایی شمالی",
+       "exif-gpslatitude-s": "عرض جغرافیایی جنوبی",
+       "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-gpsdestdistance-m": "مایل",
+       "exif-gpsdestdistance-n": "مایل دریایی",
+       "exif-gpsdop-excellent": "عالی ($1)",
+       "exif-gpsdop-good": "خوب ($1)",
+       "exif-gpsdop-moderate": "متوسط ($1)",
+       "exif-gpsdop-fair": "نه چندان خوب ($1)",
+       "exif-gpsdop-poor": "ضعیف ($1)",
+       "exif-objectcycle-a": "تةنیا شؤةکی/شؤصو",
+       "exif-objectcycle-p": "تةنیا ایووارة/عصر",
+       "exif-objectcycle-b": "شؤةکی و ایووارة",
+       "exif-gpsdirection-t": "جهت درست",
+       "exif-gpsdirection-m": "جهت مغناطیسی",
+       "exif-ycbcrpositioning-1": "وسط‌چین‌شده",
+       "exif-ycbcrpositioning-2": "اشتراکی/هام بةشی",
+       "exif-dc-contributor": "بەشاکرەل(هام بێرەل)",
+       "exif-dc-coverage": "محدوده مکانی و یا زمانی رسانه",
+       "exif-dc-date": "تاریخ(ها)",
+       "exif-dc-publisher": "بۀشا کۀر-ناشر",
+       "exif-dc-relation": "رسانه‌های مرتبط",
+       "exif-dc-rights": "حقوق",
+       "exif-dc-source": "رسانه منبع/بِنچةک",
+       "exif-dc-type": "نوع رسانه",
+       "exif-rating-rejected": "رد شده",
+       "exif-isospeedratings-overflow": "کةڵنگ تر إژ ۶۵۵۳۵",
+       "exif-iimcategory-ace": "*هؤنةر، فةرهنگ و خاپوورة*سرگرمی",
+       "exif-iimcategory-clj": "جنایت و قانون",
+       "exif-iimcategory-dis": "بلایا و حوادث",
+       "exif-iimcategory-fin": "بازةرگانی و تجارت",
+       "exif-iimcategory-edu": "آموزش",
+       "exif-iimcategory-evn": "زِنی جاگة/محیط زیست",
+       "exif-iimcategory-hth": "رامی/آزائی/ساق/سلامت",
+       "exif-iimcategory-hum": "تمارزو*خؤزگاڵ* آئم/علاقه بشر",
+       "exif-iimcategory-lab": "کار",
+       "exif-iimcategory-lif": "*روش ژیائن و وةختةل آسائش*فراغت",
+       "exif-iimcategory-pol": "سیاسةتةل",
+       "exif-iimcategory-rel": "مذهب و اعتقاد",
+       "exif-iimcategory-sci": "علم و فناوری",
+       "exif-iimcategory-soi": "مسائل اجتماعی",
+       "exif-iimcategory-spo": "وةرزش",
+       "exif-iimcategory-war": "جنگ ، درگیری و ناآرامی",
+       "exif-iimcategory-wea": "آوو و هآووا",
+       "exif-urgency-normal": "عادی ($1)",
+       "exif-urgency-low": "کم ($1)",
+       "exif-urgency-high": "فِرة/زیاد ($1)",
+       "exif-urgency-other": "اولویت تعریف شده توسط کاربر ($1)"
+}
diff --git a/languages/i18n/exif/lrc.json b/languages/i18n/exif/lrc.json
new file mode 100644 (file)
index 0000000..e0a7f19
--- /dev/null
@@ -0,0 +1,349 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Beyronvan",
+                       "Bonevarluri",
+                       "Mogoeilor"
+               ]
+       },
+       "exif-imagewidth": "پئنا",
+       "exif-imagelength": "بلنگی",
+       "exif-bitspersample": "نقطه یا سی هر اندوم",
+       "exif-compression": "شیوات جم و جور کردن",
+       "exif-photometricinterpretation": "ترکیو پیکسل",
+       "exif-orientation": "سرچشمٱ",
+       "exif-samplesperpixel": "شماره اندومیا",
+       "exif-planarconfiguration": "سرجایک کردن رسینه",
+       "exif-ycbcrsubsampling": "نسوت زیرنمونه Y وه C",
+       "exif-ycbcrpositioning": "جاگری کردن Y و C",
+       "exif-xresolution": "گپ نما کردن د آسو",
+       "exif-yresolution": "گپ نما کردن د وارو",
+       "exif-stripoffsets": "جاگه رسینه یا عسگ",
+       "exif-rowsperstrip": "انازه ردیفیا سی هر نوار",
+       "exif-stripbytecounts": "نقطه یا سی هر نوار جمع و جور بیه",
+       "exif-jpeginterchangeformat": "جا وه جایی نسوت وه JPEG SOI",
+       "exif-jpeginterchangeformatlength": "بایت رسینه JPEG",
+       "exif-whitepoint": "رئن دار بین جاگه اسبئ",
+       "exif-primarychromaticities": "رنگ گرتن چیا مهمتر",
+       "exif-ycbcrcoefficients": "ضریبا ماتریس جا وه جایی جاگه رئنی",
+       "exif-referenceblackwhite": "جفت انازه سرچشمه سیا و اسبئ",
+       "exif-datetime": "آلشت دئن وخت و دمون جانیا",
+       "exif-imagedescription": "نوم عسگ",
+       "exif-make": "سازیار دیربین",
+       "exif-model": "مدل دیربین",
+       "exif-software": "نرم افزار به کار گرتنی",
+       "exif-artist": "نیسنه",
+       "exif-copyright": "حق تکثیر دار",
+       "exif-exifversion": "نسقه Exif",
+       "exif-flashpixversion": "نسقه حامین داری Flashpix",
+       "exif-colorspace": "رئن ورگه",
+       "exif-componentsconfiguration": "مئنی هر اندوم",
+       "exif-compressedbitsperpixel": "شکل جمع و جیل کردن عسگ",
+       "exif-pixelxdimension": "پئنا عسگ",
+       "exif-pixelydimension": "درازا عسگ",
+       "exif-usercomment": "ویر و باوریا کارور",
+       "exif-relatedsoundfile": "جانیا دنگ دار مرتوط",
+       "exif-datetimeoriginal": "دمون و وخت راس بیئن دونسمنیا",
+       "exif-datetimedigitized": "گات و وخت دیجیتالی کردن",
+       "exif-subsectime": "کم کردن ثانیه گات و وخت",
+       "exif-subsectimeoriginal": "کم کردن ثانیه گات اصلی",
+       "exif-subsectimedigitized": "کم کردن ثانیه گات دیجیتالی",
+       "exif-exposuretime": "گات نیر دئن",
+       "exif-exposuretime-format": "$1 ثانیه ($2)",
+       "exif-fnumber": "ضریب اف",
+       "exif-exposureprogram": "برنامه نیر دئن",
+       "exif-spectralsensitivity": "حساسیت طیفی",
+       "exif-isospeedratings": "گرینج گری سرعت سی ایزو",
+       "exif-shutterspeedvalue": "سرعت اپکس شاتر",
+       "exif-aperturevalue": "انازه اپکس دیافراگم",
+       "exif-brightnessvalue": "انازه برچ زئن اپکس",
+       "exif-exposurebiasvalue": "خطا نیر دئن اپکس",
+       "exif-maxaperturevalue": "بیشرونه د یک رئتن زمین",
+       "exif-subjectdistance": "فاصله سوجه",
+       "exif-meteringmode": "شکل سنجشت نیر",
+       "exif-lightsource": "سرچشمه نور",
+       "exif-flash": "فلش",
+       "exif-focallength": "انازه کانونی عدسی",
+       "exif-subjectarea": "انازه اندومواره",
+       "exif-flashenergy": "آز فلش",
+       "exif-focalplanexresolution": "گپ نما کردن X د بلگه کانونی",
+       "exif-focalplaneyresolution": "گپ نما کردن Y د بلگه کانونی",
+       "exif-focalplaneresolutionunit": "واحد",
+       "exif-subjectlocation": "جاگه موضوع",
+       "exif-exposureindex": "نشودیارکن نیردئن",
+       "exif-sensingmethod": "روشت حسگری کردن",
+       "exif-filesource": "سرچشمه جانیا",
+       "exif-scenetype": "نوع حسگری کردن",
+       "exif-customrendered": "پردازشتکاری جاافتائه عسگ",
+       "exif-exposuremode": "شکل نیر دئن",
+       "exif-whitebalance": "موازنه نیر اسبئ",
+       "exif-digitalzoomratio": "نسوت گپ کردن دیجیتالی",
+       "exif-focallengthin35mmfilm": "انازه کانونی سی فیلم 35 میلیمتری",
+       "exif-scenecapturetype": "نوع ضفط کردن صئنه",
+       "exif-gaincontrol": "کنترل کردن صئنه",
+       "exif-contrast": "کنتراست",
+       "exif-saturation": "سیر بیین رئن",
+       "exif-sharpness": "گرینج برچ زئن",
+       "exif-devicesettingdescription": "شرح میزوکاری اوزار",
+       "exif-subjectdistancerange": "محدوده دیر د دس بیین سوجه",
+       "exif-imageuniqueid": "نوم دیار کن یکونه عسگ",
+       "exif-gpsversionid": "نوسقە سأردیس جی پی ئس",
+       "exif-gpslatituderef": "پئنا ولاتشناسی شمالی و هارگه",
+       "exif-gpslatitude": "پئنا ولاتشناسی",
+       "exif-gpslongituderef": "درازا ولاتشناسی افتوزنون و افتونشین",
+       "exif-gpslongitude": "درازا ولاتشناسی",
+       "exif-gpsaltituderef": "جاگه سرچشمه بلنگی",
+       "exif-gpsaltitude": "جاگه بلنگی",
+       "exif-gpstimestamp": "وخت جی پی اس (ساعت اتمی)",
+       "exif-gpssatellites": "ماواره یا وه کار گرته بیه سی انازه گری",
+       "exif-gpsstatus": "حال و بال گیرنه",
+       "exif-gpsmeasuremode": "شکل انازه گری",
+       "exif-gpsdop": "دقیق بیین انازه گری",
+       "exif-gpsspeedref": "واحد سرعت",
+       "exif-gpsspeed": "سرعت گیرنه جی پی اس",
+       "exif-gpstrackref": "سرچشمه سی لا جمشت",
+       "exif-gpstrack": "لا جمشت",
+       "exif-gpsimgdirectionref": "سرچشمه سی لا جمشت",
+       "exif-gpsimgdirection": "لا عسگ",
+       "exif-gpsmapdatum": "دونسمنیا وارسگری وه کار گرته بیه سی جئودزیک",
+       "exif-gpsdestlatituderef": "سرچشمه سی پئنا ولاتشناسی مقصد",
+       "exif-gpsdestlatitude": "پئنا ولاتشناسی مقصد",
+       "exif-gpsdestlongituderef": "سرچشمه سی پئنا ولاتشناسی مقصد",
+       "exif-gpsdestlongitude": "پئنا ولاتشناسی مقصد",
+       "exif-gpsdestbearingref": "سرچشمه سی لا مقصد",
+       "exif-gpsdestbearing": "لا مقصد",
+       "exif-gpsdestdistanceref": "سرچشمه سی دیری مقصد",
+       "exif-gpsdestdistance": "دیری د مقصد",
+       "exif-gpsprocessingmethod": "نوم روشت پردازشت جی پی اس",
+       "exif-gpsareainformation": "نوم راساگه جی پی اس",
+       "exif-gpsdatestamp": "گات جی پی اس",
+       "exif-gpsdifferential": "راس کردن کم د جی پی اس",
+       "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-jpegfilecomment": "ویر و باور فایل پی ان جی",
+       "exif-keywords": "کلیمه یا کلیتی",
+       "exif-worldregioncreated": "راساگه ای د دنیا که عسگ د اوچه گرته بیه",
+       "exif-countrycreated": "ولاتی که عسگ دش گرته بیه",
+       "exif-countrycodecreated": "رازینه سی ولاتی که عسگ د وه گرته بیه",
+       "exif-provinceorstatecreated": "آستونی که عسگ دش گرته بیه",
+       "exif-citycreated": "شهری که عسگ دش گرته بیه",
+       "exif-sublocationcreated": "جاگه ای د شهر که عسگ د وه گرته بیه",
+       "exif-worldregiondest": "راساگه نشو دئه بیه د دنیا",
+       "exif-countrydest": "ولات نشو دئه بیه",
+       "exif-countrycodedest": "رازینه سی ولات نمائشت دئه بیه",
+       "exif-provinceorstatedest": "آستون یا ولاتچه نشو دئه",
+       "exif-citydest": "شهر دیار بیه",
+       "exif-sublocationdest": "جاگه ای د شهر که نشو دئه بیه",
+       "exif-objectname": "نوم کؤچک",
+       "exif-specialinstructions": "انجوم روشتیا ویجه",
+       "exif-headline": "سربلگه",
+       "exif-credit": "صاحاو/اماییه کار",
+       "exif-source": "سرچشمه",
+       "exif-editstatus": "حال و بار ویرایشتکاری عسگ",
+       "exif-urgency": "فوریت",
+       "exif-fixtureidentifier": "نوم ثاوت",
+       "exif-locationdest": "جاگه کشیاری بیه",
+       "exif-locationdestcode": "رازینه جاگه کشیاری بیه",
+       "exif-objectcycle": "گات روزی که ای وارسگر سی وه اومائه د ویر",
+       "exif-contact": "دونسمنیا پیوند گرتن",
+       "exif-writer": "نیسنه",
+       "exif-languagecode": "زون",
+       "exif-iimversion": "نسقه آی آی ام",
+       "exif-iimcategory": "دسه",
+       "exif-iimsupplementalcategory": "دسه یا اضافی",
+       "exif-datetimeexpires": "وا نها دش استفاده نبوئه",
+       "exif-datetimereleased": "ول بیه د",
+       "exif-originaltransmissionref": "رازینه جاگه جا وه جا بیین اصلی",
+       "exif-identifier": "نوم دیارکن",
+       "exif-lens": "لنز وه کار رتنی",
+       "exif-serialnumber": "نوم شماره دیربین",
+       "exif-cameraownername": "مالک دیربین",
+       "exif-label": "ری دیار",
+       "exif-datetimemetadata": "گات متا کلون دونسمنیا آخر بار آلشت کاری بیه.",
+       "exif-nickname": "نوم نامرتوط سی عسگ",
+       "exif-rating": "امتیاز(د 5)",
+       "exif-rightscertificate": "تصیق حقوق دیوونداری",
+       "exif-copyrighted": "حال و بال کپی رایت",
+       "exif-copyrightowner": "مالک کپی رایت",
+       "exif-usageterms": "کلیمه یا وه کار گرتن",
+       "exif-webstatement": "گوته یاری ری خط کپی رایت",
+       "exif-originaldocumentid": "نوم دیارکن یکونه سند اصلی",
+       "exif-licenseurl": "یو آر ال سی لیسانس کپی رایت",
+       "exif-morepermissionsurl": "دونسمنیا جانشین لیسانسکاری",
+       "exif-attributionurl": "د گات دواره وه کار گرتن، لطف بکیت د هوم پیوندش بکیت",
+       "exif-preferredattributionname": "د گات دواره وه کار گرتن، لطف بکیت وا اعتوارش بکیت",
+       "exif-pngfilecomment": "ویر و باور فایل جی پی ان جی",
+       "exif-disclaimer": "کذو نومه",
+       "exif-contentwarning": "هشدار مینونه",
+       "exif-giffilecomment": "ویر و باور فایل جی آی اف",
+       "exif-intellectualgenre": "نوع مورد",
+       "exif-subjectnewscode": "رازینه داسون",
+       "exif-scenecode": "IPTC رازینه صحنه",
+       "exif-event": "رخ ون کشیاری بیه",
+       "exif-organisationinimage": "سامونجا کشیاری بیه",
+       "exif-personinimage": "آئم کشیاری بیه",
+       "exif-originalimageheight": "بلنگی عسگ دما برشت دئن",
+       "exif-originalimagewidth": "پئنا عسگ دما برشت دئن",
+       "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-compression-1": "جم نبیه",
+       "exif-compression-2": "رازینه کاری سی‌ سی‌ آی‌ تی‌ تی دسه ۳ تک ورگه جایی روشت هافمن آلشتکاری بیه ری درازا",
+       "exif-compression-3": "رازینه کاری فاکس سی سی آی تی تی گرو3",
+       "exif-compression-4": "رازینه کاری فاکس سی سی آی تی تی گرو ۴",
+       "exif-copyrighted-true": "کپی رایت بیه",
+       "exif-copyrighted-false": "حال و بال کپی رایت میزوکاری نبیه",
+       "exif-unknowndate": "گات نادیار",
+       "exif-orientation-1": "آدی",
+       "exif-orientation-2": "پشت ری بیه افقی",
+       "exif-orientation-3": "180 گرینج لر دئه",
+       "exif-orientation-4": "پشت ری بیه عمودی",
+       "exif-orientation-5": "۹۰° خلاف گردشت ساعت در حرده و عمودی پشت و ری بیه",
+       "exif-orientation-6": "چرخشت 90 گرینجی",
+       "exif-orientation-7": "۹۰° خلاف گردشت ساعت در حرده و عمودی پشت و ری بیه",
+       "exif-orientation-8": "چرخشت لا ساعتی 90 گرینجی",
+       "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-exposureprogram-5": "برنامه سازدیاری",
+       "exif-exposureprogram-6": "برنامه پر جمشت(وا حاست وه لا سرعت بیشتر شاتر)",
+       "exif-exposureprogram-7": "حال و بار کشیاری(سی عسگیا نزیک که نهازمینه شو ها وه در د فاصله کانونی)",
+       "exif-exposureprogram-8": "حال و بار منظره(سی عسگیا منظره که زل زئن واس ری نهازمینه با)",
+       "exif-subjectdistance-value": "$1 متر",
+       "exif-meteringmode-0": "نادیار",
+       "exif-meteringmode-1": "میانگین",
+       "exif-meteringmode-2": "میانگین وا مینجاون سنگین",
+       "exif-meteringmode-3": "نقطه جا",
+       "exif-meteringmode-4": "چن جاگه ای",
+       "exif-meteringmode-5": "الگو",
+       "exif-meteringmode-6": "جزئی",
+       "exif-meteringmode-255": "هنی",
+       "exif-lightsource-0": "نادیار",
+       "exif-lightsource-1": "روشنایی روز",
+       "exif-lightsource-2": "فلورسنت",
+       "exif-lightsource-3": "تنگستن",
+       "exif-lightsource-4": "فلش",
+       "exif-lightsource-9": "هوا خو",
+       "exif-lightsource-10": "هوا اوری",
+       "exif-lightsource-11": "سایه",
+       "exif-lightsource-12": "مهتاوی د روز (D 5700 – 7100K)",
+       "exif-lightsource-13": "مهتاوی اسبئ روز (N 4600 – 5400K)",
+       "exif-lightsource-14": "مهتاوی اسبئ حنک (W 3900 – 4500K)",
+       "exif-lightsource-15": "مهتاوی اسبی(WW 3200 – 3700K)",
+       "exif-lightsource-17": "چرا استاندارد آ",
+       "exif-lightsource-18": "چرا استاندارد بی",
+       "exif-lightsource-19": "چرا استاندارد سی",
+       "exif-lightsource-24": "لامپا تنگستن کارخونه ISO",
+       "exif-lightsource-255": "سرچشمه چرا هنی",
+       "exif-flash-fired-0": "فلاش دئه نبی",
+       "exif-flash-fired-1": "فلاش دئه بی",
+       "exif-flash-return-0": "بی کنشت دیاری دیارکاری نور برچسه",
+       "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-sensingmethod-7": "حس دیار سه خطی",
+       "exif-sensingmethod-8": "حس دیار خطی منظم رئنیا",
+       "exif-filesource-3": "دیربین دیجیتالی",
+       "exif-scenetype-1": "عسگ مستقیم گرته بیه",
+       "exif-customrendered-0": "پردازشت خو",
+       "exif-customrendered-1": "پردازشت همیشه ای",
+       "exif-exposuremode-0": "نیر دئن خودانجوم",
+       "exif-exposuremode-1": "نیر دئن دسی",
+       "exif-exposuremode-2": "چوئه کاری خودانجوم",
+       "exif-whitebalance-0": "میزونکاری خودانجوم میونه کار رئن اسبئ",
+       "exif-whitebalance-1": "میزونکاری دسی میونه کار رئن اسبئ",
+       "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-saturation-0": "عادی",
+       "exif-saturation-1": "رئنیا لقن بیه",
+       "exif-saturation-2": "رئنیا سیر بیه",
+       "exif-sharpness-0": "عادی",
+       "exif-sharpness-1": "نرم",
+       "exif-sharpness-2": "سفت",
+       "exif-subjectdistancerange-0": "نادیار",
+       "exif-subjectdistancerange-1": "گپ",
+       "exif-subjectdistancerange-2": "نما بسته",
+       "exif-subjectdistancerange-3": "نما د دیر",
+       "exif-gpslatitude-n": "پئنا ولاتشناسی شمالی",
+       "exif-gpslatitude-s": "پئنا ولاتشناسی هارگه",
+       "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-gpsdestdistance-m": "مایل",
+       "exif-gpsdestdistance-n": "مایل دریایی",
+       "exif-gpsdop-excellent": "عالیه($1)",
+       "exif-gpsdop-good": "خو ($1)",
+       "exif-gpsdop-moderate": "متوسط($1)",
+       "exif-gpsdop-fair": "د ری انصاف ($1)",
+       "exif-gpsdop-poor": "گن ($1)",
+       "exif-objectcycle-a": "فقط شو صو",
+       "exif-objectcycle-p": "فقط ایواره",
+       "exif-objectcycle-b": "هم شو صو و هم ایواره",
+       "exif-gpsdirection-t": "لا درست",
+       "exif-gpsdirection-m": "لا مغناطیسی",
+       "exif-ycbcrpositioning-1": "مینجا کاری بیه",
+       "exif-ycbcrpositioning-2": "هوم بهری",
+       "exif-dc-contributor": "هومیارا",
+       "exif-dc-coverage": "محدوده گاتی یا جاگه یی وارسگر",
+       "exif-dc-date": "گاتیا",
+       "exif-dc-publisher": "درتیجن",
+       "exif-dc-relation": "وارسگر مرتوط",
+       "exif-dc-rights": "حقوق",
+       "exif-dc-source": "سرچشمه وارسگر",
+       "exif-dc-type": "نوع وارسگر",
+       "exif-rating-rejected": "رد بیه",
+       "exif-isospeedratings-overflow": "گپتر د 65535",
+       "exif-iimcategory-ace": "هنریا، رهزیشت و زیستگه",
+       "exif-iimcategory-clj": "جرم و قانون",
+       "exif-iimcategory-dis": "بدبختیا و رخ ونیا",
+       "exif-iimcategory-fin": "اموری و کسم کار",
+       "exif-iimcategory-edu": "آموختاری",
+       "exif-iimcategory-evn": "زئشت گه",
+       "exif-iimcategory-hth": "تن آزایی",
+       "exif-iimcategory-hum": "حاستنی انسانی",
+       "exif-iimcategory-lab": "کار",
+       "exif-iimcategory-lif": "گواردن زئشت و شادی کردن",
+       "exif-iimcategory-pol": "سیاستا",
+       "exif-iimcategory-rel": "دین و ائتقات",
+       "exif-iimcategory-sci": "دونسمنی و سازیاری",
+       "exif-iimcategory-soi": "جریانیا اشتمائی",
+       "exif-iimcategory-spo": "ورزشتا",
+       "exif-iimcategory-war": "جئن، تضاد و لیزشیوسن",
+       "exif-iimcategory-wea": "هوا",
+       "exif-urgency-normal": "خو($1)",
+       "exif-urgency-low": "هار ($1)",
+       "exif-urgency-high": "بلنگ ($1)",
+       "exif-urgency-other": "اول کاری تعریف بیه وه دس کاریار($1)"
+}
diff --git a/languages/i18n/exif/lt.json b/languages/i18n/exif/lt.json
new file mode 100644 (file)
index 0000000..55a7120
--- /dev/null
@@ -0,0 +1,357 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Eitvys200",
+                       "Garas",
+                       "Homo",
+                       "Hugo.arg",
+                       "Ignas693",
+                       "Matasg",
+                       "Perkunas",
+                       "Tomasdd",
+                       "Vpovilaitis",
+                       "Zygimantus"
+               ]
+       },
+       "exif-imagewidth": "Plotis",
+       "exif-imagelength": "Aukštis",
+       "exif-bitspersample": "Bitai komponente",
+       "exif-compression": "Suspaudimo tipas",
+       "exif-photometricinterpretation": "Taškų struktūra",
+       "exif-orientation": "Pasukimas",
+       "exif-samplesperpixel": "Komponentų skaičius",
+       "exif-planarconfiguration": "Duomenų išdėstymas",
+       "exif-ycbcrsubsampling": "Y iki C atrankos santykis",
+       "exif-ycbcrpositioning": "Y ir C pozicija",
+       "exif-xresolution": "Horizontali raiška",
+       "exif-yresolution": "Vertikali raiška",
+       "exif-stripoffsets": "Paveikslėlio duomenų vieta",
+       "exif-rowsperstrip": "Eilių skaičius juostoje",
+       "exif-stripbytecounts": "Baitai suspaustje juostoje",
+       "exif-jpeginterchangeformat": "JPEG SOI pozicija",
+       "exif-jpeginterchangeformatlength": "JPEG duomenų baitai",
+       "exif-whitepoint": "Balto taško chromatiškumas",
+       "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": "Rinkmenos keitimo data ir laikas",
+       "exif-imagedescription": "Paveikslėlio pavadinimas",
+       "exif-make": "Kameros gamintojas",
+       "exif-model": "Kameros modelis",
+       "exif-software": "Naudota programinė įranga",
+       "exif-artist": "Autorius",
+       "exif-copyright": "Autorystės teisių savininkas",
+       "exif-exifversion": "Exif versija",
+       "exif-flashpixversion": "Palaikoma Flashpix versija",
+       "exif-colorspace": "Spalvų pristatymas",
+       "exif-componentsconfiguration": "kiekvieno komponento reikšmė",
+       "exif-compressedbitsperpixel": "Paveikslėlio suspaudimo režimas",
+       "exif-pixelxdimension": "Paveikslėlio plotis",
+       "exif-pixelydimension": "Vaizdo aukštis",
+       "exif-usercomment": "Naudotojo komentarai",
+       "exif-relatedsoundfile": "Susijusi garso byla",
+       "exif-datetimeoriginal": "Duomenų generavimo 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",
+       "exif-exposuretime": "Išlaikymo laikas",
+       "exif-exposuretime-format": "$1 sek. ($2)",
+       "exif-fnumber": "F numeris",
+       "exif-exposureprogram": "Išlaikymo programa",
+       "exif-spectralsensitivity": "Spektrinis jautrumas",
+       "exif-isospeedratings": "ISO greitis",
+       "exif-shutterspeedvalue": "APEX užrakto greičio",
+       "exif-aperturevalue": "APEX diafragma",
+       "exif-brightnessvalue": "APEX ryškumas",
+       "exif-exposurebiasvalue": "Išlaikymo paklaida",
+       "exif-maxaperturevalue": "Mažiausias lešio F numeris",
+       "exif-subjectdistance": "Objekto atstumas",
+       "exif-meteringmode": "Matavimo režimas",
+       "exif-lightsource": "Šviesos šaltinis",
+       "exif-flash": "Blykstė",
+       "exif-focallength": "Židinio nuotolis",
+       "exif-subjectarea": "Objekto zona",
+       "exif-flashenergy": "Blykstės energija",
+       "exif-focalplanexresolution": "Židinio projekcijos X raiška",
+       "exif-focalplaneyresolution": "Židinio projekcijos Y raiška",
+       "exif-focalplaneresolutionunit": "Židinio projekcijos raiškos matavimo vienetai",
+       "exif-subjectlocation": "Objekto vieta",
+       "exif-exposureindex": "Išlaikymo indeksas",
+       "exif-sensingmethod": "Jutimo režimas",
+       "exif-filesource": "Failo šaltinis",
+       "exif-scenetype": "Scenos tipas",
+       "exif-customrendered": "Pasirinktinis vaizdo apdorojimas",
+       "exif-exposuremode": "Išlaikymo režimas",
+       "exif-whitebalance": "Baltumo balansas",
+       "exif-digitalzoomratio": "Skaitmeninio priartinimo koeficientas",
+       "exif-focallengthin35mmfilm": "Židinio nuotolis 35 mm juostoje",
+       "exif-scenecapturetype": "Scenos fiksavimo tipas",
+       "exif-gaincontrol": "Scenos kontrolė",
+       "exif-contrast": "Kontrastas",
+       "exif-saturation": "Sodrumas",
+       "exif-sharpness": "Aštrumas",
+       "exif-devicesettingdescription": "Įrenginio nustatymų aprašas",
+       "exif-subjectdistancerange": "Objekto nuotolis",
+       "exif-imageuniqueid": "Unikalusis paveikslėlio ID",
+       "exif-gpsversionid": "GPS versija",
+       "exif-gpslatituderef": "Šiaurės ar pietų platuma",
+       "exif-gpslatitude": "Platuma",
+       "exif-gpslongituderef": "Rytų ar vakarų ilguma",
+       "exif-gpslongitude": "Ilguma",
+       "exif-gpsaltituderef": "Aukščio nuoroda",
+       "exif-gpsaltitude": "Aukštis",
+       "exif-gpstimestamp": "GPS laikas (atominis laikrodis)",
+       "exif-gpssatellites": "Palydovai, naudoti matavimui",
+       "exif-gpsstatus": "Gaviklio būsena",
+       "exif-gpsmeasuremode": "Matavimo režimas",
+       "exif-gpsdop": "Matavimo tikslumas",
+       "exif-gpsspeedref": "Greičio vienetai",
+       "exif-gpsspeed": "GPS gaviklio greitis",
+       "exif-gpstrackref": "Nuoroda judėjimo krypčiai",
+       "exif-gpstrack": "Judėjimo kryptis",
+       "exif-gpsimgdirectionref": "Nuoroda vaizdo krypčiai",
+       "exif-gpsimgdirection": "Nuotraukos kryptis",
+       "exif-gpsmapdatum": "Panaudoti geodeziniai apžvalgos duomenys",
+       "exif-gpsdestlatituderef": "Nuoroda paskirties platumai",
+       "exif-gpsdestlatitude": "Paskirties platuma",
+       "exif-gpsdestlongituderef": "Nuoroda paskirties ilgumai",
+       "exif-gpsdestlongitude": "Paskirties ilguma",
+       "exif-gpsdestbearingref": "Nuoroda į paskirties pelengą",
+       "exif-gpsdestbearing": "Paskirties pelengas",
+       "exif-gpsdestdistanceref": "Nuoroda atstumui iki paskirties",
+       "exif-gpsdestdistance": "Atstumas iki paskirties",
+       "exif-gpsprocessingmethod": "GPS apdorojimo metodo pavadinimas",
+       "exif-gpsareainformation": "GPS zonos pavadinimas",
+       "exif-gpsdatestamp": "GPS data",
+       "exif-gpsdifferential": "GPS diferiancialo pataisymas",
+       "exif-jpegfilecomment": "JPEG failas komentarą",
+       "exif-keywords": "Raktiniai žodžiai",
+       "exif-worldregioncreated": "Pasaulio regione, kad nuotrauka buvo imtasi",
+       "exif-countrycreated": "Šalis, kad nuotrauka buvo imtasi",
+       "exif-countrycodecreated": "Kodas šaliai, kad nuotrauka buvo imtasi",
+       "exif-provinceorstatecreated": "Provincijos ar nurodyti, kad nuotrauka buvo imtasi",
+       "exif-citycreated": "Miestas, kad nuotrauka buvo imtasi",
+       "exif-sublocationcreated": "Sublocation miesto, kad nuotrauka buvo imtasi",
+       "exif-worldregiondest": "Pasaulio regionas rodomas",
+       "exif-countrydest": "Šalis rodomas",
+       "exif-countrycodedest": "Kodas šalies rodomas",
+       "exif-provinceorstatedest": "Rodoma provincija arba valstija",
+       "exif-citydest": "Rodomas miestas",
+       "exif-sublocationdest": "Miesto vietovė rodoma",
+       "exif-objectname": "Trumpas pavadinimas",
+       "exif-specialinstructions": "Specialiosios instrukcijos",
+       "exif-headline": "Antraštė",
+       "exif-credit": "Padėka/tiekėjas",
+       "exif-source": "Šaltinis",
+       "exif-editstatus": "Paveikslėlio redagavimo būsena",
+       "exif-urgency": "Skuba",
+       "exif-fixtureidentifier": "Pastovių duomenų pavadinimas",
+       "exif-locationdest": "Rodoma vietovė",
+       "exif-locationdestcode": "Rodomos vietovės kodas",
+       "exif-objectcycle": "Dienos laikas, kuriam skiriamas turinys",
+       "exif-contact": "Kontaktinė informacija",
+       "exif-writer": "Rašytojas",
+       "exif-languagecode": "Kalba",
+       "exif-iimversion": "IIM versija",
+       "exif-iimcategory": "Kategorija",
+       "exif-iimsupplementalcategory": "Papildomos kategorijos",
+       "exif-datetimeexpires": "Nenaudokite po",
+       "exif-datetimereleased": "Išleista",
+       "exif-originaltransmissionref": "Pradinis perdavimo vietos kodas",
+       "exif-identifier": "Identifikatorius",
+       "exif-lens": "Naudotas objektyvas",
+       "exif-serialnumber": "kameros serijinis numeris",
+       "exif-cameraownername": "Fotoaparato savininkas",
+       "exif-label": "Etiketė",
+       "exif-datetimemetadata": "Paskutinį kartą metadata duomenys keisti",
+       "exif-nickname": "Neoficialus paveikslėlio pavadinimas",
+       "exif-rating": "Vertinimas (iki 5)",
+       "exif-rightscertificate": "Teisių valdymo sertifikatas",
+       "exif-copyrighted": "Autorių teisių statusas",
+       "exif-copyrightowner": "Autorystės teisių savininkas",
+       "exif-usageterms": "Naudojimo sąlygos",
+       "exif-webstatement": "Autorių teisių pareiškimas internete",
+       "exif-originaldocumentid": "Unikalus ID orginalus dokumentas",
+       "exif-licenseurl": "Autorių teisių licencijos URL",
+       "exif-morepermissionsurl": "Alternatyvi licencijavimo informacija",
+       "exif-attributionurl": "Kai pakartotinai naudojate ši darbą, prašome nurodyti į",
+       "exif-preferredattributionname": "Kai naudojate ši darbą prašome nurodyti",
+       "exif-pngfilecomment": "Pastabos dėl PNG rinkmenos",
+       "exif-disclaimer": "Atsakomybės apribojimas",
+       "exif-contentwarning": "Turinio įspėjimas",
+       "exif-giffilecomment": "GIF rinkmenos paaiškinimas",
+       "exif-intellectualgenre": "Elemento tipas",
+       "exif-subjectnewscode": "Objektas kodas",
+       "exif-scenecode": "IPTC scenos kodas",
+       "exif-event": "Vaizduojamas įvykis",
+       "exif-organisationinimage": "Vaizduojama organizacija",
+       "exif-personinimage": "Vaizduojamas asmuo",
+       "exif-originalimageheight": "Piešinio aukštis prieš apkarpymą",
+       "exif-originalimagewidth": "Piešinio plotis prieš apkarpymą",
+       "exif-compression-1": "Nesuspausta",
+       "exif-compression-2": "CCITT grupės 3 1-Dimensijos Modifikuotas Hafmano duomenų paleidimo ilgio kodavimas.",
+       "exif-compression-3": "CCITT 3 grupės fakso kodavimas",
+       "exif-compression-4": "CCITT 4 grupės fakso kodavimas",
+       "exif-copyrighted-true": "Autorinės teisės",
+       "exif-copyrighted-false": "Autorinių teisių padėtis nenustatyta",
+       "exif-photometricinterpretation-1": "Juoda ir balta (Juoda yra 0)",
+       "exif-unknowndate": "Nežinoma data",
+       "exif-orientation-1": "Standartinis",
+       "exif-orientation-2": "Apversta horizontaliai",
+       "exif-orientation-3": "Pasukta 180°",
+       "exif-orientation-4": "Apversta vertikaliai",
+       "exif-orientation-5": "Pasukta 90° prieš laikrodžio rodyklę ir apversta vertikaliai",
+       "exif-orientation-6": "Pasukta 90° laikrodžio rodyklės kryptimi",
+       "exif-orientation-7": "Pasukta 90° laikrodžio rodyklės kryptimi ir apversta vertikaliai",
+       "exif-orientation-8": "Pasukta 90° prieš laikrodžio rodyklę",
+       "exif-planarconfiguration-1": "stambusis formatas",
+       "exif-planarconfiguration-2": "plokštuminis formatas",
+       "exif-xyresolution-i": "$1 taškai colyje",
+       "exif-xyresolution-c": "$1 taškai centimetre",
+       "exif-colorspace-65535": "Spalvos nekalibruotos",
+       "exif-componentsconfiguration-0": "neegzistuoja",
+       "exif-exposureprogram-0": "Nenurodyta",
+       "exif-exposureprogram-1": "Rankinė",
+       "exif-exposureprogram-2": "Paprasta programa",
+       "exif-exposureprogram-3": "Diafragmos pirmenybė",
+       "exif-exposureprogram-4": "Užrakto pirmenybė",
+       "exif-exposureprogram-5": "Kūrybos programa (linkusi į lauko gylį)",
+       "exif-exposureprogram-6": "Veiksmo programa (linkusi link greito užrakto greičio)",
+       "exif-exposureprogram-7": "Portreto režimas (nuotraukoms iš arti nepabrėžiant fono)",
+       "exif-exposureprogram-8": "Peizažo režimas (peizažo nuotraukoms pabrėžiant foną)",
+       "exif-subjectdistance-value": "$1 metrų",
+       "exif-meteringmode-0": "Nežinoma",
+       "exif-meteringmode-1": "Vidurkis",
+       "exif-meteringmode-2": "Centruotas vidurkis",
+       "exif-meteringmode-3": "Taškas",
+       "exif-meteringmode-4": "Daugiataškis",
+       "exif-meteringmode-5": "Raštas",
+       "exif-meteringmode-6": "Dalinis",
+       "exif-meteringmode-255": "Kita",
+       "exif-lightsource-0": "Nežinomas",
+       "exif-lightsource-1": "Dienos šviesa",
+       "exif-lightsource-2": "Fluorescentinis",
+       "exif-lightsource-3": "Volframas (kaitinamoji lempa)",
+       "exif-lightsource-4": "Blykstė",
+       "exif-lightsource-9": "Giedras oras",
+       "exif-lightsource-10": "Debesuotas oras",
+       "exif-lightsource-11": "Šešėlis",
+       "exif-lightsource-12": "Dienos šviesos fluorescentinis (D 5700 – 7100K)",
+       "exif-lightsource-13": "Dienos baltumo fluorescentinis (N 4600 – 5400K)",
+       "exif-lightsource-14": "Šalto baltumo fluorescentinis (W 3900 – 4500K)",
+       "exif-lightsource-15": "Baltas fluorescentinis (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standartinis apšvietimas A",
+       "exif-lightsource-18": "Standartinis apšvietimas B",
+       "exif-lightsource-19": "Standartinis apšvietimas C",
+       "exif-lightsource-24": "ISO studijos volframas",
+       "exif-lightsource-255": "Kitas šviesos šaltinis",
+       "exif-flash-fired-0": "Blykstė nemirktelėjo",
+       "exif-flash-fired-1": "Blykstė mirktelėjo",
+       "exif-flash-return-0": "jokios blyksčių grįžties aptikimo funkcijos",
+       "exif-flash-return-2": "blykstės grįžtamoji šviesa neaptikta",
+       "exif-flash-return-3": "blykstės grįžtamoji šviesa aptikta",
+       "exif-flash-mode-1": "priverstinė blykstė",
+       "exif-flash-mode-2": "priverstinis blykstės sulaikymas",
+       "exif-flash-mode-3": "automatinis režimas",
+       "exif-flash-function-1": "Be blykstės funkcijos",
+       "exif-flash-redeye-1": "raudonų akių šalinimo režimas",
+       "exif-focalplaneresolutionunit-2": "coliai",
+       "exif-sensingmethod-1": "Nenurodytas",
+       "exif-sensingmethod-2": "Vienalustis spalvų zonos jutiklis",
+       "exif-sensingmethod-3": "Dvilustis spalvų zonos jutiklis",
+       "exif-sensingmethod-4": "Trilustis spalvų zonos jutiklis",
+       "exif-sensingmethod-5": "Nuoseklusis spalvų zonos jutiklis",
+       "exif-sensingmethod-7": "Trilinijinis jutiklis",
+       "exif-sensingmethod-8": "Spalvų nuoseklusis linijinis jutiklis",
+       "exif-filesource-3": "Skaitmeninis fotoaparatas",
+       "exif-scenetype-1": "Tiesiogiai fotografuotas vaizdas",
+       "exif-customrendered-0": "Standartinis procesas",
+       "exif-customrendered-1": "Pasirinktinis procesas",
+       "exif-exposuremode-0": "Automatinis išlaikymas",
+       "exif-exposuremode-1": "Rankinis išlaikymas",
+       "exif-exposuremode-2": "Automatinis skliaustas",
+       "exif-whitebalance-0": "Automatinis baltumo balansas",
+       "exif-whitebalance-1": "Rankinis baltumo balansas",
+       "exif-scenecapturetype-0": "Paprastas",
+       "exif-scenecapturetype-1": "Peizažas",
+       "exif-scenecapturetype-2": "Portretas",
+       "exif-scenecapturetype-3": "Nakties vaizdas",
+       "exif-gaincontrol-0": "Jokia",
+       "exif-gaincontrol-1": "Nedidelis pakėlimas",
+       "exif-gaincontrol-2": "Didelis pakėlimas",
+       "exif-gaincontrol-3": "Mažas nuleidimas",
+       "exif-gaincontrol-4": "Didelis nuleidimas",
+       "exif-contrast-0": "Paprastas",
+       "exif-contrast-1": "Mažas",
+       "exif-contrast-2": "Didelis",
+       "exif-saturation-0": "Paprastas",
+       "exif-saturation-1": "Mažas sodrumas",
+       "exif-saturation-2": "Didelis sodrumas",
+       "exif-sharpness-0": "Paprastas",
+       "exif-sharpness-1": "Mažas",
+       "exif-sharpness-2": "Didelis",
+       "exif-subjectdistancerange-0": "Nežinomas",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Artimas vaizdas",
+       "exif-subjectdistancerange-3": "Tolimas vaizdas",
+       "exif-gpslatitude-n": "Šiaurės platuma",
+       "exif-gpslatitude-s": "Pietų platuma",
+       "exif-gpslongitude-e": "Rytų ilguma",
+       "exif-gpslongitude-w": "Vakarų ilguma",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1| metras | metrai}} virš jūros lygio",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1| metras | metrai}} žemiau jūros lygio",
+       "exif-gpsstatus-a": "Matavimas vykdyme",
+       "exif-gpsstatus-v": "Matuojamas programinis sąveikumas",
+       "exif-gpsmeasuremode-2": "Dvimatis matavimas",
+       "exif-gpsmeasuremode-3": "Trimatis matavimas",
+       "exif-gpsspeed-k": "Kilometrai per valandą",
+       "exif-gpsspeed-m": "Mylios per valandą",
+       "exif-gpsspeed-n": "Mazgai",
+       "exif-gpsdestdistance-k": "Kilometrai",
+       "exif-gpsdestdistance-m": "Mylios",
+       "exif-gpsdestdistance-n": "Jūrmylės",
+       "exif-gpsdop-excellent": "Puikus ($1)",
+       "exif-gpsdop-good": "Geras ( $1 )",
+       "exif-gpsdop-moderate": "Vidutinis ($1)",
+       "exif-gpsdop-fair": "Prastas ($1)",
+       "exif-gpsdop-poor": "Blogas ( $1 )",
+       "exif-objectcycle-a": "Tik ryte",
+       "exif-objectcycle-p": "Tik vakare",
+       "exif-objectcycle-b": "Ir ryte ir vakare",
+       "exif-gpsdirection-t": "Tikroji kryptis",
+       "exif-gpsdirection-m": "Magnetinė kryptis",
+       "exif-ycbcrpositioning-1": "Centruotas",
+       "exif-ycbcrpositioning-2": "Bendras išdėstymas",
+       "exif-dc-contributor": "Autoriai",
+       "exif-dc-coverage": "Erdvės ar laiko apimtis",
+       "exif-dc-date": "Data (-os)",
+       "exif-dc-publisher": "Leidėjas",
+       "exif-dc-relation": "Susijusi medija",
+       "exif-dc-rights": "Teisės",
+       "exif-dc-source": "Šaltinis",
+       "exif-dc-type": "Laikmenos tipas",
+       "exif-rating-rejected": "Atmesta",
+       "exif-isospeedratings-overflow": "Didesnis už 65535",
+       "exif-iimcategory-ace": "Menas, kultūra ir pramogos",
+       "exif-iimcategory-clj": "Nusikalstamumas ir įstatymas",
+       "exif-iimcategory-dis": "Nelaimės ir nelaimingi atsitikimai",
+       "exif-iimcategory-fin": "Ekonomika ir verslas",
+       "exif-iimcategory-edu": "Švietimas",
+       "exif-iimcategory-evn": "Aplinka",
+       "exif-iimcategory-hth": "Sveikata",
+       "exif-iimcategory-hum": "Žmogaus interesai",
+       "exif-iimcategory-lab": "Darbas",
+       "exif-iimcategory-lif": "Gyvenimo būdas ir laisvalaikis",
+       "exif-iimcategory-pol": "Politika",
+       "exif-iimcategory-rel": "Raligija ir tikėjimas",
+       "exif-iimcategory-sci": "Mokslas ir technologijos",
+       "exif-iimcategory-soi": "Socialiniai klausimai",
+       "exif-iimcategory-spo": "Sportas",
+       "exif-iimcategory-war": "Karas, konfliktas ir neramumai",
+       "exif-iimcategory-wea": "Oras",
+       "exif-urgency-normal": "Normalus ( $1 )",
+       "exif-urgency-low": "Žemas ( $1 )",
+       "exif-urgency-high": "Aukštas ( $1 )",
+       "exif-urgency-other": "Vartotojo nustatyta pirmenybė ($1)"
+}
diff --git a/languages/i18n/exif/lus.json b/languages/i18n/exif/lus.json
new file mode 100644 (file)
index 0000000..93a96c9
--- /dev/null
@@ -0,0 +1,52 @@
+{
+       "@metadata": {
+               "authors": [
+                       "RMizo"
+               ]
+       },
+       "exif-imagewidth": "Zàuzáwng",
+       "exif-imagelength": "Sànzáwng",
+       "exif-bitspersample": "Péng khata mal(bit) awm zât",
+       "exif-compression": "Sàwrtêtphung",
+       "exif-photometricinterpretation": "Rawng inpawlhphung",
+       "exif-orientation": "Hawizáwng",
+       "exif-samplesperpixel": "Péng zât",
+       "exif-planarconfiguration": "Hriatna inremphung",
+       "exif-ycbcrsubsampling": "Y leh C inthlauhbï",
+       "exif-ycbcrpositioning": "Y leh C ṭhuthmun",
+       "exif-xresolution": "Pheizáwnga tihfiahphung",
+       "exif-yresolution": "Tungzáwnga tihfiahphung",
+       "exif-stripoffsets": "Thlalâk hriattirna awmna",
+       "exif-rowsperstrip": "Ṭhuang khata tlar zât",
+       "exif-stripbytecounts": "Ṭhuang zàwr zìmtina byte awm zât",
+       "exif-jpeginterchangeformat": "JPEG SOI dahhmun",
+       "exif-jpeginterchangeformatlength": "JPEG hriattirna lenzawng (Byte-in)",
+       "exif-whitepoint": "Hmun vár rawng nihphung",
+       "exif-primarychromaticities": "Rawng bulbälte nihphung",
+       "exif-datetime": "Taksa tihdanglam hun leh ni",
+       "exif-imagedescription": "Lem hming",
+       "exif-make": "Thlalâkna siamtu",
+       "exif-model": "Thlalâkna sìamphung",
+       "exif-software": "Khawlthlûak hman",
+       "exif-artist": "Buatsaihtu",
+       "exif-copyright": "Phalna kawltu",
+       "exif-exifversion": "EXIF chhuah",
+       "exif-flashpixversion": "Flashpix chhuah chhawmdàwl theih",
+       "exif-colorspace": "Rawng hmun",
+       "exif-componentsconfiguration": "Péngtinte awmzia",
+       "exif-compressedbitsperpixel": "Lem sàwrzìmphung",
+       "exif-pixelxdimension": "Lem zauzáwng",
+       "exif-pixelydimension": "Lem sànzáwng",
+       "exif-usercomment": "Hmangtu kamchhuak",
+       "exif-relatedsoundfile": "Ritaksa laichinte",
+       "exif-datetimeoriginal": "Hriattirna siamchhuah hun leh ni",
+       "exif-datetimedigitized": "Tihkhàwl hun leh ní",
+       "exif-subsectime": "Tihdanglam hun leh ni",
+       "exif-exposuretime": "Phochhuah hun",
+       "exif-fnumber": "F zât",
+       "exif-source": "Hnar:",
+       "exif-writer": "Ziaktu",
+       "exif-languagecode": "Ţawng",
+       "exif-iimversion": "IIM chhuah",
+       "exif-iimcategory": "Pawl"
+}
diff --git a/languages/i18n/exif/lv.json b/languages/i18n/exif/lv.json
new file mode 100644 (file)
index 0000000..8f49348
--- /dev/null
@@ -0,0 +1,269 @@
+{
+       "@metadata": {
+               "authors": [
+                       "GreenZeb",
+                       "Karlis",
+                       "Knakts",
+                       "Marozols",
+                       "Papuass",
+                       "Yyy"
+               ]
+       },
+       "exif-imagewidth": "platums",
+       "exif-imagelength": "augstums",
+       "exif-bitspersample": "biti komponentē",
+       "exif-compression": "Saspiešanas veids",
+       "exif-photometricinterpretation": "Pikseļu sastāvs",
+       "exif-orientation": "Orientācija",
+       "exif-samplesperpixel": "Komponentu skaits",
+       "exif-planarconfiguration": "Datu izkārtojums",
+       "exif-xresolution": "Horizontālā izšķirtspēja",
+       "exif-yresolution": "Vertikālā izšķirtspēja",
+       "exif-jpeginterchangeformatlength": "JPEG datu baiti",
+       "exif-datetime": "Attēla pēdējās izmainīšanas datums un laiks",
+       "exif-imagedescription": "Attēla nosaukums",
+       "exif-make": "Fotoaparāta ražotājs",
+       "exif-model": "Fotoaparāta modelis",
+       "exif-software": "Lietotā programma",
+       "exif-artist": "Autors",
+       "exif-copyright": "Autortiesību īpašnieks",
+       "exif-exifversion": "EXIF versija",
+       "exif-flashpixversion": "Atbalstīta Flashpix versija",
+       "exif-colorspace": "Krāsu telpa",
+       "exif-componentsconfiguration": "Katras sastāvdaļas nozīme",
+       "exif-compressedbitsperpixel": "Attēla kompresijas pakāpe",
+       "exif-pixelxdimension": "Attēla platums",
+       "exif-pixelydimension": "Attēla augstums",
+       "exif-usercomment": "Lietotāja komentāri",
+       "exif-relatedsoundfile": "Saistītais skaņas fails",
+       "exif-datetimeoriginal": "Izveidošanas datums un laiks",
+       "exif-datetimedigitized": "Attēla izveidošanas datums un laiks",
+       "exif-subsectime": "DateTime milisekundes",
+       "exif-subsectimeoriginal": "DateTimeOriginal milisekundes",
+       "exif-subsectimedigitized": "DateTimeDigitized milisekundes",
+       "exif-exposuretime": "Ekspozīcijas laiks",
+       "exif-exposuretime-format": "$1 s ($2)",
+       "exif-fnumber": "Diafragmas atvērums",
+       "exif-exposureprogram": "Ekspozīcijas programma",
+       "exif-spectralsensitivity": "Spektrālā jutība",
+       "exif-isospeedratings": "ISO jutība",
+       "exif-shutterspeedvalue": "APEX slēdža ātrums",
+       "exif-aperturevalue": "APEX apertūra",
+       "exif-brightnessvalue": "APEX spilgtums",
+       "exif-exposurebiasvalue": "Ekspozīcijas nobīde",
+       "exif-subjectdistance": "Objekta attālums",
+       "exif-meteringmode": "Mērīšanas režīms",
+       "exif-lightsource": "Gaismas avots",
+       "exif-flash": "Zibspuldze",
+       "exif-focallength": "Fokusa attālums",
+       "exif-subjectarea": "Objekta laukums",
+       "exif-flashenergy": "Zibspuldzes stiprums",
+       "exif-focalplanexresolution": "Fokusa plaknes X izšķirtspēja",
+       "exif-focalplaneyresolution": "Fokusa plaknes Y izšķirtspēja",
+       "exif-focalplaneresolutionunit": "Fokusa plaknes izšķirtspējas vienības",
+       "exif-subjectlocation": "Objekta atrašanās vieta",
+       "exif-exposureindex": "Ekspozīcijas rādītājs",
+       "exif-sensingmethod": "Jutības metode",
+       "exif-filesource": "Faila avots",
+       "exif-scenetype": "Ainas veids",
+       "exif-customrendered": "Individuālā attēlu apstrāde",
+       "exif-exposuremode": "Ekspozīcijas režīms",
+       "exif-whitebalance": "Baltā balanss",
+       "exif-digitalzoomratio": "Digitālās tālummaiņas koeficients",
+       "exif-focallengthin35mmfilm": "Fokusa attālums 35 mm filmā",
+       "exif-scenecapturetype": "Ainas uzņemšanas veids",
+       "exif-gaincontrol": "Ainas kontrole",
+       "exif-contrast": "Kontrasts",
+       "exif-saturation": "Piesātinājums",
+       "exif-sharpness": "Asums",
+       "exif-devicesettingdescription": "Ierīces uzstādījumu apraksts",
+       "exif-subjectdistancerange": "Objekta attāluma diapazons",
+       "exif-imageuniqueid": "Unikālais attēla ID",
+       "exif-gpsversionid": "GPS iezīmes versija",
+       "exif-gpslatituderef": "Ziemeļu vai dienvidu platums",
+       "exif-gpslatitude": "Platums",
+       "exif-gpslongituderef": "Austrumu vai rietumu garums",
+       "exif-gpslongitude": "Garums",
+       "exif-gpsaltituderef": "Augstuma atsauce",
+       "exif-gpsaltitude": "Augstums",
+       "exif-gpstimestamp": "GPS laiks (atompulkstenis)",
+       "exif-gpssatellites": "Mērīšanai izmantotie satelīti",
+       "exif-gpsstatus": "Uztvērēja statuss",
+       "exif-gpsmeasuremode": "Mērīšanas režīms",
+       "exif-gpsdop": "Mērīšanas precizitāte",
+       "exif-gpsspeedref": "Ātruma vienība",
+       "exif-gpsspeed": "GPS uztvērēja ātrums",
+       "exif-gpstrackref": "Kustības virziena atsauce",
+       "exif-gpstrack": "Kustības virziens",
+       "exif-gpsimgdirectionref": "Attēla virziena atsauce",
+       "exif-gpsimgdirection": "Attēla virziens",
+       "exif-gpsmapdatum": "Izmantoti ģeodēziskās mērīšanas dati",
+       "exif-gpsprocessingmethod": "GPS apstrādes metodes nosaukums",
+       "exif-gpsareainformation": "GPS zonas nosaukums",
+       "exif-gpsdatestamp": "GPS datums",
+       "exif-jpegfilecomment": "JPEG faila komentārs",
+       "exif-keywords": "Atslēgas vārdi",
+       "exif-worldregiondest": "Parādītais pasaules reģions",
+       "exif-countrydest": "Parādītā valsts",
+       "exif-countrycodedest": "Parādītās valsts kods",
+       "exif-provinceorstatedest": "Parādītās valsts province",
+       "exif-citydest": "Parādītā pilsēta",
+       "exif-sublocationdest": "Parādītā pilsētas daļa",
+       "exif-objectname": "Īsais nosaukums",
+       "exif-specialinstructions": "Īpašas norādes",
+       "exif-headline": "Virsraksts",
+       "exif-source": "Avots",
+       "exif-locationdest": "Attēlotā vieta",
+       "exif-locationdestcode": "Attēlotās vietas kods",
+       "exif-contact": "Kontaktinformācija",
+       "exif-languagecode": "Valoda",
+       "exif-iimversion": "IIM versija",
+       "exif-iimcategory": "Kategorija",
+       "exif-datetimeexpires": "Neizmantot pēc",
+       "exif-identifier": "Identifikators",
+       "exif-lens": "Izmantotais objektīvs",
+       "exif-serialnumber": "Fotoaparāta sērijas numurs",
+       "exif-cameraownername": "Fotoaparāta īpašnieks",
+       "exif-nickname": "Neformāls attēla nosaukums",
+       "exif-rating": "Vērtējums (no 5)",
+       "exif-copyrighted": "Autortiesību statuss",
+       "exif-copyrightowner": "Autortiesību īpašnieks",
+       "exif-usageterms": "Izmantošanas noteikumi",
+       "exif-originaldocumentid": "Sākotnējā dokumenta unikālais ID",
+       "exif-licenseurl": "Autortiesību licences URL",
+       "exif-morepermissionsurl": "Alternatīvas licencēšanas informācija",
+       "exif-attributionurl": "Izmantojot šo darbu, lūdzu pievienojiet saiti uz",
+       "exif-preferredattributionname": "Izmantojot šo darbu, lūdzu norādiet autoru",
+       "exif-pngfilecomment": "PNG faila komentārs",
+       "exif-disclaimer": "Atruna",
+       "exif-contentwarning": "Brīdinājums par saturu",
+       "exif-giffilecomment": "GIF faila komentārs",
+       "exif-subjectnewscode": "Temata kods",
+       "exif-scenecode": "IPTC ainas kods",
+       "exif-event": "Attēlotais notikums",
+       "exif-organisationinimage": "Attēlotā organizācija",
+       "exif-personinimage": "Attēlotā persona",
+       "exif-compression-1": "Nekompresēts",
+       "exif-copyrighted-true": "Ar autortiesībām",
+       "exif-copyrighted-false": "Autortiesību statuss nav norādīts",
+       "exif-unknowndate": "Nezināms datums",
+       "exif-orientation-1": "Normāls",
+       "exif-orientation-2": "Pagriezts horizontāli",
+       "exif-orientation-3": "Pagriezts par 180°",
+       "exif-orientation-4": "Pagriezts vertikāli",
+       "exif-orientation-5": "Pagriezta 90° CCW un apgriezta vertikāli",
+       "exif-orientation-6": "Pagriezta 90° pretēji pulksteņa rādītājam",
+       "exif-orientation-7": "Pagriezta 90° CW un apgriezta vertikāli",
+       "exif-orientation-8": "Pagriezta 90° pulksteņa rādītāja virzienā",
+       "exif-colorspace-65535": "Nekalibrēts",
+       "exif-componentsconfiguration-0": "neeksistē",
+       "exif-exposureprogram-0": "Nav noteikta",
+       "exif-exposureprogram-1": "Manuāla",
+       "exif-exposureprogram-2": "Normāla programma",
+       "exif-exposureprogram-3": "Diafragmas prioritāte",
+       "exif-exposureprogram-4": "Slēdža prioritāte",
+       "exif-exposureprogram-8": "Ainavu režīms (ainavu fotogrāfijām ar fokusu uz fonu)",
+       "exif-subjectdistance-value": "$1 metri",
+       "exif-meteringmode-0": "Nav zināms",
+       "exif-meteringmode-3": "Punkta",
+       "exif-meteringmode-4": "Vairāku punktu",
+       "exif-meteringmode-255": "Cits",
+       "exif-lightsource-0": "Nav zināms",
+       "exif-lightsource-1": "Dienas gaisma",
+       "exif-lightsource-2": "Dienasgaismas lampa",
+       "exif-lightsource-3": "Kvēlspuldze",
+       "exif-lightsource-4": "Zibspuldze",
+       "exif-lightsource-9": "Labi laika apstākļi",
+       "exif-lightsource-10": "Mākoņains laiks",
+       "exif-lightsource-12": "Dienasgaismas lampa (D 5700 - 7100K)",
+       "exif-lightsource-13": "Dienasgaismas lampa (N 4600 – 5400K)",
+       "exif-lightsource-14": "Dienasgaismas lampa (W 3900 – 4500K)",
+       "exif-lightsource-15": "Dienasgaismas lampa (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standarta gaisma A",
+       "exif-lightsource-18": "Standarta gaisma B",
+       "exif-lightsource-19": "Standarta gaisma C",
+       "exif-lightsource-24": "ISO studijas kvēlspuldze",
+       "exif-lightsource-255": "Cits gaismas avots",
+       "exif-flash-fired-0": "Zibspuldze netika izmantota",
+       "exif-flash-fired-1": "Zibspuldze tika izmantota",
+       "exif-flash-mode-3": "automātiskais režīms",
+       "exif-flash-redeye-1": "sarkano acu efekta samazināšanas režīms",
+       "exif-focalplaneresolutionunit-2": "collas",
+       "exif-sensingmethod-1": "Nav definēts",
+       "exif-sensingmethod-2": "Vienas mikroshēmas krāsu zonas sensors",
+       "exif-sensingmethod-3": "Divu mikroshēmu krāsu zonas sensors",
+       "exif-sensingmethod-4": "Trīs mikroshēmu krāsu zonas sensors",
+       "exif-filesource-3": "Digitālā kamera",
+       "exif-scenetype-1": "Tieši fotografēts attēls",
+       "exif-customrendered-0": "Normāls process",
+       "exif-customrendered-1": "Dažādots process",
+       "exif-exposuremode-0": "Automātiskā ekspozīcija",
+       "exif-exposuremode-1": "Manuālā ekspozīcija",
+       "exif-whitebalance-0": "Automātisks baltā balanss",
+       "exif-whitebalance-1": "Manuāls baltā balanss",
+       "exif-scenecapturetype-0": "Standarta",
+       "exif-scenecapturetype-1": "Ainava",
+       "exif-scenecapturetype-2": "Portrets",
+       "exif-scenecapturetype-3": "Nakts aina",
+       "exif-contrast-0": "Normāls",
+       "exif-contrast-1": "Viegls",
+       "exif-contrast-2": "Pārmērīgs",
+       "exif-saturation-0": "Normāls",
+       "exif-saturation-1": "Zems piesātinājums",
+       "exif-saturation-2": "Augsts piesātinājums",
+       "exif-sharpness-0": "Normāls",
+       "exif-sharpness-1": "Viegls",
+       "exif-sharpness-2": "Pārmērīgs",
+       "exif-subjectdistancerange-0": "Nav zināma",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Tuvs skats",
+       "exif-subjectdistancerange-3": "Tāls skats",
+       "exif-gpslatitude-n": "Ziemeļu platums",
+       "exif-gpslatitude-s": "Dienvidu platums",
+       "exif-gpslongitude-e": "Austrumu garums",
+       "exif-gpslongitude-w": "Rietumu garums",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metri|metrs|metri}} virs jūras līmeņa",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metri|metrs|metri}} zem jūras līmeņa",
+       "exif-gpsmeasuremode-2": "Divdimensionāls mērījums",
+       "exif-gpsmeasuremode-3": "Trīsdimensionāls mērījums",
+       "exif-gpsspeed-k": "Kilometri stundā",
+       "exif-gpsspeed-m": "Jūdzes stundā",
+       "exif-gpsspeed-n": "Mezgli",
+       "exif-gpsdestdistance-k": "Kilometri",
+       "exif-gpsdestdistance-m": "Jūdzes",
+       "exif-gpsdestdistance-n": "Jūras jūdzes",
+       "exif-gpsdop-excellent": "Lielisks ($1)",
+       "exif-gpsdop-good": "Labs ($1)",
+       "exif-gpsdop-moderate": "Mērens ($1)",
+       "exif-gpsdop-fair": "Pieņemams ($1)",
+       "exif-gpsdop-poor": "Slikts ($1)",
+       "exif-gpsdirection-t": "Patiesais virziens",
+       "exif-gpsdirection-m": "Magnētiskais virziens",
+       "exif-ycbcrpositioning-1": "Centrēts",
+       "exif-dc-date": "Datums (-i)",
+       "exif-dc-publisher": "Izdevējs",
+       "exif-dc-rights": "Tiesības",
+       "exif-rating-rejected": "Noraidīts",
+       "exif-isospeedratings-overflow": "Lielāks kā 65535",
+       "exif-iimcategory-ace": "Māksla, kultūra un izklaide",
+       "exif-iimcategory-clj": "Noziedzība un likums",
+       "exif-iimcategory-dis": "Katastrofas un negadījumi",
+       "exif-iimcategory-fin": "Ekonomika un komercdarbība",
+       "exif-iimcategory-edu": "Izglītība",
+       "exif-iimcategory-evn": "Vide",
+       "exif-iimcategory-hth": "Veselība",
+       "exif-iimcategory-hum": "Cilvēku intereses",
+       "exif-iimcategory-lab": "Darbs",
+       "exif-iimcategory-lif": "Dzīvesveids un brīvā laika pavadīšana",
+       "exif-iimcategory-pol": "Politika",
+       "exif-iimcategory-rel": "Reliģija un ticība",
+       "exif-iimcategory-sci": "Zinātne un tehnoloģijas",
+       "exif-iimcategory-soi": "Sociālie jautājumi",
+       "exif-iimcategory-spo": "Sports",
+       "exif-iimcategory-war": "Karš, konflikti un nemieri",
+       "exif-iimcategory-wea": "Laika apstākļi",
+       "exif-urgency-normal": "Normāla ($1)",
+       "exif-urgency-low": "Zema ($1)",
+       "exif-urgency-high": "Augsta ($1)",
+       "exif-urgency-other": "Lietotāja definēta prioritāte ($1)"
+}
diff --git a/languages/i18n/exif/mai.json b/languages/i18n/exif/mai.json
new file mode 100644 (file)
index 0000000..790b005
--- /dev/null
@@ -0,0 +1,350 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Dhirendra.maithili",
+                       "Ggajendra",
+                       "Manojberma77",
+                       "Umeshberma",
+                       "Vinitutpal",
+                       "बिप्लब आनन्द"
+               ]
+       },
+       "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": "जे.पी.ई.गी. एस.ओ.आइ. लेल प्रकार",
+       "exif-jpeginterchangeformatlength": "जे.पी.ई.जी. दत्तांश लेल अष्टक",
+       "exif-whitepoint": "उज्जर बिन्दु चित्रकण",
+       "exif-primarychromaticities": "चित्रकणक पहिलुक अधिकार",
+       "exif-ycbcrcoefficients": "रंग स्थान परिवर्तन मैट्रिक्स गुणक",
+       "exif-referenceblackwhite": "कारी आ उज्जर सन्दर्भ मूल्यक जोड़ा",
+       "exif-datetime": "संचिका परिवर्तन तिथि आ समए",
+       "exif-imagedescription": "चित्र शीर्षक",
+       "exif-make": "क्यामरा निर्माता",
+       "exif-model": "क्यामरा मोडल",
+       "exif-software": "प्रयोग कएल सफ्टवेयर",
+       "exif-artist": "लिखैबला",
+       "exif-copyright": "सर्वाधिकारी",
+       "exif-exifversion": "एक्जिफ संस्करण",
+       "exif-flashpixversion": "फ्लैशपिक्स संस्करण समर्थित",
+       "exif-colorspace": "रङ्गक स्थान",
+       "exif-componentsconfiguration": "सभ घटकक अर्थ",
+       "exif-compressedbitsperpixel": "चित्र संकुचन अवस्था",
+       "exif-pixelxdimension": "तस्वीरक चौडाई",
+       "exif-pixelydimension": "तस्वीरक ऊँचाई",
+       "exif-usercomment": "सदस्यक टिप्पणी",
+       "exif-relatedsoundfile": "संबंधित ध्वनि फ़ाईल",
+       "exif-datetimeoriginal": "डाटा बनाबैक तारिख आ समय",
+       "exif-datetimedigitized": "अङ्कीकरणक तारिख आ समय",
+       "exif-subsectime": "दिनांकसमयक उपसेकंड",
+       "exif-subsectimeoriginal": "मूलदिनांकसमयक उपसेकंड",
+       "exif-subsectimedigitized": "मूलदिनांकअंकीकरणक उपसेकंड",
+       "exif-exposuretime": "एक्स्पोज़रक काल",
+       "exif-exposuretime-format": "$1 सेकंड ($2)",
+       "exif-fnumber": "F संख्या",
+       "exif-exposureprogram": "एक्स्पोज़रक कार्यक्रम",
+       "exif-spectralsensitivity": "स्पेक्ट्रम सहनशीलता",
+       "exif-isospeedratings": "आइ.एस.ओ. गति अंकन",
+       "exif-shutterspeedvalue": "अपेक्स शटरक गति",
+       "exif-aperturevalue": "अपेक्स भूर",
+       "exif-brightnessvalue": "APEX चमक",
+       "exif-exposurebiasvalue": "APEX एक्सपोजर बायस",
+       "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": "व्हाईट बॅलन्स",
+       "exif-digitalzoomratio": "डिजिटल जूमक अनुपात",
+       "exif-focallengthin35mmfilm": "३५ मी.मी. फिल्म में फोकलक लंबाई",
+       "exif-scenecapturetype": "सीन कॅप्चरक प्रकार",
+       "exif-gaincontrol": "सीनक नियंत्रण",
+       "exif-contrast": "विषमता",
+       "exif-saturation": "संतृप्तता",
+       "exif-sharpness": "तीक्ष्ण",
+       "exif-devicesettingdescription": "उपकरणक रचनाक वर्णन",
+       "exif-subjectdistancerange": "विषय दूरीक रेंज",
+       "exif-imageuniqueid": "यूनिक चित्र ID",
+       "exif-gpsversionid": "GPS टॅग अवतरण",
+       "exif-gpslatituderef": "उत्तर वा दक्खिन अक्षांश",
+       "exif-gpslatitude": "अक्षांश",
+       "exif-gpslongituderef": "पूर्व या पश्चिम रेखांश",
+       "exif-gpslongitude": "रेखांश",
+       "exif-gpsaltituderef": "अल्टिट्यूड संदर्भ",
+       "exif-gpsaltitude": "अक्षांश",
+       "exif-gpstimestamp": "GPS समय (परमाणुक घडी)",
+       "exif-gpssatellites": "मापनक लेल प्रयोग करल गेल सैटेलाईट",
+       "exif-gpsstatus": "प्राप्त करय बलाक स्थिति",
+       "exif-gpsmeasuremode": "मेज़रमेंट मोड",
+       "exif-gpsdop": "मापन शुद्धता",
+       "exif-gpsspeedref": "गति एकक",
+       "exif-gpsspeed": "GPS रिसीवरक गति",
+       "exif-gpstrackref": "आन्दोलनक दिशाक संदर्भ",
+       "exif-gpstrack": "गतिक दिशा",
+       "exif-gpsimgdirectionref": "तस्वीरक दिशाक संदर्भ",
+       "exif-gpsimgdirection": "तस्वीरक मुंह",
+       "exif-gpsmapdatum": "जियोडेटिक सर्वेक डाटा इस्तेमाल करल गेल",
+       "exif-gpsdestlatituderef": "लक्ष्यक अक्षांशक संदर्भ",
+       "exif-gpsdestlatitude": "अक्षांशक लक्ष्य",
+       "exif-gpsdestlongituderef": "लक्ष्यक रेखांशक संदर्भ",
+       "exif-gpsdestlongitude": "रेखांशक लक्ष्य",
+       "exif-gpsdestbearingref": "गंतव्यक दूरीक संदर्भ",
+       "exif-gpsdestbearing": "लक्ष्यक संधान",
+       "exif-gpsdestdistanceref": "गंतव्यक दूरीक संदर्भ",
+       "exif-gpsdestdistance": "गंतव्यक दूरी",
+       "exif-gpsprocessingmethod": "जी.पी.एस. संसाधक विधि नाम",
+       "exif-gpsareainformation": "GPS विभागक नाम",
+       "exif-gpsdatestamp": "GPS दिनांक",
+       "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-provinceorstatedest": "दिखाओल गेल प्रांत आ शहर",
+       "exif-citydest": "दिखाओल गेल शहर",
+       "exif-sublocationdest": "दिखाओल गेल शहर के उपनगर",
+       "exif-objectname": "लघु शीर्षक",
+       "exif-specialinstructions": "विशेष निर्देश",
+       "exif-headline": "शीर्षक",
+       "exif-credit": "प्रतिष्ठा/प्रदाता",
+       "exif-source": "स्रोत",
+       "exif-editstatus": "\nतस्वीरक संपादकीय स्थिति",
+       "exif-urgency": "महत्व",
+       "exif-fixtureidentifier": "स्थिर करय बलाक नाम",
+       "exif-locationdest": "दर्शायल गेल स्थान",
+       "exif-locationdestcode": "दर्शायल गेल स्थानक कोड",
+       "exif-objectcycle": "दिनक समय, जे मीडिया के करबाक अछि",
+       "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": "तिथि प्रदत्तांश अंतिम बेर संशोधित भेल",
+       "exif-nickname": "तस्वीरक अनौपचारिक नाम",
+       "exif-rating": "रेटिंग (पांच धरि)",
+       "exif-rightscertificate": "अधिकार प्रबंधन प्रमाणपत्र",
+       "exif-copyrighted": "सर्वाधिकारक स्थिति",
+       "exif-copyrightowner": "सर्वाधिकारी",
+       "exif-usageterms": "उपयोगक शर्त",
+       "exif-webstatement": "ऑनलाइन कॉपीराइट बयान",
+       "exif-originaldocumentid": "मूल दस्तावेज़क अद्वितीय आईडी",
+       "exif-licenseurl": "कापीराइट प्रमाणपत्रक URL",
+       "exif-morepermissionsurl": "वैकल्पिक लाइसेंसक जानकारी",
+       "exif-attributionurl": "जखन अहि काज फेर से करब, तखन कृपया लिंक दियो",
+       "exif-preferredattributionname": "जखन अहि काज फेर से करब, तखन कृपया श्रेय दियो",
+       "exif-pngfilecomment": "PNG फ़ाईलक टिप्पणी",
+       "exif-disclaimer": "अनाधिकार घोषणा",
+       "exif-contentwarning": "सामग्रीक चेतावनी",
+       "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-2": "सी.सी.आइ.टी.टी. वर्ग ३ १ - बीम संशोधित हफमैन कूट सोझ लम्बाइ",
+       "exif-compression-3": "सी.सी.आइ.टी.टी. वर्ग ३ फैक्स संकूट",
+       "exif-compression-4": "सी.सी.आइ.टी.टी. वर्ग ४ फैक्स संकूट",
+       "exif-copyrighted-true": "सर्वाधिकार",
+       "exif-copyrighted-false": "पब्लिक डोमेन",
+       "exif-unknowndate": "अज्ञात तारीख",
+       "exif-orientation-1": "सामान्य",
+       "exif-orientation-2": "अनुदैर्घ्य मिज्झर",
+       "exif-orientation-3": "180° पर घुमायल गेल",
+       "exif-orientation-4": "भर्टिकली फ्लिप करी",
+       "exif-orientation-5": "90° सी.सी.डब्लू. घुमाओल गेल आ अनुप्रस्थ रूपेँ मिज्झर कएल गेल",
+       "exif-orientation-6": "९०° सी.सी.डब्लू. घुमाएल गेल",
+       "exif-orientation-7": "९०° सी.डब्लू. घुमाओल गेल आ अनुप्रस्थ रूपेँ मिज्झर कएल गेल",
+       "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-exposureprogram-5": "रचनात्मक तंत्रांश (क्षेत्र गहींर हुअए केर प्रति साकांक्ष)",
+       "exif-exposureprogram-6": "कार्य तंत्रांश (तेज शटर गति हुअए केर प्रति साकांक्ष)",
+       "exif-exposureprogram-7": "प्रतिकृति रूप (लगक चित्र जइमे पूर्वदश्य फोकससँ बाहर भेल अछि, लेल)",
+       "exif-exposureprogram-8": "परिदृश्य रूप (परिदृश्य फोटो जइमे पाछाँक दृश्य फोकसमे रहैए, लेल)",
+       "exif-subjectdistance-value": "$1 मीटर",
+       "exif-meteringmode-0": "अज्ञात",
+       "exif-meteringmode-1": "औसत",
+       "exif-meteringmode-2": "मध्य भार कएल औसत",
+       "exif-meteringmode-3": "ठाम",
+       "exif-meteringmode-4": "ठामे -ठाम",
+       "exif-meteringmode-5": "प्रतिमान",
+       "exif-meteringmode-6": "आंशिक",
+       "exif-meteringmode-255": "आन",
+       "exif-lightsource-0": "अज्ञात",
+       "exif-lightsource-1": "सूर्यक प्रकाश",
+       "exif-lightsource-2": "प्रतिदीप्त",
+       "exif-lightsource-3": "टंगस्ट्न (इनकॅन्‍डेसेंट प्रकाश)",
+       "exif-lightsource-4": "चौन्ध",
+       "exif-lightsource-9": "नीक मौसम",
+       "exif-lightsource-10": "मेघ लागल मौसम",
+       "exif-lightsource-11": "छांह",
+       "exif-lightsource-12": "दिनक प्रकाशक फ्लूरोसेंट (D 5700 – 7100K)",
+       "exif-lightsource-13": "दिनुका उज्जर दपदप (N 4600 – 5400K)",
+       "exif-lightsource-14": "ठंढ़ा उज्जर दपदप (W 3900 – 4500K)",
+       "exif-lightsource-15": "व्हाईट फ्लूरोसेंट (WW 3200 – 3700K)",
+       "exif-lightsource-17": "प्रमाणक प्रकाश A",
+       "exif-lightsource-18": "प्रमाण प्रकाश B",
+       "exif-lightsource-19": "सामान्य प्रकाश C",
+       "exif-lightsource-24": "आइ.एस.ओ. स्टूडियोक टंगस्टन",
+       "exif-lightsource-255": "आन प्रकाश स्रोत",
+       "exif-flash-fired-0": "फ्लैश नै चलल",
+       "exif-flash-fired-1": "फ्लैश बहराएल",
+       "exif-flash-return-0": "कोनो फ्लैश नै घुरबाक संकेत",
+       "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-sensingmethod-7": "त्रिबीमीय सूचक",
+       "exif-sensingmethod-8": "रंग ताबड़तोर रैखिक सूचक",
+       "exif-filesource-3": "अंकीय स्थिर-चित्र कैमेरा",
+       "exif-scenetype-1": "सोझे खेचल आकृति",
+       "exif-customrendered-0": "सामान्य प्रक्रिया",
+       "exif-customrendered-1": "वैकल्पिक प्रक्रिया",
+       "exif-exposuremode-0": "स्वयं देखबैत",
+       "exif-exposuremode-1": "मैन्युअल एक्पोजर",
+       "exif-exposuremode-2": "स्वचालित कोष्ठक",
+       "exif-whitebalance-0": "स्वचालित उज्जर सन्तुलन",
+       "exif-whitebalance-1": "संचालित उज्जर सन्तुलन",
+       "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-saturation-0": "सामान्य",
+       "exif-saturation-1": "निम्न सान्द्रता",
+       "exif-saturation-2": "बेसी घन",
+       "exif-sharpness-0": "सामान्य",
+       "exif-sharpness-1": "नरम",
+       "exif-sharpness-2": "पखठायल",
+       "exif-subjectdistancerange-0": "अज्ञात",
+       "exif-subjectdistancerange-1": "वृहद्",
+       "exif-subjectdistancerange-2": "लग सें देखू",
+       "exif-subjectdistancerange-3": "दूर सें देखू",
+       "exif-gpslatitude-n": "उत्तरबरिया अक्षांश",
+       "exif-gpslatitude-s": "दखिनबरिया अक्षांश",
+       "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-gpsdestdistance-m": "माइल",
+       "exif-gpsdestdistance-n": "समुद्री माइल",
+       "exif-gpsdop-excellent": "($1)!श्रेष्ठ",
+       "exif-gpsdop-good": "($1) बढ़िया",
+       "exif-gpsdop-moderate": "($1) नियंत्रित",
+       "exif-gpsdop-fair": "($1)निष्पक्ष",
+       "exif-gpsdop-poor": "($1) ख़राब",
+       "exif-objectcycle-a": "भोरमभोर टा",
+       "exif-objectcycle-p": "सांझे टा",
+       "exif-objectcycle-b": "भोर अ साँझ दुनू",
+       "exif-gpsdirection-t": "असल दिश",
+       "exif-gpsdirection-m": "चुम्बकीय दिशा",
+       "exif-ycbcrpositioning-1": "केन्द्रित",
+       "exif-ycbcrpositioning-2": "सह-उद्वाहन",
+       "exif-dc-contributor": "योगदान दै बला लोक",
+       "exif-dc-coverage": "मीडियाक स्थान-कालिक क्षेत्र",
+       "exif-dc-date": "तारीख",
+       "exif-dc-publisher": "प्रकाशित करहि बला",
+       "exif-dc-relation": "संबंधित मीडिया",
+       "exif-dc-rights": "अधिकार",
+       "exif-dc-source": "स्रोत बला माध्यम",
+       "exif-dc-type": "माध्यमक प्रकार",
+       "exif-rating-rejected": "अस्वीकृत",
+       "exif-isospeedratings-overflow": "६५५३५ सँ बेसी",
+       "exif-iimcategory-ace": "कला, संस्कृति आ मनोरंजन",
+       "exif-iimcategory-clj": "अपराध आ कानून",
+       "exif-iimcategory-dis": "आपदा आ दुर्घटना",
+       "exif-iimcategory-fin": "अर्थव्यवस्था आ व्यापार",
+       "exif-iimcategory-edu": "शिक्षा",
+       "exif-iimcategory-evn": "वातावरण",
+       "exif-iimcategory-hth": "स्वास्थ्य",
+       "exif-iimcategory-hum": "मनुखक अनुराग",
+       "exif-iimcategory-lab": "श्रम",
+       "exif-iimcategory-lif": "जीवन शैली आ अवकाश",
+       "exif-iimcategory-pol": "राजनीति",
+       "exif-iimcategory-rel": "धर्म आ विश्वास",
+       "exif-iimcategory-sci": "विज्ञान आ तकनीक",
+       "exif-iimcategory-soi": "सामाजिक मुद्दा",
+       "exif-iimcategory-spo": "खेलकूद",
+       "exif-iimcategory-war": "युद्ध, संघर्ष आ अशांति",
+       "exif-iimcategory-wea": "मौसम",
+       "exif-urgency-normal": "सामान्य ($1)",
+       "exif-urgency-low": "कम ($1)",
+       "exif-urgency-high": "बेशी ($1)",
+       "exif-urgency-other": "प्रयोक्ता परिभाषित प्राथमिकता ($1)"
+}
diff --git a/languages/i18n/exif/mdf.json b/languages/i18n/exif/mdf.json
new file mode 100644 (file)
index 0000000..13a34f7
--- /dev/null
@@ -0,0 +1,230 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Jarmanj Turtash",
+                       "Kranch",
+                       "Numulunj pilgae"
+               ]
+       },
+       "exif-imagewidth": "Келец",
+       "exif-imagelength": "Серец",
+       "exif-bitspersample": "Битт фкя компонентс",
+       "exif-compression": "Компрезиень арафтомац",
+       "exif-photometricinterpretation": "Пикселень композициесна",
+       "exif-orientation": "Ориентацие",
+       "exif-samplesperpixel": "Компонентонь лувкссна",
+       "exif-planarconfiguration": "Информациень латцемась",
+       "exif-ycbcrsubsampling": "Y-ста C-с латцемань арафтомась",
+       "exif-ycbcrpositioning": "Y ди C арафтомасна",
+       "exif-xresolution": "Горизонталень сидец",
+       "exif-yresolution": "Вертикалень сидец",
+       "exif-stripoffsets": "Архтома информациеть вастоц",
+       "exif-rowsperstrip": "Курнятнень луфкссна фкя киксс",
+       "exif-stripbytecounts": "Байтт фкя компрезияфтф китьксс",
+       "exif-jpeginterchangeformat": "JPEG SOI-нди офсетсь",
+       "exif-jpeginterchangeformatlength": "JPEG информациень байтт",
+       "exif-whitepoint": "Акша коряс ункстамась",
+       "exif-primarychromaticities": "Васень тюснень ункстамась",
+       "exif-ycbcrcoefficients": "Тюс ёткнень илякстомома кепотьксть коефициентоц",
+       "exif-referenceblackwhite": "Кафта акша ди равжа ваксс путови питнесна",
+       "exif-datetime": "Файлсь полафнесыне шись ди пингсь",
+       "exif-imagedescription": "Архтофксть коняксоц",
+       "exif-make": "Камерань нолдайсь",
+       "exif-model": "Камерань модельсь",
+       "exif-software": "Тевс нолдаф програпне",
+       "exif-artist": "Арсись",
+       "exif-copyright": "Копийама видексонь кирдись",
+       "exif-exifversion": "Exif верзиесь",
+       "exif-flashpixversion": "Нежедеви Flashpix верзиесь",
+       "exif-colorspace": "Тюсонь ёткась",
+       "exif-componentsconfiguration": "Эрь компонентонь асуц",
+       "exif-compressedbitsperpixel": "Архтофксонь компрезийамась",
+       "exif-pixelxdimension": "Кондясти архтофксонь келец",
+       "exif-pixelydimension": "Кондясти архтофксонь серец",
+       "exif-usercomment": "Тиить тяштьксонза",
+       "exif-relatedsoundfile": "Сотф аудио файлсь",
+       "exif-datetimeoriginal": "Шинь тиевомать шись ди пингсь",
+       "exif-datetimedigitized": "Цифрайафтомань шись ди пингсь",
+       "exif-subsectime": "Ши ди пинге полафнема фавонь (секундонь) пакшкатне",
+       "exif-subsectimeoriginal": "Оригиналонь ши ди пинге фавонь (секундонь) пакшкатне",
+       "exif-subsectimedigitized": "Цифраяфтомань ши ди пинге фавонь (секундонь) пакшкатне",
+       "exif-exposuretime": "Экспозициень пингсь",
+       "exif-exposuretime-format": "$1 сек ($2)",
+       "exif-fnumber": "F номерсь",
+       "exif-exposureprogram": "Экспозициень програмсь",
+       "exif-spectralsensitivity": "Спектрань марьсемась",
+       "exif-isospeedratings": "ISO куроксшинь пялькснемась",
+       "exif-shutterspeedvalue": "Эрьхтема таватксонь куроксшись",
+       "exif-aperturevalue": "Апертурсь",
+       "exif-brightnessvalue": "Валдоксши",
+       "exif-exposurebiasvalue": "Экспозициень сортсь",
+       "exif-maxaperturevalue": "Максимум апертурась",
+       "exif-subjectdistance": "Объекста ёткась",
+       "exif-meteringmode": "Уекстамань режимсь",
+       "exif-lightsource": "Валдань лисьмоц",
+       "exif-flash": "Кьфчадефкс",
+       "exif-focallength": "Линзатнень фокусснон ётканза",
+       "exif-subjectarea": "Субъектонь вастсь",
+       "exif-flashenergy": "Кьфчядефксонь эрьгац",
+       "exif-focalplanexresolution": "Фокусонь ён X сидец",
+       "exif-focalplaneyresolution": "Фокусонь ён Y сидец",
+       "exif-focalplaneresolutionunit": "Фокусонь ён сиденц ункстамась",
+       "exif-subjectlocation": "Объектть вастоц",
+       "exif-exposureindex": "Экспозициень индекссь",
+       "exif-sensingmethod": "Марьсема методсь",
+       "exif-filesource": "Файлонь лисьмоц",
+       "exif-scenetype": "Эрьхтефксонь няйфсь",
+       "exif-customrendered": "Кърдань эрьхтефксонь латцемась",
+       "exif-exposuremode": "Экспозициень режимсь",
+       "exif-whitebalance": "Акша тюсонь балансоц",
+       "exif-digitalzoomratio": "Цифрань ламолгафтома ункснемась",
+       "exif-focallengthin35mmfilm": "Фокусонь кувалмоц 35 мм фильмса",
+       "exif-scenecapturetype": "Эрьхтефксонь тиевомац",
+       "exif-gaincontrol": "Эрьхтемань няевомась",
+       "exif-contrast": "Контрастсь",
+       "exif-saturation": "Тустолмась",
+       "exif-sharpness": "Оржаксшись",
+       "exif-devicesettingdescription": "Камера арафнематнень колга  тяштемат",
+       "exif-subjectdistancerange": "Объектста ёткась",
+       "exif-imageuniqueid": "Эрьхтефксонь эсь кодоц",
+       "exif-gpsversionid": "GPS кодонь верзиесь",
+       "exif-gpslatituderef": "Кельмеширень эли лямбеширень келец",
+       "exif-gpslatitude": "Келец",
+       "exif-gpslongituderef": "Шистямаширень эли шивалгомширень кувалмоц",
+       "exif-gpslongitude": "Кувалмоц",
+       "exif-gpsaltituderef": "Серенц сюлмафксоц",
+       "exif-gpsaltitude": "Серец",
+       "exif-gpstimestamp": "GPS пинге (атомонь ойхть)",
+       "exif-gpssatellites": "Спутникне нолнеф тевс ункстаманди",
+       "exif-gpsstatus": "Ресиверть статуссь",
+       "exif-gpsmeasuremode": "Ункстамань режимсь",
+       "exif-gpsdop": "Ункстамань оржашись",
+       "exif-gpsspeedref": "Куроксшинь ункстамась",
+       "exif-gpsspeed": "GPS ресиверть куроксшись",
+       "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": "GPS районть лемоц",
+       "exif-gpsdatestamp": "GPS ши",
+       "exif-gpsdifferential": "GPS диференциень петнема",
+       "exif-compression-1": "Аф компрезияф",
+       "exif-unknowndate": "Аф содаф шись",
+       "exif-orientation-1": "Апак полафтт",
+       "exif-orientation-2": "Шарфтф горизонталь коряс",
+       "exif-orientation-3": "Шарфтф 180° градусс",
+       "exif-orientation-4": "Шарфтф вертикаль коряс",
+       "exif-orientation-5": "Шарфтф 90° градусс ойхть каршес ди вертикаль коряс",
+       "exif-orientation-6": "Шарфтф 90° градусс ойхть коряс",
+       "exif-orientation-7": "Шарфтф 90° градусс ойхть коряс ди  вертикаль коряс",
+       "exif-orientation-8": "Шарфтф 90° градусс ойхть каршес",
+       "exif-planarconfiguration-1": "нюрьхкяня форматсь",
+       "exif-planarconfiguration-2": "лапш форматсь",
+       "exif-componentsconfiguration-0": "аш",
+       "exif-exposureprogram-0": "Апак содак",
+       "exif-exposureprogram-1": "Кядьвельде",
+       "exif-exposureprogram-2": "Кърдань програм",
+       "exif-exposureprogram-3": "Диафрагмань приоретсь",
+       "exif-exposureprogram-4": "Кирдемань приоритетсь",
+       "exif-exposureprogram-5": "Шкам програм (эряви оржашинь кърхкалмать коряс)",
+       "exif-exposureprogram-6": "Спортонь програм (сяда ёмла кирдемась)",
+       "exif-exposureprogram-7": "Портретонь режимсь (мала эрьхтеманди фокусфтома фон мархта)",
+       "exif-exposureprogram-8": "Ландшафтонь режимсь (ландшафтонь эрьхтеманди ди фон фокус мархта)",
+       "exif-subjectdistance-value": "$1 метрат",
+       "exif-meteringmode-0": "Аф содаф",
+       "exif-meteringmode-1": "Кучкастонь",
+       "exif-meteringmode-2": "Кучкаста ункстаф",
+       "exif-meteringmode-3": "Путьку",
+       "exif-meteringmode-4": "Лама путьку",
+       "exif-meteringmode-5": "Шаблон",
+       "exif-meteringmode-6": "Пакшень-пакш",
+       "exif-meteringmode-255": "Иля",
+       "exif-lightsource-0": "Аф содаф",
+       "exif-lightsource-1": "Шивалда",
+       "exif-lightsource-2": "Флуоресцент",
+       "exif-lightsource-3": "Толвалда (электрашинь валда)",
+       "exif-lightsource-4": "Кьфчядефкс",
+       "exif-lightsource-9": "Мани",
+       "exif-lightsource-10": "Сюнерькс",
+       "exif-lightsource-11": "Эше",
+       "exif-lightsource-12": "Шивалдонь флуоресцент (D 5700 – 7100K)",
+       "exif-lightsource-13": "Шинь акша флуоресцент (N 4600 – 5400K)",
+       "exif-lightsource-14": "Кельме акша флуоресцент (W 3900 – 4500K)",
+       "exif-lightsource-15": "Акша флуресцент валда (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Стандарт валда A",
+       "exif-lightsource-18": "Стандарт валда B",
+       "exif-lightsource-19": "Стандарт валда C",
+       "exif-lightsource-24": "студиянь толвалда ISO",
+       "exif-lightsource-255": "Иля валдонь лисьма",
+       "exif-flash-fired-0": "Кьфчадефкссь изь вандолдозев",
+       "exif-flash-fired-1": "Кьфчадефкссь вандолдозевсь",
+       "exif-flash-return-0": "стробоскопу цильф мушендомат ашет",
+       "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-sensingmethod-7": "Колма-линиянь сенсор",
+       "exif-sensingmethod-8": "Тюс латцема линиянь сенсор",
+       "exif-scenetype-1": "Виде эрьхтема вельде тиф архтофкссь",
+       "exif-customrendered-0": "Нормань процесс",
+       "exif-customrendered-1": "Кърдань процесс",
+       "exif-exposuremode-0": "Эсь тиеви экспозициесь",
+       "exif-exposuremode-1": "Кядьвельдень экспозициесь",
+       "exif-exposuremode-2": "Эсь тиеви кадрыяфтома",
+       "exif-whitebalance-0": "Эсь тиеви акша тюсонь баланс",
+       "exif-whitebalance-1": "Кядьвельдень акша тюсонь баланс",
+       "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-saturation-0": "Кърдань",
+       "exif-saturation-1": "Лафча тустолма",
+       "exif-saturation-2": "Вишке тустолма",
+       "exif-sharpness-0": "Кърдань",
+       "exif-sharpness-1": "Ляпе",
+       "exif-sharpness-2": "Калгода",
+       "exif-subjectdistancerange-0": "Аф содаф",
+       "exif-subjectdistancerange-1": "Макро кодсь",
+       "exif-subjectdistancerange-2": "Сёлгомс няфтемать",
+       "exif-subjectdistancerange-3": "Ичкоздень няфтемась",
+       "exif-gpslatitude-n": "Кельмеширень келесь",
+       "exif-gpslatitude-s": "Лямбеширень келесь",
+       "exif-gpslongitude-e": "Шистямаширень кувалмась",
+       "exif-gpslongitude-w": "Шивалгомширень кувалмась",
+       "exif-gpsstatus-a": "Ункстамац моли",
+       "exif-gpsstatus-v": "Ункстамань фкя-фкянь мархта йаксема",
+       "exif-gpsmeasuremode-2": "2-кърдань ункстама",
+       "exif-gpsmeasuremode-3": "3-кърдань ункстама",
+       "exif-gpsspeed-k": "Вайгяльбет ойс",
+       "exif-gpsspeed-m": "Милят ойс",
+       "exif-gpsspeed-n": "Сюлмот",
+       "exif-gpsdirection-t": "Виде ён",
+       "exif-gpsdirection-m": "Магнитонь ён"
+}
diff --git a/languages/i18n/exif/mg.json b/languages/i18n/exif/mg.json
new file mode 100644 (file)
index 0000000..d614125
--- /dev/null
@@ -0,0 +1,306 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Jagwar"
+               ]
+       },
+       "exif-imagewidth": "Halalaka",
+       "exif-imagelength": "Haavo",
+       "exif-bitspersample": "Bit isaky ny singa",
+       "exif-compression": "Karazana fanakelezana",
+       "exif-photometricinterpretation": "Endrika kôlôrimetrika",
+       "exif-orientation": "Todika",
+       "exif-samplesperpixel": "Mpandahatra isaky ny piksely",
+       "exif-planarconfiguration": "Fandaminana ny data",
+       "exif-ycbcrpositioning": "Fipetraky ny Y sy C",
+       "exif-xresolution": "Famahana mitsivalana",
+       "exif-yresolution": "Isan-teboka mijidina",
+       "exif-stripoffsets": "Toerana isian'ny datan'ny sary",
+       "exif-rowsperstrip": "Isan'ny andininy isaky ny bandy",
+       "exif-stripbytecounts": "Haben'ny bandy amin'ny oktety",
+       "exif-jpeginterchangeformat": "Fipetraky ny SOI JPEG",
+       "exif-jpeginterchangeformatlength": "Oktetin'angona JPEG",
+       "exif-whitepoint": "Krômatisiten'ny teboka fotsy",
+       "exif-primarychromaticities": "Krômatisiten'ny reniloko",
+       "exif-ycbcrcoefficients": "Fatra YCbCr",
+       "exif-referenceblackwhite": "Sanda tsiahy fotsy sy mainty",
+       "exif-datetime": "Daty fanovana",
+       "exif-imagedescription": "Visavisan'ilay sary",
+       "exif-make": "Mpanamboatra ilay fakan-tsary",
+       "exif-model": "Karazan'ilay fakan-tsary",
+       "exif-software": "Rindrankajy nampiasaina",
+       "exif-artist": "Mpaka azy",
+       "exif-copyright": "Mpanana ilay copyright",
+       "exif-exifversion": "Versiona EXIF",
+       "exif-flashpixversion": "Versiona FlashPix",
+       "exif-colorspace": "Valan-doko",
+       "exif-componentsconfiguration": "Dikan'ny mpanorina tsirairay",
+       "exif-compressedbitsperpixel": "Fomba famintinan-tsary",
+       "exif-pixelxdimension": "Haavon-tsary",
+       "exif-pixelydimension": "Halala-tsary",
+       "exif-usercomment": "Diniky ny mpikambana",
+       "exif-relatedsoundfile": "Rakitra audio miaraka",
+       "exif-datetimeoriginal": "Daty fangalana niaviana",
+       "exif-datetimedigitized": "Daty nanaovana numerisation",
+       "exif-subsectime": "Daty nanovana",
+       "exif-subsectimeoriginal": "Daty nangalana voalohany",
+       "exif-subsectimedigitized": "Daty nahadijitaly",
+       "exif-exposuretime": "Fitaona famakiana",
+       "exif-exposuretime-format": "$1 s ($2 s)",
+       "exif-fnumber": "Isa F",
+       "exif-exposureprogram": "Fomba famakiana",
+       "exif-spectralsensitivity": "Fahatsapana ara-balandoko",
+       "exif-isospeedratings": "ISO",
+       "exif-shutterspeedvalue": "hafaingam-panapenana ny APEX",
+       "exif-aperturevalue": "Fisanasana APEX",
+       "exif-brightnessvalue": "Hazavan'ny APEX",
+       "exif-exposurebiasvalue": "fanitsiana ny fanehoana",
+       "exif-maxaperturevalue": "Fisokafana be indrindra",
+       "exif-subjectdistance": "Halaviran'ny alaina sary",
+       "exif-meteringmode": "Fomba fandrefesana",
+       "exif-lightsource": "Loharanon-kazavana",
+       "exif-flash": "Tselatra",
+       "exif-focallength": "Halavam-pifantohana",
+       "exif-subjectarea": "Faritry ny alain-tsary",
+       "exif-flashenergy": "Angôvon'akonkazavana",
+       "exif-focalplanexresolution": "Halava X an'ny fifantohana",
+       "exif-focalplaneyresolution": "Halava Y an'ny fifantohana",
+       "exif-focalplaneresolutionunit": "Mari-drefin'ny fifantohana",
+       "exif-subjectlocation": "Toeram-pisian'ny alaina sary",
+       "exif-exposureindex": "Tondrom-piharihariana",
+       "exif-sensingmethod": "Fomba tsikariny",
+       "exif-filesource": "Fangon-drakitra",
+       "exif-scenetype": "Karazan-tsehatra",
+       "exif-customrendered": "Fikarakaran-tsary natao manokana",
+       "exif-exposuremode": "Fomba fiharihariana",
+       "exif-whitebalance": "Lanjalanjam-potsy",
+       "exif-digitalzoomratio": "Tahan'ny zoom arak'isa",
+       "exif-focallengthin35mmfilm": "Halavam-pifantohana anaty filma 35 mm",
+       "exif-scenecapturetype": "Karazam-pandraiketan-tsehatra",
+       "exif-gaincontrol": "Fifehezan-tsehatra",
+       "exif-contrast": "Fifanoheran-doko",
+       "exif-saturation": "Fahafenoan-doko",
+       "exif-sharpness": "Haranitana",
+       "exif-devicesettingdescription": "Famisavisana mikasika ny fikiram-pitaovana",
+       "exif-subjectdistancerange": "Halaviran'ny alain-tsary",
+       "exif-imageuniqueid": "ID an'io sary io manokana",
+       "exif-gpsversionid": "Versiônan'ny balizy GPS",
+       "exif-gpslatituderef": "Laharam-pehintany avaratra na atsimo",
+       "exif-gpslatitude": "Laharam-pehintany",
+       "exif-gpslongituderef": "Laharan-jarahasina andrefana na atsinanana",
+       "exif-gpslongitude": "Laharan-jarahasina",
+       "exif-gpsaltituderef": "Haambo tsiahy",
+       "exif-gpsaltitude": "Haambo",
+       "exif-gpstimestamp": "Ora GPS (famantaranandro atômika)",
+       "exif-gpssatellites": "Zanabolana mampiasaina ho an'ilay refy",
+       "exif-gpsstatus": "Toetry ny mpandray",
+       "exif-gpsmeasuremode": "Fomba fandrefesana",
+       "exif-gpsdop": "Hatsiko ny fandrefesana",
+       "exif-gpsspeedref": "Mari-drefi-kafainganana",
+       "exif-gpsspeed": "Hafaingam-pandray GPS",
+       "exif-gpstrackref": "Tsiahy ho an'ny fizotry ny hetsika",
+       "exif-gpstrack": "Fizotry ny hetsika",
+       "exif-gpsimgdirectionref": "Tsiahy ho an'ny fizotry ny hetsika",
+       "exif-gpsimgdirection": "Fitodihan'ny sary",
+       "exif-gpsmapdatum": "Rafitra jeodezika nampaisaina",
+       "exif-gpsdestlatituderef": "Tsiahy ho an'ny laharam-pehintany tanjona",
+       "exif-gpsdestlatitude": "Laharam-pehintany tanjona",
+       "exif-gpsdestlongituderef": "Tsiahy ho an'ny laharan-jarahasina tanjona",
+       "exif-gpsdestlongitude": "Laharan-jarahasina tanjona",
+       "exif-gpsdestbearingref": "Tsiahy ho an'ny fitazomana-tanjona",
+       "exif-gpsdestbearing": "Fitazoman-tanjona",
+       "exif-gpsdestdistanceref": "Tsiahy ho an'ny halavirana amin'ny tanjona",
+       "exif-gpsdestdistance": "Halavirana amin'ny tanjona",
+       "exif-gpsprocessingmethod": "Anaran'ny fomba fanodinana GPS",
+       "exif-gpsareainformation": "Anaram-paritra GPS",
+       "exif-gpsdatestamp": "Daty GPS",
+       "exif-gpsdifferential": "Fanitsiana arak'elana GPS",
+       "exif-jpegfilecomment": "Resa-drakitra JPEG",
+       "exif-keywords": "Tenifototra",
+       "exif-worldregioncreated": "Faritany nangalana ity ilay sary",
+       "exif-countrycreated": "Firenena nangalana ilay sary",
+       "exif-countrycodecreated": "Kaontim-pirenena nangalana ilay sary",
+       "exif-provinceorstatecreated": "Faritany nangalana ilay sary",
+       "exif-citycreated": "Tanàna nangalana ilay sary",
+       "exif-sublocationcreated": "Fari-tanàna nangalana ilay sary",
+       "exif-worldregiondest": "Faritany aseho",
+       "exif-countrydest": "Firenena aseho",
+       "exif-countrycodedest": "Kaodim-pirenena aseho",
+       "exif-provinceorstatedest": "Faritany aseho",
+       "exif-citydest": "Tanàna aseho",
+       "exif-sublocationdest": "Fari-tanàna aseho",
+       "exif-objectname": "Lohateny fohy",
+       "exif-specialinstructions": "Torolalana manokana",
+       "exif-headline": "Lohateny",
+       "exif-credit": "Isaorana/mpanome",
+       "exif-source": "Fiaviana",
+       "exif-editstatus": "Sata ara-panontan'ny sary",
+       "exif-urgency": "Ilaina maika",
+       "exif-fixtureidentifier": "Anarana zavatra miverimberina",
+       "exif-locationdest": "Toerana aseho",
+       "exif-locationdestcode": "Kaodin'ny toerana aseho",
+       "exif-objectcycle": "Ora tanjon'ilay aino aman-jery",
+       "exif-contact": "Fampahalalana mikasika ny fifandraisana",
+       "exif-writer": "Mpanoratra",
+       "exif-languagecode": "Fiteny",
+       "exif-iimversion": "filaza IIM",
+       "exif-iimcategory": "Sokajy",
+       "exif-iimsupplementalcategory": "Sokajy fanampiny",
+       "exif-datetimeexpires": "Asa ampiasaina aoriany",
+       "exif-datetimereleased": "Navoaka ny",
+       "exif-originaltransmissionref": "Kaodin-toeran'ny fampitana niaviana",
+       "exif-identifier": "Mpamaritra",
+       "exif-lens": "Lojy nampiasaina",
+       "exif-serialnumber": "Isa laharan'ny fakan-tsary",
+       "exif-cameraownername": "Tompon'ilay mpaka sary",
+       "exif-label": "Marika",
+       "exif-datetimemetadata": "Daty nanovana faran'ny metadata",
+       "exif-nickname": "Solonanaran'ilay sary",
+       "exif-rating": "Naoty (ampahan'ny 5)",
+       "exif-rightscertificate": "Sertifikà fitantanana ny zo",
+       "exif-copyrighted": "Satan'ny zom-pamorona",
+       "exif-copyrightowner": "Tompon'ny zom-pamorona",
+       "exif-usageterms": "Fepe-pampiasana",
+       "exif-webstatement": "Fanamnbarana ny zom-pamorona online",
+       "exif-originaldocumentid": "ID manokana ny rakitra niaviana",
+       "exif-licenseurl": "URl an'ilay lisansa",
+       "exif-morepermissionsurl": "Fampahalanana hafa mikasika ny lisansa",
+       "exif-attributionurl": "Rehefa mampiasa ity asa ity dia asio rohy mankany amin'i",
+       "exif-preferredattributionname": "Rehefa mampiasa ilay asa, isaory",
+       "exif-pngfilecomment": "Famoahan-kevitra momban'ilay rakitra PNG",
+       "exif-disclaimer": "Fampitanremana",
+       "exif-contentwarning": "Fampitandremana mikasika ny votoatiny",
+       "exif-giffilecomment": "Famoahan-kevitry ny rakirta GIF",
+       "exif-intellectualgenre": "Karazan-javatra",
+       "exif-subjectnewscode": "Kaodin'ny lohahevitra",
+       "exif-scenecode": "Kaodin-tsehatra IPTC",
+       "exif-event": "Zava-mitranga azo sary",
+       "exif-organisationinimage": "Fikambanana azo sary",
+       "exif-personinimage": "Olona azo sary",
+       "exif-originalimageheight": "Haambon-tsary talohan'ny nanovana azy",
+       "exif-compression-1": "Tsy nafintina",
+       "exif-compression-2": "CCITT vondrona 3 Halavan-kaody Huffman novaina iray saka",
+       "exif-compression-3": "CCITT Vondrona telo kaody fax",
+       "exif-compression-4": "CCITT Vondrona 4 kaody fax",
+       "exif-copyrighted-true": "Iharan'ny zom-pamorona",
+       "exif-copyrighted-false": "Toetran'ny zom-pamorona tsy voafaritra",
+       "exif-unknowndate": "Daty tsy fantatra",
+       "exif-orientation-1": "Tsotra",
+       "exif-orientation-2": "Navadika ara-marindrano",
+       "exif-orientation-3": "Ahodina 180°",
+       "exif-orientation-4": "Navadika ambony ambany",
+       "exif-orientation-5": "Navadika 90° miankavia ary navadika ambony ambany",
+       "exif-orientation-6": "Navadika 90° miankavia",
+       "exif-orientation-7": "Navadika 90° miankavanana ary navadika ambony ambany",
+       "exif-orientation-8": "Navadika 90° miankavanana",
+       "exif-planarconfiguration-1": "Angona miraibolongana",
+       "exif-planarconfiguration-2": "Data misaraka",
+       "exif-componentsconfiguration-0": "tsy nahitana",
+       "exif-exposureprogram-0": "Tsy nolazaina",
+       "exif-exposureprogram-1": "Natao tanana",
+       "exif-exposureprogram-2": "Fandaharana ara-dalàna",
+       "exif-subjectdistance-value": "$1 metatra",
+       "exif-meteringmode-0": "Tsy fantatra",
+       "exif-meteringmode-1": "Elanelana",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "Spot maro",
+       "exif-meteringmode-5": "Modely",
+       "exif-meteringmode-6": "An-tsilany",
+       "exif-meteringmode-255": "Hafa",
+       "exif-lightsource-0": "Tsy fantatra",
+       "exif-lightsource-1": "Hazavan'andro",
+       "exif-lightsource-4": "Tselatra",
+       "exif-lightsource-9": "Toetr'andro mazava",
+       "exif-lightsource-10": "Toetr'andro mandrahona",
+       "exif-lightsource-11": "Haloka",
+       "exif-lightsource-17": "Jiro manara-penitra A",
+       "exif-lightsource-18": "Jiro manara-penitra B",
+       "exif-lightsource-19": "Jiro manara-penitra C",
+       "exif-lightsource-24": "Tangistenina ISO an'ny studio",
+       "exif-lightsource-255": "Loharanon-kazavana hafa",
+       "exif-flash-fired-0": "Tsy nirehitra ny flash",
+       "exif-flash-fired-1": "Nirehitra ny flash",
+       "exif-flash-return-0": "Tsy misy stirôbôskôpy mamerina lefa fahitana",
+       "exif-flash-mode-3": "Toetra aotômatika",
+       "exif-flash-function-1": "Tsy misy lefan'ny flash",
+       "exif-flash-redeye-1": "Fanoherana ny fisiana maso mena",
+       "exif-focalplaneresolutionunit-2": "Posy",
+       "exif-sensingmethod-1": "Tsy voafaritra",
+       "exif-scenecapturetype-0": "Ara-penitra",
+       "exif-scenecapturetype-1": "Mandry",
+       "exif-scenecapturetype-2": "Mitsangana",
+       "exif-scenecapturetype-3": "Alina",
+       "exif-gaincontrol-0": "Tsy misy",
+       "exif-gaincontrol-1": "Fahazoana miabo kely",
+       "exif-gaincontrol-2": "Fitomboana miabo be",
+       "exif-gaincontrol-3": "Fitomboana miiba kely",
+       "exif-gaincontrol-4": "Fitomboana miiba be",
+       "exif-contrast-0": "Tsotra",
+       "exif-contrast-1": "Kely",
+       "exif-contrast-2": "Ambony",
+       "exif-saturation-0": "Tsotra",
+       "exif-saturation-1": "Ambany",
+       "exif-saturation-2": "Ambony",
+       "exif-sharpness-0": "Tsotra",
+       "exif-sharpness-1": "Malefaka",
+       "exif-sharpness-2": "Mahery",
+       "exif-subjectdistancerange-0": "Tsy fantatra",
+       "exif-subjectdistancerange-1": "Makrô",
+       "exif-subjectdistancerange-2": "Fijerena akaiky",
+       "exif-subjectdistancerange-3": "Fijerena lavitra",
+       "exif-gpslatitude-n": "Avaratra",
+       "exif-gpslatitude-s": "Atsimo",
+       "exif-gpslongitude-e": "Atsinanana",
+       "exif-gpslongitude-w": "Andrefana",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|}}metatra eo ambonin'ny lentan'ny ranomasina",
+       "exif-gpsaltitude-below-sealevel": "$1 metatra{{PLURAL:$1|}} eo ambanin'ny lentan-dranomasina",
+       "exif-gpsstatus-a": "Am-pandrefesana",
+       "exif-gpsmeasuremode-2": "Fandrefesana 2D",
+       "exif-gpsmeasuremode-3": "Fandrefesana 3D",
+       "exif-gpsspeed-k": "Kilometatra isak'ora",
+       "exif-gpsspeed-m": "Maily isak'ora",
+       "exif-gpsspeed-n": "Knot",
+       "exif-gpsdestdistance-k": "Kilometatra",
+       "exif-gpsdestdistance-m": "Mile",
+       "exif-gpsdestdistance-n": "Mile naotika",
+       "exif-gpsdop-excellent": "Tena tsara ($1)",
+       "exif-gpsdop-good": "Tsara ($1)",
+       "exif-gpsdop-moderate": "Eo ho eo ihany ($1)",
+       "exif-gpsdop-fair": "Tsara ihany ($1)",
+       "exif-gpsdop-poor": "Kely ($1)",
+       "exif-objectcycle-a": "Maraina ihany",
+       "exif-objectcycle-p": "Hariva ihany",
+       "exif-objectcycle-b": "Sady maraina no hariva",
+       "exif-gpsdirection-t": "Tena avaratra",
+       "exif-gpsdirection-m": "Avaratra arak'andriamby",
+       "exif-ycbcrpositioning-1": "Miafovoany",
+       "exif-ycbcrpositioning-2": "Co-sited",
+       "exif-dc-contributor": "Mpandray anjara",
+       "exif-dc-date": "Daty",
+       "exif-dc-publisher": "Mpamoaka",
+       "exif-dc-relation": "Media misy ifandraisana",
+       "exif-dc-rights": "Zo",
+       "exif-dc-source": "Haino aman-jery niaviana",
+       "exif-dc-type": "Karazana baino aman-jery",
+       "exif-rating-rejected": "Nolavina",
+       "exif-isospeedratings-overflow": "Mahery ny 65535",
+       "exif-iimcategory-ace": "Kanto, kolontsaina ary fialam-boly",
+       "exif-iimcategory-clj": "Heloka aman-jo",
+       "exif-iimcategory-dis": "Voina aman-doza",
+       "exif-iimcategory-fin": "Toe-karena",
+       "exif-iimcategory-edu": "Fanabeazana",
+       "exif-iimcategory-evn": "Tontolo iainana",
+       "exif-iimcategory-hth": "Fahasalamana",
+       "exif-iimcategory-lab": "Asa",
+       "exif-iimcategory-lif": "Fomba fiainana sy fialam-boly",
+       "exif-iimcategory-pol": "Politika",
+       "exif-iimcategory-rel": "Finoana",
+       "exif-iimcategory-sci": "Siansa sy teknôlôjia",
+       "exif-iimcategory-soi": "Olana ara-tsosialy",
+       "exif-iimcategory-spo": "Fanatanjahan-tena",
+       "exif-iimcategory-war": "Ady, tsy fandriampahalemana",
+       "exif-iimcategory-wea": "Toetr'andro",
+       "exif-urgency-normal": "Tsotra ($1)",
+       "exif-urgency-low": "Ambany ($1)",
+       "exif-urgency-high": "Ambony ($1)"
+}
diff --git a/languages/i18n/exif/mk.json b/languages/i18n/exif/mk.json
new file mode 100644 (file)
index 0000000..5253e8d
--- /dev/null
@@ -0,0 +1,372 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Bjankuloski06",
+                       "Brest",
+                       "FlavrSavr"
+               ]
+       },
+       "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-преглед",
+       "exif-jpeginterchangeformatlength": "Бајти JPEG податоци",
+       "exif-whitepoint": "Хроматичност на белата точка",
+       "exif-primarychromaticities": "Хроматичност на основните бои",
+       "exif-ycbcrcoefficients": "Матрични коефициенти на трансформација на бојниот простор",
+       "exif-referenceblackwhite": "Упатни вредности на парот бела и црна точка",
+       "exif-datetime": "Датум и време на измената на податотеката",
+       "exif-imagedescription": "Наслов на сликата",
+       "exif-make": "Произведувач",
+       "exif-model": "Модел",
+       "exif-software": "Користен програм",
+       "exif-artist": "Автор",
+       "exif-copyright": "Праводржец",
+       "exif-exifversion": "Exif-верзија",
+       "exif-flashpixversion": "Поддржана верзија на Flashpix",
+       "exif-colorspace": "Боен простор",
+       "exif-componentsconfiguration": "Значење на секој боен дел",
+       "exif-compressedbitsperpixel": "Режим на набивање на сликата",
+       "exif-pixelxdimension": "Ширина на сликата",
+       "exif-pixelydimension": "Висина на сликата",
+       "exif-usercomment": "Кориснички коментари",
+       "exif-relatedsoundfile": "Поврзана аудиоснимка",
+       "exif-datetimeoriginal": "Датум и време на сликање",
+       "exif-datetimedigitized": "Датум и време на дигитализација",
+       "exif-subsectime": "Дел од секундата во кој е сликано",
+       "exif-subsectimeoriginal": "Дел од секундата во кој е фотографирано",
+       "exif-subsectimedigitized": "Дел од секундата во кој е дигитализирано",
+       "exif-exposuretime": "Време на изложеност",
+       "exif-exposuretime-format": "$1 сек ($2)",
+       "exif-fnumber": "F-бр.",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Програм на изложување",
+       "exif-spectralsensitivity": "Спектрална осетливост",
+       "exif-isospeedratings": "Светлоосетливост по ISO",
+       "exif-shutterspeedvalue": "APEX-брзина на затворачот",
+       "exif-aperturevalue": "APEX-oтвор",
+       "exif-brightnessvalue": "APEX-светлост",
+       "exif-exposurebiasvalue": "Надоместок на изложувањето",
+       "exif-maxaperturevalue": "Најг. отвореност на блендата",
+       "exif-subjectdistance": "Оддалеченост до објектот",
+       "exif-meteringmode": "Режим на мерачот",
+       "exif-lightsource": "Светлосен извор",
+       "exif-flash": "Блиц",
+       "exif-focallength": "Жаришно растојание на леќата",
+       "exif-focallength-format": "$1 мм",
+       "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": "Рамнотежа на бело",
+       "exif-digitalzoomratio": "Сооднос на дигиталното приближување (зум)",
+       "exif-focallengthin35mmfilm": "Жаришно растојание кај 35 мм филм",
+       "exif-scenecapturetype": "Тип на сликаната сцена",
+       "exif-gaincontrol": "Контрола на сцената",
+       "exif-contrast": "Контраст",
+       "exif-saturation": "Заситеност",
+       "exif-sharpness": "Острина",
+       "exif-devicesettingdescription": "Опис на поставките на апаратот",
+       "exif-subjectdistancerange": "Опсег на оддалеченост на објектот",
+       "exif-imageuniqueid": "Назнака на сликата",
+       "exif-gpsversionid": "Верзија на ознака за GPS податоци",
+       "exif-gpslatituderef": "Северна или јужна ГШ",
+       "exif-gpslatitude": "Геог. ширина",
+       "exif-gpslongituderef": "Источна или западна ГД",
+       "exif-gpslongitude": "Геог. должина",
+       "exif-gpsaltituderef": "Упатна точка за висната",
+       "exif-gpsaltitude": "Височина",
+       "exif-gpstimestamp": "GPS-време (атомски часовник)",
+       "exif-gpssatellites": "Употребени сателити",
+       "exif-gpsstatus": "Статус на приемникот",
+       "exif-gpsmeasuremode": "Режим на мерење",
+       "exif-gpsdop": "Прецизност на мерењето",
+       "exif-gpsspeedref": "Единица за брзина",
+       "exif-gpsspeed": "Брзина на GPS приемникот",
+       "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": "Mетод на пресметка на местоположбата",
+       "exif-gpsareainformation": "Назив на GPS-подрачје",
+       "exif-gpsdatestamp": "GPS-датум",
+       "exif-gpsdifferential": "Диференцијална исправка на GPS",
+       "exif-jpegfilecomment": "Забелешка за JPEG-сликата",
+       "exif-keywords": "Клучни зборови",
+       "exif-worldregioncreated": "Област од светот кајшто е направена сликата",
+       "exif-countrycreated": "Земја кајшто е направена сликата",
+       "exif-countrycodecreated": "Код на земјата кајшто е направена сликата",
+       "exif-provinceorstatecreated": "Покраина или сој. држава кајшто е направена сликата",
+       "exif-citycreated": "Град кајшто е направена сликата",
+       "exif-sublocationcreated": "Дел од градот кајшто е направена сликата",
+       "exif-worldregiondest": "Прикажана област од светот",
+       "exif-countrydest": "Прикажана земја",
+       "exif-countrycodedest": "Код на прикажаната земја",
+       "exif-provinceorstatedest": "Прикажана покраина/сој. држава",
+       "exif-citydest": "Прикажан град",
+       "exif-sublocationdest": "Прикажан дел од градот",
+       "exif-objectname": "Краток наслов",
+       "exif-specialinstructions": "Посебни упатства",
+       "exif-headline": "Наслов",
+       "exif-credit": "Припишување/Објавувач",
+       "exif-source": "Извор",
+       "exif-editstatus": "Редакциски статус на сликата",
+       "exif-urgency": "Итност",
+       "exif-fixtureidentifier": "Назив на рубриката",
+       "exif-locationdest": "Прикажано место",
+       "exif-locationdestcode": "Код на прикажаното место",
+       "exif-objectcycle": "За кој дел од денот е наменета сликата",
+       "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": "Последна измена на метаподатоците",
+       "exif-nickname": "Неформален назив на сликата",
+       "exif-rating": "Оценка (од 5)",
+       "exif-rightscertificate": "Уверение за раководство со права",
+       "exif-copyrighted": "Авторскоправен статус:",
+       "exif-copyrightowner": "Праводржец",
+       "exif-usageterms": "Услови на употреба",
+       "exif-webstatement": "Изјава за авторското право",
+       "exif-originaldocumentid": "Единствена назнака на изворниот документ",
+       "exif-licenseurl": "URL на лиценцата",
+       "exif-morepermissionsurl": "Други лиценцни можности",
+       "exif-attributionurl": "Кога ја користите сликава, ставајте врска до",
+       "exif-preferredattributionname": "Кога ја користите сликава, наведете го сопственикот",
+       "exif-pngfilecomment": "Забелешка за PNG-сликата",
+       "exif-disclaimer": "Одрекување од одговорност",
+       "exif-contentwarning": "Предупредување за содржината",
+       "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-2": "CCITT Група 3 1 — Димензионално изменето Хафманово шифрирање по должина на низите",
+       "exif-compression-3": "CCITT Група 3 — Факс-шифрирање",
+       "exif-compression-4": "CCITT Група 4 — Факс-шифрирање",
+       "exif-compression-5": "ЛЗВ",
+       "exif-compression-6": "JPEG (стар)",
+       "exif-copyrighted-true": "Заштитена",
+       "exif-copyrighted-false": "Авторскоправниот статус не е зададен",
+       "exif-photometricinterpretation-0": "Црно-бело (црна е 0)",
+       "exif-photometricinterpretation-1": "Црно-бело (црна е 0)",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-3": "Палета",
+       "exif-photometricinterpretation-4": "Маска за проѕирност",
+       "exif-photometricinterpretation-5": "Одвоено (веројатно CMYK)",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (ICC-кодирање)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (ITU-кодирање)",
+       "exif-photometricinterpretation-32803": "Филтерски слој за бои",
+       "exif-photometricinterpretation-34892": "Линеарно сирово",
+       "exif-unknowndate": "Непознат датум",
+       "exif-orientation-1": "Нормална",
+       "exif-orientation-2": "Пресликано по хоризонтала",
+       "exif-orientation-3": "Свртено за 180°",
+       "exif-orientation-4": "Пресликано по вертикала",
+       "exif-orientation-5": "Свртено за 90° влево и пресликано по вертикала",
+       "exif-orientation-6": "Свртено за 90° влево",
+       "exif-orientation-7": "Свртено за 90° вдесно и пресликано по вертикала",
+       "exif-orientation-8": "Свртено за 90° влево",
+       "exif-planarconfiguration-1": "формат „chunky“",
+       "exif-planarconfiguration-2": "формат „planar“",
+       "exif-xyresolution-i": "$1 точки на инч",
+       "exif-xyresolution-c": "$1 точки на сантиметар",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "Неизбаждарена",
+       "exif-componentsconfiguration-0": "не постои",
+       "exif-componentsconfiguration-1": "Y",
+       "exif-componentsconfiguration-2": "Cb",
+       "exif-componentsconfiguration-3": "Cr",
+       "exif-componentsconfiguration-4": "R",
+       "exif-componentsconfiguration-5": "G",
+       "exif-componentsconfiguration-6": "B",
+       "exif-exposureprogram-0": "Неопределено",
+       "exif-exposureprogram-1": "Рачно",
+       "exif-exposureprogram-2": "Нормален режим",
+       "exif-exposureprogram-3": "Приоритет на блендата",
+       "exif-exposureprogram-4": "Приоритет на затворачот",
+       "exif-exposureprogram-5": "Креативен режим (врз основа на потребната длабочина на острината)",
+       "exif-exposureprogram-6": "Спортски режим (на основа на што побрз затворач)",
+       "exif-exposureprogram-7": "Портретен режим (за фотографии одблизу со заматена позадина)",
+       "exif-exposureprogram-8": "Пејзажен режим (за фотографии на пејзажи со остра позадина)",
+       "exif-subjectdistance-value": "$1 метри",
+       "exif-meteringmode-0": "Непознат",
+       "exif-meteringmode-1": "Просечно",
+       "exif-meteringmode-2": "Просек со тежиште на средина",
+       "exif-meteringmode-3": "Во точка",
+       "exif-meteringmode-4": "Во повеќе точки",
+       "exif-meteringmode-5": "Матричен",
+       "exif-meteringmode-6": "Делумен",
+       "exif-meteringmode-255": "Друго",
+       "exif-lightsource-0": "Непознат",
+       "exif-lightsource-1": "Дневна светлина",
+       "exif-lightsource-2": "Флуоресцентно",
+       "exif-lightsource-3": "Волфрамско",
+       "exif-lightsource-4": "Блиц",
+       "exif-lightsource-9": "ведро време",
+       "exif-lightsource-10": "Облачно време",
+       "exif-lightsource-11": "Сенка",
+       "exif-lightsource-12": "Флуоресцентна светлина (D 5700 – 7100K)",
+       "exif-lightsource-13": "Флуоресцентна светлина (N 4600 – 5400K)",
+       "exif-lightsource-14": "Флуоресцентна светлина (W 3900 – 4500K)",
+       "exif-lightsource-15": "Бела флуоресцентност (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Стандардна светлина од тип A",
+       "exif-lightsource-18": "Стандардна светлина од тип B",
+       "exif-lightsource-19": "Стандардна светлина од тип C",
+       "exif-lightsource-24": "Студиска лампа по ISO",
+       "exif-lightsource-255": "Друг светлосен извор",
+       "exif-flash-fired-0": "Блицот не засветил",
+       "exif-flash-fired-1": "Блицот засветил",
+       "exif-flash-return-0": "без употреба на функција на стробоскоп",
+       "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-sensingmethod-7": "Тробоен линеарен сензор",
+       "exif-sensingmethod-8": "Бојно-последователен линеарен сензор",
+       "exif-filesource-3": "Дигитален фотоапарат",
+       "exif-scenetype-1": "Непосредно фотографирана слика",
+       "exif-customrendered-0": "Нормален процес",
+       "exif-customrendered-1": "Нестандарден процес",
+       "exif-exposuremode-0": "Автоматско изложување",
+       "exif-exposuremode-1": "Рачно изложување",
+       "exif-exposuremode-2": "Автоматски со зададен распон",
+       "exif-whitebalance-0": "Автоматска рамнотежа на бело",
+       "exif-whitebalance-1": "Рачна рамнотежа на бело",
+       "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-saturation-0": "Нормална",
+       "exif-saturation-1": "Ниска заситеност",
+       "exif-saturation-2": "Висока заситеност",
+       "exif-sharpness-0": "Нормална",
+       "exif-sharpness-1": "Меко",
+       "exif-sharpness-2": "Тврдо",
+       "exif-subjectdistancerange-0": "Непознат",
+       "exif-subjectdistancerange-1": "Крупен кадар (макро)",
+       "exif-subjectdistancerange-2": "Близок кадар",
+       "exif-subjectdistancerange-3": "Далечен кадар",
+       "exif-gpslatitude-n": "северна ширина",
+       "exif-gpslatitude-s": "јужна ширина",
+       "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-gpsdestdistance-m": "Милји",
+       "exif-gpsdestdistance-n": "Наутички милји",
+       "exif-gpsdop-excellent": "Одлична ($1)",
+       "exif-gpsdop-good": "Добра ($1)",
+       "exif-gpsdop-moderate": "Умерена ($1)",
+       "exif-gpsdop-fair": "Задоволителна ($1)",
+       "exif-gpsdop-poor": "Слаба ($1)",
+       "exif-objectcycle-a": "Само наутро",
+       "exif-objectcycle-p": "Само навечер",
+       "exif-objectcycle-b": "И наутро и навечер",
+       "exif-gpsdirection-t": "Вистински правец",
+       "exif-gpsdirection-m": "Магнетен правец",
+       "exif-ycbcrpositioning-1": "Средишно",
+       "exif-ycbcrpositioning-2": "Напоредно",
+       "exif-dc-contributor": "Учесници",
+       "exif-dc-coverage": "Просторен или временски опфат на снимката",
+       "exif-dc-date": "Датум(и)",
+       "exif-dc-publisher": "Издавач",
+       "exif-dc-relation": "Поврзани снимки",
+       "exif-dc-rights": "Права",
+       "exif-dc-source": "Изворна снимка",
+       "exif-dc-type": "Тип на снимка",
+       "exif-rating-rejected": "Одбиена",
+       "exif-isospeedratings-overflow": "Над 65535",
+       "exif-iimcategory-ace": "Уметност, култура и забава",
+       "exif-iimcategory-clj": "Криминал и право",
+       "exif-iimcategory-dis": "Катастрофи и несреќи",
+       "exif-iimcategory-fin": "Економија и деловно работење",
+       "exif-iimcategory-edu": "Образование",
+       "exif-iimcategory-evn": "Животна околина",
+       "exif-iimcategory-hth": "Здравство",
+       "exif-iimcategory-hum": "Лични доживувања",
+       "exif-iimcategory-lab": "Труд",
+       "exif-iimcategory-lif": "Животен стил и разонода",
+       "exif-iimcategory-pol": "Политика",
+       "exif-iimcategory-rel": "Религија и верувања",
+       "exif-iimcategory-sci": "Наука и технологија",
+       "exif-iimcategory-soi": "Социјална проблематика",
+       "exif-iimcategory-spo": "Спорт",
+       "exif-iimcategory-war": "Војни, судири и немири",
+       "exif-iimcategory-wea": "Време",
+       "exif-urgency-normal": "Нормална ($1)",
+       "exif-urgency-low": "Мала ($1)",
+       "exif-urgency-high": "Голема ($1)",
+       "exif-urgency-other": "Кориснички-зададен приоритет ($1)"
+}
diff --git a/languages/i18n/exif/ml.json b/languages/i18n/exif/ml.json
new file mode 100644 (file)
index 0000000..4e35fab
--- /dev/null
@@ -0,0 +1,345 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Jacob.jose",
+                       "Naveen Sankar",
+                       "Praveenp",
+                       "ShajiA",
+                       "Shijualex",
+                       "Vssun"
+               ]
+       },
+       "exif-imagewidth": "വീതി",
+       "exif-imagelength": "ഉയരം",
+       "exif-bitspersample": "ഓരോ ഘടകത്തിലുമുള്ള ബിറ്റുകൾ",
+       "exif-compression": "കംപ്രഷൻ രീതി",
+       "exif-photometricinterpretation": "പിക്സൽ നിർമ്മിതി",
+       "exif-orientation": "വിന്യാസം",
+       "exif-samplesperpixel": "ഘടകങ്ങളുടെ എണ്ണം",
+       "exif-planarconfiguration": "ഡേറ്റാ ക്രമീകരണം",
+       "exif-ycbcrpositioning": "Y, C എന്നിവയുടെ സ്ഥാനനിർണ്ണയം",
+       "exif-xresolution": "തിരശ്ചീന റെസലൂഷൻ",
+       "exif-yresolution": "ലംബ റെസലൂഷൻ",
+       "exif-stripoffsets": "ചിത്രത്തിന്റെ വിവര സ്ഥാനം",
+       "exif-rowsperstrip": "ഓരോ സ്‌ട്രിപ്പിലുമുള്ള വരികളുടെ എണ്ണം",
+       "exif-stripbytecounts": "ഓരോ ചുരുക്കപ്പെട്ട ഖണ്ഡത്തിലുമുള്ള ബൈറ്റുകൾ",
+       "exif-jpeginterchangeformatlength": "JPEG ഡാറ്റയുടെ ബൈറ്റുകൾ",
+       "exif-whitepoint": "വൈറ്റ് പോയിന്റ് ക്രോമാറ്റിസിറ്റി",
+       "exif-referenceblackwhite": "കറുപ്പും വെളുപ്പും അവലംബിത മൂല്യങ്ങളുടെ ജോഡി",
+       "exif-datetime": "പ്രമാണത്തിന് മാറ്റം വരുത്തിയ തീയതിയും സമയവും",
+       "exif-imagedescription": "ചിത്രത്തിന്റെ തലക്കെട്ട്",
+       "exif-make": "ഛായാഗ്രാഹി നിർമ്മാതാവ്",
+       "exif-model": "ഛായാഗ്രാഹി മോഡൽ",
+       "exif-software": "ഉപയോഗിച്ച സോഫ്റ്റ്‌വെയർ",
+       "exif-artist": "ഛായാഗ്രാഹകൻ",
+       "exif-copyright": "പകർപ്പവകാശ ഉടമ",
+       "exif-exifversion": "എക്സിഫ് (Exif) പതിപ്പ്",
+       "exif-flashpixversion": "പിന്തുണയുള്ള ഫ്ലാഷ്‌‌പിക്സ് പതിപ്പ്",
+       "exif-colorspace": "കളർ സ്പേസ്",
+       "exif-componentsconfiguration": "ഓരോ ഘടകത്തിന്റേയും അർത്ഥം",
+       "exif-compressedbitsperpixel": "ചിത്രം ചുരുക്കുവാനുപയോഗിച്ചിരിക്കുന്ന മാർഗ്ഗം",
+       "exif-pixelxdimension": "ചിത്രത്തിന്റെ വീതി",
+       "exif-pixelydimension": "ചിത്രത്തിന്റെ ഉയരം",
+       "exif-usercomment": "ഉപയോക്താവിന്റെ കുറിപ്പുകൾ",
+       "exif-relatedsoundfile": "ഇതുമായി ബന്ധമുള്ള ഓഡിയോ പ്രമാണം",
+       "exif-datetimeoriginal": "ഡാറ്റ സൃഷ്ടിക്കപ്പെട്ട തീയതിയും സമയവും",
+       "exif-datetimedigitized": "ഡിജിറ്റൈസ് ചെയ്ത തീയതിയും സമയവും",
+       "exif-subsectime": "തീയതി-സമയം ഉപസെക്കന്റുകൾ",
+       "exif-subsectimeoriginal": "തീയതി-സമയം-യഥാർത്ഥ ഉപസെക്കന്റുകൾ",
+       "exif-subsectimedigitized": "തീയതി-സമയം-ഡിജിറ്റൽവത്കരിച്ച ഉപസെക്കന്റുകൾ",
+       "exif-exposuretime": "തുറന്നിരിക്കപ്പെട്ട സമയം",
+       "exif-exposuretime-format": "$1 സെക്കന്റ് ($2)",
+       "exif-fnumber": "എഫ് സംഖ്യ",
+       "exif-exposureprogram": "എക്സ്പോഷർ പ്രോഗ്രാം",
+       "exif-spectralsensitivity": "വർണ്ണരാജി സംവേദനത്വം",
+       "exif-isospeedratings": "ഐ.എസ്.ഒ. വേഗതയുടെ മൂല്യമതിപ്പ്",
+       "exif-shutterspeedvalue": "അപെക്സ് ഷട്ടർ സ്പീഡ്",
+       "exif-aperturevalue": "അപെക്സ് അപ്പെർച്ചർ",
+       "exif-brightnessvalue": "അപെക്സ് ബ്രൈറ്റ്നെസ്സ്",
+       "exif-exposurebiasvalue": "എക്സ്‌പോഷർ ബയസ്",
+       "exif-maxaperturevalue": "പരമാവധി ലാൻഡ് അപാർച്ചർ",
+       "exif-subjectdistance": "വസ്തുവിന്റെ അകലം",
+       "exif-meteringmode": "മീറ്ററിൽ അളവെടുക്കുന്ന വിധം",
+       "exif-lightsource": "പ്രകാശ സ്രോതസ്സ്",
+       "exif-flash": "ഫ്ലാഷ്",
+       "exif-focallength": "ലെൻസിന്റെ ഫോക്കൽ ദൂരം",
+       "exif-subjectarea": "വസ്തുവിന്റെ വിസ്തൃതി",
+       "exif-flashenergy": "ഫ്ലാഷ് എനർജി",
+       "exif-focalplanexresolution": "ഫോക്കൽ തലം X നൽകുന്ന വ്യതിരിക്തത",
+       "exif-focalplaneyresolution": "ഫോക്കൽ തലം Y നൽകുന്ന വ്യതിരിക്തത",
+       "exif-focalplaneresolutionunit": "ഫോക്കൽ തലം വ്യതിരിക്തതയുടെ ഏകകം",
+       "exif-subjectlocation": "വസ്തുവിന്റെ സ്ഥാനം",
+       "exif-exposureindex": "എക്സ്പോഷർ സൂചിക",
+       "exif-sensingmethod": "സം‌വേദന രീതി",
+       "exif-filesource": "പ്രമാണത്തിന്റെ സ്രോതസ്സ്",
+       "exif-scenetype": "ദൃശ്യ തരം",
+       "exif-customrendered": "ഇച്ഛാനുസരണമുള്ള ചിത്ര പ്രക്രിയ",
+       "exif-exposuremode": "എക്സ്പോഷർ മോഡ്",
+       "exif-whitebalance": "വൈറ്റ് ബാലൻസ്",
+       "exif-digitalzoomratio": "ഡിജിറ്റൽ സൂം അനുപാതം",
+       "exif-focallengthin35mmfilm": "35 മില്ലീമീറ്റർ ഫിലിമിലെ ഫോക്കസ് ദൂരം",
+       "exif-scenecapturetype": "ദൃശ്യ ഗ്രഹണ തരം",
+       "exif-gaincontrol": "ദൃശ്യ നിയന്ത്രണം",
+       "exif-contrast": "വ്യതിരിക്തത",
+       "exif-saturation": "സാന്ദ്രീകരണം",
+       "exif-sharpness": "ഷാർപ്‌നെസ്",
+       "exif-devicesettingdescription": "ഉപകരണ സജ്ജീകരണങ്ങളുടെ വിവരണം",
+       "exif-subjectdistancerange": "വസ്തുവിന്റെ അകലത്തിന്റെ പരിധി",
+       "exif-imageuniqueid": "ചിത്രത്തിന്റെ തനതായ ഐ.ഡി.",
+       "exif-gpsversionid": "ജി.പി.എസ്. റ്റാഗ് പതിപ്പ്",
+       "exif-gpslatituderef": "ഉത്തര അല്ലെങ്കിൽ ദക്ഷിണ അക്ഷാംശം",
+       "exif-gpslatitude": "അക്ഷാംശം",
+       "exif-gpslongituderef": "പൂർവ്വരേഖാംശം അല്ലെങ്കിൽ പശ്ചിമരേഖാംശം",
+       "exif-gpslongitude": "രേഖാംശം",
+       "exif-gpsaltituderef": "ഉന്നതിയുടെ അവലംബം",
+       "exif-gpsaltitude": "ഉന്നതി",
+       "exif-gpstimestamp": "ജി.പി.എസ്. സമയം (ആറ്റോമിക് ഘടികാരം)",
+       "exif-gpssatellites": "അളക്കാൻ ഉപയോഗിച്ച കൃത്രിമോപഗ്രഹങ്ങൾ",
+       "exif-gpsstatus": "സ്വീകരണിയുടെ സ്ഥിതി",
+       "exif-gpsmeasuremode": "അളവെടുക്കൽ രീതി",
+       "exif-gpsdop": "അളവുകളുടെ കൃത്യത",
+       "exif-gpsspeedref": "വേഗതയുടെ ഏകകം",
+       "exif-gpsspeed": "ജി.പി.എസ്. പരിഗ്രാഹിയുടെ ഗതിവേഗം",
+       "exif-gpstrackref": "ചലനത്തിന്റെ ദിശയ്ക്കുള്ള അവലംബം",
+       "exif-gpstrack": "ചലനത്തിന്റെ ദിശ",
+       "exif-gpsimgdirectionref": "ചിത്രത്തിന്റെ ദിശയ്ക്കുള്ള അവലംബം",
+       "exif-gpsimgdirection": "ചിത്രത്തിന്റെ ദിശ",
+       "exif-gpsmapdatum": "ജിയോഡെറ്റിക് സർവേ വിവരങ്ങൾ ഉപയോഗിച്ചിരിക്കുന്നു",
+       "exif-gpsdestlatituderef": "ലക്ഷ്യം വച്ചതിന്റെ അക്ഷാംശത്തിനുള്ള അവലംബം",
+       "exif-gpsdestlatitude": "ലക്ഷ്യം വച്ചതിന്റെ അക്ഷാംശം",
+       "exif-gpsdestlongituderef": "ലക്ഷ്യം വച്ചതിന്റെ രേഖാംശത്തിനുള്ള അവലംബം",
+       "exif-gpsdestlongitude": "ലക്ഷ്യം വച്ചതിന്റെ രേഖാംശം",
+       "exif-gpsdestbearingref": "ലക്ഷ്യം ഏറ്റെടുക്കലിനുള്ള അവലംബം",
+       "exif-gpsdestbearing": "ലക്ഷ്യം ഏറ്റെടുക്കൽ",
+       "exif-gpsdestdistanceref": "ലക്ഷ്യം വച്ചതിലേയ്ക്കുള്ള ദൂരത്തിനുള്ള അവലംബം",
+       "exif-gpsdestdistance": "ലക്ഷ്യം വച്ചതിലേയ്ക്കുള്ള ദൂരം",
+       "exif-gpsprocessingmethod": "ജി.പി.എസ്. പ്രക്രിയയുടെ പേര്",
+       "exif-gpsareainformation": "ജി.പി.എസ്. പ്രദേശത്തിന്റെ പേര്‌",
+       "exif-gpsdatestamp": "ജി.പി.എസ്. തീയതി",
+       "exif-gpsdifferential": "ജി.പി.എസ്. വ്യത്യാസം ശരിയാക്കൽ",
+       "exif-jpegfilecomment": "ജെപെഗ് പ്രമാണക്കുറിപ്പ്",
+       "exif-keywords": "അടയാളവാക്കുകൾ",
+       "exif-worldregioncreated": "ലോകത്തിൽ ചിത്രമെടുത്ത ഭാഗം",
+       "exif-countrycreated": "ചിത്രമെടുത്ത രാജ്യം",
+       "exif-countrycodecreated": "ചിത്രമെടുത്ത രാജ്യത്തിന്റെ കോഡ്",
+       "exif-provinceorstatecreated": "ചിത്രമെടുത്ത ഭരണപ്രദേശം അഥവാ സംസ്ഥാനം",
+       "exif-citycreated": "ചിത്രമെടുത്ത പട്ടണം",
+       "exif-sublocationcreated": "പട്ടണത്തിൽ ചിത്രമെടുത്ത ഭൂഭാഗം",
+       "exif-worldregiondest": "ലോകഭൂഭാഗം പ്രദർശിപ്പിച്ചിരിക്കുന്നു",
+       "exif-countrydest": "രാജ്യം പ്രദർശിപ്പിച്ചിരിക്കുന്നു",
+       "exif-countrycodedest": "പ്രദർശിപ്പിക്കപ്പെട്ടിരിക്കുന്ന രാജ്യത്തിന്റെ കോഡ്",
+       "exif-provinceorstatedest": "ഭരണപ്രദേശം അഥവാ സംസ്ഥാനം പ്രദർശിപ്പിച്ചിരിക്കുന്നു",
+       "exif-citydest": "പട്ടണം പ്രദർശിപ്പിച്ചിരിക്കുന്നു",
+       "exif-sublocationdest": "പട്ടണത്തിന്റെ ഭാഗം പ്രദർശിപ്പിച്ചിരിക്കുന്നു",
+       "exif-objectname": "ചെറിയ തലക്കെട്ട്",
+       "exif-specialinstructions": "പ്രത്യേക നിർദ്ദേശങ്ങൾ",
+       "exif-headline": "തലക്കെട്ട്",
+       "exif-credit": "കടപ്പാട്/നൽകിയയാൾ",
+       "exif-source": "സ്രോതസ്സ്",
+       "exif-editstatus": "ചിത്രത്തിന്റെ എഡിറ്റോറിയൽ സ്ഥിതി",
+       "exif-urgency": "അത്യാവശ്യകത",
+       "exif-fixtureidentifier": "ദൃഢസ്ഥിതനാമം",
+       "exif-locationdest": "ചിത്രീകരിക്കപ്പെട്ട പ്രദേശം",
+       "exif-locationdestcode": "ചിത്രീകരിക്കപ്പെട്ട പ്രദേശത്തിന്റെ കോഡ്",
+       "exif-objectcycle": "മീഡിയ ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്ന സമയം",
+       "exif-contact": "ബന്ധപ്പെടാനുള്ള വിവരങ്ങൾ",
+       "exif-writer": "എഴുതിയത്",
+       "exif-languagecode": "ഭാഷ",
+       "exif-iimversion": "ഐ.ഐ.എം. പതിപ്പ്",
+       "exif-iimcategory": "വർഗ്ഗം",
+       "exif-iimsupplementalcategory": "പൂരകവർഗ്ഗങ്ങൾ",
+       "exif-datetimeexpires": "ഇതിനു ശേഷമുപയോഗിക്കരുത്",
+       "exif-datetimereleased": "പ്രസിദ്ധീകരിച്ചത്",
+       "exif-originaltransmissionref": "യഥാർത്ഥ പ്രസരണ പ്രദേശത്തിന്റെ കോഡ്",
+       "exif-identifier": "തിരിച്ചറിയലടയാളം",
+       "exif-lens": "ഉപയോഗിച്ച കാചം",
+       "exif-serialnumber": "ഛായാഗ്രാഹിയുടെ സീരിയൽ നമ്പർ",
+       "exif-cameraownername": "ഛായാഗ്രാഹിയുടെ ഉടമ",
+       "exif-label": "തലക്കുറി",
+       "exif-datetimemetadata": "മെറ്റാഡേറ്റ അവസാനം പുതുക്കിയ തീയതി",
+       "exif-nickname": "ചിത്രത്തിന്റെ അനൗദ്യോഗിക നാമം",
+       "exif-rating": "നിലവാരമിടൽ (5-ൽ)",
+       "exif-rightscertificate": "അവകാശകൈകാര്യ യോഗ്യതാപത്രം",
+       "exif-copyrighted": "പകർപ്പവകാശ സ്ഥിതി",
+       "exif-copyrightowner": "പകർപ്പവകാശ ഉടമ",
+       "exif-usageterms": "ഉപയോഗനിബന്ധനകൾ",
+       "exif-webstatement": "ഓൺലൈൻ പകർപ്പവകാശക്കുറിപ്പ്",
+       "exif-originaldocumentid": "യഥാർത്ഥ രേഖയുടെ അനന്യമായ ഐ.ഡി.",
+       "exif-licenseurl": "പകർപ്പവകാശ അനുമതിയുടെ യൂ.ആർ.എൽ.",
+       "exif-morepermissionsurl": "മറ്റ് അനുമതിനൽകൽ വിവരങ്ങൾ",
+       "exif-attributionurl": "ഈ കൃതി പുനരുപയോഗിക്കുമ്പോൾ, ദയവായി ഇവിടേയ്ക്ക് കണ്ണി ചേർക്കുക",
+       "exif-preferredattributionname": "ഈ കൃതി പുനരുപയോഗിക്കുമ്പോൾ ദയവായി കടപ്പാട് നൽകുക",
+       "exif-pngfilecomment": "പി.എൻ.ജി. പ്രമാണക്കുറിപ്പ്",
+       "exif-disclaimer": "നിരാകരണം",
+       "exif-contentwarning": "ഉള്ളടക്ക മുന്നറിയിപ്പ്",
+       "exif-giffilecomment": "ജിഫ് പ്രമാണക്കുറിപ്പ്",
+       "exif-intellectualgenre": "ഇനത്തിന്റെ തരം",
+       "exif-subjectnewscode": "വിഷയകോഡ്",
+       "exif-scenecode": "ഐ.പി.റ്റി.സി. രംഗ കോഡ്",
+       "exif-event": "ചിത്രീകരിക്കപ്പെട്ട സംഭവം",
+       "exif-organisationinimage": "ചിത്രീകരിക്കപ്പെട്ട സംഘടന",
+       "exif-personinimage": "ചിത്രീകരിക്കപ്പെട്ട വ്യക്തി",
+       "exif-originalimageheight": "വെട്ടിയെടുക്കുന്നതിനു മുമ്പ് ചിത്രത്തിന്റെ ഉയരം",
+       "exif-originalimagewidth": "വെട്ടിയെടുക്കുന്നതിനു മുമ്പ് ചിത്രത്തിന്റെ വീതി",
+       "exif-compression-1": "ചുരുക്കാത്തത്",
+       "exif-compression-5": "എൽ.സെഡ്.ഡബ്ല്യു.",
+       "exif-compression-6": "ജെപിഇജി (പഴയത്)",
+       "exif-compression-7": "ജെപിഇജി",
+       "exif-copyrighted-true": "പകർപ്പവകാശസംരക്ഷിതം",
+       "exif-copyrighted-false": "പകർപ്പവകാശസ്ഥിതി സജ്ജീകരിച്ചിട്ടില്ല",
+       "exif-unknowndate": "തീയതി അജ്ഞാതം",
+       "exif-orientation-1": "സാധാരണം",
+       "exif-orientation-2": "തിരശ്ചീനമാക്കി",
+       "exif-orientation-3": "180° തിരിച്ചു",
+       "exif-orientation-4": "ലംബമാക്കി",
+       "exif-orientation-5": "90° അപ്രദക്ഷിണദിശയിൽ തിരിക്കുകയും കുത്തനെയാക്കുകയും ചെയ്തു",
+       "exif-orientation-6": "90° അപ്രദക്ഷിണദിശയിൽ തിരിച്ചു",
+       "exif-orientation-7": "90° പ്രദക്ഷിണദിശയിൽ തിരിക്കുകയും കുത്തനെയാക്കുകയും ചെയ്തു",
+       "exif-orientation-8": "90° പ്രദക്ഷിണദിശയിൽ തിരിച്ചു",
+       "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-exposureprogram-5": "ക്രിയേറ്റീവ് പ്രോഗ്രാം (മണ്ഡലത്തിന്റെ ആഴം കാണിക്കാൻ അനുയോജ്യം)",
+       "exif-exposureprogram-6": "ആക്ഷൻ പ്രോഗ്രാം (വേഗത്തിലുള്ള ഷട്ടർ വേഗത്തിന് അനുയോജ്യം)",
+       "exif-exposureprogram-7": "പോർട്ടറൈറ്റ് മോഡ് (പശ്ചാത്തലം ഫോക്കസിനു വെളിയിലുള്ള സമീപ ഫോട്ടോകൾക്ക്)",
+       "exif-exposureprogram-8": "ലാൻഡ് സ്കേപ്പ് മോഡ് (പശ്ചാത്തലവും ഫോക്കസിലുള്ള വിശാല ഫോട്ടോകൾക്ക്)",
+       "exif-subjectdistance-value": "$1 മീറ്റർ",
+       "exif-meteringmode-0": "അജ്ഞാതം",
+       "exif-meteringmode-1": "ശരാശരി",
+       "exif-meteringmode-2": "സെന്റർവെയ്റ്റഡ്ആവറേജ്",
+       "exif-meteringmode-3": "സ്പോട്ട്",
+       "exif-meteringmode-4": "മൾട്ടിസ്പോട്ട്",
+       "exif-meteringmode-5": "ശ്രേണി",
+       "exif-meteringmode-6": "ഭാഗികം",
+       "exif-meteringmode-255": "മറ്റുള്ളവ",
+       "exif-lightsource-0": "അജ്ഞാതം",
+       "exif-lightsource-1": "പകൽപ്രകാശം",
+       "exif-lightsource-2": "ഫ്ലൂറോസെന്റ്",
+       "exif-lightsource-3": "ടങ്ങ്സ്റ്റൺ (ധവള പ്രകാശം)",
+       "exif-lightsource-4": "ഫ്ലാഷ്",
+       "exif-lightsource-9": "തെളിഞ്ഞ കാലാവസ്ഥ",
+       "exif-lightsource-10": "മൂടിക്കെട്ടിയ കാലാവസ്ഥ",
+       "exif-lightsource-11": "തണൽ",
+       "exif-lightsource-12": "പകൽവെളിച്ച ഫ്ലൂറോസെന്റ് (D 5700 – 7100K)",
+       "exif-lightsource-13": "പകൽ വെളുപ്പ് ഫ്ലൂറോസെന്റ് (N 4600 – 5400K)",
+       "exif-lightsource-14": "ശീത വെളുപ്പ് ഫ്ലൂറോസെന്റ് (W 3900 – 4500K)",
+       "exif-lightsource-15": "വെളുപ്പ് ഫ്ലൂറോസെന്റ് (WW 3200 – 3700K)",
+       "exif-lightsource-17": "മാതൃകാ വെളിച്ചം A",
+       "exif-lightsource-18": "മാതൃകാ വെളിച്ചം B",
+       "exif-lightsource-19": "മാതൃകാ വെളിച്ചം C",
+       "exif-lightsource-24": "ഐ.എസ്.ഒ. സ്റ്റുഡിയോ റ്റങ്സ്റ്റൺ",
+       "exif-lightsource-255": "മറ്റു പ്രകാശ സ്രോതസ്സ്",
+       "exif-flash-fired-0": "ഫ്ലാഷ് ഉപയോഗിച്ചില്ല",
+       "exif-flash-fired-1": "ഫ്ലാഷ് ഉപയോഗിച്ചു",
+       "exif-flash-return-0": "സ്ടോബ് പ്രകാശം തിരിച്ചെത്തുന്നത് കണ്ടെത്താനുള്ള സൗകര്യം ലഭ്യമല്ല",
+       "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-sensingmethod-7": "ട്രൈലീനിയർ സംവേദിനി",
+       "exif-sensingmethod-8": "വർണ്ണാനുവർത്തിത രേഖീയ സംവേദിനി",
+       "exif-filesource-3": "ഡിജിറ്റൽ നിശ്ചല ഛായാഗ്രാഹി",
+       "exif-scenetype-1": "നേരിട്ടു ഛായാഗ്രഹണം ചെയ്ത ചിത്രം",
+       "exif-customrendered-0": "സാധാരണ പ്രക്രിയ",
+       "exif-customrendered-1": "സാമ്പ്രദായിക പ്രക്രിയ",
+       "exif-exposuremode-0": "യാന്തിക എക്സ്പോഷർ",
+       "exif-exposuremode-1": "മാനുവൽ എക്സ്പോഷർ",
+       "exif-exposuremode-2": "ഓട്ടോ ബ്രായ്ക്കറ്റ്",
+       "exif-whitebalance-0": "യാന്ത്രിക വൈറ്റ് ബാലൻസ്",
+       "exif-whitebalance-1": "മാനുവൽ വൈറ്റ് ബാലൻസ്",
+       "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-saturation-0": "സാധാരണം",
+       "exif-saturation-1": "ലോ സാച്ചുറേഷൻ",
+       "exif-saturation-2": "ഹൈ സാച്ചുറേഷൻ",
+       "exif-sharpness-0": "സാധാരണം",
+       "exif-sharpness-1": "സോഫ്റ്റ്",
+       "exif-sharpness-2": "ഹാർഡ്",
+       "exif-subjectdistancerange-0": "അജ്ഞാതം",
+       "exif-subjectdistancerange-1": "മാക്രോ",
+       "exif-subjectdistancerange-2": "സമീപദൃശ്യം",
+       "exif-subjectdistancerange-3": "വിദൂരദൃശ്യം",
+       "exif-gpslatitude-n": "ഉത്തര അക്ഷാംശം",
+       "exif-gpslatitude-s": "ദക്ഷിണ അക്ഷാംശം",
+       "exif-gpslongitude-e": "കിഴക്കേ രേഖാംശം",
+       "exif-gpslongitude-w": "പടിഞ്ഞാറെ രേഖാംശം",
+       "exif-gpsaltitude-above-sealevel": "സമുദ്രനിരപ്പിന് {{PLURAL:$1|ഒരു മീറ്റർ|$1 മീറ്റർ}} ഉപരി",
+       "exif-gpsaltitude-below-sealevel": "സമുദ്രനിരപ്പിന് {{PLURAL:$1|ഒരു മീറ്റർ|$1 മീറ്റർ}} താഴെ",
+       "exif-gpsstatus-a": "കണക്കെടുപ്പ് പുരോഗമിക്കുന്നു",
+       "exif-gpsstatus-v": "അളവുകളുടെ പരസ്പരപ്രയോഗക്ഷമത",
+       "exif-gpsmeasuremode-2": "ദ്വിമാന അളവ്",
+       "exif-gpsmeasuremode-3": "ത്രിമാന അളവ്",
+       "exif-gpsspeed-k": "കിലോമീറ്റർ/മണിക്കൂർ",
+       "exif-gpsspeed-m": "മൈലുകൾ/മണിക്കൂർ",
+       "exif-gpsspeed-n": "നോട്ടുകൾ (Knots)",
+       "exif-gpsdestdistance-k": "കിലോമീറ്റർ",
+       "exif-gpsdestdistance-m": "മൈൽ",
+       "exif-gpsdestdistance-n": "നോട്ടിക്കൽ മൈൽ",
+       "exif-gpsdop-excellent": "ഒന്നാന്തരം ($1)",
+       "exif-gpsdop-good": "കൊള്ളാം ($1)",
+       "exif-gpsdop-moderate": "ശരാശരി ($1)",
+       "exif-gpsdop-fair": "തരക്കേടില്ല ($1)",
+       "exif-gpsdop-poor": "മോശം ($1)",
+       "exif-objectcycle-a": "രാവിലെ മാത്രം",
+       "exif-objectcycle-p": "ഉച്ചകഴിഞ്ഞു മാത്രം",
+       "exif-objectcycle-b": "രാവിലെയും വൈകുന്നേരവും",
+       "exif-gpsdirection-t": "ശരിക്കുള്ള ദിശ",
+       "exif-gpsdirection-m": "കാന്തിക ദിശ",
+       "exif-ycbcrpositioning-1": "മദ്ധ്യത്തിലാക്കിയത്",
+       "exif-dc-contributor": "സംഭാവകർ",
+       "exif-dc-coverage": "മീഡിയയുടെ സ്ഥല അല്ലെങ്കിൽ കാലസംബന്ധിയായ ഉപയോഗസാദ്ധ്യത",
+       "exif-dc-date": "തീയതി(കൾ)",
+       "exif-dc-publisher": "പ്രസാധക(ൻ)",
+       "exif-dc-relation": "ബന്ധപ്പെട്ട മീഡിയ",
+       "exif-dc-rights": "അവകാശങ്ങൾ",
+       "exif-dc-source": "മീഡിയ സ്രോതസ്സ്",
+       "exif-dc-type": "മീഡിയ തരം",
+       "exif-rating-rejected": "നിരസിച്ചു",
+       "exif-isospeedratings-overflow": "65535-നേക്കാൾ കൂടുതൽ",
+       "exif-iimcategory-ace": "കല, സാംസ്കാരികം, വിനോദം",
+       "exif-iimcategory-clj": "കുറ്റവും നിയമവും",
+       "exif-iimcategory-dis": "ദുരന്തങ്ങളും അപകടങ്ങളും",
+       "exif-iimcategory-fin": "സമ്പദ്‌വ്യവസ്ഥയും വ്യാപാരവും",
+       "exif-iimcategory-edu": "വിദ്യാഭ്യാസം",
+       "exif-iimcategory-evn": "പരിസ്ഥിതി",
+       "exif-iimcategory-hth": "ആരോഗ്യം",
+       "exif-iimcategory-hum": "മാനുഷിക താത്പര്യം",
+       "exif-iimcategory-lab": "തൊഴിൽ",
+       "exif-iimcategory-lif": "ജീവിതരീതിയും വിശ്രമവേളയും",
+       "exif-iimcategory-pol": "രാഷ്ട്രീയം",
+       "exif-iimcategory-rel": "മതവും വിശ്വാസവും",
+       "exif-iimcategory-sci": "ശാസ്ത്രവും സാങ്കേതികവിദ്യയും",
+       "exif-iimcategory-soi": "സാമൂഹിക പ്രശ്നങ്ങൾ",
+       "exif-iimcategory-spo": "കായികം",
+       "exif-iimcategory-war": "യുദ്ധം, പോരാട്ടം, അസ്ഥിരത",
+       "exif-iimcategory-wea": "കാലാവസ്ഥ",
+       "exif-urgency-normal": "സാധാരണം ($1)",
+       "exif-urgency-low": "താഴ്‌ന്നത് ($1)",
+       "exif-urgency-high": "ഉന്നതം ($1)",
+       "exif-urgency-other": "ഉപയോക്തൃ-നിർവചിത മുൻഗണന ($1)"
+}
diff --git a/languages/i18n/exif/mn.json b/languages/i18n/exif/mn.json
new file mode 100644 (file)
index 0000000..6aef33c
--- /dev/null
@@ -0,0 +1,280 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Chinneeb",
+                       "MongolWiki",
+                       "Wisdom"
+               ]
+       },
+       "exif-imagewidth": "Өргөн",
+       "exif-imagelength": "Өндөр",
+       "exif-bitspersample": "Бүрэлдэхүүн хэсэг бүр дэх бит",
+       "exif-compression": "Файл шахалтын арга",
+       "exif-photometricinterpretation": "Пикселийн бүрэлдэхүүн",
+       "exif-orientation": "Зүг чиг",
+       "exif-samplesperpixel": "Бүрэлдэхүүн хэсгийн тоо",
+       "exif-planarconfiguration": "Мэдээллийн зохион байгуулалт",
+       "exif-ycbcrsubsampling": "Y-н харьцааг C руу хэсэг жишиж байна",
+       "exif-ycbcrpositioning": "Y and C-н байршил",
+       "exif-xresolution": "Зургийн хөндлөн чанар",
+       "exif-yresolution": "Зургийн босоо чанар",
+       "exif-stripoffsets": "Зургийн мэдээллийн байршил",
+       "exif-rowsperstrip": "Зурвас тус бүр дэх мөрийн тоо",
+       "exif-stripbytecounts": "Шахагдсан зурвас тус бүр дэх байт",
+       "exif-jpeginterchangeformat": "JPEG SOI руу шилжүүлэх",
+       "exif-jpeginterchangeformatlength": "JPEG өгөгдлийн байт",
+       "exif-whitepoint": "Цагаан цэгийн хромат байдал",
+       "exif-ycbcrcoefficients": "Өнгөний орон зайн хувиргалтын матрицийн коэффициентүүд",
+       "exif-referenceblackwhite": "Хар цагаан лавлагааны хоёр хэмжээс",
+       "exif-datetime": "Файлыг өөрчлилсөн огноо ба цаг",
+       "exif-imagedescription": "Зурагны нэр",
+       "exif-make": "Зургийн аппарат үйлдвэрлэгч",
+       "exif-model": "Зургийн аппаратны загвар",
+       "exif-software": "Хэрэглэсэн программ(ууд)",
+       "exif-artist": "Зохиогч",
+       "exif-copyright": "Зохиогчын эрх эзэмшигч",
+       "exif-exifversion": "Exif хувилбар",
+       "exif-flashpixversion": "Хэрэглэж болох Flashpix хувилбар",
+       "exif-colorspace": "Өнгөний завсар",
+       "exif-componentsconfiguration": "Бүх бүрэлдэхүүн хэсгүүдийн утга",
+       "exif-compressedbitsperpixel": "Зургийн файлыг шахах арга",
+       "exif-pixelxdimension": "Зургийн өргөн",
+       "exif-pixelydimension": "Зургийн өндөр",
+       "exif-usercomment": "Хэрэглэгчдийн тэмдэглэл",
+       "exif-relatedsoundfile": "Холбоотой дуун файл",
+       "exif-datetimeoriginal": "Мэдээллийг үүсгэсэн огноо ба цаг",
+       "exif-datetimedigitized": "Дижитал болгосон огноо ба цаг",
+       "exif-subsectime": "ОгнооЦаг дэдсекунд",
+       "exif-subsectimeoriginal": "ОгнооЦагАнхны дэдсекунд",
+       "exif-subsectimedigitized": "ОгнооЦагДижитал дэдсекунд",
+       "exif-exposuretime": "Гэрэл өгөх хугацаа",
+       "exif-exposuretime-format": "$1 секунд ($2)",
+       "exif-fnumber": "Харьцангуй диафрагм",
+       "exif-exposureprogram": "Гэрэл өгөх хугацааны программ",
+       "exif-spectralsensitivity": "Спектралийн мэдрэмтгий байдал",
+       "exif-isospeedratings": "ISO хурдны үнэлгээ",
+       "exif-shutterspeedvalue": "Хөшигний APEX хурд \\",
+       "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": "Цагаан өнгийн тэнцвэр",
+       "exif-digitalzoomratio": "Дижитал томруулалтын харьцаа",
+       "exif-focallengthin35mmfilm": "35 мм-н хальс дахь фокусын урт",
+       "exif-scenecapturetype": "Үзэмжийн зураг авалтын төрөл",
+       "exif-gaincontrol": "Үзэмжийн тохируулга",
+       "exif-contrast": "Өнгөний эрс тэс",
+       "exif-saturation": "Өнгөний ханалт",
+       "exif-sharpness": "Хурц байдал",
+       "exif-devicesettingdescription": "Төхөөрөмжийн тохиргооны тайлбар",
+       "exif-subjectdistancerange": "Субъект байрлах зайн хэмжээ",
+       "exif-imageuniqueid": "Онцгой зургийн ID",
+       "exif-gpsversionid": "GPS шошгоны хувилбар",
+       "exif-gpslatituderef": "Хойд эсвэл өмнөд өргөрөг",
+       "exif-gpslatitude": "Өргөрөг",
+       "exif-gpslongituderef": "Зүүн эсвэл баруун уртраг",
+       "exif-gpslongitude": "Уртраг",
+       "exif-gpsaltituderef": "Өндрийн лавлагаа",
+       "exif-gpsaltitude": "Далайн түвшнээс дээшхи өндөр",
+       "exif-gpstimestamp": "GPS цаг (атом цаг)",
+       "exif-gpssatellites": "Хэмжээс хийхэд хэрэглэсэн хиймэл дагуулууд",
+       "exif-gpsstatus": "Хүлээн авагчийн байдал",
+       "exif-gpsmeasuremode": "Хэмжилтийн горим",
+       "exif-gpsdop": "Хэмжилтийн нарийвчлал",
+       "exif-gpsspeedref": "Хурдны нэгж",
+       "exif-gpsspeed": "GPS харилцуурын хурд",
+       "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": "GPS бүсийн нэр",
+       "exif-gpsdatestamp": "GPS огноо",
+       "exif-gpsdifferential": "GPS дифференциал засвар",
+       "exif-jpegfilecomment": "JPEG файлын тэмдэглэгээ",
+       "exif-keywords": "Түлхүүр үгс",
+       "exif-worldregioncreated": "Зураг авсан тив",
+       "exif-countrycreated": "Зураг авсан улс",
+       "exif-countrycodecreated": "Зураг авсан улсын код",
+       "exif-provinceorstatecreated": "Зураг авсан аймаг, хот",
+       "exif-citycreated": "Зураг авсан хот",
+       "exif-sublocationcreated": "Зураг авсан хотын хэсэг",
+       "exif-worldregiondest": "Харагдаж буй тив",
+       "exif-countrydest": "Харагдаж буй улс",
+       "exif-countrycodedest": "Харагдаж буй хотын код",
+       "exif-provinceorstatedest": "Харагдаж буй аймаг, хот.",
+       "exif-citydest": "Харагдаж буй хотууд",
+       "exif-sublocationdest": "Харагдаж буй хотын хэсэг",
+       "exif-objectname": "Жижиг гарчиг",
+       "exif-specialinstructions": "Тусгай заавар",
+       "exif-headline": "Толгой хэсэг",
+       "exif-source": "Эх сурвалж",
+       "exif-contact": "Холбогдох мэдээлэл",
+       "exif-writer": "Бичсэн",
+       "exif-languagecode": "Хэл",
+       "exif-iimversion": "IIM хувилбар",
+       "exif-iimcategory": "Анги",
+       "exif-datetimeexpires": "түүний дараа бүү хэрэглэ",
+       "exif-datetimereleased": "Гарсан өдөр",
+       "exif-originaltransmissionref": "",
+       "exif-identifier": "Дэлгэрүүлэгч",
+       "exif-lens": "Ашигласан линз",
+       "exif-serialnumber": "Камерны серын дугаар",
+       "exif-cameraownername": "Камерын эзэн",
+       "exif-label": "Шошго",
+       "exif-datetimemetadata": "метадатаг хамгийн сүүлд өөрчилсөн огноо",
+       "exif-nickname": "Зурганд өгсөн албан бус нэр",
+       "exif-rating": "Зэрэглэл (5 хүртэл)",
+       "exif-copyrighted": "Зохиогчийн эрхийн байдал",
+       "exif-copyrightowner": "Зохиогчийн эрх эзэмшигч",
+       "exif-usageterms": "Хэрэглээний нөхцөл, шаардлага",
+       "exif-originaldocumentid": "Ориг баримтын ID",
+       "exif-pngfilecomment": "PNG файлын тэмдэглэгээ",
+       "exif-giffilecomment": "GIF файлын тэмдэглэгээ",
+       "exif-intellectualgenre": "Зүйлийн төрөл",
+       "exif-compression-1": "Шахагдаагүй",
+       "exif-unknowndate": "Мэдэгдэхгүй огноо",
+       "exif-orientation-1": "Ердийн",
+       "exif-orientation-2": "Хөндлөнгөөр эргүүлэх",
+       "exif-orientation-3": "180° эргүүллээ",
+       "exif-orientation-4": "Босоогоор эргүүлэх",
+       "exif-orientation-5": "Цагийн зүүний эсрэгээр 90° эргүүлж босоогоор эргүүллээ",
+       "exif-orientation-6": "Цагийн зүүний дагуу 90° эргүүлсэн байдал",
+       "exif-orientation-7": "Цагийн зүүний дагуу 90° эргүүлж босоогоор эргүүллээ",
+       "exif-orientation-8": "Цагийн зүүний эсрэг 90° эргүүлсэн байдал",
+       "exif-planarconfiguration-1": "Chunky формат",
+       "exif-componentsconfiguration-0": "байхгүй байна",
+       "exif-exposureprogram-0": "Тодорхойлоогүй",
+       "exif-exposureprogram-1": "Гар аргаар",
+       "exif-exposureprogram-2": "Ердийн программ",
+       "exif-exposureprogram-7": "Хөрөг авах горим (ар хэсэг фокусаас гарсан, нүүрийг ойроос авсан)",
+       "exif-exposureprogram-8": "Байгалийн үзэмж авах горим (ар хэсэг фокуст орсон, байгалийн зураг)",
+       "exif-subjectdistance-value": "$1 метр",
+       "exif-meteringmode-0": "Үл мэдэгдэх",
+       "exif-meteringmode-1": "Дундаж",
+       "exif-meteringmode-2": "ТөвөөрЖинлэсэнДундаж",
+       "exif-meteringmode-3": "Толбо",
+       "exif-meteringmode-4": "ОлонТолбот",
+       "exif-meteringmode-5": "Хээ",
+       "exif-meteringmode-6": "Хэсгийн",
+       "exif-meteringmode-255": "Бусад",
+       "exif-lightsource-0": "Үл мэдэгдэх",
+       "exif-lightsource-1": "Нарны гэрэл",
+       "exif-lightsource-2": "Нарны гэрэл",
+       "exif-lightsource-3": "Вольфрам (улайсдаг гэрэл)",
+       "exif-lightsource-4": "Гэрэл цацагч",
+       "exif-lightsource-9": "Таатай цаг агаар",
+       "exif-lightsource-10": "Үүлэрхэг цаг агаар",
+       "exif-lightsource-11": "Сүүдэр",
+       "exif-lightsource-12": "Өдрийн гэрлийн флуоресцент (D 5700 – 7100K)",
+       "exif-lightsource-13": "Өдрийн цагаан флуоресцент (N 4600 – 5400K)",
+       "exif-lightsource-14": "Сэрүүн цагаан флуоресцент (W 3900 – 4500K)",
+       "exif-lightsource-15": "Цагаан флуоресцент (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Ердийн гэрэл A",
+       "exif-lightsource-18": "Ердийн гэрэл B",
+       "exif-lightsource-19": "Ердийн гэрэл C",
+       "exif-lightsource-24": "ISO студийн ламп",
+       "exif-lightsource-255": "Гэрлийн өөр үүсгүүр",
+       "exif-flash-fired-0": "Гэрэл цацагч ажиллаагүй",
+       "exif-flash-fired-1": "Гэрэл цацагч ажилласан",
+       "exif-flash-redeye-1": "улаан өнгөтэй нүдийг засах горим",
+       "exif-focalplaneresolutionunit-2": "инч",
+       "exif-sensingmethod-1": "Тодорхойлогдоогүй",
+       "exif-scenetype-1": "Шууд авсан зураг",
+       "exif-customrendered-0": "Ердийн процесс",
+       "exif-customrendered-1": "Дурын сонгосон процесс",
+       "exif-exposuremode-0": "Гэрэл өгөх хурдыг автоматаар тохируулсан",
+       "exif-exposuremode-1": "Гэрэл өгөх хурдыг гараар тохируулсан",
+       "exif-whitebalance-0": "Автомат цагаан өнгийн тэнцвэр",
+       "exif-whitebalance-1": "Гараар тохируулсан цагаан өнгийн тэнцвэр",
+       "exif-scenecapturetype-0": "Стандарт",
+       "exif-scenecapturetype-1": "Байгалийн",
+       "exif-scenecapturetype-2": "Цээж зураг",
+       "exif-scenecapturetype-3": "Шөнийн үзэгдэл",
+       "exif-gaincontrol-0": "Байхгүй",
+       "exif-contrast-0": "Ердийн",
+       "exif-contrast-1": "Зөөлөн",
+       "exif-contrast-2": "Хатуу",
+       "exif-saturation-0": "Ердийн",
+       "exif-saturation-1": "Бага ханалт",
+       "exif-saturation-2": "Өндөр ханалт",
+       "exif-sharpness-0": "Ердийн",
+       "exif-sharpness-1": "Зөөлөн",
+       "exif-sharpness-2": "Хатуу",
+       "exif-subjectdistancerange-0": "Үл мэдэгдэх",
+       "exif-subjectdistancerange-1": "Макро",
+       "exif-subjectdistancerange-2": "Ойртуулсан үзэмж",
+       "exif-subjectdistancerange-3": "Холын үзэмж",
+       "exif-gpslatitude-n": "Хойд өргөрөг",
+       "exif-gpslatitude-s": "Өмнөд өргөрөг",
+       "exif-gpslongitude-e": "Зүүн уртраг",
+       "exif-gpslongitude-w": "Баруун уртраг",
+       "exif-gpsstatus-a": "Хэмжилтийг гүйцэтгэж байна",
+       "exif-gpsstatus-v": "Хэмжилтүүд хоорондоо ажиллах байдал",
+       "exif-gpsmeasuremode-2": "2D хэмжилт",
+       "exif-gpsmeasuremode-3": "3D хэмжилт",
+       "exif-gpsspeed-k": "Километр/цаг",
+       "exif-gpsspeed-m": "Миль/цаг",
+       "exif-gpsspeed-n": "Зангилаа",
+       "exif-gpsdestdistance-k": "Километр",
+       "exif-gpsdestdistance-m": "Милл",
+       "exif-gpsdestdistance-n": "бээр",
+       "exif-gpsdop-excellent": "Маш сайн ($1)",
+       "exif-gpsdop-good": "Сайн ($1)",
+       "exif-gpsdop-moderate": "Дундаж ($1)",
+       "exif-gpsdop-poor": "Муу ($1)",
+       "exif-objectcycle-a": "Зөвхөн өглөө",
+       "exif-objectcycle-p": "Зөвхөн орой",
+       "exif-objectcycle-b": "Өдөр ч шөнө ч",
+       "exif-gpsdirection-t": "Бодит чиглэл",
+       "exif-gpsdirection-m": "Соронзон чиглэл",
+       "exif-ycbcrpositioning-1": "Голлосон",
+       "exif-dc-contributor": "Хувь нэмэр оруулагчид",
+       "exif-dc-date": "Огноо",
+       "exif-dc-relation": "Холбогдох мэдээллийн эх сурвалж",
+       "exif-dc-rights": "Эрхүүд",
+       "exif-dc-source": "Тулгууласан эх сурвалж",
+       "exif-dc-type": "Эх сурвалжийн төрөл",
+       "exif-rating-rejected": "Хасагдсан",
+       "exif-isospeedratings-overflow": "65535-ээс давсан",
+       "exif-iimcategory-clj": "Гэмт хэрэг болон хууль",
+       "exif-iimcategory-dis": "Гай гамшиг болон осол аваар",
+       "exif-iimcategory-fin": "Эдийн засаг болон бизнес",
+       "exif-iimcategory-edu": "Боловсрол",
+       "exif-iimcategory-evn": "Байгал орчин",
+       "exif-iimcategory-hth": "Эрүүл Мэнд",
+       "exif-iimcategory-hum": "Хүний сонирхол",
+       "exif-iimcategory-lif": "Амьдралын хэв маяг болон чөлөөт уран бүтээл",
+       "exif-iimcategory-pol": "Улс төр",
+       "exif-iimcategory-rel": "Шашин шүтлэг болон итгэл үнэмшил",
+       "exif-iimcategory-sci": "Шинжлэх ухаан ба технологи",
+       "exif-iimcategory-spo": "Спорт",
+       "exif-iimcategory-war": "Дайн, мөргөлдөөн ба үймээн самуун",
+       "exif-iimcategory-wea": "Цаг агаар"
+}
diff --git a/languages/i18n/exif/mnw.json b/languages/i18n/exif/mnw.json
new file mode 100644 (file)
index 0000000..ee85c4a
--- /dev/null
@@ -0,0 +1,82 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Aue Nai",
+                       "Htawmonzel"
+               ]
+       },
+       "exif-imagewidth": "အနာံ",
+       "exif-imagelength": "သၠုၚ်",
+       "exif-orientation": "ဒဒှ်မဖျေဟ်ဗီုပြင်မုက်",
+       "exif-xresolution": "သွဟ် ဂၠံင်လၞင်",
+       "exif-yresolution": "သွဟ် ဂၠံင်စှ်ေ",
+       "exif-datetime": "ဝှာင် ပြံင်လှာဲ စၟတ်တ္ၚဲ ကေုာံ အခိင်",
+       "exif-imagedescription": "က္ဍိုပ်လိက် ဗီုရုပ်",
+       "exif-make": "ညးမကၠောန်ပတိတ် ကမ္မရာ",
+       "exif-model": "မဝ်ဒေလ် ကမ္မရာ",
+       "exif-software": "သပ်ဝဴ မစကာလဝ်",
+       "exif-artist": "ကဝိ",
+       "exif-exifversion": "Exif ဝါရှေန်",
+       "exif-colorspace": "ဒၞာဲ အသာ်",
+       "exif-pixelxdimension": "အနာံ သၞိၚ်ရုပ်",
+       "exif-pixelydimension": "သၠုၚ် ဗီုရုပ်",
+       "exif-datetimeoriginal": "စၟတ်တ္ၚဲ ကေုာံ အခိင် မခၞံဗဒှ် ဒါတာ",
+       "exif-datetimedigitized": "စၟတ်တ္ၚဲ ကေုာံ အခိင် မပြံင်လှာဲ နကဵုဒဳဂျဳတေဝ်",
+       "exif-headline": "က္ဍိုပ်လိက်",
+       "exif-credit": "မကဵုစရာဲ/ ညးဖန်ကၠောန်",
+       "exif-source": "တမ်ရိုဟ်",
+       "exif-writer": "ညးချူ",
+       "exif-languagecode": "အရေဝ်ဘာသာ",
+       "exif-iimversion": "မူ IIM",
+       "exif-iimcategory": "ကဏ္ဍ",
+       "exif-datetimereleased": "တြးပတိတ်လဝ်",
+       "exif-label": "ကရံက်",
+       "exif-unknowndate": "စၟတ်တ္ၚဲ တီကေတ်ဟွံမာန်",
+       "exif-orientation-1": "ဓမ္မတာ",
+       "exif-orientation-3": "ဗ္ဂေတ်ကေတ် 180°",
+       "exif-orientation-6": "ဗ္ဂေတ်ကေတ် 90° CCW",
+       "exif-orientation-8": "ဗ္ဂေတ်ကေတ် 90° CW",
+       "exif-exposureprogram-1": "ဗွဲတဲ",
+       "exif-meteringmode-0": "တီကေတ်ဟွံမာန်",
+       "exif-meteringmode-3": "ပချဳဇိုၚ်တဲ",
+       "exif-meteringmode-255": "တၞဟ်",
+       "exif-lightsource-0": "တီကေတ်ဟွံမာန်",
+       "exif-focalplaneresolutionunit-2": "ၝောံတဲဂမၠိုၚ်",
+       "exif-scenecapturetype-1": "လ္ပာ်အနာံ",
+       "exif-scenecapturetype-2": "လ္ပာ်ပစူ",
+       "exif-gaincontrol-0": "ဟွံသေၚ်",
+       "exif-contrast-0": "ဓမ္မတာ",
+       "exif-contrast-1": "ဍိုန်ၜတ်",
+       "exif-contrast-2": "ကြံၚ်မ္ၚိုဟ်",
+       "exif-saturation-0": "ဓမ္မတာ",
+       "exif-sharpness-0": "ဓမ္မတာ",
+       "exif-sharpness-1": "ဍိုန်ၜတ်",
+       "exif-sharpness-2": "ကြံၚ်မ္ၚိုဟ်",
+       "exif-subjectdistancerange-0": "တီကေတ်ဟွံမာန်",
+       "exif-gpsdop-excellent": "အိုတ်အစောန်$1",
+       "exif-gpsdop-good": "ခိုဟ် ($1)",
+       "exif-gpsdop-moderate": "တဲအဒေါဝ် ($1)",
+       "exif-gpsdop-fair": "ဓရ်ယာ($1)",
+       "exif-gpsdop-poor": "အောန်($1)",
+       "exif-objectcycle-a": "နူဂယး ဟေၚ်",
+       "exif-objectcycle-p": "သဝ်တ္ၚဲ ဟေၚ်",
+       "exif-objectcycle-b": "သီု နူဂယး ကဵု သဝ်တ္ၚဲ",
+       "exif-dc-date": "ပလီု(တအ်)",
+       "exif-dc-publisher": "ညးတြးပတိတ်",
+       "exif-dc-rights": "အခေါၚ်အရာဂမၠိုၚ်",
+       "exif-iimcategory-edu": "ပရေၚ်ပညာ",
+       "exif-iimcategory-evn": "ပရေၚ်ပွဳပွိုၚ်သဘာဝ",
+       "exif-iimcategory-hth": "ပရေၚ်ထတ်ယုတ်",
+       "exif-iimcategory-hum": "ဒတုဲဖိုဟ် မၞိဟ်",
+       "exif-iimcategory-lab": "သၟာကမၠောန်",
+       "exif-iimcategory-pol": "ပရေၚ်ဍုၚ်ကွာန်",
+       "exif-iimcategory-rel": "ဘာသာ ကေုာံ ဓရ်ပတှေ်",
+       "exif-iimcategory-sci": "သိပ္ပံ ကေုာံ နဲကဲပညာ",
+       "exif-iimcategory-soi": "ပရူပရာ ပရေၚ်မၞိဟ်",
+       "exif-iimcategory-spo": "ပရေၚ်ချဳဒရာၚ်ဂမၠိုၚ်",
+       "exif-iimcategory-war": "ပၞာန်, ပဋိပက္ခ ကေုာံ ကလာ်ကမဵု",
+       "exif-iimcategory-wea": "ဥတုရာသီ",
+       "exif-urgency-normal": "သာမည ($1)",
+       "exif-urgency-low": "သဝ် ($1)",
+       "exif-urgency-high": "သၠုၚ် ($1)"
+}
diff --git a/languages/i18n/exif/mr.json b/languages/i18n/exif/mr.json
new file mode 100644 (file)
index 0000000..ca1596a
--- /dev/null
@@ -0,0 +1,359 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Htt",
+                       "Kaajawa",
+                       "Kaustubh",
+                       "Mahitgar",
+                       "Marathipremi101",
+                       "Prabodh1987",
+                       "Shantanoo",
+                       "Sudhanwa",
+                       "Tusharpawar1982",
+                       "V.narsikar",
+                       "Vpnagarkar",
+                       "Ynwala",
+                       "प्रणव कुलकर्णी"
+               ]
+       },
+       "exif-imagewidth": "रूंदी",
+       "exif-imagelength": "उंची",
+       "exif-bitspersample": "प्रती घटक बीट्स",
+       "exif-compression": "आकुंचन योजना",
+       "exif-photometricinterpretation": "चित्रांश विन्यास (पिक्सेल कॉम्पोझीशन)",
+       "exif-orientation": "अभिमुखन",
+       "exif-samplesperpixel": "घटकांची संख्या",
+       "exif-planarconfiguration": "विदा रचना",
+       "exif-ycbcrsubsampling": "Y चे C शी  उपनमुनातपासणी (सबसॅम्पलींग) गुणोत्तर",
+       "exif-ycbcrpositioning": "Y आणि C प्रतिस्थापना (पोझीशनींग)",
+       "exif-xresolution": "आडवे रिझोल्यूशन",
+       "exif-yresolution": "उभे रिझोल्यूशन",
+       "exif-stripoffsets": "चित्रविदा स्थान",
+       "exif-rowsperstrip": "प्रत्येक पट्टीतील ओळींची संख्या",
+       "exif-stripbytecounts": "प्रत्येक आकुंचित पट्टीतील बाईट्सची संख्या",
+       "exif-jpeginterchangeformat": "JPEG SOI करिता ऑफसेट",
+       "exif-jpeginterchangeformatlength": "JPEG विदे च्या बाईट्स",
+       "exif-whitepoint": "धवल बिंदू क्रोमॅटिसिटी",
+       "exif-primarychromaticities": "क्रोमॅटिसिटीज ऑफ प्राईमारिटीज",
+       "exif-ycbcrcoefficients": "कलर स्पेस ट्रान्स्फॉर्मेशन मॅट्रीक्स कोएफिशीयंट्स",
+       "exif-referenceblackwhite": "काळ्या आणि पांढऱ्या संदर्भ मूल्यांची जोडी",
+       "exif-datetime": "संचिका बदल तारीख आणि वेळ",
+       "exif-imagedescription": "चित्र शीर्षक",
+       "exif-make": "कॅमेरा उत्पादक",
+       "exif-model": "कॅमेरा नमूना",
+       "exif-software": "वापरलेली संगणन आज्ञावली",
+       "exif-artist": "लेखक",
+       "exif-copyright": "प्रताधिकार धारक",
+       "exif-exifversion": "Exif आवृत्ती",
+       "exif-flashpixversion": "पाठींबा असलेली फ्लॅशपीक्स मानक आवृत्ती",
+       "exif-colorspace": "रंगांकन (कलर स्पेस)",
+       "exif-componentsconfiguration": "प्रत्येक घटकाचा अर्थ",
+       "exif-compressedbitsperpixel": "चित्र आकुंचन स्थिती",
+       "exif-pixelxdimension": "आकृतीची सुयोग्य रूंदी",
+       "exif-pixelydimension": "आकृतीची सुयोग्य उंची",
+       "exif-usercomment": "सदस्य प्रतिक्रीया",
+       "exif-relatedsoundfile": "संबधीत ध्वनी संचिका",
+       "exif-datetimeoriginal": "विदा निर्मितीची तारीख आणि वेळ",
+       "exif-datetimedigitized": "अंकनीकरणाची तारीख आणि वेळ",
+       "exif-subsectime": "तारीख वेळ उपसेकंद",
+       "exif-subsectimeoriginal": "तारीखवेळमुळ उपसेकंद",
+       "exif-subsectimedigitized": "तारीखवेळ अंकनीकृत उपसेकंद",
+       "exif-exposuretime": "छायांकन कालावधी",
+       "exif-exposuretime-format": "$1 सेक ($2)",
+       "exif-fnumber": "F क्रमांक",
+       "exif-exposureprogram": "'''प्रभाव'''न कार्य (एक्स्पोजर प्रोग्राम)",
+       "exif-spectralsensitivity": "झोत संवेदनशीलता (स्पेक्ट्रल सेन्सिटीव्हिटी)",
+       "exif-isospeedratings": "आंतरराष्ट्रीय मानक संस्थेचे वेग मुल्यमापन",
+       "exif-shutterspeedvalue": "शटर वेग",
+       "exif-aperturevalue": "रन्ध्र",
+       "exif-brightnessvalue": "झळाळी",
+       "exif-exposurebiasvalue": "प्रभावन अभिनत (एक्सपोजर बायस)",
+       "exif-maxaperturevalue": "महत्तम जमिनी रन्ध्र(लँड ऍपर्चर)",
+       "exif-subjectdistance": "गोष्टीपासूनचे अंतर",
+       "exif-meteringmode": "मीटरींग मोड",
+       "exif-lightsource": "प्रकाश स्रोत",
+       "exif-flash": "लख'''लखाट''' (फ्लॅश)",
+       "exif-focallength": "भींगाची मध्यवर्ती लांबी (फोकल लांबी)",
+       "exif-focallength-format": "$1 मि.मी.",
+       "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": "व्हाईट बॅलन्स",
+       "exif-digitalzoomratio": "अंकीय झूम गुणोत्तर",
+       "exif-focallengthin35mmfilm": "भींगाची मध्यवर्ती लांबी (फोकल लांबी) ३५ मी.मी. फील्ममध्ये",
+       "exif-scenecapturetype": "दृश्य टिपण्याचा प्रकार",
+       "exif-gaincontrol": "दृश्य नियंत्रण",
+       "exif-contrast": "विभेद (कॉन्ट्रास्ट)",
+       "exif-saturation": "सॅचूरेशन",
+       "exif-sharpness": "प्रखरता(शार्पनेस)",
+       "exif-devicesettingdescription": "उपकरण रचना वर्णन",
+       "exif-subjectdistancerange": "गोष्टीपासूनचे पल्ला अंतर",
+       "exif-imageuniqueid": "विशिष्ट चित्र क्रमांक",
+       "exif-gpsversionid": "GPS खूण आवृत्ती",
+       "exif-gpslatituderef": "उत्तर किंवा दक्षिण अक्षांश",
+       "exif-gpslatitude": "अक्षांश",
+       "exif-gpslongituderef": "पूर्व किंवा पश्चिम रेखांश",
+       "exif-gpslongitude": "रेखांश",
+       "exif-gpsaltituderef": "उन्नतांश संदर्भ",
+       "exif-gpsaltitude": "उन्नतांश (अल्टीट्यूड)",
+       "exif-gpstimestamp": "GPS वेळ(ऍटॉमिक घड्याळ)",
+       "exif-gpssatellites": "मापनाकरिता वापरलेला उपग्रह",
+       "exif-gpsstatus": "प्राप्तकर्त्याची स्थिती",
+       "exif-gpsmeasuremode": "मापन स्थिती",
+       "exif-gpsdop": "मापन अचूकता",
+       "exif-gpsspeedref": "वेग एकक",
+       "exif-gpsspeed": "GPS प्राप्तकर्त्याचा वेग",
+       "exif-gpstrackref": "हालचालीच्या दिशेकरिता संदर्भ",
+       "exif-gpstrack": "हालचालीची दिशा",
+       "exif-gpsimgdirectionref": "चित्राच्या दिशेकरिता संदर्भ",
+       "exif-gpsimgdirection": "चित्राची दिशा",
+       "exif-gpsmapdatum": "Geodetic पाहणी विदा वापरली",
+       "exif-gpsdestlatituderef": "लक्ष्याचे अक्षांशाकरिता संदर्भ",
+       "exif-gpsdestlatitude": "अक्षांश लक्ष्य",
+       "exif-gpsdestlongituderef": "लक्ष्याचे रेखांशकरिता संदर्भ",
+       "exif-gpsdestlongitude": "रेखांशाचे लक्ष्य",
+       "exif-gpsdestbearingref": "बियरींग डेस्टीनेशनकरिता संदर्भ",
+       "exif-gpsdestbearing": "बीअरींग ऑफ डेस्टीनेशन",
+       "exif-gpsdestdistanceref": "लक्ष्यस्थळापर्यंतच्या अंतराकरिता संदर्भ",
+       "exif-gpsdestdistance": "लक्ष्यस्थळापर्यंतचे अंतर",
+       "exif-gpsprocessingmethod": "GPS प्रक्रिया पद्धतीचे नाव",
+       "exif-gpsareainformation": "GPS विभागाचे नाव",
+       "exif-gpsdatestamp": "GPSतारीख",
+       "exif-gpsdifferential": "GPS डिफरेंशीअल सुधारणा",
+       "exif-jpegfilecomment": "जेपीईजी संचिका टिप्पणी",
+       "exif-keywords": "लघुशब्द",
+       "exif-worldregioncreated": "छायाचित्र काढले तो देश",
+       "exif-countrycreated": "देश ज्याच्यात चित्र घेतले",
+       "exif-countrycodecreated": "ज्या देशात छायाचित्र घेतले त्या देशाचे कोड",
+       "exif-provinceorstatecreated": "जिथे छायाचित्र काढले तो प्रांत वा देश",
+       "exif-citycreated": "छायाचित्र ज्या शहरात घेतले (काढले) ते शहर",
+       "exif-sublocationcreated": "शहराज्या ज्या परिसरात छायाचित्र काढले तो परिसर",
+       "exif-worldregiondest": "जगाचा दर्शित केलेला भूभाग(प्रदेश)",
+       "exif-countrydest": "दर्शविलेला देश",
+       "exif-countrycodedest": "दर्शविलेल्या देशाचे चिन्ह",
+       "exif-provinceorstatedest": "दर्शविलेला प्रांत वा देश",
+       "exif-citydest": "दर्शविलेले शहर",
+       "exif-sublocationdest": "दर्शविलेले शहरातील नगर",
+       "exif-objectname": "लघुशीर्षक",
+       "exif-specialinstructions": "विशेष सूचना",
+       "exif-headline": "मथळा",
+       "exif-credit": "जमा/पुरवठादार",
+       "exif-source": "स्रोत",
+       "exif-editstatus": "प्रतिमेच्या संपादनाची स्थिती",
+       "exif-urgency": "तात्कालिकता",
+       "exif-fixtureidentifier": "संपादयकीय जोडणीदाराचे नाव",
+       "exif-locationdest": "स्थान दर्शविले आहे",
+       "exif-locationdestcode": "स्थानाच्या कूटाक्षराचा(कोड)  निर्देश केला आहे",
+       "exif-objectcycle": "मिडिया दिवसाच्या ज्या वेळेकरिता अभिप्रेत आहे.",
+       "exif-contact": "संपर्क माहिती",
+       "exif-writer": "लेखक",
+       "exif-languagecode": "भाषा",
+       "exif-iimversion": "आय् आय् एम्  संस्करण",
+       "exif-iimcategory": "वर्ग",
+       "exif-iimsupplementalcategory": "पुरवणी श्रेणी",
+       "exif-datetimeexpires": "या तारखेपश्चात वापरू नका",
+       "exif-datetimereleased": "या वेळी/दिवशी प्रसृत (प्रसारण )केले/मुक्त केले / सुरू केले",
+       "exif-originaltransmissionref": "Original transmission location code: मूळ प्रसारण केले त्या स्थानाचे कूटाक्षर(कोड)",
+       "exif-identifier": "ओळख दुवा",
+       "exif-lens": "वापरलेले भिंग",
+       "exif-serialnumber": "छायाचित्रकाचा सामयिक क्रमांक",
+       "exif-cameraownername": "छायाचित्रकाचा मालक",
+       "exif-label": "लेबल",
+       "exif-datetimemetadata": "मेटाडाटाच्या शेवटच्या बदलाची तारीख",
+       "exif-nickname": "चित्राचे / फोटोचे सामान्य नाव",
+       "exif-rating": "गुणानुक्रम (५ पैकी)",
+       "exif-rightscertificate": "अधिकार व्यवस्थापन प्रमाणपत्र",
+       "exif-copyrighted": "प्रताधिकार स्थिती",
+       "exif-copyrightowner": "प्रताधिकार धारक",
+       "exif-usageterms": "वापरण्यासाठी शर्थी",
+       "exif-webstatement": "ऑनलाईन प्रताधिकार(कॉपीराईट)  उद्घोषणा",
+       "exif-originaldocumentid": "मुळ दस्तएवजाचा  यूनिक आयडी (Unique ID)",
+       "exif-licenseurl": "प्रताधिकार परवान्याचा  (कॉपीराईट लायसन्सचा)  URL",
+       "exif-morepermissionsurl": "पर्यायी परवाना माहिती",
+       "exif-attributionurl": "ह्या कामाचा पुर्न-उपयोग करताना , कृपया पुढीलास दुवा द्या",
+       "exif-preferredattributionname": "ह्या कामाचा पुर्न-उपयोग करताना, कृपया श्रेय दुवा द्या",
+       "exif-pngfilecomment": "पीएनजी संचिका टिप्पणी",
+       "exif-disclaimer": "परवाना",
+       "exif-contentwarning": "आशय विषयी सूचना",
+       "exif-giffilecomment": "जीआयएफ संचिका टिप्पणी",
+       "exif-intellectualgenre": "विशिष्ठ वस्तूचा प्रकार",
+       "exif-subjectnewscode": "विषयाचे संकेतचिन्ह",
+       "exif-scenecode": "IPTC दृश्य संकेत",
+       "exif-event": "सादर केलेला उपक्रम",
+       "exif-organisationinimage": "सादरकर्ती संस्था",
+       "exif-personinimage": "सादरकर्ती व्यक्ती",
+       "exif-originalimageheight": "चित्राचा आकार बदलण्यापुर्वीची उंची",
+       "exif-originalimagewidth": "छाचाचित्राचा आकार बदलण्यापुर्वीची रूंदी",
+       "exif-compression-1": "अनाकुंचीत",
+       "exif-compression-2": "CCITT गट३ १-Dimensional Modified Huffman run length encoding",
+       "exif-compression-3": "CCITT Group 3 फॅक्स संकेतन",
+       "exif-compression-4": "CCITT Group 4  फॅक्स संकेतन",
+       "exif-copyrighted-true": "प्रताधिकारीत",
+       "exif-copyrighted-false": "प्रताधिकार स्थिती स्थापण्यात आलेली नाही",
+       "exif-photometricinterpretation-1": "काळे व पांढरे (काळे शून्य आहे)",
+       "exif-unknowndate": "अज्ञात तारीख",
+       "exif-orientation-1": "सामान्य",
+       "exif-orientation-2": "समांतर पालटले",
+       "exif-orientation-3": "180° फिरवले",
+       "exif-orientation-4": "उभ्या बाजूने पालटले",
+       "exif-orientation-5": "९०° CCW अंशात वळवले आणि उभे पालटले",
+       "exif-orientation-6": "90° घडाळ्याच्या काट्याच्या दिशेने फिरवले",
+       "exif-orientation-7": "90° CW वळवले आणि उभे पलटवले",
+       "exif-orientation-8": "90° घडाळ्याच्या काट्याच्या दिशेने फिरवले",
+       "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-exposureprogram-5": "क्रियेटीव्ह कार्यक्रम(विषयाच्या खोलीस बायस्ड)",
+       "exif-exposureprogram-6": "कृती कार्यक्रम(द्रूत आवर्तद्वार(शटर) वेग कडे बायस्ड)",
+       "exif-exposureprogram-7": "व्यक्तिचित्र स्थिती(क्लोजप छायाचित्रांकरिता आऊट ऑफ फोकस बॅकग्राऊंड सहीत)",
+       "exif-exposureprogram-8": "लँडस्केप स्थिती (लँडस्केप छायाचित्रांकरिता बॅकग्राऊंड इन फोकस सहीत)",
+       "exif-subjectdistance-value": "$1 मीटर",
+       "exif-meteringmode-0": "अज्ञात",
+       "exif-meteringmode-1": "सरासरी",
+       "exif-meteringmode-2": "सेंटरवेटेड सरासरी",
+       "exif-meteringmode-3": "स्पॉट",
+       "exif-meteringmode-4": "मल्टीस्पॉट",
+       "exif-meteringmode-5": "पद्धत(पॅटर्न)",
+       "exif-meteringmode-6": "अर्धवट",
+       "exif-meteringmode-255": "इतर",
+       "exif-lightsource-0": "अज्ञात",
+       "exif-lightsource-1": "सूर्यप्रकाश",
+       "exif-lightsource-2": "फ्लूरोसेंट",
+       "exif-lightsource-3": "टंगस्ट्न (प्रदीप्त प्रकाश)",
+       "exif-lightsource-4": "लख'''लखाट''' (फ्लॅश)",
+       "exif-lightsource-9": "चांगले हवामान",
+       "exif-lightsource-10": "ढगाळ हवामान",
+       "exif-lightsource-11": "छटा",
+       "exif-lightsource-12": "दिवसप्रकाशी फ्लूरोशेंट (D 5700 – 7100K)",
+       "exif-lightsource-13": "दिवस प्रकाशी फ्लूरोसेंट (N ४६०० – ५४०० K)",
+       "exif-lightsource-14": "शीतल पांढरा फ्लूरोशेंट (W 3900 – 4500K)",
+       "exif-lightsource-15": "व्हाईट फ्लूरोसेंट(WW ३२०० – ३७००K)",
+       "exif-lightsource-17": "प्रकाश दर्जा A",
+       "exif-lightsource-18": "प्रकाश दर्जा B",
+       "exif-lightsource-19": "प्रमाण प्रकाश C",
+       "exif-lightsource-24": "ISO स्टुडीयो टंगस्टन",
+       "exif-lightsource-255": "इतर प्रकाश स्रोत",
+       "exif-flash-fired-0": "फ्लॅशदिवा प्रज्ज्वलित झाला नाही",
+       "exif-flash-fired-1": "क्षणदीप(फ्लेशदिवा)प्रज्ज्वलित झाला",
+       "exif-flash-return-0": "लखलखाट (फ्लॅश) - प्रकाश परावर्तन नोंदणीची सुविधा अनुपलब्ध",
+       "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-sensingmethod-7": "ट्रायलिनीयर सेंसर",
+       "exif-sensingmethod-8": "कलर सिक्वेंशीयल लिनीयर सेंसर",
+       "exif-filesource-3": "स्थिरचित्र  अंकीय छाउ (डिजीटल स्टील कॅमेरा)",
+       "exif-scenetype-1": "थेट छायाचित्रीत चित्र",
+       "exif-customrendered-0": "नियमीत प्रक्रीया",
+       "exif-customrendered-1": "पारंपारिक प्रक्रीया",
+       "exif-exposuremode-0": "स्वयंचलित अनावरण",
+       "exif-exposuremode-1": "अस्वयंचलित छायांकन",
+       "exif-exposuremode-2": "स्वयंसिद्ध कंस",
+       "exif-whitebalance-0": "ऍटो व्हाईट बॅलेन्स",
+       "exif-whitebalance-1": "मॅन्यूअल व्हाईट बॅलेन्स",
+       "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-saturation-0": "सर्व साधारण",
+       "exif-saturation-1": "निम्न संतृप्ति",
+       "exif-saturation-2": "उच्च संतृप्ति",
+       "exif-sharpness-0": "सर्वसाधारण",
+       "exif-sharpness-1": "मृदू",
+       "exif-sharpness-2": "कठीण",
+       "exif-subjectdistancerange-0": "अज्ञात",
+       "exif-subjectdistancerange-1": "मॅक्रो",
+       "exif-subjectdistancerange-2": "जवळचे दृश्य",
+       "exif-subjectdistancerange-3": "दूरचे दृश्य",
+       "exif-gpslatitude-n": "उत्तर अक्षांश",
+       "exif-gpslatitude-s": "दक्षीण अक्षांश",
+       "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-gpsdestdistance-m": "मैल",
+       "exif-gpsdestdistance-n": "सागरी मैल",
+       "exif-gpsdop-excellent": "उत्कृष्ट ($1)",
+       "exif-gpsdop-good": "चांगले ($1)",
+       "exif-gpsdop-moderate": "मध्यम ($1)",
+       "exif-gpsdop-fair": "निष्पक्ष ($1)",
+       "exif-gpsdop-poor": "वाईट ($1)",
+       "exif-objectcycle-a": "फक्त सकाळी",
+       "exif-objectcycle-p": "फक्त संध्याकाळी",
+       "exif-objectcycle-b": "सकाळ-संध्याकाळ दोन्ही सक्षमता",
+       "exif-gpsdirection-t": "बरोबर दिशा",
+       "exif-gpsdirection-m": "चुंबकीय दिशा",
+       "exif-ycbcrpositioning-1": "मध्यकेंद्रीत (सेंटर्ड)",
+       "exif-ycbcrpositioning-2": "आरोहीत (को-सिटेड )",
+       "exif-dc-contributor": "योगदानकर्ते",
+       "exif-dc-coverage": "माध्यमाचा स्पॅतीयल किंवा टेंपोरल आवाका",
+       "exif-dc-date": "दिनांक",
+       "exif-dc-publisher": "प्रकाशक",
+       "exif-dc-relation": "संबंधित मीडिया",
+       "exif-dc-rights": "अधिकार",
+       "exif-dc-source": "स्रोत मीडिया",
+       "exif-dc-type": "मीडिया प्रकार",
+       "exif-rating-rejected": "अमान्य केले/झाले",
+       "exif-isospeedratings-overflow": "६५,५३६ हून मोठे",
+       "exif-iimcategory-ace": "कला, संस्कृती व मनोरंजन",
+       "exif-iimcategory-clj": "कायदे व गुन्हे",
+       "exif-iimcategory-dis": "अपघात आणि अनर्थ",
+       "exif-iimcategory-fin": "व्यापार व अर्थशास्त्र",
+       "exif-iimcategory-edu": "शिक्षण",
+       "exif-iimcategory-evn": "पर्यावरण",
+       "exif-iimcategory-hth": "तब्येत",
+       "exif-iimcategory-hum": "मानवी अभिरुचि",
+       "exif-iimcategory-lab": "परिश्रम",
+       "exif-iimcategory-lif": "आराम आणि जीवन पद्धती",
+       "exif-iimcategory-pol": "राजनीती",
+       "exif-iimcategory-rel": "धर्म व श्रद्धा",
+       "exif-iimcategory-sci": "विज्ञान व तंत्रज्ञान",
+       "exif-iimcategory-soi": "सामाजिक प्रश्न",
+       "exif-iimcategory-spo": "क्रीडा",
+       "exif-iimcategory-war": "युद्ध, संघर्ष आणि अशांती",
+       "exif-iimcategory-wea": "हवामान",
+       "exif-urgency-normal": "सामान्य ($1)",
+       "exif-urgency-low": "नीचतम ($1)",
+       "exif-urgency-high": "उच्चतम ($1)",
+       "exif-urgency-other": "($1) उपयोगकर्ता-निश्चित  प्राधान्य"
+}
diff --git a/languages/i18n/exif/ms.json b/languages/i18n/exif/ms.json
new file mode 100644 (file)
index 0000000..b836aa5
--- /dev/null
@@ -0,0 +1,348 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Anakmalaysia",
+                       "Aviator",
+                       "Hydra",
+                       "Zamwan"
+               ]
+       },
+       "exif-imagewidth": "Lebar",
+       "exif-imagelength": "Tinggi",
+       "exif-bitspersample": "Bit sekomponen",
+       "exif-compression": "Skema pemampatan",
+       "exif-photometricinterpretation": "Komposisi piksel",
+       "exif-orientation": "Haluan",
+       "exif-samplesperpixel": "Bilangan komponen",
+       "exif-planarconfiguration": "Penyusunan data",
+       "exif-ycbcrsubsampling": "Nisbah subpensampelan Y kepada C",
+       "exif-ycbcrpositioning": "Kedudukan Y dan C",
+       "exif-xresolution": "Leraian mengufuk",
+       "exif-yresolution": "Leraian menegak",
+       "exif-stripoffsets": "Lokasi data imej",
+       "exif-rowsperstrip": "Baris sejalur",
+       "exif-stripbytecounts": "Bait sejalur termampat",
+       "exif-jpeginterchangeformat": "Ofset ke SOI JPEG",
+       "exif-jpeginterchangeformatlength": "Jumlah bait bagi data JPEG",
+       "exif-whitepoint": "Kekromatan takat putih",
+       "exif-primarychromaticities": "Kekromatan warna primer",
+       "exif-ycbcrcoefficients": "Pekali matriks penukaran ruang warna",
+       "exif-referenceblackwhite": "Nilai rujukan pasangan hitam dan putih",
+       "exif-datetime": "Tarikh dan waktu fail diubah",
+       "exif-imagedescription": "Tajuk imej",
+       "exif-make": "Pengilang kamera",
+       "exif-model": "Model kamera",
+       "exif-software": "Perisian digunakan",
+       "exif-artist": "Artis",
+       "exif-copyright": "Pemegang hak cipta",
+       "exif-exifversion": "Versi exif",
+       "exif-flashpixversion": "Versi Flashpix yang disokong",
+       "exif-colorspace": "Ruang warna",
+       "exif-componentsconfiguration": "Maksud setiap komponen",
+       "exif-compressedbitsperpixel": "Mod pemampatan imej",
+       "exif-pixelxdimension": "Lebar imej",
+       "exif-pixelydimension": "Tinggi imej",
+       "exif-usercomment": "Komen pengguna",
+       "exif-relatedsoundfile": "Fail audio berkaitan",
+       "exif-datetimeoriginal": "Tarikh dan waktu penjanaan data",
+       "exif-datetimedigitized": "Tarikh dan waktu pendigitan",
+       "exif-subsectime": "TarikhWaktu subsaat",
+       "exif-subsectimeoriginal": "TarikhWaktuAsal subsaat",
+       "exif-subsectimedigitized": "TarikhWaktuPendigitan subsaat",
+       "exif-exposuretime": "Tempoh pendedahan",
+       "exif-exposuretime-format": "$1 saat ($2)",
+       "exif-fnumber": "Nombor F",
+       "exif-exposureprogram": "Atur cara pendedahan",
+       "exif-spectralsensitivity": "Kepekaan spektrum",
+       "exif-isospeedratings": "Penilaian kelajuan ISO",
+       "exif-shutterspeedvalue": "Kelajuan pengatup APEX",
+       "exif-aperturevalue": "Bukaan APEX",
+       "exif-brightnessvalue": "Kecerahan APEX",
+       "exif-exposurebiasvalue": "Kecenderungan pendedahan",
+       "exif-maxaperturevalue": "Bukaan tanah maksimum",
+       "exif-subjectdistance": "Jarak subjek",
+       "exif-meteringmode": "Mod permeteran",
+       "exif-lightsource": "Sumber cahaya",
+       "exif-flash": "Denyar",
+       "exif-focallength": "Panjang fokus kanta",
+       "exif-subjectarea": "Luas subjek",
+       "exif-flashenergy": "Tenaga denyar",
+       "exif-focalplanexresolution": "Leraian X satah fokus",
+       "exif-focalplaneyresolution": "Leraian Y satah fokus",
+       "exif-focalplaneresolutionunit": "Unit leraian satah fokus",
+       "exif-subjectlocation": "Lokasi subjek",
+       "exif-exposureindex": "Indeks pendedahan",
+       "exif-sensingmethod": "Kaedah penderiaan",
+       "exif-filesource": "Sumber fail",
+       "exif-scenetype": "Jenis latar",
+       "exif-customrendered": "Pemprosesan imej tempahan",
+       "exif-exposuremode": "Mod pendedahan",
+       "exif-whitebalance": "Imbangan warna putih",
+       "exif-digitalzoomratio": "Nisbah zum digital",
+       "exif-focallengthin35mmfilm": "Panjang fokus dalam filem 35 mm",
+       "exif-scenecapturetype": "Jenis penangkapan latar",
+       "exif-gaincontrol": "Kawalan latar",
+       "exif-contrast": "Kontras",
+       "exif-saturation": "Kepekatan",
+       "exif-sharpness": "Ketajaman",
+       "exif-devicesettingdescription": "Huraian tetapan peranti",
+       "exif-subjectdistancerange": "Julat jarak subjek",
+       "exif-imageuniqueid": "ID unik imej",
+       "exif-gpsversionid": "Versi teg GPS",
+       "exif-gpslatituderef": "Latitud utara atau selatan",
+       "exif-gpslatitude": "Latitud",
+       "exif-gpslongituderef": "Logitud timur atau barat",
+       "exif-gpslongitude": "Longitud",
+       "exif-gpsaltituderef": "Rujukan ketinggian",
+       "exif-gpsaltitude": "Ketinggian",
+       "exif-gpstimestamp": "Waktu GPS (jam atom)",
+       "exif-gpssatellites": "Satelit yang digunakan untuk pengukuran",
+       "exif-gpsstatus": "Status penerima",
+       "exif-gpsmeasuremode": "Mod pengukuran",
+       "exif-gpsdop": "Kepersisan pengukuran",
+       "exif-gpsspeedref": "Unit kelajuan",
+       "exif-gpsspeed": "Kelajuan penerima GPS",
+       "exif-gpstrackref": "Rujukan bagi arah pergerakan",
+       "exif-gpstrack": "Arah pergerakan",
+       "exif-gpsimgdirectionref": "Rujukan bagi arah imej",
+       "exif-gpsimgdirection": "Arah imej",
+       "exif-gpsmapdatum": "Data ukur geodesi yang digunakan",
+       "exif-gpsdestlatituderef": "Rujukan bagi latitud destinasi",
+       "exif-gpsdestlatitude": "Latitud destinasi",
+       "exif-gpsdestlongituderef": "Rujukan bagi longitud destinasi",
+       "exif-gpsdestlongitude": "Longitud destinasi",
+       "exif-gpsdestbearingref": "Rujukan bagi bearing destinasi",
+       "exif-gpsdestbearing": "Bearing destinasi",
+       "exif-gpsdestdistanceref": "Rujukan bagi jarak destinasi",
+       "exif-gpsdestdistance": "Jarak destinasi",
+       "exif-gpsprocessingmethod": "Nama kaedah pemprosesan GPS",
+       "exif-gpsareainformation": "Nama kawasan GPS",
+       "exif-gpsdatestamp": "Tarikh GPS",
+       "exif-gpsdifferential": "Pembetulan pembezaan GPS",
+       "exif-jpegfilecomment": "Komen fail JPEG",
+       "exif-keywords": "Kata kunci",
+       "exif-worldregioncreated": "Kawasan dunia di mana gambar diambil",
+       "exif-countrycreated": "Negara di mana gambar diambil",
+       "exif-countrycodecreated": "Kod negara di mana gambar diambil",
+       "exif-provinceorstatecreated": "Wilayah atau negeri di mana gambar diambil",
+       "exif-citycreated": "Bandar di mana gambar diambil",
+       "exif-sublocationcreated": "Kawasan bandar di mana gambar diambil",
+       "exif-worldregiondest": "Kawasan dunia yang ditunjukkan",
+       "exif-countrydest": "Negara yang ditunjukkan",
+       "exif-countrycodedest": "Kod negara yang ditunjukkan",
+       "exif-provinceorstatedest": "Wilayah atau negeri yang ditunjukkan",
+       "exif-citydest": "Bandar yang ditunjukkan",
+       "exif-sublocationdest": "Kawasan bandar yang ditunjukkan",
+       "exif-objectname": "Tajuk ringkas",
+       "exif-specialinstructions": "Arahan khusus",
+       "exif-headline": "Tajuk berita",
+       "exif-credit": "Kredit/Pembekal",
+       "exif-source": "Sumber",
+       "exif-editstatus": "Status editorial imej",
+       "exif-urgency": "Kemustahakan",
+       "exif-fixtureidentifier": "Nama lekapan",
+       "exif-locationdest": "Lokasi yang digambarkan",
+       "exif-locationdestcode": "Kod lokasi yang digambarkan",
+       "exif-objectcycle": "Waktu untuk siarkan media",
+       "exif-contact": "Maklumat hubungan",
+       "exif-writer": "Penulis",
+       "exif-languagecode": "Bahasa",
+       "exif-iimversion": "Versi IIM",
+       "exif-iimcategory": "Kategori",
+       "exif-iimsupplementalcategory": "Kategori tambahan",
+       "exif-datetimeexpires": "Jangan gunakan selepas",
+       "exif-datetimereleased": "Keluar pada",
+       "exif-originaltransmissionref": "Kod lokasi transmisi asal",
+       "exif-identifier": "Pengenal",
+       "exif-lens": "Kanta yang digunakan",
+       "exif-serialnumber": "Nombor bersiri kamera",
+       "exif-cameraownername": "Pemilik kamera",
+       "exif-label": "Label",
+       "exif-datetimemetadata": "Tarikh kali terakhir metadata diubah",
+       "exif-nickname": "Nama timangan imej",
+       "exif-rating": "Nilai (daripada 5)",
+       "exif-rightscertificate": "Sijil pengurusan hak",
+       "exif-copyrighted": "Status hak cipta",
+       "exif-copyrightowner": "Pemilik hak cipta",
+       "exif-usageterms": "Terma-terma penggunaan",
+       "exif-webstatement": "Kenyataan hak cipta dalam talian",
+       "exif-originaldocumentid": "ID unik dokumen asli",
+       "exif-licenseurl": "URL untuk lesen hak cipta",
+       "exif-morepermissionsurl": "Maklumat pelesenan alternatif",
+       "exif-attributionurl": "Apabila menggunakan semula hasil kerja ini, tolong pautkannya ke",
+       "exif-preferredattributionname": "Apabila menggunakan semula hasil kerja ini, tolong berikan penghargaan kepada",
+       "exif-pngfilecomment": "Komen fail PNG",
+       "exif-disclaimer": "Penafian",
+       "exif-contentwarning": "Amaran kandungan",
+       "exif-giffilecomment": "Komen fail GIF",
+       "exif-intellectualgenre": "Jenis item",
+       "exif-subjectnewscode": "Kod subjek",
+       "exif-scenecode": "Kod pemandangan IPTC",
+       "exif-event": "Peristiwa yang digambarkan",
+       "exif-organisationinimage": "Pertubuhan yang digambarkan",
+       "exif-personinimage": "Tokoh yang digambarkan",
+       "exif-originalimageheight": "Ketinggian imej sebelum dipangkas",
+       "exif-originalimagewidth": "Lebar imej sebelum dipangkas",
+       "exif-compression-1": "Tak termampat",
+       "exif-compression-2": "Pengekodan panjang jalan Huffman Terubahsuai 1-Dimensi Kumpulan 3 CCITT",
+       "exif-compression-3": "Pengekodan faks Kumpulan 3 CCITT",
+       "exif-compression-4": "Pengekodan faks Kumpulan 4 CCITT",
+       "exif-copyrighted-true": "Berhak cipta",
+       "exif-copyrighted-false": "Status hak cipta tidak ditetapkan",
+       "exif-unknowndate": "Tarikh tidak diketahui",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Dibalikkan secara mengufuk",
+       "exif-orientation-3": "Diputar 180°",
+       "exif-orientation-4": "Dibalikkan secara menegak",
+       "exif-orientation-5": "Diputarkan 90° melawan arah jam dan dibalikkan secara menegak",
+       "exif-orientation-6": "Diputarkan 90° mengikut arah jam",
+       "exif-orientation-7": "Diputarkan 90° mengikut arah jam dan dibalikkan secara menegak",
+       "exif-orientation-8": "Diputarkan 90° melawan arah jam",
+       "exif-planarconfiguration-1": "format besar",
+       "exif-planarconfiguration-2": "format satah",
+       "exif-colorspace-65535": "Tidak tertentukur",
+       "exif-componentsconfiguration-0": "tiada",
+       "exif-exposureprogram-0": "Tidak ditentukan",
+       "exif-exposureprogram-1": "Manual",
+       "exif-exposureprogram-2": "Atur cara normal",
+       "exif-exposureprogram-3": "Mengutamakan bukaan",
+       "exif-exposureprogram-4": "Mengutamakan pengatup",
+       "exif-exposureprogram-5": "Atur cara kreatif (cenderung kepada kedalaman lapangan)",
+       "exif-exposureprogram-6": "Atur cara aksi (cenderung kepada kelajuan pengatup yang tinggi)",
+       "exif-exposureprogram-7": "Mod potret (untuk foto jarak dekat dengan latar belakang kabur)",
+       "exif-exposureprogram-8": "Mod landskap (untuk foto landskap dengan latar belakang terfokus)",
+       "exif-subjectdistance-value": "$1 meter",
+       "exif-meteringmode-0": "Tidak diketahui",
+       "exif-meteringmode-1": "Purata",
+       "exif-meteringmode-2": "Purata cenderung ke pusat",
+       "exif-meteringmode-3": "Titik",
+       "exif-meteringmode-4": "Berbilang titik",
+       "exif-meteringmode-5": "Corak",
+       "exif-meteringmode-6": "Separa",
+       "exif-meteringmode-255": "Lain-lain",
+       "exif-lightsource-0": "Tidak diketahui",
+       "exif-lightsource-1": "Cahaya siang",
+       "exif-lightsource-2": "Pendarfluor",
+       "exif-lightsource-3": "Tungsten (lampu pijar)",
+       "exif-lightsource-4": "Denyar",
+       "exif-lightsource-9": "Cuaca cerah",
+       "exif-lightsource-10": "Cuaca mendung",
+       "exif-lightsource-11": "Gelap",
+       "exif-lightsource-12": "Pendarfluor cahaya siang (D 5700 – 7100K)",
+       "exif-lightsource-13": "Pendarfluor putih siang (N 4600 – 5400K)",
+       "exif-lightsource-14": "Pendarfluor putih sejuk (W 3900 – 4500K)",
+       "exif-lightsource-15": "Pendarfluor putih (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Cahaya standard A",
+       "exif-lightsource-18": "Cahaya standard B",
+       "exif-lightsource-19": "Cahaya standard C",
+       "exif-lightsource-24": "Tungsten studio ISO",
+       "exif-lightsource-255": "Sumber cahaya lain",
+       "exif-flash-fired-0": "Denyar tidak bernyala",
+       "exif-flash-fired-1": "Denyar dinyalakan",
+       "exif-flash-return-0": "tiada pengesan pulangan strob",
+       "exif-flash-return-2": "cahaya pulang strob tidak dikesan",
+       "exif-flash-return-3": "cahaya pulang strob dikesan",
+       "exif-flash-mode-1": "nyalaan denyar wajib",
+       "exif-flash-mode-2": "tindasan denyar wajib",
+       "exif-flash-mode-3": "mod automatik",
+       "exif-flash-function-1": "Tiada fungsi denyar",
+       "exif-flash-redeye-1": "mod penurunan mata merah",
+       "exif-focalplaneresolutionunit-2": "inci",
+       "exif-sensingmethod-1": "Tidak ditentukan",
+       "exif-sensingmethod-2": "Penderia kawasan warna cip tunggal",
+       "exif-sensingmethod-3": "Penderia kawasan warna dwicip",
+       "exif-sensingmethod-4": "Penderia kawasan warna tricip",
+       "exif-sensingmethod-5": "Penderia kawasan warna berjujukan",
+       "exif-sensingmethod-7": "Penderia trilinear",
+       "exif-sensingmethod-8": "Penderia linear warna berjujukan",
+       "exif-filesource-3": "Kamera pegun digital",
+       "exif-scenetype-1": "Gambar yang diambil secara terus",
+       "exif-customrendered-0": "Proses biasa",
+       "exif-customrendered-1": "Proses tempahan",
+       "exif-exposuremode-0": "Pendedahan automatik",
+       "exif-exposuremode-1": "Pendedahan manual",
+       "exif-exposuremode-2": "Braket automatik",
+       "exif-whitebalance-0": "Imbangan warna putih automatik",
+       "exif-whitebalance-1": "Imbangan warna putih manual",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Landskap",
+       "exif-scenecapturetype-2": "Potret",
+       "exif-scenecapturetype-3": "Malam",
+       "exif-gaincontrol-0": "Tiada",
+       "exif-gaincontrol-1": "Gandaan rendah atas",
+       "exif-gaincontrol-2": "Gandaan tinggi atas",
+       "exif-gaincontrol-3": "Gandaan rendah bawah",
+       "exif-gaincontrol-4": "Gandaan tinggi bawah",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Lembut",
+       "exif-contrast-2": "Keras",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Kepekatan rendah",
+       "exif-saturation-2": "Kepekatan tinggi",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Lembut",
+       "exif-sharpness-2": "Keras",
+       "exif-subjectdistancerange-0": "Tidak diketahui",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Pandangan dekat",
+       "exif-subjectdistancerange-3": "Pandangan jauh",
+       "exif-gpslatitude-n": "Latitud utara",
+       "exif-gpslatitude-s": "Latitud selatan",
+       "exif-gpslongitude-e": "Longitud timur",
+       "exif-gpslongitude-w": "Longitud barat",
+       "exif-gpsaltitude-above-sealevel": "$1 meter di atas aras laut",
+       "exif-gpsaltitude-below-sealevel": "$1 meter di bawah paras laut",
+       "exif-gpsstatus-a": "Pengukuran sedang dijalankan",
+       "exif-gpsstatus-v": "Interoperabiliti pengukuran",
+       "exif-gpsmeasuremode-2": "Pengukuran dua dimensi",
+       "exif-gpsmeasuremode-3": "Pengukuran tiga dimensi",
+       "exif-gpsspeed-k": "Kilometer sejam",
+       "exif-gpsspeed-m": "Batu sejam",
+       "exif-gpsspeed-n": "Knot",
+       "exif-gpsdestdistance-k": "Kilometer",
+       "exif-gpsdestdistance-m": "Batu",
+       "exif-gpsdestdistance-n": "Batu nautika",
+       "exif-gpsdop-excellent": "Cemerlang ($1)",
+       "exif-gpsdop-good": "Bagus ($1)",
+       "exif-gpsdop-moderate": "Sederhana ($1)",
+       "exif-gpsdop-fair": "Ala kadar ($1)",
+       "exif-gpsdop-poor": "Tidak memuaskan ($1)",
+       "exif-objectcycle-a": "Pagi sahaja",
+       "exif-objectcycle-p": "Petang sahaja",
+       "exif-objectcycle-b": "Pagi dan petang",
+       "exif-gpsdirection-t": "Arah benar",
+       "exif-gpsdirection-m": "Arah magnet",
+       "exif-ycbcrpositioning-1": "Terpusat",
+       "exif-ycbcrpositioning-2": "Sama tapak",
+       "exif-dc-contributor": "Penyumbang",
+       "exif-dc-coverage": "Skop ruangan atau masa media",
+       "exif-dc-date": "Tarikh",
+       "exif-dc-publisher": "Penerbit",
+       "exif-dc-relation": "Media berkaitan",
+       "exif-dc-rights": "Hak",
+       "exif-dc-source": "Media sumber",
+       "exif-dc-type": "Jenis media",
+       "exif-rating-rejected": "Ditolak",
+       "exif-isospeedratings-overflow": "Melebihi 65535",
+       "exif-iimcategory-ace": "Seni, kebudayaan dan hiburan",
+       "exif-iimcategory-clj": "Jenayah dan undang-undang",
+       "exif-iimcategory-dis": "Bencana dan kemalangan",
+       "exif-iimcategory-fin": "Ekonomi dan perniagaan",
+       "exif-iimcategory-edu": "Pendidikan",
+       "exif-iimcategory-evn": "Alam sekitar",
+       "exif-iimcategory-hth": "Kesihatan",
+       "exif-iimcategory-hum": "Pesona",
+       "exif-iimcategory-lab": "Pekerja",
+       "exif-iimcategory-lif": "Gaya hidup dan santai",
+       "exif-iimcategory-pol": "Politik",
+       "exif-iimcategory-rel": "Agama dan kepercayaan",
+       "exif-iimcategory-sci": "Sains dan teknologi",
+       "exif-iimcategory-soi": "Isu sosial",
+       "exif-iimcategory-spo": "Sukan",
+       "exif-iimcategory-war": "Peperangan, konflik dan pergolakan",
+       "exif-iimcategory-wea": "Cuaca",
+       "exif-urgency-normal": "Biasa ($1)",
+       "exif-urgency-low": "Rendah ($1)",
+       "exif-urgency-high": "Tinggi ($1)",
+       "exif-urgency-other": "Keutamaan tentuan pengguna ($1)"
+}
diff --git a/languages/i18n/exif/mt.json b/languages/i18n/exif/mt.json
new file mode 100644 (file)
index 0000000..849c429
--- /dev/null
@@ -0,0 +1,340 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Chrisportelli",
+                       "Giangian15",
+                       "Leli Forte"
+               ]
+       },
+       "exif-imagewidth": "Wisa'",
+       "exif-imagelength": "Għoli",
+       "exif-bitspersample": "Bits għal kull komponent",
+       "exif-compression": "Skema tal-kompressjoni",
+       "exif-photometricinterpretation": "Struttura tal-pixel",
+       "exif-orientation": "Orjentazzjoni",
+       "exif-samplesperpixel": "Numru ta' komponenti",
+       "exif-planarconfiguration": "Tqassim tad-dati",
+       "exif-ycbcrsubsampling": "Rapport tal-provi Y / C",
+       "exif-ycbcrpositioning": "Pożizzjonament tal-komponenti Y u C",
+       "exif-xresolution": "Riżoluzzjoni orizzontali",
+       "exif-yresolution": "Riżoluzzjoni vertikali",
+       "exif-stripoffsets": "Post fejn jinsab id-data tal-istampa",
+       "exif-rowsperstrip": "Numru ta' fillieri għal kull strixxa",
+       "exif-stripbytecounts": "Bytes għal kull strixxa kompressa",
+       "exif-jpeginterchangeformat": "Pożizzjoni byte SOI JPEG",
+       "exif-jpeginterchangeformatlength": "Numru ta' bytes ta' data JPEG",
+       "exif-whitepoint": "Kromatiku tal-punt abjad",
+       "exif-primarychromaticities": "Kromitiku tal-kuluri primarji",
+       "exif-ycbcrcoefficients": "Koeffiċjent matriċi tat-trasformazzjoni spazji tal-kuluri",
+       "exif-referenceblackwhite": "Par ta' valuri tar-riferiment (iswed jew abjad)",
+       "exif-datetime": "Data jew ħin ta' modifiki tal-fajl",
+       "exif-imagedescription": "Titlu tal-istampa",
+       "exif-make": "Manifattur tal-kameri",
+       "exif-model": "Mudell tal-kamera",
+       "exif-software": "Software",
+       "exif-artist": "Awtur",
+       "exif-copyright": "Informazzjoni dwar il-propjetá letterarja",
+       "exif-exifversion": "Verżjoni tal-format Exif",
+       "exif-flashpixversion": "Verżjoni sapportata ta' Flashpix",
+       "exif-colorspace": "Spazju tal-kuluri",
+       "exif-componentsconfiguration": "Tfissira dwar kull komponent",
+       "exif-compressedbitsperpixel": "Għamla tal-kompressjoni tal-istampa",
+       "exif-pixelxdimension": "Wisa' tal-istampa",
+       "exif-pixelydimension": "Għoli tal-istama",
+       "exif-usercomment": "Noti tal-utent",
+       "exif-relatedsoundfile": "Fajl relatat mal-ismiegħ",
+       "exif-datetimeoriginal": "Data u ħin tal-ħolqien tad-data",
+       "exif-datetimedigitized": "Data u ħin tad-diġitazzjoni",
+       "exif-subsectime": "Data u ħin, frazzjoni ta' sekondi",
+       "exif-subsectimeoriginal": "Data u ħin tal-ħolqien, frazzjoni ta' sekonda",
+       "exif-subsectimedigitized": "Data u ħin ta' diġitazzjoni, frazzjoni ta' sekonda",
+       "exif-exposuretime": "Ħin tal-wirja",
+       "exif-exposuretime-format": "$1 s ($2)",
+       "exif-fnumber": "Numru fokali",
+       "exif-exposureprogram": "Programm tal-wirja",
+       "exif-spectralsensitivity": "Sensitività spettrali",
+       "exif-isospeedratings": "Sensibilità ISO",
+       "exif-shutterspeedvalue": "Veloċità tax-xater APEX",
+       "exif-aperturevalue": "Ftuħ APEX",
+       "exif-brightnessvalue": "Ċarezza APEX",
+       "exif-exposurebiasvalue": "Inklinazzjoni ta' wirja",
+       "exif-maxaperturevalue": "Ftuħ massimu",
+       "exif-subjectdistance": "Distanza mis-suġġett",
+       "exif-meteringmode": "Metodu ta' misurazzjoni",
+       "exif-lightsource": "Sorġent tad-dawl",
+       "exif-flash": "Flash",
+       "exif-focallength": "Distanza fokali objettiva",
+       "exif-subjectarea": "Spazju tas-suġġetti",
+       "exif-flashenergy": "Saħħa tal-flash",
+       "exif-focalplanexresolution": "Riżoluzzjoni X fuq il-witja fokali",
+       "exif-focalplaneyresolution": "Riżoluzzjoni Y fuq il-witja fokali",
+       "exif-focalplaneresolutionunit": "Unita ta' qisien tar-riżoluzzjoni fuq il-witja fokali",
+       "exif-subjectlocation": "Post tas-suġġett",
+       "exif-exposureindex": "Indiċi tal-wirja",
+       "exif-sensingmethod": "Metodu ta tħaffif",
+       "exif-filesource": "Oriġini tal-fajl",
+       "exif-scenetype": "Tip tax-xena",
+       "exif-customrendered": "Proċessar tal-istampi personalizzati",
+       "exif-exposuremode": "Stat ta' wirja",
+       "exif-whitebalance": "Bilanċ l-abjad",
+       "exif-digitalzoomratio": "Rapport zoom diġitali",
+       "exif-focallengthin35mmfilm": "Daqs fokali ġo film 35mm",
+       "exif-scenecapturetype": "Tip ta' akwistazzjoni",
+       "exif-gaincontrol": "Kontroll tax-xena",
+       "exif-contrast": "Kontrolla kuntrast",
+       "exif-saturation": "Kontrolla saturazzjoni",
+       "exif-sharpness": "Kontrolla xfir",
+       "exif-devicesettingdescription": "Deskrizzjoni tal-preferenzi dispositivi",
+       "exif-subjectdistancerange": "Skala tad-distanza tas-suġġett",
+       "exif-imageuniqueid": "ID uniku tal-istampa",
+       "exif-gpsversionid": "Verżjoni ta' tabella GPS",
+       "exif-gpslatituderef": "Latitudni Tramuntana/Nofs inhar",
+       "exif-gpslatitude": "Latitudni",
+       "exif-gpslongituderef": "Lonġitudni Lvant/Punent",
+       "exif-gpslongitude": "Lonġitudni",
+       "exif-gpsaltituderef": "Riferiment għall-għoli",
+       "exif-gpsaltitude": "Għoli",
+       "exif-gpstimestamp": "Ħin GPS (arloġġ atomiku)",
+       "exif-gpssatellites": "Satelliti użat għal qisien",
+       "exif-gpsstatus": "Statut ta' minn jirċievi",
+       "exif-gpsmeasuremode": "Stat ta' qisien",
+       "exif-gpsdop": "Preċiżjoni tal-qisien",
+       "exif-gpsspeedref": "Unit ta' miżuri ta' veloċita",
+       "exif-gpsspeed": "Veloċita tal-reċivitur tal-GPS",
+       "exif-gpstrackref": "Referiment tad-direzzjoni tal-moviment",
+       "exif-gpstrack": "Direzzjoni tal-moviment",
+       "exif-gpsimgdirectionref": "Referiment tad-direzzjoni tal-istampa",
+       "exif-gpsimgdirection": "Direzzjoni tal-istampa",
+       "exif-gpsmapdatum": "Informazzjoni geodetiku użat",
+       "exif-gpsdestlatituderef": "Referiment tal-latitudni tad-destinazzjoni",
+       "exif-gpsdestlatitude": "Destinazzjoni tal-latitudni",
+       "exif-gpsdestlongituderef": "Referiment għal lonġitudni tad-destinazzjoni",
+       "exif-gpsdestlongitude": "Destinazzjoni tal-lonġitudni",
+       "exif-gpsdestbearingref": "Referiment tal-bronżina tad-destinazzjoni",
+       "exif-gpsdestbearing": "Bronżina tad-destinazzjoni",
+       "exif-gpsdestdistanceref": "Referiment għal distanza tad-destinazzjoni",
+       "exif-gpsdestdistance": "Distanza tad-destinazzjoni",
+       "exif-gpsprocessingmethod": "Isem tal-metodu tal-proċessar GPS",
+       "exif-gpsareainformation": "Isem taż-żona tal-GPS",
+       "exif-gpsdatestamp": "Data tal-GPS",
+       "exif-gpsdifferential": "Tiswija differenzjali tal-GPS",
+       "exif-jpegfilecomment": "Kumment tal-fajl JPEG",
+       "exif-keywords": "Kliem importanti",
+       "exif-worldregioncreated": "Reġjun tad-dinja fejn l-istampa ttieħdet",
+       "exif-countrycreated": "Pajjiż fejn l-istampa ttieħdet",
+       "exif-countrycodecreated": "Kodiċi għall-pajjiż fejn l-istampa ttieħdet",
+       "exif-provinceorstatecreated": "Provinċja jew stat fejn l-istampa ttieħdet",
+       "exif-citycreated": "Belt fejn l-istampa ttieħdet",
+       "exif-sublocationcreated": "Parti tal-belt fejn l-istampa ttieħdet",
+       "exif-worldregiondest": "Reġjun tad-dinja murij",
+       "exif-countrydest": "Pajjiż muri",
+       "exif-countrycodedest": "Kodiċi tal-pajjiż muri",
+       "exif-provinceorstatedest": "Provinċja jew stati muri",
+       "exif-citydest": "Belt muri",
+       "exif-sublocationdest": "Parti tal-belt muri",
+       "exif-objectname": "Titlu qasir",
+       "exif-specialinstructions": "Struzzjonijiet speċjali",
+       "exif-headline": "Titlu",
+       "exif-credit": "Fornitur",
+       "exif-source": "Sors",
+       "exif-editstatus": "Stat editorjali tal-istampa",
+       "exif-urgency": "Urġenza",
+       "exif-fixtureidentifier": "Isem tar-riferiment",
+       "exif-locationdest": "Lokalità raffigurata",
+       "exif-locationdestcode": "Kodiċi tal-lokalità raffigurata",
+       "exif-objectcycle": "Ħin tal-ġurnata li l-midja hija intiża",
+       "exif-contact": "Informazzjoni dwar il-kuntatt",
+       "exif-writer": "Kittieb",
+       "exif-languagecode": "Lingwa",
+       "exif-iimversion": "Verżjoni IIM",
+       "exif-iimcategory": "Kategorija",
+       "exif-iimsupplementalcategory": "Kategoriji supplementari",
+       "exif-datetimeexpires": "Tużahiex wara",
+       "exif-datetimereleased": "Rilaxxata nhar il-",
+       "exif-originaltransmissionref": "Kodiċi tal-post ta' trażmissjoni oriġinali",
+       "exif-identifier": "Identifikatur",
+       "exif-lens": "Lenti wżat",
+       "exif-serialnumber": "Numru tas-serje tal-kamera",
+       "exif-cameraownername": "Sid il-kamera",
+       "exif-label": "Tikketta",
+       "exif-datetimemetadata": "Data meta l-metadati ġew modifikati l-aħħar",
+       "exif-nickname": "Isem informali ta' stampa",
+       "exif-rating": "Valutazzjoni (minn 5)",
+       "exif-rightscertificate": "Ċertifikat ta' ġestjoni tad-drittijiet",
+       "exif-copyrighted": "Stat tal-copyright",
+       "exif-copyrightowner": "Proprjetarju tal-copyright",
+       "exif-usageterms": "Termini ta' użu",
+       "exif-webstatement": "Dikjarazzjoni tal-copyright online",
+       "exif-originaldocumentid": "ID unika tad-dokument oriġinali",
+       "exif-licenseurl": "URL għal-liċenzja tal-copyright",
+       "exif-morepermissionsurl": "Informazzjoni fuq il-liċenzji alternattivi",
+       "exif-attributionurl": "Meta terġa' tuża dan ix-xogħol, jekk jogħġbok agħmel ħolqa lejn",
+       "exif-preferredattributionname": "Meta terġa' tuża dan ix-xogħol, jekk jogħġbok attribwixxi lil",
+       "exif-pngfilecomment": "Kumment tal-fajl PNG",
+       "exif-disclaimer": "Ċaħda",
+       "exif-contentwarning": "Avviż fuq il-kontenut",
+       "exif-giffilecomment": "Kumment tal-fajl GIF",
+       "exif-intellectualgenre": "Tip ta' element",
+       "exif-subjectnewscode": "Kodiċi tas-suġġett",
+       "exif-scenecode": "Kodiċi tax-xena IPTC",
+       "exif-event": "Avveniment raffigurat",
+       "exif-organisationinimage": "Organizzazzjoni raffigurata",
+       "exif-personinimage": "Persuna raffigurata",
+       "exif-originalimageheight": "Għoli tal-istampa qabel ma ġiet maqtugħa",
+       "exif-originalimagewidth": "Wisa' tal-istampa qabel ma ġiet maqtugħa",
+       "exif-compression-1": "L-Ebda",
+       "exif-copyrighted-true": "Protetta bil-copyright",
+       "exif-copyrighted-false": "Dominju pubbliku",
+       "exif-unknowndate": "Data mhux magħrufa",
+       "exif-orientation-1": "Normali",
+       "exif-orientation-2": "Maqlub oriżżontali",
+       "exif-orientation-3": "Imdawwar 180°",
+       "exif-orientation-4": "Maqlub vertikali",
+       "exif-orientation-5": "Imdawwar 90° fis-sens kontra l-arloġġ u maqlub vertikali",
+       "exif-orientation-6": "Imdawwar 90° kontra l-arloġġ",
+       "exif-orientation-7": "Imdawwar 90° fis-sens tal-arloġġ u maqlub vertikalment",
+       "exif-orientation-8": "Imdawwar 90° fis-sens fis-sena tal-arloġġ",
+       "exif-planarconfiguration-1": "format imbaċċaċ",
+       "exif-planarconfiguration-2": "format tal-ippjanar",
+       "exif-colorspace-65535": "Mhux kalibrata",
+       "exif-componentsconfiguration-0": "nieqes",
+       "exif-exposureprogram-0": "Mhux definit",
+       "exif-exposureprogram-1": "Manwali",
+       "exif-exposureprogram-2": "Programma normali",
+       "exif-exposureprogram-3": "Priorita tal-ftuħ",
+       "exif-exposureprogram-4": "Priorita tal-għeluq",
+       "exif-exposureprogram-5": "Programm kreativ (inklinat lejn il-fond tal-linja)",
+       "exif-exposureprogram-6": "Programm ta' azzjoni (inklinat lejn veloċita aktar mgħaġġla mill-ġdid)",
+       "exif-exposureprogram-7": "Ritratt (suġġett għal viċin bl-isfond mhux fokat)",
+       "exif-exposureprogram-8": "Panorama (suġġett il-bogħod bl-isfond mhux fokat)",
+       "exif-subjectdistance-value": "$1 metri",
+       "exif-meteringmode-0": "Mhux magħruf",
+       "exif-meteringmode-1": "Medja",
+       "exif-meteringmode-2": "Medja tal-piż ċentrali",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "MultiSpot",
+       "exif-meteringmode-5": "Mudell",
+       "exif-meteringmode-6": "Parzjali",
+       "exif-meteringmode-255": "Ieħor",
+       "exif-lightsource-0": "Mhux magħruf",
+       "exif-lightsource-1": "B'inhar",
+       "exif-lightsource-2": "Lampa tal-flourit",
+       "exif-lightsource-3": "Lampa tungsten (dawl inkandestesti)",
+       "exif-lightsource-4": "Flash",
+       "exif-lightsource-9": "Temp tajjeb",
+       "exif-lightsource-10": "Temp imsaħħab",
+       "exif-lightsource-11": "Dell",
+       "exif-lightsource-12": "Daylight fluorescent (D 5700 – 7100K)",
+       "exif-lightsource-13": "Day white fluorescent (N 4600 – 5400K)",
+       "exif-lightsource-14": "Cool white fluorescent (W 3900 – 4500K)",
+       "exif-lightsource-15": "White fluorescent (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Dawl ta' standard A",
+       "exif-lightsource-18": "Dawl ta' standard B",
+       "exif-lightsource-19": "Dawl ta' standard Ċ",
+       "exif-lightsource-20": "Illuminanti D55",
+       "exif-lightsource-21": "Illuminanti D65",
+       "exif-lightsource-22": "Illuminanti D75",
+       "exif-lightsource-23": "Illuminanti D50",
+       "exif-lightsource-24": "Lampa tal-istudjo ISO għal tungsten",
+       "exif-lightsource-255": "Sorġent ieħor tad-dawl",
+       "exif-flash-fired-0": "Il-''flash'' ma ħariġx",
+       "exif-flash-fired-1": "Il-''flash'' ħareġ",
+       "exif-flash-function-1": "''Flash'' diżattivata",
+       "exif-flash-redeye-1": "modalità riduzzjoni tal-għajnejn ħomor",
+       "exif-focalplaneresolutionunit-2": "pulzier",
+       "exif-sensingmethod-1": "Mhux definit",
+       "exif-sensingmethod-2": "Sensur ta' l-area tal-kulur b'''chip'' waħda",
+       "exif-sensingmethod-3": "Sensur ta' l-area tal-kulur b'żewġ chips",
+       "exif-sensingmethod-4": "Sensur ta' l-area tal-kulur b'tliet chips",
+       "exif-sensingmethod-5": "Sensur ta' l-area tal-kulur sequenzjali",
+       "exif-sensingmethod-7": "Sensur trilinjari",
+       "exif-sensingmethod-8": "Sensur linjari tal-kulur sequenzjali",
+       "exif-scenetype-1": "Fotografija diretta",
+       "exif-customrendered-0": "Proċess normali",
+       "exif-customrendered-1": "Proċess personalizzat",
+       "exif-exposuremode-0": "Wirja awtomatika",
+       "exif-exposuremode-1": "Wirja manwali",
+       "exif-exposuremode-2": "Brakit awtomatiku",
+       "exif-whitebalance-0": "Bilanċ tal-abjad awtomatiku",
+       "exif-whitebalance-1": "Bilanċ tal-abjad manwali",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Panorama",
+       "exif-scenecapturetype-2": "Ritratt",
+       "exif-scenecapturetype-3": "Notturna",
+       "exif-gaincontrol-0": "Xejn",
+       "exif-gaincontrol-1": "Aktar qliegħ baxx",
+       "exif-gaincontrol-2": "Aktar qliegħ għoli",
+       "exif-gaincontrol-3": "Inqas qliegħ baxx",
+       "exif-gaincontrol-4": "Inqas qliegħ għoli",
+       "exif-contrast-0": "Normali",
+       "exif-contrast-1": "Kuntrast għoli",
+       "exif-contrast-2": "Kuntrast baxx",
+       "exif-saturation-0": "Normali",
+       "exif-saturation-1": "Saturazzjoni baxx",
+       "exif-saturation-2": "Saturazzjoni għolja",
+       "exif-sharpness-0": "Normali",
+       "exif-sharpness-1": "Mislut ftit",
+       "exif-sharpness-2": "Mislut aħrax",
+       "exif-subjectdistancerange-0": "Mhux magħruf",
+       "exif-subjectdistancerange-1": "Vast",
+       "exif-subjectdistancerange-2": "Suġġett viċin",
+       "exif-subjectdistancerange-3": "Suġġett il-bogħod",
+       "exif-gpslatitude-n": "Latitudni tat-tramuntana",
+       "exif-gpslatitude-s": "Latitudni tan-nofs inhar",
+       "exif-gpslongitude-e": "Loġitudni tal-lvant",
+       "exif-gpslongitude-w": "Lonġitudni tal-punent",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metru|metri}} fuq il-livell tal-baħar",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metru|metri}} taħt il-livell tal-baħar",
+       "exif-gpsstatus-a": "Qisien fil-progress",
+       "exif-gpsstatus-v": "Qisien interoperabili",
+       "exif-gpsmeasuremode-2": "Qisien bidimensjonali",
+       "exif-gpsmeasuremode-3": "Qisien tridimensjonali",
+       "exif-gpsspeed-k": "Kilometru fis-siegħa",
+       "exif-gpsspeed-m": "Mili fis-siegħa",
+       "exif-gpsspeed-n": "Nodi",
+       "exif-gpsdestdistance-k": "Kilometri",
+       "exif-gpsdestdistance-m": "Mili",
+       "exif-gpsdestdistance-n": "Mili nawtiċi",
+       "exif-gpsdop-excellent": "Eċċellenti ($1)",
+       "exif-gpsdop-good": "Tajba ($1)",
+       "exif-gpsdop-moderate": "Moderata ($1)",
+       "exif-gpsdop-fair": "Diskreta ($1)",
+       "exif-gpsdop-poor": "Fqira ($1)",
+       "exif-objectcycle-a": "Filgħodu biss",
+       "exif-objectcycle-p": "Filgħaxija biss",
+       "exif-objectcycle-b": "Kemm filgħodu kif ukoll filgħaxija",
+       "exif-gpsdirection-t": "Direzzjoni vera",
+       "exif-gpsdirection-m": "Direzzjoni tal-kalamita",
+       "exif-ycbcrpositioning-1": "Ċentrata",
+       "exif-dc-contributor": "Kontributuri",
+       "exif-dc-coverage": "Ambitu spazjali jew temporali tal-midja",
+       "exif-dc-date": "Data(i)",
+       "exif-dc-publisher": "Pubblikatur",
+       "exif-dc-relation": "Midja relatata",
+       "exif-dc-rights": "Drittijiet",
+       "exif-dc-source": "Sors tal-midja",
+       "exif-dc-type": "Tip ta' midja",
+       "exif-rating-rejected": "Rifjutata",
+       "exif-isospeedratings-overflow": "Ikbar minn 65535",
+       "exif-iimcategory-ace": "Arti, kultura u spettaklu",
+       "exif-iimcategory-clj": "Kriminalità u liġi",
+       "exif-iimcategory-dis": "Diżastri u aċċidenti",
+       "exif-iimcategory-fin": "Ekonomija u negozju",
+       "exif-iimcategory-edu": "Edukazzjoni",
+       "exif-iimcategory-evn": "Ambjent",
+       "exif-iimcategory-hth": "Saħħa",
+       "exif-iimcategory-hum": "Interess uman",
+       "exif-iimcategory-lab": "Xogħol",
+       "exif-iimcategory-lif": "Stil ta' ħajja u ħin liberu",
+       "exif-iimcategory-pol": "Politika",
+       "exif-iimcategory-rel": "Reliġjon u twemmin",
+       "exif-iimcategory-sci": "Xjenza u teknoloġija",
+       "exif-iimcategory-soi": "Kwistjonijiet soċjali",
+       "exif-iimcategory-spo": "Sports",
+       "exif-iimcategory-war": "Gwerra, kunflitti u diżordni",
+       "exif-iimcategory-wea": "Temp",
+       "exif-urgency-normal": "Normali ($1)",
+       "exif-urgency-low": "Baxx ($1)",
+       "exif-urgency-high": "Għoli ($1)",
+       "exif-urgency-other": "Prijorità definita mill-utent ($1)"
+}
diff --git a/languages/i18n/exif/my.json b/languages/i18n/exif/my.json
new file mode 100644 (file)
index 0000000..e745f3d
--- /dev/null
@@ -0,0 +1,142 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Dr Lotus Black",
+                       "Hintha",
+                       "Lionslayer",
+                       "Ninjastrikers",
+                       "Penguinlay"
+               ]
+       },
+       "exif-imagewidth": "အကျယ်",
+       "exif-imagelength": "အမြင့်",
+       "exif-bitspersample": "အစိတ်အပိုင်းတစ်ခုတွင်ပါဝင်သော အပိုင်းငယ်များ",
+       "exif-orientation": "မျက်နှာပြင် အသားကျမှု",
+       "exif-xresolution": "အလျားလိုက် ပုံရိပ်ပြတ်သားမှု",
+       "exif-yresolution": "ဒေါင်လိုက် ပုံရိပ်ပြတ်သားမှု",
+       "exif-datetime": "ဖိုင်အပြောင်းအလဲ ရက်စွဲနှင့် အချိန်",
+       "exif-imagedescription": "ပုံခေါင်းစဉ်",
+       "exif-make": "ကင်မရာ ထုတ်လုပ်သူ",
+       "exif-model": "ကင်မရာ မော်ဒယ်",
+       "exif-software": "အသုံးပြုထားသော ဆော့ဝဲ",
+       "exif-artist": "ဖန်တီးသူ",
+       "exif-copyright": "မူပိုင်ခွင့်ပိုင်ရှင်",
+       "exif-exifversion": "Exif ဗားရှင်း",
+       "exif-colorspace": "အရောင်နေရာ",
+       "exif-pixelxdimension": "ပုံအကျယ်",
+       "exif-pixelydimension": "ပုံအမြင့်",
+       "exif-usercomment": "အသုံးပြုသူ မှတ်ချက်များ",
+       "exif-relatedsoundfile": "ဆက်နွယ်သော အသံဖိုင်",
+       "exif-datetimeoriginal": "ဒေတာဖန်တီးခဲ့သော နေ့စွဲနှင့် အချိန်",
+       "exif-datetimedigitized": "ဒီဂျစ်တယ်ပြောင်းသည့် နေ့ရက်နှင့် အချိန်",
+       "exif-exposuretime-format": "$1 စက္ကန့် ($2)",
+       "exif-shutterspeedvalue": "APEX ရှပ်တာ အမြန်နှုန်း",
+       "exif-subjectdistance": "အရာဝတ္ထု အကွာအဝေး",
+       "exif-lightsource": "အလင်းရင်းမြစ်",
+       "exif-flash": "ဖလက်ရှ်",
+       "exif-subjectarea": "အရာဝတ္ထု ဧရိယာ",
+       "exif-subjectlocation": "အရာဝတ္ထု တည်နေရာ",
+       "exif-filesource": "ဖိုင်ရင်းမြစ်",
+       "exif-whitebalance": "အဖြူရောင် မျှတမှု",
+       "exif-devicesettingdescription": "စက်ပစ္စည်းအပြင်အဆင်များ ဖော်ပြချက်",
+       "exif-gpslatituderef": "မြောက် သို့မဟုတ် တောင်လတ္တီကျု",
+       "exif-gpslatitude": "လတ္တီကျု",
+       "exif-gpslongituderef": "အရှေ့ သို့မဟုတ် အနောက်လတ္တီကျု",
+       "exif-gpslongitude": "လောင်ဂျီကျု",
+       "exif-gpsaltitude": "အမြင့်",
+       "exif-gpstimestamp": "ဂျီပီအက်စ်အချိန် (အက်တော့မစ် နာရီ)",
+       "exif-gpsdop": "အတိုင်းအတာ တိကျမှု",
+       "exif-gpsspeedref": "အမြန်နှုန်း ယူနစ်",
+       "exif-gpstrack": "ရွေ့လျား လားရာ",
+       "exif-gpsimgdirection": "ရုပ်ပုံ၏ လမ်းကြောင်း",
+       "exif-gpsareainformation": "ဂျီပီအက်စ် ဧရိယာအမည်",
+       "exif-gpsdatestamp": "ဂျီပီအက်စ်ရက်စွဲ",
+       "exif-objectname": "ခေါင်းစဉ်တို",
+       "exif-source": "ရင်းမြစ်",
+       "exif-contact": "ဆက်သွယ်ရန် လိပ်စာ",
+       "exif-languagecode": "ဘာသာစကား",
+       "exif-iimcategory": "ကဏ္ဍ",
+       "exif-serialnumber": "ကင်မရာ၏ ဆီရီယယ်နံပါတ်",
+       "exif-cameraownername": "ကင်မရာပိုင်ရှင်",
+       "exif-copyrighted": "မူပိုင်ခွင့် အခြေအနေ",
+       "exif-copyrightowner": "မူပိုင်ခွင့်ပိုင်ရှင်",
+       "exif-disclaimer": "သတိပြုစရာ",
+       "exif-contentwarning": "အကြောင်းအရာ သတိပေးချက်",
+       "exif-copyrighted-true": "မူပိုင်ခွင့်ပြုထားသည်",
+       "exif-copyrighted-false": "မူပိုင်ခွင့်အခြေနေ မသတ်မှတ်ထားပါ",
+       "exif-unknowndate": "ရက်စွဲ မသိရ",
+       "exif-orientation-1": "ပုံမှန်",
+       "exif-orientation-3": "၁၈၀° လှည့်ပြီး",
+       "exif-componentsconfiguration-0": "မတည်ရှိပါ",
+       "exif-subjectdistance-value": "$1 မီတာ",
+       "exif-meteringmode-0": "မသိရှိပါ",
+       "exif-meteringmode-1": "ပျမ်းမျှ",
+       "exif-meteringmode-5": "အဆင်",
+       "exif-meteringmode-6": "တစ်စိတ်တစ်ပိုင်း",
+       "exif-meteringmode-255": "အခြား",
+       "exif-lightsource-0": "မသိရှိပါ",
+       "exif-lightsource-1": "နေ့အလင်း",
+       "exif-lightsource-2": "မီးချောင်းအလင်းရောင်",
+       "exif-lightsource-4": "ဖလက်ရှ်",
+       "exif-lightsource-9": "ကောင်းမွန်သော ရာသီဥတု",
+       "exif-lightsource-10": "တိမ်ထူသော ရာသီဥတု",
+       "exif-lightsource-11": "အရိပ်",
+       "exif-lightsource-255": "အခြား အလင်းရင်းမြစ်",
+       "exif-flash-fired-0": "ဖလက်ချ်မီး မပွင့်ခဲ့ပါ",
+       "exif-flash-fired-1": "ဖလက်ချ်မီး ပွင့်ခဲ့သည်",
+       "exif-focalplaneresolutionunit-2": "လက်မှတ်",
+       "exif-sensingmethod-1": "မသတ်မှတ်ထားသော",
+       "exif-scenecapturetype-3": "ညနေပုံ",
+       "exif-gaincontrol-0": "ဘာမှမရှိ",
+       "exif-contrast-0": "သာမန်",
+       "exif-contrast-1": "အဖျော့",
+       "exif-contrast-2": "အပြင်း",
+       "exif-saturation-0": "သာမန်",
+       "exif-sharpness-0": "ပုံမှန်",
+       "exif-subjectdistancerange-0": "မသိရှိပါ",
+       "exif-subjectdistancerange-1": "မက်ကရို",
+       "exif-subjectdistancerange-2": "အနီးကြည့်",
+       "exif-subjectdistancerange-3": "အဝေးကြည့်",
+       "exif-gpslatitude-n": "မြောက်လတ္တီကျု",
+       "exif-gpslatitude-s": "တောင်လတ္တီကျု",
+       "exif-gpslongitude-e": "အရှေ့လောင်ဂျီကျု",
+       "exif-gpslongitude-w": "အနောက်လောင်ဂျီကျု",
+       "exif-gpsaltitude-above-sealevel": "ပင်လယ်ရေမျက်နှာပြင်အမြင့် $1 {{PLURAL:$1|မီတာ|မီတာ}}",
+       "exif-gpsaltitude-below-sealevel": "ပင်လယ်ရေမျက်နှာပြင်အောက် $1 {{PLURAL:$1|မီတာ|မီတာ}}",
+       "exif-gpsmeasuremode-2": "နှစ်ဖက်မြင် အတိုင်းအတာ",
+       "exif-gpsmeasuremode-3": "သုံးဖက်မြင် အတိုင်းအတာ",
+       "exif-gpsspeed-k": "တစ်နာရီလျင် ကီလိုမီတာနှုန်း",
+       "exif-gpsspeed-m": "တစ်နာရီလျှင် ရှိသည့် မိုင်နှုန်း",
+       "exif-gpsspeed-n": "တစ်နာရီလျင် ရေမိုင်နှုန်း",
+       "exif-gpsdestdistance-k": "ကီလိုမီတာ",
+       "exif-gpsdestdistance-m": "မိုင်",
+       "exif-gpsdestdistance-n": "ရေမိုင်",
+       "exif-gpsdop-excellent": "အထူးကောင်း ($1)",
+       "exif-gpsdop-good": "ကောင်း ($1)",
+       "exif-gpsdop-moderate": "အလယ်အလတ် ($1)",
+       "exif-gpsdop-fair": "အတော်အသင့် ($1)",
+       "exif-gpsdop-poor": "ညံ့ဖျင်း ($1)",
+       "exif-objectcycle-a": "မနက်ပိုင်းသာ",
+       "exif-objectcycle-p": "ညနေပိုင်းသာ",
+       "exif-gpsdirection-m": "သံလိုက်လမ်းကြောင်း",
+       "exif-dc-contributor": "ဆောင်ရွက်ပေးထားသူများ",
+       "exif-dc-source": "ရင်းမြစ် မီဒီယာ",
+       "exif-dc-type": "မီဒီယာ အမျိုးအစား",
+       "exif-rating-rejected": "ငြင်းပယ်ခဲ့သည်",
+       "exif-iimcategory-ace": "အနုပညာ၊ ယဥ်ကျေးမှုနှင့် ဖြေဖျော်ရေး",
+       "exif-iimcategory-clj": "ရာဇဝတ်မှုနှင့် ဥပဒေ",
+       "exif-iimcategory-dis": "ဘေးအန္တရာယ်များနှင့် မတော်တဆမှုများ",
+       "exif-iimcategory-fin": "စီးပွားရေးနှင့် စီးပွားရေးလုပ်ငန်း",
+       "exif-iimcategory-edu": "ပညာရေး",
+       "exif-iimcategory-evn": "ပတ်ဝန်းကျင်",
+       "exif-iimcategory-hth": "ကျန်းမာရေး",
+       "exif-iimcategory-lab": "အလုပ်အကိုင်",
+       "exif-iimcategory-pol": "နိုင်ငံရေး",
+       "exif-iimcategory-rel": "ဘာသာရေးနှင့် ယုံကြည်မှု",
+       "exif-iimcategory-sci": "သိပ္ပံနှင့် နည်းပညာ",
+       "exif-iimcategory-spo": "အားကစား",
+       "exif-iimcategory-wea": "ရာသီဥတု",
+       "exif-urgency-normal": "ပုံမှန် ($1)",
+       "exif-urgency-low": "နိမ့် ($1)",
+       "exif-urgency-high": "မြင့် ($1)"
+}
diff --git a/languages/i18n/exif/myv.json b/languages/i18n/exif/myv.json
new file mode 100644 (file)
index 0000000..1338c95
--- /dev/null
@@ -0,0 +1,152 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Botuzhaleny-sodamo",
+                       "Rueter"
+               ]
+       },
+       "exif-imagewidth": "Келе",
+       "exif-imagelength": "Сэрь",
+       "exif-bitspersample": "Эрьва компонентс зяро битт",
+       "exif-photometricinterpretation": "Пикселэнь композициязо",
+       "exif-orientation": "Ориентация",
+       "exif-samplesperpixel": "Зяро компонентэнзэ",
+       "exif-planarconfiguration": "Максовксонь аравтнема",
+       "exif-xresolution": "Горизонтальсэ сеедезэ",
+       "exif-yresolution": "Вертикальсэ сеедезэ",
+       "exif-referenceblackwhite": "Раужот-ашот кавто корямо точкат",
+       "exif-datetime": "Файлань лиякстомтомань чи ды шка",
+       "exif-imagedescription": "Артовксонть коняксозо",
+       "exif-make": "Камеранть нолдыцязо",
+       "exif-model": "Камерань моделесь",
+       "exif-software": "Тевс нолдазь программатне",
+       "exif-artist": "Теицязо",
+       "exif-copyright": "Копия теемань видечинь кирдицясь",
+       "exif-exifversion": "Exif версиясь",
+       "exif-colorspace": "Тюс ютко",
+       "exif-pixelxdimension": "Артовксонть келезэ",
+       "exif-pixelydimension": "Артовксонть сэрезэ",
+       "exif-usercomment": "Теицянь мельть-арьсемат",
+       "exif-datetimeoriginal": "Датань шкамо чись-шкась",
+       "exif-datetimedigitized": "Цифракстомтомань чись ды шкась",
+       "exif-exposuretime": "Валдомтомань (Экспозициянь) шка",
+       "exif-fnumber": "Диафрагмань числась",
+       "exif-brightnessvalue": "APEX-нть валдоксчизэ",
+       "exif-subjectdistance": "Объектэнтень зяро тарка",
+       "exif-lightsource": "Валдонь лисьмапрязо",
+       "exif-flash": "Кивчкадема",
+       "exif-subjectarea": "Субъектонть саема тарказо",
+       "exif-filesource": "Файланть саемазо",
+       "exif-contrast": "Контрастось",
+       "exif-saturation": "Тустолмазо",
+       "exif-sharpness": "Пштиксчизэ",
+       "exif-gpslatituderef": "Йакшамо йононь эли лембе мастор йононь келезэ",
+       "exif-gpslatitude": "Келезэ",
+       "exif-gpslongituderef": "Чилисемань эли чивалгомань кувалмо",
+       "exif-gpslongitude": "Кувалмозо",
+       "exif-gpsaltituderef": "Сэрень корямо",
+       "exif-gpsaltitude": "Сэрь",
+       "exif-gpsspeedref": "Курокксчинь единица",
+       "exif-gpstrackref": "Ютамонь нерь йонксонь корямо тарка",
+       "exif-gpstrack": "Ютамонь нерь йонкс",
+       "exif-gpsdestlatituderef": "Норовамо таркань келелмань корямо тарка",
+       "exif-gpsdestlatitude": "Норовамо тарканть келелмазо",
+       "exif-gpsdestlongitude": "Норовамо тарканть кувалмозо",
+       "exif-gpsdatestamp": "GPS чи",
+       "exif-countrydest": "Невтезь масторось",
+       "exif-citydest": "Невтезь ошось",
+       "exif-objectname": "Нурькинестэ лемезэ",
+       "exif-headline": "Коняксозо",
+       "exif-source": "Лисьмапрязо",
+       "exif-writer": "Сёрмадыцязо",
+       "exif-languagecode": "Кель",
+       "exif-iimcategory": "Явовкс",
+       "exif-compression-1": "Апак сювордо",
+       "exif-unknowndate": "Апак содань чи",
+       "exif-orientation-1": "Свалшкань",
+       "exif-orientation-3": "Велявтомс 180°",
+       "exif-orientation-5": "Чаравтозь 90° чинь каршо, мейле велявтозь прянзо лангс",
+       "exif-orientation-6": "Чаравтозь 90° чи каршо",
+       "exif-orientation-8": "Чаравтозь 90° чи мельга",
+       "exif-componentsconfiguration-0": "арась",
+       "exif-exposureprogram-0": "Апак чарькодевте",
+       "exif-exposureprogram-1": "Кедьсёрмадовкс",
+       "exif-exposureprogram-2": "Эрьва чинь программа",
+       "exif-subjectdistance-value": "$1 метрат",
+       "exif-meteringmode-0": "Апак содань",
+       "exif-meteringmode-1": "Куншка видэнь",
+       "exif-meteringmode-5": "Парцун",
+       "exif-meteringmode-6": "Пельксэнь-пельксэнь",
+       "exif-meteringmode-255": "Лия",
+       "exif-lightsource-0": "А содави",
+       "exif-lightsource-1": "Чи валдо",
+       "exif-lightsource-2": "Флуоресцент",
+       "exif-lightsource-4": "Кивчкадема",
+       "exif-lightsource-9": "Маней",
+       "exif-lightsource-10": "Пелензазь",
+       "exif-lightsource-11": "Сулей",
+       "exif-lightsource-17": "Стандарт валдо A",
+       "exif-lightsource-18": "Стандарт валдо B",
+       "exif-lightsource-19": "Стандарт валдо C",
+       "exif-lightsource-255": "Валдонь лия лисьмапря",
+       "exif-flash-fired-0": "Кивчкадемкась эзь нолдаво",
+       "exif-flash-fired-1": "Кивчкадемкась нолдавсь",
+       "exif-focalplaneresolutionunit-2": "дуймат",
+       "exif-sensingmethod-1": "Апак путо",
+       "exif-customrendered-0": "Эрьва чинь процесс",
+       "exif-customrendered-1": "Башка ёнкс марто процесс",
+       "exif-exposuremode-0": "Сонсь тееви экспозициясь",
+       "exif-exposuremode-2": "Сынсь путовить брэкеттнэ",
+       "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-saturation-0": "Эрьва чынь",
+       "exif-saturation-1": "Лавшо тустолма",
+       "exif-saturation-2": "Кеме тустолма",
+       "exif-sharpness-0": "Свал шкань",
+       "exif-sharpness-1": "Чэвте",
+       "exif-sharpness-2": "Калгодо",
+       "exif-subjectdistancerange-0": "Апак содань",
+       "exif-subjectdistancerange-1": "Макро кодось",
+       "exif-subjectdistancerange-2": "Маласто неевть",
+       "exif-subjectdistancerange-3": "Васолдонь неевть",
+       "exif-gpslatitude-n": "Йакшамо йононь келезэ",
+       "exif-gpslatitude-s": "Лембе масторонь келесь",
+       "exif-gpslongitude-e": "Чилисемань кувалмо",
+       "exif-gpslongitude-w": "Чивалгомань кувалмо",
+       "exif-gpsstatus-a": "Онкстамозо моли",
+       "exif-gpsmeasuremode-2": "келес-кувалмс онкстамо",
+       "exif-gpsmeasuremode-3": "келес-кувалмс-сэрьс онкстамо",
+       "exif-gpsspeed-k": "Вайгельпеть цясозонзо",
+       "exif-gpsspeed-m": "Милат цясозонзо",
+       "exif-gpsspeed-n": "Сюлмот цясозонзо",
+       "exif-gpsdestdistance-k": "Вайгельпеть",
+       "exif-gpsdestdistance-m": "Майлатне",
+       "exif-gpsdestdistance-n": "Иневедень майлатне",
+       "exif-gpsdop-excellent": "Эень паро ($1)",
+       "exif-gpsdop-good": "Паро ($1)",
+       "exif-gpsdop-moderate": "А берянь ($1)",
+       "exif-objectcycle-a": "Ансяк валске марто",
+       "exif-objectcycle-p": "Ансяк чокшнэ",
+       "exif-gpsdirection-t": "Алкуксонь йонкс",
+       "exif-gpsdirection-m": "Магнитэнь йонкс",
+       "exif-dc-publisher": "Нолдыцязо",
+       "exif-dc-rights": "Видечидензэ",
+       "exif-dc-source": "Медианть лисьмапрязо",
+       "exif-iimcategory-hth": "Шумбрачи",
+       "exif-iimcategory-pol": "Политика",
+       "exif-iimcategory-rel": "Кемемат-озномат",
+       "exif-iimcategory-wea": "Вармат-пиземеть",
+       "exif-urgency-normal": "Куншка видень ($1)",
+       "exif-urgency-low": "Аламо ($1)",
+       "exif-urgency-high": "Ламо ($1)"
+}
diff --git a/languages/i18n/exif/nah.json b/languages/i18n/exif/nah.json
new file mode 100644 (file)
index 0000000..d03f038
--- /dev/null
@@ -0,0 +1,56 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Akapochtli",
+                       "Fluence",
+                       "Ricardo gs",
+                       "Taresi"
+               ]
+       },
+       "exif-photometricinterpretation": "Pixel tlachīhualiztli",
+       "exif-imagedescription": "Ixiptli itoca",
+       "exif-software": "Software ōmotēquitilti",
+       "exif-artist": "Chīhualōni",
+       "exif-exifversion": "Exif-cuepaliztli",
+       "exif-usercomment": "Tequitiuhqui oquihtoh",
+       "exif-exposuretime": "Cāuhcāyōtl",
+       "exif-fnumber": "F Tlapōhualli",
+       "exif-isospeedratings": "ISO iciuhquiliztli tlapōhualcāyōtl",
+       "exif-flash": "Flax",
+       "exif-flashenergy": "Flax chicāhualiztli",
+       "exif-gpslatituderef": "Mictlampa nozo huitztlampa ancayotl",
+       "exif-gpslatitude": "Ancayotl",
+       "exif-gpslongituderef": "Tlapcopa nozo cihuatlampa huehtlatzincayotl",
+       "exif-gpslongitude": "Huehtlatzīncāyōtl",
+       "exif-gpsaltitude": "Huehcapancayōtl",
+       "exif-gpstimestamp": "GPS cāhuitl (atomic tepozcāhuitl)",
+       "exif-iimcategory": "Neneuhcayotl",
+       "exif-orientation-1": "Yēctli",
+       "exif-meteringmode-255": "Occē",
+       "exif-lightsource-1": "Tōnameyōtl",
+       "exif-lightsource-2": "Nāltic",
+       "exif-lightsource-4": "Flax",
+       "exif-lightsource-10": "Mixtentoc",
+       "exif-lightsource-11": "Ecahuilloh",
+       "exif-lightsource-12": "Naltonac (D 5700 – 7100K)",
+       "exif-lightsource-13": "Iztac naltonac (N 4600 – 5400K)",
+       "exif-lightsource-14": "Cecec iztac naltonac (W 3900 – 4500K)",
+       "exif-lightsource-15": "Nāltic iztāc (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Yēctli tlāhuīlli A",
+       "exif-lightsource-18": "Yēctli tlāhuīlli B",
+       "exif-lightsource-19": "Yēctli tlāhuīlli C",
+       "exif-lightsource-255": "Occequīntīn tlāhuīlli",
+       "exif-scenecapturetype-3": "Yohualcopa",
+       "exif-gaincontrol-0": "Ahtlein",
+       "exif-contrast-0": "Yēctli",
+       "exif-saturation-0": "Yēctli",
+       "exif-sharpness-0": "Yēctli",
+       "exif-subjectdistancerange-0": "Ahmatic",
+       "exif-subjectdistancerange-1": "Huēyi",
+       "exif-subjectdistancerange-2": "Ahhuehca tlattaliztli",
+       "exif-subjectdistancerange-3": "Huehca tlattaliztli",
+       "exif-gpslatitude-n": "Ayamictlān",
+       "exif-gpslatitude-s": "Huiztlān",
+       "exif-gpslongitude-e": "Tlāpcopa huehtlatzīncāyōtl",
+       "exif-gpslongitude-w": "Cihuātlāmpa huehtlatzīncāyōtl"
+}
diff --git a/languages/i18n/exif/nap.json b/languages/i18n/exif/nap.json
new file mode 100644 (file)
index 0000000..76bd5e0
--- /dev/null
@@ -0,0 +1,349 @@
+{
+       "@metadata": {
+               "authors": [
+                       "C.R.",
+                       "E. abu Filumena",
+                       "SabineCretella"
+               ]
+       },
+       "exif-imagewidth": "Larghezza",
+       "exif-imagelength": "Autezza",
+       "exif-bitspersample": "Bit pe' componente",
+       "exif-compression": "Schema 'e compressione",
+       "exif-photometricinterpretation": "Composizione d' 'e pixel",
+       "exif-orientation": "Orientamento",
+       "exif-samplesperpixel": "Nummero 'e componente",
+       "exif-planarconfiguration": "Arricietto 'e date",
+       "exif-ycbcrsubsampling": "Rapporto 'e campiunamiento Y / C",
+       "exif-ycbcrpositioning": "Mpizzamento d' Y e C",
+       "exif-xresolution": "Resoluzione orizzontale",
+       "exif-yresolution": "Resoluzione verticale",
+       "exif-stripoffsets": "Pizzo addò sta l'immaggine",
+       "exif-rowsperstrip": "Nummero 'e righe pe' striscia",
+       "exif-stripbytecounts": "Byte pe' striscia compressa",
+       "exif-jpeginterchangeformat": "Distanza 'a SOI JPEG",
+       "exif-jpeginterchangeformatlength": "Byte 'e date JPEG",
+       "exif-whitepoint": "Cromaticetà d' 'o punto janco",
+       "exif-primarychromaticities": "Cromaticetà d' 'e culore primmarie",
+       "exif-ycbcrcoefficients": "Coefficiente d' 'a matrice 'e trasformazione d' 'o spazio 'e culore",
+       "exif-referenceblackwhite": "Paro 'e riferimento 'e valore janche e nire",
+       "exif-datetime": "Data e ora 'e cagnamiento d' 'o file",
+       "exif-imagedescription": "Titulo 'e l'immaggene",
+       "exif-make": "Frabbeca ca muntaje 'a camera",
+       "exif-model": "Mudello d' 'a camera",
+       "exif-software": "Software ausàto",
+       "exif-artist": "Autore",
+       "exif-copyright": "Titolare d' 'o Copyright",
+       "exif-exifversion": "Verzione d'Exif",
+       "exif-flashpixversion": "Verziona Flashpix suppurtata",
+       "exif-colorspace": "Spazio d' 'e culore",
+       "exif-componentsconfiguration": "Significato d'ogne componente",
+       "exif-compressedbitsperpixel": "Modo 'e compressione 'e l'immaggene",
+       "exif-pixelxdimension": "Larghezza 'e l'immaggene",
+       "exif-pixelydimension": "Autezza 'e l'immaggene",
+       "exif-usercomment": "Note 'e ll'utente",
+       "exif-relatedsoundfile": "File audio cullegato",
+       "exif-datetimeoriginal": "Data e ora d' 'a criazione d' 'e date",
+       "exif-datetimedigitized": "Data e ora 'e digitalizzazziona",
+       "exif-subsectime": "DateTime centeseme",
+       "exif-subsectimeoriginal": "DateTimeOriginal centeseme",
+       "exif-subsectimedigitized": "DateTimeDigitized centeseme",
+       "exif-exposuretime": "Tiempo d'esposizione",
+       "exif-exposuretime-format": "$1 sec ($2)",
+       "exif-fnumber": "Nummero p' 'o F",
+       "exif-exposureprogram": "Prugramma d'esposizione",
+       "exif-spectralsensitivity": "Senzitività spettrale",
+       "exif-isospeedratings": "Senzibbiletà ISO",
+       "exif-shutterspeedvalue": "Velocità d' 'o nchiuretore APEX",
+       "exif-aperturevalue": "Apertura APEX",
+       "exif-brightnessvalue": "Lumenosetà APEX",
+       "exif-exposurebiasvalue": "Correzzione d'esposizione APEX",
+       "exif-maxaperturevalue": "Apiertura massima",
+       "exif-subjectdistance": "Distanza d' 'o soggetto",
+       "exif-meteringmode": "Metodo 'e mmisura",
+       "exif-lightsource": "Sorgente 'e luce",
+       "exif-flash": "Flash",
+       "exif-focallength": "Distanza focale d' 'a lente",
+       "exif-subjectarea": "Area d' 'o soggetto",
+       "exif-flashenergy": "Putenza d' 'o flash",
+       "exif-focalplanexresolution": "Resoluzione X ncopp' 'o piano focale",
+       "exif-focalplaneyresolution": "Resoluzione Y ncopp' 'o piano focale",
+       "exif-focalplaneresolutionunit": "Unità 'e resoluzione d' 'o piano focale",
+       "exif-subjectlocation": "Pizzo addò stà 'o soggetto",
+       "exif-exposureindex": "Innece d'esposizione",
+       "exif-sensingmethod": "Sistema 'e rilevazione",
+       "exif-filesource": "Origgene d' 'o file",
+       "exif-scenetype": "Tipo 'e scena",
+       "exif-customrendered": "Prucesso d' 'a immaggene",
+       "exif-exposuremode": "Modo d'esposizione",
+       "exif-whitebalance": "Valanza 'e janco",
+       "exif-digitalzoomratio": "Rapporto zoom diggitale",
+       "exif-focallengthin35mmfilm": "Focale eguale a 35 mm",
+       "exif-scenecapturetype": "Tipo d'acquisizziona",
+       "exif-gaincontrol": "Cuntrollo d' 'a scena",
+       "exif-contrast": "Contrasto",
+       "exif-saturation": "Saturazione",
+       "exif-sharpness": "Nitidezza",
+       "exif-devicesettingdescription": "Descrizione d' 'e mpustaziune d' 'o dispositivo",
+       "exif-subjectdistancerange": "Scala distanza soggetto",
+       "exif-imageuniqueid": "ID 'e l'immaggine univoco",
+       "exif-gpsversionid": "Verzione d' 'e tag GPS",
+       "exif-gpslatituderef": "Latitudine nord o sud",
+       "exif-gpslatitude": "Latitudine",
+       "exif-gpslongituderef": "Longitudine est o ovest",
+       "exif-gpslongitude": "Longitudine",
+       "exif-gpsaltituderef": "Riferimento pe' l'autezza",
+       "exif-gpsaltitude": "Autezza",
+       "exif-gpstimestamp": "orario d' 'o GPS (rilorgio atomico)",
+       "exif-gpssatellites": "Satellite ausate p' 'e mmisure",
+       "exif-gpsstatus": "Stato d' 'o ricevitore",
+       "exif-gpsmeasuremode": "Modo 'e mmisura",
+       "exif-gpsdop": "Precisione d' 'a mmisura",
+       "exif-gpsspeedref": "Unità 'e mmisura",
+       "exif-gpsspeed": "Velocità d' 'o ricevitore GPS",
+       "exif-gpstrackref": "Riferimento p' 'a direzzione d' 'o movimento",
+       "exif-gpstrack": "Direzzione d' 'o movimento",
+       "exif-gpsimgdirectionref": "Riferimento p' 'a direzzione 'e ll'immaggene",
+       "exif-gpsimgdirection": "Direzzione 'e ll'immaggene",
+       "exif-gpsmapdatum": "Rilevamento geodetico ausato",
+       "exif-gpsdestlatituderef": "Riferimento p' 'a latitudine 'e destinazione",
+       "exif-gpsdestlatitude": "Latitudine 'e destinazione",
+       "exif-gpsdestlongituderef": "Riferimento p' 'a longitudine 'e destinazione",
+       "exif-gpsdestlongitude": "Longitudine 'e destinazione",
+       "exif-gpsdestbearingref": "Riferimento p' 'a direzzione 'e destinazione",
+       "exif-gpsdestbearing": "Direzione 'e destinazzione",
+       "exif-gpsdestdistanceref": "Riferimento p' 'a latitudine 'e destinazione",
+       "exif-gpsdestdistance": "Distanza d' 'a destinazione",
+       "exif-gpsprocessingmethod": "Nomme d' 'o metodo 'e prucesso GPS",
+       "exif-gpsareainformation": "Nomme 'e ll'area GPS",
+       "exif-gpsdatestamp": "Data d' 'o GPS",
+       "exif-gpsdifferential": "Currezzione differenziale d' 'o GPS",
+       "exif-jpegfilecomment": "Commento d' 'o file JPEG",
+       "exif-keywords": "Parole chiave",
+       "exif-worldregioncreated": "Reggione d' 'o munno addò è stata scattata sta foto",
+       "exif-countrycreated": "Paese d' 'o munno addò è stata scattata sta foto",
+       "exif-countrycodecreated": "Codece p' 'o paese addò è stata scattata sta foto",
+       "exif-provinceorstatecreated": "Pruvincia o Stato addò è stata scattata sta foto",
+       "exif-citycreated": "Città addò è stata scattata sta foto",
+       "exif-sublocationcreated": "Sottolocazione d' 'a cettà addò è stata scattata sta foto",
+       "exif-worldregiondest": "Reggiune d' 'o munno ca se sta mmustanno",
+       "exif-countrydest": "Paise ca se stanno mmustanno",
+       "exif-countrycodedest": "Codece p' 'e paise ca se stanno mmustanno",
+       "exif-provinceorstatedest": "Pruvince o state ca se stanno mustanno",
+       "exif-citydest": "Città ca se stà mustanno",
+       "exif-sublocationdest": "Sottolocazione d' 'a città ca se stà mmustanno",
+       "exif-objectname": "Titolo curto",
+       "exif-specialinstructions": "Struziune speciale",
+       "exif-headline": "Ntestazzione",
+       "exif-credit": "Credite/Fornitore",
+       "exif-source": "Funte",
+       "exif-editstatus": "Stato editoriale 'e ll'immaggene",
+       "exif-urgency": "Priorità",
+       "exif-fixtureidentifier": "Nomme d' 'accunciamiento",
+       "exif-locationdest": "Locazione raffigurata",
+       "exif-locationdestcode": "Codece 'e lloco raffigurato",
+       "exif-objectcycle": "Orario d' 'o juorno p' 'o quale è stato pruggettato stu media",
+       "exif-contact": "Nfurmaziune 'e cuntatto",
+       "exif-writer": "Scrittore",
+       "exif-languagecode": "Lengua",
+       "exif-iimversion": "Verziona IIM",
+       "exif-iimcategory": "Categurìa",
+       "exif-iimsupplementalcategory": "Categurìe supplementarie",
+       "exif-datetimeexpires": "Nun ausà aroppo",
+       "exif-datetimereleased": "Relassato 'o",
+       "exif-originaltransmissionref": "Codece d' 'a locazione d' 'a trasmissione origgenale",
+       "exif-identifier": "Identificatore",
+       "exif-lens": "Lunghezze ausate",
+       "exif-serialnumber": "Nummero seriale d' 'a fotocamera",
+       "exif-cameraownername": "Titolare d' 'a fotocamera",
+       "exif-label": "Etichetta",
+       "exif-datetimemetadata": "Data de l'urdemo cagnamiento a 'e metadata",
+       "exif-nickname": "Nomme nfurmale 'e ll'immaggene",
+       "exif-rating": "Punteggio ('e 5)",
+       "exif-rightscertificate": "Certificato 'e gestione d' 'e deritte",
+       "exif-copyrighted": "Stato d' 'o copyright",
+       "exif-copyrightowner": "Titolare d' 'o Copyright",
+       "exif-usageterms": "Termine d'auso",
+       "exif-webstatement": "Affermazione d' 'o copyright on line",
+       "exif-originaldocumentid": "ID unico d' 'o documento origgenale",
+       "exif-licenseurl": "URL p' 'a licienza d' 'o copyright",
+       "exif-morepermissionsurl": "Nfurmaziune 'e licienza alternative",
+       "exif-attributionurl": "Quanno s'ausasse n'ata vota sta fatica, pe' piaccere falla spunta cu nu link ccà a",
+       "exif-preferredattributionname": "Quanno s'ausasse n'ata vota sta fatica, pe' piacere dincette chi l'ha fatta",
+       "exif-pngfilecomment": "Commento d' 'o file PNG",
+       "exif-disclaimer": "Avvertimiènto",
+       "exif-contentwarning": "Avvertimiènto ncopp' 'e cuntenute",
+       "exif-giffilecomment": "Commento d' 'o file GIF",
+       "exif-intellectualgenre": "Tipo d'elemento",
+       "exif-subjectnewscode": "Codece d' 'o suggetto",
+       "exif-scenecode": "Codece 'e scena IPTC",
+       "exif-event": "Fatto raffigurato",
+       "exif-organisationinimage": "Organizzazione raffigurata",
+       "exif-personinimage": "Perzona raffigurata",
+       "exif-originalimageheight": "Autezza 'e ll'immaggene apprimma ca fosse rintagliata",
+       "exif-originalimagewidth": "Larghezza 'e ll'immaggene apprimma ca fosse rintagliata",
+       "exif-compression-1": "Senza cumprimì",
+       "exif-compression-2": "Gruppe CCITT 3 Decodifeche 'Esecuzione d' 'a lunghezza 1-Dimenzionale Cagnate 'a Huffman",
+       "exif-compression-3": "Gruppe CCITT 3 'e decodifeche d' 'o fax",
+       "exif-compression-4": "Codifeca fax CCITT gruppo 4",
+       "exif-copyrighted-true": "Prutetto 'a copyright",
+       "exif-copyrighted-false": "Status d' 'o copyright nun mpustato",
+       "exif-photometricinterpretation-1": "Janco e niro (niro è 0)",
+       "exif-unknowndate": "Data scanusciuta",
+       "exif-orientation-1": "Nurmale",
+       "exif-orientation-2": "Revutato orizzontalmente",
+       "exif-orientation-3": "Votato a 180°",
+       "exif-orientation-4": "Revutato verticalmente",
+       "exif-orientation-5": "Votato a 90º 'n senzo cuntrario a l'aco d' 'o rilorgio e revutato verticalmente",
+       "exif-orientation-6": "Votato a 90° 'n senzo cuntrario a l'aco d' 'o rilorgio",
+       "exif-orientation-7": "Votato a 90º 'n senzo 'e l'aco d' 'o rilorgio e revutato verticalmente",
+       "exif-orientation-8": "Votato a 90° 'n senzo 'e l'aco d' 'o rilorgio",
+       "exif-planarconfiguration-1": "furmato 'e blocche",
+       "exif-planarconfiguration-2": "furmato lineare",
+       "exif-xyresolution-i": "$1 punte pe pollice (dpi)",
+       "exif-colorspace-65535": "Nun calibbrato",
+       "exif-componentsconfiguration-0": "nun esiste",
+       "exif-exposureprogram-0": "Nun definito",
+       "exif-exposureprogram-1": "Manuale",
+       "exif-exposureprogram-2": "Programma nurmale",
+       "exif-exposureprogram-3": "Priorità d'apertura",
+       "exif-exposureprogram-4": "Priorità 'e sposizione",
+       "exif-exposureprogram-5": "Programma ccreativo (basato ncopp' 'o profunno d' 'o campo)",
+       "exif-exposureprogram-6": "Prugramma d'azione (basato ncopp' 'a velocità 'e riprese)",
+       "exif-exposureprogram-7": "Modo ritratto (soggette vicine c' 'o sfondo fore 'o foco)",
+       "exif-exposureprogram-8": "Panurama (soggette luntane c' 'o sfondo int' 'o foco)",
+       "exif-subjectdistance-value": "$1 metre",
+       "exif-meteringmode-0": "Scanusciuto",
+       "exif-meteringmode-1": "Medio",
+       "exif-meteringmode-2": "Medie Pesate Centrate",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "Multi Spot",
+       "exif-meteringmode-5": "Pattern",
+       "exif-meteringmode-6": "Parziale",
+       "exif-meteringmode-255": "Ato",
+       "exif-lightsource-0": "Scanusciuta",
+       "exif-lightsource-1": "Luce d' 'o ghiuorno",
+       "exif-lightsource-2": "Fluorescente",
+       "exif-lightsource-3": "Tungsteno (luce cavera cavera)",
+       "exif-lightsource-4": "Flash",
+       "exif-lightsource-9": "Tiempi belle",
+       "exif-lightsource-10": "'Ntruvulato",
+       "exif-lightsource-11": "Aumbruso",
+       "exif-lightsource-12": "Florescenza a 'a luce d' 'o juorno (D 5700 - 7100K)",
+       "exif-lightsource-13": "Florescenza a 'o janco d' 'o juorno (N 4600 - 5400K)",
+       "exif-lightsource-14": "Florescenza a 'o janco friddo (W 3900 - 4500K)",
+       "exif-lightsource-15": "Florescenza janca (WW 3200 - 3700K)",
+       "exif-lightsource-17": "Luce standàrd A",
+       "exif-lightsource-18": "Luce standàrd B",
+       "exif-lightsource-19": "Luce standàrd C",
+       "exif-lightsource-24": "Luce 'e studio ISO ô tungsteno",
+       "exif-lightsource-255": "N'ata sorgente 'e luce",
+       "exif-flash-fired-0": "'O flash nun è scattato",
+       "exif-flash-fired-1": "Flash scattato",
+       "exif-flash-return-0": "nisciuna funzione ncopp' 'o ritorno d' 'a luce stroboscopeca",
+       "exif-flash-return-2": "luce stroboscopeca 'e ritorno nun scummigliata",
+       "exif-flash-return-3": "luce stroboscopeca 'e ritorno scummigliata",
+       "exif-flash-mode-1": "flash forzato apicciato",
+       "exif-flash-mode-2": "flash forzato stutato",
+       "exif-flash-mode-3": "modo automateco",
+       "exif-flash-function-1": "Nisciuna funzione flash",
+       "exif-flash-redeye-1": "modalità pe' luvà ll'uocchie russe",
+       "exif-focalplaneresolutionunit-2": "pollece",
+       "exif-sensingmethod-1": "Indefinite",
+       "exif-sensingmethod-2": "Sensore d'area 'e culore a unu-chip",
+       "exif-sensingmethod-3": "Sensore d'area 'e culore a ddoje-chip",
+       "exif-sensingmethod-4": "Sensore d'area 'e culore a tre-chip",
+       "exif-sensingmethod-5": "Sensore 'e culore sequenziale",
+       "exif-sensingmethod-7": "Sensore trilineare",
+       "exif-sensingmethod-8": "Sensore 'e culore sequenziale e lineare",
+       "exif-filesource-3": "Camera diggitale",
+       "exif-scenetype-1": "Fotografia diretta",
+       "exif-customrendered-0": "Prucesso normale",
+       "exif-customrendered-1": "Prucesso personalizzato",
+       "exif-exposuremode-0": "Auto esposizione",
+       "exif-exposuremode-1": "Esposizione a mmano",
+       "exif-exposuremode-2": "Bracketing automateco",
+       "exif-whitebalance-0": "Valanzamiento d' 'e janche automateco",
+       "exif-whitebalance-1": "Valanzamiento d' 'e janche manuale",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Panorama",
+       "exif-scenecapturetype-2": "Ritratto",
+       "exif-scenecapturetype-3": "Scena 'e notte",
+       "exif-gaincontrol-0": "Nisciuno",
+       "exif-gaincontrol-1": "Vascio aumento d' 'o guadagno",
+       "exif-gaincontrol-2": "Aveto aumento d' 'o guadagno",
+       "exif-gaincontrol-3": "Vascio acalamento d' 'o guadagno",
+       "exif-gaincontrol-4": "Aveto acalamento d' 'o guadagno",
+       "exif-contrast-0": "Nurmale",
+       "exif-contrast-1": "Muscio",
+       "exif-contrast-2": "Tuosto",
+       "exif-saturation-0": "Nurmale",
+       "exif-saturation-1": "Saturazione vascia",
+       "exif-saturation-2": "Saturazione aveta",
+       "exif-sharpness-0": "Nurmale",
+       "exif-sharpness-1": "Muscio",
+       "exif-sharpness-2": "Tuosto",
+       "exif-subjectdistancerange-0": "Scanusciuta",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Vista 'e vicino",
+       "exif-subjectdistancerange-3": "Vista 'e luntano",
+       "exif-gpslatitude-n": "Latitudine nord",
+       "exif-gpslatitude-s": "Latitudine sud",
+       "exif-gpslongitude-e": "Longitudine est",
+       "exif-gpslongitude-w": "Longitudine ovest",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metro|metre}} 'a copp' 'o livello d' 'o mare",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metro|metre}} abbascio 'o livello d' 'o mare",
+       "exif-gpsstatus-a": "Mmisure ncurzo",
+       "exif-gpsstatus-v": "Mmisure nteroperabbele",
+       "exif-gpsmeasuremode-2": "Mmisure a ddoje-dimenziune",
+       "exif-gpsmeasuremode-3": "Mmisure a tre-dimenziune",
+       "exif-gpsspeed-k": "Chilometre a l'ora",
+       "exif-gpsspeed-m": "Miglie pe' ora",
+       "exif-gpsspeed-n": "Nurece",
+       "exif-gpsdestdistance-k": "Chilometre",
+       "exif-gpsdestdistance-m": "Miglie",
+       "exif-gpsdestdistance-n": "Miglie nauteche",
+       "exif-gpsdop-excellent": "Eccellente ($1)",
+       "exif-gpsdop-good": "Bbuono ($1)",
+       "exif-gpsdop-moderate": "Apposto ($1)",
+       "exif-gpsdop-fair": "Discreto ($1)",
+       "exif-gpsdop-poor": "Puveriello ($1)",
+       "exif-objectcycle-a": "Sulamente 'a matina",
+       "exif-objectcycle-p": "Sulamente 'a sera",
+       "exif-objectcycle-b": "Tutt' 'e dduje matina e sera",
+       "exif-gpsdirection-t": "Direziona overa",
+       "exif-gpsdirection-m": "Direziona magnetica",
+       "exif-ycbcrpositioning-1": "Centrato",
+       "exif-ycbcrpositioning-2": "Co-mpizzato",
+       "exif-dc-contributor": "Contribbuture",
+       "exif-dc-coverage": "Scopo spaziale o temporale d' 'o media",
+       "exif-dc-date": "Data (e)",
+       "exif-dc-publisher": "Editore",
+       "exif-dc-relation": "Media cullegate",
+       "exif-dc-rights": "Deritte",
+       "exif-dc-source": "Media sorgente",
+       "exif-dc-type": "Tipe 'e media",
+       "exif-rating-rejected": "Scartate",
+       "exif-isospeedratings-overflow": "Cchiù granne 'e 65535",
+       "exif-iimcategory-ace": "Arte, cultura e spassatiempe",
+       "exif-iimcategory-clj": "Crimine e legge",
+       "exif-iimcategory-dis": "Guaie e brutte fatte",
+       "exif-iimcategory-fin": "Economia e affare",
+       "exif-iimcategory-edu": "Studie",
+       "exif-iimcategory-evn": "Ambiente",
+       "exif-iimcategory-hth": "Salute",
+       "exif-iimcategory-hum": "Nteresse umano",
+       "exif-iimcategory-lab": "Fatica",
+       "exif-iimcategory-lif": "Stile 'e vita e tiempo libbero",
+       "exif-iimcategory-pol": "Puliteca",
+       "exif-iimcategory-rel": "Religgione e crerenze",
+       "exif-iimcategory-sci": "Scienze e tecnologgie",
+       "exif-iimcategory-soi": "Teme suggiale",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Uerra, cunflitte e arrevuòte",
+       "exif-iimcategory-wea": "Meteo",
+       "exif-urgency-normal": "Normale ($1)",
+       "exif-urgency-low": "Vascia  ($1)",
+       "exif-urgency-high": "Aveta ($1)",
+       "exif-urgency-other": "Priorità definite 'a l'utente ($1)"
+}
diff --git a/languages/i18n/exif/nb.json b/languages/i18n/exif/nb.json
new file mode 100644 (file)
index 0000000..d2c74f5
--- /dev/null
@@ -0,0 +1,361 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Brik",
+                       "Danmichaelo",
+                       "Event",
+                       "Jon Harald Søby",
+                       "Jóna Þórunn",
+                       "Nghtwlkr"
+               ]
+       },
+       "exif-imagewidth": "Bredde",
+       "exif-imagelength": "Høyde",
+       "exif-bitspersample": "Bits per komponent",
+       "exif-compression": "Kompresjonsskjema",
+       "exif-photometricinterpretation": "Pixelsammensetning",
+       "exif-orientation": "Retning",
+       "exif-samplesperpixel": "Antall komponenter",
+       "exif-planarconfiguration": "Dataarrangement",
+       "exif-ycbcrsubsampling": "Subsamplingsforhold mellom Y og C",
+       "exif-ycbcrpositioning": "Y- og C-posisjonering",
+       "exif-xresolution": "Horisontal oppløsning",
+       "exif-yresolution": "Vertikal oppløsning",
+       "exif-stripoffsets": "Plassering for bildedata",
+       "exif-rowsperstrip": "Antall rader per stripe",
+       "exif-stripbytecounts": "Antall byte per kompresserte stripe",
+       "exif-jpeginterchangeformat": "Offset til JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Byte med JPEG-data",
+       "exif-whitepoint": "Hvitpunktkromatisitet",
+       "exif-primarychromaticities": "Primærfargenes renhet",
+       "exif-ycbcrcoefficients": "Koeffisienter for fargeromstransformasjonsmatrise",
+       "exif-referenceblackwhite": "Par av svarte og hvite referanseverdier",
+       "exif-datetime": "Dato og tid for filendring",
+       "exif-imagedescription": "Bildetittel",
+       "exif-make": "Kameraprodusent",
+       "exif-model": "Kameramodell",
+       "exif-software": "Programvare brukt",
+       "exif-artist": "Skaper",
+       "exif-copyright": "Opphavsbeskyttelse tilhører",
+       "exif-exifversion": "Exif-versjon",
+       "exif-flashpixversion": "Støttet Flashpix-versjon",
+       "exif-colorspace": "Fargerom",
+       "exif-componentsconfiguration": "Betydning av hver komponent",
+       "exif-compressedbitsperpixel": "Bildekompresjonsmodus",
+       "exif-pixelxdimension": "Bildebredde",
+       "exif-pixelydimension": "Bildehøyde",
+       "exif-usercomment": "Brukerkommentarer",
+       "exif-relatedsoundfile": "Relatert lydfil",
+       "exif-datetimeoriginal": "Dato og tid for datagenerering",
+       "exif-datetimedigitized": "Dato og tid for digitalisering",
+       "exif-subsectime": "Endringstidspunkt, sekunddeler",
+       "exif-subsectimeoriginal": "Eksponeringstidspunkt, sekunddeler",
+       "exif-subsectimedigitized": "Digitaliseringstidspunkt, sekunddeler",
+       "exif-exposuretime": "Eksponeringstid",
+       "exif-exposuretime-format": "$1 sek ($2)",
+       "exif-fnumber": "F-nummer",
+       "exif-exposureprogram": "Eksponeringsprogram",
+       "exif-spectralsensitivity": "Spektralsensitivitet",
+       "exif-isospeedratings": "Filmhastighet (ISO)",
+       "exif-shutterspeedvalue": "APEX lukkerhastighet",
+       "exif-aperturevalue": "APEX blenderåpning",
+       "exif-brightnessvalue": "APEX lysstyrke",
+       "exif-exposurebiasvalue": "Eksponeringsbias",
+       "exif-maxaperturevalue": "Maksimal blender",
+       "exif-subjectdistance": "Avstand til subjekt",
+       "exif-meteringmode": "Målingsmodus",
+       "exif-lightsource": "Lyskilde",
+       "exif-flash": "Blits",
+       "exif-focallength": "Linsens brennvidde",
+       "exif-subjectarea": "Motivområde",
+       "exif-flashenergy": "Blitsenergi",
+       "exif-focalplanexresolution": "Oppløsning i fokalplan X",
+       "exif-focalplaneyresolution": "Oppløsning i fokalplan Y",
+       "exif-focalplaneresolutionunit": "Enhet for oppløsning i fokalplan",
+       "exif-subjectlocation": "Motivets beliggenhet",
+       "exif-exposureindex": "Eksponeringsindeks",
+       "exif-sensingmethod": "Avkjenningsmetode",
+       "exif-filesource": "Filkilde",
+       "exif-scenetype": "Scenetype",
+       "exif-customrendered": "Tilpasset bildebehandling",
+       "exif-exposuremode": "Eksponeringsmodus",
+       "exif-whitebalance": "Hvit balanse",
+       "exif-digitalzoomratio": "Digitalt zoomomfang",
+       "exif-focallengthin35mmfilm": "Brennvidde på 35 mm-film",
+       "exif-scenecapturetype": "Motivprogram",
+       "exif-gaincontrol": "Scenekontroll",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Metning",
+       "exif-sharpness": "Skarphet",
+       "exif-devicesettingdescription": "Beskrivelse av apparatets innstilling",
+       "exif-subjectdistancerange": "Avstandsintervall til motiv",
+       "exif-imageuniqueid": "Unik bilde-ID",
+       "exif-gpsversionid": "Versjon for GPS-tagger",
+       "exif-gpslatituderef": "nordlig eller sørlig breddegrad",
+       "exif-gpslatitude": "Breddegrad",
+       "exif-gpslongituderef": "Østlig eller vestlig breddegrad",
+       "exif-gpslongitude": "Lengdegrad",
+       "exif-gpsaltituderef": "Høydereferanse",
+       "exif-gpsaltitude": "Høyde",
+       "exif-gpstimestamp": "GPS-tid (atomklokke)",
+       "exif-gpssatellites": "Satelitter brukt i måling",
+       "exif-gpsstatus": "Mottakerstatus",
+       "exif-gpsmeasuremode": "Målingsmodus",
+       "exif-gpsdop": "Målingspresisjon",
+       "exif-gpsspeedref": "Fartsenhet",
+       "exif-gpsspeed": "GPS-mottakerens hastighet",
+       "exif-gpstrackref": "Referanse for bevegelsesretning",
+       "exif-gpstrack": "Bevegelsesretning",
+       "exif-gpsimgdirectionref": "Referanse for bilderetning",
+       "exif-gpsimgdirection": "Bilderetning",
+       "exif-gpsmapdatum": "Brukt geodetisk data",
+       "exif-gpsdestlatituderef": "Referanse for målbreddegrad",
+       "exif-gpsdestlatitude": "Målbreddegrad",
+       "exif-gpsdestlongituderef": "Referanse for mållengdegrad",
+       "exif-gpsdestlongitude": "Mållengdegrad",
+       "exif-gpsdestbearingref": "Referanse for retning mot målet",
+       "exif-gpsdestbearing": "Retning mot målet",
+       "exif-gpsdestdistanceref": "Referanse for lengde til mål",
+       "exif-gpsdestdistance": "Lengde til mål",
+       "exif-gpsprocessingmethod": "Navn på GPS-prosesseringsmetode",
+       "exif-gpsareainformation": "Navn på GPS-område",
+       "exif-gpsdatestamp": "GPS-dato",
+       "exif-gpsdifferential": "Differentiell GPS-korreksjon",
+       "exif-jpegfilecomment": "JPEG-filkommentar",
+       "exif-keywords": "Nøkkelord",
+       "exif-worldregioncreated": "Verdensregionen som bildet ble tatt i",
+       "exif-countrycreated": "Landet som bildet ble tatt i",
+       "exif-countrycodecreated": "Landskoden som bildet ble tatt i",
+       "exif-provinceorstatecreated": "Provinsen eller delstaten som bildet ble tatt i",
+       "exif-citycreated": "Byen som bildet ble tatt i",
+       "exif-sublocationcreated": "Bydelen som bildet ble tatt i",
+       "exif-worldregiondest": "Verdensregionen vises",
+       "exif-countrydest": "Landet vises",
+       "exif-countrycodedest": "Landskoden vises",
+       "exif-provinceorstatedest": "Provinsen eller delstaten vises",
+       "exif-citydest": "Byen vises",
+       "exif-sublocationdest": "Bydelen vises",
+       "exif-objectname": "Kort tittel",
+       "exif-specialinstructions": "Spesielle instruksjoner",
+       "exif-headline": "Overskrift",
+       "exif-credit": "Kreditt/Leverandør",
+       "exif-source": "Kilde",
+       "exif-editstatus": "Bildets redaksjonelle status",
+       "exif-urgency": "Prioritet",
+       "exif-fixtureidentifier": "Fiksturnavn",
+       "exif-locationdest": "Avbildet plass",
+       "exif-locationdestcode": "Avbildet plasseringskode",
+       "exif-objectcycle": "Tid på dagen mediet er ment for",
+       "exif-contact": "Kontaktinformasjon",
+       "exif-writer": "Forfatter",
+       "exif-languagecode": "Språk",
+       "exif-iimversion": "IIM-versjon",
+       "exif-iimcategory": "Kategori",
+       "exif-iimsupplementalcategory": "Tilleggskategorier",
+       "exif-datetimeexpires": "Ikke bruk etter",
+       "exif-datetimereleased": "Utgitt den",
+       "exif-originaltransmissionref": "Opprinnelig lokasjonskode for transmisjon",
+       "exif-identifier": "Identifikator",
+       "exif-lens": "Objektiv",
+       "exif-serialnumber": "Kameraets serienummer",
+       "exif-cameraownername": "Kameraets eier",
+       "exif-label": "Etikett",
+       "exif-datetimemetadata": "Dato metadata sist ble endret",
+       "exif-nickname": "Bildets uformelle navn",
+       "exif-rating": "Vurdering (av 5)",
+       "exif-rightscertificate": "Rettighetsforvaltningssertifikat",
+       "exif-copyrighted": "Opphavsrettsstatus",
+       "exif-copyrightowner": "Opphavsrettsinnehaver",
+       "exif-usageterms": "Bruksvilkår",
+       "exif-webstatement": "Opphavsrettserklæring på internett",
+       "exif-originaldocumentid": "Unik ID for originaldokumentet",
+       "exif-licenseurl": "URL for opphavsrettslisens",
+       "exif-morepermissionsurl": "Alternativ lisensieringsinformasjon",
+       "exif-attributionurl": "Ved gjenbruk av dette arbeidet, vennligst inkluder en lenke til",
+       "exif-preferredattributionname": "Ved gjenbruk av dette arbeidet, vennligst gi kreditt til",
+       "exif-pngfilecomment": "PNG-filkommentar",
+       "exif-disclaimer": "Ansvarsfraskrivelse",
+       "exif-contentwarning": "Innholdsadvarsel",
+       "exif-giffilecomment": "GIF-filkommentar",
+       "exif-intellectualgenre": "Elementtype",
+       "exif-subjectnewscode": "Emnekode",
+       "exif-scenecode": "IPTC-scenekode",
+       "exif-event": "Avbildet hendelse",
+       "exif-organisationinimage": "Avbildet organisasjon",
+       "exif-personinimage": "Avbildet person",
+       "exif-originalimageheight": "Høyde på bildet før det ble beskåret",
+       "exif-originalimagewidth": "Bredde på bildet før det ble beskåret",
+       "exif-compression-1": "Ukomprimert",
+       "exif-compression-2": "CCITT Gruppe 3 1-dimensjonal modifisert Huffman-kjørelengdekoding",
+       "exif-compression-3": "CCITT Gruppe 3 faks-koding",
+       "exif-compression-4": "CCITT Gruppe 4 faks-koding",
+       "exif-compression-6": "JPEG (gammel)",
+       "exif-copyrighted-true": "Opphavsrettsbeskyttet",
+       "exif-copyrighted-false": "Opphavsrettstatus er ikke angitt",
+       "exif-photometricinterpretation-0": "Svart-hvitt (hvitt er 0)",
+       "exif-photometricinterpretation-1": "Sort og hvitt (Sort er 0)",
+       "exif-photometricinterpretation-3": "Palett",
+       "exif-photometricinterpretation-4": "Gjennomsiktighetsmaske",
+       "exif-photometricinterpretation-5": "Atskilt (trolig CMYK)",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (ICC-koding)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (ITU-koding)",
+       "exif-photometricinterpretation-32803": "Fargefiltertabell",
+       "exif-photometricinterpretation-34892": "Lineær rå",
+       "exif-unknowndate": "Ukjent dato",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Snudd horisontalt",
+       "exif-orientation-3": "Rotert 180°",
+       "exif-orientation-4": "Snudd vertikalt",
+       "exif-orientation-5": "Rotated 90° CCW and flipped vertically\n\nRotert 90° mot klokka og vridd vertikalt",
+       "exif-orientation-6": "Rotert 90° mot klokka",
+       "exif-orientation-7": "Rotert 90° med klokka og vridd vertikalt",
+       "exif-orientation-8": "Rotert 90° med klokka",
+       "exif-planarconfiguration-1": "chunkformat",
+       "exif-planarconfiguration-2": "planærformat",
+       "exif-colorspace-65535": "Ukalibrert",
+       "exif-componentsconfiguration-0": "finnes ikke",
+       "exif-exposureprogram-0": "Ikke angitt",
+       "exif-exposureprogram-1": "Manuell",
+       "exif-exposureprogram-2": "Normalt program",
+       "exif-exposureprogram-3": "Blenderprioritet",
+       "exif-exposureprogram-4": "Slutterprioritet",
+       "exif-exposureprogram-5": "Kunstnerlig program (prioriterer skarphetsdyp)",
+       "exif-exposureprogram-6": "Bevegelsesprogram (prioriterer kortere sluttertid)",
+       "exif-exposureprogram-7": "Portrettmodus (for nærbilder med ufokusert bakgrunn)",
+       "exif-exposureprogram-8": "Landskapsmodus (for landskapsbilder med fokusert bakgrunn)",
+       "exif-subjectdistance-value": "$1 meter",
+       "exif-meteringmode-0": "Ukjent",
+       "exif-meteringmode-1": "Gjennomsnitt",
+       "exif-meteringmode-2": "Sentrumsveid gjennomsnitt",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "Multispot",
+       "exif-meteringmode-5": "Mønster",
+       "exif-meteringmode-6": "Delvis",
+       "exif-meteringmode-255": "Annet",
+       "exif-lightsource-0": "Ukjent",
+       "exif-lightsource-1": "Dagslys",
+       "exif-lightsource-2": "Lysrør",
+       "exif-lightsource-3": "Glødelampe",
+       "exif-lightsource-4": "Blits",
+       "exif-lightsource-9": "Fint vær",
+       "exif-lightsource-10": "Overskyet",
+       "exif-lightsource-11": "Skygge",
+       "exif-lightsource-12": "Dagslyslysrør (D 5700 – 7100K)",
+       "exif-lightsource-13": "Dagshvitt lysrør (N 4600 – 5400K)",
+       "exif-lightsource-14": "Kaldhvitt lysrør (W 3900 – 4500K)",
+       "exif-lightsource-15": "Hvitt lysrør (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standardlys A",
+       "exif-lightsource-18": "Standardlys B",
+       "exif-lightsource-19": "Standardlys C",
+       "exif-lightsource-24": "ISO studiobelysning",
+       "exif-lightsource-255": "Annen lyskilde",
+       "exif-flash-fired-0": "Blitz ikke utløst",
+       "exif-flash-fired-1": "Blitz utløst",
+       "exif-flash-return-0": "ingen funksjon for oppdaing av strobelys",
+       "exif-flash-return-2": "strobelys ikke oppdaget",
+       "exif-flash-return-3": "strobelys oppdaget",
+       "exif-flash-mode-1": "tvunget blitzutløsning",
+       "exif-flash-mode-2": "tvunget blitzløs",
+       "exif-flash-mode-3": "automatisk modus",
+       "exif-flash-function-1": "Ingen blitzfunksjon",
+       "exif-flash-redeye-1": "røde-øyne-redusering",
+       "exif-focalplaneresolutionunit-2": "tommer",
+       "exif-sensingmethod-1": "Ikke angitt",
+       "exif-sensingmethod-2": "Énchipsfargesensor",
+       "exif-sensingmethod-3": "Tochipsfargesensor",
+       "exif-sensingmethod-4": "Trechipsfargesensor",
+       "exif-sensingmethod-5": "Fargesekvensiell områdesensor",
+       "exif-sensingmethod-7": "Trilineær sensor",
+       "exif-sensingmethod-8": "Fargesekvensiell linær sensor",
+       "exif-filesource-3": "Digitalt stillbildekamera",
+       "exif-scenetype-1": "Direktefotografert bilde",
+       "exif-customrendered-0": "Normal prosess",
+       "exif-customrendered-1": "Tilpasset prosess",
+       "exif-exposuremode-0": "Automatisk eksponering",
+       "exif-exposuremode-1": "Manuell eksponering",
+       "exif-exposuremode-2": "Automatisk alternativeksponering",
+       "exif-whitebalance-0": "Automatisk hvitbalanse",
+       "exif-whitebalance-1": "Manuell hvitbalanse",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Landskap",
+       "exif-scenecapturetype-2": "Portrett",
+       "exif-scenecapturetype-3": "Nattscene",
+       "exif-gaincontrol-0": "Ingen",
+       "exif-gaincontrol-1": "Økning av lavnivåforsterkning",
+       "exif-gaincontrol-2": "Økning av høynivåforsterkning",
+       "exif-gaincontrol-3": "Senkning av lavnivåforsterkning",
+       "exif-gaincontrol-4": "Senkning av høynivåforsterkning",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Myk",
+       "exif-contrast-2": "Hard",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Lav metningsgrad",
+       "exif-saturation-2": "Høy metningsgrad",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Myk",
+       "exif-sharpness-2": "Hard",
+       "exif-subjectdistancerange-0": "Ukjent",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Nærbilde",
+       "exif-subjectdistancerange-3": "Fjernbilde",
+       "exif-gpslatitude-n": "Nordlig breddegrad",
+       "exif-gpslatitude-s": "Sørlig breddegrad",
+       "exif-gpslongitude-e": "Østlig lengdegrad",
+       "exif-gpslongitude-w": "Vestlig lengdegrad",
+       "exif-gpsaltitude-above-sealevel": "{{PLURAL:$1|Én|$1}} meter over havet",
+       "exif-gpsaltitude-below-sealevel": "{{PLURAL:$1|Én|$1}} meter under havet",
+       "exif-gpsstatus-a": "Måling pågår",
+       "exif-gpsstatus-v": "Målingsinteroperabilitet",
+       "exif-gpsmeasuremode-2": "todimensjonell måling",
+       "exif-gpsmeasuremode-3": "tredimensjonell måling",
+       "exif-gpsspeed-k": "Kilometer per time",
+       "exif-gpsspeed-m": "Miles per time",
+       "exif-gpsspeed-n": "Knop",
+       "exif-gpsdestdistance-k": "Kilometer",
+       "exif-gpsdestdistance-m": "Miles",
+       "exif-gpsdestdistance-n": "Nautiske mil",
+       "exif-gpsdop-excellent": "Utmerket ($1)",
+       "exif-gpsdop-good": "God ($1)",
+       "exif-gpsdop-moderate": "Moderat ($1)",
+       "exif-gpsdop-fair": "Middelmådig ($1)",
+       "exif-gpsdop-poor": "Dårlig ($1)",
+       "exif-objectcycle-a": "Kun morgen",
+       "exif-objectcycle-p": "Kun kveld",
+       "exif-objectcycle-b": "Både morgen og kveld",
+       "exif-gpsdirection-t": "Sann retning",
+       "exif-gpsdirection-m": "Magnetisk retning",
+       "exif-ycbcrpositioning-1": "Sentrert",
+       "exif-ycbcrpositioning-2": "Co-lokalisert",
+       "exif-dc-contributor": "Bidragsytere",
+       "exif-dc-coverage": "Romlig eller timelig omfang av mediet",
+       "exif-dc-date": "Dato(er)",
+       "exif-dc-publisher": "Utgiver",
+       "exif-dc-relation": "Relaterte media",
+       "exif-dc-rights": "Rettigheter",
+       "exif-dc-source": "Mediakilde",
+       "exif-dc-type": "Mediatype",
+       "exif-rating-rejected": "Avvist",
+       "exif-isospeedratings-overflow": "Større enn 65535",
+       "exif-iimcategory-ace": "Kunst, kultur og underholdning",
+       "exif-iimcategory-clj": "Kriminalitet og jura",
+       "exif-iimcategory-dis": "Katastrofer og ulykker",
+       "exif-iimcategory-fin": "Økonomi og næringsliv",
+       "exif-iimcategory-edu": "Utdanning",
+       "exif-iimcategory-evn": "Miljø",
+       "exif-iimcategory-hth": "Helse",
+       "exif-iimcategory-hum": "Menneskelig interesse",
+       "exif-iimcategory-lab": "Arbeidskraft",
+       "exif-iimcategory-lif": "Livsstil og fritid",
+       "exif-iimcategory-pol": "Politikk",
+       "exif-iimcategory-rel": "Religion og livssyn",
+       "exif-iimcategory-sci": "Vitenskap og teknologi",
+       "exif-iimcategory-soi": "Sosiale problemer",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Krig, konflikt og uro",
+       "exif-iimcategory-wea": "Vær",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Lav ($1)",
+       "exif-urgency-high": "Høy ($1)",
+       "exif-urgency-other": "Brukerdefinert prioritet ($1)"
+}
diff --git a/languages/i18n/exif/nds-nl.json b/languages/i18n/exif/nds-nl.json
new file mode 100644 (file)
index 0000000..856cd17
--- /dev/null
@@ -0,0 +1,345 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Servien"
+               ]
+       },
+       "exif-imagewidth": "Wiedte",
+       "exif-imagelength": "Heugte",
+       "exif-bitspersample": "Bits per komponent",
+       "exif-compression": "Kompressiemethode",
+       "exif-photometricinterpretation": "Beeldpuntsamenstelling",
+       "exif-orientation": "Oriëntasie",
+       "exif-samplesperpixel": "Antal compenenten",
+       "exif-planarconfiguration": "Gegevensstructuur",
+       "exif-ycbcrsubsampling": "Subsamplingsverhouwige van Y tot C",
+       "exif-ycbcrpositioning": "Y- en C-posisionering",
+       "exif-xresolution": "Horizontale resolusie",
+       "exif-yresolution": "Verticale resolusie",
+       "exif-stripoffsets": "Lokasie aofbeeldingsgegevens",
+       "exif-rowsperstrip": "Riejen per strip",
+       "exif-stripbytecounts": "Bytes per ekomprimeerden strip",
+       "exif-jpeginterchangeformat": "Aofstaand tot JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bytes van JPEG-gegevens",
+       "exif-whitepoint": "Witpuntchromaticiteit",
+       "exif-primarychromaticities": "Chromasiteit van primaere kleuren",
+       "exif-ycbcrcoefficients": "Transformasiematrixkoëfficiënten veur de kleurruumte",
+       "exif-referenceblackwhite": "Referensieweerden veur zwart/wit",
+       "exif-datetime": "Tiedstip van digitalisasie",
+       "exif-imagedescription": "Aofbeeldingnaam",
+       "exif-make": "Kameramark",
+       "exif-model": "Kameramodel",
+       "exif-software": "Programmatuur die gebruukt wörden",
+       "exif-artist": "Eschreven deur",
+       "exif-copyright": "Auteursrechtenhouwer",
+       "exif-exifversion": "Exif-versie",
+       "exif-flashpixversion": "Ondersteunden Flashpix-versie",
+       "exif-colorspace": "Kleurruumte",
+       "exif-componentsconfiguration": "Betekenisse van elk compenent",
+       "exif-compressedbitsperpixel": "Beeldkompressiemethode",
+       "exif-pixelxdimension": "Aofbeeldingsbreedte",
+       "exif-pixelydimension": "Aofbeeldingsheugte",
+       "exif-usercomment": "Opmarkingen",
+       "exif-relatedsoundfile": "Biebeheurend geluudsbestaand",
+       "exif-datetimeoriginal": "Tiedstip van datagenerasie",
+       "exif-datetimedigitized": "Tiedstip van digitalisasie",
+       "exif-subsectime": "Subseconden tiedstip bestaandswieziging",
+       "exif-subsectimeoriginal": "Subseconden tiedstip datagenerasie",
+       "exif-subsectimedigitized": "Subseconden tiedstip digitalisasie",
+       "exif-exposuretime": "Belochtingstied",
+       "exif-exposuretime-format": "$1 sek ($2)",
+       "exif-fnumber": "F-getal",
+       "exif-exposureprogram": "Belochtingsprogramma",
+       "exif-spectralsensitivity": "Spektrale geveuligheid",
+       "exif-isospeedratings": "ISO-weerde.",
+       "exif-shutterspeedvalue": "Slutersnelheid in APEX",
+       "exif-aperturevalue": "Diafragma in APEX",
+       "exif-brightnessvalue": "Helderheid in APEX",
+       "exif-exposurebiasvalue": "Belochtingscompensasie",
+       "exif-maxaperturevalue": "Maximale diafragmaweerde van de lenze",
+       "exif-subjectdistance": "Aofstaand tot onderwarp",
+       "exif-meteringmode": "Methode lochmeting",
+       "exif-lightsource": "Lochbron",
+       "exif-flash": "Flitser",
+       "exif-focallength": "Braandpuntofstand",
+       "exif-subjectarea": "Objektruumte",
+       "exif-flashenergy": "Flitserstarkte",
+       "exif-focalplanexresolution": "X-resolusie van CDD",
+       "exif-focalplaneyresolution": "Y-resolusie van CCD",
+       "exif-focalplaneresolutionunit": "Eenheid CCD-resolusie",
+       "exif-subjectlocation": "Objeklokasie",
+       "exif-exposureindex": "Belochtingsindex",
+       "exif-sensingmethod": "Meetmethode",
+       "exif-filesource": "Bestaandsnaam op de hardeschieve",
+       "exif-scenetype": "Scènetype",
+       "exif-customrendered": "An-epassen beeldbewarking",
+       "exif-exposuremode": "Belochtingsinstelling",
+       "exif-whitebalance": "Witbalans",
+       "exif-digitalzoomratio": "Digitale zoomfactor",
+       "exif-focallengthin35mmfilm": "Braandpuntaofstaand (35mm-equivalent)",
+       "exif-scenecapturetype": "Soort opname",
+       "exif-gaincontrol": "Piekbeheersing",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Verzaojiging",
+       "exif-sharpness": "Scharpte",
+       "exif-devicesettingdescription": "Umschrieving apperaotinstellingen",
+       "exif-subjectdistancerange": "Aofstaandskategorie",
+       "exif-imageuniqueid": "Unieke ID-aofbeelding",
+       "exif-gpsversionid": "GPS-versienummer",
+       "exif-gpslatituderef": "Noorder- of zujerbreedte",
+       "exif-gpslatitude": "Breedte",
+       "exif-gpslongituderef": "Ooster- of westerlengte",
+       "exif-gpslongitude": "Lengtegraod",
+       "exif-gpsaltituderef": "Heugtereferensie",
+       "exif-gpsaltitude": "Heugte",
+       "exif-gpstimestamp": "GPS-tied (atoomklokke)",
+       "exif-gpssatellites": "Satellieten die gebruuk bin veur de meting",
+       "exif-gpsstatus": "Ontvangerstaotus",
+       "exif-gpsmeasuremode": "Meetmodus",
+       "exif-gpsdop": "Meetpresisie",
+       "exif-gpsspeedref": "Snelheidseenheid",
+       "exif-gpsspeed": "Snelheid van GPS-ontvanger",
+       "exif-gpstrackref": "Referensie veur bewegingsrichting",
+       "exif-gpstrack": "Bewegingsrichting",
+       "exif-gpsimgdirectionref": "Referensie veur aofbeeldingsrichting",
+       "exif-gpsimgdirection": "Aofbeeldingsrichtige",
+       "exif-gpsmapdatum": "Geodetiese onderzeuksgegevens die gebruukt bin",
+       "exif-gpsdestlatituderef": "Referensie veur breedtegraod tot bestemming",
+       "exif-gpsdestlatitude": "Breedtegraod bestemming",
+       "exif-gpsdestlongituderef": "Referensie veur lengtegraod bestemming",
+       "exif-gpsdestlongitude": "Lengtegraod bestemming",
+       "exif-gpsdestbearingref": "Referensie veur richting naor bestemming",
+       "exif-gpsdestbearing": "Richting naor bestemming",
+       "exif-gpsdestdistanceref": "Referensie veur aofstaand tot bestemming",
+       "exif-gpsdestdistance": "Aofstaand tot bestemming",
+       "exif-gpsprocessingmethod": "Naam van de GPS-verwarkingsmethode",
+       "exif-gpsareainformation": "Naam van t GPS-gebied",
+       "exif-gpsdatestamp": "GPS-daotum",
+       "exif-gpsdifferential": "Differensiële GPS-korreksie",
+       "exif-jpegfilecomment": "Opmarking bie JPEG-bestaand",
+       "exif-keywords": "Trefwoorden",
+       "exif-worldregioncreated": "Regio in de wereld waor de aofbeelding emaakt is",
+       "exif-countrycreated": "Laand waor de aofbeelding emaakt is",
+       "exif-countrycodecreated": "Kode veur t laand waor de aofbeelding emaakt is",
+       "exif-provinceorstatecreated": "Provinsie of staot waor de aofbeelding emaakt is",
+       "exif-citycreated": "Plaotse waor de aofbeelding emaakt is",
+       "exif-sublocationcreated": "Wiek van de plaotse waor de aofbeelding emaakt is",
+       "exif-worldregiondest": "Weeregeven wereldregio",
+       "exif-countrydest": "Weeregeven laand",
+       "exif-countrycodedest": "Kode veur t weeregeven laand",
+       "exif-provinceorstatedest": "Weeregeven provinsie of staot",
+       "exif-citydest": "Weeregeven plaotse",
+       "exif-sublocationdest": "Weeregeven wiek in plaotse",
+       "exif-objectname": "Korte naam",
+       "exif-specialinstructions": "Spesiale instruksies",
+       "exif-headline": "Kopjen",
+       "exif-credit": "Krediet/leverancier",
+       "exif-source": "Bron",
+       "exif-editstatus": "Bewarkingsstaotus van de aofbeelding",
+       "exif-urgency": "Urgensie",
+       "exif-fixtureidentifier": "Groepsnaam",
+       "exif-locationdest": "Weeregeven lokasie",
+       "exif-locationdestcode": "Kode veur de weeregeven lokasie",
+       "exif-objectcycle": "Tied van de dag waor de media veur bedoeld is",
+       "exif-contact": "Kontaktgegevens",
+       "exif-writer": "Schriever",
+       "exif-languagecode": "Taal",
+       "exif-iimversion": "IIM-versie",
+       "exif-iimcategory": "Kategorie",
+       "exif-iimsupplementalcategory": "Anvullende kategorieën",
+       "exif-datetimeexpires": "Niet te gebruken nao",
+       "exif-datetimereleased": "Uutebröcht op",
+       "exif-originaltransmissionref": "Oorspronkelike taaklokasiekode",
+       "exif-identifier": "ID",
+       "exif-lens": "Lenze die gebruukt wörden",
+       "exif-serialnumber": "Serienummer van de camera",
+       "exif-cameraownername": "Eigenaar van camera",
+       "exif-label": "Etiket",
+       "exif-datetimemetadata": "Daotum waorop de metadata veur t lest bie-ewörken bin",
+       "exif-nickname": "Informele naam van de aofbeelding",
+       "exif-rating": "Werdering (op n schaole van 5)",
+       "exif-rightscertificate": "Rechtenbeheercertificaot",
+       "exif-copyrighted": "Auteursrechtstaotus",
+       "exif-copyrightowner": "Auteursrechtenhouwer",
+       "exif-usageterms": "Gebruuksveurweerden",
+       "exif-webstatement": "Internetauteursrechverklaoring",
+       "exif-originaldocumentid": "Uniek ID van t originele dokument",
+       "exif-licenseurl": "Webadres veur auteursrechlisensie",
+       "exif-morepermissionsurl": "Alternatieve lisensiegegevens",
+       "exif-attributionurl": "Gebruuk de volgende verwiezing bie hergebruuk van dit wark",
+       "exif-preferredattributionname": "Gebruuk de volgende makersvermelding bie hergebruuk van dit wark",
+       "exif-pngfilecomment": "Opmarking bie PNG-bestaand",
+       "exif-disclaimer": "Veurbehoud",
+       "exif-contentwarning": "Waorschuwing over inhoud",
+       "exif-giffilecomment": "Opmarking bie GIF-bestaand",
+       "exif-intellectualgenre": "Soort onderwarp",
+       "exif-subjectnewscode": "Onderwarpkode",
+       "exif-scenecode": "IPTC-scènekode",
+       "exif-event": "Aofebeelden gebeurtenisse",
+       "exif-organisationinimage": "Aofebeelden organisasie",
+       "exif-personinimage": "Aofebeeld persoon",
+       "exif-originalimageheight": "Heugte van de aofbeelding veur biesniejen",
+       "exif-originalimagewidth": "Breedte van de aofbeelding veur biesniejen",
+       "exif-compression-1": "Niet ekomprimeerd",
+       "exif-compression-2": "CCITT-groep 3 1-dimensionale an-epasten \"Huffman run length\"-kodering",
+       "exif-compression-3": "CCITT-groep 3 faxcodering",
+       "exif-compression-4": "CCITT-groep 4 faxcodering",
+       "exif-copyrighted-true": "Auteursrechtelik bescharmp",
+       "exif-copyrighted-false": "Auteursrechtenstaotus niet vasteleegd",
+       "exif-unknowndate": "Onbekende daotum",
+       "exif-orientation-1": "Normaal",
+       "exif-orientation-2": "horizontaal espegeld",
+       "exif-orientation-3": "180° edreid",
+       "exif-orientation-4": "verticaal edreid",
+       "exif-orientation-5": "espegeld um as linksboven-rechtsonder",
+       "exif-orientation-6": "90° linksummedreid",
+       "exif-orientation-7": "90° linksummedreid",
+       "exif-orientation-8": "90° rechtsummedreid",
+       "exif-planarconfiguration-1": "Grof gegevensformaot",
+       "exif-planarconfiguration-2": "planar gegevensformaot",
+       "exif-colorspace-65535": "Niet-ekalibreerd",
+       "exif-componentsconfiguration-0": "besteet niet",
+       "exif-exposureprogram-0": "Niet umschreven",
+       "exif-exposureprogram-1": "Haandmaotig",
+       "exif-exposureprogram-2": "Normaal",
+       "exif-exposureprogram-3": "Diafragmaprioriteit",
+       "exif-exposureprogram-4": "Sluterprioriteit",
+       "exif-exposureprogram-5": "Kreatief (veurkeur veur grote scharptediepte)",
+       "exif-exposureprogram-6": "Aksie (veurkeur veur hoge slutersnelheid)",
+       "exif-exposureprogram-7": "Portret (detailopname mit onscharpe achtergrond)",
+       "exif-exposureprogram-8": "Laandschap (scharpe achtergrond)",
+       "exif-subjectdistance-value": "$1 m",
+       "exif-meteringmode-0": "Onbekend",
+       "exif-meteringmode-1": "Gemiddeld",
+       "exif-meteringmode-2": "Gemiddeld, naodrok op midden",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "MultiSpot",
+       "exif-meteringmode-5": "Multi-segment (patrone)",
+       "exif-meteringmode-6": "Deelmeting",
+       "exif-meteringmode-255": "Aanders",
+       "exif-lightsource-0": "Onbekend",
+       "exif-lightsource-1": "Daglocht",
+       "exif-lightsource-2": "Tl-locht",
+       "exif-lightsource-3": "Tungsten (lamplocht)",
+       "exif-lightsource-4": "Flitser",
+       "exif-lightsource-9": "Mooi weer",
+       "exif-lightsource-10": "Bewolk",
+       "exif-lightsource-11": "Schaoduw",
+       "exif-lightsource-12": "Fluorescerend daglocht (D 5700 – 7100K)",
+       "exif-lightsource-13": "Witfluorescerend daglocht (N 4600 – 5400K)",
+       "exif-lightsource-14": "Koel witfluorescerend (W 3900 – 4500K)",
+       "exif-lightsource-15": "Witfluorescerend (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standardlocht A",
+       "exif-lightsource-18": "Standardlocht B",
+       "exif-lightsource-19": "Standardlocht C",
+       "exif-lightsource-24": "ISO-studiokunstlocht",
+       "exif-lightsource-255": "Aanders",
+       "exif-flash-fired-0": "Flits is niet aofegaon",
+       "exif-flash-fired-1": "Mit flitser",
+       "exif-flash-return-0": "flits stuurt gien gegevens",
+       "exif-flash-return-2": "gien weerkaotsing van de flits vastesteld",
+       "exif-flash-return-3": "weerkaotsing van de flits vastesteld",
+       "exif-flash-mode-1": "verplicht mit flitser",
+       "exif-flash-mode-2": "flitser verplicht onderdrokt",
+       "exif-flash-mode-3": "automatiese modus",
+       "exif-flash-function-1": "Gien flitserfunksie",
+       "exif-flash-redeye-1": "rooie ogen-filter",
+       "exif-focalplaneresolutionunit-2": "duum",
+       "exif-sensingmethod-1": "Niet vastesteld",
+       "exif-sensingmethod-2": "Eén-chip-kleursensor",
+       "exif-sensingmethod-3": "Twee-chips-kleursensor",
+       "exif-sensingmethod-4": "Dree-chips-kleurensensor",
+       "exif-sensingmethod-5": "Kleurvolgende gebiedssensor",
+       "exif-sensingmethod-7": "Dreeliendige sensor",
+       "exif-sensingmethod-8": "Kleurvolgende gebiedssensor",
+       "exif-filesource-3": "Digitale fotokamera",
+       "exif-scenetype-1": "n Drekt efotografeerden aofbeelding",
+       "exif-customrendered-0": "Normaal",
+       "exif-customrendered-1": "An-epas",
+       "exif-exposuremode-0": "Automaties",
+       "exif-exposuremode-1": "Haandmaotig",
+       "exif-exposuremode-2": "Belochtingsrie",
+       "exif-whitebalance-0": "Automaties",
+       "exif-whitebalance-1": "Haandmaotig",
+       "exif-scenecapturetype-0": "standard",
+       "exif-scenecapturetype-1": "laandschap",
+       "exif-scenecapturetype-2": "pertret",
+       "exif-scenecapturetype-3": "Nachtscène",
+       "exif-gaincontrol-0": "Gien",
+       "exif-gaincontrol-1": "Lege pieken umhoge",
+       "exif-gaincontrol-2": "Hoge pieken umhoge",
+       "exif-gaincontrol-3": "Lege pieken ummeneer",
+       "exif-gaincontrol-4": "Hoge pieken ummeneer",
+       "exif-contrast-0": "Normaal",
+       "exif-contrast-1": "Zachte",
+       "exif-contrast-2": "Hard",
+       "exif-saturation-0": "Normaal",
+       "exif-saturation-1": "Leeg",
+       "exif-saturation-2": "Hoge",
+       "exif-sharpness-0": "Normaal",
+       "exif-sharpness-1": "Zachte",
+       "exif-sharpness-2": "Hard",
+       "exif-subjectdistancerange-0": "Onbekend",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Kortbie",
+       "exif-subjectdistancerange-3": "Veeraof",
+       "exif-gpslatitude-n": "Noorderbreedte",
+       "exif-gpslatitude-s": "Zujerbreedte",
+       "exif-gpslongitude-e": "Oosterlengte",
+       "exif-gpslongitude-w": "Westerlengte",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter|meter}} boven de zeespegel",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter|meter}} onder de zeespegel",
+       "exif-gpsstatus-a": "Bezig mit meten",
+       "exif-gpsstatus-v": "Meetinteroperebiliteit",
+       "exif-gpsmeasuremode-2": "2-dimensionale meting",
+       "exif-gpsmeasuremode-3": "3-dimensionale meting",
+       "exif-gpsspeed-k": "Kilometer per uur",
+       "exif-gpsspeed-m": "Miel per ure",
+       "exif-gpsspeed-n": "Kneupen",
+       "exif-gpsdestdistance-k": "Kilometer",
+       "exif-gpsdestdistance-m": "Miel",
+       "exif-gpsdestdistance-n": "Zeemielen",
+       "exif-gpsdop-excellent": "Uutstekend ($1)",
+       "exif-gpsdop-good": "Goed ($1)",
+       "exif-gpsdop-moderate": "Gemiddeld ($1)",
+       "exif-gpsdop-fair": "Redelik ($1)",
+       "exif-gpsdop-poor": "Slicht ($1)",
+       "exif-objectcycle-a": "Allinnig smarnens",
+       "exif-objectcycle-p": "Allinnig savends",
+       "exif-objectcycle-b": "'s Mannen én 's avens",
+       "exif-gpsdirection-t": "Waore richting",
+       "exif-gpsdirection-m": "Magnetiese richting",
+       "exif-ycbcrpositioning-1": "In t midden",
+       "exif-ycbcrpositioning-2": "E-kositueerd",
+       "exif-dc-contributor": "Luui die bie-edreugen hebben",
+       "exif-dc-coverage": "Ruumtelike of temporele reikwiedte van media",
+       "exif-dc-date": "Daotum(s)",
+       "exif-dc-publisher": "Uutgever",
+       "exif-dc-relation": "Verwaante media",
+       "exif-dc-rights": "Rechten",
+       "exif-dc-source": "Bronmedia",
+       "exif-dc-type": "Soort media",
+       "exif-rating-rejected": "Aofewezen",
+       "exif-isospeedratings-overflow": "Groter as 65535",
+       "exif-iimcategory-ace": "Kunst, kultuur en vermaak",
+       "exif-iimcategory-clj": "Misdaod en recht",
+       "exif-iimcategory-dis": "Rampen en ongevallen",
+       "exif-iimcategory-fin": "Ekonomie en bedriefsleven",
+       "exif-iimcategory-edu": "Onderwies",
+       "exif-iimcategory-evn": "Milieu",
+       "exif-iimcategory-hth": "Gezondheid",
+       "exif-iimcategory-hum": "Meenselike interesse",
+       "exif-iimcategory-lab": "Arbeid",
+       "exif-iimcategory-lif": "Levensstiel en vrieje tied",
+       "exif-iimcategory-pol": "Politiek",
+       "exif-iimcategory-rel": "Godsdienst en overtuging",
+       "exif-iimcategory-sci": "Wetenschap en technologie",
+       "exif-iimcategory-soi": "Sosiale kwesties",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Oorlog, armoe en onrust",
+       "exif-iimcategory-wea": "Weer",
+       "exif-urgency-normal": "Normaal ($1)",
+       "exif-urgency-low": "Leeg ($1)",
+       "exif-urgency-high": "Hoog ($1)",
+       "exif-urgency-other": "Deur gebruker in-estelde prioriteit ($1)"
+}
diff --git a/languages/i18n/exif/nds.json b/languages/i18n/exif/nds.json
new file mode 100644 (file)
index 0000000..4b61c8c
--- /dev/null
@@ -0,0 +1,246 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Joachim Mos",
+                       "Slomox"
+               ]
+       },
+       "exif-imagewidth": "Breed",
+       "exif-imagelength": "Hööchd",
+       "exif-bitspersample": "Bits je Farvkomponent",
+       "exif-compression": "Oort vun de Kompression",
+       "exif-photometricinterpretation": "Pixeltohoopsetzung",
+       "exif-orientation": "Utrichtung",
+       "exif-samplesperpixel": "Komponententall",
+       "exif-planarconfiguration": "Datenutrichtung",
+       "exif-ycbcrsubsampling": "Subsampling-Rate vun Y bet C",
+       "exif-ycbcrpositioning": "Y un C Positionerung",
+       "exif-xresolution": "Oplösen in de Breed",
+       "exif-yresolution": "Oplösen in de Hööchd",
+       "exif-stripoffsets": "Bilddaten-Versatz",
+       "exif-rowsperstrip": "Tall Regen je Striepen",
+       "exif-stripbytecounts": "Bytes je kumprimeert Striepen",
+       "exif-jpeginterchangeformat": "Offset to JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Grött vun de JPEG-Daten in Bytes",
+       "exif-whitepoint": "Wittpunkt-Chromatizität",
+       "exif-primarychromaticities": "Chromatizität vun de Grundfarven",
+       "exif-ycbcrcoefficients": "YCbCr-Koeffizienten",
+       "exif-referenceblackwhite": "Swart/Witt-Referenzpunkten",
+       "exif-datetime": "Spiekertiet",
+       "exif-imagedescription": "Bildtitel",
+       "exif-make": "Kamera-Hersteller",
+       "exif-model": "Kameramodell",
+       "exif-software": "bruukte Software",
+       "exif-artist": "Autor",
+       "exif-copyright": "Oorheverrechten",
+       "exif-exifversion": "Exif-Version",
+       "exif-flashpixversion": "ünnerstütt Flashpix-Version",
+       "exif-colorspace": "Farvruum",
+       "exif-componentsconfiguration": "Bedüden vun elk Kumponent",
+       "exif-compressedbitsperpixel": "Komprimeerte Bits je Pixel",
+       "exif-pixelxdimension": "Gellen Bildbreed",
+       "exif-pixelydimension": "Gellen Bildhööchd",
+       "exif-usercomment": "Brukerkommentar",
+       "exif-relatedsoundfile": "Tohörige Toondatei",
+       "exif-datetimeoriginal": "Tiet vun de Opnahm",
+       "exif-datetimedigitized": "Tiet vun dat digital Maken",
+       "exif-subsectime": "Spiekertiet (1/100 s)",
+       "exif-subsectimeoriginal": "Tiet vun de Opnahm (1/100 s)",
+       "exif-subsectimedigitized": "Tiet digital maakt (1/100 s)",
+       "exif-exposuretime": "Belichtungstiet",
+       "exif-exposuretime-format": "$1 Sek. ($2)",
+       "exif-fnumber": "F-Nummer",
+       "exif-exposureprogram": "Belichtungsprogramm",
+       "exif-spectralsensitivity": "Spektralsensitivität",
+       "exif-isospeedratings": "Film- oder Sensorempfindlichkeit (ISO)",
+       "exif-shutterspeedvalue": "Belichttiet",
+       "exif-aperturevalue": "Blennweert",
+       "exif-brightnessvalue": "Helligkeit",
+       "exif-exposurebiasvalue": "Belichtungsvörgaav",
+       "exif-maxaperturevalue": "Gröttste Blenn",
+       "exif-subjectdistance": "wo wied weg",
+       "exif-meteringmode": "Meetmethood",
+       "exif-lightsource": "Lichtborn",
+       "exif-flash": "Blitz",
+       "exif-focallength": "Brennwied",
+       "exif-subjectarea": "Hauptmotivpositschoon un -grött",
+       "exif-flashenergy": "Blitzstärk",
+       "exif-focalplanexresolution": "X-Oplösung Brennpunktflach",
+       "exif-focalplaneyresolution": "Y-Oplösung Brennpunktflach",
+       "exif-focalplaneresolutionunit": "Eenheit vun de Oplösung Brennpunktflach",
+       "exif-subjectlocation": "Oort vun dat Motiv",
+       "exif-exposureindex": "Belichtungsindex",
+       "exif-sensingmethod": "Meetmethood",
+       "exif-filesource": "Dateiborn",
+       "exif-scenetype": "Szenentyp",
+       "exif-customrendered": "Anpasst Bildverarbeidung",
+       "exif-exposuremode": "Belichtungsmodus",
+       "exif-whitebalance": "Wittutgliek",
+       "exif-digitalzoomratio": "Digitalzoom",
+       "exif-focallengthin35mmfilm": "Brennwied (Kleenbildäquivalent)",
+       "exif-scenecapturetype": "Opnahmoort",
+       "exif-gaincontrol": "Verstärkung",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Sättigung",
+       "exif-sharpness": "Schärp",
+       "exif-devicesettingdescription": "Apparatinstellung",
+       "exif-subjectdistancerange": "Motivafstand",
+       "exif-imageuniqueid": "Bild-ID",
+       "exif-gpsversionid": "GPS-Tag-Version",
+       "exif-gpslatituderef": "Bredengraad Noord oder Süüd",
+       "exif-gpslatitude": "Breed",
+       "exif-gpslongituderef": "Längengraad Oost oder West",
+       "exif-gpslongitude": "Läng",
+       "exif-gpsaltituderef": "Betogshööchd",
+       "exif-gpsaltitude": "Hööch",
+       "exif-gpstimestamp": "GPS-Tiet (Atomklock)",
+       "exif-gpssatellites": "För dat Meten bruukte Satelliten",
+       "exif-gpsstatus": "Empfängerstatus",
+       "exif-gpsmeasuremode": "Meetverfohren",
+       "exif-gpsdop": "Meetnauigkeit",
+       "exif-gpsspeedref": "Tempo-Eenheit",
+       "exif-gpsspeed": "Tempo vun’n GPS-Empfänger",
+       "exif-gpstrackref": "Referenz för Bewegungsrichtung",
+       "exif-gpstrack": "Bewegungsrichtung",
+       "exif-gpsimgdirectionref": "Referenz för de Utrichtung vun dat Bild",
+       "exif-gpsimgdirection": "Bildrichtung",
+       "exif-gpsmapdatum": "Geodäätsch Datum bruukt",
+       "exif-gpsdestlatituderef": "Referenz för den Bredengraad",
+       "exif-gpsdestlatitude": "Bredengraad",
+       "exif-gpsdestlongituderef": "Referenz för den Längengraad",
+       "exif-gpsdestlongitude": "Längengraad",
+       "exif-gpsdestbearingref": "Referenz för Motivrichtung",
+       "exif-gpsdestbearing": "Motivrichtung",
+       "exif-gpsdestdistanceref": "Referenz för den Afstand to’t Motiv",
+       "exif-gpsdestdistance": "wo wied af vun dat Motiv",
+       "exif-gpsprocessingmethod": "Naam vun dat GPS-Verfohren",
+       "exif-gpsareainformation": "Naam vun dat GPS-Rebeet",
+       "exif-gpsdatestamp": "GPS-Datum",
+       "exif-gpsdifferential": "GPS-Differentialkorrektur",
+       "exif-source": "Born",
+       "exif-writer": "Schriever",
+       "exif-languagecode": "Spraak",
+       "exif-iimcategory": "Kategorie",
+       "exif-compression-1": "Unkomprimeert",
+       "exif-unknowndate": "Unbekannt Datum",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "waagrecht kippt",
+       "exif-orientation-3": "180° dreiht",
+       "exif-orientation-4": "Vertikal kippt",
+       "exif-orientation-5": "90° gegen de Klock dreiht un vertikal kippt",
+       "exif-orientation-6": "90° mit de Klock dreiht",
+       "exif-orientation-7": "90° mit de Klock dreiht un vertikal kippt",
+       "exif-orientation-8": "90° gegen de Klock dreiht",
+       "exif-planarconfiguration-1": "Groffformat",
+       "exif-planarconfiguration-2": "Planarformat",
+       "exif-componentsconfiguration-0": "gifft dat nich",
+       "exif-exposureprogram-0": "Unbekannt",
+       "exif-exposureprogram-1": "vun Hand",
+       "exif-exposureprogram-2": "Standardprogramm",
+       "exif-exposureprogram-3": "Tietautomatik",
+       "exif-exposureprogram-4": "Blennenautomatik",
+       "exif-exposureprogram-5": "Kreativprogramm mit mehr hoge Schärpendeep",
+       "exif-exposureprogram-6": "Action-Programm mit mehr korte Belichtungstiet",
+       "exif-exposureprogram-7": "Porträt-Programm (för Biller vun dicht ahn Fokus op’n Achtergrund)",
+       "exif-exposureprogram-8": "Landschopsopnahm (mit Fokus op Achtergrund)",
+       "exif-subjectdistance-value": "$1 Meter",
+       "exif-meteringmode-0": "Unbekannt",
+       "exif-meteringmode-1": "Dörsnittlich",
+       "exif-meteringmode-2": "Middzentreert",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "MultiSpot",
+       "exif-meteringmode-5": "Munster",
+       "exif-meteringmode-6": "Bilddeel",
+       "exif-meteringmode-255": "Unbekannt",
+       "exif-lightsource-0": "unbekannt",
+       "exif-lightsource-1": "Daglicht",
+       "exif-lightsource-2": "Fluoreszent",
+       "exif-lightsource-3": "Glöhlamp",
+       "exif-lightsource-4": "Blitz",
+       "exif-lightsource-9": "Good Weder",
+       "exif-lightsource-10": "Wulkig",
+       "exif-lightsource-11": "Schatten",
+       "exif-lightsource-12": "Daglicht fluoreszeren (D 5700–7100 K)",
+       "exif-lightsource-13": "Dagwitt fluoreszeren (N 4600–5400 K)",
+       "exif-lightsource-14": "Köhlwitt fluoreszeren (W 3900–4500 K)",
+       "exif-lightsource-15": "Witt fluoreszeren (WW 3200–3700 K)",
+       "exif-lightsource-17": "Standardlicht A",
+       "exif-lightsource-18": "Standardlicht B",
+       "exif-lightsource-19": "Standardlicht C",
+       "exif-lightsource-24": "ISO Studio Kunstlicht",
+       "exif-lightsource-255": "Annern Lichtborn",
+       "exif-flash-fired-0": "keen Blitz",
+       "exif-flash-fired-1": "Blitz utlööst",
+       "exif-flash-return-0": "Blitz mellt nix trüch",
+       "exif-flash-return-2": "keen Reflexion vun’n Blitz faststellt",
+       "exif-flash-return-3": "Reflexion vun’n Blitz faststellt",
+       "exif-flash-mode-1": "twungen Blitz",
+       "exif-flash-mode-2": "Blitz utschalt",
+       "exif-flash-mode-3": "Auto",
+       "exif-flash-function-1": "Keen Blitzfunkschoon",
+       "exif-flash-redeye-1": "Rode-Ogen-Filter",
+       "exif-focalplaneresolutionunit-2": "Toll",
+       "exif-sensingmethod-1": "Undefineert",
+       "exif-sensingmethod-2": "Een-Chip-Farvsensor",
+       "exif-sensingmethod-3": "Twee-Chip-Farvsensor",
+       "exif-sensingmethod-4": "Dree-Chip-Farvsensor",
+       "exif-sensingmethod-5": "Rebeedssensor (een Klöör na de annere)",
+       "exif-sensingmethod-7": "Trilinear Sensor",
+       "exif-sensingmethod-8": "Linearsensor (een Klöör na de annere)",
+       "exif-scenetype-1": "Normal",
+       "exif-customrendered-0": "Standard",
+       "exif-customrendered-1": "Anpasst",
+       "exif-exposuremode-0": "Automaatsch Belichtung",
+       "exif-exposuremode-1": "Belichtung vun Hand",
+       "exif-exposuremode-2": "Belichtungsreeg",
+       "exif-whitebalance-0": "Automaatsch Wittutgliek",
+       "exif-whitebalance-1": "Wittutgliek vun Hand",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Landschop",
+       "exif-scenecapturetype-2": "Porträt",
+       "exif-scenecapturetype-3": "Nacht",
+       "exif-gaincontrol-0": "Keen",
+       "exif-gaincontrol-1": "beten heller",
+       "exif-gaincontrol-2": "düüdlich heller",
+       "exif-gaincontrol-3": "beten minner hell",
+       "exif-gaincontrol-4": "düüdlich minner hell",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Wiek",
+       "exif-contrast-2": "Hart",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Sied",
+       "exif-saturation-2": "Hooch",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Wiek",
+       "exif-sharpness-2": "Hart",
+       "exif-subjectdistancerange-0": "unbekannt",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Nahopnahm",
+       "exif-subjectdistancerange-3": "Feernopnahm",
+       "exif-gpslatitude-n": "Breed Noord",
+       "exif-gpslatitude-s": "Breed Süüd",
+       "exif-gpslongitude-e": "Läng Oost",
+       "exif-gpslongitude-w": "Läng West",
+       "exif-gpsstatus-a": "Meten löppt",
+       "exif-gpsstatus-v": "Meetinteroperabilität",
+       "exif-gpsmeasuremode-2": "2-dimensional meet",
+       "exif-gpsmeasuremode-3": "3-dimensional meet",
+       "exif-gpsspeed-k": "Kilometers in’e Stünn",
+       "exif-gpsspeed-m": "Mielen in’e Stünn",
+       "exif-gpsspeed-n": "Knoten",
+       "exif-gpsdestdistance-k": "Kilometers",
+       "exif-gpsdestdistance-m": "Mielen",
+       "exif-gpsdestdistance-n": "Seemielen",
+       "exif-gpsdirection-t": "Wohre Richtung",
+       "exif-gpsdirection-m": "Magneetsch Richtung",
+       "exif-dc-publisher": "Verleger",
+       "exif-iimcategory-clj": "Kriminalität un Recht",
+       "exif-iimcategory-edu": "Uptucht",
+       "exif-iimcategory-hth": "Gesundheit",
+       "exif-iimcategory-lab": "Arbeit",
+       "exif-iimcategory-pol": "Politik",
+       "exif-iimcategory-rel": "Religion un Gloov",
+       "exif-iimcategory-sci": "Wetenschap un Technologie",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-wea": "Wedder"
+}
diff --git a/languages/i18n/exif/ne.json b/languages/i18n/exif/ne.json
new file mode 100644 (file)
index 0000000..b68f998
--- /dev/null
@@ -0,0 +1,365 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Bhawani Gautam",
+                       "Krish Dulal",
+                       "Nirjal stha",
+                       "RajeshPandey",
+                       "बिप्लब आनन्द",
+                       "राम प्रसाद जोशी",
+                       "सरोज कुमार ढकाल"
+               ]
+       },
+       "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": "क्षैतिज संकल्प(resolution)",
+       "exif-yresolution": "ऊर्ध्वाधर संकल्प(resolution)",
+       "exif-stripoffsets": "चित्र आँकड़ाको अवस्थिति",
+       "exif-rowsperstrip": "प्रतिपंक्ति पट्टीहरुको संख्या",
+       "exif-stripbytecounts": "प्रति कम्प्रेश्ड स्ट्रिप मा हुने बाइटहरू",
+       "exif-jpeginterchangeformat": "JPEG SOI को लागि अफसेट",
+       "exif-jpeginterchangeformatlength": "JPEG आँकड़ाको बाइट",
+       "exif-whitepoint": "सेतो बिंदु क्रोम्यासिटी(chromaticity)",
+       "exif-primarychromaticities": "क्रोमेटिसिटीज अफ प्राईमरिटीज",
+       "exif-ycbcrcoefficients": "रङ स्पेस परिवर्तन म्याट्रिक्स गुणाङ्क",
+       "exif-referenceblackwhite": "कालो र सेतो सन्दर्भ मानहरूको जोडी",
+       "exif-datetime": "फाइल परिवर्तन मिति तथा समय",
+       "exif-imagedescription": "चित्र नाम",
+       "exif-make": "क्यामेरा निर्माता",
+       "exif-model": "क्यामरा मोडल",
+       "exif-software": "प्रयोग गरिएको सफ्टवेयर",
+       "exif-artist": "लेखक",
+       "exif-copyright": "कपीराइट धारक",
+       "exif-exifversion": "Exif संस्करण",
+       "exif-flashpixversion": "समर्थित फ्ल्यासपिक्स(Flashpix) संस्करण",
+       "exif-colorspace": "वर्ण स्थान",
+       "exif-componentsconfiguration": "प्रत्येक घटकको अर्थ",
+       "exif-compressedbitsperpixel": "चित्र सम्पीडन मोड",
+       "exif-pixelxdimension": "चित्रको  चौड़ाई",
+       "exif-pixelydimension": "चित्रको उचाई",
+       "exif-usercomment": "प्रयोगकर्ताका टिप्पणखरु:",
+       "exif-relatedsoundfile": "सम्बन्धित अडियो फाइल",
+       "exif-datetimeoriginal": "डेटा सञ्चालनको मिति र समय",
+       "exif-datetimedigitized": "मिति र समय अंकीयकरण",
+       "exif-subsectime": "मितिसमय सबसेकेण्डहरू",
+       "exif-subsectimeoriginal": "मितिसमयमूल सबसेकेण्डहरू",
+       "exif-subsectimedigitized": "मितिसमयडिजिटाइज्ड सबसेकेण्डहरू",
+       "exif-exposuretime": "एक्स्पोज़र समय",
+       "exif-exposuretime-format": "$1 सेकेण्ड ($2)",
+       "exif-fnumber": "F संख्या",
+       "exif-exposureprogram": "एक्स्पोजर कार्यक्रम",
+       "exif-spectralsensitivity": "वर्णक्रमीय संवेदनशीलता",
+       "exif-isospeedratings": "आईएसओ गति रेटिंग",
+       "exif-shutterspeedvalue": "APEX  शटरको गति",
+       "exif-aperturevalue": "APEX छिंड़",
+       "exif-brightnessvalue": "APEX चमक",
+       "exif-exposurebiasvalue": "एक्सपोजर पूर्वाग्रह",
+       "exif-maxaperturevalue": "अधिकतम एपर्चर भूमि",
+       "exif-subjectdistance": "विषय दूरी",
+       "exif-meteringmode": "Metering मोड",
+       "exif-lightsource": "प्रकाश स्रोत",
+       "exif-flash": "झिल्को(फ्लास)",
+       "exif-focallength": "लेंस फोकल लम्बाई",
+       "exif-subjectarea": "विषय क्षेत्र",
+       "exif-flashenergy": "फ्ल्यास ऊर्जा",
+       "exif-focalplanexresolution": "फोकल विमान एक्स संकल्प",
+       "exif-focalplaneyresolution": "फोकल प्लेन वाई रिजोलुसन",
+       "exif-focalplaneresolutionunit": "फोकल प्लेन रिजोल्युसन एकाई",
+       "exif-subjectlocation": "विषयको अवस्थिति",
+       "exif-exposureindex": "एक्सपोजर सूचकांक",
+       "exif-sensingmethod": "संवेदन विधि",
+       "exif-filesource": "फाइल स्रोत",
+       "exif-scenetype": "दृश्य प्रकार",
+       "exif-customrendered": "कस्टम चित्र प्रसंस्करण",
+       "exif-exposuremode": "एक्स्पोज़र मोड",
+       "exif-whitebalance": "श्वेत सन्तुलन",
+       "exif-digitalzoomratio": "डिजिटल जूम अनुपात (4:3, 16:9)",
+       "exif-focallengthin35mmfilm": "३५ मीमी फिल्ममा फोकल लम्बाई",
+       "exif-scenecapturetype": "दृश्य पकड़ प्रकार",
+       "exif-gaincontrol": "दृश्य नियन्त्रण",
+       "exif-contrast": "विषमता",
+       "exif-saturation": "परिपूर्णता",
+       "exif-sharpness": "तीक्ष्णता",
+       "exif-devicesettingdescription": "यन्त्र सेटिंग्स वर्णन",
+       "exif-subjectdistancerange": "विषय दूरी सीमा",
+       "exif-imageuniqueid": "अद्वितीय चित्र आईडी(ID)",
+       "exif-gpsversionid": "जीपीएस टैग संस्करण",
+       "exif-gpslatituderef": "उत्तर वा दक्षिण अक्षांश",
+       "exif-gpslatitude": "अक्षांश",
+       "exif-gpslongituderef": "पूर्व वा पश्चिम देशान्तर",
+       "exif-gpslongitude": "देशान्तर",
+       "exif-gpsaltituderef": "ऊंचाई संदर्भ",
+       "exif-gpsaltitude": "उँचाई",
+       "exif-gpstimestamp": "GPS समय (स्वचालित घड़ी)",
+       "exif-gpssatellites": "नाप्नकोलागि प्रयोग गरिएका उपग्रहहरु",
+       "exif-gpsstatus": "रिसिभर अवस्था",
+       "exif-gpsmeasuremode": "माप मोड",
+       "exif-gpsdop": "मापन सटिकता",
+       "exif-gpsspeedref": "गति इकाई",
+       "exif-gpsspeed": "जीपीएस रिसीवरको गति",
+       "exif-gpstrackref": "चालको दिशाको लागि सन्दर्भ",
+       "exif-gpstrack": "चलेको दिशा",
+       "exif-gpsimgdirectionref": "चित्रको दिशाकोलागि सन्दर्भ",
+       "exif-gpsimgdirection": "चित्रको दिशा",
+       "exif-gpsmapdatum": "जियोडेटिक सर्वेक्षण डेटा प्रयोग गरियो",
+       "exif-gpsdestlatituderef": "गन्तव्यको अक्षाङ्शको लागि सन्दर्भ",
+       "exif-gpsdestlatitude": "अक्षांश गंतव्य",
+       "exif-gpsdestlongituderef": "गन्तव्यको देशान्तरको लागि सन्दर्भ",
+       "exif-gpsdestlongitude": "गंतव्यको देशान्तर",
+       "exif-gpsdestbearingref": "गन्तव्यको बियरिङको लागि सन्दर्भ",
+       "exif-gpsdestbearing": "गंतव्यको असर",
+       "exif-gpsdestdistanceref": "गन्तव्यसम्मको दुरीको लागि सन्दर्भ",
+       "exif-gpsdestdistance": "गंतव्यसम्मको दूरी",
+       "exif-gpsprocessingmethod": "GPS प्रक्रिया पद्दतिको नाम",
+       "exif-gpsareainformation": "जीपीएस क्षेत्रको नाम",
+       "exif-gpsdatestamp": "जी पी एस मिति",
+       "exif-gpsdifferential": "जीपीएस अंतर सुधार",
+       "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-jpegfilecomment": "जेपेग फाइल टिप्पणी",
+       "exif-keywords": "मूलशव्दहरु",
+       "exif-worldregioncreated": "यस विश्वको यस भागमा यो फोटो लिएको थियो",
+       "exif-countrycreated": "तस्विर खिचिएको देश",
+       "exif-countrycodecreated": "तस्विर खिचिएको देशको कोड",
+       "exif-provinceorstatecreated": "क्षेत्र जहाँ यस तस्विर खिचिएको थियो थियो",
+       "exif-citycreated": "सहर जहाँ",
+       "exif-sublocationcreated": "सहर भित्रको क्षेत्र जहाँ यो तस्विर खिचिएको थियो",
+       "exif-worldregiondest": " देखाइएको  विश्व क्षेत्र",
+       "exif-countrydest": "देखाइएको देश",
+       "exif-countrycodedest": "देखाइएको देशको कोड",
+       "exif-provinceorstatedest": "देखाइएको प्रान्त या क्षेत्र",
+       "exif-citydest": "देखाइएको सहर",
+       "exif-sublocationdest": "देखाइएको सहर भित्रको क्षेत्र",
+       "exif-objectname": "छोटो शीर्षक",
+       "exif-specialinstructions": "विषेश निर्देशनहरु",
+       "exif-headline": "शीर्षहरफ",
+       "exif-credit": "श्रेय/प्रदायक",
+       "exif-source": "स्रोत",
+       "exif-editstatus": "तस्विरको सम्पादकीय स्थिती",
+       "exif-urgency": "अपरझटता",
+       "exif-fixtureidentifier": "फिक्चरको नाम",
+       "exif-locationdest": "भनिएको स्थान",
+       "exif-locationdestcode": "भनिइको स्थानको कोड",
+       "exif-objectcycle": "दिनको यस समय जसका लागि मेडिया लक्षित छ",
+       "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": "मेटा जानकारी अन्तिम सम्पादन गरिएको मिति",
+       "exif-nickname": "तस्विरको अनौपचारिक नाम",
+       "exif-rating": "स्तर(५ पूर्णङ्कमा)",
+       "exif-rightscertificate": "अनुमती व्यवस्थापन प्रमाण पत्र",
+       "exif-copyrighted": "प्रकाश अधिकार स्थिती",
+       "exif-copyrightowner": "प्रकाश अधिकार धनी",
+       "exif-usageterms": "प्रयोगका सर्तनामाहरु",
+       "exif-webstatement": "अनलाइन प्रकाश अधिकार अभिव्यक्ति",
+       "exif-originaldocumentid": "मूल मिसिलको प्रति मिसिल परिचय (आइडी)",
+       "exif-licenseurl": "प्रकाश अधिकार प्रमाण पत्रको लागि URL",
+       "exif-morepermissionsurl": "वैकल्पक प्रमाणिकरण जानकारी",
+       "exif-attributionurl": "यस कार्यको पुन: प्रयोग गर्ने क्रममा , कृपया यससँग लिनङ्क गर्नुहोस्",
+       "exif-preferredattributionname": "यस कार्यको पुन: प्रयोग गर्ने क्रममा , कृया श्रेय दिनुहोस्",
+       "exif-pngfilecomment": "पिएनजी फाइल टिप्पणी",
+       "exif-disclaimer": "अश्विकारोक्तिहरु",
+       "exif-contentwarning": "सामग्री चेतावनी",
+       "exif-giffilecomment": "जिफ फाइल फाइ;",
+       "exif-intellectualgenre": "वस्तुको प्रकार",
+       "exif-subjectnewscode": "विषय कोड",
+       "exif-scenecode": "IPTC दृष्य कोड",
+       "exif-event": "जनाइएको घटना",
+       "exif-organisationinimage": "जनाइएको संस्था",
+       "exif-personinimage": "जनाइएको व्यक्ति",
+       "exif-originalimageheight": "तस्विरको काट्नु अगाडिको चौडाइ",
+       "exif-originalimagewidth": "काट्नु अगाडि तस्विरको लम्बाई",
+       "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "नखादिएको(कम्प्रेस नगरिएको)",
+       "exif-compression-2": "CCITT समूह 3 1-Dimensional Modified Huffman संचालन इन्कोडिङ्ग",
+       "exif-compression-3": "CCITT Group 3  फ्याक्स इन्कोडिङ्ग",
+       "exif-compression-4": "CCITT Group 4 फ्याक्स इन्कोडिङ्ग",
+       "exif-compression-5": "LZW",
+       "exif-compression-6": "जेपेग(पुरानो)",
+       "exif-compression-7": "जेपेग",
+       "exif-compression-8": "डिफ्लेट(एडोब)",
+       "exif-compression-34712": "जेपेग२०००",
+       "exif-copyrighted-true": "प्रकाशन अधिकार सिमित गरिएको",
+       "exif-copyrighted-false": "प्राकाशन अधिकार नखुलाइएको",
+       "exif-photometricinterpretation-2": "आरजीबी(रातोहरियोनिलो)",
+       "exif-unknowndate": "अज्ञात मिति",
+       "exif-orientation-1": "सामान्य",
+       "exif-orientation-2": "क्षैतिज रुपमा फ्लिप(Flip) गरिएको",
+       "exif-orientation-3": "180° मा घुमाइएको",
+       "exif-orientation-4": "लंब रुपमा फ्लिप (Flip) गरिएको",
+       "exif-orientation-5": "९०° घडिको उल्टो दिशामाको परिक्रमा र मास्तिर फर्काइएको(फ्लिप)",
+       "exif-orientation-6": "घडीको उल्टो दिशामा ९०° घुमाइएको",
+       "exif-orientation-7": "९०° घडिको दिशामाको परिक्रमा र मास्तिर फर्काइएको(फ्लिप)",
+       "exif-orientation-8": "घडिको दिशामा ९०° घुमाइएको",
+       "exif-planarconfiguration-1": "टुक्रे प्रारुप",
+       "exif-planarconfiguration-2": "प्लानर प्रारुप",
+       "exif-xyresolution-i": "$1 प्रतिइन्चथोप्लाहरु(डिपिआई)",
+       "exif-xyresolution-c": "$1 प्रतिसेन्टिमिटरथोप्लाहरु(डिपिसी)",
+       "exif-colorspace-65535": "स्तरिकरण नगरिएको",
+       "exif-componentsconfiguration-0": "अस्तित्वमा छैन",
+       "exif-componentsconfiguration-4": "क",
+       "exif-componentsconfiguration-6": "ब",
+       "exif-exposureprogram-0": "खुलाइएको छैन",
+       "exif-exposureprogram-1": "स्वयं",
+       "exif-exposureprogram-2": "साधारण कार्यक्रम",
+       "exif-exposureprogram-3": "एपर्चर प्राथमिकता",
+       "exif-exposureprogram-4": "सटर प्राथमिकता",
+       "exif-exposureprogram-5": "शृजनात्मक कार्यक्रम(गहिराइसँग बाझिएको)",
+       "exif-exposureprogram-6": "क्रिया कार्यक्रम (तेज शटर गतितर्फ झु्केको)",
+       "exif-exposureprogram-7": "पोर्ट्रेट मोड (क्लोजअप फोटोको लागि)",
+       "exif-exposureprogram-8": "ल्याण्डसकेप मोड (ब्याकग्राउन्ड सहित ल्याण्डसकेप फोटो)",
+       "exif-subjectdistance-value": "$1 मिटर",
+       "exif-meteringmode-0": "अज्ञात",
+       "exif-meteringmode-1": "औसत",
+       "exif-meteringmode-2": "केन्द्र भारित औषत",
+       "exif-meteringmode-3": "स्थान",
+       "exif-meteringmode-4": "बहुस्थान",
+       "exif-meteringmode-5": "ढाँचा",
+       "exif-meteringmode-6": "आंशिक",
+       "exif-meteringmode-255": "अन्य",
+       "exif-lightsource-0": "अज्ञात",
+       "exif-lightsource-1": "दिनको उज्यालो",
+       "exif-lightsource-2": "फ्लोरोसेन्ट",
+       "exif-lightsource-3": "टङ्स्टेन(अश्वेत प्रकाश)",
+       "exif-lightsource-4": "झिल्को(फ्लास)",
+       "exif-lightsource-9": "सफा मौसम",
+       "exif-lightsource-10": "बादली मैसम",
+       "exif-lightsource-11": "छाँया",
+       "exif-lightsource-12": "दिवा फ्लोरोसेन्ट  (D 5700 – 7100K)",
+       "exif-lightsource-13": "दिवा फ्लोरोसेन्ट (N 4600 – 5400K)",
+       "exif-lightsource-14": "शितल सेतो फ्लोरेसेन्ट (W 3900 – 4500K)",
+       "exif-lightsource-15": "सेतो फ्लोरोसेन्ट (डब्लुडब्लु ३२०० - ३७०० के)",
+       "exif-lightsource-17": "मानक प्रकाश A",
+       "exif-lightsource-18": "मानक प्रकाश B",
+       "exif-lightsource-19": "मानक प्रकाश C",
+       "exif-lightsource-24": "ISO सटुडियो  टङ्स्टेन",
+       "exif-lightsource-255": "अरु प्रकाश स्रोत",
+       "exif-flash-fired-0": "फ्ल्यास बलेन",
+       "exif-flash-fired-1": "फ़्लैश फाइर गरिएको",
+       "exif-flash-return-0": "कुनैपनि स्ट्रोब फिर्ता गरि पत्ता लगाउने तरिका छैन",
+       "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": "Color sequential area sensor",
+       "exif-sensingmethod-7": "त्रिरेखिय सेन्सर",
+       "exif-sensingmethod-8": "रङ्ग अनुक्रमिक रेखिय सेन्सर",
+       "exif-filesource-3": "डिजिटल स्टिल क्यामेरा",
+       "exif-scenetype-1": "प्रत्यक्ष खिचिएको छवि",
+       "exif-customrendered-0": "सामान्य प्रक्रिया",
+       "exif-customrendered-1": "व्यक्तिगत प्रक्रिया...",
+       "exif-exposuremode-0": "स्वत: एक्सपोजर",
+       "exif-exposuremode-1": "म्यानुअल एक्सपोजर",
+       "exif-exposuremode-2": "स्वत: कोष्ठ",
+       "exif-whitebalance-0": "स्वत: स्वेत वचत",
+       "exif-whitebalance-1": "म्यानुअल स्वेत वचत",
+       "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-saturation-0": "साधारण",
+       "exif-saturation-1": "न्युन संतृप्तता",
+       "exif-saturation-2": "उच्च संतृप्ता",
+       "exif-sharpness-0": "साधारण",
+       "exif-sharpness-1": "नरम",
+       "exif-sharpness-2": "कडा",
+       "exif-subjectdistancerange-0": "थाह नभएको",
+       "exif-subjectdistancerange-1": "म्याक्रो",
+       "exif-subjectdistancerange-2": "नजिक दृश्य",
+       "exif-subjectdistancerange-3": "दूर दृश्य",
+       "exif-gpslatitude-n": "उत्तर अक्षांश",
+       "exif-gpslatitude-s": "दक्षिण अक्षांश",
+       "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-gpsdestdistance-m": "माइलहरु",
+       "exif-gpsdestdistance-n": "नटिकल माइलहरु",
+       "exif-gpsdop-excellent": "अति राम्रो ($1)",
+       "exif-gpsdop-good": "राम्रो ($1)",
+       "exif-gpsdop-moderate": "सामान्य ($1)",
+       "exif-gpsdop-fair": "ठिकै ($1)",
+       "exif-gpsdop-poor": "खराब ($1)",
+       "exif-objectcycle-a": "बिहान मात्र",
+       "exif-objectcycle-p": "बेलुकी मात्र",
+       "exif-objectcycle-b": "बिहान र बेलुकी दुबै",
+       "exif-gpsdirection-t": "वास्तविक दिशा:",
+       "exif-gpsdirection-m": "चुम्बकिय दिशा:",
+       "exif-ycbcrpositioning-1": "केन्द्रीकृत",
+       "exif-ycbcrpositioning-2": "सह-कुर्सीरहेको",
+       "exif-dc-contributor": "योगदानकर्ताहरु",
+       "exif-dc-coverage": "मेडियाको स्पाटिएल(आयाम) वा टेम्पोरल(काल) सान्दर्भिकता",
+       "exif-dc-date": "मिति(हरू)",
+       "exif-dc-publisher": "प्रकाशक",
+       "exif-dc-relation": "सम्वन्धित मेडिया",
+       "exif-dc-rights": "अधिकारहरू",
+       "exif-dc-source": "स्रोत मेडिया",
+       "exif-dc-type": "मेडियाको प्रकार",
+       "exif-rating-rejected": "अस्विकृत",
+       "exif-isospeedratings-overflow": "६५५३५ भन्दा ठूलो",
+       "exif-maxaperturevalue-value": "$1 एपेक्स (f/$2)",
+       "exif-iimcategory-ace": "कला, संस्कृती र मनोरञ्न",
+       "exif-iimcategory-clj": "अपराध र कानुन",
+       "exif-iimcategory-dis": "प्रकोप तथा दुर्घटना",
+       "exif-iimcategory-fin": "अर्थ र व्यवसाय",
+       "exif-iimcategory-edu": "शिक्षा",
+       "exif-iimcategory-evn": "वातावरण",
+       "exif-iimcategory-hth": "स्वास्थ्य",
+       "exif-iimcategory-hum": "मानवीय चासो",
+       "exif-iimcategory-lab": "श्रम",
+       "exif-iimcategory-lif": "जीवनशैली र फूर्सद",
+       "exif-iimcategory-pol": "राजनीति",
+       "exif-iimcategory-rel": "धर्म तथा विश्वास",
+       "exif-iimcategory-sci": "विज्ञान तथा प्रविधी",
+       "exif-iimcategory-soi": "सामाजिक समस्याहरु",
+       "exif-iimcategory-spo": "खेलकुद",
+       "exif-iimcategory-war": "लडाई, द्वन्द र अशान्ति",
+       "exif-iimcategory-wea": "मौसम",
+       "exif-urgency-normal": "सामान्य ($1)",
+       "exif-urgency-low": "न्युन ($1)",
+       "exif-urgency-high": "उच्च ($1)",
+       "exif-urgency-other": "प्रयोगकर्ताले निर्धारण गरेको प्राथमिकता ($1)"
+}
diff --git a/languages/i18n/exif/nl.json b/languages/i18n/exif/nl.json
new file mode 100644 (file)
index 0000000..b7ad22b
--- /dev/null
@@ -0,0 +1,358 @@
+{
+       "@metadata": {
+               "authors": [
+                       "GerardM",
+                       "Mainframe98",
+                       "Mar(c)",
+                       "McDutchie",
+                       "SPQRobin",
+                       "Siebrand",
+                       "Sjoerddebruin",
+                       "Slomox"
+               ]
+       },
+       "exif-imagewidth": "Breedte",
+       "exif-imagelength": "Hoogte",
+       "exif-bitspersample": "Bits per component",
+       "exif-compression": "Compressiemethode",
+       "exif-photometricinterpretation": "Pixelcompositie",
+       "exif-orientation": "Oriëntatie",
+       "exif-samplesperpixel": "Aantal componenten",
+       "exif-planarconfiguration": "Gegevensstructuur",
+       "exif-ycbcrsubsampling": "Subsampleverhouding van Y tot C",
+       "exif-ycbcrpositioning": "Y- en C-positionering",
+       "exif-xresolution": "Horizontale resolutie",
+       "exif-yresolution": "Verticale resolutie",
+       "exif-stripoffsets": "Locatie afbeeldingsgegevens",
+       "exif-rowsperstrip": "Rijen per strip",
+       "exif-stripbytecounts": "Bytes per gecomprimeerde strip",
+       "exif-jpeginterchangeformat": "Afstand tot JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bytes JPEG-gegevens",
+       "exif-whitepoint": "Witpuntchromaticiteit",
+       "exif-primarychromaticities": "Chromaciteit van primaire kleuren",
+       "exif-ycbcrcoefficients": "Transformatiematrixcoëfficiënten voor de kleurruimte",
+       "exif-referenceblackwhite": "Paar zwart en wit referentiewaarden",
+       "exif-datetime": "Tijdstip laatste bestandswijziging",
+       "exif-imagedescription": "Omschrijving afbeelding",
+       "exif-make": "Merk camera",
+       "exif-model": "Cameramodel",
+       "exif-software": "Gebruikte software",
+       "exif-artist": "Auteur",
+       "exif-copyright": "Auteursrechtenhouder",
+       "exif-exifversion": "Exif-versie",
+       "exif-flashpixversion": "Ondersteunde Flashpix-versie",
+       "exif-colorspace": "Kleurruimte",
+       "exif-componentsconfiguration": "Betekenis van elke component",
+       "exif-compressedbitsperpixel": "Beeldcompressiemethode",
+       "exif-pixelxdimension": "Afbeeldingsbreedte",
+       "exif-pixelydimension": "Afbeeldingshoogte",
+       "exif-usercomment": "Opmerkingen",
+       "exif-relatedsoundfile": "Bijbehorend audiobestand",
+       "exif-datetimeoriginal": "Tijdstip gegevensaanmaak",
+       "exif-datetimedigitized": "Tijdstip digitalisering",
+       "exif-subsectime": "Datum tijd subseconden",
+       "exif-subsectimeoriginal": "Subseconden tijdstip datageneratie",
+       "exif-subsectimedigitized": "Subseconden tijdstip digitalisatie",
+       "exif-exposuretime": "Belichtingstijd",
+       "exif-exposuretime-format": "$1 sec ($2)",
+       "exif-fnumber": "F-getal",
+       "exif-exposureprogram": "Belichtingsprogramma",
+       "exif-spectralsensitivity": "Spectrale gevoeligheid",
+       "exif-isospeedratings": "ISO/ASA-waarde",
+       "exif-shutterspeedvalue": "Sluitersnelheid in APEX",
+       "exif-aperturevalue": "Diafragma in APEX",
+       "exif-brightnessvalue": "Helderheid in APEX",
+       "exif-exposurebiasvalue": "Belichtingscompensatie",
+       "exif-maxaperturevalue": "Maximale diafragma-opening",
+       "exif-subjectdistance": "Afstand tot onderwerp",
+       "exif-meteringmode": "Methode lichtmeting",
+       "exif-lightsource": "Lichtbron",
+       "exif-flash": "Flitser",
+       "exif-focallength": "Brandpuntsafstand",
+       "exif-subjectarea": "Objectruimte",
+       "exif-flashenergy": "Flitssterkte",
+       "exif-focalplanexresolution": "Brandpuntsvlak-X-resolutie",
+       "exif-focalplaneyresolution": "Brandpuntsvlak-Y-resolutie",
+       "exif-focalplaneresolutionunit": "Eenheid CCD-resolutie",
+       "exif-subjectlocation": "Objectlocatie",
+       "exif-exposureindex": "Belichtingsindex",
+       "exif-sensingmethod": "Meetmethode",
+       "exif-filesource": "Bestandsbron",
+       "exif-scenetype": "Scènetype",
+       "exif-customrendered": "Aangepaste beeldverwerking",
+       "exif-exposuremode": "Belichtingsinstelling",
+       "exif-whitebalance": "Witbalans",
+       "exif-digitalzoomratio": "Digitale zoomfactor",
+       "exif-focallengthin35mmfilm": "Brandpuntsafstand (35mm-equivalent)",
+       "exif-scenecapturetype": "Soort opname",
+       "exif-gaincontrol": "Piekbeheersing",
+       "exif-contrast": "Contrast",
+       "exif-saturation": "Verzadiging",
+       "exif-sharpness": "Scherpte",
+       "exif-devicesettingdescription": "Omschrijving apparaatinstellingen",
+       "exif-subjectdistancerange": "Bereik objectafstand",
+       "exif-imageuniqueid": "Uniek ID afbeelding",
+       "exif-gpsversionid": "GPS-versienummer",
+       "exif-gpslatituderef": "Noorder- of zuiderbreedte",
+       "exif-gpslatitude": "Breedtegraad",
+       "exif-gpslongituderef": "Ooster- of westerlengte",
+       "exif-gpslongitude": "Lengtegraad",
+       "exif-gpsaltituderef": "Hoogtereferentie",
+       "exif-gpsaltitude": "Hoogte",
+       "exif-gpstimestamp": "GPS-tijd (atoomklok)",
+       "exif-gpssatellites": "Gebruikte satellieten voor meting",
+       "exif-gpsstatus": "Ontvangerstatus",
+       "exif-gpsmeasuremode": "Meetmodus",
+       "exif-gpsdop": "Meetprecisie",
+       "exif-gpsspeedref": "Snelheid eenheid",
+       "exif-gpsspeed": "Snelheid van GPS-ontvanger",
+       "exif-gpstrackref": "Referentie voor bewegingsrichting",
+       "exif-gpstrack": "Bewegingsrichting",
+       "exif-gpsimgdirectionref": "Referentie voor afbeeldingsrichting",
+       "exif-gpsimgdirection": "Afbeeldingsrichting",
+       "exif-gpsmapdatum": "Gebruikte geodetische onderzoeksgegevens",
+       "exif-gpsdestlatituderef": "Referentie voor breedtegraad bestemming",
+       "exif-gpsdestlatitude": "Breedtegraad bestemming",
+       "exif-gpsdestlongituderef": "Referentie voor lengtegraad bestemming",
+       "exif-gpsdestlongitude": "Lengtegraad bestemming",
+       "exif-gpsdestbearingref": "Referentie voor richting naar bestemming",
+       "exif-gpsdestbearing": "Richting naar bestemming",
+       "exif-gpsdestdistanceref": "Referentie voor afstand tot bestemming",
+       "exif-gpsdestdistance": "Afstand tot bestemming",
+       "exif-gpsprocessingmethod": "GPS-verwerkingsmethode",
+       "exif-gpsareainformation": "Naam GPS-gebied",
+       "exif-gpsdatestamp": "GPS-datum",
+       "exif-gpsdifferential": "Differentiele GPS-correctie",
+       "exif-jpegfilecomment": "Opmerking bij JPEG-bestand",
+       "exif-keywords": "Trefwoorden",
+       "exif-worldregioncreated": "Regio in de wereld waar de afbeelding is gemaakt",
+       "exif-countrycreated": "Land waar de afbeelding is gemaakt",
+       "exif-countrycodecreated": "Code voor het land waar de afbeelding is gemaakt",
+       "exif-provinceorstatecreated": "Provincie of staat waar de afbeelding is gemaakt",
+       "exif-citycreated": "Plaats waar de afbeelding is gemaakt",
+       "exif-sublocationcreated": "Wijk van de plaats waar de afbeelding is gemaakt",
+       "exif-worldregiondest": "Weergegeven wereldregio",
+       "exif-countrydest": "Weergegeven land",
+       "exif-countrycodedest": "Code voor het weergegeven land",
+       "exif-provinceorstatedest": "Weergegeven provincie of staat",
+       "exif-citydest": "Weergegeven plaats",
+       "exif-sublocationdest": "Weergegeven wijk in plaats",
+       "exif-objectname": "Korte naam",
+       "exif-specialinstructions": "Speciale instructies",
+       "exif-headline": "Koptekst",
+       "exif-credit": "Credit/Leverancier",
+       "exif-source": "Bron",
+       "exif-editstatus": "Bewerkingsstatus van de afbeelding",
+       "exif-urgency": "Urgentie",
+       "exif-fixtureidentifier": "Groepsnaam",
+       "exif-locationdest": "Weergegeven locatie",
+       "exif-locationdestcode": "Code voor de weergegeven locatie",
+       "exif-objectcycle": "Tijd van de dag waar de media voor bedoeld is",
+       "exif-contact": "Contactgegevens",
+       "exif-writer": "Schrijver",
+       "exif-languagecode": "Taal",
+       "exif-iimversion": "IIM-versie",
+       "exif-iimcategory": "Categorie",
+       "exif-iimsupplementalcategory": "Aanvullende categorieën",
+       "exif-datetimeexpires": "Niet te gebruiken na",
+       "exif-datetimereleased": "Gepubliceerd op",
+       "exif-originaltransmissionref": "Originele taaklocatiecode",
+       "exif-identifier": "Id",
+       "exif-lens": "Gebruikte lens",
+       "exif-serialnumber": "Serienummer van de camera",
+       "exif-cameraownername": "Eigenaar van camera",
+       "exif-label": "Label",
+       "exif-datetimemetadata": "Datum waarop de metadata het laatst zijn bewerkt",
+       "exif-nickname": "Informele naam van de afbeelding",
+       "exif-rating": "Waardering (schaal van 5)",
+       "exif-rightscertificate": "Rechtenbeheercertificaat",
+       "exif-copyrighted": "Auteursrechtenstatus",
+       "exif-copyrightowner": "Auteursrechtenhouder",
+       "exif-usageterms": "Gebruiksvoorwaarden",
+       "exif-webstatement": "Online auteursrechtenverklaring",
+       "exif-originaldocumentid": "Uniek ID van het originele document",
+       "exif-licenseurl": "URL voor auteursrechtenlicentie",
+       "exif-morepermissionsurl": "Alternatieve licentiegegevens",
+       "exif-attributionurl": "Gebruik de volgende koppeling bij hergebruik van dit werk",
+       "exif-preferredattributionname": "Gebruik de volgende credits bij hergebruik van dit werk",
+       "exif-pngfilecomment": "Opmerking bij PNG-bestand",
+       "exif-disclaimer": "Voorbehoud",
+       "exif-contentwarning": "Waarschuwing over inhoud",
+       "exif-giffilecomment": "Opmerking bij GIF-bestand",
+       "exif-intellectualgenre": "Itemtype",
+       "exif-subjectnewscode": "Onderwerpcode",
+       "exif-scenecode": "IPTC-scènecode",
+       "exif-event": "Afgebeelde gebeurtenis",
+       "exif-organisationinimage": "Afgebeelde organisatie",
+       "exif-personinimage": "Afgebeelde persoon",
+       "exif-originalimageheight": "Hoogte van de afbeelding voor bijsnijden",
+       "exif-originalimagewidth": "Breedte van de afbeelding voor bijsnijden",
+       "exif-compression-1": "Ongecomprimeerd",
+       "exif-compression-2": "CCITT Groep 3 1-dimensionale aangepaste \"Huffman run length\"-codering",
+       "exif-compression-3": "CCITT Groep 3 faxcodering",
+       "exif-compression-4": "CCITT Groep 4 faxcodering",
+       "exif-compression-6": "JPEG (oud)",
+       "exif-copyrighted-true": "Auteursrechtelijk beschermd",
+       "exif-copyrighted-false": "Auteursrechtelijke status niet ingesteld",
+       "exif-photometricinterpretation-0": "Zwart en wit (Wit is 0)",
+       "exif-photometricinterpretation-1": "Zwart-wit (zwart is 0)",
+       "exif-photometricinterpretation-3": "Palet",
+       "exif-photometricinterpretation-4": "Transparantiemasker",
+       "exif-photometricinterpretation-5": "Gescheiden (waarschijnlijk CMYK)",
+       "exif-unknowndate": "Datum onbekend",
+       "exif-orientation-1": "Normaal",
+       "exif-orientation-2": "Horizontaal gespiegeld",
+       "exif-orientation-3": "180° gedraaid",
+       "exif-orientation-4": "Verticaal gespiegeld",
+       "exif-orientation-5": "Gespiegeld om as linksboven-rechtsonder",
+       "exif-orientation-6": "90° linksom gedraaid",
+       "exif-orientation-7": "Gespiegeld om as linksonder-rechtsboven",
+       "exif-orientation-8": "90° rechtsom gedraaid",
+       "exif-planarconfiguration-1": "chunky gegevensformaat",
+       "exif-planarconfiguration-2": "planar gegevensformaat",
+       "exif-colorspace-65535": "Ongekalibreerd",
+       "exif-componentsconfiguration-0": "bestaat niet",
+       "exif-exposureprogram-0": "Niet bepaald",
+       "exif-exposureprogram-1": "Handmatig",
+       "exif-exposureprogram-2": "Normaal programma",
+       "exif-exposureprogram-3": "Diafragmaprioriteit",
+       "exif-exposureprogram-4": "Sluiterprioriteit",
+       "exif-exposureprogram-5": "Creatief (voorkeur voor grote scherptediepte)",
+       "exif-exposureprogram-6": "Actie (voorkeur voor hoge sluitersnelheid)",
+       "exif-exposureprogram-7": "Portret (detailopname met onscherpe achtergrond)",
+       "exif-exposureprogram-8": "Landschap (scherpe achtergrond)",
+       "exif-subjectdistance-value": "$1 meter",
+       "exif-meteringmode-0": "Onbekend",
+       "exif-meteringmode-1": "Gemiddeld",
+       "exif-meteringmode-2": "Centrumgewogen",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "Multi-spot",
+       "exif-meteringmode-5": "Multi-segment (patroon)",
+       "exif-meteringmode-6": "Deelmeting",
+       "exif-meteringmode-255": "Anders",
+       "exif-lightsource-0": "Onbekend",
+       "exif-lightsource-1": "Daglicht",
+       "exif-lightsource-2": "TL-licht",
+       "exif-lightsource-3": "Tungsten (lamplicht)",
+       "exif-lightsource-4": "Flits",
+       "exif-lightsource-9": "Mooi weer",
+       "exif-lightsource-10": "Bewolkt",
+       "exif-lightsource-11": "Schaduw",
+       "exif-lightsource-12": "Daglicht fluorescerend (D 5700 – 7100K)",
+       "exif-lightsource-13": "Dagwit fluorescerend (N 4600 - 5400K)",
+       "exif-lightsource-14": "Koel wit fluorescerend (W 3900 - 4500K)",
+       "exif-lightsource-15": "Wit fluorescerend (WW 3200 - 3700K)",
+       "exif-lightsource-17": "Standaard licht A",
+       "exif-lightsource-18": "Standaard licht B",
+       "exif-lightsource-19": "Standaard licht C",
+       "exif-lightsource-24": "ISO-studiotungsten",
+       "exif-lightsource-255": "Andere lichtbron",
+       "exif-flash-fired-0": "Flits is niet afgegaan",
+       "exif-flash-fired-1": "Met flitser",
+       "exif-flash-return-0": "geen stroboscoopontvangstfunctie",
+       "exif-flash-return-2": "geen stroboscoopontvangst gedetecteerd",
+       "exif-flash-return-3": "stroboscoopontvangst gedetecteerd",
+       "exif-flash-mode-1": "verplicht met flitser",
+       "exif-flash-mode-2": "flitser verplicht onderdrukt",
+       "exif-flash-mode-3": "automatische modus",
+       "exif-flash-function-1": "Geen flitserfunctie",
+       "exif-flash-redeye-1": "filter rode ogen verwijderen",
+       "exif-focalplaneresolutionunit-2": "inch",
+       "exif-sensingmethod-1": "Niet gedefiniëerd",
+       "exif-sensingmethod-2": "Eén-chip-kleursensor",
+       "exif-sensingmethod-3": "Twee-chip-kleursensor",
+       "exif-sensingmethod-4": "Drie-chip-kleursensor",
+       "exif-sensingmethod-5": "Kleurvolgende gebiedssensor",
+       "exif-sensingmethod-7": "Drielijnige sensor",
+       "exif-sensingmethod-8": "Kleurvolgende lijnsensor",
+       "exif-filesource-3": "Digitale fotocamera",
+       "exif-scenetype-1": "Een direct gefotografeerde afbeelding",
+       "exif-customrendered-0": "Normale verwerking",
+       "exif-customrendered-1": "Aangepaste verwerking",
+       "exif-exposuremode-0": "Automatische belichting",
+       "exif-exposuremode-1": "Handmatige belichting",
+       "exif-exposuremode-2": "Auto-Bracket",
+       "exif-whitebalance-0": "Automatische witbalans",
+       "exif-whitebalance-1": "Handmatige witbalans",
+       "exif-scenecapturetype-0": "Standaard",
+       "exif-scenecapturetype-1": "Landschap",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Nachtscène",
+       "exif-gaincontrol-0": "Geen",
+       "exif-gaincontrol-1": "Lage pieken omhoog",
+       "exif-gaincontrol-2": "Hoge pieken omhoog",
+       "exif-gaincontrol-3": "Lage pieken omlaag",
+       "exif-gaincontrol-4": "Hoge pieken omlaag",
+       "exif-contrast-0": "Normaal",
+       "exif-contrast-1": "Zacht",
+       "exif-contrast-2": "Hard",
+       "exif-saturation-0": "Normaal",
+       "exif-saturation-1": "Laag",
+       "exif-saturation-2": "Hoog",
+       "exif-sharpness-0": "Normaal",
+       "exif-sharpness-1": "Zacht",
+       "exif-sharpness-2": "Hard",
+       "exif-subjectdistancerange-0": "Onbekend",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Dichtbij",
+       "exif-subjectdistancerange-3": "Ver weg",
+       "exif-gpslatitude-n": "Noorderbreedte",
+       "exif-gpslatitude-s": "Zuiderbreedte",
+       "exif-gpslongitude-e": "Oosterlengte",
+       "exif-gpslongitude-w": "Westerlengte",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter|meter}} boven de zeespiegel",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter|meter}} onder de zeespiegel",
+       "exif-gpsstatus-a": "Bezig met meten",
+       "exif-gpsstatus-v": "Meetinteroperabiliteit",
+       "exif-gpsmeasuremode-2": "2-dimensionale meting",
+       "exif-gpsmeasuremode-3": "3-dimensionale meting",
+       "exif-gpsspeed-k": "Kilometer per uur",
+       "exif-gpsspeed-m": "Mijl per uur",
+       "exif-gpsspeed-n": "Knopen",
+       "exif-gpsdestdistance-k": "Kilometers",
+       "exif-gpsdestdistance-m": "Mijlen",
+       "exif-gpsdestdistance-n": "Knopen",
+       "exif-gpsdop-excellent": "Uitstekend ($1)",
+       "exif-gpsdop-good": "Goed ($1)",
+       "exif-gpsdop-moderate": "Gemiddeld ($1)",
+       "exif-gpsdop-fair": "Redelijk ($1)",
+       "exif-gpsdop-poor": "Slecht ($1)",
+       "exif-objectcycle-a": "Alleen 's ochtends",
+       "exif-objectcycle-p": "Alleen 's avonds",
+       "exif-objectcycle-b": "Zowel 's ochtends als 's avonds",
+       "exif-gpsdirection-t": "Eigenlijke richting",
+       "exif-gpsdirection-m": "Magnetische richting",
+       "exif-ycbcrpositioning-1": "Gecentreerd",
+       "exif-ycbcrpositioning-2": "Gecositueerd",
+       "exif-dc-contributor": "Medewerkers",
+       "exif-dc-coverage": "Ruimtelijke of temporele scope van media",
+       "exif-dc-date": "Datum(s)",
+       "exif-dc-publisher": "Uitgever",
+       "exif-dc-relation": "Gerelateerde media",
+       "exif-dc-rights": "Rechten",
+       "exif-dc-source": "Bronmedia",
+       "exif-dc-type": "Mediatype",
+       "exif-rating-rejected": "Afgewezen",
+       "exif-isospeedratings-overflow": "Groter dan 65535",
+       "exif-iimcategory-ace": "Kunst, cultuur en vermaak",
+       "exif-iimcategory-clj": "Misdaad en recht",
+       "exif-iimcategory-dis": "Rampen en ongevallen",
+       "exif-iimcategory-fin": "Economie en bedrijfsleven",
+       "exif-iimcategory-edu": "Onderwijs",
+       "exif-iimcategory-evn": "Milieu",
+       "exif-iimcategory-hth": "Gezondheid",
+       "exif-iimcategory-hum": "Human interest",
+       "exif-iimcategory-lab": "Arbeid",
+       "exif-iimcategory-lif": "Lifestyle en vrije tijd",
+       "exif-iimcategory-pol": "Politiek",
+       "exif-iimcategory-rel": "Godsdienst en overtuiging",
+       "exif-iimcategory-sci": "Wetenschap en technologie",
+       "exif-iimcategory-soi": "Sociale kwesties",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Oorlog, conflict en onrust",
+       "exif-iimcategory-wea": "Weer",
+       "exif-urgency-normal": "Normaal ($1)",
+       "exif-urgency-low": "Laag ($1)",
+       "exif-urgency-high": "Hoog ($1)",
+       "exif-urgency-other": "Door gebruiker gedefinieerde prioriteit ($1)"
+}
diff --git a/languages/i18n/exif/nn.json b/languages/i18n/exif/nn.json
new file mode 100644 (file)
index 0000000..77fdd46
--- /dev/null
@@ -0,0 +1,352 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Eirik",
+                       "Frokor",
+                       "Gunnernett",
+                       "Jon Harald Søby",
+                       "Jorunn",
+                       "Nghtwlkr",
+                       "Njardarlogar",
+                       "Ranveig"
+               ]
+       },
+       "exif-imagewidth": "Breidd",
+       "exif-imagelength": "Høgd",
+       "exif-bitspersample": "Bitar per komponent",
+       "exif-compression": "Komprimeringsteknikk",
+       "exif-photometricinterpretation": "Pikselsamansetjing",
+       "exif-orientation": "Retning",
+       "exif-samplesperpixel": "Tal komponentar",
+       "exif-planarconfiguration": "Dataarrangement",
+       "exif-ycbcrsubsampling": "Subsamplingstilhøve mellom Y og C",
+       "exif-ycbcrpositioning": "Y- og C-posisjon",
+       "exif-xresolution": "Oppløysing i breidda",
+       "exif-yresolution": "Oppløysing i høgda",
+       "exif-stripoffsets": "Plassering for biletdata",
+       "exif-rowsperstrip": "Tal rader per stripe",
+       "exif-stripbytecounts": "Tal byte per kompimerte stripe",
+       "exif-jpeginterchangeformat": "Offset til JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Byte JPEG-data",
+       "exif-whitepoint": "Kvitpunktsreinleik",
+       "exif-primarychromaticities": "Reinheita til primærfargane",
+       "exif-ycbcrcoefficients": "Koeffisientar for fargeromstransformasjonsmatrise",
+       "exif-referenceblackwhite": "Svart og kvitt referanseverdipar",
+       "exif-datetime": "Dato og tid endra",
+       "exif-imagedescription": "Tittel",
+       "exif-make": "Kameraprodusent",
+       "exif-model": "Kameramodell",
+       "exif-software": "Programvare brukt",
+       "exif-artist": "Skapar",
+       "exif-copyright": "Opphavsrettshaldar",
+       "exif-exifversion": "Exif-versjon",
+       "exif-flashpixversion": "Støtta Flashpix-versjon",
+       "exif-colorspace": "Fargerom",
+       "exif-componentsconfiguration": "Komponentanalyse",
+       "exif-compressedbitsperpixel": "Biletkomprimeringsmodus",
+       "exif-pixelxdimension": "Biletbreidd",
+       "exif-pixelydimension": "Bilethøgd",
+       "exif-usercomment": "Brukarkommentarar",
+       "exif-relatedsoundfile": "Tilknytt lydfil",
+       "exif-datetimeoriginal": "Dato og tid laga",
+       "exif-datetimedigitized": "Dato og tid digitalisert",
+       "exif-subsectime": "Dato og tid subsekund",
+       "exif-subsectimeoriginal": "Dato og tid laga subsekund",
+       "exif-subsectimedigitized": "Dato og tid digitalisert subsekund",
+       "exif-exposuretime": "Eksponeringstid",
+       "exif-exposuretime-format": "$1 sekund ($2)",
+       "exif-fnumber": "F-nummer",
+       "exif-exposureprogram": "Eksponeringsprogram",
+       "exif-spectralsensitivity": "Spektralsensitivitet",
+       "exif-isospeedratings": "Lyskjensle (ISO)",
+       "exif-shutterspeedvalue": "APEX-lukkarfart",
+       "exif-aperturevalue": "APEX-blendartal",
+       "exif-brightnessvalue": "APEX-lysstyrke",
+       "exif-exposurebiasvalue": "Eksponeringsinnstilling",
+       "exif-maxaperturevalue": "Maksimal blendar",
+       "exif-subjectdistance": "Motivavstand",
+       "exif-meteringmode": "Lysmålarmodus",
+       "exif-lightsource": "Lyskjelde",
+       "exif-flash": "Blits",
+       "exif-focallength": "Linsefokallengd",
+       "exif-subjectarea": "Motivområde",
+       "exif-flashenergy": "Blitsstyrke",
+       "exif-focalplanexresolution": "Oppløysing i fokalplan X",
+       "exif-focalplaneyresolution": "Oppløysing i fokalplan Y",
+       "exif-focalplaneresolutionunit": "Oppløysingseining for fokalplanet",
+       "exif-subjectlocation": "Motivplassering",
+       "exif-exposureindex": "Eksponeringsindeks",
+       "exif-sensingmethod": "Sensor",
+       "exif-filesource": "Filkjelde",
+       "exif-scenetype": "Scenetype",
+       "exif-customrendered": "Tilpassa biletehandsaming",
+       "exif-exposuremode": "Eksponeringsmodus",
+       "exif-whitebalance": "Kvitbalanse",
+       "exif-digitalzoomratio": "Digital zoom-rate",
+       "exif-focallengthin35mmfilm": "Tilsvarande brennvidd med 35 mm-film",
+       "exif-scenecapturetype": "Motivtype",
+       "exif-gaincontrol": "Scenekontroll",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Metting",
+       "exif-sharpness": "Skarpleik",
+       "exif-devicesettingdescription": "Apparatinnstilling",
+       "exif-subjectdistancerange": "Motivavstandsområde",
+       "exif-imageuniqueid": "Unik bilete-ID",
+       "exif-gpsversionid": "GPS-merke-versjon",
+       "exif-gpslatituderef": "Nordleg eller sørleg breiddegrad",
+       "exif-gpslatitude": "Breiddegrad",
+       "exif-gpslongituderef": "Austleg eller vestleg lengdegrad",
+       "exif-gpslongitude": "Lengdegrad",
+       "exif-gpsaltituderef": "Høgdereferanse",
+       "exif-gpsaltitude": "Høgd over havet",
+       "exif-gpstimestamp": "GPS-tid (atomklokke)",
+       "exif-gpssatellites": "Satellittar brukt for å måle",
+       "exif-gpsstatus": "GPS-Mottakarstatus",
+       "exif-gpsmeasuremode": "Målemodus",
+       "exif-gpsdop": "Målepresisjon",
+       "exif-gpsspeedref": "Fartsmåleining",
+       "exif-gpsspeed": "Fart på GPS-mottakar",
+       "exif-gpstrackref": "Referanse for rørsleretning",
+       "exif-gpstrack": "Rørsleretning",
+       "exif-gpsimgdirectionref": "Referanse for retning åt biletet",
+       "exif-gpsimgdirection": "Retninga åt biletet",
+       "exif-gpsmapdatum": "Geodetisk kartleggingsdata brukt",
+       "exif-gpsdestlatituderef": "Referanse for målbreiddegrad",
+       "exif-gpsdestlatitude": "Målbreiddegrad",
+       "exif-gpsdestlongituderef": "Referanse for mållengdegrad",
+       "exif-gpsdestlongitude": "Mållengdegrad",
+       "exif-gpsdestbearingref": "Referanse for retning mot målet",
+       "exif-gpsdestbearing": "Retning mot målet",
+       "exif-gpsdestdistanceref": "Referanse for avstand til mål",
+       "exif-gpsdestdistance": "Avstand til mål",
+       "exif-gpsprocessingmethod": "Namn på GPS-handsamingsmetode",
+       "exif-gpsareainformation": "Namn på GPS-område",
+       "exif-gpsdatestamp": "GPS-dato",
+       "exif-gpsdifferential": "Differensiell GPS-retting",
+       "exif-jpegfilecomment": "JPEG-filkommentar",
+       "exif-keywords": "Nøkkelord",
+       "exif-worldregioncreated": "Verdsregionen biletet blei teke i",
+       "exif-countrycreated": "Land biletet blei teke i",
+       "exif-countrycodecreated": "Landkoden for der biletet blei teke",
+       "exif-provinceorstatecreated": "Provins, delstat eller region der biletet blei teke",
+       "exif-citycreated": "By biletet blei teke i",
+       "exif-sublocationcreated": "Bydel bilete blei teke i",
+       "exif-worldregiondest": "Verdsregionen vist",
+       "exif-countrydest": "Land vist",
+       "exif-countrycodedest": "Landkode vist",
+       "exif-provinceorstatedest": "Provins, delstat eller region vist",
+       "exif-citydest": "By vist",
+       "exif-sublocationdest": "Bydel vist",
+       "exif-objectname": "Kort tittel",
+       "exif-specialinstructions": "Spesieller instuksjonar",
+       "exif-headline": "Overskrift",
+       "exif-credit": "Opphavrettseigar/filgjevar",
+       "exif-source": "Kjelde",
+       "exif-editstatus": "Den redaksjonelle stoda til biletet",
+       "exif-urgency": "Prioritet",
+       "exif-fixtureidentifier": "Namn på tidgjengt emne",
+       "exif-locationdest": "Avbilda stad",
+       "exif-locationdestcode": "Koden til staden som er avbilda",
+       "exif-objectcycle": "Tid på dagen mediet er meint for",
+       "exif-contact": "Kontaktinformasjon",
+       "exif-writer": "Forfattar",
+       "exif-languagecode": "Språk",
+       "exif-iimversion": "IIM-versjon",
+       "exif-iimcategory": "Kategori",
+       "exif-iimsupplementalcategory": "Tilleggskategoriar",
+       "exif-datetimeexpires": "Skal ikkje nyttast etter",
+       "exif-datetimereleased": "Frigjeve",
+       "exif-originaltransmissionref": "Opphavleg stadkode for overføring",
+       "exif-identifier": "Kjennemerke",
+       "exif-lens": "Objektiv",
+       "exif-serialnumber": "Serienummeret på kameraet",
+       "exif-cameraownername": "Eigar av kameraet",
+       "exif-label": "Merkelapp",
+       "exif-datetimemetadata": "Datoen metadata sist vart endra",
+       "exif-nickname": "Det uformelle namnet på biletet",
+       "exif-rating": "Vurdering (av 5)",
+       "exif-rightscertificate": "Retthandsamingssertifikat",
+       "exif-copyrighted": "Opphavsrettsstode",
+       "exif-copyrightowner": "Opphavsrettseigar",
+       "exif-usageterms": "Bruksvilkår",
+       "exif-webstatement": "Opphavsrettsfråsegn på nett",
+       "exif-originaldocumentid": "Unik ID til originaldokumentet",
+       "exif-licenseurl": "URL for opphavsrettsløyve",
+       "exif-morepermissionsurl": "Alternativ løyveinformasjon",
+       "exif-attributionurl": "Når dette verket vert nytta, lenkja til",
+       "exif-preferredattributionname": "Når dette verket vert nytta, godskriv",
+       "exif-pngfilecomment": "PNG-filkommentar",
+       "exif-disclaimer": "Atterhald",
+       "exif-contentwarning": "Innholdsåtvaring",
+       "exif-giffilecomment": "GIF-filkommentar",
+       "exif-intellectualgenre": "Elementtype",
+       "exif-subjectnewscode": "Emnekode",
+       "exif-scenecode": "IPTC-scenekode",
+       "exif-event": "Avbilda hending",
+       "exif-organisationinimage": "Avbilda organisasjon",
+       "exif-personinimage": "Avbilda person",
+       "exif-originalimageheight": "Høgda på biletet før det vart beskåren",
+       "exif-originalimagewidth": "Bredda på biletet før det vart beskåren",
+       "exif-compression-1": "Ukomprimert",
+       "exif-compression-2": "CCITT Gruppe 3 1-dimensjonal modifisert Huffman-kjøyrelengdekoding",
+       "exif-compression-3": "CCITT Gruppe 3 faks-koding",
+       "exif-compression-4": "CCITT Gruppe 4 faks-koding",
+       "exif-copyrighted-true": "Verna av opphavsrett",
+       "exif-copyrighted-false": "Opphavsrettsstode er ikkje oppgjeven",
+       "exif-unknowndate": "Ukjend dato",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Spegla vassrett",
+       "exif-orientation-3": "Rotert 180°",
+       "exif-orientation-4": "Spegla loddrett",
+       "exif-orientation-5": "Rotert 90° motsols og spegla vassrett",
+       "exif-orientation-6": "Rotert 90° motsols",
+       "exif-orientation-7": "Rotert 90° medsols og spegla loddrett",
+       "exif-orientation-8": "Rotert 90° medsols",
+       "exif-planarconfiguration-1": "grovformat",
+       "exif-planarconfiguration-2": "planærformat",
+       "exif-colorspace-65535": "Ukalibrert",
+       "exif-componentsconfiguration-0": "finst ikkje",
+       "exif-exposureprogram-0": "Ikkje bestemt",
+       "exif-exposureprogram-1": "Manuelt",
+       "exif-exposureprogram-2": "Normalt program",
+       "exif-exposureprogram-3": "Blendarprioritet",
+       "exif-exposureprogram-4": "Lukkarprioritet",
+       "exif-exposureprogram-5": "Kreativt program (mest mogleg skarpt)",
+       "exif-exposureprogram-6": "Handlingsprogram (med vekt på snøgg lukkar)",
+       "exif-exposureprogram-7": "Portrettmodus (for nærbilete med uskarp bakgrunn)",
+       "exif-exposureprogram-8": "Landskapsmodus (for landskapsbilete med skarp bakgrunn)",
+       "exif-subjectdistance-value": "$1 meter",
+       "exif-meteringmode-0": "Ukjent",
+       "exif-meteringmode-1": "Snittmåling",
+       "exif-meteringmode-2": "Snittmåling med vekt på midten",
+       "exif-meteringmode-3": "Punktmåling",
+       "exif-meteringmode-4": "Fleirpunktsmåling",
+       "exif-meteringmode-5": "Mønster",
+       "exif-meteringmode-6": "Delvis",
+       "exif-meteringmode-255": "Annan",
+       "exif-lightsource-0": "Ukjent",
+       "exif-lightsource-1": "Dagslys",
+       "exif-lightsource-2": "Fluorescerande",
+       "exif-lightsource-3": "Glødelampe",
+       "exif-lightsource-4": "Blits",
+       "exif-lightsource-9": "Fint vêr",
+       "exif-lightsource-10": "Overskya vêr",
+       "exif-lightsource-11": "Skugge",
+       "exif-lightsource-12": "Fluorescerande dagslys (D 5700 – 7100K)",
+       "exif-lightsource-13": "Dag, kvitt, fluorescerande (N 4600 – 5400K)",
+       "exif-lightsource-14": "Kjølig, kvitt, fluorescerande (W 3900 – 4500K)",
+       "exif-lightsource-15": "Kvitt fluorescerande (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standardlys A",
+       "exif-lightsource-18": "Standardlys B",
+       "exif-lightsource-19": "Standardlys C",
+       "exif-lightsource-24": "ISO studio kunstljos",
+       "exif-lightsource-255": "Anna lyskjelde",
+       "exif-flash-fired-0": "Blitzen vart ikkje utløyst",
+       "exif-flash-fired-1": "Blitz utløyst",
+       "exif-flash-return-0": "ingen funksjon for å oppdage pulserande lys",
+       "exif-flash-return-2": "pulserande lys ikkje oppdaga",
+       "exif-flash-return-3": "pulserande lys oppdaga",
+       "exif-flash-mode-1": "tvungen blitzutløysing",
+       "exif-flash-mode-2": "tvungen blitz stengd",
+       "exif-flash-mode-3": "automatisk modus",
+       "exif-flash-function-1": "Ingen blitzfunksjon",
+       "exif-flash-redeye-1": "redusering av raude auge",
+       "exif-focalplaneresolutionunit-2": "tommar",
+       "exif-sensingmethod-1": "Ikkje bestemt",
+       "exif-sensingmethod-2": "Einbrikka fargeområdesensor",
+       "exif-sensingmethod-3": "Tobrikka fargeområdesensor",
+       "exif-sensingmethod-4": "Trebrikka fargeområdesensor",
+       "exif-sensingmethod-5": "Fargesekvensiell områdesensor",
+       "exif-sensingmethod-7": "Trilinær sensor",
+       "exif-sensingmethod-8": "Fargesekvensiell lineærsensor",
+       "exif-filesource-3": "Digitalt stillbiletekamera",
+       "exif-scenetype-1": "Direkte fotografert bilete",
+       "exif-customrendered-0": "Normal prosess",
+       "exif-customrendered-1": "Tilpassa prosess",
+       "exif-exposuremode-0": "Autoeksponert",
+       "exif-exposuremode-1": "Manuelt eksponert",
+       "exif-exposuremode-2": "Automatisk alternativeksponering",
+       "exif-whitebalance-0": "Automatisk kvitbalanse",
+       "exif-whitebalance-1": "Manuell kvitbalanse",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Landskap",
+       "exif-scenecapturetype-2": "Portrett",
+       "exif-scenecapturetype-3": "Nattscene",
+       "exif-gaincontrol-0": "Ingen",
+       "exif-gaincontrol-1": "Auke av lågnivåforsterking",
+       "exif-gaincontrol-2": "Auke av høgnivåforsterking",
+       "exif-gaincontrol-3": "Minking av lågnivåforsterking",
+       "exif-gaincontrol-4": "Minking av høgnivåforsterking",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Mjuk",
+       "exif-contrast-2": "Hard",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Låg metting",
+       "exif-saturation-2": "Høg metting",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Mjuk",
+       "exif-sharpness-2": "Hard",
+       "exif-subjectdistancerange-0": "Ukjent",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Nært",
+       "exif-subjectdistancerange-3": "Fjernt",
+       "exif-gpslatitude-n": "Nordleg breiddegrad",
+       "exif-gpslatitude-s": "Sørleg breiddegrad",
+       "exif-gpslongitude-e": "Austleg lengdegrad",
+       "exif-gpslongitude-w": "Vestleg lengdegrad",
+       "exif-gpsaltitude-above-sealevel": "{{PLURAL:$1|Éin|$1}} meter over havet",
+       "exif-gpsaltitude-below-sealevel": "{{PLURAL:$1|Éin|$1}} meter under havet",
+       "exif-gpsstatus-a": "Måling pågår",
+       "exif-gpsstatus-v": "Målingsinteroperabilitet",
+       "exif-gpsmeasuremode-2": "todimensjonalt målt",
+       "exif-gpsmeasuremode-3": "tredimensjonalt målt",
+       "exif-gpsspeed-k": "Kilometer per time",
+       "exif-gpsspeed-m": "Engelsk mil per time",
+       "exif-gpsspeed-n": "Knop",
+       "exif-gpsdestdistance-k": "Kilometer",
+       "exif-gpsdestdistance-m": "Miles",
+       "exif-gpsdestdistance-n": "Nautiske mil",
+       "exif-gpsdop-excellent": "Utmerkt ($1)",
+       "exif-gpsdop-good": "God ($1)",
+       "exif-gpsdop-moderate": "Moderat ($1)",
+       "exif-gpsdop-fair": "Medels ($1)",
+       "exif-gpsdop-poor": "Dårleg ($1)",
+       "exif-objectcycle-a": "Berre morgon",
+       "exif-objectcycle-p": "Berre kveld",
+       "exif-objectcycle-b": "Både morgon og kveld",
+       "exif-gpsdirection-t": "Verkeleg retning",
+       "exif-gpsdirection-m": "Magnetisk retning",
+       "exif-ycbcrpositioning-1": "Sentrert",
+       "exif-ycbcrpositioning-2": "Samanfallande",
+       "exif-dc-contributor": "Bidragsytarar",
+       "exif-dc-coverage": "Rom- eller tidssutstrekning til medium",
+       "exif-dc-date": "Dato(ar)",
+       "exif-dc-publisher": "Utgjevar",
+       "exif-dc-relation": "Skylde medium",
+       "exif-dc-rights": "Rettar",
+       "exif-dc-source": "Mediakilde",
+       "exif-dc-type": "Mediatype",
+       "exif-rating-rejected": "Avvist",
+       "exif-isospeedratings-overflow": "Større enn 65535",
+       "exif-iimcategory-ace": "Kunst, kultur og underhaldning",
+       "exif-iimcategory-clj": "Kriminalitet og jura",
+       "exif-iimcategory-dis": "Katastrofar og ulukker",
+       "exif-iimcategory-fin": "Økonomi og næringsliv",
+       "exif-iimcategory-edu": "Utdanning",
+       "exif-iimcategory-evn": "Miljø",
+       "exif-iimcategory-hth": "Helse",
+       "exif-iimcategory-hum": "Menneskeleg interesse",
+       "exif-iimcategory-lab": "Arbeidskraft",
+       "exif-iimcategory-lif": "Livsstil og fritid",
+       "exif-iimcategory-pol": "Politikk",
+       "exif-iimcategory-rel": "Religion og livssyn",
+       "exif-iimcategory-sci": "Vitskap og teknologi",
+       "exif-iimcategory-soi": "Sosiale problem",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Krig, konflikt og uro",
+       "exif-iimcategory-wea": "Vær",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Låg ($1)",
+       "exif-urgency-high": "Høg ($1)",
+       "exif-urgency-other": "Brukardefinert prioritet ($1)"
+}
diff --git a/languages/i18n/exif/oc.json b/languages/i18n/exif/oc.json
new file mode 100644 (file)
index 0000000..eb0573a
--- /dev/null
@@ -0,0 +1,348 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Boulaur",
+                       "Cedric31"
+               ]
+       },
+       "exif-imagewidth": "Largor",
+       "exif-imagelength": "Nautor",
+       "exif-bitspersample": "Bits per compausanta",
+       "exif-compression": "Tipe de compression",
+       "exif-photometricinterpretation": "Composicion dels pixèls (Modèl colorimetric)",
+       "exif-orientation": "Orientacion",
+       "exif-samplesperpixel": "Nombre de compausants (Compausantas per pixèl)",
+       "exif-planarconfiguration": "Arrengament de las donadas",
+       "exif-ycbcrsubsampling": "Taus d’escandalhatge de las compausantas de la crominança",
+       "exif-ycbcrpositioning": "Posicionament YCbCr",
+       "exif-xresolution": "Resolucion orizontala",
+       "exif-yresolution": "Resolucion verticala",
+       "exif-stripoffsets": "Emplaçament de las donadas de l’imatge",
+       "exif-rowsperstrip": "Nombre de linhas per benda",
+       "exif-stripbytecounts": "Talha en octets per benda",
+       "exif-jpeginterchangeformat": "Posicion del SOI JPEG",
+       "exif-jpeginterchangeformatlength": "Talha en octet de las donadas JPEG",
+       "exif-whitepoint": "Cromaticitat del punt blanc",
+       "exif-primarychromaticities": "Cromaticitats de las colors primàrias",
+       "exif-ycbcrcoefficients": "Coeficients de la matritz de transformacion de l’espaci colorimetric (YCbCr)",
+       "exif-referenceblackwhite": "Valors de referéncia blanc e negre",
+       "exif-datetime": "Data e ora de cambiament del fichièr",
+       "exif-imagedescription": "Títol de l’imatge",
+       "exif-make": "Fabricant de l’aparelh",
+       "exif-model": "Modèl de l’aparelh",
+       "exif-software": "Logicial utilizat",
+       "exif-artist": "Autor",
+       "exif-copyright": "Detentor del copyright",
+       "exif-exifversion": "Version exif",
+       "exif-flashpixversion": "Version Flashpix suportada",
+       "exif-colorspace": "Espaci colorimetric",
+       "exif-componentsconfiguration": "Significacion de cada compausanta",
+       "exif-compressedbitsperpixel": "Mòde de compression de l’imatge",
+       "exif-pixelxdimension": "Largor de l’imatge",
+       "exif-pixelydimension": "Nautor de l’imatge",
+       "exif-usercomment": "Comentaris de l'utilizaire",
+       "exif-relatedsoundfile": "Fichièr àudio associat",
+       "exif-datetimeoriginal": "Data e ora de la generacion de donadas",
+       "exif-datetimedigitized": "Data e ora de numerizacion",
+       "exif-subsectime": "Data de darrièr cambiament",
+       "exif-subsectimeoriginal": "Data de la presa originala",
+       "exif-subsectimedigitized": "Data de la numerizacion",
+       "exif-exposuretime": "Temps d'exposicion",
+       "exif-exposuretime-format": "$1 seg ($2)",
+       "exif-fnumber": "Nombre f (Focala)",
+       "exif-exposureprogram": "Programa d’exposicion",
+       "exif-spectralsensitivity": "Sensibilitat espectrala",
+       "exif-isospeedratings": "Sensibilitat ISO",
+       "exif-shutterspeedvalue": "velocitat d’obturacion de l'APEX",
+       "exif-aperturevalue": "Dobertura de l'APEX",
+       "exif-brightnessvalue": "Luminança APEX",
+       "exif-exposurebiasvalue": "Correccion d’exposicion",
+       "exif-maxaperturevalue": "Camp de dobertura maximal",
+       "exif-subjectdistance": "Distància del subjècte",
+       "exif-meteringmode": "Mòde de mesura",
+       "exif-lightsource": "Font de lutz",
+       "exif-flash": "Flash",
+       "exif-focallength": "Longor de focala",
+       "exif-subjectarea": "Emplaçament del subjècte",
+       "exif-flashenergy": "Energia del flash",
+       "exif-focalplanexresolution": "Resolucion orizontala focala plana",
+       "exif-focalplaneyresolution": "Resolucion verticala focala plana",
+       "exif-focalplaneresolutionunit": "Unitat de resolucion de focala plana",
+       "exif-subjectlocation": "Posicion del subjècte",
+       "exif-exposureindex": "Indèx d’exposicion",
+       "exif-sensingmethod": "Tipe de captador",
+       "exif-filesource": "Font del fichièr",
+       "exif-scenetype": "Tipe de scèna",
+       "exif-customrendered": "Tractament d’imatge personalizat",
+       "exif-exposuremode": "Mòde d’exposicion",
+       "exif-whitebalance": "Balança dels blancs",
+       "exif-digitalzoomratio": "Taus d’agrandiment numeric (zoom)",
+       "exif-focallengthin35mmfilm": "Longor de focala per un filme 35 mm",
+       "exif-scenecapturetype": "Tipe de captura de la scèna",
+       "exif-gaincontrol": "Contraròtle de luminositat",
+       "exif-contrast": "Contraste",
+       "exif-saturation": "Saturacion",
+       "exif-sharpness": "Netetat",
+       "exif-devicesettingdescription": "Descripcion de la configuracion del dispositiu",
+       "exif-subjectdistancerange": "Distància del subjècte",
+       "exif-imageuniqueid": "Identificant unic de l’imatge",
+       "exif-gpsversionid": "Version de la balisa (tag) GPS",
+       "exif-gpslatituderef": "Referéncia per la Latitud (Nòrd o Sud)",
+       "exif-gpslatitude": "Latitud",
+       "exif-gpslongituderef": "Referéncia per la longitud (Èst o Oèst)",
+       "exif-gpslongitude": "Longitud",
+       "exif-gpsaltituderef": "Referéncia d’altitud",
+       "exif-gpsaltitude": "Altitud",
+       "exif-gpstimestamp": "Ora GPS (relòtge atomic)",
+       "exif-gpssatellites": "Satellits utilizats per la mesura",
+       "exif-gpsstatus": "Estat del receptor",
+       "exif-gpsmeasuremode": "Mòde de mesura",
+       "exif-gpsdop": "Precision de la mesura",
+       "exif-gpsspeedref": "Unitat de velocitat del receptor GPS",
+       "exif-gpsspeed": "Velocitat del receptor GPS",
+       "exif-gpstrackref": "Referéncia per la direccion del movement",
+       "exif-gpstrack": "Direccion del movement",
+       "exif-gpsimgdirectionref": "Referéncia per l’orientacion de l’imatge",
+       "exif-gpsimgdirection": "Direccion de l’imatge",
+       "exif-gpsmapdatum": "Sistèma geodesic utilizat",
+       "exif-gpsdestlatituderef": "Referéncia per la latitud de la destinacion",
+       "exif-gpsdestlatitude": "Latitud de la destinacion",
+       "exif-gpsdestlongituderef": "Referéncia per la longitud de la destinacion",
+       "exif-gpsdestlongitude": "Longitud de la destinacion",
+       "exif-gpsdestbearingref": "Referéncia pel relevament de la destinacion",
+       "exif-gpsdestbearing": "Relevament de la destinacion",
+       "exif-gpsdestdistanceref": "Referéncia per la distància de la destinacion",
+       "exif-gpsdestdistance": "Distància a la destinacion",
+       "exif-gpsprocessingmethod": "Nom del metòde de tractament del GPS",
+       "exif-gpsareainformation": "Nom de la zòna GPS",
+       "exif-gpsdatestamp": "Data GPS",
+       "exif-gpsdifferential": "Correccion diferenciala GPS",
+       "exif-jpegfilecomment": "Comentari de fichièr JPEG",
+       "exif-keywords": "Mots claus",
+       "exif-worldregioncreated": "Region del mond dins la quala la fòto es estada presa",
+       "exif-countrycreated": "País dins lo qual la fòto es estada presa",
+       "exif-countrycodecreated": "Còdi del país dins lo qual la fòto es estada presa",
+       "exif-provinceorstatecreated": "Província o Estat dins lo qual la fòto es estada presa",
+       "exif-citycreated": "Vila dins la quala la fòto es estada presa",
+       "exif-sublocationcreated": "Partida de la vila dins la quala la fòto es estada presa",
+       "exif-worldregiondest": "Region del mond representada",
+       "exif-countrydest": "País representat",
+       "exif-countrycodedest": "Còdi del país representat",
+       "exif-provinceorstatedest": "Província o Estat representat",
+       "exif-citydest": "Vila representada",
+       "exif-sublocationdest": "Partida de la vila representada",
+       "exif-objectname": "Títol cort",
+       "exif-specialinstructions": "Instruccions especialas",
+       "exif-headline": "Títol",
+       "exif-credit": "Credit / provesidor",
+       "exif-source": "Font",
+       "exif-editstatus": "Estatut editorial de l'imatge",
+       "exif-urgency": "Urgéncia",
+       "exif-fixtureidentifier": "Nom element recurrent",
+       "exif-locationdest": "Luòc representat",
+       "exif-locationdestcode": "Còdi del luòc representat",
+       "exif-objectcycle": "Moment de la jornada al qual aqueste mèdia es destinat",
+       "exif-contact": "Informacions de contacte",
+       "exif-writer": "Autor",
+       "exif-languagecode": "Lenga",
+       "exif-iimversion": "version IIM",
+       "exif-iimcategory": "Categoria",
+       "exif-iimsupplementalcategory": "Categorias suplementàrias",
+       "exif-datetimeexpires": "Utilizar pas aprèp",
+       "exif-datetimereleased": "Paregut lo",
+       "exif-originaltransmissionref": "Còdi de localizacion de la transmission originala",
+       "exif-identifier": "Identificant",
+       "exif-lens": "Lentilha utilizada",
+       "exif-serialnumber": "Numèro de seria de l'aparelh de fòto",
+       "exif-cameraownername": "Proprietari de l'aparelh de fòto",
+       "exif-label": "Libellat",
+       "exif-datetimemetadata": "Data de la darrièra modificacion de las metadonadas",
+       "exif-nickname": "Nom informal de l'imatge",
+       "exif-rating": "Nòta (sus 5)",
+       "exif-rightscertificate": "Certificat de gestion dels dreits",
+       "exif-copyrighted": "Estatut del dreit d'autor",
+       "exif-copyrightowner": "Detentor del dreit d'autor",
+       "exif-usageterms": "Condicions d'utilizacion",
+       "exif-webstatement": "Declaracion de dreits d'autor en linha",
+       "exif-originaldocumentid": "Identificant unic del document original",
+       "exif-licenseurl": "URL de la licéncia",
+       "exif-morepermissionsurl": "Informacions sus las licéncias alternativas",
+       "exif-attributionurl": "Al moment de la reütilizacion d'aqueste trabalh, ligatz a",
+       "exif-preferredattributionname": "Al moment de la reütilizacion d'aqueste trabalh, creditatz",
+       "exif-pngfilecomment": "Comentari de fichièr JPEG",
+       "exif-disclaimer": "Desistiment",
+       "exif-contentwarning": "Avertiment sul contengut",
+       "exif-giffilecomment": "Comentari de fichièr GIF",
+       "exif-intellectualgenre": "Tipe d'element",
+       "exif-subjectnewscode": "Còdi del subjècte",
+       "exif-scenecode": "Còdi de scèna IPTC",
+       "exif-event": "Eveniment representat",
+       "exif-organisationinimage": "Organizacion representada",
+       "exif-personinimage": "Persona representada",
+       "exif-originalimageheight": "Nautor de l'imatge abans d'èsser requadrada",
+       "exif-originalimagewidth": "Largor de l'imatge abans d'èsser requadrada",
+       "exif-compression-1": "Sens compression",
+       "exif-compression-2": "CCITT Grop 3 Longor de l'encodatge Huffman modificat de dimension 1",
+       "exif-compression-3": "CCITT Grop 3 encodatge del fax",
+       "exif-compression-4": "CCITT Grop 4 encodatge del fax",
+       "exif-copyrighted-true": "Somés al dreit d'autor",
+       "exif-copyrighted-false": "Estat dels dreits d’autor pas definit",
+       "exif-photometricinterpretation-1": "Blanc e negre (0 pel negre)",
+       "exif-unknowndate": "Data desconeguda",
+       "exif-orientation-1": "Normala",
+       "exif-orientation-2": "Inversada orizontalament",
+       "exif-orientation-3": "Virada de 180°",
+       "exif-orientation-4": "Inversada verticalament",
+       "exif-orientation-5": "Virada de 90° dins lo sens antiorari e inversada verticalament",
+       "exif-orientation-6": "Virada de 90° dins lo sens antiorari",
+       "exif-orientation-7": "Virada de 90° dins lo sens orari e inversada verticalament",
+       "exif-orientation-8": "Virada de 90° dins lo sens orari",
+       "exif-planarconfiguration-1": "Donadas atenentas",
+       "exif-planarconfiguration-2": "Donadas separadas",
+       "exif-colorspace-65535": "Pas calibrat",
+       "exif-componentsconfiguration-0": "existís pas",
+       "exif-componentsconfiguration-5": "V",
+       "exif-exposureprogram-0": "Indefinit",
+       "exif-exposureprogram-1": "Manual",
+       "exif-exposureprogram-2": "Programa normal",
+       "exif-exposureprogram-3": "Prioritat a la dobertura",
+       "exif-exposureprogram-4": "Prioritat a l’obturacion",
+       "exif-exposureprogram-5": "Programa de creacion (preferéncia a la prigondor de camp)",
+       "exif-exposureprogram-6": "Programa d'accion (preferéncia a la velocitat d’obturacion)",
+       "exif-exposureprogram-7": "Mòde retrait (per clichats de prèp amb rèireplan fosc)",
+       "exif-exposureprogram-8": "Mòde païsatge (per de clichats de païsatges nets)",
+       "exif-subjectdistance-value": "{{PLURAL:$1|$1 mètre|$1 mètres}}",
+       "exif-meteringmode-0": "Desconegut",
+       "exif-meteringmode-1": "Mejana",
+       "exif-meteringmode-2": "Mesura centrala mejana",
+       "exif-meteringmode-3": "Espòt",
+       "exif-meteringmode-4": "MultiEspòt",
+       "exif-meteringmode-5": "Paleta",
+       "exif-meteringmode-6": "Parcial",
+       "exif-meteringmode-255": "Autra",
+       "exif-lightsource-0": "Desconeguda",
+       "exif-lightsource-1": "Lutz del jorn",
+       "exif-lightsource-2": "Fluorescent",
+       "exif-lightsource-3": "Tungstèn (lum incandescent)",
+       "exif-lightsource-4": "Flash",
+       "exif-lightsource-9": "Temps clar",
+       "exif-lightsource-10": "Temps ennivolat",
+       "exif-lightsource-11": "Ombra",
+       "exif-lightsource-12": "Esclairatge fluorescent lutz del jorn (D 5700 – 7100K)",
+       "exif-lightsource-13": "Esclairatge fluorescent blanc (N 4600 – 5400K)",
+       "exif-lightsource-14": "Esclairatge fluorescent blanc freg (W 3900 – 4500K)",
+       "exif-lightsource-15": "Esclairatge fluorescent blanc (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Lum estandard A",
+       "exif-lightsource-18": "Lum estandard B",
+       "exif-lightsource-19": "Lum estandard C",
+       "exif-lightsource-24": "Tungstèni ISO d'estudiò",
+       "exif-lightsource-255": "Autra font de lum",
+       "exif-flash-fired-0": "Flash pas desenclavat",
+       "exif-flash-fired-1": "Flash desenclavat",
+       "exif-flash-return-0": "cap d'estroboscòpi retorna pas una foncion de deteccion",
+       "exif-flash-return-2": "l'estroboscòpi retorna un lum pas detectat",
+       "exif-flash-return-3": "l'estroboscòpi retorna un lum detectat",
+       "exif-flash-mode-1": "lum del flash obligatòri",
+       "exif-flash-mode-2": "supression del flash obligatòri",
+       "exif-flash-mode-3": "Mòde automatic",
+       "exif-flash-function-1": "Pas de foncion de flash",
+       "exif-flash-redeye-1": "Mòde anti uèlhs roges",
+       "exif-focalplaneresolutionunit-2": "poce",
+       "exif-sensingmethod-1": "Pas definit",
+       "exif-sensingmethod-2": "Captador de zòna de colors monocromaticas",
+       "exif-sensingmethod-3": "Captador de zòna de colors bicromaticas",
+       "exif-sensingmethod-4": "Captador de zòna de colors tricromaticas",
+       "exif-sensingmethod-5": "Captador de color sequencial",
+       "exif-sensingmethod-7": "Captador trilinear",
+       "exif-sensingmethod-8": "Captador de color linear sequencial",
+       "exif-filesource-3": "Aparelh de fòto numeric",
+       "exif-scenetype-1": "Imatge dirèctament fotografiat",
+       "exif-customrendered-0": "Procediment normal",
+       "exif-customrendered-1": "Procediment personalizat",
+       "exif-exposuremode-0": "Exposicion automatica",
+       "exif-exposuremode-1": "Exposicion manuala",
+       "exif-exposuremode-2": "Forqueta (Bracketting) automatica",
+       "exif-whitebalance-0": "Balança dels blancs automatica",
+       "exif-whitebalance-1": "Balança dels blancs manuala",
+       "exif-scenecapturetype-0": "Estandard",
+       "exif-scenecapturetype-1": "Païsatge",
+       "exif-scenecapturetype-2": "Retrait",
+       "exif-scenecapturetype-3": "Scèna nuechenca",
+       "exif-gaincontrol-0": "Cap",
+       "exif-gaincontrol-1": "Augmentacion febla de l’aquisicion",
+       "exif-gaincontrol-2": "Augmentacion fòrta de l’aquisicion",
+       "exif-gaincontrol-3": "Reduccion febla de l’aquisicion",
+       "exif-gaincontrol-4": "Reduccion fòrta de l’aquisicion",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Feble",
+       "exif-contrast-2": "Fòrt",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Saturacion febla",
+       "exif-saturation-2": "Saturacion elevada",
+       "exif-sharpness-0": "Normala",
+       "exif-sharpness-1": "Doça",
+       "exif-sharpness-2": "Dura",
+       "exif-subjectdistancerange-0": "Desconegut",
+       "exif-subjectdistancerange-1": "Macrò",
+       "exif-subjectdistancerange-2": "Sarrat",
+       "exif-subjectdistancerange-3": "Luenhenc",
+       "exif-gpslatitude-n": "Latitud Nòrd",
+       "exif-gpslatitude-s": "Latitud Sud",
+       "exif-gpslongitude-e": "Longitud Èst",
+       "exif-gpslongitude-w": "Longitud Oèst",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|mètre|mètres}} en dessús del nivèl de la mar",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|mètre|mètres}} en dejós del nivèl de la mar",
+       "exif-gpsstatus-a": "Mesura en cors",
+       "exif-gpsstatus-v": "Interoperabilitat de la mesura",
+       "exif-gpsmeasuremode-2": "Mesura de 2 dimensions",
+       "exif-gpsmeasuremode-3": "Mesura de 3 dimensions",
+       "exif-gpsspeed-k": "Quilomètres per ora",
+       "exif-gpsspeed-m": "Miles per ora",
+       "exif-gpsspeed-n": "Noses",
+       "exif-gpsdestdistance-k": "Quilomètres",
+       "exif-gpsdestdistance-m": "Milas anglesas",
+       "exif-gpsdestdistance-n": "Milas nauticas",
+       "exif-gpsdop-excellent": "Excellenta ($1)",
+       "exif-gpsdop-good": "Bona ($1)",
+       "exif-gpsdop-moderate": "Mejana ($1)",
+       "exif-gpsdop-fair": "Passable ($1)",
+       "exif-gpsdop-poor": "Marrida ($1)",
+       "exif-objectcycle-a": "Matin solament",
+       "exif-objectcycle-p": "Serada solament",
+       "exif-objectcycle-b": "Matin e ser",
+       "exif-gpsdirection-t": "Direccion vertadièra",
+       "exif-gpsdirection-m": "Nòrd magnetic",
+       "exif-ycbcrpositioning-1": "Centrat",
+       "exif-ycbcrpositioning-2": "Cosituat",
+       "exif-dc-contributor": "Contributors",
+       "exif-dc-coverage": "Portada espaciala o temporala del mèdia",
+       "exif-dc-date": "Data(s)",
+       "exif-dc-publisher": "Editor",
+       "exif-dc-relation": "Mèdias connèxes",
+       "exif-dc-rights": "Dreits",
+       "exif-dc-source": "Mèdia font",
+       "exif-dc-type": "Tipe de mèdia",
+       "exif-rating-rejected": "Regetat",
+       "exif-isospeedratings-overflow": "Mai grand que 65535",
+       "exif-iimcategory-ace": "Arts, cultura e lésers",
+       "exif-iimcategory-clj": "Crime e dreit",
+       "exif-iimcategory-dis": "Catastròfas e accidents",
+       "exif-iimcategory-fin": "Economia e afars",
+       "exif-iimcategory-edu": "Educacion",
+       "exif-iimcategory-evn": "Environament",
+       "exif-iimcategory-hth": "Santat",
+       "exif-iimcategory-hum": "Interès uman",
+       "exif-iimcategory-lab": "Trabalh",
+       "exif-iimcategory-lif": "Mòde de vida e de lésers",
+       "exif-iimcategory-pol": "Politica",
+       "exif-iimcategory-rel": "Religion e cresenças",
+       "exif-iimcategory-sci": "Sciéncia e tecnologia",
+       "exif-iimcategory-soi": "Questions socialas",
+       "exif-iimcategory-spo": "Espòrts",
+       "exif-iimcategory-war": "Guèrra, conflictes e borrolhs",
+       "exif-iimcategory-wea": "Metèo",
+       "exif-urgency-normal": "Normala ($1)",
+       "exif-urgency-low": "Febla ($1)",
+       "exif-urgency-high": "Nauta ($1)",
+       "exif-urgency-other": "Urgéncia definida per l'utilizaire ($1)"
+}
diff --git a/languages/i18n/exif/or.json b/languages/i18n/exif/or.json
new file mode 100644 (file)
index 0000000..49afeeb
--- /dev/null
@@ -0,0 +1,348 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Jnanaranjan Sahu",
+                       "MKar",
+                       "Odisha1",
+                       "Psubhashish"
+               ]
+       },
+       "exif-imagewidth": "ଓସାର",
+       "exif-imagelength": "ଉଚ୍ଚତା",
+       "exif-bitspersample": "ଉପାଦାନ ପ୍ରତି ବିଟ",
+       "exif-compression": "ସଙ୍କୋଚନ ପ୍ରକାର",
+       "exif-photometricinterpretation": "ପିକ୍ସେଲ ଗଠନ",
+       "exif-orientation": "ଅନୁସ୍ଥାପନ (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": "Offset ରୁ JPEG SOI",
+       "exif-jpeginterchangeformatlength": "JPEG ଡାଟାର ବାଇଟ",
+       "exif-whitepoint": "ଫାଙ୍କା ଜାଗା ବର୍ଣ୍ଣିକତା",
+       "exif-primarychromaticities": "ପ୍ରାଥମିକତାର ବର୍ଣ୍ଣିକତା",
+       "exif-ycbcrcoefficients": "କଲର ସ୍ପେସ ଟ୍ରାନ୍ସଫର ମାଟ୍ରିକ୍ସ କୋଫିସିଏଣ୍ଟ",
+       "exif-referenceblackwhite": "କଳା ଧଳା ଆଧାର ମୂଲ୍ୟର ଯୋଡ଼ାଟିଏ",
+       "exif-datetime": "ଫାଇଲ ବଦଳ ତାରିଖ ଓ ସମୟ",
+       "exif-imagedescription": "ଛବିର ନାମ",
+       "exif-make": "କ୍ୟାମେରା ଉତ୍ପାଦକ",
+       "exif-model": "କ୍ୟାମେରା ମଡ଼େଲ",
+       "exif-software": "ବ୍ୟବହାର କରାଯାଇଥିବା ସଫ୍ଟବେର",
+       "exif-artist": "ଲେଖକ",
+       "exif-copyright": "ସତ୍ଵାଧିକାରୀ",
+       "exif-exifversion": "Exif ସଙ୍କଳନ",
+       "exif-flashpixversion": "ଗ୍ରହଣଯୋଗ୍ୟ ଫ୍ଲାସପିକ୍ସ ସଙ୍କଳନ",
+       "exif-colorspace": "ରଙ୍ଗ ଫାଙ୍କା ଜାଗା",
+       "exif-componentsconfiguration": "ପ୍ରତିତି ଉପାଦାନର ଅର୍ଥ",
+       "exif-compressedbitsperpixel": "ଛବି ସଙ୍କୋଚନ ଅବସ୍ଥା",
+       "exif-pixelxdimension": "ଛବି ଓସାର",
+       "exif-pixelydimension": "ଛବି ଉଚ୍ଚତା",
+       "exif-usercomment": "ସଭ୍ୟ ମତାମତ",
+       "exif-relatedsoundfile": "ସମ୍ବନ୍ଧିତ ଶବ୍ଦ ଫାଇଲ",
+       "exif-datetimeoriginal": "ତଥ୍ୟ ତିଆରିହେବାର ତାରିଖ ଓ ସମୟ",
+       "exif-datetimedigitized": "ଡିଜିଟାଇଜେସନର ତାରିଖ ଓ ସମୟ",
+       "exif-subsectime": "DateTime ସାନସେକେଣ୍ଡ",
+       "exif-subsectimeoriginal": "DateTimeOriginal ସାନ ସେକଣ୍ଡ",
+       "exif-subsectimedigitized": "DateTimeDigitized ସାନ ସେକେଣ୍ଡ",
+       "exif-exposuretime": "ଏକ୍ସପୋଜର କାଳ",
+       "exif-exposuretime-format": "$1 ସେକେଣ୍ଡ ($2)",
+       "exif-fnumber": "F ନମ୍ବର",
+       "exif-exposureprogram": "ଏକ୍ସପୋଜର ପ୍ରୋଗ୍ରାମ",
+       "exif-spectralsensitivity": "ବର୍ଣ୍ଣାଳି ସମ୍ବେଦନଶୀଳତା",
+       "exif-isospeedratings": "ISO ବେଗ ସୂଚାଙ୍କ",
+       "exif-shutterspeedvalue": "APEX ସଟର ବେଗ",
+       "exif-aperturevalue": "APEX ରନ୍ଧ୍ର",
+       "exif-brightnessvalue": "APEX ଉଜ୍ଜଳିମା",
+       "exif-exposurebiasvalue": "APEX ରନ୍ଧ୍ର ଅଲଗାଭାବ",
+       "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": "ଧଳା ରଙ୍ଗ ସନ୍ତୁଳନ",
+       "exif-digitalzoomratio": "ଡିଟିଟାଲ ଜୁମ ଅନୁପାତ",
+       "exif-focallengthin35mmfilm": "୩୫ ମିଲିମିଟର ଫିଲ୍ମରେ ଫୋକାଲ ଲମ୍ବ",
+       "exif-scenecapturetype": "ଦୃଶ୍ୟ ନେବା ପ୍ରକାର",
+       "exif-gaincontrol": "ଦୃଶ୍ୟ ନିୟନ୍ତ୍ରଣ",
+       "exif-contrast": "କଣ୍ଟ୍ରାଷ୍ଟ",
+       "exif-saturation": "ପରିପୃକ୍ତ",
+       "exif-sharpness": "ପ୍ରଖରତା",
+       "exif-devicesettingdescription": "ଉପକରଣ ସଜାଣି ବଖାଣ",
+       "exif-subjectdistancerange": "ବସ୍ତୁର ଦୂରତା ସୀମା",
+       "exif-imageuniqueid": "ଅନନ୍ୟ ଛବି ID",
+       "exif-gpsversionid": "GPS ଚିହ୍ନିତ ସଂସ୍କରଣ",
+       "exif-gpslatituderef": "ଉତ୍ତର ବା ଦକ୍ଷିଣ ଅକ୍ଷାଂଶ",
+       "exif-gpslatitude": "ଅଖ୍ୟାଂଶ",
+       "exif-gpslongituderef": "ପୂର୍ବ ବା ପଶ୍ଚିମ ଅଖ୍ୟାଂଶ",
+       "exif-gpslongitude": "ଦ୍ରାଘିମା",
+       "exif-gpsaltituderef": "ଉଚ୍ଚତା ଆଧାର",
+       "exif-gpsaltitude": "ଉଚ୍ଚତା",
+       "exif-gpstimestamp": "ଜି.ପି.ଏସ. ସମୟ (ଆଣବିକ ଘଡ଼ି)",
+       "exif-gpssatellites": "ମାପ ପାଇଁ ବ୍ୟବହାର କରାଯାଇଥିବା କୃତ୍ରିମ ଉପଗ୍ରହ",
+       "exif-gpsstatus": "ଗ୍ରହଣକାରୀ ସ୍ଥିତି",
+       "exif-gpsmeasuremode": "ମାପ ଅବସ୍ଥା",
+       "exif-gpsdop": "ମାପ ନିର୍ଭୁଲତା",
+       "exif-gpsspeedref": "ବେଗ ମାନକ",
+       "exif-gpsspeed": "ଜି.ପି.ଏସ. ଗ୍ରହଣକାରୀର ବେଗ",
+       "exif-gpstrackref": "ଗତିର ଦିଗ ନିମନ୍ତେ ଆଧାର",
+       "exif-gpstrack": "ଗତିର ଦିଗ",
+       "exif-gpsimgdirectionref": "ଛବିର ଦିଗ ନିମନ୍ତେ ଆଧାର",
+       "exif-gpsimgdirection": "ଛବିର ଦିଗ",
+       "exif-gpsmapdatum": "ଭୁତଥ୍ୟ ଗଣନା ତଥ୍ୟ ବ୍ୟବହାର କରାଯାଇଛି",
+       "exif-gpsdestlatituderef": "ଏକ ଲକ୍ଷସ୍ଥଳର ଅଖ୍ୟାଂଶ ପାଇଁ ଆଧାର",
+       "exif-gpsdestlatitude": "ଅଖ୍ୟାଂଶ ଲକ୍ଷସ୍ଥଳ",
+       "exif-gpsdestlongituderef": "ଏକ ଲକ୍ଷସ୍ଥଳର ଅଖ୍ୟାଂଶ ବା ଦ୍ରାଘିମା ପାଇଁ ଆଧାର",
+       "exif-gpsdestlongitude": "ଲକ୍ଷସ୍ଥଳର ଦ୍ରାଘିମା",
+       "exif-gpsdestbearingref": "ଏକ ଲକ୍ଷସ୍ଥଳର ଧାରଣ ପାଇଁ ଆଧାର",
+       "exif-gpsdestbearing": "ଲକ୍ଷସ୍ଥଳର ଧାରଣ",
+       "exif-gpsdestdistanceref": "ଲକ୍ଷସ୍ଥଳର ଦୂରତା ପାଇଁ ଆଧାର",
+       "exif-gpsdestdistance": "ଲକ୍ଷସ୍ଥଳକୁ ଦୂରତା",
+       "exif-gpsprocessingmethod": "ଜିପିଏସ ପ୍ରକ୍ରିୟାକରଣର ନାମ",
+       "exif-gpsareainformation": "ଜିପିଏସ ଅଞ୍ଚଳର ନାମ",
+       "exif-gpsdatestamp": "ଜିପିଏସ ତାରିଖ",
+       "exif-gpsdifferential": "GPS ତୁଳନାତ୍ମକ ସୁଧାର",
+       "exif-jpegfilecomment": "JPEG ଫାଇଲ ମତାମତ",
+       "exif-keywords": "ସୂଚକ ଶବ୍ଦ",
+       "exif-worldregioncreated": "ଜଗତର କେଉଁ ଜାଗାରେ ଛବିଟି ନିଆଯାଇଛି",
+       "exif-countrycreated": "କେଉଁ ଦେଶରେ ଛବିଟି ନିଆଯାଇଛି",
+       "exif-countrycodecreated": "ଛବିଟି ଉଠାଯାଇଥିବା ଦେଶର କୋଡ଼",
+       "exif-provinceorstatecreated": "ଛବିଟି ନିଆଯାଇଥିବା ରାଜ୍ୟ",
+       "exif-citycreated": "କେଉଁ ନଗରରେ ଛବିଟି ନିଆଯାଇଛି",
+       "exif-sublocationcreated": "ନଗରର କେଉଁ ଭାଗରେ ଛବିଟି ନିଆଯାଇଥିଲା",
+       "exif-worldregiondest": "ପୃଥିବୀର ସ୍ଥାନସବୁ ଦେଖାଇଦିଆଯାଇଛି",
+       "exif-countrydest": "ଦେଶ ଦେଖାଇଦିଆଯାଇଛି",
+       "exif-countrycodedest": "ଦେଶ ପାଇଁ କୋଡ଼ ଦେଖାଇଦିଆଯାଇଛି",
+       "exif-provinceorstatedest": "ରାଜ୍ୟ ଦେଖାଇଦିଆଯାଇଛି",
+       "exif-citydest": "ଦେଖାଯାଇଥିବା ନଗର",
+       "exif-sublocationdest": "ଦେଖାଯାଇଥିବା ନଗରର ଉପଅବସ୍ଥିତି",
+       "exif-objectname": "ଛୋଟ ଶିରୋନାମା",
+       "exif-specialinstructions": "ବିଶେଷ ସୂଚନା",
+       "exif-headline": "ଶିରୋନାମା",
+       "exif-credit": "ଶ୍ରେୟ/ପ୍ରଦାନକାରୀ",
+       "exif-source": "ମୂଳାଧାର",
+       "exif-editstatus": "ଛବିର ସମ୍ପାଦନା ସ୍ଥିତି",
+       "exif-urgency": "ଜରୁରୀକାଳୀନ",
+       "exif-fixtureidentifier": "ଏକ ସ୍ଥାନରେ ଲାଗି ରହିଥିବା ବସ୍ତୁର ନାମ",
+       "exif-locationdest": "ଅବସ୍ଥିତି ଅଙ୍କାଯାଇଛି",
+       "exif-locationdestcode": "ଅଙ୍କାଯାଇଥିବା ସ୍ଥାନର କୋଡ଼",
+       "exif-objectcycle": "ମାଧ୍ୟମଟି ଦିନର କେତେ ବେଳେ ରଖିବାକୁ ସ୍ଥିର କରାଯାଇଛି",
+       "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": "ଶେଷଥର ବଦଳାଇଯାଇଥିବା ମେଟାଡାଟାର ତାରିଖ ଦେବେ",
+       "exif-nickname": "ଛବିର ସାଧାରଣ ନାମ",
+       "exif-rating": "ବର୍ଗୀକରଣ ( ୫ ରୁ )",
+       "exif-rightscertificate": "ଅଧିକାର ପରିଚାଳନା ପ୍ରମାଣପତ୍ର",
+       "exif-copyrighted": "ପ୍ରତିଲେଖ ଅଧିକାର ଅବସ୍ଥା",
+       "exif-copyrightowner": "ସତ୍ଵାଧିକାରୀ",
+       "exif-usageterms": "ବ୍ୟବହାର କରିବା ନିମନ୍ତେ ସର୍ତ",
+       "exif-webstatement": "ଅନଲାଇନ ସତ୍ଵାଧିକାର ବିବରଣୀ",
+       "exif-originaldocumentid": "ମୂଳ ନଥିର ଅନନ୍ୟ ID",
+       "exif-licenseurl": "ସତ୍ଵାଧିକାର ଲାଇସେନ୍ସ ନିମନ୍ତେ URL",
+       "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-2": "CCITT ଗୋଠ ୩ ୧-ବିମିୟ ବଦଳାଯାଇଥିବା ହଫମାନ ରନ ଲମ୍ବ ଏନକୋଡ଼ିଙ୍ଗ",
+       "exif-compression-3": "CCITT ଗୋଠ ୩ ଫାକ୍ସ ଏନକୋଡ଼ିଙ୍ଗ",
+       "exif-compression-4": "CCITT ଗୋଠ ୪ ଫାକ୍ସ ଏନକୋଡ଼ିଙ୍ଗ",
+       "exif-copyrighted-true": "ସ୍ଵତ୍ତ୍ଵାଧିକାର ଥିବା",
+       "exif-copyrighted-false": "କପିରାଇଟ ତଥ୍ୟ ଦିଆଯାଇନାହିଁ",
+       "exif-unknowndate": "ଅଜଣା ତାରିଖ",
+       "exif-orientation-1": "ସାଧାରଣ",
+       "exif-orientation-2": "ଭୂସମାନ୍ତର ଭାବେ ବୁଲାଇଦିଆଯାଇଛି",
+       "exif-orientation-3": "୧୮୦° ବୁଲାଇଦିଆଯାଇଛି",
+       "exif-orientation-4": "ଭୁଲମ୍ବ ଭାବେ ବୁଲାଇଦିଆଯାଇଛି",
+       "exif-orientation-5": "ଘଣ୍ଟାକଣ୍ଟାର ବିପରୀତ ଦିଗରେ ୯୦° ବୁଲାଇଦିଆଯାଇଛି ଓ ଭୁଲମ୍ବ ଭାବେ ବୁଲାଇଦିଆଯାଇଛି",
+       "exif-orientation-6": "ଘଣ୍ଟାକଣ୍ଟାର ବିପରୀତ ଦିଗରେ ୯୦° ବୁଲାଇ ଦିଆଯାଇଛି",
+       "exif-orientation-7": "ଘଣ୍ଟାକଣ୍ଟାର ଦିଗରେ ୯୦° ବୁଲାଇଦିଆଯାଇଛି ଓ ଭୁଲମ୍ବ ଭାବେ ବୁଲାଇଦିଆଯାଇଛି",
+       "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-exposureprogram-5": "ସୃଜନାତ୍ମକ ପ୍ରକ୍ରିୟା (କାମର ଗଭୀରତା ଆଡ଼କୁ ଢଳିପଡ଼ିଥିବା)",
+       "exif-exposureprogram-6": "କରିବାକୁ ଥିବା କାମ (ସଟର ବେଗ ସହ ଯୋଡ଼ା)",
+       "exif-exposureprogram-7": "ପୋଟ୍ରେଟ ଅବସ୍ଥା (ପାଖ ଫଟୋ ନିମନ୍ତେ ଯେଉଁଥିରେ ପଛପଟ ଫୋକସ ବାହାରେ ଥାଏ)",
+       "exif-exposureprogram-8": "ଲାଣ୍ଡସ୍କେପ ଅବସ୍ଥା (ଲଣ୍ଡସ୍କେପ ଫଟୋ ଯେଉଁଥିରେ ପଛପଟ ଫୋକସରେ ଥାଏ)",
+       "exif-subjectdistance-value": "$1 ମିଟର",
+       "exif-meteringmode-0": "ଅଜଣା",
+       "exif-meteringmode-1": "ହାରାହାରି",
+       "exif-meteringmode-2": "ହାରାହାରି କେନ୍ଦ୍ର ଓଜନ",
+       "exif-meteringmode-3": "ଚିହ୍ନ",
+       "exif-meteringmode-4": "ବହୁ-ବିନ୍ଦୁ",
+       "exif-meteringmode-5": "ନମୁନା",
+       "exif-meteringmode-6": "କିଛି",
+       "exif-meteringmode-255": "ବାକି",
+       "exif-lightsource-0": "ଅଜଣା",
+       "exif-lightsource-1": "ଦିବାଲୋକ",
+       "exif-lightsource-2": "ଫ୍ଲୋରୋସେଣ୍ଟ",
+       "exif-lightsource-3": "ଟଙ୍ଗଷ୍ଟେନ (ଉତ୍ତପ୍ତ ଆଲୁଅ)",
+       "exif-lightsource-4": "ଫ୍ଲାସ",
+       "exif-lightsource-9": "ଶୁଖିଲା ପାଗ",
+       "exif-lightsource-10": "ମେଘୁଆ ପାଗ",
+       "exif-lightsource-11": "ଛାଇ",
+       "exif-lightsource-12": "ଦିବାଲୋକ ଫ୍ଲୋରୋସେଣ୍ଟ (D 5700 – 7100K)",
+       "exif-lightsource-13": "ଧଳା ଆଲୁଅ ଫ୍ଲୋରୋସେଣ୍ଟ (N 4600 – 5400K)",
+       "exif-lightsource-14": "ଶୀତଳ ଧଳା ଫ୍ଲୋରୋସେଣ୍ଟ (W 3900 – 4500K)",
+       "exif-lightsource-15": "ଧଳା ଫ୍ଲୋରୋସେଣ୍ଟ (WW 3200 – 3700K)",
+       "exif-lightsource-17": "ମାନକ ଆଲୁଅ A",
+       "exif-lightsource-18": "ମାନକ ଆଲୁଅ B",
+       "exif-lightsource-19": "ମାନକ ଆଲୁଅ C",
+       "exif-lightsource-24": "ISO ଷ୍ଟୁଡ଼ିଓ ଟଙ୍ଗଷ୍ଟନ",
+       "exif-lightsource-255": "ବାକି ଲାଇଟ ସୋର୍ସ",
+       "exif-flash-fired-0": "ଫ୍ଲାସ କାମ କଲାନାହିଁ",
+       "exif-flash-fired-1": "ଫ୍ଲାସ ଦିଆଗଲା",
+       "exif-flash-return-0": "ଗୋଟିଏ ବି ଷ୍ଟ୍ରୋବ ଧରିପାରିବା କାମ ହେଲାନାହିଁ",
+       "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-sensingmethod-7": "ତିନିରୈଖିକ ସେନସର",
+       "exif-sensingmethod-8": "କଲର ସିକୁଏନସିଆଲ ଲିନିଅର ସେନସର",
+       "exif-filesource-3": "ଡିଜିଟାଲ ଷ୍ଟିଲ କ୍ୟାମେରା",
+       "exif-scenetype-1": "ସିଧା ସଳଖ କ୍ୟାମେରାରୁ ନିଆହୋଇଥିବା ଫଟୋ",
+       "exif-customrendered-0": "ସାଧାରଣ ପ୍ରକ୍ରିୟା",
+       "exif-customrendered-1": "ନିର୍ଦିଷ୍ଟ ପ୍ରକ୍ରିୟା",
+       "exif-exposuremode-0": "ଆପେଆପେ ଏକ୍ସପୋଜର",
+       "exif-exposuremode-1": "ମାନୁଆଲ ଏକ୍ସପୋଜର",
+       "exif-exposuremode-2": "ଆପେଆପେ ବନ୍ଧନି ଦେବା",
+       "exif-whitebalance-0": "ଅଟୋ ଧଳା ଅନୁପାତ",
+       "exif-whitebalance-1": "ଅଟୋ ଧଳା ଅନୁପାତ",
+       "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-saturation-0": "ସାଧାରଣ",
+       "exif-saturation-1": "ଅଳ୍ପ ପରିପୃକ୍ତ",
+       "exif-saturation-2": "ଅଧିକ ପରିପୃକ୍ତ",
+       "exif-sharpness-0": "ସାଧାରଣ",
+       "exif-sharpness-1": "ନରମ",
+       "exif-sharpness-2": "ଟାଣ",
+       "exif-subjectdistancerange-0": "ଅଜଣା",
+       "exif-subjectdistancerange-1": "ବିଶାଳ",
+       "exif-subjectdistancerange-2": "ପାଖ ଦେଖା",
+       "exif-subjectdistancerange-3": "ଦୂରର ଦେଖଣା",
+       "exif-gpslatitude-n": "ଉତ୍ତର ଅକ୍ଷାଂଶ",
+       "exif-gpslatitude-s": "ଦକ୍ଷିଣ ଅକ୍ଷାଂଶ",
+       "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-gpsdestdistance-m": "ମାଇଲ",
+       "exif-gpsdestdistance-n": "ସାମୁଦ୍ରିକ ମାଇଲ",
+       "exif-gpsdop-excellent": "ଅତିଉନ୍ନତ ($1)",
+       "exif-gpsdop-good": "ଭଲ ($1)",
+       "exif-gpsdop-moderate": "ମଝିମଝିଆ ($1)",
+       "exif-gpsdop-fair": "ଉପଯୁକ୍ତ ($1)",
+       "exif-gpsdop-poor": "ଖରାପ ($1)",
+       "exif-objectcycle-a": "କେବଳ ସକାଳେ",
+       "exif-objectcycle-p": "କେବଳ ସଞ୍ଜରେ",
+       "exif-objectcycle-b": "ଉଭୟ ସକାଳେ ଓ ସଞ୍ଜରେ",
+       "exif-gpsdirection-t": "ସଠିକ ଦିଗ",
+       "exif-gpsdirection-m": "ଜ୍ୟାମିତିକ ଦିଗ",
+       "exif-ycbcrpositioning-1": "କୈନ୍ଦ୍ରିକ",
+       "exif-ycbcrpositioning-2": "ସହ-ସାଇଟ",
+       "exif-dc-contributor": "ଅବଦାନକାରୀଗଣ",
+       "exif-dc-coverage": "ସ୍ଥାନିକ ବା ଲୌକିକ",
+       "exif-dc-date": "ତାରିଖ",
+       "exif-dc-publisher": "ପ୍ରକାଶକ",
+       "exif-dc-relation": "ସମ୍ବନ୍ଧିତ ମିଡ଼ିଆ",
+       "exif-dc-rights": "ଅଧିକାର",
+       "exif-dc-source": "ମୂଳାଧାର ମାଧ୍ୟମ",
+       "exif-dc-type": "ମିଡ଼ିଆ ପ୍ରକାର",
+       "exif-rating-rejected": "ନାକଚ କରାଗଲା",
+       "exif-isospeedratings-overflow": "୬୫୫୩୫ ରୁ ବଡ଼",
+       "exif-iimcategory-ace": "କଳା, ଚଳଣି, ମନୋରଞ୍ଜନ",
+       "exif-iimcategory-clj": "ଅପରାଧ ଓ ନ୍ୟାୟ",
+       "exif-iimcategory-dis": "ପ୍ରଳୟ ଓ ଦୁର୍ଘଟଣା",
+       "exif-iimcategory-fin": "ଅର୍ଥନୀତି ଓ ବଣିଜ",
+       "exif-iimcategory-edu": "ଶିକ୍ଷା",
+       "exif-iimcategory-evn": "ପରିବେଶ",
+       "exif-iimcategory-hth": "ଦେହପା",
+       "exif-iimcategory-hum": "ମାନବିକ ଇଛା",
+       "exif-iimcategory-lab": "ଶ୍ରମ",
+       "exif-iimcategory-lif": "ଜୀବନଧାରଣ ଓ ଆମୋଦ",
+       "exif-iimcategory-pol": "ରାଜନୀତି",
+       "exif-iimcategory-rel": "ଧର୍ମ ଓ ବିଶ୍ଵାସ",
+       "exif-iimcategory-sci": "ବିଜ୍ଞାନ ଓ କାରିଗରି",
+       "exif-iimcategory-soi": "ସାମାଜିକ ଅସୁବିଧା",
+       "exif-iimcategory-spo": "ଖେଳ",
+       "exif-iimcategory-war": "ଯୁଦ୍ଧ, ବିରୋଧ ଓ ବିପ୍ଲବ",
+       "exif-iimcategory-wea": "ପାଣିପାଗ",
+       "exif-urgency-normal": "ସାଧାରଣ ($1)",
+       "exif-urgency-low": "ଉଣା ($1)",
+       "exif-urgency-high": "ଅଧିକ ($1)",
+       "exif-urgency-other": "ବ୍ୟବହାରକାରୀ ଦେଇ ଦିଆହୋଇଥିବା ଗୁରୁତ୍ଵ ($1)"
+}
diff --git a/languages/i18n/exif/os.json b/languages/i18n/exif/os.json
new file mode 100644 (file)
index 0000000..f38c614
--- /dev/null
@@ -0,0 +1,55 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Amikeco",
+                       "Bouron"
+               ]
+       },
+       "exif-imagewidth": "Уæрх",
+       "exif-imagelength": "Бæрзæнд",
+       "exif-imagedescription": "Нывы сæргонд",
+       "exif-make": "Камерæйы скæнæг",
+       "exif-model": "Камерæйы модель",
+       "exif-artist": "Автор",
+       "exif-exifversion": "Exif-ы верси",
+       "exif-usercomment": "Архайæджы фиппаинæгтæ",
+       "exif-contrast": "Контраст",
+       "exif-source": "Равзæрæн",
+       "exif-writer": "Фыссæг",
+       "exif-languagecode": "Æвзаг",
+       "exif-iimversion": "IIM-ы фæлтæр",
+       "exif-iimcategory": "Категори",
+       "exif-iimsupplementalcategory": "Æндæр категоритæ",
+       "exif-datetimeexpires": "Ма архай ацы датæйы фæстæ",
+       "exif-datetimereleased": "Рауагъды датæ",
+       "exif-identifier": "Бæрæггæнæн",
+       "exif-giffilecomment": "GIF-файлы фиппаинаг",
+       "exif-unknowndate": "Æбæрæг датæ",
+       "exif-orientation-1": "Нормалон",
+       "exif-exposureprogram-1": "Къухæй",
+       "exif-subjectdistance-value": "$1 метры",
+       "exif-meteringmode-0": "Æнæзонгæ",
+       "exif-meteringmode-1": "Рæстæмбис",
+       "exif-meteringmode-255": "Æндæр",
+       "exif-lightsource-0": "Æнæзонгæ",
+       "exif-lightsource-1": "Боны рухс",
+       "exif-sensingmethod-1": "Æбæрæг",
+       "exif-scenecapturetype-2": "Портрет",
+       "exif-gaincontrol-0": "Нæй",
+       "exif-subjectdistancerange-0": "Æнæзонгæ",
+       "exif-subjectdistancerange-1": "Макро",
+       "exif-gpsdestdistance-k": "километры",
+       "exif-dc-date": "Датæ(тæ)",
+       "exif-dc-rights": "Бартæ",
+       "exif-iimcategory-clj": "Фыдракæнд æмæ закъон",
+       "exif-iimcategory-edu": "Ахуыр",
+       "exif-iimcategory-hth": "Æнæниздзинад",
+       "exif-iimcategory-lab": "Фæллой",
+       "exif-iimcategory-pol": "Политикæ",
+       "exif-iimcategory-rel": "Дин æмæ уырнынад",
+       "exif-iimcategory-sci": "Зонад æмæ технологи",
+       "exif-iimcategory-soi": "Æхсæнадон фарстатæ",
+       "exif-iimcategory-spo": "Спорт",
+       "exif-iimcategory-war": "Хæст æмæ быцæутæ",
+       "exif-iimcategory-wea": "Боныхъæд"
+}
diff --git a/languages/i18n/exif/pa.json b/languages/i18n/exif/pa.json
new file mode 100644 (file)
index 0000000..f765830
--- /dev/null
@@ -0,0 +1,253 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Aalam",
+                       "Babanwalia",
+                       "Raj Singh",
+                       "Satdeep gill",
+                       "ਪ੍ਰਚਾਰਕ"
+               ]
+       },
+       "exif-imagewidth": "ਚੌੜਾਈ",
+       "exif-imagelength": "ਉਚਾਈ",
+       "exif-compression": "ਨਪੀੜਨ ਦੀ ਜੁਗਤ",
+       "exif-photometricinterpretation": "ਪਿਕਸਲਾਂ ਦੀ ਬਣਤਰ",
+       "exif-orientation": "ਦਿਸ਼ਾਮਾਨ",
+       "exif-samplesperpixel": "ਭਾਗਾਂ ਦੀ ਗਿਣਤੀ",
+       "exif-planarconfiguration": "ਅੰਕੜਿਆਂ ਦਾ ਇੰਤਜ਼ਾਮ",
+       "exif-ycbcrpositioning": "Y ਅਤੇ C ਦਾ ਟਿਕਾਣਾ",
+       "exif-xresolution": "ਲੇਟਵੀਂ ਨੁਕਤਾ-ਗਿਣਤੀ",
+       "exif-yresolution": "ਖੜ੍ਹਵੀਂ ਨੁਕਤਾ-ਗਿਣਤੀ",
+       "exif-stripoffsets": "ਤਸਵੀਰੀ ਅੰਕੜਿਆਂ ਦਾ ਟਿਕਾਣਾ",
+       "exif-rowsperstrip": "ਪ੍ਰਤੀ ਪੱਟੀ ਕਤਾਰਾਂ ਦੀ ਗਿਣਤੀ",
+       "exif-stripbytecounts": "ਹਰੇਕ ਨਪੀੜੀ ਪੱਟੀ 'ਚ ਬਾਈਟ",
+       "exif-jpeginterchangeformatlength": "JPEG ਸਮੱਗਰੀ ਦੇ ਬਾਈਟ",
+       "exif-whitepoint": "ਚਿੱਟੀ ਬਿੰਦੀ ਦੀ ਰੰਗਤ",
+       "exif-primarychromaticities": "ਮੁੱਢਲਿਆਂ ਦੀ ਰੰਗਤ",
+       "exif-datetime": "ਫ਼ਾਈਲ ਤਬਦੀਲੀ ਦੀ ਮਿਤੀ ਅਤੇ ਸਮਾਂ",
+       "exif-imagedescription": "ਚਿੱਤਰ ਟਾਇਟਲ",
+       "exif-make": "ਕੈਮਰਾ ਨਿਰਮਾਤਾ",
+       "exif-model": "ਕੈਮਰਾ ਮਾਡਲ",
+       "exif-software": "ਵਰਤਿਆ ਸਾਫਟਵੇਅਰ",
+       "exif-artist": "ਲੇਖਕ",
+       "exif-copyright": "ਕਾਪੀਰਾਈਟ ਟਾਇਟਲ",
+       "exif-exifversion": "ਐਗਜ਼ਿਫ਼ ਦਾ ਰੂਪ",
+       "exif-colorspace": "ਰੰਗ ਸਪੇਸ",
+       "exif-pixelxdimension": "ਤਸਵੀਰ ਦੀ ਚੌੜਾਈ",
+       "exif-pixelydimension": "ਤਸਵੀਰ ਦੀ ਲੰਬਾਈ",
+       "exif-usercomment": "ਵਰਤੋਂਕਾਰ ਦੀਆਂ ਟਿੱਪਣੀਆਂ",
+       "exif-relatedsoundfile": "ਮਿਲਦੀ-ਜੁਲਦੀ ਆਡੀਓ ਫ਼ਾਈਲ",
+       "exif-datetimeoriginal": "ਡਾਟਾ ਦੇ ਬਣਨ ਦੀ ਮਿਤੀ ਅਤੇ ਸਮਾਂ",
+       "exif-datetimedigitized": "ਅੰਕਰੂਪ ਕਰਨ ਦੀ ਮਿਤੀ ਅਤੇ ਸਮਾਂ",
+       "exif-fnumber": "ਐੱਫ਼ ਨੰਬਰ",
+       "exif-subjectdistance": "ਵਿਸ਼ੇ ਦੀ ਵਿੱਥ",
+       "exif-lightsource": "ਚਾਨਣ ਦਾ ਸਰੋਤ",
+       "exif-flash": "ਫ਼ਲੈਸ਼",
+       "exif-focallength": "ਲੈਨਜ਼ ਦੀ ਫੋਕਲ-ਲੰਬਾਈ",
+       "exif-subjectarea": "ਵਿਸ਼ਾ ਖੇਤਰ",
+       "exif-flashenergy": "ਫ਼ਲੈਸ਼ ਦੀ ਊਰਜਾ",
+       "exif-subjectlocation": "ਵਿਸ਼ੇ ਦਾ ਟਿਕਾਣਾ",
+       "exif-exposureindex": "ਉਘਾੜ ਸੂਚਕ",
+       "exif-filesource": "ਫ਼ਾਈਲ ਦਾ ਸਰੋਤ",
+       "exif-scenetype": "ਸੀਨ ਦੀ ਕਿਸਮ",
+       "exif-whitebalance": "ਚਿੱਟਾ ਸੰਤੁਲਨ",
+       "exif-contrast": "ਵਖਰੇਵਾਂ",
+       "exif-saturation": "ਰਜਾਓ",
+       "exif-sharpness": "ਤਿੱਖਾਪਣ",
+       "exif-devicesettingdescription": "ਜੰਤਰ ਦੀਆਂ ਸੈਟਿੰਗਾਂ ਦਾ ਵੇਰਵਾ",
+       "exif-gpslatituderef": "ਉੱਤਰੀ ਜਾਂ ਦੱਖਣੀ ਅਕਸ਼ਾਂਸ਼",
+       "exif-gpslatitude": "ਅਕਸ਼ਾਂਸ਼",
+       "exif-gpslongituderef": "ਪੂਰਬੀ ਜਾਂ ਪੱਛਮੀ ਰੇਖਾਂਸ਼",
+       "exif-gpslongitude": "ਰੇਖਾਂਸ਼",
+       "exif-gpsaltituderef": "ਉਚਾਈ ਦਾ ਹਵਾਲਾ",
+       "exif-gpsaltitude": "ਉਚਾਈ",
+       "exif-gpstimestamp": "ਜੀ੦ਪੀ੦ਐੱਸ ਸਮਾਂ (ਪ੍ਰਮਾਣੂ ਘੜੀ)",
+       "exif-gpssatellites": "ਮਿਣਨ ਲਈ ਵਰਤੇ ਗਏ ਉਪਗ੍ਰਹਿ",
+       "exif-gpsstatus": "ਵਸੂਲੀਏ ਦੀ ਹਾਲਤ",
+       "exif-gpsmeasuremode": "ਨਾਪ ਦਾ ਤਰੀਕਾ",
+       "exif-gpsdop": "ਨਾਪ ਦਾ ਸਹੀਪੁਣਾ",
+       "exif-gpsspeedref": "ਗਤੀ ਦੀ ਇਕਾਈ",
+       "exif-gpsspeed": "ਜੀ.ਪੀ.ਐੱਸ. ਵਸੂਲੀਏ ਦੀ ਰਫ਼ਤਾਰ",
+       "exif-gpstrack": "ਚਾਲ ਦੀ ਦਿਸ਼ਾ",
+       "exif-gpsimgdirection": "ਤਸਵੀਰ ਦੀ ਦਿਸ਼ਾ",
+       "exif-gpsdestdistance": "ਮੰਜ਼ਲ ਤੱਕ ਦੂਰੀ",
+       "exif-gpsprocessingmethod": "ਜੀ.ਪੀ.ਐੱਸ. ਕਾਰਵਾਈ ਦੇ ਤਰੀਕੇ ਦਾ ਨਾਂ",
+       "exif-gpsareainformation": "ਜੀਪੀਐੱਸ ਖੇਤਰ ਦਾ ਨਾਂ",
+       "exif-gpsdatestamp": "GPS ਮਿਤੀ",
+       "exif-keywords": "ਖ਼ਾਸ ਲਫ਼ਜ਼",
+       "exif-worldregioncreated": "ਦੁਨੀਆਂ ਦਾ ਉਹ ਇਲਾਕਾ ਜਿੱਥੇ ਇਹ ਤਸਵੀਰ ਲਈ ਗਈ ਸੀ",
+       "exif-countrycreated": "ਉਹ ਦੇਸ਼ ਜਿਸ ਵਿਚ ਇਹ ਤਸਵੀਰ ਲਈ ਗਈ ਸੀ",
+       "exif-countrycodecreated": "ਉਸ ਦੇਸ਼ ਦਾ ਕੋਡ ਜਿਸ ਵਿਚ ਇਹ ਤਸਵੀਰ ਲਈ ਗਈ ਸੀ",
+       "exif-provinceorstatecreated": "ਸੂਬਾ ਜਾਂ ਰਾਜ ਜਿਸ ਵਿਚ ਇਹ ਤਸਵੀਰ ਲਈ ਗਈ ਸੀ",
+       "exif-citycreated": "ਸ਼ਹਿਰ ਜਿਸ ਵਿਚ ਇਹ ਤਸਵੀਰ ਲਈ ਗਈ ਸੀ",
+       "exif-sublocationcreated": "ਸ਼ਹਿਰ ਦਾ ਉਹ ਟਿਕਾਣਾ ਜਿੱਥੇ ਇਹ ਤਸਵੀਰ ਲਈ ਗਈ ਸੀ",
+       "exif-worldregiondest": "ਦਰਸਾਇਆ ਗਿਆ ਦੁਨਿਆਵੀ ਖੇਤਰ",
+       "exif-countrydest": "ਦਰਸਾਇਆ ਗਿਆ ਦੇਸ਼",
+       "exif-countrycodedest": "ਦਰਸਾਏ ਗਏ ਦੇਸ਼ ਲਈ ਕੋਡ",
+       "exif-provinceorstatedest": "ਦਰਸਾਇਆ ਗਿਆ ਸੂਬਾ ਜਾਂ ਰਾਜ",
+       "exif-citydest": "ਦਰਸਾਇਆ ਗਿਆ ਸ਼ਹਿਰ",
+       "exif-sublocationdest": "ਵਿਖਾਏ ਗਏ ਸ਼ਹਿਰ ਦਾ ਟਿਕਾਣਾ",
+       "exif-objectname": "ਛੋਟਾ ਸਿਰਲੇਖ",
+       "exif-specialinstructions": "ਖ਼ਾਸ ਹਦਾਇਤਾਂ",
+       "exif-headline": "ਸਿਰਨਾਵਾਂ",
+       "exif-source": "ਸਰੋਤ",
+       "exif-editstatus": "ਤਸਵੀਰ ਦਾ ਸੰਪਾਦਕੀ ਰੁਤਬਾ",
+       "exif-urgency": "ਲੋੜਵੰਦੀ",
+       "exif-fixtureidentifier": "ਜੜਤ ਦਾ ਨਾਂ",
+       "exif-locationdest": "ਦਰਸਾਈ ਗਈ ਥਾਂ",
+       "exif-locationdestcode": "ਦਰਸਾਈ ਥਾਂ ਦਾ ਕੋਡ",
+       "exif-contact": "ਰਾਬਤੇ ਦੀ ਜਾਣਕਾਰੀ",
+       "exif-writer": "ਲੇਖਕ",
+       "exif-languagecode": "ਬੋਲੀ",
+       "exif-iimversion": "IIM ਵਰਜ਼ਨ",
+       "exif-iimcategory": "ਸ਼੍ਰੇਣੀ",
+       "exif-iimsupplementalcategory": "ਪੂਰਕ ਸ਼੍ਰੇਣੀਆਂ",
+       "exif-datetimeexpires": "ਇਸ ਮਗਰੋਂ ਨ ਵਰਤੋ",
+       "exif-identifier": "ਸ਼ਨਾਖ਼ਤਕਾਰ",
+       "exif-lens": "ਵਰਤਿਆ ਗਿਆ ਲੈਨਜ਼",
+       "exif-serialnumber": "ਕੈਮਰੇ ਦਾ ਸੀਰੀਅਲ ਨੰਬਰ",
+       "exif-cameraownername": "ਕੈਮਰੇ ਦਾ ਮਾਲਕ",
+       "exif-label": "ਲੇਬਲ",
+       "exif-datetimemetadata": "ਮੈਟਾਡਾਟਾ ਦੀ ਆਖ਼ਰੀ ਤਬਦੀਲੀ ਦੀ ਮਿਤੀ",
+       "exif-nickname": "ਤਸਵੀਰ ਦਾ ਗ਼ੈਰ-ਰਸਮੀ ਨਾਂ",
+       "exif-rating": "ਦਰਜਾ (੫ ਵਿੱਚੋਂ)",
+       "exif-rightscertificate": "ਹੱਕਾਂ ਦੇ ਪ੍ਰਬੰਧ ਦਾ ਪ੍ਰਮਾਣ-ਪੱਤਰ",
+       "exif-copyrighted": "ਕਾਪੀਰਾਈਟ ਦਰਜਾ",
+       "exif-copyrightowner": "ਕਾਪੀਰਾਈਟ ਦਾ ਮਾਲਕ",
+       "exif-usageterms": "ਵਰਤੋਂ ਦੀਆਂ ਸ਼ਰਤਾਂ",
+       "exif-webstatement": "ਕਾਪੀਰਾਈਟ ਦਾ ਆਨਲਾਈਨ ਬਿਆਨ",
+       "exif-originaldocumentid": "ਮੂਲ ਦਸਤਾਵੇਜ਼ ਦੀ ਵਿਲੱਖਣ ਸ਼ਨਾਖ਼ਤ",
+       "exif-licenseurl": "ਨਕਲ-ਹੱਕ ਲਸੰਸ ਵਾਸਤੇ ਯੂ.ਆਰ.ਐੱਲ.",
+       "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-copyrighted-true": "ਨਕਲ-ਹੱਕ ਹੇਠ",
+       "exif-photometricinterpretation-1": "ਕਾਲਾ ਅਤੇ ਚਿੱਟਾ (ਕਾਲਾ ਸਿਫ਼ਰ(੦) ਹੈ)",
+       "exif-unknowndate": "ਅਣਪਛਾਤੀ ਮਿਤੀ",
+       "exif-orientation-1": "ਸਧਾਰਨ",
+       "exif-orientation-2": "ਲੇਟਵੇਂ ਲੋਟ ਤੁਣਕਿਆ",
+       "exif-orientation-3": "੧੮੦° ਘੁਮਾਇਆ ਗਿਆ",
+       "exif-orientation-4": "ਖੜ੍ਹੇ ਲੋਟ ਤੁਣਕਿਆ",
+       "exif-orientation-6": "90° ਖੱਬੇ ਦਾਅ ਘੁੰਮਾਇਆ",
+       "exif-orientation-7": "90° ਸੱਜੇ ਦਾਅ ਘੁੰਮਾਇਆ ਅਤੇ ਖੜ੍ਹਵੇਂ ਰੂਪ ਵਿੱਚ ਪਲਟਿਆ",
+       "exif-orientation-8": "90° ਸੱਜੇ ਦਾਅ ਘੁੰਮਾਇਆ",
+       "exif-componentsconfiguration-0": "ਮੌਜੂਦ ਨਹੀਂ ਹੈ",
+       "exif-exposureprogram-0": "ਪਰਿਭਾਸ਼ਤ ਨਹੀਂ",
+       "exif-exposureprogram-1": "ਦਸਤੀ",
+       "exif-exposureprogram-2": "ਸਧਾਰਨ ਪਰੋਗਰਾਮ",
+       "exif-subjectdistance-value": "$1 ਮੀਟਰ",
+       "exif-meteringmode-0": "ਅਣਪਛਾਤਾ",
+       "exif-meteringmode-1": "ਔਸਤ",
+       "exif-meteringmode-3": "ਡੱਬ",
+       "exif-meteringmode-4": "ਬਹੁ-ਡੱਬ",
+       "exif-meteringmode-5": "ਪੈਟਰਨ",
+       "exif-meteringmode-6": "ਅਧੂਰਾ",
+       "exif-meteringmode-255": "ਹੋਰ",
+       "exif-lightsource-0": "ਅਣਜਾਣ",
+       "exif-lightsource-1": "ਦਿਨ ਦਾ ਚਾਨਣ",
+       "exif-lightsource-2": "ਫ਼ਲੋਰਚਾਨਣ",
+       "exif-lightsource-3": "ਟੰਗਸਟੱਨ (ਭਖਦਾ ਚਾਨਣ)",
+       "exif-lightsource-4": "ਫ਼ਲੈਸ਼",
+       "exif-lightsource-9": "ਵਧੀਆ ਮੌਸਮ",
+       "exif-lightsource-10": "ਬੱਦਲ ਵਾਲਾ ਮੌਸਮ",
+       "exif-lightsource-11": "ਛਾਂ",
+       "exif-lightsource-17": "ਮਿਆਰੀ ਚਾਨਣ A",
+       "exif-lightsource-18": "ਮਿਆਰੀ ਚਾਨਣ B",
+       "exif-lightsource-19": "ਮਿਆਰੀ ਚਾਨਣ C",
+       "exif-lightsource-255": "ਚਾਨਣ ਦਾ ਹੋਰ ਸਰੋਤ",
+       "exif-flash-fired-0": "ਲਿਸ਼ਕ ਨਹੀਂ ਵੱਜੀ",
+       "exif-flash-fired-1": "ਲਿਸ਼ਕ ਵੱਜੀ",
+       "exif-flash-mode-1": "ਲਿਸ਼ਕ ਦਾ ਲਾਜ਼ਮੀ ਵੱਜਣਾ",
+       "exif-flash-mode-2": "ਲਿਸ਼ਕ ਲਾਜ਼ਮੀ ਬੰਦ ਹੋਣੀ",
+       "exif-flash-mode-3": "ਆਪ-ਮੁਹਾਰਾ ਢੰਗ",
+       "exif-focalplaneresolutionunit-2": "ਇੰਚ",
+       "exif-sensingmethod-1": "ਬੇਪਰਿਭਾਸ਼ਤ",
+       "exif-customrendered-0": "ਆਮ ਕਾਰਵਾਈ",
+       "exif-customrendered-1": "ਲੋੜ ਮੁਤਾਬਕ ਕਾਰਵਾਈ",
+       "exif-exposuremode-0": "ਸਵੈ-ਉਘਾੜ",
+       "exif-exposuremode-1": "ਹੱਥੀਂ ਉਘਾੜ",
+       "exif-scenecapturetype-0": "ਸਟੈਂਡਰਡ",
+       "exif-scenecapturetype-1": "ਲੈਂਡਸਕੇਪ",
+       "exif-scenecapturetype-2": "ਪੋਰਟਰੇਟ",
+       "exif-scenecapturetype-3": "ਰਾਤ ਦਾ ਨਜ਼ਾਰਾ",
+       "exif-gaincontrol-0": "ਕੋਈ ਨਹੀਂ",
+       "exif-contrast-0": "ਸਧਾਰਨ",
+       "exif-contrast-1": "ਕੂਲ਼ਾ",
+       "exif-contrast-2": "ਕਰੜਾ",
+       "exif-saturation-0": "ਸਧਾਰਨ",
+       "exif-saturation-1": "ਘੱਟ ਰਜਾਓ",
+       "exif-saturation-2": "ਭਾਰੀ ਰਜਾਓ",
+       "exif-sharpness-0": "ਸਧਾਰਨ",
+       "exif-sharpness-1": "ਕੂਲਾ",
+       "exif-sharpness-2": "ਕਰੜਾ",
+       "exif-subjectdistancerange-0": "ਅਣਜਾਣ",
+       "exif-subjectdistancerange-1": "ਮਾਈਕਰੋ",
+       "exif-subjectdistancerange-2": "ਝਲਕ ਬੰਦ ਕਰੋ",
+       "exif-subjectdistancerange-3": "ਦੂਰ ਦਾ ਨਜ਼ਾਰਾ",
+       "exif-gpslatitude-n": "ਉੱਤਰੀ ਅਕਸ਼ਾਂਸ਼",
+       "exif-gpslatitude-s": "ਦੱਖਣੀ ਅਕਸ਼ਾਂਸ਼",
+       "exif-gpslongitude-e": "ਪੂਰਬੀ ਰੇਖਾਂਸ਼",
+       "exif-gpslongitude-w": "ਪੱਛਮੀ ਰੇਖਾਂਸ਼",
+       "exif-gpsaltitude-above-sealevel": "ਸਮੁੰਦਰ ਤਲ ਤੋਂ $1 {{PLURAL:$1|ਮੀਟਰ}} ਉੱਤੇ",
+       "exif-gpsaltitude-below-sealevel": "ਸਮੁੰਦਰ ਤਲ ਤੋਂ $1 {{PLURAL:$1|ਮੀਟਰ}} ਹੇਠਾਂ",
+       "exif-gpsstatus-a": "ਮਾਪ ਜਾਰੀ ਹੈ",
+       "exif-gpsmeasuremode-2": "੨-ਆਯਾਮੀ ਨਾਪ",
+       "exif-gpsmeasuremode-3": "੩-ਆਯਾਮੀ ਨਾਪ",
+       "exif-gpsspeed-k": "ਕਿਲੋਮੀਟਰ ਪ੍ਰਤੀ ਘੰਟਾ",
+       "exif-gpsspeed-m": "ਮੀਲ ਪ੍ਰਤੀ ਘੰਟਾ",
+       "exif-gpsspeed-n": "ਨਾਟ",
+       "exif-gpsdestdistance-k": "ਕਿਲੋਮੀਟਰ",
+       "exif-gpsdestdistance-m": "ਮੀਲ",
+       "exif-gpsdestdistance-n": "ਸਮੁੰਦਰੀ ਮੀਲ",
+       "exif-gpsdop-excellent": "ਉੱਤਮ ($1)",
+       "exif-gpsdop-good": "ਵਧੀਆ ($1)",
+       "exif-gpsdop-moderate": "ਠੀਕ-ਠਾਕ ($1)",
+       "exif-gpsdop-fair": "ਠੀਕ-ਠਾਕ ($1)",
+       "exif-gpsdop-poor": "ਘਟੀਆ ($1)",
+       "exif-objectcycle-a": "ਸਿਰਫ਼ ਸਵੇਰ",
+       "exif-objectcycle-p": "ਸਿਰਫ਼ ਸ਼ਾਮ",
+       "exif-objectcycle-b": "ਸਵੇਰ ਅਤੇ ਸ਼ਾਮ ਦੋਵੇਂ",
+       "exif-gpsdirection-t": "ਅਸਲੀ ਦਿਸ਼ਾ",
+       "exif-gpsdirection-m": "ਚੁੰਬਕੀ ਦਿਸ਼ਾ",
+       "exif-ycbcrpositioning-1": "ਕੇਂਦਰਤ",
+       "exif-dc-contributor": "ਯੋਗਦਾਨੀ",
+       "exif-dc-coverage": "ਮੀਡੀਆ ਦਾ ਸਥਾਨਕ ਅਤੇ ਵਕਤੀ ਅਧਿਕਾਰ-ਖੇਤਰ",
+       "exif-dc-date": "ਮਿਤੀ(ਆਂ)",
+       "exif-dc-publisher": "ਪ੍ਰਕਾਸ਼ਕ",
+       "exif-dc-relation": "ਸਬੰਧਤ ਮੀਡੀਆ",
+       "exif-dc-rights": "ਹੱਕ",
+       "exif-dc-source": "ਸਰੋਤ ਮੀਡੀਆ",
+       "exif-dc-type": "ਮੀਡੀਆ ਦੀ ਕਿਸਮ",
+       "exif-rating-rejected": "ਨਕਾਰਿਆ ਗਿਆ",
+       "exif-isospeedratings-overflow": "੬੫੫੩੫ ਤੋਂ ਵੱਡਾ",
+       "exif-iimcategory-ace": "ਕਲਾ, ਸੱਭਿਆਚਾਰ ਅਤੇ ਮਨੋਰੰਜਨ",
+       "exif-iimcategory-clj": "ਅਪਰਾਧ ਅਤੇ ਕਨੂੰਨ",
+       "exif-iimcategory-dis": "ਆਫ਼ਤਾਂ ਅਤੇ ਦੁਰਘਟਨਾਵਾਂ",
+       "exif-iimcategory-fin": "ਅਰਥਚਾਰਾ ਅਤੇ ਵਪਾਰ",
+       "exif-iimcategory-edu": "ਸਿੱਖਿਆ",
+       "exif-iimcategory-evn": "ਵਾਤਾਵਰਨ",
+       "exif-iimcategory-hth": "ਸਿਹਤ",
+       "exif-iimcategory-hum": "ਮਨੁੱਖੀ ਹਿਤ",
+       "exif-iimcategory-lab": "ਮਜ਼ਦੂਰੀ",
+       "exif-iimcategory-lif": "ਜੀਵਨ-ਸ਼ੈਲੀ ਅਤੇ ਅਰਾਮ",
+       "exif-iimcategory-pol": "ਸਿਆਸਤ",
+       "exif-iimcategory-rel": "ਧਰਮ ਅਤੇ ਮਤ",
+       "exif-iimcategory-sci": "ਵਿਗਿਆਨ ਅਤੇ ਤਕਨਾਲੋਜੀ",
+       "exif-iimcategory-soi": "ਸਮਾਜਕ ਮੁੱਦੇ",
+       "exif-iimcategory-spo": "ਖੇਡਾਂ",
+       "exif-iimcategory-war": "ਯੁੱਧ, ਤਕਰਾਰ ਅਤੇ ਅਸ਼ਾਂਤੀ",
+       "exif-iimcategory-wea": "ਮੌਸਮ",
+       "exif-urgency-normal": "ਸਧਾਰਨ ($1)",
+       "exif-urgency-low": "ਨੀਵਾਂ ($1)",
+       "exif-urgency-high": "ਉੱਚਾ ($1)"
+}
diff --git a/languages/i18n/exif/pam.json b/languages/i18n/exif/pam.json
new file mode 100644 (file)
index 0000000..025f150
--- /dev/null
@@ -0,0 +1,168 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Katimawan2005",
+                       "Val2397"
+               ]
+       },
+       "exif-imagewidth": "Lapad",
+       "exif-imagelength": "Katas",
+       "exif-bitspersample": "Bit balang dake (component)",
+       "exif-compression": "Paralan/sistema ning pamamitpit (compression scheme)",
+       "exif-photometricinterpretation": "Pamanayus (composition) kareng pixel",
+       "exif-orientation": "Pangabili/ayus (orientation)",
+       "exif-samplesperpixel": "Bilang da reng dake (components)",
+       "exif-planarconfiguration": "Pamaniamasan king data (data arrangement)",
+       "exif-xresolution": "Linong pakera (horizontal resolution)",
+       "exif-yresolution": "Linong patikdo (vertical resolution)",
+       "exif-stripoffsets": "Pangabili ning data tungkul king larawan (image data location)",
+       "exif-jpeginterchangeformatlength": "Byte ning JPEG data",
+       "exif-primarychromaticities": "Chromaticities da reng primarities",
+       "exif-referenceblackwhite": "Paris da reng maputi ampong matuling a reference value",
+       "exif-datetime": "Petsa ampong oras ning pamanaliling simpan (file change)",
+       "exif-imagedescription": "Bansag ning larawan",
+       "exif-make": "Ginawa king camera",
+       "exif-model": "Modelu ning camera",
+       "exif-software": "Software a megamit",
+       "exif-artist": "Sinulat",
+       "exif-copyright": "Tatalan king katulirang mangopia/copyright",
+       "exif-exifversion": "Bersion ning Exif",
+       "exif-flashpixversion": "Bersion ning Flashpix a susuportan na",
+       "exif-colorspace": "Pirinan kule (color space)",
+       "exif-componentsconfiguration": "Kabaldugan ning balang dake (component)",
+       "exif-compressedbitsperpixel": "Paralan/ayus pamamitpit larawan (image compression mode)",
+       "exif-pixelxdimension": "Ustung lapad ning larawan",
+       "exif-pixelydimension": "Ustung katas ning larawan",
+       "exif-usercomment": "Komentu da ring talagamit",
+       "exif-relatedsoundfile": "Makaugneng simpan a katni (audio file)",
+       "exif-datetimeoriginal": "Petsa ampong oras ning pamaglalang king data (data generation)",
+       "exif-datetimedigitized": "Petsa ampong oras ning pamag-digitize",
+       "exif-subsectime": "PetsaOras subsecond",
+       "exif-subsectimeoriginal": "PetsaOrasOrihinal subsecond",
+       "exif-subsectimedigitized": "PetsaOrasMakadigitize subsecond",
+       "exif-exposuretime": "Oras a makabilad (exposure time)",
+       "exif-exposuretime-format": "$1 seg ($2)",
+       "exif-isospeedratings": "sukad king bilis a ISO (ISO speed rating)",
+       "exif-shutterspeedvalue": "Bilis ning shutter",
+       "exif-aperturevalue": "Busbus (aperture)",
+       "exif-brightnessvalue": "Sala",
+       "exif-maxaperturevalue": "Pekamaragul a busbus king gabun (maximum land aperture)",
+       "exif-subjectdistance": "Dayu ning kukwanan",
+       "exif-meteringmode": "Paralan ning pamaniukad (metering mode)",
+       "exif-lightsource": "Panibatan ning salâ",
+       "exif-focallength": "Focal length ning lenti",
+       "exif-subjectarea": "Leparan ning kukuanan (subject area)",
+       "exif-flashenergy": "Enerhia ning flash",
+       "exif-subjectlocation": "Lugal/karinan ning kukuanan",
+       "exif-filesource": "Pikuanan king simpan",
+       "exif-scenetype": "Uri ning eksena (scene type)",
+       "exif-customrendered": "Pasadiang pamanayus king larawan (custom image processing)",
+       "exif-exposuremode": "Paralan ning pamamilad (exposure mode)",
+       "exif-whitebalance": "Timbang ning Maputi (White Balance)",
+       "exif-scenecapturetype": "Uri ning pamangua king eksena (scene capture type)",
+       "exif-gaincontrol": "Pamag-control king eksena",
+       "exif-contrast": "Pamiyaliwa (contrast)",
+       "exif-imageuniqueid": "ID ning larawan a alang kalupa (unique image ID)",
+       "exif-gpsversionid": "Bersion ning tatak a GPS (GPS tag version)",
+       "exif-gpslatituderef": "Latitude king Pangulu o Mauli",
+       "exif-gpslongituderef": "Longitude king Aslagan o Albugan",
+       "exif-gpsaltituderef": "Dalerayan king kátas (Altitude reference)",
+       "exif-gpsaltitude": "Kátas",
+       "exif-gpstimestamp": "Oras a GPS (relong atomiku)",
+       "exif-gpssatellites": "Deng satellite a megamit king pamaniukad",
+       "exif-gpsstatus": "Kabilian nin tatanggap (receiver status)",
+       "exif-gpsmeasuremode": "Paralan ning pamanyukad",
+       "exif-gpsspeedref": "Sukad king bilis (speed unit)",
+       "exif-gpsspeed": "Bilis ning talatanggap GPS (GPS receiver)",
+       "exif-gpstrack": "Direksiun ning kimut",
+       "exif-gpsimgdirectionref": "Dalerayan (reference) para king direksiun/arapan ning larawan",
+       "exif-gpsimgdirection": "Direksiun/arapan ning larawan",
+       "exif-gpsmapdatum": "Datos king pamaniukad leparan (geodetic survey data) a megamit",
+       "exif-gpsdestlatituderef": "Dalerayan (reference) king latitude ning puntalan",
+       "exif-gpsdestlongituderef": "Dalerayan para king longitude ning puntalan",
+       "exif-gpsdestlongitude": "Longitude ning puntalan",
+       "exif-gpsdestbearingref": "Dalerayan king kabilian ning puntalan (reference for bearing of destination)",
+       "exif-gpsdestbearing": "Kabilian ning puntalan (bearing of destination)",
+       "exif-gpsdestdistanceref": "Dalerayan (reference) king dayu ketang puntalan",
+       "exif-gpsdestdistance": "Dayu ketang puntalan",
+       "exif-gpsprocessingmethod": "Lagyu ning paralan ning pamag-prosesu king GPS",
+       "exif-gpsareainformation": "Lagyu ning lugal king GPS",
+       "exif-gpsdatestamp": "Petsa ning GPS",
+       "exif-gpsdifferential": "Pamanulid king pamialiwa ning GPS (GPS differential correction)",
+       "exif-worldregioncreated": "Labuad nung nu ya meyakua ing litratu",
+       "exif-countrycreated": "Bangsa nung nokarin ya meyakua ing litratu",
+       "exif-countrydest": "Bangsang makalto",
+       "exif-provinceorstatedest": "Lalawigan o bangsang makalto",
+       "exif-citydest": "Lakanbalen makalto",
+       "exif-objectname": "Makuyad a bansag",
+       "exif-source": "Pikuanan",
+       "exif-cameraownername": "Mikibandi keng paglitratu",
+       "exif-compression-1": "E makapitpit (uncompressed)",
+       "exif-unknowndate": "E makabili ing petsa",
+       "exif-orientation-1": "Karaniwan",
+       "exif-orientation-2": "Mitumbalik yang pakera (horizontally)",
+       "exif-orientation-3": "Pepadurut yang 180°",
+       "exif-orientation-4": "Mitumbalik yang patikdo (vertically)",
+       "exif-orientation-5": "Dinurut yang 90° pa-kaili at mitumbalik yang patikdo (vertically)",
+       "exif-orientation-6": "Pepadurut yang 90° a pa-wanan",
+       "exif-orientation-7": "Dinurut yang 90° pa-wanan at mitumbalik patikdo (vertically)",
+       "exif-orientation-8": "Pepadurut yang 90° a pa-kaili",
+       "exif-planarconfiguration-1": "ayus a bikual-bikual (chunky format)",
+       "exif-planarconfiguration-2": "ayus a patag (planar format)",
+       "exif-componentsconfiguration-0": "alang anti kaniti",
+       "exif-exposureprogram-0": "E malino/e mirinan kabaldugan (undefined)",
+       "exif-exposureprogram-1": "Gematan (manual)",
+       "exif-exposureprogram-2": "Karaniwan a program",
+       "exif-exposureprogram-3": "Pamituki-tuki king aperture/busbus (aperture priority)",
+       "exif-exposureprogram-4": "Pamituki-tuki king shutter/paniara (shutter priority)",
+       "exif-exposureprogram-5": "Makudtang program [creative program] (makakiling king lalam ning field)",
+       "exif-exposureprogram-6": "Program a kikimit [action] (makakiling king mabilis a shutter)",
+       "exif-exposureprogram-7": "Askeng patikdo/portrait mode (kareng letratung malapit nung mapula ya ing gulut/background)",
+       "exif-exposureprogram-8": "Askeng pakera/landscape mode (kareng letratung pakera nung nu malino [in focus] ya ing gulut/background)",
+       "exif-subjectdistance-value": "$1 metru",
+       "exif-meteringmode-0": "Alang impormasiun",
+       "exif-meteringmode-3": "Tuldik (spot)",
+       "exif-meteringmode-255": "Aliwa",
+       "exif-lightsource-0": "E mesabi",
+       "exif-lightsource-1": "Sala ning aldo",
+       "exif-lightsource-2": "Salang fluorescent",
+       "exif-lightsource-3": "Tungsten (bombilla)",
+       "exif-lightsource-9": "Masanting a panaun",
+       "exif-lightsource-10": "Maulap a panaun",
+       "exif-lightsource-11": "Masalilung",
+       "exif-lightsource-17": "Karaniwan a sulung A",
+       "exif-lightsource-18": "Karaniwan a sulung B",
+       "exif-lightsource-19": "Karaniwan a sulung C",
+       "exif-lightsource-255": "Aliwang pikuanan sala",
+       "exif-focalplaneresolutionunit-2": "pulgada",
+       "exif-sensingmethod-1": "E mebanggit (undefined)",
+       "exif-scenetype-1": "Metung a letratung deretsung mekua",
+       "exif-customrendered-0": "Karaniwan a paralan",
+       "exif-customrendered-1": "Paralan/prosesung pasadia (custom process)",
+       "exif-exposuremode-0": "Tambing/otomatikung makabilad (auto exposure)",
+       "exif-scenecapturetype-0": "Karaniwan (standard)",
+       "exif-scenecapturetype-1": "Pakera (landscape)",
+       "exif-scenecapturetype-2": "Patikdo (portrait)",
+       "exif-scenecapturetype-3": "Eksena neng bengi",
+       "exif-gaincontrol-0": "Ala",
+       "exif-contrast-0": "Karaniwan",
+       "exif-contrast-1": "Lambut",
+       "exif-contrast-2": "Sias",
+       "exif-saturation-0": "Karaniwan",
+       "exif-sharpness-0": "Karaniwan (normal)",
+       "exif-sharpness-1": "Malambut",
+       "exif-sharpness-2": "Masias",
+       "exif-subjectdistancerange-0": "E malino",
+       "exif-subjectdistancerange-2": "Malapit pangakua",
+       "exif-subjectdistancerange-3": "Marayu pangakua",
+       "exif-gpslatitude-n": "Latitude king Pangulu/Norti",
+       "exif-gpslatitude-s": "Latitude king Mauli/Sur",
+       "exif-gpslongitude-e": "Longitude king Aslagan",
+       "exif-gpslongitude-w": "Longitude king Albugan",
+       "exif-gpsstatus-a": "Kasalungsungan a mararapat ing pamaniukad",
+       "exif-gpsmeasuremode-2": "Pamaniukad a 2-dimensional",
+       "exif-gpsmeasuremode-3": "Pamaniukad a 3-dimensional",
+       "exif-gpsspeed-k": "Kilometru balang oras",
+       "exif-gpsspeed-m": "Milla balang oras",
+       "exif-gpsdirection-t": "Tutung direksiun"
+}
diff --git a/languages/i18n/exif/pl.json b/languages/i18n/exif/pl.json
new file mode 100644 (file)
index 0000000..1fe6eff
--- /dev/null
@@ -0,0 +1,354 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Chrumps",
+                       "Derbeth",
+                       "Matma Rex",
+                       "Sp5uhe",
+                       "Stlmch"
+               ]
+       },
+       "exif-imagewidth": "Szerokość",
+       "exif-imagelength": "Wysokość",
+       "exif-bitspersample": "Bitów na próbkę",
+       "exif-compression": "Metoda kompresji",
+       "exif-photometricinterpretation": "Interpretacja fotometryczna",
+       "exif-orientation": "Orientacja obrazu",
+       "exif-samplesperpixel": "Próbek na piksel",
+       "exif-planarconfiguration": "Rozkład danych",
+       "exif-ycbcrsubsampling": "Podpróbkowanie Y do C",
+       "exif-ycbcrpositioning": "Rozmieszczenie Y i C",
+       "exif-xresolution": "Rozdzielczość w poziomie",
+       "exif-yresolution": "Rozdzielczość w pionie",
+       "exif-stripoffsets": "Przesunięcie pasów obrazu",
+       "exif-rowsperstrip": "Liczba wierszy na pas obrazu",
+       "exif-stripbytecounts": "Liczba bajtów na pas obrazu",
+       "exif-jpeginterchangeformat": "Położenie pierwszego bajtu miniaturki obrazu",
+       "exif-jpeginterchangeformatlength": "Liczba bajtów miniaturki JPEG",
+       "exif-whitepoint": "Punkt bieli",
+       "exif-primarychromaticities": "Kolory trzech barw głównych",
+       "exif-ycbcrcoefficients": "Macierz współczynników transformacji barw z RGB na YCbCr",
+       "exif-referenceblackwhite": "Wartość punktu odniesienia czerni i bieli",
+       "exif-datetime": "Data i czas modyfikacji pliku",
+       "exif-imagedescription": "Tytuł lub opis obrazu",
+       "exif-make": "Producent aparatu",
+       "exif-model": "Model aparatu",
+       "exif-software": "Użyte oprogramowanie",
+       "exif-artist": "Autor",
+       "exif-copyright": "Właściciel praw autorskich",
+       "exif-exifversion": "Wersja standardu Exif",
+       "exif-flashpixversion": "Obsługiwana wersja Flashpix",
+       "exif-colorspace": "Przestrzeń kolorów",
+       "exif-componentsconfiguration": "Znaczenie składowych",
+       "exif-compressedbitsperpixel": "Skompresowanych bitów na piksel",
+       "exif-pixelxdimension": "Szerokość obrazu",
+       "exif-pixelydimension": "Wysokość obrazu",
+       "exif-usercomment": "Komentarz użytkownika",
+       "exif-relatedsoundfile": "Powiązany plik audio",
+       "exif-datetimeoriginal": "Data i czas utworzenia oryginału",
+       "exif-datetimedigitized": "Data i czas zeskanowania",
+       "exif-subsectime": "Data i czas modyfikacji pliku – ułamki sekund",
+       "exif-subsectimeoriginal": "Data i czas utworzenia oryginału – ułamki sekund",
+       "exif-subsectimedigitized": "Data i czas zeskanowania – ułamki sekund",
+       "exif-exposuretime": "Czas ekspozycji",
+       "exif-exposuretime-format": "$1 s ($2)",
+       "exif-fnumber": "Wartość przysłony",
+       "exif-fnumber-format": "f&nbsp;/&nbsp;$1",
+       "exif-exposureprogram": "Program ekspozycji",
+       "exif-spectralsensitivity": "Czułość widmowa",
+       "exif-isospeedratings": "Czułość aparatu zgodnie z&nbsp;normą ISO&nbsp;12232",
+       "exif-shutterspeedvalue": "Szybkość migawki",
+       "exif-aperturevalue": "Przysłona obiektywu",
+       "exif-brightnessvalue": "Jasność",
+       "exif-exposurebiasvalue": "Odchylenie ekspozycji",
+       "exif-maxaperturevalue": "Maksymalna wartość przysłony",
+       "exif-subjectdistance": "Odległość od obiektu",
+       "exif-meteringmode": "Tryb pomiaru",
+       "exif-lightsource": "Rodzaj źródła światła",
+       "exif-flash": "Lampa błyskowa",
+       "exif-focallength": "Długość ogniskowej obiektywu",
+       "exif-focallength-format": "$1&nbsp;mm",
+       "exif-subjectarea": "Położenie i obszar głównego motywu obrazu",
+       "exif-flashenergy": "Energia lampy błyskowej",
+       "exif-focalplanexresolution": "Rozdzielczość w poziomie płaszczyzny odwzorowania obiektywu",
+       "exif-focalplaneyresolution": "Rozdzielczość w pionie płaszczyzny odwzorowania obiektywu",
+       "exif-focalplaneresolutionunit": "Jednostka rozdzielczości płaszczyzny odwzorowania obiektywu",
+       "exif-subjectlocation": "Położenie głównego motywu obrazu",
+       "exif-exposureindex": "Indeks ekspozycji",
+       "exif-sensingmethod": "Metoda pomiaru (rodzaj przetwornika)",
+       "exif-filesource": "Typ źródła pliku",
+       "exif-scenetype": "Rodzaj sceny",
+       "exif-customrendered": "Wstępnie przetworzony (poddany obróbce)",
+       "exif-exposuremode": "Tryb ekspozycji",
+       "exif-whitebalance": "Balans bieli",
+       "exif-digitalzoomratio": "Współczynnik powiększenia cyfrowego",
+       "exif-focallengthin35mmfilm": "Długość ogniskowej, odpowiednik dla filmu 35mm",
+       "exif-scenecapturetype": "Rodzaj uchwycenia sceny",
+       "exif-gaincontrol": "Wzmocnienie jasności obrazu",
+       "exif-contrast": "Kontrast obrazu",
+       "exif-saturation": "Nasycenie kolorów obrazu",
+       "exif-sharpness": "Ostrość obrazu",
+       "exif-devicesettingdescription": "Opis ustawień urządzenia",
+       "exif-subjectdistancerange": "Odległość od obiektu",
+       "exif-imageuniqueid": "Unikalny identyfikator obrazu",
+       "exif-gpsversionid": "Wersja formatu danych GPS",
+       "exif-gpslatituderef": "Szerokość geograficzna (północ/południe)",
+       "exif-gpslatitude": "Szerokość geograficzna",
+       "exif-gpslongituderef": "Długość geograficzna (wschód/zachód)",
+       "exif-gpslongitude": "Długość geograficzna",
+       "exif-gpsaltituderef": "Wysokość nad poziomem morza (odniesienie)",
+       "exif-gpsaltitude": "Wysokość nad poziomem morza",
+       "exif-gpstimestamp": "Czas GPS (zegar atomowy)",
+       "exif-gpssatellites": "Satelity użyte do pomiaru",
+       "exif-gpsstatus": "Otrzymany status",
+       "exif-gpsmeasuremode": "Tryb pomiaru",
+       "exif-gpsdop": "Precyzja pomiaru",
+       "exif-gpsspeedref": "Jednostka prędkości",
+       "exif-gpsspeed": "Prędkość pozioma",
+       "exif-gpstrackref": "Poprawka pomiędzy kierunkiem i celem",
+       "exif-gpstrack": "Kierunek ruchu",
+       "exif-gpsimgdirectionref": "Poprawka dla kierunku zdjęcia",
+       "exif-gpsimgdirection": "Kierunek zdjęcia",
+       "exif-gpsmapdatum": "Model pomiaru geodezyjnego",
+       "exif-gpsdestlatituderef": "Północna lub południowa szerokość geograficzna celu",
+       "exif-gpsdestlatitude": "Szerokość geograficzna celu",
+       "exif-gpsdestlongituderef": "Wschodnia lub zachodnia długość geograficzna celu",
+       "exif-gpsdestlongitude": "Długość geograficzna celu",
+       "exif-gpsdestbearingref": "Znacznik namiaru na cel (kierunku)",
+       "exif-gpsdestbearing": "Namiar na cel (kierunek)",
+       "exif-gpsdestdistanceref": "Znacznik odległości do celu",
+       "exif-gpsdestdistance": "Odległość od celu",
+       "exif-gpsprocessingmethod": "Nazwa metody GPS",
+       "exif-gpsareainformation": "Nazwa przestrzeni GPS",
+       "exif-gpsdatestamp": "Data GPS",
+       "exif-gpsdifferential": "Korekcja różnicy GPS",
+       "exif-jpegfilecomment": "Komentarz pliku JPEG",
+       "exif-keywords": "Słowa kluczowe",
+       "exif-worldregioncreated": "Region świata, w którym zdjęcie zostało wykonane",
+       "exif-countrycreated": "Kraj, w którym zdjęcie zostało wykonane",
+       "exif-countrycodecreated": "Kod kraju, w którym zdjęcie zostało wykonane",
+       "exif-provinceorstatecreated": "Województwo, prowincja lub stan, w którym zdjęcie zostało wykonane",
+       "exif-citycreated": "Miasto, w którym zdjęcie zostało wykonane",
+       "exif-sublocationcreated": "Lokalizacja w mieście, w której zdjęcie zostało wykonane",
+       "exif-worldregiondest": "Ukazany region świata",
+       "exif-countrydest": "Ukazany kraj",
+       "exif-countrycodedest": "Kod ukazanego kraju",
+       "exif-provinceorstatedest": "Ukazane województwo, prowincja lub stan",
+       "exif-citydest": "Ukazane miasto",
+       "exif-sublocationdest": "Ukazana lokalizacja w mieście",
+       "exif-objectname": "Krótki tytuł",
+       "exif-specialinstructions": "Specjalne instrukcje",
+       "exif-headline": "Nagłówek",
+       "exif-credit": "Dostawca",
+       "exif-source": "Źródło",
+       "exif-editstatus": "Stan w procesie edycji obrazu",
+       "exif-urgency": "Pilność",
+       "exif-fixtureidentifier": "Tytuł działu",
+       "exif-locationdest": "Pełna nazwa prezentowanej lokalizacji",
+       "exif-locationdestcode": "Kod prezentowanej lokalizacji",
+       "exif-objectcycle": "Pora dnia, w której wolno mediom prezentować zawartość",
+       "exif-contact": "Kontakt",
+       "exif-writer": "Autor",
+       "exif-languagecode": "Język",
+       "exif-iimversion": "Wersja IIM",
+       "exif-iimcategory": "Kategoria",
+       "exif-iimsupplementalcategory": "Dodatkowe kategorie",
+       "exif-datetimeexpires": "Nie należy używać po",
+       "exif-datetimereleased": "Wydany",
+       "exif-originaltransmissionref": "Kod lokalizacji pierwotnej transmisji",
+       "exif-identifier": "Identyfikator",
+       "exif-lens": "Użyty obiektyw",
+       "exif-serialnumber": "Numer seryjny aparatu",
+       "exif-cameraownername": "Właściciel aparatu",
+       "exif-label": "Etykieta",
+       "exif-datetimemetadata": "Data ostatniej modyfikacji metadanych",
+       "exif-nickname": "Nieformalna nazwa obrazu",
+       "exif-rating": "Ocena (od 1 do 5)",
+       "exif-rightscertificate": "Certyfikat zarządzania prawami autorskimi",
+       "exif-copyrighted": "Ochrona prawem autorskim",
+       "exif-copyrightowner": "Właściciel praw autorskich",
+       "exif-usageterms": "Warunki wykorzystania",
+       "exif-webstatement": "Szczegółowe informacje o prawach autorskich dostępne online",
+       "exif-originaldocumentid": "Unikalny identyfikator oryginalnego dokumentu",
+       "exif-licenseurl": "Adres URL licencji",
+       "exif-morepermissionsurl": "Informacja o użyciu na zasadach innych licencji",
+       "exif-attributionurl": "Wykorzystując tę pracę należy zamieścić link do",
+       "exif-preferredattributionname": "Wykorzystując tę pracę należy wskazać autora",
+       "exif-pngfilecomment": "Komentarz pliku w formacie PNG",
+       "exif-disclaimer": "Zrzeczenie się odpowiedzialności",
+       "exif-contentwarning": "Ostrzeżenie dotyczące zawartości",
+       "exif-giffilecomment": "Komentarz pliku w formacie GIF",
+       "exif-intellectualgenre": "Typ elementu",
+       "exif-subjectnewscode": "Kod IPTC tematu",
+       "exif-scenecode": "Kod IPTC sceny",
+       "exif-event": "Przedstawione wydarzenie",
+       "exif-organisationinimage": "Przedstawiona organizacja",
+       "exif-personinimage": "Przedstawiona osoba",
+       "exif-originalimageheight": "Wysokość obrazu zanim został przycięty",
+       "exif-originalimagewidth": "Szerokość obrazu zanim został przycięty",
+       "exif-compression-1": "nieskompresowany",
+       "exif-compression-2": "CCITT Grupa 3 Jednowymiarowe zmodyfikowane kodowanie długości algorytmem Huffmana",
+       "exif-compression-3": "CCITT Grupa 3 kodowanie faksowe",
+       "exif-compression-4": "CCITT Grupa 4 kodowanie faksowe",
+       "exif-copyrighted-true": "Chronione prawem autorskim",
+       "exif-copyrighted-false": "Status praw autorskich nieznany",
+       "exif-photometricinterpretation-1": "Czarny i biały (czarny to 0)",
+       "exif-unknowndate": "nieznana data",
+       "exif-orientation-1": "normalna",
+       "exif-orientation-2": "odbicie lustrzane w poziomie",
+       "exif-orientation-3": "obraz obrócony o 180°",
+       "exif-orientation-4": "odbicie lustrzane w pionie",
+       "exif-orientation-5": "obraz obrócony o 90° przeciwnie do ruchu wskazówek zegara i odbicie lustrzane w pionie",
+       "exif-orientation-6": "Obrócony o 90° przeciwnie do wskazówek zegara",
+       "exif-orientation-7": "obrót o 90° zgodnie ze wskazówkami zegara i odbicie lustrzane w pionie",
+       "exif-orientation-8": "Obrócony o 90° zgodnie z ruchem wskazówek zegara",
+       "exif-planarconfiguration-1": "format masywny",
+       "exif-planarconfiguration-2": "format powierzchniowy",
+       "exif-xyresolution-i": "$1&nbsp;punktów na cal",
+       "exif-xyresolution-c": "$1&nbsp;punktów na centymetr",
+       "exif-colorspace-65535": "Nie skalibrowano",
+       "exif-componentsconfiguration-0": "nie istnieje",
+       "exif-exposureprogram-0": "niezdefiniowany",
+       "exif-exposureprogram-1": "ręczny",
+       "exif-exposureprogram-2": "standardowy",
+       "exif-exposureprogram-3": "preselekcja przysłony",
+       "exif-exposureprogram-4": "preselekcja migawki",
+       "exif-exposureprogram-5": "kreatywny (duża głębia ostrości)",
+       "exif-exposureprogram-6": "aktywny (duża szybkość migawki)",
+       "exif-exposureprogram-7": "tryb portretowy (dla zdjęć z bliska, z nieostrym tłem)",
+       "exif-exposureprogram-8": "tryb krajobrazowy (dla zdjęć wykonywanych z dużej odległości z ostrością ustawioną na tło)",
+       "exif-subjectdistance-value": "$1 metrów",
+       "exif-meteringmode-0": "nieokreślony",
+       "exif-meteringmode-1": "średnia",
+       "exif-meteringmode-2": "średnia ważona",
+       "exif-meteringmode-3": "punktowy",
+       "exif-meteringmode-4": "wielopunktowy",
+       "exif-meteringmode-5": "próbkowanie",
+       "exif-meteringmode-6": "częściowy",
+       "exif-meteringmode-255": "inny",
+       "exif-lightsource-0": "nieznany",
+       "exif-lightsource-1": "dzienne",
+       "exif-lightsource-2": "jarzeniowe",
+       "exif-lightsource-3": "sztuczne (żarowe)",
+       "exif-lightsource-4": "lampa błyskowa (flesz)",
+       "exif-lightsource-9": "dzienne (dobra pogoda)",
+       "exif-lightsource-10": "dzienne (pochmurno)",
+       "exif-lightsource-11": "cień",
+       "exif-lightsource-12": "jarzeniowe dzienne (temperatura barwowa 5700 – 7100K)",
+       "exif-lightsource-13": "jarzeniowe ciepłe (temperatura barwowa 4600 – 5400K)",
+       "exif-lightsource-14": "jarzeniowe zimne (temperatura barwowa 3900 – 4500K)",
+       "exif-lightsource-15": "jarzeniowe białe (temperatura barwowa 3200 – 3700K)",
+       "exif-lightsource-17": "standardowe A",
+       "exif-lightsource-18": "standardowe B",
+       "exif-lightsource-19": "standardowe C",
+       "exif-lightsource-24": "żarowe studyjne ISO",
+       "exif-lightsource-255": "Inne źródło światła",
+       "exif-flash-fired-0": "Bez błysku flesza",
+       "exif-flash-fired-1": "Z błyskiem flesza",
+       "exif-flash-return-0": "bez funkcji wykrywania światła odbitego",
+       "exif-flash-return-2": "nie wykryto światła odbitego",
+       "exif-flash-return-3": "wykryto światło odbite",
+       "exif-flash-mode-1": "wymuszony błysk flesza",
+       "exif-flash-mode-2": "wymuszony brak błysku flesza",
+       "exif-flash-mode-3": "tryb automatyczny",
+       "exif-flash-function-1": "Brak funkcji flesza",
+       "exif-flash-redeye-1": "tryb redukcji efektu czerwonych oczu",
+       "exif-focalplaneresolutionunit-2": "cale",
+       "exif-sensingmethod-1": "niezdefiniowana",
+       "exif-sensingmethod-2": "jednoukładowy przetwornik obrazu kolorowego",
+       "exif-sensingmethod-3": "dwuukładowy przetwornik obrazu kolorowego",
+       "exif-sensingmethod-4": "trójukładowy przetwornik obrazu kolorowego",
+       "exif-sensingmethod-5": "przetwornik obrazu z sekwencyjnym przetwarzaniem kolorów",
+       "exif-sensingmethod-7": "trójliniowy przetwornik obrazu",
+       "exif-sensingmethod-8": "liniowy przetwornik obrazu z sekwencyjnym przetwarzaniem kolorów",
+       "exif-filesource-3": "Cyfrowy aparat fotograficzny",
+       "exif-scenetype-1": "obiekt fotografowany bezpośrednio",
+       "exif-customrendered-0": "nie",
+       "exif-customrendered-1": "tak",
+       "exif-exposuremode-0": "automatyczne ustalenie parametrów naświetlania",
+       "exif-exposuremode-1": "ręczne ustalenie parametrów naświetlania",
+       "exif-exposuremode-2": "wielokrotna ze zmianą parametrów naświetlania",
+       "exif-whitebalance-0": "automatyczny",
+       "exif-whitebalance-1": "ręczny",
+       "exif-scenecapturetype-0": "standardowy",
+       "exif-scenecapturetype-1": "krajobraz",
+       "exif-scenecapturetype-2": "portret",
+       "exif-scenecapturetype-3": "scena nocna",
+       "exif-gaincontrol-0": "brak",
+       "exif-gaincontrol-1": "niskie wzmocnienie",
+       "exif-gaincontrol-2": "wysokie wzmocnienie",
+       "exif-gaincontrol-3": "niskie osłabienie",
+       "exif-gaincontrol-4": "wysokie osłabienie",
+       "exif-contrast-0": "normalny",
+       "exif-contrast-1": "niski",
+       "exif-contrast-2": "wysoki",
+       "exif-saturation-0": "normalne",
+       "exif-saturation-1": "niskie",
+       "exif-saturation-2": "wysokie",
+       "exif-sharpness-0": "normalna",
+       "exif-sharpness-1": "niska",
+       "exif-sharpness-2": "wysoka",
+       "exif-subjectdistancerange-0": "nieznana",
+       "exif-subjectdistancerange-1": "makro",
+       "exif-subjectdistancerange-2": "widok z bliska",
+       "exif-subjectdistancerange-3": "widok z daleka",
+       "exif-gpslatitude-n": "północna",
+       "exif-gpslatitude-s": "południowa",
+       "exif-gpslongitude-e": "wschodnia",
+       "exif-gpslongitude-w": "zachodnia",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metr|metry|metrów}} nad poziomem morza",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metr|metry|metrów}} poniżej poziomu morza",
+       "exif-gpsstatus-a": "pomiar w trakcie",
+       "exif-gpsstatus-v": "wyniki pomiaru dostępne na bieżąco",
+       "exif-gpsmeasuremode-2": "dwuwymiarowy",
+       "exif-gpsmeasuremode-3": "trójwymiarowy",
+       "exif-gpsspeed-k": "kilometrów na godzinę",
+       "exif-gpsspeed-m": "mil na godzinę",
+       "exif-gpsspeed-n": "węzłów",
+       "exif-gpsdestdistance-k": "Kilometrów",
+       "exif-gpsdestdistance-m": "Mil",
+       "exif-gpsdestdistance-n": "Mil morskich",
+       "exif-gpsdop-excellent": "Doskonała ($1)",
+       "exif-gpsdop-good": "Dobra ($1)",
+       "exif-gpsdop-moderate": "Umiarkowana ($1)",
+       "exif-gpsdop-fair": "Akceptowalna ($1)",
+       "exif-gpsdop-poor": "Słaba ($1)",
+       "exif-objectcycle-a": "Tylko rano",
+       "exif-objectcycle-p": "Tylko wieczorem",
+       "exif-objectcycle-b": "Zarówno rano i wieczorem",
+       "exif-gpsdirection-t": "kierunek geograficzny",
+       "exif-gpsdirection-m": "kierunek magnetyczny",
+       "exif-ycbcrpositioning-1": "Wyśrodkowane",
+       "exif-ycbcrpositioning-2": "Zbliżone",
+       "exif-dc-contributor": "Autorzy",
+       "exif-dc-coverage": "Przestrzenny lub czasowy zakres utworu",
+       "exif-dc-date": "Data(-y)",
+       "exif-dc-publisher": "Wydawca",
+       "exif-dc-relation": "Podobne multimedia",
+       "exif-dc-rights": "Prawa autorskie",
+       "exif-dc-source": "Oryginalny utwór",
+       "exif-dc-type": "Typ utworu",
+       "exif-rating-rejected": "Odrzucony",
+       "exif-isospeedratings-overflow": "Więcej niż 65535",
+       "exif-iimcategory-ace": "Sztuka, kultura i rozrywka",
+       "exif-iimcategory-clj": "Przestępczość i prawo",
+       "exif-iimcategory-dis": "Katastrofy i wypadki",
+       "exif-iimcategory-fin": "Gospodarka i biznes",
+       "exif-iimcategory-edu": "Edukacja",
+       "exif-iimcategory-evn": "Środowisko",
+       "exif-iimcategory-hth": "Zdrowie",
+       "exif-iimcategory-hum": "Zainteresowania",
+       "exif-iimcategory-lab": "Praca",
+       "exif-iimcategory-lif": "Styl życia i czas wolny",
+       "exif-iimcategory-pol": "Polityka",
+       "exif-iimcategory-rel": "Religia i wiara",
+       "exif-iimcategory-sci": "Nauka i technologia",
+       "exif-iimcategory-soi": "Zagadnienia społeczne",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Wojny, konflikty i zamieszki",
+       "exif-iimcategory-wea": "Pogoda",
+       "exif-urgency-normal": "Normalny ($1)",
+       "exif-urgency-low": "Niski ($1)",
+       "exif-urgency-high": "Wysoki ($1)",
+       "exif-urgency-other": "Priorytet zdefiniowany przez użytkownika ($1)"
+}
diff --git a/languages/i18n/exif/pms.json b/languages/i18n/exif/pms.json
new file mode 100644 (file)
index 0000000..5d749a8
--- /dev/null
@@ -0,0 +1,353 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Borichèt",
+                       "Bèrto 'd Sèra",
+                       "Dragonòt"
+               ]
+       },
+       "exif-imagewidth": "Larghëssa",
+       "exif-imagelength": "Autëssa",
+       "exif-bitspersample": "Bit për campion",
+       "exif-compression": "Schema ëd compression",
+       "exif-photometricinterpretation": "Composission dij pontin",
+       "exif-orientation": "Orientament",
+       "exif-samplesperpixel": "Nùmer ëd component",
+       "exif-planarconfiguration": "Sistemassion dij dat",
+       "exif-ycbcrsubsampling": "Rapòrt ëd campionament antra Y e C",
+       "exif-ycbcrpositioning": "Posissionament Y e C",
+       "exif-xresolution": "Risolussion orisontal",
+       "exif-yresolution": "Risolussion vertical",
+       "exif-stripoffsets": "Posission dij dat dla figura",
+       "exif-rowsperstrip": "Nùmer ëd righe për banda",
+       "exif-stripbytecounts": "Bytes për banda compressa",
+       "exif-jpeginterchangeformat": "Diferensa posissional anvers al SOI dël JPEG",
+       "exif-jpeginterchangeformatlength": "Byte ëd dat an formà JPEG",
+       "exif-whitepoint": "Pont cromàtich dël bianch",
+       "exif-primarychromaticities": "Coordinà cromàtiche dij color primari",
+       "exif-ycbcrcoefficients": "Coefissient dla matris ëd trasformassion dlë spassi dij color",
+       "exif-referenceblackwhite": "Cobia ëd valor d'arferiment për bianch e nèir",
+       "exif-datetime": "Data e ora dle modìfiche",
+       "exif-imagedescription": "Tìtol dla figura",
+       "exif-make": "Fabricant dla màchina fotogràfica ò videocàmera",
+       "exif-model": "Model dla màchina",
+       "exif-software": "Programa dovrà",
+       "exif-artist": "Autor",
+       "exif-copyright": "Titolar dël drit d'autor",
+       "exif-exifversion": "Version dël formà Exif",
+       "exif-flashpixversion": "A riva a la version Flashpix",
+       "exif-colorspace": "Spassi dij color",
+       "exif-componentsconfiguration": "Significà ëd minca component",
+       "exif-compressedbitsperpixel": "Sistema ëd compression dle figure",
+       "exif-pixelxdimension": "Larghëssa dla figura",
+       "exif-pixelydimension": "Autëssa dla figura",
+       "exif-usercomment": "Nòte lìbere",
+       "exif-relatedsoundfile": "Archivi sonor colegà",
+       "exif-datetimeoriginal": "Data e ora dla generassion dij dat",
+       "exif-datetimedigitized": "Data e ora dla digitalisassion",
+       "exif-subsectime": "Data, ora e frassion ëd second",
+       "exif-subsectimeoriginal": "Data e ora ëd creassion, con frassion ëd second",
+       "exif-subsectimedigitized": "Data e ora ëd digitalisassion, con frassion ëd second",
+       "exif-exposuretime": "Temp d'esposission",
+       "exif-exposuretime-format": "$1 sec ($2)",
+       "exif-fnumber": "Duvertura",
+       "exif-exposureprogram": "Programa d'esposission",
+       "exif-spectralsensitivity": "Sensibilità spetral",
+       "exif-isospeedratings": "Sensibilità ISO",
+       "exif-shutterspeedvalue": "Temp dë scat ëd l'APEX",
+       "exif-aperturevalue": "Diaframa ëd l'APEX",
+       "exif-brightnessvalue": "Luminosità APEX",
+       "exif-exposurebiasvalue": "Coression dl'esposission",
+       "exif-maxaperturevalue": "Duvertura màssima",
+       "exif-subjectdistance": "Distansa dël soget",
+       "exif-meteringmode": "Càlcol dl'espossision",
+       "exif-lightsource": "Sorgiss d'anluminassion",
+       "exif-flash": "Lòsna",
+       "exif-focallength": "Longheur focal dle lent",
+       "exif-subjectarea": "Spassi d'anquadratura dël soget",
+       "exif-flashenergy": "Energìa dla lòsna",
+       "exif-focalplanexresolution": "Arzolussion dla coordinà X ant sël pian dla focal",
+       "exif-focalplaneyresolution": "Arzolussion dla coordinà Y ant sël pian dla focal",
+       "exif-focalplaneresolutionunit": "Unità d'amzura për ël pian dla focal",
+       "exif-subjectlocation": "Posission dël soget",
+       "exif-exposureindex": "Ìndes dl'esposission",
+       "exif-sensingmethod": "Métod ëd campionament",
+       "exif-filesource": "Sorgiss dl'archivi",
+       "exif-scenetype": "Sòrt d'anquadratura",
+       "exif-customrendered": "Process dla figura particolar",
+       "exif-exposuremode": "Modalità dl'esposission",
+       "exif-whitebalance": "Balansa dël bianch",
+       "exif-digitalzoomratio": "Rapòrt ëd l'avzinament digital",
+       "exif-focallengthin35mmfilm": "Longheur focal an na pelìcola da 35 mm",
+       "exif-scenecapturetype": "Sistema ëd campionament",
+       "exif-gaincontrol": "Contròl dël senari",
+       "exif-contrast": "Contrast",
+       "exif-saturation": "Saturassion",
+       "exif-sharpness": "Definission dij bòrd",
+       "exif-devicesettingdescription": "Descrission dla configurassion dl'angign",
+       "exif-subjectdistancerange": "Ragg ëd distansa dël soget",
+       "exif-imageuniqueid": "Identificator ùnich dla figura",
+       "exif-gpsversionid": "Version dël GPS",
+       "exif-gpslatituderef": "Latitùdin setentrional ò meridional",
+       "exif-gpslatitude": "Latitùdin",
+       "exif-gpslongituderef": "Longitùdin oriental ò ossidental",
+       "exif-gpslongitude": "Longitùdin",
+       "exif-gpsaltituderef": "Arferiment d'autëssa",
+       "exif-gpsaltitude": "Autëssa",
+       "exif-gpstimestamp": "Ora dël GPS (mostra atòmica)",
+       "exif-gpssatellites": "Satélit dovrà për l'amzura",
+       "exif-gpsstatus": "Condission dël ricevitor",
+       "exif-gpsmeasuremode": "Sistema d'amzura",
+       "exif-gpsdop": "Precision dl'amzura",
+       "exif-gpsspeedref": "Unità d'amzura për l'andi",
+       "exif-gpsspeed": "Velocità dël ricevitor GPS",
+       "exif-gpstrackref": "Arferiment për la diression dël moviment",
+       "exif-gpstrack": "Diression dël moviment",
+       "exif-gpsimgdirectionref": "Arferiment për la diression dla figura",
+       "exif-gpsimgdirection": "Diression dla figura",
+       "exif-gpsmapdatum": "Dat dl'amzura geodética che a son dovrà",
+       "exif-gpsdestlatituderef": "Arferiment për la latitùdin dla destinassion",
+       "exif-gpsdestlatitude": "Latitùdin dla destinassion",
+       "exif-gpsdestlongituderef": "Arferiment për la longitùdin dla destinassion",
+       "exif-gpsdestlongitude": "Longitùdin dla destinassion",
+       "exif-gpsdestbearingref": "Arferiment për l'orientament a destinassion",
+       "exif-gpsdestbearing": "Orientament vers la destinassion",
+       "exif-gpsdestdistanceref": "Arferiment për la lontanansa da 'nt la destinassion",
+       "exif-gpsdestdistance": "Lontanansa da 'nt la destinassion",
+       "exif-gpsprocessingmethod": "Nòm dël sistema ëd process an GPS",
+       "exif-gpsareainformation": "Nòm dlë spassi GPS",
+       "exif-gpsdatestamp": "Data dël GPS",
+       "exif-gpsdifferential": "Coression diferensial dël GPS",
+       "exif-jpegfilecomment": "Coment ëd l'archivi JPEG",
+       "exif-keywords": "Paròle ciav",
+       "exif-worldregioncreated": "Region dël mond anté che la fòto a l'é stàita pijà",
+       "exif-countrycreated": "Pais anté che la fòto a l'é stàita fàita",
+       "exif-countrycodecreated": "Còdes dël pais anté che la fòto a l'é stàita pijà",
+       "exif-provinceorstatecreated": "Provinsa o stat anté che la fòto a l'é stàita pijà",
+       "exif-citycreated": "Sità anté che la fòto a l'é stàita pijà",
+       "exif-sublocationcreated": "Borgh ëd la sità anté che la fòto a l'é stàita pijà",
+       "exif-worldregiondest": "Region dël mond mostrà",
+       "exif-countrydest": "Pais mostrà",
+       "exif-countrycodedest": "Còdes dël pais mostrà",
+       "exif-provinceorstatedest": "Provinsa o stat mostrà",
+       "exif-citydest": "Sità mostrà",
+       "exif-sublocationdest": "Borgh ëd la sità mostrà",
+       "exif-objectname": "Tìtol curt",
+       "exif-specialinstructions": "Istrussion speciaj",
+       "exif-headline": "Antestassion",
+       "exif-credit": "Arconossiment/Fornitor",
+       "exif-source": "Sorgiss",
+       "exif-editstatus": "Stat ëd modìfica dla figura",
+       "exif-urgency": "Pressa",
+       "exif-fixtureidentifier": "Nòm element arcorent",
+       "exif-locationdest": "Locassion fotografà",
+       "exif-locationdestcode": "Còdes ëd la locassion fotografà",
+       "exif-objectcycle": "Ora dël di ëd destinassion d'ës mojen",
+       "exif-contact": "Anformassion ëd contat",
+       "exif-writer": "Scritor",
+       "exif-languagecode": "Lenga",
+       "exif-iimversion": "version IIM",
+       "exif-iimcategory": "Categorìa",
+       "exif-iimsupplementalcategory": "Categorìa suplementar",
+       "exif-datetimeexpires": "Dovré nen apress",
+       "exif-datetimereleased": "Butà fòra ël",
+       "exif-originaltransmissionref": "Còdes ëd locassion ëd la trasmission original",
+       "exif-identifier": "Identificator",
+       "exif-lens": "Lent dovrà",
+       "exif-serialnumber": "Nùmer serial ëd la màchina fotogràfica",
+       "exif-cameraownername": "Propietari ëd la màchina fotogràfica",
+       "exif-label": "Tichëtta",
+       "exif-datetimemetadata": "Quand ij metadat a son stàit modificà l'ùltima vira",
+       "exif-nickname": "Nòm anformal ëd la figura",
+       "exif-rating": "Vot (su 5)",
+       "exif-rightscertificate": "Sertificà ëd gestion dij drit",
+       "exif-copyrighted": "Stat dël drit d'autor",
+       "exif-copyrightowner": "Titolar dël drit d'autor",
+       "exif-usageterms": "Condission d'utilisassion",
+       "exif-webstatement": "Diciarassion ëd drit d'autor an linia",
+       "exif-originaldocumentid": "Identificativ ùnich dël papé original",
+       "exif-licenseurl": "Anliura ëd la licensa dij drit d'autor",
+       "exif-morepermissionsurl": "Anformassion an sle license alternative",
+       "exif-attributionurl": "An dovrand n'àutra vira cost travaj, për piasì ch'a-j buta l'anliura a",
+       "exif-preferredattributionname": "Quand as deuvra torna cost travaj, për piasì dé l'arconossiment a",
+       "exif-pngfilecomment": "Coment ëd l'archivi PNG",
+       "exif-disclaimer": "Avis",
+       "exif-contentwarning": "Avis an sël contnù",
+       "exif-giffilecomment": "Coment ëd l'archivi GIF",
+       "exif-intellectualgenre": "Sòrt d'element",
+       "exif-subjectnewscode": "Còdes dël soget",
+       "exif-scenecode": "Còdes ëd sena IPTC",
+       "exif-event": "Event fotografà",
+       "exif-organisationinimage": "Organisassion fotografà",
+       "exif-personinimage": "Përson-a fotografà",
+       "exif-originalimageheight": "Autëssa dla figura prima ch'a fussa ritajà",
+       "exif-originalimagewidth": "Larghëssa dla figura prima ch'a fussa ritajà",
+       "exif-compression-1": "Nen comprimù",
+       "exif-compression-2": "CCITT Partìa 3 longheur dla codìfica d'esecussion dla codìfica Huffman modificà ëd dimension 1",
+       "exif-compression-3": "CCITT Partìa 3 codìfica dël fax",
+       "exif-compression-4": "CCITT Partìa 4 codìfica dël fax",
+       "exif-copyrighted-true": "Con drit d'autor",
+       "exif-copyrighted-false": "Stat dij drit d'autor nen definì",
+       "exif-unknowndate": "Data nen conossùa",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "A specc",
+       "exif-orientation-3": "Arvirà ëd 180°",
+       "exif-orientation-4": "Arvirà dzor-sota",
+       "exif-orientation-5": "Arvirà dzor-sota e ëd 90° contramostra",
+       "exif-orientation-6": "Arvirà ëd 90° contramostra",
+       "exif-orientation-7": "Arvirà dzor-sota e ëd 90° ant ël sens dla mostra",
+       "exif-orientation-8": "Arvirà ëd 90° ant ël sens dla mostra",
+       "exif-planarconfiguration-1": "dàit a blòch",
+       "exif-planarconfiguration-2": "an planar",
+       "exif-xyresolution-i": "$1 pont për pòles (dpi)",
+       "exif-xyresolution-c": "$1 pont për centim (dpc)",
+       "exif-colorspace-65535": "Nen calibrà",
+       "exif-componentsconfiguration-0": "a esist pa",
+       "exif-exposureprogram-0": "Nen definì",
+       "exif-exposureprogram-1": "Manual",
+       "exif-exposureprogram-2": "Programa normal",
+       "exif-exposureprogram-3": "Priorità ëd temp",
+       "exif-exposureprogram-4": "Priorità ëd diaframa",
+       "exif-exposureprogram-5": "Programa creativ (coregiù për avèj pì ëd profondità 'd camp)",
+       "exif-exposureprogram-6": "Programa d'assion (coregiù për avèj ël temp pì curt che as peul)",
+       "exif-exposureprogram-7": "Programa ritrat (për fotografìe pijàite da davzin, con lë sfond fòra feu)",
+       "exif-exposureprogram-8": "Panorama (sogèt lontan e con lë sfond a feu)",
+       "exif-subjectdistance-value": "$1 méter",
+       "exif-meteringmode-0": "Dësconossù",
+       "exif-meteringmode-1": "Media",
+       "exif-meteringmode-2": "Media centrà",
+       "exif-meteringmode-3": "Quadrèt",
+       "exif-meteringmode-4": "Vàire quadrèt",
+       "exif-meteringmode-5": "Schema",
+       "exif-meteringmode-6": "Parsial",
+       "exif-meteringmode-255": "n'àutr",
+       "exif-lightsource-0": "Dësconossùa",
+       "exif-lightsource-1": "Lus dël dì",
+       "exif-lightsource-2": "Fluoressenta",
+       "exif-lightsource-3": "Lus al tungsten (a incandessensa)",
+       "exif-lightsource-4": "Lòsna",
+       "exif-lightsource-9": "Temp bel",
+       "exif-lightsource-10": "Temp nìvol",
+       "exif-lightsource-11": "Ombra",
+       "exif-lightsource-12": "Fluoressensa tipo lus dël dì (D 5700 – 7100K)",
+       "exif-lightsource-13": "Fluoressensa bianca për ël dì (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fluoressensa bianca frèida (W 3900 – 4500K)",
+       "exif-lightsource-15": "Fluoressensa bianca (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Lus stàndard sòrt A",
+       "exif-lightsource-18": "Lus stàndard sòrt B",
+       "exif-lightsource-19": "Lus stàndard sòrt C",
+       "exif-lightsource-20": "Anluminant D55",
+       "exif-lightsource-21": "Anluminant D65",
+       "exif-lightsource-22": "Anluminant D75",
+       "exif-lightsource-23": "Anluminant D50",
+       "exif-lightsource-24": "Làmpada da studi ISO al tungsten",
+       "exif-lightsource-255": "Àutra sorgiss d'anluminassion",
+       "exif-flash-fired-0": "La lòsna a l'é nen ëscatà",
+       "exif-flash-fired-1": "La lòsna a l'ha scatà",
+       "exif-flash-return-0": "gnun ëstroboscòpi a dà andaré na fonsion d'artrovament",
+       "exif-flash-return-2": "lë stoboscòpi a arleva gnun-a lus d'artorn",
+       "exif-flash-return-3": "lë stroboscòpi a l'ha arlevà n'artorn ëd lus",
+       "exif-flash-mode-1": "lus dla lòsna obligatòria",
+       "exif-flash-mode-2": "eliminassion dla lòsna obligatòria",
+       "exif-flash-mode-3": "manera automàtica",
+       "exif-flash-function-1": "Gnun-a fonsion ëd lòsna",
+       "exif-flash-redeye-1": "Manera ëd ridussion ëd j'euj ross",
+       "exif-focalplaneresolutionunit-2": "pòles anglèis",
+       "exif-sensingmethod-1": "Nen definì",
+       "exif-sensingmethod-2": "Sensor dlë spassi color a 1 processor",
+       "exif-sensingmethod-3": "Sensor dlë spassi color a 2 processor",
+       "exif-sensingmethod-4": "Sensor dlë spassi color a 3 processor",
+       "exif-sensingmethod-5": "Sensor sequensial dlë spassi color",
+       "exif-sensingmethod-7": "Sensor trilinear",
+       "exif-sensingmethod-8": "Sensor linear ëd color sequensiaj",
+       "exif-filesource-3": "Màchina fotogràfica digital",
+       "exif-scenetype-1": "Fotografìa an diret",
+       "exif-customrendered-0": "Process normal",
+       "exif-customrendered-1": "Process particular",
+       "exif-exposuremode-0": "Esposission automàtica",
+       "exif-exposuremode-1": "Esposission manual",
+       "exif-exposuremode-2": "Forciolin-a automàtica",
+       "exif-whitebalance-0": "Balansa dël bianch n'automàtich",
+       "exif-whitebalance-1": "Balansa dël bianch an manual",
+       "exif-scenecapturetype-0": "Stàndard",
+       "exif-scenecapturetype-1": "Paisagi",
+       "exif-scenecapturetype-2": "Ritrat",
+       "exif-scenecapturetype-3": "La neuit",
+       "exif-gaincontrol-0": "Gnun",
+       "exif-gaincontrol-1": "Sparé ij contrast bass",
+       "exif-gaincontrol-2": "Sparé ij contrast fòrt",
+       "exif-gaincontrol-3": "Sbassé ij contrast bass",
+       "exif-gaincontrol-4": "Sbassé ij contrast fòrt",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Doss",
+       "exif-contrast-2": "contrastà fòrt",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Saturassion bassa",
+       "exif-saturation-2": "Saturassion àuta",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "dossa",
+       "exif-sharpness-2": "contrastà",
+       "exif-subjectdistancerange-0": "Dësconossùa",
+       "exif-subjectdistancerange-1": "Motobin davzin",
+       "exif-subjectdistancerange-2": "Prim pian",
+       "exif-subjectdistancerange-3": "Anquadratura a soget lontan",
+       "exif-gpslatitude-n": "Latitùdin setentrional",
+       "exif-gpslatitude-s": "Latitùdin meridional",
+       "exif-gpslongitude-e": "Longitùdin oriental",
+       "exif-gpslongitude-w": "Longitùdin ossidental",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|méter|méter}} an sël livel dël mar",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|méter|méter}} sota ël livel dël mar",
+       "exif-gpsstatus-a": "Amzura antramentr che as fa",
+       "exif-gpsstatus-v": "Interoperabilità dl'amzura",
+       "exif-gpsmeasuremode-2": "amzura bidimensional",
+       "exif-gpsmeasuremode-3": "amzura tridimensional",
+       "exif-gpsspeed-k": "Km/h",
+       "exif-gpsspeed-m": "mija/h",
+       "exif-gpsspeed-n": "Grop",
+       "exif-gpsdestdistance-k": "Chilòmeter",
+       "exif-gpsdestdistance-m": "Mija",
+       "exif-gpsdestdistance-n": "Mija marin-e",
+       "exif-gpsdop-excellent": "Ecelent ($1)",
+       "exif-gpsdop-good": "Bon ($1)",
+       "exif-gpsdop-moderate": "Moderà ($1)",
+       "exif-gpsdop-fair": "Discret ($1)",
+       "exif-gpsdop-poor": "Scadent ($1)",
+       "exif-objectcycle-a": "Mach ëd matin",
+       "exif-objectcycle-p": "Mach ëd dòp-mesdì",
+       "exif-objectcycle-b": "Sia matin che dòp-mesdì",
+       "exif-gpsdirection-t": "Diression vera",
+       "exif-gpsdirection-m": "Diression magnética",
+       "exif-ycbcrpositioning-1": "Sentrà",
+       "exif-ycbcrpositioning-2": "Postà ansema",
+       "exif-dc-contributor": "Contributor",
+       "exif-dc-coverage": "Camp spassial o temporal dël mojen",
+       "exif-dc-date": "Data(e)",
+       "exif-dc-publisher": "Editor",
+       "exif-dc-relation": "Mojen relativ",
+       "exif-dc-rights": "Drit",
+       "exif-dc-source": "Mojen sorgiss",
+       "exif-dc-type": "Sòrt ëd mojen",
+       "exif-rating-rejected": "Arfudà",
+       "exif-isospeedratings-overflow": "Pi gròss ëd 65535",
+       "exif-iimcategory-ace": "Art, cultura e spetàcol",
+       "exif-iimcategory-clj": "Sassin e lej",
+       "exif-iimcategory-dis": "Disastr e assident",
+       "exif-iimcategory-fin": "Economìa e afé",
+       "exif-iimcategory-edu": "Educassion",
+       "exif-iimcategory-evn": "Ambient",
+       "exif-iimcategory-hth": "Salute",
+       "exif-iimcategory-hum": "Anteressi uman",
+       "exif-iimcategory-lab": "Travaj",
+       "exif-iimcategory-lif": "Stil ëd vita e temp lìber",
+       "exif-iimcategory-pol": "Polìtica",
+       "exif-iimcategory-rel": "Religion e chërdense",
+       "exif-iimcategory-sci": "Siensa e tecnologìa",
+       "exif-iimcategory-soi": "Chestion sociaj",
+       "exif-iimcategory-spo": "Spòrt",
+       "exif-iimcategory-war": "Guèra, conflit e batibeuj",
+       "exif-iimcategory-wea": "Temp",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Bassa ($1)",
+       "exif-urgency-high": "Àuta ($1)",
+       "exif-urgency-other": "Priorità definìa da l'utent ($1)"
+}
diff --git a/languages/i18n/exif/pnb.json b/languages/i18n/exif/pnb.json
new file mode 100644 (file)
index 0000000..e6e6694
--- /dev/null
@@ -0,0 +1,345 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Khalid Mahmood"
+               ]
+       },
+       "exif-imagewidth": "چوڑائی",
+       "exif-imagelength": "اچائی",
+       "exif-bitspersample": "اک کمپوننٹ وچ بٹ",
+       "exif-compression": "کمپریشن سکیم",
+       "exif-photometricinterpretation": "پکسل کمپوزیشن",
+       "exif-orientation": "اورینٹیشن",
+       "exif-samplesperpixel": "کمپونینٹ گنتی",
+       "exif-planarconfiguration": "ڈیٹا ارینجمنٹ",
+       "exif-ycbcrsubsampling": "سبسیمپلنگ ریشو وآئی توں سی۔",
+       "exif-ycbcrpositioning": "وآئی تے سی دی تھاں",
+       "exif-xresolution": "ہوریزنٹل ریزولوشن",
+       "exif-yresolution": "ورٹیکل ریزولوشن",
+       "exif-stripoffsets": "امیج ڈیٹا لوکیشن",
+       "exif-rowsperstrip": "اک سٹرپ چ قطاراں",
+       "exif-stripbytecounts": "کمپریسڈ سٹرپ چ بائٹس",
+       "exif-jpeginterchangeformat": "JPEG SOI توں آفسیٹ",
+       "exif-jpeginterchangeformatlength": "JPEG  دے بائٹس",
+       "exif-whitepoint": "وائٹ پوائنٹ کرومیٹیسٹی",
+       "exif-primarychromaticities": "کرومیٹیسٹیز آف پرآمریٹیز",
+       "exif-ycbcrcoefficients": "کلر سپیس ٹرانسنارمیشن میٹرکس کوایفیشینٹز",
+       "exif-referenceblackwhite": "کالے چٹے جوڑے دی ریفرنس ویلیو",
+       "exif-datetime": "فائل بدلن دی تریخ تے ویلا",
+       "exif-imagedescription": "مورت دا ناں",
+       "exif-make": "کیمرہ بنانے آلا",
+       "exif-model": "کیمرا ماڈل",
+       "exif-software": "استعمال ہویا سافٹویر",
+       "exif-artist": "بنانے آلا",
+       "exif-copyright": "کاپی رائٹ مالک",
+       "exif-exifversion": "ایگزف ورین",
+       "exif-flashpixversion": "سپورٹڈ فلیشپکس ورین",
+       "exif-colorspace": "رنگ سپیس",
+       "exif-componentsconfiguration": "ہر انگ دا مطلب",
+       "exif-compressedbitsperpixel": "امیج کمپریشن موڈ",
+       "exif-pixelxdimension": "امیج چوڑائی",
+       "exif-pixelydimension": "امیج اچائی",
+       "exif-usercomment": "ورتن آلے دی صلاع",
+       "exif-relatedsoundfile": "رلدی آڈیو فائل",
+       "exif-datetimeoriginal": "تریخ تے ویلہ ڈیٹا جنریشن دا",
+       "exif-datetimedigitized": "ڈجیٹائزنگ دا ویلہ تے تریخ",
+       "exif-subsectime": "تریخ ویلہ سبسیکنڈز",
+       "exif-subsectimeoriginal": "تریخ ویلہ اورجنل سبسیکنڈز",
+       "exif-subsectimedigitized": "تریخ ویلہ ڈجیٹا‎زڈ سبسیکنڈز",
+       "exif-exposuretime": "ایکسپویر ویلہ",
+       "exif-exposuretime-format": "$1 سکنٹ ($2)",
+       "exif-fnumber": "ایف نمبر",
+       "exif-exposureprogram": "ایکسپویر پروگرام",
+       "exif-spectralsensitivity": "سپیکٹرل سنسیٹیوٹی",
+       "exif-isospeedratings": "ISO  سپیڈ ریٹنگ",
+       "exif-shutterspeedvalue": "!!!!شٹر دی تیزی",
+       "exif-aperturevalue": "!!اپیکس!!اپرچر",
+       "exif-brightnessvalue": "اپیکس چانن",
+       "exif-exposurebiasvalue": "اپیکس کھلن بیاس",
+       "exif-maxaperturevalue": "وڈا لینڈ اپرچر",
+       "exif-subjectdistance": "کھچن والی چیز دا پینڈا",
+       "exif-meteringmode": "میٹرنگ موڈ",
+       "exif-lightsource": "روشنی دا ذریعہ",
+       "exif-flash": "فلیش",
+       "exif-focallength": "لنز فوکل لنتھ",
+       "exif-subjectarea": "سبجکٹ ایریا",
+       "exif-flashenergy": "فلیش دی طاقت",
+       "exif-focalplanexresolution": "فوکل پلین ‌x ریزولوشن",
+       "exif-focalplaneyresolution": "فوکل پلین  Y ریزولوشن",
+       "exif-focalplaneresolutionunit": "فوکل پلین ریزولوشن سنٹر",
+       "exif-subjectlocation": "ہن والی تھاں",
+       "exif-exposureindex": "ایکسپویر انڈیکس",
+       "exif-sensingmethod": "سینسنگ ول",
+       "exif-filesource": "فائل دا ذریعہ",
+       "exif-scenetype": "سین ٹائپ",
+       "exif-customrendered": "کسٹم امیج پروسیسنگ",
+       "exif-exposuremode": "ایکسپویر موڈ",
+       "exif-whitebalance": "چٹی پدھر",
+       "exif-digitalzoomratio": "ڈجیٹل زوم ریشو",
+       "exif-focallengthin35mmfilm": "35 م م دی فلم دا فوکل لنتھ۔",
+       "exif-scenecapturetype": "سین کیپچر ٹائپ",
+       "exif-gaincontrol": "سین کنٹرول",
+       "exif-contrast": "فرق",
+       "exif-saturation": "سیجوریشن",
+       "exif-sharpness": "صفائی",
+       "exif-devicesettingdescription": "ڈیوائس سیٹنگ ڈسکرپشن",
+       "exif-subjectdistancerange": "شے دے دور ہون دی رینج",
+       "exif-imageuniqueid": "امیج دی خاص نشانی",
+       "exif-gpsversionid": "GPS  ٹیگ ورین",
+       "exif-gpslatituderef": "اتر یا دکھن لیٹیچیوڈ",
+       "exif-gpslatitude": "پئی لیک",
+       "exif-gpslongituderef": "چڑھدے یا لیندے لیٹیچیوڈ",
+       "exif-gpslongitude": "کھڑی لیک",
+       "exif-gpsaltituderef": "اچائی دس",
+       "exif-gpsaltitude": "اچائی",
+       "exif-gpstimestamp": "جی پی ایس ویلہ (ایٹمی کعڑی)",
+       "exif-gpssatellites": "ناپن لئی سیٹلائٹ ورتیا گیا اے۔",
+       "exif-gpsstatus": "ریسیور سٹیٹس",
+       "exif-gpsmeasuremode": "ناپ موڈ",
+       "exif-gpsdop": "ناپ پریسیین",
+       "exif-gpsspeedref": "تیزی دا ناپ",
+       "exif-gpsspeed": "جی پی ایس ریسیور دی سپیڈ",
+       "exif-gpstrackref": "ٹرن دی ڈائریکشن دا اتہ پتہ",
+       "exif-gpstrack": "چلن دی راہ",
+       "exif-gpsimgdirectionref": "امیج دی ڈائریکشن دا اتہ پتہ",
+       "exif-gpsimgdirection": "مورت دی راہ",
+       "exif-gpsmapdatum": "جیوڈیٹک سروے ڈیٹا ورتیا گیا اے۔",
+       "exif-gpsdestlatituderef": "پینڈے لیٹیچیوڈ دا اتہ پتہ",
+       "exif-gpsdestlatitude": "لیٹیچیوڈ پینڈا",
+       "exif-gpsdestlongituderef": "پینڈے لونگیچیوڈ دا اتہ پتہ",
+       "exif-gpsdestlongitude": "پینڈے دی لونگیچیوڈ",
+       "exif-gpsdestbearingref": "پینڈے دی بیرنگ دا اتہ پتہ",
+       "exif-gpsdestbearing": "پینڈے دی بیرنگ",
+       "exif-gpsdestdistanceref": "پینڈے توں پینڈے دا اتہ پتہ",
+       "exif-gpsdestdistance": "پونچن والی تھاں نوں پینڈا",
+       "exif-gpsprocessingmethod": "جی پی ایس پروسیسنگ ول دا ناں",
+       "exif-gpsareainformation": "جی پی ایس علاقے دا ناں",
+       "exif-gpsdatestamp": "جی پی ایس تریخ",
+       "exif-gpsdifferential": "جی پی ایس ڈفرینشیل کوریکشن",
+       "exif-jpegfilecomment": "جے پی ای جی شائل کومنٹ",
+       "exif-keywords": "خاص شبد",
+       "exif-worldregioncreated": "دنیا دی تھاں جتھے اے مورت لئی گئی",
+       "exif-countrycreated": "دیس جتھے اے مورت بنائی کئی",
+       "exif-countrycodecreated": "دیس دا کوڈ جتھے اے مورت بنائی کئی",
+       "exif-provinceorstatecreated": "صوبہ جتھے اے مورت بنائی گئی",
+       "exif-citycreated": "شہر جتھے اے مورت بنائی کئی",
+       "exif-sublocationcreated": "شہر دی اوہ تھاں جتھے اے مورت بنائی کئی",
+       "exif-worldregiondest": "دنیا دے تھاں",
+       "exif-countrydest": "دیس",
+       "exif-countrycodedest": "دیس دا کوڈ دتا گیا اے",
+       "exif-provinceorstatedest": "صوبہ دسیا گیا اے",
+       "exif-citydest": "شہر دےیا گیا اے۔",
+       "exif-sublocationdest": "شہر دی تھاں دسی گئی اے۔",
+       "exif-objectname": "نکی سرخی",
+       "exif-specialinstructions": "خاص دساں",
+       "exif-headline": "سرخی",
+       "exif-credit": "کریڈٹ/دین والا",
+       "exif-source": "سورس",
+       "exif-editstatus": "مورت دا ایڈیٹوریل سٹیٹس",
+       "exif-urgency": "جلدی",
+       "exif-fixtureidentifier": "فکسچر ناں",
+       "exif-locationdest": "تھاں بارے",
+       "exif-locationdestcode": "تھاں کوڈ دتا گیا اے",
+       "exif-objectcycle": "دن دا ویلہ جس لئی اے میڈیا بنایا گیا اے",
+       "exif-contact": "پتہ",
+       "exif-writer": "لکھاری",
+       "exif-languagecode": "بولی",
+       "exif-iimversion": "آئی آئی ایم ورین",
+       "exif-iimcategory": "گٹھ",
+       "exif-iimsupplementalcategory": "ہور گٹھاں",
+       "exif-datetimeexpires": "ایس دے مگروں ناں ورتو",
+       "exif-datetimereleased": "بنی",
+       "exif-originaltransmissionref": "اصل ٹرن والی تھاں دا کوڈ",
+       "exif-identifier": "لبن والا",
+       "exif-lens": "لینز ورتے گۓ",
+       "exif-serialnumber": "کیمرہ نمبر",
+       "exif-cameraownername": "کیمرے دا مالک",
+       "exif-label": "لیبل",
+       "exif-datetimemetadata": "تریخ جدون میٹاڈیٹا بدلے گۓ۔",
+       "exif-nickname": "مورت دا انفورمل ناں",
+       "exif-rating": "سعاب (5 چوں)",
+       "exif-rightscertificate": "حق دے سعاب کتاب دا سرٹیفیکیٹ",
+       "exif-copyrighted": "کاپی رائٹ سٹیٹس",
+       "exif-copyrightowner": "کاپی رائٹ مالک",
+       "exif-usageterms": "ورتن شرطاں",
+       "exif-webstatement": "اونلائن کاپی رائٹ لکھت",
+       "exif-originaldocumentid": "اصل کاغذ دی خاص نشانی",
+       "exif-licenseurl": "کاپی رائٹ لاغسنس لئی یوآرایل",
+       "exif-morepermissionsurl": "لائسنس دی ہور جانکاری",
+       "exif-attributionurl": "جدون دوبارہ ورتو تے جوڑ دیو",
+       "exif-preferredattributionname": "جدوں دوبارہ ورتو تے بنان والے دا ناں وی دسو",
+       "exif-pngfilecomment": "پی این جی فائل کومنٹ",
+       "exif-disclaimer": "منکرنا",
+       "exif-contentwarning": "لکھت توں خبردار",
+       "exif-giffilecomment": "جی آئی ایف شائل کومنٹ",
+       "exif-intellectualgenre": "آئیٹم ٹائپ",
+       "exif-subjectnewscode": "سبجیکٹ کوڈ",
+       "exif-scenecode": "آئی پی ٹی سی سین کوڈ",
+       "exif-event": "ہوند دسی گئی۔",
+       "exif-organisationinimage": "آرگنائزیشن دسی گئی",
+       "exif-personinimage": "بندہ دسیا گیا",
+       "exif-originalimageheight": "مورت دی اچائی کٹن توں پہلے",
+       "exif-originalimagewidth": "مورت دی چوڑائی کٹن توں پہلے",
+       "exif-compression-1": "کھولی گئی",
+       "exif-compression-2": "سی سی آئی ٹی ٹی گروپ 3 1-ڈائمینشنل موڈیفائیڈ ہفمین رن فل لنتھ انکوڈنگ",
+       "exif-compression-3": "سی سی آئی ٹی ٹی گروپ 3 فیکس اینکوڈنگ",
+       "exif-compression-4": "سی سی آئی ٹی ٹی گروپ 4 فیکس اینکوڈنگ",
+       "exif-copyrighted-true": "حق بچاۓ",
+       "exif-copyrighted-false": "لوکاں کول",
+       "exif-unknowndate": "انجان تاریخ",
+       "exif-orientation-1": "عام",
+       "exif-orientation-2": "ہوریزنٹلی کرو",
+       "exif-orientation-3": "موڑیا گیا 180°",
+       "exif-orientation-4": "ورٹیکلی موڑو",
+       "exif-orientation-5": "90° CCW موڑیا گیا تے تے ورٹیکلی کیتا گیا۔",
+       "exif-orientation-6": "90° CCW موڑیا گیا",
+       "exif-orientation-7": "90° CW تے فیر ورٹیکلی موڑیا گیا۔",
+       "exif-orientation-8": "90° CW موڑیا گیا",
+       "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-exposureprogram-5": "کریٹو پروگرام (فیلڈ ڈونگائی ول مڑیا)",
+       "exif-exposureprogram-6": "ایکشن پروگرام (تیز شٹر سپیڈ ول مڑیا)",
+       "exif-exposureprogram-7": "پورٹریٹ موڈ (نیڑے دیاں فوٹوواں لئی جناں دا پچھا فوکس توں باہر اے)",
+       "exif-exposureprogram-8": "لینڈسکیپ موڈ (لینڈسکیپ مورتاں لئی جناں دا پچھا فوکس چ اے)",
+       "exif-subjectdistance-value": "$1 میٹر",
+       "exif-meteringmode-0": "انجان",
+       "exif-meteringmode-1": "اوسط",
+       "exif-meteringmode-2": "سنٹر ویٹڈ ایورج",
+       "exif-meteringmode-3": "جگہ",
+       "exif-meteringmode-4": "ملٹی-سپاٹ",
+       "exif-meteringmode-5": "نمونے",
+       "exif-meteringmode-6": "کج حصہ",
+       "exif-meteringmode-255": "دوجے",
+       "exif-lightsource-0": "انجان",
+       "exif-lightsource-1": "دن دا چانن",
+       "exif-lightsource-2": "فلورسنٹ",
+       "exif-lightsource-3": "ٹنگسٹن (انکینڈسنٹ چانن)",
+       "exif-lightsource-4": "فلیش",
+       "exif-lightsource-9": "چنگا موسم",
+       "exif-lightsource-10": "بدل آلا موسم",
+       "exif-lightsource-11": "سایہ",
+       "exif-lightsource-12": "در چانن فلورسنٹ (D 5700 – 7100K)",
+       "exif-lightsource-13": "دن دا چانن فلورسنٹ (N 4600 – 5400K)",
+       "exif-lightsource-14": "ٹھنڈی چٹی فلورسنٹ",
+       "exif-lightsource-15": "چٹی فلورسنٹ (WW 3200 – 3700K)",
+       "exif-lightsource-17": "سٹینڈرڈ چانن اے",
+       "exif-lightsource-18": "سٹینڈرڈ چانن بی",
+       "exif-lightsource-19": "سٹینڈرڈ چانن سی",
+       "exif-lightsource-24": "ISO  سٹوڈیو ٹنگسٹن",
+       "exif-lightsource-255": "روشنی دے ہور ذریعے",
+       "exif-flash-fired-0": "فلیش نئیں چلی",
+       "exif-flash-fired-1": "فلیش چلی",
+       "exif-flash-return-0": "نو سٹروب ریٹرن ڈیٹیکشن فنکشن",
+       "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-sensingmethod-7": "ٹریلینیر سنسر",
+       "exif-sensingmethod-8": "کلر سیکونشل لینیر سنسر",
+       "exif-filesource-3": "ڈجیٹل سٹل کیمرا",
+       "exif-scenetype-1": "اک سدی کھچی مورت",
+       "exif-customrendered-0": "عام طریقہ",
+       "exif-customrendered-1": "اپنی مرضی دا طریقہ",
+       "exif-exposuremode-0": "آٹو ایکسپویر",
+       "exif-exposuremode-1": "مینول ایکسپویر",
+       "exif-exposuremode-2": "آٹو بریکٹ",
+       "exif-whitebalance-0": "آپ چٹا ٹھیک کرے",
+       "exif-whitebalance-1": "ہتھ نال چٹا بیلنس",
+       "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-saturation-0": "عام",
+       "exif-saturation-1": "لو سیچوریشن",
+       "exif-saturation-2": "ہائی سیچوریشن",
+       "exif-sharpness-0": "عام",
+       "exif-sharpness-1": "نرم",
+       "exif-sharpness-2": "سخت",
+       "exif-subjectdistancerange-0": "انجان",
+       "exif-subjectdistancerange-1": "ماکرو",
+       "exif-subjectdistancerange-2": "نیڑے دا منظر",
+       "exif-subjectdistancerange-3": "دور دا منظر",
+       "exif-gpslatitude-n": "اتر لیٹیچیوڈ",
+       "exif-gpslatitude-s": "دکھن لیٹیچیوڈ",
+       "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-gpsdestdistance-m": "میل",
+       "exif-gpsdestdistance-n": "سمندری میل",
+       "exif-gpsdop-excellent": "شاندار ($1)",
+       "exif-gpsdop-good": "اچھا ($1)",
+       "exif-gpsdop-moderate": "درمیانہ ($1)",
+       "exif-gpsdop-fair": "سوہنا ($1)",
+       "exif-gpsdop-poor": "ماڑا ($1)",
+       "exif-objectcycle-a": "صرف سویرے",
+       "exif-objectcycle-p": "صرف شام",
+       "exif-objectcycle-b": "صرف شام تے سویرے",
+       "exif-gpsdirection-t": "سدھا راہ",
+       "exif-gpsdirection-m": "مقناطیسی راہ",
+       "exif-ycbcrpositioning-1": "وشکار",
+       "exif-ycbcrpositioning-2": "رلیاں تھانواں",
+       "exif-dc-contributor": "حصےدار",
+       "exif-dc-coverage": "سپیٹیل یا ٹمپورل سکوپ آف میڈیا",
+       "exif-dc-date": "تریخ",
+       "exif-dc-publisher": "چھاپن والا",
+       "exif-dc-relation": "رلدا میڈیا",
+       "exif-dc-rights": "حق",
+       "exif-dc-source": "سورس میڈیا",
+       "exif-dc-type": "میڈیا منڈ",
+       "exif-rating-rejected": "چھڈیا",
+       "exif-isospeedratings-overflow": "65535 نالوں وڈا",
+       "exif-iimcategory-ace": "آرٹس، رہتل تے مزے",
+       "exif-iimcategory-clj": "جرم تے قنون",
+       "exif-iimcategory-dis": "تباہی تے حادسے",
+       "exif-iimcategory-fin": "کم کاج تے کاروبار",
+       "exif-iimcategory-edu": "سکھیا",
+       "exif-iimcategory-evn": "محول",
+       "exif-iimcategory-hth": "صحت",
+       "exif-iimcategory-hum": "انسانی شوق",
+       "exif-iimcategory-lab": "مزدور",
+       "exif-iimcategory-lif": "جیون تے ارام",
+       "exif-iimcategory-pol": "سیاست",
+       "exif-iimcategory-rel": "مزہب تے یقین",
+       "exif-iimcategory-sci": "سائینس تے ٹیکنالوجی",
+       "exif-iimcategory-soi": "سماجی اشو",
+       "exif-iimcategory-spo": "کھیڈاں",
+       "exif-iimcategory-war": "لڑائی چگڑے تے افراتفری",
+       "exif-iimcategory-wea": "موسم",
+       "exif-urgency-normal": "نارمل ($1)",
+       "exif-urgency-low": "تھلے کرکے ($1)",
+       "exif-urgency-high": "اچا ($1)",
+       "exif-urgency-other": "($1)  ورتن ڈیفائینڈ پراورٹی"
+}
diff --git a/languages/i18n/exif/prg.json b/languages/i18n/exif/prg.json
new file mode 100644 (file)
index 0000000..c3c8361
--- /dev/null
@@ -0,0 +1,205 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Nertiks"
+               ]
+       },
+       "exif-imagewidth": "Plattu",
+       "exif-imagelength": "Aūktan",
+       "exif-bitspersample": "Bittai per izimlin",
+       "exif-compression": "Kōmpresiōnis wīds",
+       "exif-photometricinterpretation": "Pikselas struktūri",
+       "exif-orientation": "Ōrientaciōni",
+       "exif-samplesperpixel": "Izimlis per pikselin",
+       "exif-ycbcrsubsampling": "Y en C pōizimlinsnā",
+       "exif-ycbcrpositioning": "Y be C poziciōni",
+       "exif-xresolution": "Uricōntala rezōluciōni",
+       "exif-yresolution": "Wertikāla rezōluciōni",
+       "exif-stripoffsets": "Bildis dātas deīktan",
+       "exif-rowsperstrip": "Rīndas gīrbis per bildes sawinzlin",
+       "exif-stripbytecounts": "Bāitas gīrbis per bildis sawinzlin",
+       "exif-jpeginterchangeformat": "Pirmas JPEG SOI bāitas poziciōni",
+       "exif-jpeginterchangeformatlength": "JPEG dātas bāitan gīrbis",
+       "exif-whitepoint": "Gaīliskwas punkts",
+       "exif-primarychromaticities": "Trīs galwas bārwis",
+       "exif-ycbcrcoefficients": "Bārwin plattibis iz RGB en YCbCr prawartīnsenes matrīci",
+       "exif-referenceblackwhite": "Kīrsnas be gaīlas autengīnsnas wērtibin pūran",
+       "exif-datetime": "Zūrbrukes kitawīdinsnas dātan be kerdā",
+       "exif-imagedescription": "Bildes tītels",
+       "exif-make": "Kāmeras tikīntajs",
+       "exif-model": "Kāmeras mōdeli",
+       "exif-software": "Tērpautas prōgraminis",
+       "exif-artist": "Autōrs",
+       "exif-copyright": "Autōras tikrōmin waldītajs",
+       "exif-exifversion": "Exif wersiōni",
+       "exif-flashpixversion": "Ebšlūzita Flashpix wersiōni",
+       "exif-colorspace": "Bārwis plattibi",
+       "exif-componentsconfiguration": "Kōmpunēntin zentlisnā",
+       "exif-compressedbitsperpixel": "Bildes kōmpresiōnis wīds",
+       "exif-pixelxdimension": "Tikrōmiskan bildes plattu",
+       "exif-pixelydimension": "Tikrōmiskan bildes aūktan",
+       "exif-usercomment": "Tērpautajas kumentārai",
+       "exif-relatedsoundfile": "Sēitan audiō zūrbrukis",
+       "exif-datetimeoriginal": "Ōriginālas teīksnas dātan be kerdā",
+       "exif-datetimedigitized": "Digitālas dātas teikāsnas dātan be kerdā",
+       "exif-subsectime": "Dātan be kerdā - sekūndis aulamlis",
+       "exif-subsectimeoriginal": "Teīksenes dātan be kerdā - sekūndis aulamlis",
+       "exif-subsectimedigitized": "Digitālas dātas teikāsnas dātan be kerdā - sekūndis aulamlis",
+       "exif-exposuretime": "Izlaikāsnas kerdā",
+       "exif-exposuretime-format": "$1 sek. ($2)",
+       "exif-fnumber": "F gīrbis",
+       "exif-exposureprogram": "Izlaikāsnas prōgraman",
+       "exif-spectralsensitivity": "Spektrāla seīlawingisku",
+       "exif-isospeedratings": "Dīwan en ISO aīnibimans",
+       "exif-brightnessvalue": "Lāukisku",
+       "exif-subjectdistance": "Etālisku ezze ōbjaktu",
+       "exif-meteringmode": "Mattausnas wīds",
+       "exif-lightsource": "Swāikstas aps",
+       "exif-flash": "Bliccis",
+       "exif-focallength": "Pelannas etālisku",
+       "exif-subjectarea": "Ōbjaktas areālin",
+       "exif-flashenergy": "Blicces energīja",
+       "exif-focalplanexresolution": "Pelannas plassas X rezōluciōni",
+       "exif-focalplaneyresolution": "Pelannas plassas Y rezōluciōni",
+       "exif-focalplaneresolutionunit": "Pelannas plassas rezōluciōnis aīnibi",
+       "exif-subjectlocation": "Ōbjaktas deīktan",
+       "exif-sensingmethod": "Mattausnas metōdi",
+       "exif-filesource": "Zūrbrukes aps",
+       "exif-scenetype": "Widāklis tīps",
+       "exif-whitebalance": "Gaīliskwas balanss",
+       "exif-digitalzoomratio": "Digitālas mūisesinsenes kōeficiēnts",
+       "exif-focallengthin35mmfilm": "Pelannas etālisku per 35 mm filman",
+       "exif-scenecapturetype": "Widāklis gabsnas tīps",
+       "exif-gaincontrol": "Widāklis kontrōli",
+       "exif-contrast": "Kōntrasts",
+       "exif-saturation": "Sātwinisku",
+       "exif-sharpness": "Astran",
+       "exif-devicesettingdescription": "Ēnrankis ensadīnsnan ebpeisāsenis",
+       "exif-subjectdistancerange": "Ōbjaktas etāliskwas ebīmtan",
+       "exif-imageuniqueid": "Unikāla bildes ID nummeri",
+       "exif-gpsversionid": "GPS wersiōni",
+       "exif-gpslatituderef": "Zēimiskan anga pussideiniskan plattu",
+       "exif-gpslatitude": "Geōgrafiskan plattu",
+       "exif-gpslongituderef": "Dēiniskan anga wakkariskan ilgan",
+       "exif-gpslongitude": "Geōgrafiska plattu",
+       "exif-gpsaltituderef": "Aūktan kīrsa jūŗes līgmenin",
+       "exif-gpsaltitude": "Aūktan kīrsa jūŗes līgmenin",
+       "exif-gpstimestamp": "GPS kerdā (atōmiskas zēgeris)",
+       "exif-gpssatellites": "Satellitai tērpautai per mattausnan",
+       "exif-gpsstatus": "Gauwikas būsenis",
+       "exif-gpsmeasuremode": "Mattausnas wīds",
+       "exif-gpsdop": "Mattausnas tikrisku",
+       "exif-gpsspeedref": "Dīwas aīnibi",
+       "exif-gpsspeed": "GPS gauwikas dīwan",
+       "exif-gpstrackref": "Skattisnas līnkes autengīnsna",
+       "exif-gpstrack": "Skatīsnas līnkis",
+       "exif-gpsimgdirectionref": "Bildes līnkes autengīnsna",
+       "exif-gpsimgdirection": "Auīmsenes līnkis",
+       "exif-gpsdestlatituderef": "Kakīnslis geōgrafiskan plattu (autengīnsna)",
+       "exif-gpsdestlatitude": "Kakīnslis geōgrafiskan plattu",
+       "exif-gpsdestlongituderef": "Kakīnslis geōgrafiskan ilgan (autengīnsna)",
+       "exif-gpsdestlongitude": "Kakīnslis geōgrafiskan plattu",
+       "exif-gpsdestdistanceref": "Etāliskwas ezze kakīnslai autengīnsna",
+       "exif-gpsdestdistance": "Etālisku ezze kakīnslin",
+       "exif-gpsareainformation": "GPS areālas pabilisnā",
+       "exif-gpsdatestamp": "GPS dātan",
+       "exif-compression-1": "Nikōmpresitan",
+       "exif-unknowndate": "Niwaīstan dātan",
+       "exif-orientation-1": "Nōrmala",
+       "exif-orientation-2": "Etswāikstitan uricōntalai",
+       "exif-orientation-3": "Ebgrēnztan 180°",
+       "exif-orientation-4": "Etswāikstitan wertikālai",
+       "exif-orientation-5": "Ebgrēnztan 90° prīki zēgerin be wertikālai etswāikstitan",
+       "exif-orientation-6": "Ebgrēnztan 90° pa zēgerin",
+       "exif-orientation-7": "Ebgrēnztan 90° pa zēgerin be wertikālai etswāikstitan",
+       "exif-orientation-8": "Ebgrēnztan 90° prīki zēgerin",
+       "exif-planarconfiguration-1": "stāran fōrmatan",
+       "exif-planarconfiguration-2": "wīrsawiskwas fōrmatan",
+       "exif-componentsconfiguration-0": "ni ekzistijja",
+       "exif-exposureprogram-0": "Nidefinītan",
+       "exif-exposureprogram-1": "Rānkiskai",
+       "exif-exposureprogram-2": "Nōrmalin prōgraman",
+       "exif-exposureprogram-5": "Kreatīwan prōgraman (debīka astras giluwā)",
+       "exif-exposureprogram-7": "Pōrtretas prōgraman (auīmsenei iz taūwan sen niastran rīkisnasgruntan)",
+       "exif-exposureprogram-8": "Tautāspawidas prōgraman (per auīmsenins segīntans iz tālin sen astran rīkisnasgruntan)",
+       "exif-subjectdistance-value": "$1 mētrai",
+       "exif-meteringmode-0": "Niwaīsts",
+       "exif-meteringmode-1": "Sirzdā",
+       "exif-meteringmode-2": "Swērtan sirdan",
+       "exif-meteringmode-3": "Punktiskas",
+       "exif-meteringmode-4": "Tulapunktiskas",
+       "exif-meteringmode-5": "Izimlinsnā",
+       "exif-meteringmode-6": "Delīkiskas",
+       "exif-meteringmode-255": "Kits",
+       "exif-lightsource-0": "Niwaīsts",
+       "exif-lightsource-1": "Dēinas swāikstan",
+       "exif-lightsource-2": "Fluōrescenciskan",
+       "exif-lightsource-3": "Wōlframas (kāitas lāmpi)",
+       "exif-lightsource-4": "Bliccis",
+       "exif-lightsource-9": "Labs wins",
+       "exif-lightsource-10": "Uppiskas wins",
+       "exif-lightsource-11": "Tīmens",
+       "exif-lightsource-12": "Dēinas swāikstas fluōrescenciskan (D 5700 – 7100K)",
+       "exif-lightsource-13": "Dēinas gaīlibis fluōrescenciskan (N 4600 - 5400K)",
+       "exif-lightsource-14": "Saltas gaīlibis fluōrescenciskan (W 3900 - 4500K)",
+       "exif-lightsource-15": "Gaīlin fluōrescenciskan (WW 3200-3700K)",
+       "exif-lightsource-17": "Jāuku swāikstan A",
+       "exif-lightsource-18": "Jāuku swāikstan B",
+       "exif-lightsource-19": "Jāuku swāikstan C",
+       "exif-lightsource-24": "ISO studijas wōlframas",
+       "exif-lightsource-255": "Kits swāikstas aps",
+       "exif-flash-fired-0": "Šlait bliccin",
+       "exif-flash-fired-1": "Sen bliccin",
+       "exif-flash-return-0": "šlāit etswāikstitas swāikstas serrīpsnas funkciōnin",
+       "exif-flash-return-2": "etswāikstitan swāikstan ni serrīptan",
+       "exif-flash-return-3": "etswāikstitan swāikstan serrīptan",
+       "exif-flash-mode-1": "Preispārtints bliccis",
+       "exif-flash-mode-2": "Preispārtinta blicces nisatausnā",
+       "exif-flash-mode-3": "autōmatiskan prōgraman",
+       "exif-flash-function-1": "Ni ast blicces funkciōni",
+       "exif-flash-redeye-1": "Wūrmin akkin redukciōnis prōgraman",
+       "exif-focalplaneresolutionunit-2": "cullai",
+       "exif-sensingmethod-1": "Nidefinītan",
+       "exif-sensingmethod-7": "Trilinīskas sensōrs",
+       "exif-scenetype-1": "Entikriskai tikīnts auīmsenis",
+       "exif-customrendered-0": "stāndartan",
+       "exif-customrendered-1": "definītan pra tērpautajan",
+       "exif-exposuremode-0": "Autōmatiska erswaikstinsnā",
+       "exif-whitebalance-0": "autōmatiskas",
+       "exif-whitebalance-1": "rānkiskas",
+       "exif-scenecapturetype-0": "Jāukus",
+       "exif-scenecapturetype-1": "Tautāspawida",
+       "exif-scenecapturetype-2": "Pōrtretan",
+       "exif-scenecapturetype-3": "Naktis widākli",
+       "exif-gaincontrol-0": "Nika",
+       "exif-gaincontrol-1": "Zemā spartinsnā",
+       "exif-gaincontrol-2": "Auktā spartinsnā",
+       "exif-gaincontrol-3": "Zemā laustinginsnā",
+       "exif-gaincontrol-4": "Auktā laustinginsnā",
+       "exif-contrast-0": "Nōrmals",
+       "exif-contrast-1": "Līkuts",
+       "exif-contrast-2": "Debīks",
+       "exif-saturation-0": "Nōrmals",
+       "exif-saturation-1": "Zemā sātwinisku",
+       "exif-saturation-2": "Auktā sātwinisku",
+       "exif-sharpness-0": "Nōrmals",
+       "exif-sharpness-1": "Līkuts",
+       "exif-sharpness-2": "Debīks",
+       "exif-subjectdistancerange-0": "Niwaīsts",
+       "exif-subjectdistancerange-1": "Makrō",
+       "exif-subjectdistancerange-2": "Taūwa pawīda",
+       "exif-subjectdistancerange-3": "Talā pawīda",
+       "exif-gpslatitude-n": "Zēimiskan plattu",
+       "exif-gpslatitude-s": "Pussideiniskan plattu",
+       "exif-gpslongitude-e": "Dēiniskan plattu",
+       "exif-gpslongitude-w": "Wakkariskan plattu",
+       "exif-gpsstatus-a": "Mattausenis wēraui",
+       "exif-gpsstatus-v": "Izrēizan preiēiminai mattausenes rezultātai",
+       "exif-gpsmeasuremode-2": "2-ermattawingis mattausenis",
+       "exif-gpsmeasuremode-3": "3-ermattawingis mattausenis",
+       "exif-gpsspeed-k": "Kilōmetrai per stūndin",
+       "exif-gpsspeed-m": "Mīlis per stūndin",
+       "exif-gpsspeed-n": "Winzalai",
+       "exif-gpsdirection-t": "Arwis līnkis",
+       "exif-gpsdirection-m": "Magnetiskas līnkis"
+}
diff --git a/languages/i18n/exif/ps.json b/languages/i18n/exif/ps.json
new file mode 100644 (file)
index 0000000..00feba1
--- /dev/null
@@ -0,0 +1,212 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ahmed-Najib-Biabani-Ibrahimkhel",
+                       "Baloch Khan",
+                       "Amjad Khan"
+               ]
+       },
+       "exif-imagewidth": "سوروالی",
+       "exif-imagelength": "لوړوالی",
+       "exif-photometricinterpretation": "پېکسل ترکيب",
+       "exif-orientation": "لورموندنه",
+       "exif-planarconfiguration": "اومتوک ترتيب",
+       "exif-xresolution": "څنډيز ژورليد",
+       "exif-yresolution": "ولاړيز ژورليد",
+       "exif-stripoffsets": "د انځور مالوماتځی",
+       "exif-jpeginterchangeformatlength": "د JPEG اومتوک بايټونه",
+       "exif-whitepoint": "د سپين ټکي رنگينتوب",
+       "exif-primarychromaticities": "د لومړيتوبونو رنگينتوبونه",
+       "exif-datetime": "د دوتنې د بدلون وخت او نېټه",
+       "exif-imagedescription": "انځور سرليک",
+       "exif-make": "کامره جوړونکی",
+       "exif-model": "د کامرې ماډل",
+       "exif-software": "کارېدلې ساوترۍ",
+       "exif-artist": "ليکوال",
+       "exif-copyright": "د رښتو خاوند",
+       "exif-exifversion": "Exif بڼه",
+       "exif-colorspace": "رنگ تشيال",
+       "exif-pixelxdimension": "د انځور سور",
+       "exif-pixelydimension": "د انځور جگوالی",
+       "exif-usercomment": "د کارن تبصرې",
+       "exif-relatedsoundfile": "اړونده غږيزه دوتنه",
+       "exif-datetimeoriginal": "د اومتوک جوړېدنې وخت او نېټه",
+       "exif-datetimedigitized": "د گڼياليزېدنې وخت او نېټه",
+       "exif-exposuretime": "رڼاغورځونې وخت",
+       "exif-exposuretime-format": "$1 ثانيه ($2)",
+       "exif-fnumber": "F شمېره",
+       "exif-exposureprogram": "رڼاغورځونې پروگرام",
+       "exif-spectralsensitivity": "طيفي حساسيت",
+       "exif-isospeedratings": "د ISO چټکتيا ارزونه",
+       "exif-shutterspeedvalue": "د APEX بندگر چټکتيا",
+       "exif-brightnessvalue": "د APEX رڼښت",
+       "exif-meteringmode": "رڼامېچنې حالت",
+       "exif-lightsource": "د رڼا سرچينه",
+       "exif-flash": "فلش",
+       "exif-focallength": "د عدسيې کانوني واټن",
+       "exif-subjectarea": "د جسم سيمه",
+       "exif-flashenergy": "د فلش انرژي",
+       "exif-subjectlocation": "د جسم ځای",
+       "exif-sensingmethod": "د حس کولو چلندلار",
+       "exif-filesource": "د دوتنې سرچينه",
+       "exif-scenetype": "د صحنې ډول",
+       "exif-customrendered": "دوديزه انځور بهير",
+       "exif-exposuremode": "د رڼا غورځولو حالت",
+       "exif-whitebalance": "د سپين رنگ توازن",
+       "exif-digitalzoomratio": "د گڼياليز لويواله پرتلنه",
+       "exif-gaincontrol": "د صحنې تنظيم",
+       "exif-contrast": "رڼښت",
+       "exif-saturation": "رنگ گاټه توب",
+       "exif-gpslatitude": "لوړوالی",
+       "exif-gpslongituderef": "ختيځ يا لوېديځ اوږدالی",
+       "exif-gpslongitude": "اوږدوالی",
+       "exif-gpsaltituderef": "د لوړوالي سرچينه",
+       "exif-gpsaltitude": "لوړوالی",
+       "exif-gpstimestamp": "GPS وخت (اتومي گړۍ)",
+       "exif-gpssatellites": "د مېچنې لپاره کارېدلې سپوږمکۍ",
+       "exif-gpsstatus": "د اخيستگر دريځ",
+       "exif-gpsmeasuremode": "د مېچنې حالت",
+       "exif-gpsdop": "د مېچنې دقت",
+       "exif-gpsspeedref": "د سرعت يوون",
+       "exif-gpsspeed": "د جي پي اس اخيستونکي چټکتيا",
+       "exif-gpstrack": "د خوځښت سمت",
+       "exif-gpsimgdirection": "د انځور لوری",
+       "exif-gpsareainformation": "د جي پي اس د سيمې نوم",
+       "exif-gpsdatestamp": "د جي پي اس نېټه",
+       "exif-jpegfilecomment": "د JPEG دوتنې تبصرې",
+       "exif-keywords": "آروييونه",
+       "exif-worldregiondest": "د نړۍ ښکاره شوې سيمه",
+       "exif-countrydest": "ښکاره شوی هېواد",
+       "exif-countrycodedest": "هېوادنی کوډ ښوول شوی",
+       "exif-provinceorstatedest": "ولايت يا ايالت ښوول شوی",
+       "exif-citydest": "ښکاره شوی ښار",
+       "exif-objectname": "لنډ سرليک",
+       "exif-headline": "سرليک",
+       "exif-source": "سرچينه",
+       "exif-urgency": "بیړنی حالت",
+       "exif-fixtureidentifier": "د ثابتولو نوم",
+       "exif-locationdest": "ځای ښودل شوی",
+       "exif-locationdestcode": "د موقعیت کوډ ښودل شوی",
+       "exif-objectcycle": "د ورځې وخت چې رسنۍ اراده لري",
+       "exif-contact": "د اړيکو مالومات",
+       "exif-writer": "ليکوال",
+       "exif-languagecode": "ژبه",
+       "exif-iimversion": "د IIM بڼه",
+       "exif-iimcategory": "وېشنيزه",
+       "exif-iimsupplementalcategory": "ضمیمه وېشنيزه",
+       "exif-datetimeexpires": "مه يې کاروۍ وروسته له",
+       "exif-datetimereleased": "خپرېدلی په",
+       "exif-identifier": "پېژندنه",
+       "exif-lens": "کارېدلې لېنز",
+       "exif-serialnumber": "د کامرې پرله پسې شمېره",
+       "exif-cameraownername": "د کامرې خاوند",
+       "exif-label": "نښکه",
+       "exif-rating": "درجه (له ۵ څخه بهر)",
+       "exif-copyrighted": "د رښتو دريځ",
+       "exif-copyrightowner": "د رښتو خاوند",
+       "exif-usageterms": "د کارولو شرايط",
+       "exif-pngfilecomment": "د PNG دوتنې تبصره",
+       "exif-disclaimer": "ردادعاليک",
+       "exif-contentwarning": "د منځپانګي خبرداری",
+       "exif-giffilecomment": "د GIF دوتنې تبصره",
+       "exif-intellectualgenre": "د توکو ډول",
+       "exif-subjectnewscode": "د موضوع کوډ",
+       "exif-scenecode": "د اي پي ثي ټي(IPTC) منظر کوډ",
+       "exif-event": "پيښه ښودل شوي",
+       "exif-organisationinimage": "سازمان ښودل شوي",
+       "exif-personinimage": "شخص ښودل شوی",
+       "exif-copyrighted-true": "په رښتو سمبال",
+       "exif-copyrighted-false": "د خپراوي د رښتو دريځ نه دی ټاکل شوی",
+       "exif-photometricinterpretation-1": "تور او سپين (تور 0 دی)",
+       "exif-unknowndate": "ناڅرگنده نېټه",
+       "exif-orientation-1": "نورمال",
+       "exif-orientation-3": "څرخيدونکي °١٨٠",
+       "exif-orientation-4": "چورليځه اړونه",
+       "exif-orientation-5": "څرخيدونکي °٩٠ CCW او عمودی یې وویشل",
+       "exif-orientation-6": "څرخيدونکي °٩٠ CCW",
+       "exif-componentsconfiguration-0": "نشته دی",
+       "exif-exposureprogram-1": "لارښوونيز",
+       "exif-exposureprogram-2": "نورماله پروگرام",
+       "exif-subjectdistance-value": "$1 متره",
+       "exif-meteringmode-0": "ناجوت",
+       "exif-meteringmode-1": "منځالی",
+       "exif-meteringmode-3": "سپوټ",
+       "exif-meteringmode-5": "مخبېلگه",
+       "exif-meteringmode-6": "برخيز",
+       "exif-meteringmode-255": "نور",
+       "exif-lightsource-0": "ناجوت",
+       "exif-lightsource-1": "د ورځې رڼا",
+       "exif-lightsource-4": "فلش",
+       "exif-lightsource-9": "ښه هوا",
+       "exif-lightsource-10": "ورېځ پوښلې هوا",
+       "exif-lightsource-11": "سيوری",
+       "exif-lightsource-12": "ورځنې فلوروسینټ (ډالر ۵۷۰۰ – ۷۱۰۰ زره)",
+       "exif-lightsource-17": "معياري رڼا '''ا'''",
+       "exif-lightsource-18": "معياري رڼا '''ب'''",
+       "exif-lightsource-19": "معياري رڼا '''ث'''",
+       "exif-lightsource-255": "د رڼا بله سرچينه",
+       "exif-flash-fired-0": "فلش و نه ځلېده",
+       "exif-flash-mode-3": "خپلکاره حالت",
+       "exif-focalplaneresolutionunit-2": "انچه",
+       "exif-sensingmethod-1": "ناڅرگنده",
+       "exif-filesource-3": "گڼياليزه ولاړه کامره",
+       "exif-customrendered-0": "نورماله بهير",
+       "exif-scenecapturetype-0": "معيار",
+       "exif-gaincontrol-0": "هېڅ",
+       "exif-contrast-0": "نورمال",
+       "exif-contrast-1": "پوست",
+       "exif-contrast-2": "کلک",
+       "exif-saturation-0": "نورمال",
+       "exif-sharpness-0": "نورمال",
+       "exif-sharpness-1": "پوست",
+       "exif-sharpness-2": "کلک",
+       "exif-subjectdistancerange-0": "ناجوت",
+       "exif-subjectdistancerange-1": "ماکرو",
+       "exif-subjectdistancerange-2": "نژدې ليدون",
+       "exif-subjectdistancerange-3": "لرې ليدون",
+       "exif-gpsspeed-k": "کيلومتره په يوه ساعت کې",
+       "exif-gpsspeed-m": "مايل په ساعت کې",
+       "exif-gpsspeed-n": "غوټې",
+       "exif-gpsdestdistance-k": "کيلومتر",
+       "exif-gpsdestdistance-m": "مايلونه",
+       "exif-gpsdestdistance-n": "سمندري مايلونه",
+       "exif-gpsdop-excellent": "عالي ($1)",
+       "exif-gpsdop-good": "ښه ($1)",
+       "exif-gpsdop-moderate": "منځوی ($1)",
+       "exif-gpsdop-fair": "نه ښه نه بد ($1)",
+       "exif-gpsdop-poor": "خراب ($1)",
+       "exif-objectcycle-a": "يوازې ګهيځ",
+       "exif-objectcycle-p": "يوازې ماښام",
+       "exif-gpsdirection-t": "سم لوری",
+       "exif-gpsdirection-m": "مقناطيسي لوری",
+       "exif-ycbcrpositioning-1": "منځنی",
+       "exif-dc-contributor": "ونډه وال",
+       "exif-dc-date": "نېټه (نېټې)",
+       "exif-dc-publisher": "خپروونکی",
+       "exif-dc-relation": "اړونده رسنۍ",
+       "exif-dc-rights": "رښتې",
+       "exif-dc-source": "د سرچينې رسنۍ",
+       "exif-dc-type": "د رسنۍ ډول",
+       "exif-rating-rejected": "رد شوی",
+       "exif-isospeedratings-overflow": "له 65535 لوی",
+       "exif-iimcategory-ace": "هنر، فرهنګ او تفريح",
+       "exif-iimcategory-clj": "جنايت او قانون",
+       "exif-iimcategory-dis": "غميزې او پېښې",
+       "exif-iimcategory-fin": "وټپوهنه او سوداګري",
+       "exif-iimcategory-edu": "زده کړې",
+       "exif-iimcategory-evn": "چاپېريال",
+       "exif-iimcategory-hth": "روغتيا",
+       "exif-iimcategory-hum": "بشري لېوالتيا",
+       "exif-iimcategory-lab": "کار",
+       "exif-iimcategory-lif": "ژوندتوګه او فارغ وختونه",
+       "exif-iimcategory-pol": "سياست",
+       "exif-iimcategory-rel": "دين او ګروهه",
+       "exif-iimcategory-sci": "ساينس او تخنيک",
+       "exif-iimcategory-soi": "ټولنيزې چارې",
+       "exif-iimcategory-spo": "سپورت",
+       "exif-iimcategory-war": "جگړه، تاوتريخوالی، او نارامي",
+       "exif-iimcategory-wea": "هوا",
+       "exif-urgency-normal": "نورمال ($1)",
+       "exif-urgency-low": "لږ ($1)",
+       "exif-urgency-high": "ډېر ($1)"
+}
diff --git a/languages/i18n/exif/pt-br.json b/languages/i18n/exif/pt-br.json
new file mode 100644 (file)
index 0000000..20e1eb1
--- /dev/null
@@ -0,0 +1,381 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Cainamarques",
+                       "Caçador de Palavras",
+                       "Eduardo Addad de Oliveira",
+                       "Eduardo.mps",
+                       "Giro720",
+                       "He7d3r",
+                       "Luckas",
+                       "ManoDbo",
+                       "Opraco"
+               ]
+       },
+       "exif-imagewidth": "Largura",
+       "exif-imagelength": "Altura",
+       "exif-bitspersample": "Bits por componente",
+       "exif-compression": "Esquema de compressão",
+       "exif-photometricinterpretation": "Composição pixel",
+       "exif-orientation": "Orientação",
+       "exif-samplesperpixel": "Número de componentes",
+       "exif-planarconfiguration": "Arranjo de dados",
+       "exif-ycbcrsubsampling": "Porcentagem de submistura do canal amarelo para o ciano",
+       "exif-ycbcrpositioning": "Posicionamento Y e C",
+       "exif-xresolution": "Resolução horizontal",
+       "exif-yresolution": "Resolução vertical",
+       "exif-stripoffsets": "Localização de dados da imagem",
+       "exif-rowsperstrip": "Número de linhas por tira",
+       "exif-stripbytecounts": "Bytes por tira comprimida",
+       "exif-jpeginterchangeformat": "Desvio para SOI de JPEG",
+       "exif-jpeginterchangeformatlength": "Bytes de dados JPEG",
+       "exif-whitepoint": "Cromaticidade do ponto branco",
+       "exif-primarychromaticities": "Cromaticidades primárias",
+       "exif-ycbcrcoefficients": "Coeficientes da matriz de transformação do espaço de cores",
+       "exif-referenceblackwhite": "Par de valores de referência de preto e branco",
+       "exif-datetime": "Data e hora de modificação do arquivo",
+       "exif-imagedescription": "Título",
+       "exif-make": "Fabricante da câmara",
+       "exif-model": "Modelo da câmara",
+       "exif-software": "Software utilizado",
+       "exif-artist": "Autor",
+       "exif-copyright": "Licença",
+       "exif-exifversion": "Versão Exif",
+       "exif-flashpixversion": "Versão de Flashpix suportada",
+       "exif-colorspace": "Espaço de cor",
+       "exif-componentsconfiguration": "Significado de cada componente",
+       "exif-compressedbitsperpixel": "Modo de compressão de imagem",
+       "exif-pixelxdimension": "Largura da imagem",
+       "exif-pixelydimension": "Altura da imagem",
+       "exif-usercomment": "Comentários de usuários",
+       "exif-relatedsoundfile": "arquivo áudio relacionado",
+       "exif-datetimeoriginal": "Data e hora da geração dos dados",
+       "exif-datetimedigitized": "Data e hora de digitalização",
+       "exif-subsectime": "Subsegundos DataHora",
+       "exif-subsectimeoriginal": "Subsegundos DataHoraOriginal",
+       "exif-subsectimedigitized": "Subsegundos DataHoraDigitalizado",
+       "exif-exposuretime": "Tempo de exposição",
+       "exif-exposuretime-format": "$1 seg ($2)",
+       "exif-fnumber": "Número F",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Programa de exposição",
+       "exif-spectralsensitivity": "Sensibilidade espectral",
+       "exif-isospeedratings": "Taxa de velocidade ISO",
+       "exif-shutterspeedvalue": "Velocidade do obturador (APEX)",
+       "exif-aperturevalue": "Abertura APEX",
+       "exif-brightnessvalue": "Brilho",
+       "exif-exposurebiasvalue": "Polarização de exposição",
+       "exif-maxaperturevalue": "Abertura máxima",
+       "exif-subjectdistance": "Distância do sujeito",
+       "exif-meteringmode": "Modo de medição",
+       "exif-lightsource": "Fonte de luz",
+       "exif-flash": "Flash",
+       "exif-focallength": "Comprimento de foco da lente",
+       "exif-focallength-format": "$1 mm",
+       "exif-subjectarea": "Área de sujeito",
+       "exif-flashenergy": "Energia do flash",
+       "exif-focalplanexresolution": "Resolução do plano focal X",
+       "exif-focalplaneyresolution": "Resolução do plano focal Y",
+       "exif-focalplaneresolutionunit": "Unidade de resolução do plano focal",
+       "exif-subjectlocation": "Localização de sujeito",
+       "exif-exposureindex": "Índice de exposição",
+       "exif-sensingmethod": "Método de sensação",
+       "exif-filesource": "Fonte do arquivo",
+       "exif-scenetype": "Tipo de cena",
+       "exif-customrendered": "Processamento de imagem personalizado",
+       "exif-exposuremode": "Modo de exposição",
+       "exif-whitebalance": "Balanço do branco",
+       "exif-digitalzoomratio": "Proporção de zoom digital",
+       "exif-focallengthin35mmfilm": "Distância focal em filme de 35 mm",
+       "exif-scenecapturetype": "Tipo de captura de cena",
+       "exif-gaincontrol": "Controlo de cena",
+       "exif-contrast": "Contraste",
+       "exif-saturation": "Saturação",
+       "exif-sharpness": "Nitidez",
+       "exif-devicesettingdescription": "Descrição das configurações do dispositivo",
+       "exif-subjectdistancerange": "Distância de alcance do sujeito",
+       "exif-imageuniqueid": "Identificação única da imagem",
+       "exif-gpsversionid": "Versão de GPS",
+       "exif-gpslatituderef": "Latitude norte ou sul",
+       "exif-gpslatitude": "Latitude",
+       "exif-gpslongituderef": "Longitude leste ou oeste",
+       "exif-gpslongitude": "Longitude",
+       "exif-gpsaltituderef": "Referência de altitude",
+       "exif-gpsaltitude": "Altitude",
+       "exif-gpstimestamp": "Tempo GPS (relógio atômico)",
+       "exif-gpssatellites": "Satélites utilizados para a medição",
+       "exif-gpsstatus": "Estado do receptor",
+       "exif-gpsmeasuremode": "Modo da medição",
+       "exif-gpsdop": "Precisão da medição",
+       "exif-gpsspeedref": "Unidade da velocidade",
+       "exif-gpsspeed": "Velocidade do receptor GPS",
+       "exif-gpstrackref": "Referência para a direção do movimento",
+       "exif-gpstrack": "Direção do movimento",
+       "exif-gpsimgdirectionref": "Referência para a direção da imagem",
+       "exif-gpsimgdirection": "Direção da imagem",
+       "exif-gpsmapdatum": "Utilizados dados do estudo Geodetic",
+       "exif-gpsdestlatituderef": "Referência para a latitude do destino",
+       "exif-gpsdestlatitude": "Latitude do destino",
+       "exif-gpsdestlongituderef": "Referência para a longitude do destino",
+       "exif-gpsdestlongitude": "Longitude do destino",
+       "exif-gpsdestbearingref": "Referência para o azimute do destino",
+       "exif-gpsdestbearing": "Azimute do destino",
+       "exif-gpsdestdistanceref": "Referência de distância para o destino",
+       "exif-gpsdestdistance": "Distância para o destino",
+       "exif-gpsprocessingmethod": "Nome do método de processamento do GPS",
+       "exif-gpsareainformation": "Nome da área do GPS",
+       "exif-gpsdatestamp": "Data do GPS",
+       "exif-gpsdifferential": "Correção do diferencial do GPS",
+       "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-jpegfilecomment": "Comentário de arquivo JPEG",
+       "exif-keywords": "Palavras-chave",
+       "exif-worldregioncreated": "Região do mundo onde a fotografia foi tirada",
+       "exif-countrycreated": "País onde a fotografia foi tirada",
+       "exif-countrycodecreated": "Código do país onde a fotografia foi tirada",
+       "exif-provinceorstatecreated": "Província ou estado onde a fotografia foi tirada",
+       "exif-citycreated": "Cidade onde a fotografia foi tirada",
+       "exif-sublocationcreated": "Parte da cidade onde a fotografia foi tirada",
+       "exif-worldregiondest": "Região do mundo fotografada",
+       "exif-countrydest": "País fotografado",
+       "exif-countrycodedest": "Código do país fotografado",
+       "exif-provinceorstatedest": "Província ou estado fotografado",
+       "exif-citydest": "Cidade fotografada",
+       "exif-sublocationdest": "Parte da cidade fotografada",
+       "exif-objectname": "Título curto",
+       "exif-specialinstructions": "Instruções especiais",
+       "exif-headline": "Título",
+       "exif-credit": "Atribuição/Fornecedor",
+       "exif-source": "Fonte",
+       "exif-editstatus": "Estatuto editorial da imagem",
+       "exif-urgency": "Urgência",
+       "exif-fixtureidentifier": "Nome da coluna",
+       "exif-locationdest": "Localização representada",
+       "exif-locationdestcode": "Código da localização representada",
+       "exif-objectcycle": "Período do dia para a qual o conteúdo está direcionado",
+       "exif-contact": "Informações para contato",
+       "exif-writer": "Escritor",
+       "exif-languagecode": "Idioma",
+       "exif-iimversion": "Versão IIM",
+       "exif-iimcategory": "Categoria",
+       "exif-iimsupplementalcategory": "Categorias suplementares",
+       "exif-datetimeexpires": "Não utilizar após",
+       "exif-datetimereleased": "Lançado em",
+       "exif-originaltransmissionref": "Código original do local de transmissão",
+       "exif-identifier": "Identificador",
+       "exif-lens": "Lente usada",
+       "exif-serialnumber": "Número de série da câmera",
+       "exif-cameraownername": "Proprietário da câmara",
+       "exif-label": "Etiqueta",
+       "exif-datetimemetadata": "Data da última modificação dos metadados",
+       "exif-nickname": "Nome informal da imagem",
+       "exif-rating": "Classificação (max. 5)",
+       "exif-rightscertificate": "Certificado de gestão de direitos",
+       "exif-copyrighted": "Estado dos direitos autorais",
+       "exif-copyrightowner": "Titular dos direitos autorais",
+       "exif-usageterms": "Termos de uso",
+       "exif-webstatement": "Declaração na internet dos direitos autorais",
+       "exif-originaldocumentid": "Identificação exclusiva do documento original",
+       "exif-licenseurl": "URL da licença",
+       "exif-morepermissionsurl": "Informações para licenciamento alternativo",
+       "exif-attributionurl": "Ao reutilizar esta obra, coloque um link para",
+       "exif-preferredattributionname": "Ao reutilizar esta obra, faça a atribuição a",
+       "exif-pngfilecomment": "Comentário de arquivo PNG",
+       "exif-disclaimer": "Exoneração de responsabilidade",
+       "exif-contentwarning": "Aviso sobre conteúdo",
+       "exif-giffilecomment": "Comentário de arquivo GIF",
+       "exif-intellectualgenre": "Tipo de item",
+       "exif-subjectnewscode": "Código do tema",
+       "exif-scenecode": "Código de cena IPTC",
+       "exif-event": "Evento retratado",
+       "exif-organisationinimage": "Organização retratada",
+       "exif-personinimage": "Pessoa retratada",
+       "exif-originalimageheight": "Altura da imagem antes de ser cortada",
+       "exif-originalimagewidth": "Largura da imagem antes de ser cortada",
+       "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "Sem compressão",
+       "exif-compression-2": "CCITT Grupo 3 Codificação run length de Huffman modificado unidimensional",
+       "exif-compression-3": "CCITT Grupo 3 codificação de fax",
+       "exif-compression-4": "CCITT Grupo 4 codificação de fax",
+       "exif-compression-6": "JPEG (antigo)",
+       "exif-compression-7": "JPEG",
+       "exif-compression-8": "Deflate (Adobe)",
+       "exif-compression-32773": "PackBits (Macintosh RLE)",
+       "exif-compression-32946": "Deflate (PKZIP)",
+       "exif-compression-34712": "JPEG2000",
+       "exif-copyrighted-true": "Direitos autorais reservados",
+       "exif-copyrighted-false": "Situação de direitos autorais não definido",
+       "exif-photometricinterpretation-0": "Preto e branco (branco é 0)",
+       "exif-photometricinterpretation-1": "Preto e branco (Preto é 0)",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-3": "Palete",
+       "exif-photometricinterpretation-4": "Máscara de transparência",
+       "exif-photometricinterpretation-5": "Separados (provavelmente CMYK)",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (codificação ICC)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (codificação ITU)",
+       "exif-photometricinterpretation-32803": "Matriz de filtros de cores",
+       "exif-photometricinterpretation-34892": "Linear não processado",
+       "exif-unknowndate": "Data desconhecida",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Espelhamento horizontal",
+       "exif-orientation-3": "Rotacionado em 180°",
+       "exif-orientation-4": "Espelhamento vertical",
+       "exif-orientation-5": "Rotacionado em 90º em sentido anti-horário e espelhado verticalmente",
+       "exif-orientation-6": "Rodado 90° no sentido anti-horário",
+       "exif-orientation-7": "Rotacionado em 90° no sentido horário e espelhado verticalmente",
+       "exif-orientation-8": "Rodado 90° no sentido horário",
+       "exif-planarconfiguration-1": "formato irregular",
+       "exif-planarconfiguration-2": "formato plano",
+       "exif-xyresolution-i": "$1 ppp",
+       "exif-xyresolution-c": "$1 pt/cm",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "Descalibrada",
+       "exif-componentsconfiguration-0": "não existe",
+       "exif-componentsconfiguration-1": "Y",
+       "exif-componentsconfiguration-2": "Cb",
+       "exif-exposureprogram-0": "Não definido",
+       "exif-exposureprogram-1": "Manual",
+       "exif-exposureprogram-2": "Programa normal",
+       "exif-exposureprogram-3": "Prioridade de abertura",
+       "exif-exposureprogram-4": "Prioridade de obturador",
+       "exif-exposureprogram-5": "Programa criativo (com tendência para profundidade de campo)",
+       "exif-exposureprogram-6": "Programa de movimento (tende a velocidade de disparo mais rápida)",
+       "exif-exposureprogram-7": "Modo de retrato (para fotos em <i>closeup</i> com o fundo fora de foco)",
+       "exif-exposureprogram-8": "Modo de paisagem (para fotos de paisagem com o fundo em foco)",
+       "exif-subjectdistance-value": "$1 metros",
+       "exif-meteringmode-0": "Desconhecido",
+       "exif-meteringmode-1": "Média",
+       "exif-meteringmode-2": "MédiaPonderadaAoCentro",
+       "exif-meteringmode-3": "Ponto",
+       "exif-meteringmode-4": "MultiPonto",
+       "exif-meteringmode-5": "Padrão",
+       "exif-meteringmode-6": "Parcial",
+       "exif-meteringmode-255": "Outro",
+       "exif-lightsource-0": "Desconhecida",
+       "exif-lightsource-1": "Luz do dia",
+       "exif-lightsource-2": "Fluorescente",
+       "exif-lightsource-3": "Tungsténio (luz incandescente)",
+       "exif-lightsource-4": "Flash",
+       "exif-lightsource-9": "Tempo bom",
+       "exif-lightsource-10": "Tempo nublado",
+       "exif-lightsource-11": "Sombra",
+       "exif-lightsource-12": "Iluminação fluorecente (D 5700 – 7100K)",
+       "exif-lightsource-13": "Iluminação fluorecente branca (N 4600 – 5400K)",
+       "exif-lightsource-14": "Iluminação fluorecente esbranquiçada (W 3900 – 4500K)",
+       "exif-lightsource-15": "Iluminação fluorecente branca (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Padrão de lâmpada A",
+       "exif-lightsource-18": "Padrão de lâmpada B",
+       "exif-lightsource-19": "Padrão de lâmpada C",
+       "exif-lightsource-24": "Tungsténio de estúdio ISO",
+       "exif-lightsource-255": "Outra fonte de luz",
+       "exif-flash-fired-0": "Flash não disparou",
+       "exif-flash-fired-1": "Flash disparado",
+       "exif-flash-return-0": "''strobe'' não encontrou ou detectou nenhuma função",
+       "exif-flash-return-2": "''strobe'' não retornou a função detectada",
+       "exif-flash-return-3": "''strobe'' retornou a luz detectada",
+       "exif-flash-mode-1": "disparo de flash forçado",
+       "exif-flash-mode-2": "disparo de ''flash'' suprimido",
+       "exif-flash-mode-3": "modo automático",
+       "exif-flash-function-1": "Sem função de ''flash''",
+       "exif-flash-redeye-1": "modo de redução de olhos vermelhos",
+       "exif-focalplaneresolutionunit-2": "polegadas",
+       "exif-sensingmethod-1": "Indefinido",
+       "exif-sensingmethod-2": "Sensor de áreas de cores de um chip",
+       "exif-sensingmethod-3": "Sensor de áreas de cores de dois chips",
+       "exif-sensingmethod-4": "Sensor de áreas de cores de três chips",
+       "exif-sensingmethod-5": "Sensor de área sequencial de cores",
+       "exif-sensingmethod-7": "Sensor trilinear",
+       "exif-sensingmethod-8": "Sensor linear sequencial de cores",
+       "exif-filesource-3": "Câmara fotográfica digital",
+       "exif-scenetype-1": "Imagem fotografada diretamente",
+       "exif-customrendered-0": "Processo normal",
+       "exif-customrendered-1": "Processo personalizado",
+       "exif-exposuremode-0": "Exposição automática",
+       "exif-exposuremode-1": "Exposição manual",
+       "exif-exposuremode-2": "Bracket automático",
+       "exif-whitebalance-0": "Balanço de brancos automático",
+       "exif-whitebalance-1": "Balanço de brancos manual",
+       "exif-scenecapturetype-0": "Padrão",
+       "exif-scenecapturetype-1": "Paisagem",
+       "exif-scenecapturetype-2": "Retrato",
+       "exif-scenecapturetype-3": "Cena noturna",
+       "exif-gaincontrol-0": "Nenhum",
+       "exif-gaincontrol-1": "Baixo ganho positivo",
+       "exif-gaincontrol-2": "Alto ganho positivo",
+       "exif-gaincontrol-3": "Baixo ganho negativo",
+       "exif-gaincontrol-4": "Alto ganho negativo",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Suave",
+       "exif-contrast-2": "Alto",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Baixa saturação",
+       "exif-saturation-2": "Alta saturação",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Fraco",
+       "exif-sharpness-2": "Forte",
+       "exif-subjectdistancerange-0": "Desconhecida",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Vista próxima",
+       "exif-subjectdistancerange-3": "Vista distante",
+       "exif-gpslatitude-n": "Latitude norte",
+       "exif-gpslatitude-s": "Latitude sul",
+       "exif-gpslongitude-e": "Longitude leste",
+       "exif-gpslongitude-w": "Longitude oeste",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metro|metros}} acima do nível do mar",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metro|metros}} abaixo do nível do mar",
+       "exif-gpsstatus-a": "Medição em progresso",
+       "exif-gpsstatus-v": "Interoperabilidade de medição",
+       "exif-gpsmeasuremode-2": "Medição bidimensional",
+       "exif-gpsmeasuremode-3": "Medição tridimensional",
+       "exif-gpsspeed-k": "Quilômetros por hora",
+       "exif-gpsspeed-m": "Milhas por hora",
+       "exif-gpsspeed-n": "Nós",
+       "exif-gpsdestdistance-k": "Quilômetros",
+       "exif-gpsdestdistance-m": "Milhas",
+       "exif-gpsdestdistance-n": "Milhas náuticas",
+       "exif-gpsdop-excellent": "Excelente ($1)",
+       "exif-gpsdop-good": "Bom ($1)",
+       "exif-gpsdop-moderate": "Satisfatório ($1)",
+       "exif-gpsdop-fair": "Aceitável ($1)",
+       "exif-gpsdop-poor": "Fraco ($1)",
+       "exif-objectcycle-a": "Só de manhã",
+       "exif-objectcycle-p": "Só à tarde/noite",
+       "exif-objectcycle-b": "De manhã e à tarde/noite",
+       "exif-gpsdirection-t": "Direção real",
+       "exif-gpsdirection-m": "Direção magnética",
+       "exif-ycbcrpositioning-1": "Centradas",
+       "exif-ycbcrpositioning-2": "Co-localizada",
+       "exif-dc-contributor": "Colaboradores",
+       "exif-dc-coverage": "Âmbito espacial ou temporal do conteúdo",
+       "exif-dc-date": "Data(s)",
+       "exif-dc-publisher": "Editora",
+       "exif-dc-relation": "Conteúdos relacionados",
+       "exif-dc-rights": "Direitos",
+       "exif-dc-source": "Imagem fonte",
+       "exif-dc-type": "Tipo de mídia",
+       "exif-rating-rejected": "Rejeitado",
+       "exif-isospeedratings-overflow": "Maior que 65535",
+       "exif-iimcategory-ace": "Artes, cultura e entretenimento",
+       "exif-iimcategory-clj": "Lei e crime",
+       "exif-iimcategory-dis": "Desastres e acidentes",
+       "exif-iimcategory-fin": "Economia e negócios",
+       "exif-iimcategory-edu": "Educação",
+       "exif-iimcategory-evn": "Meio ambiente",
+       "exif-iimcategory-hth": "Saúde",
+       "exif-iimcategory-hum": "Interesse humano",
+       "exif-iimcategory-lab": "Trabalho",
+       "exif-iimcategory-lif": "Estilo de vida e lazer",
+       "exif-iimcategory-pol": "Política",
+       "exif-iimcategory-rel": "Religião e credo",
+       "exif-iimcategory-sci": "Ciência e tecnologia",
+       "exif-iimcategory-soi": "Questões sociais",
+       "exif-iimcategory-spo": "Esportes",
+       "exif-iimcategory-war": "Guerra, conflitos e agitação social",
+       "exif-iimcategory-wea": "Tempo",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Baixa ($1)",
+       "exif-urgency-high": "Alta ($1)",
+       "exif-urgency-other": "Prioridade definida pelo usuário ($1)"
+}
diff --git a/languages/i18n/exif/pt.json b/languages/i18n/exif/pt.json
new file mode 100644 (file)
index 0000000..ecd3eec
--- /dev/null
@@ -0,0 +1,365 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Giro720",
+                       "Hamilton Abreu",
+                       "Luckas",
+                       "Malafaya",
+                       "Opraco",
+                       "Vitorvicentevalente",
+                       "Waldir",
+                       555
+               ]
+       },
+       "exif-imagewidth": "Largura",
+       "exif-imagelength": "Altura",
+       "exif-bitspersample": "Bits por componente",
+       "exif-compression": "Esquema de compressão",
+       "exif-photometricinterpretation": "Composição do píxel",
+       "exif-orientation": "Orientação",
+       "exif-samplesperpixel": "Número de componentes",
+       "exif-planarconfiguration": "Arranjo de dados",
+       "exif-ycbcrsubsampling": "Percentagem de submistura do canal amarelo para o ciano",
+       "exif-ycbcrpositioning": "Posicionamento Y e C",
+       "exif-xresolution": "Resolução horizontal",
+       "exif-yresolution": "Resolução vertical",
+       "exif-stripoffsets": "Localização dos dados da imagem",
+       "exif-rowsperstrip": "Número de linhas por tira",
+       "exif-stripbytecounts": "Bytes por tira comprimida",
+       "exif-jpeginterchangeformat": "Desvio para SOI de JPEG",
+       "exif-jpeginterchangeformatlength": "Bytes de dados JPEG",
+       "exif-whitepoint": "Cromatismo do ponto branco",
+       "exif-primarychromaticities": "Cromatismo das cores primárias",
+       "exif-ycbcrcoefficients": "Coeficientes da matriz de transformação do espaço de cores",
+       "exif-referenceblackwhite": "Par de valores de referência de preto e branco",
+       "exif-datetime": "Data e hora de modificação do ficheiro",
+       "exif-imagedescription": "Título",
+       "exif-make": "Fabricante da câmara",
+       "exif-model": "Modelo da câmara",
+       "exif-software": "Software utilizado",
+       "exif-artist": "Autor",
+       "exif-copyright": "Titular dos direitos de autor",
+       "exif-exifversion": "Versão Exif",
+       "exif-flashpixversion": "Versão de Flashpix suportada",
+       "exif-colorspace": "Espaço de cores",
+       "exif-componentsconfiguration": "Significado de cada componente",
+       "exif-compressedbitsperpixel": "Modo de compressão da imagem",
+       "exif-pixelxdimension": "Largura da imagem",
+       "exif-pixelydimension": "Altura da imagem",
+       "exif-usercomment": "Comentários de utilizadores",
+       "exif-relatedsoundfile": "Ficheiro áudio relacionado",
+       "exif-datetimeoriginal": "Data e hora de geração de dados",
+       "exif-datetimedigitized": "Data e hora de digitalização",
+       "exif-subsectime": "Subsegundos DataHora",
+       "exif-subsectimeoriginal": "Subsegundos DataHoraOriginal",
+       "exif-subsectimedigitized": "Subsegundos DataHoraDigitalizado",
+       "exif-exposuretime": "Tempo de exposição",
+       "exif-exposuretime-format": "$1 seg ($2)",
+       "exif-fnumber": "Número F",
+       "exif-exposureprogram": "Programa de exposição",
+       "exif-spectralsensitivity": "Sensibilidade espectral",
+       "exif-isospeedratings": "Taxa de velocidade ISO",
+       "exif-shutterspeedvalue": "Velocidade do obturador",
+       "exif-aperturevalue": "Abertura",
+       "exif-brightnessvalue": "Brilho APEX",
+       "exif-exposurebiasvalue": "Compensação da exposição",
+       "exif-maxaperturevalue": "Abertura máxima",
+       "exif-subjectdistance": "Distância do motivo",
+       "exif-meteringmode": "Modo de medição",
+       "exif-lightsource": "Fonte de luz",
+       "exif-flash": "Flash",
+       "exif-focallength": "Distância focal da lente",
+       "exif-subjectarea": "Área do motivo",
+       "exif-flashenergy": "Energia do flash",
+       "exif-focalplanexresolution": "Resolução do plano focal X",
+       "exif-focalplaneyresolution": "Resolução do plano focal Y",
+       "exif-focalplaneresolutionunit": "Unidade de resolução do plano focal",
+       "exif-subjectlocation": "Localização do motivo",
+       "exif-exposureindex": "Índice de exposição",
+       "exif-sensingmethod": "Tipo de sensor",
+       "exif-filesource": "Fonte do ficheiro",
+       "exif-scenetype": "Tipo de cena",
+       "exif-customrendered": "Processamento de imagem personalizado",
+       "exif-exposuremode": "Modo de exposição",
+       "exif-whitebalance": "Balanço de brancos",
+       "exif-digitalzoomratio": "Proporção do zoom digital",
+       "exif-focallengthin35mmfilm": "Distância focal em filme de 35 mm",
+       "exif-scenecapturetype": "Tipo de captura de cena",
+       "exif-gaincontrol": "Controlo de cena",
+       "exif-contrast": "Contraste",
+       "exif-saturation": "Saturação",
+       "exif-sharpness": "Nitidez",
+       "exif-devicesettingdescription": "Descrição das configurações do dispositivo",
+       "exif-subjectdistancerange": "Distância de alcance do motivo",
+       "exif-imageuniqueid": "Identificação única da imagem",
+       "exif-gpsversionid": "Versão de GPS",
+       "exif-gpslatituderef": "Latitude norte ou sul",
+       "exif-gpslatitude": "Latitude",
+       "exif-gpslongituderef": "Longitude este ou oeste",
+       "exif-gpslongitude": "Longitude",
+       "exif-gpsaltituderef": "Referência de altitude",
+       "exif-gpsaltitude": "Altitude",
+       "exif-gpstimestamp": "Tempo GPS (relógio atómico)",
+       "exif-gpssatellites": "Satélites utilizados para a medição",
+       "exif-gpsstatus": "Estado do receptor",
+       "exif-gpsmeasuremode": "Modo da medição",
+       "exif-gpsdop": "Precisão da medição",
+       "exif-gpsspeedref": "Unidade da velocidade",
+       "exif-gpsspeed": "Velocidade do receptor GPS",
+       "exif-gpstrackref": "Referência para a direção do movimento",
+       "exif-gpstrack": "Direção do movimento",
+       "exif-gpsimgdirectionref": "Referência para a direção da imagem",
+       "exif-gpsimgdirection": "Direção da imagem",
+       "exif-gpsmapdatum": "Utilizados dados do estudo Geodetic",
+       "exif-gpsdestlatituderef": "Referência para a latitude do destino",
+       "exif-gpsdestlatitude": "Latitude do destino",
+       "exif-gpsdestlongituderef": "Referência para a longitude do destino",
+       "exif-gpsdestlongitude": "Longitude do destino",
+       "exif-gpsdestbearingref": "Referência para o azimute do destino",
+       "exif-gpsdestbearing": "Azimute do destino",
+       "exif-gpsdestdistanceref": "Referência de distância para o destino",
+       "exif-gpsdestdistance": "Distância para o destino",
+       "exif-gpsprocessingmethod": "Nome do método de processamento do GPS",
+       "exif-gpsareainformation": "Nome da área do GPS",
+       "exif-gpsdatestamp": "Data do GPS",
+       "exif-gpsdifferential": "Correção do diferencial do GPS",
+       "exif-jpegfilecomment": "Comentário de ficheiro JPEG",
+       "exif-keywords": "Palavras-chave",
+       "exif-worldregioncreated": "Região do mundo onde a fotografia foi tirada",
+       "exif-countrycreated": "País onde a fotografia foi tirada",
+       "exif-countrycodecreated": "Código do país onde a fotografia foi tirada",
+       "exif-provinceorstatecreated": "Concelho, província ou estado onde a fotografia foi tirada",
+       "exif-citycreated": "Cidade onde a fotografia foi tirada",
+       "exif-sublocationcreated": "Parte da cidade onde a fotografia foi tirada",
+       "exif-worldregiondest": "Região do mundo fotografada",
+       "exif-countrydest": "País fotografado",
+       "exif-countrycodedest": "Código do país fotografado",
+       "exif-provinceorstatedest": "Concelho, província ou estado fotografado",
+       "exif-citydest": "Cidade fotografada",
+       "exif-sublocationdest": "Parte da cidade fotografada",
+       "exif-objectname": "Título curto",
+       "exif-specialinstructions": "Instruções especiais",
+       "exif-headline": "Título",
+       "exif-credit": "Atribuição/Fornecedor",
+       "exif-source": "Fonte",
+       "exif-editstatus": "Estatuto editorial da imagem",
+       "exif-urgency": "Urgência",
+       "exif-fixtureidentifier": "Nome da coluna",
+       "exif-locationdest": "Localização representada",
+       "exif-locationdestcode": "Código da localização representada",
+       "exif-objectcycle": "Altura do dia para a qual o conteúdo está direcionado",
+       "exif-contact": "Informação de contacto",
+       "exif-writer": "Escritor",
+       "exif-languagecode": "Língua",
+       "exif-iimversion": "Versão IIM",
+       "exif-iimcategory": "Categoria",
+       "exif-iimsupplementalcategory": "Categorias suplementares",
+       "exif-datetimeexpires": "Não utilizar após",
+       "exif-datetimereleased": "Publicada a",
+       "exif-originaltransmissionref": "Código original do local de transmissão",
+       "exif-identifier": "Identificador",
+       "exif-lens": "Lente usada",
+       "exif-serialnumber": "Número de série da câmara",
+       "exif-cameraownername": "Proprietário da câmara",
+       "exif-label": "Etiqueta",
+       "exif-datetimemetadata": "Data da última modificação dos metadados",
+       "exif-nickname": "Nome informal da imagem",
+       "exif-rating": "Classificação (max. 5)",
+       "exif-rightscertificate": "Certificado de gestão dos direitos",
+       "exif-copyrighted": "Estado dos direitos de autor:",
+       "exif-copyrightowner": "Titular dos direitos de autor",
+       "exif-usageterms": "Condições de uso",
+       "exif-webstatement": "Declaração na internet dos direitos de autor",
+       "exif-originaldocumentid": "Identificação exclusiva do documento original",
+       "exif-licenseurl": "URL da licença",
+       "exif-morepermissionsurl": "Informações para licenciamento alternativo",
+       "exif-attributionurl": "Ao reutilizar esta obra, faça a atribuição a",
+       "exif-preferredattributionname": "Ao reutilizar esta obra, faça a atribuição a",
+       "exif-pngfilecomment": "Comentário de ficheiro PNG",
+       "exif-disclaimer": "Exoneração de responsabilidade",
+       "exif-contentwarning": "Aviso sobre o conteúdo",
+       "exif-giffilecomment": "Comentário de ficheiro GIF",
+       "exif-intellectualgenre": "Género de conteúdo",
+       "exif-subjectnewscode": "Código do tema",
+       "exif-scenecode": "Código de cena IPTC",
+       "exif-event": "Evento retratado",
+       "exif-organisationinimage": "Organização retratada",
+       "exif-personinimage": "Pessoa retratada",
+       "exif-originalimageheight": "Altura da imagem antes de ser cortada",
+       "exif-originalimagewidth": "Largura da imagem antes de ser cortada",
+       "exif-compression-1": "Descomprimido",
+       "exif-compression-2": "CCITT Grupo 3 1-D Codificação Unidimensional Huffman Modificado e Run Length Encoding",
+       "exif-compression-3": "CCITT Grupo 3 codificação de fax",
+       "exif-compression-4": "CCITT Grupo 4 codificação de fax",
+       "exif-compression-6": "JPEG (antigo)",
+       "exif-copyrighted-true": "Direitos de autor reservados",
+       "exif-copyrighted-false": "Estado dos direitos de autor indefinido",
+       "exif-photometricinterpretation-0": "Preto e branco (branco é 0)",
+       "exif-photometricinterpretation-1": "Preto e branco (preto é 0)",
+       "exif-photometricinterpretation-3": "Palete",
+       "exif-photometricinterpretation-4": "Máscara de transparência",
+       "exif-photometricinterpretation-5": "Separados (provavelmente CMYK)",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (codificação ICC)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (codificação ITU)",
+       "exif-photometricinterpretation-32803": "Matriz de filtros de cores",
+       "exif-photometricinterpretation-34892": "Linear não processado",
+       "exif-unknowndate": "Data desconhecida",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Espelhamento horizontal",
+       "exif-orientation-3": "Rodado 180°",
+       "exif-orientation-4": "Invertido na vertical",
+       "exif-orientation-5": "Rodado 90º no sentido anti-horário e invertido na vertical",
+       "exif-orientation-6": "Rodado 90° no sentido anti-horário",
+       "exif-orientation-7": "Rodado 90° no sentido horário e invertido na vertical",
+       "exif-orientation-8": "Rodado 90° no sentido horário",
+       "exif-planarconfiguration-1": "formato irregular",
+       "exif-planarconfiguration-2": "formato plano",
+       "exif-xyresolution-i": "$1 ppp",
+       "exif-xyresolution-c": "$1 pt/cm",
+       "exif-colorspace-65535": "Cor não calibrada",
+       "exif-componentsconfiguration-0": "não existe",
+       "exif-exposureprogram-0": "Não definido",
+       "exif-exposureprogram-1": "Manual",
+       "exif-exposureprogram-2": "Programa normal",
+       "exif-exposureprogram-3": "Prioridade da abertura",
+       "exif-exposureprogram-4": "Prioridade do obturador",
+       "exif-exposureprogram-5": "Programa criativo (tendência para a profundidade de campo)",
+       "exif-exposureprogram-6": "Programa de movimento (tendência para velocidade de disparo mais rápida)",
+       "exif-exposureprogram-7": "Modo de retrato (para fotografia de perto, com o fundo desfocado)",
+       "exif-exposureprogram-8": "Modo de paisagem (para fotografia de paisagens com o fundo focado)",
+       "exif-subjectdistance-value": "$1 metros",
+       "exif-meteringmode-0": "Desconhecido",
+       "exif-meteringmode-1": "Média",
+       "exif-meteringmode-2": "MédiaPonderadaAoCentro",
+       "exif-meteringmode-3": "Ponto",
+       "exif-meteringmode-4": "Multiponto",
+       "exif-meteringmode-5": "Padrão",
+       "exif-meteringmode-6": "Parcial",
+       "exif-meteringmode-255": "Outro",
+       "exif-lightsource-0": "Desconhecida",
+       "exif-lightsource-1": "Luz do dia",
+       "exif-lightsource-2": "Fluorescente",
+       "exif-lightsource-3": "Tungsténio (luz incandescente)",
+       "exif-lightsource-4": "Flash",
+       "exif-lightsource-9": "Tempo bom",
+       "exif-lightsource-10": "Tempo nublado",
+       "exif-lightsource-11": "Sombra",
+       "exif-lightsource-12": "Fluorescente luz do dia (D 5700 – 7100K)",
+       "exif-lightsource-13": "Fluorescente branco luz do dia (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fluorescente branco frio (W 3900 – 4500K)",
+       "exif-lightsource-15": "Fluorescente branco (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Luz normal A",
+       "exif-lightsource-18": "Luz normal B",
+       "exif-lightsource-19": "Luz normal C",
+       "exif-lightsource-24": "Tungsténio de estúdio ISO",
+       "exif-lightsource-255": "Outra fonte de luz",
+       "exif-flash-fired-0": "Flash não disparou",
+       "exif-flash-fired-1": "Flash disparado",
+       "exif-flash-return-0": "nenhuma função de detecção de luz de retorno",
+       "exif-flash-return-2": "luz de retorno não detetada",
+       "exif-flash-return-3": "luz de retorno detetada",
+       "exif-flash-mode-1": "disparo de flash forçado",
+       "exif-flash-mode-2": "disparo de flash suprimido",
+       "exif-flash-mode-3": "modo auto",
+       "exif-flash-function-1": "Sem função de flash",
+       "exif-flash-redeye-1": "modo de redução de olhos vermelhos",
+       "exif-focalplaneresolutionunit-2": "polegadas",
+       "exif-sensingmethod-1": "Indefinido",
+       "exif-sensingmethod-2": "Sensor de áreas de cores de um chip",
+       "exif-sensingmethod-3": "Sensor de áreas de cores de dois chips",
+       "exif-sensingmethod-4": "Sensor de áreas de cores de três chips",
+       "exif-sensingmethod-5": "Sensor de área sequencial de cores",
+       "exif-sensingmethod-7": "Sensor trilinear",
+       "exif-sensingmethod-8": "Sensor linear sequencial de cores",
+       "exif-filesource-3": "Câmara fotográfica digital",
+       "exif-scenetype-1": "Imagem fotografada diretamente",
+       "exif-customrendered-0": "Processo normal",
+       "exif-customrendered-1": "Processo personalizado",
+       "exif-exposuremode-0": "Exposição automática",
+       "exif-exposuremode-1": "Exposição manual",
+       "exif-exposuremode-2": "Bracket automático",
+       "exif-whitebalance-0": "Balanço de brancos automático",
+       "exif-whitebalance-1": "Balanço de brancos manual",
+       "exif-scenecapturetype-0": "Padrão",
+       "exif-scenecapturetype-1": "Paisagem",
+       "exif-scenecapturetype-2": "Retrato",
+       "exif-scenecapturetype-3": "Cena noturna",
+       "exif-gaincontrol-0": "Nenhum",
+       "exif-gaincontrol-1": "Ganho positivo baixo",
+       "exif-gaincontrol-2": "Ganho positivo alto",
+       "exif-gaincontrol-3": "Ganho negativo baixo",
+       "exif-gaincontrol-4": "Ganho negativo alto",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Suave",
+       "exif-contrast-2": "Alto",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Saturação baixa",
+       "exif-saturation-2": "Saturação alta",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Fraco",
+       "exif-sharpness-2": "Forte",
+       "exif-subjectdistancerange-0": "Desconhecida",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Vista próxima",
+       "exif-subjectdistancerange-3": "Vista distante",
+       "exif-gpslatitude-n": "Latitude norte",
+       "exif-gpslatitude-s": "Latitude sul",
+       "exif-gpslongitude-e": "Longitude este",
+       "exif-gpslongitude-w": "Longitude oeste",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metro|metros}} acima do nível do mar",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metro|metros}} abaixo do nível do mar",
+       "exif-gpsstatus-a": "Medição em progresso",
+       "exif-gpsstatus-v": "Interoperabilidade de medição",
+       "exif-gpsmeasuremode-2": "Medição bidimensional",
+       "exif-gpsmeasuremode-3": "Medição tridimensional",
+       "exif-gpsspeed-k": "Quilómetros por hora",
+       "exif-gpsspeed-m": "Milhas por hora",
+       "exif-gpsspeed-n": "Nós",
+       "exif-gpsdestdistance-k": "Quilómetros",
+       "exif-gpsdestdistance-m": "Milhas",
+       "exif-gpsdestdistance-n": "Milhas náuticas",
+       "exif-gpsdop-excellent": "Excelente ($1)",
+       "exif-gpsdop-good": "Bom ($1)",
+       "exif-gpsdop-moderate": "Moderado ($1)",
+       "exif-gpsdop-fair": "Aceitável ($1)",
+       "exif-gpsdop-poor": "Fraco ($1)",
+       "exif-objectcycle-a": "Só de manhã",
+       "exif-objectcycle-p": "Só à tarde/noite",
+       "exif-objectcycle-b": "De manhã e à tarde/noite",
+       "exif-gpsdirection-t": "Direção real",
+       "exif-gpsdirection-m": "Direção magnética",
+       "exif-ycbcrpositioning-1": "Centradas",
+       "exif-ycbcrpositioning-2": "Co-localizadas",
+       "exif-dc-contributor": "Colaboradores",
+       "exif-dc-coverage": "Âmbito espacial ou temporal do conteúdo",
+       "exif-dc-date": "Data(s)",
+       "exif-dc-publisher": "Editora",
+       "exif-dc-relation": "Conteúdos relacionados",
+       "exif-dc-rights": "Direitos",
+       "exif-dc-source": "Imagem fonte",
+       "exif-dc-type": "Tipo do conteúdo",
+       "exif-rating-rejected": "Rejeitado",
+       "exif-isospeedratings-overflow": "Superior a 65535",
+       "exif-iimcategory-ace": "Artes, cultura e entretenimento",
+       "exif-iimcategory-clj": "Lei e crime",
+       "exif-iimcategory-dis": "Desastres e acidentes",
+       "exif-iimcategory-fin": "Economia e negócios",
+       "exif-iimcategory-edu": "Educação",
+       "exif-iimcategory-evn": "Meio ambiente",
+       "exif-iimcategory-hth": "Saúde",
+       "exif-iimcategory-hum": "Interesse humano",
+       "exif-iimcategory-lab": "Trabalho",
+       "exif-iimcategory-lif": "Estilo de vida e lazer",
+       "exif-iimcategory-pol": "Política",
+       "exif-iimcategory-rel": "Religião e credo",
+       "exif-iimcategory-sci": "Ciência e tecnologia",
+       "exif-iimcategory-soi": "Questões sociais",
+       "exif-iimcategory-spo": "Desporto",
+       "exif-iimcategory-war": "Guerra, conflitos e agitação social",
+       "exif-iimcategory-wea": "Tempo",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Baixa ($1)",
+       "exif-urgency-high": "Alta ($1)",
+       "exif-urgency-other": "Prioridade definida pelo utilizador ($1)"
+}
diff --git a/languages/i18n/exif/qu.json b/languages/i18n/exif/qu.json
new file mode 100644 (file)
index 0000000..41c7037
--- /dev/null
@@ -0,0 +1,345 @@
+{
+       "@metadata": {
+               "authors": [
+                       "AlimanRuna"
+               ]
+       },
+       "exif-imagewidth": "Suni kay",
+       "exif-imagelength": "Hanaq kay",
+       "exif-bitspersample": "Bitkuna ñawpariqninman",
+       "exif-compression": "Mat'iy t'iktulla",
+       "exif-photometricinterpretation": "Iñu ch'antay",
+       "exif-orientation": "Puririchiy",
+       "exif-samplesperpixel": "Ñawpariq rakinkunap yupaynin",
+       "exif-planarconfiguration": "Willa mast'ariy",
+       "exif-ycbcrsubsampling": "Y-pa C-man urin malliy achuraynin",
+       "exif-ycbcrpositioning": "Y-ta C-tapas churamuy",
+       "exif-xresolution": "Siriqpa ch'irkukun",
+       "exif-yresolution": "Sayaqpa ch'irkukun",
+       "exif-stripoffsets": "Rikcha willa churamuy",
+       "exif-rowsperstrip": "Sinrukuna ch'imiman",
+       "exif-stripbytecounts": "Bytekuna mat'isqa ch'imiman",
+       "exif-jpeginterchangeformat": "Ithiy JPEG SOI nisqaman",
+       "exif-jpeginterchangeformatlength": "JPEG willa bytekuna",
+       "exif-whitepoint": "Yuraq iñupi ñawra kay",
+       "exif-primarychromaticities": "Qallarina ñawra kaykuna",
+       "exif-ycbcrcoefficients": "Llimphi suyu tukuchina mamap q'iminanchankuna",
+       "exif-referenceblackwhite": "Yuraq yana chani yurichikunapaq",
+       "exif-datetime": "Willañiqi hukchay p'unchaw, pacha",
+       "exif-imagedescription": "Rikchap sut'ichaynin",
+       "exif-make": "Rikcha hap'inap ruraqnin",
+       "exif-model": "Rikcha hap'ina kayma",
+       "exif-software": "Llamk'achisqa llamp'u kaq",
+       "exif-artist": "Ruraq",
+       "exif-copyright": "Ruraqpa hayñinkunata hap'iq",
+       "exif-exifversion": "Exif rikch'ay",
+       "exif-flashpixversion": "Saqillasqa Flashpix rikch'ay",
+       "exif-colorspace": "Llimphi suyu",
+       "exif-componentsconfiguration": "Sapa ñawpariqninpa sut'in",
+       "exif-compressedbitsperpixel": "Rikchap mat'isqa kaynin laya",
+       "exif-pixelxdimension": "Rikchap suni kaynin",
+       "exif-pixelydimension": "Rikchap hanaq kaynin",
+       "exif-usercomment": "Llamk'achiqpa willayninkuna",
+       "exif-relatedsoundfile": "Ninachiq ruqyay willañiqi",
+       "exif-datetimeoriginal": "Willakunap kamaynin p'unchaw, pacha",
+       "exif-datetimedigitized": "Antañiqichay p'unchaw, pacha",
+       "exif-subsectime": "P'unchaw, pacha (sikundup rakinkunapas)",
+       "exif-subsectimeoriginal": "Willakunap kamaynin p'unchaw, pacha (sikundup rakinkunapas)",
+       "exif-subsectimedigitized": "Antañiqichay p'unchaw, pacha (sikundup rakinkunapas)",
+       "exif-exposuretime": "Churapay pacha",
+       "exif-exposuretime-format": "$1 sikundu ($2)",
+       "exif-fnumber": "F huchha",
+       "exif-exposureprogram": "Churapana wakichi",
+       "exif-spectralsensitivity": "Ispiktru musyaykuy",
+       "exif-isospeedratings": "ISO utqay chayninchay",
+       "exif-shutterspeedvalue": "APEX wichq'aqpa utqaynin",
+       "exif-aperturevalue": "APEX illa k'ichkina",
+       "exif-brightnessvalue": "APEX k'anchay",
+       "exif-exposurebiasvalue": "Churapay pantapayay",
+       "exif-maxaperturevalue": "Illa k'ichkinap lliwmanta aswan chanin",
+       "exif-subjectdistance": "Rikchachasqamanta karu kaynin",
+       "exif-meteringmode": "Tupuy laya",
+       "exif-lightsource": "K'anchay pukyu",
+       "exif-flash": "Illapu",
+       "exif-focallength": "Lintip rawray karu kaynin",
+       "exif-subjectarea": "Rikchachasqap hawan",
+       "exif-flashenergy": "Illapup michan",
+       "exif-focalplanexresolution": "Rawray p'alltap X ch'irkukun",
+       "exif-focalplaneyresolution": "Rawray p'alltap Y ch'irkukun",
+       "exif-focalplaneresolutionunit": "Rawray p'alltap ch'irkuku tupun",
+       "exif-subjectlocation": "Rikchachasqap tiyachiynin",
+       "exif-exposureindex": "Churapay rikuchiq",
+       "exif-sensingmethod": "Musyachiq laya",
+       "exif-filesource": "Willañiqip pukyun",
+       "exif-scenetype": "Rikuypacha laya",
+       "exif-customrendered": "Rikcha llamk'apuyta sapaqchay",
+       "exif-exposuremode": "Churapay laya",
+       "exif-whitebalance": "Yuraq paqtaku",
+       "exif-digitalzoomratio": "Iliktruniku sichpachinap (zoom nisqap) achuraynin",
+       "exif-focallengthin35mmfilm": "35 mm pilikulapi rawray karu kay",
+       "exif-scenecapturetype": "Rikuypacha hap'iy laya",
+       "exif-gaincontrol": "Rikuypacha llanchiy",
+       "exif-contrast": "Achki hayu",
+       "exif-saturation": "Sasay",
+       "exif-sharpness": "K'awchi kay",
+       "exif-devicesettingdescription": "Llamk'ana allinkachinamanta t'iktuqay",
+       "exif-subjectdistancerange": "Rikchachasqap karu kay patayaykun",
+       "exif-imageuniqueid": "Rikchap ch'ulla ID-nin",
+       "exif-gpsversionid": "GPS sanancha musuqchasqa",
+       "exif-gpslatituderef": "Chincha icha uralan hanaq",
+       "exif-gpslatitude": "Tinkurachina hanaq",
+       "exif-gpslongituderef": "Anti icha kunti suni",
+       "exif-gpslongitude": "Tinkurachina suni",
+       "exif-gpsaltituderef": "Hanaq kaypa ninakuynin",
+       "exif-gpsaltitude": "Hanaq kay",
+       "exif-gpstimestamp": "GPS pacha (iñuku tupuna)",
+       "exif-gpssatellites": "Tupunapaq llamk'achisqa satilitikuna",
+       "exif-gpsstatus": "Musyachiqpa kachkaynin",
+       "exif-gpsmeasuremode": "Tupuy laya",
+       "exif-gpsdop": "Tupuypa t'urpu kaynin",
+       "exif-gpsspeedref": "Utqay tupu",
+       "exif-gpsspeed": "GPS musyachiqpa utqaynin",
+       "exif-gpstrackref": "Kuyuypa mayman puririyninpaq ninakuy",
+       "exif-gpstrack": "Kuyuypa mayman puririynin",
+       "exif-gpsimgdirectionref": "Rikchap puririyninpaq ninakuy",
+       "exif-gpsimgdirection": "Rikchap puririynin",
+       "exif-gpsmapdatum": "Allpa tupuy willakunaqa llamk'achisqam",
+       "exif-gpsdestlatituderef": "Taripana tinkurachina hanaqpaq ninakuy",
+       "exif-gpsdestlatitude": "Taripana tinkurachina hanaq",
+       "exif-gpsdestlongituderef": "Taripana tinkurachina sunipaq ninakuy",
+       "exif-gpsdestlongitude": "Taripana tinkurachina suni",
+       "exif-gpsdestbearingref": "Taripanaman puririypaq ninakuy",
+       "exif-gpsdestbearing": "Taripanaman puririy",
+       "exif-gpsdestdistanceref": "Taripanaman karu kaypaq ninakuy",
+       "exif-gpsdestdistance": "Taripanaman karu kay",
+       "exif-gpsprocessingmethod": "GPS llamk'apuna laya suti",
+       "exif-gpsareainformation": "GPS suyu suti",
+       "exif-gpsdatestamp": "GPS p'unchaw",
+       "exif-gpsdifferential": "GPS karuncha allinchay",
+       "exif-jpegfilecomment": "JPEG willañiqi rimapuy",
+       "exif-keywords": "Llawi rimakuna",
+       "exif-worldregioncreated": "Tiksimuyup mayqin rakinpi kay rikch'a hap'isqa",
+       "exif-countrycreated": "Mayqin mamallaqtapi kay rikch'a hap'isqa",
+       "exif-countrycodecreated": "Mamallaqtap tuyrun, mayqinpichus kay rikch'a hap'isqa",
+       "exif-provinceorstatecreated": "Mayqin suyupi kay rikch'a hap'isqa",
+       "exif-citycreated": "Mayqin llaqtapi kay rikch'a hap'isqa",
+       "exif-sublocationcreated": "Mayqin llaqta suyuchapi kay rikch'a hap'isqa",
+       "exif-worldregiondest": "Tiksimuyup rakin rikuchisqa",
+       "exif-countrydest": "Rikuchisqa mamallaqta",
+       "exif-countrycodedest": "Rikuchisqa mamallaqtapaq tuyrun",
+       "exif-provinceorstatedest": "Rikuchisqa suyu",
+       "exif-citydest": "Rikuchisqa llaqta",
+       "exif-sublocationdest": "Rikuchisqa llaqtasuyu",
+       "exif-objectname": "Uchuy suti",
+       "exif-specialinstructions": "Sapaq kamachiykuna",
+       "exif-headline": "Uma siq'i",
+       "exif-credit": "Rikchata quq",
+       "exif-source": "Pukyu",
+       "exif-editstatus": "Rikcha p'anqachasqa kachkay",
+       "exif-urgency": "Utqana",
+       "exif-fixtureidentifier": "Takya kaqpa sutin",
+       "exif-locationdest": "Rikuchisqa tiyay, maypim kan",
+       "exif-locationdestcode": "Rikuchisqa tiyaypaq tuyrun",
+       "exif-objectcycle": "P'unchawpi mayqin pachapaq kay rikch'a",
+       "exif-contact": "Ruraqwan willanakunapaq",
+       "exif-writer": "Qillqaq",
+       "exif-languagecode": "Rimay",
+       "exif-iimversion": "IIM musuqchasqa",
+       "exif-iimcategory": "Katiguriya",
+       "exif-iimsupplementalcategory": "Yapana katiguriyakuna",
+       "exif-datetimeexpires": "Ama llamk'achiychu kaymanta qhipaq pacha",
+       "exif-datetimereleased": "Kacharisqa",
+       "exif-originaltransmissionref": "Qallariy karpana tiyay tuyru",
+       "exif-identifier": "Kikinchaq",
+       "exif-lens": "Llamk'achisqa linti",
+       "exif-serialnumber": "Rikch'a hap'inap sinri huchhan",
+       "exif-cameraownername": "Rikch'a hap'inayuq kaq",
+       "exif-label": "Huqari qillqa",
+       "exif-datetimemetadata": "Hayk'ap metadata qhipaqta hukchasqa karqan",
+       "exif-nickname": "Rikch'ap chutu sutin",
+       "exif-rating": "Chaninchay (pichqamanta)",
+       "exif-rightscertificate": "Hayñi kamachina illu",
+       "exif-copyrighted": "Ima hina iskaychay hayñiyuq",
+       "exif-copyrightowner": "Ruraqpa hayñinkunata hap'iq",
+       "exif-usageterms": "Llamk'achina phatakuna",
+       "exif-webstatement": "Llikapi iskaychay hayñi willay",
+       "exif-originaldocumentid": "Qallariy qillqarimap sapaqlla kikinchakuynin",
+       "exif-licenseurl": "Iskaychay hayñi saqillaypaq URL",
+       "exif-morepermissionsurl": "Wakin kaq saqillay willay",
+       "exif-attributionurl": "Kayta musuqmanta llamk'achispa kayman t'inkimuy:",
+       "exif-preferredattributionname": "Kayta musuqmanta llamk'achispa kaymanta willay:",
+       "exif-pngfilecomment": "PNG willañiqi rimapuy",
+       "exif-disclaimer": "Kay rikch'apaq chiqakunamanta rikuchiy",
+       "exif-contentwarning": "Samiqmanta yuyampay",
+       "exif-giffilecomment": "GIF willañiqi rimapuy",
+       "exif-intellectualgenre": "Rikch'apaq sumaq rimaysami",
+       "exif-subjectnewscode": "Allwiy tuyru",
+       "exif-scenecode": "IPTC qhawariylla tuyru",
+       "exif-event": "Rikuchisqa tukusqa, imam tukukun",
+       "exif-organisationinimage": "Rikuchisqa tantanakuy",
+       "exif-personinimage": "Rikuchisqa runa, pim kan",
+       "exif-originalimageheight": "Manaraq rutusqa rikch'ap hanaq kaynin",
+       "exif-originalimagewidth": "Manaraq rutusqa rikch'ap suni kaynin",
+       "exif-compression-1": "Mana mat'isqa",
+       "exif-compression-2": "CCITT Huñu 3 1-tupu wakinchasqa Huffman purina suni llawiy",
+       "exif-compression-3": "CCITT Huñu 3 tilifaks llawiy",
+       "exif-compression-4": "CCITT Huñu 4 tilifaks llawiy",
+       "exif-copyrighted-true": "Iskaychay hayñi kan",
+       "exif-copyrighted-false": "Ruraqpa iskaychay hayñin kachkayqa mana sut'ichasqachu",
+       "exif-unknowndate": "Mana riqsisqa p'unchaw",
+       "exif-orientation-1": "Sapsi",
+       "exif-orientation-2": "Siriqlla t'ikrasqa",
+       "exif-orientation-3": "180° muyusqa",
+       "exif-orientation-4": "Sayaqlla t'ikrasqa",
+       "exif-orientation-5": "90° pacha tupunaman hayu muyusqa, sayaqlla t'ikrasqa",
+       "exif-orientation-6": "90° lluq'iman muyusqa",
+       "exif-orientation-7": "90° pacha tupunawan muyusqa, sayaqlla t'ikrasqa",
+       "exif-orientation-8": "90° pañaman muyusqa",
+       "exif-planarconfiguration-1": "muyuqhawa chanta",
+       "exif-planarconfiguration-2": "p'allta chanta",
+       "exif-colorspace-65535": "Mana kaliwrasqa",
+       "exif-componentsconfiguration-0": "manam kachkanchu",
+       "exif-exposureprogram-0": "Mana ch'uyanchasqa",
+       "exif-exposureprogram-1": "Qillqarima",
+       "exif-exposureprogram-2": "Sapsi wakichi",
+       "exif-exposureprogram-3": "Illa k'ichkina hawmay",
+       "exif-exposureprogram-4": "Wichq'aq hawmay",
+       "exif-exposureprogram-5": "Kamariqlla wakichi (k'itip suni kayninman hawmay)",
+       "exif-exposureprogram-6": "Ruraykuna wakichi (utqaq wichq'aqman hawmay)",
+       "exif-exposureprogram-7": "Runa uya rikcha (sichpasqa rikchachasqa, qhipaqkunataq manam k'awchichu)",
+       "exif-exposureprogram-8": "Muyuqhawa rikcha (rikchachasqa qhipaqkuna)",
+       "exif-subjectdistance-value": "$1 mitru",
+       "exif-meteringmode-0": "Mana riqsisqa",
+       "exif-meteringmode-1": "Kuskanchaku",
+       "exif-meteringmode-2": "Chawpichasqa kuskanchaku",
+       "exif-meteringmode-3": "T'upsilla",
+       "exif-meteringmode-4": "Achka t'upsi",
+       "exif-meteringmode-5": "Qatinalla",
+       "exif-meteringmode-6": "Rakilla",
+       "exif-meteringmode-255": "Wakin",
+       "exif-lightsource-0": "Mana riqsisqa",
+       "exif-lightsource-1": "P'unchaw achkiy",
+       "exif-lightsource-2": "Wapsi pila k'anchana",
+       "exif-lightsource-3": "Wolframyu (pinchikilla k'anchanapi illanchaq tiwli)",
+       "exif-lightsource-4": "Illapu",
+       "exif-lightsource-9": "Usyay mit'a",
+       "exif-lightsource-10": "Phuyusapa mit'a",
+       "exif-lightsource-11": "Llanthu",
+       "exif-lightsource-12": "P'unchaw wapsi pila k'anchana (D 5700 – 7100K)",
+       "exif-lightsource-13": "P'unchaw yuraq wapsi pila k'anchana (N 4600 – 5400K)",
+       "exif-lightsource-14": "Chiri yuraq pila k'anchana (W 3900 – 4500K)",
+       "exif-lightsource-15": "Yuraq pila k'anchana (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Sapsi k'anchana A",
+       "exif-lightsource-18": "Sapsi k'anchana B",
+       "exif-lightsource-19": "Sapsi k'anchana C",
+       "exif-lightsource-24": "ISO istudyu wolframyu",
+       "exif-lightsource-255": "Huk k'anchay pukyu",
+       "exif-flash-fired-0": "Manam pinchi illaparqanchu",
+       "exif-flash-fired-1": "Pinchi illaparqanmi",
+       "exif-flash-return-0": "llukchipayay musyanaqa ama kachunchu",
+       "exif-flash-return-2": "llukchipayay k'anchanaqa manam tarisqachu",
+       "exif-flash-return-3": "llukchipayay k'anchanaqa tarisqam",
+       "exif-flash-mode-1": "pinchi illapanam atin",
+       "exif-flash-mode-2": "pinchi illapana manam kachunchu",
+       "exif-flash-mode-3": "kikinmanta",
+       "exif-flash-function-1": "Manam pinchi illapanachu",
+       "exif-flash-redeye-1": "puka ñawi pakana",
+       "exif-focalplaneresolutionunit-2": "inch",
+       "exif-sensingmethod-1": "Mana ch'uyanchasqa",
+       "exif-sensingmethod-2": "Ch'ulla antañiqiq chhillpa llimphi suyu musyachiq",
+       "exif-sensingmethod-3": "Iskay antañiqiq chhillpa llimphi suyu musyachiq",
+       "exif-sensingmethod-4": "Kimsa antañiqiq chhillpa llimphi suyu musyachiq",
+       "exif-sensingmethod-5": "Qatiqlla llimphi suyu musyachiq",
+       "exif-sensingmethod-7": "Kimsantin siq'i musyachiq",
+       "exif-sensingmethod-8": "Qatiqlla siq'i llimphi musyachiq",
+       "exif-filesource-3": "Ruk'aqta sayaq rikch'a hap'ina",
+       "exif-scenetype-1": "Chiqalla hap'isqa rikcha",
+       "exif-customrendered-0": "Sapsi ruraykuy",
+       "exif-customrendered-1": "Sapaqchasqa ruraykuy",
+       "exif-exposuremode-0": "Kikinmanta churapay",
+       "exif-exposuremode-1": "Makiwan churapay",
+       "exif-exposuremode-2": "Kikinmanta qinchaq",
+       "exif-whitebalance-0": "Kikinmanta yuraq paqtanaku",
+       "exif-whitebalance-1": "Makiwan yuraq paqtanaku",
+       "exif-scenecapturetype-0": "Hukyachisqa",
+       "exif-scenecapturetype-1": "Rikuypacha",
+       "exif-scenecapturetype-2": "Runa uya rikcha",
+       "exif-scenecapturetype-3": "Tuta rikcha",
+       "exif-gaincontrol-0": "Mana imapas",
+       "exif-gaincontrol-1": "Aslla chaskiy miray",
+       "exif-gaincontrol-2": "Achka chaskiy miray",
+       "exif-gaincontrol-3": "Aslla chaskiy pisiyay",
+       "exif-gaincontrol-4": "Achka chaskiy pisiyay",
+       "exif-contrast-0": "Sapsi",
+       "exif-contrast-1": "Llamp'u",
+       "exif-contrast-2": "Sinchi",
+       "exif-saturation-0": "Sapsi",
+       "exif-saturation-1": "Aslla sasay",
+       "exif-saturation-2": "Achka sasay",
+       "exif-sharpness-0": "Sapsi",
+       "exif-sharpness-1": "Llamp'u",
+       "exif-sharpness-2": "Sinchi",
+       "exif-subjectdistancerange-0": "Mana riqsisqa",
+       "exif-subjectdistancerange-1": "Hatun",
+       "exif-subjectdistancerange-2": "Sichpalla rikuy",
+       "exif-subjectdistancerange-3": "Karulla rikuy",
+       "exif-gpslatitude-n": "Chincha hanaq",
+       "exif-gpslatitude-s": "Uralan hanaq",
+       "exif-gpslongitude-e": "Anti suni",
+       "exif-gpslongitude-w": "Kunti suni",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|mitru|mitru}} mama quchamanta aswan hanaq",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|mitru|mitru}} mama quchamanta aswan ura",
+       "exif-gpsstatus-a": "Tupuchkaspa",
+       "exif-gpsstatus-v": "Tupuy ruranakunalla kay",
+       "exif-gpsmeasuremode-2": "Iskaynintin chhikanyachiy tupuy",
+       "exif-gpsmeasuremode-3": "Kimsantin chhikanyachiy tupuy",
+       "exif-gpsspeed-k": "Kilumitru uraman",
+       "exif-gpsspeed-m": "Milla uraman",
+       "exif-gpsspeed-n": "Muqukuna",
+       "exif-gpsdestdistance-k": "Kilumitru (waranqa thatki)",
+       "exif-gpsdestdistance-m": "Milla",
+       "exif-gpsdestdistance-n": "Wamp'una milla",
+       "exif-gpsdop-excellent": "Pawqarquri ($1)",
+       "exif-gpsdop-good": "Sumaqlla ($1)",
+       "exif-gpsdop-moderate": "Allinraq ($1)",
+       "exif-gpsdop-fair": "Chaskinaraq ($1)",
+       "exif-gpsdop-poor": "Mana chaskina ($1)",
+       "exif-objectcycle-a": "Paqarinlla",
+       "exif-objectcycle-p": "Ch'isilla",
+       "exif-objectcycle-b": "Paqarinpas ch'isipas",
+       "exif-gpsdirection-t": "Chiqap puririy",
+       "exif-gpsdirection-m": "Maqnitiku puririy",
+       "exif-ycbcrpositioning-1": "Chawpichasqa",
+       "exif-ycbcrpositioning-2": "Kuska saywachasqa",
+       "exif-dc-contributor": "Llamk'apuqkuna",
+       "exif-dc-coverage": "Maykamapas hayk'apkamapas midya haywakun",
+       "exif-dc-date": "P'unchaw(kuna)",
+       "exif-dc-publisher": "Uyaychaq",
+       "exif-dc-relation": "Ninachisqa midyakuna",
+       "exif-dc-rights": "Hayñikuna",
+       "exif-dc-source": "Pukyu rikcha",
+       "exif-dc-type": "Midya laya",
+       "exif-rating-rejected": "Hat'asqa",
+       "exif-isospeedratings-overflow": "65535-manta aswan",
+       "exif-iimcategory-ace": "Kapchiy, kawsay saphi, tunay",
+       "exif-iimcategory-clj": "Q'uma, chiqarimay",
+       "exif-iimcategory-dis": "Aquyrakikuna, ñak'ariykuna, llakiykuna",
+       "exif-iimcategory-fin": "Musiku, qullqikamay",
+       "exif-iimcategory-edu": "Yachachiy",
+       "exif-iimcategory-evn": "Pachamama, muyuriq pacha",
+       "exif-iimcategory-hth": "Qhali kay",
+       "exif-iimcategory-hum": "Rayk'uy",
+       "exif-iimcategory-lab": "Llamk'ay",
+       "exif-iimcategory-lif": "Kawsay hamuy, hawkay",
+       "exif-iimcategory-pol": "Kawpay (pulitika)",
+       "exif-iimcategory-rel": "Iñiy",
+       "exif-iimcategory-sci": "Hamut'ay, allwiya kamay",
+       "exif-iimcategory-soi": "Qutu kawsay, sapsi kay",
+       "exif-iimcategory-spo": "Kurku kallpanchay",
+       "exif-iimcategory-war": "Awqanakuy",
+       "exif-iimcategory-wea": "Mit'a",
+       "exif-urgency-normal": "Sapsi kaq ($1)",
+       "exif-urgency-low": "Aslla ($1)",
+       "exif-urgency-high": "Hatun ($1)",
+       "exif-urgency-other": "Ruraqpa churasqan ñawpaqchay ($1)"
+}
diff --git a/languages/i18n/exif/rm.json b/languages/i18n/exif/rm.json
new file mode 100644 (file)
index 0000000..b817e9a
--- /dev/null
@@ -0,0 +1,346 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Gion-andri",
+                       "Kazu89"
+               ]
+       },
+       "exif-imagewidth": "Ladezza",
+       "exif-imagelength": "Autezza",
+       "exif-bitspersample": "Bits per cumponenta da colur",
+       "exif-compression": "Tip da cumpressiun",
+       "exif-photometricinterpretation": "Cumposiziun dals pixels",
+       "exif-orientation": "Orientaziun",
+       "exif-samplesperpixel": "Dumber da cumpunentas",
+       "exif-planarconfiguration": "Arrangement da las datas",
+       "exif-ycbcrsubsampling": "Rata da subsampling da Y a C",
+       "exif-ycbcrpositioning": "Posiziunament da Y e C",
+       "exif-xresolution": "Resoluziun orizontala",
+       "exif-yresolution": "Resoluziun verticala",
+       "exif-stripoffsets": "Posiziun da las datas da maletg",
+       "exif-rowsperstrip": "Dumber lingias per strivla",
+       "exif-stripbytecounts": "Bytes per strivla cumprimida",
+       "exif-jpeginterchangeformat": "Offset al JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bytes datas da JPEG",
+       "exif-whitepoint": "Cromatissem dil punct alv",
+       "exif-primarychromaticities": "Cromatissem da las colurs primara�s",
+       "exif-ycbcrcoefficients": "Coeffizients YCbCr",
+       "exif-referenceblackwhite": "Pèr da valurs da referenza per nair ed alv",
+       "exif-datetime": "Data da modificaziun",
+       "exif-imagedescription": "Titel dal maletg",
+       "exif-make": "Fabricant da l'apparat",
+       "exif-model": "Model da l'apparat",
+       "exif-software": "Software utilisada",
+       "exif-artist": "Autur",
+       "exif-copyright": "Dretgs d'autur",
+       "exif-exifversion": "Versiun dad Exif",
+       "exif-flashpixversion": "Versiun da FlashPix sustegnida",
+       "exif-colorspace": "Spazi da colurs",
+       "exif-componentsconfiguration": "Significaziun da las singulas cumponentas",
+       "exif-compressedbitsperpixel": "Modus da cumprimer",
+       "exif-pixelxdimension": "Ladezza dal maletg",
+       "exif-pixelydimension": "Autezza dal maletg",
+       "exif-usercomment": "Commentari da l'utilisader",
+       "exif-relatedsoundfile": "Datoteca d'audio appartegnenta",
+       "exif-datetimeoriginal": "Data e temp da la generaziun",
+       "exif-datetimedigitized": "Data e temp da la digitalisaziun",
+       "exif-subsectime": "Data en tschientavels secunda",
+       "exif-subsectimeoriginal": "Data da generaziun en tschientavels secunda",
+       "exif-subsectimedigitized": "Data da digitalisaziun en tschientavels secunda",
+       "exif-exposuretime": "Temp d'exposiziun",
+       "exif-exposuretime-format": "$1 secundas ($2)",
+       "exif-fnumber": "Cifra dal diafragma (numer F)",
+       "exif-exposureprogram": "Program d'exposiziun",
+       "exif-spectralsensitivity": "Sensibilitad spectrala",
+       "exif-isospeedratings": "Sensibilitad ISO",
+       "exif-shutterspeedvalue": "Sveltezza da la serradira APEX",
+       "exif-aperturevalue": "Cifra dal diafragma APEX",
+       "exif-brightnessvalue": "Luminusitad APEX",
+       "exif-exposurebiasvalue": "Correctura d'exposiziun APEX",
+       "exif-maxaperturevalue": "Pli grond passagi dal diafragma",
+       "exif-subjectdistance": "Distanza dal subject",
+       "exif-meteringmode": "Metoda da mesiraziun da l'exposiziun (Metering mode)",
+       "exif-lightsource": "Funtauna da glisch",
+       "exif-flash": "Chametg/straglisch",
+       "exif-focallength": "Distanza focala",
+       "exif-subjectarea": "Areal dal subject",
+       "exif-flashenergy": "Energia dal chametg/straglisch",
+       "exif-focalplanexresolution": "Resoluziun X dal plaun focal",
+       "exif-focalplaneyresolution": "Resoluziun Y dal plaun focal",
+       "exif-focalplaneresolutionunit": "Unitad da mesira per la resoluziun dal plaun focal",
+       "exif-subjectlocation": "Posiziun dal subject",
+       "exif-exposureindex": "Index d'exposiziun",
+       "exif-sensingmethod": "Metoda da mesirar",
+       "exif-filesource": "Funtauna da la datoteca",
+       "exif-scenetype": "Tip da scena",
+       "exif-customrendered": "Elavuraziun dal maletg persunalisà",
+       "exif-exposuremode": "Modus d'exposiziun",
+       "exif-whitebalance": "Equiliber da l'alv",
+       "exif-digitalzoomratio": "Quota dal zoom digital",
+       "exif-focallengthin35mmfilm": "Distanza focala equivalenta en in film da 35 mm",
+       "exif-scenecapturetype": "Tip da scena registrada",
+       "exif-gaincontrol": "Controlla da l'intensivaziun",
+       "exif-contrast": "Contrast",
+       "exif-saturation": "Saturaziun",
+       "exif-sharpness": "Netezza (Schärfe)",
+       "exif-devicesettingdescription": "Descripziun da la configuraziun da l'apparat",
+       "exif-subjectdistancerange": "Distanza dal suject",
+       "exif-imageuniqueid": "ID unica dal maletg",
+       "exif-gpsversionid": "Versiun dal tag da GPS",
+       "exif-gpslatituderef": "Latituda/Grad da ladezza nord u sid",
+       "exif-gpslatitude": "Latituda/Ladezza geografica",
+       "exif-gpslongituderef": "Longhituda/Grad da lunghezza ost u vest",
+       "exif-gpslongitude": "Longhituda/Lunghezza geografica",
+       "exif-gpsaltituderef": "Referenza per l'autezza",
+       "exif-gpsaltitude": "Autezza",
+       "exif-gpstimestamp": "Temp da GPS (ura atomara)",
+       "exif-gpssatellites": "Satellits utilisads per mesirar",
+       "exif-gpsstatus": "Status dal receptur",
+       "exif-gpsmeasuremode": "Modus da mesirar",
+       "exif-gpsdop": "Prezisiun da mesirar",
+       "exif-gpsspeedref": "Unitad da mesira da spertadad",
+       "exif-gpsspeed": "Spertadad dal receptur da GPS",
+       "exif-gpstrackref": "Referenza per la direcziun dal moviment",
+       "exif-gpstrack": "Direcziun dal moviment",
+       "exif-gpsimgdirectionref": "Referenza per la direcziun dal maletg",
+       "exif-gpsimgdirection": "Direcziun dal maletg",
+       "exif-gpsmapdatum": "Sistem da referenza geodetic",
+       "exif-gpsdestlatituderef": "Referenza per la latituda (largezza) da la destinaziun",
+       "exif-gpsdestlatitude": "Latituda/ladezza geografica da la destinaziun",
+       "exif-gpsdestlongituderef": "Referenza per la longhituda (lunghezza) da la destinaziun",
+       "exif-gpsdestlongitude": "Longhituda/lunghezza geografica da la destinaziun",
+       "exif-gpsdestbearingref": "Referenza per la direcziun da la destinaziun",
+       "exif-gpsdestbearing": "Direcziun da la destinaziun",
+       "exif-gpsdestdistanceref": "Referenza per la distanza a la destinaziun",
+       "exif-gpsdestdistance": "Distanza a la destinaziun",
+       "exif-gpsprocessingmethod": "Num da la metoda d'elavuraziun da GPS",
+       "exif-gpsareainformation": "Num dal territori da GPS",
+       "exif-gpsdatestamp": "Data da GPS",
+       "exif-gpsdifferential": "Correctura da differenzial dal GPS",
+       "exif-jpegfilecomment": "Commentari da la datoteca JPEG",
+       "exif-keywords": "Chavazzins",
+       "exif-worldregioncreated": "Regiun dal mund en la quala la fotografia è vegnida fatga",
+       "exif-countrycreated": "Pajais en il qual la fotografia è vegnida fatga",
+       "exif-countrycodecreated": "Code dal pajais en il qual la fotografia è vegnida fatga",
+       "exif-provinceorstatecreated": "Provinza, stadi u chantun en il qual la fotografia è vegnida fatga",
+       "exif-citycreated": "Citad/Lieu en il qual la fotografia è vegnida fatga",
+       "exif-sublocationcreated": "Part da la citad/dal lieu en il qual la fotografia è vengida fatga",
+       "exif-worldregiondest": "Regiun dal mund mussada",
+       "exif-countrydest": "Pajais mussà",
+       "exif-countrycodedest": "Code dal pajais mussà",
+       "exif-provinceorstatedest": "Provinza, chantun u stadi mussà",
+       "exif-citydest": "Citad/Lieu mussà",
+       "exif-sublocationdest": "Part da la citad/dal lieu mussà",
+       "exif-objectname": "Titel curt",
+       "exif-specialinstructions": "Instrucziuns spezialas",
+       "exif-headline": "Titel",
+       "exif-credit": "Numnar / publicatur",
+       "exif-source": "Funtauna",
+       "exif-editstatus": "Status redacziunal dal maletg",
+       "exif-urgency": "Urgenza",
+       "exif-fixtureidentifier": "Num da la columna",
+       "exif-locationdest": "Lieu mussà",
+       "exif-locationdestcode": "Code dal lieu mussà",
+       "exif-objectcycle": "Temp dal di durant il qual quest med duess vegnir emess",
+       "exif-contact": "Infurmaziuns da contact",
+       "exif-writer": "Autur",
+       "exif-languagecode": "Lingua",
+       "exif-iimversion": "Versiun IIM",
+       "exif-iimcategory": "Categoria",
+       "exif-iimsupplementalcategory": "Categorias supplementaras",
+       "exif-datetimeexpires": "Betg utilisar suenter",
+       "exif-datetimereleased": "Public davent da",
+       "exif-originaltransmissionref": "Code dal lieu danunder la transmissiun originala vegn",
+       "exif-identifier": "Identificatur",
+       "exif-lens": "Objectiv utilisà",
+       "exif-serialnumber": "Numer da seria da la camera",
+       "exif-cameraownername": "Possessur da la camera",
+       "exif-label": "Etichetta",
+       "exif-datetimemetadata": "Data da la davosa midada da las datas da meta",
+       "exif-nickname": "Num informal dal maletg",
+       "exif-rating": "Valitaziun (ord 5)",
+       "exif-rightscertificate": "Certificat per l'administraziun dals dretgs",
+       "exif-copyrighted": "Status dals dretgs d'autur",
+       "exif-copyrightowner": "Possessur dals dretgs d'autur",
+       "exif-usageterms": "Cundizius per l'utilisaziun",
+       "exif-webstatement": "Decleraziun online dals dretgs d'autur",
+       "exif-originaldocumentid": "ID unica dal document original",
+       "exif-licenseurl": "URL da la lizenca dal dretg d'autur",
+       "exif-morepermissionsurl": "Infurmaziuns alternativas davart la lizenza",
+       "exif-attributionurl": "Sche questa ovra vegn reutilisada, far ina colliaziun a",
+       "exif-preferredattributionname": "Sche questa ovra vegn reutilisada, p.pl. numnar",
+       "exif-pngfilecomment": "Commentari da la datoteca PNG",
+       "exif-disclaimer": "Exclusiun da responsabladad",
+       "exif-contentwarning": "Avertiment davart il cuntegn",
+       "exif-giffilecomment": "Commentari da la datoteca GIF",
+       "exif-intellectualgenre": "Tip da l'element",
+       "exif-subjectnewscode": "Code dal subject",
+       "exif-scenecode": "Code IPTC da la scena",
+       "exif-event": "Occurrenza mussada",
+       "exif-organisationinimage": "Organisaziun mussada",
+       "exif-personinimage": "Persuna mussada",
+       "exif-originalimageheight": "Autezza avant tagliar",
+       "exif-originalimagewidth": "Ladezza avant tagliar",
+       "exif-compression-1": "Betg cumprimà",
+       "exif-compression-2": "GGITT gruppa 3 codaziun da lunghezza currenta Hufman modifitgada en 1 dimensiun",
+       "exif-compression-3": "CCITT gruppa 3 codaziun da fax",
+       "exif-compression-4": "CCITT gruppa 4 codaziun da fax",
+       "exif-copyrighted-true": "Protegì dal dretg d'auturs",
+       "exif-copyrighted-false": "Il stadi da copyright n'è betg vegnì definì.",
+       "exif-unknowndate": "Data nunenconuschenta",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Reflectà orizontalmain",
+       "exif-orientation-3": "Rotà per 180°",
+       "exif-orientation-4": "Reflectà verticalmain",
+       "exif-orientation-5": "Rotà 90° en senn cuntrari a l'ura e reflectà verticalmain",
+       "exif-orientation-6": "Rotà 90° en senn cuntrari a l'ura",
+       "exif-orientation-7": "Rotà 90° en senn da l'ura e reflectà verticalmain",
+       "exif-orientation-8": "Rotà 90° en senn da l'ura",
+       "exif-planarconfiguration-1": "Format grop (chunky)",
+       "exif-planarconfiguration-2": "Format planar",
+       "exif-colorspace-65535": "Betg calibrà",
+       "exif-componentsconfiguration-0": "n'exista betg",
+       "exif-exposureprogram-0": "Betg definì",
+       "exif-exposureprogram-1": "Manualmain",
+       "exif-exposureprogram-2": "Program da standard",
+       "exif-exposureprogram-3": "Prioritad al diafragma",
+       "exif-exposureprogram-4": "Prioritad a la serradira",
+       "exif-exposureprogram-5": "Program creativ, preferenza ad auta profunditad da la netezza (Schärfentiefe)",
+       "exif-exposureprogram-6": "Program sportiv, preferenza ad ina auta spertezza da la serradira",
+       "exif-exposureprogram-7": "Program da purtrets per fotografias senza focus sin il fund davos",
+       "exif-exposureprogram-8": "Program da cuntrada cun focus sin il fund davos",
+       "exif-subjectdistance-value": "$1 meter{{PLURAL:$1||s}}",
+       "exif-meteringmode-0": "Nunenconuschent",
+       "exif-meteringmode-1": "Media",
+       "exif-meteringmode-2": "Media pesada en il center",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "Multi-Spot",
+       "exif-meteringmode-5": "Muster",
+       "exif-meteringmode-6": "Parzial",
+       "exif-meteringmode-255": "Auter",
+       "exif-lightsource-0": "Nunenconuschent",
+       "exif-lightsource-1": "Glisch dal di",
+       "exif-lightsource-2": "Fluorescent",
+       "exif-lightsource-3": "Pair electric",
+       "exif-lightsource-4": "Chametg/straglisch",
+       "exif-lightsource-9": "Bel'aura",
+       "exif-lightsource-10": "Nivels",
+       "exif-lightsource-11": "Sumbriva",
+       "exif-lightsource-12": "Cler dal di fluorescent (D 5700 – 7100K)",
+       "exif-lightsource-13": "Di fluorescent (N 4600 - 5400K)",
+       "exif-lightsource-14": "Alv fluorescent fraid (W 3900 – 4500K)",
+       "exif-lightsource-15": "Alv fluorescent (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Glisch da standard A",
+       "exif-lightsource-18": "Glisch da standard B",
+       "exif-lightsource-19": "Glisch da standard C",
+       "exif-lightsource-24": "Glisch da studio ISO (tungsten)",
+       "exif-lightsource-255": "Autra funtauna da glisch",
+       "exif-flash-fired-0": "Senza chametg/straglisch",
+       "exif-flash-fired-1": "Cun chametg/straglisch",
+       "exif-flash-return-0": "nagina funcziun da retrunar datas dal straglisch",
+       "exif-flash-return-2": "chattà nagin return da glisch dal straglisch",
+       "exif-flash-return-3": "chattà glisch da return dal straglisch",
+       "exif-flash-mode-1": "straglisch obligatoric",
+       "exif-flash-mode-2": "straglisch deactivà",
+       "exif-flash-mode-3": "modus automatic",
+       "exif-flash-function-1": "Nagina funcziun da straglisch",
+       "exif-flash-redeye-1": "Reducziun dad egls cotschens",
+       "exif-focalplaneresolutionunit-2": "Poleschs",
+       "exif-sensingmethod-1": "Betg definì",
+       "exif-sensingmethod-2": "Sensur da colur dad in chip",
+       "exif-sensingmethod-3": "Sensur da colur dad dus chips",
+       "exif-sensingmethod-4": "Sensur da colur dad trais chips",
+       "exif-sensingmethod-5": "Sensur da zona da colur sequenzial",
+       "exif-sensingmethod-7": "Sensur trilinear",
+       "exif-sensingmethod-8": "Sensur da zona da colur sequenzial linear",
+       "exif-filesource-3": "Camera digitala per maletgs da statua",
+       "exif-scenetype-1": "Ina fotografia directa",
+       "exif-customrendered-0": "Process normal",
+       "exif-customrendered-1": "Process persunalisà",
+       "exif-exposuremode-0": "Exposiziun automatica",
+       "exif-exposuremode-1": "Exposiziun manuala",
+       "exif-exposuremode-2": "Retscha d'exposiziuns",
+       "exif-whitebalance-0": "Equiliber da l'alv automatic",
+       "exif-whitebalance-1": "Equiliber da l'alv manual",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Cuntrada",
+       "exif-scenecapturetype-2": "Purtret",
+       "exif-scenecapturetype-3": "Scena da notg",
+       "exif-gaincontrol-0": "Nagina",
+       "exif-gaincontrol-1": "levamain positiv",
+       "exif-gaincontrol-2": "Autamain positiv",
+       "exif-gaincontrol-3": "Levamain negativ",
+       "exif-gaincontrol-4": "Autamain negativ",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Flaivel",
+       "exif-contrast-2": "Ferm",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Saturaziun basa",
+       "exif-saturation-2": "Saturaziun auta",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Flaivel",
+       "exif-sharpness-2": "Ferm",
+       "exif-subjectdistancerange-0": "Nunenconuschent",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Damanaivel",
+       "exif-subjectdistancerange-3": "Lontan",
+       "exif-gpslatitude-n": "Latituda nord",
+       "exif-gpslatitude-s": "Latituda sid",
+       "exif-gpslongitude-e": "Longhituda ost",
+       "exif-gpslongitude-w": "Longhituda vest",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter|meters}} sur il livel da la mar",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter|meters}} sut il livel da la mar",
+       "exif-gpsstatus-a": "Mesiraziun en progress",
+       "exif-gpsstatus-v": "Interoperabilitad da la mesiraziun",
+       "exif-gpsmeasuremode-2": "Mesiraziun en 2 dimensiuns",
+       "exif-gpsmeasuremode-3": "Mesiraziun en 3 dimensiuns",
+       "exif-gpsspeed-k": "km per ura",
+       "exif-gpsspeed-m": "Miglias per ura",
+       "exif-gpsspeed-n": "Nuf",
+       "exif-gpsdestdistance-k": "Kilometers",
+       "exif-gpsdestdistance-m": "Miglias",
+       "exif-gpsdestdistance-n": "Miglias nauticas",
+       "exif-gpsdop-excellent": "Excellent ($1)",
+       "exif-gpsdop-good": "Bun ($1)",
+       "exif-gpsdop-moderate": "Mediocher ($1)",
+       "exif-gpsdop-fair": "Passabel ($1)",
+       "exif-gpsdop-poor": "Debel ($1)",
+       "exif-objectcycle-a": "Be la damaun",
+       "exif-objectcycle-p": "Be la saira",
+       "exif-objectcycle-b": "Tant la dumaun sco la saira",
+       "exif-gpsdirection-t": "Direcziun reala",
+       "exif-gpsdirection-m": "Direcziun magnetica",
+       "exif-ycbcrpositioning-1": "Centrà",
+       "exif-ycbcrpositioning-2": "Co-situà",
+       "exif-dc-contributor": "Contribuents",
+       "exif-dc-coverage": "Champ  local u temporal dal med",
+       "exif-dc-date": "Data(s)",
+       "exif-dc-publisher": "Editur",
+       "exif-dc-relation": "Meds sumegliants",
+       "exif-dc-rights": "Dretgs",
+       "exif-dc-source": "Funtauna dal med",
+       "exif-dc-type": "Tip dal med",
+       "exif-rating-rejected": "Refusà",
+       "exif-isospeedratings-overflow": "Pli grond che 65535",
+       "exif-iimcategory-ace": "Art, cultura e divertiment",
+       "exif-iimcategory-clj": "Criminalitad e dretg",
+       "exif-iimcategory-dis": "Catastrofas ed accidents",
+       "exif-iimcategory-fin": "Economia ed affars",
+       "exif-iimcategory-edu": "Furmaziun",
+       "exif-iimcategory-evn": "Ambient",
+       "exif-iimcategory-hth": "Sanadad",
+       "exif-iimcategory-hum": "Interess umans",
+       "exif-iimcategory-lab": "Lavur",
+       "exif-iimcategory-lif": "Lifestyle e temp liber",
+       "exif-iimcategory-pol": "Politica",
+       "exif-iimcategory-rel": "Religiun e cardientscha",
+       "exif-iimcategory-sci": "Scienza e tecnologia",
+       "exif-iimcategory-soi": "Temas socials",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Guerra, conflicts e revoltas",
+       "exif-iimcategory-wea": "Aura",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Bass ($1)",
+       "exif-urgency-high": "Aut ($1)",
+       "exif-urgency-other": "Prioritad definida da l'utilisader ($1)"
+}
diff --git a/languages/i18n/exif/ro.json b/languages/i18n/exif/ro.json
new file mode 100644 (file)
index 0000000..c5d47d2
--- /dev/null
@@ -0,0 +1,354 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Emily",
+                       "Firilacroco",
+                       "KlaudiuMihaila",
+                       "Laurap",
+                       "Mihai",
+                       "Minisarm",
+                       "Silviubogan",
+                       "Stelistcristi"
+               ]
+       },
+       "exif-imagewidth": "Lățime",
+       "exif-imagelength": "Înălțime",
+       "exif-bitspersample": "Biți per componentă",
+       "exif-compression": "Metodă de comprimare",
+       "exif-photometricinterpretation": "Model de culoare",
+       "exif-orientation": "Orientare",
+       "exif-samplesperpixel": "Număr de componente",
+       "exif-planarconfiguration": "Aranjarea datelor",
+       "exif-ycbcrsubsampling": "Mostră din fracția Y/C",
+       "exif-ycbcrpositioning": "Poziționarea Y și C",
+       "exif-xresolution": "Rezoluție orizontală",
+       "exif-yresolution": "Rezoluție verticală",
+       "exif-stripoffsets": "Locația datelor imaginii",
+       "exif-rowsperstrip": "Numărul de linii per bandă",
+       "exif-stripbytecounts": "Octeți corespunzători benzii comprimate",
+       "exif-jpeginterchangeformat": "Offset pentru JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Octeți de date JPEG",
+       "exif-whitepoint": "Cromaticitatea punctului alb",
+       "exif-primarychromaticities": "Coordonatele cromatice ale culorilor primare",
+       "exif-ycbcrcoefficients": "Tăria culorii coeficienților matricei de transformare",
+       "exif-referenceblackwhite": "Perechile de valori de referință albe și negre",
+       "exif-datetime": "Data și ora modificării fișierului",
+       "exif-imagedescription": "Titlul imaginii",
+       "exif-make": "Producătorul aparatului foto",
+       "exif-model": "Modelul aparatului foto",
+       "exif-software": "Software folosit",
+       "exif-artist": "Autor",
+       "exif-copyright": "Titularul drepturilor de autor",
+       "exif-exifversion": "Versiune EXIF",
+       "exif-flashpixversion": "Versiune de Flashpix suportată",
+       "exif-colorspace": "Spațiu de culoare",
+       "exif-componentsconfiguration": "Semnificația fiecărei componente",
+       "exif-compressedbitsperpixel": "Mod de comprimare a imaginii",
+       "exif-pixelxdimension": "Lățimea imaginii",
+       "exif-pixelydimension": "Înălțimea imaginii",
+       "exif-usercomment": "Comentariile utilizatorilor",
+       "exif-relatedsoundfile": "Fișierul audio asemănător",
+       "exif-datetimeoriginal": "Data și ora producerii imaginii",
+       "exif-datetimedigitized": "Data și ora digitizării",
+       "exif-subsectime": "Subsecunde Data/Ora",
+       "exif-subsectimeoriginal": "Subsecunde Data/Ora/Original",
+       "exif-subsectimedigitized": "Subsecunde Data/Ora/Digitizare",
+       "exif-exposuretime": "Timp de expunere",
+       "exif-exposuretime-format": "$1 sec ($2)",
+       "exif-fnumber": "Diafragmă",
+       "exif-exposureprogram": "Program de expunere",
+       "exif-spectralsensitivity": "Sensibilitate spectrală",
+       "exif-isospeedratings": "Sensibilitate ISO",
+       "exif-shutterspeedvalue": "Viteza obturatorului în APEX",
+       "exif-aperturevalue": "Diafragmă în APEX",
+       "exif-brightnessvalue": "Luminozitate în APEX",
+       "exif-exposurebiasvalue": "Compensarea expunerii",
+       "exif-maxaperturevalue": "Diafragmă maximă",
+       "exif-subjectdistance": "Distanța față de subiect",
+       "exif-meteringmode": "Mod de măsurare",
+       "exif-lightsource": "Sursă de lumină",
+       "exif-flash": "Bliț",
+       "exif-focallength": "Distanța focală a obiectivului",
+       "exif-subjectarea": "Suprafața subiectului",
+       "exif-flashenergy": "Energie bliț",
+       "exif-focalplanexresolution": "Rezoluția orizontală a panului focal",
+       "exif-focalplaneyresolution": "Rezoluția verticală a panului focal",
+       "exif-focalplaneresolutionunit": "Unitate de măsură pentru rezoluția planului focal",
+       "exif-subjectlocation": "Locația subiectului",
+       "exif-exposureindex": "Indexul expunerii",
+       "exif-sensingmethod": "Metoda sensibilă",
+       "exif-filesource": "Fișier sursă",
+       "exif-scenetype": "Tipul scenei",
+       "exif-customrendered": "Prelucrare personalizată",
+       "exif-exposuremode": "Mod de expunere",
+       "exif-whitebalance": "Balanța albă",
+       "exif-digitalzoomratio": "Raportul transfocării digitale",
+       "exif-focallengthin35mmfilm": "Distanță focală pentru film de 35 mm",
+       "exif-scenecapturetype": "Tipul de captură a scenei",
+       "exif-gaincontrol": "Controlul scenei",
+       "exif-contrast": "Contrast",
+       "exif-saturation": "Saturație",
+       "exif-sharpness": "Ascuțime",
+       "exif-devicesettingdescription": "Descrierea reglajelor aparatului",
+       "exif-subjectdistancerange": "Distanța față de subiect",
+       "exif-imageuniqueid": "Identificator unic al imaginii",
+       "exif-gpsversionid": "Versiunea de conversie GPS",
+       "exif-gpslatituderef": "Latitudine nordică sau sudică",
+       "exif-gpslatitude": "Latitudine",
+       "exif-gpslongituderef": "Longitudine estică sau vestică",
+       "exif-gpslongitude": "Longitudine",
+       "exif-gpsaltituderef": "Indicarea altitudinii",
+       "exif-gpsaltitude": "Altitudine",
+       "exif-gpstimestamp": "ora GPS (ceasul atomic)",
+       "exif-gpssatellites": "Sateliți utilizați pentru măsurare",
+       "exif-gpsstatus": "Starea receptorului",
+       "exif-gpsmeasuremode": "Mod de măsurare",
+       "exif-gpsdop": "Precizie de măsurare",
+       "exif-gpsspeedref": "Unitatea de măsură pentru viteză",
+       "exif-gpsspeed": "Viteza receptorului GPS",
+       "exif-gpstrackref": "Referință pentru direcția de mișcare",
+       "exif-gpstrack": "Direcție de mișcare",
+       "exif-gpsimgdirectionref": "Referință pentru direcția imaginii",
+       "exif-gpsimgdirection": "Direcția imaginii",
+       "exif-gpsmapdatum": "Expertiza geodezică a datelor utilizate",
+       "exif-gpsdestlatituderef": "Referință pentru latitudinea destinației",
+       "exif-gpsdestlatitude": "Destinația latitudinală",
+       "exif-gpsdestlongituderef": "Referință pentru longitudinea destinației",
+       "exif-gpsdestlongitude": "Longitudinea destinației",
+       "exif-gpsdestbearingref": "Referință pentru raportarea destinației",
+       "exif-gpsdestbearing": "Raportarea destinației",
+       "exif-gpsdestdistanceref": "Referință pentru distanța până la destinație",
+       "exif-gpsdestdistance": "Distanța până la destinație",
+       "exif-gpsprocessingmethod": "Numele metodei de procesare GPS",
+       "exif-gpsareainformation": "Numele domeniului GPS",
+       "exif-gpsdatestamp": "Data GPS",
+       "exif-gpsdifferential": "Corecția diferențială GPS",
+       "exif-jpegfilecomment": "Comentarii la fișierul JPEG",
+       "exif-keywords": "Cuvinte cheie",
+       "exif-worldregioncreated": "Regiunea lumii în care a fost făcută fotografia",
+       "exif-countrycreated": "Țara în care a fost făcută fotografia",
+       "exif-countrycodecreated": "Codul țării în care a fost făcută fotografia",
+       "exif-provinceorstatecreated": "Provincia sau statul în care a fost făcută fotografia",
+       "exif-citycreated": "Orașul în care a fost făcută fotografia",
+       "exif-sublocationcreated": "Partea orașului în care a fost făcută fotografia",
+       "exif-worldregiondest": "Regiunea lumii ilustrată",
+       "exif-countrydest": "Țara ilustrată",
+       "exif-countrycodedest": "Codul țării ilustrate",
+       "exif-provinceorstatedest": "Provincia sau statul ilustrat",
+       "exif-citydest": "Orașul ilustrat",
+       "exif-sublocationdest": "Partea orașului ilustrată",
+       "exif-objectname": "Titlu scurt",
+       "exif-specialinstructions": "Instrucțiuni speciale",
+       "exif-headline": "Titlu detaliat",
+       "exif-credit": "Credit/Furnizor",
+       "exif-source": "Sursă",
+       "exif-editstatus": "Statutul editorial al imaginii",
+       "exif-urgency": "Urgență",
+       "exif-fixtureidentifier": "Articol",
+       "exif-locationdest": "Locația ilustrată",
+       "exif-locationdestcode": "Codul locației ilustrate",
+       "exif-objectcycle": "Momentul zilei pentru care acest element media este destinat",
+       "exif-contact": "Informații de contact",
+       "exif-writer": "Autor",
+       "exif-languagecode": "Limbă",
+       "exif-iimversion": "Versiune IIM",
+       "exif-iimcategory": "Categorie",
+       "exif-iimsupplementalcategory": "Categorii suplimentare",
+       "exif-datetimeexpires": "Nu utilizați după data de",
+       "exif-datetimereleased": "Lansat pe",
+       "exif-originaltransmissionref": "Codul locului transmisiei originale",
+       "exif-identifier": "Identificator",
+       "exif-lens": "Obiectiv utilizat",
+       "exif-serialnumber": "Numărul de serie al aparatului fotografic",
+       "exif-cameraownername": "Proprietarul aparatului fotografic",
+       "exif-label": "Etichetă",
+       "exif-datetimemetadata": "Data ultimei modificări a metadatelor",
+       "exif-nickname": "Titlul neoficial al imaginii",
+       "exif-rating": "Evaluare (până la 5)",
+       "exif-rightscertificate": "Certificat de gestionare a drepturilor",
+       "exif-copyrighted": "Statutul drepturilor de autor",
+       "exif-copyrightowner": "Titularul drepturilor de autor",
+       "exif-usageterms": "Termeni de utilizare",
+       "exif-webstatement": "Declarația on-line privind drepturilor de autor",
+       "exif-originaldocumentid": "ID-ul unic al documentului original",
+       "exif-licenseurl": "Adresa URL pentru licența drepturilor de autor",
+       "exif-morepermissionsurl": "Informații alternative despre licențiere",
+       "exif-attributionurl": "Când reutilizați această operă, vă rugăm să adăugați o legătură către",
+       "exif-preferredattributionname": "Când reutilizați această operă, vă rugăm ca acest nume să fie creditat",
+       "exif-pngfilecomment": "Comentarii la fișierul PNG",
+       "exif-disclaimer": "Termeni",
+       "exif-contentwarning": "Avertisment asupra conținutului",
+       "exif-giffilecomment": "Comentarii la fișierul GIF",
+       "exif-intellectualgenre": "Tipul elementului",
+       "exif-subjectnewscode": "Codul subiectului",
+       "exif-scenecode": "Codul IPTC al scenei",
+       "exif-event": "Evenimentul înfățișat",
+       "exif-organisationinimage": "Organizația înfățișată",
+       "exif-personinimage": "Persoana înfățișată",
+       "exif-originalimageheight": "Înălțimea imaginii înainte de trunchiere",
+       "exif-originalimagewidth": "Lățimea imaginii înainte de trunchiere",
+       "exif-compression-1": "Necomprimată",
+       "exif-compression-2": "CCITT Grupa 3 Lungimea codificării Huffman modificată de dimensiune 1",
+       "exif-compression-3": "CCITT Grupa 3 codificare fax",
+       "exif-compression-4": "CCITT Grupa 4 codificare fax",
+       "exif-compression-6": "JPEG (vechi)",
+       "exif-copyrighted-true": "Sub incidența drepturilor de autor",
+       "exif-copyrighted-false": "Statutul drepturilor de autor nu este definit",
+       "exif-photometricinterpretation-1": "Negru și alb (0 pentru negru)",
+       "exif-unknowndate": "Dată necunoscută",
+       "exif-orientation-1": "Normală",
+       "exif-orientation-2": "Oglindită orizontal",
+       "exif-orientation-3": "Rotită cu 180°",
+       "exif-orientation-4": "Oglindită vertical",
+       "exif-orientation-5": "Rotită 90° în sens opus acelor de ceasornic și oglindită vertical",
+       "exif-orientation-6": "Rotită 90° în sens opus acelor de ceasornic",
+       "exif-orientation-7": "Rotită 90° în sensul acelor de ceasornic și oglindită vertical",
+       "exif-orientation-8": "Rotită 90° în sensul acelor de ceasornic",
+       "exif-planarconfiguration-1": "format compact",
+       "exif-planarconfiguration-2": "format plat",
+       "exif-colorspace-65535": "Necalibrată",
+       "exif-componentsconfiguration-0": "neprecizat",
+       "exif-exposureprogram-0": "Neprecizat",
+       "exif-exposureprogram-1": "Manual",
+       "exif-exposureprogram-2": "Program normal",
+       "exif-exposureprogram-3": "Prioritate diafragmă",
+       "exif-exposureprogram-4": "Prioritate timp",
+       "exif-exposureprogram-5": "Program creativ (prioritate dată profunzimii)",
+       "exif-exposureprogram-6": "Program acțiune (prioritate dată timpului de expunere scurt)",
+       "exif-exposureprogram-7": "Mod portret (focalizare pe subiect și fundal neclar)",
+       "exif-exposureprogram-8": "Mod peisaj (focalizare pe fundal)",
+       "exif-subjectdistance-value": "$1 metri",
+       "exif-meteringmode-0": "Necunoscut",
+       "exif-meteringmode-1": "Medie",
+       "exif-meteringmode-2": "Media ponderată la centru",
+       "exif-meteringmode-3": "Punct",
+       "exif-meteringmode-4": "MultiPunct",
+       "exif-meteringmode-5": "Model",
+       "exif-meteringmode-6": "Parțial",
+       "exif-meteringmode-255": "Alta",
+       "exif-lightsource-0": "Necunoscută",
+       "exif-lightsource-1": "Lumină solară",
+       "exif-lightsource-2": "Fluorescent",
+       "exif-lightsource-3": "Tungsten (lumină incandescentă)",
+       "exif-lightsource-4": "Bliț",
+       "exif-lightsource-9": "Vreme frumoasă",
+       "exif-lightsource-10": "Cer noros",
+       "exif-lightsource-11": "Umbră",
+       "exif-lightsource-12": "Fluorescent luminos (D 5700 – 7100K)",
+       "exif-lightsource-13": "Fluorescent luminos alb (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fluorescent alb rece (W 3900 – 4500K)",
+       "exif-lightsource-15": "Fluorescent alb (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Lumină standard A",
+       "exif-lightsource-18": "Lumină standard B",
+       "exif-lightsource-19": "Lumină standard C",
+       "exif-lightsource-24": "Lumină artificială normată ISO în studio",
+       "exif-lightsource-255": "Altă sursă de lumină",
+       "exif-flash-fired-0": "Blițul nu a declanșat",
+       "exif-flash-fired-1": "Bliț declanșat",
+       "exif-flash-return-0": "niciun stroboscop nu întoarce funcție de detecție",
+       "exif-flash-return-2": "stroboscopul întoarce o lumină nedetectată",
+       "exif-flash-return-3": "stroboscopul întoarce o lumină detectată",
+       "exif-flash-mode-1": "declanșarea obligatorie a blițului",
+       "exif-flash-mode-2": "suprimarea obligatorie a blițului",
+       "exif-flash-mode-3": "modul automat",
+       "exif-flash-function-1": "Fără funcție pentru bliț",
+       "exif-flash-redeye-1": "mod de îndepărtare a ochilor roșii",
+       "exif-focalplaneresolutionunit-2": "țoli",
+       "exif-sensingmethod-1": "Nedefinit",
+       "exif-sensingmethod-2": "Senzorul suprafeței color one-chip",
+       "exif-sensingmethod-3": "Senzorul suprafeței color two-chip",
+       "exif-sensingmethod-4": "Senzorul suprafeței color three-chip",
+       "exif-sensingmethod-5": "Senzorul suprafeței color secvențiale",
+       "exif-sensingmethod-7": "Senzor triliniar",
+       "exif-sensingmethod-8": "Senzorul linear al culorii secvențiale",
+       "exif-filesource-3": "Aparat de fotografiat digital",
+       "exif-scenetype-1": "O imagine fotografiată direct",
+       "exif-customrendered-0": "Procedeu normal",
+       "exif-customrendered-1": "Procedeu personalizat",
+       "exif-exposuremode-0": "Expunere automată",
+       "exif-exposuremode-1": "Expunere manuală",
+       "exif-exposuremode-2": "Serie automată de expuneri",
+       "exif-whitebalance-0": "Balans de alb automat",
+       "exif-whitebalance-1": "Balans de alb manual",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Portret",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Scenă nocturnă",
+       "exif-gaincontrol-0": "Niciuna",
+       "exif-gaincontrol-1": "Avantajul scăzut de sus",
+       "exif-gaincontrol-2": "Avantajul mărit de sus",
+       "exif-gaincontrol-3": "Avantajul scăzut de jos",
+       "exif-gaincontrol-4": "Avantajul mărit de jos",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Redus",
+       "exif-contrast-2": "Mărit",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Saturație redusă",
+       "exif-saturation-2": "Saturație ridicată",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Ușor",
+       "exif-sharpness-2": "Tare",
+       "exif-subjectdistancerange-0": "Necunoscut",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Apropiat",
+       "exif-subjectdistancerange-3": "Îndepărtat",
+       "exif-gpslatitude-n": "latitudine nordică",
+       "exif-gpslatitude-s": "latitudine sudică",
+       "exif-gpslongitude-e": "longitudine estică",
+       "exif-gpslongitude-w": "longitudine vestică",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metru|metri}} deasupra nivelului mării",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metru|metri}} sub nivelului mării",
+       "exif-gpsstatus-a": "Măsurare în curs",
+       "exif-gpsstatus-v": "Măsurarea interoperabilității",
+       "exif-gpsmeasuremode-2": "măsurătoare bidimensională",
+       "exif-gpsmeasuremode-3": "măsurătoare tridimensională",
+       "exif-gpsspeed-k": "Kilometri pe oră",
+       "exif-gpsspeed-m": "Mile pe oră",
+       "exif-gpsspeed-n": "Noduri",
+       "exif-gpsdestdistance-k": "Kilometri",
+       "exif-gpsdestdistance-m": "Mile",
+       "exif-gpsdestdistance-n": "Mile marine",
+       "exif-gpsdop-excellent": "Excelent ($1)",
+       "exif-gpsdop-good": "Bun ($1)",
+       "exif-gpsdop-moderate": "Moderat ($1)",
+       "exif-gpsdop-fair": "Acceptabil ($1)",
+       "exif-gpsdop-poor": "Slab ($1)",
+       "exif-objectcycle-a": "Doar dimineața",
+       "exif-objectcycle-p": "Doar seara",
+       "exif-objectcycle-b": "Și dimineața și seara",
+       "exif-gpsdirection-t": "Direcția reală",
+       "exif-gpsdirection-m": "Direcție magnetică",
+       "exif-ycbcrpositioning-1": "Centrat",
+       "exif-ycbcrpositioning-2": "Coamplasat",
+       "exif-dc-contributor": "Contribuitori",
+       "exif-dc-coverage": "Întinderea spațială sau temporală a elementului media",
+       "exif-dc-date": "Data (datele)",
+       "exif-dc-publisher": "Editor",
+       "exif-dc-relation": "Conținut multimedia asociat",
+       "exif-dc-rights": "Permisiuni",
+       "exif-dc-source": "Conținutul multimedia sursă",
+       "exif-dc-type": "Tipul conținutului media",
+       "exif-rating-rejected": "Respins",
+       "exif-isospeedratings-overflow": "Mai mare de 65535",
+       "exif-iimcategory-ace": "Artă, cultură și divertisment",
+       "exif-iimcategory-clj": "Criminalitate și lege",
+       "exif-iimcategory-dis": "Dezastre și accidente",
+       "exif-iimcategory-fin": "Economie și afaceri",
+       "exif-iimcategory-edu": "Educație",
+       "exif-iimcategory-evn": "Mediu înconjurător",
+       "exif-iimcategory-hth": "Sănătate",
+       "exif-iimcategory-hum": "Interes uman",
+       "exif-iimcategory-lab": "Muncă",
+       "exif-iimcategory-lif": "Stil de viață și timp liber",
+       "exif-iimcategory-pol": "Politică",
+       "exif-iimcategory-rel": "Religie și credință",
+       "exif-iimcategory-sci": "Știință și tehnologie",
+       "exif-iimcategory-soi": "Aspecte sociale",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Războaie, conflicte și tulburări",
+       "exif-iimcategory-wea": "Vreme",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Scăzut ($1)",
+       "exif-urgency-high": "Ridicat ($1)",
+       "exif-urgency-other": "Prioritate definită de utilizator ($1)"
+}
diff --git a/languages/i18n/exif/roa-tara.json b/languages/i18n/exif/roa-tara.json
new file mode 100644 (file)
index 0000000..225aa79
--- /dev/null
@@ -0,0 +1,381 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Joetaras"
+               ]
+       },
+       "exif-imagewidth": "Larghezze",
+       "exif-imagelength": "Altezze",
+       "exif-bitspersample": "Bit pe combonende",
+       "exif-compression": "Scheme de combressione",
+       "exif-photometricinterpretation": "Combosizione de le pixel",
+       "exif-orientation": "Oriendamende",
+       "exif-samplesperpixel": "Numere de combonende",
+       "exif-planarconfiguration": "Arrengamende de date",
+       "exif-ycbcrsubsampling": "Percenduale de sotte cambione de Y a C",
+       "exif-ycbcrpositioning": "posizzionamende de Y e C",
+       "exif-xresolution": "Resoluzione orizzondale",
+       "exif-yresolution": "Resoluzione verticale",
+       "exif-stripoffsets": "Locazione d'u date immaggine",
+       "exif-rowsperstrip": "Numere de righe pe strisce",
+       "exif-stripbytecounts": "Byte pe strisce combresse",
+       "exif-jpeginterchangeformat": "Distanze da JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Byte d'u date d'u JPEG",
+       "exif-whitepoint": "Cromaticetà d'u punde vianghe",
+       "exif-primarychromaticities": "Cromaticetà de le primarie",
+       "exif-ycbcrcoefficients": "Spazie d'u culore pe le coefficiende d'a matrice de trasformazione",
+       "exif-referenceblackwhite": "Coppie de vianghe e gnure pe le valore de riferimende",
+       "exif-datetime": "Cangiamende d'a date e de l'orarie d'u file",
+       "exif-imagedescription": "Titele de l'immaggine",
+       "exif-make": "Costruttore d'a machene",
+       "exif-model": "Modelle d'a machene",
+       "exif-software": "Softuer ausete",
+       "exif-artist": "Autore",
+       "exif-copyright": "Titolere d'u Copyright",
+       "exif-exifversion": "Versione de Exif",
+       "exif-flashpixversion": "Versione Flashpix supportate",
+       "exif-colorspace": "Spazie d'u culore",
+       "exif-componentsconfiguration": "Significate de ogne combonende",
+       "exif-compressedbitsperpixel": "Mode de combressione de l'immaggine",
+       "exif-pixelxdimension": "Larghezze de l'immaggine",
+       "exif-pixelydimension": "Altezze de l'immaggine",
+       "exif-usercomment": "Commende de l'utende",
+       "exif-relatedsoundfile": "File audio collegate",
+       "exif-datetimeoriginal": "Date e ore d'a generazione de le date",
+       "exif-datetimedigitized": "Date e ore d'a digitalizzazzione",
+       "exif-subsectime": "DateTime cendesime",
+       "exif-subsectimeoriginal": "DateTimeOriginal cendesime",
+       "exif-subsectimedigitized": "DateTimeDigitized cendesime",
+       "exif-exposuretime": "Timbe d'esposizione",
+       "exif-exposuretime-format": "$1 sec ($2)",
+       "exif-fnumber": "Numere de F",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Programme d'esposizione",
+       "exif-spectralsensitivity": "Senzitività spettrale",
+       "exif-isospeedratings": "Senzibbilità ISO",
+       "exif-shutterspeedvalue": "Velocità de esposizione APEX",
+       "exif-aperturevalue": "Aperture de APEX",
+       "exif-brightnessvalue": "Lumenosità de APEX",
+       "exif-exposurebiasvalue": "Correzzione de l'esposizione",
+       "exif-maxaperturevalue": "Aperture massime",
+       "exif-subjectdistance": "Distanze d'u soggette",
+       "exif-meteringmode": "Metode de mesurazione",
+       "exif-lightsource": "Sorgende lumenose",
+       "exif-flash": "Flash",
+       "exif-focallength": "Distanze focale de l'obbiettive",
+       "exif-focallength-format": "$1 mm",
+       "exif-subjectarea": "Area d'u soggette",
+       "exif-flashenergy": "Putenze d'u flash",
+       "exif-focalplanexresolution": "Resoluzione X sus a 'u piane focale",
+       "exif-focalplaneyresolution": "Resoluzione Y sus a 'u piane focale",
+       "exif-focalplaneresolutionunit": "Aunità de resoluzione d'u piane focale",
+       "exif-subjectlocation": "Posizione d'u soggette",
+       "exif-exposureindex": "Indice d'esposizione",
+       "exif-sensingmethod": "Metode de rivelazzione",
+       "exif-filesource": "Sorgende d'u file",
+       "exif-scenetype": "Tipe de scene",
+       "exif-customrendered": "Elabborazzione de l'immaggine personalizzate",
+       "exif-exposuremode": "Mode d'esposizione",
+       "exif-whitebalance": "Ualanzamende d'u vianghe",
+       "exif-digitalzoomratio": "Rapporte d'u zoom diggitale",
+       "exif-focallengthin35mmfilm": "Lunghezze focale uguale a 35 mm",
+       "exif-scenecapturetype": "Tipe de acquisizzione",
+       "exif-gaincontrol": "Condrolle d'a scene",
+       "exif-contrast": "Condraste",
+       "exif-saturation": "Saturazione",
+       "exif-sharpness": "Nitidezze",
+       "exif-devicesettingdescription": "Descrizione de le 'mbostaziune d'u dispositive",
+       "exif-subjectdistancerange": "Scale de distanze d'u soggette",
+       "exif-imageuniqueid": "ID de l'immaggine univoche",
+       "exif-gpsversionid": "Versione de le tag GPS",
+       "exif-gpslatituderef": "Latitudine nord o sud",
+       "exif-gpslatitude": "Latitudene",
+       "exif-gpslongituderef": "Longitudine est o ovest",
+       "exif-gpslongitude": "Longitudene",
+       "exif-gpsaltituderef": "Riferimende de l'altitudine",
+       "exif-gpsaltitude": "Altitudene",
+       "exif-gpstimestamp": "orarije d'u GPS (relogge atomiche)",
+       "exif-gpssatellites": "Satellite ausate pe le mesure",
+       "exif-gpsstatus": "State d'u ricevitore",
+       "exif-gpsmeasuremode": "Mode de mesurazione",
+       "exif-gpsdop": "Precisione de mesurazione",
+       "exif-gpsspeedref": "Aunità de mesure d'a velocità",
+       "exif-gpsspeed": "Velocità d'u ricevitore GPS",
+       "exif-gpstrackref": "Riferimende pa direzzione de movimende",
+       "exif-gpstrack": "Direzzione de movimende",
+       "exif-gpsimgdirectionref": "Riferimende pa direzzione de l'immaggine",
+       "exif-gpsimgdirection": "Direzione de l'immaggine",
+       "exif-gpsmapdatum": "Rilevamende geodetiche ausate",
+       "exif-gpsdestlatituderef": "Riferimende pa latitudine d'a destinazione",
+       "exif-gpsdestlatitude": "Latitudine d'a destinazione",
+       "exif-gpsdestlongituderef": "Riferimende pa longitudine d'a destinazione",
+       "exif-gpsdestlongitude": "Longitudine d'a destinazione",
+       "exif-gpsdestbearingref": "Riferimende pa direzzione d'a destinazione",
+       "exif-gpsdestbearing": "Direzzione d'a destinazione",
+       "exif-gpsdestdistanceref": "Riferimende pa distanze d'a destinazione",
+       "exif-gpsdestdistance": "Distanze d'a destinazione",
+       "exif-gpsprocessingmethod": "Nome d'u metode de elabborazzione d'u GPS",
+       "exif-gpsareainformation": "Nome de l'area d'u GPS",
+       "exif-gpsdatestamp": "Date d'u GPS",
+       "exif-gpsdifferential": "Correzzione differenziale d'u GPS",
+       "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-jpegfilecomment": "commende d'u file JPEG",
+       "exif-keywords": "Parole chiave",
+       "exif-worldregioncreated": "Reggione d'u munne addò ha state scattate 'a fote",
+       "exif-countrycreated": "Paese addò ha state scattate 'a fote",
+       "exif-countrycodecreated": "Codece pu Paese addò ha state scattate 'a fote",
+       "exif-provinceorstatecreated": "Provinge o State addò ha state scattate 'a fote",
+       "exif-citycreated": "Cetate addò ha state scattate 'a fote",
+       "exif-sublocationcreated": "Sottelocazione d'a cetate addò ha state scattate 'a fote",
+       "exif-worldregiondest": "Reggione d'u munne fatte vedè",
+       "exif-countrydest": "Paise fatte vedè",
+       "exif-countrycodedest": "Codece pe le paise fatte vedè",
+       "exif-provinceorstatedest": "Provinge o state fatte vedè",
+       "exif-citydest": "Cetate fatte vedè",
+       "exif-sublocationdest": "Sottelocazione d'a cetate fatte vedè",
+       "exif-objectname": "Titele curte",
+       "exif-specialinstructions": "'Struziune speciale",
+       "exif-headline": "Testate",
+       "exif-credit": "Credite/Fornitore",
+       "exif-source": "Sorgende",
+       "exif-editstatus": "State editoriale de l'immaggine",
+       "exif-urgency": "Priorità",
+       "exif-fixtureidentifier": "Nome d'a correzione",
+       "exif-locationdest": "Locazione raffigurate",
+       "exif-locationdestcode": "Code d'a locazione raffigurate",
+       "exif-objectcycle": "Orarie d'u sciurne jndr'à 'u quale ha state progettate 'u media",
+       "exif-contact": "'Mbormaziune d'u condatte",
+       "exif-writer": "Scretture",
+       "exif-languagecode": "Lènghe",
+       "exif-iimversion": "versione IIM",
+       "exif-iimcategory": "Categorije",
+       "exif-iimsupplementalcategory": "Categorije supplemendare",
+       "exif-datetimeexpires": "Non ausà dope",
+       "exif-datetimereleased": "Relasciate 'u",
+       "exif-originaltransmissionref": "Codece d'a locazione d'a trasmissione origgenale",
+       "exif-identifier": "Identificatore",
+       "exif-lens": "Lunghezze ausate",
+       "exif-serialnumber": "Numere seriale d'a maghena fotografeche",
+       "exif-cameraownername": "Titolare d'a maghena fotografeche",
+       "exif-label": "Etichette",
+       "exif-datetimemetadata": "Date de l'urteme cangiamende a 'u metadata",
+       "exif-nickname": "Nome informale de l'immaggine",
+       "exif-rating": "Pundegge (sus a 5)",
+       "exif-rightscertificate": "Gestione de le certificate da le deritte",
+       "exif-copyrighted": "Stat s'u copyright",
+       "exif-copyrightowner": "Titolare d'u copyright",
+       "exif-usageterms": "Termine d'ause",
+       "exif-webstatement": "Affermazione d'u copyright on line",
+       "exif-originaldocumentid": "ID uneche d'u documende origgenale",
+       "exif-licenseurl": "URL pa licenze d'u copyright",
+       "exif-morepermissionsurl": "'Mbormaziune alternative d'a licenze",
+       "exif-attributionurl": "Quanne ausa 'n'otra vote sta fatìe, pe piacere appondele",
+       "exif-preferredattributionname": "Quanne ausa 'n'otra vote sta fatìe, pe piacere di ce l'ha fatte",
+       "exif-pngfilecomment": "commende d'u file PNG",
+       "exif-disclaimer": "Scareca uarrile",
+       "exif-contentwarning": "Avverimende sus a 'u condenute",
+       "exif-giffilecomment": "commende d'u file GIF",
+       "exif-intellectualgenre": "Tipe de elemende",
+       "exif-subjectnewscode": "Codece d'u suggette",
+       "exif-scenecode": "codece de scene IPTC",
+       "exif-event": "Fatte raffigurate",
+       "exif-organisationinimage": "Organizzazione raffigurate",
+       "exif-personinimage": "Crestiane raffigurate",
+       "exif-originalimageheight": "Altezze de l'immaggine apprime ca avenève retagghiate",
+       "exif-originalimagewidth": "Larghezze de l'immaggine apprime ca avenève retagghiate",
+       "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "No combresse",
+       "exif-compression-2": "Gruppe CCITT 3 Decodifeche de Esecuzione d'a lunghezze 1-Dimenzionale Cangiate de Huffman",
+       "exif-compression-3": "Gruppe CCITT 3 de decodifeche d'u fax",
+       "exif-compression-4": "Gruppe CCITT 4 de decodifeche d'u fax",
+       "exif-compression-5": "LZW",
+       "exif-compression-6": "JPEG (vecchie)",
+       "exif-compression-7": "JPEG",
+       "exif-compression-8": "Sgunfiate (Adobe)",
+       "exif-compression-32773": "PackBits (Macintosh RLE)",
+       "exif-compression-32946": "Sgunfiate (PKZIP)",
+       "exif-compression-34712": "JPEG2000",
+       "exif-copyrighted-true": "Sotte copyright",
+       "exif-copyrighted-false": "Pubbleche dominie",
+       "exif-photometricinterpretation-0": "Vianghe e gnure (Vianghe jè 0)",
+       "exif-photometricinterpretation-1": "Vianghe e gnure (gnure jè 0)",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-3": "Palette",
+       "exif-photometricinterpretation-4": "Masckarone de trasparenze",
+       "exif-photometricinterpretation-5": "Separate (Probbabbilmende CMYK)",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (codifeche ICC)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (codifeche ITU)",
+       "exif-unknowndate": "Data scanusciute",
+       "exif-orientation-1": "Normale",
+       "exif-orientation-2": "Revultate orizzondalmende",
+       "exif-orientation-3": "Ruete de 180°",
+       "exif-orientation-4": "Revultate verticalmende",
+       "exif-orientation-5": "Ruotate de 90° in senze andiorarie e revultate verticalmende",
+       "exif-orientation-6": "Rotate de 90° in sienze andiorarie",
+       "exif-orientation-7": "Ruotate de 90° in senze orarie e revultate verticalmende",
+       "exif-orientation-8": "Rotate de 90° in sienze orarie",
+       "exif-planarconfiguration-1": "formate a blocche",
+       "exif-planarconfiguration-2": "formate lineare",
+       "exif-xyresolution-i": "$1 dpi",
+       "exif-xyresolution-c": "$1 dpc",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "None calibbrate",
+       "exif-componentsconfiguration-0": "non g'esiste",
+       "exif-componentsconfiguration-1": "Y",
+       "exif-componentsconfiguration-2": "Cb",
+       "exif-componentsconfiguration-3": "Cr",
+       "exif-componentsconfiguration-4": "R",
+       "exif-componentsconfiguration-5": "G",
+       "exif-componentsconfiguration-6": "B",
+       "exif-exposureprogram-0": "Non definite",
+       "exif-exposureprogram-1": "Manuale",
+       "exif-exposureprogram-2": "Programma normale",
+       "exif-exposureprogram-3": "Priorità d'aperture",
+       "exif-exposureprogram-4": "Priorità d'esposizione",
+       "exif-exposureprogram-5": "Programme ccreative (basate sus a 'a profonnetà d'u cambe)",
+       "exif-exposureprogram-6": "Programme d'azione (basate sus a velocità de riprese)",
+       "exif-exposureprogram-7": "Ritratte (soggette vicine cu 'u sfonde fore da 'u fuèche)",
+       "exif-exposureprogram-8": "Panorame (soggette lundane cu 'u sfonde jndr'à 'u fuèche)",
+       "exif-subjectdistance-value": "$1 metre",
+       "exif-meteringmode-0": "Scanusciute",
+       "exif-meteringmode-1": "Medie",
+       "exif-meteringmode-2": "Medie Pesate Cendrate",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "Multi Spot",
+       "exif-meteringmode-5": "Pattern",
+       "exif-meteringmode-6": "Parziele",
+       "exif-meteringmode-255": "Otre",
+       "exif-lightsource-0": "Scanusciute",
+       "exif-lightsource-1": "Luce d'u giurne",
+       "exif-lightsource-2": "Florescende",
+       "exif-lightsource-3": "Tungstene (luce caveda caveda)",
+       "exif-lightsource-4": "Flash",
+       "exif-lightsource-9": "Timbe belle",
+       "exif-lightsource-10": "Timbe nuvolose",
+       "exif-lightsource-11": "In ombre",
+       "exif-lightsource-12": "Florescenza a 'a luce d'u sciurne (D 5700 - 7100K)",
+       "exif-lightsource-13": "Florescenza a 'u vianghe d'u sciurne (N 4600 - 5400K)",
+       "exif-lightsource-14": "Florescenza a 'u vianghe cavede (W 3900 - 4500K)",
+       "exif-lightsource-15": "Florescenza vianghe (WW 3200 - 3700K)",
+       "exif-lightsource-17": "Luce standàrd A",
+       "exif-lightsource-18": "Luce standàrd B",
+       "exif-lightsource-19": "Luce standàrd C",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-22": "D75",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "ISO studio tungstene",
+       "exif-lightsource-255": "Otra sogende lumenose",
+       "exif-flash-fired-0": "'U flash non g'à scattate",
+       "exif-flash-fired-1": "Flash scattate",
+       "exif-flash-return-0": "nisciuna funzione ca retorne 'a luce stroboscopeca",
+       "exif-flash-return-2": "luce stroboscopeca de retorne non individuate",
+       "exif-flash-return-3": "luce stroboscopeca de retorne individuate",
+       "exif-flash-mode-1": "attenziò flash forzate",
+       "exif-flash-mode-2": "luamende d'u flah forzate",
+       "exif-flash-mode-3": "mode automateche",
+       "exif-flash-function-1": "Nisciuna funzione pe flash",
+       "exif-flash-redeye-1": "mode de reduzione pe l'uecchie russe",
+       "exif-focalplaneresolutionunit-2": "pollece (inches)",
+       "exif-sensingmethod-1": "Indefinite",
+       "exif-sensingmethod-2": "Senzore d'area culore a 1 chip",
+       "exif-sensingmethod-3": "Senzore d'area culore a 2 chip",
+       "exif-sensingmethod-4": "Senzore d'area culore a 3 chip",
+       "exif-sensingmethod-5": "Senzore d'area culore sequenziale",
+       "exif-sensingmethod-7": "Senzore trilinèere",
+       "exif-sensingmethod-8": "Senzore linèere de culore sequenziale",
+       "exif-filesource-3": "Maghena fotografeche digitale",
+       "exif-scenetype-1": "Fotografije dirette",
+       "exif-customrendered-0": "Processe normele",
+       "exif-customrendered-1": "Processe personalizzete",
+       "exif-exposuremode-0": "Auto esposizione",
+       "exif-exposuremode-1": "Esposizione a mane",
+       "exif-exposuremode-2": "Bracketing automateche",
+       "exif-whitebalance-0": "Ualanzamende d'u vianghe autometeche",
+       "exif-whitebalance-1": "Ualanzamende d'u vianghe a mane",
+       "exif-scenecapturetype-0": "Stàndàrd",
+       "exif-scenecapturetype-1": "Orizzondele",
+       "exif-scenecapturetype-2": "Vertichele",
+       "exif-scenecapturetype-3": "Scene de notte",
+       "exif-gaincontrol-0": "Ninde",
+       "exif-gaincontrol-1": "'Mbortanze pu uadagne vasce",
+       "exif-gaincontrol-2": "'Mbortanze pu uadagne ierte",
+       "exif-gaincontrol-3": "Mene 'mbortanze pu uadagne vasce",
+       "exif-gaincontrol-4": "Mene 'mbortanze pu uadagne ierte",
+       "exif-contrast-0": "Normale",
+       "exif-contrast-1": "Muedde",
+       "exif-contrast-2": "Tuéste",
+       "exif-saturation-0": "Normale",
+       "exif-saturation-1": "Saturaziona vasce",
+       "exif-saturation-2": "Saturaziona ierte",
+       "exif-sharpness-0": "Normale",
+       "exif-sharpness-1": "Morbide",
+       "exif-sharpness-2": "Tuèste",
+       "exif-subjectdistancerange-0": "Scanusciute",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Chiude 'a viste",
+       "exif-subjectdistancerange-3": "Distanzie 'a viste",
+       "exif-gpslatitude-n": "Latitudine nord",
+       "exif-gpslatitude-s": "Latitudine sud",
+       "exif-gpslongitude-e": "Longitudine est",
+       "exif-gpslongitude-w": "Longitudine ovest",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metre|metre}} sus a 'u levèlle d'u mare",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metre|metre}} sotte a 'u levèlle d'u mare",
+       "exif-gpsstatus-a": "Mesurazione in corse",
+       "exif-gpsstatus-v": "Mesurazione inderoperabbele",
+       "exif-gpsmeasuremode-2": "mesurazzione a doje dimenziune",
+       "exif-gpsmeasuremode-3": "mesurazzione a ttre dimenziune",
+       "exif-gpsspeed-k": "Chilometre a l'ore",
+       "exif-gpsspeed-m": "Miglie pe ore",
+       "exif-gpsspeed-n": "Knots",
+       "exif-gpsdestdistance-k": "Chilomètre",
+       "exif-gpsdestdistance-m": "Miglia",
+       "exif-gpsdestdistance-n": "Miglia nauteche",
+       "exif-gpsdop-excellent": "'A uerre probbie ($1)",
+       "exif-gpsdop-good": "Bbuène ($1)",
+       "exif-gpsdop-moderate": "Moderate ($1)",
+       "exif-gpsdop-fair": "Discrete ($1)",
+       "exif-gpsdop-poor": "Puveridde ($1)",
+       "exif-objectcycle-a": "Sulamende 'a matine",
+       "exif-objectcycle-p": "Sulamende 'a sere",
+       "exif-objectcycle-b": "De matine e de sere",
+       "exif-gpsdirection-t": "Direziona vere",
+       "exif-gpsdirection-m": "Direziona magnetiche",
+       "exif-ycbcrpositioning-1": "Cendrate",
+       "exif-ycbcrpositioning-2": "Co-posizionate",
+       "exif-dc-contributor": "Condrebbutore",
+       "exif-dc-coverage": "Purtate spaziale o temborale d'u media",
+       "exif-dc-date": "Date",
+       "exif-dc-publisher": "Pubblecatore",
+       "exif-dc-relation": "Media collegate",
+       "exif-dc-rights": "Deritte",
+       "exif-dc-source": "Media sorgende",
+       "exif-dc-type": "Tipe de media",
+       "exif-rating-rejected": "Scettate",
+       "exif-isospeedratings-overflow": "Cchiù granne de 65535",
+       "exif-maxaperturevalue-value": "$1 APEX (f/$2)",
+       "exif-iimcategory-ace": "Arte, culture e devertimende",
+       "exif-iimcategory-clj": "Crimine e legge",
+       "exif-iimcategory-dis": "Disastre e ingidende",
+       "exif-iimcategory-fin": "Economije e affare",
+       "exif-iimcategory-edu": "Studie",
+       "exif-iimcategory-evn": "Ambiende",
+       "exif-iimcategory-hth": "Salute",
+       "exif-iimcategory-hum": "Inderesse umane",
+       "exif-iimcategory-lab": "Fatìe",
+       "exif-iimcategory-lif": "Stile de vite e tiembe libbere",
+       "exif-iimcategory-pol": "Politeche",
+       "exif-iimcategory-rel": "Releggione e credenze",
+       "exif-iimcategory-sci": "Scienze e tecnologgie",
+       "exif-iimcategory-soi": "Teme sociale",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Uerre, conflitte e agitaziune",
+       "exif-iimcategory-wea": "Tiembe",
+       "exif-urgency-normal": "Normale ($1)",
+       "exif-urgency-low": "Vasce  ($1)",
+       "exif-urgency-high": "Ierte ($1)",
+       "exif-urgency-other": "Priorità definite da l'utende ($1)"
+}
diff --git a/languages/i18n/exif/ru.json b/languages/i18n/exif/ru.json
new file mode 100644 (file)
index 0000000..1dd8f54
--- /dev/null
@@ -0,0 +1,368 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Dim Grits",
+                       "Eleferen",
+                       "Facenapalm",
+                       "Kaganer",
+                       "Lemondoge",
+                       "MaxBioHazard",
+                       "MaxSem",
+                       "Okras",
+                       "Putnik",
+                       "Александр Сигачёв"
+               ]
+       },
+       "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": "Количество строк в 1 блоке",
+       "exif-stripbytecounts": "Размер сжатого блока",
+       "exif-jpeginterchangeformat": "Положение начала блока preview",
+       "exif-jpeginterchangeformatlength": "Размер данных блока preview",
+       "exif-whitepoint": "Цветность белой точки",
+       "exif-primarychromaticities": "Цветность основных цветов",
+       "exif-ycbcrcoefficients": "Коэффициенты преобразования цветовой модели",
+       "exif-referenceblackwhite": "Положение белой и чёрной точек",
+       "exif-datetime": "Дата и время изменения файла",
+       "exif-imagedescription": "Название изображения",
+       "exif-make": "Производитель камеры",
+       "exif-model": "Модель камеры",
+       "exif-software": "Программное обеспечение",
+       "exif-artist": "Автор",
+       "exif-copyright": "Владелец авторского права",
+       "exif-exifversion": "Версия Exif",
+       "exif-flashpixversion": "Поддерживаемая версия FlashPix",
+       "exif-colorspace": "Цветовое пространство",
+       "exif-componentsconfiguration": "Конфигурация цветовых компонентов",
+       "exif-compressedbitsperpixel": "Глубина цвета после сжатия",
+       "exif-pixelxdimension": "Ширина изображения",
+       "exif-pixelydimension": "Высота изображения",
+       "exif-usercomment": "Дополнительный комментарий",
+       "exif-relatedsoundfile": "Файл звукового комментария",
+       "exif-datetimeoriginal": "Оригинальные дата и время",
+       "exif-datetimedigitized": "Дата и время оцифровки",
+       "exif-subsectime": "Доли секунд времени изменения файла",
+       "exif-subsectimeoriginal": "Доли секунд оригинального времени",
+       "exif-subsectimedigitized": "Доли секунд времени оцифровки",
+       "exif-exposuretime": "Время экспозиции",
+       "exif-exposuretime-format": "$1 с ($2)",
+       "exif-fnumber": "Число диафрагмы",
+       "exif-exposureprogram": "Программа экспозиции",
+       "exif-spectralsensitivity": "Спектральная чувствительность",
+       "exif-isospeedratings": "Светочувствительность ISO",
+       "exif-shutterspeedvalue": "Выдержка в APEX",
+       "exif-aperturevalue": "Диафрагма в APEX",
+       "exif-brightnessvalue": "Яркость в APEX",
+       "exif-exposurebiasvalue": "Компенсация экспозиции",
+       "exif-maxaperturevalue": "Минимальное число диафрагмы",
+       "exif-subjectdistance": "Расстояние до объекта",
+       "exif-meteringmode": "Режим замера экспозиции",
+       "exif-lightsource": "Источник света",
+       "exif-flash": "Статус вспышки",
+       "exif-focallength": "Фокусное расстояние",
+       "exif-focallength-format": "$1 мм",
+       "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": "Баланс белого",
+       "exif-digitalzoomratio": "Коэффициент цифрового увеличения (цифровой зум)",
+       "exif-focallengthin35mmfilm": "Эквивалентное фокусное расстояние (для 35 мм плёнки)",
+       "exif-scenecapturetype": "Тип сцены при съёмке",
+       "exif-gaincontrol": "Повышение яркости",
+       "exif-contrast": "Контрастность",
+       "exif-saturation": "Насыщенность",
+       "exif-sharpness": "Резкость",
+       "exif-devicesettingdescription": "Описание предустановок камеры",
+       "exif-subjectdistancerange": "Расстояние до объекта съёмки",
+       "exif-imageuniqueid": "Номер изображения (ID)",
+       "exif-gpsversionid": "Версия блока GPS-информации",
+       "exif-gpslatituderef": "Индекс широты",
+       "exif-gpslatitude": "Широта",
+       "exif-gpslongituderef": "Индекс долготы",
+       "exif-gpslongitude": "Долгота",
+       "exif-gpsaltituderef": "Индекс высоты",
+       "exif-gpsaltitude": "Высота",
+       "exif-gpstimestamp": "Точное время по UTC",
+       "exif-gpssatellites": "Описание использованных спутников",
+       "exif-gpsstatus": "Статус приёмника в момент съёмки",
+       "exif-gpsmeasuremode": "Метод измерения положения",
+       "exif-gpsdop": "Точность измерения",
+       "exif-gpsspeedref": "Единицы измерения скорости",
+       "exif-gpsspeed": "Скорость движения",
+       "exif-gpstrackref": "Тип азимута приёмника GPS (истинный, магнитный)",
+       "exif-gpstrack": "Азимут приёмника GPS",
+       "exif-gpsimgdirectionref": "Тип азимута изображения (истинный, магнитный)",
+       "exif-gpsimgdirection": "Азимут изображения",
+       "exif-gpsmapdatum": "Использованная геодезическая система координат",
+       "exif-gpsdestlatituderef": "Индекс долготы объекта",
+       "exif-gpsdestlatitude": "Долгота объекта",
+       "exif-gpsdestlongituderef": "Индекс широты объекта",
+       "exif-gpsdestlongitude": "Широта объекта",
+       "exif-gpsdestbearingref": "Тип пеленга объекта (истинный, магнитный)",
+       "exif-gpsdestbearing": "Пеленг объекта",
+       "exif-gpsdestdistanceref": "Единицы измерения расстояния",
+       "exif-gpsdestdistance": "Расстояние",
+       "exif-gpsprocessingmethod": "Метод вычисления положения",
+       "exif-gpsareainformation": "Название области GPS",
+       "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-provinceorstatedest": "Изображённая область, провинция или штат",
+       "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": "Время суток, для которого предназначено изображение",
+       "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": "Дата последнего изменения метаданных",
+       "exif-nickname": "Неформальное название изображения",
+       "exif-rating": "Оценка (из 5)",
+       "exif-rightscertificate": "Сертификат управления правами",
+       "exif-copyrighted": "Авторско-правовой статус:",
+       "exif-copyrightowner": "Владелец авторских прав",
+       "exif-usageterms": "Условия использования",
+       "exif-webstatement": "Положение об авторских правах в Интернете",
+       "exif-originaldocumentid": "Уникальный идентификатор исходного документа",
+       "exif-licenseurl": "URL авторской лицензии",
+       "exif-morepermissionsurl": "Альтернативная лицензионная информация",
+       "exif-attributionurl": "При использовании этой работы, пожалуйста, ссылайтесь на",
+       "exif-preferredattributionname": "При использовании этой работы, пожалуйста, указывайте",
+       "exif-pngfilecomment": "Примечание к PNG-файлу",
+       "exif-disclaimer": "Отказ от ответственности",
+       "exif-contentwarning": "Предупреждение о содержании",
+       "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-2": "CCITT Group 3, 1-мерная модификация кодирования длин серий Хаффмана",
+       "exif-compression-3": "CCITT Group 3, факсовое кодирование",
+       "exif-compression-4": "CCITT Group 4, факсовое кодирование",
+       "exif-compression-5": "LZW",
+       "exif-compression-6": "JPEG (старый)",
+       "exif-compression-7": "JPEG",
+       "exif-copyrighted-true": "Охраняется авторским правом",
+       "exif-copyrighted-false": "Авторско-правовой статус не задан",
+       "exif-photometricinterpretation-0": "Чёрный и белый (белый — 0)",
+       "exif-photometricinterpretation-1": "Чёрный и белый (чёрный — 0)",
+       "exif-photometricinterpretation-3": "Цветовая палитра",
+       "exif-photometricinterpretation-4": "Маска прозрачности",
+       "exif-photometricinterpretation-5": "Разделены (вероятно CMYK)",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (ICC-кодирование)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (ITU-кодирование)",
+       "exif-unknowndate": "Неизвестная дата",
+       "exif-orientation-1": "Нормальная",
+       "exif-orientation-2": "Отражено по горизонтали",
+       "exif-orientation-3": "Повёрнуто на 180°",
+       "exif-orientation-4": "Отражено по вертикали",
+       "exif-orientation-5": "Повёрнуто на 90° против часовой стрелки и отражено по вертикали",
+       "exif-orientation-6": "Повёрнуто на 90° против часовой стрелки",
+       "exif-orientation-7": "Повёрнуто на 90° по часовой стрелке и отражено по вертикали",
+       "exif-orientation-8": "Повёрнуто на 90° по часовой стрелке",
+       "exif-planarconfiguration-1": "формат «chunky»",
+       "exif-planarconfiguration-2": "формат «planar»",
+       "exif-xyresolution-i": "$1 точек на дюйм",
+       "exif-xyresolution-c": "$1 точек на сантиметр",
+       "exif-colorspace-65535": "Некалиброванное",
+       "exif-componentsconfiguration-0": "не существует",
+       "exif-exposureprogram-0": "Неизвестно",
+       "exif-exposureprogram-1": "Ручной режим",
+       "exif-exposureprogram-2": "Программный режим (нормальный)",
+       "exif-exposureprogram-3": "Приоритет диафрагмы",
+       "exif-exposureprogram-4": "Приоритет выдержки",
+       "exif-exposureprogram-5": "Художественная программа (на основе нужной глубины резкости)",
+       "exif-exposureprogram-6": "Спортивный режим (с минимальной выдержкой)",
+       "exif-exposureprogram-7": "Портретный режим (для снимков на близком расстоянии, с фоном не в фокусе)",
+       "exif-exposureprogram-8": "Пейзажный режим (для пейзажных снимков, с фоном в фокусе)",
+       "exif-subjectdistance-value": "$1 {{PLURAL:$1|метр|метра|метров}}",
+       "exif-meteringmode-0": "Неизвестно",
+       "exif-meteringmode-1": "Средний",
+       "exif-meteringmode-2": "Центровзвешенный",
+       "exif-meteringmode-3": "Точечный",
+       "exif-meteringmode-4": "Мультиточечный",
+       "exif-meteringmode-5": "Матричный",
+       "exif-meteringmode-6": "Частичный",
+       "exif-meteringmode-255": "Другой",
+       "exif-lightsource-0": "Неизвестно",
+       "exif-lightsource-1": "Дневной свет",
+       "exif-lightsource-2": "Лампа дневного света",
+       "exif-lightsource-3": "Лампа накаливания",
+       "exif-lightsource-4": "Вспышка",
+       "exif-lightsource-9": "Хорошая погода",
+       "exif-lightsource-10": "Облачно",
+       "exif-lightsource-11": "Тень",
+       "exif-lightsource-12": "Лампа дневного света тип D (5700 − 7100K)",
+       "exif-lightsource-13": "Лампа дневного света тип N (4600 − 5400K)",
+       "exif-lightsource-14": "Лампа дневного света тип W (3900 − 4500K)",
+       "exif-lightsource-15": "Лампа дневного света тип WW (3200 − 3700K)",
+       "exif-lightsource-17": "Стандартный источник света типа A",
+       "exif-lightsource-18": "Стандартный источник света типа B",
+       "exif-lightsource-19": "Стандартный источник света типа C",
+       "exif-lightsource-24": "Студийная лампа стандарта ISO",
+       "exif-lightsource-255": "Другой источник света",
+       "exif-flash-fired-0": "Вспышка не срабатывала",
+       "exif-flash-fired-1": "Сработала вспышка",
+       "exif-flash-return-0": "нет режима предварительной вспышки",
+       "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-sensingmethod-7": "Трёхцветный линейный сенсор",
+       "exif-sensingmethod-8": "Линейный сенсор с последовательным измерением цвета",
+       "exif-filesource-3": "Цифровой фотоаппарат",
+       "exif-scenetype-1": "Изображение сфотографировано напрямую",
+       "exif-customrendered-0": "Не производилась",
+       "exif-customrendered-1": "Нестандартная обработка",
+       "exif-exposuremode-0": "Автоматическая экспозиция",
+       "exif-exposuremode-1": "Ручная установка экспозиции",
+       "exif-exposuremode-2": "Брэкетинг",
+       "exif-whitebalance-0": "Автоматический баланс белого",
+       "exif-whitebalance-1": "Ручная установка баланса белого",
+       "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-saturation-0": "Нормальная",
+       "exif-saturation-1": "Небольшая насыщенность",
+       "exif-saturation-2": "Большая насыщенность",
+       "exif-sharpness-0": "Нормальная",
+       "exif-sharpness-1": "Мягкое повышение",
+       "exif-sharpness-2": "Сильное повышение",
+       "exif-subjectdistancerange-0": "Неизвестно",
+       "exif-subjectdistancerange-1": "Макросъёмка",
+       "exif-subjectdistancerange-2": "Съёмка с близкого расстояния",
+       "exif-subjectdistancerange-3": "Съёмка издалека",
+       "exif-gpslatitude-n": "северной широты",
+       "exif-gpslatitude-s": "южной широты",
+       "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": "Измерение 2-х координат",
+       "exif-gpsmeasuremode-3": "Измерение 3-х координат",
+       "exif-gpsspeed-k": "км/час",
+       "exif-gpsspeed-m": "миль/час",
+       "exif-gpsspeed-n": "узлов",
+       "exif-gpsdestdistance-k": "Километров",
+       "exif-gpsdestdistance-m": "Миль",
+       "exif-gpsdestdistance-n": "Морских миль",
+       "exif-gpsdop-excellent": "Отличная ($1)",
+       "exif-gpsdop-good": "Хорошая ($1)",
+       "exif-gpsdop-moderate": "Средняя ($1)",
+       "exif-gpsdop-fair": "Ниже среднего ($1)",
+       "exif-gpsdop-poor": "Плохая ($1)",
+       "exif-objectcycle-a": "Только утром",
+       "exif-objectcycle-p": "Только вечером",
+       "exif-objectcycle-b": "Утром и вечером",
+       "exif-gpsdirection-t": "истинный",
+       "exif-gpsdirection-m": "магнитный",
+       "exif-ycbcrpositioning-1": "Центрированный",
+       "exif-ycbcrpositioning-2": "CO-sited",
+       "exif-dc-contributor": "Соавторы",
+       "exif-dc-coverage": "Пространственные или временные рамки медиафайлов",
+       "exif-dc-date": "Дата(ы)",
+       "exif-dc-publisher": "Издатель",
+       "exif-dc-relation": "Связанные медиа",
+       "exif-dc-rights": "Права",
+       "exif-dc-source": "Исходный медиафайл",
+       "exif-dc-type": "Тип медиафайла",
+       "exif-rating-rejected": "Отклонено",
+       "exif-isospeedratings-overflow": "Более 65535",
+       "exif-iimcategory-ace": "Искусство, культура и развлечения",
+       "exif-iimcategory-clj": "Преступность и закон",
+       "exif-iimcategory-dis": "Катастрофы и аварии",
+       "exif-iimcategory-fin": "Экономика и бизнес",
+       "exif-iimcategory-edu": "Образование",
+       "exif-iimcategory-evn": "Окружающая среда",
+       "exif-iimcategory-hth": "Здоровье",
+       "exif-iimcategory-hum": "Примечательные истории",
+       "exif-iimcategory-lab": "Труд",
+       "exif-iimcategory-lif": "Образ жизни и досуг",
+       "exif-iimcategory-pol": "Политика",
+       "exif-iimcategory-rel": "Религия и вера",
+       "exif-iimcategory-sci": "Наука и техника",
+       "exif-iimcategory-soi": "Социальные вопросы",
+       "exif-iimcategory-spo": "Спорт",
+       "exif-iimcategory-war": "Войны, конфликты и беспорядки",
+       "exif-iimcategory-wea": "Погода",
+       "exif-urgency-normal": "Обычная ($1)",
+       "exif-urgency-low": "Низкая ($1)",
+       "exif-urgency-high": "Высокая ($1)",
+       "exif-urgency-other": "Определённый пользователем приоритет ($1)"
+}
diff --git a/languages/i18n/exif/rue.json b/languages/i18n/exif/rue.json
new file mode 100644 (file)
index 0000000..bb866f5
--- /dev/null
@@ -0,0 +1,345 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Gazeb"
+               ]
+       },
+       "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": "Чісло рядків на 1 блок",
+       "exif-stripbytecounts": "Чісло байтів на компрімованый блок",
+       "exif-jpeginterchangeformat": "Офсет ку JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Чісло байтів JPEG дат",
+       "exif-whitepoint": "Хромаціта білой точкы",
+       "exif-primarychromaticities": "Хромаціта прімарных фарб",
+       "exif-ycbcrcoefficients": "Коефіціенты матіцї про трансформованя фаребных просторів",
+       "exif-referenceblackwhite": "Світлость референчного чорной і білой точкы",
+       "exif-datetime": "Датум і час вытворїня файлу",
+       "exif-imagedescription": "Назва образку",
+       "exif-make": "Выробник фотоапарату",
+       "exif-model": "Модел фотоапарату",
+       "exif-software": "Проґрамове забеспечіня",
+       "exif-artist": "Автор",
+       "exif-copyright": "Властник авторьскых прав",
+       "exif-exifversion": "Верзія Exif",
+       "exif-flashpixversion": "Підпорована верзія Flashpix",
+       "exif-colorspace": "Фаребный простор",
+       "exif-componentsconfiguration": "Конфіґурація компонентів фарбы",
+       "exif-compressedbitsperpixel": "Компрімачный режім",
+       "exif-pixelxdimension": "Шырка образчіка",
+       "exif-pixelydimension": "Вышка образчіка",
+       "exif-usercomment": "Додатковый коментарь",
+       "exif-relatedsoundfile": "Звязаный звуковый файл",
+       "exif-datetimeoriginal": "Оріґіналный датум і час",
+       "exif-datetimedigitized": "Датум і час діґіталізації",
+       "exif-subsectime": "зломкы секунды про DateTime",
+       "exif-subsectimeoriginal": "зломкы секунды про DateTimeOriginal",
+       "exif-subsectimedigitized": "зломкы секунды про DateTimeDigitized",
+       "exif-exposuretime": "Час експозіції",
+       "exif-exposuretime-format": "$1 з ($2)",
+       "exif-fnumber": "Цлона",
+       "exif-exposureprogram": "Експозічный проґрам",
+       "exif-spectralsensitivity": "Спектрална чутливость",
+       "exif-isospeedratings": "Світлочутливость ISO",
+       "exif-shutterspeedvalue": "Експозічный час (APEX)",
+       "exif-aperturevalue": "Цлона (APEX)",
+       "exif-brightnessvalue": "Яс (APEX)",
+       "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": "Баланс білого",
+       "exif-digitalzoomratio": "Діґіталный зум",
+       "exif-focallengthin35mmfilm": "Еквівалентна фокусна довжка (про 35 мм філм)",
+       "exif-scenecapturetype": "Тіп сцены",
+       "exif-gaincontrol": "Управа світлости",
+       "exif-contrast": "Контраст",
+       "exif-saturation": "Насыченость",
+       "exif-sharpness": "Острость",
+       "exif-devicesettingdescription": "Попис наштелёваня заряджіня",
+       "exif-subjectdistancerange": "Далеко ку обєкту",
+       "exif-imageuniqueid": "Унікатне ID образка",
+       "exif-gpsversionid": "Верзія блоку GPS-інформації",
+       "exif-gpslatituderef": "Северна або южна шырка",
+       "exif-gpslatitude": "Ґеоґрафічна шырка",
+       "exif-gpslongituderef": "Выходна або западна довжка",
+       "exif-gpslongitude": "Ґеоґрафічна довжка",
+       "exif-gpsaltituderef": "Над/підморьска вышка/глубка",
+       "exif-gpsaltitude": "Надморьска вышка",
+       "exif-gpstimestamp": "GPS час (атомовы годины)",
+       "exif-gpssatellites": "Сателіты хоснованы про міряня",
+       "exif-gpsstatus": "Статус приїмача",
+       "exif-gpsmeasuremode": "Режім міряня",
+       "exif-gpsdop": "Точность міряня",
+       "exif-gpsspeedref": "Єдиніця швыдкости",
+       "exif-gpsspeed": "Швыдкость GPS приїмателя",
+       "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": "Назва области GPS",
+       "exif-gpsdatestamp": "GPS датум",
+       "exif-gpsdifferential": "Діференціална корекція GPS",
+       "exif-jpegfilecomment": "Позначкы ку файлу JPEG",
+       "exif-keywords": "Ключовы слова",
+       "exif-worldregioncreated": "Часть світу, де быв образчік зазначеный",
+       "exif-countrycreated": "Країна, де быв образчік зазначеный",
+       "exif-countrycodecreated": "Код країны, де быв образчік зазначеный",
+       "exif-provinceorstatecreated": "Провінція або штат, де быв образчік зазначеный",
+       "exif-citycreated": "Місто, де быв образчік зазначеный",
+       "exif-sublocationcreated": "Часть міста, де быв образчік зазначеный",
+       "exif-worldregiondest": "Вказана часть світа",
+       "exif-countrydest": "Вказана країна",
+       "exif-countrycodedest": "Код вказаной країны",
+       "exif-provinceorstatedest": "Вказана провінція або штат",
+       "exif-citydest": "Вказане місто",
+       "exif-sublocationdest": "Вказана часть міста",
+       "exif-objectname": "Курта назва",
+       "exif-specialinstructions": "Шпеціалны інштрукції",
+       "exif-headline": "Надпис",
+       "exif-credit": "Ждідло/Додаватель",
+       "exif-source": "Жрідло",
+       "exif-editstatus": "Редакчный статус образчіка",
+       "exif-urgency": "Урґенція",
+       "exif-fixtureidentifier": "Назва сталого обєкту",
+       "exif-locationdest": "Вказане місце",
+       "exif-locationdestcode": "Код вказаного місця",
+       "exif-objectcycle": "Денный час, про котрый є файл становленый",
+       "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": "Датум послїднёй управы метадат",
+       "exif-nickname": "Неформална назва образчіка",
+       "exif-rating": "Рейтінґ (1–5)",
+       "exif-rightscertificate": "Цертіфікат справованя прав",
+       "exif-copyrighted": "Статус авторьскых прав",
+       "exif-copyrightowner": "Властник авторьскых прав",
+       "exif-usageterms": "Условія хоснованя",
+       "exif-webstatement": "Онлайн інформації о авторьскых правах",
+       "exif-originaldocumentid": "Унікатне ID оріґіналного документу",
+       "exif-licenseurl": "URL ліценції",
+       "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-2": "1-дімензіоналне Гуффманове кодованя довжкы бігу CCITT Group 3",
+       "exif-compression-3": "Кодованя факсів CCITT Group 3",
+       "exif-compression-4": "Кодованя факсів CCITT Group 4",
+       "exif-copyrighted-true": "Сокочене авторьскым правом",
+       "exif-copyrighted-false": "Без інформації о авторьскых правах",
+       "exif-unknowndate": "Незнамый датум",
+       "exif-orientation-1": "Нормална",
+       "exif-orientation-2": "Перевернуте горізонтално",
+       "exif-orientation-3": "Обернуте о 180°",
+       "exif-orientation-4": "Перевернуте вертікално",
+       "exif-orientation-5": "Повернуте о 90° проти дорозї годиновой ручкы і вертікално перевернуте",
+       "exif-orientation-6": "Повернуте о 90° проти дорозї годиновой ручкы",
+       "exif-orientation-7": "Повернуте о 90° по дорозї годиновой ручкы і вертікално перевернуте",
+       "exif-orientation-8": "Повернуте о 90° по дорозї годиновой ручкы",
+       "exif-planarconfiguration-1": "формат «chunky»",
+       "exif-planarconfiguration-2": "формат «planar»",
+       "exif-colorspace-65535": "Некаліброване",
+       "exif-componentsconfiguration-0": "не екзістує",
+       "exif-exposureprogram-0": "Недефіноване",
+       "exif-exposureprogram-1": "Ручный режім",
+       "exif-exposureprogram-2": "Нормалный режім",
+       "exif-exposureprogram-3": "Пріоріта цлоны",
+       "exif-exposureprogram-4": "Пріоріта спущі",
+       "exif-exposureprogram-5": "Креатівны проґрам (лїпша глубка остроты)",
+       "exif-exposureprogram-6": "Акція проґрам (швыдкіша спущ)",
+       "exif-exposureprogram-7": "Портретный режім (детайлны фотоґрафії з неострым задом)",
+       "exif-exposureprogram-8": "Країна (фотоґрафія країны з острым задом)",
+       "exif-subjectdistance-value": "$1 метрів",
+       "exif-meteringmode-0": "Не є знаме",
+       "exif-meteringmode-1": "Середнїй",
+       "exif-meteringmode-2": "Центрозваженый",
+       "exif-meteringmode-3": "Бодове",
+       "exif-meteringmode-4": "Зонове",
+       "exif-meteringmode-5": "Матрічный",
+       "exif-meteringmode-6": "Частковый",
+       "exif-meteringmode-255": "Інше",
+       "exif-lightsource-0": "Не є знаме",
+       "exif-lightsource-1": "Денне світло",
+       "exif-lightsource-2": "Лампа денного світла",
+       "exif-lightsource-3": "Лампа розжарёваня",
+       "exif-lightsource-4": "Блеск",
+       "exif-lightsource-9": "Ясно",
+       "exif-lightsource-10": "Захмарено",
+       "exif-lightsource-11": "Тїнь",
+       "exif-lightsource-12": "Лампа денного світла тіп D (5700 − 7100K)",
+       "exif-lightsource-13": "Лампа денного світла тіп N (4600 − 5400K)",
+       "exif-lightsource-14": "Лампа денного світла тіп W (3900 − 4500K)",
+       "exif-lightsource-15": "Лампа денного світла тіп WW (3200 − 3700K)",
+       "exif-lightsource-17": "Штандартне світло тіпу A",
+       "exif-lightsource-18": "Штандартне світло тіпу B",
+       "exif-lightsource-19": "Штандартне світло тіпу C",
+       "exif-lightsource-24": "Штудіова лампа штандарду ISO",
+       "exif-lightsource-255": "Інше жрідло світла",
+       "exif-flash-fired-0": "Блеск не працовав",
+       "exif-flash-fired-1": "Блеск працовав",
+       "exif-flash-return-0": "функція про роспознаваня одразів блеску не є к діспозіції",
+       "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": "in",
+       "exif-sensingmethod-1": "Недефіноване",
+       "exif-sensingmethod-2": "Єдночіповый плошный сензор",
+       "exif-sensingmethod-3": "Двойчіповый плошный сензор",
+       "exif-sensingmethod-4": "Тройчіповый плошный сензор",
+       "exif-sensingmethod-5": "Секвенчный плошный сензор",
+       "exif-sensingmethod-7": "Трёхлінеарный сензор",
+       "exif-sensingmethod-8": "Секвенчный лінеарный сензор",
+       "exif-filesource-3": "Діґіталный фотоапарат",
+       "exif-scenetype-1": "Прямо фотоґрафованый образок",
+       "exif-customrendered-0": "Нормалне спрацованя",
+       "exif-customrendered-1": "Нештандартне спрацованя",
+       "exif-exposuremode-0": "Автоматічна експозіція",
+       "exif-exposuremode-1": "Ручне наштелёваня експозіції",
+       "exif-exposuremode-2": "Брекетинґ",
+       "exif-whitebalance-0": "Автоматічный баланс білого",
+       "exif-whitebalance-1": "Ручне наштелёваня балансу білого",
+       "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-saturation-0": "Нормалне",
+       "exif-saturation-1": "Невелика насыченость",
+       "exif-saturation-2": "Велика насыченость",
+       "exif-sharpness-0": "Нормалне",
+       "exif-sharpness-1": "Мягке",
+       "exif-sharpness-2": "Тверде",
+       "exif-subjectdistancerange-0": "Не є знаме",
+       "exif-subjectdistancerange-1": "Макро",
+       "exif-subjectdistancerange-2": "Детайл",
+       "exif-subjectdistancerange-3": "Погляд здалека",
+       "exif-gpslatitude-n": "Северна шырка",
+       "exif-gpslatitude-s": "Южна шырка",
+       "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-gpsdestdistance-m": "Мілї",
+       "exif-gpsdestdistance-n": "Морьскы мілї",
+       "exif-gpsdop-excellent": "Выняткова ($1)",
+       "exif-gpsdop-good": "Добра ($1)",
+       "exif-gpsdop-moderate": "Середня ($1)",
+       "exif-gpsdop-fair": "Ниже середнёй ($1)",
+       "exif-gpsdop-poor": "Бідна ($1)",
+       "exif-objectcycle-a": "Лем дообіда",
+       "exif-objectcycle-p": "Лем вечур",
+       "exif-objectcycle-b": "Рано і вечур",
+       "exif-gpsdirection-t": "Справный курз",
+       "exif-gpsdirection-m": "Маґнетічный курз",
+       "exif-ycbcrpositioning-1": "Центрованый",
+       "exif-ycbcrpositioning-2": "У себе",
+       "exif-dc-contributor": "Приспівателї",
+       "exif-dc-coverage": "Просторовы або часовы россягы медія",
+       "exif-dc-date": "Датум (датумы)",
+       "exif-dc-publisher": "Выдаватель",
+       "exif-dc-relation": "Повязаны медія",
+       "exif-dc-rights": "Права",
+       "exif-dc-source": "Оріґіналне медіюм",
+       "exif-dc-type": "Тіп медія",
+       "exif-rating-rejected": "Завергнуте",
+       "exif-isospeedratings-overflow": "Понад 65535",
+       "exif-iimcategory-ace": "Култура, уменя і забава",
+       "exif-iimcategory-clj": "Злочін і право",
+       "exif-iimcategory-dis": "Гаварії і напасть",
+       "exif-iimcategory-fin": "Економіка і бізніс",
+       "exif-iimcategory-edu": "Едукація",
+       "exif-iimcategory-evn": "Жывотне середовище",
+       "exif-iimcategory-hth": "Здоровя",
+       "exif-iimcategory-hum": "Людьскы залюбы",
+       "exif-iimcategory-lab": "Праца",
+       "exif-iimcategory-lif": "Вольный час і жывотный штіл",
+       "exif-iimcategory-pol": "Політіка",
+       "exif-iimcategory-rel": "Віра і реліґія",
+       "exif-iimcategory-sci": "Наука і технолоґії",
+       "exif-iimcategory-soi": "Соціална проблематіка",
+       "exif-iimcategory-spo": "Шпорт",
+       "exif-iimcategory-war": "Войны, конфлікты і непокої",
+       "exif-iimcategory-wea": "Хвіля",
+       "exif-urgency-normal": "Нормалне ($1)",
+       "exif-urgency-low": "Низка ($1)",
+       "exif-urgency-high": "Высока ($1)",
+       "exif-urgency-other": "Хоснователём дефінована пріоріта ($1)"
+}
diff --git a/languages/i18n/exif/sa.json b/languages/i18n/exif/sa.json
new file mode 100644 (file)
index 0000000..2d793f0
--- /dev/null
@@ -0,0 +1,350 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ansumang",
+                       "Naveen Sankar",
+                       "NehalDaveND",
+                       "Shreekant Hegde",
+                       "Shubha",
+                       "Vibhijain"
+               ]
+       },
+       "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": "Offset to JPEG SOI",
+       "exif-jpeginterchangeformatlength": "जेपिइजि दत्तांशस्य बैट्स् ।",
+       "exif-whitepoint": "श्वेतबिन्दुवर्णगुणः ।",
+       "exif-primarychromaticities": "प्राथमिकस्य वर्णगुणः ।",
+       "exif-ycbcrcoefficients": "वर्णाकाशस्य वर्गान्तरम् मॅट्रीक्स कोएफिशीयंट्स्",
+       "exif-referenceblackwhite": "उल्लेखमौल्यस्य श्वेतकृष्णयुगम् ।",
+       "exif-datetime": "सञ्चिकापरिवर्तनस्य दिनाङ्कः समयः च",
+       "exif-imagedescription": "चित्रशीर्षकम् ।",
+       "exif-make": "चित्रग्राहिण्याः उत्पादकः ।",
+       "exif-model": "चित्रग्राहिण्याः स्वरूपम् ।",
+       "exif-software": "तन्त्रांशः उपयुक्तः",
+       "exif-artist": "लेखक",
+       "exif-copyright": "स्वामित्वस्य धारकः ।",
+       "exif-exifversion": "Exif आवृत्तिः ।",
+       "exif-flashpixversion": "अनुमोदिता फ्लाश्पिक्स् आवृत्तिः ।",
+       "exif-colorspace": "वर्णावकाशः",
+       "exif-componentsconfiguration": "प्रत्येकं भागस्य अर्थः ।",
+       "exif-compressedbitsperpixel": "चित्रसङ्कोचविधानम् ।",
+       "exif-pixelxdimension": "चित्रपार्थवम् (width)",
+       "exif-pixelydimension": "चित्रैन्नत्यम् ।",
+       "exif-usercomment": "योजकाभिप्रायः ।",
+       "exif-relatedsoundfile": "सम्बद्धश्रवणसञ्चिका ।",
+       "exif-datetimeoriginal": "दत्तांशसर्जनस्य दिनाङ्कः समयः च ।",
+       "exif-datetimedigitized": "अङ्कीकरणस्य दिनाङ्कः समयः च ।",
+       "exif-subsectime": "उपक्षणानां दिनाङ्कः समयः च ।",
+       "exif-subsectimeoriginal": "मूलोपक्षणानां दिनाङ्कः समयः च ।",
+       "exif-subsectimedigitized": "अङ्कीकृतोपक्षणानां दिनाङ्कः समयः च ।",
+       "exif-exposuretime": "विगोपनसमयः ।",
+       "exif-exposuretime-format": "$1 क्षणः ($2)",
+       "exif-fnumber": "F सङ्ख्या",
+       "exif-exposureprogram": "विगोपनकार्यक्रमः",
+       "exif-spectralsensitivity": "सङ्घट्टनसंवेदनशीलता ।",
+       "exif-isospeedratings": "ISO वेगतुलना ।",
+       "exif-shutterspeedvalue": "APEX पिधानस्य वेगः ।",
+       "exif-aperturevalue": "APEX रन्ध्रः ।",
+       "exif-brightnessvalue": "APEX कान्तिः ।",
+       "exif-exposurebiasvalue": "APEX विगोपनाधारः ।",
+       "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": "श्वेतावकाशः ।",
+       "exif-digitalzoomratio": "आङ्किकविस्तारकप्रमाणः ।",
+       "exif-focallengthin35mmfilm": "मध्यकेन्द्रस्य दैर्घ्यं ३५मि.मी. पटले भवति ।",
+       "exif-scenecapturetype": "दृश्यग्रहणविधानम् ।",
+       "exif-gaincontrol": "दृश्यनियन्त्रणम् ।",
+       "exif-contrast": "सङ्कोचनम् ।",
+       "exif-saturation": "तर्पणम् ।",
+       "exif-sharpness": "नैशित्यम् ।",
+       "exif-devicesettingdescription": "उपकरणव्यवस्थापनस्य विवरणम् ।",
+       "exif-subjectdistancerange": "विषयन्तरवलयः ।",
+       "exif-imageuniqueid": "विशिष्टं चित्रचिह्नम् ।",
+       "exif-gpsversionid": "GPS लग्नावृत्तिः ।",
+       "exif-gpslatituderef": "उत्तरस्य अथवा दक्षिणस्य अक्षांशः ।",
+       "exif-gpslatitude": "अक्षांशः ।",
+       "exif-gpslongituderef": "पूर्वस्य अथवा पश्चिमस्य अक्षांशः ।",
+       "exif-gpslongitude": "रेखांशः",
+       "exif-gpsaltituderef": "आरोहस्य उल्लेखः ।",
+       "exif-gpsaltitude": "उन्मितिः",
+       "exif-gpstimestamp": "GPS समयः (एटोमिक क्लॉक)",
+       "exif-gpssatellites": "मापनार्थम् उपयुक्ताः उपग्रहाः ।",
+       "exif-gpsstatus": "स्वीकर्तुः स्थितिः ।",
+       "exif-gpsmeasuremode": "मापनस्य विधानम् ।",
+       "exif-gpsdop": "मापनस्य यथार्थता ।",
+       "exif-gpsspeedref": "गती एकक",
+       "exif-gpsspeed": "जिपिएस् ग्राहकस्य वेगः ।",
+       "exif-gpstrackref": "सञ्चालनस्य निदेशार्थम् उल्लेखः ।",
+       "exif-gpstrack": "सञ्चालनस्य निदेशः ।",
+       "exif-gpsimgdirectionref": "सञ्चालनस्य निदेशार्थम् उल्लेखः ।",
+       "exif-gpsimgdirection": "चित्रस्य निदेशः ।",
+       "exif-gpsmapdatum": "जियोडेटिक्  सर्वेक्षणोपयुक्तः दत्तांशः ।",
+       "exif-gpsdestlatituderef": "लक्ष्याक्षांशस्य उल्लेखः ।",
+       "exif-gpsdestlatitude": "अक्षांशस्य लक्ष्यम् ।",
+       "exif-gpsdestlongituderef": "लक्ष्यस्य रेखांशस्य उल्लेखः ।",
+       "exif-gpsdestlongitude": "लक्ष्यस्य रेखांशः ।",
+       "exif-gpsdestbearingref": "लक्ष्यस्य स्वभावार्थमुल्लेखः ।",
+       "exif-gpsdestbearing": "लक्ष्यस्य स्वभावः ।",
+       "exif-gpsdestdistanceref": "लक्षान्तरस्य कृते उल्लेखः ।",
+       "exif-gpsdestdistance": "लक्ष्यान्तरम् ।",
+       "exif-gpsprocessingmethod": "जिपिएस् प्रक्रियायाः क्रमस्य नाम ।",
+       "exif-gpsareainformation": "जिपिएस् क्षेत्रस्य नाम ।",
+       "exif-gpsdatestamp": "जिपिएस् महाद्वारम् ।",
+       "exif-gpsdifferential": "जिपिएस् व्यत्यासस्य परिष्कारः ।",
+       "exif-jpegfilecomment": "जिपिइजि सञ्चिकाटीका ।",
+       "exif-keywords": "कुञ्चपदानि ।",
+       "exif-worldregioncreated": "चित्रग्राहस्य वैश्विकप्रदेशः ।",
+       "exif-countrycreated": "चित्रग्राहस्य देशीयप्रदेशः ।",
+       "exif-countrycodecreated": "चित्रग्राहस्य देशस्य सङ्केतसङ्ख्या ।",
+       "exif-provinceorstatecreated": "चित्रग्राहस्य राज्यस्य प्रदेशः ।",
+       "exif-citycreated": "चित्रग्राहस्य नगरप्रदेशः ।",
+       "exif-sublocationcreated": "चित्रग्रहस्य उपनगरप्रदेशः ।",
+       "exif-worldregiondest": "वैश्विकप्रदेशः दर्शितः ।",
+       "exif-countrydest": "नगरं दर्शितम् ।",
+       "exif-countrycodedest": "दर्शितनगरस्य सङ्केतसङ्ख्या ।",
+       "exif-provinceorstatedest": "दर्शितं राज्यम् ।",
+       "exif-citydest": "दर्शितं नगरम् ।",
+       "exif-sublocationdest": "दर्शितः नगरस्य उपभागः ।",
+       "exif-objectname": "ह्रस्वशीर्षकम् ।",
+       "exif-specialinstructions": "विशेषसूचनाः ।",
+       "exif-headline": "शीर्षकम् ।",
+       "exif-credit": "श्रेयः/ प्रदाता",
+       "exif-source": "स्रोतः",
+       "exif-editstatus": "चित्रस्य सम्पादस्थितिः ।",
+       "exif-urgency": "त्वरा",
+       "exif-fixtureidentifier": "सङ्गमनाम ।",
+       "exif-locationdest": "स्थानं चित्रितम् ।",
+       "exif-locationdestcode": "चित्रितस्थानस्य सङ्केतसङ्ख्या ।",
+       "exif-objectcycle": "माध्यमगम्यः दिनस्य समयः ।",
+       "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": "मेटा दत्तांशस्य परिवर्तनस्य दिनाङ्कः ।",
+       "exif-nickname": "चित्रस्य साधारणं नाम ।",
+       "exif-rating": "तुलना ।(पञ्चसु)",
+       "exif-rightscertificate": "अधिकरनिर्वहणस्य प्रमाणपत्रम् ।",
+       "exif-copyrighted": "प्रतिकृत्यधिकारस्य स्थितिः ।",
+       "exif-copyrightowner": "स्वामित्वस्य धारकः ।",
+       "exif-usageterms": "उपयोगस्य नियमाः ।",
+       "exif-webstatement": "सद्यस्कस्य स्वामित्वस्य वृत्तम् ।",
+       "exif-originaldocumentid": "मूलप्रलेखस्य विशिष्टाभिज्ञानसङ्केतः ।",
+       "exif-licenseurl": "अनुज्ञापत्रस्य स्वामित्वस्य कृते URL ।",
+       "exif-morepermissionsurl": "पर्यायानज्ञापत्रीकरणस्य सूचनाः ।",
+       "exif-attributionurl": "यदा एतस्य पु्नरुपयोगं करोति तदा अनेन अनुबद्नातु ।",
+       "exif-preferredattributionname": "यदा एतत्कार्यं पुनरुपयोजति तदा समाकलयतु ।",
+       "exif-pngfilecomment": "जिपिइजि सञ्चिकाटीका ।",
+       "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-2": "CCITT समूहः 3 1- Dimensional Modified Huffman run length encoding",
+       "exif-compression-3": "CCITT समूह ३ फेक्स  सङ्केतीकरणम् ।",
+       "exif-compression-4": "CCITT समूहः३ फेक्स् सङ्केतीरणम् ।",
+       "exif-copyrighted-true": "स्वामत्वरक्षितम् ।",
+       "exif-copyrighted-false": "प्रतिकृत्यधिकारः न निर्धारितः",
+       "exif-unknowndate": "अज्ञातदिनाङ्कः ।",
+       "exif-orientation-1": "सामान्य",
+       "exif-orientation-2": "तिर्यक् परिवर्तितम् ।",
+       "exif-orientation-3": "१८०° प्ररिभ्रमितम् ।",
+       "exif-orientation-4": "लम्भतया परिवर्तितम् ।",
+       "exif-orientation-5": "CCW ९०° परिभ्रमितम् । अपि च लम्बतया परिवर्तितम् ।",
+       "exif-orientation-6": "CCW ९०° परिभ्रमितम् ।",
+       "exif-orientation-7": "CCW ९०° परिभ्रमितम् । अपि च लम्बतया परिवर्तितम् ।",
+       "exif-orientation-8": "CCW ९०° परिभ्रमितम् ।",
+       "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-exposureprogram-5": "सर्जनात्मकः कार्यक्रमः ।",
+       "exif-exposureprogram-6": "प्रक्रियाकार्यक्रमः ।",
+       "exif-exposureprogram-7": "आलेख्य प्रकारः ।",
+       "exif-exposureprogram-8": "आयतप्रकारः । (आयतचित्राणि पृष्ठभूमिकेन्द्रीकृतनि )",
+       "exif-subjectdistance-value": "$1 मीटर्स् ।",
+       "exif-meteringmode-0": "अज्ञातम्",
+       "exif-meteringmode-1": "माध्य",
+       "exif-meteringmode-2": "केन्द्रभारयुतं सर्वसामान्यम् ।",
+       "exif-meteringmode-3": "प्रदेशः ।",
+       "exif-meteringmode-4": "विविधप्रदेशाः ।",
+       "exif-meteringmode-5": "प्रकारः ।",
+       "exif-meteringmode-6": "भागशः ।",
+       "exif-meteringmode-255": "अन्यत्",
+       "exif-lightsource-0": "अज्ञातम्",
+       "exif-lightsource-1": "दिवाप्रकाशः ।",
+       "exif-lightsource-2": "प्रभासमानम् ।",
+       "exif-lightsource-3": "उज्वलप्रकाशस्य तन्त्रीविशेषः",
+       "exif-lightsource-4": "स्फुरणम् ।",
+       "exif-lightsource-9": "सुवायुमण्डलम् ।",
+       "exif-lightsource-10": "मेघाच्छन्नवायुमण्डलम् ।",
+       "exif-lightsource-11": "छाया ।",
+       "exif-lightsource-12": "दिवाप्रकाशः उज्वलकान्तिः ।(D 5700 – 7100K)",
+       "exif-lightsource-13": "दिनस्य श्वेतोज्वलप्रकाशः (N 4600 – 5400K)",
+       "exif-lightsource-14": "शान्तशुभ्रः उज्ज्वलप्रकाशः (W 3900 – 4500K)",
+       "exif-lightsource-15": "श्वेतदीप्तप्रकाशः ।(WW 3200 – 3700K)",
+       "exif-lightsource-17": "सुयोगः प्रकाशः A",
+       "exif-lightsource-18": "योग्यप्रकाशः B",
+       "exif-lightsource-19": "सुयोग्यप्रकाशः C",
+       "exif-lightsource-24": "ISO स्टूडीयो टङ्गस्टन् ।",
+       "exif-lightsource-255": "अन्यप्रकाशस्रोतः ।",
+       "exif-flash-fired-0": "स्फुरणं न सम्भूतम् ।",
+       "exif-flash-fired-1": "स्फुरणमभवत् ।",
+       "exif-flash-return-0": "न कोऽपि स्फुरणप्रयागमनस्य शोधकार्यकलापः अस्ति ।",
+       "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-sensingmethod-7": "ट्रिलियनियर्  संवेदकः ।",
+       "exif-sensingmethod-8": "वर्णसान्दर्भिकस्थानस्य संवेदकः ।",
+       "exif-filesource-3": "आङ्किकस्थिरचित्रग्राही ।",
+       "exif-scenetype-1": "सक्षात् ग्रहीतचित्रम् ।",
+       "exif-customrendered-0": "साधारणप्रक्रिया ।",
+       "exif-customrendered-1": "प्रक्रियां परिवर्तयतु ।",
+       "exif-exposuremode-0": "स्वयं प्रदर्शनम् ।",
+       "exif-exposuremode-1": "मानवीयं प्रदर्शनम् ।",
+       "exif-exposuremode-2": "स्वयम् आवरणम्",
+       "exif-whitebalance-0": "स्वयं श्वेतावरणम् ।",
+       "exif-whitebalance-1": "मनवकरणस्य श्वेतावरणम् ।",
+       "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-saturation-0": "सामान्यम्",
+       "exif-saturation-1": "मन्दतर्पणम् ।",
+       "exif-saturation-2": "तीव्रतर्पणम् ।",
+       "exif-sharpness-0": "सामान्य",
+       "exif-sharpness-1": "कोमलम् ।",
+       "exif-sharpness-2": "कठिणम् ।",
+       "exif-subjectdistancerange-0": "अज्ञातम्",
+       "exif-subjectdistancerange-1": "बृहत्",
+       "exif-subjectdistancerange-2": "अवलोकनं पिदधातु ।",
+       "exif-subjectdistancerange-3": "दूरदृश्यम् ।",
+       "exif-gpslatitude-n": "उत्तराक्षांशः ।",
+       "exif-gpslatitude-s": "दक्षिणाक्षांशः ।",
+       "exif-gpslongitude-e": "पश्चिमरेखांशः ।",
+       "exif-gpslongitude-w": "पश्चिमरेखांशः ।",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter|meters}} समुद्रस्तरादौन्नत्यम् ।",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter|meters}} समुद्रस्तरादवनतिः ।",
+       "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-gpsdestdistance-m": "मैल्स् ।",
+       "exif-gpsdestdistance-n": "समुद्रीयः क्रोशः ।",
+       "exif-gpsdop-excellent": "उत्कृष्टम् ($1)",
+       "exif-gpsdop-good": "साधु ($1)",
+       "exif-gpsdop-moderate": "मध्यमः $1",
+       "exif-gpsdop-fair": " युक्तम् ($1)",
+       "exif-gpsdop-poor": "दीनम् ($1)",
+       "exif-objectcycle-a": "प्रतः केवलम् ।",
+       "exif-objectcycle-p": "सायं केवलम् ।",
+       "exif-objectcycle-b": "सायं प्रातः च ।",
+       "exif-gpsdirection-t": "यथार्था दिशा ।",
+       "exif-gpsdirection-m": "कान्तीयदिशा ।",
+       "exif-ycbcrpositioning-1": "केन्द्रितम् ।",
+       "exif-ycbcrpositioning-2": "सहक्षेत्रम् ।",
+       "exif-dc-contributor": "योगदानिनः ।",
+       "exif-dc-coverage": "माध्यमस्य स्थानिकः अथवा लैकिकः अवकाशः ।",
+       "exif-dc-date": "दिनाङ्काः ।",
+       "exif-dc-publisher": "प्रकाशकः ।",
+       "exif-dc-relation": "सम्बद्धमाध्यमः ।",
+       "exif-dc-rights": "अधिकाराः ।",
+       "exif-dc-source": "स्रोतसः माध्यमः ।",
+       "exif-dc-type": "माध्यमप्रकारः ।",
+       "exif-rating-rejected": "तिरस्कृतम् ।",
+       "exif-isospeedratings-overflow": "६५५३५ तः महत्तरः ।",
+       "exif-iimcategory-ace": "कलाः, संस्कृतिः, मनोरञ्जनम् ।",
+       "exif-iimcategory-clj": "पराधः न्यायनियमाः ।",
+       "exif-iimcategory-dis": "विपदः व्यापदः च ।",
+       "exif-iimcategory-fin": "अर्थव्यवस्था वाणिज्यं च ।",
+       "exif-iimcategory-edu": "विद्याभ्यासः",
+       "exif-iimcategory-evn": "परिसरः",
+       "exif-iimcategory-hth": "स्वास्थ्यम्",
+       "exif-iimcategory-hum": "मानवीयासक्तिः ।",
+       "exif-iimcategory-lab": "परिश्रमः",
+       "exif-iimcategory-lif": "जीवनविधानं विश्रामः च ।",
+       "exif-iimcategory-pol": "राजनीतिः ।",
+       "exif-iimcategory-rel": "मतं विश्वासः च ।",
+       "exif-iimcategory-sci": "विज्ञानं तन्त्रज्ञानं च ।",
+       "exif-iimcategory-soi": "समाजिकाः विवादाः ।",
+       "exif-iimcategory-spo": "क्रीडाः",
+       "exif-iimcategory-war": "युद्धम्, सङ्घर्षः, अशान्तिः ।",
+       "exif-iimcategory-wea": "वातावरण",
+       "exif-urgency-normal": "सामान्यम् ($1)",
+       "exif-urgency-low": "मन्दम् ।$1",
+       "exif-urgency-high": "उन्नतम् ($1)",
+       "exif-urgency-other": "योजकनिरूपिता आद्यता : $1"
+}
diff --git a/languages/i18n/exif/sah.json b/languages/i18n/exif/sah.json
new file mode 100644 (file)
index 0000000..b0ad6c0
--- /dev/null
@@ -0,0 +1,348 @@
+{
+       "@metadata": {
+               "authors": [
+                       "HalanTul",
+                       "Мария Олесова"
+               ]
+       },
+       "exif-imagewidth": "Кэтитэ",
+       "exif-imagelength": "Үрдүгэ",
+       "exif-bitspersample": "Глубина цвета",
+       "exif-compression": "Хам тутуу ньымата",
+       "exif-photometricinterpretation": "Цветовая модель",
+       "exif-orientation": "Кадр ориентацията",
+       "exif-samplesperpixel": "Компоненнарын ахсаана",
+       "exif-planarconfiguration": "Дааннайдары наардааһын ньымата",
+       "exif-ycbcrsubsampling": "Y уонна C бэйэ бэйэлэригэр сыһыаннара",
+       "exif-ycbcrpositioning": "Y уонна C ханан тураллара",
+       "exif-xresolution": "Сытыары разрешениета",
+       "exif-yresolution": "Туруору разрешениета",
+       "exif-stripoffsets": "Ойуу дааннайдара ханна баар буолара",
+       "exif-rowsperstrip": "Биир блокка төһө строка баар буолара",
+       "exif-stripbytecounts": "Хам тутуллубут блок кээмэйэ",
+       "exif-jpeginterchangeformat": "JPEG SOI аналлаах сиригэр көһүү",
+       "exif-jpeginterchangeformatlength": "JPEG дааннайдарын кээмэйэ",
+       "exif-whitepoint": "Үрүҥ өҥ цветноһа",
+       "exif-primarychromaticities": "Сүрүн өҥнөр цветностара",
+       "exif-ycbcrcoefficients": "Өҥ уларыйыытын коэфициеннара",
+       "exif-referenceblackwhite": "Хара уонна үрүҥ сыһыаннара",
+       "exif-datetime": "Билэ хаһан уларыйбыта",
+       "exif-imagedescription": "Ойуу аата",
+       "exif-make": "Камераны оҥорооччу",
+       "exif-model": "Камера модела",
+       "exif-software": "Туһанар бырагырааммата",
+       "exif-artist": "Ааптар",
+       "exif-copyright": "Бас билээччи",
+       "exif-exifversion": "Exif барыла",
+       "exif-flashpixversion": "Flashpix туттуллар биэрсийэтэ",
+       "exif-colorspace": "Өҥ куйаара (пространство, space)",
+       "exif-componentsconfiguration": "Хас биирдии компонент суолтата",
+       "exif-compressedbitsperpixel": "Ойууну хам тутуу ньымата",
+       "exif-pixelxdimension": "Ойуу кэтитэ",
+       "exif-pixelydimension": "Ойуу үрдүгэ",
+       "exif-usercomment": "Кыттааччы хос быһаарыыта",
+       "exif-relatedsoundfile": "Аудио-билэҕэ сыһыаннаах",
+       "exif-datetimeoriginal": "Оҥоһуллубут кэмэ",
+       "exif-datetimedigitized": "Сыыппараҕа көһөрүллүбүт кэмэ",
+       "exif-subsectime": "Доли секунд времени изменения файла",
+       "exif-subsectimeoriginal": "Сөкүүндэ аҥаардарын КэмэКүнэ-ыйа",
+       "exif-subsectimedigitized": "Сыыппараҕа көһөрүллүбүт сөкүүндэ аҥаардарын КэмэКүнэ-ыйа",
+       "exif-exposuretime": "Экспозиция кэмэ",
+       "exif-exposuretime-format": "$1 сөк ($2)",
+       "exif-fnumber": "F кээмэйэ",
+       "exif-exposureprogram": "Экспозиция бырагырааммата",
+       "exif-spectralsensitivity": "Спектр чувствительноһа",
+       "exif-isospeedratings": "ISO кээмэйэ",
+       "exif-shutterspeedvalue": "Объективы арыйыы түргэнэ (APEX выдержката)",
+       "exif-aperturevalue": "Диафрагма (APEX улахана)",
+       "exif-brightnessvalue": "Сырдыга (APEX яркоһа)",
+       "exif-exposurebiasvalue": "Экспозиция сыҕарыйыыта (компенсация)",
+       "exif-maxaperturevalue": "Диафрагма саамай улахан кээмэйэ (Maximum land aperture)",
+       "exif-subjectdistance": "Объект ырааҕа",
+       "exif-meteringmode": "Экспозиция кээмэйин ньымата",
+       "exif-lightsource": "Сырдыгы туох биэрэрэ",
+       "exif-flash": "Вспышка",
+       "exif-focallength": "Фокус кээмэйэ",
+       "exif-focallength-format": "$1 мм",
+       "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": "Үрүҥ балансата",
+       "exif-digitalzoomratio": "Сыыппаранан улаатыннарыы кээмэйэ (зуум)",
+       "exif-focallengthin35mmfilm": "Фокус 35 мм пленкаҕа тэҥнээх кээмэйэ",
+       "exif-scenecapturetype": "Устарга сцена көрүҥэ",
+       "exif-gaincontrol": "Сырдыгын уларытыы",
+       "exif-contrast": "Контрааһа",
+       "exif-saturation": "Насыщенноһа",
+       "exif-sharpness": "Резкоһа",
+       "exif-devicesettingdescription": "Камера туруоруулара",
+       "exif-subjectdistancerange": "Түһэриллибит объекка дылы ырааҕа",
+       "exif-imageuniqueid": "Ойуу нүөмэрэ (ID)",
+       "exif-gpsversionid": "GPS тиэгин барыла",
+       "exif-gpslatituderef": "Хотугу/Соҕурууҥу кэтирээһин",
+       "exif-gpslatitude": "Кэтирээһин",
+       "exif-gpslongituderef": "Илиҥҥи/Арҕааҥҥы усталааһын",
+       "exif-gpslongitude": "Усталааһын",
+       "exif-gpsaltituderef": "Үрдүгүн кээмэйэ",
+       "exif-gpsaltitude": "Үрдүгэ",
+       "exif-gpstimestamp": "GPS бириэмэтэ (atomic clock)",
+       "exif-gpssatellites": "Туттуллубут спутниктар",
+       "exif-gpsstatus": "Приемник туруга",
+       "exif-gpsmeasuremode": "Кээмэйдээһин ньымата",
+       "exif-gpsdop": "Кээмэйдээһин туочунаһа",
+       "exif-gpsspeedref": "Түргэнин кээмэйэ",
+       "exif-gpsspeed": "GPS приемник хамсыырын түргэнэ",
+       "exif-gpstrackref": "GPS-приемник азимутун көрүҥэ (дьиҥнээх, магнитнай)",
+       "exif-gpstrack": "GPS-приемник азимута",
+       "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 processing method)",
+       "exif-gpsareainformation": "GPS оройуонун аата",
+       "exif-gpsdatestamp": "GPS ыйа-күнэ",
+       "exif-gpsdifferential": "GPS көннөрүүтүн дифференциала",
+       "exif-jpegfilecomment": "JPEG билэ быһаарыыта",
+       "exif-keywords": "Күлүүс тыллар",
+       "exif-worldregioncreated": "Хаартыска оҥоһуллубут аан дойду муннуга",
+       "exif-countrycreated": "Хаартыска оҥоһуллубут дойдута",
+       "exif-countrycodecreated": "Хаартыска түһэриллибит дойдутун куода",
+       "exif-provinceorstatecreated": "Хаартыска түһэриллбит региона, уобалаһа, провинцията, штаата",
+       "exif-citycreated": "Хаартыска түһэриллибит куората",
+       "exif-sublocationcreated": "Хаартыска түһэриллибит куоратын оройуона",
+       "exif-worldregiondest": "Ойууга көстөр дойду",
+       "exif-countrydest": "Ойууга көстөр дойду",
+       "exif-countrycodedest": "Ойууга көстөр дойду куода",
+       "exif-provinceorstatedest": "Ойууламмыт регион, уобалас эбэтэр штаат",
+       "exif-citydest": "Ойууламмыт куорат",
+       "exif-sublocationdest": "Ойууламмыт куорат оройуона",
+       "exif-objectname": "Кылгас аата",
+       "exif-specialinstructions": "Эбии ыйыылар-кэрдиилэр",
+       "exif-headline": "Баһа",
+       "exif-credit": "Ойууну биэрээччи",
+       "exif-source": "Хантан ылыллыбыта",
+       "exif-editstatus": "Ойууну уларытыы туһунан",
+       "exif-urgency": "Актуальноһа",
+       "exif-fixtureidentifier": "Колонка аата",
+       "exif-locationdest": "Ойууламмыт сир",
+       "exif-locationdestcode": "Ойууламмыт сир куода",
+       "exif-objectcycle": "Ойуу суукка ханнык кэмигэр ананара",
+       "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": "Метадааннайдарын бүтэһик уларытыытын ыйа-күнэ",
+       "exif-nickname": "Ойуу кылгас аата",
+       "exif-rating": "Сыанабыл (5-тэн)",
+       "exif-rightscertificate": "Быраабы салайыы сертификаата",
+       "exif-copyrighted": "Ааптар быраабын туруга:",
+       "exif-copyrightowner": "Бас билээччи",
+       "exif-usageterms": "Туһаныы усулуобуйата",
+       "exif-webstatement": "Интэриниэккэ тарҕаныытын туһунан",
+       "exif-originaldocumentid": "Оригинаалын идентификатора",
+       "exif-licenseurl": "Бас билии лисиэнсийэтин URL-ла",
+       "exif-morepermissionsurl": "Лиссиэнсийэ туһунан атын информация",
+       "exif-attributionurl": "Бу үлэни туһанаргытыгар, бука диэн, манна сигэнээриҥ:",
+       "exif-preferredattributionname": "Бу үлэни туһанаргытыгар, бука диэн, маны ыйаарыҥ:",
+       "exif-pngfilecomment": "PNG-билэ быһаарыыта",
+       "exif-disclaimer": "Бүк охсунуу",
+       "exif-contentwarning": "Сэрэтии",
+       "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-2": "CCITT Group 3, 1-мерная модификация кодирования длин серий Хаффмана",
+       "exif-compression-3": "CCITT Group 3, факс куодтааһына",
+       "exif-compression-4": "CCITT Group 4, факс куодтааһына",
+       "exif-copyrighted-true": "Ааптар быраабынан араҥаччыланар",
+       "exif-copyrighted-false": "Бас билиитэ чопчуламматах",
+       "exif-photometricinterpretation-1": "Хара уонна маҥан (хара - 0).",
+       "exif-unknowndate": "Күнэ-ыйа биллибэт",
+       "exif-orientation-1": "Нуорма",
+       "exif-orientation-2": "Сытыары көстүбүт",
+       "exif-orientation-3": "180° эргитиллибит",
+       "exif-orientation-4": "Туруору көстүбүт",
+       "exif-orientation-5": "90° чаһы утары эргитиллибит уонна туруору көстүбүт",
+       "exif-orientation-6": "90° чаһы утары эргитиллибит",
+       "exif-orientation-7": "90° чаһы хоту эргитиллибит уонна туруору көстүбүт",
+       "exif-orientation-8": "90° чаһы хоту эргитиллибит",
+       "exif-planarconfiguration-1": "\"chunky\" формат",
+       "exif-planarconfiguration-2": "\"planar\" формат",
+       "exif-colorspace-65535": "Калибрдамматах",
+       "exif-componentsconfiguration-0": "суох",
+       "exif-exposureprogram-0": "Биллибэт",
+       "exif-exposureprogram-1": "Илиинэн туруоруу",
+       "exif-exposureprogram-2": "Нормальнай программнай режим",
+       "exif-exposureprogram-3": "Диафрагма приоритеттаах",
+       "exif-exposureprogram-4": "Выдержка приоритеттаах",
+       "exif-exposureprogram-5": "Художественная программа (на основе нужной глубины резкости)",
+       "exif-exposureprogram-6": "Спорт режимэ (саамай кылгас выдержкалаах)",
+       "exif-exposureprogram-7": "Портрет режимэ (чугастан, фон фокуска киирбэт)",
+       "exif-exposureprogram-8": "Пейзаж режимэ (фона фокуска эмиэ киирэр)",
+       "exif-subjectdistance-value": "$1 миэтэрэ",
+       "exif-meteringmode-0": "Биллибэт",
+       "exif-meteringmode-1": "Орто",
+       "exif-meteringmode-2": "Средневзвешеннай",
+       "exif-meteringmode-3": "Точечнай",
+       "exif-meteringmode-4": "Мультиточечнай",
+       "exif-meteringmode-5": "Матричнай",
+       "exif-meteringmode-6": "Чаас чааһынан",
+       "exif-meteringmode-255": "Атын",
+       "exif-lightsource-0": "Биллибэт",
+       "exif-lightsource-1": "Күн сырдыга",
+       "exif-lightsource-2": "Флюоресцентнай лаампа",
+       "exif-lightsource-3": "Көннөрү (вольфрам) кыллаах лаампа",
+       "exif-lightsource-4": "Вспышка",
+       "exif-lightsource-9": "Күннээх күн",
+       "exif-lightsource-10": "Былыттаах күн",
+       "exif-lightsource-11": "Күлүк",
+       "exif-lightsource-12": "Флуоресцентнай (D 5700 – 7100K)",
+       "exif-lightsource-13": "Флуоресцентнай (N 4600 – 5400K)",
+       "exif-lightsource-14": "Флуоресцентнай (W 3900 – 4500K)",
+       "exif-lightsource-15": "Флуоресцентнай (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Стандарт A",
+       "exif-lightsource-18": "Стандарт B",
+       "exif-lightsource-19": "Стандарт C",
+       "exif-lightsource-24": "ISO студия лаампата",
+       "exif-lightsource-255": "Атын уот",
+       "exif-flash-fired-0": "Вспышката тыкпатах",
+       "exif-flash-fired-1": "Вспышката тыкпыт",
+       "exif-flash-return-0": "вспышка эрдэ тыгар режима суох",
+       "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-sensingmethod-7": "Үс өҥнөөх линейнай сенсор",
+       "exif-sensingmethod-8": "Линейный сенсор с последовательным измерением цвета",
+       "exif-filesource-3": "Цифровой фотоаппарат",
+       "exif-scenetype-1": "Объект бэйэтин хаартыскаҕа түһэриллибит",
+       "exif-customrendered-0": "Оҥоһуллубатах",
+       "exif-customrendered-1": "Талан уларытыллыбыт",
+       "exif-exposuremode-0": "Автоэкспозиция",
+       "exif-exposuremode-1": "Экспозицияны илиинэн туруоруу",
+       "exif-exposuremode-2": "Брэкетинг",
+       "exif-whitebalance-0": "Үрүҥ балаансатын аптамаатынан",
+       "exif-whitebalance-1": "Үрүҥ балаансатын илиинэн",
+       "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-saturation-0": "Нуорма",
+       "exif-saturation-1": "Арыый насыщеннай",
+       "exif-saturation-2": "Үрдүк насыщениялаах",
+       "exif-sharpness-0": "Нуорма",
+       "exif-sharpness-1": "Арыый сырдык",
+       "exif-sharpness-2": "Олох сырдык",
+       "exif-subjectdistancerange-0": "Биллибэт",
+       "exif-subjectdistancerange-1": "\"Тута сытан\" түһэрии",
+       "exif-subjectdistancerange-2": "Чугастан түһэрии",
+       "exif-subjectdistancerange-3": "Ыраахтан түһэрии",
+       "exif-gpslatitude-n": "Хотугу кэтирээһин",
+       "exif-gpslatitude-s": "Соҕуруу кэтирээһин",
+       "exif-gpslongitude-e": "Илиҥҥи усталааһын",
+       "exif-gpslongitude-w": "Арҕааҥы усталааһын",
+       "exif-gpsaltitude-above-sealevel": "Муора таһымыттан  {{PLURAL:$1|биир миэтэрэ|$1 миэтэрэ}} үрдүк",
+       "exif-gpsaltitude-below-sealevel": "Муора таһымыттан {{PLURAL:$1|биир миэтэрэ|$1 миэтэрэ}} намыһах",
+       "exif-gpsstatus-a": "Кээмэйдээһин бүтэ илик",
+       "exif-gpsstatus-v": "Кээмэйдээһин бэлэм",
+       "exif-gpsmeasuremode-2": "2 координаатаны кээмэйдээһин",
+       "exif-gpsmeasuremode-3": "3 координаатаны кээмэйдээһин",
+       "exif-gpsspeed-k": "км/чаас",
+       "exif-gpsspeed-m": "Миляны чааска",
+       "exif-gpsspeed-n": "Узел",
+       "exif-gpsdestdistance-k": "Километр",
+       "exif-gpsdestdistance-m": "Миилэ",
+       "exif-gpsdestdistance-n": "Байҕал миилэтэ",
+       "exif-gpsdop-excellent": "Уһулуччу ($1)",
+       "exif-gpsdop-good": "Үчүгэй ($1)",
+       "exif-gpsdop-moderate": "Орто ($1)",
+       "exif-gpsdop-fair": "Орто аннынан ($1)",
+       "exif-gpsdop-poor": "Мөлтөх ($1)",
+       "exif-objectcycle-a": "Сарсыарда эрэ",
+       "exif-objectcycle-p": "Киэһэ эрэ",
+       "exif-objectcycle-b": "Сарсыарда уонна киэһэ",
+       "exif-gpsdirection-t": "Дьиҥнээх",
+       "exif-gpsdirection-m": "Магнитнай",
+       "exif-ycbcrpositioning-1": "Кииннэммит",
+       "exif-ycbcrpositioning-2": "Co-sited",
+       "exif-dc-contributor": "Оҥорсооччулар",
+       "exif-dc-coverage": "Медиа-билэ ханна, хаһан оҥоһуллубута",
+       "exif-dc-date": "Күнэ-дьыла",
+       "exif-dc-publisher": "Бэчээттээччи",
+       "exif-dc-relation": "Ситимнээх медиа",
+       "exif-dc-rights": "Бырааптар",
+       "exif-dc-source": "Аан бастакы медиа",
+       "exif-dc-type": "Медиа көрүҥэ",
+       "exif-rating-rejected": "Бигэргэтиллибэтэх",
+       "exif-isospeedratings-overflow": "65535 тахса",
+       "exif-iimcategory-ace": "Ускуустуба, култуура уонна саататыы",
+       "exif-iimcategory-clj": "Түөкүннээһин уонна сокуон",
+       "exif-iimcategory-dis": "Саахал",
+       "exif-iimcategory-fin": "Экэниэмикэ уонна урбаан",
+       "exif-iimcategory-edu": "Үөрэх",
+       "exif-iimcategory-evn": "Тулалыыр эйгэ",
+       "exif-iimcategory-hth": "Эт-хаан туруга",
+       "exif-iimcategory-hum": "Киһи сэргиирэ",
+       "exif-iimcategory-lab": "Үлэ",
+       "exif-iimcategory-lif": "Олоххо сыһыан уонна иллэҥ кэм",
+       "exif-iimcategory-pol": "Бэлиитикэ",
+       "exif-iimcategory-rel": "Итэҕэл уонна кут-сүр",
+       "exif-iimcategory-sci": "Билим уонна тиэхинньикэ",
+       "exif-iimcategory-soi": "Уопсастыбаҕа сыһыаннар",
+       "exif-iimcategory-spo": "Күрэс",
+       "exif-iimcategory-war": "Сэрии уонна утарыта туруу",
+       "exif-iimcategory-wea": "Халлаан туруга",
+       "exif-urgency-normal": "Көннөрү ($1)",
+       "exif-urgency-low": "Намыһах ($1)",
+       "exif-urgency-high": "Үрдүк ($1)",
+       "exif-urgency-other": "Кыттааччы эппит приоритета ($1)"
+}
diff --git a/languages/i18n/exif/scn.json b/languages/i18n/exif/scn.json
new file mode 100644 (file)
index 0000000..472b242
--- /dev/null
@@ -0,0 +1,355 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Melos",
+                       "Pippinu",
+                       "Santu",
+                       "Sarvaturi",
+                       "Tonyfroio"
+               ]
+       },
+       "exif-imagewidth": "Larghizza",
+       "exif-imagelength": "Autizza",
+       "exif-bitspersample": "Bit pi cumpunenti",
+       "exif-compression": "Miccanismu di cumprissioni",
+       "exif-photometricinterpretation": "Cumpusizzioni dû pixel",
+       "exif-orientation": "Orientamentu",
+       "exif-samplesperpixel": "Nùmmiru di cumpunenti",
+       "exif-planarconfiguration": "Dispusizzioni dî dati",
+       "exif-ycbcrsubsampling": "Rapportu di suttacampiunamentu Y / C",
+       "exif-ycbcrpositioning": "Pusizziunamentu dî cumpunenti Y e C",
+       "exif-xresolution": "Risuluzzioni orizzuntali",
+       "exif-yresolution": "Risuluzzioni virticali",
+       "exif-stripoffsets": "Pusizzioni dî dati mmàggini",
+       "exif-rowsperstrip": "Nùmmiru righi pi striscia",
+       "exif-stripbytecounts": "Nùmmiru di byte pi striscia cumpressa",
+       "exif-jpeginterchangeformat": "Pusizzioni byte SOI JPEG",
+       "exif-jpeginterchangeformatlength": "Nùmmuru di byte di dati JPEG",
+       "exif-whitepoint": "Cuurdinati crumàtichi dû puntu di jancu",
+       "exif-primarychromaticities": "Cuurdinati crumàtichi dî culuri primari",
+       "exif-ycbcrcoefficients": "Cuefficienti matrici di trasfurmazzioni spazzi dî culuri",
+       "exif-referenceblackwhite": "Cucchia di valuri di rifirimentu (nìuru e jancu)",
+       "exif-datetime": "Data e ura di canciamentu dû file",
+       "exif-imagedescription": "Discrizzioni dâ mmàggini",
+       "exif-make": "Prudutturi fotucàmira",
+       "exif-model": "Mudellu fotucàmira",
+       "exif-software": "Software",
+       "exif-artist": "Auturi",
+       "exif-copyright": "Nfurmazzioni supra lu copyright",
+       "exif-exifversion": "Virsioni dû furmatu Exif",
+       "exif-flashpixversion": "Virsioni Flashpix suppurtata",
+       "exif-colorspace": "Spazziu dî culuri",
+       "exif-componentsconfiguration": "Significatu d'ognuna cumpunenti",
+       "exif-compressedbitsperpixel": "Mudalitati di cumprissioni dâ mmàggini",
+       "exif-pixelxdimension": "Larghizza dâ mmàggini",
+       "exif-pixelydimension": "Autizza dâ mmàggini",
+       "exif-usercomment": "Noti di l'utenti",
+       "exif-relatedsoundfile": "File audiu culligatu",
+       "exif-datetimeoriginal": "Data e ura di criazzioni dî dati",
+       "exif-datetimedigitized": "Data e ura di diggitalizzazzioni",
+       "exif-subsectime": "Data e ura, frazzioni di secunnu",
+       "exif-subsectimeoriginal": "Data e ura di criazzioni, frazzioni di secunnu",
+       "exif-subsectimedigitized": "Data e ura di diggitalizzazzioni, frazzioni di secunnu",
+       "exif-exposuretime": "Tempu d'espusizzioni",
+       "exif-exposuretime-format": "$1 s ($2)",
+       "exif-fnumber": "Rapportu fucali",
+       "exif-exposureprogram": "Prugramma d'espusizzioni",
+       "exif-spectralsensitivity": "Sinzibbilitati spittrali",
+       "exif-isospeedratings": "Sinzibbilitati ISO",
+       "exif-shutterspeedvalue": "Tempu d'espusizzioni APEX",
+       "exif-aperturevalue": "Grapitura APEX",
+       "exif-brightnessvalue": "Luminusità APEX",
+       "exif-exposurebiasvalue": "Currezzioni espusizzioni",
+       "exif-maxaperturevalue": "Apirtura màssima",
+       "exif-subjectdistance": "Distanza dû suggettu",
+       "exif-meteringmode": "Mètudu di misurazzioni",
+       "exif-lightsource": "Surgenti luminusa",
+       "exif-flash": "Carattirìstichi e statu dû flash",
+       "exif-focallength": "Distanza fucali obbittivu",
+       "exif-subjectarea": "Ària nquatranti lu suggettu",
+       "exif-flashenergy": "Putenza dû flash",
+       "exif-focalplanexresolution": "Risuluzzioni X supra lu chianu fucali",
+       "exif-focalplaneyresolution": "Risuluzzioni Y supra lu chianu fucali",
+       "exif-focalplaneresolutionunit": "Unitati di misura risuluzzioni supra lu chianu fucali",
+       "exif-subjectlocation": "Pusizzioni dû suggettu",
+       "exif-exposureindex": "Sinzibbilitati mpustata",
+       "exif-sensingmethod": "Mètudu di rilivazzioni",
+       "exif-filesource": "Orìggini dû file",
+       "exif-scenetype": "Tipu di nquatratura",
+       "exif-customrendered": "Elabburazzioni pirsunalizzata",
+       "exif-exposuremode": "Mudalitati d'espusizzioni",
+       "exif-whitebalance": "Valanzamentu dû jancu",
+       "exif-digitalzoomratio": "Rapportu zoom diggitali",
+       "exif-focallengthin35mmfilm": "Fucali equivalenti supra 35 mm",
+       "exif-scenecapturetype": "Tipu d'accanzu",
+       "exif-gaincontrol": "Cuntrollu nquatratura",
+       "exif-contrast": "Cuntrollu cuntrastu",
+       "exif-saturation": "Cuntrollu saturazzioni",
+       "exif-sharpness": "Cuntrollu nititizza",
+       "exif-devicesettingdescription": "Discrizzioni mpustazzioni dispusitivu",
+       "exif-subjectdistancerange": "Scala distanza suggettu",
+       "exif-imageuniqueid": "ID unìvucu mmàggini",
+       "exif-gpsversionid": "Virsioni di l'etichetta GPS",
+       "exif-gpslatituderef": "Latitùtini Nord o Sud",
+       "exif-gpslatitude": "Latitùtini",
+       "exif-gpslongituderef": "Lungitùtini Est o Ovest",
+       "exif-gpslongitude": "Lungitùtini",
+       "exif-gpsaltituderef": "Rifirimentu pi l'autitùtini",
+       "exif-gpsaltitude": "Autitùtini",
+       "exif-gpstimestamp": "Ura GPS (ruloggiu atòmicu)",
+       "exif-gpssatellites": "Satèlliti usati pi la misurazzioni",
+       "exif-gpsstatus": "Statu dû ricivituri",
+       "exif-gpsmeasuremode": "Mudalitati di misurazzioni",
+       "exif-gpsdop": "Pricisioni dâ misurazzioni",
+       "exif-gpsspeedref": "Unitati di misura dâ vilucitati",
+       "exif-gpsspeed": "Vilucitati dû ricivituri GPS",
+       "exif-gpstrackref": "Rifirimentu pi la direzzioni movimentu",
+       "exif-gpstrack": "Direzzioni dû movimentu",
+       "exif-gpsimgdirectionref": "Rifirimentu pi la direzzioni dâ mmàggini",
+       "exif-gpsimgdirection": "Direzzioni dâ mmàggini",
+       "exif-gpsmapdatum": "Rilivamentu giodèticu usatu",
+       "exif-gpsdestlatituderef": "Rifirimentu pi la latitùtini dâ distinazzioni",
+       "exif-gpsdestlatitude": "Latitùtini dâ distinazzioni",
+       "exif-gpsdestlongituderef": "Rifirimentu pi la lungitùtini dâ distinazzioni",
+       "exif-gpsdestlongitude": "Lungitùtini dâ distinazzioni",
+       "exif-gpsdestbearingref": "Rifirimentu pi la direzzioni dâ distinazzioni",
+       "exif-gpsdestbearing": "Direzzioni dâ distinazzioni",
+       "exif-gpsdestdistanceref": "Rifirimentu pi la distanza dâ distinazzioni",
+       "exif-gpsdestdistance": "Distanza dâ distinazzioni",
+       "exif-gpsprocessingmethod": "Nomu dû mètudu d'elabburazzioni GPS",
+       "exif-gpsareainformation": "Nomu dâ zona GPS",
+       "exif-gpsdatestamp": "Data GPS",
+       "exif-gpsdifferential": "Currezzioni diffirinziali GPS",
+       "exif-jpegfilecomment": "Cummentu dû file JPEG",
+       "exif-keywords": "Palori chiavi",
+       "exif-worldregioncreated": "Parti dû munnu unni sta fotu fu pigghiata",
+       "exif-countrycreated": "Paisi dû munnu unni sta fotu fu pigghiata",
+       "exif-countrycodecreated": "Còdici dû paisi unni sta fotu fu pigghiata",
+       "exif-provinceorstatecreated": "Riggiuni o pruvincia unni sta fòtu fu pigghiata",
+       "exif-citycreated": "Cità unni sta fotu fu pigghiata",
+       "exif-sublocationcreated": "Parti dâ cità unni sta fotu fu pigghiata",
+       "exif-worldregiondest": "Parti dû munnu raffigurata",
+       "exif-countrydest": "Paisi dû munnu raffiguratu",
+       "exif-countrycodedest": "Còdici dû paisi raffiguratu",
+       "exif-provinceorstatedest": "Riggiuni o pruvincia raffigurata",
+       "exif-citydest": "Cità raffigurata",
+       "exif-sublocationdest": "Parti dâ cità raffigurata",
+       "exif-objectname": "Tìtulu curtu",
+       "exif-specialinstructions": "Struzzioni spiciali",
+       "exif-headline": "Tìtulu",
+       "exif-credit": "Orìggini/Furnituri",
+       "exif-source": "Fonti",
+       "exif-editstatus": "Statu edituriali dâ mmàggini",
+       "exif-urgency": "Urgenza",
+       "exif-fixtureidentifier": "Rubbrica",
+       "exif-locationdest": "Postu raffiguratu",
+       "exif-locationdestcode": "Còdici dû postu raffiguratu",
+       "exif-objectcycle": "Ura dâ jurnata pâ quali stu file è ntisu",
+       "exif-contact": "Nfurmazzioni di cuntattu",
+       "exif-writer": "Scritturi",
+       "exif-languagecode": "Lingua",
+       "exif-iimversion": "Virsioni di IIM",
+       "exif-iimcategory": "Catigurìa",
+       "exif-iimsupplementalcategory": "Catigurìi agghiuntivi",
+       "exif-datetimeexpires": "Di nun adupiràri doppu",
+       "exif-datetimereleased": "Data di rilassu",
+       "exif-originaltransmissionref": "Còdici dû locu di trasmissioni origginali",
+       "exif-identifier": "Idintificaturi",
+       "exif-lens": "Lenti adupirata",
+       "exif-serialnumber": "Nùmmiru di serî dâ màchina futugràfica",
+       "exif-cameraownername": "Prupitariu dâ màchina futugràfica",
+       "exif-label": "Etichetta",
+       "exif-datetimemetadata": "Data di l'ùrtimu canciamentu dî metadati",
+       "exif-nickname": "Nomu nfurmali dâ mmàggini",
+       "exif-rating": "Votu (supra a 5)",
+       "exif-rightscertificate": "Cirtificatu pâ gistioni dî dritti",
+       "exif-copyrighted": "Cupertu di drittu d'auturi",
+       "exif-copyrightowner": "Ditinturi dû drittu d'auturi",
+       "exif-usageterms": "Tèrmini pi l'usu",
+       "exif-webstatement": "Dichiarazzioni di drittu d'auturi n lìnia",
+       "exif-originaldocumentid": "Idintificaturi unìvucu dû ducumentu origginali",
+       "exif-licenseurl": "URL dâ licenza di drittu d'auturi",
+       "exif-morepermissionsurl": "Nfurmazzioni pâ cuncissioni d'àutri licenzi",
+       "exif-attributionurl": "Quannu si fa usu di st'òpira, si prega di mèttiri nu lijami versu",
+       "exif-preferredattributionname": "Quannu si fa usu di st'òpira, si prega d'attribuìrinni la patirnità a",
+       "exif-pngfilecomment": "Cummentu dû file PNG",
+       "exif-disclaimer": "Dichiarazzioni d'esclusioni di rispunzabbilità",
+       "exif-contentwarning": "Avvisu supra ô cuntinutu",
+       "exif-giffilecomment": "Cummentu dû file GIF",
+       "exif-intellectualgenre": "Gèniri d'elimentu",
+       "exif-subjectnewscode": "Còdici di l'oggettu",
+       "exif-scenecode": "Còdici IPTC dâ nquatratura",
+       "exif-event": "Eventu raffiguratu",
+       "exif-organisationinimage": "Assuciazzioni raffigurata",
+       "exif-personinimage": "Pirsuna raffigurata",
+       "exif-originalimageheight": "Autizza dâ mmàggini avanti dû ritagghiu",
+       "exif-originalimagewidth": "Larghizza dâ mmàggini avanti dû ritagghiu",
+       "exif-compression-1": "Nuddu",
+       "exif-compression-2": "cudìfica unidiminziunali run-length encoding canciata di Huffman dû Gruppu 3 CCITT",
+       "exif-compression-3": "cudìfica di fax dû Gruppu 3 CCITT",
+       "exif-compression-4": "cudìfica di fax dû Gruppu 4 CCITT",
+       "exif-copyrighted-true": "Prutettu di drittu d'auturi",
+       "exif-copyrighted-false": "Statu dû drittu d'auturi nun difinutu",
+       "exif-unknowndate": "Data scanusciuta",
+       "exif-orientation-1": "Nurmali",
+       "exif-orientation-2": "Capuvortu urizzontarmenti",
+       "exif-orientation-3": "Rutatu di 180°",
+       "exif-orientation-4": "Capuvortu virticarmenti",
+       "exif-orientation-5": "Rotatu 90° 'n sensu antiurariu e capuvortu virticarmenti",
+       "exif-orientation-6": "Vutatu di 90° n senzu antiurariu",
+       "exif-orientation-7": "Rotatu 90° 'n sensu urariu e capuvortu virticarmenti",
+       "exif-orientation-8": "Vutatu di 90° n senzu urariu",
+       "exif-planarconfiguration-1": "a blocchi (chunky)",
+       "exif-planarconfiguration-2": "liniari (planar)",
+       "exif-xyresolution-i": "$1 punti pi puseri (dpi)",
+       "exif-xyresolution-c": "$1 punti pi cintìmitru (dpc)",
+       "exif-colorspace-65535": "Nun calibbratu",
+       "exif-componentsconfiguration-0": "assenti",
+       "exif-exposureprogram-0": "Nun difinitu",
+       "exif-exposureprogram-1": "Manuali",
+       "exif-exposureprogram-2": "Standard",
+       "exif-exposureprogram-3": "Priuritati a lu diaframma",
+       "exif-exposureprogram-4": "Priuritati a l'espusizzioni",
+       "exif-exposureprogram-5": "Artìsticu (urientatu â prufunnitati di campu)",
+       "exif-exposureprogram-6": "Spurtivu (urientatu â vilucitati di ripresa)",
+       "exif-exposureprogram-7": "Ritrattu (suggetti vicini cu sfunnu fora focu)",
+       "exif-exposureprogram-8": "Panurama (suggetti luntani cu sfunnu a focu)",
+       "exif-subjectdistance-value": "$1 metri",
+       "exif-meteringmode-0": "Scanusciutu",
+       "exif-meteringmode-1": "Mèdia",
+       "exif-meteringmode-2": "Media pisata cintrata",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "MultiSpot",
+       "exif-meteringmode-5": "Pattern",
+       "exif-meteringmode-6": "Parziali",
+       "exif-meteringmode-255": "Àutru",
+       "exif-lightsource-0": "Scanusciuta",
+       "exif-lightsource-1": "Luci sulari",
+       "exif-lightsource-2": "Làmpara a fluoriscenza",
+       "exif-lightsource-3": "Làmpara a lu tungstenu (a ncanniscenza)",
+       "exif-lightsource-4": "Flash",
+       "exif-lightsource-9": "Bonu tempu",
+       "exif-lightsource-10": "Nigghiusu",
+       "exif-lightsource-11": "'N ùmmira",
+       "exif-lightsource-12": "Daylight fluorescent (D 5700 - 7100K)",
+       "exif-lightsource-13": "Day white fluorescent (N 4600 - 5400K)",
+       "exif-lightsource-14": "Cool white fluorescent (W 3900 - 4500K)",
+       "exif-lightsource-15": "White fluorescent (WW 3200 - 3700K)",
+       "exif-lightsource-17": "Luci standard A",
+       "exif-lightsource-18": "Luci standard B",
+       "exif-lightsource-19": "Luci standard C",
+       "exif-lightsource-20": "Alluminanti D55",
+       "exif-lightsource-21": "Alluminanti D65",
+       "exif-lightsource-22": "Alluminanti D75",
+       "exif-lightsource-23": "Alluminanti D50",
+       "exif-lightsource-24": "Làmpara di studiu ISO a lu tungstenu",
+       "exif-lightsource-255": "Àutra surgenti luminusa",
+       "exif-flash-fired-0": "Lu flash non scattau",
+       "exif-flash-fired-1": "Flash scattatu",
+       "exif-flash-return-0": "nudda funzioni di ndividuazzioni dâ turnata dâ luci strobboscòpica",
+       "exif-flash-return-2": "luci strobboscòpica di riturnata non ndividuata",
+       "exif-flash-return-3": "luci strobboscòpica di riturnata ndividuata",
+       "exif-flash-mode-1": "attivazzioni flash fattu câ forza",
+       "exif-flash-mode-2": "rimuzzioni flash fattu câ forza",
+       "exif-flash-mode-3": "modu automàticu",
+       "exif-flash-function-1": "Astuta flash",
+       "exif-flash-redeye-1": "modu menu occhi russi",
+       "exif-focalplaneresolutionunit-2": "puseri",
+       "exif-sensingmethod-1": "Nun difinitu",
+       "exif-sensingmethod-2": "Sinzuri ària culuri a 1 chip",
+       "exif-sensingmethod-3": "Sinzuri ària culuri a 2 chip",
+       "exif-sensingmethod-4": "Sinzuri ària culuri a 3 chip",
+       "exif-sensingmethod-5": "Sinzuri ària culuri siquinziali",
+       "exif-sensingmethod-7": "Sinzuri triliniari",
+       "exif-sensingmethod-8": "Sinzuri liniari culuri siquinziali",
+       "exif-filesource-3": "Màchina futugràfica diggitali",
+       "exif-scenetype-1": "Fotugrafìa diretta",
+       "exif-customrendered-0": "Prucessu nurmali",
+       "exif-customrendered-1": "Prucessu pirsunalizzatu",
+       "exif-exposuremode-0": "Espusizzioni automàtica",
+       "exif-exposuremode-1": "Espusizzioni manuali",
+       "exif-exposuremode-2": "Bracketing automàticu",
+       "exif-whitebalance-0": "Valanzamentu dû jancu automàticu",
+       "exif-whitebalance-1": "Valanzamentu dû jancu manuali",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Panurama",
+       "exif-scenecapturetype-2": "Ritrattu",
+       "exif-scenecapturetype-3": "Nutturna",
+       "exif-gaincontrol-0": "Nuddu",
+       "exif-gaincontrol-1": "Ènfasi pi accanzu vasciu",
+       "exif-gaincontrol-2": "Ènfasi pi accanzu àutu",
+       "exif-gaincontrol-3": "Diènfasi pi accanzu vasciu",
+       "exif-gaincontrol-4": "Diènfasi pi accanzu àutu",
+       "exif-contrast-0": "Nurmali",
+       "exif-contrast-1": "Cuntrastu àutu",
+       "exif-contrast-2": "Cuntrastu vasciu",
+       "exif-saturation-0": "Nurmali",
+       "exif-saturation-1": "Saturazzioni vascia",
+       "exif-saturation-2": "Saturazzioni àuta",
+       "exif-sharpness-0": "Nurmali",
+       "exif-sharpness-1": "Ntitizza minuri",
+       "exif-sharpness-2": "Nititizza maiuri",
+       "exif-subjectdistancerange-0": "Scanusciuta",
+       "exif-subjectdistancerange-1": "Macru",
+       "exif-subjectdistancerange-2": "Suggettu vicinu",
+       "exif-subjectdistancerange-3": "Suggettu luntanu",
+       "exif-gpslatitude-n": "Latitùtini Nord",
+       "exif-gpslatitude-s": "Latitùtini Sud",
+       "exif-gpslongitude-e": "Lungitùtini Est",
+       "exif-gpslongitude-w": "Lungitùtini Ovest",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metru|metri}} supra ô liveddu dû mari",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metru|metri}} sutta ô liveddu dû mari",
+       "exif-gpsstatus-a": "Misurazzioni n cursu",
+       "exif-gpsstatus-v": "Misurazzioni nteropiràbbili",
+       "exif-gpsmeasuremode-2": "Misurazzioni bidiminziunali",
+       "exif-gpsmeasuremode-3": "Misurazzioni tridiminziunali",
+       "exif-gpsspeed-k": "Chilòmitri orari",
+       "exif-gpsspeed-m": "Migghia orari",
+       "exif-gpsspeed-n": "Gruppa",
+       "exif-gpsdestdistance-k": "Chilòmitri",
+       "exif-gpsdestdistance-m": "Migghia",
+       "exif-gpsdestdistance-n": "Migghia marini",
+       "exif-gpsdop-excellent": "Eccillenti ($1)",
+       "exif-gpsdop-good": "Bona ($1)",
+       "exif-gpsdop-moderate": "Mudesta ($1)",
+       "exif-gpsdop-fair": "Scarsa ($1)",
+       "exif-gpsdop-poor": "Pèssima ($1)",
+       "exif-objectcycle-a": "Sulu pâ matina",
+       "exif-objectcycle-p": "Sulu pâ sira",
+       "exif-objectcycle-b": "Pi matina e sira",
+       "exif-gpsdirection-t": "Direzzioni riali",
+       "exif-gpsdirection-m": "Direzzioni magnètica",
+       "exif-ycbcrpositioning-1": "Cintrati",
+       "exif-ycbcrpositioning-2": "Co-situati",
+       "exif-dc-contributor": "Cuntribbuturi",
+       "exif-dc-coverage": "Àmmitu spazziali o timpurali",
+       "exif-dc-date": "Data/i",
+       "exif-dc-publisher": "Edituri",
+       "exif-dc-relation": "File assuciati",
+       "exif-dc-rights": "Dritti",
+       "exif-dc-source": "File surgenti",
+       "exif-dc-type": "Sorta di file",
+       "exif-rating-rejected": "Riggittatu",
+       "exif-isospeedratings-overflow": "Maiuri di 65535",
+       "exif-iimcategory-ace": "Arti, cultura e spittàculu",
+       "exif-iimcategory-clj": "Crìmini e giustizzia",
+       "exif-iimcategory-dis": "Disastri e ncidenti",
+       "exif-iimcategory-fin": "Ecunumìa e affari",
+       "exif-iimcategory-edu": "Struzzioni",
+       "exif-iimcategory-evn": "Ammienti",
+       "exif-iimcategory-hth": "Saluti",
+       "exif-iimcategory-hum": "Casi umani",
+       "exif-iimcategory-lab": "Travagghiu",
+       "exif-iimcategory-lif": "Stili di vita e arricrìu",
+       "exif-iimcategory-pol": "Pulìtica",
+       "exif-iimcategory-rel": "Riliggiuni e fidi",
+       "exif-iimcategory-sci": "Scienza e ticnoluggìa",
+       "exif-iimcategory-soi": "Chistioni suciali",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Guerra, cunflitti e disòrdini",
+       "exif-iimcategory-wea": "Tempu atmusfèricu",
+       "exif-urgency-normal": "Nurmali ($1)",
+       "exif-urgency-low": "Vascia ($1)",
+       "exif-urgency-high": "Àuta ($1)",
+       "exif-urgency-other": "Difinuta di l'utenti ($1)"
+}
diff --git a/languages/i18n/exif/sco.json b/languages/i18n/exif/sco.json
new file mode 100644 (file)
index 0000000..b2c1ead
--- /dev/null
@@ -0,0 +1,346 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Avicennasis",
+                       "John Reid"
+               ]
+       },
+       "exif-imagewidth": "Width",
+       "exif-imagelength": "Heicht",
+       "exif-bitspersample": "Bits per component",
+       "exif-compression": "Compression scheme",
+       "exif-photometricinterpretation": "Pixel composeetion",
+       "exif-orientation": "Orientation",
+       "exif-samplesperpixel": "Nummer o components",
+       "exif-planarconfiguration": "Data arrangement",
+       "exif-ycbcrsubsampling": "Subsamplin ratio o Y til C",
+       "exif-ycbcrpositioning": "Y n C poseetionin",
+       "exif-xresolution": "Horizontal resolution",
+       "exif-yresolution": "Verteecal resolution",
+       "exif-stripoffsets": "Eemage data location",
+       "exif-rowsperstrip": "Nummer o raws per streep",
+       "exif-stripbytecounts": "Bytes per compressed streep",
+       "exif-jpeginterchangeformat": "Affset til JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bytes o JPEG data",
+       "exif-whitepoint": "White poynt chromateeceetie",
+       "exif-primarychromaticities": "Chromateeceeties o primarities",
+       "exif-ycbcrcoefficients": "Colour space transformation matrix coeffeecients",
+       "exif-referenceblackwhite": "Pair o blaick n white referance values",
+       "exif-datetime": "File chynge date n time",
+       "exif-imagedescription": "Eemage title",
+       "exif-make": "Camera manufacturer",
+       "exif-model": "The Camera model",
+       "exif-software": "Saffware uised",
+       "exif-artist": "Writer",
+       "exif-copyright": "Copiericht hauder",
+       "exif-exifversion": "Exif version",
+       "exif-flashpixversion": "Supportit Flashpix version",
+       "exif-colorspace": "Colour space",
+       "exif-componentsconfiguration": "Meanin o ilka component",
+       "exif-compressedbitsperpixel": "Eemage compression mode",
+       "exif-pixelxdimension": "Eemage width",
+       "exif-pixelydimension": "Eemage heicht",
+       "exif-usercomment": "Uiser comments",
+       "exif-relatedsoundfile": "Relatit audío file",
+       "exif-datetimeoriginal": "Date n time o data generation",
+       "exif-datetimedigitized": "Date n time o deegeetisin",
+       "exif-subsectime": "DateTime subseiconts",
+       "exif-subsectimeoriginal": "DateTimeOreeginal subseiconts",
+       "exif-subsectimedigitized": "DateTimeDeegeetized subseiconts",
+       "exif-exposuretime": "Exposure time",
+       "exif-exposuretime-format": "$1 sec ($2)",
+       "exif-fnumber": "F Nummer",
+       "exif-exposureprogram": "Exposure Program",
+       "exif-spectralsensitivity": "Spectral sensiteevitie",
+       "exif-isospeedratings": "ISO speed ratin",
+       "exif-shutterspeedvalue": "APEX shutter speed",
+       "exif-aperturevalue": "APEX aperture",
+       "exif-brightnessvalue": "APEX brichtness",
+       "exif-exposurebiasvalue": "APEX exposure bias",
+       "exif-maxaperturevalue": "Mucklest launn aperture",
+       "exif-subjectdistance": "Subject distance",
+       "exif-meteringmode": "Meterin mode",
+       "exif-lightsource": "Licht soorce",
+       "exif-flash": "Flash",
+       "exif-focallength": "Lens focal langth",
+       "exif-subjectarea": "Subject airt",
+       "exif-flashenergy": "Flash energie",
+       "exif-focalplanexresolution": "Focal plane X resolution",
+       "exif-focalplaneyresolution": "Focal plane Y resolution",
+       "exif-focalplaneresolutionunit": "Focal plane resolution unit",
+       "exif-subjectlocation": "Subject location",
+       "exif-exposureindex": "Exposure index",
+       "exif-sensingmethod": "Sensin methyd",
+       "exif-filesource": "File soorce",
+       "exif-scenetype": "Scene type",
+       "exif-customrendered": "Custym eemage processin",
+       "exif-exposuremode": "Exposure mode",
+       "exif-whitebalance": "White balance",
+       "exif-digitalzoomratio": "Deegeetal zuim ratio",
+       "exif-focallengthin35mmfilm": "Focal length in 35 mm film",
+       "exif-scenecapturetype": "Scene captur type",
+       "exif-gaincontrol": "Scene control",
+       "exif-contrast": "Contrast",
+       "exif-saturation": "Saturation",
+       "exif-sharpness": "Shairpness",
+       "exif-devicesettingdescription": "Device settins descreeption",
+       "exif-subjectdistancerange": "Subject deestance range",
+       "exif-imageuniqueid": "Uníque eemage ID",
+       "exif-gpsversionid": "GPS tag version",
+       "exif-gpslatituderef": "Nort or sooth lateetude",
+       "exif-gpslatitude": "Lateetude",
+       "exif-gpslongituderef": "Aest or west langeetude",
+       "exif-gpslongitude": "Langeetude",
+       "exif-gpsaltituderef": "Altítude reference",
+       "exif-gpsaltitude": "Altítude",
+       "exif-gpstimestamp": "GPS time (atomeec clock)",
+       "exif-gpssatellites": "Satellites uised fer measurement",
+       "exif-gpsstatus": "Receever status",
+       "exif-gpsmeasuremode": "Measurement mode",
+       "exif-gpsdop": "Measurement preeceesion",
+       "exif-gpsspeedref": "Speed unit",
+       "exif-gpsspeed": "Speed o GPS receever",
+       "exif-gpstrackref": "Referance fer direction o muivement",
+       "exif-gpstrack": "Direction o muivement",
+       "exif-gpsimgdirectionref": "Referance fer direction o eemage",
+       "exif-gpsimgdirection": "Direction o eemage",
+       "exif-gpsmapdatum": "Geodeteec survey data uised",
+       "exif-gpsdestlatituderef": "Referance fer lateetude o destination",
+       "exif-gpsdestlatitude": "Lateetude destination",
+       "exif-gpsdestlongituderef": "Reference fer langeetude o destination",
+       "exif-gpsdestlongitude": "Langeetude o destination",
+       "exif-gpsdestbearingref": "Referance fer bearin o destination",
+       "exif-gpsdestbearing": "Bearin o destination",
+       "exif-gpsdestdistanceref": "Reference fer distance til destination",
+       "exif-gpsdestdistance": "Distance til destination",
+       "exif-gpsprocessingmethod": "Name o GPS processin methyd",
+       "exif-gpsareainformation": "Name o GPS airt",
+       "exif-gpsdatestamp": "GPS date",
+       "exif-gpsdifferential": "GPS differantial correction",
+       "exif-jpegfilecomment": "JPEG file comment",
+       "exif-keywords": "Keywairds",
+       "exif-worldregioncreated": "Region o the Yird that the picture wis taen in",
+       "exif-countrycreated": "Kintra that the picture wis taen in",
+       "exif-countrycodecreated": "Code fer the kintra that the picture wis taen in",
+       "exif-provinceorstatecreated": "Provínce or state that the picture wis taen in",
+       "exif-citycreated": "Ceetie that the picture wis taen in",
+       "exif-sublocationcreated": "Sublocation o the ceetie that the picture wis taen in",
+       "exif-worldregiondest": "Yird region shawn",
+       "exif-countrydest": "Kintra shawn",
+       "exif-countrycodedest": "Code fer kintra shawn",
+       "exif-provinceorstatedest": "Provínce or state shawn",
+       "exif-citydest": "Ceetie shawn",
+       "exif-sublocationdest": "Sublocation o ceetie shawn",
+       "exif-objectname": "Short title",
+       "exif-specialinstructions": "Byordiair insructions",
+       "exif-headline": "Heidline",
+       "exif-credit": "Creedit/Provider",
+       "exif-source": "Soorce",
+       "exif-editstatus": "Eediterial status o eemage",
+       "exif-urgency": "Urgencie",
+       "exif-fixtureidentifier": "Fixtur name",
+       "exif-locationdest": "Location depeected",
+       "exif-locationdestcode": "Code o location depeected",
+       "exif-objectcycle": "Time o day that media is intended fer",
+       "exif-contact": "Contact information",
+       "exif-writer": "Writer",
+       "exif-languagecode": "Leid",
+       "exif-iimversion": "IIM version",
+       "exif-iimcategory": "Categerie",
+       "exif-iimsupplementalcategory": "Supplemental categeries",
+       "exif-datetimeexpires": "Dinna uise efter",
+       "exif-datetimereleased": "Released oan",
+       "exif-originaltransmissionref": "Oreeginal transmeession location code",
+       "exif-identifier": "Identefier",
+       "exif-lens": "Lens uised",
+       "exif-serialnumber": "Serial nummer o camera",
+       "exif-cameraownername": "Ainer o camera",
+       "exif-label": "Label",
+       "exif-datetimemetadata": "Date metadata wis laist modeefied",
+       "exif-nickname": "Informal name o eemage",
+       "exif-rating": "Ratin (oot o 5)",
+       "exif-rightscertificate": "Richts management certeeficate",
+       "exif-copyrighted": "Copiericht status",
+       "exif-copyrightowner": "Copiericht ainer",
+       "exif-usageterms": "Uisage terms",
+       "exif-webstatement": "Online copiericht statement",
+       "exif-originaldocumentid": "Uníque ID o oreeginal document",
+       "exif-licenseurl": "URL fer copiericht license",
+       "exif-morepermissionsurl": "Alternative licensin information",
+       "exif-attributionurl": "Whan re-uisin this wairk, please link til",
+       "exif-preferredattributionname": "Whan re-uisin this wairk, please creedit",
+       "exif-pngfilecomment": "PNG file comment",
+       "exif-disclaimer": "Disclaimer",
+       "exif-contentwarning": "Content warnishment",
+       "exif-giffilecomment": "GIF file comment",
+       "exif-intellectualgenre": "Type o eetem",
+       "exif-subjectnewscode": "Subject code",
+       "exif-scenecode": "IPTC scene code",
+       "exif-event": "Event depected",
+       "exif-organisationinimage": "Organization depected",
+       "exif-personinimage": "Person depected",
+       "exif-originalimageheight": "Heicht o eemage afore it wis crappit",
+       "exif-originalimagewidth": "Width o eemage afore it wis crappit",
+       "exif-compression-1": "Oncompress't",
+       "exif-compression-2": "CCITT Groop 3 1-Dimensional Modified Huffman rin length encodin",
+       "exif-compression-3": "CCITT Groop 3 fax encodin",
+       "exif-compression-4": "CCITT Groop 4 fax encodin",
+       "exif-copyrighted-true": "Copierichted",
+       "exif-copyrighted-false": "Copiericht status na set",
+       "exif-unknowndate": "Onkent date",
+       "exif-orientation-1": "Ordinair",
+       "exif-orientation-2": "Flipt horizontallie",
+       "exif-orientation-3": "Rotatit 180°",
+       "exif-orientation-4": "Flipt verticlie",
+       "exif-orientation-5": "Rotatit 90° CCW n flip verticlie",
+       "exif-orientation-6": "Rotatit 90° CCW",
+       "exif-orientation-7": "Rotatit 90° CW n flipt verticlie",
+       "exif-orientation-8": "Rotatit 90° CW",
+       "exif-planarconfiguration-1": "chunkie format",
+       "exif-planarconfiguration-2": "planar format",
+       "exif-colorspace-65535": "Oncalibratit",
+       "exif-componentsconfiguration-0": "disna exeest",
+       "exif-exposureprogram-0": "Na defined",
+       "exif-exposureprogram-1": "Manual",
+       "exif-exposureprogram-2": "Ordinair program",
+       "exif-exposureprogram-3": "Apertur prioritie",
+       "exif-exposureprogram-4": "Shutter prioritie",
+       "exif-exposureprogram-5": "Cræftie program (biased thewaird the depth o field)",
+       "exif-exposureprogram-6": "Action program (biased thewaird fast shutter speed)",
+       "exif-exposureprogram-7": "Portrait mode (fer closeup photæs wi the backgroond oot o focus)",
+       "exif-exposureprogram-8": "Launnscape mode (fer launnscape photæs wi the backgroonn in focus)",
+       "exif-subjectdistance-value": "$1 meters",
+       "exif-meteringmode-0": "Onkent",
+       "exif-meteringmode-1": "Average",
+       "exif-meteringmode-2": "Center weichtit average",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "Multí-Spot",
+       "exif-meteringmode-5": "Pattern",
+       "exif-meteringmode-6": "Pairtial",
+       "exif-meteringmode-255": "Ither",
+       "exif-lightsource-0": "Onkent",
+       "exif-lightsource-1": "Daylicht",
+       "exif-lightsource-2": "Fluorescant",
+       "exif-lightsource-3": "Tungsten (incandescant licht)",
+       "exif-lightsource-4": "Flash",
+       "exif-lightsource-9": "Fine weather",
+       "exif-lightsource-10": "Cloodie weather",
+       "exif-lightsource-11": "Gloam",
+       "exif-lightsource-12": "Daylicht fluorescant (D 5700 – 7100K)",
+       "exif-lightsource-13": "Day white fluorescant (N 4600 – 5400K)",
+       "exif-lightsource-14": "Cuil white fluorescant (W 3900 – 4500K)",
+       "exif-lightsource-15": "White fluorescant (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Staunart licht A",
+       "exif-lightsource-18": "Staunart licht B",
+       "exif-lightsource-19": "Staunart licht C",
+       "exif-lightsource-24": "ISO studio tungsten",
+       "exif-lightsource-255": "Ither licht soorce",
+       "exif-flash-fired-0": "Flash didna fire",
+       "exif-flash-fired-1": "Flash fired",
+       "exif-flash-return-0": "naw flash return detection function",
+       "exif-flash-return-2": "flash return licht na detectit",
+       "exif-flash-return-3": "flash return licht detectit",
+       "exif-flash-mode-1": "compulserie flash firin",
+       "exif-flash-mode-2": "compulserie flash suppression",
+       "exif-flash-mode-3": "autæ mode",
+       "exif-flash-function-1": "Naw flash function",
+       "exif-flash-redeye-1": "reid-ee reduction mode",
+       "exif-focalplaneresolutionunit-2": "inches",
+       "exif-sensingmethod-1": "Ondefined",
+       "exif-sensingmethod-2": "Yin-chip colour airt senser",
+       "exif-sensingmethod-3": "Twa-chip colour airt senser",
+       "exif-sensingmethod-4": "Three-chip colour airt senser",
+       "exif-sensingmethod-5": "Colour sequential airt senser",
+       "exif-sensingmethod-7": "Trilinear senser",
+       "exif-sensingmethod-8": "Colour sequential linear senser",
+       "exif-filesource-3": "Deegeetal still camera",
+       "exif-scenetype-1": "Ae directlie photægraphed eemage",
+       "exif-customrendered-0": "Ordinair process",
+       "exif-customrendered-1": "Custym process",
+       "exif-exposuremode-0": "Autæ exposure",
+       "exif-exposuremode-1": "Manual exposure",
+       "exif-exposuremode-2": "Autæ bracket",
+       "exif-whitebalance-0": "Autæ white balance",
+       "exif-whitebalance-1": "Manual white balance",
+       "exif-scenecapturetype-0": "Staunart",
+       "exif-scenecapturetype-1": "Launscape",
+       "exif-scenecapturetype-2": "Portrait",
+       "exif-scenecapturetype-3": "Nicht scene",
+       "exif-gaincontrol-0": "Nane",
+       "exif-gaincontrol-1": "Law gain up",
+       "exif-gaincontrol-2": "Hei gain up",
+       "exif-gaincontrol-3": "Law gain doon",
+       "exif-gaincontrol-4": "Hei gain doon",
+       "exif-contrast-0": "Ordinair",
+       "exif-contrast-1": "Saft",
+       "exif-contrast-2": "Haurd",
+       "exif-saturation-0": "Ordinair",
+       "exif-saturation-1": "Law saturation",
+       "exif-saturation-2": "Hei saturation",
+       "exif-sharpness-0": "Ordinair",
+       "exif-sharpness-1": "Saff",
+       "exif-sharpness-2": "Haurd",
+       "exif-subjectdistancerange-0": "Onkent",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Claise luik at",
+       "exif-subjectdistancerange-3": "Distance sechtline",
+       "exif-gpslatitude-n": "Nort lateetude",
+       "exif-gpslatitude-s": "Sooth lateetude",
+       "exif-gpslongitude-e": "Aest langeetude",
+       "exif-gpslongitude-w": "West langeetude",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter|meters}} abuin sea level",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter|meters}} ablo sea level",
+       "exif-gpsstatus-a": "Measurement in progress",
+       "exif-gpsstatus-v": "Measurement interoperabeelitie",
+       "exif-gpsmeasuremode-2": "2-dimensional measurement",
+       "exif-gpsmeasuremode-3": "3-dimensional measurement",
+       "exif-gpsspeed-k": "Kilometers aen hoor",
+       "exif-gpsspeed-m": "Miles aen hoor",
+       "exif-gpsspeed-n": "Knots",
+       "exif-gpsdestdistance-k": "Kilometers",
+       "exif-gpsdestdistance-m": "Miles",
+       "exif-gpsdestdistance-n": "Nauteecal miles",
+       "exif-gpsdop-excellent": "Excellant ($1)",
+       "exif-gpsdop-good": "Guid ($1)",
+       "exif-gpsdop-moderate": "Moderate ($1)",
+       "exif-gpsdop-fair": "Fair ($1)",
+       "exif-gpsdop-poor": "Puir ($1)",
+       "exif-objectcycle-a": "Mornin yinlie",
+       "exif-objectcycle-p": "Evenin yinlie",
+       "exif-objectcycle-b": "Baith mornin n evenin",
+       "exif-gpsdirection-t": "True direction",
+       "exif-gpsdirection-m": "Magneteec direction",
+       "exif-ycbcrpositioning-1": "Centerit",
+       "exif-ycbcrpositioning-2": "Co-steidit",
+       "exif-dc-contributor": "Contreebuters:",
+       "exif-dc-coverage": "Spatial or tempral scope o media",
+       "exif-dc-date": "Date(s)",
+       "exif-dc-publisher": "Publisher",
+       "exif-dc-relation": "Relatit media",
+       "exif-dc-rights": "Richts",
+       "exif-dc-source": "Soorce media",
+       "exif-dc-type": "Type o media",
+       "exif-rating-rejected": "Rejectit",
+       "exif-isospeedratings-overflow": "Muckler than 65535",
+       "exif-iimcategory-ace": "Airts, cultur n entertainmant",
+       "exif-iimcategory-clj": "Crime n law",
+       "exif-iimcategory-dis": "Disasters n accidants",
+       "exif-iimcategory-fin": "Economie n business",
+       "exif-iimcategory-edu": "Education",
+       "exif-iimcategory-evn": "Environment",
+       "exif-iimcategory-hth": "The Heal",
+       "exif-iimcategory-hum": "Fawk interest",
+       "exif-iimcategory-lab": "Laber",
+       "exif-iimcategory-lif": "Lifestyle n leisure",
+       "exif-iimcategory-pol": "Poleeteecs",
+       "exif-iimcategory-rel": "Releegion n truent",
+       "exif-iimcategory-sci": "Sciance n technologie",
+       "exif-iimcategory-soi": "Social eessues",
+       "exif-iimcategory-spo": "Sports",
+       "exif-iimcategory-war": "War, conflict n onrest",
+       "exif-iimcategory-wea": "Weather",
+       "exif-urgency-normal": "Ordinair ($1)",
+       "exif-urgency-low": "Law ($1)",
+       "exif-urgency-high": "Hei ($1)",
+       "exif-urgency-other": "Uiser-defined prioritie ($1)"
+}
diff --git a/languages/i18n/exif/sd.json b/languages/i18n/exif/sd.json
new file mode 100644 (file)
index 0000000..bd46ad5
--- /dev/null
@@ -0,0 +1,101 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Aursani",
+                       "Mehtab ahmed",
+                       "Tweety"
+               ]
+       },
+       "exif-imagewidth": "ويڪر",
+       "exif-imagelength": "اوچائي",
+       "exif-bitspersample": "ٻٽڻيون في جُز",
+       "exif-orientation": "شروعات",
+       "exif-samplesperpixel": "جزن جو تعداد",
+       "exif-xresolution": "افقي تحلل",
+       "exif-yresolution": "عمودي تحلل",
+       "exif-stripoffsets": "عڪسي اعداد جي مڪانيت",
+       "exif-datetime": "فائيل ۾ تبديليءَ جي تاريخ ۽ وقت",
+       "exif-imagedescription": "عڪس عنوان",
+       "exif-make": "ڪيمرا ٺاهيندڙ",
+       "exif-model": "ڪيميرا ماڊل",
+       "exif-software": "مستعمل منطقگري",
+       "exif-artist": "ليکڪ",
+       "exif-copyright": "حق ۽ واسطا رکندڙ",
+       "exif-exifversion": "اِي ايڪس آئي ايف ورشن",
+       "exif-colorspace": "رنگ پولار",
+       "exif-pixelxdimension": "عڪس جي ويڪر",
+       "exif-pixelydimension": "عڪس جي اوچائي",
+       "exif-usercomment": "واپرائيندڙ جا تاثرات",
+       "exif-relatedsoundfile": "لاڳاپيل آوازي فائيل",
+       "exif-datetimeoriginal": "اعداد جي جڙڻ جي تاريخ ۽ وقت",
+       "exif-datetimedigitized": "عددڪاريءَ جي تاريخ ۽ وقت",
+       "exif-saturation": "رچاءُ",
+       "exif-gpslatitude": "ويڪرائي ڦاڪَ",
+       "exif-gpslongituderef": "اڀرندي يا الهندي ڊگھائي ڦاڪَ",
+       "exif-gpslongitude": "ڊگھائي ڦاڪَ",
+       "exif-gpsaltitude": "اوچائي",
+       "exif-gpssatellites": "پيمائش لاءِ استعمال ٿيل اپگرهہ",
+       "exif-gpstrack": "چرپر جو طرف",
+       "exif-keywords": "ڪليدي لفظ",
+       "exif-objectname": "مختصر عنوان",
+       "exif-headline": "سرخي",
+       "exif-source": "ذريعو",
+       "exif-contact": "رابطي جي معلومات",
+       "exif-writer": "لکندڙ",
+       "exif-languagecode": "ٻولي",
+       "exif-disclaimer": "غيرجوابدارينامو",
+       "exif-copyrighted-true": "حق ۽ واسطا محفوظيل",
+       "exif-unknowndate": "نامعلوم تاريخ",
+       "exif-orientation-1": "رواجي",
+       "exif-orientation-3": "180° موڙيل",
+       "exif-componentsconfiguration-0": "وجود نہ ٿو رکي",
+       "exif-exposureprogram-1": "دستينامو",
+       "exif-meteringmode-0": "اڻڄاتل",
+       "exif-meteringmode-1": "سراسري",
+       "exif-meteringmode-6": "جُزوي",
+       "exif-meteringmode-255": "ٻيو",
+       "exif-lightsource-0": "نامعلوم",
+       "exif-lightsource-255": "روشنيءَ جو ٻيو ذريعو",
+       "exif-focalplaneresolutionunit-2": "انچ",
+       "exif-scenecapturetype-0": "معياري",
+       "exif-gaincontrol-0": "ڪو بہ نہ",
+       "exif-contrast-0": "نارمل",
+       "exif-saturation-0": "نارمل",
+       "exif-saturation-1": "ننڍ رچاءُ",
+       "exif-saturation-2": "وَڏ رچاءُ",
+       "exif-sharpness-0": "رواجي",
+       "exif-subjectdistancerange-0": "نامعلوم",
+       "exif-subjectdistancerange-3": "ڏورانهين نگاهہ",
+       "exif-gpslatitude-s": "ڏاکڻي ويڪرائي ڦاڪَ",
+       "exif-gpslongitude-e": "اڀرندي ڊگھائي ڦاڪَ",
+       "exif-gpslongitude-w": "الهندي ڊگھائي ڦاڪَ",
+       "exif-gpsmeasuremode-2": "2-رخي ماپ",
+       "exif-gpsmeasuremode-3": "3-رخي ماپ",
+       "exif-gpsspeed-k": "ڪلوميٽر في ڪلاڪ",
+       "exif-gpsspeed-m": "ميل في ڪلاڪ",
+       "exif-gpsspeed-n": "ناٽس",
+       "exif-gpsdestdistance-k": "ڪلميٽر",
+       "exif-gpsdestdistance-m": "ميل",
+       "exif-gpsdestdistance-n": "سامونڊي ميل",
+       "exif-objectcycle-p": "رڳو شام",
+       "exif-dc-contributor": "ڀاڱيدار",
+       "exif-dc-date": "تاريخون",
+       "exif-dc-relation": "لاڳاپيل ذريعات",
+       "exif-dc-rights": "حق",
+       "exif-iimcategory-clj": "جرم ۽ قانون",
+       "exif-iimcategory-dis": "آفتون ۽ حادثا",
+       "exif-iimcategory-fin": "معاشيات ۽ واپار",
+       "exif-iimcategory-edu": "تعليم",
+       "exif-iimcategory-evn": "ماحوليات",
+       "exif-iimcategory-hth": "صحت",
+       "exif-iimcategory-hum": "بشري مفاد",
+       "exif-iimcategory-lab": "پورهيو",
+       "exif-iimcategory-lif": "ذوق ۽ شوق",
+       "exif-iimcategory-pol": "سياست",
+       "exif-iimcategory-rel": "مذهب ۽ عقيدو",
+       "exif-iimcategory-sci": "سائنس ۽ ٽيڪنيڀياس",
+       "exif-iimcategory-soi": "سماجي ڳالهوڙا",
+       "exif-iimcategory-spo": "رانديون",
+       "exif-iimcategory-war": "جنگ، تڪرار، ۽ بيچيني",
+       "exif-iimcategory-wea": "موسم"
+}
diff --git a/languages/i18n/exif/ses.json b/languages/i18n/exif/ses.json
new file mode 100644 (file)
index 0000000..67ae96d
--- /dev/null
@@ -0,0 +1,373 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Songhay"
+               ]
+       },
+       "exif-imagewidth": "Hayri",
+       "exif-imagelength": "Kayyan",
+       "exif-bitspersample": "Cebsey jere-ize ra",
+       "exif-compression": "Kankamandiyan dabari",
+       "exif-photometricinterpretation": "Biitonbi margayan",
+       "exif-orientation": "Honnandiyan",
+       "exif-samplesperpixel": "Jere-izey hinna",
+       "exif-planarconfiguration": "Bayhaya kanandiyan",
+       "exif-ycbcrsubsampling": "Y hala C ganda-birjiyan dimma",
+       "exif-ycbcrpositioning": "Y hala C kaydoo",
+       "exif-xresolution": "Kaniyan biisahã",
+       "exif-yresolution": "Zunbuyan biisahã",
+       "exif-stripoffsets": "Bii bayhaya gorodoo",
+       "exif-rowsperstrip": "Sorro hinna zuu foo ra",
+       "exif-stripbytecounts": "Cebsu hinna zuu kankamante ra",
+       "exif-jpeginterchangeformat": "Kay JPEG SOI ga",
+       "exif-jpeginterchangeformatlength": "JPEG bayhaya cebsu hinna",
+       "exif-whitepoint": "Tonbi kaaray noone alhaaley",
+       "exif-primarychromaticities": "Noone alhaaley atabiyawey se",
+       "exif-ycbcrcoefficients": "Noone faari barmayyan hinnaɲaa alkadarey",
+       "exif-referenceblackwhite": "Celle bibi nd'ikaaray fella hinnawey",
+       "exif-datetime": "Tuku barmayyan han nda waati",
+       "exif-imagedescription": "Bii maa",
+       "exif-make": "Biizaahaya teekaw",
+       "exif-model": "Biizaahaya tee-dumi",
+       "exif-software": "Goyjinay kaŋ goyandi",
+       "exif-artist": "Hantumkaw",
+       "exif-copyright": "Alhaku mayraykoyni",
+       "exif-exifversion": "Exif dumi",
+       "exif-flashpixversion": "Flashpix dumi kaŋ goo nda kanbari",
+       "exif-colorspace": "Noone farru",
+       "exif-componentsconfiguration": "Jere-ize foo kul maana",
+       "exif-compressedbitsperpixel": "Bii kankamandiyan yaayi",
+       "exif-pixelxdimension": "Bii hayri",
+       "exif-pixelydimension": "Bii kayyan",
+       "exif-usercomment": "Goykaw daarawey",
+       "exif-relatedsoundfile": "Jinde tuku hangante",
+       "exif-datetimeoriginal": "Han nda waati bayhaya teeyan se",
+       "exif-datetimedigitized": "Han nda waati hinna-bereyan se",
+       "exif-subsectime": "DateTime subseconds",
+       "exif-subsectimeoriginal": "DateTimeOriginal subseconds",
+       "exif-subsectimedigitized": "DateTimeDigitized subseconds",
+       "exif-exposuretime": "Biizaayan waati",
+       "exif-exposuretime-format": "seg $1 ($2)",
+       "exif-fnumber": "F Hinna",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Biizaayan porogaram",
+       "exif-spectralsensitivity": "Gaayay maateyan",
+       "exif-isospeedratings": "ISO cahãri zimamyan",
+       "exif-shutterspeedvalue": "APEX daabirji cahãri",
+       "exif-aperturevalue": "APEX daabirji",
+       "exif-brightnessvalue": "APEX gaay",
+       "exif-exposurebiasvalue": "APEX daabirji mee",
+       "exif-maxaperturevalue": "Labu daabirji beeri",
+       "exif-subjectdistance": "Teekaw hiyaari",
+       "exif-meteringmode": "Neešiyan yaayi",
+       "exif-lightsource": "Fawra aššil",
+       "exif-flash": "Denji",
+       "exif-focallength": "Diji gunayan sahã",
+       "exif-focallength-format": "mm $1",
+       "exif-subjectarea": "Teekaw ganda",
+       "exif-flashenergy": "Denji sahã",
+       "exif-focalplanexresolution": "Moodiiyan X biisahã",
+       "exif-focalplaneyresolution": "Moodiiyan Y biisahã",
+       "exif-focalplaneresolutionunit": "Moodiiyan biisahã ize",
+       "exif-subjectlocation": "Teekaw gorodoo \\",
+       "exif-exposureindex": "Biizaayan šilbay",
+       "exif-sensingmethod": "Maateyan dabari",
+       "exif-filesource": "Tuku aššil",
+       "exif-scenetype": "Ganda dumi",
+       "exif-customrendered": "Laada bii hanseyan",
+       "exif-exposuremode": "Biizaayan yaayi",
+       "exif-whitebalance": "Kaaray almizan",
+       "exif-digitalzoomratio": "Hinna bii azzaati",
+       "exif-focallengthin35mmfilm": "Moodii kukuyan mm 35 filim ra",
+       "exif-scenecapturetype": "Ganda zaayan dumi",
+       "exif-gaincontrol": "Ganda korošiyan",
+       "exif-contrast": "Bii zilayyan",
+       "exif-saturation": "Bii tiŋay",
+       "exif-sharpness": "Bii henanyan",
+       "exif-devicesettingdescription": "Jinay kayandiyaney šilbayyan",
+       "exif-subjectdistancerange": "Teekaw mooruyan alkadar",
+       "exif-imageuniqueid": "Bii folloku tammaasa",
+       "exif-gpsversionid": "GPS kanjari dumi",
+       "exif-gpslatituderef": "Hawsa wala gurma hayyanzuu",
+       "exif-gpslatitude": "Hayyanzuu",
+       "exif-gpslongituderef": "Dandi wala dangay kayyanzuu",
+       "exif-gpslongitude": "Kayyanzuu",
+       "exif-gpsaltituderef": "Beene fella",
+       "exif-gpsaltitude": "Beene",
+       "exif-gpstimestamp": "GPS waati (atom montor)",
+       "exif-gpssatellites": "Satelitey kaŋ nda neesširoo tee",
+       "exif-gpsstatus": "Duukaw assariya",
+       "exif-gpsmeasuremode": "Neeširi alhaali",
+       "exif-gpsdop": "Neeširi alhakiikataray",
+       "exif-gpsspeedref": "Cahãri ize",
+       "exif-gpsspeed": "GPS duukaw cahãri",
+       "exif-gpstrackref": "Fella nootiyan tenje se",
+       "exif-gpstrack": "Ɲootiyan tenje",
+       "exif-gpsimgdirectionref": "Fella bii tenje se",
+       "exif-gpsimgdirection": "Bii tenje",
+       "exif-gpsmapdatum": "Labu neešiyan bayhaya damante",
+       "exif-gpsdestlatituderef": "Fella toodoo hayyanzuu se",
+       "exif-gpsdestlatitude": "Toodoo hayyanzuu",
+       "exif-gpsdestlongituderef": "Fella toodoo kayyanzuu se",
+       "exif-gpsdestlongitude": "Toodoo kayyanzuu",
+       "exif-gpsdestbearingref": "Fella toodoo jineteeyan se \\",
+       "exif-gpsdestbearing": "Toodoo jineteeyan",
+       "exif-gpsdestdistanceref": "Fella toodoo mooray se",
+       "exif-gpsdestdistance": "Toodoo mooray",
+       "exif-gpsprocessingmethod": "Maa GPS kabuyan dabari se",
+       "exif-gpsareainformation": "Maa GPS ganda se",
+       "exif-gpsdatestamp": "GPS han",
+       "exif-gpsdifferential": "GPS zilayyan serrandi",
+       "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-jpegfilecomment": "JPEG tuku daara",
+       "exif-keywords": "Kufalkalimawey",
+       "exif-worldregioncreated": "Adduɲɲa gandaa kaŋ ra biyoo zaandi",
+       "exif-countrycreated": "Laamaa kaŋ ra biyoo zaandi",
+       "exif-countrycodecreated": "Laamaa kaŋ ra biyoo zaandi lanbaa \\",
+       "exif-provinceorstatecreated": "Laama žemnaroo wala hinoo kaŋ ra biyoo zaandi",
+       "exif-citycreated": "Gaaloo kaŋ ra biyoo zaandi",
+       "exif-sublocationcreated": "Gallu fargandoo kaŋ ra biyoo zaandi",
+       "exif-worldregiondest": "Adduɲɲa gandaa kaŋ ra biyoo zaandi",
+       "exif-countrydest": "Laamaa kaŋ cebandi",
+       "exif-countrycodedest": "Laamaa kaŋ cebandi lanbaa",
+       "exif-provinceorstatedest": "Laama žemnaroo wala hinoo kaŋ cebandi",
+       "exif-citydest": "Galloo kaŋ cebandi",
+       "exif-sublocationdest": "Gallu fragandoo kaŋ cebandi",
+       "exif-objectname": "Maa duura",
+       "exif-specialinstructions": "Cerecere fahamandiyan",
+       "exif-headline": "Maabon",
+       "exif-credit": "Alhaku/Nookaw",
+       "exif-source": "Aššil",
+       "exif-editstatus": "Bii wallafiyan assariya \\",
+       "exif-urgency": "Tilasu",
+       "exif-fixtureidentifier": "Hawari maa",
+       "exif-locationdest": "Gorodoo šilbante",
+       "exif-locationdestcode": "Lanba gorodoo šilbante se",
+       "exif-objectcycle": "Zaari waatoo kaŋ se hẽenandi jinaa miile",
+       "exif-contact": "Hantumyan alhabar",
+       "exif-writer": "Hantumkaw",
+       "exif-languagecode": "Šenni",
+       "exif-iimversion": "IIM dumi",
+       "exif-iimcategory": "Dumi",
+       "exif-iimsupplementalcategory": "Dumi tontonantey",
+       "exif-datetimeexpires": "A ma ši goyandi nd'a bisa",
+       "exif-datetimereleased": "Fattayan han",
+       "exif-originaltransmissionref": "Sanbayan jinaa gorodoo lanbaa",
+       "exif-identifier": "Tammaasakaw",
+       "exif-lens": "Zaayan moodiji",
+       "exif-serialnumber": "Biizaahayaa fannu lanbaa \\",
+       "exif-cameraownername": "Biizaahayaa koyoo",
+       "exif-label": "Šilbay",
+       "exif-datetimemetadata": "Han bayhaya beeri barmay cee koraa",
+       "exif-nickname": "Bii maa kanbari \\",
+       "exif-rating": "Alkadar damyan (5 ra)",
+       "exif-rightscertificate": "Alhaku juwalyan tabatandi tiira",
+       "exif-copyrighted": "Teekaw alhaku assariya",
+       "exif-copyrightowner": "Teekaw alhaku mayraykoyni",
+       "exif-usageterms": "Goymee waafakay",
+       "exif-webstatement": "Interneti-ra alhaku koy kalima",
+       "exif-originaldocumentid": "Aššil takaddaa tammaasa follokaa",
+       "exif-licenseurl": "URL alhaku duɲeyan tiira",
+       "exif-morepermissionsurl": "Barmay-se duɲeyan tiira alhabar",
+       "exif-attributionurl": "Nda war ga goy nda woo koyne, dobu ne",
+       "exif-preferredattributionname": "Nda war ga goy nda woo koyne, saabu har",
+       "exif-pngfilecomment": "PNG tuku daara",
+       "exif-disclaimer": "Šikka yaamar",
+       "exif-contentwarning": "Gundekuna yaamar",
+       "exif-giffilecomment": "GIF tuku gundekuna",
+       "exif-intellectualgenre": "Haya-ize duni",
+       "exif-subjectnewscode": "Teekaw lanba",
+       "exif-scenecode": "IPTC ganda lanba",
+       "exif-event": "Teera šilbante",
+       "exif-organisationinimage": "Konday šilbante",
+       "exif-personinimage": "Boro šilbante",
+       "exif-originalimageheight": "Biyoo kayyanoo nd'a mana kosu",
+       "exif-originalimagewidth": "Biyoo hayroo nd'a mana kosu",
+       "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "Mana kankamandi",
+       "exif-compression-2": "CCITT Kuray 3 1-Zimamari Huffman barmante diray kuuyan harfu-hawyan",
+       "exif-compression-3": "CCITT Kuray 3 faksu harfu-hawyan",
+       "exif-compression-4": "CCITT Kuray 4 faksu harfu-hawyan",
+       "exif-compression-5": "LZW",
+       "exif-compression-6": "JPEG (ižeena)",
+       "exif-compression-7": "JPEG",
+       "exif-compression-8": "Motti (Adobe)",
+       "exif-compression-32773": "PackBits (Macintosh RLE)",
+       "exif-compression-32946": "Motti (PKZIP)",
+       "exif-compression-34712": "JPEG2000",
+       "exif-copyrighted-true": "Teekaw alhaku saajante",
+       "exif-copyrighted-false": "Teekaw alkaku assariya mana kayandi",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-unknowndate": "Han ši bayante",
+       "exif-orientation-1": "Hankul",
+       "exif-orientation-2": "Bere ka kanandi",
+       "exif-orientation-3": "Kuubi 180°",
+       "exif-orientation-4": "Bere ka sukandi",
+       "exif-orientation-5": "Kuubi 90° CCW nda bere ka sukandi",
+       "exif-orientation-6": "Kuubi 90° CCW",
+       "exif-orientation-7": "Kuubi 90° CW nda bere ka kanandi",
+       "exif-orientation-8": "Bere 90° CW",
+       "exif-planarconfiguration-1": "gunguti takari",
+       "exif-planarconfiguration-2": "planar takari",
+       "exif-xyresolution-i": "dpi $1",
+       "exif-xyresolution-c": "dpc $1",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "Mana faara",
+       "exif-componentsconfiguration-0": "ši bara",
+       "exif-componentsconfiguration-1": "Y",
+       "exif-componentsconfiguration-2": "Cb",
+       "exif-componentsconfiguration-3": "Cr",
+       "exif-componentsconfiguration-4": "R",
+       "exif-componentsconfiguration-5": "G",
+       "exif-componentsconfiguration-6": "B",
+       "exif-exposureprogram-0": "Manti bayrante",
+       "exif-exposureprogram-1": "Boŋteeyan",
+       "exif-exposureprogram-2": "Hankul porogaram",
+       "exif-exposureprogram-3": "Feeriyan jindoo",
+       "exif-exposureprogram-4": "Daabuyan jindoo",
+       "exif-exposureprogram-5": "Kanbeteeri porogaram (ga faari guusuyan dam jine)",
+       "exif-exposureprogram-6": "Teeyan porogaram (daabuyan cahãnte dam jine)",
+       "exif-exposureprogram-7": "Kayyanbii alhaali (ndum bii manante zaayan se nda bandafaari kokoorante)",
+       "exif-exposureprogram-8": "Hayyanbii alhaali (ganda bii moorante zaayan se nda bandafaari manante)",
+       "exif-subjectdistance-value": "meetar $1",
+       "exif-meteringmode-0": "Šibayante",
+       "exif-meteringmode-1": "Sasawandi",
+       "exif-meteringmode-2": "Gam tiŋay sasawante",
+       "exif-meteringmode-3": "Doo",
+       "exif-meteringmode-4": "Doo-boobo",
+       "exif-meteringmode-5": "Noone",
+       "exif-meteringmode-6": "Jere",
+       "exif-meteringmode-255": "Tana",
+       "exif-lightsource-0": "Šibayante",
+       "exif-lightsource-1": "Zaarigaaya",
+       "exif-lightsource-2": "Fawrante",
+       "exif-lightsource-3": "Tungsten (nunetaa denji)",
+       "exif-lightsource-4": "Meli",
+       "exif-lightsource-9": "Waati henna",
+       "exif-lightsource-10": "Duula (bur)",
+       "exif-lightsource-11": "Bii",
+       "exif-lightsource-12": "Zaarigaaya fawrante ((D 5700 – 7100K)",
+       "exif-lightsource-13": "Zaari kaaray fawrante ((N 4600 – 5400K)",
+       "exif-lightsource-14": "Fawra kaaray yayna ((W 3900 – 4500K)",
+       "exif-lightsource-15": "Kaaray fawrante (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Gaaya tabatante A",
+       "exif-lightsource-18": "Gaaya tabatante B",
+       "exif-lightsource-19": "Gaaya tabatante C",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-22": "D75",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "ISO goytenda tungsten",
+       "exif-lightsource-255": "Gaaya aššil tana",
+       "exif-flash-fired-0": "Meloo mana dii",
+       "exif-flash-fired-1": "Meloo dii",
+       "exif-flash-return-0": "bila nda denji willante maateyan goy",
+       "exif-flash-return-2": "denji willante gaaya mana maatandi",
+       "exif-flash-return-3": "denji willante gaaya maatandi",
+       "exif-flash-mode-1": "gaabi meli diinandiyan",
+       "exif-flash-mode-2": "gaabi meli wiiyan",
+       "exif-flash-mode-3": "Boŋše alhaali",
+       "exif-flash-function-1": "Mei goy kul šii no",
+       "exif-flash-redeye-1": "moo-ciray kaayan alhaali",
+       "exif-focalplaneresolutionunit-2": "kabaaru",
+       "exif-sensingmethod-1": "Manti bayrante",
+       "exif-sensingmethod-2": "Canbu-foo noone ganda maateji",
+       "exif-sensingmethod-3": "Canbu-hinka noone ganda maateji",
+       "exif-sensingmethod-4": "Canbu-hinza noone ganda maateji",
+       "exif-sensingmethod-5": "Noone hangante ganda maateji",
+       "exif-sensingmethod-7": "Žeeri-hinza maateji",
+       "exif-sensingmethod-8": "Noone hangante žeeri maateji",
+       "exif-filesource-3": "Hinna biizaahay dejjante",
+       "exif-scenetype-1": "Bii kaŋ zaandi dogoo ra",
+       "exif-customrendered-0": "Hankul teeyan",
+       "exif-customrendered-1": "Kaŋ tee boro foo se",
+       "exif-exposuremode-0": "Bii zaa nga boŋše",
+       "exif-exposuremode-1": "Kanbe biizaayan",
+       "exif-exposuremode-2": "Boŋše holgu",
+       "exif-whitebalance-0": "Boŋše kaaray sawante",
+       "exif-whitebalance-1": "Kanbe kaaray sawante",
+       "exif-scenecapturetype-0": "Tabatante",
+       "exif-scenecapturetype-1": "Hayyanbii",
+       "exif-scenecapturetype-2": "Kayyanbii",
+       "exif-scenecapturetype-3": "Cijinhere bii alhaali",
+       "exif-gaincontrol-0": "Baffoo",
+       "exif-gaincontrol-1": "Duura buuna ka ziji",
+       "exif-gaincontrol-2": "Duura beeri ka ziji",
+       "exif-gaincontrol-3": "Duura buuna ka zunbu",
+       "exif-gaincontrol-4": "Duura beeri ka zunbu",
+       "exif-contrast-0": "Hankul",
+       "exif-contrast-1": "Baana",
+       "exif-contrast-2": "Šenda",
+       "exif-saturation-0": "Hankul",
+       "exif-saturation-1": "Bii sahã buuna",
+       "exif-saturation-2": "Bii sahã beeri",
+       "exif-sharpness-0": "Hankul",
+       "exif-sharpness-1": "Baana",
+       "exif-sharpness-2": "Šenda",
+       "exif-subjectdistancerange-0": "Šibayante",
+       "exif-subjectdistancerange-1": "Bebbeeri",
+       "exif-subjectdistancerange-2": "Moo daabu",
+       "exif-subjectdistancerange-3": "Diiyan moora",
+       "exif-gpslatitude-n": "Hawsa hayyanzuu",
+       "exif-gpslatitude-s": "Gurma hayyanzuu",
+       "exif-gpslongitude-e": "Dandi kayyanzuu",
+       "exif-gpslongitude-w": "Dangay kayyanzuu",
+       "exif-gpsaltitude-above-sealevel": "{{PLURAL:$1|meetar}} $1 teeko se beene",
+       "exif-gpsaltitude-below-sealevel": "{{PLURAL:$1|meetar}} $1 teeko se ganda",
+       "exif-gpsstatus-a": "Neešiyan goo ma tee",
+       "exif-gpsstatus-v": "Neešiyan cerekubayyan",
+       "exif-gpsmeasuremode-2": "Azzaati-2 neešiyan",
+       "exif-gpsmeasuremode-3": "Azzaati-3 neešiyan",
+       "exif-gpsspeed-k": "Kilomeetarey guuru ra",
+       "exif-gpsspeed-m": "Miley guuru ra",
+       "exif-gpsspeed-n": "Guley",
+       "exif-gpsdestdistance-k": "Kilomeetarey",
+       "exif-gpsdestdistance-m": "Miley",
+       "exif-gpsdestdistance-n": "Teeko gande miley",
+       "exif-gpsdop-excellent": "Bešere ($1)",
+       "exif-gpsdop-good": "Boryo ($1)",
+       "exif-gpsdop-moderate": "Sawante ($1)",
+       "exif-gpsdop-fair": "Cimante ($1)",
+       "exif-gpsdop-poor": "Talka ($1)",
+       "exif-objectcycle-a": "Subbaahi hinne",
+       "exif-objectcycle-p": "Almaari hinne",
+       "exif-objectcycle-b": "Subbaahi nd'almaari kaa",
+       "exif-gpsdirection-t": "Tenjeyan cimi",
+       "exif-gpsdirection-m": "Alhindi tenjeyan",
+       "exif-ycbcrpositioning-1": "Gamhaya",
+       "exif-ycbcrpositioning-2": "Cere-hinka",
+       "exif-dc-contributor": "Kanbuzaakey",
+       "exif-dc-coverage": "Ganda nda waati alkadar hẽenandihayey se",
+       "exif-dc-date": "Han(ey)",
+       "exif-dc-publisher": "Wallafikaw",
+       "exif-dc-relation": "Hẽenandihaya kondante",
+       "exif-dc-rights": "Alhakey",
+       "exif-dc-source": "Aššil hẽenandihaya",
+       "exif-dc-type": "Hẽenandihaya dumi",
+       "exif-rating-rejected": "Jindawante",
+       "exif-isospeedratings-overflow": "Ka bisa 65535",
+       "exif-maxaperturevalue-value": "APEX $1 (f/$2)",
+       "exif-iimcategory-ace": "Goy suubante, alaada nda hooray",
+       "exif-iimcategory-clj": "Bone nd' alhukum",
+       "exif-iimcategory-dis": "Albalaawu nd' alwaadu",
+       "exif-iimcategory-fin": "Ganda duura nda maamalayan",
+       "exif-iimcategory-edu": "Caw",
+       "exif-iimcategory-evn": "Windila",
+       "exif-iimcategory-hth": "Gaahambaani",
+       "exif-iimcategory-hum": "Addamayze nafaw",
+       "exif-iimcategory-lab": "Goyyan",
+       "exif-iimcategory-lif": "Hunayan fondo nda hunanzamay teera",
+       "exif-iimcategory-pol": "Politiki",
+       "exif-iimcategory-rel": "Addiina nda ganari",
+       "exif-iimcategory-sci": "Bayray nda dabari",
+       "exif-iimcategory-soi": "Jama misey",
+       "exif-iimcategory-spo": "Gaahamfeeriyan",
+       "exif-iimcategory-war": "Wangu, alfitina nda kosuri",
+       "exif-iimcategory-wea": "Waati",
+       "exif-urgency-normal": "Hankul ($1)",
+       "exif-urgency-low": "Ganda ($1)",
+       "exif-urgency-high": "Beene ($1)",
+       "exif-urgency-other": "Goykaw-bayrante jine-ka-tee haya ($1)"
+}
diff --git a/languages/i18n/exif/sgs.json b/languages/i18n/exif/sgs.json
new file mode 100644 (file)
index 0000000..5921747
--- /dev/null
@@ -0,0 +1,75 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Hugo.arg"
+               ]
+       },
+       "exif-imagewidth": "Platoms",
+       "exif-imagelength": "Aukštoms",
+       "exif-orientation": "Regėnė pasokėms",
+       "exif-xresolution": "Golos dėdloms",
+       "exif-yresolution": "Statma rezoliocėjė",
+       "exif-datetime": "Abruozdielė parkeitėma čiesos",
+       "exif-imagedescription": "Abruozdielė pavadėnėms",
+       "exif-make": "Puortaparata dėrbies",
+       "exif-model": "Puortaparata muodelis",
+       "exif-software": "Nauduota pruogramėnė īronga",
+       "exif-artist": "Autuorios",
+       "exif-exifversion": "Exif atmains",
+       "exif-colorspace": "Spalvū lauks",
+       "exif-compressedbitsperpixel": "Abruozdielė sospaudėma rėžėms",
+       "exif-pixelxdimension": "Abruozdielė platoms",
+       "exif-pixelydimension": "Abruozdielė augoms",
+       "exif-usercomment": "Pāiškėnėmā",
+       "exif-relatedsoundfile": "Prėgolons garsos",
+       "exif-datetimeoriginal": "Žėnės paderbėma čiesos",
+       "exif-datetimedigitized": "Čiesa soskaitmenėnėms",
+       "exif-exposuretime": "Ėšlaikīma čiesos",
+       "exif-exposuretime-format": "$1 s. ($2)",
+       "exif-fnumber": "F skaitlius",
+       "exif-brightnessvalue": "Švėisoms",
+       "exif-lightsource": "Švėisuos šaltėnis",
+       "exif-flash": "Blėcos",
+       "exif-focallength": "Žėdinė nutuolėms",
+       "exif-flashenergy": "Blėca energėjė",
+       "exif-contrast": "Kuontrasts",
+       "exif-languagecode": "Kalba",
+       "exif-iimversion": "IIM versėjė",
+       "exif-iimcategory": "Kateguorėjė",
+       "exif-orientation-1": "Paprasts",
+       "exif-xyresolution-i": "$1 puškē cuolī",
+       "exif-xyresolution-c": "$1 puškē centėmetrė",
+       "exif-componentsconfiguration-0": "nēsa",
+       "exif-exposureprogram-0": "Nenūruodīta",
+       "exif-lightsource-4": "Blėcos",
+       "exif-lightsource-9": "Poikos uors",
+       "exif-lightsource-10": "Apniukė",
+       "exif-lightsource-11": "Šešielis",
+       "exif-lightsource-255": "Kėts švėisuos šaltėnis",
+       "exif-flash-fired-0": "Blėcos nesovēkė",
+       "exif-flash-fired-1": "Blėcos sovēkė",
+       "exif-scenecapturetype-0": "Paprasts",
+       "exif-scenecapturetype-1": "Kraštuovaizdis",
+       "exif-scenecapturetype-2": "Puortrets",
+       "exif-scenecapturetype-3": "Naktėnė puortegrapėjė",
+       "exif-gaincontrol-0": "Nie",
+       "exif-contrast-0": "Paprasts",
+       "exif-contrast-1": "Mažos",
+       "exif-contrast-2": "Dėdlis",
+       "exif-iimcategory-ace": "Mens, koltūra ė pramuogas",
+       "exif-iimcategory-clj": "Nosėkaltėms ė teisė",
+       "exif-iimcategory-dis": "Biedas",
+       "exif-iimcategory-fin": "Ūkis, verslos",
+       "exif-iimcategory-edu": "Muokslos",
+       "exif-iimcategory-evn": "Gomta",
+       "exif-iimcategory-hth": "Svēkata",
+       "exif-iimcategory-lab": "Darbs",
+       "exif-iimcategory-lif": "Puoėlsis",
+       "exif-iimcategory-pol": "Puolėtėka",
+       "exif-iimcategory-rel": "Viera",
+       "exif-iimcategory-sci": "Muokslā",
+       "exif-iimcategory-soi": "Vėišė̄jė dalīkā",
+       "exif-iimcategory-spo": "Spuorts",
+       "exif-iimcategory-war": "Karės, kuovės",
+       "exif-iimcategory-wea": "Uors"
+}
diff --git a/languages/i18n/exif/sh.json b/languages/i18n/exif/sh.json
new file mode 100644 (file)
index 0000000..1943da5
--- /dev/null
@@ -0,0 +1,353 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Conquistador",
+                       "Kolega2357",
+                       "OC Ripper"
+               ]
+       },
+       "exif-imagewidth": "Širina",
+       "exif-imagelength": "Visina",
+       "exif-bitspersample": "Dubina boje",
+       "exif-compression": "Šema kompresije",
+       "exif-photometricinterpretation": "Sastav piksela",
+       "exif-orientation": "Orijentacija",
+       "exif-samplesperpixel": "Broj komponenti",
+       "exif-planarconfiguration": "Aranžiranje podataka",
+       "exif-ycbcrsubsampling": "Odnos subsampling od Y do C",
+       "exif-ycbcrpositioning": "Pozicioniranje Y i C",
+       "exif-xresolution": "Horizontalna rezolucija",
+       "exif-yresolution": "Vertikalna rezolucija",
+       "exif-stripoffsets": "Lokacija podataka slike",
+       "exif-rowsperstrip": "Broj redaka po liniji",
+       "exif-stripbytecounts": "Bita po kompresovanoj liniji",
+       "exif-jpeginterchangeformat": "Presijek do JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bita JPEG podataka",
+       "exif-whitepoint": "Hromiranost bijele tačke",
+       "exif-primarychromaticities": "Hromaticitet primarnih boja",
+       "exif-ycbcrcoefficients": "Koeficijenti transformacije matrice prostora boja",
+       "exif-referenceblackwhite": "Par crnih i bijelih referentnih vrijednosti",
+       "exif-datetime": "Vrijeme i datum promjene datoteke",
+       "exif-imagedescription": "Naslov slike",
+       "exif-make": "Proizvođač kamere",
+       "exif-model": "Model kamere",
+       "exif-software": "Korišteni softver",
+       "exif-artist": "Autor",
+       "exif-copyright": "Vlasnik autorskih prava",
+       "exif-exifversion": "Exif verzija",
+       "exif-flashpixversion": "Podržana verzija Flashpix",
+       "exif-colorspace": "Prostor boje",
+       "exif-componentsconfiguration": "Značenje pojedine komponente",
+       "exif-compressedbitsperpixel": "Dubina boje poslije sažimanja",
+       "exif-pixelxdimension": "Širina slike",
+       "exif-pixelydimension": "Visina slike",
+       "exif-usercomment": "Korisnički komentari",
+       "exif-relatedsoundfile": "Povezana zvučna datoteka",
+       "exif-datetimeoriginal": "Datum i vrijeme generisanja podataka",
+       "exif-datetimedigitized": "Datum i vrijeme digitalizacije",
+       "exif-subsectime": "Datum i vrijeme u dijelovima sekunde",
+       "exif-subsectimeoriginal": "Originalno vrijeme i datum u dijelovima sekunde",
+       "exif-subsectimedigitized": "Datum i vrijeme digitalizacije u dijelovima sekunde",
+       "exif-exposuretime": "Vrijeme izlaganja (ekspozicije)",
+       "exif-exposuretime-format": "$1 sekundi ($2)",
+       "exif-fnumber": "F broj",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Program ekspozicije",
+       "exif-spectralsensitivity": "Spektralna osjetljivost",
+       "exif-isospeedratings": "Rejting ISO brzine",
+       "exif-shutterspeedvalue": "Brzina APEX okidača",
+       "exif-aperturevalue": "Otvor blende",
+       "exif-brightnessvalue": "Osvjetljenost",
+       "exif-exposurebiasvalue": "Kompozicija ekspozicije",
+       "exif-maxaperturevalue": "Najveći broj otvora blende",
+       "exif-subjectdistance": "Udaljenost objekta",
+       "exif-meteringmode": "Način mjerenja",
+       "exif-lightsource": "Izvor svjetlosti",
+       "exif-flash": "Bljesak",
+       "exif-focallength": "Fokusna dužina objektiva",
+       "exif-focallength-format": "$1 mm",
+       "exif-subjectarea": "Površina objekta",
+       "exif-flashenergy": "Energija bljeska",
+       "exif-focalplanexresolution": "Rezolucija fokusne ravni X",
+       "exif-focalplaneyresolution": "Rezolucija fokusne ravni Y",
+       "exif-focalplaneresolutionunit": "Jedinica rezolucije fokusne ravni",
+       "exif-subjectlocation": "Lokacija objekta",
+       "exif-exposureindex": "Indeks ekspozicije",
+       "exif-sensingmethod": "Vrsta senzora",
+       "exif-filesource": "Izvor datoteke",
+       "exif-scenetype": "Vrsta scene",
+       "exif-customrendered": "Podešeno uređivanje slike",
+       "exif-exposuremode": "Vrsta ekspozicije",
+       "exif-whitebalance": "Bijeli balans",
+       "exif-digitalzoomratio": "Odnos digitalnog zuma",
+       "exif-focallengthin35mmfilm": "Fokusna dužina kod 35 mm filma",
+       "exif-scenecapturetype": "Vrsta scene snimanja",
+       "exif-gaincontrol": "Kontrola scene",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Saturacija",
+       "exif-sharpness": "Izoštrenost",
+       "exif-devicesettingdescription": "Opis postavki uređaja",
+       "exif-subjectdistancerange": "Udaljenost od objekta",
+       "exif-imageuniqueid": "Jedinstveni ID slike",
+       "exif-gpsversionid": "Verzija GPS bloka informacija",
+       "exif-gpslatituderef": "Sjeverna ili južna širina",
+       "exif-gpslatitude": "Širina",
+       "exif-gpslongituderef": "Istočna ili zapadna dužina",
+       "exif-gpslongitude": "Dužina",
+       "exif-gpsaltituderef": "Referenca visine",
+       "exif-gpsaltitude": "Nadmorska visina",
+       "exif-gpstimestamp": "GPS vrijeme (atomski sat)",
+       "exif-gpssatellites": "Sateliti korišteni pri mjerenju",
+       "exif-gpsstatus": "Status prijemnika",
+       "exif-gpsmeasuremode": "Način mjerenja",
+       "exif-gpsdop": "Preciznost mjerenja",
+       "exif-gpsspeedref": "Jedinica brzine",
+       "exif-gpsspeed": "Brzina GPS prijemnika",
+       "exif-gpstrackref": "Referenca za smjer kretanja",
+       "exif-gpstrack": "Smjer kretanja",
+       "exif-gpsimgdirectionref": "Referenca za smjer slike",
+       "exif-gpsimgdirection": "Smjer slike",
+       "exif-gpsmapdatum": "Upotrijebljeni podaci geodetskih mjerenja",
+       "exif-gpsdestlatituderef": "Referenca za geografsku širinu odredišta",
+       "exif-gpsdestlatitude": "Širina odredišta",
+       "exif-gpsdestlongituderef": "Referenca za geografsku dužinu odredišta",
+       "exif-gpsdestlongitude": "Dužina odredišta",
+       "exif-gpsdestbearingref": "Indeks azimuta odredišta",
+       "exif-gpsdestbearing": "Azimut odredišta",
+       "exif-gpsdestdistanceref": "Referenca za udaljenost od odredišta",
+       "exif-gpsdestdistance": "Udaljenost do odredišta",
+       "exif-gpsprocessingmethod": "Naziv GPS metoda procesiranja",
+       "exif-gpsareainformation": "Naziv GPS područja",
+       "exif-gpsdatestamp": "GPS datum",
+       "exif-gpsdifferential": "GPS diferencijalna korekcija",
+       "exif-jpegfilecomment": "JPEG komentar datoteke",
+       "exif-keywords": "Ključne riječi",
+       "exif-worldregioncreated": "Regija svijeta gdje je slika načinjena",
+       "exif-countrycreated": "Zemlja gdje je slika načinjena",
+       "exif-countrycodecreated": "Kod države gdje je slika načinjena",
+       "exif-provinceorstatecreated": "Provincija ili država gdje je slika načinjena",
+       "exif-citycreated": "Grad gdje je slika načinjena",
+       "exif-sublocationcreated": "Podlokacija grada gdje je slika načinjena",
+       "exif-worldregiondest": "Prikazana regija svijeta",
+       "exif-countrydest": "Prikazana zemlja",
+       "exif-countrycodedest": "Kod prikazane države",
+       "exif-provinceorstatedest": "Prikazana provincija ili država",
+       "exif-citydest": "Prikazani grad",
+       "exif-sublocationdest": "Podlokacija grada koja je prikazana",
+       "exif-objectname": "Kratki naslov",
+       "exif-specialinstructions": "Posebne upute",
+       "exif-headline": "Naslov",
+       "exif-credit": "Pripisivanje/Pružalac usluga",
+       "exif-source": "Izvor",
+       "exif-editstatus": "Urednički status slike",
+       "exif-urgency": "Hitnost",
+       "exif-fixtureidentifier": "Naziv rubrike",
+       "exif-locationdest": "Prikazana lokacija",
+       "exif-locationdestcode": "Kod prikazane lokacije",
+       "exif-objectcycle": "Vrijeme dana za koga je namijenjen medij",
+       "exif-contact": "Kontaktna informacija",
+       "exif-writer": "Pisac",
+       "exif-languagecode": "Jezik",
+       "exif-iimversion": "IIM verzija",
+       "exif-iimcategory": "Kategorija",
+       "exif-iimsupplementalcategory": "Dodatne kategorije",
+       "exif-datetimeexpires": "Ne koristite iza",
+       "exif-datetimereleased": "Uzdano na",
+       "exif-originaltransmissionref": "Originalni transmisijski lokacijski kod",
+       "exif-identifier": "Oznaka",
+       "exif-lens": "Korišteni objektiv",
+       "exif-serialnumber": "Serijski broj kamere",
+       "exif-cameraownername": "Vlasnik kamere",
+       "exif-label": "Oznaka",
+       "exif-datetimemetadata": "Datum kada su metapodaci posljednji put modificirani",
+       "exif-nickname": "Informalni naslov slike",
+       "exif-rating": "Rejting (1 do 5)",
+       "exif-rightscertificate": "Certifikat upravljanja pravima",
+       "exif-copyrighted": "Status autorskih prava:",
+       "exif-copyrightowner": "Vlasnik autorskih prava",
+       "exif-usageterms": "Pravila korištenja",
+       "exif-webstatement": "Online izjava o autorskim pravima",
+       "exif-originaldocumentid": "Jedinstveni ID originalnog dokumenta",
+       "exif-licenseurl": "URL za licencu autorskih prava",
+       "exif-morepermissionsurl": "Informacija o alternativnoj licenci",
+       "exif-attributionurl": "Kada ponovno koristite ovaj rad, molimo povežite ga na",
+       "exif-preferredattributionname": "Kada ponovno koristite ovaj rad, molimo pripišite ga na",
+       "exif-pngfilecomment": "PNG komentar datoteke",
+       "exif-disclaimer": "Odricanje od odgovornosti",
+       "exif-contentwarning": "Upozorenje o sadržaju",
+       "exif-giffilecomment": "GIF komentar datoteke",
+       "exif-intellectualgenre": "Tip predmeta",
+       "exif-subjectnewscode": "Kod predmeta",
+       "exif-scenecode": "IPTC kod scene",
+       "exif-event": "Prikazani događaj",
+       "exif-organisationinimage": "Prikazana organizacija",
+       "exif-personinimage": "Prikazana osoba",
+       "exif-originalimageheight": "Visina slike prije nego što je odrezana",
+       "exif-originalimagewidth": "Širina slike prije nego što je odrezana",
+       "exif-compression-1": "Nesažeto",
+       "exif-compression-2": "CCITT Grupa 3 1 — Dimenzionalno izmijenjeo Huffmanovo šifriranje po dužini",
+       "exif-compression-3": "CCITT Group 3 faks kodiranje",
+       "exif-compression-4": "CCITT Group 4 faks kodiranje",
+       "exif-copyrighted-true": "Pod autorskim pravima",
+       "exif-copyrighted-false": "Javno vlasništvo",
+       "exif-unknowndate": "Nepoznat datum",
+       "exif-orientation-1": "Normalna",
+       "exif-orientation-2": "Horizontalno preokrenuto",
+       "exif-orientation-3": "Rotirano 180°",
+       "exif-orientation-4": "Vertikalno preokrenuto",
+       "exif-orientation-5": "Rotirano 90° suprotno kazaljke i vertikalno obrnuto",
+       "exif-orientation-6": "Zaokrenuto 90° suprotno od smjera kazaljke",
+       "exif-orientation-7": "Rotirano 90° u smjeru kazaljke i preokrenuto vertikalno",
+       "exif-orientation-8": "Rotirano 90° u smjeru kazaljke",
+       "exif-planarconfiguration-1": "grubi format",
+       "exif-planarconfiguration-2": "format u ravni",
+       "exif-xyresolution-i": "$1 dpi",
+       "exif-xyresolution-c": "$1 dpc",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "Nekalibrirana",
+       "exif-componentsconfiguration-0": "ne postoji",
+       "exif-exposureprogram-0": "Nije određen",
+       "exif-exposureprogram-1": "Ručno",
+       "exif-exposureprogram-2": "Normalni program",
+       "exif-exposureprogram-3": "Prioritet otvora blende",
+       "exif-exposureprogram-4": "Prioritet okidača",
+       "exif-exposureprogram-5": "Kreativni program (usmjeren ka dubini polja)",
+       "exif-exposureprogram-6": "Program akcije (usmjereno na veću brzinu okidača)",
+       "exif-exposureprogram-7": "Način portreta (za fotografije iz blizine sa pozadinom van fokusa)",
+       "exif-exposureprogram-8": "Način pejzaža (za pejzažne fotografije sa pozadinom u fokusu)",
+       "exif-subjectdistance-value": "$1 metara",
+       "exif-meteringmode-0": "Nepoznat",
+       "exif-meteringmode-1": "Prosječan",
+       "exif-meteringmode-2": "Srednji prosjek težišta",
+       "exif-meteringmode-3": "Tačka",
+       "exif-meteringmode-4": "Višestruka tačka",
+       "exif-meteringmode-5": "Šema",
+       "exif-meteringmode-6": "Djelimični",
+       "exif-meteringmode-255": "Ostalo",
+       "exif-lightsource-0": "Nepoznat",
+       "exif-lightsource-1": "Dnevno svjetlo",
+       "exif-lightsource-2": "Fluorescentni",
+       "exif-lightsource-3": "Volfram (svjetlo)",
+       "exif-lightsource-4": "Bljesak (blic)",
+       "exif-lightsource-9": "Lijepo vrijeme",
+       "exif-lightsource-10": "Oblačno vrijeme",
+       "exif-lightsource-11": "Osjenčeno",
+       "exif-lightsource-12": "Dnevna fluorescencija (D 5700 – 7100K)",
+       "exif-lightsource-13": "Dnevna bijela fluorescencija (N 4600 – 5400K)",
+       "exif-lightsource-14": "Hladno bijela fluorescencija (W 3900 – 4500K)",
+       "exif-lightsource-15": "Bijela fluorescencija (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standardno svjetlo A",
+       "exif-lightsource-18": "Standardno svjetlo B",
+       "exif-lightsource-19": "Standardno svjetlo C",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-24": "ISO studio volfram",
+       "exif-lightsource-255": "Ostali izvori svjetlosti",
+       "exif-flash-fired-0": "Bljesak (blic) nije radio",
+       "exif-flash-fired-1": "Blic radio",
+       "exif-flash-return-0": "bljesak (blic) nije poslao nikakav odziv",
+       "exif-flash-return-2": "nije otkriven bljesak (blic)",
+       "exif-flash-return-3": "otkriven bljesak",
+       "exif-flash-mode-1": "obavezan rad bljeska",
+       "exif-flash-mode-2": "obavezno izbjegavanje bljeska",
+       "exif-flash-mode-3": "automatski način",
+       "exif-flash-function-1": "Bez funkcije bljeska",
+       "exif-flash-redeye-1": "način redukcije \"crvenila očiju\"",
+       "exif-focalplaneresolutionunit-2": "inči",
+       "exif-sensingmethod-1": "Nedefinisan",
+       "exif-sensingmethod-2": "Senzor boje površine sa jednim čipom",
+       "exif-sensingmethod-3": "Senzor boje površine sa dva čipa",
+       "exif-sensingmethod-4": "Senzor boje površine sa tri čipa",
+       "exif-sensingmethod-5": "Senzor boje površine sa tri čipa",
+       "exif-sensingmethod-7": "Trilinearni senzor",
+       "exif-sensingmethod-8": "Sekvencijalni senzor boje linija",
+       "exif-filesource-3": "Digitalna fotokamera",
+       "exif-scenetype-1": "Direktno fotografisana slika",
+       "exif-customrendered-0": "Normalni proces",
+       "exif-customrendered-1": "Podešeni proces",
+       "exif-exposuremode-0": "Automatska ekpozicija",
+       "exif-exposuremode-1": "Ručna ekspozicija",
+       "exif-exposuremode-2": "Automatski određen raspon",
+       "exif-whitebalance-0": "Automatski bijeli balans",
+       "exif-whitebalance-1": "Ručno podešeni bijeli balans",
+       "exif-scenecapturetype-0": "Standardna",
+       "exif-scenecapturetype-1": "Pejzaž",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Noćna scena",
+       "exif-gaincontrol-0": "Ništa",
+       "exif-gaincontrol-1": "Malo povećanje",
+       "exif-gaincontrol-2": "Veće povećanje",
+       "exif-gaincontrol-3": "Manje smanjenje",
+       "exif-gaincontrol-4": "Veće smanjenje",
+       "exif-contrast-0": "Normalni",
+       "exif-contrast-1": "Meki",
+       "exif-contrast-2": "Snažni",
+       "exif-saturation-0": "Normalna",
+       "exif-saturation-1": "Niska zasićenost",
+       "exif-saturation-2": "Jako zasićenje",
+       "exif-sharpness-0": "Normalna",
+       "exif-sharpness-1": "Blago",
+       "exif-sharpness-2": "Oštro",
+       "exif-subjectdistancerange-0": "Nepoznat",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Pogled izbliza",
+       "exif-subjectdistancerange-3": "Pogled iz daljine",
+       "exif-gpslatitude-n": "Sjeverna širina",
+       "exif-gpslatitude-s": "Južna širina",
+       "exif-gpslongitude-e": "Istočna dužina",
+       "exif-gpslongitude-w": "Zapadna dužina",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metar|metara}} nadmorske visine",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metar|metara}} ispod morske razine",
+       "exif-gpsstatus-a": "Mjerenje u toku",
+       "exif-gpsstatus-v": "Mjerenje van funkcije",
+       "exif-gpsmeasuremode-2": "dvodimenzionalno mjerenje",
+       "exif-gpsmeasuremode-3": "trodimenzionalno mjerenje",
+       "exif-gpsspeed-k": "Kilometara na sat",
+       "exif-gpsspeed-m": "Milja na sat",
+       "exif-gpsspeed-n": "Čvorova",
+       "exif-gpsdestdistance-k": "Kilometara",
+       "exif-gpsdestdistance-m": "Milja",
+       "exif-gpsdestdistance-n": "Nautičkih milja",
+       "exif-gpsdop-excellent": "Odlično ($1)",
+       "exif-gpsdop-good": "Dobro ($1)",
+       "exif-gpsdop-moderate": "Osrednje ($1)",
+       "exif-gpsdop-fair": "Pristojno ($1)",
+       "exif-gpsdop-poor": "Loše ($1)",
+       "exif-objectcycle-a": "Samo ujutro",
+       "exif-objectcycle-p": "Samo navečer",
+       "exif-objectcycle-b": "I ujutro i navečer",
+       "exif-gpsdirection-t": "Stvarni pravac",
+       "exif-gpsdirection-m": "Magnetski smjer",
+       "exif-ycbcrpositioning-1": "Centrirano",
+       "exif-ycbcrpositioning-2": "Uporedo",
+       "exif-dc-contributor": "Kontributori",
+       "exif-dc-coverage": "Prostorni i vremenski opseg medija",
+       "exif-dc-date": "Datum(i)",
+       "exif-dc-publisher": "Izdavač",
+       "exif-dc-relation": "Srodni mediji",
+       "exif-dc-rights": "Prava",
+       "exif-dc-source": "Izvor medija",
+       "exif-dc-type": "Tip medija",
+       "exif-rating-rejected": "Odbijeno",
+       "exif-isospeedratings-overflow": "Veće od 65535",
+       "exif-iimcategory-ace": "Umjetnost, kultura i zabava",
+       "exif-iimcategory-clj": "Kriminal i pravo",
+       "exif-iimcategory-dis": "Katastrofe i udesi",
+       "exif-iimcategory-fin": "Ekonomija i posao",
+       "exif-iimcategory-edu": "Obrazovanje",
+       "exif-iimcategory-evn": "Okolina",
+       "exif-iimcategory-hth": "Zdravlje",
+       "exif-iimcategory-hum": "Ljudski interesi",
+       "exif-iimcategory-lab": "Rad",
+       "exif-iimcategory-lif": "Životni stil i razonoda",
+       "exif-iimcategory-pol": "Politika",
+       "exif-iimcategory-rel": "Religija i vjerovanja",
+       "exif-iimcategory-sci": "Nauka i tehnologija",
+       "exif-iimcategory-soi": "Društvena pitanja",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Rat, sukob i nemiri",
+       "exif-iimcategory-wea": "Vrijeme",
+       "exif-urgency-normal": "Normalno ($1)",
+       "exif-urgency-low": "Nisko ($1)",
+       "exif-urgency-high": "Visoko ($1)",
+       "exif-urgency-other": "Priorite definiran od korisnika ($1)"
+}
diff --git a/languages/i18n/exif/shi.json b/languages/i18n/exif/shi.json
new file mode 100644 (file)
index 0000000..23d6235
--- /dev/null
@@ -0,0 +1,53 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Amara-Amaziɣ",
+                       "Zanatos"
+               ]
+       },
+       "exif-orientation": "ⴰⵙⵡⴰⵍⴰ",
+       "exif-datetime": "ⴰⵙⴰⴽⵓⴷ ⴷ ⵡⴰⴽⵓⴷ ⵏ ⵓⵙⵏⴼⵍ ⵏ ⵓⴼⴰⵢⵍⵓ",
+       "exif-flash": "ⴼⵍⴰⵛ",
+       "exif-source": "ⴰⵙⴰⴳⵎ",
+       "exif-languagecode": "ⵜⵓⵜⵍⴰⵢⵜ",
+       "exif-iimcategory": "ⴰⵙⵎⵉⵍ",
+       "exif-orientation-1": "ⴰⵎⴰⴳⵏⵓ",
+       "exif-exposureprogram-1": "ⴰⵡⴼⵓⵙ",
+       "exif-subjectdistance-value": "$1 {{PLURAL:$1|ⵎⵉⵜⵔⵓ|ⵉⴷ ⵎⵉⵜⵔⵓ}}",
+       "exif-meteringmode-0": "ⴰⵔⵓⵙⵙⵉⵏ",
+       "exif-meteringmode-1": "moyen",
+       "exif-meteringmode-2": "moyen igiddi gh tozzomt",
+       "exif-meteringmode-3": "tanqqit",
+       "exif-meteringmode-4": "MultiSpot",
+       "exif-meteringmode-5": "agaw",
+       "exif-meteringmode-6": "ghar imik giss",
+       "exif-meteringmode-255": "wayya",
+       "exif-lightsource-0": "orityawssan",
+       "exif-lightsource-1": "dow n wass",
+       "exif-lightsource-2": "Fluorescent",
+       "exif-lightsource-3": "dow ijhddn",
+       "exif-lightsource-4": "ⴼⵍⴰⵛ",
+       "exif-lightsource-9": "ljow ifolkin",
+       "exif-lightsource-10": "tagot",
+       "exif-lightsource-11": "ⴰⵎⴰⵍⵓ",
+       "exif-sensingmethod-2": "amfay n lon n tozmi ghyat tosa",
+       "exif-sensingmethod-3": "amfay n lon n tozmi ghsnat tosatin",
+       "exif-gaincontrol-0": "ⵡⴰⵍⵓ",
+       "exif-contrast-0": "ⵏⵓⵔⵎⴰⵍ",
+       "exif-contrast-1": "irtb",
+       "exif-contrast-2": "ⴰⵇⵓⵔⴰⵔ",
+       "exif-saturation-0": "ⴰⵎⴰⴳⵏⵓ",
+       "exif-saturation-1": "imik ntmlli",
+       "exif-saturation-2": "kigan ntmlli",
+       "exif-sharpness-0": "ⵏⵓⵔⵎⴰⵍ",
+       "exif-sharpness-1": "irtb",
+       "exif-sharpness-2": "iqor",
+       "exif-subjectdistancerange-0": "ⴰⵔⵓⵙⵙⵉⵏ",
+       "exif-subjectdistancerange-1": "ⵎⴰⴽⵔⵓ",
+       "exif-subjectdistancerange-2": "tannayt iqrbn",
+       "exif-gpslatitude-n": "dairat lard chamaliya",
+       "exif-gpsspeed-n": "ⵜⵉⴽⵔⵓⵙⵉⵏ",
+       "exif-iimcategory-edu": "ⴰⵙⵍⵎⴷ",
+       "exif-iimcategory-hth": "ⵜⴰⴷⵓⵙⵉ",
+       "exif-iimcategory-pol": "ⵜⴰⵙⵔⵜⵉⵜ"
+}
diff --git a/languages/i18n/exif/si.json b/languages/i18n/exif/si.json
new file mode 100644 (file)
index 0000000..33417cc
--- /dev/null
@@ -0,0 +1,366 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Asiri wiki",
+                       "Singhalawap",
+                       "නන්දිමිතුරු",
+                       "පසිඳු කාවින්ද",
+                       "සුරනිමල",
+                       1100100
+               ]
+       },
+       "exif-imagewidth": "පළල",
+       "exif-imagelength": "උස",
+       "exif-bitspersample": "එක් සංරචකයකට බිට් ගණන",
+       "exif-compression": "හැකිලීම් පටිපාටිය",
+       "exif-photometricinterpretation": "පික්සල සංයුතිය",
+       "exif-orientation": "දිශානුයෝජනය",
+       "exif-samplesperpixel": "සංරචක සංඛ්‍යාව",
+       "exif-planarconfiguration": "දත්ත වින්‍යාසය",
+       "exif-ycbcrsubsampling": "Y හා C අතර උපනියැදීම් අනුපාතය",
+       "exif-ycbcrpositioning": "Y හා C පිහිටුම්",
+       "exif-xresolution": "තිරස් විභේදනය",
+       "exif-yresolution": "සිරස් විභේදනය",
+       "exif-stripoffsets": "රූප දත්ත පරිස්ථානය",
+       "exif-rowsperstrip": "එක් තීරයකට පේළි ගණන",
+       "exif-stripbytecounts": "එක් සම්පීඩිත පේළියකට බයිට් ගණන",
+       "exif-jpeginterchangeformat": "JPEG SOI වෙත හිලව්ව",
+       "exif-jpeginterchangeformatlength": "JPEG දත්ත බයිට් ගණන",
+       "exif-whitepoint": "ශ්වේත ලක්ෂ්‍යය වර්ණවත්භාවය",
+       "exif-primarychromaticities": "ප්‍රාථමික වර්ණයන්ගේ වර්ණවත්භාවයන්",
+       "exif-ycbcrcoefficients": "වර්ණ අවකාශ පරිණාමණ න්‍යාස සංගුණක",
+       "exif-referenceblackwhite": "කළු හා සුදු සමුද්දේශ අගයන් යුගලයක්",
+       "exif-datetime": "ගොනුව  වෙනස්කල  දින හා වේලාව",
+       "exif-imagedescription": "රූප ශීර්ෂය",
+       "exif-make": "කැමරා නිෂ්පාදක",
+       "exif-model": "කැමරා මාදිලිය",
+       "exif-software": "භාවිතාකල මෘදුකාංග",
+       "exif-artist": "කතෘ",
+       "exif-copyright": "හිමිකම් දරන්නා",
+       "exif-exifversion": "Exif අනුවාදය",
+       "exif-flashpixversion": "අනුග්‍රාහක Flashpix අනුවාදය",
+       "exif-colorspace": "වර්ණ අවකාශය",
+       "exif-componentsconfiguration": "එක් එක් සංරචකයේ අර්ථය",
+       "exif-compressedbitsperpixel": "රූප සම්පීඩන මාදිලිය",
+       "exif-pixelxdimension": "ප්‍රතිබිම්බයෙහි පළල",
+       "exif-pixelydimension": "ප්‍රතිබිම්බයෙහි උස",
+       "exif-usercomment": "පරිශීලක පරිකථනයන්",
+       "exif-relatedsoundfile": "සහසම්බන්ධිත ශ්‍රව්‍ය ගොනුව",
+       "exif-datetimeoriginal": "දත්ත ජනන දිනය හා වේලාව",
+       "exif-datetimedigitized": "ඩිජිටල්කරන දිනය හා වේලාව",
+       "exif-subsectime": "දිනයවේලාව තත්පරනොටසින්",
+       "exif-subsectimeoriginal": "දිනටවේලාවමූල්‍ය තත්පරකොටසින්",
+       "exif-subsectimedigitized": "දිනයවේලාවඩිජිටල්කල තත්පරකොටසින්",
+       "exif-exposuretime": "නිරාවරණ කාලය",
+       "exif-exposuretime-format": "තත්පර $1 ($2)",
+       "exif-fnumber": "F අංකය",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "නිරාවරණ වැඩසටහන",
+       "exif-spectralsensitivity": "වර්ණාවලී සංවේදිතාවය",
+       "exif-isospeedratings": "ISO වේග ඇගැයුම",
+       "exif-shutterspeedvalue": "APEX ශටර වේගය",
+       "exif-aperturevalue": "APEX විවරය",
+       "exif-brightnessvalue": "APEX දීප්තිය",
+       "exif-exposurebiasvalue": "නිරාවරණ නැඹුරුව",
+       "exif-maxaperturevalue": "උපරිම භූමි විවරය",
+       "exif-subjectdistance": "වස්තු දුර",
+       "exif-meteringmode": "මැනුම් මාදිලිය",
+       "exif-lightsource": "ආලෝක ප්‍රභවය",
+       "exif-flash": "සැණෙළිය",
+       "exif-focallength": "කාච නාභීය දිග",
+       "exif-focallength-format": "$1 මි.මී.",
+       "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": "සුදුපාට තුලනයකිරීම",
+       "exif-digitalzoomratio": "ඩිජිටල් සූම් අනුපාතය",
+       "exif-focallengthin35mmfilm": " 35 මි.මී.  සේයාපටලයන්හි නාභීය දුර",
+       "exif-scenecapturetype": "දර්ශන ග්‍රහණ මාදිලිය",
+       "exif-gaincontrol": "දර්ශන පාලනය",
+       "exif-contrast": "අසමතාව",
+       "exif-saturation": "සන්තෘප්තිය",
+       "exif-sharpness": "තියුණුබව",
+       "exif-devicesettingdescription": "උපකරණ පරිස්ථිති විස්තරය",
+       "exif-subjectdistancerange": "වස්තු දුර පරාසය",
+       "exif-imageuniqueid": "අනන්‍ය රූප අනන‍්‍යාංකය",
+       "exif-gpsversionid": "GPS ටැග අනුවාදය",
+       "exif-gpslatituderef": "උතුරු හෝ දකුණු අක්ෂාංශය",
+       "exif-gpslatitude": "අක්ෂාංශය",
+       "exif-gpslongituderef": "බටහිර හෝ නැගෙනහිර දේශාංශය",
+       "exif-gpslongitude": "දේශාංශය",
+       "exif-gpsaltituderef": "උන්නතාංශ සමුද්දේශය",
+       "exif-gpsaltitude": "උන්නතාංශය",
+       "exif-gpstimestamp": "GPS වේලාව (පරමාණු ඔරලෝසුව)",
+       "exif-gpssatellites": "මිනුම් සඳහා භාවිතා වන චන්ද්‍රිකා",
+       "exif-gpsstatus": "රිසීවරයෙහි තරාතිරම",
+       "exif-gpsmeasuremode": "මැනුම් අකාරය",
+       "exif-gpsdop": "මැනුම් නිරවද්‍යතාවය",
+       "exif-gpsspeedref": "වේග ඒකකය",
+       "exif-gpsspeed": "GPS රිසීවරයෙහි වේගය",
+       "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": "GPS සරියෙහි නම",
+       "exif-gpsdatestamp": "GPS දිනය",
+       "exif-gpsdifferential": "GPS ආන්තරීක ශෝධනය",
+       "exif-jpegfilecomment": "JPEG ගොනු පරිකථනය",
+       "exif-keywords": "මූලපද",
+       "exif-worldregioncreated": "රූපය ගන්නා ලද ලෝක ප්‍රදේශය",
+       "exif-countrycreated": "රූපය ගන්නා ලද රට",
+       "exif-countrycodecreated": "රූපය ගන්නා ලද රටෙහි කේතය",
+       "exif-provinceorstatecreated": "රූපය ගන්නා ලද පළාත හෝ ප්‍රාන්තය",
+       "exif-citycreated": "රූපය ගන්නා ලද පුරවරය",
+       "exif-sublocationcreated": "රූපය ගන්නා ලද නගර උප-ස්ථානය",
+       "exif-worldregiondest": "ලෝක ප්‍රදේශය දක්වා ඇත",
+       "exif-countrydest": "පෙන්වනලද රට",
+       "exif-countrycodedest": "රට සඳහා කේතය දක්වා ඇත",
+       "exif-provinceorstatedest": "පළාත හෝ ප්‍රාන්තය දක්වා ඇත",
+       "exif-citydest": "පෙන්වාඇති පුරවරය",
+       "exif-sublocationdest": "පුරවරයේ උප-ස්ථානය දක්වා ඇත",
+       "exif-objectname": "කෙටි මාතෘකාව",
+       "exif-specialinstructions": "විශේෂ උපදෙස්",
+       "exif-headline": "සිරස්තලය",
+       "exif-credit": "විශ්වාසය/ප්‍රතිපාදකයා",
+       "exif-source": " මූලාශ්‍රය",
+       "exif-editstatus": "රූපයේ සංස්කරණ තත්ත්වය",
+       "exif-urgency": "අවශ්‍යතාව",
+       "exif-fixtureidentifier": "සවිකුරු නාමය",
+       "exif-locationdest": "විස්තර දක්වන ලද පිහිටීම",
+       "exif-locationdestcode": "ස්ථානයෙහි කේතය විස්තර කර දක්වා ඇත",
+       "exif-objectcycle": "මාධ්‍ය සඳහා අදහස් කල දින වකවානුව",
+       "exif-contact": "සම්බන්ධ කර ගැනීම් තොරතුරු",
+       "exif-writer": "රචකයා",
+       "exif-languagecode": "භාෂාව",
+       "exif-iimversion": "IIM අනුවාදය",
+       "exif-iimcategory": "ප්‍රවර්ගය",
+       "exif-iimsupplementalcategory": "අතිරේක ප්‍රවර්ගයන්",
+       "exif-datetimeexpires": "මෙයින් පසු භාවිත නොකරන්න",
+       "exif-datetimereleased": "Released on",
+       "exif-originaltransmissionref": "මුල් සම්ප්‍රේෂණ ස්ථාන කේතය",
+       "exif-identifier": "හඳුන්වනය",
+       "exif-lens": "භාවිත කරන ලද කාචය",
+       "exif-serialnumber": "කැමරාවේ \tඅනුක්‍රමික අංකය",
+       "exif-cameraownername": "කැමරාවේ අයිතිකරු",
+       "exif-label": "ලේබලය",
+       "exif-datetimemetadata": "පාරදත්ත අවසන් වරට වෙනස්කල දිනය",
+       "exif-nickname": "රූපයේ අවිධිමත් නම",
+       "exif-rating": "ඇගැයුම (5 න් උපන්)",
+       "exif-rightscertificate": "හිමිකම් කළමනාකරණ සහතිකය",
+       "exif-copyrighted": "හිමිකම් තත්ත්වය",
+       "exif-copyrightowner": "හිමිකම් දරන්නා",
+       "exif-usageterms": "භාවිතයේ කොන්දේසි",
+       "exif-webstatement": "මාර්ගගත ප්‍රකාශන හිමිකම් ප්‍රකාශය",
+       "exif-originaldocumentid": "මුල් ලියවිල්ලේ අතුල්‍ය අනන්‍ය",
+       "exif-licenseurl": "හිමිකම් වරපතේහි URL",
+       "exif-morepermissionsurl": "විකල්ප බලපත් තොරතුරු",
+       "exif-attributionurl": "මෙම නිර්මාණය යලි-භාවිත කරනවිට, කරුණාකර සම්බන්ධ කරන්න",
+       "exif-preferredattributionname": "මෙම නිර්මාණය යලි-භාවිත කරනවිට, කරුණාකර ස්තූති කරන්න",
+       "exif-pngfilecomment": "PNG ගොනු නිදර්ශනය",
+       "exif-disclaimer": "වියාචනය",
+       "exif-contentwarning": "තෘප්ති අවවාදය",
+       "exif-giffilecomment": "GIF ගොනු නිදර්ශනය",
+       "exif-intellectualgenre": "අයිතමයේ වර්ගය",
+       "exif-subjectnewscode": "විෂය කේතය",
+       "exif-scenecode": "IPTC දර්ශන කේතය",
+       "exif-event": "විස්තර දක්වන ලද සිද්ධිය",
+       "exif-organisationinimage": "විස්තර දක්වන ලද සංවිධානය",
+       "exif-personinimage": "පුද්ගලික වචනයෙන් විස්තර කරන ලද",
+       "exif-originalimageheight": "කප්පාදුවට පෙර රූපයෙහි උස",
+       "exif-compression-1": "අසංක්ෂිප්ත",
+       "exif-compression-3": "CCITT සමූහය 3 ෆැක්ස් කේතීකරණය",
+       "exif-compression-4": "CCITT සමූහය 4 ෆැක්ස් කේතීකරණය",
+       "exif-compression-6": "JPEG",
+       "exif-copyrighted-true": "කර්තෘ හිමිකම් තබාගත්",
+       "exif-copyrighted-false": "හිමිකම් තත්ත්වය පිහිටුවා නැත",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-unknowndate": "නොදන්නා දිනයකි",
+       "exif-orientation-1": "සාමාන්‍ය",
+       "exif-orientation-2": "තිරස වටා පෙරලා",
+       "exif-orientation-3": "180° භ්‍රමණය කොට",
+       "exif-orientation-4": "සිරස වටා පෙරලා",
+       "exif-orientation-5": "90° වාමාවර්තය භ්‍රමණය නොට සිරස වටා පෙරලා",
+       "exif-orientation-6": "90° වාමාවර්තව භ්‍රමණය කොට",
+       "exif-orientation-7": "90° දක්ෂිණාවර්තව භ්‍රමණය කොට සිරස වටා පෙරලා",
+       "exif-orientation-8": "90° දක්ෂිණාවර්තව භ්‍රමණය කොට",
+       "exif-planarconfiguration-1": "කුට්ටි ආකෘතිකරණය",
+       "exif-planarconfiguration-2": "තලීය ආකෘතිකරණය",
+       "exif-xyresolution-i": "$1 dpi",
+       "exif-xyresolution-c": "$1 dpc",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "අක්‍රමාංකිත",
+       "exif-componentsconfiguration-0": "නොපවතියි",
+       "exif-componentsconfiguration-1": "Y",
+       "exif-componentsconfiguration-2": "Cb",
+       "exif-componentsconfiguration-3": "Cr",
+       "exif-componentsconfiguration-4": "R",
+       "exif-componentsconfiguration-5": "G",
+       "exif-componentsconfiguration-6": "B",
+       "exif-exposureprogram-0": "අර්ථදක්වා නැත",
+       "exif-exposureprogram-1": "හස්තීය (Manual)",
+       "exif-exposureprogram-2": "සාමාන්‍ය ක්‍රමලේඛය",
+       "exif-exposureprogram-3": "විවර ප්‍රමුඛතාවය",
+       "exif-exposureprogram-4": "ෂටර ප්‍රමුඛතාවය",
+       "exif-exposureprogram-5": "නිර්මාණාත්මක වැඩසටහන (ක්ෂේත්‍ර ගැඹුර‍ට නැඹුරුතාවයක් දක්වන)",
+       "exif-exposureprogram-6": "කිරිය වැඩසටහන (සීඝ්‍ර ෂටර වේගයට නැඹුරුතාවයක් දක්වන)",
+       "exif-exposureprogram-7": "ආල්ඛ්‍ය තලීය මාදිලිය (පසුතලය නාභිගත නොවන සමීප ඡායාරූප සඳහා)",
+       "exif-exposureprogram-8": "භූතල තලීය මාදිලිය (පසුතලය නාභිගත වන භූතල ඡායාරූප සඳහා)",
+       "exif-subjectdistance-value": "මීටර $1",
+       "exif-meteringmode-0": "අඥාත",
+       "exif-meteringmode-1": "සාමාන්‍යය",
+       "exif-meteringmode-2": "මැදි-බරු-සාමාන්‍යය",
+       "exif-meteringmode-3": "අවධාරිතය",
+       "exif-meteringmode-4": "බහුඅවධාරිතය",
+       "exif-meteringmode-5": "රටාව",
+       "exif-meteringmode-6": "භාගික",
+       "exif-meteringmode-255": "අනෙකුත්",
+       "exif-lightsource-0": "නොදන්නා",
+       "exif-lightsource-1": "දිවා එළිය",
+       "exif-lightsource-2": "ප්‍රතිදීප්ත",
+       "exif-lightsource-3": "ටංස්ටන් (තාපදීප්ත ආලෝකය)",
+       "exif-lightsource-4": "සැණෙළිය",
+       "exif-lightsource-9": "හිරුරැස් අධික කාලගුණය",
+       "exif-lightsource-10": "වළාකුළු පිරි කාලගුණය",
+       "exif-lightsource-11": "සෙවණ",
+       "exif-lightsource-12": "දිවාඑළි ප්‍රතිදීප්ත (D 5700 – 7100K)",
+       "exif-lightsource-13": "දිවා සුදු ප්‍රතිදීප්ත (N 4600 – 5400K)",
+       "exif-lightsource-14": "සිහිල් සුදු ප්‍රතිදීප්ත (W 3900 – 4500K)",
+       "exif-lightsource-15": "සුදු ප්‍රතිදීප්ත (WW 3200 – 3700K)",
+       "exif-lightsource-17": "සම්මත ආලෝකය A",
+       "exif-lightsource-18": "සම්මත ආලෝකය B",
+       "exif-lightsource-19": "සම්මත ආලෝකය C",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-22": "D75",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "ISO මැදිරි ටංස්ටන්",
+       "exif-lightsource-255": "අනෙකුත් ආලෝක ප්‍රභවය",
+       "exif-flash-fired-0": "සැණෙළිය නොදැල්වුණි",
+       "exif-flash-fired-1": "සැණෙළිය දැල්වුණි",
+       "exif-flash-return-0": "ස්පන්දාලෝක ප්‍රත්‍යාගමන අනාවරණ කෘත්‍යය නැත",
+       "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": "රකුසැස් (red-eye) අඩුකර‍න ක්‍රමය",
+       "exif-focalplaneresolutionunit-2": "අඟල්",
+       "exif-sensingmethod-1": "අනිශ්චිත",
+       "exif-sensingmethod-2": "එක්-චිප වර්ණ සරි සංවේදකය",
+       "exif-sensingmethod-3": "ද්වි-චිප වර්ණ සරි සංවේදකය",
+       "exif-sensingmethod-4": "තුන්-චිප වර්ණ සරි සංවේදකය",
+       "exif-sensingmethod-5": "වර්ණ අනුක්‍රමික සරි සංවේදකය",
+       "exif-sensingmethod-7": "ත්‍රිරේඛීය සංවේදකය",
+       "exif-sensingmethod-8": "වර්ණ අනුක්‍රමික රේඛීය සංවේදකය",
+       "exif-filesource-3": "නිශ්චල ඩිජිටල් කැමරාව",
+       "exif-scenetype-1": "සෘජු ලෙස ඡායරූපගතකල රූපයන්",
+       "exif-customrendered-0": "සාමාන්‍ය ක්‍රියාවලිය",
+       "exif-customrendered-1": "උපයෝජ්‍ය ක්‍රියාවලිය",
+       "exif-exposuremode-0": "ස්වයාක්‍රීය නිරාවරණය",
+       "exif-exposuremode-1": "හස්තීය නිරාවරණය",
+       "exif-exposuremode-2": "ස්වයං සමුච්චය",
+       "exif-whitebalance-0": "සුදු පාට ස්වයංක්‍රීයව තුලනය",
+       "exif-whitebalance-1": "ඔබවිසින් සුදු පාට  තුලනයකිරීම",
+       "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-saturation-0": "සාමාන්‍ය",
+       "exif-saturation-1": "අඩු සන්තෘප්තිය",
+       "exif-saturation-2": "වැඩි සන්තෘප්තිය",
+       "exif-sharpness-0": "සාමාන්‍ය",
+       "exif-sharpness-1": "සුමුදු",
+       "exif-sharpness-2": "දැඩි",
+       "exif-subjectdistancerange-0": "අඥාත",
+       "exif-subjectdistancerange-1": "සාර්ව",
+       "exif-subjectdistancerange-2": "සමීප නැරඹුම",
+       "exif-subjectdistancerange-3": "දුරස්තර නැරඹුම",
+       "exif-gpslatitude-n": "උතුරු අක්ෂාංශය",
+       "exif-gpslatitude-s": "දකුණු අක්ෂාංශය",
+       "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-gpsdestdistance-m": "හැතැප්ම",
+       "exif-gpsdestdistance-n": "නාවික සැතපුම්",
+       "exif-gpsdop-excellent": "අනර්ඝයි ($1)",
+       "exif-gpsdop-good": "හොඳයි ($1)",
+       "exif-gpsdop-moderate": "මධ්‍යස්තයි ($1)",
+       "exif-gpsdop-fair": "සතුටුදායකයි ($1)",
+       "exif-gpsdop-poor": "දුර්වලයි ($1)",
+       "exif-objectcycle-a": "උදෑසන පමණි",
+       "exif-objectcycle-p": "සැන්දෑව පමණි",
+       "exif-objectcycle-b": "උදෑසන සහ සැන්දෑව යන දෙකම",
+       "exif-gpsdirection-t": "සත්‍ය දිශාව",
+       "exif-gpsdirection-m": "චුම්භක දිශාව",
+       "exif-ycbcrpositioning-1": "මධ්‍යස්තිත",
+       "exif-ycbcrpositioning-2": "සම-පිහිටීම",
+       "exif-dc-contributor": "දායකයින්",
+       "exif-dc-coverage": "මාධ්‍යයේ අවකාශමය හෝ කාලීන අභිප්‍රාය",
+       "exif-dc-date": "දිනය(න්)",
+       "exif-dc-publisher": "ප්‍රකාශකයා",
+       "exif-dc-relation": "ආශ්‍රිත මාධ්‍ය",
+       "exif-dc-rights": "හිමිකම්",
+       "exif-dc-source": "මූලාශ්‍ර මාධ්‍ය",
+       "exif-dc-type": "මාධ්‍ය වර්ගය",
+       "exif-rating-rejected": "ප්‍රතික්‍ෂේපිත",
+       "exif-isospeedratings-overflow": "65535 ට වඩා විශාලතර",
+       "exif-iimcategory-ace": "කලා ශිල්ප, සංස්කෘතිය සහ විනෝදය",
+       "exif-iimcategory-clj": "අපරාධ සහ නීතිය",
+       "exif-iimcategory-dis": "විපත් සහ හදිසි අනතුරු",
+       "exif-iimcategory-fin": "ආර්ථිකය සහ ව්‍යාපාර",
+       "exif-iimcategory-edu": "අධ්‍යාපනය",
+       "exif-iimcategory-evn": "වටපිටාව",
+       "exif-iimcategory-hth": "සෞඛ්‍යය",
+       "exif-iimcategory-hum": "මානව අයිතිය",
+       "exif-iimcategory-lab": "කම්කරු",
+       "exif-iimcategory-lif": "ජීවන ක්‍රම සහ විවේකය",
+       "exif-iimcategory-pol": "දේශපාලනය",
+       "exif-iimcategory-rel": "ආගම සහ විශ්වාස",
+       "exif-iimcategory-sci": "විද්‍යාව හා තාක්ෂණය",
+       "exif-iimcategory-soi": "සමාජීය වාදපද",
+       "exif-iimcategory-spo": "ක්‍රීඩා",
+       "exif-iimcategory-war": "යුද්ධ, ගැටුම් සහ කලබල සහිත බව",
+       "exif-iimcategory-wea": "කාලගුණය",
+       "exif-urgency-normal": "සාමාන්‍යයි ($1)",
+       "exif-urgency-low": "අඩුයි ($1)",
+       "exif-urgency-high": "ඉහළයි ($1)",
+       "exif-urgency-other": "පරිශීලක-අර්ථ දැක්වූ ප්‍රමුඛත්වය ($1)"
+}
diff --git a/languages/i18n/exif/sk.json b/languages/i18n/exif/sk.json
new file mode 100644 (file)
index 0000000..6561d5c
--- /dev/null
@@ -0,0 +1,347 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Helix84",
+                       "Teslaton"
+               ]
+       },
+       "exif-imagewidth": "Šírka",
+       "exif-imagelength": "Výška",
+       "exif-bitspersample": "Bitov na zložku",
+       "exif-compression": "Kompresná schéma",
+       "exif-photometricinterpretation": "Pixelové zloženie",
+       "exif-orientation": "Orientácia",
+       "exif-samplesperpixel": "Počet zložiek",
+       "exif-planarconfiguration": "Rozloženie dát",
+       "exif-ycbcrsubsampling": "Pomer podvzorkovania Y ku C",
+       "exif-ycbcrpositioning": "Poloha Y a C",
+       "exif-xresolution": "Horizontálne rozlíšenie",
+       "exif-yresolution": "Vertikálne rozlíšenie",
+       "exif-stripoffsets": "Umiestnenie obrazových dát",
+       "exif-rowsperstrip": "Počet riadkov na pás",
+       "exif-stripbytecounts": "Bajtov na komprimovaný prúžok",
+       "exif-jpeginterchangeformat": "Offset k JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bytov JPEG dát",
+       "exif-whitepoint": "Chromaticita bieleho bodu",
+       "exif-primarychromaticities": "Chromaticity primárností",
+       "exif-ycbcrcoefficients": "Koeficienty transformačnej matice farebného priestoru",
+       "exif-referenceblackwhite": "Dvojica bielych a čiernych referenčných hodnôt",
+       "exif-datetime": "Dátum a čas zmeny súboru",
+       "exif-imagedescription": "Názov obrázka",
+       "exif-make": "Výrobca aparátu",
+       "exif-model": "Model aparátu",
+       "exif-software": "Použitý softvér",
+       "exif-artist": "Autor",
+       "exif-copyright": "Držiteľ autorských práv",
+       "exif-exifversion": "Verzia exif štítka",
+       "exif-flashpixversion": "Podporovaná verzia Flashpix",
+       "exif-colorspace": "Farebný priestor",
+       "exif-componentsconfiguration": "Význam jednotlivých zložiek",
+       "exif-compressedbitsperpixel": "Komprimované bity na pixel",
+       "exif-pixelxdimension": "Šírka obrázka",
+       "exif-pixelydimension": "Výška obrázka",
+       "exif-usercomment": "Komentár používateľa",
+       "exif-relatedsoundfile": "Súvisiaci zvukový súbor",
+       "exif-datetimeoriginal": "Dátum a čas vytvorenia dát",
+       "exif-datetimedigitized": "Dátum a čas digitalizácie",
+       "exif-subsectime": "Subsekundy DateTime",
+       "exif-subsectimeoriginal": "Zlomky sekundy DateTimeOriginal",
+       "exif-subsectimedigitized": "Zlomky sekundy DateTimeDigitized",
+       "exif-exposuretime": "Expozičný čas",
+       "exif-exposuretime-format": "$1 sekundy ($2)",
+       "exif-fnumber": "Číslo F",
+       "exif-exposureprogram": "Expozičný program",
+       "exif-spectralsensitivity": "Spektrálna citlivosť",
+       "exif-isospeedratings": "Rýchlostné ohodnotenie ISO",
+       "exif-shutterspeedvalue": "Rýchlosť uzávierky APEX",
+       "exif-aperturevalue": "Clona APEX",
+       "exif-brightnessvalue": "Jas APEX",
+       "exif-exposurebiasvalue": "Expozičné skreslenie",
+       "exif-maxaperturevalue": "Maximálna krajinná clona",
+       "exif-subjectdistance": "Vzdialenosť subjektu",
+       "exif-meteringmode": "Merací režim",
+       "exif-lightsource": "Svetelný zdroj",
+       "exif-flash": "Blesk",
+       "exif-focallength": "Ohnisková vzdialenosť objektívu",
+       "exif-subjectarea": "Oblasť subjektu",
+       "exif-flashenergy": "Energia blesku",
+       "exif-focalplanexresolution": "Horizontálne rozlíšenie ohniskovej roviny",
+       "exif-focalplaneyresolution": "Vertikálne rozlíšenie ohniskovej roviny",
+       "exif-focalplaneresolutionunit": "Jednotka rozlíšenia v ohniskovej rovine",
+       "exif-subjectlocation": "Umiestnenie subjektu",
+       "exif-exposureindex": "Expozičný index",
+       "exif-sensingmethod": "Snímacia metóda",
+       "exif-filesource": "Zdroj súboru",
+       "exif-scenetype": "Typ scény",
+       "exif-customrendered": "Ručné spracovanie obrazu",
+       "exif-exposuremode": "Expozičný režim",
+       "exif-whitebalance": "Vyváženie bielej",
+       "exif-digitalzoomratio": "Pomer digitálneho priblíženia",
+       "exif-focallengthin35mmfilm": "Ohnisková vzdialenosť 35 mm filmu",
+       "exif-scenecapturetype": "Typ zachytenia scény",
+       "exif-gaincontrol": "Riadenie zosilnenia",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Sýtosť",
+       "exif-sharpness": "Ostrosť",
+       "exif-devicesettingdescription": "Opis nastavení zariadenia",
+       "exif-subjectdistancerange": "Rozsah vzdialenosti subjektu",
+       "exif-imageuniqueid": "Jedinečný ID obrázka",
+       "exif-gpsversionid": "Verzia GPS štítka",
+       "exif-gpslatituderef": "Severná alebo južná šírka",
+       "exif-gpslatitude": "Zemepisná šírka",
+       "exif-gpslongituderef": "Východná alebo západná dĺžka",
+       "exif-gpslongitude": "Zemepisná dĺžka",
+       "exif-gpsaltituderef": "Referencia nadmorskej výšky",
+       "exif-gpsaltitude": "Nadmorská výška",
+       "exif-gpstimestamp": "Čas GPS (atómové hodiny)",
+       "exif-gpssatellites": "Satelity použité pri meraní",
+       "exif-gpsstatus": "Stav prijímača",
+       "exif-gpsmeasuremode": "Režim merania",
+       "exif-gpsdop": "Presnosť merania",
+       "exif-gpsspeedref": "Rýchlostná jednotka",
+       "exif-gpsspeed": "Rýchlosť prijímača GPS",
+       "exif-gpstrackref": "Referencia pre smer pohybu",
+       "exif-gpstrack": "Smer pohybu",
+       "exif-gpsimgdirectionref": "Referencia pre smer obrázka",
+       "exif-gpsimgdirection": "Smer obrázka",
+       "exif-gpsmapdatum": "Použité údaje geodetického prieskumu",
+       "exif-gpsdestlatituderef": "Referencia zemepisnej šírky cieľa",
+       "exif-gpsdestlatitude": "Zemepisná šírka cieľa",
+       "exif-gpsdestlongituderef": "Referencia zemepisnej dĺžky cieľa",
+       "exif-gpsdestlongitude": "Zemepisná dĺžka cieľa",
+       "exif-gpsdestbearingref": "Referencia polohy cieľa",
+       "exif-gpsdestbearing": "Smer k cieľu",
+       "exif-gpsdestdistanceref": "Referencia vzdialenosti cieľa",
+       "exif-gpsdestdistance": "Vzdialenosť k cieľu",
+       "exif-gpsprocessingmethod": "Názov GPS metódy spracovania",
+       "exif-gpsareainformation": "Názov GPS oblasti",
+       "exif-gpsdatestamp": "Dátum GPS",
+       "exif-gpsdifferential": "Diferenciálna korekcia GPS",
+       "exif-jpegfilecomment": "Komentár súboru JPEG",
+       "exif-keywords": "Kľúčové slová",
+       "exif-worldregioncreated": "Oblasť sveta, kde snímka bola zhotovená",
+       "exif-countrycreated": "Krajina, v ktorej snímka bola zhotovená",
+       "exif-countrycodecreated": "Kód krajiny, v ktorej snímka bola zhotovená",
+       "exif-provinceorstatecreated": "Štát alebo región, v ktorom snímka bola zhotovená",
+       "exif-citycreated": "Mesto, v ktorom snímka bola zhotovená",
+       "exif-sublocationcreated": "Časť mesta, v ktorej snímka bola zhotovená",
+       "exif-worldregiondest": "Oblasť sveta zobrazená",
+       "exif-countrydest": "Krajina zobrazená",
+       "exif-countrycodedest": "Kód krajiny zobrazený",
+       "exif-provinceorstatedest": "Štát alebo región zobrazený",
+       "exif-citydest": "Mesto zobrazené",
+       "exif-sublocationdest": "Časť mesta zobrazená",
+       "exif-objectname": "Krátky názov",
+       "exif-specialinstructions": "Osobitné pokyny",
+       "exif-headline": "Nadpis",
+       "exif-credit": "Autor/poskytovateľ",
+       "exif-source": "Zdroj",
+       "exif-editstatus": "Redakčný stav obrázka",
+       "exif-urgency": "Naliehavosť",
+       "exif-fixtureidentifier": "Názov pevného umiestnenia",
+       "exif-locationdest": "Zobrazené miesto",
+       "exif-locationdestcode": "Kód zobrazeného miesta",
+       "exif-objectcycle": "Denná doba, pre ktorú je médium určené",
+       "exif-contact": "Kontaktné informácie",
+       "exif-writer": "Autor nadpisu",
+       "exif-languagecode": "Jazyk",
+       "exif-iimversion": "Verzia IIM",
+       "exif-iimcategory": "Kategória",
+       "exif-iimsupplementalcategory": "Doplnkové kategórie",
+       "exif-datetimeexpires": "Nepoužívať po",
+       "exif-datetimereleased": "Najskoršie uvoľnenie",
+       "exif-originaltransmissionref": "Pôvodný kód miesta prenosu",
+       "exif-identifier": "Identifikátor",
+       "exif-lens": "Použitý objektív",
+       "exif-serialnumber": "Sériové číslo fotoaparátu",
+       "exif-cameraownername": "Vlastník fotoaparátu",
+       "exif-label": "Označenie",
+       "exif-datetimemetadata": "Dátum poslednej úpravy metadát",
+       "exif-nickname": "Neformálny názov obrázka",
+       "exif-rating": "Hodnotenie (z 5)",
+       "exif-rightscertificate": "Certifikát riadenia oprávnení",
+       "exif-copyrighted": "Stav autorských práv",
+       "exif-copyrightowner": "Držiteľ autorských práv",
+       "exif-usageterms": "Podmienky použitia",
+       "exif-webstatement": "Vyhlásenie o autorských právach online",
+       "exif-originaldocumentid": "Jedinečný identifikátor pôvodného dokumentu",
+       "exif-licenseurl": "URL licencie podľa autorského práva",
+       "exif-morepermissionsurl": "Informácie o alternatívnom licencovaní",
+       "exif-attributionurl": "Pri opätovnom použití tohto diela, prosím, uvádzajte odkaz na",
+       "exif-preferredattributionname": "Pri opätovnom použití tohto diela, prosím, uveďte ako autora",
+       "exif-pngfilecomment": "Komentár súboru PNG",
+       "exif-disclaimer": "Vylúčenie zodpovednosti",
+       "exif-contentwarning": "Upozornenie o obsahu",
+       "exif-giffilecomment": "Komentár súboru GIF",
+       "exif-intellectualgenre": "Typ položky",
+       "exif-subjectnewscode": "Kód predmetu",
+       "exif-scenecode": "IPTC kód scény",
+       "exif-event": "Zobrazená udalosť",
+       "exif-organisationinimage": "Zobrazená organizácia",
+       "exif-personinimage": "Zobrazená osoba",
+       "exif-originalimageheight": "Výška obrázka pred orezaním",
+       "exif-originalimagewidth": "Šírka obrázka pred orezaním",
+       "exif-compression-1": "Bez kompresie",
+       "exif-compression-2": "CCITT Group 3 1-rozmerné modifikované Huffmanovo kódovanie RLE",
+       "exif-compression-3": "CCITT Group 3 faxové kódovanie",
+       "exif-compression-4": "CCITT Group 4 faxové kódovanie",
+       "exif-copyrighted-true": "Chránené autorským právom",
+       "exif-copyrighted-false": "Príznak ochrany autorským právom nenastavený",
+       "exif-photometricinterpretation-1": "Čierna a biela (čierna je 0)",
+       "exif-unknowndate": "Neznámy dátum",
+       "exif-orientation-1": "Normálna",
+       "exif-orientation-2": "Horizontálne prevrátená",
+       "exif-orientation-3": "Otočená o 180°",
+       "exif-orientation-4": "Vertikálne prevrátená",
+       "exif-orientation-5": "Otočená o 90° proti smeru hodinových ručičiek a vertikálne prevrátená",
+       "exif-orientation-6": "Otočená o 90° proti smeru hodinových ručičiek",
+       "exif-orientation-7": "Otočená o 90° v smere hodinových ručičiek a vertikálne prevrátená",
+       "exif-orientation-8": "Otočená o 90° v smere hodinových ručičiek",
+       "exif-planarconfiguration-1": "masívny formát",
+       "exif-planarconfiguration-2": "rovinný formát",
+       "exif-colorspace-65535": "Nekalibrované",
+       "exif-componentsconfiguration-0": "neexistuje",
+       "exif-exposureprogram-0": "Nedefinovaný",
+       "exif-exposureprogram-1": "Ručný",
+       "exif-exposureprogram-2": "Normálny program",
+       "exif-exposureprogram-3": "Priorita clony",
+       "exif-exposureprogram-4": "Priorita uzávierky",
+       "exif-exposureprogram-5": "Tvorivý program (prevažuje smerom k hĺbke poľa)",
+       "exif-exposureprogram-6": "Akčný program (prevažuje smerom k rýchlosti uzávierky)",
+       "exif-exposureprogram-7": "Režim portrét (pre detailné zábery s nezaostreným pozadím)",
+       "exif-exposureprogram-8": "Režim krajinka (pre fotografie krajiny so zaostreným pozadím)",
+       "exif-subjectdistance-value": "$1 metrov",
+       "exif-meteringmode-0": "Neznámy",
+       "exif-meteringmode-1": "Priemer",
+       "exif-meteringmode-2": "Vážený priemer",
+       "exif-meteringmode-3": "Bod",
+       "exif-meteringmode-4": "Viacero bodov",
+       "exif-meteringmode-5": "Vzor",
+       "exif-meteringmode-6": "Čiastočný",
+       "exif-meteringmode-255": "Iný",
+       "exif-lightsource-0": "Neznámy",
+       "exif-lightsource-1": "Denné svetlo",
+       "exif-lightsource-2": "Fluorescenčný",
+       "exif-lightsource-3": "Volfrám (inkandescentné svetlo)",
+       "exif-lightsource-4": "Blesk",
+       "exif-lightsource-9": "Dobré počasie",
+       "exif-lightsource-10": "Hmlisté počasie",
+       "exif-lightsource-11": "Tieň",
+       "exif-lightsource-12": "Fluorescenčné denné svetlo (D 5700 – 7100K)",
+       "exif-lightsource-13": "Flourescenčná denná biela (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fuorescenčná chladná biela (W 3900 – 4500K)",
+       "exif-lightsource-15": "Fluorescenčná biela (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Štandardné svetlo A",
+       "exif-lightsource-18": "Štandardné svetlo B",
+       "exif-lightsource-19": "Štandardné svetlo C",
+       "exif-lightsource-24": "ISO štúdiový volfrám",
+       "exif-lightsource-255": "Iný svetelný zdroj",
+       "exif-flash-fired-0": "Blesk sa nespustil",
+       "exif-flash-fired-1": "Blesk sa spustil",
+       "exif-flash-return-0": "bez funkcie detekcie odrazeného svetla",
+       "exif-flash-return-2": "odrazené svetlo nebolo detekované",
+       "exif-flash-return-3": "odrazené svetlo bolo detekované",
+       "exif-flash-mode-1": "povinné spustenie blesku",
+       "exif-flash-mode-2": "povinné potlačenie blesku",
+       "exif-flash-mode-3": "automatický režim",
+       "exif-flash-function-1": "Bez funkcie blesku",
+       "exif-flash-redeye-1": "režim potlačenia červených očí",
+       "exif-focalplaneresolutionunit-2": "palcov",
+       "exif-sensingmethod-1": "Nedefinovaná",
+       "exif-sensingmethod-2": "Jednočipový farebný snímač oblasti",
+       "exif-sensingmethod-3": "Dvojčipový farebný snímač oblasti",
+       "exif-sensingmethod-4": "Trojčipový farebný snímač oblasti",
+       "exif-sensingmethod-5": "Sekvenčný farebný snímač oblasti",
+       "exif-sensingmethod-7": "Trilineárny snímač",
+       "exif-sensingmethod-8": "Sekvenčný farebný lineárny snímač",
+       "exif-filesource-3": "Digitálny fotoaparát",
+       "exif-scenetype-1": "Priamo odfotený obrázok",
+       "exif-customrendered-0": "Normálne spracovanie",
+       "exif-customrendered-1": "Ručné spracovanie",
+       "exif-exposuremode-0": "Automatická expozícia",
+       "exif-exposuremode-1": "Ručná expozícia",
+       "exif-exposuremode-2": "Automatická kompenzácia expozície",
+       "exif-whitebalance-0": "Automatické vyváženie bielej",
+       "exif-whitebalance-1": "Ručné vyváženie bielej",
+       "exif-scenecapturetype-0": "Štandardný",
+       "exif-scenecapturetype-1": "Krajinka",
+       "exif-scenecapturetype-2": "Portrét",
+       "exif-scenecapturetype-3": "Nočná scéna",
+       "exif-gaincontrol-0": "Žiadne",
+       "exif-gaincontrol-1": "Slabé zosilnenie nahor",
+       "exif-gaincontrol-2": "Silné zosilnenie nahor",
+       "exif-gaincontrol-3": "Slabé zosilnenie nadol",
+       "exif-gaincontrol-4": "Silné zosilnenie nadol",
+       "exif-contrast-0": "Normálny",
+       "exif-contrast-1": "Mäkký",
+       "exif-contrast-2": "Tvrdý",
+       "exif-saturation-0": "Normálna",
+       "exif-saturation-1": "Nízka sýtosť",
+       "exif-saturation-2": "Výsoká sýtosť",
+       "exif-sharpness-0": "Normálna",
+       "exif-sharpness-1": "Mäkká",
+       "exif-sharpness-2": "Tvrdá",
+       "exif-subjectdistancerange-0": "Neznámy",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Blízky pohľad",
+       "exif-subjectdistancerange-3": "Ďaleký pohľad",
+       "exif-gpslatitude-n": "Severná šírka",
+       "exif-gpslatitude-s": "Južná šírka",
+       "exif-gpslongitude-e": "Východná dĺžka",
+       "exif-gpslongitude-w": "Západná dĺžka",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter|metre|metrov}} nad hladinou mora",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter|metre|metrov}} pod hladinou mora",
+       "exif-gpsstatus-a": "Prebieha meranie",
+       "exif-gpsstatus-v": "Interoperabilita merania",
+       "exif-gpsmeasuremode-2": "2-rozmerné meranie",
+       "exif-gpsmeasuremode-3": "3-rozmerné meranie",
+       "exif-gpsspeed-k": "Kilometrov za hodinu",
+       "exif-gpsspeed-m": "Míľ za hodinu",
+       "exif-gpsspeed-n": "Uzlov",
+       "exif-gpsdestdistance-k": "Kilometrov",
+       "exif-gpsdestdistance-m": "Míľ",
+       "exif-gpsdestdistance-n": "Námorných míľ",
+       "exif-gpsdop-excellent": "Vynikajúca ($1)",
+       "exif-gpsdop-good": "Dobrá ( $1 )",
+       "exif-gpsdop-moderate": "Stredná ( $1 )",
+       "exif-gpsdop-fair": "Dostatočná ($1)",
+       "exif-gpsdop-poor": "Slabá ($1)",
+       "exif-objectcycle-a": "Iba dopoludnia",
+       "exif-objectcycle-p": "Iba popoludní",
+       "exif-objectcycle-b": "Dopoludnia aj popoludní",
+       "exif-gpsdirection-t": "Skutočný smer",
+       "exif-gpsdirection-m": "Magnetický smer",
+       "exif-ycbcrpositioning-1": "Vystrednené",
+       "exif-ycbcrpositioning-2": "Umiestnené spolu",
+       "exif-dc-contributor": "Prispievatelia",
+       "exif-dc-coverage": "Priestorový alebo časový rozsah média",
+       "exif-dc-date": "Dátum(y)",
+       "exif-dc-publisher": "Vydavateľ",
+       "exif-dc-relation": "Súvisiace médiá",
+       "exif-dc-rights": "Práva",
+       "exif-dc-source": "Zdrojové médiá",
+       "exif-dc-type": "Typ média",
+       "exif-rating-rejected": "Odmietnuté",
+       "exif-isospeedratings-overflow": "Väčšia ako 65535",
+       "exif-iimcategory-ace": "Umenie, kultúra a zábava",
+       "exif-iimcategory-clj": "Zločin a zákon",
+       "exif-iimcategory-dis": "Katastrofy a nehody",
+       "exif-iimcategory-fin": "Ekonómia a podnikanie",
+       "exif-iimcategory-edu": "Vzdelávanie",
+       "exif-iimcategory-evn": "Životné prostredie",
+       "exif-iimcategory-hth": "Zdravie",
+       "exif-iimcategory-hum": "Ľudské záujmy",
+       "exif-iimcategory-lab": "Práca",
+       "exif-iimcategory-lif": "Životný štýl a voľný čas",
+       "exif-iimcategory-pol": "Politika",
+       "exif-iimcategory-rel": "Náboženstvo a viera",
+       "exif-iimcategory-sci": "Veda a technika",
+       "exif-iimcategory-soi": "Sociálne otázky",
+       "exif-iimcategory-spo": "Šport",
+       "exif-iimcategory-war": "Vojny, konflikty a nepokoje",
+       "exif-iimcategory-wea": "Počasie",
+       "exif-urgency-normal": "Normálna ($1)",
+       "exif-urgency-low": "Nízka ( $1 )",
+       "exif-urgency-high": "Vysoká ( $1 )",
+       "exif-urgency-other": "Používateľom definovaná priorita ($1)"
+}
diff --git a/languages/i18n/exif/sl.json b/languages/i18n/exif/sl.json
new file mode 100644 (file)
index 0000000..1dbeb99
--- /dev/null
@@ -0,0 +1,350 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Dbc334",
+                       "Eleassar",
+                       "Upwinxp"
+               ]
+       },
+       "exif-imagewidth": "Širina",
+       "exif-imagelength": "Višina",
+       "exif-bitspersample": "Bitov na barvni gradnik",
+       "exif-compression": "Shema stiskanja",
+       "exif-photometricinterpretation": "Sestava točke",
+       "exif-orientation": "Usmerjenost",
+       "exif-samplesperpixel": "Število gradnikov",
+       "exif-planarconfiguration": "Poravnava podatkov",
+       "exif-ycbcrsubsampling": "Podvzorčno razmerje med Y in C",
+       "exif-ycbcrpositioning": "Razmestitev Y in C",
+       "exif-xresolution": "Vodoravna ločljivost",
+       "exif-yresolution": "Navpična ločljivost",
+       "exif-stripoffsets": "Mesto podatkov slike",
+       "exif-rowsperstrip": "Število vrstic na pas",
+       "exif-stripbytecounts": "Zlogov na pas stiskanja",
+       "exif-jpeginterchangeformat": "Odtis na JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Zlogov JPEG-podatkov",
+       "exif-whitepoint": "Kromatičnost bele točke",
+       "exif-primarychromaticities": "Kromatičnosti osnovnih barv",
+       "exif-ycbcrcoefficients": "Koeficient matrice transformacije barvnega prostora",
+       "exif-referenceblackwhite": "Par črnih in belih referenčnih vrednosti",
+       "exif-datetime": "Datum in čas spremembe datoteke",
+       "exif-imagedescription": "Naslov slike",
+       "exif-make": "Proizvajalec fotoaparata",
+       "exif-model": "Model fotoaparata",
+       "exif-software": "Uporabljeno programje",
+       "exif-artist": "Fotograf",
+       "exif-copyright": "Imetnik avtorskih pravic",
+       "exif-exifversion": "Različica Exif",
+       "exif-flashpixversion": "Podprta različica Flashpix",
+       "exif-colorspace": "Barvni prostor",
+       "exif-componentsconfiguration": "Pomen posameznih gradnikov",
+       "exif-compressedbitsperpixel": "Velikost točke po stiskanju (v bitih)",
+       "exif-pixelxdimension": "Širina slike",
+       "exif-pixelydimension": "Višina slike",
+       "exif-usercomment": "Uporabniške pripombe",
+       "exif-relatedsoundfile": "Pripadajoča zvočna datoteka",
+       "exif-datetimeoriginal": "Datum in čas ustvaritve podatkov",
+       "exif-datetimedigitized": "Datum in čas digitalizacije",
+       "exif-subsectime": "Čas pomnilnika (1/100 s)",
+       "exif-subsectimeoriginal": "Čas zajema",
+       "exif-subsectimedigitized": "Digitalizacijski čas (1/100 s)",
+       "exif-exposuretime": "Čas osvetlitve",
+       "exif-exposuretime-format": "$1 s ($2)",
+       "exif-fnumber": "Goriščno razmerje",
+       "exif-exposureprogram": "Program osvetlitve",
+       "exif-spectralsensitivity": "Spektralna občutljivost",
+       "exif-isospeedratings": "Občutljivost filma ali tipala (ISO)",
+       "exif-shutterspeedvalue": "Hitrost zaklopa APEX",
+       "exif-aperturevalue": "Zaslonka APEX",
+       "exif-brightnessvalue": "Svetlost APEX",
+       "exif-exposurebiasvalue": "Popravek osvetlitve",
+       "exif-maxaperturevalue": "Največja vrednost zaslonke",
+       "exif-subjectdistance": "Oddaljenost predmeta",
+       "exif-meteringmode": "Način merjenja svetlobe",
+       "exif-lightsource": "Svetlobni vir",
+       "exif-flash": "Bliskavica",
+       "exif-focallength": "Goriščna razdalja leč",
+       "exif-subjectarea": "Površina predmeta",
+       "exif-flashenergy": "Energija bliskavice",
+       "exif-focalplanexresolution": "Ločljivost goriščne ravnine X",
+       "exif-focalplaneyresolution": "Ločljivost goriščne ravnine Y",
+       "exif-focalplaneresolutionunit": "Enota ločljivosti goriščne ravnine",
+       "exif-subjectlocation": "Položaj predmeta",
+       "exif-exposureindex": "Indeks osvetlitve",
+       "exif-sensingmethod": "Zaznavni postopek",
+       "exif-filesource": "Vir datoteke",
+       "exif-scenetype": "Vrsta prizora",
+       "exif-customrendered": "Obdelava slike po meri",
+       "exif-exposuremode": "Nastavitev osvetlitve",
+       "exif-whitebalance": "Ravnotežje belega",
+       "exif-digitalzoomratio": "Razmerje digitalne povečave",
+       "exif-focallengthin35mmfilm": "Goriščna razdalja pri 35-milimetrskem filmu",
+       "exif-scenecapturetype": "Način zajema prizora",
+       "exif-gaincontrol": "Ojačanje",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Nasičenost",
+       "exif-sharpness": "Ostrina",
+       "exif-devicesettingdescription": "Opis nastavitev naprave",
+       "exif-subjectdistancerange": "Območje oddaljenosti predmeta",
+       "exif-imageuniqueid": "ID slike",
+       "exif-gpsversionid": "Različica GPS-oznake",
+       "exif-gpslatituderef": "Severna ali južna zemljepisna širina",
+       "exif-gpslatitude": "Zemljepisna širina",
+       "exif-gpslongituderef": "Vzhodna ali zahodna zemljepisna dolžina",
+       "exif-gpslongitude": "Zemljepisna dolžina",
+       "exif-gpsaltituderef": "Referenca višine",
+       "exif-gpsaltitude": "Višina",
+       "exif-gpstimestamp": "GPS-čas (atomska ura)",
+       "exif-gpssatellites": "Za merjenje uporabljeni sateliti",
+       "exif-gpsstatus": "Položaj sprejemnika",
+       "exif-gpsmeasuremode": "Način merjenja",
+       "exif-gpsdop": "Natančnost merjenja",
+       "exif-gpsspeedref": "Enota hitrosti",
+       "exif-gpsspeed": "Hitrost GPS-sprejemnika",
+       "exif-gpstrackref": "Referenca smeri gibanja",
+       "exif-gpstrack": "Smer merjenja",
+       "exif-gpsimgdirectionref": "Referenca smeri slike",
+       "exif-gpsimgdirection": "Smer slike",
+       "exif-gpsmapdatum": "Uporabljeni geodetski podatki",
+       "exif-gpsdestlatituderef": "Referenca zemljepisne širine cilja",
+       "exif-gpsdestlatitude": "Zemljepisna širina cilja",
+       "exif-gpsdestlongituderef": "Referenca zemljepisne dolžine cilja",
+       "exif-gpsdestlongitude": "Zemljepisna dolžina cilja",
+       "exif-gpsdestbearingref": "Referenca smeri cilja",
+       "exif-gpsdestbearing": "Smer cilja",
+       "exif-gpsdestdistanceref": "Referenca razdalje do cilja",
+       "exif-gpsdestdistance": "Razdalja do cilja",
+       "exif-gpsprocessingmethod": "Ime postopka obdelave GPS-opazovanj",
+       "exif-gpsareainformation": "Ime GPS-območja",
+       "exif-gpsdatestamp": "GPS-datum",
+       "exif-gpsdifferential": "Diferencialni popravek GPS",
+       "exif-jpegfilecomment": "Komentar datoteke JPEG",
+       "exif-keywords": "Ključne besede",
+       "exif-worldregioncreated": "Področje sveta, v katerem je bila fotografija posneta",
+       "exif-countrycreated": "Država, v kateri je bila fotografija posneta",
+       "exif-countrycodecreated": "Šifra države, v kateri je bila fotografija posneta",
+       "exif-provinceorstatecreated": "Provinca ali dežela, v kateri je bila fotografija posneta",
+       "exif-citycreated": "Mesto, v katerem je bila fotografija posneta",
+       "exif-sublocationcreated": "Podlokacija mesta, v kateri je bila fotografija posneta",
+       "exif-worldregiondest": "Prikazano področje sveta",
+       "exif-countrydest": "Prikazana država",
+       "exif-countrycodedest": "Šifra prikazane države",
+       "exif-provinceorstatedest": "Prikazana provinca ali dežela",
+       "exif-citydest": "Prikazano mesto",
+       "exif-sublocationdest": "Prikazana podlokacija mesta",
+       "exif-objectname": "Kratek naslov",
+       "exif-specialinstructions": "Posebna navodila",
+       "exif-headline": "Naslov",
+       "exif-credit": "Zasluge/Ponudnik",
+       "exif-source": "Vir",
+       "exif-editstatus": "Uredniško stanje slike",
+       "exif-urgency": "Nujnost",
+       "exif-fixtureidentifier": "Ime stalnice",
+       "exif-locationdest": "Upodobljena lokacija",
+       "exif-locationdestcode": "Šifra upodobljene lokacije",
+       "exif-objectcycle": "Čas dneva, kateremu je predstavnost namenjena",
+       "exif-contact": "Kontaktni podatki",
+       "exif-writer": "Pisatelj",
+       "exif-languagecode": "Jezik",
+       "exif-iimversion": "Različica IIM",
+       "exif-iimcategory": "Kategorija",
+       "exif-iimsupplementalcategory": "Dodatne kategorije",
+       "exif-datetimeexpires": "Ne uporabljajte po",
+       "exif-datetimereleased": "Sproščeno",
+       "exif-originaltransmissionref": "Šifra prvotne lokacije prenosa",
+       "exif-identifier": "Označevalnik",
+       "exif-lens": "Uporabljen objektiv",
+       "exif-serialnumber": "Serijska številka fotoaparata",
+       "exif-cameraownername": "Lastnik fotoaparata",
+       "exif-label": "Oznaka",
+       "exif-datetimemetadata": "Datum zadnje spremembe metapodatkov",
+       "exif-nickname": "Neuradno ime slike",
+       "exif-rating": "Ocena (od 5)",
+       "exif-rightscertificate": "Certifikat upravljanja s pravicami",
+       "exif-copyrighted": "Položaj avtorskih pravic",
+       "exif-copyrightowner": "Imetnik avtorskih pravic",
+       "exif-usageterms": "Pogoji uporabe",
+       "exif-webstatement": "Izjava o avtorskih pravicah na spletu",
+       "exif-originaldocumentid": "Enoličen ID izvirnega dokumenta",
+       "exif-licenseurl": "URL dovoljenja za avtorske pravice",
+       "exif-morepermissionsurl": "Informacije o alternativnem licenciranju",
+       "exif-attributionurl": "Ko ponovno uporabljate delo, prosim, dodajte povezavo do",
+       "exif-preferredattributionname": "Ko ponovno uporabljate delo, prosim, navedite",
+       "exif-pngfilecomment": "Komentar datoteke PNG",
+       "exif-disclaimer": "Zanikanje odgovornosti",
+       "exif-contentwarning": "Opozorilo o vsebini",
+       "exif-giffilecomment": "Komentar datoteke GIF",
+       "exif-intellectualgenre": "Vrsta postavke",
+       "exif-subjectnewscode": "Šifra predmeta",
+       "exif-scenecode": "Koda prizora IPTC",
+       "exif-event": "Prikazan dogodek",
+       "exif-organisationinimage": "Prikazana organizacija",
+       "exif-personinimage": "Prikazana oseba",
+       "exif-originalimageheight": "Višina slike, preden je bila obrezana",
+       "exif-originalimagewidth": "Širina slike, preden je bila obrezana",
+       "exif-compression-1": "Nestisnjeno",
+       "exif-compression-2": "Kodiranje CCITT skupina 3 1-razsežnostna spremenjena dolžina teka Huffman",
+       "exif-compression-3": "Kodiranje CCITT skupina 3 faks",
+       "exif-compression-4": "Kodiranje CCITT skupina 4 faks",
+       "exif-copyrighted-true": "Avtorsko zaščiteno",
+       "exif-copyrighted-false": "Stanje avtorske pravice ni določeno",
+       "exif-photometricinterpretation-1": "Črno in belo (črno je 0)",
+       "exif-unknowndate": "neznan datum",
+       "exif-orientation-1": "Navadna",
+       "exif-orientation-2": "Vodoravno zrcaljeno",
+       "exif-orientation-3": "Zasukano za 180°",
+       "exif-orientation-4": "Navpično zrcaljeno",
+       "exif-orientation-5": "Zasukano za 90° v levo in navpično zrcaljeno",
+       "exif-orientation-6": "Zasukano za 90° v levo",
+       "exif-orientation-7": "Zasukano za 90° v desno in navpično zrcaljeno",
+       "exif-orientation-8": "Zasukano za 90° v desno",
+       "exif-planarconfiguration-1": "grudast format",
+       "exif-planarconfiguration-2": "ravninski format",
+       "exif-xyresolution-i": "$1 dpi ({{PLURAL:$1|točka/palec|točki/palec|točke/palec|točk/palec}})",
+       "exif-xyresolution-c": "$1 dpc ({{PLURAL:$1|točka/centimeter|točki/centimeter|točke/centimeter|točk/centimeter}})",
+       "exif-colorspace-65535": "Neumerjeno",
+       "exif-componentsconfiguration-0": "ne obstaja",
+       "exif-exposureprogram-0": "Ni določen",
+       "exif-exposureprogram-1": "Ročno",
+       "exif-exposureprogram-2": "Navaden",
+       "exif-exposureprogram-3": "Prednost zaslonke",
+       "exif-exposureprogram-4": "Prednost zaklopa",
+       "exif-exposureprogram-5": "Ustvarjalni program (prednost globinske ostrine)",
+       "exif-exposureprogram-6": "Akcijski program (prednost kratke osvetlitve)",
+       "exif-exposureprogram-7": "Portretna nastavitev (fotografije od blizu, ozadje ni ostro)",
+       "exif-exposureprogram-8": "Pokrajinska nastavitev (fotografije pokrajine, ostro ozadje)",
+       "exif-subjectdistance-value": "$1 {{PLURAL:$1|meter|metra|metre|metrov|metrov}}",
+       "exif-meteringmode-0": "Neznan",
+       "exif-meteringmode-1": "Povprečno",
+       "exif-meteringmode-2": "Središčno obteženo povprečno",
+       "exif-meteringmode-3": "Točkovno",
+       "exif-meteringmode-4": "Večtočkovno",
+       "exif-meteringmode-5": "Vzorčno",
+       "exif-meteringmode-6": "Delno",
+       "exif-meteringmode-255": "Drugače",
+       "exif-lightsource-0": "Neznan",
+       "exif-lightsource-1": "Dnevna svetloba",
+       "exif-lightsource-2": "Fluorescenčen",
+       "exif-lightsource-3": "Volfram (žarnica)",
+       "exif-lightsource-4": "Bliskavica",
+       "exif-lightsource-9": "Lepo vreme",
+       "exif-lightsource-10": "Oblačno",
+       "exif-lightsource-11": "Senca",
+       "exif-lightsource-12": "Dnevni fluorescenčen (D 5700 – 7100K)",
+       "exif-lightsource-13": "Dnevni bel fluorescenčen (N 4600 – 5400K)",
+       "exif-lightsource-14": "Hladen bel fluorescenčen (W 3900 – 4500K)",
+       "exif-lightsource-15": "Bel fluorescenčen (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Običajna svetloba A",
+       "exif-lightsource-18": "Običajna svetloba B",
+       "exif-lightsource-19": "Običajna svetloba C",
+       "exif-lightsource-24": "ISO-ateljejski volfram",
+       "exif-lightsource-255": "Drugačen",
+       "exif-flash-fired-0": "Bliskavica se ni sprožila",
+       "exif-flash-fired-1": "Bliskavica se je sprožila",
+       "exif-flash-return-0": "stroboskop ni uporabil funkcije zaznavanja",
+       "exif-flash-return-2": "stroboskop ni zaznal svetlobe",
+       "exif-flash-return-3": "stroboskop je zaznal svetlobo",
+       "exif-flash-mode-1": "obvezna sprožitev flasha",
+       "exif-flash-mode-2": "preprečena sprožitev flasha",
+       "exif-flash-mode-3": "samodejni način",
+       "exif-flash-function-1": "Ni možnosti flasha",
+       "exif-flash-redeye-1": "način zmanjševanja učinka rdečih oči",
+       "exif-focalplaneresolutionunit-2": "palcev",
+       "exif-sensingmethod-1": "Nedoločen",
+       "exif-sensingmethod-2": "Enočipno barvno ploskovno tipalo",
+       "exif-sensingmethod-3": "Dvočipno barvno ploskovno tipalo",
+       "exif-sensingmethod-4": "Tričipno barvno ploskovno tipalo",
+       "exif-sensingmethod-5": "Zaporedno barvno ploskovno tipalo",
+       "exif-sensingmethod-7": "Trikratno tipalo",
+       "exif-sensingmethod-8": "Zaporedno barvno črtno tipalo",
+       "exif-filesource-3": "Digitalni fotoaparat",
+       "exif-scenetype-1": "Neposredno fotografirana slika",
+       "exif-customrendered-0": "Navaden postopek",
+       "exif-customrendered-1": "Prilagojen postopek",
+       "exif-exposuremode-0": "Samodejno",
+       "exif-exposuremode-1": "Ročno",
+       "exif-exposuremode-2": "Samodejna konzola",
+       "exif-whitebalance-0": "Samodejno",
+       "exif-whitebalance-1": "Ročno",
+       "exif-scenecapturetype-0": "Navadni",
+       "exif-scenecapturetype-1": "Pokrajina",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Nočni prizor",
+       "exif-gaincontrol-0": "Brez",
+       "exif-gaincontrol-1": "Nizko ojačanje zgoraj",
+       "exif-gaincontrol-2": "Visoko ojačanje zgoraj",
+       "exif-gaincontrol-3": "Nizko ojačanje spodaj",
+       "exif-gaincontrol-4": "Visoko ojačanje spodaj",
+       "exif-contrast-0": "Navaden",
+       "exif-contrast-1": "Nizek",
+       "exif-contrast-2": "Visok",
+       "exif-saturation-0": "Navadna",
+       "exif-saturation-1": "Nizka nasičenost",
+       "exif-saturation-2": "Visoka nasičenost",
+       "exif-sharpness-0": "Navadna",
+       "exif-sharpness-1": "Mehka",
+       "exif-sharpness-2": "Trda",
+       "exif-subjectdistancerange-0": "Neznano",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Pogled od blizu",
+       "exif-subjectdistancerange-3": "Pogled od daleč",
+       "exif-gpslatitude-n": "Severna zemljepisna širina",
+       "exif-gpslatitude-s": "Južna zemljepisna širina",
+       "exif-gpslongitude-e": "Vzhodna zemljepisna dolžina",
+       "exif-gpslongitude-w": "Zahodna zemljepisna dolžina",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter|metra|metre|metrov}} nad morsko gladino",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter|metra|metre|metrov}} pod morsko gladino",
+       "exif-gpsstatus-a": "Merjenje poteka",
+       "exif-gpsstatus-v": "Interoperabilnost merjenja",
+       "exif-gpsmeasuremode-2": "Dvorazsežnostno merjenje",
+       "exif-gpsmeasuremode-3": "Trirazsežnostno merjenje",
+       "exif-gpsspeed-k": "Kilometri na uro",
+       "exif-gpsspeed-m": "Milje na uro",
+       "exif-gpsspeed-n": "Vozli",
+       "exif-gpsdestdistance-k": "Kilometrov",
+       "exif-gpsdestdistance-m": "Milj",
+       "exif-gpsdestdistance-n": "Navtičnih milj",
+       "exif-gpsdop-excellent": "Izvrstno ($1)",
+       "exif-gpsdop-good": "Dobro ($1)",
+       "exif-gpsdop-moderate": "Zmerno ($1)",
+       "exif-gpsdop-fair": "Pošteno ($1)",
+       "exif-gpsdop-poor": "Slabo ($1)",
+       "exif-objectcycle-a": "Samo zjutraj",
+       "exif-objectcycle-p": "Samo popoldne",
+       "exif-objectcycle-b": "Tako zjutraj kot popoldne",
+       "exif-gpsdirection-t": "Pravi azimut",
+       "exif-gpsdirection-m": "Magnetni azimut",
+       "exif-ycbcrpositioning-1": "Usredinjeno",
+       "exif-ycbcrpositioning-2": "Vzporedno",
+       "exif-dc-contributor": "Sodelavci",
+       "exif-dc-coverage": "Prostorski ali časovni okvir predstavnosti",
+       "exif-dc-date": "Datum(i)",
+       "exif-dc-publisher": "Založnik",
+       "exif-dc-relation": "Sorodna predstavnost",
+       "exif-dc-rights": "Pravice",
+       "exif-dc-source": "Izvorna predstavnost",
+       "exif-dc-type": "Vrsta predstavnosti",
+       "exif-rating-rejected": "Zavrnjeno",
+       "exif-isospeedratings-overflow": "Večje od 65535",
+       "exif-iimcategory-ace": "Umetnost, kultura in zabava",
+       "exif-iimcategory-clj": "Kriminal in pravo",
+       "exif-iimcategory-dis": "Nesreče in nezgode",
+       "exif-iimcategory-fin": "Ekonomija in poslovanje",
+       "exif-iimcategory-edu": "Izobraževanje",
+       "exif-iimcategory-evn": "Okolje",
+       "exif-iimcategory-hth": "Zdravje",
+       "exif-iimcategory-hum": "Zanimanja ljudi",
+       "exif-iimcategory-lab": "Delo",
+       "exif-iimcategory-lif": "Življenjski slog in prosti čas",
+       "exif-iimcategory-pol": "Politika",
+       "exif-iimcategory-rel": "Vera in prepričanja",
+       "exif-iimcategory-sci": "Znanost in tehnologija",
+       "exif-iimcategory-soi": "Družbena vprašanja",
+       "exif-iimcategory-spo": "Športi",
+       "exif-iimcategory-war": "Vojne, spori in nemiri",
+       "exif-iimcategory-wea": "Vreme",
+       "exif-urgency-normal": "Navadno ($1)",
+       "exif-urgency-low": "Nizko ($1)",
+       "exif-urgency-high": "Visoko ($1)",
+       "exif-urgency-other": "Uporabniško določena prednost ($1)"
+}
diff --git a/languages/i18n/exif/sli.json b/languages/i18n/exif/sli.json
new file mode 100644 (file)
index 0000000..4139ab1
--- /dev/null
@@ -0,0 +1,108 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Schläsinger",
+                       "Äberlausitzer"
+               ]
+       },
+       "exif-imagelength": "Länge",
+       "exif-bitspersample": "Bits pro Forbkomponente",
+       "exif-compression": "Oart dar Kompression",
+       "exif-photometricinterpretation": "Pixelzusommasetzung",
+       "exif-samplesperpixel": "Oazoahl Komponenten",
+       "exif-ycbcrsubsampling": "Subsampling Rate vu Y bis C",
+       "exif-xresolution": "Horizontale Ufflesung",
+       "exif-yresolution": "Vertikale Ufflesung",
+       "exif-rowsperstrip": "Oazoahl Zeila pro Streifa",
+       "exif-stripbytecounts": "Bytes pro komprimiertem Streifa",
+       "exif-jpeginterchangeformatlength": "Griße dar JPEG-Daten ei Bytes",
+       "exif-whitepoint": "Manuell miet Messung",
+       "exif-primarychromaticities": "Primäre Forboart",
+       "exif-referenceblackwhite": "Schworz/Weeß-Referenzpunkte",
+       "exif-imagedescription": "Bildtittel",
+       "exif-artist": "Fotogroaf",
+       "exif-flashpixversion": "understitzte Flashpix-Version",
+       "exif-colorspace": "Forbraum",
+       "exif-pixelxdimension": "Giltige Bildbreite",
+       "exif-pixelydimension": "Giltige Bildhiehe",
+       "exif-usercomment": "Nutzerkommentare",
+       "exif-relatedsoundfile": "Zugehierige Tondatei",
+       "exif-exposuretime-format": "$1 Sekunda ($2)",
+       "exif-maxaperturevalue": "Grießte Blende",
+       "exif-meteringmode": "Messverfoahrn",
+       "exif-focalplanexresolution": "Sensorufflesung hurizuntal",
+       "exif-focalplaneyresolution": "Sensorufflesung vertikal",
+       "exif-focalplaneresolutionunit": "Einheet dar Sensorufflesung",
+       "exif-subjectlocation": "Motivstandurt",
+       "exif-filesource": "Quelle dar Datei",
+       "exif-scenetype": "Szenatyp",
+       "exif-customrendered": "Nutzerdefinierte Bildveroarbeetung",
+       "exif-whitebalance": "Weeßabgleich",
+       "exif-focallengthin35mmfilm": "Brennweite (Kleenbildäquivalent)",
+       "exif-scenecapturetype": "Uffnahmeoart",
+       "exif-devicesettingdescription": "Geräteeinstallung",
+       "exif-gpsaltituderef": "Bezugshiehe",
+       "exif-gpsaltitude": "Hiehe",
+       "exif-gpssatellites": "Fier de Messung benutzte Satelliten",
+       "exif-gpsmeasuremode": "Messverfoahrn",
+       "exif-gpsspeedref": "Geschwindigkeitseinheet",
+       "exif-gpstrackref": "Referenz fier Bewegungsrichtung",
+       "exif-gpsimgdirectionref": "Referenz fier de Ausrichtung des Bildes",
+       "exif-gpsmapdatum": "Geodätisches Datum nutzt",
+       "exif-gpsdestlatituderef": "Referenz fier de Breite",
+       "exif-gpsdestlongituderef": "Referenz fier de Länge",
+       "exif-gpsdestbearingref": "Referenz fier Motivrichtung",
+       "exif-gpsdestdistanceref": "Referenz fier de Motiventfernung",
+       "exif-gpsprocessingmethod": "Noame des GPS-Verfahras",
+       "exif-gpsareainformation": "Noame des GPS-Gebietes",
+       "exif-unknowndate": "Unbekenntes Datum",
+       "exif-orientation-2": "Hurizuntal gespiegelt",
+       "exif-orientation-3": "Im 180° gedreht",
+       "exif-orientation-5": "Entgegen damm Seegerzeigersinn im 90° gedreht und vertikal gespiegelt",
+       "exif-orientation-6": "Im 90° eim Seegerzeigersinn gedreht",
+       "exif-orientation-7": "Im 90° eim Seegerzeigersinn gedreht und vertikal gespiegelt",
+       "exif-orientation-8": "Im 90° entgegen damm Seegerzeigersinn gedreht",
+       "exif-planarconfiguration-1": "Grobfurmat",
+       "exif-planarconfiguration-2": "Planarfurmat",
+       "exif-componentsconfiguration-0": "Existiert ne",
+       "exif-exposureprogram-0": "Unbekennt",
+       "exif-exposureprogram-5": "Kreativprogramm miet Bevorzugung huher Schärfentiefe",
+       "exif-exposureprogram-6": "Aksjonn-Programm miet Bevorzugung a'r kurza Belichtungszeit",
+       "exif-exposureprogram-8": "Landschoftsuffnahma",
+       "exif-meteringmode-0": "Unbekennt",
+       "exif-meteringmode-4": "Mehfachspotmessung",
+       "exif-meteringmode-6": "Bildteel",
+       "exif-meteringmode-255": "Unbekennt",
+       "exif-lightsource-0": "Unbekennt",
+       "exif-lightsource-1": "Taageslicht",
+       "exif-lightsource-3": "Glihlompe",
+       "exif-lightsource-9": "Schie Waater",
+       "exif-lightsource-10": "Bewelkt",
+       "exif-lightsource-11": "Schoatta",
+       "exif-lightsource-13": "Tagesweeß fluoreszierend (N 4600–5400 K)",
+       "exif-lightsource-14": "Kaltweeß fluoreszierend (W 3900–4500 K)",
+       "exif-lightsource-15": "Weeß fluoreszierend (WW 3200–3700 K)",
+       "exif-flash-fired-0": "kee Blitz",
+       "exif-flash-fired-1": "Blitz ausgelest",
+       "exif-flash-return-0": "Blitz sendet kenne Daten",
+       "exif-flash-return-2": "kenne Reflexion des Blitz festgestallt",
+       "exif-flash-return-3": "Reflexion des Blitz festgestallt",
+       "exif-flash-mode-1": "erzwungenes Blitza",
+       "exif-flash-mode-2": "Blitz obgeschaltet",
+       "exif-flash-function-1": "Kenne Blitzfunksjonn",
+       "exif-sensingmethod-2": "Ein-Chip-Forbsensor",
+       "exif-sensingmethod-3": "Zwee-Chip-Forbsensor",
+       "exif-sensingmethod-4": "Drei-Chip-Forbsensor",
+       "exif-sensingmethod-5": "Forbraum sequentiell Sensor",
+       "exif-sensingmethod-8": "Forbraum linear sequentieller Sensor",
+       "exif-customrendered-1": "Nutzerdefiniert",
+       "exif-scenecapturetype-1": "Landschoft",
+       "exif-scenecapturetype-3": "Noachtszene",
+       "exif-gaincontrol-0": "Keene",
+       "exif-contrast-1": "Schwoch",
+       "exif-contrast-2": "Stork",
+       "exif-saturation-2": "Huch",
+       "exif-sharpness-2": "Stork",
+       "exif-subjectdistancerange-0": "Unbekennt",
+       "exif-gpsstatus-v": "Interoperabilität vu Messunga"
+}
diff --git a/languages/i18n/exif/sq.json b/languages/i18n/exif/sq.json
new file mode 100644 (file)
index 0000000..75e0a8a
--- /dev/null
@@ -0,0 +1,354 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ammartivari",
+                       "Arianit",
+                       "Cradel",
+                       "Dori",
+                       "Kosovastar",
+                       "Marinari",
+                       "Olsi",
+                       "Puntori",
+                       "Vinie007"
+               ]
+       },
+       "exif-imagewidth": "Gjerësia",
+       "exif-imagelength": "Gjatësia",
+       "exif-bitspersample": "Bit për komponent",
+       "exif-compression": "Lloji i ngjeshjes",
+       "exif-photometricinterpretation": "Përbërja pixel",
+       "exif-orientation": "Orientimi",
+       "exif-samplesperpixel": "Numri i përbërësve",
+       "exif-planarconfiguration": "Përpunimi i të dhënave",
+       "exif-ycbcrsubsampling": "Duke krahasuar raportin e Y tek C",
+       "exif-ycbcrpositioning": "Pozicioni Y dhe C",
+       "exif-xresolution": "Rezolucioni horizontal",
+       "exif-yresolution": "Rezolucioni vertikal",
+       "exif-stripoffsets": "Vendi i figurave",
+       "exif-rowsperstrip": "Numri i rreshtave për shirit",
+       "exif-stripbytecounts": "Bajt për shirit të ngjeshur",
+       "exif-jpeginterchangeformat": "Çvendos tek JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bajtët të dhënave JPEG",
+       "exif-whitepoint": "Pikët e bardha kromatike",
+       "exif-primarychromaticities": "Kromatikët e primareve",
+       "exif-ycbcrcoefficients": "Koeficentët e transformimit të hapësirave të ngjyrave të matricës",
+       "exif-referenceblackwhite": "Çift vlerash me refernca bardhë dhe zi",
+       "exif-datetime": "Data dhe ora e ndryshimit të skedës",
+       "exif-imagedescription": "Titulli i figurës",
+       "exif-make": "Prodhuesi i kamerës",
+       "exif-model": "Modeli i kamerës",
+       "exif-software": "Softueri i përdorur",
+       "exif-artist": "Autor",
+       "exif-copyright": "Mbajtësi i të drejtave të autorit",
+       "exif-exifversion": "Versioni Exif-it",
+       "exif-flashpixversion": "Versioni Flahpix i mbështetur",
+       "exif-colorspace": "Hapësira e ngjyrave",
+       "exif-componentsconfiguration": "Kuptimi i secilit komponent",
+       "exif-compressedbitsperpixel": "Lloji i ngjeshjes së figurës",
+       "exif-pixelxdimension": "Gjerësia Image",
+       "exif-pixelydimension": "lartësi Image",
+       "exif-usercomment": "Komentet e përdoruesit",
+       "exif-relatedsoundfile": "Skeda audio shoqëruese",
+       "exif-datetimeoriginal": "Data dhe koha e prodhimit të të dhënave",
+       "exif-datetimedigitized": "Data dhe ora e digjitalizimit",
+       "exif-subsectime": "Nën-sekondat DataKoha",
+       "exif-subsectimeoriginal": "Nën-sekondat DataKohaOrigjinale",
+       "exif-subsectimedigitized": "Nën-sekondat DataKohaOrigjinale",
+       "exif-exposuretime": "Kohëzgjatja e ekspozimit",
+       "exif-exposuretime-format": "$1 sek ($2)",
+       "exif-fnumber": "Numri F",
+       "exif-exposureprogram": "Zbuloni programin",
+       "exif-spectralsensitivity": "Ndjeshmëria spektrale",
+       "exif-isospeedratings": "Vlerësimi i shpejtësisë ISO",
+       "exif-shutterspeedvalue": "shpejtësi APEX qepen",
+       "exif-aperturevalue": "aperture APEX",
+       "exif-brightnessvalue": "shkëlqim APEX",
+       "exif-exposurebiasvalue": "zbuloni vijat e pjerrëta",
+       "exif-maxaperturevalue": "Hapje maksimale e tokës",
+       "exif-subjectdistance": "Largësia e subjektit",
+       "exif-meteringmode": "Mënyra e matjes",
+       "exif-lightsource": "Burimi i dritës",
+       "exif-flash": "Blici",
+       "exif-focallength": "Gjatësia e vatrës",
+       "exif-subjectarea": "Hapësira e subjektit",
+       "exif-flashenergy": "Energjia e blicit",
+       "exif-focalplanexresolution": "Rezelucioni i planit fokal X",
+       "exif-focalplaneyresolution": "Rezelucioni i planit fokal Y",
+       "exif-focalplaneresolutionunit": "Rezolucioni i njësisë së planit fokal",
+       "exif-subjectlocation": "Vendndodhja e subjektit",
+       "exif-exposureindex": "Indeksi i ekspozimit",
+       "exif-sensingmethod": "Metoda Sensing",
+       "exif-filesource": "Burimi i skedës",
+       "exif-scenetype": "Lloji Scene",
+       "exif-customrendered": "Përpunim i fotografisë Costum",
+       "exif-exposuremode": "Mënyra e ekspozimit",
+       "exif-whitebalance": "Balanca e bardhë",
+       "exif-digitalzoomratio": "Zmadhim dixhital",
+       "exif-focallengthin35mmfilm": "Gjatësia fokale në 35 mm film",
+       "exif-scenecapturetype": "Shtrirja e largësisë",
+       "exif-gaincontrol": "Kontrolli i skenës",
+       "exif-contrast": "Kontrasti",
+       "exif-saturation": "Mbushja",
+       "exif-sharpness": "Ashpërsia",
+       "exif-devicesettingdescription": "Përshkrimi i parametrave të pajisjes",
+       "exif-subjectdistancerange": "Shtrirja e largësisë së subjektit",
+       "exif-imageuniqueid": "ID unike e fotografisë",
+       "exif-gpsversionid": "Versioni i etiketës GPS",
+       "exif-gpslatituderef": "Gjerësi veriore ose jugore",
+       "exif-gpslatitude": "Gjerësia gjeografike",
+       "exif-gpslongituderef": "Gjatësi lindore ose perëndimore",
+       "exif-gpslongitude": "Gjatësia gjeografike",
+       "exif-gpsaltituderef": "Lartësia orientuese",
+       "exif-gpsaltitude": "Lartësia",
+       "exif-gpstimestamp": "Koha GPS (ora atomike)",
+       "exif-gpssatellites": "Janë përdorur satelitë për matjen",
+       "exif-gpsstatus": "Statusi i marrësit",
+       "exif-gpsmeasuremode": "Mënyra e matjes",
+       "exif-gpsdop": "Saktësia e matjes",
+       "exif-gpsspeedref": "Njësia e shpejtësisë",
+       "exif-gpsspeed": "Shpejtësia e marrësit GPS",
+       "exif-gpstrackref": "Referenca për drejtimin e lëvizjes",
+       "exif-gpstrack": "Drejtimi i lëvizjes",
+       "exif-gpsimgdirectionref": "Referenca për drejtimin e imazhit",
+       "exif-gpsimgdirection": "Orientimi i figurës",
+       "exif-gpsmapdatum": "Anketa e të dhënave gjeodezike të përdorura",
+       "exif-gpsdestlatituderef": "Referenca për gjerësinë e destinacionit",
+       "exif-gpsdestlatitude": "Destinacioni i gjerësisë",
+       "exif-gpsdestlongituderef": "Referenca për gjatësinë e destinacionit",
+       "exif-gpsdestlongitude": "Gjatësia e destinacionit",
+       "exif-gpsdestbearingref": "Referenca për qëndrimin e destinacionit",
+       "exif-gpsdestbearing": "Qëndrimi i destinacionit",
+       "exif-gpsdestdistanceref": "Referenca për distancën e destinacionit",
+       "exif-gpsdestdistance": "Distanca tek destinacioni",
+       "exif-gpsprocessingmethod": "Emri i metodës së përpunimit GPS",
+       "exif-gpsareainformation": "Emri i zonës GPS",
+       "exif-gpsdatestamp": "E dhënë GPS",
+       "exif-gpsdifferential": "Korrigjim diferencial i GPS",
+       "exif-jpegfilecomment": "Komenti i JPEG dokumentit",
+       "exif-keywords": "Fjalët kyçe",
+       "exif-worldregioncreated": "Rajoni botërorë ku është marrë fotografia",
+       "exif-countrycreated": "Shteti ku është marrë fotografia",
+       "exif-countrycodecreated": "Kodi për shtetin ku është marrë fotografia",
+       "exif-provinceorstatecreated": "Provinca apo shteti ku është marrë fotografia",
+       "exif-citycreated": "Qyteti ku është marrë fotografia",
+       "exif-sublocationcreated": "Nën-Lokacioni i qytetit ku është marrë fotografia",
+       "exif-worldregiondest": "Rajoni botërorë i treguar",
+       "exif-countrydest": "Shteti i treguar",
+       "exif-countrycodedest": "Kodi për vendin e treguar",
+       "exif-provinceorstatedest": "Provinca ose të shteti i treguar",
+       "exif-citydest": "Qyteti i treguar",
+       "exif-sublocationdest": "Nën-Lokacioni i qytetit të treguar",
+       "exif-objectname": "Titull i shkurtër",
+       "exif-specialinstructions": "Udhëzime të veçanta",
+       "exif-headline": "Mbishkrimi",
+       "exif-credit": "Atribues / Furnizues",
+       "exif-source": "Burimi",
+       "exif-editstatus": "Statusi editorial i fotografisë",
+       "exif-urgency": "Urgjencë",
+       "exif-fixtureidentifier": "Emri i shtojcës",
+       "exif-locationdest": "Vendndodhja e përshkruar",
+       "exif-locationdestcode": "Kodi i lokacionit të përshkruar",
+       "exif-objectcycle": "Koha e ditës që media është menduar për",
+       "exif-contact": "Informatat e kontaktit",
+       "exif-writer": "Shkrimtari",
+       "exif-languagecode": "Gjuha",
+       "exif-iimversion": "IIM versioni",
+       "exif-iimcategory": "Kategoria",
+       "exif-iimsupplementalcategory": "Kategoritë plotësuese",
+       "exif-datetimeexpires": "Mos përdorni më pas",
+       "exif-datetimereleased": "Lëshuar më",
+       "exif-originaltransmissionref": "Kodi origjinal i vendit të transmetimit",
+       "exif-identifier": "Identifikuesi",
+       "exif-lens": "Lentja e përdorur",
+       "exif-serialnumber": "Numri serik i kamerës",
+       "exif-cameraownername": "Pronari i kamerës",
+       "exif-label": "Etiketa",
+       "exif-datetimemetadata": "Data e ndryshimit të fundit të të dhënave",
+       "exif-nickname": "Emri joformal i fotografisë",
+       "exif-rating": "Vlerësimi (nga 5)",
+       "exif-rightscertificate": "Certifikatë e të drejtave të menaxhmentit",
+       "exif-copyrighted": "Statusi i të drejtës së autorit",
+       "exif-copyrightowner": "Pronari i të drejtës së autorit",
+       "exif-usageterms": "Mënyra e përdorimit",
+       "exif-webstatement": "Deklarata e të drejtës së autorit në-linjë",
+       "exif-originaldocumentid": "ID-ja unike e dokumentit origjinal",
+       "exif-licenseurl": "URL-ja për licencën e të drejtës së autorit",
+       "exif-morepermissionsurl": "Informacion alternativ i licencimit",
+       "exif-attributionurl": "Kur ri-shfrytëzoni këtë punë, ju lutem lidheni tek",
+       "exif-preferredattributionname": "Kur ri-shfrytëzoni këtë punë, ju lutem atribuoni",
+       "exif-pngfilecomment": "Komenti i PGN dokumentit",
+       "exif-disclaimer": "Shfajësimet",
+       "exif-contentwarning": "Paralajmërim rreth përmbajtjes",
+       "exif-giffilecomment": "Komenti i GIF dokumentit",
+       "exif-intellectualgenre": "Lloji i artikullit",
+       "exif-subjectnewscode": "Kodi i subjektit",
+       "exif-scenecode": "Kodi i IPTC skenës",
+       "exif-event": "Ngjarja e përshkruar",
+       "exif-organisationinimage": "Organizata e përshkruar",
+       "exif-personinimage": "Personi i përshkruar",
+       "exif-originalimageheight": "Lartësia e fotografisë para se të shkurtohej",
+       "exif-originalimagewidth": "Gjerësia e fotografisë para se të shkurtohej",
+       "exif-compression-1": "E pangjeshur",
+       "exif-compression-2": "CCITT Grupi 3 1-Dimensional Kodimi i Modifikuar Huffman i linjës së gjatësisë",
+       "exif-compression-3": "CCITT Grupi 3 faks kodimi",
+       "exif-compression-4": "CCITT Grupi 4 faks kodimi",
+       "exif-copyrighted-true": "E drejtë e autorit",
+       "exif-copyrighted-false": "Statusi i së drejtës së autorit nuk u caktua",
+       "exif-photometricinterpretation-1": "Bardh e zi (Zi është 0)",
+       "exif-unknowndate": "E dhënë e pa njohur",
+       "exif-orientation-1": "Normale",
+       "exif-orientation-2": "E kthyer horizontalisht",
+       "exif-orientation-3": "E rrotulluar 180°",
+       "exif-orientation-4": "E kthyer vertikalisht",
+       "exif-orientation-5": "E rrotulluar 90° kundër orës dhe e kthyer vertikalisht",
+       "exif-orientation-6": "Rrotulluar 90° kundër akrepave të orës",
+       "exif-orientation-7": "E rrotulluar 90° sipas orës dhe e kthyer vertikalisht",
+       "exif-orientation-8": "Rrotulluar 90° sipas akrepave të orës",
+       "exif-planarconfiguration-1": "formati copë",
+       "exif-planarconfiguration-2": "formati planar",
+       "exif-colorspace-65535": "e pa kalibruar",
+       "exif-componentsconfiguration-0": "nuk ekziston",
+       "exif-exposureprogram-0": "e padefinuar",
+       "exif-exposureprogram-1": "Doracak",
+       "exif-exposureprogram-2": "Program normal",
+       "exif-exposureprogram-3": "Prioriteti i hapjes (Aperture priority)",
+       "exif-exposureprogram-4": "Përparësia e mbyllësit (Shutter priority)",
+       "exif-exposureprogram-5": "Program krijues",
+       "exif-exposureprogram-6": "Program veprimi",
+       "exif-exposureprogram-7": "Mënyra e portretit",
+       "exif-exposureprogram-8": "Mënyra landspace",
+       "exif-subjectdistance-value": "$1 metra",
+       "exif-meteringmode-0": "E panjohur",
+       "exif-meteringmode-1": "Mesatare",
+       "exif-meteringmode-2": "QendraPeshësMesatare",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "MultiSpot",
+       "exif-meteringmode-5": "Model",
+       "exif-meteringmode-6": "E pjesshme",
+       "exif-meteringmode-255": "Tjetër",
+       "exif-lightsource-0": "I panjohur",
+       "exif-lightsource-1": "Ditë",
+       "exif-lightsource-2": "Fluoreshent",
+       "exif-lightsource-3": "Tungsten (dritë e flaktë)",
+       "exif-lightsource-4": "Blic",
+       "exif-lightsource-9": "Kohë e mirë",
+       "exif-lightsource-10": "Kohë e vrenjtur",
+       "exif-lightsource-11": "Hije",
+       "exif-lightsource-12": "Fluoreshent dite (D 5700 – 7100K)",
+       "exif-lightsource-13": "Fluoreshent i badhë dite (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fluoreshent i badhë i fresket (W 3900 – 4500K)",
+       "exif-lightsource-15": "Fluoreshent i bardhe (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Dritë standarde A",
+       "exif-lightsource-18": "Dritë standarde B",
+       "exif-lightsource-19": "Dritë standarde C",
+       "exif-lightsource-24": "Studio ISO tungsten",
+       "exif-lightsource-255": "Tjetër burim drite",
+       "exif-flash-fired-0": "Flashi nuk u ndez",
+       "exif-flash-fired-1": "Flashi u ndez",
+       "exif-flash-return-0": "s'ka funksion zbulimi prapa",
+       "exif-flash-return-2": "kthimi i dritës nuk u vërejt",
+       "exif-flash-return-3": "kthimi i dritës flash u vërejt",
+       "exif-flash-mode-1": "flashi po ndizet",
+       "exif-flash-mode-2": "shuarje e detyrueshme e flashit",
+       "exif-flash-mode-3": "auto mode",
+       "exif-flash-function-1": "S'ka funksion të çastit",
+       "exif-flash-redeye-1": "menyra e reduktimit red-eye",
+       "exif-focalplaneresolutionunit-2": "inç",
+       "exif-sensingmethod-1": "e padefinuar",
+       "exif-sensingmethod-2": "Zona e sensorit one-chip kolor",
+       "exif-sensingmethod-3": "Zona e sensorit two-chip kolor",
+       "exif-sensingmethod-4": "Zona e sensorit three-chip kolor",
+       "exif-sensingmethod-5": "Sensori i zones kolor sequential",
+       "exif-sensingmethod-7": "Sensor trilinear",
+       "exif-sensingmethod-8": "Sensori linear kolor sequential",
+       "exif-filesource-3": "Digital ende kamera",
+       "exif-scenetype-1": "Nje fotografi e fotografuar direkt",
+       "exif-customrendered-0": "Proces normal",
+       "exif-customrendered-1": "Proces i zakonshëm",
+       "exif-exposuremode-0": "Ekspozim automatik",
+       "exif-exposuremode-1": "Ekspozim manual",
+       "exif-exposuremode-2": "Grupim atutomatik",
+       "exif-whitebalance-0": "Balance e bardhe automatike",
+       "exif-whitebalance-1": "Balance e bardhe manuale",
+       "exif-scenecapturetype-0": "Standarte",
+       "exif-scenecapturetype-1": "Peizazh",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Pamje nate",
+       "exif-gaincontrol-0": "Asnjë",
+       "exif-gaincontrol-1": "Pak me shume ndricim",
+       "exif-gaincontrol-2": "Shume me shume ndricim",
+       "exif-gaincontrol-3": "Disi me pak ndricim",
+       "exif-gaincontrol-4": "Shume me pak ndricim",
+       "exif-contrast-0": "Normale",
+       "exif-contrast-1": "I dobët",
+       "exif-contrast-2": "I fortë",
+       "exif-saturation-0": "Normale",
+       "exif-saturation-1": "mbushje e pakët",
+       "exif-saturation-2": "mbushje e shumtë",
+       "exif-sharpness-0": "Normale",
+       "exif-sharpness-1": "E butë",
+       "exif-sharpness-2": "E fortë",
+       "exif-subjectdistancerange-0": "E panjohur",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Pamje nga afër",
+       "exif-subjectdistancerange-3": "Pamje nga larg",
+       "exif-gpslatitude-n": "Gjerësi veriore",
+       "exif-gpslatitude-s": "Gjerësi jugore",
+       "exif-gpslongitude-e": "Gjatësi lindore",
+       "exif-gpslongitude-w": "Gjatësi perëndimore",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metër|metra}} mbi nivelin detar",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metër|metra}} nën nivelin detar",
+       "exif-gpsstatus-a": "Matja është në progres",
+       "exif-gpsstatus-v": "Matja e nderveprimit",
+       "exif-gpsmeasuremode-2": "matje në 2 madhësi",
+       "exif-gpsmeasuremode-3": "matje në 3 madhësi",
+       "exif-gpsspeed-k": "Kilometra në orë",
+       "exif-gpsspeed-m": "Milje në orë",
+       "exif-gpsspeed-n": "Nyje",
+       "exif-gpsdestdistance-k": "Kilometra",
+       "exif-gpsdestdistance-m": "Milje",
+       "exif-gpsdestdistance-n": "Milje detare",
+       "exif-gpsdop-excellent": "Shkëlqyeshëm ($1)",
+       "exif-gpsdop-good": "Mirë ( $1 )",
+       "exif-gpsdop-moderate": "Mesatar ( $1 )",
+       "exif-gpsdop-fair": "Mjaftueshëm ( $1 )",
+       "exif-gpsdop-poor": "Dobët ( $1 )",
+       "exif-objectcycle-a": "Vetëm në Mëngjes",
+       "exif-objectcycle-p": "Vetëm në Mbrëmje",
+       "exif-objectcycle-b": "Të dy në mëngjes dhe në mbrëmje",
+       "exif-gpsdirection-t": "Drejtimi i vërtetë",
+       "exif-gpsdirection-m": "Drejtimi magnetik",
+       "exif-ycbcrpositioning-1": "Qendër",
+       "exif-ycbcrpositioning-2": "Bashkë-Faqet",
+       "exif-dc-contributor": "Kontribuesit",
+       "exif-dc-coverage": "Shtrirje hapsinore apo e përkohshme e mediave",
+       "exif-dc-date": "Datë (at)",
+       "exif-dc-publisher": "Botuesi",
+       "exif-dc-relation": "Mediat e lidhura",
+       "exif-dc-rights": "Privilegjet",
+       "exif-dc-source": "Burimi i medias",
+       "exif-dc-type": "Lloji i mediave",
+       "exif-rating-rejected": "Refuzuar",
+       "exif-isospeedratings-overflow": "Më e madhe se 65.535",
+       "exif-iimcategory-ace": "Art, kulturë dhe argëtim",
+       "exif-iimcategory-clj": "Krimi dhe Ligji",
+       "exif-iimcategory-dis": "Fatkeqësit dhe aksidentet",
+       "exif-iimcategory-fin": "Ekonomi dhe biznes",
+       "exif-iimcategory-edu": "Arsim",
+       "exif-iimcategory-evn": "Mjedis",
+       "exif-iimcategory-hth": "Shëndetësi",
+       "exif-iimcategory-hum": "Interes njerëzor",
+       "exif-iimcategory-lab": "Punë",
+       "exif-iimcategory-lif": "Stil-Jete dhe kohë e lirë",
+       "exif-iimcategory-pol": "Politikë",
+       "exif-iimcategory-rel": "Religjioni dhe besimi",
+       "exif-iimcategory-sci": "Shkencë dhe teknologji",
+       "exif-iimcategory-soi": "Çështje sociale",
+       "exif-iimcategory-spo": "Sporti",
+       "exif-iimcategory-war": "Lufta, konflikte dhe trazira",
+       "exif-iimcategory-wea": "Moti",
+       "exif-urgency-normal": "Normale ( $1 )",
+       "exif-urgency-low": "Ulët ( $1 )",
+       "exif-urgency-high": "E Lartë ( $1 )",
+       "exif-urgency-other": "Prioritet i përcaktuar nga përdoruesi ( $1 )"
+}
diff --git a/languages/i18n/exif/sr-ec.json b/languages/i18n/exif/sr-ec.json
new file mode 100644 (file)
index 0000000..cf2b244
--- /dev/null
@@ -0,0 +1,383 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Acamicamacaraca",
+                       "BadDog",
+                       "Milicevic01",
+                       "Rancher",
+                       "Sasa Stefanovic",
+                       "Сербијана"
+               ]
+       },
+       "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 прегледа",
+       "exif-jpeginterchangeformatlength": "Бајтови JPEG података",
+       "exif-whitepoint": "Хроматичност беле тачке",
+       "exif-primarychromaticities": "Хроматичност основних боја",
+       "exif-ycbcrcoefficients": "Матрични коефицијенти трансформације бојног простора",
+       "exif-referenceblackwhite": "Упутне вредности пара беле и црне тачке",
+       "exif-datetime": "Датум и време последње промене датотеке",
+       "exif-imagedescription": "Назив слике",
+       "exif-make": "Произвођач камере",
+       "exif-model": "Модел камере",
+       "exif-software": "Коришћени софтвер",
+       "exif-artist": "Аутор",
+       "exif-copyright": "Носилац ауторских права",
+       "exif-exifversion": "Exif верзија",
+       "exif-flashpixversion": "Подржана верзија FlashPix-а",
+       "exif-colorspace": "Простор боје",
+       "exif-componentsconfiguration": "Значење сваког дела",
+       "exif-compressedbitsperpixel": "Режим сажимања слике",
+       "exif-pixelxdimension": "Ширина слике",
+       "exif-pixelydimension": "Висина слике",
+       "exif-usercomment": "Кориснички коментари",
+       "exif-relatedsoundfile": "Сродне звучне датотеке",
+       "exif-datetimeoriginal": "Датум и време сликања",
+       "exif-datetimedigitized": "Датум и време дигитализације",
+       "exif-subsectime": "Део секунде у којем је сликано",
+       "exif-subsectimeoriginal": "Део секунде у којем је фотографисано",
+       "exif-subsectimedigitized": "Део секунде у којем је дигитализовано",
+       "exif-exposuretime": "Експозиција",
+       "exif-exposuretime-format": "$1 сек. ($2)",
+       "exif-fnumber": "F број",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Режим експозиције",
+       "exif-spectralsensitivity": "Спектрална осетљивост",
+       "exif-isospeedratings": "ISO осетљивост на светло",
+       "exif-shutterspeedvalue": "Брзина затварача",
+       "exif-aperturevalue": "Отвор бленде",
+       "exif-brightnessvalue": "APEX осветљеност",
+       "exif-exposurebiasvalue": "Компензација експозиције",
+       "exif-maxaperturevalue": "Највећи број отвора бленде",
+       "exif-subjectdistance": "Удаљеност до објекта",
+       "exif-meteringmode": "Режим мерача",
+       "exif-lightsource": "Извор светлости",
+       "exif-flash": "Блиц",
+       "exif-focallength": "Жаришна даљина сочива",
+       "exif-focallength-format": "$1 мм",
+       "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": "Бела равнотежа",
+       "exif-digitalzoomratio": "Однос дигиталног увеличања",
+       "exif-focallengthin35mmfilm": "Жаришна даљина за филм од 35 мм",
+       "exif-scenecapturetype": "Тип снимања сцена",
+       "exif-gaincontrol": "Контрола сцене",
+       "exif-contrast": "Контраст",
+       "exif-saturation": "Засићеност",
+       "exif-sharpness": "Оштрина",
+       "exif-devicesettingdescription": "Опис поставки уређаја",
+       "exif-subjectdistancerange": "Опсег удаљености објекта",
+       "exif-imageuniqueid": "Назнака слике",
+       "exif-gpsversionid": "Верзија GPS ознаке",
+       "exif-gpslatituderef": "Северна или јужна ширина",
+       "exif-gpslatitude": "Ширина",
+       "exif-gpslongituderef": "Источна или западна дужина",
+       "exif-gpslongitude": "Дужина",
+       "exif-gpsaltituderef": "Упутна тачка за висину",
+       "exif-gpsaltitude": "Висина",
+       "exif-gpstimestamp": "GPS време (атомски сат)",
+       "exif-gpssatellites": "Коришћени сателити",
+       "exif-gpsstatus": "Стање пријемника",
+       "exif-gpsmeasuremode": "Режим мерења",
+       "exif-gpsdop": "Прецизност мерења",
+       "exif-gpsspeedref": "Јединица за брзину",
+       "exif-gpsspeed": "Брзина GPS пријемника",
+       "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": "Име GPS подручја",
+       "exif-gpsdatestamp": "GPS датум",
+       "exif-gpsdifferential": "GPS диференцијална исправка",
+       "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-jpegfilecomment": "Коментар на датотеку JPEG",
+       "exif-keywords": "Кључне речи",
+       "exif-worldregioncreated": "Област света где је сликана фотографија",
+       "exif-countrycreated": "Земља где је сликана фотографија",
+       "exif-countrycodecreated": "Код земље где је слика направљена",
+       "exif-provinceorstatecreated": "Покрајина или држава где је сликана фотографија",
+       "exif-citycreated": "Град где је сликана фотографија",
+       "exif-sublocationcreated": "Област града где је сликана фотографија",
+       "exif-worldregiondest": "Приказана област света",
+       "exif-countrydest": "Приказана земља",
+       "exif-countrycodedest": "Код приказане земље",
+       "exif-provinceorstatedest": "Приказана покрајина или држава",
+       "exif-citydest": "Приказани град",
+       "exif-sublocationdest": "Приказана област града",
+       "exif-objectname": "Кратак наслов",
+       "exif-specialinstructions": "Посебна упутства",
+       "exif-headline": "Наслов",
+       "exif-credit": "Заслуге/пружалац услуга",
+       "exif-source": "Извор",
+       "exif-editstatus": "Уреднички статус слике",
+       "exif-urgency": "Хитност",
+       "exif-fixtureidentifier": "Назив рубрике",
+       "exif-locationdest": "Приказана локација",
+       "exif-locationdestcode": "Кôд приказане локације",
+       "exif-objectcycle": "Доба дана за који је медиј намењен",
+       "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": "Датум последње измене метаподатака",
+       "exif-nickname": "Неформалан назив слике",
+       "exif-rating": "Оцена (од 1 до 5)",
+       "exif-rightscertificate": "Потврда за управљање правима",
+       "exif-copyrighted": "Статус ауторског права",
+       "exif-copyrightowner": "Носилац ауторског права",
+       "exif-usageterms": "Правила коришћења",
+       "exif-webstatement": "Изјава о ауторском праву",
+       "exif-originaldocumentid": "Јединствени ID изворног документа",
+       "exif-licenseurl": "URL адреса лиценце за ауторска права",
+       "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-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "Несажето",
+       "exif-compression-2": "CCITT Group 3 1 – Димензионално измењено Хафманово кодирање по дужини",
+       "exif-compression-3": "CCITT Group 3 факс кодирање",
+       "exif-compression-4": "CCITT Group 4 факс кодирање",
+       "exif-compression-5": "LZW",
+       "exif-compression-6": "JPEG (стари)",
+       "exif-compression-7": "JPEG",
+       "exif-compression-8": "Deflate (Адоби)",
+       "exif-compression-32773": "PackBits (Макинтош RLE)",
+       "exif-compression-32946": "Deflate (PKZIP)",
+       "exif-compression-34712": "JPEG2000",
+       "exif-copyrighted-true": "Заштићено ауторским правом",
+       "exif-copyrighted-false": "Није дефинисан",
+       "exif-photometricinterpretation-0": "Црно-бело (бела је 0)",
+       "exif-photometricinterpretation-1": "Црно-бело (црна је 0)",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-3": "Палета",
+       "exif-photometricinterpretation-4": "Маска транспарентности",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-unknowndate": "Непознат датум",
+       "exif-orientation-1": "Нормално",
+       "exif-orientation-2": "Обрнуто по хоризонтали",
+       "exif-orientation-3": "Заокренуто 180°",
+       "exif-orientation-4": "Обрнуто по вертикали",
+       "exif-orientation-5": "Заокренуто 90° улево и обрнуто по вертикали",
+       "exif-orientation-6": "Заокренуто 90° супротно од смера казаљке",
+       "exif-orientation-7": "Заокренуто 90° удесно и обрнуто по вертикали",
+       "exif-orientation-8": "Заокренуто 90° у смеру казаљке",
+       "exif-planarconfiguration-1": "груби формат",
+       "exif-planarconfiguration-2": "планарни формат",
+       "exif-xyresolution-i": "$1 тпи",
+       "exif-xyresolution-c": "$1 тпц",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "Дештеловано",
+       "exif-componentsconfiguration-0": "не постоји",
+       "exif-componentsconfiguration-1": "Y",
+       "exif-componentsconfiguration-2": "Cb",
+       "exif-componentsconfiguration-3": "Cr",
+       "exif-componentsconfiguration-4": "R",
+       "exif-componentsconfiguration-5": "G",
+       "exif-componentsconfiguration-6": "B",
+       "exif-exposureprogram-0": "Није одређен",
+       "exif-exposureprogram-1": "Ручно",
+       "exif-exposureprogram-2": "Нормалан програм",
+       "exif-exposureprogram-3": "Приоритет отвора бленде",
+       "exif-exposureprogram-4": "Приоритет затварача",
+       "exif-exposureprogram-5": "Креативни режим (на основи потребне дубине поља)",
+       "exif-exposureprogram-6": "Спортски режим (на основи што бржег затварача)",
+       "exif-exposureprogram-7": "Портретни режим (за крупне кадрове с нејасном позадином)",
+       "exif-exposureprogram-8": "Пејзажни режим (за фотографије пејзажа с оштром позадином)",
+       "exif-subjectdistance-value": "$1 метара",
+       "exif-meteringmode-0": "Непознато",
+       "exif-meteringmode-1": "Просечно",
+       "exif-meteringmode-2": "Просек с тежиштем на средини",
+       "exif-meteringmode-3": "Тачка",
+       "exif-meteringmode-4": "Више тачака",
+       "exif-meteringmode-5": "Матрични",
+       "exif-meteringmode-6": "Делимични",
+       "exif-meteringmode-255": "Друго",
+       "exif-lightsource-0": "Непознато",
+       "exif-lightsource-1": "Дневна светлост",
+       "exif-lightsource-2": "Флуоресцентно",
+       "exif-lightsource-3": "Волфрамско",
+       "exif-lightsource-4": "Блиц",
+       "exif-lightsource-9": "Ведро време",
+       "exif-lightsource-10": "Облачно време",
+       "exif-lightsource-11": "Сенка",
+       "exif-lightsource-12": "Флуоресцентна светлост (D 5700 – 7100K)",
+       "exif-lightsource-13": "Флуоресцентна светлост (N 4600 – 5400K)",
+       "exif-lightsource-14": "Флуоресцентна светлост (W 3900 – 4500K)",
+       "exif-lightsource-15": "Бела флуоресценција (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Стандардно светло типа A",
+       "exif-lightsource-18": "Стандардно светло типа B",
+       "exif-lightsource-19": "Стандардно светло типа C",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-22": "D75",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "ISO студијска лампа",
+       "exif-lightsource-255": "Други светлосни извор",
+       "exif-flash-fired-0": "Блиц није активиран",
+       "exif-flash-fired-1": "Блиц је активиран",
+       "exif-flash-return-0": "без употребе функције стробоскопа",
+       "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-sensingmethod-7": "Тробојни линеарни сензор",
+       "exif-sensingmethod-8": "Секвенцијални линеарни сензор",
+       "exif-filesource-3": "Дигитални фотоапарат",
+       "exif-scenetype-1": "Директно фотографисана слика",
+       "exif-customrendered-0": "Нормалан процес",
+       "exif-customrendered-1": "Нестандардан процес",
+       "exif-exposuremode-0": "Аутоматска експозиција",
+       "exif-exposuremode-1": "Ручна експозиција",
+       "exif-exposuremode-2": "Аутоматски са задатим распоном",
+       "exif-whitebalance-0": "Аутоматска бела равнотежа",
+       "exif-whitebalance-1": "Ручна бела равнотежа",
+       "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-saturation-0": "Нормално",
+       "exif-saturation-1": "Ниска засићеност",
+       "exif-saturation-2": "Висока засићеност",
+       "exif-sharpness-0": "Нормално",
+       "exif-sharpness-1": "Меко",
+       "exif-sharpness-2": "Тврдо",
+       "exif-subjectdistancerange-0": "Непознато",
+       "exif-subjectdistancerange-1": "Крупни кадар",
+       "exif-subjectdistancerange-2": "Блиски кадар",
+       "exif-subjectdistancerange-3": "Далеки кадар",
+       "exif-gpslatitude-n": "Северна ширина",
+       "exif-gpslatitude-s": "Јужна ширина",
+       "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-gpsdestdistance-m": "Миље",
+       "exif-gpsdestdistance-n": "Наутичке миље",
+       "exif-gpsdop-excellent": "Одлично ($1)",
+       "exif-gpsdop-good": "Добро ($1)",
+       "exif-gpsdop-moderate": "Умерено ($1)",
+       "exif-gpsdop-fair": "Задовољавајуће ($1)",
+       "exif-gpsdop-poor": "Лоше ($1)",
+       "exif-objectcycle-a": "Само ујутру",
+       "exif-objectcycle-p": "Само увече",
+       "exif-objectcycle-b": "И ујутру и увече",
+       "exif-gpsdirection-t": "Прави правац",
+       "exif-gpsdirection-m": "Магнетни правац",
+       "exif-ycbcrpositioning-1": "Центрирано",
+       "exif-ycbcrpositioning-2": "Упоредо",
+       "exif-dc-contributor": "Доприносиоци",
+       "exif-dc-coverage": "Просторни или временски опсег медија",
+       "exif-dc-date": "Датум",
+       "exif-dc-publisher": "Издавач",
+       "exif-dc-relation": "Сродни медији",
+       "exif-dc-rights": "Права",
+       "exif-dc-source": "Извор медија",
+       "exif-dc-type": "Тип медија",
+       "exif-rating-rejected": "Одбијено",
+       "exif-isospeedratings-overflow": "Веће од 65535",
+       "exif-maxaperturevalue-value": "$1 APEX (f/$2)",
+       "exif-iimcategory-ace": "Уметност, култура и забава",
+       "exif-iimcategory-clj": "Криминал и закон",
+       "exif-iimcategory-dis": "Катастрофе и несреће",
+       "exif-iimcategory-fin": "Економија и посао",
+       "exif-iimcategory-edu": "Образовање",
+       "exif-iimcategory-evn": "Околина",
+       "exif-iimcategory-hth": "Здравље",
+       "exif-iimcategory-hum": "Занимање",
+       "exif-iimcategory-lab": "Рад",
+       "exif-iimcategory-lif": "Начин живота и слободно време",
+       "exif-iimcategory-pol": "Политика",
+       "exif-iimcategory-rel": "Религија и веровања",
+       "exif-iimcategory-sci": "Наука и технологија",
+       "exif-iimcategory-soi": "Друштвена питања",
+       "exif-iimcategory-spo": "Спорт",
+       "exif-iimcategory-war": "Рат, сукоби и немири",
+       "exif-iimcategory-wea": "Време",
+       "exif-urgency-normal": "Нормално ($1)",
+       "exif-urgency-low": "Ниско ($1)",
+       "exif-urgency-high": "Високо ($1)",
+       "exif-urgency-other": "Прилагођени приоритет ($1)"
+}
diff --git a/languages/i18n/exif/sr-el.json b/languages/i18n/exif/sr-el.json
new file mode 100644 (file)
index 0000000..73e786f
--- /dev/null
@@ -0,0 +1,382 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Michaello",
+                       "Milicevic01",
+                       "Rancher",
+                       "Zoranzoki21",
+                       "Сербијана"
+               ]
+       },
+       "exif-imagewidth": "Širina",
+       "exif-imagelength": "Visina",
+       "exif-bitspersample": "Dubina boje",
+       "exif-compression": "Način sažimanja",
+       "exif-photometricinterpretation": "Sastav piksela",
+       "exif-orientation": "Orijentacija",
+       "exif-samplesperpixel": "Broj delova",
+       "exif-planarconfiguration": "Raspored podataka",
+       "exif-ycbcrsubsampling": "Odnos veličine Y prema C",
+       "exif-ycbcrpositioning": "Položaj Y i C",
+       "exif-xresolution": "Vodoravna rezolucija",
+       "exif-yresolution": "Vertikalna rezolucija",
+       "exif-stripoffsets": "Lokacija podataka slike",
+       "exif-rowsperstrip": "Broj redova po liniji",
+       "exif-stripbytecounts": "Bajtova po sažetom bloku",
+       "exif-jpeginterchangeformat": "Početak JPEG pregleda",
+       "exif-jpeginterchangeformatlength": "Bajtovi JPEG podataka",
+       "exif-whitepoint": "Hromatičnost bele tačke",
+       "exif-primarychromaticities": "Hromatičnost osnovnih boja",
+       "exif-ycbcrcoefficients": "Matrični koeficijenti transformacije bojnog prostora",
+       "exif-referenceblackwhite": "Uputne vrednosti para bele i crne tačke",
+       "exif-datetime": "Datum i vreme poslednje promene datoteke",
+       "exif-imagedescription": "Naziv slike",
+       "exif-make": "Proizvođač kamere",
+       "exif-model": "Model kamere",
+       "exif-software": "Korišćeni softver",
+       "exif-artist": "Autor",
+       "exif-copyright": "Nosilac autorskih prava",
+       "exif-exifversion": "Exif verzija",
+       "exif-flashpixversion": "Podržana verzija FlashPix-a",
+       "exif-colorspace": "Prostor boje",
+       "exif-componentsconfiguration": "Značenje svakog dela",
+       "exif-compressedbitsperpixel": "Režim sažimanja slike",
+       "exif-pixelxdimension": "Širina slike",
+       "exif-pixelydimension": "Visina slike",
+       "exif-usercomment": "Korisnički komentari",
+       "exif-relatedsoundfile": "Srodne zvučne datoteke",
+       "exif-datetimeoriginal": "Datum i vreme slikanja",
+       "exif-datetimedigitized": "Datum i vreme digitalizacije",
+       "exif-subsectime": "Deo sekunde u kojem je slikano",
+       "exif-subsectimeoriginal": "Deo sekunde u kojem je fotografisano",
+       "exif-subsectimedigitized": "Deo sekunde u kojem je digitalizovano",
+       "exif-exposuretime": "Ekspozicija",
+       "exif-exposuretime-format": "$1 sek. ($2)",
+       "exif-fnumber": "F broj",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Režim ekspozicije",
+       "exif-spectralsensitivity": "Spektralna osetljivost",
+       "exif-isospeedratings": "ISO osetljivost na svetlo",
+       "exif-shutterspeedvalue": "Brzina zatvarača",
+       "exif-aperturevalue": "Otvor blende",
+       "exif-brightnessvalue": "APEX osvetljenost",
+       "exif-exposurebiasvalue": "Kompenzacija ekspozicije",
+       "exif-maxaperturevalue": "Najveći broj otvora blende",
+       "exif-subjectdistance": "Udaljenost do objekta",
+       "exif-meteringmode": "Režim merača",
+       "exif-lightsource": "Izvor svetlosti",
+       "exif-flash": "Blic",
+       "exif-focallength": "Žarišna daljina sočiva",
+       "exif-focallength-format": "$1 mm",
+       "exif-subjectarea": "Položaj i površina objekta",
+       "exif-flashenergy": "Energija blica",
+       "exif-focalplanexresolution": "Rezolucija fokusne ravni X",
+       "exif-focalplaneyresolution": "Rezolucija fokusne ravni Y",
+       "exif-focalplaneresolutionunit": "Jedinica za rezoluciju fokusne ravni",
+       "exif-subjectlocation": "Položaj objekta",
+       "exif-exposureindex": "Indeks ekspozicije",
+       "exif-sensingmethod": "Način senzora",
+       "exif-filesource": "Izvorna datoteka",
+       "exif-scenetype": "Tip scene",
+       "exif-customrendered": "Prilagođena obrada slika",
+       "exif-exposuremode": "Režim ekspozicije",
+       "exif-whitebalance": "Bela ravnoteža",
+       "exif-digitalzoomratio": "Odnos digitalnog uveličanja",
+       "exif-focallengthin35mmfilm": "Žarišna daljina za film od 35 mm",
+       "exif-scenecapturetype": "Tip snimanja scena",
+       "exif-gaincontrol": "Kontrola scene",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Zasićenost",
+       "exif-sharpness": "Oštrina",
+       "exif-devicesettingdescription": "Opis postavki uređaja",
+       "exif-subjectdistancerange": "Opseg udaljenosti objekta",
+       "exif-imageuniqueid": "Naznaka slike",
+       "exif-gpsversionid": "Verzija GPS oznake",
+       "exif-gpslatituderef": "Severna ili južna širina",
+       "exif-gpslatitude": "Širina",
+       "exif-gpslongituderef": "Istočna ili zapadna dužina",
+       "exif-gpslongitude": "Dužina",
+       "exif-gpsaltituderef": "Uputna tačka za visinu",
+       "exif-gpsaltitude": "Visina",
+       "exif-gpstimestamp": "GPS vreme (atomski sat)",
+       "exif-gpssatellites": "Korišćeni sateliti",
+       "exif-gpsstatus": "Stanje prijemnika",
+       "exif-gpsmeasuremode": "Režim merenja",
+       "exif-gpsdop": "Preciznost merenja",
+       "exif-gpsspeedref": "Jedinica za brzinu",
+       "exif-gpsspeed": "Brzina GPS prijemnika",
+       "exif-gpstrackref": "Uput za pravac kretanja",
+       "exif-gpstrack": "Pravac kretanja",
+       "exif-gpsimgdirectionref": "Uput za pravac slike",
+       "exif-gpsimgdirection": "Pravac slike",
+       "exif-gpsmapdatum": "Korišćeni geodetski koordinatni sistem",
+       "exif-gpsdestlatituderef": "Indeks za geografsku širinu objekta",
+       "exif-gpsdestlatitude": "Geografska širina objekta",
+       "exif-gpsdestlongituderef": "Indeks za geografsku dužinu objekta",
+       "exif-gpsdestlongitude": "Geografska dužina objekta",
+       "exif-gpsdestbearingref": "Indeks azimuta objekta",
+       "exif-gpsdestbearing": "Azimut objekta",
+       "exif-gpsdestdistanceref": "Merna jedinica za udaljenost objekta",
+       "exif-gpsdestdistance": "Udaljenost objekta",
+       "exif-gpsprocessingmethod": "Ime načina obrade GPS podataka",
+       "exif-gpsareainformation": "Ime GPS područja",
+       "exif-gpsdatestamp": "GPS datum",
+       "exif-gpsdifferential": "GPS diferencijalna ispravka",
+       "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-jpegfilecomment": "Komentar na datoteku JPEG",
+       "exif-keywords": "Ključne reči",
+       "exif-worldregioncreated": "Oblast sveta gde je slikana fotografija",
+       "exif-countrycreated": "Zemlja gde je slikana fotografija",
+       "exif-countrycodecreated": "Kod zemlje gde je slika napravljena",
+       "exif-provinceorstatecreated": "Pokrajina ili država gde je slikana fotografija",
+       "exif-citycreated": "Grad gde je slikana fotografija",
+       "exif-sublocationcreated": "Oblast grada gde je slikana fotografija",
+       "exif-worldregiondest": "Prikazana oblast sveta",
+       "exif-countrydest": "Prikazana zemlja",
+       "exif-countrycodedest": "Kod prikazane zemlje",
+       "exif-provinceorstatedest": "Prikazana pokrajina ili država",
+       "exif-citydest": "Prikazani grad",
+       "exif-sublocationdest": "Prikazana oblast grada",
+       "exif-objectname": "Kratak naslov",
+       "exif-specialinstructions": "Posebna uputstva",
+       "exif-headline": "Naslov",
+       "exif-credit": "Zasluge/pružalac usluga",
+       "exif-source": "Izvor",
+       "exif-editstatus": "Urednički status slike",
+       "exif-urgency": "Hitnost",
+       "exif-fixtureidentifier": "Naziv rubrike",
+       "exif-locationdest": "Prikazana lokacija",
+       "exif-locationdestcode": "Kôd prikazane lokacije",
+       "exif-objectcycle": "Doba dana za koji je medij namenjen",
+       "exif-contact": "Podaci za kontakt",
+       "exif-writer": "Pisac",
+       "exif-languagecode": "Jezik",
+       "exif-iimversion": "IIM verzija",
+       "exif-iimcategory": "Kategorija",
+       "exif-iimsupplementalcategory": "Dopunske kategorije",
+       "exif-datetimeexpires": "Ne koristi nakon",
+       "exif-datetimereleased": "Objavljeno",
+       "exif-originaltransmissionref": "Prvobitni kod lokacije prenosa",
+       "exif-identifier": "Naznaka",
+       "exif-lens": "Korišćeni objektiv",
+       "exif-serialnumber": "Serijski broj kamere",
+       "exif-cameraownername": "Vlasnik kamere",
+       "exif-label": "Naziv",
+       "exif-datetimemetadata": "Datum poslednje izmene metapodataka",
+       "exif-nickname": "Neformalan naziv slike",
+       "exif-rating": "Ocena (od 1 do 5)",
+       "exif-rightscertificate": "Potvrda za upravljanje pravima",
+       "exif-copyrighted": "Status autorskog prava",
+       "exif-copyrightowner": "Nosilac autorskog prava",
+       "exif-usageterms": "Pravila korišćenja",
+       "exif-webstatement": "Izjava o autorskom pravu",
+       "exif-originaldocumentid": "Jedinstveni ID izvornog dokumenta",
+       "exif-licenseurl": "URL adresa licence za autorska prava",
+       "exif-morepermissionsurl": "Rezervni podaci o licenciranju",
+       "exif-attributionurl": "Pri ponovnom korišćenju ovog rada, koristite vezu do",
+       "exif-preferredattributionname": "Pri ponovnom korišćenju ovog rada, postavite zasluge",
+       "exif-pngfilecomment": "Komentar na datoteku PNG",
+       "exif-disclaimer": "Odricanje odgovornosti",
+       "exif-contentwarning": "Upozorenje o sadržaju",
+       "exif-giffilecomment": "Komentar na datoteku GIF",
+       "exif-intellectualgenre": "Tip stavke",
+       "exif-subjectnewscode": "Kod teme",
+       "exif-scenecode": "IPTC kod scene",
+       "exif-event": "Prikazani događaj",
+       "exif-organisationinimage": "Prikazana organizacija",
+       "exif-personinimage": "Prikazana osoba",
+       "exif-originalimageheight": "Visina slike pre isecanja",
+       "exif-originalimagewidth": "Širina slike pre isecanja",
+       "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "Nesažeto",
+       "exif-compression-2": "CCITT Group 3 1 – Dimenzionalno izmenjeno Hafmanovo kodiranje po dužini",
+       "exif-compression-3": "CCITT Group 3 faks kodiranje",
+       "exif-compression-4": "CCITT Group 4 faks kodiranje",
+       "exif-compression-5": "LZW",
+       "exif-compression-6": "JPEG (stari)",
+       "exif-compression-7": "JPEG",
+       "exif-compression-8": "Deflate (Adobi)",
+       "exif-compression-32773": "PackBits (Makintoš RLE)",
+       "exif-compression-32946": "Deflate (PKZIP)",
+       "exif-compression-34712": "JPEG2000",
+       "exif-copyrighted-true": "Zaštićeno autorskim pravom",
+       "exif-copyrighted-false": "Nije definisan",
+       "exif-photometricinterpretation-0": "Crno-belo (bela je 0)",
+       "exif-photometricinterpretation-1": "Crno-belo (crna je 0)",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-3": "Paleta",
+       "exif-photometricinterpretation-4": "Maska transparentnosti",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-unknowndate": "Nepoznat datum",
+       "exif-orientation-1": "Normalno",
+       "exif-orientation-2": "Obrnuto po horizontali",
+       "exif-orientation-3": "Zaokrenuto 180°",
+       "exif-orientation-4": "Obrnuto po vertikali",
+       "exif-orientation-5": "Zaokrenuto 90° ulevo i obrnuto po vertikali",
+       "exif-orientation-6": "Zaokrenuto 90° suprotno od smera kazaljke",
+       "exif-orientation-7": "Zaokrenuto 90° udesno i obrnuto po vertikali",
+       "exif-orientation-8": "Zaokrenuto 90° u smeru kazaljke",
+       "exif-planarconfiguration-1": "grubi format",
+       "exif-planarconfiguration-2": "planarni format",
+       "exif-xyresolution-i": "$1 tpi",
+       "exif-xyresolution-c": "$1 tpc",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "Deštelovano",
+       "exif-componentsconfiguration-0": "ne postoji",
+       "exif-componentsconfiguration-1": "Y",
+       "exif-componentsconfiguration-2": "Cb",
+       "exif-componentsconfiguration-3": "Cr",
+       "exif-componentsconfiguration-4": "R",
+       "exif-componentsconfiguration-5": "G",
+       "exif-componentsconfiguration-6": "B",
+       "exif-exposureprogram-0": "Nije određen",
+       "exif-exposureprogram-1": "Ručno",
+       "exif-exposureprogram-2": "Normalan program",
+       "exif-exposureprogram-3": "Prioritet otvora blende",
+       "exif-exposureprogram-4": "Prioritet zatvarača",
+       "exif-exposureprogram-5": "Kreativni režim (na osnovi potrebne dubine polja)",
+       "exif-exposureprogram-6": "Sportski režim (na osnovi što bržeg zatvarača)",
+       "exif-exposureprogram-7": "Portretni režim (za krupne kadrove s nejasnom pozadinom)",
+       "exif-exposureprogram-8": "Pejzažni režim (za fotografije pejzaža s oštrom pozadinom)",
+       "exif-subjectdistance-value": "$1 metara",
+       "exif-meteringmode-0": "Nepoznato",
+       "exif-meteringmode-1": "Prosečno",
+       "exif-meteringmode-2": "Prosek s težištem na sredini",
+       "exif-meteringmode-3": "Tačka",
+       "exif-meteringmode-4": "Više tačaka",
+       "exif-meteringmode-5": "Matrični",
+       "exif-meteringmode-6": "Delimični",
+       "exif-meteringmode-255": "Drugo",
+       "exif-lightsource-0": "Nepoznato",
+       "exif-lightsource-1": "Dnevna svetlost",
+       "exif-lightsource-2": "Fluorescentno",
+       "exif-lightsource-3": "Volframsko",
+       "exif-lightsource-4": "Blic",
+       "exif-lightsource-9": "Vedro vreme",
+       "exif-lightsource-10": "Oblačno vreme",
+       "exif-lightsource-11": "Senka",
+       "exif-lightsource-12": "Fluorescentna svetlost (D 5700 – 7100K)",
+       "exif-lightsource-13": "Fluorescentna svetlost (N 4600 – 5400K)",
+       "exif-lightsource-14": "Fluorescentna svetlost (W 3900 – 4500K)",
+       "exif-lightsource-15": "Bela fluorescencija (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standardno svetlo tipa A",
+       "exif-lightsource-18": "Standardno svetlo tipa B",
+       "exif-lightsource-19": "Standardno svetlo tipa C",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-22": "D75",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "ISO studijska lampa",
+       "exif-lightsource-255": "Drugi svetlosni izvor",
+       "exif-flash-fired-0": "Blic nije aktiviran",
+       "exif-flash-fired-1": "Blic je aktiviran",
+       "exif-flash-return-0": "bez upotrebe funkcije stroboskopa",
+       "exif-flash-return-2": "nije prepoznato pozadinsko osvetljenje sa stroboskopa",
+       "exif-flash-return-3": "prepoznato je pozadinsko osvetljenje sa stroboskopa",
+       "exif-flash-mode-1": "obavezno sa blicem",
+       "exif-flash-mode-2": "obavezno bez blica",
+       "exif-flash-mode-3": "automatski režim",
+       "exif-flash-function-1": "Nema funkcije za blic",
+       "exif-flash-redeye-1": "režim ispravke crvenih očiju",
+       "exif-focalplaneresolutionunit-2": "inči",
+       "exif-sensingmethod-1": "Nedefinisan",
+       "exif-sensingmethod-2": "Jednokristalni matrični senzor",
+       "exif-sensingmethod-3": "Dvokristalni matrični senzor",
+       "exif-sensingmethod-4": "Trokristalni matrični senzor",
+       "exif-sensingmethod-5": "Sekvencijalni matrični senzor",
+       "exif-sensingmethod-7": "Trobojni linearni senzor",
+       "exif-sensingmethod-8": "Sekvencijalni linearni senzor",
+       "exif-filesource-3": "Digitalni fotoaparat",
+       "exif-scenetype-1": "Direktno fotografisana slika",
+       "exif-customrendered-0": "Normalan proces",
+       "exif-customrendered-1": "Nestandardan proces",
+       "exif-exposuremode-0": "Automatska ekspozicija",
+       "exif-exposuremode-1": "Ručna ekspozicija",
+       "exif-exposuremode-2": "Automatski sa zadatim rasponom",
+       "exif-whitebalance-0": "Automatska bela ravnoteža",
+       "exif-whitebalance-1": "Ručna bela ravnoteža",
+       "exif-scenecapturetype-0": "Standardno",
+       "exif-scenecapturetype-1": "Pejzaž",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Noćna scena",
+       "exif-gaincontrol-0": "Nema",
+       "exif-gaincontrol-1": "Malo povećanje",
+       "exif-gaincontrol-2": "Veliko povećanje",
+       "exif-gaincontrol-3": "Malo smanjenje",
+       "exif-gaincontrol-4": "Veliko smanjenje",
+       "exif-contrast-0": "Normalno",
+       "exif-contrast-1": "Meko",
+       "exif-contrast-2": "Tvrdo",
+       "exif-saturation-0": "Normalno",
+       "exif-saturation-1": "Niska zasićenost",
+       "exif-saturation-2": "Visoka zasićenost",
+       "exif-sharpness-0": "Normalno",
+       "exif-sharpness-1": "Meko",
+       "exif-sharpness-2": "Tvrdo",
+       "exif-subjectdistancerange-0": "Nepoznato",
+       "exif-subjectdistancerange-1": "Krupni kadar",
+       "exif-subjectdistancerange-2": "Bliski kadar",
+       "exif-subjectdistancerange-3": "Daleki kadar",
+       "exif-gpslatitude-n": "Severna širina",
+       "exif-gpslatitude-s": "Južna širina",
+       "exif-gpslongitude-e": "Istočna dužina",
+       "exif-gpslongitude-w": "Zapadna dužina",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metar|metra|metara}} nadmorske visine",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metar|metra|metara}} ispod nivoa mora",
+       "exif-gpsstatus-a": "Merenje u toku",
+       "exif-gpsstatus-v": "Spreman za prenos",
+       "exif-gpsmeasuremode-2": "Dvodimenzionalno merenje",
+       "exif-gpsmeasuremode-3": "Trodimenzionalno merenje",
+       "exif-gpsspeed-k": "Kilometri na čas",
+       "exif-gpsspeed-m": "Milje na čas",
+       "exif-gpsspeed-n": "Čvorovi",
+       "exif-gpsdestdistance-k": "Kilometri",
+       "exif-gpsdestdistance-m": "Milje",
+       "exif-gpsdestdistance-n": "Nautičke milje",
+       "exif-gpsdop-excellent": "Odlično ($1)",
+       "exif-gpsdop-good": "Dobro ($1)",
+       "exif-gpsdop-moderate": "Umereno ($1)",
+       "exif-gpsdop-fair": "Zadovoljavajuće ($1)",
+       "exif-gpsdop-poor": "Loše ($1)",
+       "exif-objectcycle-a": "Samo ujutru",
+       "exif-objectcycle-p": "Samo uveče",
+       "exif-objectcycle-b": "I ujutru i uveče",
+       "exif-gpsdirection-t": "Pravi pravac",
+       "exif-gpsdirection-m": "Magnetni pravac",
+       "exif-ycbcrpositioning-1": "Centrirano",
+       "exif-ycbcrpositioning-2": "Uporedo",
+       "exif-dc-contributor": "Doprinosioci",
+       "exif-dc-coverage": "Prostorni ili vremenski opseg medija",
+       "exif-dc-date": "Datum",
+       "exif-dc-publisher": "Izdavač",
+       "exif-dc-relation": "Srodni mediji",
+       "exif-dc-rights": "Prava",
+       "exif-dc-source": "Izvor medija",
+       "exif-dc-type": "Tip medija",
+       "exif-rating-rejected": "Odbijeno",
+       "exif-isospeedratings-overflow": "Veće od 65535",
+       "exif-maxaperturevalue-value": "$1 APEX (f/$2)",
+       "exif-iimcategory-ace": "Umetnost, kultura i zabava",
+       "exif-iimcategory-clj": "Kriminal i zakon",
+       "exif-iimcategory-dis": "Katastrofe i nesreće",
+       "exif-iimcategory-fin": "Ekonomija i posao",
+       "exif-iimcategory-edu": "Obrazovanje",
+       "exif-iimcategory-evn": "Okolina",
+       "exif-iimcategory-hth": "Zdravlje",
+       "exif-iimcategory-hum": "Zanimanje",
+       "exif-iimcategory-lab": "Rad",
+       "exif-iimcategory-lif": "Način života i slobodno vreme",
+       "exif-iimcategory-pol": "Politika",
+       "exif-iimcategory-rel": "Religija i verovanja",
+       "exif-iimcategory-sci": "Nauka i tehnologija",
+       "exif-iimcategory-soi": "Društvena pitanja",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Rat, sukobi i nemiri",
+       "exif-iimcategory-wea": "Vreme",
+       "exif-urgency-normal": "Normalno ($1)",
+       "exif-urgency-low": "Nisko ($1)",
+       "exif-urgency-high": "Visoko ($1)",
+       "exif-urgency-other": "Prilagođeni prioritet ($1)"
+}
diff --git a/languages/i18n/exif/stq.json b/languages/i18n/exif/stq.json
new file mode 100644 (file)
index 0000000..0623aa6
--- /dev/null
@@ -0,0 +1,274 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Maartenvdbent",
+                       "Pyt"
+               ]
+       },
+       "exif-imagewidth": "Bratte",
+       "exif-imagelength": "Laangte",
+       "exif-bitspersample": "Bits pro Faawenkomponente",
+       "exif-compression": "Oard fon ju Kompression",
+       "exif-photometricinterpretation": "Pixeltouhoopesättenge",
+       "exif-orientation": "Kamera-Uutgjuchtenge",
+       "exif-samplesperpixel": "Antaal Komponente",
+       "exif-planarconfiguration": "Doatenuutgjuchtenge",
+       "exif-ycbcrsubsampling": "Subsampling Rate fon Y bit C",
+       "exif-ycbcrpositioning": "Y un C Positionierenge",
+       "exif-xresolution": "Horizontoale Aplöösenge",
+       "exif-yresolution": "Vertikoale Aplöösenge",
+       "exif-stripoffsets": "Bieldedoatenfersät",
+       "exif-rowsperstrip": "Antaal Riegen pro Striepe",
+       "exif-stripbytecounts": "Bytes pro komprimierten Striep",
+       "exif-jpeginterchangeformat": "Offset tou JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Gratte fon do JPEG SOI-Doaten in Bytes",
+       "exif-whitepoint": "Manuell mäd Meetenge",
+       "exif-primarychromaticities": "Chromatizitäte fon primäre Faawen",
+       "exif-ycbcrcoefficients": "YCbCr-Koeffiziente",
+       "exif-referenceblackwhite": "Swot/Wiet-Referenzpunkte",
+       "exif-datetime": "Spiekertiedpunkt",
+       "exif-imagedescription": "Bieldetittel",
+       "exif-make": "Häärstaaler",
+       "exif-model": "Modäl",
+       "exif-software": "Software",
+       "exif-artist": "Photograph",
+       "exif-copyright": "Uurheebergjuchte",
+       "exif-exifversion": "Exif-Version",
+       "exif-flashpixversion": "unnerstöände Flashpix-Version",
+       "exif-colorspace": "Faawenruum",
+       "exif-componentsconfiguration": "Betjuudenge fon älke Komponente",
+       "exif-compressedbitsperpixel": "Komprimierde Bits pro Pixel",
+       "exif-pixelxdimension": "Bieldebratte",
+       "exif-pixelydimension": "Bieldehöchte",
+       "exif-usercomment": "Benutserkommentoare",
+       "exif-relatedsoundfile": "Touheerige Toondoatäi",
+       "exif-datetimeoriginal": "Ärfoatengstiedpunkt",
+       "exif-datetimedigitized": "Digitalisierengstiedpunkt",
+       "exif-subsectime": "Spiekertiedpunkt",
+       "exif-subsectimeoriginal": "Ärfoatengstiedpunkt",
+       "exif-subsectimedigitized": "Digitoalisierengstiedpunkt",
+       "exif-exposuretime": "Beljoachtengsduur",
+       "exif-exposuretime-format": "$1 Sekunden ($2)",
+       "exif-fnumber": "Blände",
+       "exif-exposureprogram": "Beljuchtengsprogram",
+       "exif-spectralsensitivity": "Beljoachtengstiedwäid",
+       "exif-isospeedratings": "Film- of Sensorämpfiendelkaid (ISO)",
+       "exif-shutterspeedvalue": "APEX-Beluchtengstiedwäid",
+       "exif-aperturevalue": "APEX-Bländenwäid",
+       "exif-brightnessvalue": "APEX-Ljoachtegaidswäid",
+       "exif-exposurebiasvalue": "Beljuchtengsfoargoawe",
+       "exif-maxaperturevalue": "Grootste Blände",
+       "exif-subjectdistance": "Fierte",
+       "exif-meteringmode": "Meetferfoaren",
+       "exif-lightsource": "Luchtwälle",
+       "exif-flash": "Blits (Loai!)",
+       "exif-focallength": "Baadenwiete",
+       "exif-subjectarea": "Beräk",
+       "exif-flashenergy": "Blitsstäärke",
+       "exif-focalplanexresolution": "Sensoraplöösenge horizontoal",
+       "exif-focalplaneyresolution": "Sensoraplöösenge vertikoal",
+       "exif-focalplaneresolutionunit": "Eenhaid fon Sensoraplöösenge",
+       "exif-subjectlocation": "Motivstandploats",
+       "exif-exposureindex": "Beljuchtengsindex",
+       "exif-sensingmethod": "Meetmethode",
+       "exif-filesource": "Wälle fon ju Doatäi",
+       "exif-scenetype": "Scenetyp",
+       "exif-customrendered": "Benutserdefinierde Bieldeferoarbaidenge",
+       "exif-exposuremode": "Beljuchtengsmodus",
+       "exif-whitebalance": "Wiet-Ougliek",
+       "exif-digitalzoomratio": "Digitoalzoom",
+       "exif-focallengthin35mmfilm": "Baadenwiete",
+       "exif-scenecapturetype": "Apnoame-Oard",
+       "exif-gaincontrol": "Ferstäärkenge",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Säädigenge",
+       "exif-sharpness": "Skäärpegaid",
+       "exif-devicesettingdescription": "Reewen-Ienstaalenge",
+       "exif-subjectdistancerange": "Motivfierte",
+       "exif-imageuniqueid": "Bielde-ID",
+       "exif-gpsversionid": "GPS-Tag-Version",
+       "exif-gpslatituderef": "noudelke of suudelke Bratte",
+       "exif-gpslatitude": "Geografiske Bratte",
+       "exif-gpslongituderef": "aastelke of wäästelke Laangte",
+       "exif-gpslongitude": "Geografiske Laangte",
+       "exif-gpsaltituderef": "Beluukengshöchte",
+       "exif-gpsaltitude": "Höchte",
+       "exif-gpstimestamp": "GPS-Tied",
+       "exif-gpssatellites": "Foar ju Meetenge benutsede Satellite",
+       "exif-gpsstatus": "Ämpfangerstoatus",
+       "exif-gpsmeasuremode": "Meetferfoaren",
+       "exif-gpsdop": "Meetpräzision",
+       "exif-gpsspeedref": "Gauegaids-Eenhaid",
+       "exif-gpsspeed": "Gauegaid fon dän GPS-Ämpfanger",
+       "exif-gpstrackref": "Referenz foar Bewäägengsgjuchte",
+       "exif-gpstrack": "Bewäägengsgjuchte",
+       "exif-gpsimgdirectionref": "Referenz foar ju Uutgjuchtenge fon ju Bielde",
+       "exif-gpsimgdirection": "Bieldegjuchte",
+       "exif-gpsmapdatum": "Geodätiske Apnoame-Doaten benutsed",
+       "exif-gpsdestlatituderef": "Referenz foar ju Bratte",
+       "exif-gpsdestlatitude": "Bratte",
+       "exif-gpsdestlongituderef": "Referenz foar ju Laangte",
+       "exif-gpsdestlongitude": "Laangte",
+       "exif-gpsdestbearingref": "Referenz foar Motivgjuchte",
+       "exif-gpsdestbearing": "Motivgjuchte",
+       "exif-gpsdestdistanceref": "Referenz foar Motivfierte",
+       "exif-gpsdestdistance": "Motivfierte",
+       "exif-gpsprocessingmethod": "Noome fon dät GPS-Ferfoaren",
+       "exif-gpsareainformation": "Noome fon dät GPS-Gestrich",
+       "exif-gpsdatestamp": "GPS-Doatum",
+       "exif-gpsdifferential": "GPS-Differentioalkorrektur",
+       "exif-jpegfilecomment": "JPEG-Doatäikommentoar",
+       "exif-keywords": "Koaiwoude",
+       "exif-worldregioncreated": "Waareldregion in ju dät Foto apnuumen wuud",
+       "exif-countrycreated": "Stoat in dän dät Foto apnuumen wuud",
+       "exif-countrycodecreated": "Code foar dän Stoat in dän dät Foto apnuumen wuud",
+       "exif-provinceorstatecreated": "Provinz of Glidstoat in dän dät Foto apnuumen wuud",
+       "exif-citycreated": "Stääd in ju dät Foto aonuumen wuud",
+       "exif-sublocationcreated": "Beräk fon de Stääd in dän dät Foto apnuumen wuud",
+       "exif-worldregiondest": "Wiesde Waareldregione",
+       "exif-countrydest": "Wiesden Stoat",
+       "exif-countrycodedest": "Code foar dän wiesden Stoat",
+       "exif-provinceorstatedest": "Wiesde Provinz of Glidstoat",
+       "exif-citydest": "Wiesde Stääd",
+       "exif-sublocationdest": "Beräk fon de wiesde Stääd",
+       "exif-objectname": "Kuuten Tittel",
+       "exif-specialinstructions": "Besunnere Anwiesengen",
+       "exif-headline": "Tittel",
+       "exif-credit": "Noomensnaamengte/Fereepentelker",
+       "exif-source": "Wälle",
+       "exif-editstatus": "Redaktionelle Stoatus fon dät Foto",
+       "exif-urgency": "Tringelkhaid",
+       "exif-fixtureidentifier": "Kolumne",
+       "exif-locationdest": "Deerstoalden Standoart",
+       "exif-locationdestcode": "Code foar dän deerstoalde Standoart",
+       "exif-objectcycle": "Tied fon dän Dai, foar ju dit Medium bestimd is",
+       "exif-contact": "Kontaktinformatione",
+       "exif-writer": "Ferfoater",
+       "exif-languagecode": "Sproake",
+       "exif-iimversion": "IM-Version",
+       "exif-iimcategory": "Kategorie",
+       "exif-iimsupplementalcategory": "Kategorien uurhoop",
+       "exif-datetimeexpires": "Nit ferweende ätter",
+       "exif-originaltransmissionref": "Code fon dän Standoart fon dän dät Foto tousoand wuud",
+       "exif-identifier": "Kannenge",
+       "exif-lens": "Ferwoand Objektiv",
+       "exif-serialnumber": "Seriennummer fon ju Kamera",
+       "exif-cameraownername": "Kamerabesitter",
+       "exif-label": "Beteekenge",
+       "exif-datetimemetadata": "Doatum tou dän do Metadoaten toulääst annerd wuuden",
+       "exif-nickname": "Gebruukelke Noome fon dät Foto",
+       "exif-rating": "Beweertenge (uut 5)",
+       "exif-rightscertificate": "Gjuchteferwaltengszertifikoat",
+       "exif-copyrighted": "Uurhieuwergjuchtstoatus",
+       "exif-copyrightowner": "Uurhieuwergjuchtsienhääber",
+       "exif-compression-1": "Uunkomprimierd",
+       "exif-unknowndate": "Uunbekoand Doatum",
+       "exif-orientation-1": "Normoal",
+       "exif-orientation-2": "Horizontoal uumewoand",
+       "exif-orientation-3": "Uum 180° uumewoand",
+       "exif-orientation-4": "Vertikoal uumewoand",
+       "exif-orientation-5": "Juun dän Klokkenwiesersin uum 90° troald un vertikoal uumewoand",
+       "exif-orientation-6": "Uum 90° juun dän Klokkenwiesersin troald",
+       "exif-orientation-7": "Uum 90° in Klokkenwiesersin troald un vertikoal uumewoand",
+       "exif-orientation-8": "Uum 90° in dän Klokkenwiesersin troald",
+       "exif-planarconfiguration-1": "Groafformoat",
+       "exif-planarconfiguration-2": "Planoarformoat",
+       "exif-componentsconfiguration-0": "Bestoant nit",
+       "exif-exposureprogram-0": "Uunbekoand",
+       "exif-exposureprogram-1": "Manuäl",
+       "exif-exposureprogram-2": "Standoardprogram",
+       "exif-exposureprogram-3": "Tiedautomatik",
+       "exif-exposureprogram-4": "Bländenautomatik",
+       "exif-exposureprogram-5": "Kreativprogram mäd Befoarluukenge fon ne hooge Skäärpendjupte",
+       "exif-exposureprogram-6": "Aktion-Program mäd Befoarluukenge fon ne kute Beljoachtengstied",
+       "exif-exposureprogram-7": "Portrait-Program",
+       "exif-exposureprogram-8": "Londskupsapnoamen",
+       "exif-subjectdistance-value": "$1 Meters",
+       "exif-meteringmode-0": "Uunbekoand",
+       "exif-meteringmode-1": "in n Truchsleek",
+       "exif-meteringmode-2": "Middezentrierd",
+       "exif-meteringmode-3": "Punktmeetenge",
+       "exif-meteringmode-4": "Moorfachpunktmeetenge",
+       "exif-meteringmode-5": "Muster",
+       "exif-meteringmode-6": "Bieldedeel",
+       "exif-meteringmode-255": "Uur",
+       "exif-lightsource-0": "Uunbekoand",
+       "exif-lightsource-1": "Deegeslucht",
+       "exif-lightsource-2": "Fluoreszierjend",
+       "exif-lightsource-3": "Gloilaampe",
+       "exif-lightsource-4": "Blits (Loai)",
+       "exif-lightsource-9": "Fluch Weeder",
+       "exif-lightsource-10": "beleekene Luft",
+       "exif-lightsource-11": "Skaad",
+       "exif-lightsource-12": "Deegeslucht fluoreszierjend (D 5700–7100 K)",
+       "exif-lightsource-13": "Deegeswiet fluoreszierjend (N 4600–5400 K)",
+       "exif-lightsource-14": "Kooldwiet fluoreszierjend (W 3900–4500 K)",
+       "exif-lightsource-15": "Wiet fluoreszierjend (WW 3200–3700 K)",
+       "exif-lightsource-17": "Standoardlucht A",
+       "exif-lightsource-18": "Standoardlucht B",
+       "exif-lightsource-19": "Standoardlucht C",
+       "exif-lightsource-24": "ISO Studio Kunstlucht",
+       "exif-lightsource-255": "Uur Luchtwälle",
+       "exif-flash-fired-0": "naan Lai",
+       "exif-flash-fired-1": "Lai uutlöösd",
+       "exif-flash-return-0": "Lai soant neen Doaten",
+       "exif-flash-return-2": "neen Reflexion fon dän Lai fääststoald",
+       "exif-flash-return-3": "Reflexion fon dän Lai fääststoald",
+       "exif-flash-mode-1": "twoangen laien",
+       "exif-flash-mode-2": "Lai ouskalted",
+       "exif-flash-mode-3": "Automatik",
+       "exif-flash-function-1": "Neen Laifunktion",
+       "exif-flash-redeye-1": "Roodoogene-Reduktion",
+       "exif-focalplaneresolutionunit-2": "Tuume",
+       "exif-sensingmethod-1": "Uundefinierd",
+       "exif-sensingmethod-2": "Een-Chip-Faawesensor",
+       "exif-sensingmethod-3": "Twoo-Chip-Faawesensor",
+       "exif-sensingmethod-4": "Trjoo-Chip-Faawesensor",
+       "exif-sensingmethod-5": "Color sequential area sensor",
+       "exif-sensingmethod-7": "Trilinearen Sensor",
+       "exif-sensingmethod-8": "Color sequential linear sensor",
+       "exif-filesource-3": "Digitoale Standbieldekamera",
+       "exif-scenetype-1": "Normoal",
+       "exif-customrendered-0": "Standoard",
+       "exif-customrendered-1": "Benutserdefinierd",
+       "exif-exposuremode-0": "Automatiske Beluchtenge",
+       "exif-exposuremode-1": "Manuelle Beluchtenge",
+       "exif-exposuremode-2": "Beluchtengsriege",
+       "exif-whitebalance-0": "Automatisk",
+       "exif-whitebalance-1": "Manuäl",
+       "exif-scenecapturetype-0": "Standoard",
+       "exif-scenecapturetype-1": "Londskup",
+       "exif-scenecapturetype-2": "Portrait",
+       "exif-scenecapturetype-3": "Noachtszene",
+       "exif-gaincontrol-0": "Neen",
+       "exif-gaincontrol-1": "Min",
+       "exif-gaincontrol-2": "High gain up",
+       "exif-gaincontrol-3": "Low gain down",
+       "exif-gaincontrol-4": "High gain down",
+       "exif-contrast-0": "Normoal",
+       "exif-contrast-1": "Swäk",
+       "exif-contrast-2": "Stäärk",
+       "exif-saturation-0": "Normoal",
+       "exif-saturation-1": "Min Säädigenge",
+       "exif-saturation-2": "Hooge Säädigenge",
+       "exif-sharpness-0": "Normoal",
+       "exif-sharpness-1": "Skäärpegaid min",
+       "exif-sharpness-2": "Skäärpegaid stäärk",
+       "exif-subjectdistancerange-0": "Uunbekoand",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Nai",
+       "exif-subjectdistancerange-3": "Fier",
+       "exif-gpslatitude-n": "noudelke Bratte",
+       "exif-gpslatitude-s": "suudelke Bratte",
+       "exif-gpslongitude-e": "aastelke Laangte",
+       "exif-gpslongitude-w": "wäästelke Laangte",
+       "exif-gpsstatus-a": "Meetenge lapt",
+       "exif-gpsstatus-v": "Measurement interoperability",
+       "exif-gpsmeasuremode-2": "2-dimensionoale Meetenge",
+       "exif-gpsmeasuremode-3": "3-dimensionoale Meetenge",
+       "exif-gpsspeed-k": "km/h",
+       "exif-gpsspeed-m": "mph",
+       "exif-gpsspeed-n": "Knätte",
+       "exif-gpsdirection-t": "Wuddelke Gjuchte",
+       "exif-gpsdirection-m": "Magnetiske Gjuchte"
+}
diff --git a/languages/i18n/exif/su.json b/languages/i18n/exif/su.json
new file mode 100644 (file)
index 0000000..4eeda49
--- /dev/null
@@ -0,0 +1,348 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Irwangatot",
+                       "Kandar",
+                       "Uchup19"
+               ]
+       },
+       "exif-imagewidth": "Lega",
+       "exif-imagelength": "Luhur",
+       "exif-bitspersample": "Bit per komponén",
+       "exif-compression": "Skéma komprési",
+       "exif-photometricinterpretation": "Komposisi piksel",
+       "exif-orientation": "Oriéntasi",
+       "exif-samplesperpixel": "Jumlah komponén",
+       "exif-planarconfiguration": "Susunan data",
+       "exif-ycbcrsubsampling": "Rasio subsampling Y ka C",
+       "exif-ycbcrpositioning": "Perenah Y jeung C",
+       "exif-xresolution": "Résolusi horizontal",
+       "exif-yresolution": "Résolusi tangtung",
+       "exif-stripoffsets": "Perenah data gambar",
+       "exif-rowsperstrip": "Jumlah baris per strip",
+       "exif-stripbytecounts": "Bita per strip komprési",
+       "exif-jpeginterchangeformat": "Ofset ka JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bit data JPEG",
+       "exif-whitepoint": "Kromatisitas titik bodas",
+       "exif-primarychromaticities": "Kromatisitas warna primér",
+       "exif-ycbcrcoefficients": "Koéfisién matriks transformasi rohang warna",
+       "exif-referenceblackwhite": "Pasangan ajen rujukan hideung jeung bodas",
+       "exif-datetime": "Wanci jeung titimangsa parobahan koropak",
+       "exif-imagedescription": "Judul gambar",
+       "exif-make": "Produsén kaméra",
+       "exif-model": "Modél kaméra",
+       "exif-software": "Sopwér nu dipaké",
+       "exif-artist": "Pangarang",
+       "exif-copyright": "Nu nyepeng hak cipta",
+       "exif-exifversion": "Vérsi Exif",
+       "exif-flashpixversion": "Pangrojong vérsi Flashpix",
+       "exif-colorspace": "Rohangan warna",
+       "exif-componentsconfiguration": "Harti unggak komponén",
+       "exif-compressedbitsperpixel": "Mode komprési gambar",
+       "exif-pixelxdimension": "Lébar gambar",
+       "exif-pixelydimension": "Jangkung gambar",
+       "exif-usercomment": "Koméntar pamaké",
+       "exif-relatedsoundfile": "Berkas audio nu patali",
+       "exif-datetimeoriginal": "Titimangsa jeung wanci dijieunna data",
+       "exif-datetimedigitized": "Titimangsa jeung wanci digitisasi",
+       "exif-subsectime": "Subdetik DateTime",
+       "exif-subsectimeoriginal": "Subdetik DateTimeOriginal",
+       "exif-subsectimedigitized": "Subdetik DateTimeDigitized",
+       "exif-exposuretime": "Waktu pajanan",
+       "exif-exposuretime-format": "$1 detik ($2)",
+       "exif-fnumber": "Nomer F",
+       "exif-exposureprogram": "Program pajanan",
+       "exif-spectralsensitivity": "Sénsitivitas spéktral",
+       "exif-isospeedratings": "Réting gagancangan ISO",
+       "exif-shutterspeedvalue": "Gagancangan rana APEX",
+       "exif-aperturevalue": "Bukaan APEX",
+       "exif-brightnessvalue": "Cacaangan APEX",
+       "exif-exposurebiasvalue": "Bias pajanan",
+       "exif-maxaperturevalue": "Bukaan taneuh maksimum",
+       "exif-subjectdistance": "Jarak subjék",
+       "exif-meteringmode": "Modeu pangukuran",
+       "exif-lightsource": "Sumber cahya",
+       "exif-flash": "Buricak",
+       "exif-focallength": "Panjang fokus lénsa",
+       "exif-subjectarea": "Aréa subyék",
+       "exif-flashenergy": "Énérgi burinyay",
+       "exif-focalplanexresolution": "Résolusi X datar fokus",
+       "exif-focalplaneyresolution": "Résolusi Y datar fokus",
+       "exif-focalplaneresolutionunit": "Unit résolusi datar fokus",
+       "exif-subjectlocation": "Perenah subjék",
+       "exif-exposureindex": "Indéks pajanan",
+       "exif-sensingmethod": "Metodeu panginderaan",
+       "exif-filesource": "Sumber berkas",
+       "exif-scenetype": "Tipe adegan",
+       "exif-customrendered": "Prosés jijieunan gambar",
+       "exif-exposuremode": "Modeu pajanan",
+       "exif-whitebalance": "Kasaimbangan bodas",
+       "exif-digitalzoomratio": "Rasio zum digital",
+       "exif-focallengthin35mmfilm": "Panjang fokus dina film 35 mm",
+       "exif-scenecapturetype": "Tipeu panéwakan",
+       "exif-gaincontrol": "Kontrol layar",
+       "exif-contrast": "Kontras",
+       "exif-saturation": "Saturasi",
+       "exif-sharpness": "Seukeutna",
+       "exif-devicesettingdescription": "Déskripsi pangaturan alat",
+       "exif-subjectdistancerange": "Lolongkrang jarak subyék",
+       "exif-imageuniqueid": "ID unik gambar",
+       "exif-gpsversionid": "Vérsi tag GPS",
+       "exif-gpslatituderef": "Gurat Kalér atawa Kidul",
+       "exif-gpslatitude": "Gurat Lintang",
+       "exif-gpslongituderef": "Gurat Wétan atawa Kulon",
+       "exif-gpslongitude": "Gurat Bujur",
+       "exif-gpsaltituderef": "Référénsi jangkung",
+       "exif-gpsaltitude": "Jangkung",
+       "exif-gpstimestamp": "Wanci GPS (jam atomik)",
+       "exif-gpssatellites": "Satelit pikeun pangukuran",
+       "exif-gpsstatus": "Status panampa",
+       "exif-gpsmeasuremode": "Modeu pangukuran",
+       "exif-gpsdop": "Katepatan pangukuran",
+       "exif-gpsspeedref": "Unit kecepatan",
+       "exif-gpsspeed": "Gancangna panarima GPS",
+       "exif-gpstrackref": "Référénsi arah obahan",
+       "exif-gpstrack": "Arah obahan",
+       "exif-gpsimgdirectionref": "Référénsi arah gambar",
+       "exif-gpsimgdirection": "Arah gambar",
+       "exif-gpsmapdatum": "Data survéi géodési",
+       "exif-gpsdestlatituderef": "Référénsi lintang ti tujuan",
+       "exif-gpsdestlatitude": "Lintang tujuan",
+       "exif-gpsdestlongituderef": "Référénsi bujur ti tujuan",
+       "exif-gpsdestlongitude": "Bujur tujuan",
+       "exif-gpsdestbearingref": "Référénsi bearing tujuan",
+       "exif-gpsdestbearing": "Bearing tujuan",
+       "exif-gpsdestdistanceref": "Référénsi jarak ti tujuan",
+       "exif-gpsdestdistance": "Jarak ti tujuan",
+       "exif-gpsprocessingmethod": "Ngaran métodeu olah GPS",
+       "exif-gpsareainformation": "Ngaran wewengkon GPS",
+       "exif-gpsdatestamp": "Titimangsa GPS",
+       "exif-gpsdifferential": "Koréksi diferensial GPS",
+       "exif-jpegfilecomment": "Koméntar berkas JPEG",
+       "exif-keywords": "Kecap konci",
+       "exif-worldregioncreated": "Wewengkon dunya tempat moto",
+       "exif-countrycreated": "Nagara tempat moto",
+       "exif-countrycodecreated": "Kodeu nagara tempat moto",
+       "exif-provinceorstatecreated": "Propinsi atawa nagara bagian tempat moto",
+       "exif-citycreated": "Kota tempat moto",
+       "exif-sublocationcreated": "Sublokasi kota tempat moto",
+       "exif-worldregiondest": "Wewengkon dunya nu ditémbongkeun",
+       "exif-countrydest": "Nagara nu ditémbongkeun",
+       "exif-countrycodedest": "Kodeu nagara nu ditémbongkeun",
+       "exif-provinceorstatedest": "Propinsi atawa nagara bagian nu ditémbongkeun",
+       "exif-citydest": "Kota nu ditémbongkeun",
+       "exif-sublocationdest": "Sublokasi kota nu ditémbongkeun",
+       "exif-objectname": "Judul pondok",
+       "exif-specialinstructions": "Paréntah husus",
+       "exif-headline": "Lulugu",
+       "exif-credit": "Krédit/Panyadia",
+       "exif-source": "Sumber",
+       "exif-editstatus": "Status éditorial gambar",
+       "exif-urgency": "Urgensi",
+       "exif-fixtureidentifier": "Ngaran fikstur",
+       "exif-locationdest": "Lokasi nu digambarkeun",
+       "exif-locationdestcode": "Kodeu lokasi nu digambarkeun",
+       "exif-objectcycle": "Sésa waktu éta média dimaksudkeun pikeun",
+       "exif-contact": "Informasi kontak",
+       "exif-writer": "Nu nulis",
+       "exif-languagecode": "Basa",
+       "exif-iimversion": "Vérsi IIM",
+       "exif-iimcategory": "Katégori",
+       "exif-iimsupplementalcategory": "Katégori tambahan",
+       "exif-datetimeexpires": "Ulah dipaké sanggeus",
+       "exif-datetimereleased": "Dirilis ping",
+       "exif-originaltransmissionref": "Kodeu lokasi transmisi asli",
+       "exif-identifier": "Pawanoh",
+       "exif-lens": "Lénsa nu dipaké",
+       "exif-serialnumber": "Nomer séri kaméra",
+       "exif-cameraownername": "Nu boga kaméra",
+       "exif-label": "Labél",
+       "exif-datetimemetadata": "Titimangsa panungtungan métadata dirobah",
+       "exif-nickname": "Ngaran informal gambar",
+       "exif-rating": "Peunteun (ti 5)",
+       "exif-rightscertificate": "Sértipikat manajemén hak",
+       "exif-copyrighted": "Status hak cipta",
+       "exif-copyrightowner": "Nu nyepeng hak cipta",
+       "exif-usageterms": "Katangtuan pamakéan",
+       "exif-webstatement": "Pertélaan hak cipta onlén",
+       "exif-originaldocumentid": "ID unik dokumén asli",
+       "exif-licenseurl": "URL pikeun lisénsi hak cipta",
+       "exif-morepermissionsurl": "Ëmbaran lisénsi lianna",
+       "exif-attributionurl": "Nalika migunakeun ieu karya, mangga tumbukeun ka",
+       "exif-preferredattributionname": "Nalika migunakeun ieu karya, mangga dugikeun pangajén ka",
+       "exif-pngfilecomment": "Koméntar berkas PNG",
+       "exif-disclaimer": "Bantahan",
+       "exif-contentwarning": "Pépéling eusi",
+       "exif-giffilecomment": "Koméntar berkas GIF",
+       "exif-intellectualgenre": "Jinis objék",
+       "exif-subjectnewscode": "Kodeu subjék",
+       "exif-scenecode": "Sandi adegan IPTC",
+       "exif-event": "Kajaadian anu ditémbongkan",
+       "exif-organisationinimage": "Organisasi nu digambarkeun",
+       "exif-personinimage": "Jalma nu digambarkeun",
+       "exif-originalimageheight": "Jangkung gambar saméméh diteukteuk",
+       "exif-originalimagewidth": "Lébar gambar saméméh diteukteuk",
+       "exif-compression-1": "Teu kakompres",
+       "exif-compression-2": "CCITT Group 3 1-Dimensional Modified Huffman RLE",
+       "exif-compression-3": "CCITT Group 3 fax encoding",
+       "exif-compression-4": "CCITT Group 4 fax encoding",
+       "exif-copyrighted-true": "Mihak cipta",
+       "exif-copyrighted-false": "Status hak cipta can diatur",
+       "exif-photometricinterpretation-1": "Hideung jeung bodas (Hideung mah 0)",
+       "exif-unknowndate": "Titimangsa teu kanyahoan",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Dibalikkeun horizontal",
+       "exif-orientation-3": "Diputer 180°",
+       "exif-orientation-4": "Dibalikkeun vértikal",
+       "exif-orientation-5": "Diputer 90° CCW jeung dibalikkeun vértikal",
+       "exif-orientation-6": "Diputer 90° CCW",
+       "exif-orientation-7": "Diputer 90° CW jeung dibalikkeun vértikal",
+       "exif-orientation-8": "Diputer 90° CW",
+       "exif-planarconfiguration-1": "format chunky",
+       "exif-planarconfiguration-2": "format datar",
+       "exif-colorspace-65535": "Teu dikalibrasi",
+       "exif-componentsconfiguration-0": "euweuh",
+       "exif-exposureprogram-0": "Teu kadéfinisi",
+       "exif-exposureprogram-1": "Manual",
+       "exif-exposureprogram-2": "Program normal",
+       "exif-exposureprogram-3": "Prioritas bukaan",
+       "exif-exposureprogram-4": "Prioritas panutup",
+       "exif-exposureprogram-5": "Program kréatif (condong ka jejeroan ruang)",
+       "exif-exposureprogram-6": "Program aksi (condong ka gagancangna rana)",
+       "exif-exposureprogram-7": "Modeu potrét (pikeun poto deukeut nu tukangna di luar fokus)",
+       "exif-exposureprogram-8": "Modeu Lanskap (pikeun poto lanskap nu tukangna asup fokus)",
+       "exif-subjectdistance-value": "$1 méter",
+       "exif-meteringmode-0": "Duka",
+       "exif-meteringmode-1": "Rata-rata",
+       "exif-meteringmode-2": "Rarata tengah bobot",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "MultiSpot",
+       "exif-meteringmode-5": "Pola",
+       "exif-meteringmode-6": "Wawaréhan",
+       "exif-meteringmode-255": "Lianna",
+       "exif-lightsource-0": "Duka",
+       "exif-lightsource-1": "Tengah poé",
+       "exif-lightsource-2": "Fluoreséns",
+       "exif-lightsource-3": "Tungsten",
+       "exif-lightsource-4": "Burinyay",
+       "exif-lightsource-9": "Béngras",
+       "exif-lightsource-10": "Ceuceum",
+       "exif-lightsource-11": "Kalangkang",
+       "exif-lightsource-12": "Fluoreséns ca'ang siang (''daylight'', D 5700 – 7100K)",
+       "exif-lightsource-13": "Fluoreséns bodas siang (''day white'', N 4600 – 5400K)",
+       "exif-lightsource-14": "Fluoreséns bodas tiis (''cool white'', W 3900 – 4500K)",
+       "exif-lightsource-15": "Fluoreséns bodas (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Cahya baku A",
+       "exif-lightsource-18": "Cahya baku B",
+       "exif-lightsource-19": "Cahya baku C",
+       "exif-lightsource-24": "Tungsten studio ISO",
+       "exif-lightsource-255": "Sumber cahya séjén",
+       "exif-flash-fired-0": "Lampu kilat teu hurung",
+       "exif-flash-fired-1": "Buricak hurung",
+       "exif-flash-return-0": "taya fungsi padétéksian strobo balik",
+       "exif-flash-return-2": "lampu strobo balik teu kadétéksi",
+       "exif-flash-return-3": "lampu strobo balik kadétéksi",
+       "exif-flash-mode-1": "lampu kilat diperlukeun",
+       "exif-flash-mode-2": "lampu kilat dipareuman",
+       "exif-flash-mode-3": "modeu otomatis",
+       "exif-flash-function-1": "Taya fungsi lampu kilat",
+       "exif-flash-redeye-1": "mode réduksi pantulan panon-beureum",
+       "exif-focalplaneresolutionunit-2": "inci",
+       "exif-sensingmethod-1": "Teu kadéfinisi",
+       "exif-sensingmethod-2": "Sénsor aréa warna sasiki",
+       "exif-sensingmethod-3": "Sénsor aréa warna dua siki",
+       "exif-sensingmethod-4": "Sénsor aréa warna tilu siki",
+       "exif-sensingmethod-5": "Sénsor aréa warna mapay",
+       "exif-sensingmethod-7": "Sénsor trilinéar",
+       "exif-sensingmethod-8": "Sénsor linéar warna mapay",
+       "exif-filesource-3": "Kaméra digital cicing",
+       "exif-scenetype-1": "Gambar poto langsung",
+       "exif-customrendered-0": "Prosés normal",
+       "exif-customrendered-1": "Prosés biasa",
+       "exif-exposuremode-0": "Pajanan otomatis",
+       "exif-exposuremode-1": "Pajanan manual",
+       "exif-exposuremode-2": "Brakét otomatis",
+       "exif-whitebalance-0": "Kasaimbangan bodas otomatis",
+       "exif-whitebalance-1": "Kasaimbangan bodas manual",
+       "exif-scenecapturetype-0": "Baku",
+       "exif-scenecapturetype-1": "Ngagolér (landscape)",
+       "exif-scenecapturetype-2": "Nangtung (portrait)",
+       "exif-scenecapturetype-3": "Tetempoan peuting",
+       "exif-gaincontrol-0": "Kosong",
+       "exif-gaincontrol-1": "Naikkeun fokus landeuh",
+       "exif-gaincontrol-2": "Naikkeun fokus luhur",
+       "exif-gaincontrol-3": "Turunkeun fokus landeuh",
+       "exif-gaincontrol-4": "Turunkeun fokus luhur",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Leuleus",
+       "exif-contrast-2": "Heuras",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Kaleyuran handap",
+       "exif-saturation-2": "Kaleyuran luhur",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Lemes",
+       "exif-sharpness-2": "Heuras",
+       "exif-subjectdistancerange-0": "Teu kanyahoan",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Panémbong deukeut",
+       "exif-subjectdistancerange-3": "Panémbong jauh",
+       "exif-gpslatitude-n": "Gurat Kalér",
+       "exif-gpslatitude-s": "Gurat Kidul",
+       "exif-gpslongitude-e": "Gurat Wétan",
+       "exif-gpslongitude-w": "Gurat Kulon",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|méter|méter}} luhureun beungeut laut",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|méter|méter}} handapeun beungeut laut",
+       "exif-gpsstatus-a": "Keur ngukur",
+       "exif-gpsstatus-v": "Interoperabilitas pangukuran",
+       "exif-gpsmeasuremode-2": "Ukuran 2-diménsi",
+       "exif-gpsmeasuremode-3": "Ukuran 3-diménsi",
+       "exif-gpsspeed-k": "Kilométer per jam",
+       "exif-gpsspeed-m": "Mil per jam",
+       "exif-gpsspeed-n": "Knot",
+       "exif-gpsdestdistance-k": "Kilométer",
+       "exif-gpsdestdistance-m": "Mil",
+       "exif-gpsdestdistance-n": "Mil laut",
+       "exif-gpsdop-excellent": "Sampurna ($1)",
+       "exif-gpsdop-good": "Alus ($1)",
+       "exif-gpsdop-moderate": "Moderat ($1)",
+       "exif-gpsdop-fair": "Cukup ($1)",
+       "exif-gpsdop-poor": "Awon ($1)",
+       "exif-objectcycle-a": "Isuk-isuk wungkul",
+       "exif-objectcycle-p": "Soré wungkul",
+       "exif-objectcycle-b": "Isuk jeung beurang",
+       "exif-gpsdirection-t": "Arah sajati",
+       "exif-gpsdirection-m": "Arah magnétik",
+       "exif-ycbcrpositioning-1": "Nengah",
+       "exif-ycbcrpositioning-2": "Atas (co-sited)",
+       "exif-dc-contributor": "Kontributor",
+       "exif-dc-coverage": "Lingkup témporal atawa spasial média",
+       "exif-dc-date": "Titimangsa",
+       "exif-dc-publisher": "Pamedal",
+       "exif-dc-relation": "Média anu tumali",
+       "exif-dc-rights": "Hak",
+       "exif-dc-source": "Média sumber",
+       "exif-dc-type": "Jinis média",
+       "exif-rating-rejected": "Ditolak",
+       "exif-isospeedratings-overflow": "Leuwih ti 65535",
+       "exif-iimcategory-ace": "Seni, budaya, jeung hiburan",
+       "exif-iimcategory-clj": "Hukum jeung kajahatan",
+       "exif-iimcategory-dis": "Bencana jeung kacilakaan",
+       "exif-iimcategory-fin": "Ékonomi jeung bisnis",
+       "exif-iimcategory-edu": "Atikan",
+       "exif-iimcategory-evn": "Lingkungan",
+       "exif-iimcategory-hth": "Kawaluyaan",
+       "exif-iimcategory-hum": "Minat jalma",
+       "exif-iimcategory-lab": "Katanagakerjaan",
+       "exif-iimcategory-lif": "Gaya hirup jeung rékréasi",
+       "exif-iimcategory-pol": "Politik",
+       "exif-iimcategory-rel": "Ageman jeung kayakinan",
+       "exif-iimcategory-sci": "Sayen jeung téknologi",
+       "exif-iimcategory-soi": "Isu sosial",
+       "exif-iimcategory-spo": "Olahraga",
+       "exif-iimcategory-war": "Perang, konflik, jeung karesahan",
+       "exif-iimcategory-wea": "Cuaca",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Landeuh ($1)",
+       "exif-urgency-high": "Luhur ($1)",
+       "exif-urgency-other": "Prioritas robahluyuan ($1)"
+}
diff --git a/languages/i18n/exif/sv.json b/languages/i18n/exif/sv.json
new file mode 100644 (file)
index 0000000..1d650e2
--- /dev/null
@@ -0,0 +1,365 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ainali",
+                       "Boivie",
+                       "Diupwijk",
+                       "Habj",
+                       "Jopparn",
+                       "Lejonel",
+                       "Lokal Profil",
+                       "M.M.S.",
+                       "Najami",
+                       "Sannab",
+                       "Tobulos1",
+                       "WikiPhoenix"
+               ]
+       },
+       "exif-imagewidth": "Bredd",
+       "exif-imagelength": "Höjd",
+       "exif-bitspersample": "Bitar per komponent",
+       "exif-compression": "Komprimeringsalgoritm",
+       "exif-photometricinterpretation": "Pixelsammansättning",
+       "exif-orientation": "Orientering",
+       "exif-samplesperpixel": "Antal komponenter",
+       "exif-planarconfiguration": "Dataarrangemang",
+       "exif-ycbcrsubsampling": "Subsamplingsförhållande mellan Y och C",
+       "exif-ycbcrpositioning": "Positionering av Y och C",
+       "exif-xresolution": "Upplösning i horisontalplan",
+       "exif-yresolution": "Upplösning i vertikalplan",
+       "exif-stripoffsets": "Offset till bilddata",
+       "exif-rowsperstrip": "Antal rader per strip",
+       "exif-stripbytecounts": "Byte per komprimerad strip",
+       "exif-jpeginterchangeformat": "Offset till JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Antal bytes JPEG-data",
+       "exif-whitepoint": "Vitpunktens renhet",
+       "exif-primarychromaticities": "Primärfärgernas renhet",
+       "exif-ycbcrcoefficients": "Koefficienter för färgrymdstransformationsmatris",
+       "exif-referenceblackwhite": "Referensvärden för svart och vitt",
+       "exif-datetime": "Ändringstidpunkt",
+       "exif-imagedescription": "Bildtitel",
+       "exif-make": "Kameratillverkare",
+       "exif-model": "Kameramodell",
+       "exif-software": "Använd mjukvara",
+       "exif-artist": "Skapare",
+       "exif-copyright": "Upphovsrättsägare",
+       "exif-exifversion": "Exif-version",
+       "exif-flashpixversion": "Flashpix-version som stöds",
+       "exif-colorspace": "Färgrymd",
+       "exif-componentsconfiguration": "Komponentanalys",
+       "exif-compressedbitsperpixel": "Bildkomprimeringsläge",
+       "exif-pixelxdimension": "Bildbredd",
+       "exif-pixelydimension": "Bildhöjd",
+       "exif-usercomment": "Kommentarer",
+       "exif-relatedsoundfile": "Relaterad ljudfil",
+       "exif-datetimeoriginal": "Exponeringstidpunkt",
+       "exif-datetimedigitized": "Tidpunkt för digitalisering",
+       "exif-subsectime": "Ändringstidpunkt, sekunddelar",
+       "exif-subsectimeoriginal": "Exponeringstidpunkt, sekunddelar",
+       "exif-subsectimedigitized": "Digitaliseringstidpunkt, sekunddelar",
+       "exif-exposuretime": "Exponeringstid",
+       "exif-exposuretime-format": "$1 sek ($2)",
+       "exif-fnumber": "Bländartal",
+       "exif-exposureprogram": "Exponeringsprogram",
+       "exif-spectralsensitivity": "Spektral känslighet",
+       "exif-isospeedratings": "Filmhastighet (ISO)",
+       "exif-shutterspeedvalue": "APEX slutarhastighet",
+       "exif-aperturevalue": "APEX bländare",
+       "exif-brightnessvalue": "APEX ljusstyrka",
+       "exif-exposurebiasvalue": "Exponeringsbias",
+       "exif-maxaperturevalue": "Maximal bländare",
+       "exif-subjectdistance": "Avstånd till motivet",
+       "exif-meteringmode": "Mätmetod",
+       "exif-lightsource": "Ljuskälla",
+       "exif-flash": "Blixt",
+       "exif-focallength": "Linsens brännvidd",
+       "exif-subjectarea": "Motivområde",
+       "exif-flashenergy": "Blixteffekt",
+       "exif-focalplanexresolution": "Upplösning i fokalplan x",
+       "exif-focalplaneyresolution": "Upplösning i fokalplan y",
+       "exif-focalplaneresolutionunit": "Enhet för upplösning i fokalplan",
+       "exif-subjectlocation": "Motivets läge",
+       "exif-exposureindex": "Exponeringsindex",
+       "exif-sensingmethod": "Avkänningsmetod",
+       "exif-filesource": "Filkälla",
+       "exif-scenetype": "Scentyp",
+       "exif-customrendered": "Anpassad bildbehandling",
+       "exif-exposuremode": "Exponeringsläge",
+       "exif-whitebalance": "Vitbalans",
+       "exif-digitalzoomratio": "Digitalt zoomomfång",
+       "exif-focallengthin35mmfilm": "Brännvidd på 35 mm film",
+       "exif-scenecapturetype": "Motivprogram",
+       "exif-gaincontrol": "Bildförstärkning",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Mättnad",
+       "exif-sharpness": "Skärpa",
+       "exif-devicesettingdescription": "Beskrivning av apparatens inställning",
+       "exif-subjectdistancerange": "Avståndsintervall till motiv",
+       "exif-imageuniqueid": "Unikt bild-ID",
+       "exif-gpsversionid": "Version för GPS-taggar",
+       "exif-gpslatituderef": "Nordlig eller sydlig latitud",
+       "exif-gpslatitude": "Latitud",
+       "exif-gpslongituderef": "Östlig eller västlig longitud",
+       "exif-gpslongitude": "Longitud",
+       "exif-gpsaltituderef": "Referenshöjd",
+       "exif-gpsaltitude": "Höjd",
+       "exif-gpstimestamp": "GPS-tid (atomur)",
+       "exif-gpssatellites": "Satelliter använda för mätning",
+       "exif-gpsstatus": "Mottagarstatus",
+       "exif-gpsmeasuremode": "Mätmetod",
+       "exif-gpsdop": "Mätnoggrannhet",
+       "exif-gpsspeedref": "Hastighetsenhet",
+       "exif-gpsspeed": "GPS-mottagarens hastighet",
+       "exif-gpstrackref": "Referenspunkt för rörelsens riktning",
+       "exif-gpstrack": "Rörelsens riktning",
+       "exif-gpsimgdirectionref": "Referens för bildens riktning",
+       "exif-gpsimgdirection": "Bildens riktning",
+       "exif-gpsmapdatum": "Använd geodetisk data",
+       "exif-gpsdestlatituderef": "Referenspunkt för målets latitud",
+       "exif-gpsdestlatitude": "Målets latitud",
+       "exif-gpsdestlongituderef": "Referenspunkt för målets longitud",
+       "exif-gpsdestlongitude": "Målets longitud",
+       "exif-gpsdestbearingref": "Referens för riktning mot målet",
+       "exif-gpsdestbearing": "Riktning mot målet",
+       "exif-gpsdestdistanceref": "Referenspunkt för avstånd till målet",
+       "exif-gpsdestdistance": "Avstånd till målet",
+       "exif-gpsprocessingmethod": "GPS-behandlingsmetodens namn",
+       "exif-gpsareainformation": "GPS-områdets namn",
+       "exif-gpsdatestamp": "GPS-datum",
+       "exif-gpsdifferential": "Differentiell GPS-korrektion",
+       "exif-jpegfilecomment": "JPEG-filkommentar",
+       "exif-keywords": "Nyckelord",
+       "exif-worldregioncreated": "Världsregionen som bilden togs i",
+       "exif-countrycreated": "Landet som bilden togs i",
+       "exif-countrycodecreated": "Landskoden som bilden togs i",
+       "exif-provinceorstatecreated": "Landskapet eller delstaten som bilden togs i",
+       "exif-citycreated": "Staden som bilden togs i",
+       "exif-sublocationcreated": "Bydelen i staden som bilden togs i",
+       "exif-worldregiondest": "Världsregion visas",
+       "exif-countrydest": "Land visas",
+       "exif-countrycodedest": "Landskod visas",
+       "exif-provinceorstatedest": "Landskap eller stat visas",
+       "exif-citydest": "Stad visas",
+       "exif-sublocationdest": "Bydelen i staden visas",
+       "exif-objectname": "Kort titel",
+       "exif-specialinstructions": "Specialinstruktioner",
+       "exif-headline": "Rubrik",
+       "exif-credit": "Erkännande/leverantör",
+       "exif-source": "Källa",
+       "exif-editstatus": "Bildens redaktionella status",
+       "exif-urgency": "Brådskande",
+       "exif-fixtureidentifier": "Fixturnamn",
+       "exif-locationdest": "Plats avbildad",
+       "exif-locationdestcode": "Avbildad platskod",
+       "exif-objectcycle": "Tid på dagen median är avsedd för",
+       "exif-contact": "Kontaktinformation",
+       "exif-writer": "Författare",
+       "exif-languagecode": "Språk",
+       "exif-iimversion": "IIM-version",
+       "exif-iimcategory": "Kategori",
+       "exif-iimsupplementalcategory": "Tilläggskategorier",
+       "exif-datetimeexpires": "Använd inte efter",
+       "exif-datetimereleased": "Släpptes den",
+       "exif-originaltransmissionref": "Ursprunglig positionskod för transmission",
+       "exif-identifier": "Identifierare",
+       "exif-lens": "Objektiv",
+       "exif-serialnumber": "Kamerans serienummer",
+       "exif-cameraownername": "Kamerans ägare",
+       "exif-label": "Märke",
+       "exif-datetimemetadata": "Datum metadata senast ändrades",
+       "exif-nickname": "Bildens informella namn",
+       "exif-rating": "Betyg (av 5)",
+       "exif-rightscertificate": "Certifikat om rättigheter",
+       "exif-copyrighted": "Upphovsrättsstatus",
+       "exif-copyrightowner": "Upphovsrättsinnehavare",
+       "exif-usageterms": "Användningsvillkor",
+       "exif-webstatement": "Online meddelande om upphovsrätt",
+       "exif-originaldocumentid": "Unikt ID för originaldokumentet",
+       "exif-licenseurl": "URL för upphovsrättslicens",
+       "exif-morepermissionsurl": "Alternativ licensinformation",
+       "exif-attributionurl": "När du återanvänder detta arbete, länka till",
+       "exif-preferredattributionname": "Vid återanvändning av detta arbete, vänligen attribuera",
+       "exif-pngfilecomment": "PNG-filkommentar",
+       "exif-disclaimer": "Ansvarsfriskrivning",
+       "exif-contentwarning": "Innehållsvarning",
+       "exif-giffilecomment": "GIF-filkommentar",
+       "exif-intellectualgenre": "Typ av objekt",
+       "exif-subjectnewscode": "Ämneskod",
+       "exif-scenecode": "IPTC-scenkod",
+       "exif-event": "Avbildad händelse",
+       "exif-organisationinimage": "Avbildad organisation",
+       "exif-personinimage": "Avbildad person",
+       "exif-originalimageheight": "Bildens höjd innan den beskärdes",
+       "exif-originalimagewidth": "Bildens bredd innan den beskärdes",
+       "exif-compression-1": "Inte komprimerad",
+       "exif-compression-2": "CCITT Grupp 3 1-dimensionell modifierad Huffman-skurlängdskodning",
+       "exif-compression-3": "CCITT Grupp 3 fax-kodning",
+       "exif-compression-4": "CCITT Grupp 4 fax-kodning",
+       "exif-compression-6": "JPEG (gammal)",
+       "exif-copyrighted-true": "Upphovsrättsskyddat",
+       "exif-copyrighted-false": "Upphovsrättsstatus inte angivet",
+       "exif-photometricinterpretation-0": "Svartvitt (vit är 0)",
+       "exif-photometricinterpretation-1": "Svart och vit (svart är 0)",
+       "exif-photometricinterpretation-3": "Palett",
+       "exif-photometricinterpretation-4": "Genomskinlighetsmask",
+       "exif-photometricinterpretation-5": "Separerad (förmodligen CMYK)",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (ICC-kodning)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (ITU-kodning)",
+       "exif-unknowndate": "Okänt datum",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Spegelvänd horisontellt",
+       "exif-orientation-3": "Roterad 180°",
+       "exif-orientation-4": "Spegelvänd vertikalt",
+       "exif-orientation-5": "Roterad 90° moturs och spegelvänd vertikalt",
+       "exif-orientation-6": "Roterad 90° moturs",
+       "exif-orientation-7": "Roterad 90° medurs och spegelvänd vertikalt",
+       "exif-orientation-8": "Roterad 90° medurs",
+       "exif-planarconfiguration-1": "chunkformat",
+       "exif-planarconfiguration-2": "planärformat",
+       "exif-colorspace-65535": "Icke-kalibrerad",
+       "exif-componentsconfiguration-0": "saknas",
+       "exif-exposureprogram-0": "Inte definierad",
+       "exif-exposureprogram-1": "Manuell inställning",
+       "exif-exposureprogram-2": "Normalprogram",
+       "exif-exposureprogram-3": "Prioritet för bländare",
+       "exif-exposureprogram-4": "Prioritet för slutare",
+       "exif-exposureprogram-5": "Konstnärligt program (prioriterar skärpedjup)",
+       "exif-exposureprogram-6": "Rörelseprogram (prioriterar kortare slutartid)",
+       "exif-exposureprogram-7": "Porträttläge (för närbilder med bakgrunden ofokuserad)",
+       "exif-exposureprogram-8": "Landskapsläge (för foton av landskap med bakgrunden i fokus)",
+       "exif-subjectdistance-value": "$1 meter",
+       "exif-meteringmode-0": "Okänd",
+       "exif-meteringmode-1": "Medelvärde",
+       "exif-meteringmode-2": "Centrumviktat medelvärde",
+       "exif-meteringmode-3": "Spotmätning",
+       "exif-meteringmode-4": "Multispot",
+       "exif-meteringmode-5": "Mönster",
+       "exif-meteringmode-6": "Partiell",
+       "exif-meteringmode-255": "Annan",
+       "exif-lightsource-0": "Okänd",
+       "exif-lightsource-1": "Dagsljus",
+       "exif-lightsource-2": "Lysrör",
+       "exif-lightsource-3": "Glödlampa",
+       "exif-lightsource-4": "Blixt",
+       "exif-lightsource-9": "Klart väder",
+       "exif-lightsource-10": "Molnigt",
+       "exif-lightsource-11": "Skugga",
+       "exif-lightsource-12": "Dagsljuslysrör (D 5700 – 7100K)",
+       "exif-lightsource-13": "Dagsvitt lysrör (N 4600 – 5400K)",
+       "exif-lightsource-14": "Kallvitt lysrör (W 3900 – 4500K)",
+       "exif-lightsource-15": "Vitt lysrör (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standardljus A",
+       "exif-lightsource-18": "Standardljus B",
+       "exif-lightsource-19": "Standardljus C",
+       "exif-lightsource-24": "ISO studiobelysning",
+       "exif-lightsource-255": "Annan ljuskälla",
+       "exif-flash-fired-0": "Blixten utlöstes ej",
+       "exif-flash-fired-1": "Blixten utlöstes",
+       "exif-flash-return-0": "ingen funktion för upptäckande av pulserande ljus",
+       "exif-flash-return-2": "pulserande ljus inte upptäckt",
+       "exif-flash-return-3": "pulserande ljus upptäckt",
+       "exif-flash-mode-1": "tvingad blixtutlösning",
+       "exif-flash-mode-2": "blixten avstängd",
+       "exif-flash-mode-3": "autoläge",
+       "exif-flash-function-1": "Ingen blixtfunktion",
+       "exif-flash-redeye-1": "röda-ögon-reducering",
+       "exif-focalplaneresolutionunit-2": "tum",
+       "exif-sensingmethod-1": "Ej angivet",
+       "exif-sensingmethod-2": "Enchipsfärgsensor",
+       "exif-sensingmethod-3": "Tvåchipsfärgsensor",
+       "exif-sensingmethod-4": "Trechipsfärgsensor",
+       "exif-sensingmethod-5": "Färgsekventiell områdessensor",
+       "exif-sensingmethod-7": "Trilinjär sensor",
+       "exif-sensingmethod-8": "Färgsekventiell linjär sensor",
+       "exif-filesource-3": "Digital stillbildskamera",
+       "exif-scenetype-1": "Direkt fotograferad bild",
+       "exif-customrendered-0": "Normal",
+       "exif-customrendered-1": "Anpassad",
+       "exif-exposuremode-0": "Automatisk exponering",
+       "exif-exposuremode-1": "Manuell exponering",
+       "exif-exposuremode-2": "Automatisk alternativexponering",
+       "exif-whitebalance-0": "Automatisk vitbalans",
+       "exif-whitebalance-1": "Manuell vitbalans",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Landskap",
+       "exif-scenecapturetype-2": "Porträtt",
+       "exif-scenecapturetype-3": "Nattfotografering",
+       "exif-gaincontrol-0": "Ingen",
+       "exif-gaincontrol-1": "Ökning av lågnivåförstärkning",
+       "exif-gaincontrol-2": "Ökning av högnivåförstärkning",
+       "exif-gaincontrol-3": "Sänkning av lågnivåförstärkning",
+       "exif-gaincontrol-4": "Sänkning av högnivåförstärkning",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Mjuk",
+       "exif-contrast-2": "Skarp",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Låg mättnadsgrad",
+       "exif-saturation-2": "Hög mättnadsgrad",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Mjuk",
+       "exif-sharpness-2": "Hård",
+       "exif-subjectdistancerange-0": "Okänd",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Närbild",
+       "exif-subjectdistancerange-3": "Avståndsbild",
+       "exif-gpslatitude-n": "Nordlig latitud",
+       "exif-gpslatitude-s": "Sydlig latitud",
+       "exif-gpslongitude-e": "Östlig longitud",
+       "exif-gpslongitude-w": "Västlig longitud",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter|meter}} över havet",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter|meter}} under havet",
+       "exif-gpsstatus-a": "Mätning pågår",
+       "exif-gpsstatus-v": "Mätningsinteroperabilitet",
+       "exif-gpsmeasuremode-2": "Tvådimensionell mätning",
+       "exif-gpsmeasuremode-3": "Tredimensionell mätning",
+       "exif-gpsspeed-k": "Kilometer i timmen",
+       "exif-gpsspeed-m": "Miles i timmen",
+       "exif-gpsspeed-n": "Knop",
+       "exif-gpsdestdistance-k": "Kilometer",
+       "exif-gpsdestdistance-m": "Miles",
+       "exif-gpsdestdistance-n": "Nautiska mil",
+       "exif-gpsdop-excellent": "Utmärkt ($1)",
+       "exif-gpsdop-good": "Bra ($1)",
+       "exif-gpsdop-moderate": "Måttlig ($1)",
+       "exif-gpsdop-fair": "Medelmåttig ($1)",
+       "exif-gpsdop-poor": "Dålig ($1)",
+       "exif-objectcycle-a": "Endast morgon",
+       "exif-objectcycle-p": "Endast kväll",
+       "exif-objectcycle-b": "Både morgon och kväll",
+       "exif-gpsdirection-t": "Sann bäring",
+       "exif-gpsdirection-m": "Magnetisk bäring",
+       "exif-ycbcrpositioning-1": "Centrerad",
+       "exif-ycbcrpositioning-2": "Sammanfallande",
+       "exif-dc-contributor": "Bidragsgivare",
+       "exif-dc-coverage": "Rumslig och tidsmässig omfattning av media",
+       "exif-dc-date": "Datum",
+       "exif-dc-publisher": "Utgivare",
+       "exif-dc-relation": "Relaterad media",
+       "exif-dc-rights": "Rättigheter",
+       "exif-dc-source": "Källmedia",
+       "exif-dc-type": "Medietyp",
+       "exif-rating-rejected": "Avvisad",
+       "exif-isospeedratings-overflow": "Större än 65535",
+       "exif-iimcategory-ace": "Konst, kultur och underhållning",
+       "exif-iimcategory-clj": "Brott och juridik",
+       "exif-iimcategory-dis": "Katastrofer och olyckor",
+       "exif-iimcategory-fin": "Ekonomi och näringsliv",
+       "exif-iimcategory-edu": "Utbildning",
+       "exif-iimcategory-evn": "Miljö",
+       "exif-iimcategory-hth": "Hälsa",
+       "exif-iimcategory-hum": "Människointresse",
+       "exif-iimcategory-lab": "Arbetskraft",
+       "exif-iimcategory-lif": "Livsstil och fritid",
+       "exif-iimcategory-pol": "Politik",
+       "exif-iimcategory-rel": "Religion och tro",
+       "exif-iimcategory-sci": "Vetenskap och teknik",
+       "exif-iimcategory-soi": "Sociala frågor",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Krig, konflikter och oroligheter",
+       "exif-iimcategory-wea": "Väder",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Låg ($1)",
+       "exif-urgency-high": "Hög ($1)",
+       "exif-urgency-other": "Användardefinierad prioritet ($1)"
+}
diff --git a/languages/i18n/exif/sw.json b/languages/i18n/exif/sw.json
new file mode 100644 (file)
index 0000000..4803a32
--- /dev/null
@@ -0,0 +1,166 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ikiwaner",
+                       "Kwisha",
+                       "Lloffiwr",
+                       "Muddyb",
+                       "Stephenwanjau"
+               ]
+       },
+       "exif-imagewidth": "Upana",
+       "exif-imagelength": "Urefu",
+       "exif-jpeginterchangeformatlength": "Idadi ya baiti za data ya JPEG",
+       "exif-datetime": "Tarehe na saa ya kubadilisha faili",
+       "exif-imagedescription": "Jina la picha",
+       "exif-make": "Mtengenezaji wa kamera",
+       "exif-model": "Mtindo wa kamera",
+       "exif-software": "Bidhaa pepe inayotumika",
+       "exif-artist": "Mwandishi",
+       "exif-copyright": "Mwenye hatimiliki",
+       "exif-exifversion": "Mtindo wa Exif",
+       "exif-componentsconfiguration": "Maana ya kila kijenzi",
+       "exif-pixelxdimension": "Upana wa picha",
+       "exif-pixelydimension": "Urefu wa picha",
+       "exif-usercomment": "Maoni ya mtumiaji",
+       "exif-relatedsoundfile": "Faili la sauti linalohusika",
+       "exif-lightsource": "Mwanga",
+       "exif-flash": "Taa ya picha",
+       "exif-flashenergy": "Nguvu ya taa ya picha",
+       "exif-filesource": "Chanzo cha faili",
+       "exif-gpslatituderef": "Latitudo kwenda kaskazini au kusini",
+       "exif-gpslatitude": "Latitudo",
+       "exif-gpslongituderef": "Longitudo kwenda mashariki au magharibi",
+       "exif-gpslongitude": "Longitudo",
+       "exif-gpsaltituderef": "Rejeo ya mwinuko",
+       "exif-gpsaltitude": "Mwinuko",
+       "exif-gpsmeasuremode": "Jinsi ya kupima",
+       "exif-gpsspeedref": "Kizio cha kupima kasi",
+       "exif-gpsspeed": "Kasi ya kipokeaji cha GPS",
+       "exif-gpstrack": "Mwelekeo wa harakati",
+       "exif-gpsimgdirection": "Mwelekeo wa picha",
+       "exif-gpsdestlatitude": "Latitudo ya kikomo",
+       "exif-gpsdestlongitude": "Longitudo ya kikomo",
+       "exif-gpsdestdistance": "Umbali wa kikomo",
+       "exif-gpsareainformation": "Jina la eneo la GPS",
+       "exif-gpsdatestamp": "Tarehe ya GPS",
+       "exif-jpegfilecomment": "Maoni juu ya faili ya JPEG",
+       "exif-keywords": "Maneno muhimu",
+       "exif-worldregioncreated": "Eneo la dunia palipopigwa picha",
+       "exif-countrycreated": "Nchi palipopigwa picha",
+       "exif-countrycodecreated": "Msimbo wa nchi picha palipopigwa",
+       "exif-countrydest": "Nchi inayoonyeshwa",
+       "exif-citydest": "Mji umeonyeshwa",
+       "exif-objectname": "Jina fupi",
+       "exif-specialinstructions": "Maelekezo maalum",
+       "exif-headline": "Kichwa",
+       "exif-source": "Chanzo",
+       "exif-urgency": "Umuhimu",
+       "exif-writer": "Mwandishi",
+       "exif-languagecode": "Lugha",
+       "exif-iimcategory": "Jamii",
+       "exif-datetimeexpires": "Usitumie baada ya",
+       "exif-datetimereleased": "Ilitolewa mnamo",
+       "exif-cameraownername": "Mwenye kamera",
+       "exif-label": "Lebo",
+       "exif-copyrighted": "Hali ya hakimiliki",
+       "exif-copyrightowner": "Mwenye hatimiliki",
+       "exif-pngfilecomment": "Maoni juu ya faili ya PNG",
+       "exif-disclaimer": "Kanusho",
+       "exif-contentwarning": "Ilani ya maduhui",
+       "exif-giffilecomment": "Maoni juu ya faili ya GIF",
+       "exif-intellectualgenre": "Aina ya kifaa",
+       "exif-personinimage": "Mtu aliyepigwa picha",
+       "exif-copyrighted-true": "Yenye hatimiliki",
+       "exif-unknowndate": "Tarehe isiyojulikana",
+       "exif-orientation-1": "Kawaida",
+       "exif-componentsconfiguration-0": "haipo",
+       "exif-exposureprogram-0": "Haijafafanuliwa",
+       "exif-exposureprogram-1": "Kwa mikono",
+       "exif-exposureprogram-2": "Programu ya kawaida",
+       "exif-subjectdistance-value": "mita $1",
+       "exif-meteringmode-0": "Haijulikani",
+       "exif-meteringmode-1": "Wastani",
+       "exif-meteringmode-3": "Ibura",
+       "exif-meteringmode-4": "IburaMengi",
+       "exif-meteringmode-5": "Rembo",
+       "exif-meteringmode-6": "Ya sehemu",
+       "exif-meteringmode-255": "Nyingine",
+       "exif-lightsource-0": "Haijulikani",
+       "exif-lightsource-1": "Jua",
+       "exif-lightsource-2": "Taa ya kuakisi mwanga",
+       "exif-lightsource-4": "Taa ya picha",
+       "exif-lightsource-9": "Mwangaza wa mchana",
+       "exif-lightsource-10": "Mawingu",
+       "exif-lightsource-11": "Kivuli",
+       "exif-lightsource-255": "Mwingine",
+       "exif-focalplaneresolutionunit-2": "inchi",
+       "exif-customrendered-0": "Mchakato wa kawaida",
+       "exif-scenecapturetype-0": "Kawaida",
+       "exif-scenecapturetype-1": "Mandhari",
+       "exif-scenecapturetype-2": "Watu",
+       "exif-scenecapturetype-3": "Usiku",
+       "exif-gaincontrol-0": "Bila",
+       "exif-contrast-0": "Kawaida",
+       "exif-contrast-1": "Laini",
+       "exif-contrast-2": "Gumu",
+       "exif-saturation-0": "Kawaida",
+       "exif-sharpness-0": "Kawaida",
+       "exif-sharpness-1": "Laini",
+       "exif-sharpness-2": "Gumu",
+       "exif-subjectdistancerange-0": "Haujulikani",
+       "exif-subjectdistancerange-1": "Mandhari ya karibu mno",
+       "exif-subjectdistancerange-2": "Mandhari ya karibu",
+       "exif-subjectdistancerange-3": "Mandhari ya mbali",
+       "exif-gpslatitude-n": "Latitudo ya kaskazini",
+       "exif-gpslatitude-s": "Latitudo ya kusini",
+       "exif-gpslongitude-e": "Longitudo kwenda mashariki",
+       "exif-gpslongitude-w": "Longitudo kwenda magharibi",
+       "exif-gpsstatus-a": "Kipimo kinaendelea",
+       "exif-gpsspeed-k": "Kilometa kwa saa",
+       "exif-gpsspeed-m": "Maili kwa saa",
+       "exif-gpsspeed-n": "Noti",
+       "exif-gpsdestdistance-k": "Kilomita",
+       "exif-gpsdestdistance-m": "Maili",
+       "exif-gpsdestdistance-n": "Maili ya bahari",
+       "exif-gpsdop-excellent": "Nzuri sana ($1)",
+       "exif-gpsdop-good": "Nzuri ($1)",
+       "exif-gpsdop-moderate": "Nzuri kiasi ($1)",
+       "exif-gpsdop-fair": "Nzuri kidogo ($1)",
+       "exif-gpsdop-poor": " Si nzuri ($1)",
+       "exif-objectcycle-a": "Asubuhi tu",
+       "exif-objectcycle-p": "Jioni tu",
+       "exif-objectcycle-b": "Asubuhi na jioni",
+       "exif-gpsdirection-t": "Mwelekeo halisi",
+       "exif-gpsdirection-m": "Mwelekeo wa sumaku",
+       "exif-ycbcrpositioning-1": "Katikati",
+       "exif-dc-contributor": "Wengine waliochangia",
+       "exif-dc-date": "Tarehe",
+       "exif-dc-publisher": "Mchapishaji",
+       "exif-dc-rights": "Haki",
+       "exif-dc-source": "Chanzo cha media",
+       "exif-dc-type": "Aina ya media",
+       "exif-rating-rejected": "Ilikataliwa",
+       "exif-isospeedratings-overflow": "Zaidi ya 65535",
+       "exif-iimcategory-ace": "Sanaa, utamaduni na burudani",
+       "exif-iimcategory-clj": "Uhalifu na sheria",
+       "exif-iimcategory-dis": "Maafa na ajali",
+       "exif-iimcategory-fin": "Uchumi na biashara",
+       "exif-iimcategory-edu": "Elimu",
+       "exif-iimcategory-evn": "Mazingira",
+       "exif-iimcategory-hth": "Afya",
+       "exif-iimcategory-hum": "Maslahi ya binadamu",
+       "exif-iimcategory-lab": "Kazi",
+       "exif-iimcategory-lif": "Mtindo wa maisha na burudani",
+       "exif-iimcategory-pol": "Siasa",
+       "exif-iimcategory-rel": "Dini na imani",
+       "exif-iimcategory-sci": "Sayansi na teknolojia",
+       "exif-iimcategory-soi": "Masuala ya kijamii",
+       "exif-iimcategory-spo": "Michezo",
+       "exif-iimcategory-war": "Vita, migogoro na vurugu",
+       "exif-iimcategory-wea": "Hali ya hewa",
+       "exif-urgency-normal": "Kawaida ($1)",
+       "exif-urgency-low": "Chini ($1)",
+       "exif-urgency-high": "Juu ($1)",
+       "exif-urgency-other": "Upaumbele uliotajwa na mtumiaji ($1)"
+}
diff --git a/languages/i18n/exif/szl.json b/languages/i18n/exif/szl.json
new file mode 100644 (file)
index 0000000..e7608a6
--- /dev/null
@@ -0,0 +1,231 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Herr Kriss",
+                       "Krol111",
+                       "Lajsikonik",
+                       "Uostofchuodnego"
+               ]
+       },
+       "exif-imagewidth": "Šyrokość",
+       "exif-imagelength": "Wysokość",
+       "exif-bitspersample": "Bitůw na průbka",
+       "exif-compression": "Metoda kompresyji",
+       "exif-photometricinterpretation": "Interpretacyjo fotůmetryčno",
+       "exif-orientation": "Uorjyntacyjo uobrozu",
+       "exif-samplesperpixel": "Průbek na piksel",
+       "exif-planarconfiguration": "Rozkuod danych",
+       "exif-ycbcrsubsampling": "Podprůbkowańe Y do C",
+       "exif-ycbcrpositioning": "Rozmješčyńy Y i C",
+       "exif-xresolution": "Rozdźelčość w poźůmje",
+       "exif-yresolution": "Rozdźelčość w pjůńy",
+       "exif-stripoffsets": "Přesůńjyńće pasůw uobrazu",
+       "exif-rowsperstrip": "Ličba wjeršy na pas uobrazu",
+       "exif-stripbytecounts": "Ličba bajtůw na pas uobrazu",
+       "exif-jpeginterchangeformat": "Pouožyńy pjyrwšygo bajtu mińaturki uobrazu",
+       "exif-jpeginterchangeformatlength": "Ličba bajtůw mińaturki JPEG",
+       "exif-whitepoint": "Půnkt bjeli",
+       "exif-primarychromaticities": "Kolory třech barw guůwnych",
+       "exif-ycbcrcoefficients": "Maćeř wspůučynńikůw transformacyji barw ze RGB na YCbCr",
+       "exif-referenceblackwhite": "Wartość půnktu uodńyśyńo čerńi i bjeli",
+       "exif-datetime": "Data i čas modyfikacyji plika",
+       "exif-imagedescription": "Titel uobrozka",
+       "exif-make": "Producynt fotoaparatu",
+       "exif-model": "Model fotoaparatu",
+       "exif-software": "Ůžyte uoprůgramowańy",
+       "exif-artist": "Autor",
+       "exif-copyright": "Wuaśćićel praw autorskych",
+       "exif-exifversion": "Wersyja standardu Exif",
+       "exif-flashpixversion": "Uobsůgiwano wersyjo Flashpix",
+       "exif-colorspace": "Přestřyń kolorůw",
+       "exif-componentsconfiguration": "Značyńy skuadowych",
+       "exif-compressedbitsperpixel": "Skůmpresowanych bitůw na piksel",
+       "exif-pixelxdimension": "Prawidłowa szyrzka uobrozu",
+       "exif-pixelydimension": "Prawidłowo wyżka uobrozu",
+       "exif-usercomment": "Kůmyntoř užytkowńika",
+       "exif-relatedsoundfile": "Powjůnzany plik audjo",
+       "exif-datetimeoriginal": "Data i čas utwořyńo uoryginouu",
+       "exif-datetimedigitized": "Data i čas zeskanowańo",
+       "exif-subsectime": "Data i čas modyfikacyji pliku – uuamki sekůnd",
+       "exif-subsectimeoriginal": "Data i čas utwořyńo uoryginouu – uuamki sekůnd",
+       "exif-subsectimedigitized": "Data i čas zeskanowańo – uuamki sekůnd",
+       "exif-exposuretime": "Čas ekspozycyji",
+       "exif-exposuretime-format": "$1 s ($2)",
+       "exif-fnumber": "Wartość přisuůny",
+       "exif-exposureprogram": "Progrům ekspozycyji",
+       "exif-spectralsensitivity": "Čuuość widmowa",
+       "exif-isospeedratings": "Šybkość aparatu zgodńy ze ISO12232",
+       "exif-shutterspeedvalue": "Wartkość migawki",
+       "exif-aperturevalue": "Przisłůna uobjektywu",
+       "exif-brightnessvalue": "Jasność",
+       "exif-exposurebiasvalue": "Uodchylyńy ekspozycyji",
+       "exif-maxaperturevalue": "Maksymalno wartość přisuůny",
+       "exif-subjectdistance": "Uodlygość uod uobjektu",
+       "exif-meteringmode": "Tryb půmjaru",
+       "exif-lightsource": "Rodzej zdřudua śwjatua",
+       "exif-flash": "Lampa buyskowo",
+       "exif-focallength": "Duůgość uůgńiskowyj uobjektywu",
+       "exif-subjectarea": "Pouožyńy i uobšar guůwnygo motywu uobrozu",
+       "exif-flashenergy": "Ynergja lampy buyskowyj",
+       "exif-focalplanexresolution": "Rozdźelčość w poźůmje puaščyzny uodwzorowańo uobjektywu",
+       "exif-focalplaneyresolution": "Rozdźelčość w pjůńe puaščyzny uodwzorowańo uobjektywu",
+       "exif-focalplaneresolutionunit": "Jednostka rozdźelčośći puaščyzny uodwzorowańo uobjektywu",
+       "exif-subjectlocation": "Pouožyńy guůwnygo motywu uobrozu",
+       "exif-exposureindex": "Indeks ekspozycyji",
+       "exif-sensingmethod": "Metoda půmjaru (rodzaj přetworńika)",
+       "exif-filesource": "Typ zdřudua plika",
+       "exif-scenetype": "Rodzaj scyny",
+       "exif-customrendered": "Wstympńy přetwořůny (poddany uobrůbce)",
+       "exif-exposuremode": "Tryb ekspozycyji",
+       "exif-whitebalance": "Balans bjeli",
+       "exif-digitalzoomratio": "Wspůučynńik powjynkšyńo cyfrowygo",
+       "exif-focallengthin35mmfilm": "Duůgość uůgńiskowyj, uodpowjydńik do filmu 35mm",
+       "exif-scenecapturetype": "Rodzaj uchwycyńo scyny",
+       "exif-gaincontrol": "Wzmocńyńy jasnośći uobrazu",
+       "exif-contrast": "Kůntrast uobrozu",
+       "exif-saturation": "Nasycyńy kolorůw uobrozu",
+       "exif-sharpness": "Uostrość obrozu",
+       "exif-devicesettingdescription": "Uopis ustawjyń uřůndzyńo",
+       "exif-subjectdistancerange": "Uodleguość uod uobjektu",
+       "exif-imageuniqueid": "Uůńikalny idyntyfikator uobrozu",
+       "exif-gpsversionid": "Wersyjo formatu danych GPS",
+       "exif-gpslatituderef": "Šyrokość geůgrafično (půunoc/pouedńe)",
+       "exif-gpslatitude": "Šyrokość geůgrafično",
+       "exif-gpslongituderef": "Duůgość geůgrafično (wschůd/zachůd)",
+       "exif-gpslongitude": "Duůgość geůgrafično",
+       "exif-gpsaltituderef": "Wysokość nad poźůmym mořa (odńyśyńy)",
+       "exif-gpsaltitude": "Wysokość nad poźůmym mořa",
+       "exif-gpstimestamp": "Čas GPS (zygor atůmowy)",
+       "exif-gpssatellites": "Satelity užyte do půmjaru",
+       "exif-gpsstatus": "Status uodjorcy",
+       "exif-gpsmeasuremode": "Tryb půmjaru",
+       "exif-gpsdop": "Precyzjo půmjaru",
+       "exif-gpsspeedref": "Jydnostka gibkości",
+       "exif-gpsspeed": "Gibkość poźůmo",
+       "exif-gpstrackref": "Poprawka půmjyndzy kerůnkym i celym",
+       "exif-gpstrack": "Kerunek ruchu",
+       "exif-gpsimgdirectionref": "Poprawka do kerůnku zdjyńćo",
+       "exif-gpsimgdirection": "Kerůnek zdjyńćo",
+       "exif-gpsmapdatum": "Model půmjaru geodezyjnygo",
+       "exif-gpsdestlatituderef": "Půunocno abo pouedńowo šyrokość geůgrafično celu",
+       "exif-gpsdestlatitude": "Šyrokość geůgrafično celu",
+       "exif-gpsdestlongituderef": "Wschodńo abo zachodńo dugość geůgrafično celu",
+       "exif-gpsdestlongitude": "Dugość geůgrafično celu",
+       "exif-gpsdestbearingref": "Značńik namjaru na cel (kerůnku)",
+       "exif-gpsdestbearing": "Namjar na cel (kerůnek)",
+       "exif-gpsdestdistanceref": "Značńik uodlygośći do celu",
+       "exif-gpsdestdistance": "Uodlygość do celu",
+       "exif-gpsprocessingmethod": "Mjano metody GPS",
+       "exif-gpsareainformation": "Mjano přestřyńi GPS",
+       "exif-gpsdatestamp": "Data GPS",
+       "exif-gpsdifferential": "Korekcyjo růžńicy GPS",
+       "exif-compression-1": "ńyskůmpresowany",
+       "exif-unknowndate": "ńyznano data",
+       "exif-orientation-1": "normalno",
+       "exif-orientation-2": "odbiće we źřadle w poźůmje",
+       "exif-orientation-3": "uobroz uobrůcůny uo 180°",
+       "exif-orientation-4": "uodbiće we źřadle w pjůńy",
+       "exif-orientation-5": "uobroz uobrůcůny uo 90° přećiwńy do ruchu wskazůwek zygora i uodbiće we źřadle w pjůńy",
+       "exif-orientation-6": "Uobroz uobrůcůny uo 90° przećiwńy lo ruchu wskazůwek zygora",
+       "exif-orientation-7": "uobrůt uo 90° zgodńy ze wskazůwkůma zygora i uodbiće we źřadle w pjůńy",
+       "exif-orientation-8": "uobrůt uo 90° zgodńy do ruchu wskazůwek zygora",
+       "exif-planarconfiguration-1": "format masywny",
+       "exif-planarconfiguration-2": "format powjeřchńowy",
+       "exif-componentsconfiguration-0": "ńy istńeje",
+       "exif-exposureprogram-0": "ńyzdefińjůwany",
+       "exif-exposureprogram-1": "rynčny",
+       "exif-exposureprogram-2": "standardowy",
+       "exif-exposureprogram-3": "preselekcyjo přisuůny",
+       "exif-exposureprogram-4": "preselekcyjo migawki",
+       "exif-exposureprogram-5": "kreatywny (duža guymbja uostrośći)",
+       "exif-exposureprogram-6": "aktywny (dužo gibkość migawki)",
+       "exif-exposureprogram-7": "tryb portretowy (do zdjyńć s bliska, s ńyuostrym tuym)",
+       "exif-exposureprogram-8": "tryb landszaftu (dlŏ bildōw ze ôstrościōm nasztalowanōm na zadek)",
+       "exif-subjectdistance-value": "$1 metrůw",
+       "exif-meteringmode-0": "ńyuokryślůny",
+       "exif-meteringmode-1": "średńo",
+       "exif-meteringmode-2": "średńo važůno",
+       "exif-meteringmode-3": "punktowy",
+       "exif-meteringmode-4": "wjelopunktowy",
+       "exif-meteringmode-5": "průbkowańy",
+       "exif-meteringmode-6": "tajlowy",
+       "exif-meteringmode-255": "inkšy",
+       "exif-lightsource-0": "ńyznany",
+       "exif-lightsource-1": "dźynne",
+       "exif-lightsource-2": "jařyńowe",
+       "exif-lightsource-3": "štučne (žarowe)",
+       "exif-lightsource-4": "lampa bůyskowo (fleš)",
+       "exif-lightsource-9": "dźynne (gryfno pogoda)",
+       "exif-lightsource-10": "dźynne (pochmurno)",
+       "exif-lightsource-11": "cyń",
+       "exif-lightsource-12": "jařyńowe dźynne (tymperatura barwowa 5700 – 7100K)",
+       "exif-lightsource-13": "jařyńowe ćepue (tymperatura barwowo 4600 – 5400K)",
+       "exif-lightsource-14": "jařyńowe źimne (tymperatura barwowo 3900 – 4500K)",
+       "exif-lightsource-15": "jařyńowe bjoue (tymperatura barwowo 3200 – 3700K)",
+       "exif-lightsource-17": "standardowe A",
+       "exif-lightsource-18": "standardowe B",
+       "exif-lightsource-19": "standardowe C",
+       "exif-lightsource-24": "žarowe studyjne ISO",
+       "exif-lightsource-255": "Inkše zdřuduo śwjotua",
+       "exif-flash-fired-0": "Bes błyska flesza",
+       "exif-flash-fired-1": "S błyskym flesza",
+       "exif-flash-return-0": "bes funkcyji wykrywańo śwjotła uodbitygo",
+       "exif-flash-return-2": "ńy wykryto śwjotła uodbitygo",
+       "exif-flash-return-3": "wykryto śwjotło uodbite",
+       "exif-flash-mode-1": "wymuszůny błysk flesza",
+       "exif-flash-mode-2": "wymuszůny brak błyska flesza",
+       "exif-flash-mode-3": "tryb autůmatyczny",
+       "exif-flash-function-1": "Ńy ma funkcyji flesza",
+       "exif-flash-redeye-1": "tryb redukowańo efektu czyrwůnych ślypjůw",
+       "exif-focalplaneresolutionunit-2": "cole",
+       "exif-sensingmethod-1": "ńyzdefińjowano",
+       "exif-sensingmethod-2": "jydnoukuodowy přetworńik uobrozu kolorowygo",
+       "exif-sensingmethod-3": "dwůukuudowy přetworńik uobrozu kolorowygo",
+       "exif-sensingmethod-4": "třiukuodowy přetworńik uobrozu kolorowygo",
+       "exif-sensingmethod-5": "přetworńik uobrozu s sekwyncyjnym přetwařańym kolorůw",
+       "exif-sensingmethod-7": "třilińowy přetworńik uobrozu",
+       "exif-sensingmethod-8": "lińowy přetworńik uobrozu s sekwyncyjnym přetwařańym kolorůw",
+       "exif-scenetype-1": "uobjekt fotůgrafowany bezpośredńo",
+       "exif-customrendered-0": "ńy",
+       "exif-customrendered-1": "tak",
+       "exif-exposuremode-0": "autůmatyčne ustalyńy parametrůw naśwjetlańa",
+       "exif-exposuremode-1": "rynčne ustalyńy parametrůw naśwjetlańo",
+       "exif-exposuremode-2": "wjelokrotno ze zmjanům parametrůw naśwjetlańo",
+       "exif-whitebalance-0": "autůmatyčny",
+       "exif-whitebalance-1": "rynčny",
+       "exif-scenecapturetype-0": "standardowy",
+       "exif-scenecapturetype-1": "krajobroz",
+       "exif-scenecapturetype-2": "portret",
+       "exif-scenecapturetype-3": "scyna nocno",
+       "exif-gaincontrol-0": "brak",
+       "exif-gaincontrol-1": "ńiske wzmocńyńe",
+       "exif-gaincontrol-2": "wysoke wzmocńyńe",
+       "exif-gaincontrol-3": "ńiske uosuabjyńy",
+       "exif-gaincontrol-4": "wysoke uosłabjyńy",
+       "exif-contrast-0": "normalny",
+       "exif-contrast-1": "Lichy",
+       "exif-contrast-2": "Srogi",
+       "exif-saturation-0": "normalne",
+       "exif-saturation-1": "ńiske",
+       "exif-saturation-2": "wysoke",
+       "exif-sharpness-0": "Normalno",
+       "exif-sharpness-1": "Licho",
+       "exif-sharpness-2": "Srogo",
+       "exif-subjectdistancerange-0": "ńyznano",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "widok z bliska",
+       "exif-subjectdistancerange-3": "widok z daleka",
+       "exif-gpslatitude-n": "půunocno",
+       "exif-gpslatitude-s": "pouedńowo",
+       "exif-gpslongitude-e": "wschodńo",
+       "exif-gpslongitude-w": "zachodńo",
+       "exif-gpsstatus-a": "půmjar w trakće",
+       "exif-gpsstatus-v": "wyńiki půmjaru dostympne na bježůnco",
+       "exif-gpsmeasuremode-2": "dwuwymjarowy",
+       "exif-gpsmeasuremode-3": "trůjwymjarowy",
+       "exif-gpsspeed-k": "kilometrůw na godzina",
+       "exif-gpsspeed-m": "mil na godzina",
+       "exif-gpsspeed-n": "wynzuůw",
+       "exif-gpsdirection-t": "kerůnek geůgrafičny",
+       "exif-gpsdirection-m": "kerůnek magnetyčny"
+}
diff --git a/languages/i18n/exif/ta.json b/languages/i18n/exif/ta.json
new file mode 100644 (file)
index 0000000..cbf862c
--- /dev/null
@@ -0,0 +1,355 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Aswn",
+                       "Jayarathina",
+                       "Logicwiki",
+                       "Maathavan",
+                       "Mohammed Ammar",
+                       "Shanmugamp7",
+                       "TRYPPN",
+                       "Trengarasu",
+                       "Ulmo",
+                       "செல்வா"
+               ]
+       },
+       "exif-imagewidth": "அகலம்",
+       "exif-imagelength": "உயரம்",
+       "exif-bitspersample": "ஒவ்வொரு உறுப்பின்படி பிட்கள்.",
+       "exif-compression": "சுருக்கத் திட்டம்",
+       "exif-photometricinterpretation": "படவணுக்கள் (பிக்சல்) அமைப்புருவாக்கம்",
+       "exif-orientation": "திசை",
+       "exif-samplesperpixel": "அங்கங்களின் எண்ணிக்கை",
+       "exif-planarconfiguration": "தரவு அமைவு",
+       "exif-ycbcrsubsampling": "Y லிருந்து Cக்கு விகிதம் துணைக்கூறு (Subsampling) செய்தல்.",
+       "exif-ycbcrpositioning": "Y மற்றும் C பொருத்துதல்",
+       "exif-xresolution": "கிடை நுணுக்கம்",
+       "exif-yresolution": "நிலைக்குத்து நுணுக்கம்",
+       "exif-stripoffsets": "படிமத் தரவு அமைவிடம்",
+       "exif-rowsperstrip": "ஒரு பட்டையில் உள்ள நிரைகளின் எண்ணிக்கை",
+       "exif-stripbytecounts": "சுருக்கப்பட்ட பட்டியில் உள்ள பைட்டுகள்",
+       "exif-jpeginterchangeformat": "JPEG SOI க்கு விலக்கமானது.",
+       "exif-jpeginterchangeformatlength": "சே.பி.இ.சி (JPEG) தரவுகளின் பைட் அளவு",
+       "exif-whitepoint": "வெள்ளை புள்ளி நிற பொலிமை (chromaticity).",
+       "exif-primarychromaticities": "அடிப்படை நிற நிறக்கூறுகள்",
+       "exif-ycbcrcoefficients": "வண்ண இடைவெளி மாற்ற அணி கெழு",
+       "exif-referenceblackwhite": "கருப்பு வெள்ளை ஒப்பீடு மதிப்புகளின் ஜோடி",
+       "exif-datetime": "கோப்பு மாற்ற நாள் நேரம்",
+       "exif-imagedescription": "படிம தலைப்பு",
+       "exif-make": "படமி (கமெரா) படைப்பாளர்",
+       "exif-model": "படமி (கமெரா) வகை",
+       "exif-software": "பயன்படுத்தப்பட்ட மென்பொருள்",
+       "exif-artist": "ஆக்கர்",
+       "exif-copyright": "பதிப்புரிமையாளர்",
+       "exif-exifversion": "எக்ஃசிஃப் (Exif) பதிப்பு",
+       "exif-flashpixversion": "பயன்வழக்கிலுள்ள பிளாழ்சுபிக்ஃசு (Flashpix) பதிப்பு",
+       "exif-colorspace": "நிற வெளி",
+       "exif-componentsconfiguration": "ஒவ்வெரு அங்கத்தினதும் பொருள்",
+       "exif-compressedbitsperpixel": "படிம சுறுக்க முறை",
+       "exif-pixelxdimension": "பட அகலம்",
+       "exif-pixelydimension": "பட உயரம்",
+       "exif-usercomment": "பயனர் கருத்துக்கள்",
+       "exif-relatedsoundfile": "தொடர்புள்ள ஒலிக்கோப்பு",
+       "exif-datetimeoriginal": "தரவு உருவாக்க நாள் நேரம்",
+       "exif-datetimedigitized": "மென் கோப்புச் செய்யப்பட்ட நாள் நேரம்",
+       "exif-subsectime": "நாள் நேரம் பகுதி செக்கன்கள்",
+       "exif-subsectimeoriginal": "மூலநாள்நேரம் துணைசெக்கன்கள்",
+       "exif-subsectimedigitized": "எண்மருக்கியநாள்நேரம் துணைசெக்கன்கள்",
+       "exif-exposuretime": "திறப்பு",
+       "exif-exposuretime-format": "$1 நொடி ($2)",
+       "exif-fnumber": "குவிய விகிதம் (எஃப் எண்)",
+       "exif-exposureprogram": "மறைநீக்க நிரல்",
+       "exif-spectralsensitivity": "நிறமாலை உணர்திறன்",
+       "exif-isospeedratings": "சீர்தரத்துக்கான அனைத்துலக நிறுவனத்தின் வேகத் தரப்படுத்தல்",
+       "exif-shutterspeedvalue": "APEX  மூடுகை விரைவு",
+       "exif-aperturevalue": "APEX திறப்பு",
+       "exif-brightnessvalue": "APEX ஒளிர்மை",
+       "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": "வெள்ளைச் சமநிலை",
+       "exif-digitalzoomratio": "எண்மருவி பெருப்பித்தல் விகிதம்",
+       "exif-focallengthin35mmfilm": "35 மி.மி. படச்சுருளில் குவியத்தொலைவு",
+       "exif-scenecapturetype": "பிடிக்கப்பட்ட காட்சி வகை",
+       "exif-gaincontrol": "காட்சிக் கட்டுப்பாடு",
+       "exif-contrast": "உறழ்பொருவு",
+       "exif-saturation": "பூரிதம்",
+       "exif-sharpness": "கூர்மை",
+       "exif-devicesettingdescription": "கருவி அமைவுகள் விளக்கம்",
+       "exif-subjectdistancerange": "பொருள் தூர வரம்பு",
+       "exif-imageuniqueid": "படிம அடையாள எண்",
+       "exif-gpsversionid": "புவியிடம் காலம் விரைவு காட்டி குறி பதிப்பு",
+       "exif-gpslatituderef": "வடக்கு அல்லது தெற்கு அகலாங்கு",
+       "exif-gpslatitude": "அகலாங்கு",
+       "exif-gpslongituderef": "கிழக்கு அல்லது மேற்கு நெட்டாங்கு",
+       "exif-gpslongitude": "நெட்டாங்கு",
+       "exif-gpsaltituderef": "உயரக் குறிப்பு",
+       "exif-gpsaltitude": "உயரம்",
+       "exif-gpstimestamp": "புவியிடம் காலம் விரைவு காட்டி நேரம் (அணுக் கடிகாரம்)",
+       "exif-gpssatellites": "பயன்படுத்தப்பட்ட செய்மதிகள்",
+       "exif-gpsstatus": "வாங்கியின் நிலை",
+       "exif-gpsmeasuremode": "அளவீட்டு முறை",
+       "exif-gpsdop": "அளவீட்டுத் துல்லியம்",
+       "exif-gpsspeedref": "வேகதின் அலகு",
+       "exif-gpsspeed": "புவியிடம் காலம் விரைவு காட்டியின் வேகம்",
+       "exif-gpstrackref": "இயக்கத்திற்கான திசை குறிப்பு",
+       "exif-gpstrack": "அசைவுத் திசை",
+       "exif-gpsimgdirectionref": "உருவத் திசைக்கான  குறிப்பு",
+       "exif-gpsimgdirection": "படிமத்தின் திசை",
+       "exif-gpsmapdatum": "பயன்படுத்தப்பட்ட புவிப்பகுப்பளவியல் தரவுகள்",
+       "exif-gpsdestlatituderef": "இலக்கின்  அட்சரேகை குறிப்பு",
+       "exif-gpsdestlatitude": "அட்சரேகை இலக்கு",
+       "exif-gpsdestlongituderef": "இலக்கிற்கான தீர்க்கரேகை குறிப்பு",
+       "exif-gpsdestlongitude": "இலக்கின் தீர்க்கரேகை",
+       "exif-gpsdestbearingref": "இலக்கை அடைய குறிப்பு.",
+       "exif-gpsdestbearing": "செல்லக்கூடிய இலக்கு.",
+       "exif-gpsdestdistanceref": "இலக்கு தூரத்திற்கான குறிப்பு.",
+       "exif-gpsdestdistance": "இலக்கிற்கான  தூரம்",
+       "exif-gpsprocessingmethod": "புவியிடம் காலம் விரைவு காட்டி செயல்முறையின் பெயர்",
+       "exif-gpsareainformation": "புவியிடம் காலம் விரைவு காட்டி பிரதேசத்தின் பெயர்",
+       "exif-gpsdatestamp": "புவியிடம் காலம் விரைவு காட்டி நாள்",
+       "exif-gpsdifferential": "GPS மாறுபட்ட திருத்தம்",
+       "exif-jpegfilecomment": "JPEG கோப்பு கருத்துரை",
+       "exif-keywords": "குறிச்சொற்கள்",
+       "exif-worldregioncreated": "இப்படம் எடுக்கப்பட்ட  உலக பகுதி.",
+       "exif-countrycreated": "படம் எடுக்கப்பட்டது இந்நாட்டில் .",
+       "exif-countrycodecreated": "படம் எடுக்கப்பட்ட நாட்டின் குறியீட்டெண்",
+       "exif-provinceorstatecreated": "படம் எடுக்கப்பட்ட மாகாணம் அல்லது மாநிலம்.",
+       "exif-citycreated": "படம் எடுக்கப்பட்ட மாநகரம்",
+       "exif-sublocationcreated": "படம் எடுக்கப்பட்ட மாநகரத்தின் உள்ளிடம்",
+       "exif-worldregiondest": "காண்பிக்கப்பட்ட உலக பகுதி.",
+       "exif-countrydest": "காண்பிக்கப்பட்ட நாடு",
+       "exif-countrycodedest": "காண்பித்த நாட்டின் குறியீடு",
+       "exif-provinceorstatedest": "காண்பித்த மாகாணம் அல்லது மாநிலம்",
+       "exif-citydest": "காண்பித்த நகரம்",
+       "exif-sublocationdest": "காண்பித்த நகரத்தின் துணையிடம்.",
+       "exif-objectname": "குறுகிய தலைப்பு",
+       "exif-specialinstructions": "சிறப்பு நெறிமுறைகள்",
+       "exif-headline": "தலைப்பு",
+       "exif-credit": "கடன்/வழங்குபவர்",
+       "exif-source": "மூலம்",
+       "exif-editstatus": "உருவத்தின்  திருத்தல் நிலை",
+       "exif-urgency": "அவசரம்",
+       "exif-fixtureidentifier": "Fixture பெயர்",
+       "exif-locationdest": "பகுதி சித்தரிக்கப்பட்டிருக்கிறது",
+       "exif-locationdestcode": "சித்தரிக்கப்பட்ட பகுதிக்கான குறியீடு.",
+       "exif-objectcycle": " நாளின் நேரம், அந்த ஊடகம் இதற்காக உத்தேசித்துள்ளது.",
+       "exif-contact": "தொடர்பு விவரம்",
+       "exif-writer": "எழுத்தர்",
+       "exif-languagecode": "மொழி",
+       "exif-iimversion": "ஐஐஎம் பதிப்பு",
+       "exif-iimcategory": "பகுப்பு",
+       "exif-iimsupplementalcategory": "துணை பகுப்புகள்",
+       "exif-datetimeexpires": "பிறகு உபயோகிக்க வேண்டாம்.",
+       "exif-datetimereleased": "வெளியாகிறது",
+       "exif-originaltransmissionref": "மூல அனுப்புதல் பகுதியின் குறியீடு",
+       "exif-identifier": "அடையாள காட்டி",
+       "exif-lens": "பயன்படுத்தப்பட்ட லென்ஸ்கள்",
+       "exif-serialnumber": "நிழற்பட கருவியின் வரிசை எண்.",
+       "exif-cameraownername": "நிழற்படக்கருவி உரிமையாளர்",
+       "exif-label": "சிட்டை",
+       "exif-datetimemetadata": "தேதி மேல்தரவு மாற்றப்படவில்லை.",
+       "exif-nickname": "படத்தின் அதிகாரபூர்வமற்ற பெயர்",
+       "exif-rating": "( 5 க்கு) மதிப்பீடு",
+       "exif-rightscertificate": "உரிமைகள் மேலாண்மை சான்றிதழ்",
+       "exif-copyrighted": "பதிப்புரிமை நிலை",
+       "exif-copyrightowner": "காப்புரிமையாளர்",
+       "exif-usageterms": "உபயோக  விதிகள்",
+       "exif-webstatement": "ஆன்லைன் பதிப்புரிமை அறிக்கை",
+       "exif-originaldocumentid": "மூல ஆவணத்தின் பிரத்யேக ID",
+       "exif-licenseurl": "காப்புரிமை உரிமத்திற்கு URL",
+       "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-2": "சிசிஐடிடி குழு 3 1-பரிமாண மாற்றப்பட்ட ஆபுமான் ஓட்ட நீள உள்ளீடு",
+       "exif-compression-3": "சிசிஐடிடி குழு 3 தொலைநகல் உள்ளீடு",
+       "exif-compression-4": "சிசிஐடிடி குழு 4 தொலைநகல் உள்ளீடு",
+       "exif-copyrighted-true": "பதிப்புரிமைப்பட்டது",
+       "exif-copyrighted-false": "பதிப்புரிமை நிலையை திரிவுசெய்யப்படவில்லை",
+       "exif-photometricinterpretation-1": "கருப்பு மற்றும் வெள்ளை (கருப்பு 0)",
+       "exif-unknowndate": "நாள் தெரியாது",
+       "exif-orientation-1": "வழமையான",
+       "exif-orientation-2": "கிடைமட்டமாக பிறட்டியது",
+       "exif-orientation-3": "180° சுழற்றப்பட்டது",
+       "exif-orientation-4": "செங்குத்தாக பிறட்டியது",
+       "exif-orientation-5": "90° இடஞ்சுழியாகவும் மற்றும் செங்குத்தாகவும் பிறட்டப்பட்டுள்ளது.",
+       "exif-orientation-6": "90° வலஞ்சுழியாக சுழற்றப்பட்டது",
+       "exif-orientation-7": "90° வலஞ்சுழியாகவும் மற்றும் செங்குத்தாகவும் பிறட்டப்பட்டுள்ளது.",
+       "exif-orientation-8": "90° வலஞ்சுழியாக சுழற்றப்பட்டது",
+       "exif-planarconfiguration-1": "சிறிய தடித்த (chunky)  வடிவமைப்பு",
+       "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-exposureprogram-5": "ஆக்கப்பூர்வமான நிரல் (புல ஆழத்தை நோக்கிய சார்பு)",
+       "exif-exposureprogram-6": "செயல் நிரல் (வேகமான மூடி (shutter) வேகம் நோக்கிய சார்பு)",
+       "exif-exposureprogram-7": "நிலைபதிப்பு முறை (மிக அருகாமையில் எடுக்கப்படும் படங்கள் பின்னணி காட்சியில் இல்லாமல்)",
+       "exif-exposureprogram-8": "நிலைபரப்பு முறை( நிலைபரப்பு நிழற்படங்களுக்காக பின்னணியை கவனத்தில் கொண்டு)",
+       "exif-subjectdistance-value": "$1 மீட்டர்கள்",
+       "exif-meteringmode-0": "தெரியாது",
+       "exif-meteringmode-1": "சராசரி",
+       "exif-meteringmode-2": "நடுவில் மீளப்பெறும் சராசரி",
+       "exif-meteringmode-3": "புள்ளி",
+       "exif-meteringmode-4": "பல்புள்ளி",
+       "exif-meteringmode-5": "கோலம்",
+       "exif-meteringmode-6": "பகுதி",
+       "exif-meteringmode-255": "மற்றவை",
+       "exif-lightsource-0": "தெரியாது",
+       "exif-lightsource-1": "பகலொளி",
+       "exif-lightsource-2": "உடனொளிர்வு விளக்கு",
+       "exif-lightsource-3": "தங்கிசிட்டன் இழை (விளக்கு ஒளி)",
+       "exif-lightsource-4": "திடீர் ஒளி",
+       "exif-lightsource-9": "நல்ல வானிலை",
+       "exif-lightsource-10": "மோடம் (கார்முகில் மூட்டம்)",
+       "exif-lightsource-11": "நிழல்",
+       "exif-lightsource-12": "பகலொளி உடனொளிர்வு (புளோரசெண்ட்டு) விளக்கு (D 5700 – 7100K)",
+       "exif-lightsource-13": "நாள் வெள்ளை உடனொளிர் (N 4600 – 5400K)",
+       "exif-lightsource-14": "தண்மையான வெள்ளை உடனொளிர்ச்சி (புளோரசெண்ட்டு) (W 3900 – 4500K)",
+       "exif-lightsource-15": "வெள்ளை உடனொளிர் (WW 3200 – 3700K)",
+       "exif-lightsource-17": "சீர்தர ஒளி A",
+       "exif-lightsource-18": "சீர்தர ஒளி B",
+       "exif-lightsource-19": "சீர்தர ஒளி C",
+       "exif-lightsource-24": "பன்னாட்டு சீர்தர அமைய கலையக தங்குதன்",
+       "exif-lightsource-255": "வேறு ஒளி மூலம்",
+       "exif-flash-fired-0": "பிளாஷ் பளிச்சிடவில்லை",
+       "exif-flash-fired-1": "பிளாஷ் பளிச்சிட்டது.",
+       "exif-flash-return-0": "strobe திரும்ப கண்டறிதல் செயல்பாடு இல்லை",
+       "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": "red-eye குறைப்பு வகை",
+       "exif-focalplaneresolutionunit-2": "அங்குலங்கள்",
+       "exif-sensingmethod-1": "இனந்தெரியாத",
+       "exif-sensingmethod-2": "ஒரு chip வண்ண பகுதி உணரி",
+       "exif-sensingmethod-3": "இரண்டு சிப் (chip) வண்ண பகுதி உணரி",
+       "exif-sensingmethod-4": "மூன்று சிப் (chip) வண்ண பகுதி உணரி",
+       "exif-sensingmethod-5": "வண்ண தொடர் பகுதி உணரி",
+       "exif-sensingmethod-7": "Trilinear உணரி",
+       "exif-sensingmethod-8": "வண்ண தொடர் நேர்கோடு உணரி",
+       "exif-filesource-3": "இலக்கமுறை (Digital) நிழற்பட கருவி",
+       "exif-scenetype-1": "நேரடிப் புகைப்படப் படிமம்",
+       "exif-customrendered-0": "சாதரணச் செயற்பாடு",
+       "exif-customrendered-1": "வடிவமைக்கப்பட்ட செயற்பாடு",
+       "exif-exposuremode-0": "தானியக்க திறப்பு",
+       "exif-exposuremode-1": "கைமுறை வெளிப்பாடு",
+       "exif-exposuremode-2": "தானியக்க அடைப்புக் குறி",
+       "exif-whitebalance-0": "தானியக்க வெள்ளைச் சமநிலை",
+       "exif-whitebalance-1": "கைமுறை வெள்ளைச் சமநிலை",
+       "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-saturation-0": "சாதரணம்",
+       "exif-saturation-1": "தாழ் பூரிதம்",
+       "exif-saturation-2": "உயர் பூரிதம்",
+       "exif-sharpness-0": "சாதரணம்",
+       "exif-sharpness-1": "மென்மை",
+       "exif-sharpness-2": "கடினம்",
+       "exif-subjectdistancerange-0": "தெரியாது",
+       "exif-subjectdistancerange-1": "மிக அண்மையக் காட்சி",
+       "exif-subjectdistancerange-2": "அண்மையக் காட்சி",
+       "exif-subjectdistancerange-3": "தூரக் காட்சி",
+       "exif-gpslatitude-n": "வட அகலாங்கு",
+       "exif-gpslatitude-s": "தென் அகலாங்கு",
+       "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-gpsdestdistance-m": "மைல்கள்",
+       "exif-gpsdestdistance-n": "கடல் மைல்கள்",
+       "exif-gpsdop-excellent": "மிக சிறந்த ($1)",
+       "exif-gpsdop-good": "நல்லது ($1)",
+       "exif-gpsdop-moderate": "மிதமான ( $1 )",
+       "exif-gpsdop-fair": "ஒத்துக்கொள்ளக்கூடிய ($1)",
+       "exif-gpsdop-poor": "மோசமான ($1)",
+       "exif-objectcycle-a": "காலை மட்டும்",
+       "exif-objectcycle-p": "மாலை மட்டும்",
+       "exif-objectcycle-b": "காலை மற்றும் மாலை இரண்டும்",
+       "exif-gpsdirection-t": "உண்மைத் திசை",
+       "exif-gpsdirection-m": "காந்த திசை",
+       "exif-ycbcrpositioning-1": "மத்தியில்",
+       "exif-ycbcrpositioning-2": "உடன் பார்க்கப்பட்ட(Co-sited)",
+       "exif-dc-contributor": "பங்களிப்பாளர்கள்",
+       "exif-dc-coverage": " வெளி சார்ந்த அல்லது தற்காலிக ஊடக நோக்கம்",
+       "exif-dc-date": "தேதிகள்",
+       "exif-dc-publisher": "பதிப்பாளர்",
+       "exif-dc-relation": "தொடர்புள்ள ஊடகம்",
+       "exif-dc-rights": "உரிமைகள்",
+       "exif-dc-source": "மூல ஊடகம்",
+       "exif-dc-type": "ஊடகத்தின் வகை",
+       "exif-rating-rejected": "நிராகரித்தது",
+       "exif-isospeedratings-overflow": "65535க்கும்  அதிகமாக",
+       "exif-iimcategory-ace": "கலை, கலாச்சாரம் மற்றும் பொழுதுபோக்கு",
+       "exif-iimcategory-clj": "குற்றம் மற்றும் சட்டம்",
+       "exif-iimcategory-dis": "பேரிடர்கள் மற்றும் விபத்துகள்",
+       "exif-iimcategory-fin": "பொருளாதாரம் மற்றும் வியாபாரம்",
+       "exif-iimcategory-edu": "கல்வி",
+       "exif-iimcategory-evn": "சுற்றுச்சூழல்",
+       "exif-iimcategory-hth": "சுகாதாரம்",
+       "exif-iimcategory-hum": "மனித ஆர்வம்",
+       "exif-iimcategory-lab": "தொழிலாளி",
+       "exif-iimcategory-lif": "வாழ்க்கை முறை மற்றும் ஓய்வு",
+       "exif-iimcategory-pol": "அரசியல்",
+       "exif-iimcategory-rel": "மதம் மற்றும் நம்பிக்கை",
+       "exif-iimcategory-sci": "அறிவியல் மற்றும் தொழில்நுட்பம்",
+       "exif-iimcategory-soi": "சமூகப் பிரச்னைகள்",
+       "exif-iimcategory-spo": "விளையாட்டு",
+       "exif-iimcategory-war": "போர், முரண்பாடு மற்றும் அமைதியின்மை",
+       "exif-iimcategory-wea": "வானிலை",
+       "exif-urgency-normal": "சராசரி ( $1 )",
+       "exif-urgency-low": "குறைந்த ($1)",
+       "exif-urgency-high": "அதிகம் ($1)",
+       "exif-urgency-other": "பயனர் அறுதியிட்ட முன்னுரிமை ( $1 )"
+}
diff --git a/languages/i18n/exif/tay.json b/languages/i18n/exif/tay.json
new file mode 100644 (file)
index 0000000..e1e1354
--- /dev/null
@@ -0,0 +1,242 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Hitaypayan",
+                       "Translatealcd"
+               ]
+       },
+       "exif-imagewidth": "Kinglabang",
+       "exif-imagelength": "Kinwagiq",
+       "exif-bitspersample": "Weyuen na qutux qutux syangsu’",
+       "exif-compression": "Ppkcikuy",
+       "exif-photometricinterpretation": "Sinqtuxan na Syangsu’",
+       "exif-orientation": "Ppiray sa iyat ptkkiy ktan quw syasing",
+       "exif-samplesperpixel": "Kinnhmay na Syangsu’",
+       "exif-planarconfiguration": "Paybkuw sa kwara’ biru’ na ana nanu’",
+       "exif-xresolution": "Sweping Cyesitu’",
+       "exif-yresolution": "Cwec’ Cyesitu’",
+       "exif-stripoffsets": "Cyux ki’an na ggalan sinbbaq ana nanu’",
+       "exif-rowsperstrip": "Qutux qutux binkgan na binrwan",
+       "exif-whitepoint": "Kinplquwi’ na iro’",
+       "exif-primarychromaticities": "Spzyang balay na iro’",
+       "exif-datetime": "Ryax na sinbah Tang’an squw zikang na sinbahan Tang’an",
+       "exif-imagedescription": "Sni’ lalu’ na syasing",
+       "exif-make": "Squliq ka pkbalay squw Syasinki’",
+       "exif-model": "Lalu’ na kinblayan Syasingki’",
+       "exif-software": "Ggalan pptzyuwaw sa zyuwaw na Tennaw",
+       "exif-artist": "Mniru’",
+       "exif-copyright": "Cinpancyuen",
+       "exif-exifversion": "ktan sa kinblayan na Exif",
+       "exif-colorspace": "Hhalan mwazyaw sa qqlah sa ini’ ptnaq  kktan na bbiru’",
+       "exif-componentsconfiguration": "Qutux qutux imi’ na syngsu’",
+       "exif-compressedbitsperpixel": "Pptzyuwaw sa ppkcikuy sa syasing",
+       "exif-pixelxdimension": "Kinglabang na pinzga’",
+       "exif-pixelydimension": "Kinwagiq na pinzga’",
+       "exif-usercomment": "Knayal kay’ na pptzyuwaw",
+       "exif-datetimeoriginal": "Ryax na sni’ sa Craw squw zikang na sni’ sa Craw",
+       "exif-datetimedigitized": "Ryax na minsuwexwa’ squw zikang na minsuwexwa’",
+       "exif-exposuretime": "Zikang na pinsyaxan",
+       "exif-fnumber": "Kinsmyaxan na syasingki’",
+       "exif-exposureprogram": "Kkbalay niya’ sa pisyaxan na syasingki’",
+       "exif-isospeedratings": "pspngan kinhaylaw na ISO",
+       "exif-maxaperturevalue": "Pzyang krahu’ sspngan kinsmyax na syasingki’",
+       "exif-subjectdistance": "Kintwahiq zyuwaw na sinngusan ppsingan",
+       "exif-meteringmode": "Yaya’ pspngan na sspung sa syax",
+       "exif-lightsource": "Puqing na syax",
+       "exif-flash": "Pnilaw na pyax pyax",
+       "exif-focallength": "Kintwahiq na kamera’ squw sinngusan niya’",
+       "exif-subjectarea": "Rhzyal cyux ki'an na spzyang kkayal",
+       "exif-flashenergy": "Rngu’ kinlawkahan na pnilaw na pyax pyax",
+       "exif-subjectlocation": "Cyux ki'an na spzyang kkayal",
+       "exif-exposureindex": "Miru’ kinsnyaxan pinspngan na pspngan pinsyax na syasingki’",
+       "exif-sensingmethod": "Yaya’ pspngan na sspung sa qnbaq sa syax",
+       "exif-filesource": "Tkhulan na Tang’an",
+       "exif-scenetype": "Pintbcyan sa ubuy gluw na mmntnaq sa ppcyuwagan",
+       "exif-customrendered": "Sinpung niya’ nanak kkbalay niya’ sa syasing",
+       "exif-exposuremode": "Kin’ini’ ptnaq pinsyaxan na syax sa syasinki’",
+       "exif-whitebalance": "Wayt belns",
+       "exif-scenecapturetype": "Kinini’ ptnaq ppsyasing na rhzyal",
+       "exif-gaincontrol": "Ppklahang sa ppcyuwagan",
+       "exif-contrast": "Kinmtnaq pinspngan na psyasing",
+       "exif-saturation": "Kinms’un",
+       "exif-sharpness": "Srp nes",
+       "exif-devicesettingdescription": "Pinqzyuwan sa sni’ niya’ sa kinblayan",
+       "exif-subjectdistancerange": "Lnglingay na kintwahiq zyuwaw na spzyang ppsingan squw ppsyasing",
+       "exif-gpslatituderef": "Pewe’ ini’ ga zanwe’",
+       "exif-gpslatitude": "Wetu’",
+       "exif-gpslongituderef": "Tngcin ini’ ga sicin",
+       "exif-gpslongitude": "Cingtu’",
+       "exif-gpsaltituderef": "Kkita’ sapspngan sa kinwagiq na kaybat",
+       "exif-gpsaltitude": "Kaybat",
+       "exif-gpssatellites": "Pptzyuwaw sa spsukuryuw na wesing",
+       "exif-gpsstatus": "Zyuwaw na GPS su’",
+       "exif-gpsmeasuremode": "Yaya’ pspngan sa sspung",
+       "exif-gpsdop": "Pspngan sa ini’ balay ptkari’",
+       "exif-gpsspeedref": "Sspngan niya’ sa kinhaylagan",
+       "exif-gpsimgdirectionref": "’kran na pinzga’",
+       "exif-gpsdestlatitude": "Wetu’ na sinngusan",
+       "exif-gpsdatestamp": "ryax na GPS",
+       "exif-keywords": "Biru’ na Galan sa hhkangi qsahuy na tenaw",
+       "exif-worldregioncreated": "Rhzyal na pinsyasing",
+       "exif-countrycreated": "Syasing pinsyasing na kokka’",
+       "exif-provinceorstatecreated": "Syasing pinsyasing qalang na syo krahu’",
+       "exif-citycreated": "Syasing pinsyasing qalang hugal",
+       "exif-countrydest": "Pkt’aniy quw kokka’",
+       "exif-provinceorstatedest": "Pkt’aniy quw Syo ini’ ga Syuw",
+       "exif-citydest": "Pinkaykita’ ka qalang hugal",
+       "exif-objectname": "Siy say",
+       "exif-specialinstructions": "Kinini’ ptnaq na kinblayqan knayal",
+       "exif-headline": "Lalu’",
+       "exif-credit": "Ppkbalay/Pbiq sa pincyuwagan",
+       "exif-source": "Tkhulan",
+       "exif-urgency": "Kinptqawhan",
+       "exif-locationdest": "Pzga’ mru’ sa rhzyal",
+       "exif-locationdestcode": "Aniy pinqzyu’ quw ’niwan  na banggo’ nquw cyux niya’ ki’an",
+       "exif-objectcycle": "Hintgan zikang na meti’",
+       "exif-contact": "Prinrak sa ggalan kinbaq zayzyuwaw",
+       "exif-writer": "Sinmung miru’",
+       "exif-languagecode": "Kay’:",
+       "exif-iimversion": "ubuy gluw bniru’ na IIM",
+       "exif-iimcategory": "Ps’anak sa mkgluw",
+       "exif-iimsupplementalcategory": "Pinzbung sa ini’ pintayhuk na pintbuci",
+       "exif-datetimereleased": "Skayal kwara’ squliq squw",
+       "exif-identifier": "Biru’ na sinbbaq sa cyux naha’ ptcyuwagun",
+       "exif-lens": "Rawziq na syasingki’ quw pcyawganiy",
+       "exif-serialnumber": "Syuhaw na syasinki’",
+       "exif-cameraownername": "Cinsyasingki’",
+       "exif-label": "Qinlah lalu’",
+       "exif-rightscertificate": "Cinkhulan sinhuzyay sa pklahang sa kinri’ na pinhtuw biru’",
+       "exif-copyrighted": "Pancyuen cwangtay",
+       "exif-copyrightowner": "Cinpancyuen",
+       "exif-usageterms": "Gaga’ na binkgan quw pcyawganiy",
+       "exif-webstatement": "Sinbbaq sa kiri’ na pincyuwagan sa wangcalu’",
+       "exif-licenseurl": "’ubuy sa sswayal miq sa kinri’ na pinhtuw biru’",
+       "exif-morepermissionsurl": "’niwan sa bbiq kinri’ na ggalan qinbaq",
+       "exif-disclaimer": "Gaga’ na iyat ppanga’ sikining",
+       "exif-contentwarning": "Pinsbaq niya’ musa’ pinbaqun sa qsahuy nya’",
+       "exif-intellectualgenre": "Gluw na mmntnaq binkgan lmlamu’",
+       "exif-subjectnewscode": "Bango’ na ’niwan sa lalu’ na spzyang lalu’ na kkayal",
+       "exif-event": "Pzga’ miru’ sa zyuwaw",
+       "exif-organisationinimage": "Pzga’ miru’ sa pins’rux gaga’",
+       "exif-personinimage": "Psulung pzga’ squliq",
+       "exif-originalimageheight": "Kinwagiq na ini’ qtabiy na’",
+       "exif-originalimagewidth": "Kinglabang na ini’ qtabiy na’",
+       "exif-compression-1": "Ini’ aniy pkcikuy na’",
+       "exif-copyrighted-true": "Klhangan na Panchyen",
+       "exif-copyrighted-false": "Ini’ bqbaqiy ginllwan zyuwaw na cinkinri’ sa pinhtuw biru’",
+       "exif-unknowndate": "Ini’ bqbaqiy ginlaylwan na ryax",
+       "exif-orientation-1": "Mutuw galan sa puqing pspngan kwara’ na squliq",
+       "exif-orientation-2": "Ptbangun pssyuk",
+       "exif-orientation-4": "Pssyuk na ms’rux",
+       "exif-planarconfiguration-1": "ksu’ na pinkrrawq sa pinqthuy",
+       "exif-colorspace-65535": "Ini’’nblayqiy mita’ quw biru’ knita’ rawziq",
+       "exif-componentsconfiguration-0": "ungat",
+       "exif-exposureprogram-0": "Ini’ syaniy kay’ na’",
+       "exif-exposureprogram-1": "Szyuwi’ na qba’",
+       "exif-exposureprogram-2": "Galan pspngan gluw na pptzyuwaw",
+       "exif-exposureprogram-3": "Sspngan kinsmyax na syasingki’ quw tqs’un",
+       "exif-exposureprogram-4": "Kinhaylagan na pphtan psyasing",
+       "exif-subjectdistance-value": "$1 meta",
+       "exif-meteringmode-0": "Ini’ bqbaqiy ginlaylwan",
+       "exif-meteringmode-1": "Pinqsugan",
+       "exif-meteringmode-2": "Syun tay kska na ppsingan quw sqtuxan spzyang ssyan iro’ na syasing ’ musa’ cyose",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "Multi-Spot",
+       "exif-meteringmode-5": "Yaya’ na kkbalay",
+       "exif-meteringmode-6": "Iyat kwara’",
+       "exif-meteringmode-255": "Bzinah",
+       "exif-lightsource-0": "Ini’ bqbaqiy ginlaylwan",
+       "exif-lightsource-1": "Snyaxan wagi’",
+       "exif-lightsource-2": "Pnilaw na inkwang",
+       "exif-lightsource-4": "Pnilaw na pyax pyax",
+       "exif-lightsource-9": "Blaq kayal",
+       "exif-lightsource-10": "Mzyulung",
+       "exif-lightsource-11": "Tay minkum",
+       "exif-lightsource-17": "Galan pspngan pnilaw A",
+       "exif-lightsource-18": "Galan pspngan pnilaw B",
+       "exif-lightsource-19": "Galan pspngan pnilaw C",
+       "exif-lightsource-255": "Puqing syax na bzinah",
+       "exif-flash-fired-0": "Ini’ gyahiy na’ quw pnilaw na pyax pyax",
+       "exif-flash-fired-1": "Wal gyahan quw pnilaw na pyax pyax",
+       "exif-flash-mode-3": "ziro na mos’ nanak",
+       "exif-flash-function-1": "Ungat btthuzyay na ppilaw na pyax pyax",
+       "exif-flash-redeye-1": "iyat kktalah rawziq na syasing",
+       "exif-focalplaneresolutionunit-2": "incun",
+       "exif-sensingmethod-1": "Ini’ syaniy kay’ na’",
+       "exif-sensingmethod-7": "Kikay na kkinsa’ sa san sengse",
+       "exif-filesource-3": "Syasing ki’ na suwe",
+       "exif-scenetype-1": "Zga’ na pinsyasing",
+       "exif-customrendered-0": "Kwara’ hya’ ga  cngsyu’",
+       "exif-customrendered-1": "Cngsyu’ na sinpung nanak",
+       "exif-exposuremode-0": "Siy psyax nanak",
+       "exif-exposuremode-1": "Pinspsyax na squliq",
+       "exif-whitebalance-0": "Mutuw niya’ white balance nanak",
+       "exif-whitebalance-1": "Szyuwi’ na qba’ quw white balance",
+       "exif-scenecapturetype-0": "Galan pspngan",
+       "exif-scenecapturetype-1": "Ktan na qlqalang",
+       "exif-scenecapturetype-2": "Syasing na squliq",
+       "exif-scenecapturetype-3": "Knita’ sa mlhngan na qlqalang",
+       "exif-gaincontrol-0": "Ungat",
+       "exif-gaincontrol-1": "Kcikuy cikay tmwang",
+       "exif-gaincontrol-2": "Kpzyux cikay tmwang",
+       "exif-gaincontrol-3": "Kcikuy cikay hmhuwi’",
+       "exif-gaincontrol-4": "Kpzyux cikay hmhuwi’",
+       "exif-contrast-0": "Galan pspngan",
+       "exif-contrast-1": "Mhnuk",
+       "exif-contrast-2": "lawkah/mhitu’",
+       "exif-saturation-0": "Galan pspngan",
+       "exif-saturation-1": "Kincikuy na kinms’un",
+       "exif-saturation-2": "Msyaw iyal kinms’un",
+       "exif-sharpness-0": "Galan pspngan",
+       "exif-sharpness-2": "lawkah/mhitu’",
+       "exif-subjectdistancerange-0": "Ini’ bqbaqiy ginlaylwan",
+       "exif-subjectdistancerange-1": "Mekro",
+       "exif-subjectdistancerange-2": "Sawbihan mita’",
+       "exif-subjectdistancerange-3": "Pktawhiqun mita’",
+       "exif-gpslatitude-n": "Pewe’",
+       "exif-gpslatitude-s": "Nanwe’",
+       "exif-gpslongitude-e": "Ist longzicyut",
+       "exif-gpslongitude-w": "Sicing",
+       "exif-gpsstatus-a": "Cyuw tmrang sukuryuw na’",
+       "exif-gpsstatus-v": "Sukuryuw squw musa’ m’ubuy",
+       "exif-gpsmeasuremode-2": "Sspung na 2-dimensional",
+       "exif-gpsmeasuremode-3": "Sspung na 3-dimensional",
+       "exif-gpsspeed-k": "Qutux spung ga pira’ kirometa’",
+       "exif-gpsspeed-m": "Qutux spung ga pira’ Mayru’",
+       "exif-gpsdestdistance-k": "Kirometa’",
+       "exif-gpsdestdistance-m": "Inri’",
+       "exif-gpsdestdistance-n": "Hayri’",
+       "exif-gpsdop-fair": "Maykura’ tay kska’ ($1)",
+       "exif-objectcycle-a": "Nanak sasan",
+       "exif-objectcycle-p": "Nanak babaw kinryax",
+       "exif-objectcycle-b": "Sasan ruw babaw kryaxan",
+       "exif-gpsdirection-t": "Spzyang balay na ’kran",
+       "exif-gpsdirection-m": "’kran na tiycu’",
+       "exif-ycbcrpositioning-1": "Kska’",
+       "exif-ycbcrpositioning-2": "Trnganiy magal quw ppsngan",
+       "exif-dc-contributor": "Minniq",
+       "exif-dc-date": "Ryax",
+       "exif-dc-publisher": "Syubay na pkbalay biru’",
+       "exif-dc-relation": "Ubuy na meti’",
+       "exif-dc-rights": "Pcingan na sinpngan",
+       "exif-dc-source": "Inkhulan meti’",
+       "exif-dc-type": "Pintbcyan sa ubuy gluw na mmntnaq sa meti’",
+       "exif-rating-rejected": "Wal ini’ swaliy",
+       "exif-iimcategory-clj": "Magal qinzqihan squw Horit",
+       "exif-iimcategory-fin": "Kezay squw psyubay",
+       "exif-iimcategory-edu": "Psbaq",
+       "exif-iimcategory-evn": "Qnxan",
+       "exif-iimcategory-hth": "Blaq hi’",
+       "exif-iimcategory-hum": "Zyuwna ppglgan squliq babaw cinbwananaw",
+       "exif-iimcategory-lab": "Mtzyuwaw na rngu’",
+       "exif-iimcategory-lif": "Qaynxan squw ’rngawan lmawsay",
+       "exif-iimcategory-pol": "Sezi’",
+       "exif-iimcategory-rel": "Sinhyan gaga’ squw sinhyan",
+       "exif-iimcategory-sci": "Kagak squw gizit na kagak",
+       "exif-iimcategory-soi": "Zyuwaw na Syakay",
+       "exif-iimcategory-spo": "Tayyok",
+       "exif-iimcategory-wea": "Kayal",
+       "exif-urgency-normal": "Galan pspngan ($1)",
+       "exif-urgency-low": "Rrawq ($1)",
+       "exif-urgency-high": "Kinwagiq ($1)"
+}
diff --git a/languages/i18n/exif/te.json b/languages/i18n/exif/te.json
new file mode 100644 (file)
index 0000000..cc10dd9
--- /dev/null
@@ -0,0 +1,343 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Chaduvari",
+                       "Mpradeep",
+                       "Praveen Illa",
+                       "Ravichandra",
+                       "Veeven",
+                       "రహ్మానుద్దీన్",
+                       "వైజాసత్య"
+               ]
+       },
+       "exif-imagewidth": "వెడల్పు",
+       "exif-imagelength": "ఎత్తు",
+       "exif-bitspersample": "ఒక్కో కాంపొనెంటుకు బిట్లు",
+       "exif-compression": "కుదింపు పద్ధతి (కంప్రెషను స్కీము)",
+       "exif-photometricinterpretation": "పిక్సెళ్ళ అమరిక",
+       "exif-orientation": "దిశ",
+       "exif-samplesperpixel": "కాంపొనెంట్ల సంఖ్య",
+       "exif-planarconfiguration": "డాటా అమరిక",
+       "exif-ycbcrsubsampling": "Y, C ల ఉప నమూనా నిష్పత్తి",
+       "exif-ycbcrpositioning": "Y, C స్థానాలు",
+       "exif-xresolution": "క్షితిజసమాంతర స్పష్టత",
+       "exif-yresolution": "లంబ స్పష్టత",
+       "exif-stripoffsets": "బొమ్మ డేటా ఉన్న స్థలం",
+       "exif-rowsperstrip": "ఒక్కో పట్టీకి ఉన్న అడ్డువరుసలు",
+       "exif-stripbytecounts": "ఒక్కో కుదించిన పట్టీలో ఉన్న బైట్లు",
+       "exif-jpeginterchangeformat": "JPEG SOI కి ఆఫ్‌సెట్",
+       "exif-jpeginterchangeformatlength": "JPEG డాటా యొక్క బైట్లు",
+       "exif-whitepoint": "శ్వేతబిందు వర్ణోగ్రత (క్రొమాటిసిటీ)",
+       "exif-primarychromaticities": "ప్రైమారిటీల వర్ణోగ్రతలు",
+       "exif-ycbcrcoefficients": "వర్ణస్థల మార్పు మాత్రిక స్థానసూచికలు",
+       "exif-referenceblackwhite": "నలుపు, తెలుపు సూచీ విలువల జత",
+       "exif-datetime": "ఫైలు మార్చిన తేదీ, సమయం",
+       "exif-imagedescription": "బొమ్మ శీర్షిక",
+       "exif-make": "కేమెరా తయారీదారు",
+       "exif-model": "కేమెరా మోడల్",
+       "exif-software": "ఉపయోగించిన సాఫ్ట్&zwnj;వేర్",
+       "exif-artist": "కృతికర్త",
+       "exif-copyright": "కాపీ హక్కుదారు",
+       "exif-exifversion": "ఎక్సిఫ్ వెర్షన్",
+       "exif-flashpixversion": "అనుమతించే Flashpix కూర్పు",
+       "exif-colorspace": "వర్ణస్థలం",
+       "exif-componentsconfiguration": "ప్రతీ అంగం యొక్క అర్థం",
+       "exif-compressedbitsperpixel": "బొమ్మ కుదింపు పద్ధతి",
+       "exif-pixelxdimension": "బొమ్మ వెడల్పు",
+       "exif-pixelydimension": "బొమ్మ ఎత్తు",
+       "exif-usercomment": "వాడుకరి వ్యాఖ్యలు",
+       "exif-relatedsoundfile": "సంబంధిత శబ్ద ఫైలు",
+       "exif-datetimeoriginal": "డేటా తయారైన తేదీ, సమయం",
+       "exif-datetimedigitized": "డిజిటైజు చేసిన తేదీ, సమయం",
+       "exif-subsectime": "తేదీసమయం ఉపక్షణాలు",
+       "exif-subsectimeoriginal": "DateTimeOriginal ఉపసెకండ్లు",
+       "exif-subsectimedigitized": "DateTimeDigitized ఉపసెకండ్లు",
+       "exif-exposuretime": "ఎక్స్పోజరు సమయం",
+       "exif-exposuretime-format": "$1 క్షణ ($2)",
+       "exif-fnumber": "F సంఖ్య",
+       "exif-exposureprogram": "ఎక్స్పోజరు ప్రోగ్రాము",
+       "exif-spectralsensitivity": "వర్ణపట సున్నితత్వం",
+       "exif-isospeedratings": "ISO స్పీడు రేటింగు",
+       "exif-shutterspeedvalue": "APEX షట్టరు వేగం",
+       "exif-aperturevalue": "APEX ఎపర్చరు",
+       "exif-brightnessvalue": "APEX దీప్తి",
+       "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": "తెలుపు సంతులనం",
+       "exif-digitalzoomratio": "డిజిటల్ జూమ్ నిష్పత్తి",
+       "exif-focallengthin35mmfilm": "35 మి.మీ. ఫిల్ములో నాభ్యంతరం",
+       "exif-scenecapturetype": "దృశ్య సంగ్రహ పద్ధతి",
+       "exif-gaincontrol": "దృశ్య నియంత్రణ",
+       "exif-contrast": "కాంట్రాస్టు",
+       "exif-saturation": "సంతృప్తి",
+       "exif-sharpness": "పదును",
+       "exif-devicesettingdescription": "డివైసు సెట్టుంగుల వివరణ",
+       "exif-subjectdistancerange": "వస్తు దూరపు శ్రేణి",
+       "exif-imageuniqueid": "విలక్షణమైన బొమ్మ ఐడీ",
+       "exif-gpsversionid": "GPS ట్యాగు కూర్పు",
+       "exif-gpslatituderef": "ఉత్తర లేదా దక్షిణ అక్షాంశం",
+       "exif-gpslatitude": "అక్షాంశం",
+       "exif-gpslongituderef": "తూర్పు లేదా పశ్చిమ రేఖాంశం",
+       "exif-gpslongitude": "రేఖాంశం",
+       "exif-gpsaltituderef": "ఎత్తుకు మూలం",
+       "exif-gpsaltitude": "సముద్ర మట్టం",
+       "exif-gpstimestamp": "GPS సమయం (అణు గడియారం)",
+       "exif-gpssatellites": "కొలిచేందుకు వాడిన ఉపగ్రహాలు",
+       "exif-gpsstatus": "రిసీవర్ స్థితి",
+       "exif-gpsmeasuremode": "కొలత పద్ధతి",
+       "exif-gpsdop": "కొలత ఖచ్చితత్వం",
+       "exif-gpsspeedref": "వేగపు కొలమానం",
+       "exif-gpsspeed": "GPS రిసీవరు వేగం",
+       "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": "GPS ప్రదేశం యొక్క పేరు",
+       "exif-gpsdatestamp": "GPS తేదీ",
+       "exif-gpsdifferential": "GPS తేడా సవరణ",
+       "exif-jpegfilecomment": "JPEG బొమ్మ వ్యాఖ్య",
+       "exif-keywords": "కీలకపదాలు",
+       "exif-worldregioncreated": "ఫొటో తీసిన ప్రపంచపు ప్రాంతం",
+       "exif-countrycreated": "ఫొటో తీసిన దేశం",
+       "exif-countrycodecreated": "ఫొటో తీసిన దేశపు కోడ్",
+       "exif-provinceorstatecreated": "ఫొటో తీసిన రాష్ట్రం లేదా ప్రాంతీయ విభాగం",
+       "exif-citycreated": "ఫొటో తీసిన నగరం",
+       "exif-sublocationcreated": "ఫొటో తీసిన నగరపు విభాగం",
+       "exif-worldregiondest": "ప్రపంచపు ప్రాంతం చూపబడింది",
+       "exif-countrydest": "దేశం చూపబడింది",
+       "exif-countrycodedest": "దేశపు కోడ్ చూపబడింది",
+       "exif-provinceorstatedest": "రాష్ట్రం లేదా ప్రాంతీయ విభాగం చూపబడింది",
+       "exif-citydest": "నగరం చూపబడింది",
+       "exif-sublocationdest": "నగరపు విభాగం చూపబడింది",
+       "exif-objectname": "పొట్టి శీర్షిక",
+       "exif-specialinstructions": "ప్రత్యేక సూచనలు",
+       "exif-headline": "శీర్షిక",
+       "exif-credit": "క్రెడిట్/సమర్పించినవారు",
+       "exif-source": "మూలం",
+       "exif-editstatus": "బొమ్మ యొక్క ఎడిటోరియల్ స్థితి",
+       "exif-urgency": "ఎంత త్వరగా కావాలి",
+       "exif-fixtureidentifier": "స్థాపిత వస్తువు పేరు",
+       "exif-locationdest": "చూపించిన ప్రాంతం",
+       "exif-objectcycle": "ఈ మాధ్యమం ఉద్దేశించిన సమయం",
+       "exif-contact": "సంప్రదింపు సమాచారం",
+       "exif-writer": "",
+       "exif-languagecode": "భాష",
+       "exif-iimversion": "IIM రూపాంతరం",
+       "exif-iimcategory": "వర్గం",
+       "exif-iimsupplementalcategory": "అనుషంగిక వర్గాలు",
+       "exif-datetimeexpires": "దీని తరువాత వాడవద్దు",
+       "exif-datetimereleased": "విడుదల తేదీ",
+       "exif-identifier": "గుర్తింపకం",
+       "exif-lens": "వాడిన కటకం",
+       "exif-serialnumber": "కెమేరా యొక్క సీరియల్ నంబర్",
+       "exif-cameraownername": "కేమెరా యజమాని",
+       "exif-label": "సూచిక (లేబెల్)",
+       "exif-nickname": "బొమ్మ పేరు",
+       "exif-rating": "రేటింగు (5 కి గాను)",
+       "exif-rightscertificate": "హక్కుల నిర్వాహణ ధృవీకరణ పత్రం",
+       "exif-copyrighted": "కాపీహక్కుల స్థితి",
+       "exif-copyrightowner": "కాపీ హక్కుదారు",
+       "exif-usageterms": "వాడుక నియమాలు",
+       "exif-webstatement": "ఆన్‌లైన్ కాపీరైటు పాఠ్యం",
+       "exif-originaldocumentid": "మూల దస్త్రం యొక్క విశిష్ఠ ఐడీ",
+       "exif-licenseurl": "కాపీరైటు లైసెన్సు URL",
+       "exif-morepermissionsurl": "ప్రత్యామ్నాయ లైసెన్సు సమాచారం",
+       "exif-attributionurl": "దీనిని తిరిగి వాడుకోవాలంటే, ఇక్కడికి లంకె వేయండి",
+       "exif-preferredattributionname": "దీనిని తిరిగి వాడుకోవాలంటే, వీరిని పేర్కొనండి",
+       "exif-pngfilecomment": "PNG ఫైలు వ్యాఖ్య",
+       "exif-disclaimer": "నిష్పూచీ",
+       "exif-contentwarning": "విషయపు హెచ్చరిక",
+       "exif-giffilecomment": "GIF ఫైలు వ్యాఖ్య",
+       "exif-intellectualgenre": "అంశము యొక్క రకము",
+       "exif-subjectnewscode": "సబ్జెక్టు కోడ్",
+       "exif-event": "చూపించిన ఘటన",
+       "exif-organisationinimage": "చూపించిన సంస్థ",
+       "exif-personinimage": "చిత్రంలో ఉన్న వ్యక్తి",
+       "exif-originalimageheight": "కత్తిరించబడక ముందు బొమ్మ యొక్క ఎత్తు",
+       "exif-originalimagewidth": "కత్తిరించబడక ముందు బొమ్మ యొక్క వెడల్పు",
+       "exif-compression-1": "కుదించని",
+       "exif-copyrighted-true": "నకలుహక్కులుకలది",
+       "exif-copyrighted-false": "కాపీహక్కుల స్థితి అమర్చలేదు",
+       "exif-photometricinterpretation-1": "నలుపు తెలుగు (నలుపుకి 0)",
+       "exif-unknowndate": "అజ్ఞాత తేదీ",
+       "exif-orientation-1": "సాధారణ",
+       "exif-orientation-2": "క్షితిజ సమాంతరంగా తిరగేసాం",
+       "exif-orientation-3": "180° తిప్పాం",
+       "exif-orientation-4": "నిలువుగా తిరగేసాం",
+       "exif-orientation-5": "అపసవ్య దిశలో 90° తిప్పి, నిలువుగా తిరగేసాం",
+       "exif-orientation-6": "అపసవ్యదిశలో 90° తిప్పారు",
+       "exif-orientation-7": "సవ్యదిశలో 90° తిప్పి, నిలువుగా తిరగేసాం",
+       "exif-orientation-8": "సవ్యదిశలో 90° తిప్పారు",
+       "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-exposureprogram-5": "సృజనాత్మక ప్రోగ్రాము (క్షేత్రపు లోతువైపు మొగ్గుతో)",
+       "exif-exposureprogram-6": "చర్య ప్రోగ్రాము (షట్టర్ వేగం వైపు మొగ్గుతో)",
+       "exif-exposureprogram-7": "పోర్ట్రైటు పద్ధతి (నేపథ్యం దృశ్యంలోకి రాకుండా క్లోజప్ ఫోటోలు)",
+       "exif-exposureprogram-8": "విస్తృత పద్ధతి (నేపథ్యం దృశ్యంలోకి వస్తూ ఉండే విస్తృత ఫోటోలు)",
+       "exif-subjectdistance-value": "$1 మీటర్లు",
+       "exif-meteringmode-0": "అజ్ఞాతం",
+       "exif-meteringmode-1": "సగటు",
+       "exif-meteringmode-2": "CenterWeightedAverage",
+       "exif-meteringmode-3": "స్థలం",
+       "exif-meteringmode-4": "బహుళస్థలం",
+       "exif-meteringmode-5": "సరళి",
+       "exif-meteringmode-6": "పాక్షికం",
+       "exif-meteringmode-255": "ఇతర",
+       "exif-lightsource-0": "తెలియదు",
+       "exif-lightsource-1": "సూర్యకాంతి",
+       "exif-lightsource-2": "ఫ్లోరోసెంట్",
+       "exif-lightsource-3": "టంగ్‌స్టన్ (మామూలు బల్బు)",
+       "exif-lightsource-4": "ఫ్లాష్",
+       "exif-lightsource-9": "ఆహ్లాద వాతావరణం",
+       "exif-lightsource-10": "మేఘావృతం",
+       "exif-lightsource-11": "నీడ",
+       "exif-lightsource-12": "పగటి వెలుగు ఫ్లోరోసెంట్ (D 5700 – 7100K)",
+       "exif-lightsource-13": "పగటి తెలుపు ఫ్లోరోసెంట్ (N 4600 – 5400K)",
+       "exif-lightsource-14": "చల్లని తెలుపు ఫ్లోరోసెంట్ (W 3900 – 4500K)",
+       "exif-lightsource-15": "తెల్లని ఫ్లోరోసెంట్ (WW 3200 – 3700K)",
+       "exif-lightsource-17": "ప్రామాణిక కాంతి A",
+       "exif-lightsource-18": "ప్రామాణిక కాంతి B",
+       "exif-lightsource-19": "ప్రామాణిక కాంతి C",
+       "exif-lightsource-24": "ISO స్టూడియోలోని బల్బు వెలుతురు",
+       "exif-lightsource-255": "ఇతర కాంతి మూలం",
+       "exif-flash-fired-0": "ఫ్లాష్ వెలగలేదు",
+       "exif-flash-fired-1": "ఫ్లాష్ వెలిగింది",
+       "exif-flash-return-0": "స్ట్రోబ్ రిటర్న్ డిటెక్షన్ ఫంక్షను లేదు",
+       "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-sensingmethod-7": "త్రిసరళరేఖా సెన్సర్",
+       "exif-sensingmethod-8": "వర్ణ అనుక్రమ రేఖా సెన్సర్",
+       "exif-filesource-3": "సాంఖ్యీక సాధారణ కెమెరా",
+       "exif-scenetype-1": "ఎటువంటి హంగులూ లేకుండా ఫొటోతీయబడిన బొమ్మ",
+       "exif-customrendered-0": "సాధారణ ప్రక్రియ",
+       "exif-customrendered-1": "ప్రత్యేక ప్రక్రియ",
+       "exif-exposuremode-0": "ఆటోమాటిక్ ఎక్స్పోజరు",
+       "exif-exposuremode-1": "అమర్చిన ఎక్స్పోజరు",
+       "exif-exposuremode-2": "వెలుతురుబట్టి అంచలవారీగా మారింది",
+       "exif-whitebalance-0": "ఆటోమాటిక్ తెలుపు సంతులనం",
+       "exif-whitebalance-1": "అమర్చిన తెలుపు సంతులనం",
+       "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-saturation-0": "సాధారణ",
+       "exif-saturation-1": "రంగులు ముద్దలు ముద్దలుగా తయారవ్వలేదు",
+       "exif-saturation-2": "రంగులు ముద్దలు ముద్దలుగా తయారయ్యాయి",
+       "exif-sharpness-0": "సాధారణ",
+       "exif-sharpness-1": "మృదువు",
+       "exif-sharpness-2": "కఠినం",
+       "exif-subjectdistancerange-0": "అజ్ఞాతం",
+       "exif-subjectdistancerange-1": "మాక్రో",
+       "exif-subjectdistancerange-2": "దగ్గరి దృశ్యం",
+       "exif-subjectdistancerange-3": "దూరపు దృశ్యం",
+       "exif-gpslatitude-n": "ఉత్తర అక్షాంశం",
+       "exif-gpslatitude-s": "దక్షిణ అక్షాంశం",
+       "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-gpsdestdistance-m": "మైళ్ళు",
+       "exif-gpsdestdistance-n": "నాటికల్ మైళ్ళు",
+       "exif-gpsdop-excellent": "శ్రేష్ఠం ($1)",
+       "exif-gpsdop-good": "ఉత్తమం ($1)",
+       "exif-gpsdop-moderate": "మధ్యమం ($1)",
+       "exif-gpsdop-fair": "పర్లేదు ($1)",
+       "exif-gpsdop-poor": "బాగా లేదు ($1)",
+       "exif-objectcycle-a": "ఉదయం మాత్రమే",
+       "exif-objectcycle-p": "సాయంత్రం మాత్రమే",
+       "exif-objectcycle-b": "ఉదయము సాయంత్రమూ",
+       "exif-gpsdirection-t": "వాస్తవ దిశ",
+       "exif-gpsdirection-m": "అయస్కాంత దిశ",
+       "exif-ycbcrpositioning-1": "మధ్యగతం చేయబడిన",
+       "exif-dc-contributor": "సహాయకులు",
+       "exif-dc-date": "తేదీ‍‍(లు)",
+       "exif-dc-publisher": "ప్రచురణకర్త",
+       "exif-dc-relation": "సంబంధిత మీడియా",
+       "exif-dc-rights": "హక్కులు",
+       "exif-dc-source": "మీడియా మూలము",
+       "exif-dc-type": "మీడియా యొక్క రకము",
+       "exif-rating-rejected": "తిరస్కరించబడింది",
+       "exif-isospeedratings-overflow": "65535 కంటే ఎక్కువ",
+       "exif-iimcategory-ace": "కళలు, సంస్కృతి, వినోదం",
+       "exif-iimcategory-clj": "నేరము, చట్టమూ",
+       "exif-iimcategory-dis": "విపత్తులు, ప్రమాదాలు",
+       "exif-iimcategory-fin": "ఆర్ధికం, వాణిజ్యం",
+       "exif-iimcategory-edu": "విద్య",
+       "exif-iimcategory-evn": "పర్యావరణం",
+       "exif-iimcategory-hth": "ఆరోగ్యం",
+       "exif-iimcategory-hum": "మానవీయ ఆసక్తి",
+       "exif-iimcategory-lab": "కృషి",
+       "exif-iimcategory-lif": "జీవనశైలి, కాలక్షేపం",
+       "exif-iimcategory-pol": "రాజకీయాలు",
+       "exif-iimcategory-rel": "మతం, విశ్వాసం",
+       "exif-iimcategory-sci": "వైజ్ఞానికం, సాంకేతికం",
+       "exif-iimcategory-soi": "సాంఘిక సమస్యలు",
+       "exif-iimcategory-spo": "క్రీడలు",
+       "exif-iimcategory-war": "యుద్ధం, సంఘర్షణ, అల్లర్లు",
+       "exif-iimcategory-wea": "వాతావరణం",
+       "exif-urgency-normal": "సాధారణం ($1)",
+       "exif-urgency-low": "తక్కువ ($1)",
+       "exif-urgency-high": "ఎక్కువ ($1)",
+       "exif-urgency-other": "వాడుకరి-నిర్వచిత ప్రాథాన్యత ($1)"
+}
diff --git a/languages/i18n/exif/tg-cyrl.json b/languages/i18n/exif/tg-cyrl.json
new file mode 100644 (file)
index 0000000..8848ad4
--- /dev/null
@@ -0,0 +1,230 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Chinneeb",
+                       "Ibrahim",
+                       "ToJack"
+               ]
+       },
+       "exif-imagewidth": "Васеъӣ",
+       "exif-imagelength": "Баландӣ",
+       "exif-bitspersample": "Нуқта дар ҳар ҷузъ",
+       "exif-compression": "Тарҳи фишурдасозӣ",
+       "exif-photometricinterpretation": "Таркиби нуқот",
+       "exif-orientation": "Ҷиҳатёбӣ",
+       "exif-samplesperpixel": "Теъдоди қисмҳо",
+       "exif-planarconfiguration": "Тартиби додаҳо",
+       "exif-ycbcrsubsampling": "Нисбати зернамунаи Y ба C",
+       "exif-ycbcrpositioning": "Мавқеияти Y ва C",
+       "exif-xresolution": "Таҳлилпазирии уфуқӣ",
+       "exif-yresolution": "Таҳлилпазирии амудӣ",
+       "exif-stripoffsets": "Ҷойгоҳи додаҳои акс",
+       "exif-rowsperstrip": "Теъдоди радифҳо дар ҳар навор",
+       "exif-stripbytecounts": "Байт дар ҳар навори фишурда",
+       "exif-jpeginterchangeformat": "Ҷабъаи ҷойи нисбат ба JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Байт додаи JPEG",
+       "exif-whitepoint": "Рангинагии нуқтаи сафед",
+       "exif-primarychromaticities": "Рангпазирии аввалиятҳо",
+       "exif-ycbcrcoefficients": "Зарбкунандаҳои матриси табдили фазои ранг",
+       "exif-referenceblackwhite": "Ҷуфти қиммати муроҷиаи сиёҳ ва сафед",
+       "exif-datetime": "Таърих ва вақти тағйири парванда",
+       "exif-imagedescription": "Унвони акс",
+       "exif-make": "Ширкати созандаи аксбардорак",
+       "exif-model": "Модели аксбардорак",
+       "exif-software": "Нармафзори истифодашуда",
+       "exif-artist": "Муаллиф",
+       "exif-copyright": "Дорандаи ҳаққи таксир",
+       "exif-exifversion": "Нусхаи exif",
+       "exif-flashpixversion": "Нусхаи пуштибонишудаи Flashpix",
+       "exif-colorspace": "Фазои ранг",
+       "exif-componentsconfiguration": "Маънии ҳар як аз қисмҳо",
+       "exif-compressedbitsperpixel": "Ҳолати фишурдасозии акс",
+       "exif-pixelxdimension": "Арзи акс",
+       "exif-pixelydimension": "Тӯли акс",
+       "exif-usercomment": "Тавзеҳоти корбар",
+       "exif-relatedsoundfile": "Парвандаи сабти алоқаманд",
+       "exif-datetimeoriginal": "Таърих ва вақти тавлиди додаҳо",
+       "exif-datetimedigitized": "Таърих ва замони рақамӣ(диҷиталӣ) шудан",
+       "exif-subsectime": "Касри сонияи таърих ва замон",
+       "exif-subsectimeoriginal": "Касри сонияи замони аслӣ",
+       "exif-subsectimedigitized": "Касри сонияи замони рақамӣ(диҷиталӣ) шуда",
+       "exif-exposuretime": "Замони нурдиҳӣ",
+       "exif-exposuretime-format": "$1 сония ($2)",
+       "exif-fnumber": "F Рақам",
+       "exif-exposureprogram": "Барномаи Нурдиҳӣ",
+       "exif-spectralsensitivity": "Ҳасосияти тифӣ",
+       "exif-isospeedratings": "Дараҷабандии суръати ISO",
+       "exif-shutterspeedvalue": "Суръати пардаи APEX",
+       "exif-aperturevalue": "Андозаи APEX",
+       "exif-brightnessvalue": "APEX равшанӣ",
+       "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": "Мувозинаи ранги сафед",
+       "exif-digitalzoomratio": "Нисбати тағйирдиҳии рақамии миқёси акс (digital zoom)",
+       "exif-focallengthin35mmfilm": "Фосилаи марказӣ барои филми 35 мм",
+       "exif-scenecapturetype": "Навъи сабти саҳна",
+       "exif-gaincontrol": "Танзими саҳна",
+       "exif-contrast": "Контраст",
+       "exif-saturation": "Серобшавӣ",
+       "exif-sharpness": "Рӯшанӣ",
+       "exif-devicesettingdescription": "Шарҳи танзимоти дастгоҳ",
+       "exif-subjectdistancerange": "Ҳудуди фосилаи ҷисм",
+       "exif-imageuniqueid": "Шиносаи ягонаи акс",
+       "exif-gpsversionid": "Нусхаи барчасби ҶПС",
+       "exif-gpslatituderef": "Арзи ҷуғрофии шимолӣ ё ҷанубӣ",
+       "exif-gpslatitude": "Арзи ҷуғрофӣ",
+       "exif-gpslongituderef": "Тӯли ҷуғрофии шарқӣ ё ғарбӣ",
+       "exif-gpslongitude": "Тӯли ҷуғрофӣ",
+       "exif-gpsaltituderef": "Нуқтаи муроҷиаи фароз",
+       "exif-gpsaltitude": "Фароз",
+       "exif-gpstimestamp": "Вақти ҶПС (соати атомӣ)",
+       "exif-gpssatellites": "Моҳвораҳои истифодашуда барои андозагирӣ",
+       "exif-gpsstatus": "Вазъияти гиранда",
+       "exif-gpsmeasuremode": "Ҳолати андозагирӣ",
+       "exif-gpsdop": "Диққати андозагирӣ",
+       "exif-gpsspeedref": "Воҳиди суръат",
+       "exif-gpsspeed": "Суръати гирандаи ҶПС",
+       "exif-gpstrackref": "Муроҷиа барои самти ҳаракат",
+       "exif-gpstrack": "Самти ҳаракат",
+       "exif-gpsimgdirectionref": "Муроҷиа барои самти акс",
+       "exif-gpsimgdirection": "Самти акс",
+       "exif-gpsmapdatum": "Иттилооти нақшабардории Geodetic истифода шудааст",
+       "exif-gpsdestlatituderef": "Муроҷиа барои арзи ҷуғрофии мақсад",
+       "exif-gpsdestlatitude": "Арзи ҷуғрофии мақсад",
+       "exif-gpsdestlongituderef": "Муроҷиа барои тӯли ҷуғрофии мақсад",
+       "exif-gpsdestlongitude": "Тӯли ҷуғрофии мақсад",
+       "exif-gpsdestbearingref": "Муроҷиа барои самти мақсад",
+       "exif-gpsdestbearing": "Самти мақсад",
+       "exif-gpsdestdistanceref": "Муроҷиа барои фосила то мақсад",
+       "exif-gpsdestdistance": "Фосила то мақсад",
+       "exif-gpsprocessingmethod": "Номи равиш пардозиши ҶПС",
+       "exif-gpsareainformation": "Номи масоҳати ҶПС",
+       "exif-gpsdatestamp": "Таърихи ҶПС",
+       "exif-gpsdifferential": "Тасҳеҳи ҷузъии ҶПС",
+       "exif-keywords": "Калидвожаҳо",
+       "exif-languagecode": "Забон",
+       "exif-iimcategory": "Гурӯҳ",
+       "exif-compression-1": "Ғайрифишурда",
+       "exif-unknowndate": "Таърихи номаълум",
+       "exif-orientation-1": "Оддӣ",
+       "exif-orientation-2": "Уфуқӣ пуштурӯ шуда",
+       "exif-orientation-3": "180° дараҷа чархида",
+       "exif-orientation-4": "Амудӣ пуштурӯ шуда",
+       "exif-orientation-5": "90° бо ақрабаки соат чархида ва амудӣ пуштурӯ шуда",
+       "exif-orientation-6": "Чархида 90° ақрабаки соат",
+       "exif-orientation-7": "90° ақрабаки соат чархида ва амудӣ пуштурӯ шуда",
+       "exif-orientation-8": "90° бо ақрабаки соат чархида",
+       "exif-planarconfiguration-1": "Қолаби фарбеҳ",
+       "exif-planarconfiguration-2": "қолаби сатҳӣ",
+       "exif-componentsconfiguration-0": "вуҷуд надорад",
+       "exif-exposureprogram-0": "Таърифнашуда",
+       "exif-exposureprogram-1": "Дастӣ",
+       "exif-exposureprogram-2": "Барномаи оддӣ",
+       "exif-exposureprogram-3": "Аввалияти диафрагм",
+       "exif-exposureprogram-4": "Аввалияти шаттер (Shutter priority)",
+       "exif-exposureprogram-5": "Барномаи эҷодӣ (бо гироиш ба самти қаър медон)",
+       "exif-exposureprogram-6": "Барномаи пурҷунбиш (бо гироиш ба самти суръати тези парда)",
+       "exif-exposureprogram-7": "Ҳолати портрет (барои аксҳои наздик бо пасзаминаи хориҷ аз фосилаи марказ аст)",
+       "exif-exposureprogram-8": "Ҳолати манзара (барои аксҳои манзара бо пасзамина дар фосилаи марказ)",
+       "exif-subjectdistance-value": "$1 метр",
+       "exif-meteringmode-0": "Номаълум",
+       "exif-meteringmode-1": "Миёна",
+       "exif-meteringmode-2": "МарказВазниМиёна",
+       "exif-meteringmode-3": "Нуқта",
+       "exif-meteringmode-4": "БисёрНуқта",
+       "exif-meteringmode-5": "Тарҳдор",
+       "exif-meteringmode-6": "Ҷузъӣ",
+       "exif-meteringmode-255": "Ғайра",
+       "exif-lightsource-0": "Номаълум",
+       "exif-lightsource-1": "Рӯшноии рӯз",
+       "exif-lightsource-2": "Флуоресент",
+       "exif-lightsource-3": "Тунгстен (нур бидуни гармо)",
+       "exif-lightsource-4": "Гэрэл цацагч",
+       "exif-lightsource-9": "Ҳавои хуб",
+       "exif-lightsource-10": "Осмони абрӣ",
+       "exif-lightsource-11": "Соя",
+       "exif-lightsource-12": "Маҳтобӣ дар рӯз (D 5700 – 7100K)",
+       "exif-lightsource-13": "Маҳтоби сафед дар рӯз (N 4600 – 5400K)",
+       "exif-lightsource-14": "Маҳтоби сафедӣ хунук (W 3900 – 4500K)",
+       "exif-lightsource-15": "Маҳтоби сафед (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Нури стандартӣ A",
+       "exif-lightsource-18": "Нури стандартӣ B",
+       "exif-lightsource-19": "Нури стандартӣ C",
+       "exif-lightsource-24": "ISO лампи тунстени корхона",
+       "exif-lightsource-255": "Дигар манбаъи нур",
+       "exif-focalplaneresolutionunit-2": "инч",
+       "exif-sensingmethod-1": "Таърифнашуда",
+       "exif-sensingmethod-2": "Ҳисгари ноҳияи ранги як тарошае",
+       "exif-sensingmethod-3": "Ҳисгари ноҳияи ранги ду тарошае",
+       "exif-sensingmethod-4": "Ҳисгари ноҳияи ранги се тарошае",
+       "exif-sensingmethod-5": "Ҳисгари ноҳияи тартиби рангҳо",
+       "exif-sensingmethod-7": "Ҳисгари сехатӣ",
+       "exif-sensingmethod-8": "Ҳисгари хати тартибии рангҳо",
+       "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-saturation-0": "Оддӣ",
+       "exif-saturation-1": "Рангҳои рақиқшуда",
+       "exif-saturation-2": "Рангҳои тағлизшуда",
+       "exif-sharpness-0": "Оддӣ",
+       "exif-sharpness-1": "Нарм",
+       "exif-sharpness-2": "Нарм",
+       "exif-subjectdistancerange-0": "Номаълум",
+       "exif-subjectdistancerange-1": "Макро",
+       "exif-subjectdistancerange-2": "Намои наздик",
+       "exif-subjectdistancerange-3": "Намои дур",
+       "exif-gpslatitude-n": "Арзи ҷуғрофиявӣ шимолӣ",
+       "exif-gpslatitude-s": "Арзи ҷуғрофиявӣ ҷанубӣ",
+       "exif-gpslongitude-e": "Арзи ҷуғрофиявӣ шарқӣ",
+       "exif-gpslongitude-w": "Арзи ҷуғрофиявӣ ғарбӣ",
+       "exif-gpsstatus-a": "Дар ҳоли андозагирӣ",
+       "exif-gpsstatus-v": "Муқоисапазирии андозагирӣ",
+       "exif-gpsmeasuremode-2": "Андозагирии 2-баъдӣ",
+       "exif-gpsmeasuremode-3": "Андозагирии 3-баъдӣ",
+       "exif-gpsspeed-k": "Километр бар соат",
+       "exif-gpsspeed-m": "Мил бар соат",
+       "exif-gpsspeed-n": "Гиреҳ",
+       "exif-gpsdirection-t": "Раванди дуруст",
+       "exif-gpsdirection-m": "Раванди магнетикӣ",
+       "exif-iimcategory-edu": "Маориф",
+       "exif-iimcategory-evn": "Муҳит",
+       "exif-iimcategory-hth": "Тандурустӣ",
+       "exif-iimcategory-lab": "Меҳнат",
+       "exif-iimcategory-pol": "Сиёсат",
+       "exif-iimcategory-rel": "Дин ва ибодат",
+       "exif-iimcategory-spo": "Варзиш"
+}
diff --git a/languages/i18n/exif/tg-latn.json b/languages/i18n/exif/tg-latn.json
new file mode 100644 (file)
index 0000000..810d4b7
--- /dev/null
@@ -0,0 +1,218 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Liangent"
+               ]
+       },
+       "exif-imagewidth": "Vase'ī",
+       "exif-imagelength": "Balandī",
+       "exif-bitspersample": "Nuqta dar har çuz'",
+       "exif-compression": "Tarhi fişurdasozī",
+       "exif-photometricinterpretation": "Tarkibi nuqot",
+       "exif-orientation": "Çihatjobī",
+       "exif-samplesperpixel": "Te'dodi qismho",
+       "exif-planarconfiguration": "Tartibi dodaho",
+       "exif-ycbcrsubsampling": "Nisbati zernamunai Y ba C",
+       "exif-ycbcrpositioning": "Mavqeijati Y va C",
+       "exif-xresolution": "Tahlilpaziriji ufuqī",
+       "exif-yresolution": "Tahlilpaziriji amudī",
+       "exif-stripoffsets": "Çojgohi dodahoi aks",
+       "exif-rowsperstrip": "Te'dodi radifho dar har navor",
+       "exif-stripbytecounts": "Bajt dar har navori fişurda",
+       "exif-jpeginterchangeformat": "Çab'ai çoji nisbat ba JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bajt dodai JPEG",
+       "exif-whitepoint": "Ranginagiji nuqtai safed",
+       "exif-primarychromaticities": "Rangpaziriji avvalijatho",
+       "exif-ycbcrcoefficients": "Zarbkunandahoi matrisi tabdili fazoi rang",
+       "exif-referenceblackwhite": "Çufti qimmati muroçiai sijoh va safed",
+       "exif-datetime": "Ta'rix va vaqti taƣjiri parvanda",
+       "exif-imagedescription": "Unvoni aks",
+       "exif-make": "Şirkati sozandai aksbardorak",
+       "exif-model": "Modeli aksbardorak",
+       "exif-software": "Narmafzori istifodaşuda",
+       "exif-artist": "Muallif",
+       "exif-copyright": "Dorandai haqqi taksir",
+       "exif-exifversion": "Nusxai exif",
+       "exif-flashpixversion": "Nusxai puştibonişudai Flashpix",
+       "exif-colorspace": "Fazoi rang",
+       "exif-componentsconfiguration": "Ma'niji har jak az qismho",
+       "exif-compressedbitsperpixel": "Holati fişurdasoziji aks",
+       "exif-pixelxdimension": "Arzi aksi mū'tabar",
+       "exif-pixelydimension": "Tūli aksi mū'tabar",
+       "exif-usercomment": "Tavzehoti korbar",
+       "exif-relatedsoundfile": "Parvandai sabti aloqamand",
+       "exif-datetimeoriginal": "Ta'rix va vaqti tavlidi dodaho",
+       "exif-datetimedigitized": "Ta'rix va zamoni raqamī(diçitalī) şudan",
+       "exif-subsectime": "Kasri sonijai ta'rix va zamon",
+       "exif-subsectimeoriginal": "Kasri sonijai zamoni aslī",
+       "exif-subsectimedigitized": "Kasri sonijai zamoni raqamī(diçitalī) şuda",
+       "exif-exposuretime": "Zamoni nurdihī",
+       "exif-exposuretime-format": "$1 sonija ($2)",
+       "exif-fnumber": "F Raqam",
+       "exif-exposureprogram": "Barnomai Nurdihī",
+       "exif-spectralsensitivity": "Hasosijati tifī",
+       "exif-isospeedratings": "Daraçabandiji sur'ati ISO",
+       "exif-shutterspeedvalue": "Sur'ati parda",
+       "exif-aperturevalue": "Andozai diafragm",
+       "exif-brightnessvalue": "Ravşanī",
+       "exif-exposurebiasvalue": "Xatoi nurdihī",
+       "exif-maxaperturevalue": "Haddi aksar kuşodagiji zamin",
+       "exif-subjectdistance": "Fosilai çism",
+       "exif-meteringmode": "Holati sançişi fosila",
+       "exif-lightsource": "Manbai nur",
+       "exif-flash": "Fleş",
+       "exif-focallength": "Fosilai markaziji adasī",
+       "exif-subjectarea": "Masohati çism",
+       "exif-flashenergy": "Qudrati fleş",
+       "exif-focalplanexresolution": "Safhai markaziji X tafkikpazirī",
+       "exif-focalplaneyresolution": "Safhai markaziji Y tafkikpazirī",
+       "exif-focalplaneresolutionunit": "Vohidi tafkikpaziriji safhai markazī",
+       "exif-subjectlocation": "Makoni çism",
+       "exif-exposureindex": "Şoxisi nurdihī",
+       "exif-sensingmethod": "Ravişi hisgarī",
+       "exif-filesource": "Manbai parvanda",
+       "exif-scenetype": "Nav'i sahna",
+       "exif-customrendered": "Pardozişi aks",
+       "exif-exposuremode": "Holati nurdihī",
+       "exif-whitebalance": "Muvozinai rangi safed",
+       "exif-digitalzoomratio": "Nisbati taƣjirdihiji raqamiji miqjosi aks (digital zoom)",
+       "exif-focallengthin35mmfilm": "Fosilai markazī baroi filmi 35 mm",
+       "exif-scenecapturetype": "Nav'i sabti sahna",
+       "exif-gaincontrol": "Tanzimi sahna",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Serobşavī",
+       "exif-sharpness": "Rūşanī",
+       "exif-devicesettingdescription": "Şarhi tanzimoti dastgoh",
+       "exif-subjectdistancerange": "Hududi fosilai çism",
+       "exif-imageuniqueid": "Şinosai jagonai aks",
+       "exif-gpsversionid": "Nusxai barcasbi ÇPS",
+       "exif-gpslatituderef": "Arzi çuƣrofiji şimolī jo çanubī",
+       "exif-gpslatitude": "Arzi çuƣrofī",
+       "exif-gpslongituderef": "Tūli çuƣrofiji şarqī jo ƣarbī",
+       "exif-gpslongitude": "Tūli çuƣrofī",
+       "exif-gpsaltituderef": "Nuqtai muroçiai faroz",
+       "exif-gpsaltitude": "Faroz",
+       "exif-gpstimestamp": "Vaqti ÇPS (soati atomī)",
+       "exif-gpssatellites": "Mohvorahoi istifodaşuda baroi andozagirī",
+       "exif-gpsstatus": "Vaz'ijati giranda",
+       "exif-gpsmeasuremode": "Holati andozagirī",
+       "exif-gpsdop": "Diqqati andozagirī",
+       "exif-gpsspeedref": "Vohidi sur'at",
+       "exif-gpsspeed": "Sur'ati girandai ÇPS",
+       "exif-gpstrackref": "Muroçia baroi samti harakat",
+       "exif-gpstrack": "Samti harakat",
+       "exif-gpsimgdirectionref": "Muroçia baroi samti aks",
+       "exif-gpsimgdirection": "Samti aks",
+       "exif-gpsmapdatum": "Ittilooti naqşabardoriji Geodetic istifoda şudaast",
+       "exif-gpsdestlatituderef": "Muroçia baroi arzi çuƣrofiji maqsad",
+       "exif-gpsdestlatitude": "Arzi çuƣrofiji maqsad",
+       "exif-gpsdestlongituderef": "Muroçia baroi tūli çuƣrofiji maqsad",
+       "exif-gpsdestlongitude": "Tūli çuƣrofiji maqsad",
+       "exif-gpsdestbearingref": "Muroçia baroi samti maqsad",
+       "exif-gpsdestbearing": "Samti maqsad",
+       "exif-gpsdestdistanceref": "Muroçia baroi fosila to maqsad",
+       "exif-gpsdestdistance": "Fosila to maqsad",
+       "exif-gpsprocessingmethod": "Nomi raviş pardozişi ÇPS",
+       "exif-gpsareainformation": "Nomi masohati ÇPS",
+       "exif-gpsdatestamp": "Ta'rixi ÇPS",
+       "exif-gpsdifferential": "Tashehi çuz'iji ÇPS",
+       "exif-compression-1": "Ƣajrifişurda",
+       "exif-unknowndate": "Ta'rixi noma'lum",
+       "exif-orientation-1": "Oddī",
+       "exif-orientation-2": "Ufuqī puşturū şuda",
+       "exif-orientation-3": "180° daraça carxida",
+       "exif-orientation-4": "Amudī puşturū şuda",
+       "exif-orientation-5": "90° bo aqrabaki soat carxida va amudī puşturū şuda",
+       "exif-orientation-6": "90° aqrabaki soat carxida",
+       "exif-orientation-7": "90° aqrabaki soat carxida va amudī puşturū şuda",
+       "exif-orientation-8": "90° bo aqrabaki soat carxida",
+       "exif-planarconfiguration-1": "Qolabi farbeh",
+       "exif-planarconfiguration-2": "qolabi sathī",
+       "exif-componentsconfiguration-0": "vuçud nadorad",
+       "exif-exposureprogram-0": "Ta'rifnaşuda",
+       "exif-exposureprogram-1": "Dastī",
+       "exif-exposureprogram-2": "Barnomai oddī",
+       "exif-exposureprogram-3": "Avvalijati diafragm",
+       "exif-exposureprogram-4": "Avvalijati şatter (Shutter priority)",
+       "exif-exposureprogram-5": "Barnomai eçodī (bo giroiş ba samti qa'r medon)",
+       "exif-exposureprogram-6": "Barnomai purçunbiş (bo giroiş ba samti sur'ati tezi parda)",
+       "exif-exposureprogram-7": "Holati portret (baroi akshoi nazdik bo paszaminai xoriç az fosilai markaz ast)",
+       "exif-exposureprogram-8": "Holati manzara (baroi akshoi manzara bo paszamina dar fosilai markaz)",
+       "exif-subjectdistance-value": "$1 metr",
+       "exif-meteringmode-0": "Noma'lum",
+       "exif-meteringmode-1": "Mijona",
+       "exif-meteringmode-2": "MarkazVazniMijona",
+       "exif-meteringmode-3": "Nuqta",
+       "exif-meteringmode-4": "BisjorNuqta",
+       "exif-meteringmode-5": "Tarhdor",
+       "exif-meteringmode-6": "Çuz'ī",
+       "exif-meteringmode-255": "Ƣajra",
+       "exif-lightsource-0": "Noma'lum",
+       "exif-lightsource-1": "Rūşnoiji rūz",
+       "exif-lightsource-2": "Fluoresent",
+       "exif-lightsource-3": "Tungsten (nur biduni garmo)",
+       "exif-lightsource-4": "Gerel tsatsagc",
+       "exif-lightsource-9": "Havoi xub",
+       "exif-lightsource-10": "Osmoni abrī",
+       "exif-lightsource-11": "Soja",
+       "exif-lightsource-12": "Mahtobī dar rūz (D 5700 – 7100K)",
+       "exif-lightsource-13": "Mahtobi safed dar rūz (N 4600 – 5400K)",
+       "exif-lightsource-14": "Mahtobi safedī xunuk (W 3900 – 4500K)",
+       "exif-lightsource-15": "Mahtobi safed (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Nuri standartī A",
+       "exif-lightsource-18": "Nuri standartī B",
+       "exif-lightsource-19": "Nuri standartī C",
+       "exif-lightsource-24": "ISO lampi tunsteni korxona",
+       "exif-lightsource-255": "Digar manba'i nur",
+       "exif-focalplaneresolutionunit-2": "inc",
+       "exif-sensingmethod-1": "Ta'rifnaşuda",
+       "exif-sensingmethod-2": "Hisgari nohijai rangi jak taroşae",
+       "exif-sensingmethod-3": "Hisgari nohijai rangi du taroşae",
+       "exif-sensingmethod-4": "Hisgari nohijai rangi se taroşae",
+       "exif-sensingmethod-5": "Hisgari nohijai tartibi rangho",
+       "exif-sensingmethod-7": "Hisgari sexatī",
+       "exif-sensingmethod-8": "Hisgari xati tartibiji rangho",
+       "exif-scenetype-1": "Aksi mustaqiman akkosişuda",
+       "exif-customrendered-0": "Pardozişi oddī",
+       "exif-customrendered-1": "Pardozişi suforişī",
+       "exif-exposuremode-0": "Nurdihiji xudkor",
+       "exif-exposuremode-1": "Nurdihiji dastī",
+       "exif-exposuremode-2": "Qavsbandiji xudkor (Auto bracket)",
+       "exif-whitebalance-0": "Tanzimi xudkorī rangi safed (white balance)",
+       "exif-whitebalance-1": "Tanzimi dastiji rangi safed (white balance)",
+       "exif-scenecapturetype-0": "Standart",
+       "exif-scenecapturetype-1": "Caşmandoz",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Şabona",
+       "exif-gaincontrol-0": "Heç",
+       "exif-gaincontrol-1": "Afzoişi haddi aqali darjoftī",
+       "exif-gaincontrol-2": "Afzoişi haddi aksari darjoftī",
+       "exif-gaincontrol-3": "Kohişi haddi aqali darjoftī",
+       "exif-gaincontrol-4": "Kohişi haddi aksari darjoftī",
+       "exif-contrast-0": "Oddī",
+       "exif-contrast-1": "Narm",
+       "exif-contrast-2": "Saxt",
+       "exif-saturation-0": "Oddī",
+       "exif-saturation-1": "Ranghoi raqiqşuda",
+       "exif-saturation-2": "Ranghoi taƣlizşuda",
+       "exif-sharpness-0": "Oddī",
+       "exif-sharpness-1": "Narm",
+       "exif-sharpness-2": "Narm",
+       "exif-subjectdistancerange-0": "Noma'lum",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Namoi nazdik",
+       "exif-subjectdistancerange-3": "Namoi dur",
+       "exif-gpslatitude-n": "Arzi çuƣrofijavī şimolī",
+       "exif-gpslatitude-s": "Arzi çuƣrofijavī çanubī",
+       "exif-gpslongitude-e": "Arzi çuƣrofijavī şarqī",
+       "exif-gpslongitude-w": "Arzi çuƣrofijavī ƣarbī",
+       "exif-gpsstatus-a": "Dar holi andozagirī",
+       "exif-gpsstatus-v": "Muqoisapaziriji andozagirī",
+       "exif-gpsmeasuremode-2": "Andozagiriji 2-ba'dī",
+       "exif-gpsmeasuremode-3": "Andozagiriji 3-ba'dī",
+       "exif-gpsspeed-k": "Kilometr bar soat",
+       "exif-gpsspeed-m": "Mil bar soat",
+       "exif-gpsspeed-n": "Gireh",
+       "exif-gpsdirection-t": "Ravandi durust",
+       "exif-gpsdirection-m": "Ravandi magnetikī"
+}
diff --git a/languages/i18n/exif/th.json b/languages/i18n/exif/th.json
new file mode 100644 (file)
index 0000000..81eb040
--- /dev/null
@@ -0,0 +1,258 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ariesanywhere",
+                       "Horus",
+                       "Manop",
+                       "Nullzero",
+                       "Octahedron80",
+                       "Passawuth",
+                       "Woraponboonkerd"
+               ]
+       },
+       "exif-imagewidth": "ความกว้าง",
+       "exif-imagelength": "ความสูง",
+       "exif-bitspersample": "บิตต่อคอมโพเนนต์",
+       "exif-compression": "รูปแบบการบีบอัด",
+       "exif-photometricinterpretation": "พิกเซลคอมโพซิชัน",
+       "exif-orientation": "การจัดวางภาพ",
+       "exif-samplesperpixel": "จำนวนคอมโพเนนต์",
+       "exif-planarconfiguration": "การจัดเรียงข้อมูล",
+       "exif-ycbcrsubsampling": "อัตราซับแซมปริง ของ Y และ C",
+       "exif-ycbcrpositioning": "ตำแหน่ง Y และ C",
+       "exif-xresolution": "ความละเอียดแนวนอน",
+       "exif-yresolution": "ความละเอียดแนวตั้ง",
+       "exif-stripoffsets": "ตำแหน่งข้อมูลภาพ",
+       "exif-rowsperstrip": "จำนวนแถวต่อสตริป",
+       "exif-stripbytecounts": "ไบต์ต่อสตริป",
+       "exif-jpeginterchangeformat": "ออฟเซตไปที่ JPEG SOI",
+       "exif-jpeginterchangeformatlength": "ไบต์ของข้อมูล JPEG",
+       "exif-whitepoint": "ไวต์พอยต์โครมาติก",
+       "exif-primarychromaticities": "โครมาติกของไพรมาริตี",
+       "exif-ycbcrcoefficients": "สัมประสิทธิเมทริกซ์การเปลียนแปลงของสเปซสี",
+       "exif-referenceblackwhite": "คู่จุดสีขาวและดำสำหรับอ้างอิง",
+       "exif-datetime": "วันที่และเวลาเปลี่ยนไฟล์",
+       "exif-imagedescription": "ชื่อภาพ",
+       "exif-make": "ผู้ผลิตกล้อง",
+       "exif-model": "รุ่นกล้องถ่ายรูป",
+       "exif-software": "ซอฟต์แวร์ที่ใช้",
+       "exif-artist": "ผู้สร้างสรรค์",
+       "exif-copyright": "ผู้ทรงลิขสิทธิ์",
+       "exif-exifversion": "รุ่นเอกซิฟ (Exif)",
+       "exif-flashpixversion": "รุ่นแฟลชพิกซ์ที่รองรับ",
+       "exif-colorspace": "สเปซสี",
+       "exif-componentsconfiguration": "ความหมายของแต่ละคอมโพเนนต์",
+       "exif-compressedbitsperpixel": "โหมดการบีบอัดภาพ",
+       "exif-pixelxdimension": "ความกว้างของภาพ",
+       "exif-pixelydimension": "ความสูงของภาพ",
+       "exif-usercomment": "ความเห็นผู้ใช้",
+       "exif-relatedsoundfile": "ไฟล์เสียงที่เกี่ยวข้อง",
+       "exif-datetimeoriginal": "วันที่และเวลาการก่อกำเนิดข้อมูล",
+       "exif-datetimedigitized": "วันที่และเวลาการแปลงเป็นดิจิทัล",
+       "exif-subsectime": "เสี้ยววินาที วันที่ เวลา",
+       "exif-subsectimeoriginal": "เสี้ยววินาที วันที่ เวลาต้นฉบับ",
+       "exif-subsectimedigitized": "เสี้ยววินาที วันที่ เวลาที่ดิจิไทซ์",
+       "exif-exposuretime": "เวลารับแสง",
+       "exif-exposuretime-format": "$1 วินาที ($2)",
+       "exif-fnumber": "ค่าเอฟ",
+       "exif-exposureprogram": "โปรแกรมเอกซ์โพเชอร์",
+       "exif-spectralsensitivity": "ความไวสเปกตรัม",
+       "exif-isospeedratings": "อัตราความเร็ว ISO",
+       "exif-shutterspeedvalue": "ความเร็วชัตเตอร์ APEX",
+       "exif-aperturevalue": "รูรับแสง APEX",
+       "exif-brightnessvalue": "ความสว่าง APEX",
+       "exif-exposurebiasvalue": "เอกซ์โพเชอร์ไบแอส",
+       "exif-maxaperturevalue": "รูรับแสงกว้างสุด",
+       "exif-subjectdistance": "ระยะวัตถุ",
+       "exif-meteringmode": "โหมดมิเตอริง",
+       "exif-lightsource": "แสง",
+       "exif-flash": "แฟลช",
+       "exif-focallength": "ระยะโฟกัส",
+       "exif-focallength-format": "$1 มม.",
+       "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": "ไวต์บาลานซ์",
+       "exif-digitalzoomratio": "อัตราซูมดิจิทัล",
+       "exif-focallengthin35mmfilm": "ระยะโฟกัสในฟิล์ม 35 มม.",
+       "exif-scenecapturetype": "ชนิดซีนแคปเจอร์",
+       "exif-gaincontrol": "ซีนคอนโทรล",
+       "exif-contrast": "ความเปรีบบต่าง",
+       "exif-saturation": "ความอิ่มสี",
+       "exif-sharpness": "ความคม",
+       "exif-devicesettingdescription": "รายละเอียดการตั้งค่าอุปกรณ์",
+       "exif-subjectdistancerange": "ระยะห่างวัตถุ",
+       "exif-imageuniqueid": "รหัสภาพ",
+       "exif-gpsversionid": "รุ่นจีพีเอสแท็ก",
+       "exif-gpslatituderef": "ละติจูดเหนือหรือใต้",
+       "exif-gpslatitude": "ละติจูด",
+       "exif-gpslongituderef": "ลองจิจูดตะวันออกหรือตะวันตก",
+       "exif-gpslongitude": "ลองจิจูด",
+       "exif-gpsaltituderef": "ระดับความสูงอ้างอิง",
+       "exif-gpsaltitude": "ระดับความสูงจากน้ำทะเล",
+       "exif-gpstimestamp": "เวลาจีพีเอส (นาฬิกาอะตอม)",
+       "exif-gpssatellites": "จำนวนดาวเทียมที่ใช้วัดค่า",
+       "exif-gpsstatus": "สถานีเครื่องรับสัญญาณ",
+       "exif-gpsmeasuremode": "โหมดการวัดค่า",
+       "exif-gpsdop": "ความละเอียดการวัดค่า",
+       "exif-gpsspeedref": "หน่วยความเร็ว",
+       "exif-gpsspeed": "ความเร็วของเครื่องรับสัญญาณจีพีเอส",
+       "exif-gpstrackref": "จุดอ้างอิงของทิศทางการเคลื่อนไหว",
+       "exif-gpstrack": "ทิศทางการเคลื่อนไหว",
+       "exif-gpsimgdirectionref": "จุดอ้างอิงของทิศทางภาพ",
+       "exif-gpsimgdirection": "ทิศทางของภาพ",
+       "exif-gpsmapdatum": "ข้อมูลการสำรวจจีโอเดติกที่ถูกใช้",
+       "exif-gpsdestlatituderef": "จุดอ้างอิงของละติจูดเป้าหมาย",
+       "exif-gpsdestlatitude": "ละติจูดเป้าหมาย",
+       "exif-gpsdestlongituderef": "จุดอ้างอิงของลองจิจูดเป้าหมาย",
+       "exif-gpsdestlongitude": "ลองจิจูดเป้าหมาย",
+       "exif-gpsdestbearingref": "จุดอ้างอิงของทิศทางเป้าหมาย",
+       "exif-gpsdestbearing": "ทิศทางของเป้าหมาย",
+       "exif-gpsdestdistanceref": "จุดอ้างอิงของระยะทางเป้าหมาย",
+       "exif-gpsdestdistance": "ระยะทางของเป้าหมาย",
+       "exif-gpsprocessingmethod": "ชื่อวิธีประมวดผลจีพีเอส",
+       "exif-gpsareainformation": "ชื่อของพื้นที่จีพีเอส",
+       "exif-gpsdatestamp": "วันที่จีพีเอส",
+       "exif-gpsdifferential": "การปรับแค่ข้อแตกต่างจีพีเอส",
+       "exif-jpegfilecomment": "ความเห็นไฟล์ JPEG",
+       "exif-keywords": "คำสำคัญ",
+       "exif-objectname": "ชื่อเรื่องสั้น",
+       "exif-headline": "พาดหัว",
+       "exif-contact": "ข้อมูลสำหรับติดต่อ",
+       "exif-languagecode": "ภาษา",
+       "exif-iimcategory": "หมวดหมู่",
+       "exif-label": "ป้ายฉลาก",
+       "exif-usageterms": "ข้อตกลงในการใช้งาน",
+       "exif-compression-1": "ไม่ได้บีบอัด",
+       "exif-unknowndate": "ไม่ทราบวัน",
+       "exif-orientation-1": "ปกติ",
+       "exif-orientation-2": "พลิกแนวนอน",
+       "exif-orientation-3": "หมุน 180°",
+       "exif-orientation-4": "พลิกแนวตั้ง",
+       "exif-orientation-5": "หมุน 90° ทวนเข็มนาฬิกาและพลิกแนวตั้ง",
+       "exif-orientation-6": "หมุน 90° ทวนเข็มนาฬิกา",
+       "exif-orientation-7": "หมุน 90° ตามเข็มนาฬิกาและพลิกแนวตั้ง",
+       "exif-orientation-8": "หมุน 90° ตามเข็มนาฬิกา",
+       "exif-planarconfiguration-1": "รูปแบบชังกี",
+       "exif-planarconfiguration-2": "รูปแบบเพลนาร์",
+       "exif-componentsconfiguration-0": "ไม่มีค่า",
+       "exif-exposureprogram-0": "ไม่กำหนด",
+       "exif-exposureprogram-1": "ตั้งค่าเอง",
+       "exif-exposureprogram-2": "โปรแกรมปกติ",
+       "exif-exposureprogram-3": "กำหนดรูรับแสงเป็นหลัก (a)",
+       "exif-exposureprogram-4": "กำหนดความไวชัตเตอร์เป็นหลัก (s)",
+       "exif-exposureprogram-5": "โปรแกรมครีเอทีฟ (ความชัดตื้นหลากหลาย)",
+       "exif-exposureprogram-6": "โปรแกรมแอกชัน (ค่าชัตเตอร์สปีดเร็ว)",
+       "exif-exposureprogram-7": "พอร์เทรต (สำหรับภาพโคลสอัปที่พื้นหลังไม่โฟกัส)",
+       "exif-exposureprogram-8": "แลนด์สเคป (สำหรับภาพวิวทิวทัศน์โฟกัสพื้นหลัง)",
+       "exif-subjectdistance-value": "$1 เมตร",
+       "exif-meteringmode-0": "ไม่ทราบ",
+       "exif-meteringmode-1": "เฉลี่ย",
+       "exif-meteringmode-2": "เซนเตอร์",
+       "exif-meteringmode-3": "สปอต",
+       "exif-meteringmode-4": "มัลติสปอต",
+       "exif-meteringmode-5": "แพตเทิร์น",
+       "exif-meteringmode-6": "พาร์เชียล",
+       "exif-meteringmode-255": "อื่น",
+       "exif-lightsource-0": "ไม่ทราบ",
+       "exif-lightsource-1": "เดย์ไลต์",
+       "exif-lightsource-2": "ฟลูออเรสเซนต์",
+       "exif-lightsource-3": "ทังสเตน (แสดงจากหลอดไฟ)",
+       "exif-lightsource-4": "แฟลช",
+       "exif-lightsource-9": "อากาศปกติ",
+       "exif-lightsource-10": "เมฆมาก",
+       "exif-lightsource-11": "ในร่ม",
+       "exif-lightsource-12": "เดย์ไลต์ฟลูออเรสเซนต์ (D 5700 – 7100K)",
+       "exif-lightsource-13": "เดย์ไวต์ฟลูออเรสเซนต์ (N 4600 – 5400K)",
+       "exif-lightsource-14": "คูลไวต์ฟลูออเรสเซนต์ (W 3900 – 4500K)",
+       "exif-lightsource-15": "ไวต์ฟลูออเรสเซนต์ (WW 3200 – 3700K)",
+       "exif-lightsource-17": "แสงมาตรฐาน A",
+       "exif-lightsource-18": "แสงมาตรฐาน B",
+       "exif-lightsource-19": "แสงมาตรฐาน C",
+       "exif-lightsource-24": "ไอเอสโอสตูดิโอทังสเตน",
+       "exif-lightsource-255": "แสงลักษณะอื่น",
+       "exif-flash-fired-0": "ไม่ใช้แฟลช",
+       "exif-flash-fired-1": "ใช้แฟลช",
+       "exif-flash-return-0": "ไม่มีฟังก์ชันตรวจจับการย้อนแสงจากแฟลช",
+       "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-sensingmethod-7": "เซนเซอร์สามแนว",
+       "exif-sensingmethod-8": "เซนเซอร์สามแนวสี",
+       "exif-filesource-3": "กล้องถ่ายภาพนิ่งดิจิทัล",
+       "exif-scenetype-1": "ภาพถ่ายโดยตรง",
+       "exif-customrendered-0": "โพลเซสส์ปกติ",
+       "exif-customrendered-1": "โพลเซสส์ตั้งค่า",
+       "exif-exposuremode-0": "เอกซ์โพเชอร์อัตโนมัติ",
+       "exif-exposuremode-1": "เอกซ์โพเชอร์ตั้งค่าเอง",
+       "exif-exposuremode-2": "แบรกเกตอัตโนมัติ",
+       "exif-whitebalance-0": "ไวต์บาลานซ์อัตโนมัติ",
+       "exif-whitebalance-1": "ไวต์บาลานซ์ตั้งค่าเอง",
+       "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-saturation-0": "ปกติ",
+       "exif-saturation-1": "ความเข้มสีต่ำ",
+       "exif-saturation-2": "ความเข้มสีสูง",
+       "exif-sharpness-0": "ปกติ",
+       "exif-sharpness-1": "ซอฟต์",
+       "exif-sharpness-2": "ฮาร์ด",
+       "exif-subjectdistancerange-0": "ไม่ทราบ",
+       "exif-subjectdistancerange-1": "มาโคร",
+       "exif-subjectdistancerange-2": "ภาพใกล้",
+       "exif-subjectdistancerange-3": "ภาพไกล",
+       "exif-gpslatitude-n": "ละติจูดเหนือ",
+       "exif-gpslatitude-s": "ละติจูดใต้",
+       "exif-gpslongitude-e": "ลองจิจูดตะวันออก",
+       "exif-gpslongitude-w": "ลองจิจูดตะวันตก",
+       "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-gpsdestdistance-m": "ไมล์",
+       "exif-objectcycle-a": "ตอนเช้าเท่านั้น",
+       "exif-objectcycle-p": "ตอนเย็นเท่านั้น",
+       "exif-gpsdirection-t": "ทิศทางจริง",
+       "exif-gpsdirection-m": "ทิศทางแม่เหล็ก",
+       "exif-dc-publisher": "ผู้เผยแพร่",
+       "exif-iimcategory-fin": "สภาพเศรษฐกิจและธุรกิจ",
+       "exif-iimcategory-edu": "การศึกษา",
+       "exif-iimcategory-evn": "สภาพแวดล้อม",
+       "exif-iimcategory-hth": "สุขภาพ",
+       "exif-iimcategory-pol": "การเมืองการปกครอง",
+       "exif-iimcategory-sci": "วิทยาศาสตร์และเทคโนโลยี",
+       "exif-iimcategory-spo": "กีฬา",
+       "exif-iimcategory-wea": "ภูมิอากาศ"
+}
diff --git a/languages/i18n/exif/tk.json b/languages/i18n/exif/tk.json
new file mode 100644 (file)
index 0000000..c3124cc
--- /dev/null
@@ -0,0 +1,231 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Cekli829",
+                       "Hanberke"
+               ]
+       },
+       "exif-imagewidth": "In",
+       "exif-imagelength": "Beýiklik",
+       "exif-bitspersample": "Komponent başyna bit",
+       "exif-compression": "Gysyş shemasy",
+       "exif-photometricinterpretation": "Piksel düzümi",
+       "exif-orientation": "Orientasiýa",
+       "exif-samplesperpixel": "Komponentleriň sany",
+       "exif-planarconfiguration": "Maglumat guramaçylygy",
+       "exif-ycbcrsubsampling": "Y-C kiçi nusgalama gatnaşygy",
+       "exif-ycbcrpositioning": "Y we C ýerleşişi",
+       "exif-xresolution": "Kese ölçeg",
+       "exif-yresolution": "Dik ölçeg",
+       "exif-stripoffsets": "Surat maglumatlarynyň ýeri",
+       "exif-rowsperstrip": "Zolak başyna hatarlaryň sany",
+       "exif-stripbytecounts": "Gysylan setir başyna baýt",
+       "exif-jpeginterchangeformat": "JPEG SOI ofseti",
+       "exif-jpeginterchangeformatlength": "JPEG maglumatlarynyň baýtlary",
+       "exif-whitepoint": "Ak nokat reňkliligi",
+       "exif-primarychromaticities": "Esasy reňkleriň reňkliligi",
+       "exif-ycbcrcoefficients": "Reňk giňişliginiň özgeriş matrisa koeffisienti",
+       "exif-referenceblackwhite": "Ak we gara nokatlarynyň ýeri",
+       "exif-datetime": "Faýl özgerdiş senesi we wagty",
+       "exif-imagedescription": "Suratyň ady",
+       "exif-make": "Kamera öndürijisi",
+       "exif-model": "Kamera modeli",
+       "exif-software": "Ulanylan programma üpjünçiligi",
+       "exif-artist": "Awtor",
+       "exif-copyright": "Awtorlyk hukugynyň eýesi",
+       "exif-exifversion": "Exif wersiýasy",
+       "exif-flashpixversion": "Goldanylýan FlashPix wersiýasy",
+       "exif-colorspace": "Reňk giňişligi",
+       "exif-componentsconfiguration": "Her komponentiň manysy",
+       "exif-compressedbitsperpixel": "Surat gysyş režimi",
+       "exif-pixelxdimension": "Dogry surat ini",
+       "exif-pixelydimension": "Dogry surat beýikligi",
+       "exif-usercomment": "Ulanyjy teswirleri",
+       "exif-relatedsoundfile": "Degişli audio faýl",
+       "exif-datetimeoriginal": "Asyl sene we wagt",
+       "exif-datetimedigitized": "Sanlaşdyryş senesi we wagty",
+       "exif-subsectime": "Faýl üýtgeşmesi wagtynyň sekunt bölekleri",
+       "exif-subsectimeoriginal": "Asyl wagtyň sekunt bölekleri",
+       "exif-subsectimedigitized": "Sanlaşdyryş wagtynyň sekunt bölekleri",
+       "exif-exposuretime": "Ekspozisiýa wagty",
+       "exif-exposuretime-format": "$1 sekunt ($2)",
+       "exif-fnumber": "Diafragma sany",
+       "exif-exposureprogram": "Ekspozisiýa programmasy",
+       "exif-spectralsensitivity": "Spektral duýgurlyk",
+       "exif-isospeedratings": "ISO ýagta duýgurlyk",
+       "exif-shutterspeedvalue": "Wyderžka",
+       "exif-aperturevalue": "Diafragma",
+       "exif-brightnessvalue": "Ýagtylyk",
+       "exif-exposurebiasvalue": "Ekspozisiýa kompensasiýasy",
+       "exif-maxaperturevalue": "Maksimum diafragma sany",
+       "exif-subjectdistance": "Obýektiň aradaşlygy",
+       "exif-meteringmode": "Ekspozisiýa ölçeg režimi",
+       "exif-lightsource": "Ýagtylyk çeşmesi",
+       "exif-flash": "Wspyşka",
+       "exif-focallength": "Fokusirleme aradaşlygy",
+       "exif-subjectarea": "Obýektiň meýdançasy",
+       "exif-flashenergy": "Wspyşka energiýasy",
+       "exif-focalplanexresolution": "Fokal tekizligiň X ölçegi",
+       "exif-focalplaneyresolution": "Fokal tekizligiň Y ölçegi",
+       "exif-focalplaneresolutionunit": "Fokal tekizligiň ölçeg birligi",
+       "exif-subjectlocation": "Obýektiň ýeri",
+       "exif-exposureindex": "Ekspozisiýa indeksi",
+       "exif-sensingmethod": "Sensor tipi",
+       "exif-filesource": "Faýlyň çeşmesi",
+       "exif-scenetype": "Sahna tipi",
+       "exif-customrendered": "Hususy surat işleýiş",
+       "exif-exposuremode": "Ekspozisiýa režimi",
+       "exif-whitebalance": "Ak balans",
+       "exif-digitalzoomratio": "Sanly zum gatnaşygy",
+       "exif-focallengthin35mmfilm": "35 mm plýonkada fokusirleme aradaşlygy",
+       "exif-scenecapturetype": "Düşürlendäki sahna tipi",
+       "exif-gaincontrol": "Sahna gözegçiligi",
+       "exif-contrast": "Kontrastlyk",
+       "exif-saturation": "Doýgunlyk",
+       "exif-sharpness": "Ýitilik",
+       "exif-devicesettingdescription": "Enjam sazlamalarynyň düşündirişi",
+       "exif-subjectdistancerange": "Düşüriş obýektine çenli aradaşlyk",
+       "exif-imageuniqueid": "Surat belgisi (ID)",
+       "exif-gpsversionid": "GPS bellik wersiýasy",
+       "exif-gpslatituderef": "Demirgazyk ýa-da Günorta giňişlik",
+       "exif-gpslatitude": "Giňişlik",
+       "exif-gpslongituderef": "Gündogar ýa-da Günbatar uzaklyk",
+       "exif-gpslongitude": "Uzaklyk",
+       "exif-gpsaltituderef": "Beýiklik indeksi",
+       "exif-gpsaltitude": "Beýiklik",
+       "exif-gpstimestamp": "GPS wagty (atom sagady)",
+       "exif-gpssatellites": "Ölçeg üçin ulanylan emeli hemralar",
+       "exif-gpsstatus": "Priýomnigiň statusy",
+       "exif-gpsmeasuremode": "Ölçeg režimi",
+       "exif-gpsdop": "Ölçegiň takyklygy",
+       "exif-gpsspeedref": "Tizlik ölçeg birligi",
+       "exif-gpsspeed": "GPS priýomniginiň tizligi",
+       "exif-gpstrackref": "GPS priýomniginiň azimutynyň tipi (hakyky, magnit)",
+       "exif-gpstrack": "GPS priýomniginiň azimuty",
+       "exif-gpsimgdirectionref": "Suratyň azimutynyň tipi (hakyky, magnit)",
+       "exif-gpsimgdirection": "Suratyň azimuty",
+       "exif-gpsmapdatum": "Ulanylan geodezik koordinatalar ulgamy",
+       "exif-gpsdestlatituderef": "Obýektiň uzaklygynyň indeksi",
+       "exif-gpsdestlatitude": "Obýektiň uzaklygy",
+       "exif-gpsdestlongituderef": "Obýektiň giňişliginiň indeksi",
+       "exif-gpsdestlongitude": "Obýektiň giňişligi",
+       "exif-gpsdestbearingref": "Obýektiň pelenginiň tipi (hakyky, magnit)",
+       "exif-gpsdestbearing": "Obýektiň pelengi",
+       "exif-gpsdestdistanceref": "Aradaşlyk reperi",
+       "exif-gpsdestdistance": "Aradaşlyk",
+       "exif-gpsprocessingmethod": "GPS işleýiş usulynyň ady",
+       "exif-gpsareainformation": "GPS sebitiniň ady",
+       "exif-gpsdatestamp": "GPS senesi",
+       "exif-gpsdifferential": "GPS differensial düzedişi",
+       "exif-languagecode": "Dil",
+       "exif-iimcategory": "Kategoriýa",
+       "exif-compression-1": "Gysylmadyk",
+       "exif-unknowndate": "Näbelli sene",
+       "exif-orientation-1": "Adaty",
+       "exif-orientation-2": "Keseligine öwrülen",
+       "exif-orientation-3": "180° aýlanan",
+       "exif-orientation-4": "Dikligine öwrülen",
+       "exif-orientation-5": "90° aýlanan (sagadyň diliniň tersine) we dikligine öwrülen",
+       "exif-orientation-6": "90° aýlanan (sagadyň diliniň ugruna)",
+       "exif-orientation-7": "90° aýlanan (sagadyň diliniň ugruna) we dikligine öwrülen",
+       "exif-orientation-8": "90° aýlanan (sagadyň diliniň tersine)",
+       "exif-planarconfiguration-1": "chunky formaty",
+       "exif-planarconfiguration-2": "planar formaty",
+       "exif-componentsconfiguration-0": "ýok",
+       "exif-exposureprogram-0": "Kesgitlenmedik",
+       "exif-exposureprogram-1": "El bilen",
+       "exif-exposureprogram-2": "Adaty programma",
+       "exif-exposureprogram-3": "Diafragma artykmaçlygy",
+       "exif-exposureprogram-4": "Wyderžka artykmaçlygy",
+       "exif-exposureprogram-5": "Çeper programma (zerur ýitilik çuňlugy esasynda)",
+       "exif-exposureprogram-6": "Sportiw režim (minimal wyderžkaly)",
+       "exif-exposureprogram-7": "Portret režimi (fona fokusirlenmän ýakyndan alynan suratlar üçin)",
+       "exif-exposureprogram-8": "Peýzaž rezimi (fona fokusirlenýän peýzaž suratlary üçin)",
+       "exif-subjectdistance-value": "$1 metr",
+       "exif-meteringmode-0": "Näbelli",
+       "exif-meteringmode-1": "Ortaça",
+       "exif-meteringmode-2": "Merkez agramly",
+       "exif-meteringmode-3": "Nokatly",
+       "exif-meteringmode-4": "Köpnokatly",
+       "exif-meteringmode-5": "Matrisaly",
+       "exif-meteringmode-6": "Bölekleýin",
+       "exif-meteringmode-255": "Başga",
+       "exif-lightsource-0": "Näbelli",
+       "exif-lightsource-1": "Gündiz ýagtylygy",
+       "exif-lightsource-2": "Flýuoressent",
+       "exif-lightsource-3": "Gyzdyryş lampasy",
+       "exif-lightsource-4": "Wspyşka",
+       "exif-lightsource-9": "Gowy howa",
+       "exif-lightsource-10": "Bulutly howa",
+       "exif-lightsource-11": "Kölegeli",
+       "exif-lightsource-12": "Gündiz ýagtysy flýuoresent (D 5700 – 7100K)",
+       "exif-lightsource-13": "Gündizlik ak flýuoresent (N 4600 – 5400K)",
+       "exif-lightsource-14": "Tebigy ak flýuoresent (W 3900 – 4500K)",
+       "exif-lightsource-15": "Ak flýuoresent (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standart ýagtylyk A",
+       "exif-lightsource-18": "Standart ýagtylyk B",
+       "exif-lightsource-19": "Standart ýagtylyk C",
+       "exif-lightsource-24": "ISO studiýa lampasy",
+       "exif-lightsource-255": "Başga ýagtylyk çeşmeleri",
+       "exif-flash-fired-0": "Wspyşka işlemedi",
+       "exif-flash-fired-1": "Waspyşka işledi",
+       "exif-flash-return-0": "deslapky wspyşka režimi ýapyk",
+       "exif-flash-return-2": "başky wspyşkanyň gaýdyş impulsy kesgitlenmedi",
+       "exif-flash-return-3": "başky wspyşkanyň gaýdyş impulsy kesgitlendi",
+       "exif-flash-mode-1": "mejbury wspyşka impulsy",
+       "exif-flash-mode-2": "mejbury wspyşka ýapyk",
+       "exif-flash-mode-3": "awtomatik režim",
+       "exif-flash-function-1": "Wspyşka ýapyk",
+       "exif-flash-redeye-1": "gyzyl göz effektini aýyrmak režimi",
+       "exif-focalplaneresolutionunit-2": "dýuým",
+       "exif-sensingmethod-1": "Kesgitlenmedik",
+       "exif-sensingmethod-2": "Ýeke çip reňkli matrisaly sensor",
+       "exif-sensingmethod-3": "Iki çip reňkli matrisaly sensor",
+       "exif-sensingmethod-4": "Üç çip reňkli matrisaly sensor",
+       "exif-sensingmethod-5": "Reňk yzygiderlikli matrisaly sensor",
+       "exif-sensingmethod-7": "Üç reňkli çyzykly sensor",
+       "exif-sensingmethod-8": "Reňk yzygiderlikli çyzykly sensor",
+       "exif-scenetype-1": "Gönümel düşürilen surat",
+       "exif-customrendered-0": "Adaty",
+       "exif-customrendered-1": "Hususy proses",
+       "exif-exposuremode-0": "Awtomatik ekspozisiýa",
+       "exif-exposuremode-1": "El bilen ekspozisiýa",
+       "exif-exposuremode-2": "Awto brakeraž",
+       "exif-whitebalance-0": "Awtomatik ak balans",
+       "exif-whitebalance-1": "El bilen ak balans",
+       "exif-scenecapturetype-0": "Standart",
+       "exif-scenecapturetype-1": "Landşaft",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Gijeki düşüriş",
+       "exif-gaincontrol-0": "Hiç hili",
+       "exif-gaincontrol-1": "Pes köpelme",
+       "exif-gaincontrol-2": "Güýçli köpelme",
+       "exif-gaincontrol-3": "Pes azalma",
+       "exif-gaincontrol-4": "Güýçli azalma",
+       "exif-contrast-0": "Adaty",
+       "exif-contrast-1": "Ýumşak",
+       "exif-contrast-2": "Gaty",
+       "exif-saturation-0": "Adaty",
+       "exif-saturation-1": "Pes doýgunluk",
+       "exif-saturation-2": "Ýokary doýgunluk",
+       "exif-sharpness-0": "Adaty",
+       "exif-sharpness-1": "Ýumşak",
+       "exif-sharpness-2": "Gaty",
+       "exif-subjectdistancerange-0": "Näbelli",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Ýakyndan görüniş",
+       "exif-subjectdistancerange-3": "Uzakdan görüniş",
+       "exif-gpslatitude-n": "Demirgazyk giňişlik",
+       "exif-gpslatitude-s": "Günorta giňişlik",
+       "exif-gpslongitude-e": "Gündogar uzaklyk",
+       "exif-gpslongitude-w": "Günbatar uzaklyk",
+       "exif-gpsstatus-a": "Ölçemeklik dowam edýär",
+       "exif-gpsstatus-v": "Ölçegiň funksional sazlaşygy",
+       "exif-gpsmeasuremode-2": "2-ölçegli ölçeg",
+       "exif-gpsmeasuremode-3": "3-ölçegli ölçeg",
+       "exif-gpsspeed-k": "km/sagat",
+       "exif-gpsspeed-m": "mil/sagat",
+       "exif-gpsspeed-n": "Uzel (deňiz mili)",
+       "exif-gpsdirection-t": "Hakyky ugur",
+       "exif-gpsdirection-m": "Magnit ugur"
+}
diff --git a/languages/i18n/exif/tl.json b/languages/i18n/exif/tl.json
new file mode 100644 (file)
index 0000000..a82c274
--- /dev/null
@@ -0,0 +1,375 @@
+{
+       "@metadata": {
+               "authors": [
+                       "AnakngAraw",
+                       "Jojit fb",
+                       "Sky Harbor"
+               ]
+       },
+       "exif-imagewidth": "Lapad",
+       "exif-imagelength": "Taas",
+       "exif-bitspersample": "Mga bit (piraso) ng bawat komponente (bahagi)",
+       "exif-compression": "Plano ng kumpresyon (pagkakasiksik)",
+       "exif-photometricinterpretation": "Mga taglay (komposisyon) ng piksel",
+       "exif-orientation": "Oryentasyon",
+       "exif-samplesperpixel": "Bilang ng mga komponente (sangkap)",
+       "exif-planarconfiguration": "Pagkakaayos ng mga dato",
+       "exif-ycbcrsubsampling": "Halimbawang bahagi ng rata (''ratio'') ng Y sa C",
+       "exif-ycbcrpositioning": "Pagkakaposisyon ng Y at C",
+       "exif-xresolution": "Pahalang na resolusyon (kalinawan)",
+       "exif-yresolution": "Patayo na resolusyon (kalinawan)",
+       "exif-stripoffsets": "Lokasyon ng dato ng larawan",
+       "exif-rowsperstrip": "Bilang ng pahalang na hanay bawat manipis na piraso",
+       "exif-stripbytecounts": "Mga byte ng bawat siniksik na piraso",
+       "exif-jpeginterchangeformat": "Bawiin at ibalanse (i-''offset'') patungo sa JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Mga byte ng datong JPEG",
+       "exif-whitepoint": "Kadalisayan (kromatisidad) ng punto o hangganan ng kaputian",
+       "exif-primarychromaticities": "Mga kadalisayan (kromatisidad) ng mga pangunahing kulay (mga primarya)",
+       "exif-ycbcrcoefficients": "Mga koepisyente (katuwang na bilang) ng matris na pambago ng espasyo ng kulay",
+       "exif-referenceblackwhite": "Pares ng mga itim at puting sangguniang halaga",
+       "exif-datetime": "Petsa at oras ng pagbabago ng talaksan",
+       "exif-imagedescription": "Pamagat ng larawan",
+       "exif-make": "Kumpanyang tagagawa ng kamera",
+       "exif-model": "Modelo ng kamera",
+       "exif-software": "Ginamit na sopwer",
+       "exif-artist": "May-akda",
+       "exif-copyright": "May-hawak ng karapatang-ari (kopirayt)",
+       "exif-exifversion": "Bersiyong Exif",
+       "exif-flashpixversion": "Bersyon ng sinusuportahang Flashpix",
+       "exif-colorspace": "Espasyo ng kulay",
+       "exif-componentsconfiguration": "Kahulugan ng bawat komponente",
+       "exif-compressedbitsperpixel": "Modalidad (paraan) ng pagsisiksik ng larawan",
+       "exif-pixelxdimension": "Lapad ng larawan",
+       "exif-pixelydimension": "Taas ng larawan",
+       "exif-usercomment": "Mga kumento ng tagagamit",
+       "exif-relatedsoundfile": "Kaugnay na talaksang nadidinig (audio)",
+       "exif-datetimeoriginal": "Petsa at oras ng paglikha ng mga dato",
+       "exif-datetimedigitized": "Petsa at oras ng pagsasadihital",
+       "exif-subsectime": "PetsaOras mga subsegundo (bahagi ng segundo)",
+       "exif-subsectimeoriginal": "PetsaOrasOrihinal subsegundo (bahagi ng segundo)",
+       "exif-subsectimedigitized": "PetsaOrasDihitalisasyon subsegundo (bahagi ng segundo)",
+       "exif-exposuretime": "Oras ng pagkakalantad",
+       "exif-exposuretime-format": "$1 seg ($2)<!--seg = segundo (seconds)-->",
+       "exif-fnumber": "F Bilang",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Programa ng paglalantad",
+       "exif-spectralsensitivity": "Sensitibidad sa ispektrum",
+       "exif-isospeedratings": "Grado ng bilis ng ISO",
+       "exif-shutterspeedvalue": "Bilis ng pansara ng APEX",
+       "exif-aperturevalue": "Apertura ng APEX",
+       "exif-brightnessvalue": "Kaningningan ng APEX",
+       "exif-exposurebiasvalue": "Panig ng kalantaran",
+       "exif-maxaperturevalue": "Pinakamataas na aperturang (daanan ng liwanag) panglupa",
+       "exif-subjectdistance": "Layo ng paksa",
+       "exif-meteringmode": "Modalidad ng pagmemetro (pagsusukat)",
+       "exif-lightsource": "Pinagmumulan ng liwanag",
+       "exif-flash": "Pangkisap (''flash'')",
+       "exif-focallength": "Haba ng lenteng pampokus (pantuon)",
+       "exif-focallength-format": "$1 mm",
+       "exif-subjectarea": "Saklaw na paksa",
+       "exif-flashenergy": "Lakas ng kisap (''flash'')",
+       "exif-focalplanexresolution": "Resolusyong X ng kalatagan o lapyang pampokus",
+       "exif-focalplaneyresolution": "Resolusyong Y ng kalatagan o lapyang pampokus",
+       "exif-focalplaneresolutionunit": "Yunit ng resolusyon (kalinawan) ng kalatagan o lapyang pampokus",
+       "exif-subjectlocation": "Lokasyon ng paksa",
+       "exif-exposureindex": "Pang-antas o indeks ng pagkakalantad",
+       "exif-sensingmethod": "Paraang pandama",
+       "exif-filesource": "Pinagmulang file",
+       "exif-scenetype": "Uri ng tagpuan",
+       "exif-customrendered": "Pagpoproseso ng pinasadyang larawan",
+       "exif-exposuremode": "Modalidad ng paglalantad",
+       "exif-whitebalance": "Balanse ng Kaputian",
+       "exif-digitalzoomratio": "Rata/Antas ng sukat ng dihital na paglapit (''zoom'')",
+       "exif-focallengthin35mmfilm": "Haba ng pokus sa pilm na 35 mm",
+       "exif-scenecapturetype": "Uri ng panghuli ng tagpuan",
+       "exif-gaincontrol": "Kontrol na pangtagpuan",
+       "exif-contrast": "Pagkakaiba ng pagsasalungat (''contrast'')",
+       "exif-saturation": "Saturasyon (pagkakababad/pagkakapuno)",
+       "exif-sharpness": "Katalasan",
+       "exif-devicesettingdescription": "Paglalarawan sa mga pagtatakdang pangaparato",
+       "exif-subjectdistancerange": "Antas ng layo ng paksa",
+       "exif-imageuniqueid": "Natatanging ID ng larawan",
+       "exif-gpsversionid": "Bersyon ng GPS tag",
+       "exif-gpslatituderef": "Hilaga o Timog na Latitud",
+       "exif-gpslatitude": "Latitud",
+       "exif-gpslongituderef": "Silangan o Kanlurang Longhitud",
+       "exif-gpslongitude": "Longhitud",
+       "exif-gpsaltituderef": "Sanggunian ng kataasan",
+       "exif-gpsaltitude": "Kataasan",
+       "exif-gpstimestamp": "Oras ng GPS (atomikong orasan)",
+       "exif-gpssatellites": "Mga satelayt na ginamit para sa sukat",
+       "exif-gpsstatus": "Katayuan ng tagatanggap",
+       "exif-gpsmeasuremode": "Paraan ng sukat",
+       "exif-gpsdop": "Tumpak na sukat",
+       "exif-gpsspeedref": "Yunit ng bilis",
+       "exif-gpsspeed": "Bilis ng tagatanggap ng GPS",
+       "exif-gpstrackref": "Sanggunian para sa direksyon ng galaw",
+       "exif-gpstrack": "Direksyon ng galaw",
+       "exif-gpsimgdirectionref": "Sanggunian para sa direksyon ng larawan",
+       "exif-gpsimgdirection": "Direksyon ng larawan",
+       "exif-gpsmapdatum": "Ginamit na datos para sa geodetic survey",
+       "exif-gpsdestlatituderef": "Sanggunian para sa latitud ng patutunguhan",
+       "exif-gpsdestlatitude": "Latitud ng patutunguhan",
+       "exif-gpsdestlongituderef": "Sanggunian para sa longhitud ng patutunguhan",
+       "exif-gpsdestlongitude": "Longhitud ng patutunguhan",
+       "exif-gpsdestbearingref": "Sanggunian para sa oryentasyon ng patutunguhan",
+       "exif-gpsdestbearing": "Oryentasyon ng patutunguhan",
+       "exif-gpsdestdistanceref": "Sanggunian para sa layo ng patutunguhan",
+       "exif-gpsdestdistance": "Layo ng patutunguhan",
+       "exif-gpsprocessingmethod": "Pangalan ng kaparaanan ng pagproseso ng GPS",
+       "exif-gpsareainformation": "Pangalan ng lugar ng GPS",
+       "exif-gpsdatestamp": "Petsa ng GPS",
+       "exif-gpsdifferential": "Pagtatama sa pakakaiba ng GPS",
+       "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-jpegfilecomment": "Puna sa talaksang JPEG",
+       "exif-keywords": "Mga susing-salita",
+       "exif-worldregioncreated": "Rehiyon ng mundo kung saan kinuhanan ang larawan",
+       "exif-countrycreated": "Bansa kung saan kinuhanan ang larawan",
+       "exif-countrycodecreated": "Kodigo para sa bansa kung saan kinuhanan ang larawan",
+       "exif-provinceorstatecreated": "Lalawigan o estado kung saan kinuhanan ang larawan",
+       "exif-citycreated": "Lungsod kung saan kinuhanan ang larawan",
+       "exif-sublocationcreated": "Kabahaging kinalalagyan ng lungsod kung saan kinuhanan ang larawan",
+       "exif-worldregiondest": "Ipinapakitang rehiyon ng mundo",
+       "exif-countrydest": "Ipinapakitang bansa",
+       "exif-countrycodedest": "Kodigo para sa bansng ipinapakita",
+       "exif-provinceorstatedest": "Lalawigan o estadong ipinapakita",
+       "exif-citydest": "Lungsod na ipinapakita",
+       "exif-sublocationdest": "Kabahaging kinalalagyan ng lungsod na ipinapakita",
+       "exif-objectname": "Maiksing pamagat",
+       "exif-specialinstructions": "Natatanging mga tagubilin",
+       "exif-headline": "Ulo ng Balita",
+       "exif-credit": "Pagbanggit/Tagapagbigay",
+       "exif-source": "Pinagmulan",
+       "exif-editstatus": "Katayuan sa pamamatnugot ng larawan",
+       "exif-urgency": "Katindihan ng pangangailangan",
+       "exif-fixtureidentifier": "Pangalan ng nakakabit",
+       "exif-locationdest": "Kinalalagyang nilalarawan",
+       "exif-locationdestcode": "Kodigo ng kinalalagyang nilalarawan",
+       "exif-objectcycle": "Oras ng araw na pinaglalaanan ng midyang iyan",
+       "exif-contact": "Kabatiran sa pakikipag-ugnayan",
+       "exif-writer": "Manunulat",
+       "exif-languagecode": "Wika",
+       "exif-iimversion": "Bersyon ng IIM",
+       "exif-iimcategory": "Kategorya",
+       "exif-iimsupplementalcategory": "Karagdagang mga kategorya",
+       "exif-datetimeexpires": "Huwag gamitin pagkaraan",
+       "exif-datetimereleased": "Pinakawalan noong",
+       "exif-originaltransmissionref": "Kodigo ng kinalalagyan ng orihinal na paghahatid",
+       "exif-identifier": "Tagapagpakilala",
+       "exif-lens": "Ginamit na lente",
+       "exif-serialnumber": "Panunurang bilang ng kamera",
+       "exif-cameraownername": "May-ari ng kamera",
+       "exif-label": "Tatak",
+       "exif-datetimemetadata": "Petsa kung kailang huling binago ang metadato",
+       "exif-nickname": "Impormal na pangalan ng larawan",
+       "exif-rating": "Antas (mula sa 5)",
+       "exif-rightscertificate": "Katibayan ng pamamahala ng mga karapatan",
+       "exif-copyrighted": "Katayuan ng karapatang-ari",
+       "exif-copyrightowner": "May-ari ng karapatang-ari",
+       "exif-usageterms": "Mga tuntunin sa paggamit",
+       "exif-webstatement": "Pahayag ng karapatang-ari habang nasa linya ng Internet",
+       "exif-originaldocumentid": "Natatanging ID ng orihinal na kasulatan",
+       "exif-licenseurl": "URL para sa lisensiya ng karapatang-ari",
+       "exif-morepermissionsurl": "Pamalit na kabatiran sa paglilisensiya",
+       "exif-attributionurl": "Kapag ginagamit ulit ang akdang ito, mangyaring kumawing sa",
+       "exif-preferredattributionname": "Kapag ginagamit ulit ang akdang ito, mangyaring banggitin si",
+       "exif-pngfilecomment": "Puna sa talaksang PNG",
+       "exif-disclaimer": "Pagtatatuwa",
+       "exif-contentwarning": "Babala sa nilalaman",
+       "exif-giffilecomment": "Puna sa talaksang GIF",
+       "exif-intellectualgenre": "Uri ng bagay",
+       "exif-subjectnewscode": "Kodigo ng paksa",
+       "exif-scenecode": "Kodigo ng tanawin ng IPTC",
+       "exif-event": "Nilalarawang kaganapan",
+       "exif-organisationinimage": "Nilalarawang samahan",
+       "exif-personinimage": "Nilalarawang tao",
+       "exif-originalimageheight": "Taas ng larawan bago ito inani",
+       "exif-originalimagewidth": "Lapad ng larawan bago ito inani",
+       "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "Walang kompresyon",
+       "exif-compression-2": "CCITT Pangkat 3 1-kodigo sa haba ng pagtakbo ng Pangdimensiyong Huffman na May Bahagyang Pagbabago",
+       "exif-compression-3": "Kodigo ng Pangkat 3 ng CCITT",
+       "exif-compression-4": "Kodigo ng Pangkat 4 ng CCITT",
+       "exif-compression-5": "LZW",
+       "exif-compression-6": "JPEG (luma)",
+       "exif-compression-7": "JPEG",
+       "exif-compression-8": "Paimpisin (Adobe)",
+       "exif-compression-32773": "PackBits (Macintosh RLE)",
+       "exif-compression-32946": "Paimpisin (PKZIP)",
+       "exif-compression-34712": "JPEG2000",
+       "exif-copyrighted-true": "Nakakarapatang-ari",
+       "exif-copyrighted-false": "Nasasakupan ng madla",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-unknowndate": "Hindi alam na araw",
+       "exif-orientation-1": "Karaniwan",
+       "exif-orientation-2": "Pinihit ng pahiga",
+       "exif-orientation-3": "Pinaikot ng 180°",
+       "exif-orientation-4": "Pinihit ng patayo",
+       "exif-orientation-5": "Pinaikot ng 90° CCW at pinihit ng patayo",
+       "exif-orientation-6": "Pinaikot ng 90° na salungat sa galaw ng kamay ng orasan",
+       "exif-orientation-7": "Pinaikot ng 90° CW at pinihit ng patayo",
+       "exif-orientation-8": "Pinaikot ng 90° na nakaayon sa galaw ng kamay ng orasan",
+       "exif-planarconfiguration-1": "pagkaayos sa malalaking bahagi (chunky)",
+       "exif-planarconfiguration-2": "planar na pagkaayos",
+       "exif-xyresolution-i": "$1 dpi",
+       "exif-xyresolution-c": "$1 dpc",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "Hindi nakaakma sa pamantayang sukat",
+       "exif-componentsconfiguration-0": "wala",
+       "exif-componentsconfiguration-1": "Y",
+       "exif-componentsconfiguration-2": "Cb",
+       "exif-componentsconfiguration-3": "Cr",
+       "exif-componentsconfiguration-4": "R",
+       "exif-componentsconfiguration-5": "G",
+       "exif-componentsconfiguration-6": "B",
+       "exif-exposureprogram-0": "Hindi nabigyan ng kahulugan",
+       "exif-exposureprogram-1": "Manwal",
+       "exif-exposureprogram-2": "Karaniwang programa",
+       "exif-exposureprogram-3": "Prayoridad ng apertura",
+       "exif-exposureprogram-4": "Prayoridad ng shutter",
+       "exif-exposureprogram-5": "Programang malikhain (bias sa lalim ng kuha)",
+       "exif-exposureprogram-6": "Programang aksyon (bias sa bilis ng shutter)",
+       "exif-exposureprogram-7": "Naka-portrait (para sa malapitang kuha kasama ang malabong paligid)",
+       "exif-exposureprogram-8": "Naka-tanawin (para mga kuhang tanawin na nakapokus ang paligid)",
+       "exif-subjectdistance-value": "$1 mga metro",
+       "exif-meteringmode-0": "Hindi alam",
+       "exif-meteringmode-1": "Karaniwan",
+       "exif-meteringmode-2": "Gitnang tinambang na karaniwan",
+       "exif-meteringmode-3": "Batik (''spot'')",
+       "exif-meteringmode-4": "Maramihang batik",
+       "exif-meteringmode-5": "Padron",
+       "exif-meteringmode-6": "Bahagi lamang",
+       "exif-meteringmode-255": "Iba pa",
+       "exif-lightsource-0": "Hindi alam",
+       "exif-lightsource-1": "Pangumaga/pang-araw na liwanag",
+       "exif-lightsource-2": "''Fluorescent''",
+       "exif-lightsource-3": "Tungsteno (nagbabagang liwanag/ilaw o ''incandescent'')",
+       "exif-lightsource-4": "Pangkisap (''flash'')",
+       "exif-lightsource-9": "Magandang panahon",
+       "exif-lightsource-10": "Maulap na panahon",
+       "exif-lightsource-11": "Lilim",
+       "exif-lightsource-12": "''Fluorescent'' na pangumaga/pang-araw (D 5700 – 7100K)",
+       "exif-lightsource-13": "''Fluorescent'' na maputi at pangumaga/pang-araw (N 4600 – 5400K)",
+       "exif-lightsource-14": "''Fluorescent'' na may kalamigan ang pagkaputi (W 3900 – 4500K)",
+       "exif-lightsource-15": "Puting ''fluorescent'' (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Pangkarinawang liwanag A",
+       "exif-lightsource-18": "Pangkaraniwang liwanag B",
+       "exif-lightsource-19": "Pangkaraniwang liwanag C",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-22": "D75",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "Tungstenong pang-istudyo ng ISO",
+       "exif-lightsource-255": "Iba pang pagmumulan ng liwanag",
+       "exif-flash-fired-0": "Hindi kumislap/sumiklab ang pangkisap (''flash'')",
+       "exif-flash-fired-1": "Sumiklab/kumislap ang pangkisap (''flash'')",
+       "exif-flash-return-0": "walang tungkuling pambalik kung makapansin ng liwanag ang istroboskopyo",
+       "exif-flash-return-2": "hindi makapansin ng bumabalik na liwanag ang istroboskopyo",
+       "exif-flash-return-3": "nakapansin ng bumabalik na liwanag ang istroboskopyo",
+       "exif-flash-mode-1": "ipinatutupad na sapilitang pagpapasiklab ng pangkisap (''flash'')",
+       "exif-flash-mode-2": "pagpipigil sa sapilitang pagpapasiklab ng pangkisap (''flash'')",
+       "exif-flash-mode-3": "automatikong modalidad",
+       "exif-flash-function-1": "Tungkuling walang pagpapakisap (''flash'')",
+       "exif-flash-redeye-1": "Modalidad na pambawas na mapulang mata/pula sa mata",
+       "exif-focalplaneresolutionunit-2": "mga pulgada",
+       "exif-sensingmethod-1": "Walang kahulugan",
+       "exif-sensingmethod-2": "Pandama (''sensor'') sa pook ng kulay na may isang piyesang \"tisa\" (''chip'')",
+       "exif-sensingmethod-3": "Pandama (''sensor'') sa pook ng kulay na may dalawang piyesang \"tisa\" (''chip'')",
+       "exif-sensingmethod-4": "Pandama (''sensor'') sa pook ng kulay na may tatlong piyesang \"tisa\" (''chip'')",
+       "exif-sensingmethod-5": "Pandama (''sensor'') sa pook na may nagsusunud-sunurang mga kulay",
+       "exif-sensingmethod-7": "Pandama (''sensor'') ng mga paligid na may tatlong guhit (''trilinear'')",
+       "exif-sensingmethod-8": "Linear sensor na sunod-sunod na kulay",
+       "exif-filesource-3": "Dihital na kamerang napapanatili",
+       "exif-scenetype-1": "Isang larawang diretsong kinuha",
+       "exif-customrendered-0": "Karaniwang proseso",
+       "exif-customrendered-1": "Pasadyang proseso",
+       "exif-exposuremode-0": "Awtomatikong eksposisyon",
+       "exif-exposuremode-1": "Manwal na eksposisyon",
+       "exif-exposuremode-2": "Awtomatikong bracket",
+       "exif-whitebalance-0": "Awtomatikong timbang ng puti",
+       "exif-whitebalance-1": "Manwal na timbang ng puti",
+       "exif-scenecapturetype-0": "Karaniwan",
+       "exif-scenecapturetype-1": "Tanawin",
+       "exif-scenecapturetype-2": "Kuwadro",
+       "exif-scenecapturetype-3": "Eksena sa gabi",
+       "exif-gaincontrol-0": "Wala",
+       "exif-gaincontrol-1": "Mababang gain pataas",
+       "exif-gaincontrol-2": "Mataas na gain pataas",
+       "exif-gaincontrol-3": "Mababang gain pababa",
+       "exif-gaincontrol-4": "Mataas na gain pababa",
+       "exif-contrast-0": "Karaniwan",
+       "exif-contrast-1": "Malambot",
+       "exif-contrast-2": "Matigas",
+       "exif-saturation-0": "Karaniwan",
+       "exif-saturation-1": "Mababang saturasyon",
+       "exif-saturation-2": "Mataas na saturasyon",
+       "exif-sharpness-0": "Karaniwan",
+       "exif-sharpness-1": "Malambot",
+       "exif-sharpness-2": "Matigas",
+       "exif-subjectdistancerange-0": "Hindi alam",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Malapitang tingin",
+       "exif-subjectdistancerange-3": "Malayuang tingin",
+       "exif-gpslatitude-n": "Hilagang latitud",
+       "exif-gpslatitude-s": "Katimugang latitud",
+       "exif-gpslongitude-e": "Silangang longhitud",
+       "exif-gpslongitude-w": "Kanlurang longhitud",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metro|mga metro}} na nasa itaas ng antas ng dagat",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metro|mga metro}} na nasa ilalim ng antas ng dagat",
+       "exif-gpsstatus-a": "Kasalukuyang nagsusukat",
+       "exif-gpsstatus-v": "Interoperabilidad (pagiging naisasagawa) ng sukat",
+       "exif-gpsmeasuremode-2": "Sukat na may 2 dimensyon",
+       "exif-gpsmeasuremode-3": "Sukat na may 3 dimensyon",
+       "exif-gpsspeed-k": "Mga kilometro bawat oras",
+       "exif-gpsspeed-m": "Mga milya bawat oras",
+       "exif-gpsspeed-n": "Mga ''knot''",
+       "exif-gpsdestdistance-k": "Mga kilometro",
+       "exif-gpsdestdistance-m": "Mga milya",
+       "exif-gpsdestdistance-n": "Milyang pangdagat",
+       "exif-gpsdop-excellent": "Pinakamahusay ($1)",
+       "exif-gpsdop-good": "Mabuti ($1)",
+       "exif-gpsdop-moderate": "Katamtaman ($1)",
+       "exif-gpsdop-fair": "Patas ($1)",
+       "exif-gpsdop-poor": "Hamak ($1)",
+       "exif-objectcycle-a": "Umaga lamang",
+       "exif-objectcycle-p": "Gabi lamang",
+       "exif-objectcycle-b": "Kapwa umaga at gabi",
+       "exif-gpsdirection-t": "Totoong direksyon",
+       "exif-gpsdirection-m": "Mabato-balaning (magnetikong) direksyon",
+       "exif-ycbcrpositioning-1": "Nakagitna",
+       "exif-ycbcrpositioning-2": "May kasamang pook",
+       "exif-dc-contributor": "Mga tagapag-ambag",
+       "exif-dc-coverage": "Malawak o panandaliang saklaw ng midya",
+       "exif-dc-date": "(Mga) petsa",
+       "exif-dc-publisher": "Tagapaglathala",
+       "exif-dc-relation": "Kaugnay na midya",
+       "exif-dc-rights": "Mga karapatan",
+       "exif-dc-source": "Midyang pinagmulan",
+       "exif-dc-type": "Uri ng midya",
+       "exif-rating-rejected": "Tinanggihan",
+       "exif-isospeedratings-overflow": "Mas mahigit kaysa sa 65535",
+       "exif-maxaperturevalue-value": "$1 APEX (f/$2)",
+       "exif-iimcategory-ace": "Sining, kalinangan at kaaliwan",
+       "exif-iimcategory-clj": "Krimen at batas",
+       "exif-iimcategory-dis": "Mga kalamidad at mga sakuna",
+       "exif-iimcategory-fin": "Kabuhayan at negosyo",
+       "exif-iimcategory-edu": "Pag-aaral",
+       "exif-iimcategory-evn": "Kapaligiran",
+       "exif-iimcategory-hth": "Kalusugan",
+       "exif-iimcategory-hum": "Napag-uukulan ng tao",
+       "exif-iimcategory-lab": "Paggawa",
+       "exif-iimcategory-lif": "Estilo ng pamumuhay at paglilibang",
+       "exif-iimcategory-pol": "Politika",
+       "exif-iimcategory-rel": "Pananampalataya at paniniwala",
+       "exif-iimcategory-sci": "Agham at teknolohiya",
+       "exif-iimcategory-soi": "Mga paksang panlipunan",
+       "exif-iimcategory-spo": "Palakasan",
+       "exif-iimcategory-war": "Digmaan, hidwaan at ligalig",
+       "exif-iimcategory-wea": "Panahon",
+       "exif-urgency-normal": "Pangkaraniwan ($1)",
+       "exif-urgency-low": "Mababa ( $1 )",
+       "exif-urgency-high": "Mataas ($1)",
+       "exif-urgency-other": "Pagkakauna-unang tinukoy ng tagagamit ($1)"
+}
diff --git a/languages/i18n/exif/to.json b/languages/i18n/exif/to.json
new file mode 100644 (file)
index 0000000..96eb29b
--- /dev/null
@@ -0,0 +1,94 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Tauʻolunga"
+               ]
+       },
+       "exif-xresolution": "Auiiki fakalava",
+       "exif-yresolution": "Auiiki tuʻutonu",
+       "exif-jpeginterchangeformatlength": "ʻŪ valu meʻaʻilo JPEG",
+       "exif-make": "Ko e tokotaha faʻu ʻo e meʻafaitā",
+       "exif-artist": "Tokotaha faitā",
+       "exif-usercomment": "Fakamatala ʻo e ʻetita",
+       "exif-brightnessvalue": "Ngingila",
+       "exif-lightsource": "Malama",
+       "exif-flash": "Tapa",
+       "exif-focallength": "Lōloa ʻesiafi ʻo e sioʻata ʻesiafi",
+       "exif-focallength-format": "milimita ʻe $1",
+       "exif-flashenergy": "Ivi ʻo e tapa",
+       "exif-focalplanexresolution": "Auiiki X ʻi he lafalafa ʻesiafi",
+       "exif-focalplaneyresolution": "Auiiki Y ʻi he lafalafa ʻesiafi",
+       "exif-focalplaneresolutionunit": "ʻUniti auiiki ʻi he lafalafa ʻesiafi",
+       "exif-customrendered": "Faitā ʻene angafai",
+       "exif-focallengthin35mmfilm": "Lōloa ʻesiafi ʻi he filimi milimita ʻe 35",
+       "exif-gaincontrol": "Puleʻi mātanga",
+       "exif-contrast": "Faikehekehe",
+       "exif-saturation": "Lanufakangahū",
+       "exif-sharpness": "Faitā hono mataʻāʻā",
+       "exif-gpsversionid": "Fika fakapaaki FTM",
+       "exif-gpslatituderef": "Latitute tonga pe tokelau",
+       "exif-gpslatitude": "Latitute",
+       "exif-gpslongituderef": "Longitute hahake pe hihifo",
+       "exif-gpslongitude": "Longitute",
+       "exif-gpsaltituderef": "Māʻolunga hono tuʻunga",
+       "exif-gpsaltitude": "Māʻolunga",
+       "exif-gpstimestamp": "Taimi FTM (uasi fakaʻātomi)",
+       "exif-gpsspeed": "Ko e vave ʻo e meʻa fakafanongo FTM",
+       "exif-gpsdestlatituderef": "Tuʻunga maʻa e latitute ʻo e taumuʻa",
+       "exif-gpsdestlatitude": "Latitute ʻo e taumuʻa",
+       "exif-gpsdestlongituderef": "Tuʻunga maʻa e longitute ʻo e taumuʻa",
+       "exif-gpsdestlongitude": "Longitute ʻo e taumuʻa",
+       "exif-gpsdestbearingref": "Tuʻunga maʻa e tūkufua ʻo e taumuʻa",
+       "exif-gpsdestbearing": "Tūkufua ʻo e taumuʻa",
+       "exif-gpsdestdistanceref": "Tuʻunga maʻa e mamaʻo ʻo e taumuʻa",
+       "exif-gpsdestdistance": "Mamaʻo ʻo e taumuʻa",
+       "exif-gpsprocessingmethod": "Hingoa ʻo e angafai FTM",
+       "exif-gpsareainformation": "Hingoa ʻo e feituʻu FTM",
+       "exif-gpsdatestamp": "ʻAho FTM",
+       "exif-gpsdifferential": "Fakatonutonu fakafaikehekehe FTM",
+       "exif-planarconfiguration-1": "ngaohi konga noa pē",
+       "exif-planarconfiguration-2": "ngaohi laini kotoa pē",
+       "exif-componentsconfiguration-0": "ʻoku ʻikai ʻi ai",
+       "exif-subjectdistance-value": "mita ʻe $1",
+       "exif-lightsource-0": "Taʻeʻiloa",
+       "exif-lightsource-1": "ʻAho",
+       "exif-lightsource-2": "Uloʻi ngingila",
+       "exif-lightsource-3": "Uloʻi afi",
+       "exif-lightsource-4": "Tapa",
+       "exif-lightsource-9": "ʻAlomālie",
+       "exif-lightsource-10": "ʻAoʻaofia",
+       "exif-lightsource-11": "Malumalu",
+       "exif-lightsource-12": "Ulo ʻaho (D 5700 – 7100K)",
+       "exif-lightsource-13": "Ulo ʻaho hinehina (N 4600 – 5400K)",
+       "exif-lightsource-14": "Ulo hinehina fakamomoko (W 3900 – 4500K)",
+       "exif-lightsource-15": "Ulo hinehina (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Ulo tuʻunga A",
+       "exif-lightsource-18": "Ulo tuʻunga B",
+       "exif-lightsource-19": "Ulo tuʻunga C",
+       "exif-lightsource-24": "Uloʻi afi faitāʻanga ISO",
+       "exif-lightsource-255": "Malama kehe",
+       "exif-customrendered-0": "Faitā angatotonu",
+       "exif-customrendered-1": "Fai ʻi heʻene angafai",
+       "exif-gaincontrol-0": "Hala",
+       "exif-gaincontrol-1": "Hake tupu fakalalo",
+       "exif-gaincontrol-2": "Hake tupu fakaʻolunga",
+       "exif-gaincontrol-3": "Hifo tupu fakalalo",
+       "exif-gaincontrol-4": "Hifo tupu fakaʻolunga",
+       "exif-contrast-0": "Faitotonu",
+       "exif-contrast-1": "Vaivai",
+       "exif-contrast-2": "Mālohi",
+       "exif-saturation-0": "Lanufakangahū noa pē",
+       "exif-saturation-1": "Lanufakangahū siʻi",
+       "exif-saturation-2": "Lanufakangahū lahi",
+       "exif-sharpness-0": "Matanoa",
+       "exif-sharpness-1": "Matanenefu",
+       "exif-sharpness-2": "Matatoki",
+       "exif-gpslatitude-n": "Latitute tokelau",
+       "exif-gpslatitude-s": "Latitute tonga",
+       "exif-gpslongitude-e": "Longitute hahake",
+       "exif-gpslongitude-w": "Longitute hihifo",
+       "exif-gpsspeed-k": "Kilomita ki he houa",
+       "exif-gpsspeed-m": "Maile he houa",
+       "exif-gpsdirection-t": "Tūkufua moʻoni",
+       "exif-gpsdirection-m": "Tūkufua fakamakineti"
+}
diff --git a/languages/i18n/exif/tr.json b/languages/i18n/exif/tr.json
new file mode 100644 (file)
index 0000000..405a3c1
--- /dev/null
@@ -0,0 +1,383 @@
+{
+       "@metadata": {
+               "authors": [
+                       "82-145",
+                       "Dbl2010",
+                       "Emperyan",
+                       "Hcagri",
+                       "Hedda Gabler",
+                       "Incelemeelemani",
+                       "Joseph",
+                       "Karduelis",
+                       "Khutuck",
+                       "Mach",
+                       "Rapsar",
+                       "Runningfridgesrule",
+                       "Sayginer",
+                       "Stultiwikia",
+                       "Suelnur",
+                       "Szoszv",
+                       "Tarikozket",
+                       "Uğur Başak",
+                       "Vito Genovese",
+                       "Vugar 1981"
+               ]
+       },
+       "exif-imagewidth": "Genişlik",
+       "exif-imagelength": "Yükseklik",
+       "exif-bitspersample": "Bits per component",
+       "exif-compression": "Sıkıştırma planı",
+       "exif-photometricinterpretation": "Piksel bileşimi",
+       "exif-orientation": "Yönlendirme",
+       "exif-samplesperpixel": "Sayı bileşenleri",
+       "exif-planarconfiguration": "Veri düzeni",
+       "exif-ycbcrsubsampling": "Y-C alt örnekleme oranı",
+       "exif-ycbcrpositioning": "Y ve C yerleştirme",
+       "exif-xresolution": "Yatay çözünürlük",
+       "exif-yresolution": "Dikey çözünürlük",
+       "exif-stripoffsets": "Resim veri konumu",
+       "exif-rowsperstrip": "Number of rows per strip",
+       "exif-stripbytecounts": "Bytes per compressed strip",
+       "exif-jpeginterchangeformat": "Offset to JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Bytes of JPEG data",
+       "exif-whitepoint": "Beyaz nokta kromatiği",
+       "exif-primarychromaticities": "Chromaticities of primarities",
+       "exif-ycbcrcoefficients": "Renk aralığı dönüştürme matris katsayısı",
+       "exif-referenceblackwhite": "Pair of black and white reference values",
+       "exif-datetime": "Dosya değişiklik tarihi ve zamanı",
+       "exif-imagedescription": "Resim adı",
+       "exif-make": "Kamera markası",
+       "exif-model": "Kamera modeli",
+       "exif-software": "Kullanılan yazılım",
+       "exif-artist": "Yaratıcısı",
+       "exif-copyright": "Telif hakkı sahibi",
+       "exif-exifversion": "Exif sürümü",
+       "exif-flashpixversion": "Desteklenen Flashpix sürümü",
+       "exif-colorspace": "Renk aralığı",
+       "exif-componentsconfiguration": "Her bileşenin anlamı",
+       "exif-compressedbitsperpixel": "Resim sıkıştırma biçimi",
+       "exif-pixelxdimension": "Resim genişliği",
+       "exif-pixelydimension": "Resim yüksekliği",
+       "exif-usercomment": "Kullanıcı yorumu",
+       "exif-relatedsoundfile": "İlişkin ses dosyası",
+       "exif-datetimeoriginal": "Verinin ilk yaratılma zamanı",
+       "exif-datetimedigitized": "Dijitalleştirme zamanı",
+       "exif-subsectime": "Alt-ikinci zaman",
+       "exif-subsectimeoriginal": "Orjinal alt-ikinci zaman",
+       "exif-subsectimedigitized": "Dijitalize alt-ikinci zaman",
+       "exif-exposuretime": "Çekim süresi",
+       "exif-exposuretime-format": "$1 saniye ($2)",
+       "exif-fnumber": "F numarası",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Poz programı",
+       "exif-spectralsensitivity": "Spektral duyarlılık",
+       "exif-isospeedratings": "ISO hız derecesi",
+       "exif-shutterspeedvalue": "APEX deklanşör hızı",
+       "exif-aperturevalue": "APEX açıklığı",
+       "exif-brightnessvalue": "APEX parlaklığı",
+       "exif-exposurebiasvalue": "Poz eğilim değeri",
+       "exif-maxaperturevalue": "Maksimum açıklık değeri",
+       "exif-subjectdistance": "Özne uzaklığı",
+       "exif-meteringmode": "Ölçüm kipi",
+       "exif-lightsource": "Işık kaynağı",
+       "exif-flash": "Flaş",
+       "exif-focallength": "Mercek odak uzaklığı",
+       "exif-focallength-format": "$1 mm",
+       "exif-subjectarea": "Özne alanı",
+       "exif-flashenergy": "Flaş düzeyi",
+       "exif-focalplanexresolution": "Odaksal düzey X çözünürlüğü",
+       "exif-focalplaneyresolution": "Odaksal düzey Y çözünürlüğü",
+       "exif-focalplaneresolutionunit": "Odaksal düzey çözünürlük ünitesi",
+       "exif-subjectlocation": "Özne konumu",
+       "exif-exposureindex": "Poz dizini",
+       "exif-sensingmethod": "Algılama metodu",
+       "exif-filesource": "Dosya kaynağı",
+       "exif-scenetype": "Sahne tipi",
+       "exif-customrendered": "Özel resim işlemi",
+       "exif-exposuremode": "Pozlama",
+       "exif-whitebalance": "Beyaz denge",
+       "exif-digitalzoomratio": "Yakınlaştırma oranı",
+       "exif-focallengthin35mmfilm": "35 mm'lik filmde odak uzaklığı",
+       "exif-scenecapturetype": "Sahne yakalama tipi",
+       "exif-gaincontrol": "Sahne kontrolü",
+       "exif-contrast": "Karşıtlık",
+       "exif-saturation": "Doygunluk",
+       "exif-sharpness": "Keskinlik",
+       "exif-devicesettingdescription": "Aygıt ayar tanımları",
+       "exif-subjectdistancerange": "Özne mesafe menzili",
+       "exif-imageuniqueid": "Resim özel kimliği",
+       "exif-gpsversionid": "GPS sürümü",
+       "exif-gpslatituderef": "Kuzey veya güney enlemi",
+       "exif-gpslatitude": "Enlem",
+       "exif-gpslongituderef": "Doğu veya batı boylamı",
+       "exif-gpslongitude": "Boylam",
+       "exif-gpsaltituderef": "Yükseklik kaynağı",
+       "exif-gpsaltitude": "Yükseklik",
+       "exif-gpstimestamp": "GPS zamanı (atom saati)",
+       "exif-gpssatellites": "Ölçmek için kullandığı uydular",
+       "exif-gpsstatus": "Alıcı konumu",
+       "exif-gpsmeasuremode": "Ölçüm kipi",
+       "exif-gpsdop": "Ölçüm işlemi",
+       "exif-gpsspeedref": "Hız birimi",
+       "exif-gpsspeed": "GPS alıcı hızı",
+       "exif-gpstrackref": "Reference for direction of movement",
+       "exif-gpstrack": "Kontrol mekanizması",
+       "exif-gpsimgdirectionref": "Reference for direction of image",
+       "exif-gpsimgdirection": "Resim yönü",
+       "exif-gpsmapdatum": "Geodetic survey data used",
+       "exif-gpsdestlatituderef": "Reference for latitude of destination",
+       "exif-gpsdestlatitude": "Latitude destination",
+       "exif-gpsdestlongituderef": "Reference for longitude of destination",
+       "exif-gpsdestlongitude": "Longitude of destination",
+       "exif-gpsdestbearingref": "Reference for bearing of destination",
+       "exif-gpsdestbearing": "Bearing of destination",
+       "exif-gpsdestdistanceref": "Reference for distance to destination",
+       "exif-gpsdestdistance": "Distance to destination",
+       "exif-gpsprocessingmethod": "Name of GPS processing method",
+       "exif-gpsareainformation": "GPS alan adı",
+       "exif-gpsdatestamp": "GPS zamanı",
+       "exif-gpsdifferential": "GPS differential correction",
+       "exif-jpegfilecomment": "JPEG dosyası yorumu",
+       "exif-keywords": "Anahtar kelimeler",
+       "exif-worldregioncreated": "Resmin çekildiği dünya bölgesi",
+       "exif-countrycreated": "Resmin alındığı ülke",
+       "exif-countrycodecreated": "Resmin çekildiği ülke kodu",
+       "exif-provinceorstatecreated": "Resmin çekildiği eyalet ya da il",
+       "exif-citycreated": "Resmin alındığı şehir",
+       "exif-sublocationcreated": "Resmin çekildiği şehrin alt bölgesi",
+       "exif-worldregiondest": "Gösterilen bölge",
+       "exif-countrydest": "Gösterilen ülke",
+       "exif-countrycodedest": "Gösterilen ülke kodu",
+       "exif-provinceorstatedest": "Gösterilen il ya da devlet/eyalet",
+       "exif-citydest": "Gösterilen Şehir",
+       "exif-sublocationdest": "Şehrin alt bölgesi gösteriliyor",
+       "exif-objectname": "Kısa başlık",
+       "exif-specialinstructions": "Özel talimatlar",
+       "exif-headline": "Başlık",
+       "exif-credit": "Sağlayıcı",
+       "exif-source": "Kaynak",
+       "exif-editstatus": "Görüntünün yayın durumu",
+       "exif-urgency": "Aciliyet",
+       "exif-fixtureidentifier": "Fikstür adı",
+       "exif-locationdest": "Yerin konumu",
+       "exif-locationdestcode": "Konumun kodu tanımlandı",
+       "exif-objectcycle": "Ortamın planlandığı günün saati",
+       "exif-contact": "İletişim bilgileri",
+       "exif-writer": "Yazar",
+       "exif-languagecode": "Dil",
+       "exif-iimversion": "IIM sürümü",
+       "exif-iimcategory": "Kategori",
+       "exif-iimsupplementalcategory": "Tamamlayıcı kategoriler",
+       "exif-datetimeexpires": "Bu tarihten sonra kullanmayın:",
+       "exif-datetimereleased": "Tarihinde yayınlandı",
+       "exif-originaltransmissionref": "Orijinal iletim konum kodu",
+       "exif-identifier": "Tanımlayıcı",
+       "exif-lens": "Kullanılan objektif",
+       "exif-serialnumber": "Kameranın seri numarası",
+       "exif-cameraownername": "Kameranın sahibi",
+       "exif-label": "Etiket",
+       "exif-datetimemetadata": "Üstveri son değişim tarihi",
+       "exif-nickname": "Görüntünün resmî olmayan adı",
+       "exif-rating": "Oylama (5 üzerinden)",
+       "exif-rightscertificate": "Hak yönetimi sertifikası",
+       "exif-copyrighted": "Telif hakkı durumu",
+       "exif-copyrightowner": "Telif hakkı sahibi",
+       "exif-usageterms": "Kullanım şartları",
+       "exif-webstatement": "Çevrimiçi telif hakkı bildirimi",
+       "exif-originaldocumentid": "Özgün belgenin benzersiz kimliği",
+       "exif-licenseurl": "Telif hakkı lisansı için URL",
+       "exif-morepermissionsurl": "Alternatif lisans bilgileri",
+       "exif-attributionurl": "Bu çalışmayı yeniden kullanırken lütfen bağlantı verin",
+       "exif-preferredattributionname": "Bu çalışmayı yeniden kullanırken, lütfen atıf verin",
+       "exif-pngfilecomment": "PNG dosyası yorumu",
+       "exif-disclaimer": "Sorumluluk reddi",
+       "exif-contentwarning": "İçerik uyarısı",
+       "exif-giffilecomment": "GIF dosyası yorumu",
+       "exif-intellectualgenre": "Öğe türü",
+       "exif-subjectnewscode": "Konu kodu",
+       "exif-scenecode": "IPTC sahne kodu",
+       "exif-event": "Adı geçen olay",
+       "exif-organisationinimage": "Organizasyon gösterilmiştir",
+       "exif-personinimage": "Adı geçen kişi",
+       "exif-originalimageheight": "Resmin kırpılmadan önceki yükseliği",
+       "exif-originalimagewidth": "Resmin kırpılmadan önceki genişliği",
+       "exif-compression-1": "Sıkıştırılmamış",
+       "exif-compression-2": "CCITT Grup 3 1-Boyutlu Değiştirilmiş Huffman koşu uzunluğu kodlaması",
+       "exif-compression-3": "CCITT Grup 3 faks kodlaması",
+       "exif-compression-4": "CCITT Grup 4 faks kodlaması",
+       "exif-compression-6": "JPEG",
+       "exif-copyrighted-true": "Telif hakkı",
+       "exif-copyrighted-false": "Telif Hakkı durumu belirtilmemiş",
+       "exif-photometricinterpretation-1": "Siyah ve beyaz (Siyah 0)",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-unknowndate": "Bilinmeyen zaman",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-2": "Yatay çevirme",
+       "exif-orientation-3": "180° döndürülmüş",
+       "exif-orientation-4": "Dikey çevirme",
+       "exif-orientation-5": "90° döndürülmüş (sola doğru) ve dikey çevirme",
+       "exif-orientation-6": "90° döndürülmüş (saat yönünün tersine)",
+       "exif-orientation-7": "90° döndürülmüş (saat yönünde) ve dikey çevirme",
+       "exif-orientation-8": "90° döndürülmüş (saat yönünde)",
+       "exif-planarconfiguration-1": "chunky format",
+       "exif-planarconfiguration-2": "Düzlemsel biçim",
+       "exif-xyresolution-i": "$1 dpi",
+       "exif-xyresolution-c": "$1 dpc",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "Fotoğrafta renk ayarı yapılmamış.",
+       "exif-componentsconfiguration-0": "Var olmayan",
+       "exif-componentsconfiguration-1": "Y",
+       "exif-componentsconfiguration-2": "Cb",
+       "exif-componentsconfiguration-3": "Cr",
+       "exif-componentsconfiguration-4": "R",
+       "exif-componentsconfiguration-5": "G",
+       "exif-componentsconfiguration-6": "B",
+       "exif-exposureprogram-0": "Tanımlanmadı",
+       "exif-exposureprogram-1": "Manuel (elle)",
+       "exif-exposureprogram-2": "Normal program",
+       "exif-exposureprogram-3": "Açıklık önceliği",
+       "exif-exposureprogram-4": "Denklanşör önceliği",
+       "exif-exposureprogram-5": "Yaratıcı program",
+       "exif-exposureprogram-6": "Hareket programı (hızlı hareketler içeren sahneleri çekmek için)",
+       "exif-exposureprogram-7": "Portre modu (arka planları bulanıklaştırıp nesneyi netleştirerek çeker)",
+       "exif-exposureprogram-8": "Peyzaj kipi (yalnızca uzaktaki bir nesneye odaklanır)",
+       "exif-subjectdistance-value": "$1 metre",
+       "exif-meteringmode-0": "Bilinmiyor",
+       "exif-meteringmode-1": "Orta",
+       "exif-meteringmode-2": "Merkez ağırlıklı",
+       "exif-meteringmode-3": "Noktalı",
+       "exif-meteringmode-4": "Çok noktalı",
+       "exif-meteringmode-5": "Desenli",
+       "exif-meteringmode-6": "Kısmi",
+       "exif-meteringmode-255": "Diğer",
+       "exif-lightsource-0": "Bilinmiyor",
+       "exif-lightsource-1": "Gün ışığı",
+       "exif-lightsource-2": "Floresan",
+       "exif-lightsource-3": "Akkor ışık",
+       "exif-lightsource-4": "Flaş",
+       "exif-lightsource-9": "Açık hava",
+       "exif-lightsource-10": "Bulutlu",
+       "exif-lightsource-11": "Gölgeli",
+       "exif-lightsource-12": "Gün ışığı floresan  (D 5700 – 7100K)",
+       "exif-lightsource-13": "Gün ışığı beyaz floresan (N 4600 – 5400K)",
+       "exif-lightsource-14": "Doğal beyaz floresan (W 3900 – 4500K)",
+       "exif-lightsource-15": "Beyaz floresan (WW 3200 – 3700K)",
+       "exif-lightsource-17": "A tipi standart ışık",
+       "exif-lightsource-18": "B tipi standart ışık",
+       "exif-lightsource-19": "C tipi standart ışık",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-22": "D75",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "ISO stüdyo volframı",
+       "exif-lightsource-255": "Diğer ışık kaynakları",
+       "exif-flash-fired-0": "Flaş patlamadı",
+       "exif-flash-fired-1": "Flaş patladı",
+       "exif-flash-return-0": "Dönen ışık modu kapalı",
+       "exif-flash-return-2": "Dönen ışık yok",
+       "exif-flash-return-3": "Dönen ışık tespit edildi",
+       "exif-flash-mode-1": "Zorunlu flaş patladı",
+       "exif-flash-mode-2": "Zorunlu flaş kapalı",
+       "exif-flash-mode-3": "Otomatik kip",
+       "exif-flash-function-1": "Flaş kapalı",
+       "exif-flash-redeye-1": "Kırmızı göz azaltma kipi",
+       "exif-focalplaneresolutionunit-2": "inç",
+       "exif-sensingmethod-1": "Tanımsız",
+       "exif-sensingmethod-2": "Tek çip renkli algılama sensörü",
+       "exif-sensingmethod-3": "İki çip renkli algılama sensörü",
+       "exif-sensingmethod-4": "Üç çip renkli algılama sensörü",
+       "exif-sensingmethod-5": "Ardışık, renkli algılama sensörü",
+       "exif-sensingmethod-7": "Üç çizgili algılayıcı",
+       "exif-sensingmethod-8": "Aritmetik, renkli algılama sensörü",
+       "exif-filesource-3": "Dijital fotoğraf makinesi",
+       "exif-scenetype-1": "Hemen fotoğraflama",
+       "exif-customrendered-0": "Normal işlem",
+       "exif-customrendered-1": "Özel işlem",
+       "exif-exposuremode-0": "Otomatik pozlama",
+       "exif-exposuremode-1": "Manuel pozlama",
+       "exif-exposuremode-2": "Otomatik kenetleme",
+       "exif-whitebalance-0": "Otomatik beyaz denge",
+       "exif-whitebalance-1": "Manuel beyaz denge",
+       "exif-scenecapturetype-0": "Standart",
+       "exif-scenecapturetype-1": "Manzara",
+       "exif-scenecapturetype-2": "Portre",
+       "exif-scenecapturetype-3": "Gece çekimi",
+       "exif-gaincontrol-0": "Hiçbiri",
+       "exif-gaincontrol-1": "Low gain up",
+       "exif-gaincontrol-2": "High gain up",
+       "exif-gaincontrol-3": "Low gain down",
+       "exif-gaincontrol-4": "High gain down",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Yumuşak",
+       "exif-contrast-2": "Sert",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Düşük doygunluk",
+       "exif-saturation-2": "Yüksek doygunluk",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Yumuşak",
+       "exif-sharpness-2": "Sert",
+       "exif-subjectdistancerange-0": "Bilinmiyor",
+       "exif-subjectdistancerange-1": "Makro (yakın çekim)",
+       "exif-subjectdistancerange-2": "Kapalı görünüm",
+       "exif-subjectdistancerange-3": "Uzak görünüm",
+       "exif-gpslatitude-n": "Kuzey enlemi",
+       "exif-gpslatitude-s": "Güney enlemi",
+       "exif-gpslongitude-e": "Doğu boylamı",
+       "exif-gpslongitude-w": "Batı boylamı",
+       "exif-gpsaltitude-above-sealevel": "Deniz seviyesinden $1 {{PLURAL:$1|metre|metre}} yukarıda",
+       "exif-gpsaltitude-below-sealevel": "Deniz seviyesinden $1 {{PLURAL:$1|metre|metre}} aşağıda",
+       "exif-gpsstatus-a": "Ölçüm devam ediyor",
+       "exif-gpsstatus-v": "Ölçüm işlerliği",
+       "exif-gpsmeasuremode-2": "2-boyutlu ölçüm",
+       "exif-gpsmeasuremode-3": "3-boyutlu ölçüm",
+       "exif-gpsspeed-k": "km/s",
+       "exif-gpsspeed-m": "Mil/saat",
+       "exif-gpsspeed-n": "Deniz mili",
+       "exif-gpsdestdistance-k": "Kilometre",
+       "exif-gpsdestdistance-m": "Mil",
+       "exif-gpsdestdistance-n": "Deniz mili",
+       "exif-gpsdop-excellent": "Harika ($1)",
+       "exif-gpsdop-good": "İyi ($1)",
+       "exif-gpsdop-moderate": "Ne iyi ne kötü ($1)",
+       "exif-gpsdop-fair": "İdare eder ($1)",
+       "exif-gpsdop-poor": "Yetersiz ($1)",
+       "exif-objectcycle-a": "Sadece sabah",
+       "exif-objectcycle-p": "Sadece akşam",
+       "exif-objectcycle-b": "Gece ve gündüz",
+       "exif-gpsdirection-t": "Gerçek yönü",
+       "exif-gpsdirection-m": "Manyetik yönü",
+       "exif-ycbcrpositioning-1": "Ortalanmış",
+       "exif-ycbcrpositioning-2": "Eş-yerleştirilmiş",
+       "exif-dc-contributor": "Katkıda bulunanlar",
+       "exif-dc-coverage": "Medyanın konumsal ya da zamansal kapsamı",
+       "exif-dc-date": "Tarih(ler)",
+       "exif-dc-publisher": "Yayımcı",
+       "exif-dc-relation": "İlgili medya",
+       "exif-dc-rights": "Haklar",
+       "exif-dc-source": "Kaynak medya",
+       "exif-dc-type": "Medya türü",
+       "exif-rating-rejected": "Reddedildi",
+       "exif-isospeedratings-overflow": "65535'den büyüktür",
+       "exif-iimcategory-ace": "Sanat, kültür ve eğlence",
+       "exif-iimcategory-clj": "Suç ve hukuk",
+       "exif-iimcategory-dis": "Afetler ve kazalar",
+       "exif-iimcategory-fin": "Ekonomi ve iş",
+       "exif-iimcategory-edu": "Eğitim",
+       "exif-iimcategory-evn": "Çevre",
+       "exif-iimcategory-hth": "Sağlık",
+       "exif-iimcategory-hum": "İnsan ilgisi",
+       "exif-iimcategory-lab": "Çalışma",
+       "exif-iimcategory-lif": "Yaşam tarzı ve eğlence",
+       "exif-iimcategory-pol": "Siyaset",
+       "exif-iimcategory-rel": "Din ve inanç",
+       "exif-iimcategory-sci": "Bilim ve teknoloji",
+       "exif-iimcategory-soi": "Sosyal konular",
+       "exif-iimcategory-spo": "Spor",
+       "exif-iimcategory-war": "Savaş, çatışma ve kargaşa",
+       "exif-iimcategory-wea": "Hava",
+       "exif-urgency-normal": "Normal ( $1 )",
+       "exif-urgency-low": "Düşük ( $1 )",
+       "exif-urgency-high": "Yüksek ( $1 )",
+       "exif-urgency-other": "Kullanıcı tanımlı öncelik ($1)"
+}
diff --git a/languages/i18n/exif/tt-cyrl.json b/languages/i18n/exif/tt-cyrl.json
new file mode 100644 (file)
index 0000000..21b54cf
--- /dev/null
@@ -0,0 +1,180 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Don Alessandro",
+                       "Ильнар",
+                       "Рашат Якупов"
+               ]
+       },
+       "exif-imagewidth": "Киңлек",
+       "exif-imagelength": "Биеклек",
+       "exif-bitspersample": "Төс тирәнлеге",
+       "exif-compression": "Кысу ысулы",
+       "exif-photometricinterpretation": "Төс моделе",
+       "exif-orientation": "Кадр куелышы",
+       "exif-samplesperpixel": "Төс өлешләре саны",
+       "exif-xresolution": "Горизонталь зурлык",
+       "exif-yresolution": "Вертикаль зурлык",
+       "exif-datetime": "Файл үзгәртүләр датасы һәм вакыты",
+       "exif-imagedescription": "Рәсемнең исеме",
+       "exif-make": "Камераның җитештерүчесе",
+       "exif-model": "Камераның төре",
+       "exif-software": "Программалы тәэмин ителеш",
+       "exif-artist": "Автор",
+       "exif-copyright": "Автор хокуклары иясе",
+       "exif-exifversion": "Exif юрамасы",
+       "exif-flashpixversion": "FlashPix юрамасын тәэмин итү",
+       "exif-colorspace": "Төсләр тирәлеге",
+       "exif-componentsconfiguration": "Төсләр төзелешенең конфигурациясе",
+       "exif-compressedbitsperpixel": "Кысылудан соң төснең тирәнлеге",
+       "exif-pixelxdimension": "Рәсемнең киңлеге",
+       "exif-pixelydimension": "Рәсемнең биеклеге",
+       "exif-usercomment": "Өстәмә җавап",
+       "exif-relatedsoundfile": "Тавыш файлы җавабы",
+       "exif-datetimeoriginal": "Чын вакыты",
+       "exif-datetimedigitized": "Санлаштыру вакыты",
+       "exif-subsectime": "Файлны үзгәртүнең өлешле секунд вакыты",
+       "exif-subsectimeoriginal": "Чын ясалу вакытының өлеш секунды",
+       "exif-subsectimedigitized": "Санлаштыру вакытының өлеш секунды",
+       "exif-exposuretime": "Экспозиция вакыты",
+       "exif-exposuretime-format": "$1 с ($2)",
+       "exif-fnumber": "Диафрагманың саны",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Экспозиция программасы",
+       "exif-spectralsensitivity": "Спектраль сизүчәнлек",
+       "exif-isospeedratings": "ISO яктылык сизүчәнлеге",
+       "exif-shutterspeedvalue": "APEX саклау",
+       "exif-aperturevalue": "APEX диафрагма",
+       "exif-brightnessvalue": "APEX яктылык",
+       "exif-exposurebiasvalue": "Экспозиция компенсациясе",
+       "exif-maxaperturevalue": "Диафрагманың минималь саны",
+       "exif-subjectdistance": "Җисемгә кадәр ераклык",
+       "exif-meteringmode": "Экспозицияне үлчәү режимы",
+       "exif-lightsource": "Яктылык чыганагы",
+       "exif-flash": "Яктылык статусы",
+       "exif-focallength": "Фокус ераклыгы",
+       "exif-focallength-format": "$1 мм",
+       "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": "Ак төснең балансы",
+       "exif-digitalzoomratio": "Санлы зурайту коэффициенты",
+       "exif-focallengthin35mmfilm": "Эквивалентлы фокус ераклыгы (35 мм тасма өчен)",
+       "exif-scenecapturetype": "Төшерү вакытындагы тирәлек төре",
+       "exif-gaincontrol": "Яктылыкны арттыру",
+       "exif-contrast": "Караңгылык",
+       "exif-saturation": "Төрлелеге",
+       "exif-sharpness": "Ачыклыгы",
+       "exif-devicesettingdescription": "Камераның көйләүләр тасвирламасы",
+       "exif-subjectdistancerange": "Төшерү җисеменә кадәр ераклык",
+       "exif-imageuniqueid": "Рәсемнең саны (ID)",
+       "exif-gpsversionid": "GPS мәгълүматы блогының версиясе",
+       "exif-gpslatituderef": "Киңлек индексы",
+       "exif-gpslatitude": "Киңлек",
+       "exif-gpslongituderef": "Озынлык индексы",
+       "exif-gpslongitude": "Озынлык",
+       "exif-gpsaltituderef": "Биеклек индексы",
+       "exif-gpsaltitude": "Биеклек",
+       "exif-gpstimestamp": "UTC буенча вакыт",
+       "exif-gpssatellites": "Кулланылган иярченнәр тасвирламасы",
+       "exif-gpsstatus": "Алгычның статусы һәм төшерү вакыты",
+       "exif-gpsmeasuremode": "Урнашуны билгеләү ысулы",
+       "exif-gpsdop": "Билгеләүнең дөреслеге",
+       "exif-gpsspeedref": "Тизлекне исәпләү берәмлеге",
+       "exif-gpsspeed": "Хәрәкәт тизлеге",
+       "exif-gpsdatestamp": "Дата",
+       "exif-keywords": "Иң мөһиме",
+       "exif-source": "Чыганак",
+       "exif-writer": "Язучы",
+       "exif-languagecode": "Тел",
+       "exif-iimversion": "IIM юрамасы",
+       "exif-iimcategory": "Төркем",
+       "exif-identifier": "Идентификатор",
+       "exif-label": "Билгеләү",
+       "exif-copyrighted": "Автор хокуклары халәте:",
+       "exif-copyrightowner": "Автор хокуклары иясе",
+       "exif-usageterms": "Куллану шартлары",
+       "exif-orientation-1": "Гадәти",
+       "exif-orientation-3": "180° ка борылган",
+       "exif-componentsconfiguration-0": "юк",
+       "exif-exposureprogram-0": "Билгесез",
+       "exif-exposureprogram-1": "Кулдан җайлау режимы",
+       "exif-exposureprogram-2": "Программалы режим (гади)",
+       "exif-subjectdistance-value": "$1 {{PLURAL:$1|метр}}",
+       "exif-meteringmode-0": "Билгесез",
+       "exif-meteringmode-1": "Уртача",
+       "exif-meteringmode-3": "Нокталы",
+       "exif-meteringmode-4": "Мультинокталы",
+       "exif-meteringmode-5": "Паттернлы",
+       "exif-meteringmode-6": "Өлешләтә",
+       "exif-meteringmode-255": "Башка",
+       "exif-lightsource-0": "Билгесез",
+       "exif-lightsource-4": "Яктылык",
+       "exif-lightsource-9": "Яхшы һава торышы",
+       "exif-lightsource-11": "Күләгә",
+       "exif-flash-mode-3": "автоматик режим",
+       "exif-focalplaneresolutionunit-2": "дюйм",
+       "exif-sensingmethod-1": "Билгесез",
+       "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-saturation-0": "Нормаль",
+       "exif-saturation-1": "Аз гына туендырылу",
+       "exif-saturation-2": "Күп иттереп туендырылу",
+       "exif-sharpness-0": "Нормаль",
+       "exif-sharpness-1": "Аз гына күтәрү",
+       "exif-sharpness-2": "Күп иттереп күтәрү",
+       "exif-subjectdistancerange-0": "Билгесез",
+       "exif-subjectdistancerange-1": "Макротөшерү",
+       "exif-subjectdistancerange-2": "Якыннан төшерү",
+       "exif-subjectdistancerange-3": "Ерактан төшерү",
+       "exif-gpslatitude-n": "төньяк киңлек",
+       "exif-gpslatitude-s": "көньяк киңлек",
+       "exif-gpslongitude-e": "көнчыгыш озынлык",
+       "exif-gpslongitude-w": "көнбатыш озынлык",
+       "exif-gpsstatus-a": "Үлчәү тәмамланмаган",
+       "exif-gpsstatus-v": "Мәгълүматларны җибәрүгә әзер",
+       "exif-gpsspeed-k": "км/сәг",
+       "exif-gpsspeed-m": "миля/сәг",
+       "exif-gpsspeed-n": "Төен",
+       "exif-gpsdestdistance-k": "Километр",
+       "exif-gpsdestdistance-m": "Миль",
+       "exif-gpsdestdistance-n": "Диңгез миле",
+       "exif-gpsdop-excellent": "Шәп ($1)",
+       "exif-gpsdop-good": "Яхшы ($1)",
+       "exif-gpsdop-moderate": "Уртача ($1)",
+       "exif-gpsdop-fair": "Ярыйсы ($1)",
+       "exif-gpsdop-poor": "Начар ($1)",
+       "exif-dc-date": "Дата(лар)",
+       "exif-dc-publisher": "Нәшрият",
+       "exif-dc-relation": "Бәйле медиа",
+       "exif-dc-rights": "Хокуклар",
+       "exif-dc-source": "Чыганак медиа",
+       "exif-dc-type": "Медиа төре",
+       "exif-rating-rejected": "Кире кагылды",
+       "exif-isospeedratings-overflow": "65535-тән күп",
+       "exif-iimcategory-hth": "Сәламәтлек",
+       "exif-iimcategory-lab": "Хезмәт",
+       "exif-iimcategory-wea": "Һава тырышы",
+       "exif-urgency-normal": "Гадәти ($1)",
+       "exif-urgency-low": "Түбән ($1)",
+       "exif-urgency-high": "Югары ($1)"
+}
diff --git a/languages/i18n/exif/tt-latn.json b/languages/i18n/exif/tt-latn.json
new file mode 100644 (file)
index 0000000..6aa13da
--- /dev/null
@@ -0,0 +1,110 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Don Alessandro",
+                       "Frhdkazan"
+               ]
+       },
+       "exif-imagewidth": "Kiñlek",
+       "exif-imagelength": "Bieklek",
+       "exif-orientation": "Yünäleş",
+       "exif-datetime": "Faylnıñ üzgärtelü köne häm waqıtı",
+       "exif-imagedescription": "Räsemneñ iseme",
+       "exif-make": "Kameranıñ citeşterüçese",
+       "exif-model": "Kameranıñ töre",
+       "exif-software": "Programmalı tä'min iteleş",
+       "exif-artist": "Avtor",
+       "exif-copyright": "Avtor xoquqları xucası",
+       "exif-exifversion": "Exif versiäse",
+       "exif-flashpixversion": "FlashPix yuramasın tä'min itü",
+       "exif-colorspace": "Töslär tirälege",
+       "exif-componentsconfiguration": "Töslär tözeleşeneñ konfiguratsiäse",
+       "exif-compressedbitsperpixel": "Qısıludan soñ tösneñ tiränlege",
+       "exif-pixelxdimension": "Räsemneñ tulı bieklege",
+       "exif-pixelydimension": "Räsemneñ tulı kiñlege",
+       "exif-usercomment": "Östämä cawap",
+       "exif-relatedsoundfile": "Tawış faylı cawabı",
+       "exif-datetimeoriginal": "Çın waqıtı",
+       "exif-datetimedigitized": "Sanlaştıru waqıtı",
+       "exif-subsectime": "Faylnı üzgärtüneñ öleşle sekund waqıtı",
+       "exif-subsectimeoriginal": "Çın yasalu waqıtınıñ öleş sekundı",
+       "exif-subsectimedigitized": "Sanlaştıru waqıtınıñ öleş sekundı",
+       "exif-exposuretime": "Ekspozitsiä waqıtı",
+       "exif-exposuretime-format": "$1 s ($2)",
+       "exif-fnumber": "Diafragmanıñ sanı",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Ekspozitsiä programması",
+       "exif-spectralsensitivity": "Spektral sizüçänlek",
+       "exif-isospeedratings": "ISO yaqtılıq sizüçänlege",
+       "exif-shutterspeedvalue": "Saqlaw",
+       "exif-aperturevalue": "Diafragma",
+       "exif-brightnessvalue": "Yaqtılıq",
+       "exif-exposurebiasvalue": "Ekspozitsiä kompensatsiäse",
+       "exif-maxaperturevalue": "Diafragmanıñ minimal sanı",
+       "exif-subjectdistance": "Cisemgä qädär yıraqlıq",
+       "exif-meteringmode": "Ekspozitsiäne ülçäw rejimı",
+       "exif-lightsource": "Yaqtılıq çığanağı",
+       "exif-flash": "Yaqtılıq statusı",
+       "exif-focallength": "Foqus yıraqlığı",
+       "exif-focallength-format": "$1 mm",
+       "exif-subjectarea": "Töşerü cisemeneñ urnaşuı häm mäydanı",
+       "exif-flashenergy": "Yaqtılıq energiäse",
+       "exif-focalplanexresolution": "X foqäl yassılıq kiñäytelüe",
+       "exif-focalplaneyresolution": "Y foqäl yassılıq kiñäytelüe",
+       "exif-focalplaneresolutionunit": "Foqäl yassılıq kiñäytelüen isäpläw berämlege",
+       "exif-subjectlocation": "Cisemneñ sul yaqqa qarata torışı",
+       "exif-exposureindex": "Ekspozitsiä sanı",
+       "exif-sensingmethod": "Sensor töre",
+       "exif-filesource": "Faylnıñ çığanağı",
+       "exif-scenetype": "Tirälekneñ töre",
+       "exif-customrendered": "Östämä üzgärtü",
+       "exif-exposuremode": "Ekspozitsiä saylaw rejimı",
+       "exif-whitebalance": "Aq tösneñ balansı",
+       "exif-digitalzoomratio": "Sanlı zuraytu koeffitsientı",
+       "exif-focallengthin35mmfilm": "Ekvivalentlı foqus yıraqlığı (35 mm tasma öçen)",
+       "exif-scenecapturetype": "Töşerü waqıtındağı tirälek töre",
+       "exif-gaincontrol": "Yaqtılıqnı arttıru",
+       "exif-contrast": "Qarañğılıq",
+       "exif-saturation": "Törlelege",
+       "exif-sharpness": "Açıqlığı",
+       "exif-devicesettingdescription": "Kameranıñ köyläwlär taswirlaması",
+       "exif-subjectdistancerange": "Töşerü cisemenä qädär yıraqlıq",
+       "exif-imageuniqueid": "Räsemneñ sanı (ID)",
+       "exif-gpsversionid": "GPS mäğlümatı bloğınıñ versiäse",
+       "exif-gpslatituderef": "Kiñlek indeksı",
+       "exif-gpslatitude": "Kiñlek",
+       "exif-gpslongituderef": "Ozınlıq indeksı",
+       "exif-gpslongitude": "Ozınlıq",
+       "exif-gpsaltituderef": "Bieklek indeksı",
+       "exif-gpsaltitude": "Bieklek",
+       "exif-gpstimestamp": "UTC buyınça waqıt",
+       "exif-gpssatellites": "Qullanılğan iärçennär taswirlaması",
+       "exif-gpsstatus": "Alğıçnıñ statusı häm töşerü waqıtı",
+       "exif-gpsmeasuremode": "Urnaşunı bilgeläw ısulı",
+       "exif-gpsdop": "Bilgeläwneñ döreslege",
+       "exif-gpsspeedref": "Tizlekne isäpläw berämlege",
+       "exif-gpsspeed": "Xäräkät tizlege",
+       "exif-gpsdatestamp": "Data",
+       "exif-languagecode": "Tel",
+       "exif-iimcategory": "Törkem",
+       "exif-usageterms": "Qullanu şartları",
+       "exif-exposureprogram-1": "Qullanma",
+       "exif-meteringmode-255": "Başqa",
+       "exif-lightsource-0": "Bilgesez",
+       "exif-gaincontrol-0": "Yuq",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Az ğına kütärü",
+       "exif-contrast-2": "Küp itterep kütärü",
+       "exif-saturation-0": "Normal",
+       "exif-saturation-1": "Az ğına tuyındırılu",
+       "exif-saturation-2": "Küp itterep tuyındırılu",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Az ğına kütärü",
+       "exif-sharpness-2": "Küp itterep kütärü",
+       "exif-subjectdistancerange-0": "Bilgesez",
+       "exif-subjectdistancerange-1": "Makrotöşerü",
+       "exif-subjectdistancerange-2": "Yaqınnan töşerü",
+       "exif-subjectdistancerange-3": "Yıraqtan töşerü",
+       "exif-gpsspeed-k": "km/säğ",
+       "exif-gpsspeed-m": "milya/säğ"
+}
diff --git a/languages/i18n/exif/tzm.json b/languages/i18n/exif/tzm.json
new file mode 100644 (file)
index 0000000..8cce9fe
--- /dev/null
@@ -0,0 +1,58 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Tifinaghes"
+               ]
+       },
+       "exif-imagedescription": "ⴰⵣⵡⵍ ⵏ ⵜⵡⵍⴰⴼⵜ",
+       "exif-model": "ⴰⵏⴰⵡ ⵏ ⵍⴽⴰⵎⵉⵔⴰ",
+       "exif-exposuretime-format": "$1 ⵜⴰⵙⵏⴰⵜ ($2)",
+       "exif-flash": "Flash",
+       "exif-filesource": "ⴰⵖⴱⴰⵍⵓ ⵓⵙⴷⴰⵡ",
+       "exif-scenetype": "ⴰⵏⴰⵡ ⵏ ⵉⵏⵥⵔⵉ",
+       "exif-gpsdatestamp": "GPS ⴰⵎⵣⵔⵓⵢ",
+       "exif-jpegfilecomment": "ⵜⴰⵏⵏⴰⵢⵜ ⵓⵙⴷⴰⵡ JPEG",
+       "exif-keywords": "ⵜⵉⴳⵓⵔⵉⵡⵉⵏ ⵏ ⵜⵙⴰⵔⵓⵜ",
+       "exif-objectname": "ⴰⵣⵡⵉⵍ ⴰⴳⵯⵣⵣⴰⵍ",
+       "exif-headline": "ⴰⵣⵡⵉⵍ",
+       "exif-source": "ⴰⵖⴱⴰⵍⵓ",
+       "exif-urgency": "ⴰⵎⴰⵢⵏⵓ",
+       "exif-fixtureidentifier": "ⴰⵙⵙⴰⵖ ⵓⴼⵔⴷⵉⵙ",
+       "exif-contact": "ⵉⵏⵖⵎⵉⵙⵏ ⵓⵎⵢⴰⵡⴰⴹ",
+       "exif-writer": "ⴰⵎⴰⵔⴰ",
+       "exif-languagecode": "ⵜⵓⵜⵍⴰⵢⵜ",
+       "exif-iimcategory": "ⵜⴰⴳⴳⴰⵢⵜ",
+       "exif-label": "ⵜⴰⵎⴰⵜⴰⵔⵜ",
+       "exif-copyrighted": "ⴰⴷⴷⴰⵏ ⵏ ⵉⵣⵔⴼⴰⵏ ⵓⵎⴼⵙⴰⵔ",
+       "exif-giffilecomment": "ⵜⴰⵏⵏⴰⵢⵜ ⵓⵙⴷⴰⵡ GIF",
+       "exif-exposureprogram-1": "ⴰⵎⴰⴼⵓⵙ",
+       "exif-meteringmode-1": "ⴰⵏⴰⵎⵎⴰⵙ",
+       "exif-lightsource-0": "ⵡⴰⵔ ⴰⵙⵙⴰⵖ",
+       "exif-lightsource-1": "ⵜⵉⴼⴰⵡⵜ ⵏ ⵡⴰⵙⵙ",
+       "exif-lightsource-4": "ⴼⵍⴰⵛ",
+       "exif-flash-fired-1": "Flash ⵉⵙⵙⵏⵜⴰ",
+       "exif-scenecapturetype-0": "ⴰⵜⵔⴰⵔ",
+       "exif-gaincontrol-0": "ⵓⵍⴰⵛ (ⴰⵎⵢⴰ)",
+       "exif-subjectdistancerange-1": "ⵎⴰⴽⵔⵓ",
+       "exif-gpsspeed-m": "ⵎⵉⵍ ⴳ ⵜⵙⵔⴰⴳⵜ",
+       "exif-gpsspeed-n": "ⵜⴰⵙⵓⵜ",
+       "exif-gpsdestdistance-k": "ⴽⵉⵍⵓⵎⵉⵜⵔ",
+       "exif-gpsdestdistance-m": "Miles",
+       "exif-gpsdop-good": "ⵉⵥⵉⵍ ($1)",
+       "exif-dc-contributor": "ⴰⵎⴰⵡⴰⵙⵏ",
+       "exif-dc-date": "ⴰⴽⵓⴷ(ⵉⴽⵓⴷⵏ)",
+       "exif-dc-publisher": "ⴰⵎⴼⵙⵔ",
+       "exif-dc-rights": "ⵉⵣⵔⴼⴰⵏ",
+       "exif-dc-source": "ⴰⵖⴱⴰⵍⵓ ⵏ ⵓⵙⴷⴰⵡ",
+       "exif-dc-type": "ⴰⵏⴰⵡ ⵏ ⵓⵎⵉⴷⵢⴰ",
+       "exif-iimcategory-ace": "ⵜⵉⵥⵓⵔⵉⵡⵉⵏ, ⴷ ⵜⴷⵍⵙⴰ ⴷ ⴰⵎⵣⵍ",
+       "exif-iimcategory-fin": "ⵜⴰⴷⴰⵎⵙⴰ ⴷ ⵜⴰⵙⴱⴱⴰⴱⵜ",
+       "exif-iimcategory-edu": "ⴰⵙⵙⵍⵎⴷ",
+       "exif-iimcategory-evn": "ⵜⴰⵡⵏⵏⴰⵟ",
+       "exif-iimcategory-hth": "ⵜⴰⴷⵓⵙⵉ",
+       "exif-iimcategory-lab": "ⵜⴰⵡⵓⵔⵉ",
+       "exif-iimcategory-pol": "ⵜⴰⵙⵔⵜⵉⵜ",
+       "exif-iimcategory-rel": "ⴰⵙⴳⴷ ⴷ ⵜⵉⴼⵍⵙⵉⵏ",
+       "exif-iimcategory-spo": "ⵜⵓⵏⵏⵓⵏⵜ",
+       "exif-iimcategory-wea": "ⴰⵏⵣⵡⵉ"
+}
diff --git a/languages/i18n/exif/ug-arab.json b/languages/i18n/exif/ug-arab.json
new file mode 100644 (file)
index 0000000..8fa3de9
--- /dev/null
@@ -0,0 +1,347 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Arlin",
+                       "Sahran",
+                       "Tel'et"
+               ]
+       },
+       "exif-imagewidth": "كەڭلىك",
+       "exif-imagelength": "ئېگىزلىك",
+       "exif-bitspersample": "ھەر بىر نۇقتىنىڭ بىت سانى",
+       "exif-compression": "پرىس لايىھىسى",
+       "exif-photometricinterpretation": "نۇقتا بېرىكتۈرۈش",
+       "exif-orientation": "يۆنىلىش",
+       "exif-samplesperpixel": "نۇقتا سانى",
+       "exif-planarconfiguration": "سانلىق مەلۇمات جايلىشىشى",
+       "exif-ycbcrsubsampling": "سېرىق ۋە ئاچ قىزىل نۇسخا ئېلىش نىسبىتى",
+       "exif-ycbcrpositioning": "سېرىق ۋە ئاچ قىزىل سەپلىمىسى",
+       "exif-xresolution": "توغرىسىغا پەرق ئېتىش نىسبىتى",
+       "exif-yresolution": "بويىغا پەرق ئېتىش نىسبىتى",
+       "exif-stripoffsets": "سۈرەت سانلىق مەلۇمات ئورنى",
+       "exif-rowsperstrip": "ھەر بىر تاسماقنىڭ قۇر سانى",
+       "exif-stripbytecounts": "ھەر بىر پرىسلانغان تاسماقنىڭ بايت سانى",
+       "exif-jpeginterchangeformat": "JPEG SOI چەتنەش",
+       "exif-jpeginterchangeformatlength": "JPEG سانلىق مەلۇماتى بايت",
+       "exif-whitepoint": "ئاق نۇقتا رەڭ دەرىجىسى",
+       "exif-primarychromaticities": "ئاساسىي رەڭ دەرىجىسى",
+       "exif-ycbcrcoefficients": "رەڭ بوشلۇقىنى ئالماشتۇرۇش سانلار قاتارى كوئېففىتىسېنت",
+       "exif-referenceblackwhite": "ئاق قارا پايدىلىنىش قىممىتى",
+       "exif-datetime": "ھۆججەت ئۆزگەرتىلگەن چېسلا ۋە ۋاقىت",
+       "exif-imagedescription": "سۈرەت ماۋزۇسى",
+       "exif-make": "فوتو ئاپپارات ياسىغان زاۋۇت",
+       "exif-model": "فوتو ئاپپارات تىپى",
+       "exif-software": "ئىشلەتكەن يۇمشاق دېتال",
+       "exif-artist": "ئاپتور",
+       "exif-copyright": "نەشر ھوقۇقىغا ئىگىدارلىق قىلغۇچى",
+       "exif-exifversion": "Exif نەشرى",
+       "exif-flashpixversion": "قوللايدىغان Flashpix نەشرى",
+       "exif-colorspace": "رەڭ بوشلۇقى",
+       "exif-componentsconfiguration": "ھەر بىر تەركىپنىڭ سالمىقى",
+       "exif-compressedbitsperpixel": "سۈرەت پرىسلاش شەكلى",
+       "exif-pixelxdimension": "سۈرەت كەڭلىكى",
+       "exif-pixelydimension": "سۈرەت ئېگىزلىكى",
+       "exif-usercomment": "ئىشلەتكۈچى ئىزاھاتى",
+       "exif-relatedsoundfile": "مۇناسىۋەتلىك ئۈن ھۆججىتى",
+       "exif-datetimeoriginal": "سانلىق مەلۇمات قۇرۇلغان چېسلا ۋە ۋاقىت",
+       "exif-datetimedigitized": "رەقەملەشتۈرۈلگەن چېسلا ۋە ۋاقىت",
+       "exif-subsectime": "چېسلا ۋاقىت سېكۇنت",
+       "exif-subsectimeoriginal": "ئەسلى چېسلا ۋاقىت سېكۇنت",
+       "exif-subsectimedigitized": "رەقەملەشتۈرۈلگەن چېسلا ۋاقىت سېكۇنت",
+       "exif-exposuretime": "ئاشكارىلانغان ۋاقتى",
+       "exif-exposuretime-format": "$1 سېكۇنت ($2)",
+       "exif-fnumber": "F قىممىتى",
+       "exif-exposureprogram": "يورۇتۇش پروگراممىسى",
+       "exif-spectralsensitivity": "سپېكتىر سەزگۈرلۈكى",
+       "exif-isospeedratings": "ISO سۈرئەت نىسبىتى",
+       "exif-shutterspeedvalue": "APEX تېز قاپقاق سۈرئىتى",
+       "exif-aperturevalue": "APEX نۇر گەردىشى",
+       "exif-brightnessvalue": "APEX يورۇقلۇق",
+       "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": "ئاق بالانس",
+       "exif-digitalzoomratio": "رەقەملىك فوكۇس ئۆزگەرتىش نىسبىتى",
+       "exif-focallengthin35mmfilm": "35 مىللىمېتىر فىلىم فوكۇس ئارىلىقى",
+       "exif-scenecapturetype": "مەنزىرە سۈرەت تارتىش تىپى",
+       "exif-gaincontrol": "مەنزىرە كونترول",
+       "exif-contrast": "ئاق-قارىلىقى",
+       "exif-saturation": "تويۇنۇش",
+       "exif-sharpness": "ئۆتكۈرلۈك",
+       "exif-devicesettingdescription": "ئۈسكۈنە تەڭشەك چۈشەندۈرۈشى",
+       "exif-subjectdistancerange": "جىسىم ئارىلىق دائىرىسى",
+       "exif-imageuniqueid": "بىردىنبىر سۈرەت كىملىكى",
+       "exif-gpsversionid": "GPS بەلگە نەشرى",
+       "exif-gpslatituderef": "شىمالىي ياكى جەنۇبىي كەڭلىك",
+       "exif-gpslatitude": "كەڭلىك",
+       "exif-gpslongituderef": "شەرقىي ياكى غەربىي ئۇزۇنلۇق",
+       "exif-gpslongitude": "ئۇزۇنلۇق",
+       "exif-gpsaltituderef": "دېڭىز يۈزىدىن ئېگىزلىك پايدىلىنىش نۇقتىسى",
+       "exif-gpsaltitude": "دېڭىز يۈزىدىن ئېگىزلىك",
+       "exif-gpstimestamp": "GPS ۋاقتى (ئاتوم سائىتى)",
+       "exif-gpssatellites": "ئۆلچەشكە ئىشلەتكەن سۈنئىي ھەمراھ",
+       "exif-gpsstatus": "قوبۇللىغۇچ ھالىتى",
+       "exif-gpsmeasuremode": "ئۆلچەش ھالىتى",
+       "exif-gpsdop": "ئۆلچەش ئېنىقلىقى",
+       "exif-gpsspeedref": "سۈرئەت بىرلىكى",
+       "exif-gpsspeed": "GPS قوبۇللىغۇچ سۈرئىتى",
+       "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": "GPS دائىرە ئاتى",
+       "exif-gpsdatestamp": "GPS چېسلا",
+       "exif-gpsdifferential": "GPS دىففېرېنسىئال تۈزىتىش",
+       "exif-jpegfilecomment": "JPEG ھۆججەت ئىزاھاتى",
+       "exif-keywords": "ھالقىلىق سۆز",
+       "exif-worldregioncreated": "سۈرەت تارتىلغان جاينىڭ دۇنيادىكى ئورنى",
+       "exif-countrycreated": "سۈرەت تارتىلغان دۆلەت",
+       "exif-countrycodecreated": "سۈرەت تارتىلغان دۆلەتنىڭ كودى",
+       "exif-provinceorstatecreated": "سۈرەت تارتىلغان ئۆلكە ياكى ئىشتات",
+       "exif-citycreated": "سۈرەت تارتىلغان شەھەر",
+       "exif-sublocationcreated": "سۈرەت تارتىلغان شەھەردىكى ئورنى",
+       "exif-worldregiondest": "دۇنيا دائىرىسىنى كۆرسەت",
+       "exif-countrydest": "كۆرسەتكەن دۆلەت",
+       "exif-countrycodedest": "كۆرسەتكەن دۆلەتنىڭ كودى",
+       "exif-provinceorstatedest": "كۆرسەتكەن ئۆلكە ياكى ئىشتات",
+       "exif-citydest": "كۆرسەتكەن شەھەر",
+       "exif-sublocationdest": "كۆرسەتكەن شەھەردىكى ئورنى",
+       "exif-objectname": "قىسقا ماۋزۇ",
+       "exif-specialinstructions": "ئالاھىدە چۈشەندۈرۈش",
+       "exif-headline": "ماۋزۇ",
+       "exif-credit": "ئىناۋەت/تەمىنلىگۈچى.",
+       "exif-source": "مەنبە",
+       "exif-editstatus": "تەھرىرلەش ھالىتىدىكى سۈرەت",
+       "exif-urgency": "تەخىرسىزلىكى",
+       "exif-fixtureidentifier": "قىسقۇچ ئاتى",
+       "exif-locationdest": "ئورۇن چۈشەندۈرۈشى",
+       "exif-locationdestcode": "كۆرسەتكەن ئۇچۇرنىڭ كودى",
+       "exif-objectcycle": "ۋاستىنى ئىشلىتىدىغان ۋاقىت بۆلىكى",
+       "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": "ئاخىرقى قېتىم ئۆزگەرتكەن ۋاقىتتىكى مېتا سانلىق مەلۇمات",
+       "exif-nickname": "بىرەسمىي سۈرەت ئاتى",
+       "exif-rating": "باھا (تولۇق نومۇر 5)",
+       "exif-rightscertificate": "ھوقۇق باشقۇرۇش گۇۋاھنامىسى",
+       "exif-copyrighted": "نەشر ھوقۇقى ھالىتى",
+       "exif-copyrightowner": "نەشر ھوقۇقى ئىگىدارى",
+       "exif-usageterms": "ئىشلىتىش ماددىلىرى",
+       "exif-webstatement": "توردىكى نەشر ھوقۇقى چۈشەندۈرۈشى",
+       "exif-originaldocumentid": "ئەسلى پۈتۈكنىڭ بىردىنبىر ID سى",
+       "exif-licenseurl": "نەشر ھوقۇقى ئىجازەتنامىسىنىڭ URL ى",
+       "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-2": "CCITT 3-گۇرۇپپا بىر ئۆلچەملىك ئۆزگەرتىلگەن خۇفمان ئىجرا كودلىنىشى",
+       "exif-compression-3": "CCITT نىڭ 3-گۇرۇپپا فاكس كودلىنىشى",
+       "exif-compression-4": "CCITT نىڭ 4-گۇرۇپپا فاكس كودلىنىشى",
+       "exif-copyrighted-true": "نەشر ھوقۇقى",
+       "exif-copyrighted-false": "نەشىر ھوقۇقى ھالىتى بېكىتىلمىگەن",
+       "exif-unknowndate": "نامەلۇم چېسلا",
+       "exif-orientation-1": "نورمال",
+       "exif-orientation-2": "توغرىسىغا ئايلاندۇر",
+       "exif-orientation-3": "180° ئايلاندۇر",
+       "exif-orientation-4": "بويىغا ئايلاندۇر",
+       "exif-orientation-5": "سولغا 90°  بويىغا ئايلاندۇر",
+       "exif-orientation-6": "سولغا 90° ئايلاندۇر",
+       "exif-orientation-7": "ئوڭغا 90°  بويىغا ئايلاندۇر",
+       "exif-orientation-8": "ئوڭغا 90° ئايلاندۇر",
+       "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-exposureprogram-5": "ئۆزگىچە پروگرامما (مەنزىرە چوڭقۇرلۇقى ئالدىنلىق)",
+       "exif-exposureprogram-6": "ھەرىكەتچان پروگرامما (تېز سۈرئەتلىك تېز قاپقاق سۈرئىتى ئالدىنلىق)",
+       "exif-exposureprogram-7": "تەسۋىر ھالىتى (مەنزىرە فوكۇس ئارىلىقىنىڭ سىرتىدىكى يېقىن ئارىلىقتا سۈرەت تارتىشقا ئىشلىتىشكە ماس كېلىدۇ)",
+       "exif-exposureprogram-8": "مەنزىرە ھالىتى (مەنزىرە فوكۇس ئارىلىقىنىڭ ئۈستىدىكى مەنزىرە سۈرەتكە ماس كېىلىدۇ)",
+       "exif-subjectdistance-value": "$1 مېتىر",
+       "exif-meteringmode-0": "نامەلۇم",
+       "exif-meteringmode-1": "ئوتتۇرىچە",
+       "exif-meteringmode-2": "مەركەزدىن ۋەزىنلىك ئوتتۇرىچە ئۆلچەش قىممىتى",
+       "exif-meteringmode-3": "نۇقتا",
+       "exif-meteringmode-4": "كۆپ نۇقتا",
+       "exif-meteringmode-5": "ئەندىزە",
+       "exif-meteringmode-6": "قىسمەن",
+       "exif-meteringmode-255": "باشقا",
+       "exif-lightsource-0": "نامەلۇم",
+       "exif-lightsource-1": "كۈن نۇرى",
+       "exif-lightsource-2": "يالتىراق لامپا",
+       "exif-lightsource-3": "ۋولفرام لامپا (چوغلانما لامپا)",
+       "exif-lightsource-4": "چاقماق لامپا",
+       "exif-lightsource-9": "ئوچۇق",
+       "exif-lightsource-10": "بۇلۇتلۇق",
+       "exif-lightsource-11": "سايە",
+       "exif-lightsource-12": "كۈن نۇرى نەي لامپا (D 5700-7100K)",
+       "exif-lightsource-13": "كۈن نۇرى ئاق رەڭلىك نەي لامپا (N 4600-5400K)",
+       "exif-lightsource-14": "سوغۇق ئاق رەڭلىك نەي لامپا (W 3900-4500K)",
+       "exif-lightsource-15": "ئاق رەڭلىك نەي لامپا (WW 3200-3700K)",
+       "exif-lightsource-17": "ئۆلچەملىك چىراغ A",
+       "exif-lightsource-18": "ئۆلچەملىك چىراغ B",
+       "exif-lightsource-19": "ئۆلچەملىك چىراغ C",
+       "exif-lightsource-24": "ISO سۈرەتكە ئېلىش چىرىغى",
+       "exif-lightsource-255": "باشقا نۇر مەنبەسى",
+       "exif-flash-fired-0": "چاقماق لامپا يانمىدى",
+       "exif-flash-fired-1": "چاقماق لامپا يېقىلدى",
+       "exif-flash-return-0": "زەرەتسىزلەش تەكشۈرۈش ئىقتىدارى يوق",
+       "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-sensingmethod-7": "ئۈچ سىزىقلىق سەزگۈچ",
+       "exif-sensingmethod-8": "تۇتاش سىزىقلىق رەڭ سەزگۈچ",
+       "exif-filesource-3": "رەقەملىك فوتو ئاپپارات",
+       "exif-scenetype-1": "بىۋاسىتە تارتىلغان سۈرەت",
+       "exif-customrendered-0": "نورمال بىر تەرەپ قىلىش",
+       "exif-customrendered-1": "ئىختىيارىچە بىر تەرەپ قىلىش",
+       "exif-exposuremode-0": "ئۆزلۈكىدىن نۇرلاندۇرۇش",
+       "exif-exposuremode-1": "قولدا نۇرلاندۇرۇش",
+       "exif-exposuremode-2": "ئۆزلۈكىدىن نۇرلاندۇرۇش تەڭشەش",
+       "exif-whitebalance-0": "ئاپتوماتىك ئاق بالانس",
+       "exif-whitebalance-1": "قولدا ئاق بالانس",
+       "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-saturation-0": "نورمال",
+       "exif-saturation-1": "تۆۋەن تويۇنۇش",
+       "exif-saturation-2": "يۇقىرى تويۇنۇش",
+       "exif-sharpness-0": "نورمال",
+       "exif-sharpness-1": "تۆۋەن",
+       "exif-sharpness-2": "يۇقىرى",
+       "exif-subjectdistancerange-0": "نامەلۇم",
+       "exif-subjectdistancerange-1": "ماكرو",
+       "exif-subjectdistancerange-2": "يېقىن مەنزىرە",
+       "exif-subjectdistancerange-3": "يىراق مەنزىرە",
+       "exif-gpslatitude-n": "شىمالىي كەڭلىك",
+       "exif-gpslatitude-s": "جەنۇبىي كەڭلىك",
+       "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-gpsdestdistance-m": "ئىنگلىز مىلى",
+       "exif-gpsdestdistance-n": "دېڭىز مىلى",
+       "exif-gpsdop-excellent": "ئەلا ($1)",
+       "exif-gpsdop-good": "ياخشى ($1)",
+       "exif-gpsdop-moderate": "ئوتتۇرا ($1)",
+       "exif-gpsdop-fair": "ئادەتتىكى ($1)",
+       "exif-gpsdop-poor": "ناچار ($1)",
+       "exif-objectcycle-a": "ئەتىگەندىلا",
+       "exif-objectcycle-p": "كەچتىلا",
+       "exif-objectcycle-b": "ئەتىگەن ۋە كەچتە",
+       "exif-gpsdirection-t": "ھەقىقىي يۆنىلىش",
+       "exif-gpsdirection-m": "يەر ماگنىتى يۆنىلىش",
+       "exif-ycbcrpositioning-1": "ئوتتۇرىغا توغرىلانغان",
+       "exif-ycbcrpositioning-2": "رەڭ تۈسى ئورنى",
+       "exif-dc-contributor": "تۆھپىكارلار",
+       "exif-dc-coverage": "ۋاستىنىڭ بوشلۇقى ياكى ۋاقىت دائىرىسى",
+       "exif-dc-date": "چېسلا",
+       "exif-dc-publisher": "تارقاتقۇچى",
+       "exif-dc-relation": "مۇناسىۋەتلىك ۋاستە",
+       "exif-dc-rights": "ھوقۇق",
+       "exif-dc-source": "ئەسلى ۋاستە",
+       "exif-dc-type": "ۋاستە تىپى",
+       "exif-rating-rejected": "رەت قىلىندى",
+       "exif-isospeedratings-overflow": "65535 دىن چوڭ",
+       "exif-iimcategory-ace": "سەنئەت، مەدەنىيەت ۋە كۆڭۈل ئېچىش",
+       "exif-iimcategory-clj": "جىنايەت ۋە قانۇن",
+       "exif-iimcategory-dis": "ئاپەتلەر ۋە ھادىسىلەر",
+       "exif-iimcategory-fin": "ئىقتىساد ۋە سودا",
+       "exif-iimcategory-edu": "مائارىپ",
+       "exif-iimcategory-evn": "مۇھىت",
+       "exif-iimcategory-hth": "ساغلاملىق",
+       "exif-iimcategory-hum": "ئىنسانلار مەنپەئەتى",
+       "exif-iimcategory-lab": "ئەمگەك",
+       "exif-iimcategory-lif": "تۇرمۇش ئۇسۇلى ۋە كۆڭۈل ئېچىش",
+       "exif-iimcategory-pol": "سىياسىي",
+       "exif-iimcategory-rel": "دىن ۋە ئىتىقات",
+       "exif-iimcategory-sci": "پەن ۋە تېخنىكا",
+       "exif-iimcategory-soi": "ئىجتىمائىي مەسىلىلەر",
+       "exif-iimcategory-spo": "تەنتەربىيە",
+       "exif-iimcategory-war": "ئۇرۇش، توقۇنۇش ۋە قالايمىغانچىلىق",
+       "exif-iimcategory-wea": "ھاۋارايى",
+       "exif-urgency-normal": "ئادەتتىكى ($1)",
+       "exif-urgency-low": "تۆۋەن ($1)",
+       "exif-urgency-high": "يۇقىرى ($1)",
+       "exif-urgency-other": "ئىشلەتكۈچى بەلگىلىگەن ئالدىنلىق ($1)"
+}
diff --git a/languages/i18n/exif/uk.json b/languages/i18n/exif/uk.json
new file mode 100644 (file)
index 0000000..73eb361
--- /dev/null
@@ -0,0 +1,390 @@
+{
+       "@metadata": {
+               "authors": [
+                       "AS",
+                       "Ahonc",
+                       "Dim Grits",
+                       "Innv",
+                       "Microcell",
+                       "Ua2004",
+                       "Ата",
+                       "Максим Підліснюк",
+                       "Тест",
+                       "Piramidion"
+               ]
+       },
+       "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": "Кількість рядків в 1 блоці",
+       "exif-stripbytecounts": "Розмір стиснутого блоку",
+       "exif-jpeginterchangeformat": "Положення початку блоку preview",
+       "exif-jpeginterchangeformatlength": "Розмір даних блоку preview",
+       "exif-whitepoint": "Колірність білої точки",
+       "exif-primarychromaticities": "Колірність основних кольорів",
+       "exif-ycbcrcoefficients": "Коефіцієнти перетворення колірної моделі",
+       "exif-referenceblackwhite": "Положенння білої й чорної точок",
+       "exif-datetime": "Дата й час редагування файлу",
+       "exif-imagedescription": "Назва зображення",
+       "exif-make": "Виробник камери",
+       "exif-model": "Модель камери",
+       "exif-software": "Програмне забезпечення",
+       "exif-artist": "Автор",
+       "exif-copyright": "Власник авторського права",
+       "exif-exifversion": "Версія Exif",
+       "exif-flashpixversion": "Версія FlashPix, що підтримується",
+       "exif-colorspace": "Колірний простір",
+       "exif-componentsconfiguration": "Конфігурація кольорових компонентів",
+       "exif-compressedbitsperpixel": "Глибина кольору після стиснення",
+       "exif-pixelxdimension": "Ширина зображення",
+       "exif-pixelydimension": "Висота зображення",
+       "exif-usercomment": "Додатковий коментар",
+       "exif-relatedsoundfile": "Файл звукового коментаря",
+       "exif-datetimeoriginal": "Оригінальні дата й час",
+       "exif-datetimedigitized": "Дата й час оцифровки",
+       "exif-subsectime": "Долі секунд часу редагування файлу",
+       "exif-subsectimeoriginal": "Долі секунд оригінального часу",
+       "exif-subsectimedigitized": "Долі секунд часу оцифровки",
+       "exif-exposuretime": "Час експозиції",
+       "exif-exposuretime-format": "$1 с ($2)",
+       "exif-fnumber": "Число діафрагми",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Програма експозиції",
+       "exif-spectralsensitivity": "Спектральна чутливість",
+       "exif-isospeedratings": "Світлочутливість ISO",
+       "exif-shutterspeedvalue": "Витримка в APEX",
+       "exif-aperturevalue": "Діафрагма в APEX",
+       "exif-brightnessvalue": "Яскравість в APEX",
+       "exif-exposurebiasvalue": "Компенсація експозиції",
+       "exif-maxaperturevalue": "Мінімальне число діафрагми",
+       "exif-subjectdistance": "Відстань до об'єкту",
+       "exif-meteringmode": "Режим вимірювання експозиції",
+       "exif-lightsource": "Джерело світла",
+       "exif-flash": "Статус спалаху",
+       "exif-focallength": "Фокусна відстань",
+       "exif-focallength-format": "$1 мм",
+       "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": "Баланс білого",
+       "exif-digitalzoomratio": "Коефіцієнт цифрового збільшення (цифровий зум)",
+       "exif-focallengthin35mmfilm": "Еквівалентна фокусна відстань (для 35 мм плівки)",
+       "exif-scenecapturetype": "Тип сцени при зйомці",
+       "exif-gaincontrol": "Підвищення яскравості",
+       "exif-contrast": "Контрастність",
+       "exif-saturation": "Насиченість",
+       "exif-sharpness": "Різкість",
+       "exif-devicesettingdescription": "Опис налаштування камери",
+       "exif-subjectdistancerange": "Відстань до об'єкта зйомки",
+       "exif-imageuniqueid": "Номер зображення (ID)",
+       "exif-gpsversionid": "Версія блоку GPS-інформації",
+       "exif-gpslatituderef": "Індекс широти",
+       "exif-gpslatitude": "Широта",
+       "exif-gpslongituderef": "Індекс довготи",
+       "exif-gpslongitude": "Довгота",
+       "exif-gpsaltituderef": "Індекс висоти",
+       "exif-gpsaltitude": "Висота",
+       "exif-gpstimestamp": "Час за GPS (атомним годинником)",
+       "exif-gpssatellites": "Опис використаних супутників",
+       "exif-gpsstatus": "Статус приймача в момент зйомки",
+       "exif-gpsmeasuremode": "Метод вимірювання положення",
+       "exif-gpsdop": "Точність вимірювання",
+       "exif-gpsspeedref": "Одиниці вимірювання швидкості",
+       "exif-gpsspeed": "Швидкість руху",
+       "exif-gpstrackref": "Тип азимута приймача GPS (справжній, магнітний)",
+       "exif-gpstrack": "Азимут приймача GPS",
+       "exif-gpsimgdirectionref": "Тип азимута зображення (справжній, магнітний)",
+       "exif-gpsimgdirection": "Азимут зображення",
+       "exif-gpsmapdatum": "Використана геодезична система координат",
+       "exif-gpsdestlatituderef": "Індекс довготи об'єкта",
+       "exif-gpsdestlatitude": "Довгота об'єкта",
+       "exif-gpsdestlongituderef": "Індекс широти об'єкта",
+       "exif-gpsdestlongitude": "Широта об'єкта",
+       "exif-gpsdestbearingref": "Тип пеленга об'єкта (справжній, магнітний)",
+       "exif-gpsdestbearing": "Пеленг об'єкта",
+       "exif-gpsdestdistanceref": "Одиниці вимірювання відстані",
+       "exif-gpsdestdistance": "Відстань",
+       "exif-gpsprocessingmethod": "Метод обчислення положення",
+       "exif-gpsareainformation": "Назва області GPS",
+       "exif-gpsdatestamp": "Дата",
+       "exif-gpsdifferential": "Диференціальна поправка",
+       "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-jpegfilecomment": "Коментар JPEG-файла",
+       "exif-keywords": "Ключові слова",
+       "exif-worldregioncreated": "Регіон, де була зроблена світлина",
+       "exif-countrycreated": "Країна, де була зроблена світлина",
+       "exif-countrycodecreated": "Код країни, де була зроблена світлина",
+       "exif-provinceorstatecreated": "Адміністративна одиниця країни, де була зроблена світлина",
+       "exif-citycreated": "Місто, де була зроблена світлина",
+       "exif-sublocationcreated": "Район міста, де була зроблена світлина",
+       "exif-worldregiondest": "Регіон світу, який зображено на світлині",
+       "exif-countrydest": "Країна на знімку",
+       "exif-countrycodedest": "Код країни на знімку",
+       "exif-provinceorstatedest": "Адміністративна одиниця країни, зображена на знімку",
+       "exif-citydest": "Місто на знімку",
+       "exif-sublocationdest": "Район міста на знімку",
+       "exif-objectname": "Коротка назва",
+       "exif-specialinstructions": "Спеціальні вказівки",
+       "exif-headline": "Заголовок",
+       "exif-credit": "Хто виклав зображення",
+       "exif-source": "Джерело",
+       "exif-editstatus": "Редакційний статус зображення",
+       "exif-urgency": "Актуальність",
+       "exif-fixtureidentifier": "Назва колонки",
+       "exif-locationdest": "Зображене місце",
+       "exif-locationdestcode": "Код зображеного місця",
+       "exif-objectcycle": "Час доби",
+       "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": "Остання дата зміни метаданих",
+       "exif-nickname": "Неофіційна назва зображення",
+       "exif-rating": "Рейтинг (від 0 до 5)",
+       "exif-rightscertificate": "Сертифікат керування правами",
+       "exif-copyrighted": "Статус авторських прав",
+       "exif-copyrightowner": "Власник авторських прав",
+       "exif-usageterms": "Умови користування",
+       "exif-webstatement": "Положення про авторське право в Інтернеті",
+       "exif-originaldocumentid": "Унікальний Ідентифікатор вихідного документа",
+       "exif-licenseurl": "URL-адреса авторської ліцензії",
+       "exif-morepermissionsurl": "Альтернативна інформації з ліцензування",
+       "exif-attributionurl": "При використанні цієї роботи, будь ласка, посилайтесь на",
+       "exif-preferredattributionname": "При використанні цієї роботи, будь ласка, вказуйте",
+       "exif-pngfilecomment": "Коментар PNG-файла",
+       "exif-disclaimer": "Відмова від відповідальності",
+       "exif-contentwarning": "Попередження про вміст",
+       "exif-giffilecomment": "Коментар GIF-файла",
+       "exif-intellectualgenre": "Тип елемента",
+       "exif-subjectnewscode": "Тематичний код",
+       "exif-scenecode": "Код сцени IPTC",
+       "exif-event": "Подія, що зображена",
+       "exif-organisationinimage": "Організація, що зображена",
+       "exif-personinimage": "Особа, що зображена",
+       "exif-originalimageheight": "Висота зображення, до того як воно було обітнуто",
+       "exif-originalimagewidth": "Ширина зображення, до того як воно було обітнуто",
+       "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "Нестиснутий",
+       "exif-compression-2": "CCITT Group 3, 1-мірна модифікація кодування довжин серій Хаффмана",
+       "exif-compression-3": "CCITT Group 3, факсове кодування",
+       "exif-compression-4": "CCITT Group 4, факсове кодування",
+       "exif-compression-5": "LZW",
+       "exif-compression-6": "JPEG (старий)",
+       "exif-compression-7": "JPEG",
+       "exif-compression-8": "Deflate (Adobe)",
+       "exif-compression-32773": "PackBits (Macintosh RLE)",
+       "exif-compression-32946": "Deflate (PKZIP)",
+       "exif-compression-34712": "JPEG2000",
+       "exif-copyrighted-true": "Охороняється законом про авторське право",
+       "exif-copyrighted-false": "Авторські права не встановлено",
+       "exif-photometricinterpretation-0": "Чорний і білий (Білий — це 0)",
+       "exif-photometricinterpretation-1": "Чорний і білий (білий — 0)",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-3": "Палітра",
+       "exif-photometricinterpretation-4": "Маска прозорості",
+       "exif-photometricinterpretation-5": "Відокремлено (ймовірно CMYK)",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (ICC-кодування)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (ITU-кодування)",
+       "exif-unknowndate": "Невідома дата",
+       "exif-orientation-1": "Нормальна",
+       "exif-orientation-2": "Відображено по горизонталі",
+       "exif-orientation-3": "Повернуто на 180°",
+       "exif-orientation-4": "Відображено по вертикалі",
+       "exif-orientation-5": "Повернуто на 90° проти годинникової стрілки й відображено по вертикалі",
+       "exif-orientation-6": "Повернуто на 90° проти годинникової стрілки",
+       "exif-orientation-7": "Повернуто на 90° за годинниковою стрілкою й відображено по вертикалі",
+       "exif-orientation-8": "Повернуто на 90° за годинниковою стрілкою",
+       "exif-planarconfiguration-1": "формат «chunky»",
+       "exif-planarconfiguration-2": "формат «planar»",
+       "exif-xyresolution-i": "$1 точок на дюйм",
+       "exif-xyresolution-c": "$1 точок на сантиметр",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "Некаліброване",
+       "exif-componentsconfiguration-0": "не існує",
+       "exif-componentsconfiguration-1": "Y",
+       "exif-componentsconfiguration-2": "Cb",
+       "exif-componentsconfiguration-3": "Cr",
+       "exif-componentsconfiguration-4": "R",
+       "exif-componentsconfiguration-5": "G",
+       "exif-componentsconfiguration-6": "B",
+       "exif-exposureprogram-0": "Невідомо",
+       "exif-exposureprogram-1": "Ручний режим",
+       "exif-exposureprogram-2": "Програмний режим (нормальний)",
+       "exif-exposureprogram-3": "Пріоритет діафрагми",
+       "exif-exposureprogram-4": "Пріоритет витримки",
+       "exif-exposureprogram-5": "Художня програма (на основі необхідної глибини різкості)",
+       "exif-exposureprogram-6": "Спортивний режим (з мінімальною витримкою)",
+       "exif-exposureprogram-7": "Портретний режим (для знімків на близькій відстані, з фоном не в фокусі)",
+       "exif-exposureprogram-8": "Пейзажний режим (для пейзажних знімків, з фоном в фокусі)",
+       "exif-subjectdistance-value": "$1 метрів",
+       "exif-meteringmode-0": "Невідомо",
+       "exif-meteringmode-1": "Середній",
+       "exif-meteringmode-2": "Центрозважений",
+       "exif-meteringmode-3": "Точковий",
+       "exif-meteringmode-4": "Багатоточковий",
+       "exif-meteringmode-5": "Матричний",
+       "exif-meteringmode-6": "Частковий",
+       "exif-meteringmode-255": "Інший",
+       "exif-lightsource-0": "Невідомо",
+       "exif-lightsource-1": "Денне світло",
+       "exif-lightsource-2": "Лампа денного світла",
+       "exif-lightsource-3": "Лампа розжарювання",
+       "exif-lightsource-4": "Спалах",
+       "exif-lightsource-9": "Хороша погода",
+       "exif-lightsource-10": "Хмарно",
+       "exif-lightsource-11": "Тінь",
+       "exif-lightsource-12": "Лампа денного світла тип D (5700 − 7100K)",
+       "exif-lightsource-13": "Лампа денного світла тип N (4600 − 5400K)",
+       "exif-lightsource-14": "Лампа денного світла тип W (3900 − 4500K)",
+       "exif-lightsource-15": "Лампа денного світла тип WW (3200 − 3700K)",
+       "exif-lightsource-17": "Стандартне джерело світла типу A",
+       "exif-lightsource-18": "Стандартне джерело світла типу B",
+       "exif-lightsource-19": "Стандартне джерело світла типу C",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-22": "D75",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "Студійна лампа стандарту ISO",
+       "exif-lightsource-255": "Інше джерело світла",
+       "exif-flash-fired-0": "Спалах не спрацював",
+       "exif-flash-fired-1": "Спрацював спалах",
+       "exif-flash-return-0": "нема режиму попереднього спалаху",
+       "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-sensingmethod-7": "Трьохколірний лінійний сенсор",
+       "exif-sensingmethod-8": "Лінійний сенсор з послідовною зміною кольору",
+       "exif-filesource-3": "Цифровий фотоапарат",
+       "exif-scenetype-1": "Зображення сфотографовано напряму",
+       "exif-customrendered-0": "Не виконувалась",
+       "exif-customrendered-1": "Нестандартна обробка",
+       "exif-exposuremode-0": "Автоматична експозиція",
+       "exif-exposuremode-1": "Ручне налаштування експозиції",
+       "exif-exposuremode-2": "Брекетинг",
+       "exif-whitebalance-0": "Автоматичний баланс білого",
+       "exif-whitebalance-1": "Ручне налаштування балансу білого",
+       "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-saturation-0": "Нормальна",
+       "exif-saturation-1": "Невелика насиченість",
+       "exif-saturation-2": "Велика насиченість",
+       "exif-sharpness-0": "Нормальна",
+       "exif-sharpness-1": "М'яке підвищення",
+       "exif-sharpness-2": "Сильне підвищення",
+       "exif-subjectdistancerange-0": "Невідомо",
+       "exif-subjectdistancerange-1": "Макрозйомка",
+       "exif-subjectdistancerange-2": "Зйомка з близької відстані",
+       "exif-subjectdistancerange-3": "Зйомка здалеку",
+       "exif-gpslatitude-n": "північної широти",
+       "exif-gpslatitude-s": "південної широти",
+       "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": "Вимірювання 2-х координат",
+       "exif-gpsmeasuremode-3": "Вимірювання 3-х координат",
+       "exif-gpsspeed-k": "км/год",
+       "exif-gpsspeed-m": "миль/год",
+       "exif-gpsspeed-n": "вузлів",
+       "exif-gpsdestdistance-k": "Кілометри",
+       "exif-gpsdestdistance-m": "Милі",
+       "exif-gpsdestdistance-n": "Морські милі",
+       "exif-gpsdop-excellent": "Відмінна ($1)",
+       "exif-gpsdop-good": "Добра ($1)",
+       "exif-gpsdop-moderate": "Середня ($1)",
+       "exif-gpsdop-fair": "Задовільна ($1)",
+       "exif-gpsdop-poor": "Низька ($1)",
+       "exif-objectcycle-a": "Тільки вранці",
+       "exif-objectcycle-p": "Тільки ввечері",
+       "exif-objectcycle-b": "Вранці та ввечері",
+       "exif-gpsdirection-t": "справжній",
+       "exif-gpsdirection-m": "магнітний",
+       "exif-ycbcrpositioning-1": "Центрований",
+       "exif-ycbcrpositioning-2": "Суміщений",
+       "exif-dc-contributor": "Співавтори",
+       "exif-dc-coverage": "Просторові або тимчасові рамки медіа",
+       "exif-dc-date": "Дата(и)",
+       "exif-dc-publisher": "Видавець",
+       "exif-dc-relation": "Пов'язані медіа",
+       "exif-dc-rights": "Права",
+       "exif-dc-source": "Оригінальне медіа",
+       "exif-dc-type": "Тип медіа",
+       "exif-rating-rejected": "Відхилено",
+       "exif-isospeedratings-overflow": "Понад 65535",
+       "exif-maxaperturevalue-value": "$1 APEX (f/$2)",
+       "exif-iimcategory-ace": "Мистецтво, культура та розваги",
+       "exif-iimcategory-clj": "Злочинність і право",
+       "exif-iimcategory-dis": "Стихійні лиха та катастрофи",
+       "exif-iimcategory-fin": "Економіка і бізнес",
+       "exif-iimcategory-edu": "Освіта",
+       "exif-iimcategory-evn": "Навколишнє середовище",
+       "exif-iimcategory-hth": "Здоров'я",
+       "exif-iimcategory-hum": "Людські зацікавлення",
+       "exif-iimcategory-lab": "Праця",
+       "exif-iimcategory-lif": "Спосіб життя та дозвілля",
+       "exif-iimcategory-pol": "Політика",
+       "exif-iimcategory-rel": "Релігія та віра",
+       "exif-iimcategory-sci": "Наука і технології",
+       "exif-iimcategory-soi": "Соціальні питання",
+       "exif-iimcategory-spo": "Спорт",
+       "exif-iimcategory-war": "Війни, конфлікти та заворушення",
+       "exif-iimcategory-wea": "Погода",
+       "exif-urgency-normal": "Звичайна ($1)",
+       "exif-urgency-low": "Низька ($1)",
+       "exif-urgency-high": "Висока ($1)",
+       "exif-urgency-other": "Визначений користувачем пріоритет ($1)"
+}
diff --git a/languages/i18n/exif/ur.json b/languages/i18n/exif/ur.json
new file mode 100644 (file)
index 0000000..eef3f67
--- /dev/null
@@ -0,0 +1,349 @@
+{
+       "@metadata": {
+               "authors": [
+                       "BukhariSaeed",
+                       "Muhammad Shuaib",
+                       "Obaid Raza",
+                       "عثمان خان شاہ"
+               ]
+       },
+       "exif-imagewidth": "چوڑائی",
+       "exif-imagelength": "لمبائی",
+       "exif-bitspersample": "بٹ فی جزو",
+       "exif-compression": "نظام کمپریشن",
+       "exif-photometricinterpretation": "پکسل کی ترکیب",
+       "exif-orientation": "جہت",
+       "exif-samplesperpixel": "اجزا کی تعداد",
+       "exif-planarconfiguration": "ڈیٹا کی ترتیب",
+       "exif-ycbcrsubsampling": "Y کا C سے ذیلی نمونہ ساز تناسب",
+       "exif-ycbcrpositioning": "Y اور C کی جگہ",
+       "exif-xresolution": "افقی ریزولوشن",
+       "exif-yresolution": "عمودی ریزولیشن",
+       "exif-stripoffsets": "تصویر کے دیٹا کا محل وقوع",
+       "exif-rowsperstrip": "فی پٹی تعداد قطار",
+       "exif-stripbytecounts": "بائٹ فی کمپریس شدہ پٹی",
+       "exif-jpeginterchangeformat": "JPEG SOI کا آفسیٹ",
+       "exif-jpeginterchangeformatlength": "JPEG ڈیٹا کے بائٹ",
+       "exif-whitepoint": "سفید نقطہ کے رنگ",
+       "exif-primarychromaticities": "اساسیات کے رنگ",
+       "exif-ycbcrcoefficients": "فضائے رنگ کی میٹرکس تبدیلی کی مقداریں",
+       "exif-referenceblackwhite": "سیاہ و سفید جوالے کی قدروں کی جوڑی",
+       "exif-datetime": "فائل کی تبدیلی کی تاریخ اور وقت",
+       "exif-imagedescription": "تصویر کا عنوان",
+       "exif-make": "کیمرا ساز کمپنی",
+       "exif-model": "کیمرے کا ماڈل",
+       "exif-software": "مستعمل سافٹ ویئر",
+       "exif-artist": "مصنف",
+       "exif-copyright": "کاپی رائٹ کا حامل",
+       "exif-exifversion": "اکزیف ورژن",
+       "exif-flashpixversion": "Flashpix کا معاونت یافتہ نسخہ",
+       "exif-colorspace": "رنگ فضا",
+       "exif-componentsconfiguration": "ہر عنصر کا مفہوم",
+       "exif-compressedbitsperpixel": "تصویر کے کمپریشن کی حالت",
+       "exif-pixelxdimension": "تصویر کی چوڑائی",
+       "exif-pixelydimension": "تصویر کی لمبائی",
+       "exif-usercomment": "صارف کے تبصرے",
+       "exif-relatedsoundfile": "متعلقہ آڈیو فائل",
+       "exif-datetimeoriginal": "ڈیٹا تیار کرنے کی تاریخ اور وقت",
+       "exif-datetimedigitized": "عددی نگارش کی تاریخ اور وقت",
+       "exif-subsectime": "تاریخ و وقت کے ذیلی سیکنڈ",
+       "exif-subsectimeoriginal": "اصل تاریخ و وقت کے ذیلی سیکنڈ",
+       "exif-subsectimedigitized": "ڈیجیٹل وقت و تاریخ کے ذیلی سیکنڈ",
+       "exif-exposuretime": "نمائش کا وقت",
+       "exif-exposuretime-format": "$1 سیکنڈ ($2)",
+       "exif-fnumber": "ایف نمبر",
+       "exif-exposureprogram": "نمائش کا پروگرام",
+       "exif-spectralsensitivity": "طیفی حساسیت",
+       "exif-isospeedratings": "آئیسو کی رفتار کی درجہ بندی",
+       "exif-shutterspeedvalue": "APEX شٹر کی رفتار",
+       "exif-aperturevalue": "APEX اپرچر",
+       "exif-brightnessvalue": "APEX کی چمک",
+       "exif-exposurebiasvalue": "APEX نمائش کا نقص",
+       "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": "وائٹ بیلنس",
+       "exif-digitalzoomratio": "ڈیجیٹل زوم کا تناسب",
+       "exif-focallengthin35mmfilm": "35 ایم ایم کی فلم میں ماسکی لمبائی",
+       "exif-scenecapturetype": "منظر کے گرفت کی نوعیت",
+       "exif-gaincontrol": "منظر کنٹرول",
+       "exif-contrast": "امتیاز",
+       "exif-saturation": "پُری",
+       "exif-sharpness": "تیزی",
+       "exif-devicesettingdescription": "آلے کی ترتیبات کی وضاحت",
+       "exif-subjectdistancerange": "شئی کے فاصلے کی حد",
+       "exif-imageuniqueid": "تصویر کا منفرد شناختی نمبر",
+       "exif-gpsversionid": "جی پی ایس ٹیگ کا نسخہ",
+       "exif-gpslatituderef": "شمالی یا جنوبی عرض البلد",
+       "exif-gpslatitude": "عرض البلد",
+       "exif-gpslongituderef": "مشرقی یا مغربی طول البلد",
+       "exif-gpslongitude": "طول البلد",
+       "exif-gpsaltituderef": "ارتفاع کا حوالہ",
+       "exif-gpsaltitude": "ارتفاع",
+       "exif-gpstimestamp": "جی پی ایس وقت (جوہری گھڑی)",
+       "exif-gpssatellites": "پیمائش کے لیے مستعمل مصنوعی سیارے",
+       "exif-gpsstatus": "ریسیور کی صورت حال",
+       "exif-gpsmeasuremode": "حالت پیمائش",
+       "exif-gpsdop": "پیمائش کی درستی",
+       "exif-gpsspeedref": "رفتار کی اکائی",
+       "exif-gpsspeed": "جی پی ایس ریسیور کی رفتار",
+       "exif-gpstrackref": "حرکت کی سمت کا حوالہ",
+       "exif-gpstrack": "حرکت کی سمت",
+       "exif-gpsimgdirectionref": "تصویر کی سمت کا حوالہ",
+       "exif-gpsimgdirection": "تصویر کی سمت",
+       "exif-gpsmapdatum": "زیر استعمال جیو ڈیٹک سروے",
+       "exif-gpsdestlatituderef": "منزل کے عرض البلد کا حوالہ",
+       "exif-gpsdestlatitude": "منزل کا عرض البلد",
+       "exif-gpsdestlongituderef": "منزل کے طول البلد کا حوالہ",
+       "exif-gpsdestlongitude": "منزل کا طول البلد",
+       "exif-gpsdestbearingref": "منزل کی سمت کا حوالہ",
+       "exif-gpsdestbearing": "منزل کی سمت",
+       "exif-gpsdestdistanceref": "منزل کی مسافت کا حوالہ",
+       "exif-gpsdestdistance": "منزل کی مسافت",
+       "exif-gpsprocessingmethod": "جی پی ایس پراسیسنگ کے طریقہ کا نام",
+       "exif-gpsareainformation": "جی پی ایس کے علاقے کا نام",
+       "exif-gpsdatestamp": "جی پی ایس کی تاریخ",
+       "exif-gpsdifferential": "جی پی ایس کی تفریقی درستی",
+       "exif-jpegfilecomment": "JPEG فائل کا تبصرہ",
+       "exif-keywords": "کلیدی الفاظ",
+       "exif-worldregioncreated": "دنیا کا وہ خطہ جہاں یہ تصویر کھینچی گئی",
+       "exif-countrycreated": "وہ ملک جہاں یہ تصویر کھینچی گئی",
+       "exif-countrycodecreated": "اس ملک کا کوڈ جہاں یہ تصویر کھینچی گئی",
+       "exif-provinceorstatecreated": "وہ ریاست یا صوبہ جہاں یہ تصویر کھینچی گئی",
+       "exif-citycreated": "وہ شہر جہاں یہ تصویر کھینچی گئی",
+       "exif-sublocationcreated": "شہر کا وہ مقام جہاں یہ تصویر کھینچی گئی",
+       "exif-worldregiondest": "دنیا کا دکھایا گیا خطہ",
+       "exif-countrydest": "دکھایا گیا ملک",
+       "exif-countrycodedest": "دکھائے گئے ملک کا کوڈ",
+       "exif-provinceorstatedest": "دکھایا گیا صوبہ یا ریاست",
+       "exif-citydest": "دکھایا گیا شہر",
+       "exif-sublocationdest": "شہر کا دکھایا گیا مقام",
+       "exif-objectname": "مختصر عنوان",
+       "exif-specialinstructions": "خصوصی ہدایات",
+       "exif-headline": "سرخی",
+       "exif-credit": "کریڈٹ/مہیا کار",
+       "exif-source": "ماخذ",
+       "exif-editstatus": "تصویر کی ادارتی کیفیت",
+       "exif-urgency": "فوری طور پر",
+       "exif-fixtureidentifier": "مستقل شئی کا نام",
+       "exif-locationdest": "دکھایا گیا مقام",
+       "exif-locationdestcode": "دکھائے گئے مقام کا کوڈ",
+       "exif-objectcycle": "اس میڈیا کا مقصود دن کا وقت",
+       "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": "میٹاڈیٹا میں تبدیلی کی آخری تاریخ",
+       "exif-nickname": "تصویر کا غیر رسمی نام",
+       "exif-rating": "درجہ بندی (5 میں سے)",
+       "exif-rightscertificate": "حقوق کے انتظام کا تصدیق نامہ",
+       "exif-copyrighted": "کاپی رائٹ کی صورت حال",
+       "exif-copyrightowner": "کاپی رائٹ کا حامل",
+       "exif-usageterms": "استعمال کے شرائط",
+       "exif-webstatement": "آن لائن موجود کاپی رائٹ کا اعلامیہ",
+       "exif-originaldocumentid": "اصل دستاویز کی منفرد شناخت",
+       "exif-licenseurl": "کاپی رائٹ کے اجازت نامے کا یوآرایل",
+       "exif-morepermissionsurl": "متبادل اجازت ناموں کی معلومات",
+       "exif-attributionurl": "اس کام کو دوربارہ استعمال کرنے کے وقت اس کا ربط دیں",
+       "exif-preferredattributionname": "اس کام کو دوربارہ استعمال کرنے کے وقت اس سے منسوب کریں",
+       "exif-pngfilecomment": "پی این جی فائل کا تبصرہ",
+       "exif-disclaimer": "اظہار لا تعلقی",
+       "exif-contentwarning": "مواد سے متعلق انتباہ",
+       "exif-giffilecomment": "جی آئی ایف فائل کا تبصرہ",
+       "exif-intellectualgenre": "شئی کی قسم",
+       "exif-subjectnewscode": "موضوع کا کوڈ",
+       "exif-scenecode": "منظر کا IPTC کوڈ",
+       "exif-event": "دکھایا گیا واقعہ",
+       "exif-organisationinimage": "دکھائی گئی تنظیم",
+       "exif-personinimage": "دکھایا گیا شخص",
+       "exif-originalimageheight": "تراشنے سے قبل تصویر کی لمبائی",
+       "exif-originalimagewidth": "تراشنے سے قبل تصویر کی چوڑائی",
+       "exif-compression-1": "غیر کمپریس شدہ",
+       "exif-compression-2": "CCITT گروپ 3 1 - ہف مین رن کی تبدیل شدہ لمبائی کی ابعادی اینکوڈنگ",
+       "exif-compression-3": "CCITT گروپ 3 کے فیکس کی اینکوڈنگ",
+       "exif-compression-4": "CCITT گروپ 4 کے فیکس کی اینکوڈنگ",
+       "exif-copyrighted-true": "کاپی رائٹ شدہ",
+       "exif-copyrighted-false": "کاپی رائٹ کی صورت حال متعین نہیں کی گئی",
+       "exif-photometricinterpretation-1": "سیاہ اور سفید (سیاہ 0 ہے)",
+       "exif-unknowndate": "نامعلوم تاریخ",
+       "exif-orientation-1": "عام",
+       "exif-orientation-2": "افقی طور پر جھکایا ہوا",
+       "exif-orientation-3": "180° درجہ پر گھمایا ہوا",
+       "exif-orientation-4": "عمودی طور پر جھکایا ہوا",
+       "exif-orientation-5": "90° CCW گھمایا ہوا اور عمودی جھکایا ہوا",
+       "exif-orientation-6": "90° CCW گھمایا ہوا",
+       "exif-orientation-7": "90° CW گھمایا ہوا اور عمودی جھکایا ہوا",
+       "exif-orientation-8": "90° CW گھمایا ہوا",
+       "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-exposureprogram-5": "تخلیقی پروگرام (میدان کی گہرائی کی جانب جھکا ہوا)",
+       "exif-exposureprogram-6": "اقدامی پروگرام (شٹر کی تیز رفتار کی جانب جھکا ہوا)",
+       "exif-exposureprogram-7": "شبیہ کی حالت (نقطہ ارتکاز سے باہر کا پس منظر رکھنے والی قریبی تصویروں کے لیے)",
+       "exif-exposureprogram-8": "قدرتی منظر کی حالت (نقطہ ارتکاز میں موجود پس منظر رکھنے والی قدرتی مناظر کی تصویروں کے لیے)",
+       "exif-subjectdistance-value": "$1 میٹر",
+       "exif-meteringmode-0": "نامعلوم",
+       "exif-meteringmode-1": "اوسط",
+       "exif-meteringmode-2": "مرکز کی حجم شدہ اوسط",
+       "exif-meteringmode-3": "داغ",
+       "exif-meteringmode-4": "کثیر داغ",
+       "exif-meteringmode-5": "طرز",
+       "exif-meteringmode-6": "جزوی",
+       "exif-meteringmode-255": "دیگر",
+       "exif-lightsource-0": "نامعلوم",
+       "exif-lightsource-1": "روشنی روز",
+       "exif-lightsource-2": "فلورسینٹ",
+       "exif-lightsource-3": "ٹنگسٹن (گرم تاباں روشنی)",
+       "exif-lightsource-4": "فلیش",
+       "exif-lightsource-9": "اچھا موسم",
+       "exif-lightsource-10": "ابرآلود موسم",
+       "exif-lightsource-11": "سایہ",
+       "exif-lightsource-12": "صبح کا فلورسینٹ (D 5700 – 7100K)",
+       "exif-lightsource-13": "دن کا سفید فلورسینٹ (N 4600 – 5400K)",
+       "exif-lightsource-14": "خنک سفید فلورسینٹ (W 3900 – 4500K)",
+       "exif-lightsource-15": "سفید فلورسینٹ (WW 3200 – 3700K)",
+       "exif-lightsource-17": "معیاری روشنی A",
+       "exif-lightsource-18": "معیاری روشنی B",
+       "exif-lightsource-19": "معیاری روشنی C",
+       "exif-lightsource-24": "ٹنگسٹن کا آئیسو اسٹوڈیو",
+       "exif-lightsource-255": "روشنی کا دوسرا ماخذ",
+       "exif-flash-fired-0": "فلیش نہیں چلا",
+       "exif-flash-fired-1": "فلیش چالو ہوا",
+       "exif-flash-return-0": "منعکس روشنی کی دریافت کی کوئی سہولت نہیں ہے",
+       "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-sensingmethod-7": "سہ خطی سینسر",
+       "exif-sensingmethod-8": "رنگوں کی ترتیب کا خطی سینسر",
+       "exif-filesource-3": "ڈیجیٹل اسٹل کیمرا",
+       "exif-scenetype-1": "براہ راست کھینچی گئی تصویر",
+       "exif-customrendered-0": "عام عمل",
+       "exif-customrendered-1": "اپنی مرضی کے مطابق عمل",
+       "exif-exposuremode-0": "خودکار نمائش",
+       "exif-exposuremode-1": "دستی نمائش",
+       "exif-exposuremode-2": "آٹو بریکٹ",
+       "exif-whitebalance-0": "سفید رنگ کا خودکار توازن",
+       "exif-whitebalance-1": "سفید رنگ کا دستی توازن",
+       "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-saturation-0": "عام",
+       "exif-saturation-1": "سیال رنگ",
+       "exif-saturation-2": "ٹھوس رنگ",
+       "exif-sharpness-0": "عام",
+       "exif-sharpness-1": "نرم",
+       "exif-sharpness-2": "سخت",
+       "exif-subjectdistancerange-0": "نامعلوم",
+       "exif-subjectdistancerange-1": "میکرو",
+       "exif-subjectdistancerange-2": "قریبی منظر",
+       "exif-subjectdistancerange-3": "دور سے دیکھیں",
+       "exif-gpslatitude-n": "شمالی عرض البلد",
+       "exif-gpslatitude-s": "جنوبی عرض البلد",
+       "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-gpsdestdistance-m": "میل",
+       "exif-gpsdestdistance-n": "سمندری میل",
+       "exif-gpsdop-excellent": "بہترین ($1)",
+       "exif-gpsdop-good": "بہترین ($1)",
+       "exif-gpsdop-moderate": "معتدل ($1)",
+       "exif-gpsdop-fair": "کمتر ($1)",
+       "exif-gpsdop-poor": "کمزور ($1)",
+       "exif-objectcycle-a": "صرف صبح",
+       "exif-objectcycle-p": "صرف شام",
+       "exif-objectcycle-b": "صبح و شام",
+       "exif-gpsdirection-t": "اصلی سمت",
+       "exif-gpsdirection-m": "مقناطیسی سمت",
+       "exif-ycbcrpositioning-1": "وسط",
+       "exif-ycbcrpositioning-2": "مشترکہ منظر کشی",
+       "exif-dc-contributor": "ترمیم کنندگان",
+       "exif-dc-coverage": "میڈیا کی مکانی یا زمانی وسعت",
+       "exif-dc-date": "تاریخ",
+       "exif-dc-publisher": "ناشر",
+       "exif-dc-relation": "متعلقہ میڈیا",
+       "exif-dc-rights": "حقوق",
+       "exif-dc-source": "ماخذ میڈیا",
+       "exif-dc-type": "میڈیا کی قسم",
+       "exif-rating-rejected": "مسترد شدہ",
+       "exif-isospeedratings-overflow": "65535 سے بڑا",
+       "exif-iimcategory-ace": "فنون لطیفہ، ثقافت اور تفریح",
+       "exif-iimcategory-clj": "جرم اور قانون",
+       "exif-iimcategory-dis": "آفات اور حادثات",
+       "exif-iimcategory-fin": "معیشت اور کاروبار",
+       "exif-iimcategory-edu": "تعلیم",
+       "exif-iimcategory-evn": "ماحول",
+       "exif-iimcategory-hth": "صحت",
+       "exif-iimcategory-hum": "انسانی دلچسپی",
+       "exif-iimcategory-lab": "مزدوری",
+       "exif-iimcategory-lif": "طرز زندگی اور تفریح",
+       "exif-iimcategory-pol": "سیاست",
+       "exif-iimcategory-rel": "مذہب اور عقیدہ",
+       "exif-iimcategory-sci": "سائنس اور ٹیکنالوجی",
+       "exif-iimcategory-soi": "سماجی مسائل",
+       "exif-iimcategory-spo": "کھیل",
+       "exif-iimcategory-war": "جنگ، تصادم اور بدامنی",
+       "exif-iimcategory-wea": "موسم",
+       "exif-urgency-normal": "عام ($1)",
+       "exif-urgency-low": "کم ($1)",
+       "exif-urgency-high": "اعلیٰ ($1)",
+       "exif-urgency-other": "صارف کی وضاحت کردہ ترجیح ($1)"
+}
diff --git a/languages/i18n/exif/vec.json b/languages/i18n/exif/vec.json
new file mode 100644 (file)
index 0000000..23c601d
--- /dev/null
@@ -0,0 +1,354 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Alunardon90",
+                       "BrokenArrow",
+                       "Candalua",
+                       "GatoSelvadego"
+               ]
+       },
+       "exif-imagewidth": "Largheza",
+       "exif-imagelength": "Alteza",
+       "exif-bitspersample": "Bit par campione",
+       "exif-compression": "Mecanismo de conpression",
+       "exif-photometricinterpretation": "Strutura de i pixel",
+       "exif-orientation": "Orientamento",
+       "exif-samplesperpixel": "Numero de łe componenti",
+       "exif-planarconfiguration": "Disposizion de i dati",
+       "exif-ycbcrsubsampling": "Raporto de campionamento Y / C",
+       "exif-ycbcrpositioning": "Posizionamento conponenti Y e C",
+       "exif-xresolution": "Risoluzion orixontałe",
+       "exif-yresolution": "Risoluzion verticałe",
+       "exif-stripoffsets": "Posizion de i dati imagine",
+       "exif-rowsperstrip": "Numero righe par striscia",
+       "exif-stripbytecounts": "Nùmaro de byte par strìssia conpressa",
+       "exif-jpeginterchangeformat": "Posizion byte SOI JPEG",
+       "exif-jpeginterchangeformatlength": "Numero de byte de dati JPEG",
+       "exif-whitepoint": "Coordinate cromatiche de el punto de bianco",
+       "exif-primarychromaticities": "Coordinate cromatiche de i cołori primari",
+       "exif-ycbcrcoefficients": "Coeficienti matriçe de trasformassion spazi de i cołori",
+       "exif-referenceblackwhite": "Copia de vałori de riferimento (nero e bianco)",
+       "exif-datetime": "Data e ora de modifica de el file",
+       "exif-imagedescription": "Descrizion de l'imagine",
+       "exif-make": "Produtore fotocamera",
+       "exif-model": "Modeło fotocamera",
+       "exif-software": "Software",
+       "exif-artist": "Autor",
+       "exif-copyright": "Informassion su el copyright",
+       "exif-exifversion": "Version de el formato Exif",
+       "exif-flashpixversion": "Version Flashpix suportà",
+       "exif-colorspace": "Spazio de i cołori",
+       "exif-componentsconfiguration": "Significato de ciascuna componente",
+       "exif-compressedbitsperpixel": "Modalità de compression imagine",
+       "exif-pixelxdimension": "Larghesa imajine",
+       "exif-pixelydimension": "Altesa imajine",
+       "exif-usercomment": "Note de l'utente",
+       "exif-relatedsoundfile": "File audio cołegà",
+       "exif-datetimeoriginal": "Data e ora de creassion de i dati",
+       "exif-datetimedigitized": "Data e ora de digitałixassion",
+       "exif-subsectime": "Data e ora, frazion de secondo",
+       "exif-subsectimeoriginal": "Data e ora de creazion, frazion de secondo",
+       "exif-subsectimedigitized": "Data e ora de digitałixazion, frazion de secondo",
+       "exif-exposuretime": "Tenpo de esposission",
+       "exif-exposuretime-format": "$1 s ($2)",
+       "exif-fnumber": "Rapporto focałe",
+       "exif-exposureprogram": "Programa de esposission",
+       "exif-spectralsensitivity": "Sensibilità spetrałe",
+       "exif-isospeedratings": "Sensibiłità ISO",
+       "exif-shutterspeedvalue": "Vełoçità de l'oturatore APEX",
+       "exif-aperturevalue": "Apertura APEX",
+       "exif-brightnessvalue": "Luminoxità APEX",
+       "exif-exposurebiasvalue": "Coression esposission",
+       "exif-maxaperturevalue": "Massima apertura",
+       "exif-subjectdistance": "Distansa de el sojeto",
+       "exif-meteringmode": "Metodo de misurassion",
+       "exif-lightsource": "Sorgente łuminoxa",
+       "exif-flash": "Caratteristiche e stato de el flash",
+       "exif-focallength": "Distansa focałe obietivo",
+       "exif-subjectarea": "Area inquadrante el sojeto",
+       "exif-flashenergy": "Potenza del flash",
+       "exif-focalplanexresolution": "Risolussion X sul piano focałe",
+       "exif-focalplaneyresolution": "Risolussion Y sul piano focałe",
+       "exif-focalplaneresolutionunit": "Unità de misura risolussion sul piano focałe",
+       "exif-subjectlocation": "Posizion de el sojeto",
+       "exif-exposureindex": "Sensibilità impostà",
+       "exif-sensingmethod": "Metodo de riłevassion",
+       "exif-filesource": "Origine del file",
+       "exif-scenetype": "Tipo de inquadratura",
+       "exif-customrendered": "Elaborassion personałixà",
+       "exif-exposuremode": "Modalità de espoxission",
+       "exif-whitebalance": "Biłanciamento de el bianco",
+       "exif-digitalzoomratio": "Rapporto zoom digitałe",
+       "exif-focallengthin35mmfilm": "Focałe equivalente su 35 mm",
+       "exif-scenecapturetype": "Tipo de acquixizion",
+       "exif-gaincontrol": "Controło inquadratura",
+       "exif-contrast": "Controło contrasto",
+       "exif-saturation": "Controło saturazion",
+       "exif-sharpness": "Controło nitideza",
+       "exif-devicesettingdescription": "Descrission inpostassioni dispositivo",
+       "exif-subjectdistancerange": "Scała distansa sojeto",
+       "exif-imageuniqueid": "ID univoco imagine",
+       "exif-gpsversionid": "Version de i tag GPS",
+       "exif-gpslatituderef": "Latitudine Nord/Sud",
+       "exif-gpslatitude": "Latitudine",
+       "exif-gpslongituderef": "Longitudine Est/Ovest",
+       "exif-gpslongitude": "Longitudine",
+       "exif-gpsaltituderef": "Riferimento par l'altitudine",
+       "exif-gpsaltitude": "Altitudine",
+       "exif-gpstimestamp": "Ora GPS (orołogio atomico)",
+       "exif-gpssatellites": "Sateliti doparài par ła mixurazion",
+       "exif-gpsstatus": "Stato de el riçevitore",
+       "exif-gpsmeasuremode": "Modalità de misurazion",
+       "exif-gpsdop": "Precixion de ła mixurazion",
+       "exif-gpsspeedref": "Unità de mixura de ła veloçità",
+       "exif-gpsspeed": "Veloçità del riçevitore GPS",
+       "exif-gpstrackref": "Riferimento par ła direzion movimento",
+       "exif-gpstrack": "Direzion de el movimento",
+       "exif-gpsimgdirectionref": "Riferimento par ła diression de l'imagine",
+       "exif-gpsimgdirection": "Direzion de l'imagine",
+       "exif-gpsmapdatum": "Rilevamento geodetico usà",
+       "exif-gpsdestlatituderef": "Riferimento par ła latitudine de ła destinazion",
+       "exif-gpsdestlatitude": "Latitudine de ła destinazion",
+       "exif-gpsdestlongituderef": "Riferimento par ła longitudine de ła destinassion",
+       "exif-gpsdestlongitude": "Longitudine de ła destinassion",
+       "exif-gpsdestbearingref": "Riferimento par ła diression de ła destinassion",
+       "exif-gpsdestbearing": "Diression de ła destinassion",
+       "exif-gpsdestdistanceref": "Riferimento par ła distansa de ła destinassion",
+       "exif-gpsdestdistance": "Distansa de ła destinassion",
+       "exif-gpsprocessingmethod": "Nome de el metodo de elaborassion GPS",
+       "exif-gpsareainformation": "Nome de ła xòna GPS",
+       "exif-gpsdatestamp": "Data GPS",
+       "exif-gpsdifferential": "Corezion diferensiałe GPS",
+       "exif-jpegfilecomment": "Comento del file JPEG",
+       "exif-keywords": "Parołe ciave",
+       "exif-worldregioncreated": "Rejon del Mondo in cui l'imaxene ła xe sta fata",
+       "exif-countrycreated": "Paexe dove xe sta fata ła someja",
+       "exif-countrycodecreated": "Còdexe del paexe 'ndove xe sta fata ła someja",
+       "exif-provinceorstatecreated": "Provincia o stato 'ndove xe sta fata ła someja",
+       "exif-citycreated": "Sità 'ndove xe sta fata ła someja",
+       "exif-sublocationcreated": "Parte de ła sità in cui xe sta fata ła someja",
+       "exif-worldregiondest": "Rejon del Mondo mostrà",
+       "exif-countrydest": "Paexe mostrà",
+       "exif-countrycodedest": "Còdexe del Paexe mostrà",
+       "exif-provinceorstatedest": "Provincia o stato mostrà",
+       "exif-citydest": "Sità mostrà",
+       "exif-sublocationdest": "Parte de ła sità mostrà",
+       "exif-objectname": "Titoło curto",
+       "exif-specialinstructions": "Istrusion speciałi",
+       "exif-headline": "Titoło",
+       "exif-credit": "Crediti",
+       "exif-source": "Fonte",
+       "exif-editstatus": "Stato de edision de l'imaxene",
+       "exif-urgency": "Urgensa",
+       "exif-fixtureidentifier": "Nome del riferimento",
+       "exif-locationdest": "Locałità rafegurà",
+       "exif-locationdestcode": "Còdexe del liogo rafegurà",
+       "exif-objectcycle": "Momento del xorno pa'l cuałe el medium el xe progetà",
+       "exif-contact": "Informasion de contato",
+       "exif-writer": "Scritor",
+       "exif-languagecode": "Léngua",
+       "exif-iimversion": "Version IIM",
+       "exif-iimcategory": "Categoria",
+       "exif-iimsupplementalcategory": "Categorie xontive",
+       "exif-datetimeexpires": "Nó doparar dopo",
+       "exif-datetimereleased": "Rełasà el",
+       "exif-originaltransmissionref": "Còdexe del liogo de trasmision orixenaria",
+       "exif-identifier": "Identifegativo",
+       "exif-lens": "Lente doparà",
+       "exif-serialnumber": "Nùmaro de serie de ła fotocamera",
+       "exif-cameraownername": "Paron de ła fotocamera",
+       "exif-label": "Eticheta",
+       "exif-datetimemetadata": "Data in cui i metadata i xe stai modifegai l'ultema volta",
+       "exif-nickname": "Nome informałe de l'imaxene",
+       "exif-rating": "Vałutasion (so 5)",
+       "exif-rightscertificate": "Certificato de gestion de i diriti",
+       "exif-copyrighted": "Informasion so'l copyright",
+       "exif-copyrightowner": "Detentor del copyright",
+       "exif-usageterms": "Termini d'utiłixo",
+       "exif-webstatement": "Dichiarasion online de copyright",
+       "exif-originaldocumentid": "ID univoco del documento orixenałe",
+       "exif-licenseurl": "URL par ła licensa del copyright",
+       "exif-morepermissionsurl": "Informasion so łe license alternadive",
+       "exif-attributionurl": "Pa'l riutiłixo de sta òpara, se prega de inserir un ligamento ipertestuałe a",
+       "exif-preferredattributionname": "Pa'l riutiłixo de sta òpara, se prega de atribuighine ła paternidà a",
+       "exif-pngfilecomment": "Comento del file PNG",
+       "exif-disclaimer": "Avertense",
+       "exif-contentwarning": "Avixo so'l contegnùo",
+       "exif-giffilecomment": "Comento del file GIF",
+       "exif-intellectualgenre": "Tipo de elemento",
+       "exif-subjectnewscode": "Còdexe del ogeto",
+       "exif-scenecode": "Còdexe de sèna IPTC",
+       "exif-event": "Evento rafegurà",
+       "exif-organisationinimage": "Organixasion rafegurà",
+       "exif-personinimage": "Persona rafegurà",
+       "exif-originalimageheight": "Altesa de l'imaxene prima che ła fuse tajà",
+       "exif-originalimagewidth": "Larghesa de l'imaxene prima che ła fuse tajà",
+       "exif-compression-1": "No conpresso",
+       "exif-compression-2": "CCITT grupo 3 monodimensionałe - codifega run length de Huffman modifegà",
+       "exif-compression-3": "Codifega fax CCITT Group 3",
+       "exif-compression-4": "Codifega fax CCITT gruppo 4",
+       "exif-copyrighted-true": "Proteto da copyright",
+       "exif-copyrighted-false": "Dominio pùblico",
+       "exif-unknowndate": "Data sconossiùa",
+       "exif-orientation-1": "Normałe",
+       "exif-orientation-2": "Roersà orixontalmente",
+       "exif-orientation-3": "Ruotà de 180°",
+       "exif-orientation-4": "Roersà verticalmente",
+       "exif-orientation-5": "Ruotà 90° in senso antiorario e roersà verticalmente",
+       "exif-orientation-6": "Jirare de 90° in senso antiorario",
+       "exif-orientation-7": "Ruotà 90° in senso orario e capovolto verticalmente",
+       "exif-orientation-8": "Jirà de 90° in senso orario",
+       "exif-planarconfiguration-1": "a blochi (chunky)",
+       "exif-planarconfiguration-2": "lineare (planar)",
+       "exif-xyresolution-i": "$1 punti par połiçe (dpi)",
+       "exif-xyresolution-c": "$1 punti par çentimetro (dpc)",
+       "exif-colorspace-65535": "Nó całibrià",
+       "exif-componentsconfiguration-0": "no esiste",
+       "exif-exposureprogram-0": "Non definio",
+       "exif-exposureprogram-1": "Manuałe",
+       "exif-exposureprogram-2": "Standard",
+       "exif-exposureprogram-3": "Priorità al diaframa",
+       "exif-exposureprogram-4": "Priorità a l'esposission",
+       "exif-exposureprogram-5": "Artistico (orientà a ła profondità de campo)",
+       "exif-exposureprogram-6": "Sportivo (orientà a ła veloçità de riprexa)",
+       "exif-exposureprogram-7": "Ritrato (sogeti viçini con sfondo fora fuoco)",
+       "exif-exposureprogram-8": "Panorama (sogeti distanti con sfondo a fuoco)",
+       "exif-subjectdistance-value": "$1 metri",
+       "exif-meteringmode-0": "Sconossùo",
+       "exif-meteringmode-1": "Media",
+       "exif-meteringmode-2": "Media pesà çentrà",
+       "exif-meteringmode-3": "Spot",
+       "exif-meteringmode-4": "MultiSpot",
+       "exif-meteringmode-5": "Pattern",
+       "exif-meteringmode-6": "Parsiałe",
+       "exif-meteringmode-255": "Altro",
+       "exif-lightsource-0": "Sconossùa",
+       "exif-lightsource-1": "Luçe diurna",
+       "exif-lightsource-2": "Lanpada a floressiénsa",
+       "exif-lightsource-3": "Lanpada al tungsteno (a incandessiénsa)",
+       "exif-lightsource-4": "Flash",
+       "exif-lightsource-9": "Tenpo beło",
+       "exif-lightsource-10": "Nùvoło",
+       "exif-lightsource-11": "In onbrìa",
+       "exif-lightsource-12": "Daylight fluorescent (D 5700 â€“ 7100K)",
+       "exif-lightsource-13": "Day white fluorescent (N 4600 â€“ 5400K)",
+       "exif-lightsource-14": "Cool white fluorescent (W 3900 â€“ 4500K)",
+       "exif-lightsource-15": "White fluorescent (WW 3200 â€“ 3700K)",
+       "exif-lightsource-17": "Luçe standard A",
+       "exif-lightsource-18": "Luçe standard B",
+       "exif-lightsource-19": "Luçe standard C",
+       "exif-lightsource-20": "Iłuminante D55",
+       "exif-lightsource-21": "Iłuminante D65",
+       "exif-lightsource-22": "Iłuminante D75",
+       "exif-lightsource-23": "Iłuminante D50",
+       "exif-lightsource-24": "Lànpada da studio ISO al tungsteno",
+       "exif-lightsource-255": "Altra sorgente łuminoxa",
+       "exif-flash-fired-0": "El flash no'l xe mia scatà",
+       "exif-flash-fired-1": "Flash scatà",
+       "exif-flash-return-0": "nissuna funsione de individuassion del ritorno de la luce stroboscopica",
+       "exif-flash-return-2": "luce stroboscopica de ritorno mia individuà",
+       "exif-flash-return-3": "luce stroboscopica de ritorno individuà",
+       "exif-flash-mode-1": "ativassion flash forzato",
+       "exif-flash-mode-2": "rimozion flash forzato",
+       "exif-flash-mode-3": "modalità automatica",
+       "exif-flash-function-1": "Disativa el flash",
+       "exif-flash-redeye-1": "modalità ridussion òci rossi",
+       "exif-focalplaneresolutionunit-2": "połiçi",
+       "exif-sensingmethod-1": "Non definio",
+       "exif-sensingmethod-2": "Sensore area cołore a 1 chip",
+       "exif-sensingmethod-3": "Sensore area cołore a 2 chip",
+       "exif-sensingmethod-4": "Sensore area cołore a 3 chip",
+       "exif-sensingmethod-5": "Sensor area cołor sequensiałe",
+       "exif-sensingmethod-7": "Sensore triłineare",
+       "exif-sensingmethod-8": "Sensor łinear cołor sequensiałe",
+       "exif-filesource-3": "Fotocamara dijitałe",
+       "exif-scenetype-1": "Fotografia direta",
+       "exif-customrendered-0": "Processo normałe",
+       "exif-customrendered-1": "Processo personałixà",
+       "exif-exposuremode-0": "Esposission automatega",
+       "exif-exposuremode-1": "Esposission manuałe",
+       "exif-exposuremode-2": "Bracketing automatego",
+       "exif-whitebalance-0": "Biłanciamento de el bianco automatico",
+       "exif-whitebalance-1": "Biłanciamento de el bianco manuałe",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Panorama",
+       "exif-scenecapturetype-2": "Ritrato",
+       "exif-scenecapturetype-3": "Noturna",
+       "exif-gaincontrol-0": "Nissun",
+       "exif-gaincontrol-1": "Enfasi par basso guadagno",
+       "exif-gaincontrol-2": "Enfasi par alto guadagno",
+       "exif-gaincontrol-3": "Deenfasi par basso guadagno",
+       "exif-gaincontrol-4": "Deenfasi par alto guadagno",
+       "exif-contrast-0": "Normałe",
+       "exif-contrast-1": "Alto contrasto",
+       "exif-contrast-2": "Basso contrasto",
+       "exif-saturation-0": "Normałe",
+       "exif-saturation-1": "Bassa saturazion",
+       "exif-saturation-2": "Alta saturazion",
+       "exif-sharpness-0": "Normałe",
+       "exif-sharpness-1": "Manco nitideza",
+       "exif-sharpness-2": "Piassè nitideza",
+       "exif-subjectdistancerange-0": "Sconossùa",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Sojeto viçin",
+       "exif-subjectdistancerange-3": "Sojeto łontano",
+       "exif-gpslatitude-n": "Latitudine Nord",
+       "exif-gpslatitude-s": "Latitudine Sud",
+       "exif-gpslongitude-e": "Longitudine Est",
+       "exif-gpslongitude-w": "Longitudine Ovest",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metro|metri}} so'l liveło del mar",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metro|metri}} soto el liveło del mar",
+       "exif-gpsstatus-a": "Mixurassion in corso",
+       "exif-gpsstatus-v": "Mixurassion interoperabiłe",
+       "exif-gpsmeasuremode-2": "Misurassion bidimensionałe",
+       "exif-gpsmeasuremode-3": "Misurassion tridimensionałe",
+       "exif-gpsspeed-k": "Chiłometri orari",
+       "exif-gpsspeed-m": "Miglia orarie",
+       "exif-gpsspeed-n": "Nodi",
+       "exif-gpsdestdistance-k": "Chilometri",
+       "exif-gpsdestdistance-m": "Mija",
+       "exif-gpsdestdistance-n": "Mija nàutiche",
+       "exif-gpsdop-excellent": "Esełente ($1)",
+       "exif-gpsdop-good": "Bon ($1)",
+       "exif-gpsdop-moderate": "Moderà ($1)",
+       "exif-gpsdop-fair": "Discreto ($1)",
+       "exif-gpsdop-poor": "Scarso ($1)",
+       "exif-objectcycle-a": "Soło che ła matina",
+       "exif-objectcycle-p": "Soło che ła sera",
+       "exif-objectcycle-b": "Matina e sera",
+       "exif-gpsdirection-t": "Diression reałe",
+       "exif-gpsdirection-m": "Diression magnetica",
+       "exif-ycbcrpositioning-1": "Centrà",
+       "exif-ycbcrpositioning-2": "Co-situà",
+       "exif-dc-contributor": "Cołaboradori",
+       "exif-dc-coverage": "Anbito spasiałe o tenporałe de i media",
+       "exif-dc-date": "Data (e)",
+       "exif-dc-publisher": "Editor",
+       "exif-dc-relation": "File ligai",
+       "exif-dc-rights": "Diriti",
+       "exif-dc-source": "Fonte del file",
+       "exif-dc-type": "Tipo de file",
+       "exif-rating-rejected": "Rifiutà",
+       "exif-isospeedratings-overflow": "Maxor de 65535",
+       "exif-iimcategory-ace": "Arte, cultura e spetacoło",
+       "exif-iimcategory-clj": "Criminałità e dirito",
+       "exif-iimcategory-dis": "Dixastri e insidenti",
+       "exif-iimcategory-fin": "Economia e afari",
+       "exif-iimcategory-edu": "Istrusion",
+       "exif-iimcategory-evn": "Anbiente",
+       "exif-iimcategory-hth": "Sałute",
+       "exif-iimcategory-hum": "Interese uman",
+       "exif-iimcategory-lab": "Laoro",
+       "exif-iimcategory-lif": "Stiłe de vita e tenpo libaro",
+       "exif-iimcategory-pol": "Pułitega",
+       "exif-iimcategory-rel": "Rełijon e fè",
+       "exif-iimcategory-sci": "Siensa e tenołoxia",
+       "exif-iimcategory-soi": "Cuestion sociałi",
+       "exif-iimcategory-spo": "Spor",
+       "exif-iimcategory-war": "Guera, radeghi e dixordeni",
+       "exif-iimcategory-wea": "Meteo",
+       "exif-urgency-normal": "Normałe ($1)",
+       "exif-urgency-low": "Basa ($1)",
+       "exif-urgency-high": "Alta ($1)",
+       "exif-urgency-other": "Priorità definie dal utente ($1)"
+}
diff --git a/languages/i18n/exif/vep.json b/languages/i18n/exif/vep.json
new file mode 100644 (file)
index 0000000..3fcab97
--- /dev/null
@@ -0,0 +1,285 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Aig mest ei varasta",
+                       "Triple-ADHD-AS",
+                       "Игорь Бродский"
+               ]
+       },
+       "exif-imagewidth": "Leveduz",
+       "exif-imagelength": "Korktuz’",
+       "exif-bitspersample": "Mujun süvuz",
+       "exif-compression": "Ahtištandan metod",
+       "exif-photometricinterpretation": "Mujumodel'",
+       "exif-orientation": "Kadran orientacii",
+       "exif-samplesperpixel": "Mujukomponentoiden lugu",
+       "exif-planarconfiguration": "Andmusiden järgendamižen princip",
+       "exif-ycbcrsubsampling": "Y da C-komponentoiden surusiden korreläcii",
+       "exif-ycbcrpositioning": "Y:n da C:n sijaduz",
+       "exif-xresolution": "Gorizontaline tarkoiktuz",
+       "exif-yresolution": "Vertikaline tarkoiktuz",
+       "exif-stripoffsets": "Andmusiden sijaduz",
+       "exif-rowsperstrip": "Rividen lugu ühtes särmas",
+       "exif-stripbytecounts": "Ahtištadud särman suruz",
+       "exif-jpeginterchangeformat": "\"Ezikacund\"-blokan augotišen sijaduz.",
+       "exif-jpeginterchangeformatlength": "Baitoiden lugumär JPEG-as",
+       "exif-whitepoint": "Vauktan čokkoimen mujumär",
+       "exif-primarychromaticities": "Pämujuiden mujumär",
+       "exif-ycbcrcoefficients": "Mujumodelin toižetusen koefficientad",
+       "exif-referenceblackwhite": "Vauktan da mustan čokkoimiden sijaduz",
+       "exif-datetime": "Failan toižetusen dat da aig",
+       "exif-imagedescription": "Kuvan nimi",
+       "exif-make": "Kameran tegii",
+       "exif-model": "Kameran model'",
+       "exif-software": "Kävutadud programmišt",
+       "exif-artist": "Tegii",
+       "exif-copyright": "Avtoranoiktusen pidai",
+       "exif-exifversion": "Exif-versii",
+       "exif-flashpixversion": "Pid'oiteldud Flashpix-versii",
+       "exif-colorspace": "Mujuavaruz",
+       "exif-componentsconfiguration": "Mujukomponentoiden konfiguracii",
+       "exif-compressedbitsperpixel": "Mujun süvuz ahtištusen jäl'ghe",
+       "exif-pixelxdimension": "Kuvan leveduz",
+       "exif-pixelydimension": "Kuvan korktuz",
+       "exif-usercomment": "Kävutajan homaičendad",
+       "exif-relatedsoundfile": "Kulundkommentarijan fail",
+       "exif-datetimeoriginal": "Todesine dat da aig",
+       "exif-datetimedigitized": "Digitaliziruindan dat da aig",
+       "exif-subsectime": "Failan toižetamižen aigan sekundpalad",
+       "exif-subsectimeoriginal": "Originaližen aigan sekundpalad",
+       "exif-subsectimedigitized": "Digitaliziruindan aigan sekundpalad",
+       "exif-exposuretime": "Ekspozicijan aig",
+       "exif-exposuretime-format": "$1 sek ($2)",
+       "exif-fnumber": "Diafragman lugu",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Ekspozicijan programm",
+       "exif-spectralsensitivity": "Spektraline mujandmär",
+       "exif-isospeedratings": "ISO vauktusenmujandmär",
+       "exif-shutterspeedvalue": "APEX-avaidamižaig",
+       "exif-aperturevalue": "APEX-diafragm",
+       "exif-brightnessvalue": "APEX-loštuz",
+       "exif-exposurebiasvalue": "Ekspozicijan kompensacii",
+       "exif-maxaperturevalue": "Diafragman minimaline lugu",
+       "exif-subjectdistance": "Edahaižuz objekthasai",
+       "exif-meteringmode": "Ekspozicijan märičemižen režim",
+       "exif-lightsource": "Vauktusenlähte",
+       "exif-flash": "Töngahtusen status",
+       "exif-focallength": "Linzan fokusedhuz",
+       "exif-subjectarea": "Objektan sijaduz",
+       "exif-flashenergy": "Töngahtusen energii",
+       "exif-focalplanexresolution": "Fokalplanan X-tarkoiktuz",
+       "exif-focalplaneyresolution": "Fokal'planan Y-tarkoiktuz",
+       "exif-focalplaneresolutionunit": "Fokal'planan tarkoiktusen ühtnik",
+       "exif-subjectlocation": "Subjektan sijaduz",
+       "exif-exposureindex": "Ekspozicijan index",
+       "exif-sensingmethod": "Sensoran tip",
+       "exif-filesource": "Failan purde",
+       "exif-scenetype": "Scenan tip",
+       "exif-customrendered": "Ližaradamine",
+       "exif-exposuremode": "Ekspozicijan režiman valičend",
+       "exif-whitebalance": "Vauktan balans",
+       "exif-digitalzoomratio": "Digitaline zum",
+       "exif-focallengthin35mmfilm": "Ekvivalentine fokuskeskust (35-mm fil'man täht)",
+       "exif-scenecapturetype": "Scenan tip kuvadamižen aigan",
+       "exif-gaincontrol": "Loštusen tobnenduz",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Mujuküllästuz",
+       "exif-sharpness": "Teravuz",
+       "exif-devicesettingdescription": "Kameran augotižjärgendused",
+       "exif-subjectdistancerange": "Edhuz kuvadusen objekthasai",
+       "exif-imageuniqueid": "Kuvan nomer (ID)",
+       "exif-gpsversionid": "GPS-virgan versii",
+       "exif-gpslatituderef": "Pohjoine leveduz vai suvileveduz",
+       "exif-gpslatitude": "Leveduz",
+       "exif-gpslongituderef": "Päivnouzmpiduz vai päivlaskmpiduz",
+       "exif-gpslongitude": "Piduz",
+       "exif-gpsaltituderef": "Korktusen indeks",
+       "exif-gpsaltitude": "Korktuz",
+       "exif-gpstimestamp": "GPS-aig (atomižed časud)",
+       "exif-gpssatellites": "Kävutadud kaimnikoiden ümbrikirjutand",
+       "exif-gpsstatus": "Saimen status",
+       "exif-gpsmeasuremode": "Märičemižen metod",
+       "exif-gpsdop": "Märičemižen tarkoiktuz",
+       "exif-gpsspeedref": "Piguden ühtnik",
+       "exif-gpsspeed": "GPS-saimen piguz",
+       "exif-gpstrackref": "GPS-sandapparatan azimutan tip (todesine, magnitine)",
+       "exif-gpstrack": "GPS-sandapparatan azimut",
+       "exif-gpsimgdirectionref": "Kuvan azimutan tip (todesine, magnitine)",
+       "exif-gpsimgdirection": "Kuvan azimut",
+       "exif-gpsmapdatum": "Geodezine koordinatoiden sistem om kävutadud",
+       "exif-gpsdestlatituderef": "Objektan pidusen indeks",
+       "exif-gpsdestlatitude": "Objektan piduz",
+       "exif-gpsdestlongituderef": "Objektan levedusen indeks",
+       "exif-gpsdestlongitude": "Objektan leveduz",
+       "exif-gpsdestbearingref": "Objektan pelengan tip (todesine vai magnitine)",
+       "exif-gpsdestbearing": "Objektan peleng",
+       "exif-gpsdestdistanceref": "Matkan märičemižen ühtnikad",
+       "exif-gpsdestdistance": "Keskust metčokkoimhesai",
+       "exif-gpsprocessingmethod": "GPS-lugemižen metod",
+       "exif-gpsareainformation": "GPS-agjan nimi",
+       "exif-gpsdatestamp": "GPS-dat",
+       "exif-gpsdifferential": "GPS-differencialine kohenduz",
+       "exif-jpegfilecomment": "Kommentarii JPEG-failha",
+       "exif-keywords": "Avadimsanad",
+       "exif-worldregiondest": "Ozutadud mail'man region",
+       "exif-countrydest": "Ozutadud ma",
+       "exif-provinceorstatedest": "Ozutadud provincii",
+       "exif-citydest": "Ozutadud lidn",
+       "exif-objectname": "Lühüd nimi",
+       "exif-specialinstructions": "Specialižed instrukcijad",
+       "exif-headline": "Pälkirjutez",
+       "exif-source": "Purde",
+       "exif-contact": "Kontaktinformacii",
+       "exif-writer": "Kirjutai",
+       "exif-languagecode": "Kel’",
+       "exif-iimcategory": "Kategorii",
+       "exif-datetimeexpires": "Algat kävutagoi necen datan jäl'ghe",
+       "exif-identifier": "Identifikator",
+       "exif-label": "Arbaine",
+       "exif-pngfilecomment": "Kommentarii PNG-failha",
+       "exif-compression-1": "Ahtištamatoi",
+       "exif-unknowndate": "Tundmatoi dat",
+       "exif-orientation-1": "Normaline",
+       "exif-orientation-2": "Kuvastadud gorizonaližikš",
+       "exif-orientation-3": "Kätud 180°",
+       "exif-orientation-4": "Kuvastadud vertikalidme",
+       "exif-orientation-5": "Kätud 90° časunnoluden vashapäi da kuvastadud püštoiktas",
+       "exif-orientation-6": "Kätud 90° časunnoluden vasthapäi",
+       "exif-orientation-7": "Kätud 90° časunnoluden mödhe da kuvastadud püštoiktas",
+       "exif-orientation-8": "Kätud 90° časunnoluden mödhe",
+       "exif-planarconfiguration-1": "chunky-format",
+       "exif-planarconfiguration-2": "planarformat",
+       "exif-componentsconfiguration-0": "ei ole",
+       "exif-exposureprogram-0": "Märičemata",
+       "exif-exposureprogram-1": "Käzirežim",
+       "exif-exposureprogram-2": "Normaline programm",
+       "exif-exposureprogram-3": "Diafragman prioritet",
+       "exif-exposureprogram-4": "Uudimen prioritet",
+       "exif-exposureprogram-5": "Sämižprogramm (valitas tarbhaine teravuden süvüz)",
+       "exif-exposureprogram-6": "Sportrežim (minimaližen avaidamižaiganke)",
+       "exif-exposureprogram-7": "Modkuvan režim (läheližen kuvadamižen täht, tagama ei ole fokusas)",
+       "exif-exposureprogram-8": "Peizažine režim (peizažfotokuviden täht, tagama om fokusas)",
+       "exif-subjectdistance-value": "$1 metrad",
+       "exif-meteringmode-0": "Tundmatoi",
+       "exif-meteringmode-1": "Keskmäine",
+       "exif-meteringmode-2": "Keskmäine veduz",
+       "exif-meteringmode-3": "Čokkoimine",
+       "exif-meteringmode-4": "Äičokkoimine",
+       "exif-meteringmode-5": "Matricaline",
+       "exif-meteringmode-6": "Palahine",
+       "exif-meteringmode-255": "Toine",
+       "exif-lightsource-0": "Tundmatoi",
+       "exif-lightsource-1": "Päi",
+       "exif-lightsource-2": "Päilamp",
+       "exif-lightsource-3": "Kalindlamp",
+       "exif-lightsource-4": "Töngahtuz",
+       "exif-lightsource-9": "Poud",
+       "exif-lightsource-10": "Pil'vesine sä",
+       "exif-lightsource-11": "Kuvahaine",
+       "exif-lightsource-12": "Päilamp (tip D 5700 – 7100K)",
+       "exif-lightsource-13": "Päilamp (tip N 4600 – 5400K)",
+       "exif-lightsource-14": "Päilamp (tip W 3900 – 4500K)",
+       "exif-lightsource-15": "Päilamp (tip WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standartine A-tipan vauktusenlähte",
+       "exif-lightsource-18": "Standartine B-tipan vauktusenlähte",
+       "exif-lightsource-19": "Standartine C-tipan vauktusenlähte",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-22": "D75",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "ISO-standartan studiilamp",
+       "exif-lightsource-255": "Toine vauktusenlähte",
+       "exif-flash-fired-0": "Töngahtust ei olend.",
+       "exif-flash-fired-1": "Töngahtuz",
+       "exif-flash-return-0": "ei ole ezitöngahtusen režimad",
+       "exif-flash-return-2": "ei ole ezitöngahtusen tagazimpul'sad",
+       "exif-flash-return-3": "ezitöngahtusen tagazimpul's om sadud",
+       "exif-flash-mode-1": "täutajan töngahtusen impul's",
+       "exif-flash-mode-2": "täutajan töngahtusen ahtištuz",
+       "exif-flash-mode-3": "avtorežim",
+       "exif-flash-function-1": "Ei ole töngahtust",
+       "exif-flash-redeye-1": "\"rusttan sil'män\"-kohendamižen režim",
+       "exif-focalplaneresolutionunit-2": "düimad",
+       "exif-sensingmethod-1": "Märhapanmatoi",
+       "exif-sensingmethod-2": "Monokristaline mujun sensor",
+       "exif-sensingmethod-3": "Kaks'čipaine mujun sensor",
+       "exif-sensingmethod-4": "Koumečipaine mujun sensor",
+       "exif-sensingmethod-5": "Matricsensor mujun jäl'genduzmäričendanke",
+       "exif-sensingmethod-7": "Trilinearine sensor",
+       "exif-sensingmethod-8": "Linealine sensor mujun jäl'genduzmäričendanke",
+       "exif-filesource-3": "Digitaline fotoapparat",
+       "exif-scenetype-1": "Oikaha fotografiruidud kuva",
+       "exif-customrendered-0": "Normaline process",
+       "exif-customrendered-1": "Ičenaine process",
+       "exif-exposuremode-0": "Avtoekspozicii",
+       "exif-exposuremode-1": "Säta ekspozicijad ičeksaz",
+       "exif-exposuremode-2": "Breketing",
+       "exif-whitebalance-0": "Vauktan avtomatine balans",
+       "exif-whitebalance-1": "Säta vauktan balans ičeksaz",
+       "exif-scenecapturetype-0": "Standartine",
+       "exif-scenecapturetype-1": "Landšaft",
+       "exif-scenecapturetype-2": "Modkuva",
+       "exif-scenecapturetype-3": "Öfotokuva",
+       "exif-gaincontrol-0": "Ei ole",
+       "exif-gaincontrol-1": "Madal tobjenduz",
+       "exif-gaincontrol-2": "Korged tobjenduz",
+       "exif-gaincontrol-3": "Madal penenduz",
+       "exif-gaincontrol-4": "Korged penenduz",
+       "exif-contrast-0": "Normaline",
+       "exif-contrast-1": "Pehmed",
+       "exif-contrast-2": "Kova",
+       "exif-saturation-0": "Normaline",
+       "exif-saturation-1": "Alaküllästuz",
+       "exif-saturation-2": "Üläküllästuz",
+       "exif-sharpness-0": "Normaline",
+       "exif-sharpness-1": "Pehmed",
+       "exif-sharpness-2": "Kova",
+       "exif-subjectdistancerange-0": "Tundmatoi",
+       "exif-subjectdistancerange-1": "Makrokuvaduz",
+       "exif-subjectdistancerange-2": "Lähekuvaduz",
+       "exif-subjectdistancerange-3": "Kuvaduz edahanpäi",
+       "exif-gpslatitude-n": "pohjošt levedust",
+       "exif-gpslatitude-s": "Suvilevedust",
+       "exif-gpslongitude-e": "päivnouzmpidust",
+       "exif-gpslongitude-w": "päivlaskmpidust",
+       "exif-gpsstatus-a": "Märičemine ei ole loptud völ",
+       "exif-gpsstatus-v": "Om vaumiž andmusiden oigendamižeks",
+       "exif-gpsmeasuremode-2": "2-koordinatine märičemine",
+       "exif-gpsmeasuremode-3": "3-koordinatine märičemine",
+       "exif-gpsspeed-k": "km/č",
+       "exif-gpsspeed-m": "milid časus",
+       "exif-gpsspeed-n": "sol'med",
+       "exif-gpsdestdistance-k": "Kilometrad",
+       "exif-gpsdestdistance-m": "Milid",
+       "exif-gpsdestdistance-n": "Merimilid",
+       "exif-gpsdop-excellent": "Lujas hüvä ($1)",
+       "exif-gpsdop-good": "Hüvä ($1)",
+       "exif-objectcycle-a": "Vaiše homendesel",
+       "exif-objectcycle-p": "Vaiše ehtal",
+       "exif-gpsdirection-t": "Todesine oigendamine",
+       "exif-gpsdirection-m": "Magnitine oigendamine",
+       "exif-dc-date": "Dat(ad)",
+       "exif-dc-publisher": "Pästai",
+       "exif-dc-rights": "Oiktused",
+       "exif-isospeedratings-overflow": "Более 65535",
+       "exif-iimcategory-ace": "Čomamaht, kul'tur da bobuštused",
+       "exif-iimcategory-clj": "Ogerantegend da käskuz",
+       "exif-iimcategory-dis": "Katastrofad da avarijad",
+       "exif-iimcategory-fin": "Ekonomik da biznes",
+       "exif-iimcategory-edu": "Openduzmär",
+       "exif-iimcategory-evn": "Ümbrišt",
+       "exif-iimcategory-hth": "Tervhuz",
+       "exif-iimcategory-hum": "Mel'hetartujad istorijad",
+       "exif-iimcategory-lab": "Tö",
+       "exif-iimcategory-lif": "Elonmahtuz da joudai aig",
+       "exif-iimcategory-pol": "Politik",
+       "exif-iimcategory-rel": "Religii da uskonduz",
+       "exif-iimcategory-sci": "Tedo da tehnologii",
+       "exif-iimcategory-soi": "Socialižed küzundad",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-war": "Voinad, konfliktad da kundanholdundad",
+       "exif-iimcategory-wea": "Sä",
+       "exif-urgency-normal": "Normaline ($1)",
+       "exif-urgency-low": "Madal ($1)",
+       "exif-urgency-high": "Korged ($1)"
+}
diff --git a/languages/i18n/exif/vi.json b/languages/i18n/exif/vi.json
new file mode 100644 (file)
index 0000000..411ed3e
--- /dev/null
@@ -0,0 +1,364 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Minh Nguyen",
+                       "Prenn",
+                       "Quenhitran",
+                       "Vinhtantran"
+               ]
+       },
+       "exif-imagewidth": "Chiều ngang",
+       "exif-imagelength": "Chiều cao",
+       "exif-bitspersample": "Bit trên mẫu",
+       "exif-compression": "Kiểu nén",
+       "exif-photometricinterpretation": "Thành phần điểm ảnh",
+       "exif-orientation": "Hướng",
+       "exif-samplesperpixel": "Số mẫu trên điểm ảnh",
+       "exif-planarconfiguration": "Cách xếp dữ liệu",
+       "exif-ycbcrsubsampling": "Tỷ lệ lấy mẫu con của Y so với C",
+       "exif-ycbcrpositioning": "Định vị Y và C",
+       "exif-xresolution": "Phân giải theo chiều ngang",
+       "exif-yresolution": "Phân giải theo chiều cao",
+       "exif-stripoffsets": "Vị trí dữ liệu hình",
+       "exif-rowsperstrip": "Số hàng trên mỗi mảnh",
+       "exif-stripbytecounts": "Số byte trên mỗi mảnh nén",
+       "exif-jpeginterchangeformat": "Vị trí SOI JPEG",
+       "exif-jpeginterchangeformatlength": "Kích cỡ (byte) của JPEG",
+       "exif-whitepoint": "Sắc độ điểm trắng",
+       "exif-primarychromaticities": "Sắc độ của màu cơ bản",
+       "exif-ycbcrcoefficients": "Hệ số ma trận biến đổi không gian màu",
+       "exif-referenceblackwhite": "Giá trị tham chiếu cặp trắng đen",
+       "exif-datetime": "Ngày giờ sửa tập tin",
+       "exif-imagedescription": "Tiêu đề của hình",
+       "exif-make": "Hãng máy ảnh",
+       "exif-model": "Dòng máy ảnh",
+       "exif-software": "Phần mềm sử dụng",
+       "exif-artist": "Tác giả",
+       "exif-copyright": "Bản quyền",
+       "exif-exifversion": "Phiên bản Exif",
+       "exif-flashpixversion": "Phiên bản Flashpix được hỗ trợ",
+       "exif-colorspace": "Không gian màu",
+       "exif-componentsconfiguration": "Ý nghĩa thành phần",
+       "exif-compressedbitsperpixel": "Độ nén (bit/điểm)",
+       "exif-pixelxdimension": "Chiều ngang hình",
+       "exif-pixelydimension": "Chiều cao hình",
+       "exif-usercomment": "Lời bình của tác giả",
+       "exif-relatedsoundfile": "Tập tin âm thanh liên quan",
+       "exif-datetimeoriginal": "Ngày giờ sinh dữ liệu",
+       "exif-datetimedigitized": "Ngày giờ số hóa",
+       "exif-subsectime": "Ngày giờ nhỏ hơn giây",
+       "exif-subsectimeoriginal": "Ngày giờ gốc nhỏ hơn giây",
+       "exif-subsectimedigitized": "Ngày giờ số hóa nhỏ hơn giây",
+       "exif-exposuretime": "Tốc độ màn trập",
+       "exif-exposuretime-format": "$1 giây ($2)",
+       "exif-fnumber": "Khẩu độ ống kính",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Chế độ phơi sáng",
+       "exif-spectralsensitivity": "Độ nhạy quang phổ",
+       "exif-isospeedratings": "Độ nhạy sáng (tốc độ ISO)",
+       "exif-shutterspeedvalue": "Tốc độ cửa chớp (APEX)",
+       "exif-aperturevalue": "Độ mở ống kính (APEX)",
+       "exif-brightnessvalue": "Độ sáng (APEX)",
+       "exif-exposurebiasvalue": "Độ lệch phơi sáng",
+       "exif-maxaperturevalue": "Khẩu độ cực đại qua đất",
+       "exif-subjectdistance": "Khoảng cách vật thể",
+       "exif-meteringmode": "Chế độ đo",
+       "exif-lightsource": "Nguồn sáng",
+       "exif-flash": "Đèn chớp",
+       "exif-focallength": "Độ dài tiêu cự thấu kính",
+       "exif-focallength-format": "$1 mm",
+       "exif-subjectarea": "Diện tích vật thể",
+       "exif-flashenergy": "Nguồn đèn chớp",
+       "exif-focalplanexresolution": "Phân giải X trên mặt phẳng tiêu",
+       "exif-focalplaneyresolution": "Phân giải Y trên mặt phẳng tiêu",
+       "exif-focalplaneresolutionunit": "Đơn vị phân giải trên mặt phẳng tiêu",
+       "exif-subjectlocation": "Vị trí vật thể",
+       "exif-exposureindex": "Chỉ số phơi sáng",
+       "exif-sensingmethod": "Phương pháp đo",
+       "exif-filesource": "Nguồn tập tin",
+       "exif-scenetype": "Loại cảnh",
+       "exif-customrendered": "Sửa hình thủ công",
+       "exif-exposuremode": "Chế độ phơi sáng",
+       "exif-whitebalance": "Cân bằng trắng",
+       "exif-digitalzoomratio": "Tỷ lệ phóng lớn kỹ thuật số",
+       "exif-focallengthin35mmfilm": "Tiêu cự trong phim 35 mm",
+       "exif-scenecapturetype": "Kiểu chụp cảnh",
+       "exif-gaincontrol": "Điều khiển cảnh",
+       "exif-contrast": "Độ tương phản",
+       "exif-saturation": "Độ bão hòa",
+       "exif-sharpness": "Độ sắc nét",
+       "exif-devicesettingdescription": "Miêu tả cài đặt thiết bị",
+       "exif-subjectdistancerange": "Khoảng cách tới vật",
+       "exif-imageuniqueid": "ID hình duy nhất",
+       "exif-gpsversionid": "Phiên bản thẻ GPS",
+       "exif-gpslatituderef": "Vĩ độ bắc hay nam",
+       "exif-gpslatitude": "Vĩ độ",
+       "exif-gpslongituderef": "Kinh độ đông hay tây",
+       "exif-gpslongitude": "Kinh độ",
+       "exif-gpsaltituderef": "Tham chiếu cao độ",
+       "exif-gpsaltitude": "Cao độ",
+       "exif-gpstimestamp": "Giờ GPS (đồng hồ nguyên tử)",
+       "exif-gpssatellites": "Vệ tinh nhân tạo dùng để đo",
+       "exif-gpsstatus": "Tình trạng đầu thu",
+       "exif-gpsmeasuremode": "Chế độ đo",
+       "exif-gpsdop": "Độ chính xác máy đo",
+       "exif-gpsspeedref": "Đơn vị tốc độ",
+       "exif-gpsspeed": "Tốc độ đầu thu GPS",
+       "exif-gpstrackref": "Tham chiếu cho hướng chuyển động",
+       "exif-gpstrack": "Hướng chuyển động",
+       "exif-gpsimgdirectionref": "Tham chiếu cho hướng của ảnh",
+       "exif-gpsimgdirection": "Hướng của hình",
+       "exif-gpsmapdatum": "Dữ liệu trắc địa đã dùng",
+       "exif-gpsdestlatituderef": "Tham chiếu cho vĩ độ đích",
+       "exif-gpsdestlatitude": "Vĩ độ đích",
+       "exif-gpsdestlongituderef": "Tham chiếu cho kinh độ đích",
+       "exif-gpsdestlongitude": "Kinh độ đích",
+       "exif-gpsdestbearingref": "Tham chiếu cho phương hướng đích",
+       "exif-gpsdestbearing": "Phương hướng đích",
+       "exif-gpsdestdistanceref": "Tham chiếu cho khoảng cách đến đích",
+       "exif-gpsdestdistance": "Khoảng cách đến đích",
+       "exif-gpsprocessingmethod": "Tên phương pháp xử lý GPS",
+       "exif-gpsareainformation": "Tên khu vực theo GPS",
+       "exif-gpsdatestamp": "Ngày theo GPS",
+       "exif-gpsdifferential": "Sửa vi sai GPS",
+       "exif-jpegfilecomment": "Chú giải tập tin JPEG",
+       "exif-keywords": "Từ khóa",
+       "exif-worldregioncreated": "Phần thế giới của máy chụp trong lúc chụp",
+       "exif-countrycreated": "Quốc gia của máy chụp trong lúc chụp",
+       "exif-countrycodecreated": "Mã của quốc gia của máy chụp trong lúc chụp",
+       "exif-provinceorstatecreated": "Tỉnh bang của máy chụp trong lúc chụp",
+       "exif-citycreated": "Thành phố của máy chụp trong lúc chụp",
+       "exif-sublocationcreated": "Khu hoặc phố của máy chụp trong lúc chụp",
+       "exif-worldregiondest": "Phần thế giới xuất hiện",
+       "exif-countrydest": "Quốc gia xuất hiện",
+       "exif-countrycodedest": "Mã của quốc gia xuất hiện",
+       "exif-provinceorstatedest": "Tỉnh bang xuất hiện",
+       "exif-citydest": "Thành phố xuất hiện",
+       "exif-sublocationdest": "Khu hoặc phố xuất hiện",
+       "exif-objectname": "Tên ngắn",
+       "exif-specialinstructions": "Hướng dẫn sử dụng đặc biệt",
+       "exif-headline": "Đề mục",
+       "exif-credit": "Ghi công / nhà cung cấp",
+       "exif-source": "Nguồn gốc",
+       "exif-editstatus": "Tình trạng biên tập hình ảnh",
+       "exif-urgency": "Mức độ khẩn cấp",
+       "exif-fixtureidentifier": "Tên mục",
+       "exif-locationdest": "Địa điểm xuất hiện",
+       "exif-locationdestcode": "Mã của địa điểm xuất hiện",
+       "exif-objectcycle": "Phần của ngày",
+       "exif-contact": "Thông tin liên lạc",
+       "exif-writer": "Người viết lời chú giải",
+       "exif-languagecode": "Ngôn ngữ",
+       "exif-iimversion": "Phiên bản IIM",
+       "exif-iimcategory": "Thể loại",
+       "exif-iimsupplementalcategory": "Thể loại bổ sung",
+       "exif-datetimeexpires": "Ngày hạn sử dụng",
+       "exif-datetimereleased": "Ngày phát hành",
+       "exif-originaltransmissionref": "Mã vị trí truyền dẫn ban đầu",
+       "exif-identifier": "Định danh",
+       "exif-lens": "Ống kính được sử dụng",
+       "exif-serialnumber": "Số sêri của máy chụp hình",
+       "exif-cameraownername": "Chủ máy chụp hình",
+       "exif-label": "Nhãn",
+       "exif-datetimemetadata": "Ngày sửa siêu dữ liệu lần cuối",
+       "exif-nickname": "Tên hình không chính thức",
+       "exif-rating": "Đánh giá (trên 5)",
+       "exif-rightscertificate": "Chứng thư quản lý quyền",
+       "exif-copyrighted": "Tình trạng bản quyền",
+       "exif-copyrightowner": "Nhà giữ bản quyền",
+       "exif-usageterms": "Điều khoản sử dụng",
+       "exif-webstatement": "Thông tin bản quyền trực tuyến",
+       "exif-originaldocumentid": "ID duy nhất của tài liệu gốc",
+       "exif-licenseurl": "URL của giấy phép bản quyền",
+       "exif-morepermissionsurl": "Thông tin cấp phép thay thế",
+       "exif-attributionurl": "URL để đặt liên kết đến khi tái sử dụng",
+       "exif-preferredattributionname": "Tên để ghi công khi tái sử dụng",
+       "exif-pngfilecomment": "Chú giải tập tin PNG",
+       "exif-disclaimer": "Phủ nhận",
+       "exif-contentwarning": "Cảnh báo về nội dung",
+       "exif-giffilecomment": "Chú giải tập tin GIF",
+       "exif-intellectualgenre": "Kiểu khoản",
+       "exif-subjectnewscode": "Mã chủ đề",
+       "exif-scenecode": "Mã cảnh IPTC",
+       "exif-event": "Sự kiện xuất hiện",
+       "exif-organisationinimage": "Tổ chức xuất hiện",
+       "exif-personinimage": "Người xuất hiện",
+       "exif-originalimageheight": "Chiều cao của hình trước khi được cắt",
+       "exif-originalimagewidth": "Chiều rộng của hình trước khi được cắt",
+       "exif-compression-1": "Không nén",
+       "exif-compression-2": "CCITT Nhóm 3: mã hóa thời gian chạy Huffman sửa một chiều",
+       "exif-compression-3": "CCITT Nhóm 3: mã hóa fax",
+       "exif-compression-4": "CCITT Nhóm 4: mã hóa fax",
+       "exif-compression-6": "JPEG (cũ)",
+       "exif-compression-34712": "JPEG 2000",
+       "exif-copyrighted-true": "Dưới bản quyền",
+       "exif-copyrighted-false": "Cờ bản quyền không được đặt",
+       "exif-photometricinterpretation-0": "Trắng đen (trắng là 0)",
+       "exif-photometricinterpretation-1": "Trắng đen (đen là 0)",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-3": "Bảng màu",
+       "exif-photometricinterpretation-4": "Mặt nạ trong suốt",
+       "exif-photometricinterpretation-5": "Riêng rẽ (có lẽ CMYK)",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (mã hóa Hiệp hội Màu sắc Quốc tế)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (mã hóa Liên minh Viễn thông Quốc tế)",
+       "exif-photometricinterpretation-32803": "Dãy bộ lọc màu sắc",
+       "exif-photometricinterpretation-34892": "Thô tuyến",
+       "exif-unknowndate": "Không biết ngày",
+       "exif-orientation-1": "Thường",
+       "exif-orientation-2": "Lộn ngược theo phương ngang",
+       "exif-orientation-3": "Quay 180°",
+       "exif-orientation-4": "Lộn ngược theo phương dọc",
+       "exif-orientation-5": "Quay 90° bên trái và lộn thẳng đứng",
+       "exif-orientation-6": "Quay 90° bên trái",
+       "exif-orientation-7": "Quay 90° bên phải và lộn thẳng đứng",
+       "exif-orientation-8": "Quay 90° bên phải",
+       "exif-planarconfiguration-1": "định dạng thấp",
+       "exif-planarconfiguration-2": "định dạng phẳng",
+       "exif-xyresolution-i": "$1 điểm/inch",
+       "exif-xyresolution-c": "$1 điểm/cm",
+       "exif-colorspace-65535": "Chưa hiệu chỉnh",
+       "exif-componentsconfiguration-0": "không tồn tại",
+       "exif-exposureprogram-0": "Không chỉ định",
+       "exif-exposureprogram-1": "Thủ công",
+       "exif-exposureprogram-2": "Chương trình chuẩn",
+       "exif-exposureprogram-3": "Ưu tiên độ mở ống kính",
+       "exif-exposureprogram-4": "Ưu tiên tốc độ sập",
+       "exif-exposureprogram-5": "Chế độ sáng tạo (thiên về độ sâu trường ảnh)",
+       "exif-exposureprogram-6": "Chương trình chụp (thien về tốc độ sập nhanh)",
+       "exif-exposureprogram-7": "Chế độ chân dung (đối với ảnh chụp gần với phông nền ở ngoài tầm tiêu cự)",
+       "exif-exposureprogram-8": "Chế độ phong cảnh (đối với ảnh phong cảnh với phông ở trong tiêu cự)",
+       "exif-subjectdistance-value": "$1 mét",
+       "exif-meteringmode-0": "Không biết",
+       "exif-meteringmode-1": "Trung bình",
+       "exif-meteringmode-2": "Đo sáng trung bình, tập trung vào vùng trung tâm",
+       "exif-meteringmode-3": "Vết",
+       "exif-meteringmode-4": "Đa vết",
+       "exif-meteringmode-5": "Lấy mẫu",
+       "exif-meteringmode-6": "Cục bộ",
+       "exif-meteringmode-255": "Khác",
+       "exif-lightsource-0": "Không biết",
+       "exif-lightsource-1": "Trời nắng",
+       "exif-lightsource-2": "Huỳnh quang",
+       "exif-lightsource-3": "Vonfram (ánh nóng sáng)",
+       "exif-lightsource-4": "Đèn chớp",
+       "exif-lightsource-9": "Trời đẹp",
+       "exif-lightsource-10": "Trời mây",
+       "exif-lightsource-11": "Che nắng",
+       "exif-lightsource-12": "Nắng huỳnh quang (D 5700–7100 K)",
+       "exif-lightsource-13": "Màu trắng huỳnh quang ban ngày (N 4600–5400 K)",
+       "exif-lightsource-14": "Màu trắng mát huỳnh quang (W 3900–4500 K)",
+       "exif-lightsource-15": "Màu trắng huỳnh quang (WW 3200–3700 K)",
+       "exif-lightsource-17": "Ánh chuẩn A",
+       "exif-lightsource-18": "Ánh chuẩn B",
+       "exif-lightsource-19": "Ánh chuẩn C",
+       "exif-lightsource-24": "Vonfram xưởng ISO",
+       "exif-lightsource-255": "Nguồn ánh sáng khác",
+       "exif-flash-fired-0": "Đèn flash không chớp",
+       "exif-flash-fired-1": "Có chớp đèn flash",
+       "exif-flash-return-0": "không có chức năng kiểm tra tín hiệu trả về nhấp nháy",
+       "exif-flash-return-2": "không phát hiện ra ánh sáng trả về nhấp nháy",
+       "exif-flash-return-3": "phát hiện ra ánh sáng trả về nhấp nháy",
+       "exif-flash-mode-1": "chớp flash cưỡng ép",
+       "exif-flash-mode-2": "tắt flash cưỡng ép",
+       "exif-flash-mode-3": "chế độ tự động",
+       "exif-flash-function-1": "Không có chức năng flash",
+       "exif-flash-redeye-1": "chế độ giảm mắt đỏ",
+       "exif-focalplaneresolutionunit-2": "inch",
+       "exif-sensingmethod-1": "Không định rõ",
+       "exif-sensingmethod-2": "Cảm biến vùng màu một mảnh",
+       "exif-sensingmethod-3": "Cảm biến vùng màu hai mảnh",
+       "exif-sensingmethod-4": "Cảm biến vùng màu ba mảnh",
+       "exif-sensingmethod-5": "Cảm biến vùng màu liên tục",
+       "exif-sensingmethod-7": "Cảm biến ba đường",
+       "exif-sensingmethod-8": "Cảm biến đường màu liên tục",
+       "exif-filesource-3": "Máy chụp hình tĩnh kỹ thuật số",
+       "exif-scenetype-1": "Hình chụp thẳng",
+       "exif-customrendered-0": "Thường",
+       "exif-customrendered-1": "Thủ công",
+       "exif-exposuremode-0": "Phơi sáng tự động",
+       "exif-exposuremode-1": "Phơi sáng thủ công",
+       "exif-exposuremode-2": "Tự động chụp nhiều hình",
+       "exif-whitebalance-0": "Cân bằng trắng tự động",
+       "exif-whitebalance-1": "Cân bằng trắng thủ công",
+       "exif-scenecapturetype-0": "Chuẩn",
+       "exif-scenecapturetype-1": "Nằm",
+       "exif-scenecapturetype-2": "Đứng",
+       "exif-scenecapturetype-3": "Cảnh ban đêm",
+       "exif-gaincontrol-0": "Không có",
+       "exif-gaincontrol-1": "Độ rọi thấp",
+       "exif-gaincontrol-2": "Độ rọi cao",
+       "exif-gaincontrol-3": "Độ rọi dưới thấp",
+       "exif-gaincontrol-4": "Độ rọi dưới cao",
+       "exif-contrast-0": "Thường",
+       "exif-contrast-1": "Nhẹ",
+       "exif-contrast-2": "Mạnh",
+       "exif-saturation-0": "Thường",
+       "exif-saturation-1": "Độ bão hòa thấp",
+       "exif-saturation-2": "Độ bão hòa cao",
+       "exif-sharpness-0": "Thường",
+       "exif-sharpness-1": "Dẻo",
+       "exif-sharpness-2": "Cứng",
+       "exif-subjectdistancerange-0": "Không biết",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Nhìn gần",
+       "exif-subjectdistancerange-3": "Nhìn xa",
+       "exif-gpslatitude-n": "Vĩ độ bắc",
+       "exif-gpslatitude-s": "Vĩ độ nam",
+       "exif-gpslongitude-e": "Kinh độ đông",
+       "exif-gpslongitude-w": "Kinh độ tây",
+       "exif-gpsaltitude-above-sealevel": "$1 mét trên mực nước biển",
+       "exif-gpsaltitude-below-sealevel": "$1 dưới mực nước biển",
+       "exif-gpsstatus-a": "Đang đo",
+       "exif-gpsstatus-v": "Mức độ khả năng liên điều hành",
+       "exif-gpsmeasuremode-2": "Đo 2 chiều",
+       "exif-gpsmeasuremode-3": "Đo 3 chiều",
+       "exif-gpsspeed-k": "Kilômét một giờ",
+       "exif-gpsspeed-m": "Dặm một giờ",
+       "exif-gpsspeed-n": "Hải lý một giờ",
+       "exif-gpsdestdistance-k": "Kilômét",
+       "exif-gpsdestdistance-m": "Dặm Anh",
+       "exif-gpsdestdistance-n": "Hải lý",
+       "exif-gpsdop-excellent": "Xuất sắc ($1)",
+       "exif-gpsdop-good": "Tốt ($1)",
+       "exif-gpsdop-moderate": "Khá ($1)",
+       "exif-gpsdop-fair": "Xấp xỉ ($1)",
+       "exif-gpsdop-poor": "Kém ($1)",
+       "exif-objectcycle-a": "Chỉ ban sáng",
+       "exif-objectcycle-p": "Chỉ ban đêm",
+       "exif-objectcycle-b": "Tối ngày",
+       "exif-gpsdirection-t": "Hướng thật",
+       "exif-gpsdirection-m": "Hướng từ trường",
+       "exif-ycbcrpositioning-1": "Căn giữa",
+       "exif-ycbcrpositioning-2": "Đồng vị trí",
+       "exif-dc-contributor": "Người đóng góp",
+       "exif-dc-coverage": "Phạm vi không gian hoặc thời gian của phương tiện",
+       "exif-dc-date": "Ngày",
+       "exif-dc-publisher": "Nhà xuất bản",
+       "exif-dc-relation": "Phương tiện có liên quan",
+       "exif-dc-rights": "Tác quyền",
+       "exif-dc-source": "Phương tiện gốc",
+       "exif-dc-type": "Kiểu phương tiện",
+       "exif-rating-rejected": "Bị từ chối",
+       "exif-isospeedratings-overflow": "Cao hơn 65.535",
+       "exif-iimcategory-ace": "Nghệ thuật, văn hóa, và giải trí",
+       "exif-iimcategory-clj": "Tội phạm và luật pháp",
+       "exif-iimcategory-dis": "Tai họa và tai nạn",
+       "exif-iimcategory-fin": "Kinh tế và kinh doanh",
+       "exif-iimcategory-edu": "Giáo dục",
+       "exif-iimcategory-evn": "Môi trường",
+       "exif-iimcategory-hth": "Sức khỏe",
+       "exif-iimcategory-hum": "Nhân cảm",
+       "exif-iimcategory-lab": "Lao động",
+       "exif-iimcategory-lif": "Lối sống và giải trí",
+       "exif-iimcategory-pol": "Chính trị",
+       "exif-iimcategory-rel": "Tôn giáo và tín ngưỡng",
+       "exif-iimcategory-sci": "Khoa học và công nghệ",
+       "exif-iimcategory-soi": "Xã hội",
+       "exif-iimcategory-spo": "Thể thao",
+       "exif-iimcategory-war": "Chiến tranh, xung đột, và náo động",
+       "exif-iimcategory-wea": "Thời tiết",
+       "exif-urgency-normal": "Bình thường ($1)",
+       "exif-urgency-low": "Thấp ($1)",
+       "exif-urgency-high": "Cao ($1)",
+       "exif-urgency-other": "Ưu tiên người dùng định nghĩa ($1)"
+}
diff --git a/languages/i18n/exif/vo.json b/languages/i18n/exif/vo.json
new file mode 100644 (file)
index 0000000..4b9efd8
--- /dev/null
@@ -0,0 +1,208 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Malafaya",
+                       "Smeira"
+               ]
+       },
+       "exif-imagewidth": "Vidot",
+       "exif-imagelength": "Geilot",
+       "exif-bitspersample": "Jölätabinets a köl",
+       "exif-compression": "Skemat kobopedama",
+       "exif-photometricinterpretation": "Pixelabinädükam",
+       "exif-orientation": "Kämilüodükam",
+       "exif-samplesperpixel": "Num kölas",
+       "exif-planarconfiguration": "Leodükam nünodas",
+       "exif-ycbcrpositioning": "staned Y e C",
+       "exif-xresolution": "Distidafäg horitätik",
+       "exif-yresolution": "Distidafäg penditik",
+       "exif-stripoffsets": "Topam magodanünodas",
+       "exif-rowsperstrip": "Num kedetas a strip",
+       "exif-stripbytecounts": "Jöläts a strip pekobopedöl",
+       "exif-jpeginterchangeformat": "Topätükön ad JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Jöläts nünodas: JPEG",
+       "exif-whitepoint": "Kölöf püna vietik",
+       "exif-primarychromaticities": "Kölöf stabakölas",
+       "exif-ycbcrcoefficients": "Koäfs votükamataiba kölaspada",
+       "exif-referenceblackwhite": "Pär stabavöladas (vietik/blägik)",
+       "exif-datetime": "Dät e tim votükama ragiva",
+       "exif-imagedescription": "Tiäd magoda",
+       "exif-make": "Fabrikan aparata",
+       "exif-model": "Aparatasot",
+       "exif-software": "Nünömaprogram pegeböl",
+       "exif-artist": "Lautan",
+       "exif-copyright": "Dalaban kopiedagitäta",
+       "exif-exifversion": "Fomam-Exif",
+       "exif-colorspace": "Kölaspad",
+       "exif-componentsconfiguration": "Sinif komponena alik",
+       "exif-compressedbitsperpixel": "Mod kobopedama magoda",
+       "exif-pixelxdimension": "Magodavidot",
+       "exif-pixelydimension": "Magodageilot",
+       "exif-usercomment": "Küpets gebana",
+       "exif-relatedsoundfile": "Tonaragiv tefik",
+       "exif-datetimeoriginal": "Dät e tim jafama nünodas",
+       "exif-datetimedigitized": "Dät e tim numatükama",
+       "exif-subsectime": "Dät e tim (1/100 s)",
+       "exif-subsectimeoriginal": "Dät e tim rigiks (1/100 s)",
+       "exif-subsectimedigitized": "Dät e tim numeriks (1/100 s)",
+       "exif-exposuretime": "Jonamadul",
+       "exif-exposuretime-format": "$1 sek ($2)",
+       "exif-fnumber": "Num-F",
+       "exif-exposureprogram": "Jonamaprogram",
+       "exif-spectralsensitivity": "Senöfik späktrumik",
+       "exif-isospeedratings": "Senöf (ISO)",
+       "exif-shutterspeedvalue": "Färmikamavifot: APEX",
+       "exif-aperturevalue": "Maifamagrad: APEX",
+       "exif-brightnessvalue": "Litöf: APEX",
+       "exif-exposurebiasvalue": "Gudükumam jonama",
+       "exif-maxaperturevalue": "Maifikam maxumik",
+       "exif-subjectdistance": "Fagot zeila",
+       "exif-meteringmode": "Mafamamod",
+       "exif-lightsource": "Litafonät",
+       "exif-flash": "Kämalelit",
+       "exif-focallength": "Foukafagot",
+       "exif-subjectarea": "Portät",
+       "exif-flashenergy": "Nämet kämalelita",
+       "exif-focalplanexresolution": "Distidafäg-X foukaplena",
+       "exif-focalplaneyresolution": "Distidafäg-Y foukaplena",
+       "exif-focalplaneresolutionunit": "Distidafägastabäd foukaplena",
+       "exif-subjectlocation": "Staned zeila",
+       "exif-exposureindex": "Mafädanum litükama",
+       "exif-sensingmethod": "Senametod",
+       "exif-filesource": "Fonät ragiva",
+       "exif-scenetype": "Sot süfüla",
+       "exif-customrendered": "Magodibevobam pelönedüköl",
+       "exif-exposuremode": "Litükamamod",
+       "exif-whitebalance": "Vietaleigavet",
+       "exif-digitalzoomratio": "Gretükamapropor numerik",
+       "exif-focallengthin35mmfilm": "Foukafagot pro films milmetas 35",
+       "exif-scenecapturetype": "Sot süfülilasumama",
+       "exif-gaincontrol": "Litakontrol",
+       "exif-contrast": "Taädam",
+       "exif-saturation": "Satükam",
+       "exif-sharpness": "Magodakurat",
+       "exif-devicesettingdescription": "Bepenam parametema aparata",
+       "exif-subjectdistancerange": "Zeilafagot",
+       "exif-imageuniqueid": "Magodadientifäd balik",
+       "exif-gpslatituderef": "Videt Nolüdik u Sulüdik",
+       "exif-gpslatitude": "Videt",
+       "exif-gpslongituderef": "Lunet Lofüdik u Vesüdik",
+       "exif-gpslongitude": "Lunet",
+       "exif-gpsaltituderef": "Geilotastab",
+       "exif-gpsaltitude": "Geilot",
+       "exif-gpstimestamp": "tim-GPS (glok taumik)",
+       "exif-gpssatellites": "Muneds pö mafam pegeböls",
+       "exif-gpsstatus": "Getanastad",
+       "exif-gpsmeasuremode": "Mafamametod",
+       "exif-gpsdop": "Kurat mafama",
+       "exif-gpsspeedref": "Vifotastabäd",
+       "exif-gpsspeed": "Vifot GPS-getiana",
+       "exif-gpstrackref": "Stab pro mufalüod",
+       "exif-gpstrack": "Mufalüod",
+       "exif-gpsimgdirectionref": "Stab pro magodalüod",
+       "exif-gpsimgdirection": "Lüod magoda",
+       "exif-gpsdestlatituderef": "Stab videta zeila",
+       "exif-gpsdestlatitude": "Zeilavidet",
+       "exif-gpsdestlongituderef": "Stab luneta zeila",
+       "exif-gpsdestlongitude": "Zeilalunet",
+       "exif-gpsdestbearingref": "Stab lüodükama zeila",
+       "exif-gpsdestbearing": "Zeilalüod",
+       "exif-gpsdestdistanceref": "Stab fagota zeila",
+       "exif-gpsdestdistance": "Fagot jü lükömöp",
+       "exif-gpsprocessingmethod": "Nem dunamoda-GPS",
+       "exif-gpsareainformation": "Nem topäda: GPS",
+       "exif-gpsdatestamp": "Dät ela GPS",
+       "exif-source": "Fonät",
+       "exif-writer": "Penan",
+       "exif-languagecode": "Pük",
+       "exif-iimcategory": "Klad",
+       "exif-compression-1": "No pekobopedöl",
+       "exif-unknowndate": "Dät nesevädik",
+       "exif-orientation-1": "Nomik",
+       "exif-orientation-2": "Petülöl horitäto",
+       "exif-orientation-3": "Mö 180° pefleköl",
+       "exif-orientation-4": "Petülöl pendito",
+       "exif-planarconfiguration-1": "fomät grobik",
+       "exif-componentsconfiguration-0": "no dabinon",
+       "exif-exposureprogram-0": "No pemiedetöl",
+       "exif-exposureprogram-1": "Gebü nams",
+       "exif-exposureprogram-2": "Program nomöfik",
+       "exif-exposureprogram-5": "Program buüköl feladibi",
+       "exif-exposureprogram-6": "Program buüköl färmikami vifikum",
+       "exif-exposureprogram-7": "Pöträtaprogram (pro fotografam nilao, pödaglun no kuratik)",
+       "exif-exposureprogram-8": "Länodaprogram (pro länodifotografam, pödaglun kuratik)",
+       "exif-subjectdistance-value": "Mets $1",
+       "exif-meteringmode-0": "Nesevädik",
+       "exif-meteringmode-1": "Zäned",
+       "exif-meteringmode-3": "Pünamafam",
+       "exif-meteringmode-4": "Mödapünamafam",
+       "exif-meteringmode-5": "Pated",
+       "exif-meteringmode-6": "Dilik",
+       "exif-meteringmode-255": "Votik",
+       "exif-lightsource-0": "Nesevädik",
+       "exif-lightsource-1": "Delalit",
+       "exif-lightsource-4": "Kämalelit",
+       "exif-lightsource-9": "Stom gudik",
+       "exif-lightsource-10": "Stom lefogagik",
+       "exif-lightsource-11": "Jad",
+       "exif-lightsource-17": "Stabalit A",
+       "exif-lightsource-18": "Stabalit B",
+       "exif-lightsource-19": "Stabalit C",
+       "exif-lightsource-255": "Litafonät votik",
+       "exif-flash-fired-0": "Kämalelit no pegebon",
+       "exif-flash-fired-1": "Kämalelit pegebon",
+       "exif-flash-mode-1": "Kämalelitigeb bligik",
+       "exif-flash-mode-2": "Kämalelitinegeb bligik",
+       "exif-flash-mode-3": "stad itjäfidik",
+       "exif-flash-function-1": "Kämalelit no dabinon",
+       "exif-flash-redeye-1": "läsükam redaloga",
+       "exif-focalplaneresolutionunit-2": "puids",
+       "exif-sensingmethod-1": "No pemiedetöl",
+       "exif-sensingmethod-5": "Kölisenian mastripik sürfatik",
+       "exif-sensingmethod-7": "Senian killienöfik",
+       "exif-sensingmethod-8": "Kölisenian lienöfik mastripik",
+       "exif-scenetype-1": "Magod pefotograföl nemediko",
+       "exif-customrendered-0": "Kösömik",
+       "exif-customrendered-1": "Fa geban pelönedüköl",
+       "exif-exposuremode-0": "Jonam itjäfidik",
+       "exif-exposuremode-1": "Jonam gebü nams",
+       "exif-exposuremode-2": "Kläm itjäfidik",
+       "exif-whitebalance-0": "Vietaleigavet itjäfidik",
+       "exif-whitebalance-1": "Vietaleigavet gebü nams",
+       "exif-scenecapturetype-0": "Kösömik",
+       "exif-scenecapturetype-1": "Länod",
+       "exif-scenecapturetype-2": "Pöträt",
+       "exif-scenecapturetype-3": "Ün neit",
+       "exif-gaincontrol-0": "Nonik",
+       "exif-contrast-0": "Nomik",
+       "exif-contrast-1": "Fiböfik",
+       "exif-contrast-2": "Nämöfik",
+       "exif-saturation-0": "Nomik",
+       "exif-saturation-1": "Satükam fiböfik",
+       "exif-saturation-2": "Satükam nämöfik",
+       "exif-sharpness-0": "Nomik",
+       "exif-sharpness-1": "Pülik",
+       "exif-sharpness-2": "Nämöfik",
+       "exif-subjectdistancerange-0": "Nesevädik",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Loged nilik",
+       "exif-subjectdistancerange-3": "Loged fägik",
+       "exif-gpslatitude-n": "Videt nolüdik",
+       "exif-gpslatitude-s": "Videt  Sulüdik",
+       "exif-gpslongitude-e": "lunet lofüdik",
+       "exif-gpslongitude-w": "lunet vesüdik",
+       "exif-gpsstatus-a": "Mafam padunon",
+       "exif-gpsmeasuremode-2": "mafam 2-mafotik",
+       "exif-gpsmeasuremode-3": "mafam 3-mafotik",
+       "exif-gpsspeed-k": "Milmets a düp",
+       "exif-gpsspeed-m": "Liöls a düp",
+       "exif-gpsspeed-n": "Snobs",
+       "exif-gpsdestdistance-k": "Milmets",
+       "exif-gpsdestdistance-m": "Liöls",
+       "exif-gpsdirection-t": "Lüod veratik",
+       "exif-gpsdirection-m": "Lüod magnetik",
+       "exif-dc-date": "Dät(s)",
+       "exif-dc-publisher": "Püban",
+       "exif-iimcategory-spo": "Spots",
+       "exif-iimcategory-wea": "Stom"
+}
diff --git a/languages/i18n/exif/vro.json b/languages/i18n/exif/vro.json
new file mode 100644 (file)
index 0000000..a55d592
--- /dev/null
@@ -0,0 +1,218 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Võrok"
+               ]
+       },
+       "exif-imagewidth": "Lakjus",
+       "exif-imagelength": "Korgus",
+       "exif-bitspersample": "Bitti osa kotsilõ",
+       "exif-compression": "Kokkopakmisviis",
+       "exif-photometricinterpretation": "Pildipunktõ ülesehitüs",
+       "exif-orientation": "Tsiht",
+       "exif-samplesperpixel": "Ossõ arv",
+       "exif-planarconfiguration": "Teedüse kõrraldaminõ",
+       "exif-ycbcrsubsampling": "Y ja C alanäütüsvaihõkõrd",
+       "exif-ycbcrpositioning": "Y ja C paikasäädmine",
+       "exif-xresolution": "Pildi terävüs lajoldõ",
+       "exif-yresolution": "Pildi terävüs pikuldõ",
+       "exif-stripoffsets": "Pilditeedüse kotus",
+       "exif-rowsperstrip": "Riban rivve",
+       "exif-stripbytecounts": "Baitõ kokkopakitun riban",
+       "exif-jpeginterchangeformat": "Kavvus JPEG SOI-st",
+       "exif-jpeginterchangeformatlength": "JPEG-teedüssen baitõ",
+       "exif-whitepoint": "Valgõ punkti värmiarv",
+       "exif-primarychromaticities": "Päävärme värmiarvoq",
+       "exif-ycbcrcoefficients": "Värmiruumi tõõsõndusmaatriksi elemendiq",
+       "exif-referenceblackwhite": "Musta-valgõpaari võrrõlusarvoq",
+       "exif-datetime": "Viimäte muudõt",
+       "exif-imagedescription": "Pildiallkiri",
+       "exif-make": "Kaamõra tekij",
+       "exif-model": "Kaamõra mutõl",
+       "exif-software": "Pruugit tarkvara",
+       "exif-artist": "Tekij",
+       "exif-copyright": "Tegijäõigusõ umanik",
+       "exif-exifversion": "Exif-kujo",
+       "exif-flashpixversion": "Toet Flashpix-kujo",
+       "exif-colorspace": "Värmiruum",
+       "exif-componentsconfiguration": "Egä osa tähendüs",
+       "exif-compressedbitsperpixel": "Pildi kokkopakmismuud",
+       "exif-pixelxdimension": "Kõlbolinõ pildi lakjus",
+       "exif-pixelydimension": "Kõlbolinõ pildi korgus",
+       "exif-usercomment": "Pruukja kommõntaariq",
+       "exif-relatedsoundfile": "Manopant helüteedüstü",
+       "exif-datetimeoriginal": "Luumisaig",
+       "exif-datetimedigitized": "Digitalisiirmisaig",
+       "exif-subsectime": "Ao sekundiosaq",
+       "exif-subsectimeoriginal": "Edimält olnuq ao sekundiosaq",
+       "exif-subsectimedigitized": "Digitalisiirmisao sekundiosaq",
+       "exif-exposuretime": "Valgustusaig",
+       "exif-exposuretime-format": "$1 sek ($2)",
+       "exif-fnumber": "Mulguvaihõkõrd",
+       "exif-exposureprogram": "Valgustusprogramm",
+       "exif-spectralsensitivity": "Spektri herküs",
+       "exif-isospeedratings": "Herküs (ISO)",
+       "exif-shutterspeedvalue": "Katigu kibõhus",
+       "exif-aperturevalue": "Läbilaskmismulk",
+       "exif-brightnessvalue": "Helehüs",
+       "exif-exposurebiasvalue": "Valgustusõ parandus",
+       "exif-maxaperturevalue": "Kõgõ suurõmb läbilaskmismulk",
+       "exif-subjectdistance": "Tsihtmärgi kavvus",
+       "exif-meteringmode": "Mõõtmisviis",
+       "exif-lightsource": "Valgusläteq",
+       "exif-flash": "Välk",
+       "exif-focallength": "Läädse palotuslakjus",
+       "exif-subjectarea": "Tsihtmärgi ala",
+       "exif-flashenergy": "Välgü vägi",
+       "exif-focalplanexresolution": "Täpsüstüsastmõ X-resolutsiuun",
+       "exif-focalplaneyresolution": "Täpsüstüstasõmõ Y-resolutsiuun",
+       "exif-focalplaneresolutionunit": "Täpsüstüstasõmõ resolutsiooni mõõt",
+       "exif-subjectlocation": "Tsihtmärgi kotus",
+       "exif-exposureindex": "Valgustusindeks",
+       "exif-sensingmethod": "Mõõtmisviis",
+       "exif-filesource": "Teedüstüläteq",
+       "exif-scenetype": "Pilditüüp",
+       "exif-customrendered": "Hindäperi pilditoimõndus",
+       "exif-exposuremode": "Valgustusviis",
+       "exif-whitebalance": "Valgõ tasakaal",
+       "exif-digitalzoomratio": "Digitaalnõ suurõnduskõrdaja",
+       "exif-focallengthin35mmfilm": "35 mm-dse filmi palotusvaheq",
+       "exif-scenecapturetype": "Pildi sissevõtmisviis",
+       "exif-gaincontrol": "Pildi säädmine",
+       "exif-contrast": "Kontrast",
+       "exif-saturation": "Värmikülläsüs",
+       "exif-sharpness": "Terävüs",
+       "exif-devicesettingdescription": "Kaamõra säädmiisi seletüs",
+       "exif-subjectdistancerange": "Tsihtmärgi kavvusvaih",
+       "exif-imageuniqueid": "Pildi tunnusnummõr",
+       "exif-gpsversionid": "GPS-koodi kujo",
+       "exif-gpslatituderef": "Põh'a- vai lõunalakjus",
+       "exif-gpslatitude": "Lakjus",
+       "exif-gpslongituderef": "Hummogu- vai õdagupikkus",
+       "exif-gpslongitude": "Pikkus",
+       "exif-gpsaltituderef": "Korgusõ võrrõluspunkt",
+       "exif-gpsaltitude": "Korgus",
+       "exif-gpstimestamp": "GPS-aig (aatomikell)",
+       "exif-gpssatellites": "Mõõtmisõs pruugiduq satõlliidiq",
+       "exif-gpsstatus": "Vastavõtja sais",
+       "exif-gpsmeasuremode": "Mõõtmisviis",
+       "exif-gpsdop": "Mõõtmistäpsüs",
+       "exif-gpsspeedref": "Kibõhusmõõt",
+       "exif-gpsspeed": "GPS-vastavõtja kibõhus",
+       "exif-gpstrackref": "Liikmistsihi võrrõluspunkt",
+       "exif-gpstrack": "Liikmistsiht",
+       "exif-gpsimgdirectionref": "Pildi tsihi võrrõluspunkt",
+       "exif-gpsimgdirection": "Pildi tsiht",
+       "exif-gpsmapdatum": "Pruugit geodeetiline maamõõtmisteedüs",
+       "exif-gpsdestlatituderef": "Tsihtmärgi lakjusõ võrrõluspunkt",
+       "exif-gpsdestlatitude": "Tsihtmärgi lakjus",
+       "exif-gpsdestlongituderef": "Tsihtmärgi pikkusõ võrrõluspunkt",
+       "exif-gpsdestlongitude": "Tsihtmärgi pikkus",
+       "exif-gpsdestbearingref": "Tsihtmärgi vällätimmise võrrõluspunkt",
+       "exif-gpsdestbearing": "Tsihtmärgi vällätimmine",
+       "exif-gpsdestdistanceref": "Tsihtmärgi kavvusõ võrrõluspunkt",
+       "exif-gpsdestdistance": "Tsihtmärgi kavvus",
+       "exif-gpsprocessingmethod": "GPS-i tüümoodu nimi",
+       "exif-gpsareainformation": "GPS-ala nimi",
+       "exif-gpsdatestamp": "GPS-kuupäiv",
+       "exif-gpsdifferential": "GPS-differentsiaalparandus",
+       "exif-compression-1": "Kokkopakmalda",
+       "exif-unknowndate": "Tundmalda kuupäiv",
+       "exif-orientation-1": "Harilik",
+       "exif-orientation-2": "Pikäle käänet",
+       "exif-orientation-3": "180° käänet",
+       "exif-orientation-4": "Pistü käänet",
+       "exif-orientation-5": "Käänet 90° vastapäivä ja pistü",
+       "exif-orientation-6": "Käänet 90° peripäivä",
+       "exif-orientation-7": "Käänet 90° peripäivä ja pistü",
+       "exif-orientation-8": "Käänet 90° vastapäivä",
+       "exif-planarconfiguration-1": "''chunky''-formaat",
+       "exif-planarconfiguration-2": "''planar''-formaat",
+       "exif-componentsconfiguration-0": "olõ-i",
+       "exif-exposureprogram-0": "Olõ-i paika säet",
+       "exif-exposureprogram-1": "Käsilde paikasäet",
+       "exif-exposureprogram-2": "Põhiprogramm",
+       "exif-exposureprogram-3": "Läbilaskmismulgu põhilisus",
+       "exif-exposureprogram-4": "Katiguao põhilisus",
+       "exif-exposureprogram-5": "Luuva programm (suurõndõt süvvüsterävüst)",
+       "exif-exposureprogram-6": "Liikmisprogramm (suurõndõt katiguao kibõhust)",
+       "exif-exposureprogram-7": "Rinnapildimuud (lähipildele, kon tagapõhi om hägonõ)",
+       "exif-exposureprogram-8": "Maastigumuud (maastigupildele, kon tagapõhi om selge)",
+       "exif-subjectdistance-value": "$1 miitrit",
+       "exif-meteringmode-0": "Tiidmäldä",
+       "exif-meteringmode-1": "Keskmäne",
+       "exif-meteringmode-2": "Keskkotusõperine keskmäne",
+       "exif-meteringmode-3": "Täpp",
+       "exif-meteringmode-4": "Mitmõtäpiline",
+       "exif-meteringmode-5": "Kujond",
+       "exif-meteringmode-6": "Osalinõ",
+       "exif-meteringmode-255": "Muu",
+       "exif-lightsource-0": "Tiidmäldä",
+       "exif-lightsource-1": "Päävävalgus",
+       "exif-lightsource-2": "Päävävalguslamp",
+       "exif-lightsource-3": "Hõõglamp (kunstvalgus)",
+       "exif-lightsource-4": "Välk",
+       "exif-lightsource-9": "Selge ilm",
+       "exif-lightsource-10": "Pilvine ilm",
+       "exif-lightsource-11": "Vari",
+       "exif-lightsource-12": "Päävävalguslamp (D 5700 – 7100K)",
+       "exif-lightsource-13": "Päävävalguslamp (N 4600 – 5400K)",
+       "exif-lightsource-14": "Külmvalgõ päävävalguslamp (W 3900 – 4500K)",
+       "exif-lightsource-15": "Valgõ päävävalguslamp (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standardvalgus A",
+       "exif-lightsource-18": "Standardvalgus B",
+       "exif-lightsource-19": "Standardvalgus C",
+       "exif-lightsource-24": "ISO stuudiohõõglamp",
+       "exif-lightsource-255": "Muu valgus",
+       "exif-focalplaneresolutionunit-2": "tolli",
+       "exif-sensingmethod-1": "Paikasäädmäldä",
+       "exif-sensingmethod-2": "Ütene värmisensor",
+       "exif-sensingmethod-3": "Katõnõ värmisensor",
+       "exif-sensingmethod-4": "Kolmõnõ värmisensor",
+       "exif-sensingmethod-5": "Sarivärmisensor",
+       "exif-sensingmethod-7": "Trilineaarsensor",
+       "exif-sensingmethod-8": "Sarilineaarsensor",
+       "exif-scenetype-1": "Õkva pildistet pilt",
+       "exif-customrendered-0": "Harilik tallitus",
+       "exif-customrendered-1": "Hindäsäet tallitus",
+       "exif-exposuremode-0": "Automaatnõ valgustus",
+       "exif-exposuremode-1": "Hindäsäet valgustus",
+       "exif-exposuremode-2": "Automaatnõ haardminõ",
+       "exif-whitebalance-0": "Automaatnõ valgõ tasakaal",
+       "exif-whitebalance-1": "Hindäsäet valgõ tasakaal",
+       "exif-scenecapturetype-0": "Harilik",
+       "exif-scenecapturetype-1": "Maastik",
+       "exif-scenecapturetype-2": "Rinnapilt",
+       "exif-scenecapturetype-3": "Üüpilt",
+       "exif-gaincontrol-0": "Olõ-i",
+       "exif-gaincontrol-1": "Matal üläkinnütüs",
+       "exif-gaincontrol-2": "Korgõ üläkinnütüs",
+       "exif-gaincontrol-3": "Matal alakinnütüs",
+       "exif-gaincontrol-4": "Korgõ alakinnütüs",
+       "exif-contrast-0": "Harilik",
+       "exif-contrast-1": "Pehmeq",
+       "exif-contrast-2": "Kõva",
+       "exif-saturation-0": "Harilik",
+       "exif-saturation-1": "Väiku värmikülläsüs",
+       "exif-saturation-2": "Suur värmikülläsüs",
+       "exif-sharpness-0": "Harilik",
+       "exif-sharpness-1": "Pehmeq",
+       "exif-sharpness-2": "Kõva",
+       "exif-subjectdistancerange-0": "Tiidmäldäq",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Lähküpilt",
+       "exif-subjectdistancerange-3": "Kavvõpilt",
+       "exif-gpslatitude-n": "Põh'lakjust",
+       "exif-gpslatitude-s": "Lõunalakjust",
+       "exif-gpslongitude-e": "Hummogupikkust",
+       "exif-gpslongitude-w": "Õdagupikkust",
+       "exif-gpsstatus-a": "Mõõtminõ käü",
+       "exif-gpsstatus-v": "Ristimõõtminõ",
+       "exif-gpsmeasuremode-2": "Katõmõõtmõlinõ mõõtminõ",
+       "exif-gpsmeasuremode-3": "Kolmõmõõtmõlinõ mõõtminõ",
+       "exif-gpsspeed-k": "kilomiitrit tunnin",
+       "exif-gpsspeed-m": "miili tunnin",
+       "exif-gpsspeed-n": "sõlmõ",
+       "exif-gpsdirection-t": "Peris tsiht",
+       "exif-gpsdirection-m": "Magnõttsiht"
+}
diff --git a/languages/i18n/exif/wa.json b/languages/i18n/exif/wa.json
new file mode 100644 (file)
index 0000000..a3733c6
--- /dev/null
@@ -0,0 +1,93 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Srtxg"
+               ]
+       },
+       "exif-imagewidth": "Lårdjeur",
+       "exif-imagelength": "Hôteur",
+       "exif-bitspersample": "Bits pa compôzant",
+       "exif-photometricinterpretation": "Compôzaedje des picsels",
+       "exif-orientation": "Oryintåcion",
+       "exif-samplesperpixel": "Nombe di compôzants",
+       "exif-xresolution": "Finté d' coûtchî",
+       "exif-yresolution": "Finté d' astampé",
+       "exif-datetime": "Date ey eure ki l' fitchî a stî candjî",
+       "exif-imagedescription": "Tite di l' imådje",
+       "exif-make": "Måke del camera",
+       "exif-model": "Modele del camera",
+       "exif-software": "Programe eployî",
+       "exif-artist": "Oteur",
+       "exif-copyright": "Ditinteu des abondroets",
+       "exif-exifversion": "Modêye d' exif",
+       "exif-colorspace": "Espåce di coleurs",
+       "exif-usercomment": "Comintaires di l' uzeu",
+       "exif-datetimeoriginal": "Date ey eure ki les dnêyes ont stî fwaites",
+       "exif-datetimedigitized": "Date ey eure do scanaedje",
+       "exif-exposuretime-format": "$1 seg ($2)",
+       "exif-lightsource": "Sourdant del loumire",
+       "exif-filesource": "Fitchî sourdant",
+       "exif-scenetype": "Sôre di sinne",
+       "exif-whitebalance": "Balance di blancs",
+       "exif-digitalzoomratio": "Rapoirt di zoumaedje limerike",
+       "exif-contrast": "Contrasse",
+       "exif-saturation": "Saturaedje",
+       "exif-gpslatituderef": "Latitude Nôr ou Sud",
+       "exif-gpslongituderef": "Londjitude Ess ou Ouwess",
+       "exif-gpslongitude": "Londjitude",
+       "exif-gpsaltituderef": "Referince di hôteur",
+       "exif-gpsaltitude": "Hôteur",
+       "exif-gpstimestamp": "Tins do GPS (ôrlodje atomike)",
+       "exif-gpssatellites": "Sipoutniks eployîs pol mezuraedje",
+       "exif-gpsmeasuremode": "Môde di mzuraedje",
+       "exif-gpsdop": "Precizion di mzuraedje",
+       "exif-gpsareainformation": "No del redjon GPS",
+       "exif-gpsdatestamp": "Date do GPS",
+       "exif-gpsdifferential": "Coridjaedje diferenciel do GPS",
+       "exif-iimcategory": "Categoreye",
+       "exif-iimsupplementalcategory": "Categoreyes di rawete",
+       "exif-orientation-1": "Normå",
+       "exif-orientation-3": "Tourné di 180°",
+       "exif-componentsconfiguration-0": "n' egzistêye nén",
+       "exif-exposureprogram-0": "Nén defini",
+       "exif-exposureprogram-1": "Al mwin",
+       "exif-exposureprogram-2": "Programaedje normå",
+       "exif-subjectdistance-value": "$1 metes",
+       "exif-meteringmode-0": "Nén cnoxhou",
+       "exif-meteringmode-1": "Moyene",
+       "exif-meteringmode-255": "Ôte",
+       "exif-lightsource-0": "Nén cnoxhou",
+       "exif-lightsource-1": "Loumire do djoû",
+       "exif-lightsource-9": "Bon tins",
+       "exif-lightsource-10": "Tins avou des nûlêyes",
+       "exif-lightsource-17": "Loumire standård A",
+       "exif-lightsource-18": "Loumire standård B",
+       "exif-lightsource-19": "Loumire standård C",
+       "exif-lightsource-255": "Ôte sourdant d' loumire",
+       "exif-focalplaneresolutionunit-2": "pôces",
+       "exif-sensingmethod-1": "Nén defineye",
+       "exif-scenetype-1": "On poitrait saetchî directumint",
+       "exif-whitebalance-0": "Balance di blancs otomatike",
+       "exif-whitebalance-1": "Balance di blancs al mwin",
+       "exif-scenecapturetype-3": "Sinne di nute",
+       "exif-contrast-0": "Normå",
+       "exif-contrast-1": "Doûs",
+       "exif-contrast-2": "Deur",
+       "exif-saturation-0": "Normå",
+       "exif-saturation-1": "Fwebe saturaedje",
+       "exif-saturation-2": "Foirt saturaedje",
+       "exif-sharpness-0": "Normåle",
+       "exif-sharpness-1": "Doûce",
+       "exif-sharpness-2": "Deure",
+       "exif-subjectdistancerange-0": "Nén cnoxhowe",
+       "exif-subjectdistancerange-2": "Did près",
+       "exif-subjectdistancerange-3": "Did lon",
+       "exif-gpslatitude-n": "Latitude Nôr",
+       "exif-gpslatitude-s": "Latitude Sud",
+       "exif-gpslongitude-e": "Londjitude Ess",
+       "exif-gpslongitude-w": "Londjitude Ouwess",
+       "exif-gpsspeed-k": "km/h",
+       "exif-gpsspeed-m": "miles/h",
+       "exif-gpsspeed-n": "nuks",
+       "exif-gpsdestdistance-k": "Kilometes"
+}
diff --git a/languages/i18n/exif/war.json b/languages/i18n/exif/war.json
new file mode 100644 (file)
index 0000000..5f78954
--- /dev/null
@@ -0,0 +1,145 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Harvzsf",
+                       "JinJian"
+               ]
+       },
+       "exif-imagewidth": "Kahaluag",
+       "exif-imagelength": "Kahitaas",
+       "exif-bitspersample": "Mga bit kada komponente",
+       "exif-orientation": "Orientation",
+       "exif-ycbcrpositioning": "Pagpoposisyon han Y ngan C",
+       "exif-xresolution": "Resolusyon horizontal",
+       "exif-yresolution": "Resolusyon vertical",
+       "exif-referenceblackwhite": "Padis han itom nga busag nga reperensya hin mga balor",
+       "exif-datetime": "Pagliwat han petsa ngan oras han paypay",
+       "exif-imagedescription": "Titulo han hulagway",
+       "exif-make": "Naghimo han kamera",
+       "exif-model": "Modelo han kamera",
+       "exif-software": "Software nga gingamit",
+       "exif-artist": "Tag-iya",
+       "exif-copyright": "May katungod han copyright",
+       "exif-exifversion": "Version han Exif",
+       "exif-colorspace": "Kolor lat-ang",
+       "exif-datetimeoriginal": "Petsa ngan oras han data generation",
+       "exif-datetimedigitized": "Petsa ngan oras han pag-digitize",
+       "exif-subsectime": "Mga bahin-segundo han PetsaOras",
+       "exif-exposuretime-format": "$1 seg ($2)",
+       "exif-fnumber": "F Numero",
+       "exif-lightsource": "Ginkuhaan han suga",
+       "exif-filesource": "Ginkuhaan han paypay",
+       "exif-saturation": "saturasyon",
+       "exif-sharpness": "Pagkatarom",
+       "exif-gpslatituderef": "Amihanan o salatan nga latitud",
+       "exif-gpslatitude": "Latitud",
+       "exif-gpslongituderef": "Sinirangan o katundan nga longitud",
+       "exif-gpslongitude": "Longitud",
+       "exif-gpsaltitude": "Altitud",
+       "exif-gpstimestamp": "GPS nga oras (atomiko nga relo)",
+       "exif-gpssatellites": "Mga satelayt nga gingamit ha pagsukol",
+       "exif-gpsstatus": "Kahimtang han nagkakarawat",
+       "exif-gpsdop": "kauntop han pagsukol",
+       "exif-gpsspeedref": "Sukol han kalaksi",
+       "exif-gpstrack": "Direksyon han kiwa",
+       "exif-gpsimgdirection": "Direksyon han imahe",
+       "exif-gpsdestlatitude": "kakadtoan latitud",
+       "exif-gpsdestlongitude": "kakadtoan longitud",
+       "exif-gpsdestdistance": "Distansya ha destinasyon",
+       "exif-gpsareainformation": "Ngaran han lugar an GPS",
+       "exif-gpsdatestamp": "petsa han GPS",
+       "exif-jpegfilecomment": "Komento han JPEG nga paypay",
+       "exif-worldregioncreated": "Rehiyon han kalibutan kun diin an ritrato ginkuha",
+       "exif-countrycreated": "Nasod kun diin an ritrato ginkuha",
+       "exif-countrycodecreated": "Kodigo han nasod kun diin an ritrato ginkuha",
+       "exif-provinceorstatecreated": "Lalawigan o estado kun diin an ritrato ginkuha",
+       "exif-citycreated": "An syudad kun diin an ritrato ginkuha",
+       "exif-sublocationcreated": "Bahin-lokasyon han syudad kun diin an ritrato ginkuha",
+       "exif-worldregiondest": "Ginpakita an rehiyon han kalibutan",
+       "exif-countrydest": "Ginpapakita an nasod",
+       "exif-countrycodedest": "Ginpapakita an kodigo han nasod",
+       "exif-provinceorstatedest": "Ginpapakita an lalawigan o estado",
+       "exif-citydest": "Ginpapakita an syudad",
+       "exif-sublocationdest": "Ginpapakita an bahin-lokasyon han syudad",
+       "exif-objectname": "Halipot nga titulo",
+       "exif-headline": "Katukiban",
+       "exif-source": "Tinikangan",
+       "exif-writer": "Manunurat",
+       "exif-languagecode": "Yinaknan",
+       "exif-iimcategory": "Kaarangay",
+       "exif-datetimeexpires": "Ayaw gamita kahuman han",
+       "exif-datetimereleased": "Ginpagawas han",
+       "exif-lens": "Mga lente nga gingamit",
+       "exif-cameraownername": "Tag-iya han kamera",
+       "exif-copyrighted": "Kahimtang han copyright",
+       "exif-copyrightowner": "Tag-iya han copyright",
+       "exif-usageterms": "Mga termino hit paggamit",
+       "exif-copyrighted-true": "Naka-copyright",
+       "exif-copyrighted-false": "Status hin katungod-hin-panag-iya waray mahabutang",
+       "exif-unknowndate": "Waray kasabti an petsa",
+       "exif-orientation-1": "Normal",
+       "exif-orientation-3": "Igpalibot hin 180°",
+       "exif-orientation-4": "Igpalibot patukdaw",
+       "exif-orientation-5": "Igpalibot hin 90° CCW ngan igpalibot patukdaw",
+       "exif-orientation-6": "Igpalibot hin 90° CCW",
+       "exif-orientation-7": "Igpalibot hin 90° CW ngan igpalibot patukdaw",
+       "exif-orientation-8": "Igpalibot hin 90° CW",
+       "exif-exposureprogram-1": "Mano-mano",
+       "exif-exposureprogram-2": "Normal nga progama",
+       "exif-subjectdistance-value": "$1 ka mga metro",
+       "exif-meteringmode-0": "Waray kasabti",
+       "exif-meteringmode-255": "iba",
+       "exif-lightsource-0": "Waray kasabti",
+       "exif-lightsource-9": "Maupay nga panahon",
+       "exif-lightsource-10": "Madampog nga panahon",
+       "exif-focalplaneresolutionunit-2": "pulgadas",
+       "exif-gaincontrol-0": "Waray",
+       "exif-contrast-0": "Normal",
+       "exif-contrast-1": "Mahumok",
+       "exif-contrast-2": "Matig-a",
+       "exif-saturation-0": "Normal",
+       "exif-sharpness-0": "Normal",
+       "exif-sharpness-1": "Mahumok",
+       "exif-sharpness-2": "Matig-a",
+       "exif-subjectdistancerange-0": "Waray kasabti",
+       "exif-subjectdistancerange-1": "Macro",
+       "exif-subjectdistancerange-2": "Harani nga pagkita",
+       "exif-subjectdistancerange-3": "Harayo nga pagkita",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metro|mga metro}} bawbaw han katupngan ha dagat",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metro|mga metro}} ubos han katupngan ha dagat",
+       "exif-gpsspeed-k": "Mga kilometro kada oras",
+       "exif-gpsspeed-m": "Mga milya kada oras",
+       "exif-gpsdestdistance-k": "Mga kilometro",
+       "exif-gpsdestdistance-m": "Mga milya",
+       "exif-objectcycle-a": "Aga la",
+       "exif-objectcycle-p": "Gab-i la",
+       "exif-objectcycle-b": "Pareho pan-aga ngan pan-gab-i",
+       "exif-gpsdirection-t": "Tinood nga direksyon",
+       "exif-ycbcrpositioning-1": "Nakabutnga",
+       "exif-dc-contributor": "Mga nag-ámot",
+       "exif-dc-date": "(Mga) petsa",
+       "exif-dc-relation": "Nahisumpay nga medya",
+       "exif-dc-rights": "Mga katungod",
+       "exif-dc-source": "Tinikangan nga medya",
+       "exif-dc-type": "Klase nga medya",
+       "exif-rating-rejected": "Waray karawta",
+       "exif-isospeedratings-overflow": "Lapos han 65535",
+       "exif-iimcategory-ace": "mga arte, kultura ngan panlibang",
+       "exif-iimcategory-clj": "Krimen ngan balaod",
+       "exif-iimcategory-fin": "Ekonomiya ngan negosyo",
+       "exif-iimcategory-edu": "Pag-aram",
+       "exif-iimcategory-evn": "Kalikopan",
+       "exif-iimcategory-hth": "Kalibsogan",
+       "exif-iimcategory-lab": "Pananarbaho",
+       "exif-iimcategory-lif": "Pan-gios ngan lingawan",
+       "exif-iimcategory-pol": "Politika",
+       "exif-iimcategory-rel": "Relihiyon ngan panoohan",
+       "exif-iimcategory-sci": "Syensya ngan teknolohiya",
+       "exif-iimcategory-soi": "Mga himangrawon pankatiringban",
+       "exif-iimcategory-spo": "Paugnat hin kusog",
+       "exif-iimcategory-war": "Gera, samok ngan diri namumurayawan",
+       "exif-iimcategory-wea": "panahon",
+       "exif-urgency-normal": "Normal ($1)",
+       "exif-urgency-low": "Hamubo ($1)",
+       "exif-urgency-high": "Hataas ($1)"
+}
diff --git a/languages/i18n/exif/xmf.json b/languages/i18n/exif/xmf.json
new file mode 100644 (file)
index 0000000..55ffd76
--- /dev/null
@@ -0,0 +1,289 @@
+{
+       "@metadata": {
+               "authors": [
+                       "David1010",
+                       "Lika2672",
+                       "Silovan"
+               ]
+       },
+       "exif-imagewidth": "სიგანე",
+       "exif-imagelength": "სიმაღალე",
+       "exif-orientation": "ორიენტაცია",
+       "exif-xresolution": "ჰორიზონტალური გაფართაფა",
+       "exif-yresolution": "ვერტიკალური გაფართაფა",
+       "exif-datetime": "ფაილიშ თირუაშ რიცხუ დო ბორჯი",
+       "exif-make": "კამერაშ მაწარმაფალი",
+       "exif-model": "კამერაშ მოდელი",
+       "exif-software": "გჷმორინაფილი პროგრამა",
+       "exif-exifversion": "ვერსია Exif",
+       "exif-colorspace": "ფერეფიშ პალიტრა",
+       "exif-datetimeoriginal": "გენერირაფაშ თარიღი დო ბორჯი",
+       "exif-datetimedigitized": "ციფრირაფაშ თარიღი დო ბორჯი",
+       "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": "თეთრის ბალანსი",
+       "exif-digitalzoomratio": "ციფრული გადიდების კოეფიციენტი (ციფრული ზუმი)",
+       "exif-focallengthin35mmfilm": "ეკვივალენტური ფოკუსური მანძილი (35 მმ-იანი ფირისთვის)",
+       "exif-scenecapturetype": "სცენის ტიპი გადაღებისას",
+       "exif-gaincontrol": "სცენის კონტროლი",
+       "exif-contrast": "კონტრასტი",
+       "exif-saturation": "ნაჯერობა",
+       "exif-sharpness": "სიმკვეთრე",
+       "exif-devicesettingdescription": "მოწყობილობის პარამეტრების აღწერილობა",
+       "exif-subjectdistancerange": "მანძილი გადაღების ობიექტამდე",
+       "exif-imageuniqueid": "გამოსახულების ნომერი (ID)",
+       "exif-gpsversionid": "GPS ინფორმაციის ბლოკის ვერსია",
+       "exif-gpslatituderef": "განედის ინდექსი",
+       "exif-gpslatitude": "განედი",
+       "exif-gpslongituderef": "გრძედის ინდექსი",
+       "exif-gpslongitude": "გრძედი",
+       "exif-gpsaltituderef": "სიმაღლის ინდექსი",
+       "exif-gpsaltitude": "სიმაღლე",
+       "exif-gpssatellites": "გამოყენებული თანამგზავრების აღწერა",
+       "exif-gpsstatus": "რისივერის სტატუსი",
+       "exif-gpsmeasuremode": "მდებარეობის გამოთვლის მეთოდი",
+       "exif-gpsdop": "გაზომვის სიზუსტე",
+       "exif-gpsspeedref": "სიჩქარის ერთეული",
+       "exif-gpsspeed": "GPS რისივერის სიჩქარე",
+       "exif-gpstrackref": "GPS მიმღების აზიმუტი",
+       "exif-gpstrack": "მოძრაობის მიმართულება",
+       "exif-gpsimgdirectionref": "გამოსახულების აზიმუტი",
+       "exif-gpsimgdirection": "სურათზე მიმართულება",
+       "exif-gpsmapdatum": "გამოყენებული კორდინატთა გეოდეზური სისტემა",
+       "exif-gpsdestlatituderef": "ობიექტის გაედის ინდექსი",
+       "exif-gpsdestlatitude": "ობიექტის გრძედი",
+       "exif-gpsdestlongituderef": "ობიექტის განედი",
+       "exif-gpsdestlongitude": "ობიექტის სიგანე",
+       "exif-gpsdestbearingref": "მიმართულების ორიენტირების სახე",
+       "exif-gpsdestbearing": "ორიენტირების სახე",
+       "exif-gpsdestdistanceref": "მანძილის გაზომვის ერთეულები",
+       "exif-gpsdestdistance": "მანძილი დანიშნულებამდე",
+       "exif-gpsprocessingmethod": "მდებარეობის გამოთვლის მეთოდი",
+       "exif-gpsareainformation": "GPS მხარის სახელწოდება",
+       "exif-gpsdatestamp": "GPS-ის მონაცემი",
+       "exif-gpsdifferential": "GPS-ის დიფერენციალური შესწორება",
+       "exif-jpegfilecomment": "JPEG-ფაილის კომენტარი",
+       "exif-keywords": "საძიებო სიტყვები",
+       "exif-worldregioncreated": "მსოფლიოს რეგიონი, სადაც გადაღებულია ფოტო",
+       "exif-countrycreated": "ქვეყანა, სადაც გადაღებულია ფოტო",
+       "exif-countrycodecreated": "ქვეყნის კოდი, სადაც გადაღებულია ფოტო",
+       "exif-provinceorstatecreated": "ოლქი, პროვინცია ან შტატი, სადაც გადაღებულია ფოტო",
+       "exif-citycreated": "ქალაქი, სადაც გადაღებულია ფოტო",
+       "exif-sublocationcreated": "ქალაქის რაიონი, სადაც გადაღებულია ფოტო",
+       "exif-worldregiondest": "მსოფლიოს ნაჩვენები რეგიონი",
+       "exif-countrydest": "ნაჩვენები სახელმწიფო",
+       "exif-countrycodedest": "ნაჩვენები სახელმწიფოს კოდი",
+       "exif-provinceorstatedest": "ნაჩვენები პროვინცია, ან შტატი",
+       "exif-citydest": "ნაჩვენები ქალაქი",
+       "exif-sublocationdest": "ნაჩვენები ქალაქის რაიონი",
+       "exif-objectname": "მოკლე სათაური",
+       "exif-specialinstructions": "სპეციალური ინსტრუქციები",
+       "exif-headline": "სათაური",
+       "exif-credit": "კრედიტი/პროვაიდერი",
+       "exif-source": "წყუ",
+       "exif-urgency": "აქტუალურობა",
+       "exif-fixtureidentifier": "სვეტის სახელი",
+       "exif-locationdest": "გამოსახული ადგილი",
+       "exif-locationdestcode": "გამოსახული ადგილის კოდი",
+       "exif-objectcycle": "დღე-ღამის მონაკვეთი, რომლისთვისაც განკუთვნილია გამოსახულება",
+       "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": "მეტამონაცემების ბოლო ცვლილების თარიღი",
+       "exif-nickname": "სურათის არაფორმალური სახელი",
+       "exif-rating": "რეიტინგი (5-დან)",
+       "exif-rightscertificate": "უფლებათა მართვის სერთიფიკატი",
+       "exif-copyrighted": "საავტორო უფლებების სტატუსი",
+       "exif-copyrightowner": "საავტორო უფლებების მფლობელი",
+       "exif-usageterms": "გამოყენების პირობები",
+       "exif-webstatement": "საავტორო უფლებების მდგომარეობა ინტერნეტში",
+       "exif-originaldocumentid": "ორიგინალი დოკუმენტის უნიკალური იდენტიფიკატორი",
+       "exif-licenseurl": "საავტორო ლიცენზიის URL",
+       "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-copyrighted-true": "საავტორო უფლებებით დაცული",
+       "exif-copyrighted-false": "საავტორო უფლებები არ არის არჩეული",
+       "exif-unknowndate": "უცნობი თარიღი",
+       "exif-orientation-1": "ნორმალური",
+       "exif-orientation-2": "ჰორიზონტალით აირეკლა",
+       "exif-orientation-3": "180°-ით შებრუნდა",
+       "exif-orientation-4": "აირეკლა ვერტიკალურად",
+       "exif-orientation-5": "შეტრიალებული 90°-ით CCW და ვერტიკალურად აირეკლა",
+       "exif-orientation-6": "მობრუნებულია 90°-ით",
+       "exif-orientation-7": "შეტრიალებულია 90°-ით CW და ვერტიკალურად აირეკლა",
+       "exif-orientation-8": " 90°-ით მობრუნება",
+       "exif-planarconfiguration-1": "ფორმატი „chunky“",
+       "exif-planarconfiguration-2": "ფორმატი „planar“",
+       "exif-colorspace-65535": "არაკალიბრირებული",
+       "exif-componentsconfiguration-0": "არ არსებობს",
+       "exif-exposureprogram-0": "უცნობია",
+       "exif-exposureprogram-1": "მანუალური",
+       "exif-exposureprogram-2": "სტანდარტული პროგრამა",
+       "exif-exposureprogram-3": "დიაფრაგმის პრიორიტეტი",
+       "exif-exposureprogram-4": "ჩამკეტის პრიორიტეტი",
+       "exif-exposureprogram-5": "მხატვრული პროგრამა (აქცენტი სიმკვეთრის სიღრმეზე)",
+       "exif-exposureprogram-6": "სპორტული რეჟიმი (ჩამკეტის მაქსიმალური სისწრაფით)",
+       "exif-exposureprogram-7": "პორტრეტის რეჟიმი (მსხვილი პლანებისთვის ფონით ფოკუსის\nგარეშე)",
+       "exif-exposureprogram-8": "პეიზაჟის რეჟიმი (პანორამული ფოტოებისთვის ფონით ფოკუსში)",
+       "exif-subjectdistance-value": "$1 მეტრი",
+       "exif-meteringmode-0": "უცნობი",
+       "exif-meteringmode-1": "საშუალო",
+       "exif-meteringmode-2": "ცენტრულად აწონილი",
+       "exif-meteringmode-3": "წერტილოვანი",
+       "exif-meteringmode-4": "მულტიწერტილოვანი",
+       "exif-meteringmode-5": "მატრიცული",
+       "exif-meteringmode-6": "ნაწილობრივი",
+       "exif-meteringmode-255": "სხვა",
+       "exif-lightsource-0": "უცნობი",
+       "exif-lightsource-1": "დღის სინათლე",
+       "exif-lightsource-2": "დღის სინათლის ლამპა",
+       "exif-lightsource-3": "ნათურა",
+       "exif-lightsource-4": "ფლეში",
+       "exif-lightsource-9": "კარგი ამინდი",
+       "exif-lightsource-10": "მოღრუბლული ამინდი",
+       "exif-lightsource-11": "ჩრდილი",
+       "exif-lightsource-12": "დღის სინათლის ნათურა D (5700 − 7100K)",
+       "exif-lightsource-13": "დღის სინათლის ნათურა N(4600 − 5400K)",
+       "exif-lightsource-14": "დღის სინათლის ნათურა W (3900 − 4500K)",
+       "exif-lightsource-15": "დღის სინათლის ნათურა WW (3200 − 3700K)",
+       "exif-lightsource-17": "სტანდარტული განათება A",
+       "exif-lightsource-18": "სტანდარტული განათება B",
+       "exif-lightsource-19": "სტანდარტული განათება C",
+       "exif-lightsource-24": "სტუდიური ნათურა  ISO სტანდარტის",
+       "exif-lightsource-255": "განათების სხვა წყარო",
+       "exif-flash-fired-0": "ფლეში არ მუშაობს",
+       "exif-flash-fired-1": "ფლეში მოქმედებს",
+       "exif-flash-return-0": "წინასწარი ფლეშის რეჟიმი გათიშულია",
+       "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-sensingmethod-7": "სამფერიანი ხაზოვანი სენსორი",
+       "exif-filesource-3": "ციფრული ფოტოაპარატი",
+       "exif-scenetype-1": "გამოსახულება გადაღებულია პირდაპირ",
+       "exif-customrendered-0": "სტანდარტული დამუშავება",
+       "exif-customrendered-1": "არასტანდარტული დამუშავება",
+       "exif-exposuremode-0": "ავტომატური ექსპოზიცია",
+       "exif-exposuremode-1": "მანუალური ექსპოზიცია",
+       "exif-whitebalance-0": "თეთრის ავტობალანსი",
+       "exif-whitebalance-1": "თეთრის ბალანსის ხელოვნური დაყენება",
+       "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-saturation-0": "ნორმალური",
+       "exif-saturation-1": "მცირე სავსებადობა",
+       "exif-saturation-2": "დიდი სავსებადობა",
+       "exif-sharpness-0": "ნორმალური",
+       "exif-sharpness-1": "სუსტი",
+       "exif-sharpness-2": "ძლიერი",
+       "exif-subjectdistancerange-0": "უცნობი",
+       "exif-subjectdistancerange-1": "მაკროგადაღება",
+       "exif-subjectdistancerange-2": "ახლო მანძილიდან გადაღება",
+       "exif-subjectdistancerange-3": "შორიდან გადაღება",
+       "exif-gpslatitude-n": "ჩრდილოეთი განედი",
+       "exif-gpslatitude-s": "სამხრეთი განედი",
+       "exif-gpslongitude-e": "აღმოსავლეთი განედი",
+       "exif-gpslongitude-w": "დასავლეთი განედი",
+       "exif-gpsspeed-k": "კილომეტრი საათში",
+       "exif-gpsspeed-m": "მილი საათში",
+       "exif-gpsspeed-n": "კვანძები",
+       "exif-gpsdestdistance-k": "კილომეტრი",
+       "exif-gpsdestdistance-m": "მილი",
+       "exif-gpsdestdistance-n": "საზღვაო მილი",
+       "exif-gpsdop-excellent": "შესანიშნავი ($1)",
+       "exif-gpsdop-good": "კარგი ($1)",
+       "exif-gpsdop-moderate": "ზომიერი ($1)",
+       "exif-gpsdop-fair": "საშუალოზე დაბალი ($1)",
+       "exif-gpsdop-poor": "ცუდი ($1)",
+       "exif-objectcycle-a": "მხოლოდ დილით",
+       "exif-objectcycle-p": "მხოლოდ საღამოს",
+       "exif-objectcycle-b": "ორივე დილას და საღამოს",
+       "exif-gpsdirection-t": "ჭეშმარიტი",
+       "exif-gpsdirection-m": "მაგნიტური",
+       "exif-ycbcrpositioning-1": "ცენტრირებული",
+       "exif-dc-contributor": "წვლილის შემომტანები",
+       "exif-dc-coverage": "მედიის სივრცული, ან დროებითი ჩარჩოები",
+       "exif-dc-date": "თარიღ(ებ)ი",
+       "exif-dc-publisher": "გამომქვეყნებელი",
+       "exif-dc-relation": "დაკავშირებული მედია",
+       "exif-dc-rights": "უფლებები",
+       "exif-dc-source": "წყაროს მედია",
+       "exif-dc-type": "მედიის ტიპი",
+       "exif-rating-rejected": "უარყოფილია",
+       "exif-isospeedratings-overflow": "65535-ზე მეტი",
+       "exif-iimcategory-ace": "ხელოვნება, კულტურა და გართობა",
+       "exif-iimcategory-clj": "დანაშაული და კანონი",
+       "exif-iimcategory-dis": "კატასტროფები და ავარიები",
+       "exif-iimcategory-fin": "ეკონომიკა და ბიზნესი",
+       "exif-iimcategory-edu": "განათლება",
+       "exif-iimcategory-evn": "გარემო",
+       "exif-iimcategory-hth": "ჯანმრთელობა",
+       "exif-iimcategory-hum": "ღირსშესანიშნავი ისტორიები",
+       "exif-iimcategory-lab": "შრომა",
+       "exif-iimcategory-lif": "ცხოვრების წესი და დასვენება",
+       "exif-iimcategory-pol": "პოლიტიკა",
+       "exif-iimcategory-rel": "რელიგია და რწმენა",
+       "exif-iimcategory-sci": "მეცნიერება და ტექნოლოგია",
+       "exif-iimcategory-soi": "სოციალური კითხვები",
+       "exif-iimcategory-spo": "სპორტი",
+       "exif-iimcategory-war": "ომი, კონფლიქტი და არეულობა",
+       "exif-iimcategory-wea": "ამინდი",
+       "exif-urgency-normal": "ნორმალური ($1)",
+       "exif-urgency-low": "დაბალი ($1)",
+       "exif-urgency-high": "მაღალი ($1)",
+       "exif-urgency-other": "მომხმარებლის მიერ განსაზღვრული პრიორიტეტი ($1)"
+}
diff --git a/languages/i18n/exif/yi.json b/languages/i18n/exif/yi.json
new file mode 100644 (file)
index 0000000..a613654
--- /dev/null
@@ -0,0 +1,293 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Chaim Shel",
+                       "Har-wradim",
+                       "Yidel",
+                       "פוילישער"
+               ]
+       },
+       "exif-imagewidth": "ברייט",
+       "exif-imagelength": "הייך",
+       "exif-bitspersample": "ביטס פער באשטאנדטייל",
+       "exif-compression": "צאמקוועטשן סכעמע",
+       "exif-photometricinterpretation": " פיקסעל צוזאמענשטעל",
+       "exif-orientation": "אריענטאַציע",
+       "exif-samplesperpixel": "צאל קאמאפאנענטן",
+       "exif-planarconfiguration": "דאטן איינארדנונג",
+       "exif-xresolution": "האריזאנטאלע רעזאלוציע",
+       "exif-yresolution": "ווערטיקאלע רעזאלוציע",
+       "exif-stripoffsets": "בילדדאטן פלאציר",
+       "exif-rowsperstrip": "צאל שורות אין א שטרייף",
+       "exif-stripbytecounts": "בייטן אין א קאמפרימירטן שטרייף",
+       "exif-jpeginterchangeformatlength": "בייטן פון JPEG דאטן",
+       "exif-datetime": "טעקע ענדערונג דאטע און צײַט",
+       "exif-imagedescription": "בילד טיטל",
+       "exif-make": "פֿאטא-אפאראט פֿאבריצירער",
+       "exif-model": "פֿאטא-אפאראט מאדעל",
+       "exif-software": "ווייכוואַרג באניצט",
+       "exif-artist": "מחבר",
+       "exif-copyright": "קאפירעכטן האלטער",
+       "exif-exifversion": "Exif ווערסיע",
+       "exif-flashpixversion": "ווערסיע Flashpix געשטיצטע",
+       "exif-colorspace": "קאליר רוים",
+       "exif-componentsconfiguration": "מיינונג פון יעדן באשטאנדטייל",
+       "exif-compressedbitsperpixel": "בילד צוזאמקוועטשן מאוד",
+       "exif-pixelxdimension": "בילד ברייט",
+       "exif-pixelydimension": "בילד הייך",
+       "exif-usercomment": "באניצער קאמענטורן",
+       "exif-relatedsoundfile": "פֿאַרבונדענע אוידיאָ טעקע",
+       "exif-datetimeoriginal": "דאטום און צייט פון דאַטן באשאפונג",
+       "exif-datetimedigitized": "דאטום און צייט פון דיזשיטייזונג",
+       "exif-subsectime": "צײַטפונקט (אונטערסעקונדן)",
+       "exif-subsectimeoriginal": "פֿאַרפֿאַסן צײַטפונקט (אונטערסעקונדן)",
+       "exif-subsectimedigitized": "דיגיטאַליזירן צײַטפונקט (אונטערסעקונדן)",
+       "exif-exposuretime": "באַלײַכטן צייט",
+       "exif-exposuretime-format": "$1 סעק ($2)",
+       "exif-fnumber": "נומער F",
+       "exif-exposureprogram": "אויפדעקונג פראגראם",
+       "exif-shutterspeedvalue": "APEX לעדל גיך",
+       "exif-aperturevalue": "APEX עפֿענונג",
+       "exif-brightnessvalue": "APEX העלקייט",
+       "exif-exposurebiasvalue": "באַלײַכטן נייגונג",
+       "exif-maxaperturevalue": "מאקסימום גרייס פון עפענונג",
+       "exif-subjectdistance": "סוביעקט ווייט",
+       "exif-meteringmode": "מעסטן מאָדע",
+       "exif-lightsource": "ליכט מקור",
+       "exif-flash": "בליץ",
+       "exif-focallength": "לענס פֿאקאַלע לענג",
+       "exif-focallength-format": "$1 מ\"מ",
+       "exif-subjectarea": "סוביעקט געגנט",
+       "exif-flashenergy": "פלעש ענערגיע",
+       "exif-focalplanexresolution": "פאקוס־שטח האריזאנטאל",
+       "exif-focalplaneyresolution": "פאקוס־שטח ווערטיקאל",
+       "exif-focalplaneresolutionunit": "פאקוס־שטח רעזאלוציע איינהייט",
+       "exif-subjectlocation": "סוביעקט ארט",
+       "exif-exposureindex": "באַלײַכטן אינדעקס",
+       "exif-sensingmethod": "דערשפירן מעטאד",
+       "exif-filesource": "מקור פֿון דער טעקע",
+       "exif-scenetype": "סצענע טיפ",
+       "exif-customrendered": "קאסטעם בילד פראצעסירונג",
+       "exif-exposuremode": "באַלײַכטן מצב",
+       "exif-whitebalance": "ווײַס באַלאַנס",
+       "exif-digitalzoomratio": "דיגיטאלער זום פארהעלטעניש",
+       "exif-focallengthin35mmfilm": "פאקאל לענג אין 35 מ\"מ פילם",
+       "exif-scenecapturetype": "סצענע אויפנעם טיפ",
+       "exif-gaincontrol": "סצענע קאנטראל",
+       "exif-contrast": "קאנטראסט",
+       "exif-saturation": "זעטיקונג",
+       "exif-sharpness": "שארף",
+       "exif-devicesettingdescription": "אפאראט שטעלונגען אראפמאלונג",
+       "exif-imageuniqueid": "בילד־ID",
+       "exif-gpsversionid": "GPS טאַג ווערסיע",
+       "exif-gpslatituderef": "צפון אדער דרום גארטל־ליניע",
+       "exif-gpslatitude": "גארטל־ליניע",
+       "exif-gpslongituderef": "מזרח אדער מערב לענג",
+       "exif-gpslongitude": "געאגראַפֿישע לענג",
+       "exif-gpsaltituderef": "אלטיטוט רעפערענץ",
+       "exif-gpsaltitude": "הייך",
+       "exif-gpstimestamp": "GPS צייט (אטאם־זייגער)",
+       "exif-gpssatellites": "סאטעליטן געניצט פאר מעסטן",
+       "exif-gpsstatus": "אויפנעמער סטאטוס",
+       "exif-gpsmeasuremode": "מעסטן מאדע",
+       "exif-gpsdop": "מאס פוקנטליכקייט",
+       "exif-gpsspeedref": "גיך איינהייט",
+       "exif-gpsspeed": "גיך פון GPS־אויפֿנעמער",
+       "exif-gpstrack": "באוועגונג ריכטונג",
+       "exif-gpsimgdirectionref": "רעפערענץ פאר ריכטונג פון בילד",
+       "exif-gpsimgdirection": "ריכטונג פון בילד",
+       "exif-gpsdestlatituderef": "רעפֿערענץ פֿאַר ברייט־ליניע פון ציל",
+       "exif-gpsdestlatitude": "ברייט־ליניע פֿון ציל",
+       "exif-gpsdestlongituderef": "רעפֿערענץ פֿאַר לענג־ליניע פֿון ציל",
+       "exif-gpsdestlongitude": "לענג־ליניע פֿון ציל",
+       "exif-gpsdestbearingref": "רעפֿערענץ פֿאַר ריכטונג פון ציל",
+       "exif-gpsdestbearing": "ריכטונג פֿון ציל",
+       "exif-gpsdestdistanceref": "רעפֿערענץ פֿאַר ווײַטקייט פֿון ציל",
+       "exif-gpsdestdistance": "ווײַטקייט צום ציל",
+       "exif-gpsprocessingmethod": "נאמען פון GPS פראצעסירן מעטאד",
+       "exif-gpsareainformation": "נאמען פון GPS געגענט",
+       "exif-gpsdatestamp": "GPS דאטע",
+       "exif-gpsdifferential": "GPS דיפראנציאלע קאקרעקציע",
+       "exif-jpegfilecomment": "JPEG טעקע הערה",
+       "exif-keywords": "שליסלווערטער",
+       "exif-worldregioncreated": "וועלטראיאן וואו מ'האט גענומען דאס בילד",
+       "exif-countrycreated": "לאנד וואו מ'האט געמאכט דאס בילד",
+       "exif-countrycodecreated": "קאד פארן לאנד וואו מ'האט געמאכט דאס בילד",
+       "exif-provinceorstatecreated": "פראווינץ אדער שטאַט וואו מ'האט גענומען דאס בילד",
+       "exif-citycreated": "שטאָט וואו מ'האט געמאכט דאס בילד",
+       "exif-worldregiondest": "וועלטראיאן געוויזן",
+       "exif-countrydest": "לאנד געוויזן",
+       "exif-countrycodedest": "קאד פאר לאנד געוויזן",
+       "exif-provinceorstatedest": "פראווינץ אדער שטאַט געוויזן",
+       "exif-citydest": "געוויזענע שטָאט",
+       "exif-objectname": "קורצער טיטל",
+       "exif-specialinstructions": "באזונדערע אנווייזונגען",
+       "exif-headline": "קעפל",
+       "exif-credit": "קרעדיט/פארזארגער",
+       "exif-source": "מקור",
+       "exif-editstatus": "רעדאקציאנעלער סטאטוס פון בילד",
+       "exif-urgency": "דרינגלעכקייט",
+       "exif-locationdest": "געוויזענע לאקאציע",
+       "exif-locationdestcode": "קאד פֿון געוויזענער לאקאציע",
+       "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": "דאטע ווען מעטאדאטן זענען געווען לעצט געענדערט",
+       "exif-nickname": "אויספארמעלער נאמען פון בילד",
+       "exif-rating": "אָפּשאַצונג (פון 5)",
+       "exif-rightscertificate": "רעכטן פארוואלטונג צערטיפיקאט",
+       "exif-copyrighted": "קאפירעכט סטאַטוס",
+       "exif-copyrightowner": "קאפירעכטן האלטער",
+       "exif-usageterms": "ניץ באַדינגונג",
+       "exif-licenseurl": "URL פֿאר קאפירעכט ליצענץ",
+       "exif-morepermissionsurl": "אלטערנאטיווע ליצענצירן אינפארמאציע",
+       "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-copyrighted-true": "געשיצט מיט קאפירעכט",
+       "exif-copyrighted-false": "קאפירעכט סטאטוס נישט געשטעלט",
+       "exif-unknowndate": "אומבאַוואוסטע דאַטע",
+       "exif-orientation-1": "נארמאַל",
+       "exif-orientation-2": "האריזאנטאל געשפיגלט",
+       "exif-orientation-3": "ראטירט 180°",
+       "exif-orientation-4": "ווערטיקאל געשפיגלט",
+       "exif-orientation-6": "ראטירט 90° קעגן זייגער",
+       "exif-orientation-7": "ראטירט  90° מיטן זייגער און איבערגעדרייט ווערטיקאל",
+       "exif-orientation-8": "ראטירט 90° מיטן זייגער",
+       "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-exposureprogram-5": "שאפענדע פראגראם (בייעסט אין ריכטונג פוןדי טיפקייט פעלד)",
+       "exif-exposureprogram-6": "אקטיוו פראגראם (בייעס אויפן ריכטונג צו צומאכן ספיד)",
+       "exif-exposureprogram-7": "פארטרעיט מצב (פאר קלאוסאפ בילדער אין די בעקגראונד ארויס פון פאקוס)",
+       "exif-exposureprogram-8": "לענדסקעיפ מצב (פאר בילדער פון פאנאראמעס וואס בעקגראונד איז אין פאקוס)",
+       "exif-subjectdistance-value": "$1 מעטער",
+       "exif-meteringmode-0": "אומבאוויסט",
+       "exif-meteringmode-1": "דורכשניט",
+       "exif-meteringmode-5": "מוסטער",
+       "exif-meteringmode-6": "טיילווײַז",
+       "exif-meteringmode-255": "אנדער",
+       "exif-lightsource-0": "אומבאַוויסט",
+       "exif-lightsource-1": "טאָגליכט",
+       "exif-lightsource-2": "פֿלוארעסצירנד",
+       "exif-lightsource-3": "טונגסטן (צעהיצעדיק ליכט)",
+       "exif-lightsource-4": "בליץ",
+       "exif-lightsource-9": "פֿייַן וועטער",
+       "exif-lightsource-10": "פאַרוואָלקנטער וועטער",
+       "exif-lightsource-11": "שאָטן",
+       "exif-lightsource-255": "אנדער ליכטקוואל",
+       "exif-flash-fired-0": "קיין פלאש",
+       "exif-flash-mode-3": "אויטא מאדע",
+       "exif-flash-function-1": "קיין בליץ־פונקציע",
+       "exif-flash-redeye-1": "רויט־אויג רעדוקציע",
+       "exif-focalplaneresolutionunit-2": "אינטשעס",
+       "exif-sensingmethod-1": "אומדעפינירט",
+       "exif-customrendered-0": "נארמאלער פראצעס",
+       "exif-customrendered-1": "קאסטעם פראצעס",
+       "exif-exposuremode-0": "אויטאמאטיש באַלײַכטן",
+       "exif-exposuremode-1": "האַנט־באַלײַכטן",
+       "exif-exposuremode-2": "אטאמאטישער לייסטל",
+       "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-saturation-0": "נארמאַל",
+       "exif-sharpness-0": "נארמאל",
+       "exif-sharpness-1": "ווייך",
+       "exif-sharpness-2": "הארט",
+       "exif-subjectdistancerange-0": "אומבאַוואוסט",
+       "exif-subjectdistancerange-1": "מאקרא",
+       "exif-subjectdistancerange-2": "נאנטע ווייזונג",
+       "exif-subjectdistancerange-3": "ווײַטע ווײַזונג",
+       "exif-gpslatitude-n": "צפון ברייט",
+       "exif-gpslatitude-s": "דרום ברייט",
+       "exif-gpslongitude-e": "מזרח לענג",
+       "exif-gpslongitude-w": "מערב לענג",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|מעטער|מעטער}} איבערן ים־שפיגלl",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|מעטער|מעטער}} אונטערן ים־שפיגל",
+       "exif-gpsstatus-a": "מ'האלט אינמיטן מעסטן",
+       "exif-gpsspeed-k": "ק\"מ אין א שעה",
+       "exif-gpsspeed-m": "מייל פער שעה",
+       "exif-gpsspeed-n": "ים מײַלן א שעה",
+       "exif-gpsdestdistance-k": "קילאמעטער",
+       "exif-gpsdestdistance-m": "מייל",
+       "exif-gpsdestdistance-n": "ים־מייל",
+       "exif-gpsdop-excellent": "אויסגעצייכנט ($1)",
+       "exif-gpsdop-good": "גוט ($1)",
+       "exif-gpsdop-moderate": "מיטלמעסיק ($1)",
+       "exif-gpsdop-fair": "נישקשהדיק ($1)",
+       "exif-gpsdop-poor": "שוואך ($1)",
+       "exif-objectcycle-a": "נאר אינדערפרי",
+       "exif-objectcycle-p": "נאר אוונד",
+       "exif-objectcycle-b": "סיי אינדערפרי סיי אין אוונט",
+       "exif-gpsdirection-t": "ריכטיגע דירעקציע",
+       "exif-gpsdirection-m": "מאגנאטיק ריכטונג",
+       "exif-ycbcrpositioning-1": "צענטרירט",
+       "exif-ycbcrpositioning-2": "אין זעלבן ארט",
+       "exif-dc-contributor": "בײַשטײַערער",
+       "exif-dc-coverage": "ערטלעכער אדער צייטלעכער פארנעם פון מעדיע",
+       "exif-dc-date": "דאטע(ס)",
+       "exif-dc-publisher": "פֿאַרלעגער",
+       "exif-dc-relation": "ענלעכע מעדיע",
+       "exif-dc-rights": "רעכט",
+       "exif-dc-source": "אריגינעלע מעדיע",
+       "exif-dc-type": "סארט מעדיע",
+       "exif-rating-rejected": "אפגעווארפֿן",
+       "exif-isospeedratings-overflow": "גרעסער פֿון 65535",
+       "exif-iimcategory-ace": "קונסט, קולטור און פאַרווײַלונג",
+       "exif-iimcategory-clj": "פאַרברעכן און געזעץ",
+       "exif-iimcategory-dis": "קאַטאַסטראפֿעס און אַקצידענטן",
+       "exif-iimcategory-fin": "עקאנאמיע און געשעפֿט",
+       "exif-iimcategory-edu": "בילדונג",
+       "exif-iimcategory-evn": "סביבה",
+       "exif-iimcategory-hth": "געזונט",
+       "exif-iimcategory-hum": "מענטשלעכער אינטערעס",
+       "exif-iimcategory-lab": "אַרבעט",
+       "exif-iimcategory-lif": "לעבנסטיל און פֿרייַע צייַט",
+       "exif-iimcategory-pol": "פּאָליטיק",
+       "exif-iimcategory-rel": "רעליגיע און גלויבן",
+       "exif-iimcategory-sci": "וויסנשאַפֿט און טעכנאָלאָגיע",
+       "exif-iimcategory-soi": "סאציאלע פֿראגעס",
+       "exif-iimcategory-spo": "ספארט",
+       "exif-iimcategory-war": "מלחמה, קאָנפליקט און אומרו",
+       "exif-iimcategory-wea": "וועטער",
+       "exif-urgency-normal": "נאָרמאַל ($1)",
+       "exif-urgency-low": "נידעריק ($1)",
+       "exif-urgency-high": "הויך ($1)",
+       "exif-urgency-other": "באניצער־דעפינירטע פריאריטעט ($1)"
+}
diff --git a/languages/i18n/exif/yo.json b/languages/i18n/exif/yo.json
new file mode 100644 (file)
index 0000000..d64b9b7
--- /dev/null
@@ -0,0 +1,211 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Demmy"
+               ]
+       },
+       "exif-imagewidth": "Fífẹ̀sí",
+       "exif-imagelength": "Gígasí",
+       "exif-bitspersample": "Bit fún àkóónú kọ̀ọ̀kan",
+       "exif-compression": "Ètò ìtẹ̀pọ̀",
+       "exif-photometricinterpretation": "Ìdákójọ pixel",
+       "exif-orientation": "Ìdojúdé",
+       "exif-samplesperpixel": "Iye àkóónú",
+       "exif-planarconfiguration": "Ìṣètò dátà",
+       "exif-ycbcrpositioning": "Ipò Y àti C",
+       "exif-xresolution": "Ìgbéga onígbọlọjọ",
+       "exif-yresolution": "Ìgbéga onínàró",
+       "exif-stripoffsets": "Ìbùdó dátà àwòrán",
+       "exif-rowsperstrip": "Iye oríìlà fún strip kan",
+       "exif-stripbytecounts": "Iye byte fún àfúnpọ̀ strip kan",
+       "exif-jpeginterchangeformat": "Fò sí JPEG SOI",
+       "exif-jpeginterchangeformatlength": "Iye byte dátà JPEG",
+       "exif-datetime": "Ọjọ́ àti àsìkò ìyípadà fáìlì",
+       "exif-imagedescription": "Àkọlé àwòrán",
+       "exif-make": "Olùṣẹ̀rọ kámẹ́rà",
+       "exif-model": "Irú kámẹ́rà",
+       "exif-software": "Atòlànà kọ̀mpútà lílò",
+       "exif-artist": "Olùdá",
+       "exif-copyright": "Ẹni tóni ẹ̀tọ́ àwòkọ",
+       "exif-exifversion": "Irú Exif",
+       "exif-flashpixversion": "Ìṣàtìlẹ́yìn irú Flashpix",
+       "exif-colorspace": "Àyè àwọ̀",
+       "exif-componentsconfiguration": "Ìtumọ̀ àkóónú kọ̀ọ̀kan",
+       "exif-compressedbitsperpixel": "Àyè ìtẹ̀pọ̀ àwòrán",
+       "exif-pixelxdimension": "Ìfẹ̀ àwòrán",
+       "exif-pixelydimension": "Ìga àwòrán",
+       "exif-usercomment": "Àwọn àwìsọ oníṣe",
+       "exif-relatedsoundfile": "Fáìlì ìfohùn tó jọra",
+       "exif-datetimeoriginal": "Ọjọ́ àti àsìkò tí dátà jade",
+       "exif-datetimedigitized": "Ọjọ́ àti àsìkò ìsọdi dígítà",
+       "exif-subsectime": "Ọjọ́Àsìkò ìpín-ìṣẹ́júàáyá",
+       "exif-subsectimeoriginal": "Ọjọ́ÀsìkòNíbẹ̀rẹ̀ ìpín-ìṣẹ́júàáyá",
+       "exif-subsectimedigitized": "Ọjọ́ÀsìkòDígítà ìpín-ìṣẹ́júàáyá",
+       "exif-exposuretime-format": "$1 ìṣẹ́j/kejì ($2)",
+       "exif-fnumber": "Nọ́mbà F",
+       "exif-brightnessvalue": "Ìmọ́lẹ̀ APEX",
+       "exif-subjectdistance": "Ìjìnnà olùdálélórí",
+       "exif-lightsource": "Ìsun ìmọ́lẹ̀",
+       "exif-flash": "Fláàṣì",
+       "exif-focallength": "Ìbú ìtẹjúmọ́ dígí",
+       "exif-subjectarea": "Àyè olùdálélórí",
+       "exif-flashenergy": "Agbára okun fláàṣì",
+       "exif-subjectlocation": "Ibùdó adálélórí",
+       "exif-filesource": "Orísun fáìlì",
+       "exif-whitebalance": "Ìbámu àwò funfun",
+       "exif-focallengthin35mmfilm": "Ìbú ìtẹjúmọ́ nínú fílmù 35 mm",
+       "exif-subjectdistancerange": "Ìgbàjá ìjìnnà ìdálélórí",
+       "exif-imageuniqueid": "Nọ́mbà ìdámọ̀ àwòrán ọ̀tọ̀ọ̀tọ̀",
+       "exif-gpsversionid": "Irú àlẹ̀mọ́ GPS",
+       "exif-gpstimestamp": "Àsìkò GPS (ago átọ́mù)",
+       "exif-gpsmeasuremode": "Àyè ìwọ̀n",
+       "exif-gpsspeedref": "Ẹ̀yọ ìyárasí",
+       "exif-gpsspeed": "Ìyárasí ẹ̀rọ ìmú GPS",
+       "exif-gpsimgdirectionref": "Ìtọ́kasí fún ìdojúkọ àwòrán",
+       "exif-gpsimgdirection": "Ìdojúkọ àwòrán",
+       "exif-gpsdestbearingref": "Ìtọ́kasí fún òye ìbọ́sí",
+       "exif-gpsdestbearing": "Òye ìbósí",
+       "exif-gpsdestdistanceref": "Ìtọkasí fún ìjìnnà sí ìbọ́sí",
+       "exif-gpsdestdistance": "Ìjìnnà sí ìbọ́sí",
+       "exif-gpsprocessingmethod": "Orúkọ ọ̀nà ìgbẹ́ṣe GPS",
+       "exif-gpsareainformation": "Orúkọ agbègbè GPS",
+       "exif-gpsdatestamp": "Ọjọ́ọdún GPS",
+       "exif-gpsdifferential": "Ìtúnṣe ìyàtọ̀ GPS",
+       "exif-jpegfilecomment": "Àwísọ fáìlì JPEG",
+       "exif-keywords": "Àwọn kókóọ̀rọ̀",
+       "exif-worldregioncreated": "Agbègbè àgbáyé tí wọ́n ti ya àwòrán",
+       "exif-countrycreated": "Orílẹ̀-èdè tí wọ́n ti ya àwòrán",
+       "exif-countrycodecreated": "Àmìọ̀rọ̀ fún orílẹ̀-èdè tí wọ́n ti ya àwòrán",
+       "exif-provinceorstatecreated": "Ìgbèríko tàbí ìpínlẹ̀ tí wọ́n ti ya àwòrán",
+       "exif-citycreated": "Ìlú tí wọ́n ti ya àwòrán",
+       "exif-sublocationcreated": "Àdúgbò ìlú tí wọ́n ti ya àwòrán",
+       "exif-worldregiondest": "Agbègbè àgbáyé híhàn",
+       "exif-countrydest": "Orílẹ̀-èdè híhàn",
+       "exif-countrycodedest": "Àmìọ̀rọ̀ fún orílẹ̀-èdè híhàn",
+       "exif-provinceorstatedest": "Ìgbéríko tàbí ìpínlẹ̀ tó ní",
+       "exif-citydest": "Ìlú híhàn",
+       "exif-sublocationdest": "Ibùdó ní ìlú àfihàn",
+       "exif-objectname": "Àkọlé kúkúrú",
+       "exif-specialinstructions": "Àwọn ìlànà pàtàkì",
+       "exif-headline": "Àkọlé",
+       "exif-credit": "Adálórúkọ/Olùpèsè",
+       "exif-source": "Orísun",
+       "exif-urgency": "Ìkánjú",
+       "exif-locationdest": "Ibùdó afihàn",
+       "exif-locationdestcode": "Àmìọ̀rọ̀ ibùdó àfihàn",
+       "exif-objectcycle": "Àsìkò ọjọ́ tí amóhùnmáwòrán jẹ́ fífètòsí",
+       "exif-contact": "Ibi ìbárapàdé",
+       "exif-writer": "Olùkọ̀wé",
+       "exif-languagecode": "Èdè",
+       "exif-iimversion": "Àtẹ̀jáde IIM",
+       "exif-iimcategory": "Ẹ̀ka",
+       "exif-iimsupplementalcategory": "Àwọn ẹ̀ka aláfikún",
+       "exif-datetimeexpires": "Ẹ mọ́ lò ó lẹ́yìn",
+       "exif-datetimereleased": "Fisílẹ̀ ní",
+       "exif-identifier": "Oludámọ̀",
+       "exif-lens": "Irú awò",
+       "exif-serialnumber": "Nọ́mbà ìtẹ̀léra kámẹ́rà",
+       "exif-cameraownername": "Ẹni tó ni kámẹ́rà",
+       "exif-label": "Àlẹ̀mọ́",
+       "exif-datetimemetadata": "Ọjọ́ tí mẹtadátà jẹ́ títúnṣe kẹ́yìn",
+       "exif-nickname": "Orúkọ àìdájú àwòrán",
+       "exif-rating": "Máàkì (nínú 5)",
+       "exif-copyrighted": "Ipò ẹ̀tọ́àwòkọ",
+       "exif-copyrightowner": "Ẹni tóni ẹ̀tọ́ àwòkọ",
+       "exif-usageterms": "Àdéhùn ìmúlò",
+       "exif-licenseurl": "URL fún ìwé-ẹ̀rí ẹ̀tọ́àwòkọ",
+       "exif-attributionurl": "Nígbà tí ẹ bá ṣe àtúnlò iṣẹ́ yìí, ẹ jọ̀wọ́ ẹ ṣe àjápọ̀ sí",
+       "exif-preferredattributionname": "Nígbà tí ẹ bá ṣe àtúnlò iṣẹ́ yìí, ẹ jọ̀wọ́ ẹ ṣe ìdálórúkọ",
+       "exif-pngfilecomment": "Àwísọ fáìlì PNG",
+       "exif-contentwarning": "Ìkìlọ̀ àkóónú",
+       "exif-giffilecomment": "Àwísọ fáìlì GIF",
+       "exif-intellectualgenre": "Irú ohun",
+       "exif-subjectnewscode": "Àmíọ̀rọ̀ olùdálélórí",
+       "exif-event": "Ìṣẹ̀lẹ̀ tó ṣe",
+       "exif-organisationinimage": "Àgbájọ tó ṣe",
+       "exif-personinimage": "Ẹni àfihàn",
+       "exif-compression-1": "Àìtẹ̀pọ̀",
+       "exif-copyrighted-true": "Ó ní ẹ̀tọ́-àwòkọ",
+       "exif-copyrighted-false": "Àyè ìgboro",
+       "exif-unknowndate": "Ọjọ́ọdún àìmọ̀",
+       "exif-orientation-1": "Déédé",
+       "exif-orientation-3": "Yíyínípo 180°",
+       "exif-orientation-4": "Dídoríkodò",
+       "exif-orientation-5": "Yíyínípo sí 90° CCW àti dídà lórí kudò",
+       "exif-orientation-6": "Yíyínípo sí 90° CCW",
+       "exif-orientation-7": "Yíyínípo sí 90° CW àti dídà lórí kudò",
+       "exif-orientation-8": "Yíyínípo sí 90° CW",
+       "exif-componentsconfiguration-0": "kòsí",
+       "exif-exposureprogram-0": "Kò ní ìtumọ̀",
+       "exif-exposureprogram-1": "Aláfọwọ́ṣe",
+       "exif-subjectdistance-value": "mítà $1",
+       "exif-meteringmode-0": "Aláìmọ̀",
+       "exif-meteringmode-1": "Ìpínláàrin",
+       "exif-meteringmode-3": "Ojúàmì",
+       "exif-meteringmode-4": "Ojúàmì-Orísi",
+       "exif-meteringmode-6": "Onídíẹ̀",
+       "exif-meteringmode-255": "Òmíràn",
+       "exif-lightsource-0": "Aláìmọ̀",
+       "exif-lightsource-1": "Ojúmọ́",
+       "exif-lightsource-4": "Fláàṣì",
+       "exif-lightsource-9": "Ojúọjọ́ dídára",
+       "exif-lightsource-10": "Ojúọjọ́ tó ṣú",
+       "exif-lightsource-11": "Ìbòji",
+       "exif-lightsource-255": "Orísun ìmọ́lẹ̀ míràn",
+       "exif-flash-fired-0": "Fláàṣì kò yọ iná",
+       "exif-flash-fired-1": "Fláàṣì yọ iná",
+       "exif-flash-mode-3": "nífúnrara",
+       "exif-flash-function-1": "Fláàṣì kò siṣẹ́",
+       "exif-focalplaneresolutionunit-2": "inches",
+       "exif-sensingmethod-1": "Àìtúmọ̀",
+       "exif-filesource-3": "Kámẹ́rà dígítà amúdúró",
+       "exif-scenetype-1": "Àwòrán tó jẹ́ yíyà ní fọ́tò tààrà",
+       "exif-customrendered-0": "Ìgbéṣe déédé",
+       "exif-scenecapturetype-3": "Inú òkùnkùn",
+       "exif-gaincontrol-0": "Ìkankan",
+       "exif-contrast-0": "Déédé",
+       "exif-saturation-0": "Déédé",
+       "exif-sharpness-0": "Déédé",
+       "exif-subjectdistancerange-0": "Aláìmọ̀",
+       "exif-subjectdistancerange-2": "Ìpadé ìwòran",
+       "exif-subjectdistancerange-3": "Ìwòran ọ̀ọ́kán",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter|meters}} ló fiwà lókè omi-òkun",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter|meters}} ló fiwà lábẹ́ omi-òkun",
+       "exif-gpsmeasuremode-2": "Ìwọ̀n ẹlẹ́gbẹ̀ẹ́ 2",
+       "exif-gpsmeasuremode-3": "Ìwọ̀n ẹlẹ́gbẹ̀ẹ́ 3",
+       "exif-gpsspeed-k": "Kilometers láàrin wákàtí kan",
+       "exif-gpsspeed-m": "Mẹ́ẹ̀lì ní wákàtí kan",
+       "exif-gpsdestdistance-k": "Kilometers",
+       "exif-gpsdestdistance-m": "Mẹ́ẹ̀lì",
+       "exif-gpsdestdistance-n": "Mẹ́ẹ̀lì orí-omi",
+       "exif-gpsdop-good": "Dáradára ($1)",
+       "exif-gpsdop-poor": "Àìdára ($1)",
+       "exif-objectcycle-a": "Àárọ̀ nìkan",
+       "exif-objectcycle-p": "Ìrọ̀lẹ́ nìkan",
+       "exif-objectcycle-b": "Àárọ̀ àti ìrọ̀lẹ́",
+       "exif-ycbcrpositioning-1": "Gbígbésáàrin",
+       "exif-dc-contributor": "Àwọn olùkópa",
+       "exif-dc-date": "Ọjọ́ọdún",
+       "exif-dc-publisher": "Olùtẹ̀jáde",
+       "exif-dc-relation": "Amóhùnmáwórán ajọra",
+       "exif-dc-rights": "Àwọn ẹ̀tọ́",
+       "exif-dc-source": "Orísun amóhùnmáwórán",
+       "exif-dc-type": "Irú amóhùnmáwòrán",
+       "exif-rating-rejected": "Kíkọ̀",
+       "exif-isospeedratings-overflow": "Ó tóbi ju 65535 lọ",
+       "exif-iimcategory-ace": "Ìṣẹ́ọnà, àṣà àti fàájì",
+       "exif-iimcategory-clj": "Ìdanràn àti òfin",
+       "exif-iimcategory-edu": "Ẹ̀kọ́",
+       "exif-iimcategory-evn": "Àyíká",
+       "exif-iimcategory-hth": "Ìlera",
+       "exif-iimcategory-lab": "Ìsẹ́",
+       "exif-iimcategory-pol": "Ìṣèlú",
+       "exif-iimcategory-rel": "Ẹ̀sìn àti ìgbàgbọ́",
+       "exif-iimcategory-sci": "Sáyẹ̀nsì àti ọ̀rọ̀iṣẹ́ọnà",
+       "exif-iimcategory-soi": "Àwọn ọ̀rọ̀ àwùjọ",
+       "exif-iimcategory-spo": "Àwọn eréìdárayá",
+       "exif-iimcategory-wea": "Ojúọjọ́",
+       "exif-urgency-normal": "Déédé ($1)",
+       "exif-urgency-low": "Kúkúrú ($1)",
+       "exif-urgency-high": "Gíga ($1)"
+}
diff --git a/languages/i18n/exif/yue.json b/languages/i18n/exif/yue.json
new file mode 100644 (file)
index 0000000..c705f42
--- /dev/null
@@ -0,0 +1,317 @@
+{
+       "@metadata": {
+               "authors": [
+                       "CRCHF",
+                       "Hello903hello",
+                       "Ktchankt",
+                       "Roy17",
+                       "Waihorace",
+                       "William915",
+                       "Yueman"
+               ]
+       },
+       "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": "每壓縮帶 bytes 數",
+       "exif-jpeginterchangeformat": "JPEG SOI 嘅偏移量",
+       "exif-jpeginterchangeformatlength": "JPEG 資料嘅 bytes 數",
+       "exif-whitepoint": "白點色度",
+       "exif-primarychromaticities": "主要嘅色度",
+       "exif-ycbcrcoefficients": "顏色空間轉換矩陣系數",
+       "exif-referenceblackwhite": "黑白對參照值",
+       "exif-datetime": "檔案更動日期時間",
+       "exif-imagedescription": "圖名",
+       "exif-make": "相機廠商",
+       "exif-model": "相機型號",
+       "exif-software": "用過嘅軟件",
+       "exif-artist": "作者",
+       "exif-copyright": "版權人",
+       "exif-exifversion": "Exif版本",
+       "exif-flashpixversion": "支援嘅 Flashpix 版本",
+       "exif-colorspace": "色彩空間",
+       "exif-componentsconfiguration": "每個部份嘅意思",
+       "exif-compressedbitsperpixel": "影像壓縮模式",
+       "exif-pixelxdimension": "影像闊度",
+       "exif-pixelydimension": "影像高度",
+       "exif-usercomment": "用家註腳",
+       "exif-relatedsoundfile": "相關聲音檔",
+       "exif-datetimeoriginal": "原創日期時間",
+       "exif-datetimedigitized": "制成數碼日期時間",
+       "exif-subsectime": "日期時間細秒",
+       "exif-subsectimeoriginal": "日期時間原細秒",
+       "exif-subsectimedigitized": "日期時間數碼化細秒",
+       "exif-exposuretime": "曝光長度",
+       "exif-exposuretime-format": "$1 秒 ($2)",
+       "exif-fnumber": "F 值",
+       "exif-exposureprogram": "曝光程序",
+       "exif-spectralsensitivity": "光譜敏感度",
+       "exif-isospeedratings": "ISO 速率",
+       "exif-shutterspeedvalue": "APEX快門速度",
+       "exif-aperturevalue": "APEX光圈",
+       "exif-brightnessvalue": "APEX光度",
+       "exif-exposurebiasvalue": "曝光偏壓",
+       "exif-maxaperturevalue": "最大陸地孔徑",
+       "exif-subjectdistance": "主體距離",
+       "exif-meteringmode": "測距模式",
+       "exif-lightsource": "光源",
+       "exif-flash": "閃光燈",
+       "exif-focallength": "鏡頭焦距",
+       "exif-focallength-format": "$1 毫米",
+       "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": "白平衡",
+       "exif-digitalzoomratio": "數碼放大比例",
+       "exif-focallengthin35mmfilm": "以35毫米菲林計嘅焦距",
+       "exif-scenecapturetype": "場景捕捉類型",
+       "exif-gaincontrol": "場景控制",
+       "exif-contrast": "對比",
+       "exif-saturation": "飽和度",
+       "exif-sharpness": "清晰度",
+       "exif-devicesettingdescription": "裝置設定描述",
+       "exif-subjectdistancerange": "物件距離範圍",
+       "exif-imageuniqueid": "影像獨有編號",
+       "exif-gpsversionid": "全球定位版本",
+       "exif-gpslatituderef": "南北緯",
+       "exif-gpslatitude": "緯度",
+       "exif-gpslongituderef": "東西經",
+       "exif-gpslongitude": "經度",
+       "exif-gpsaltituderef": "海拔參考點",
+       "exif-gpsaltitude": "海拔",
+       "exif-gpstimestamp": "全球定位時間(原子鐘)",
+       "exif-gpssatellites": "量度用嘅衞星",
+       "exif-gpsstatus": "接收器狀態",
+       "exif-gpsmeasuremode": "量度模式",
+       "exif-gpsdop": "量度準繩度",
+       "exif-gpsspeedref": "速度單位",
+       "exif-gpsspeed": "全球定位儀嘅速度",
+       "exif-gpstrackref": "移動方向參考點",
+       "exif-gpstrack": "移動方向",
+       "exif-gpsimgdirectionref": "影像方向參考點",
+       "exif-gpsimgdirection": "影像方向",
+       "exif-gpsmapdatum": "用咗嘅大地測量資料",
+       "exif-gpsdestlatituderef": "目的地緯度參考點",
+       "exif-gpsdestlatitude": "目的地緯度",
+       "exif-gpsdestlongituderef": "目的地經度參考點",
+       "exif-gpsdestlongitude": "目的地經度",
+       "exif-gpsdestbearingref": "目的地坐向參考點",
+       "exif-gpsdestbearing": "目的地坐向",
+       "exif-gpsdestdistanceref": "目的地距離參考點",
+       "exif-gpsdestdistance": "目的地距離",
+       "exif-gpsprocessingmethod": "GPS 處理方法名",
+       "exif-gpsareainformation": "GPS 地區名",
+       "exif-gpsdatestamp": "GPS 日期",
+       "exif-gpsdifferential": "GPS 差動修正",
+       "exif-jpegfilecomment": "JPEG文件註",
+       "exif-keywords": "關鍵字",
+       "exif-countrydest": "顯示國家",
+       "exif-countrycodedest": "顯示國家地區碼",
+       "exif-provinceorstatedest": "顯示省份或州份或領域地區",
+       "exif-citydest": "顯示城市",
+       "exif-objectname": "短標題",
+       "exif-specialinstructions": "特殊介紹",
+       "exif-headline": "標題",
+       "exif-source": "來源",
+       "exif-urgency": "緊急程度",
+       "exif-contact": "聯繫信息",
+       "exif-writer": "作家",
+       "exif-languagecode": "語言",
+       "exif-iimversion": "IIM版本",
+       "exif-iimcategory": "類",
+       "exif-datetimeexpires": "喺呢個日期之後唔好再用",
+       "exif-identifier": "識別碼",
+       "exif-lens": "用咗嘅鏡頭",
+       "exif-serialnumber": "相機序號",
+       "exif-cameraownername": "相機擁有人",
+       "exif-label": "標籤",
+       "exif-nickname": "張相嘅非正式名",
+       "exif-rating": "評分(最高5分)",
+       "exif-copyrighted": "版權狀態",
+       "exif-copyrightowner": "版權人",
+       "exif-pngfilecomment": "PNG文件註",
+       "exif-disclaimer": "免責聲明",
+       "exif-contentwarning": "內容警告",
+       "exif-giffilecomment": "GIF文件註",
+       "exif-intellectualgenre": "項類",
+       "exif-subjectnewscode": "項碼",
+       "exif-originalimageheight": "呢幅圖裁之前嘅高度",
+       "exif-originalimagewidth": "呢幅圖裁之前嘅闊度",
+       "exif-compression-1": "未壓過",
+       "exif-copyrighted-true": "受版權保護",
+       "exif-copyrighted-false": "未設版權狀態",
+       "exif-photometricinterpretation-1": "黑同白(黑係0)",
+       "exif-unknowndate": "未知日期",
+       "exif-orientation-1": "正常",
+       "exif-orientation-2": "左右倒轉",
+       "exif-orientation-3": "轉一百八十度",
+       "exif-orientation-4": "上下倒轉",
+       "exif-orientation-5": "逆時針轉九十度,再上下倒轉",
+       "exif-orientation-6": "逆時針轉九十度",
+       "exif-orientation-7": "順時針轉九十度,再上下倒轉",
+       "exif-orientation-8": "順時針轉九十度",
+       "exif-planarconfiguration-1": "chunky 格式",
+       "exif-planarconfiguration-2": "planar 格式",
+       "exif-colorspace-65535": "未校啱色",
+       "exif-componentsconfiguration-0": "根本無",
+       "exif-exposureprogram-0": "無定義",
+       "exif-exposureprogram-1": "人手",
+       "exif-exposureprogram-2": "平常程序",
+       "exif-exposureprogram-3": "着重光圈",
+       "exif-exposureprogram-4": "着重快門",
+       "exif-exposureprogram-5": "創作程序(加重景深)",
+       "exif-exposureprogram-6": "動作程序(加大快門速度)",
+       "exif-exposureprogram-7": "人像模式(近睇,背景矇)",
+       "exif-exposureprogram-8": "風景模式(風景相,聚焦背景)",
+       "exif-subjectdistance-value": "$1米",
+       "exif-meteringmode-0": "唔知",
+       "exif-meteringmode-1": "平均",
+       "exif-meteringmode-2": "中間加權平均",
+       "exif-meteringmode-3": "一點",
+       "exif-meteringmode-4": "多點",
+       "exif-meteringmode-5": "圖案",
+       "exif-meteringmode-6": "部分",
+       "exif-meteringmode-255": "其他",
+       "exif-lightsource-0": "唔知",
+       "exif-lightsource-1": "日光",
+       "exif-lightsource-2": "光管",
+       "exif-lightsource-3": "燈泡(鎢絲)",
+       "exif-lightsource-4": "閃光燈",
+       "exif-lightsource-9": "晴朗",
+       "exif-lightsource-10": "有雲",
+       "exif-lightsource-11": "陰影",
+       "exif-lightsource-12": "日光螢光燈 (D 5700 – 7100K)",
+       "exif-lightsource-13": "日光白色螢光燈 (N 4600 – 5400K)",
+       "exif-lightsource-14": "冷白螢光燈 (W 3900 – 4500K)",
+       "exif-lightsource-15": "白色螢光燈 (WW 3200 – 3700K)",
+       "exif-lightsource-17": "標準光 A",
+       "exif-lightsource-18": "標準光 B",
+       "exif-lightsource-19": "標準光 C",
+       "exif-lightsource-24": "ISO 攝影廠鎢燈",
+       "exif-lightsource-255": "其它光源",
+       "exif-flash-fired-0": "閃光燈無開火",
+       "exif-flash-fired-1": "閃光燈開火",
+       "exif-flash-return-0": "無頻閃觀測器功能",
+       "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-sensingmethod-7": "三綫感應器",
+       "exif-sensingmethod-8": "連續色彩綫性感應器",
+       "exif-scenetype-1": "一張直接映像",
+       "exif-customrendered-0": "一般程序",
+       "exif-customrendered-1": "度身程序",
+       "exif-exposuremode-0": "自動曝光",
+       "exif-exposuremode-1": "手動曝光",
+       "exif-exposuremode-2": "自動曝光感知調節",
+       "exif-whitebalance-0": "自動白平衡",
+       "exif-whitebalance-1": "手動白平衡",
+       "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-saturation-0": "平常",
+       "exif-saturation-1": "低飽和",
+       "exif-saturation-2": "高飽和",
+       "exif-sharpness-0": "平常",
+       "exif-sharpness-1": "軟",
+       "exif-sharpness-2": "硬",
+       "exif-subjectdistancerange-0": "唔知",
+       "exif-subjectdistancerange-1": "微觀",
+       "exif-subjectdistancerange-2": "近鏡",
+       "exif-subjectdistancerange-3": "遠鏡",
+       "exif-gpslatitude-n": "北緯",
+       "exif-gpslatitude-s": "南緯",
+       "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-gpsdestdistance-m": "哩",
+       "exif-gpsdestdistance-n": "浬",
+       "exif-gpsdop-excellent": "無得彈 ($1)",
+       "exif-gpsdop-good": "正斗 ($1)",
+       "exif-gpsdop-moderate": "幾好 ($1)",
+       "exif-gpsdop-fair": "麻麻哋 ($1)",
+       "exif-gpsdop-poor": "唔得掂 ($1)",
+       "exif-objectcycle-a": "只係朝早",
+       "exif-objectcycle-p": "只係晚黑",
+       "exif-objectcycle-b": "朝早同晚黑都得",
+       "exif-gpsdirection-t": "真實方向",
+       "exif-gpsdirection-m": "地磁方向",
+       "exif-ycbcrpositioning-1": "置中",
+       "exif-dc-contributor": "貢獻者",
+       "exif-dc-date": "日子",
+       "exif-dc-publisher": "發佈者",
+       "exif-dc-relation": "相關媒體",
+       "exif-dc-rights": "權",
+       "exif-dc-source": "來源媒體",
+       "exif-dc-type": "媒體類",
+       "exif-rating-rejected": "拒絕咗",
+       "exif-isospeedratings-overflow": "超出咗65535嘅限制",
+       "exif-iimcategory-ace": "藝術、文化同娛樂",
+       "exif-iimcategory-clj": "犯罪同法律",
+       "exif-iimcategory-dis": "災​​難同事故",
+       "exif-iimcategory-fin": "經濟同商業",
+       "exif-iimcategory-edu": "教育",
+       "exif-iimcategory-evn": "環境",
+       "exif-iimcategory-hth": "健康",
+       "exif-iimcategory-hum": "人情世故",
+       "exif-iimcategory-lab": "勞工",
+       "exif-iimcategory-lif": "生活同休閒",
+       "exif-iimcategory-pol": "政治",
+       "exif-iimcategory-rel": "宗教同信仰",
+       "exif-iimcategory-sci": "科學同科技",
+       "exif-iimcategory-soi": "社會問題",
+       "exif-iimcategory-spo": "體育",
+       "exif-iimcategory-war": "戰爭,衝突同動蕩",
+       "exif-iimcategory-wea": "天氣",
+       "exif-urgency-normal": "正常 ($1)",
+       "exif-urgency-low": "低 ($1)",
+       "exif-urgency-high": "高 ($1)",
+       "exif-urgency-other": "用戶自訂優先權($1)"
+}
diff --git a/languages/i18n/exif/zh-hans.json b/languages/i18n/exif/zh-hans.json
new file mode 100644 (file)
index 0000000..41ff061
--- /dev/null
@@ -0,0 +1,362 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Bencmq",
+                       "Hydra",
+                       "Impersonator 1",
+                       "Li3939108",
+                       "Liuxinyu970226",
+                       "PhiLiP",
+                       "Qiyue2001",
+                       "Xiaomingyan"
+               ]
+       },
+       "exif-imagewidth": "宽度",
+       "exif-imagelength": "高度",
+       "exif-bitspersample": "每像素字节数",
+       "exif-compression": "压缩方案",
+       "exif-photometricinterpretation": "像素构成",
+       "exif-orientation": "方位",
+       "exif-samplesperpixel": "像素数",
+       "exif-planarconfiguration": "数据排列",
+       "exif-ycbcrsubsampling": "黄色洋红的二次采样比例",
+       "exif-ycbcrpositioning": "黄色和洋红配置",
+       "exif-xresolution": "水平分辨率",
+       "exif-yresolution": "垂直分辨率",
+       "exif-stripoffsets": "图像数据区",
+       "exif-rowsperstrip": "每带行数",
+       "exif-stripbytecounts": "每压缩带字节数",
+       "exif-jpeginterchangeformat": "JPEG SOI偏移",
+       "exif-jpeginterchangeformatlength": "JPEG数据字节",
+       "exif-whitepoint": "白点色度",
+       "exif-primarychromaticities": "主要色度",
+       "exif-ycbcrcoefficients": "色彩空间转换矩阵系数",
+       "exif-referenceblackwhite": "黑白参照值对",
+       "exif-datetime": "文件修改日期时间",
+       "exif-imagedescription": "图像标题",
+       "exif-make": "相机制造商",
+       "exif-model": "相机型号",
+       "exif-software": "使用软件",
+       "exif-artist": "作者",
+       "exif-copyright": "著作权所有人",
+       "exif-exifversion": "Exif版本",
+       "exif-flashpixversion": "支持的Flashpix版本",
+       "exif-colorspace": "色彩空间",
+       "exif-componentsconfiguration": "各部分含义",
+       "exif-compressedbitsperpixel": "图像压缩模式",
+       "exif-pixelxdimension": "图像宽度",
+       "exif-pixelydimension": "图像高度",
+       "exif-usercomment": "用户评论",
+       "exif-relatedsoundfile": "相关声音文件",
+       "exif-datetimeoriginal": "数据生成日期时间",
+       "exif-datetimedigitized": "数字化日期时间",
+       "exif-subsectime": "修改时间厘秒数",
+       "exif-subsectimeoriginal": "数据生成时间厘秒数",
+       "exif-subsectimedigitized": "数字化时间厘秒数",
+       "exif-exposuretime": "曝光时间",
+       "exif-exposuretime-format": "$1秒($2)",
+       "exif-fnumber": "光圈值",
+       "exif-exposureprogram": "曝光程序",
+       "exif-spectralsensitivity": "感光",
+       "exif-isospeedratings": "感光度(ISO)",
+       "exif-shutterspeedvalue": "APEX快门速度",
+       "exif-aperturevalue": "APEX光圈",
+       "exif-brightnessvalue": "APEX 亮度",
+       "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": "白平衡",
+       "exif-digitalzoomratio": "数字变焦比率",
+       "exif-focallengthin35mmfilm": "35 mm胶片焦距",
+       "exif-scenecapturetype": "场景模式",
+       "exif-gaincontrol": "场景控制",
+       "exif-contrast": "对比度",
+       "exif-saturation": "饱和度",
+       "exif-sharpness": "锐化",
+       "exif-devicesettingdescription": "设备设置说明",
+       "exif-subjectdistancerange": "主体距离范围",
+       "exif-imageuniqueid": "唯一图像ID",
+       "exif-gpsversionid": "GPS标签版本",
+       "exif-gpslatituderef": "北纬或南纬",
+       "exif-gpslatitude": "纬度",
+       "exif-gpslongituderef": "东经或西经",
+       "exif-gpslongitude": "经度",
+       "exif-gpsaltituderef": "海拔正负参照",
+       "exif-gpsaltitude": "海拔",
+       "exif-gpstimestamp": "GPS时间(原子钟)",
+       "exif-gpssatellites": "测量使用的卫星",
+       "exif-gpsstatus": "接收器状态",
+       "exif-gpsmeasuremode": "测量模式",
+       "exif-gpsdop": "测量精度",
+       "exif-gpsspeedref": "速度单位",
+       "exif-gpsspeed": "GPS接收器速度",
+       "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": "GPS区域名称",
+       "exif-gpsdatestamp": "GPS日期",
+       "exif-gpsdifferential": "GPS差动修正",
+       "exif-jpegfilecomment": "JPEG文件备注",
+       "exif-keywords": "关键词",
+       "exif-worldregioncreated": "照片中的世界区域",
+       "exif-countrycreated": "在拍摄图片的国家",
+       "exif-countrycodecreated": "在拍摄图片的国家代码",
+       "exif-provinceorstatecreated": "省或拍摄图片中的状态",
+       "exif-citycreated": "照片中的城市",
+       "exif-sublocationcreated": "照片拍摄地点在城市中的位置",
+       "exif-worldregiondest": "世界区域显示",
+       "exif-countrydest": "所示的国家",
+       "exif-countrycodedest": "国家代码",
+       "exif-provinceorstatedest": "省或州",
+       "exif-citydest": "所示的城市",
+       "exif-sublocationdest": "显示城市中的详细地点",
+       "exif-objectname": "简称",
+       "exif-specialinstructions": "特别说明",
+       "exif-headline": "标题",
+       "exif-credit": "提供人",
+       "exif-source": "来源",
+       "exif-editstatus": "编辑状态的图像",
+       "exif-urgency": "紧急性",
+       "exif-fixtureidentifier": "夹具名称",
+       "exif-locationdest": "描绘的地点",
+       "exif-locationdestcode": "位置所示的代码",
+       "exif-objectcycle": "媒体文件使用时间要求",
+       "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": "原始数据最后修改日期",
+       "exif-nickname": "非正式的图像的名称",
+       "exif-rating": "分级(最高为5)",
+       "exif-rightscertificate": "权利管理证书",
+       "exif-copyrighted": "著作权状况",
+       "exif-copyrightowner": "著作权所有人",
+       "exif-usageterms": "使用条款",
+       "exif-webstatement": "在线著作权声明",
+       "exif-originaldocumentid": "原始文件唯一ID",
+       "exif-licenseurl": "著作权授权协议的URL",
+       "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-subjectnewscode-value": "$2($1)",
+       "exif-compression-1": "未压缩",
+       "exif-compression-2": "CCITT第3组一维修改霍夫曼游程编码",
+       "exif-compression-3": "CCITT第3组传真编码",
+       "exif-compression-4": "CCITT第4组传真编码",
+       "exif-compression-6": "JPEG(旧)",
+       "exif-copyrighted-true": "受版权保护",
+       "exif-copyrighted-false": "版权状态未设定",
+       "exif-photometricinterpretation-0": "黑白(白为0)",
+       "exif-photometricinterpretation-1": "黑白(黑为0)",
+       "exif-photometricinterpretation-4": "透明遮罩",
+       "exif-photometricinterpretation-5": "分隔(可能是CMYK)",
+       "exif-photometricinterpretation-9": "CIE L*a*b*(ICC编码)",
+       "exif-photometricinterpretation-10": "CIE L*a*b*(ITU编码)",
+       "exif-photometricinterpretation-32803": "色彩滤镜矩阵",
+       "exif-photometricinterpretation-34892": "线性原始",
+       "exif-unknowndate": "未知日期",
+       "exif-orientation-1": "标准",
+       "exif-orientation-2": "水平翻转",
+       "exif-orientation-3": "旋转180°",
+       "exif-orientation-4": "垂直翻转",
+       "exif-orientation-5": "逆时针旋转90°并垂直翻转",
+       "exif-orientation-6": "逆时针旋转90°",
+       "exif-orientation-7": "顺时针旋转90°并垂直翻转",
+       "exif-orientation-8": "顺时针旋转90°",
+       "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-exposureprogram-5": "艺术程序(景深优先)",
+       "exif-exposureprogram-6": "运动程序(高快门速度优先)",
+       "exif-exposureprogram-7": "肖像模式(适用于背景在焦距以外的近距摄影)",
+       "exif-exposureprogram-8": "风景模式(适用于背景在焦距上的风景照片)",
+       "exif-subjectdistance-value": "$1米",
+       "exif-meteringmode-0": "未知",
+       "exif-meteringmode-1": "平均水平",
+       "exif-meteringmode-2": "中心加权平均测量",
+       "exif-meteringmode-3": "点测",
+       "exif-meteringmode-4": "多点测",
+       "exif-meteringmode-5": "模式",
+       "exif-meteringmode-6": "局部测量",
+       "exif-meteringmode-255": "其他",
+       "exif-lightsource-0": "未知",
+       "exif-lightsource-1": "日光灯",
+       "exif-lightsource-2": "荧光灯",
+       "exif-lightsource-3": "钨丝灯(白炽灯)",
+       "exif-lightsource-4": "闪光灯",
+       "exif-lightsource-9": "晴天",
+       "exif-lightsource-10": "多云",
+       "exif-lightsource-11": "深色调阴影",
+       "exif-lightsource-12": "日光荧光灯(色温 D 5700 – 7100K)",
+       "exif-lightsource-13": "日温白色荧光灯(N 4600 – 5400K)",
+       "exif-lightsource-14": "冷白色荧光灯(W 3900 – 4500K)",
+       "exif-lightsource-15": "白色荧光 (WW 3200 – 3700K)",
+       "exif-lightsource-17": "标准灯光A",
+       "exif-lightsource-18": "标准灯光B",
+       "exif-lightsource-19": "标准灯光C",
+       "exif-lightsource-24": "ISO摄影棚钨灯",
+       "exif-lightsource-255": "其他光源",
+       "exif-flash-fired-0": "闪光灯未点亮",
+       "exif-flash-fired-1": "闪光灯开启",
+       "exif-flash-return-0": "无频闪观测器功能",
+       "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-sensingmethod-7": "三线传感器",
+       "exif-sensingmethod-8": "连续彩色线性传感器",
+       "exif-filesource-3": "数码相机",
+       "exif-scenetype-1": "直接照像图片",
+       "exif-customrendered-0": "标准处理",
+       "exif-customrendered-1": "自定义处理",
+       "exif-exposuremode-0": "自动曝光",
+       "exif-exposuremode-1": "手动曝光",
+       "exif-exposuremode-2": "自动曝光感知调节",
+       "exif-whitebalance-0": "自动白平衡",
+       "exif-whitebalance-1": "手动白平衡",
+       "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-saturation-0": "标准",
+       "exif-saturation-1": "低饱和度",
+       "exif-saturation-2": "高饱和度",
+       "exif-sharpness-0": "标准",
+       "exif-sharpness-1": "低",
+       "exif-sharpness-2": "高",
+       "exif-subjectdistancerange-0": "未知",
+       "exif-subjectdistancerange-1": "宏程序",
+       "exif-subjectdistancerange-2": "近景",
+       "exif-subjectdistancerange-3": "远景",
+       "exif-gpslatitude-n": "北纬",
+       "exif-gpslatitude-s": "南纬",
+       "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-gpsdestdistance-m": "英里",
+       "exif-gpsdestdistance-n": "海里",
+       "exif-gpsdop-excellent": "优秀($1)",
+       "exif-gpsdop-good": "好($1)",
+       "exif-gpsdop-moderate": "中度($1)",
+       "exif-gpsdop-fair": "平等($1)",
+       "exif-gpsdop-poor": "不好($1)",
+       "exif-objectcycle-a": "仅上午(AM)",
+       "exif-objectcycle-p": "仅下午(PM)",
+       "exif-objectcycle-b": "上午(AM)下午(PM)皆可",
+       "exif-gpsdirection-t": "真实方位",
+       "exif-gpsdirection-m": "地磁方位",
+       "exif-ycbcrpositioning-1": "居中",
+       "exif-ycbcrpositioning-2": "色相定位",
+       "exif-dc-contributor": "贡献者",
+       "exif-dc-coverage": "介质的空间或时间范围",
+       "exif-dc-date": "日期",
+       "exif-dc-publisher": "发布者",
+       "exif-dc-relation": "相关文件",
+       "exif-dc-rights": "权利",
+       "exif-dc-source": "原始文件",
+       "exif-dc-type": "介质类型",
+       "exif-rating-rejected": "拒绝",
+       "exif-isospeedratings-overflow": "大于65535",
+       "exif-iimcategory-ace": "艺术、 文化和娱乐",
+       "exif-iimcategory-clj": "犯罪和法律",
+       "exif-iimcategory-dis": "灾害和事故",
+       "exif-iimcategory-fin": "经济与商业",
+       "exif-iimcategory-edu": "教育",
+       "exif-iimcategory-evn": "环境",
+       "exif-iimcategory-hth": "健康",
+       "exif-iimcategory-hum": "人类利益",
+       "exif-iimcategory-lab": "劳动",
+       "exif-iimcategory-lif": "生活方式和休闲",
+       "exif-iimcategory-pol": "政治",
+       "exif-iimcategory-rel": "宗教和信仰",
+       "exif-iimcategory-sci": "科学和技术",
+       "exif-iimcategory-soi": "社会问题",
+       "exif-iimcategory-spo": "体育",
+       "exif-iimcategory-war": "战争、 冲突和动乱",
+       "exif-iimcategory-wea": "天气",
+       "exif-urgency-normal": "普通($1)",
+       "exif-urgency-low": "低($1)",
+       "exif-urgency-high": "高($1)",
+       "exif-urgency-other": "用户定义的优先级($1)"
+}
diff --git a/languages/i18n/exif/zh-hant.json b/languages/i18n/exif/zh-hant.json
new file mode 100644 (file)
index 0000000..8ebf8b1
--- /dev/null
@@ -0,0 +1,363 @@
+{
+       "@metadata": {
+               "authors": [
+                       "A2093064",
+                       "Anakmalaysia",
+                       "Andrew971218",
+                       "Cwlin0416",
+                       "Hello903hello",
+                       "Kly",
+                       "LNDDYL",
+                       "Lauhenry",
+                       "Mark85296341",
+                       "Waihorace"
+               ]
+       },
+       "exif-imagewidth": "寬度",
+       "exif-imagelength": "高度",
+       "exif-bitspersample": "每像素位元",
+       "exif-compression": "壓縮方式",
+       "exif-photometricinterpretation": "像素合成",
+       "exif-orientation": "方位",
+       "exif-samplesperpixel": "像素數量",
+       "exif-planarconfiguration": "資料排列",
+       "exif-ycbcrsubsampling": "黃色轉洋紅二次抽樣比率",
+       "exif-ycbcrpositioning": "亮度與彩度位置",
+       "exif-xresolution": "水平解析度",
+       "exif-yresolution": "垂直解析度",
+       "exif-stripoffsets": "影像資料位置",
+       "exif-rowsperstrip": "每帶行數",
+       "exif-stripbytecounts": "每壓縮帶位元組數",
+       "exif-jpeginterchangeformat": "JPEG SOI 偏移",
+       "exif-jpeginterchangeformatlength": "JPEG 資料位元組",
+       "exif-whitepoint": "白點色度",
+       "exif-primarychromaticities": "主要色度",
+       "exif-ycbcrcoefficients": "色彩空間轉置矩陣系數",
+       "exif-referenceblackwhite": "黑白參考值",
+       "exif-datetime": "檔案修改日期時間",
+       "exif-imagedescription": "影像標題",
+       "exif-make": "相機製造商",
+       "exif-model": "相機型號",
+       "exif-software": "使用軟體",
+       "exif-artist": "作者",
+       "exif-copyright": "版權所有人",
+       "exif-exifversion": "Exif 版本",
+       "exif-flashpixversion": "支援的 Flashpix 版本",
+       "exif-colorspace": "色彩空間",
+       "exif-componentsconfiguration": "每像素內含",
+       "exif-compressedbitsperpixel": "影像壓縮模式",
+       "exif-pixelxdimension": "影像寬度",
+       "exif-pixelydimension": "影像高度",
+       "exif-usercomment": "使用者評論",
+       "exif-relatedsoundfile": "相關的音效檔案",
+       "exif-datetimeoriginal": "資料產生的日期時間",
+       "exif-datetimedigitized": "數位化的日期時間",
+       "exif-subsectime": "DateTime 次秒",
+       "exif-subsectimeoriginal": "DateTimeOriginal 次秒",
+       "exif-subsectimedigitized": "DateTimeDigitized 次秒",
+       "exif-exposuretime": "曝光時間",
+       "exif-exposuretime-format": "$1 秒 ($2)",
+       "exif-fnumber": "光圈值",
+       "exif-exposureprogram": "曝光模式",
+       "exif-spectralsensitivity": "光譜靈敏度",
+       "exif-isospeedratings": "ISO 速率",
+       "exif-shutterspeedvalue": "APEX 快門速度",
+       "exif-aperturevalue": "APEX 光圈",
+       "exif-brightnessvalue": "APEX 亮度",
+       "exif-exposurebiasvalue": "APEX 曝光補償",
+       "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": "白平衡",
+       "exif-digitalzoomratio": "數位變焦比率",
+       "exif-focallengthin35mmfilm": "35 毫米膠片焦距",
+       "exif-scenecapturetype": "場景拍攝類型",
+       "exif-gaincontrol": "場景控制",
+       "exif-contrast": "對比度",
+       "exif-saturation": "飽和度",
+       "exif-sharpness": "銳利度",
+       "exif-devicesettingdescription": "裝置設定描述",
+       "exif-subjectdistancerange": "主體距離範圍",
+       "exif-imageuniqueid": "唯一影像識別碼",
+       "exif-gpsversionid": "GPS 標籤版本",
+       "exif-gpslatituderef": "北緯或南緯",
+       "exif-gpslatitude": "緯度",
+       "exif-gpslongituderef": "東經或西經",
+       "exif-gpslongitude": "經度",
+       "exif-gpsaltituderef": "海拔參考值",
+       "exif-gpsaltitude": "海拔",
+       "exif-gpstimestamp": "GPS 時間 (原子鐘)",
+       "exif-gpssatellites": "測量用的衛星",
+       "exif-gpsstatus": "接收器狀態",
+       "exif-gpsmeasuremode": "測量模式",
+       "exif-gpsdop": "測量精度",
+       "exif-gpsspeedref": "速度單位",
+       "exif-gpsspeed": "GPS 接收器速度",
+       "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": "GPS 區域名稱",
+       "exif-gpsdatestamp": "GPS 日期",
+       "exif-gpsdifferential": "GPS 差分修正",
+       "exif-jpegfilecomment": "JPEG 檔案備註",
+       "exif-keywords": "關鍵字",
+       "exif-worldregioncreated": "圖片拍攝地",
+       "exif-countrycreated": "圖片拍攝國家",
+       "exif-countrycodecreated": "圖片拍攝國家代碼",
+       "exif-provinceorstatecreated": "圖片拍攝省市",
+       "exif-citycreated": "圖片拍攝城市",
+       "exif-sublocationcreated": "圖片拍攝城市詳細地點",
+       "exif-worldregiondest": "顯示世界區域",
+       "exif-countrydest": "顯示國家",
+       "exif-countrycodedest": "顯示國家代碼",
+       "exif-provinceorstatedest": "顯示省或州",
+       "exif-citydest": "顯示的城市",
+       "exif-sublocationdest": "顯示城市詳細地點",
+       "exif-objectname": "簡稱",
+       "exif-specialinstructions": "特別說明",
+       "exif-headline": "標題",
+       "exif-credit": "製作/提供者",
+       "exif-source": "來源",
+       "exif-editstatus": "圖片社評狀態",
+       "exif-urgency": "緊急性",
+       "exif-fixtureidentifier": "Fixture 名稱",
+       "exif-locationdest": "描繪地點",
+       "exif-locationdestcode": "位置代碼描述",
+       "exif-objectcycle": "媒體發生時間",
+       "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": "詮釋資料最後修改日期",
+       "exif-nickname": "非正式的影像名稱",
+       "exif-rating": "評分 (共 5 分)",
+       "exif-rightscertificate": "版權管理憑證",
+       "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-2": "CCITT 第 3 組一維修改霍夫曼變動長度編碼",
+       "exif-compression-3": "CCITT 第 3 組傳真編碼",
+       "exif-compression-4": "CCITT 第 4 組傳真編碼",
+       "exif-compression-6": "JPEG (舊)",
+       "exif-copyrighted-true": "受版權保護",
+       "exif-copyrighted-false": "版權狀態不明",
+       "exif-photometricinterpretation-0": "黑白(白為 0)",
+       "exif-photometricinterpretation-1": "黑白(黑為 0)",
+       "exif-photometricinterpretation-3": "調色板",
+       "exif-photometricinterpretation-4": "透明遮罩",
+       "exif-photometricinterpretation-5": "分隔(可能是 CMYK)",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b*(ICC 編碼)",
+       "exif-photometricinterpretation-10": "CIE L*a*b*(ITU 編碼)",
+       "exif-unknowndate": "日期不明",
+       "exif-orientation-1": "標準",
+       "exif-orientation-2": "水平翻轉",
+       "exif-orientation-3": "旋轉 180°",
+       "exif-orientation-4": "垂直翻轉",
+       "exif-orientation-5": "逆時針旋轉 90° 並垂直翻轉",
+       "exif-orientation-6": "逆時針旋轉 90°",
+       "exif-orientation-7": "順時針旋轉 90° 並垂直翻轉",
+       "exif-orientation-8": "順時針旋轉 90°",
+       "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-exposureprogram-5": "藝術程式(景深優先)",
+       "exif-exposureprogram-6": "運動模式(快速快門優先)",
+       "exif-exposureprogram-7": "人像模式(用於近距離照片,對焦不在背景)",
+       "exif-exposureprogram-8": "風景模式(用於風景照片,對焦在背景)",
+       "exif-subjectdistance-value": "$1 尺",
+       "exif-meteringmode-0": "不明",
+       "exif-meteringmode-1": "平均",
+       "exif-meteringmode-2": "中心加權平均",
+       "exif-meteringmode-3": "點測",
+       "exif-meteringmode-4": "多點測",
+       "exif-meteringmode-5": "模式",
+       "exif-meteringmode-6": "部分",
+       "exif-meteringmode-255": "其他",
+       "exif-lightsource-0": "不明",
+       "exif-lightsource-1": "日光",
+       "exif-lightsource-2": "螢光燈",
+       "exif-lightsource-3": "鎢絲燈 (白熾燈)",
+       "exif-lightsource-4": "閃光燈",
+       "exif-lightsource-9": "晴天",
+       "exif-lightsource-10": "多雲",
+       "exif-lightsource-11": "陰暗處",
+       "exif-lightsource-12": "日光螢光燈 (D 5700 - 7100K)",
+       "exif-lightsource-13": "白天螢光燈 (N 4600 - 5400K)",
+       "exif-lightsource-14": "冷白螢光燈 (W 3900 - 4500K)",
+       "exif-lightsource-15": "白色螢光燈 (WW 3200 - 3700K)",
+       "exif-lightsource-17": "標準燈光 A",
+       "exif-lightsource-18": "標準燈光 B",
+       "exif-lightsource-19": "標準燈光 C",
+       "exif-lightsource-24": "ISO 攝影室鎢絲燈",
+       "exif-lightsource-255": "其他光源",
+       "exif-flash-fired-0": "閃光燈未開啟",
+       "exif-flash-fired-1": "閃光燈已開啟",
+       "exif-flash-return-0": "無頻閃偵測器功能",
+       "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-sensingmethod-7": "三線性感測器",
+       "exif-sensingmethod-8": "連續彩色線性感測器",
+       "exif-filesource-3": "數位相機",
+       "exif-scenetype-1": "直接照像圖片",
+       "exif-customrendered-0": "一般程序",
+       "exif-customrendered-1": "自訂程序",
+       "exif-exposuremode-0": "自動曝光",
+       "exif-exposuremode-1": "手動曝光",
+       "exif-exposuremode-2": "自動包圍曝光",
+       "exif-whitebalance-0": "自動白平衡",
+       "exif-whitebalance-1": "手動白平衡",
+       "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-saturation-0": "標準",
+       "exif-saturation-1": "低飽和度",
+       "exif-saturation-2": "高飽和度",
+       "exif-sharpness-0": "標準",
+       "exif-sharpness-1": "低",
+       "exif-sharpness-2": "高",
+       "exif-subjectdistancerange-0": "不明",
+       "exif-subjectdistancerange-1": "巨集",
+       "exif-subjectdistancerange-2": "近景",
+       "exif-subjectdistancerange-3": "遠景",
+       "exif-gpslatitude-n": "北緯",
+       "exif-gpslatitude-s": "南緯",
+       "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-gpsdestdistance-m": "英里",
+       "exif-gpsdestdistance-n": "海里",
+       "exif-gpsdop-excellent": "非常好 ($1)",
+       "exif-gpsdop-good": "良好 ($1)",
+       "exif-gpsdop-moderate": "普通 ($1)",
+       "exif-gpsdop-fair": "差 ($1)",
+       "exif-gpsdop-poor": "非常差 ($1)",
+       "exif-objectcycle-a": "僅上午",
+       "exif-objectcycle-p": "僅下午",
+       "exif-objectcycle-b": "上午與下午",
+       "exif-gpsdirection-t": "真實方向",
+       "exif-gpsdirection-m": "地磁方向",
+       "exif-ycbcrpositioning-1": "中間",
+       "exif-ycbcrpositioning-2": "同時取樣",
+       "exif-dc-contributor": "貢獻者",
+       "exif-dc-coverage": "媒體的時空範圍",
+       "exif-dc-date": "日期",
+       "exif-dc-publisher": "出版商",
+       "exif-dc-relation": "相關媒體",
+       "exif-dc-rights": "權利",
+       "exif-dc-source": "來源媒體",
+       "exif-dc-type": "媒體類型",
+       "exif-rating-rejected": "已拒絕",
+       "exif-isospeedratings-overflow": "大於 65535",
+       "exif-iimcategory-ace": "藝術、文化與娛樂",
+       "exif-iimcategory-clj": "犯罪與法律",
+       "exif-iimcategory-dis": "災​​害與事故",
+       "exif-iimcategory-fin": "經濟與商業",
+       "exif-iimcategory-edu": "教育",
+       "exif-iimcategory-evn": "環境",
+       "exif-iimcategory-hth": "健康",
+       "exif-iimcategory-hum": "人情世故",
+       "exif-iimcategory-lab": "勞動",
+       "exif-iimcategory-lif": "生活與休閒",
+       "exif-iimcategory-pol": "政治",
+       "exif-iimcategory-rel": "宗教與信仰",
+       "exif-iimcategory-sci": "科學與科技",
+       "exif-iimcategory-soi": "社會問題",
+       "exif-iimcategory-spo": "體育",
+       "exif-iimcategory-war": "戰爭、衝突與動亂",
+       "exif-iimcategory-wea": "天氣",
+       "exif-urgency-normal": "正常 ($1)",
+       "exif-urgency-low": "低 ($1)",
+       "exif-urgency-high": "高 ($1)",
+       "exif-urgency-other": "使用者自訂優先權 ($1)"
+}
diff --git a/languages/i18n/exif/zh-hk.json b/languages/i18n/exif/zh-hk.json
new file mode 100644 (file)
index 0000000..2d15ec9
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Quest for Truth"
+               ]
+       },
+       "exif-rowsperstrip": "每帶行數"
+}
index 846b5a3..28ea042 100644 (file)
        "blockip": "Atarugal usuáriu",
        "blockiptext": "Gasta el hormuláriu d'embahu p'atarugal el acesu duna IP u dun usuáriu.\nEstu solu ebi hazelsi pa evital el vandalismu, i dalcuerdu cola [[{{MediaWiki:Policy-url}}|póliça]].\nEscrebi una razón concreta embahu (pol sabulugal, almientandu páhinas qu'aigan siu vandalizás pol esti usuáriu).",
        "ipaddressorusername": "IP u nombri d’usuáriu:",
-       "ipbexpiry": "Acabiha:",
        "ipbreason": "Razón:",
        "ipbreason-dropdown": "*Motivus frecuentis de tarugus\n** Escrebil enhormación farsa\n** Esborral el continiu las páhinas\n** Añiil publiciá d’otras páhinas\n** Añiil basura enas páhinas\n** Comportamientu encévicu\n** Abusal con varias cuentas\n** Nombris d’usuárius enacetabris",
        "ipbcreateaccount": "Atarugal el criaeru e cuentas",
        "ipb-unblock": "Desatarugal un nombri d’usuáriu u direción IP",
        "ipb-blocklist": "Vel tarugus desistentis",
        "ipb-blocklist-contribs": "Contribucionis de $1",
+       "block-expiry": "Acabiha:",
        "unblockip": "Desatarugal usuáriu",
        "unblockiptext": "Gasta el hormulariu d'embahu pa restablecel el acesu d'escritura a una direción IP u a un nombri d'usuáriu previamenti atarugau.",
        "ipusubmit": "Esborral esti tarugu",
index 9a52f80..8f5ffce 100644 (file)
@@ -70,7 +70,8 @@
                        "Matěj Suchánek",
                        "Amirsara",
                        "Physicsch",
-                       "Nbi"
+                       "Nbi",
+                       "Amjad Khan"
                ]
        },
        "tog-underline": "خط کشیدن زیر پیوندها:",
        "blockip": "بستن {{GENDER:$1|کاربر}}",
        "blockiptext": "از فرم زیر برای بستن دسترسی ویرایش یک نشانی آی‌پی یا نام کاربری مشخص استفاده کنید.\nاین کار فقط فقط باید برای جلوگیری از خرابکاری و بر اساس [[{{MediaWiki:Policy-url}}|سیاست قطع دسترسی]] انجام شود.\nدلیل مشخص این کار را در زیر ذکر کنید (مثلاً با ذکر صفحه‌های به‌خصوصی که مورد خرابکاری واقع شده‌اند).\nشما می‌توانید بازرهٔ آی‌پی که از ساختار [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] استفاده می‌کنید را ببندید. بزرگترین بازه /$1 برای IPv4 و /$2 برای IPv6 است.",
        "ipaddressorusername": "نشانی آی‌پی یا نام کاربری:",
-       "ipbexpiry": "زمان سرآمدن:",
        "ipbreason": "دلیل:",
        "ipbreason-dropdown": "*دلایل متداول قطع دسترسی\n**واردکردن اطلاعات نادرست\n**پاک‌کردن اطلاعات مفید از صفحات\n**هرزنگاری از طریق درج مکرر پیوند به وب‌گاه‌ها\n**درج چرندیات یا نوشته‌های بی‌معنا در صفحات\n**تهدید یا ارعاب دیگر کاربران\n**سوء استفاده از چند حساب کاربری\n**نام کاربری نامناسب",
        "ipb-hardblock": "جلوگیری از ویرایش کردن کاربران ثبت نام کرده از طریق این نشانی آی‌پی",
        "ipb-disableusertalk": "جلوگیری از ویرایش صفحهً بحث توسط خود کاربر در زمانی که بسته است",
        "ipb-change-block": "بستن دوبارهٔ کاربر با این تنظیم‌ها",
        "ipb-confirm": "تأیید بستن",
-       "ipb-type-label": "نوع",
        "ipb-pages-label": "صفحات",
        "badipaddress": "نشانی آی‌پی نامعتبر",
        "blockipsuccesssub": "بستن با موفقیت انجام شد",
        "ipb-blocklist": "دیدن قطع دسترسی‌های موجود",
        "ipb-blocklist-contribs": "مشارکت‌های $1",
        "ipb-blocklist-duration-left": "$1 باقی مانده",
+       "block-expiry": "زمان سرآمدن:",
        "unblockip": "باز کردن کاربر",
        "unblockiptext": "برای بازگرداندن دسترسی نوشتن به یک نشانی آی‌پی یا نام کاربری بسته‌شده از فرم زیر استفاده کنید.",
        "ipusubmit": "باز کردن دسترسی",
index 0daaa67..6fbce9c 100644 (file)
        "returnto": "Palaa sivulle $1.",
        "tagline": "Kohteesta {{SITENAME}}",
        "help": "Ohje",
+       "help-mediawiki": "Ohje MediaWikistä",
        "search": "Haku",
        "search-ignored-headings": "#<!-- jätä tämä rivi sellaiseksi kuin se on --> <pre>\n# Otsikot, jotka haku ohittaa.\n# Muutokset tulevat voimaan heti, kun otsikon sivu indeksoidaan.\n# Voit pakottaa sivun indeksoimisen tekemällä nollamuokkauksen.\n# Syntaksi on seuraava:\n#   * Kaikki \"#\"-merkistä rivin loppuun asti on kommenttia\n#   * Kaikki ei-tyhjät rivit ovat otsikoita, jotka ohitetaan.\nLähteet\nAiheesta muualla\nKatso myös\n#</pre> <!-- jätä tämä rivi sellaiseksi kuin se on -->",
        "searchbutton": "Hae",
        "resetpass-abort-generic": "Laajennus keskeytti salasanan vaihdon.",
        "resetpass-expired": "Salasanasi on vanhentunut. Valitse uusi salasana, jotta pääset kirjautumaan sisään.",
        "resetpass-expired-soft": "Salasanasi on vanhentunut ja se pitää vaihtaa. Valitse uusi salasana nyt tai paina ”{{int:authprovider-resetpass-skip-label}}”, niin voit vaihtaa salasanan myöhemmin.",
+       "resetpass-validity": "Salasanasi ei kelpaa: $1\n\nAseta uusi salasana kirjautuaksesi.",
        "resetpass-validity-soft": "Salasanasi ei ole kelvollinen: $1\n\nValitse nyt uusi salasana tai paina ”{{int:authprovider-resetpass-skip-label}}”, niin voit vaihtaa sen myöhemmin.",
        "passwordreset": "Salasanan uusiminen",
        "passwordreset-text-one": "Täytä tämä lomake uudistaaksesi salasanasi.",
        "blockedtext": "<strong>Käyttäjätunnuksesi tai IP-osoitteesi on estetty.</strong>\n\nEston on asettanut $1.\nAnnettu syy on <em>$2</em>.\n\n* Eston alkamisaika: $8\n* Eston päättymisaika: $6\n* Kohde: $7\n\nVoit keskustella ylläpitäjän $1 tai toisen [[{{MediaWiki:Grouppage-sysop}}|ylläpitäjän]] kanssa estosta.\nHuomaa, ettet voi lähettää sähköpostia {{GRAMMAR:genitive|{{SITENAME}}}} kautta, ellet ole asettanut olemassa olevaa sähköpostiosoitetta [[Special:Preferences|asetuksissa]] tai jos esto on asetettu koskemaan myös sähköpostin lähettämistä.\nIP-osoitteesi on $3 ja estotunnus on #$5.\nLiitä kaikki yllä olevat tiedot mahdollisiin kyselyihisi.",
        "autoblockedtext": "IP-osoitteesi on estetty automaattisesti, koska sitä on käyttänyt toinen käyttäjä, jonka on estänyt ylläpitäjä $1.\nAnnettu syy on:\n\n:<em>$2</em>\n\n* Eston alkamisaika: $8\n* Eston päättymisaika: $6\n* Kohde: $7\n\nVoit keskustella ylläpitäjän $1 tai toisen [[{{MediaWiki:Grouppage-sysop}}|ylläpitäjän]] kanssa estosta.\n\nHuomaa, ettet voi lähettää sähköpostia {{GRAMMAR:genitive|{{SITENAME}}}} kautta, ellet ole asettanut olemassa olevaa sähköpostiosoitetta [[Special:Preferences|asetuksissa]] tai jos esto on asetettu koskemaan myös sähköpostin lähettämistä.\n\nIP-osoitteesi on $3 ja estotunnus on #$5.\nLiitä kaikki yllä olevat tiedot mahdollisiin kyselyihisi.",
        "systemblockedtext": "Käyttäjätunnuksesi tai IP-osoitteesi on automaattisesti estetty MediaWikin toimesta.\nAnnettu syy on:\n\n:<em>$2</em>\n\n* Start of block: $8\n* Expiration of block: $6\n* Intended blockee: $7\n\nTämänhetkinen IP-osoitteesi on $3.\nOle hyvä ja liitä kaikki yllä olevat tiedot mahdollisiin kyselyihisi.",
+       "actionblockedtext": "Sinut on estetty suorittamasta tätä toimintoa.",
        "blockednoreason": "(syytä ei annettu)",
        "whitelistedittext": "Sinun täytyy $1, jotta voisit muokata sivuja.",
        "confirmedittext": "Et voi muokata sivuja, ennen kuin olet varmentanut sähköpostiosoitteesi. Voit tehdä varmennuksen [[Special:Preferences|asetussivulla]].",
        "blockip": "Estä {{GENDER:$1|käyttäjä}}",
        "blockiptext": "Tällä toiminnolla voit estää käyttäjätunnusta tai IP-osoitetta muokkaamasta.<br />\nTällainen muokkausesto pitäisi asettaa vain vandalismin torjumiseksi ja [[{{MediaWiki:Policy-url}}|käytännön]] mukaisesti.\nKirjoita eston syy alla olevaan kenttään.\nVoit estää IP-osoiteavaruuksia käyttämällä [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]-syntaksia; suurin sallittu alue on /$1 protokollalle IPv4 ja /$2 protokollalle IPv6.",
        "ipaddressorusername": "IP-osoite tai käyttäjänimi:",
-       "ipbexpiry": "Vanhentuu:",
        "ipbreason": "Syy:",
        "ipbreason-dropdown": "*Yleiset estosyyt\n** Väärän tiedon lisääminen\n** Sisällön poistaminen\n** Mainoslinkkien lisääminen\n** Sotkeminen tai roskan lisääminen\n** Häiriköinti\n** Useamman käyttäjätunnuksen väärinkäyttö\n** Sopimaton käyttäjätunnus",
        "ipb-hardblock": "Estä sisäänkirjautuneita käyttäjiä muokkaamasta tästä IP-osoitteesta",
-       "ipbcreateaccount": "Estä tunnusten luonti",
-       "ipbemailban": "Estä käyttäjää lähettämästä sähköpostia",
+       "ipbcreateaccount": "Tunnusten luominen",
+       "ipbemailban": "(Estä) sähköpostin lähettäminen",
        "ipbenableautoblock": "Estä automaattisesti viimeisin IP-osoite, josta käyttäjä on muokannut, sekä ne osoitteet, joista hän jatkossa yrittää muokata.",
        "ipbsubmit": "Estä tämä käyttäjä",
        "ipbother": "Muu aikamääre:",
        "ipboptions": "2 tuntia:2 hours,1 päivä:1 day,3 päivää:3 days,1 viikko:1 week,2 viikkoa:2 weeks,1 kuukausi:1 month,3 kuukautta:3 months,6 kuukautta:6 months,1 vuosi:1 year,ikuinen:infinite",
        "ipbhidename": "Piilota tunnus muokkauksista ja listauksista",
        "ipbwatchuser": "Tarkkaile tämän käyttäjän käyttäjä- ja keskustelusivua",
-       "ipb-disableusertalk": "Estä käyttäjää muokkaamasta omaa keskustelusivuaan eston aikana",
+       "ipb-disableusertalk": "(Estä) oman keskustelusivun muokkaaminen",
        "ipb-change-block": "Estä uudelleen näillä asetuksilla",
        "ipb-confirm": "Vahvista esto",
        "ipb-sitewide": "Sivuston laajuinen",
        "ipb-partial": "Osittainen",
-       "ipb-type-label": "Tyyppi",
        "ipb-pages-label": "Sivut",
        "badipaddress": "IP-osoite on väärin muotoiltu.",
        "blockipsuccesssub": "Esto onnistui",
        "ipb-blocklist": "Näytä voimassa olevat estot",
        "ipb-blocklist-contribs": "Käyttäjän {{GENDER:$1|$1}} muokkaukset",
        "ipb-blocklist-duration-left": "$1 jäljellä",
+       "block-actions": "Estä seuraavat toiminnot:",
+       "block-expiry": "Vanhentuu:",
+       "block-options": "Lisävalinnat:",
+       "block-prevent-edit": "Muokkaaminen",
+       "block-reason": "Syy:",
+       "block-target": "Käyttäjänimi tai IP-osoite:",
        "unblockip": "Muokkauseston poisto käyttäjältä",
        "unblockiptext": "Tällä lomakkeella voit poistaa käyttäjän tai IP-osoitteen muokkauseston.",
        "ipusubmit": "Poista tämä esto",
        "log-name-pagelang": "Kielenvaihtoloki",
        "log-description-pagelang": "Tämä on loki, johon merkitään muutokset sivujen kieliasetuksissa.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|muutti}} kielen sivulla $3 kielestä $4 kieleksi $5.",
-       "default-skin-not-found": "Hupsista! Oletuksena tuleva ulkoasu sinun wikillesi, joka on määritelty koodissa <code dir=\"ltr\">$wgDefaultSkin</code> muotoon <code>$1</code>, ei ole saatavilla.\n\nAlla on ohjeet englannin kielellä:\n\nYour installation seems to include the following {{PLURAL:$4|skin|skins}}. See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for information how to enable {{PLURAL:$4|it|them and choose the default}}.\n\n$2\n\n; If you have just installed MediaWiki:\n: You probably installed from git, or directly from the source code using some other method. This is expected. Try installing some skins from [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory], by:\n:* Downloading the [https://www.mediawiki.org/wiki/Download tarball installer], which comes with several skins and extensions. You can copy and paste the <code>skins/</code> directory from it.\n:* Downloading individual skin tarballs from [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: Doing this should not interfere with your git repository if you're a MediaWiki developer.\n\n; If you have just upgraded MediaWiki:\n: MediaWiki 1.24 and newer no longer automatically enables installed skins (see [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). You can paste the following {{PLURAL:$5|line|lines}} into <code>LocalSettings.php</code> to enable {{PLURAL:$5|the|all}} installed {{PLURAL:$5|skin|skins}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; If you have just modified <code>LocalSettings.php</code>:\n: Double-check the skin names for typos.",
+       "default-skin-not-found": "Hupsista! Oletuksena tuleva ulkoasu wikillesi, joka on määritelty koodissa <code dir=\"ltr\">$wgDefaultSkin</code> muotoon <code>$1</code>, ei ole saatavilla.\n\nAlla on ohjeet englannin kielellä:\n\nYour installation seems to include the following {{PLURAL:$4|skin|skins}}. See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for information how to enable {{PLURAL:$4|it|them and choose the default}}.\n\n$2\n\n; If you have just installed MediaWiki:\n: You probably installed from git, or directly from the source code using some other method. This is expected. Try installing some skins from [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory], by:\n:* Downloading the [https://www.mediawiki.org/wiki/Download tarball installer], which comes with several skins and extensions. You can copy and paste the <code>skins/</code> directory from it.\n:* Downloading individual skin tarballs from [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: Doing this should not interfere with your git repository if you're a MediaWiki developer.\n\n; If you have just upgraded MediaWiki:\n: MediaWiki 1.24 and newer no longer automatically enables installed skins (see [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). You can paste the following {{PLURAL:$5|line|lines}} into <code>LocalSettings.php</code> to enable {{PLURAL:$5|the|all}} installed {{PLURAL:$5|skin|skins}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; If you have just modified <code>LocalSettings.php</code>:\n: Double-check the skin names for typos.",
        "default-skin-not-found-no-skins": "Hupsista! Oletusulkoasua sinun wikillesi ei ole saatavilla. Se on määritelty ulkoasuksi <code>$1</code> kohteessa <code>$wgDefaultSkin</code>.\n\nAlla on ohjeet englannin kielellä:\n\nYou have no installed skins.\n\n; If you have just installed or upgraded MediaWiki:\n: You probably installed from git, or directly from the source code using some other method. This is expected. MediaWiki 1.24 and newer doesn't include any skins in the main repository. Try installing some skins from [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory], by:\n:* Downloading the [https://www.mediawiki.org/wiki/Download tarball installer], which comes with several skins and extensions. You can copy and paste the <code>skins/</code> directory from it.\n:* Downloading individual skin tarballs from [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: Doing this should not interfere with your git repository if you're a MediaWiki developer. See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for information how to enable skins and choose the default.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (käytössä)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 (<strong>ei käytössä</strong>)",
index 4ccfc52..b96a8ec 100644 (file)
        "unblock": "Tak sperring av brúkara burtur",
        "blockip": "Banna brúkara",
        "ipaddressorusername": "IP-adressa ella brúkaranavn:",
-       "ipbexpiry": "Gongur út:",
        "ipbreason": "Orsøk:",
        "ipbreason-dropdown": "*Vanligar orsøkir fyri sperring\n** Innsetan av følskum upplýsingum\n** Tekur burtur innihald av síðum\n** Spammar leinkjur til uttanhýsis síður\n** Skrivar tvætl á síður\n** Ber seg skeivt at/ger seg inn á brúkarar\n** Misnýtir fleiri kontur\n** Brúkaranavn ið ikki kann góðtakast",
        "ipb-hardblock": "Forða innritaðum brúkarum at skriva/rætta frá hesi IP adressuni",
        "ipb-unblock": "Tak burtur sperring frá einum brúkaranavni ella IP adressu",
        "ipb-blocklist": "Vís allar verandi sperringar",
        "ipb-blocklist-contribs": "Íkøst hjá $1",
+       "block-expiry": "Gongur út:",
        "unblockip": "Tak burtur sperring av brúkara",
        "unblockiptext": "Nýt formularin niðanfyri fyri at endurupprætta skriviatgongdina hjá einari fyrrverandi sperraðari IP adressu ella einum brúkaranavni.",
        "ipusubmit": "Strika hesa blokaduna",
index e6d9304..853730b 100644 (file)
                        "Pamputt",
                        "Ash Crow",
                        "Alacabe",
-                       "Eihel"
+                       "Eihel",
+                       "Tektasc"
                ]
        },
        "tog-underline": "Soulignement des liens :",
        "resetpass-abort-generic": "La modification du mot de passe a été annulée par une extension.",
        "resetpass-expired": "Votre mot de passe a expiré. Veuillez en fournir un nouveau pour vous connecter.",
        "resetpass-expired-soft": "Votre mot de passe a expiré, et doit être modifié. Veuillez en choisir un nouveau maintenant ou cliquer sur « {{int:authprovider-resetpass-skip-label}} » pour le faire plus tard.",
+       "resetpass-validity": "Votre mot de passe est non valide : $1\n\nVeuillez entrer un nouveau mot de passe pour vous connecter.",
        "resetpass-validity-soft": "Votre mot de passe n’est pas valide : $1\n\nVeuillez choisir un nouveau mot de passe maintenant, ou cliquez sur « {{int:authprovider-resetpass-skip-label}} » pour le modifier plus tard.",
        "passwordreset": "Réinitialisation du mot de passe",
        "passwordreset-text-one": "Remplissez ce formulaire pour réinitialiser votre mot de passe.",
        "blockedtext": "<strong>Votre compte utilisateur ou votre adresse IP a été bloqué.</strong>\n\nLe blocage a été effectué par $1.\nLa raison invoquée est la suivante : <em>$2</em>.\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 « {{int:emailuser}} » que si une adresse de courriel valide est spécifiée dans vos [[Special:Preferences|préférences]] et que si cette fonctionnalité ne vous a pas été bloquée.\nVotre adresse IP actuelle est $3 et votre identifiant de blocage est $5.\nVeuillez inclure tous les détails ci-dessus dans chacune des 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: <em>$2</em>.\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é « {{int:emailuser}} » que si vous avez une adresse de courriel validée dans vos [[Special:Preferences|préférences]] et que cette fonctionnalité ne vous a pas été désactivée.\n\nVotre adresse IP actuelle est $3, et le numéro de blocage est $5.\nVeuillez inclure tous les détails ci-dessus dans chacune des requêtes que vous ferez.",
        "systemblockedtext": "Votre nom d'utilisateur ou votre adresse IP ont été bloqués automatiquement par MediaWiki.\nLa raison donnée est la suivante:\n\n: <em>$2</em>.\n\n* Le début du blocage: $8\n* Expiration du délai de blocage: $6\n* Elément concerné: $7\n\nVotre adresse IP actuelle est $3.\nVeuillez inclure tous les détails ci-dessus dans chacune des requêtes que vous ferez.",
+       "actionblockedtext": "Vous avez été bloqué pour accomplir cette action.",
        "blockednoreason": "aucune raison donnée",
        "whitelistedittext": "Vous devez vous $1 pour avoir la permission de modifier le contenu.",
        "confirmedittext": "Vous devez confirmer votre adresse de courriel avant de modifier les pages.\nVeuillez entrer et valider votre adresse de courriel dans vos [[Special:Preferences|préférences]].",
        "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}} ici par erreur, cliquez sur le bouton <strong>Retour</strong> de votre navigateur.",
-       "anontalkpagetext": "----\n<em>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</em>.\nPour cette raison, nous devons utiliser son adresse IP pour les identifier.\nUne adresse IP peut être partagée par plusieurs utilisateurs.\nSi 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:CreateAccount|créer un compte]] ou [[Special:UserLogin|vous connecter]] afin d’éviter toute confusion future avec d’autres contributeurs anonymes.",
+       "anontalkpagetext": "----\n<em>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</em>.\nPour cette raison, nous devons utiliser son adresse IP pour l'identifier.\nUne telle adresse IP peut être partagée par plusieurs utilisateurs.\nSi 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:CreateAccount|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>, mais vous n'avez pas la permission de créer cette page.",
        "missing-revision": "La révision nº $1 de la page intitulée « {{FULLPAGENAME}} » n’existe pas.\n\nCela survient en général en suivant un lien historique désuet vers une page qui a été supprimée.\nVous pouvez trouver plus de détails dans le [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} journal des suppressions].",
        "diff-multi-sameuser": "({{PLURAL:$1|Une révision intermédiaire par le même utilisateur non affichée|$1 révisions intermédiaires par le même utilisateur non affichées}})",
        "diff-multi-otherusers": "({{PLURAL:$1|Une révision intermédiaire|$1 révisions intermédiaires}} par {{PLURAL:$2|un autre utilisateur|$2 utilisateurs}} non {{PLURAL:$1|affichée|affichées}})",
        "diff-multi-manyusers": "({{PLURAL:$1|Une révision intermédiaire|$1 révisions intermédiaires}} par plus {{PLURAL:$2|d'un utilisateur|de $2 utilisateurs}} {{PLURAL:$1|est masquée|sont masquées}})",
-       "diff-paragraph-moved-tonew": "Paragraphe renommé. Cliquer pour accéder au nouvel emplacement.",
-       "diff-paragraph-moved-toold": "Le paragraphe a été déplacé. Cliquez pour accéder à l'ancien emplacement.",
+       "diff-paragraph-moved-tonew": "Paragraphe déplacé. Cliquer pour accéder au nouvel emplacement.",
+       "diff-paragraph-moved-toold": "Paragraphe déplacé. Cliquer pour accéder à l’ancien emplacement.",
        "difference-missing-revision": "{{PLURAL:$2|Une révision|$2 révisions}} de cette différence ($1) {{PLURAL:$2|n’a pas été trouvée|n’ont pas été trouvées}}.\n\nCela survient en général en suivant un lien de différence désuet vers une page qui a été supprimée.\nVous pouvez trouver des détails dans le [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} journal des suppressions].",
        "searchresults": "Résultats de la recherche",
        "search-filter-title-prefix": "Recherche seulement les pages dont le titre commence par « $1 »",
        "blockip": "Bloquer l’{{GENDER:$1|utilisateur|utilisatrice}}",
        "blockiptext": "Utilisez le formulaire ci-dessous pour bloquer les tentatives de modification faites à partir d’une adresse IP spécifique ou d’un nom d’utilisateur.\nUne telle mesure ne devrait être prise que pour prévenir le vandalisme et en accord avec les [[{{MediaWiki:Policy-url}}|règles internes]].\nDonnez ci-dessous un motif précis (par exemple en citant les pages qui ont été vandalisées).\nVous pouvez bloquer des plages d’adresses IP en utilisant la syntaxe [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] ; la plus grande plage autorisée est /$1 pour IP v4 et /$2 pour IP v6.",
        "ipaddressorusername": "Adresse IP ou nom d'utilisateur :",
-       "ipbexpiry": "Durée avant expiration :",
        "ipbreason": "Motif :",
        "ipbreason-dropdown": "* Motifs de blocage les plus fréquents\n** Insertion de fausses informations\n** Suppression injustifiée de contenu des pages\n** Insertion répétée de liens externes publicitaires (pollupostage)\n** Insertion de contenu sans aucun sens et de déchets dans les pages\n** Tentative d'intimidation ou harcèlement\n** Abus d'utilisation de comptes multiples\n** Nom d'utilisateur inacceptable, injurieux ou diffamant",
        "ipb-hardblock": "Empêcher les utilisateurs connectés de modifier en utilisant cette adresse IP",
-       "ipbcreateaccount": "Empêcher la création de compte",
-       "ipbemailban": "Empêcher l'utilisateur d'envoyer des courriels",
+       "ipbcreateaccount": "Création de compte",
+       "ipbemailban": "Envoi de courriel",
        "ipbenableautoblock": "Bloquer automatiquement la dernière adresse IP utilisée par cet utilisateur, et toutes les adresses IP ultérieures qu'il pourrait utiliser",
        "ipbsubmit": "Bloquer cet utilisateur",
        "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 d’utilisateur et de discussion de cet utilisateur",
-       "ipb-disableusertalk": "Empêcher l'utilisateur de modifier sa page de discussion pendant le blocage",
+       "ipb-disableusertalk": "Modification de leur propre page de discussion",
        "ipb-change-block": "Bloquer à nouveau l'utilisateur avec ces paramètres",
        "ipb-confirm": "Confirmer le blocage",
        "ipb-sitewide": "À tout le site",
        "ipb-partial": "Partiel",
-       "ipb-type-label": "Type",
        "ipb-pages-label": "Pages",
        "badipaddress": "Adresse IP incorrecte",
        "blockipsuccesssub": "Blocage réussi",
        "ipb-blocklist": "Voir les blocages existants",
        "ipb-blocklist-contribs": "Contributions pour {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 restant",
+       "block-actions": "Actions à bloquer :",
+       "block-expiry": "Durée avant expiration :",
+       "block-options": "Options supplémentaires :",
+       "block-prevent-edit": "Modification",
+       "block-reason": "Motif :",
+       "block-target": "Nom d’utilisateur ou adresse IP :",
        "unblockip": "Débloquer un utilisateur",
        "unblockiptext": "Utilisez le formulaire ci-dessous pour redonner les droits d’écriture à une adresse IP ou un nom d’utilisateur qui a été bloqué auparavant.",
        "ipusubmit": "Supprimer ce blocage",
        "specialpages-group-developer": "Outils du développeur",
        "blankpage": "Page vide",
        "intentionallyblankpage": "Cette page est laissée intentionnellement (presque) vide.",
+       "disabledspecialpage-disabled": "Cette page a été désactivée par un administrateur système.",
        "external_image_whitelist": " #Laisser cette ligne exactement telle quelle.<pre>\n#Indiquer les fragments d'expressions rationnelles (juste la partie indiquée entre les //) ci-dessous.\n#Ils correspondront avec les URL des images externes.\n#Celles qui correspondent s'afficheront comme des images, sinon seul un lien vers l'image sera affiché.\n#Les lignes commençant par un # seront considérées comme des commentaires.\n#Cette liste n'est pas sensible à la casse.\n\n#Mettez tous les fragments d'expressions rationnelles au-dessus de cette ligne. Laissez cette dernière ligne telle quelle.</pre>",
        "tags": "Balises des modifications valides",
        "tag-filter": "Filtrer les [[Special:Tags|balises]] :",
        "special-characters-title-emdash": "tiret cadratin",
        "special-characters-title-minus": "signe moins",
        "mw-widgets-abandonedit": "Êtes-vous sûr de vouloir quitter le mode d’édition sans enregistrer d’abord ?",
-       "mw-widgets-abandonedit-discard": "Ignorer les modifications",
+       "mw-widgets-abandonedit-discard": "Annuler les modifications",
        "mw-widgets-abandonedit-keep": "Continuer à modifier",
        "mw-widgets-abandonedit-title": "Êtes-vous sûr ?",
        "mw-widgets-dateinput-no-date": "Aucune date sélectionnée",
index 03f15ae..8314ad9 100644 (file)
        "blockip": "Blocar l’utilisat{{GENDER:$1|or|rice}}",
        "blockiptext": "Empleyéd lo formulèro ce-desot por blocar l’accès en ècritura dês un’adrèce IP spècifica un nom d’utilisator spècifico.\nNa mesera d’ense devrêt étre prêsa ren que por empachiér lo vandalismo et pués en acôrd avouéc les [[{{MediaWiki:Policy-url}}|politiques]].\nBalyéd ce-desot na rêson prècisa (per ègzemplo en citent les pâges que sont étâyes vandalisâyes).\nVos pouede blocar de plages IP en empleyent la sintaxa [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] ; la ples granta plage ôtorisâye est /$1 por IPv4 et /$2 por IPv6.",
        "ipaddressorusername": "Adrèce IP ou ben nom d’utilisator :",
-       "ipbexpiry": "Temps devant èxpiracion :",
        "ipbreason": "Rêson :",
        "ipbreason-dropdown": "*Rêsons corentes de blocâjo\n** Entrebetâ d’enformacions fôsses\n** Suprèssion de contegnu de les pâges\n** Raponsa de lims de defôr cofos (recllâma)\n** Entrebetâ de contegnu sen gins de significacion et d’ècovelyes dedens les pâges\n** Èprôva d’entimidacion de pèrsècucion\n** Abus d’usâjo d’un mouél de comptios\n** Nom d’utilisator pas accèptâblo",
        "ipb-hardblock": "Empachiér los utilisators branchiês de changiér en empleyent cel’adrèce IP",
        "ipb-blocklist": "Vêre los blocâjos ègzistents",
        "ipb-blocklist-contribs": "Contribucions por {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 que réstont",
+       "block-expiry": "Temps devant èxpiracion :",
        "unblockip": "Dèblocar un utilisator",
        "unblockiptext": "Empleyéd lo formulèro ce-desot por rètablir l’accès en ècritura dês un’adrèce IP blocâye un nom d’utilisator blocâ los côps devant.",
        "ipusubmit": "Enlevar cél blocâjo",
index 806e5b5..f5b4378 100644 (file)
        "blockip": "IP-adres/{{GENDER:$1|brüker}} spere",
        "blockiptext": "Mä detdiar formulaar sperest dü en IP-adres of en brükernööm, so dat faan diar nian feranrangen muar maaget wurd kön. \nDet skul bluas föörnimen wurd, am jin wandaalen föörtugungen an uun auerianstemang mä a [[{{MediaWiki:Policy-url}}|brükerreegeln]].\nSkriiw en guden grünj för det sper ap.\nDü könst IP-adres-beriker mä det [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]-syntax spere; di gratst mögelk berik as /$1 för IPv4 and /$2 för IPv6.",
        "ipaddressorusername": "IP-adres of brükernööm:",
-       "ipbexpiry": "Sperdüür:",
        "ipbreason": "Grünj:",
        "ipbreason-dropdown": "* Mist brükt spergrünjer\n** Skraft wat ferkiards\n** Maaget sidjen leesag\n** Maaget tuföl ferwisangen üüb frääm sidjen\n** Maaget dom tschüch\n** Koon ham ei skake\n** Masbrükt brükerkontos\n** Hää en brükernööm, diar ei tuläät as",
        "ipb-hardblock": "Ferhanre, dat en uunmeldeten brüker mä detdiar IP-adres sidjen feranre koon.",
        "ipb-unblock": "IP-adres/brüker ei muar spere",
        "ipb-blocklist": "Speren uunwise",
        "ipb-blocklist-contribs": "Bidracher faan „{{GENDER:$1|$1}}“",
+       "block-expiry": "Sperdüür:",
        "unblockip": "Brüker ei muar spere",
        "unblockiptext": "Mä detdiar formulaar könst dü det sper faan en IP-adres of en brüker apheew.",
        "ipusubmit": "Ei muar spere",
index abfa7bd..65186db 100644 (file)
        "whatlinkshere-filters": "Filtris",
        "blockip": "Bloche utent",
        "ipaddressorusername": "Direzion IP o non utent:",
-       "ipbexpiry": "Scjadence dal bloc:",
        "ipbreason": "Reson dal bloc:",
        "ipbsubmit": "Bloche chest utent",
        "ipboptions": "2 oris:2 hours,1 zornade:1 day,3 zornadis:3 days,1 setemane:1 week,2 setemanis:2 weeks,1 mês:1 month,3 mês:3 months,6 mês:6 months,1 an:1 year,infinît:infinite",
        "badipaddress": "La direzion IP no je valide",
+       "block-expiry": "Scjadence dal bloc:",
        "ipblocklist": "Utents blocâts",
        "ipblocklist-submit": "Cîr",
        "blocklink": "bloche",
index aaebb34..e5b3a87 100644 (file)
        "blockip": "Slút {{GENDER:$1|meidogger}} út",
        "blockiptext": "Brûk dizze fjilden om in beskaat IP-adres of meidochnamme fan skriuwtagong út te sluten.\nDat soe allinnich dien wurde moatte fanwegen fandalisme of oar ûnakseptabel hâlden en dragen, sa't de\n[[{{MediaWiki:Policy-url}}|útslút-rie]] it oanjout.\nMeld de krekte reden! Neam bygelyks de siden dy't oantaaste waarden.\nJo kinne IP-adresrigen útslute mei de syntaksis fan [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; de grutst tastiene rige is /$1 foar IPv4 en /$2 foar IPv6.",
        "ipaddressorusername": "IP Adres of meidoggernamme:",
-       "ipbexpiry": "Ferrint nei:",
        "ipbreason": "Reden:",
        "ipbreason-dropdown": "*Faak foarkommende redenen foar blokkades\n** Ferkearde ynformaasje ynfiere\n** Fuortheljen fan ynformaasje út siden\n** Spamferwizing nei eksterne websites\n** Ynfoegjen fan ûnsin yn siden\n** Yntimidearjend gedrach\n** Misbrûk troch meardere brûkers\n** Unakseptabele brûkersnamme",
        "ipbcreateaccount": "Blokkearje it oanmeitsjen fan in nij profyl",
        "ipb-unblock-addr": "Lit $1 yn",
        "ipb-unblock": "Lit in meidogger of IP-adres yn",
        "ipb-blocklist": "Besteande útslutings besjen",
+       "block-expiry": "Ferrint nei:",
        "unblockip": "Lit meidogger wer ta",
        "unblockiptext": "Brûk dizze fjilden om in meidogger wer skriuwtagong te jaan.",
        "ipusubmit": "Lit dizze meidogger wer ta.",
index 7ed42fd..c0c3832 100644 (file)
        "blockip": "Coisc úsáideoir",
        "blockiptext": "Úsáid an foirm anseo thíos chun bealach scríofa a chosc ó\nseoladh IP nó ainm úsáideora áirithe.\nIs féidir leat an rud seo a dhéanamh amháin chun an chreachadóireacht a chosc, de réir\nmar a deirtear sa [[{{MediaWiki:Policy-url}}|polasaí {{GRAMMAR:genitive|{{SITENAME}}}}]].\nLíonaigh cúis áirithe anseo thíos (mar shampla, is féidir leat a luaigh\nleathanaigh áirithe a rinne an duine damáiste ar).",
        "ipaddressorusername": "Seoladh IP nó ainm úsáideora:",
-       "ipbexpiry": "Am éaga",
        "ipbreason": "Fáth:",
        "ipbreason-dropdown": "*Fáthanna coitianta\n** Loitiméaracht\n** Naisc turscar\n** Fadhbanna cóipcheart\n** Ag iarraidh ciapadh daoine eile\n** Drochúsáid as cuntais iolrach\n** Fadhbanna idirvicí\n** Feallaire\n** Seachfhreastalaí Oscailte",
        "ipbsubmit": "Coisc an úsáideoir seo",
        "ipb-unblock-addr": "Díchoisc $1",
        "ipb-unblock": "Díchosc ainm úsáideora ná seoladh IP",
        "ipb-blocklist-contribs": "Iarrachtaí le haghaidh {{GENDER:$1|$1}}",
+       "block-expiry": "Am éaga",
        "unblockip": "Díchoisc úsáideoir",
        "unblockiptext": "Úsáid an foirm anseo thíos chun bealach scríofa a thabhairt ar ais do seoladh\nIP nó ainm úsáideora a raibh faoi chosc roimhe seo.",
        "ipusubmit": "Bain an chosc seo",
index 0686e4a..1461d7a 100644 (file)
        "blockip": "封到IP地址",
        "blockiptext": "用下底𠮶表格去阻止某一IP𠮶修改权限。除非倷系为到怕佢乱扤,接到非要符合[[{{MediaWiki:Policy-url}}|守则]]𠮶条件下才能啖做。请到下底话只确切原因(比如引用一只拖破坏𠮶页面)。",
        "ipaddressorusername": "IP地址或用户名:",
-       "ipbexpiry": "期限:",
        "ipbreason": "原因:",
        "ipbreason-dropdown": "*一般𠮶封锁原因\n** 紧编写假𠮶内容\n** 删卟文章内容\n** 乱加外部链接\n** 写冇油盐𠮶话\n** 吓人/骚扰别𠮶\n** 滥用帐号\n** 乱起用户名",
        "ipbcreateaccount": "防止开新帐号",
        "ipb-unblock-addr": "解封$1",
        "ipb-unblock": "解封用户名或IP地址",
        "ipb-blocklist": "望吖目前𠮶封禁",
+       "block-expiry": "期限:",
        "unblockip": "解封IP地址",
        "unblockiptext": "用下底𠮶表格去恢复早先拖封𠮶IP𠮶编写权。",
        "ipusubmit": "解封个只地址",
index ab2731b..267f4e0 100644 (file)
        "blockip": "封到IP地址",
        "blockiptext": "用下底嗰表格去阻止某一IP嗰修改許可權。除非倷係為到怕佢亂扤,接到非要符合[[{{MediaWiki:Policy-url}}|守則]]嗰條件下才能噉做。請到下底話隻確切原因(比如引用一隻拕破壞嗰頁面)。",
        "ipaddressorusername": "IP地址或用戶名:",
-       "ipbexpiry": "期限:",
        "ipbreason": "原因:",
        "ipbreason-dropdown": "*一般嗰封鎖原因\n** 緊編寫假嗰內容\n** 刪卟文章內容\n** 亂加外部連結\n** 寫冇油鹽嗰話\n** 嚇人/騷擾別嗰\n** 濫用帳號\n** 亂起用戶名",
        "ipbcreateaccount": "防止開新帳號",
        "ipb-unblock-addr": "解封$1",
        "ipb-unblock": "解封用戶名或IP地址",
        "ipb-blocklist": "望吖目前嗰封禁",
+       "block-expiry": "期限:",
        "unblockip": "解封IP地址",
        "unblockiptext": "用下底嗰表格去恢復早先拕封嗰IP嗰編寫權。",
        "ipusubmit": "解封箇隻地址",
index 2fce8e0..f33e93d 100644 (file)
        "blockip": "Bac an cleachdaiche",
        "blockiptext": "Cleachd am foirm gu h-ìosal gus seòladh IP no cleachdaiche sònraichte a bhacadh o sgrìobhadh.\nNa dèan seo ach gus dìon o bhandalachd agus a-rèir [[{{MediaWiki:Policy-url}}|a' phoileasaidh]].\nLìon an t-adhbhar sònraichte gu h-ìosal (mar eisimpleir le iomradh air na duilleagan le bhandalachd orra).\n'S urrainn dhut rainsean dhe sheòlaidhean IP a bhacadh le co-chàradh [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; is /$1 an rainse as motha a tha ceadaichte airson IPv4 agus /$2 airson IPv6.",
        "ipaddressorusername": "Seòladh IP no ainm-cleachdaiche:",
-       "ipbexpiry": "Falbhaidh an ùine air:",
        "ipbreason": "Adhbhar:",
        "ipbreason-dropdown": "*Adhbharan bacaidh cumanta\n** Cur fiosrachadh cearr a-steach\n** Toirt susbaint far duilleagan\n** Cur ceanglaichean-spama gu làraichean a-muigh ris\n** Cur a-steach amaideas/mablais air duilleagan\n** Smàdadh/sàrachadh\n** Ana-chleachdadh air iomadh cunntas\n** Ainm-cleachdaiche neo-thaitneach",
        "ipb-hardblock": "Bac cleachdaichean on deasachadh a nì logadh a-steach on t-seòladh IP seo",
        "ipb-unblock": "Neo-bhac ainm-chleachdaiche no seòladh IP",
        "ipb-blocklist": "Seall na bacaidhean a tha ann",
        "ipb-blocklist-contribs": "Obair a rinn $1",
+       "block-expiry": "Falbhaidh an ùine air:",
        "unblockip": "Neo-bhac an cleachdaiche",
        "unblockiptext": "Cleachd am foirm gu h-ìosal gus cead sgrìobhaidh aiseag gu seòladh IP no ainm-cleachdaiche a chaidh a bhacadh roimhe.",
        "ipusubmit": "Thoir air falbh am bacadh seo",
index 5f15244..965a231 100644 (file)
        "resetpass-abort-generic": "Unha extensión cancelou a modificación do contrasinal.",
        "resetpass-expired": "O seu contrasinal caducou. Defina un novo contrasinal para acceder.",
        "resetpass-expired-soft": "O seu contrasinal caducou e debe mudalo. Escolla un novo contrasinal ou prema en \"{{int:authprovider-resetpass-skip-label}}\" para mudalo máis tarde.",
+       "resetpass-validity": "O seu contrasinal non é válido: $1\n\nPor favor insira un novo contrasinal para acceder.",
        "resetpass-validity-soft": "O seu contrasinal non é válido: $1\n\nPor favor escolla un novo contrasinal agora, ou prema en \"{{int:authprovider-resetpass-skip-label}}\" para restablecelo máis tarde.",
        "passwordreset": "Restablecer o contrasinal",
        "passwordreset-text-one": "Encha este formulario para restablecer o seu contrasinal.",
        "blockedtext": "<strong>Bloqueouse o seu nome de usuario ou enderezo IP.</strong>\n\n$1 estableceu o bloqueo.\nO motivo que achegou foi <em>$2</em>.\n\n* Inicio do bloqueo: $8\n* Caducidade do bloqueo: $6\n* Pretendeuse bloquear: $7\n\nPode contactar con $1 ou con calquera outro [[{{MediaWiki:Grouppage-sysop}}|administrador]] para discutir este bloqueo.\nNon pode empregar a característica \"{{int:emailuser}}\" a non ser que dispoña dun enderezo electrónico válido rexistrado nas súas [[Special:Preferences|preferencias de usuario]] e que o seu uso non fose bloqueado.\nO seu enderezo IP actual é $3 e o identificador do bloqueo é #$5.\nPor favor, inclúa todos estes datos nas consultas que faga.",
        "autoblockedtext": "O seu enderezo IP foi bloqueado automaticamente porque foi empregado por outro usuario que foi bloqueado por $1.\nA razón que deu foi a seguinte:\n\n:<em>$2</em>\n\n* Inicio do bloqueo: $8\n* Caducidade do bloqueo: $6\n* Pretendeuse bloquear: $7\n\nPode contactar con $1 ou con calquera outro [[{{MediaWiki:Grouppage-sysop}}|administrador]] para discutir este bloqueo.\n\nTeña en conta que non pode empregar a característica \"{{int:emailuser}}\" a non ser que dispoña dun enderezo electrónico válido rexistrado nas súas [[Special:Preferences|preferencias de usuario]] e e que o seu uso non fose bloqueado.\n\nO seu enderezo IP actual é $3 e o ID do bloqueo é #$5.\nPor favor, inclúa eses datos nas consultas que faga.",
        "systemblockedtext": "O seu nome de usuario ou enderezo IP foi bloqueado automaticamente polo sistema MediaWiki.\nO motivo do bloqueo é:\n\n:<em>$2</em>\n\n* Comezo do bloqueo: $8\n* Expiración do bloqueo: $6\n* Destinatario do bloqueo: $7\n\nO seu enderezo IP actual é $3.\nPor favor, inclúa todos estes detalles en calquera consulta que realice.",
+       "actionblockedtext": "Foi bloqueado e non pode realizar esta acción.",
        "blockednoreason": "non se deu ningunha razón",
        "whitelistedittext": "Debe $1 para poder editar páxinas.",
        "confirmedittext": "Debe confirmar o correo electrónico antes de comezar a editar. Por favor, configure e dea validez ao correo mediante as súas [[Special:Preferences|preferencias de usuario]].",
        "statistics-pages": "Páxinas",
        "statistics-pages-desc": "Todas as páxinas do wiki; isto inclúe as páxinas de conversa, redireccións etc.",
        "statistics-files": "Ficheiros cargados",
-       "statistics-edits": "Edicións nas páxinas des que se creou {{SITENAME}}",
+       "statistics-edits": "Edicións nas páxinas desde que se creou {{SITENAME}}",
        "statistics-edits-average": "Media de edicións por páxina",
        "statistics-users": "Usuarios rexistrados",
        "statistics-users-active": "Usuarios activos",
        "blockip": "Bloquear {{GENDER:$1|o usuario|a usuaria}}",
        "blockiptext": "Use o seguinte formulario para bloquear o acceso de escritura desde un enderezo IP ou para bloquear un usuario específico.\nIsto debería facerse só para previr vandalismo, e de acordo coa [[{{MediaWiki:Policy-url}}|política e normas]] vixentes.\nExplique a razón específica do bloqueo abaixo (por exemplo, citando as páxinas concretas que sufriron vandalismo).\nPode bloquear intervalos IP coa sintaxe [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; o intervalo máis grande permitido é /$1 para IPv4 e /$2 para IPv6.",
        "ipaddressorusername": "Enderezo IP ou nome de usuario:",
-       "ipbexpiry": "Duración:",
        "ipbreason": "Motivo:",
        "ipbreason-dropdown": "*Motivos frecuentes para bloquear\n** Inserir información falsa\n** Eliminar o contido de páxinas\n** Ligazóns lixo a sitios externos\n** Inserir textos sen sentido ou inintelixibles\n** Comportamento intimidatorio/acoso\n** Abuso de múltiples contas de usuario\n** Nome de usuario inaceptable",
        "ipb-hardblock": "Impedir que usuarios rexistrados editen desde este enderezo IP",
-       "ipbcreateaccount": "Previr a creación de contas",
-       "ipbemailban": "Impedir que o usuario envíe correos electrónicos",
+       "ipbcreateaccount": "Creación de contas",
+       "ipbemailban": "Enviar correos electrónicos",
        "ipbenableautoblock": "Bloquear automaticamente o último enderezo IP utilizado por este usuario, e calquera outro enderezo desde o que intente editar",
        "ipbsubmit": "Bloquear este usuario",
        "ipbother": "Outra duración:",
        "ipboptions": "2 horas:2 hours,1 día:1 day,3 días:3 days,1 semana:1 week,2 semanas:2 weeks,1 mes:1 month,3 meses:3 months,6 meses:6 months,1 ano:1 year,para sempre:infinite",
        "ipbhidename": "Agochar o nome de usuario nas edicións e listas",
        "ipbwatchuser": "Vixiar a páxina de usuario e a de conversa deste usuario",
-       "ipb-disableusertalk": "Impedir que o usuario edite a súa propia páxina de conversa mentres dure o bloqueo",
+       "ipb-disableusertalk": "Editar a súa propia páxina de conversa",
        "ipb-change-block": "Volver bloquear o usuario con estas configuracións",
        "ipb-confirm": "Confirmar o bloqueo",
        "ipb-sitewide": "En todo o sitio",
        "ipb-partial": "Parcial",
-       "ipb-type-label": "Tipo",
        "ipb-pages-label": "Páxinas",
        "badipaddress": "O enderezo IP non é válido",
        "blockipsuccesssub": "O bloqueo realizouse correctamente",
        "ipb-blocklist": "Ver os bloqueos vixentes",
        "ipb-blocklist-contribs": "Contribucións de {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 restantes",
+       "block-actions": "Accións a bloquear:",
+       "block-expiry": "Duración:",
+       "block-options": "Opcións adicionais:",
+       "block-prevent-edit": "Edición",
+       "block-reason": "Motivo:",
+       "block-target": "Nome de usuario ou enderezo IP",
        "unblockip": "Desbloquear un usuario",
        "unblockiptext": "Use o seguinte formulario para dar de novo acceso de escritura a un enderezo IP ou usuario que estea bloqueado.",
        "ipusubmit": "Retirar o bloqueo",
index 9153a5b..08628f4 100644 (file)
        "toolbox": "साधनां",
        "imagepage": "फायलीचें पान पळेयात",
        "mediawikipage": "संदेशाचें पान पळयात",
-       "templatepage": "à¤\9fà¥\87à¤\82पलà¥\85à¤\9f पान पळयात",
+       "templatepage": "साà¤\82à¤\9aà¥\8dयाà¤\9aà¥\87à¤\82 पान पळयात",
        "viewhelppage": "आदार दिवपी पान पळयात",
        "categorypage": "वर्गांचे पान पळेयात",
        "viewtalkpage": "चर्चा पळय",
        "aboutsite": "{{SITENAME}}विशीं",
        "aboutpage": "Project:विशीं",
        "copyrightpage": "{{ns:project}}:प्रात-हक",
-       "currentevents": "सदà¥\8dयाà¤\9aà¥\8dयà¥\8b घडणुकों",
-       "currentevents-url": "Project:सदà¥\8dयाà¤\9aà¥\8dयà¥\8b घडणुको",
+       "currentevents": "à¤\9aालà¤\82त घडणुकों",
+       "currentevents-url": "Project:à¤\9aालà¤\82त घडणुको",
        "disclaimers": "न्हयकारणी",
        "disclaimerpage": "Project:सामान्य न्हयकारणी",
        "edithelp": "संपादकीय आदार",
        "nstab-project": "प्रकल्पाचें पान",
        "nstab-image": "फायल",
        "nstab-mediawiki": "संदेश",
-       "nstab-template": "पà¥\8dरारà¥\82प",
+       "nstab-template": "साà¤\82à¤\9aà¥\8b",
        "nstab-help": "आदाराचें पान",
        "nstab-category": "वर्ग",
        "nosuchaction": "असले तरेचे कार्य ना",
        "minoredit": "हें दाकटें संपादन",
        "watchthis": "हें पानार नदर दवरात",
        "savearticle": "पान सांभाळ",
+       "publishchanges": "बदल उजवाडाय",
+       "publishchanges-start": "बदल उजवाडाय...",
        "preview": "पूर्वनियाळ",
        "showpreview": "पूर्वनियाळ दाखय",
        "showdiff": "बदल दाखयात",
        "creating": "$1 रोचता",
        "editingsection": "(विभाग) $1 संपादन",
        "yourtext": "तुमचो मजकूर",
-       "templatesused": "हà¥\8dया à¤ªà¤¾à¤¨à¤¾à¤\9aà¥\87र {{PLURAL:$1|वापरिलà¥\8dलà¥\87à¤\82}} à¤ªà¥\8dरारà¥\82प",
+       "templatesused": "हà¥\8dया à¤ªà¤¾à¤¨à¤¾à¤\9aà¥\87र {{PLURAL:$1|वापरिलà¥\8dलà¥\87à¤\82}} à¤¸à¤¾à¤\82à¤\9aà¥\87",
        "template-protected": "(राखिल्लें)",
        "template-semiprotected": "(अर्द-सुरक्षीत)",
        "hiddencategories": "हें पान {{PLURAL:$1|लिपिल्ले वर्गाचें}} आसा",
        "moveddeleted-notice": "हें पान काडून उडयला.\nह्या पानाचो काडून उडोवपी आनी हालोवपी लॉग संदर्भा खातीर सकयल दिला.",
        "content-model-wikitext": "विकीमजकूर",
        "content-model-text": "सादोमजकूर",
-       "post-expand-template-inclusion-warning": "शिटकावणीः प्रारुप धरून आकार अगडबंब जाता, कांय प्रारुपांचो आसपाव जावचो ना.",
-       "post-expand-template-inclusion-category": "à¤\9cà¤\82य à¤ªà¥\8dरारà¥\81प धरून आवांठ व्हड जाता अशीं पानां",
-       "post-expand-template-argument-warning": "शिटकावणीः ह्या पानाचेर खुब व्हड आंवाठ आशिल्लो एक तरी प्रारुप मुद्दो आसा. हे मुद्दे भायरायल्यात",
-       "post-expand-template-argument-category": "भायरायिलà¥\8dलà¥\8dया à¤ªà¥\8dरारà¥\82पांसंबंदीचे मुद्दे आशिल्लीं पानां",
+       "post-expand-template-inclusion-warning": "<strong>शिटकावणीः</strong> सांचो धरून आकार अगडबंब जाता, कांय सांच्याचो आसपाव जावचो ना.",
+       "post-expand-template-inclusion-category": "à¤\9cà¤\82य à¤¸à¤¾à¤\82à¤\9aà¥\87 धरून आवांठ व्हड जाता अशीं पानां",
+       "post-expand-template-argument-warning": "<strong>शिटकावणीः</strong> ह्या पानाचेर खुब व्हड आंवाठ आशिल्लो एक तरी सांच्याचो मुद्दो आसा. हे मुद्दे भायरायल्यात",
+       "post-expand-template-argument-category": "भायरायिलà¥\8dलà¥\8dया à¤¸à¤¾à¤\82à¤\9aà¥\8dयांसंबंदीचे मुद्दे आशिल्लीं पानां",
        "viewpagelogs": "ह्या पाना खातीर सोत्रां पळेयात",
        "currentrev-asof": "$1 मेरेनचो सगळ्यांत निमणो पुनर्नियाळ",
        "revisionasof": " $1 मेरेन पुनर्नियाळ",
        "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> मदल्यान <strong>$1</strong> परिणाम|<strong>$3</strong> मदल्यान परिणाम <strong>$1 - $2</strong>}}",
        "search-nonefound": "ह्या प्रस्नाक फावोशें निकाल मेळूंक नात.",
        "powersearch-toggleall": "सगळीं",
-       "preferences": "पसà¤\82तà¥\80",
-       "mypreferences": "पसà¤\82तà¥\80",
+       "preferences": "पसà¤\82तà¥\8dयà¥\8b",
+       "mypreferences": "पसà¤\82तà¥\8dयà¥\8b",
        "prefs-edits": "संपादन केल्लें क्रम",
        "prefs-user-pages": "वापरपी पान",
        "prefs-rc": "हालींचे बदल",
        "prefs-watchlist": "सादुरवळेरी",
        "youremail": "इमेल",
        "yourrealname": "खरें नांवः",
-       "right-writeapi": "बरोवपाचे API वापरात",
+       "right-writeapi": "Write API चो उपेग",
        "newuserlogpage": "वापरपी रोचनेचे वळेरी",
        "action-edit": "हें पान संपादीत कर",
        "nchanges": "$1 {{PLURAL:$1|बदल|बदल}}",
        "filehist-help": "त्या वेळार फायल कशी आशिल्ली तें पळोवपाक त्या तारीख/वेळाचेर क्लिक करात",
        "filehist-deleteone": "काडून उडयात",
        "filehist-revert": "परतुवप",
-       "filehist-current": "à¤\9aालà¤\82त",
+       "filehist-current": "à¤\86ताà¤\9aà¥\87à¤\82",
        "filehist-datetime": "दिस / वेळ",
        "filehist-thumb": "ल्हान-इमाज़",
        "filehist-thumbtext": " $1मेरेनचे आवृत्ती खातीर ल्हान-इमाज़",
        "nolinkstoimage": "हे फायलीक जोडणी आशिल्लीं आनीक पानां नात.",
        "sharedupload-desc-here": "ही फयल $1 हांगाची आनी ती हे प्रकल्पां खातीर वापरल्यार चलता. (तिच्या $2 ह्या फयलींतलें वर्णनाचे पान) तातूंतलें वर्णन सकयल दिलां.",
        "upload-disallowed-here": "तूं ह्या फायलीचेर अधिलेखीत करूंक शकना",
-       "randompage": "à¤\96à¤\82यà¤\9aà¥\87à¤\82य à¤\86दलà¥\87à¤\82 à¤®à¤¦à¤²à¥\87à¤\82 à¤ªà¤¾à¤¨",
+       "randompage": "खंयचेंय पान",
        "statistics": "संख्याशास्त्र",
        "statistics-pages": "पान:",
        "statistics-files": "फायल अपलोड करात",
        "tooltip-n-portal": "प्रकल्पाच्या बद्दल,तुमच्यांनी कितें करूं येता,वस्तू खंयसून मेळोवं येतात",
        "tooltip-n-currentevents": "चालंत घडणुकांची फाटभूंय म्हायती मेळोवची",
        "tooltip-n-recentchanges": "विकींत हालींच बदल केल्ल्याची वळेरी",
-       "tooltip-n-randompage": "खंयचेंय आदलें मदलें  पान लोड करात",
+       "tooltip-n-randompage": "खंयचेंय आदलें मदलें पान उकतें करात",
        "tooltip-n-help": "सोदपाचो जागो",
        "tooltip-t-whatlinkshere": "हांगा जोडणी आशिल्ल्या सगळ्या विकी पानांची वळेरी",
        "tooltip-t-recentchangeslinked": "ह्या पानावेल्यान जोडणी दिल्ल्या पानांतले हालींचे बदल",
        "tooltip-ca-nstab-special": "हें खेरीत पान, तुमच्यांनीं खुद्द त्या पानार संस्करण करूं नजो",
        "tooltip-ca-nstab-project": "प्रकल्पाचें पान पळेयात",
        "tooltip-ca-nstab-image": "फायलीचें पान पळेयात",
-       "tooltip-ca-nstab-template": "पà¥\8dरारà¥\81प पळेयात",
+       "tooltip-ca-nstab-template": "साà¤\82à¤\9aà¥\8b पळेयात",
        "tooltip-ca-nstab-category": "वर्गांचे पान पळेयात",
        "tooltip-minoredit": "हो ल्हानसो बदल म्हूण कुरू करात",
        "tooltip-save": "तुमचे बदल सांभाळात",
index 8dc58a8..e796ea9 100644 (file)
@@ -15,7 +15,7 @@
        "tog-previewontop": "Sonskoron petie mukhar zolok dakhoi",
        "tog-previewonfirst": "Poileach bodolacher zolok dakhoi",
        "tog-enotifwatchlistpages": "Mhojea sadurvollerintlem pan vo fayl bodol'li zalear mhaka email dhadd",
-       "tog-shownumberswatching": "Nodor dovorpi vangdianche sonkhya dakhoi",
+       "tog-shownumberswatching": "Nodor dovorpi vaporpeanche sonkhya dakhoi",
        "tog-oldsig": "Tujea sod'dheachi soy:",
        "tog-uselivepreview": "Boroitastana zolok dahkoi",
        "tog-watchlisthideown": "Sadurvollerint mhoje bodol lipoi",
        "protect_change": "bodol",
        "unprotect": "Surokxechem sthor bodol",
        "newpage": "Novem pan",
-       "talkpagelinktext": "Bhasabhas",
+       "talkpagelinktext": "bhasabhas",
        "specialpage": "Vixex pan",
        "personaltools": "Khasgi avtam",
        "talk": "Bhasabhas",
        "toolbox": "Avtam",
        "imagepage": "Faylichem pan poloi",
        "mediawikipage": "Sondexachem pan polloi",
-       "templatepage": "Sachechem pan polloi",
+       "templatepage": "Sanchechem pan polloi",
        "viewhelppage": "Adar pan poloi",
        "categorypage": "Vorgachem pan poloi",
        "viewtalkpage": "Bhasabhas polloi",
        "aboutpage": "Project:Vixoiavixim",
        "copyright": "Mozkur $1 hachea khala uplobdh asa kheriz her nondi kelea xivai.",
        "copyrightpage": "{{ns:project}}:Prat-hokk",
-       "currentevents": "Chalu ghoddnneo",
-       "currentevents-url": "Project:Chalu ghoddneo",
+       "currentevents": "Chalont ghoddnneo",
+       "currentevents-url": "Project:Chalont ghoddneo",
        "disclaimers": "Nhoikarnio",
        "disclaimerpage": "Project:Sadeo nhoikarni",
        "edithelp": "Sompadon korunk adar",
        "nstab-project": "Prokolpache pan",
        "nstab-image": "Fayl",
        "nstab-mediawiki": "Sondex",
-       "nstab-template": "Saacho",
+       "nstab-template": "Sancho",
        "nstab-help": "Adarachem pan",
        "nstab-category": "Vorg",
        "mainpage-nstab": "Mukhel pan",
        "missingarticle-rev": "(uzollnni#: $1)",
        "missingarticle-diff": "(Frk: $1, $2)",
        "badtitle": "Chukichem nanv",
-       "badtitletext": "Tuven maglelem panache nanv chukichem, rintem, vo ek sarkem zodunk-naslelem bhase-modlem vo wiki-modlem nanv.\n\nTantun ek vo sabaar okxor asot jenka nanvanim uzar korunk zainan.",
+       "badtitletext": "Tuven maglelem panache nanv chukichem, rintem, vo ek sarkem zodunk-naslelem bhase-modlem vo wiki-modlem nanv.\n\nTantun ek vo sabaar okxor asot jenka nanvanim vaprunk zainan.",
        "viewsource": "Mull polloi",
        "viewsource-title": "$1‎ khatir mull polloi",
        "viewsourcetext": "Tujean hea panachem mull pollovnk ani nokol korunk zata.",
        "welcomeuser": "Ievkar, $1!",
        "yourname": "Vaporpeachem nanv:",
        "userlogin-yourname": "Vangdiachem nanv",
-       "userlogin-yourname-ph": "Tujem 'vangdeachem nanv' boroi",
+       "userlogin-yourname-ph": "Tujem vaporpeachem boroi",
        "createacct-another-username-ph": "Vapurpeachem nanv boroi",
        "yourpassword": "Gupitutor:",
        "userlogin-yourpassword": "Gupitutor",
        "image_tip": "Bosoileli fayl",
        "media_tip": "Failichi zoddni",
        "sig_tip": "Tuji soi, vell-chaap soit",
-       "hr_tip": "Adhvem rang (Komi uzar kor)",
+       "hr_tip": "Adhvem rang (unnem vapor)",
        "summary": "Sar:",
        "subject": "Vishoy:",
        "minoredit": "Hem ek dhaktem bodol",
        "watchthis": "Hea panar dixtt dovor",
        "savearticle": "Pan samball",
        "savechanges": "Bodol samball",
+       "publishchanges": "Bodol uzvaddai",
+       "publishchanges-start": "Bodol uzvaddai...",
        "preview": "Zholok",
        "showpreview": "Zholok dakhoi",
        "showdiff": "Bodol dakhoi",
-       "anoneditwarning": "<strong>Chotrai:</strong> Tuven sotrorombh korunk nai. Tu bodol korit zalear tuzo IP pot'to soglleank polleunk zatelem. Tu <strong>[$1 sotrorombh korit]</strong> vo <strong>[$2 kont rochit]</strong> zalear, tuje bodol tuzo vagddiachem nanvak zoddteleo ani anik-ui faide asat.",
+       "anoneditwarning": "<strong>Chotrai:</strong> Tuven sotrorombh korunk nai. Tu bodol korit zalear tuzo IP pot'to soglleank polleunk zatelem. Tu <strong>[$1 sotrorombh korit]</strong> vo <strong>[$2 kont rochit]</strong> zalear, tuje bodol tuzo vaporpeachem nanvak zoddteleo ani anik-ui faide asat.",
        "missingcommenttext": "Upkar korun tuzo xero boroi.",
        "blockedtitle": "Vapurpeak addaila",
        "blockedtext": "<strong>Tujem vaporpeachem nanv vo IP pot'to addavpant aila.</strong>\n\nAddavop $1 hannem kelam.\nKaronn dilam tem <em>$2</em>.\n\n* Addavpachi survat: $8\n* Addavpachea somp’pacho vell: $6\n* Addavpak ievjila: $7\n\nTujean $1-ak vo dusrea [[{{MediaWiki:Grouppage-sysop}}|karbhariak]] addavnne bodol bhasabhas korunk sompork korunk zata. Tujean \"{{int:emailuser}}\" sobhavgunn vaprunk zaina kheriz ek void email pot'to tujea [[Special:Preferences|khatem posontint]] nischit kelea xivai ani tuka tem vaporpak addavnk na zalear. Tuzo chalont IP pot'to asa $3, ani addavnnecheo ank #$5 asa. Soglleo voileo bariksanno tum kortai tea vicharant somavex kor.",
        "clearyourcache": "<strong>Note:</strong> Samball’llea uprant, tuka ghoddiek tujea browseracho cache koddsoravnk poddot bodol pollonvche khatir.\n* <strong>Firefox / Safari:</strong> <em>Shift</em> dhor <em>Reload</em> klik kortana, vo dam <em>Ctrl-F5</em> vo <em>Ctrl-R</em> (<em>⌘-R</em> Mac-acher)\n* <strong>Google Chrome:</strong> <em>Ctrl-Shift-R</em> dam (<em>⌘-Shift-R</em> eka Mac-acher)\n* <strong>Internet Explorer:</strong> <em>Ctrl</em> dhor <em>Refresh</em> klik kortana, vo dam <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Hanga voch: <em>Menu → Settings</em> (<em>Opera → Preferences</em> Mac-acher) ani uprant <em>Privacy & security → Clear browsing data → Cached images and files</em>.‎",
        "previewnote": "<strong>Hem fokot ek zholok mhonn ugddas dhor.</strong>\nTuje bodol azun sambhallun dovrunk nant!",
        "continue-editing": "Sompadon korpachea zagear voch",
-       "editing": "$1 bodolta",
+       "editing": "Sompadon kortai: $1",
        "creating": "$1 rochta",
        "editingsection": "Sompadon kortai: $1 (khond)",
        "yourtext": "Tuzo mozkur",
-       "templatesused": "Hea panant uzar {{PLURAL:$1|kel'lo sancho|kel'le sanche}}:",
-       "templatesusedpreview": "{{PLURAL:$1|Sacho|Sache}} hea zholokant vaporleat:‎",
+       "templatesused": "Hea panant upeog {{PLURAL:$1|kel'lo sancho|kel'le sanche}}:",
+       "templatesusedpreview": "{{PLURAL:$1|Sancho|Sanche}} hea zholokant vaporleat:‎",
        "template-protected": "(rakhlelem)",
        "template-semiprotected": "(ordhem rakhun dovorlelem)",
        "hiddencategories": "Hem pan {{PLURAL:$1|1 lipoilelea vorgacho vangddi|$1 lipoileleam vorgancho vangddi}}:",
        "moveddeleted-notice": "Hem pan kadun udoilelem asa.\nPanachea kadun udounechi, rakhpachi, ani hallovnechi sotr sondorba khatir sokoil dilea.",
        "content-model-wikitext": "wikimozkur",
        "content-model-text": "Sado mozkur",
-       "post-expand-template-inclusion-warning": "'''Chotrai:''' Sacho zoddpacho akar chod vhodlem asa.\nThodde sache zoddchenant",
+       "post-expand-template-inclusion-warning": "<strong>Chotrai:</strong> Sancho zoddpacho akar chod vhodlem asa.\nThodde sache zoddchenant.",
        "post-expand-template-inclusion-category": "Zea panani sache zoddpachem akarachem merakin chod zala",
-       "post-expand-template-argument-warning": "'''Chotrai:''' Hea panan ek tori oslo sacheacho parametro asa zacho patlloylea uprant akar chod vhoddlo zata.\nHeo parametrank durlokx keleat.",
-       "post-expand-template-argument-category": "Sacheache parametro zoddunknan osle panam",
+       "post-expand-template-argument-warning": "<strong>Chotrai:</strong> Hea panan ek tori oslo sancheacho parametro asa zacho patlloylea uprant akar chod vhoddlo zata.\nHeo parametrank durlokx keleat.",
+       "post-expand-template-argument-category": "Sancheache parametro zoddunknan osle panam",
        "undo-failure": "Bodol portavunk zavnk na kiteak gusponneche modle bodol asat.",
        "viewpagelogs": "Hea panachim sotram polloi",
        "currentrev-asof": "$1, hachi halinchi uzollnni",
        "compareselectedversions": "Nivodloleo uzollneo comparar kor",
        "editundo": "kel'lem portavchem",
        "diff-empty": "(Kaim forok na)‎",
-       "diff-multi-sameuser": "(Heach vangdian {{PLURAL:$1|kel'lo modlo ek bodol dakhounk na|kel'le modle $1 bodol dakhounk nan}})",
+       "diff-multi-sameuser": "(Heach vaporpean {{PLURAL:$1|kel'lo modlo ek bodol dakhounk na|kel'le modle $1 bodol dakhounk nan}})",
        "diff-multi-otherusers": "({{PLURAL:$1|Ek modli uzollnni|$1 modleo uzollnneo}} {{PLURAL:$2|ek her vaporpi|$2 her vaporpi}}, hache vorvim dakhovnk na)‎",
        "searchresults": "Sodache porinaman",
        "searchresults-title": "\"$1\" -khatir sodache porinaman",
        "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> modlean <strong>$1</strong> porinam|<strong>$3</strong> modlean porinam <strong>$1 - $2</strong>}}",
        "search-nonefound": "Tujea sodak mell khata toslem kai porinam nan.",
        "powersearch-toggleall": "Soglle",
-       "preferences": "Posondeo",
-       "mypreferences": "Posonti",
+       "preferences": "Posonteo",
+       "mypreferences": "Posonteo",
        "prefs-edits": "Bodolanche sonkhya",
        "prefs-user-pages": "Vapurpeanchim panam",
        "prefs-rc": "Halinche bodol",
        "group-all": "(soglle)",
        "grouppage-bot": "{{ns:project}}:Robotam",
        "grouppage-sysop": "{{ns:project}}:Karbhari",
-       "right-writeapi": "Borovpeache API-cho vapor",
+       "right-writeapi": "Borovpeache API-cho upeog",
        "newuserlogpage": "Vapurpi rochnnechem sotr",
        "rightslog": "Vaporpeachea hokancho sotr",
        "action-edit": "hem pan sudar",
        "filehist-help": "Faylik tea vellar aslelea rupan pollonvk tarikh/vellar click kor",
        "filehist-deleteone": "kadun udoi",
        "filehist-revert": "Nimanea avruttik porot vor",
-       "filehist-current": "chalont",
+       "filehist-current": "atachem",
        "filehist-datetime": "Tarikh/Vell",
        "filehist-thumb": "Lhan-imaz",
        "filehist-thumbtext": "$1chi avrutti khatir lhan-imaz",
        "linkstoimage-more": "$1 poros odik {{PLURAL:$1|pan vaporta|panam vaporta}} hi fayl.\nSokoili volleri dakhoita {{PLURAL:$1|poilem pan|poilim $1 panam}} jem hich fayl vaporta. Ek [[Special:WhatLinksHere/$2|purnn volleri]] uplobdh asa.‎",
        "nolinkstoimage": "Hea faylik vaportat toslim panam nant",
        "linkstoimage-redirect": "$1 (fayl punornirdexon) $2",
-       "sharedupload-desc-here": "Hi fayl $1, hachi ani dusrea prokolpanim haka uzar korunk zata.\nHachem [$2 faylichem vivron panan] asleli vivron khala dilea:",
+       "sharedupload-desc-here": "Hi fayl $1, hachi ani dusrea prokolpanim hachem upeog korunk zata.\nHachem [$2 faylichem vivron panan] asleli vivron khala dilea:",
        "filepage-nofile": "Hea nanvachi fayl ostitvant na.",
        "upload-disallowed-here": "Tu hea fayli voir borounk xokonai",
        "filedelete-otherreason": "Dusrem/aniki karon:",
-       "randompage": "Khoincheim adlem modlem pan",
+       "randompage": "Khoincheim pan",
        "statistics": "Ankddevari",
        "statistics-pages": "Panam",
        "statistics-files": "Upload kel'le fayli",
        "booksources-search-legend": "Pustokachim mullam sod",
        "booksources-search": "Sod",
        "specialloguserlabel": "Korpi:",
-       "speciallogtitlelabel": "Vishoi vo {{ns:user}}:vapurpeachem nanv:",
+       "speciallogtitlelabel": "Mokh (mathallo vo {{ns:user}}:vapurpeachem nanv):",
        "log": "Sotram",
        "all-logs-page": "Soglle bhousache sotram",
        "alllogstext": "{{SITENAME}} hacheo sogllea uplobdh sotranchi ektthaim dakhovnni.\nTujean tuzo dekhavo ornum ieta ek sotracho prokar vinchun, vaporpeachem nanv (vhodle and dhakte okxora modem forok podta), vo porinnam zalolem pan (hanga-ui vhodle and dhakte okxora modem forok podta).‎",
        "tooltip-n-mainpage": "Mukhel panak bhett di",
        "tooltip-n-mainpage-description": "Mukhel Panak bhett di",
        "tooltip-n-portal": "Hea prokolpa vixim, tumchean kitem korum ieta, khoim kitem sodchem",
-       "tooltip-n-currentevents": "Chalu ghoddneachea fattbhuichi mahiti sod",
+       "tooltip-n-currentevents": "Chalont ghoddneachea fattbhuichi mahiti sod",
        "tooltip-n-recentchanges": "Wikint halinch bodol keleleachi volleri",
        "tooltip-n-randompage": "Khoincheim adlem modlem pan uktem kor",
        "tooltip-n-help": "Sodpachem tholl",
        "tooltip-ca-nstab-project": "Prokolpachem pan polloi",
        "tooltip-ca-nstab-image": "Faylichem pan polloi",
        "tooltip-ca-nstab-mediawiki": "Iontronacho sondex polloi",
-       "tooltip-ca-nstab-template": "Saacho polloi",
+       "tooltip-ca-nstab-template": "Sancho polloi",
        "tooltip-ca-nstab-category": "Vorgachem pan polloi",
        "tooltip-minoredit": "Haka ek kirkoll sudharop mhunn khunnay",
        "tooltip-save": "Tuje bodol sambhall",
-       "tooltip-preview": "Bodolanchi zholok polloi, upkar hem samballche adim vapor!",
+       "tooltip-preview": "Bodolanchi zholok polloi. Upkar korun samballche adim hachem upeog kor!",
        "tooltip-diff": "Tumi hea mozkurant kelelo bodol dakhoiat",
        "tooltip-compareselectedversions": "Hea panacheo don nivoddleleo uzollneo modem forok polloi",
        "tooltip-watch": "Hem pan tujea sadurvollerint zodd",
        "pageinfo-recent-authors": "Halinche veglle borovpi",
        "pageinfo-magic-words": "{{PLURAL:$1|Jaduchem utor|Jaduchim utram}} ($1)‎",
        "pageinfo-hidden-categories": "Lipoilele {{PLURAL:$1|vorg}} ($1)",
-       "pageinfo-templates": "{{PLURAL:$1|Sacho durasth-somaves zala|Sache durasth-somaves zale}} ($1)‎",
+       "pageinfo-templates": "{{PLURAL:$1|Sancho durasth-somaves zala|Sanche durasth-somaves zale}} ($1)‎",
        "pageinfo-toolboxlink": "Panachi mahiti",
        "pageinfo-contentpage": "Ek mozkurachem pan koxem dhorpant ailam‎",
        "pageinfo-contentpage-yes": "Hoi",
        "show-big-image-size": "$1 × $2 chitrotvam",
        "bad_image_list": "Akar oso asa:\n\nFokot suchicheo vostu (*-chean suru zateleo) dheanant ghevcheo\nTech vollir, uprantli zoddnni opvad dhorpant ieta, mhonnche zoim pana faylichea ek vollint asunk xoktat.",
        "metadata": "Metadata",
-       "metadata-help": "Hea faylin anikui mahiti asa, hi fayl korunk uzar kel'le digital camera vo scanner sun tem aila zait.\nZori tor hi faylik bodol'lam zalear kai mahiti bodololem faylik sarkem mell khaina zait.",
+       "metadata-help": "Hea faylin anikui mahiti asa, hi fayl korunk upeog kel'le digital camera vo scanner sun tem aila zait.\nZori tor hi faylik bodol'lam zalear kai mahiti bodololem faylik sarkem mell khaina zait.",
        "metadata-fields": "Metadata chovkott konsollttoch, hea sondexant metadata molleantlea murtipanachea dakhovnnent aspav astolo.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "namespacesall": "sogllem",
        "monthsall": "sogllem",
        "mw-widgets-dateinput-no-date": "Tarikh nivddunk na",
        "mw-widgets-dateinput-placeholder-day": "VVVV-MM-DD",
        "mw-widgets-dateinput-placeholder-month": "VVVV-MM",
-       "randomrootpage": "Khoincheim adlem modlem mull pan"
+       "randomrootpage": "Khoincheim mull pan"
 }
index 3185b8d..f76e312 100644 (file)
@@ -74,8 +74,8 @@
        "thu": "Ham",
        "fri": "Jum",
        "sat": "Sah",
-       "january": "Januwari",
-       "february": "Peburuari",
+       "january": "Januari",
+       "february": "Pebruari",
        "march": "Maret",
        "april": "April",
        "may_long": "Mei",
@@ -86,7 +86,7 @@
        "october": "Oktober",
        "november": "Nopember",
        "december": "Desember",
-       "january-gen": "Januwari",
+       "january-gen": "Januari",
        "february-gen": "Pebruari",
        "march-gen": "Maret",
        "april-gen": "April",
        "newmessagesdifflinkplural": "{{PLURAL:$1|biloli'o|999=u biloli'o}} pulitiyo",
        "youhavenewmessagesmulti": "Yio lo'otapu tahuli bohu to $1",
        "editsection": "boli'a",
-       "editold": "boli'",
+       "editold": "boli'a",
        "viewsourceold": "Bilohi bungoliyo",
        "editlink": "boli'a",
        "viewsourcelink": "Bilohi bungoliyo",
index 5d24b94..02ffb84 100644 (file)
        "whatlinkshere-filters": "Ἠθητήρια",
        "blockip": "Ἀποκλῄειν τόνδε τὸν χρώμενον",
        "ipaddressorusername": "Διεύθυνσις IP ἢ ὄνομα χρωμένου:",
-       "ipbexpiry": "Λῆξις:",
        "ipbreason": "Αἰτία:",
        "ipbreason-dropdown": "*Κοιναὶ αἰτίαι φραγῆς\n** Εἰσαγωγὴ ψευδοῦς πεύσεως\n** Ἁφαίρεσις τοῦ περιεχομένου τῶν δέλτων\n** Σύνδεσμοι πρὸς ἀνεπιθύμητους ἀγγελίας\n** Εἰσαγωγὴ ἀσυναρτησιῶν ἐν ταῖς δέλτοις\n** Ἐκφοβιστικὴ συμπεριφορά/ἐνόχλησις\n** Κατάχρησις πολλαπλῶν λογισμῶν\n** Ἀναπόδεκτον ὄνομα χρωμένου",
        "ipbcreateaccount": "Ἀποτρέπειν τὴν ποίησιν λογισμοῦ",
        "ipb-unblock": "Ἀποφράττειν ὄνομα χρωμένου τι ἢ IP-διεύθυνσιν τινά",
        "ipb-blocklist": "Ὁρᾶν τὰς ὑπάρχουσας φραγὰς",
        "ipb-blocklist-contribs": "Ἔρανοι τοῦ $1",
+       "block-expiry": "Λῆξις:",
        "unblockip": "Ἀποφράττειν χρώμενον",
        "ipusubmit": "Αἴρειν τήνδε τὴν φραγήν",
        "unblocked": "[[User:$1|$1]] ἀποπεφραγμέν-ος/-η",
index aa4a19e..6e0cbf4 100644 (file)
        "blockip": "{{GENDER:$1|Benutzer|Benutzerin}} sperre",
        "blockiptext": "Nimm des Formular go ne Benutzer oder e IP-Adräss sperre.\nDes sott numme erfolge go Vandalismus verhindere un in Ibereinstimmig mit in dr [[{{MediaWiki:Policy-url}}|Leitlinie]]. Bitte gib au ne Grund fi d Sperri aa (z. B. indäm du einzel ni Syte zitiersch, wu vandaliert wore sin).",
        "ipaddressorusername": "IP-Adräss oder Benutzername:",
-       "ipbexpiry": "Sperrduur:",
        "ipbreason": "Grund:",
        "ipbreason-dropdown": "* Allgmeini Sperrgrind\n** Lesche vu Syte\n** Aalege vu bledsinnige Syte\n** Vylfachi Verstess gege d Richtlinie fir Weblink\n** Verstoss gege dr Grundsatz „Kei persenligi Aagriff“\n* Benutzerspezifischi Sperrgrind\n** Uugeignete Benutzername\n** Neijaamäldig vun eme uubschränkt gsperrte Benutzer\n* IP-spezifischi Sperrgrind\n** Proxy, wäge Vandalismus vu einzelne Benutzer lengerfrischtig gsperrt",
        "ipb-hardblock": "Aagmäldeti Benutzer dra hindere, Bearbeitige unter däre IP-Adräss vorzneh",
        "ipb-unblock": "IP-Adräss/Benutzer frejgee",
        "ipb-blocklist": "Alli aktuälle Sperrine aazeige",
        "ipb-blocklist-contribs": "Benutzerbyträg {{GENDER:$1|vom|vor|vo}} $1",
+       "block-expiry": "Sperrduur:",
        "unblockip": "IP-Adräss frejgee",
        "unblockiptext": "Mit däm Formular chasch e IP-Adräss oder e Benutzer frejgee.",
        "ipusubmit": "Die Sperri useneh",
index df34fd7..3efb0c0 100644 (file)
        "blockip": "{{GENDER:$1|સભ્ય}} પર પ્રતિબંધ મુકો",
        "blockiptext": "કોઈ ચોક્કસ IP સરનામું કે સભ્યના લેખન યોગદાન પર પ્રતિબંધ મુકવા નીચેનું ફોર્મ વાપરો.\nતેનો ઉપયોગ માત્ર ભાંગફોડિયા પ્રવૃત્તિઓને રોકવા અને  [[{{MediaWiki:Policy-url}}|નીતિ]] અનુસાર જ હોવો જોઈએ.\nકારણનું ખાનું અવશ્ય ભરશો (દા.ત. અમુક ભાંગફોડ કરાયેલા પાનાનો સંદર્ભ).",
        "ipaddressorusername": "IP સરનામું અથવા સભ્યનામ:",
-       "ipbexpiry": "સમાપ્તિ:",
        "ipbreason": "કારણ:",
        "ipbreason-dropdown": "*સામાન્ય પ્રતિબંધ કારણો\n** ખોટી માહિતી ઉમેરાઈ  \n** પાનામાંથી માહિતી ભૂંસી નાંખી\n** અનાવશ્યક બાહ્ય કડીઓ ઉમેરી \n** પાનામાં મૂર્ખામીભરી/અર્થહીન માહિતી ઉમેરી\n** ત્રાસદાયક વર્તન \n** ઘણા ખાતાઓ અને દુરુપયોગ\n** અસ્વીકાર્ય સભ્ય નામ\n** આત્યંતિક ભાંગફોડ",
        "ipb-hardblock": "આ IP સરનામાં પરથી લોગ-ઈન થયેલા સભ્યોને ફેરફાર કરતા અટકાવો.",
        "ipb-unblock": "સભ્યનામ કે  IP સરનામું અપ્રતિબંધિત કરો.",
        "ipb-blocklist": "વિહરમાન પ્રતિબંધો જુઓ",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} નું યોગદાન",
+       "block-expiry": "સમાપ્તિ:",
        "unblockip": "સભ્ય પરનો પ્રતિબંધ હટાવો",
        "unblockiptext": "પહેલા રોક લગાડેલ IP સરનામા કે સભ્ય ના પ્રવેશને પુનઃસ્થાપિત કરવા નીચેનું ફોર્મેટ વાપરો.",
        "ipusubmit": "આપ્રતિબંધન હટાવો",
index d48f6f4..7c85c67 100644 (file)
        "whatlinkshere-filters": "Shollaneyn",
        "blockip": "Glass magh yn ymmydeyr",
        "ipaddressorusername": "Enmys IP ny ennym ymmydeyr:",
-       "ipbexpiry": "Jerrey:",
        "ipbreason": "Fa:",
        "ipbreason-dropdown": "* Oyr glassey cadjin\n** Inserting false information\n** Removing content from pages\n** Spamming links to external sites\n** Inserting nonsense/gibberish into pages\n** Intimidating behavior/harassment\n** Abusing multiple accounts\n* Oyr elley\n** Ennym ymmydeyryn neuchooie\n** Feyshtyn eddyr-wiki",
        "ipbcreateaccount": "Crooaght coontys y chumrail",
        "ipbother": "Mooad elley am:",
        "ipboptions": "2 oor:2 hours,1 laa:1 day,3 laaghyn:3 days,1 hiaghtin:1 week,2 hiaghtin:2 weeks,1 vee:1 month,3 meeghyn:3 months,6 meeghyn:6 months,1 vlein:1 year,neuyerrinagh:infinite",
        "badipaddress": "Enmys IP gyn vree",
+       "block-expiry": "Jerrey:",
        "ipblocklist": "Ymmydeyryn fo ghlass",
        "blocklist-reason": "Fa:",
        "ipblocklist-submit": "Ronsee",
index a69391c..1637e48 100644 (file)
        "blockip": "Fûng-kim {{GENDER:$1|yung-fu}}",
        "blockiptext": "用下背嘅表單來禁止來自某一特定IP地址嘅修改許可權。\n單淨在為防止破壞,撈符合[[{{MediaWiki:Policy-url}}|守則]]嘅情況下正做得採取邇行動。\n請在下背輸入一隻具體嘅理由(例如引述一隻分破壞嘅頁面)。",
        "ipaddressorusername": "IP thi-chí fe̍t yung-fu-miàng:",
-       "ipbexpiry": "Khì-han:",
        "ipbreason": "Ngièn-yîn:",
        "ipbreason-dropdown": "*Yit-pân ke fûng-kim lî-yù \n** Tô-chhṳ kâ-ngi̍p hî-ká chṳ̂-liau \n** San-chhù ya̍p-mien nui-yùng \n** Ngoi-phu lièn-chiap kóng-ko \n** Chhai ya̍p-mien tú chen-kâ mò yi-ngi vùn-sṳ \n** Mò-lî ke hàng-vì, kûng-kit / sâu-yéu phe̍t-sâ \n** Làm-yung tô-chak fu-thèu \n** Cho-m̀ tet chiap-su ke yung-fu-miàng",
        "ipbcreateaccount": "Chú-chṳ́ kien-li̍p sîn fu-thèu",
        "ipb-unblock-addr": "Kié-fûng $1",
        "ipb-unblock": "Kié-fûng yung-fu miàng fe̍t IP thi-chí",
        "ipb-blocklist": "Chhà-khon kîm-hâ ke fûng-kim",
+       "block-expiry": "Khì-han:",
        "unblockip": "Kié-fûng yung-fu",
        "unblockiptext": "Yung hâ-poi ke péu-tân lòi fî-fu̍k siên-chhièn fûn chhà-fûng ke IP thi-chí fe̍t yung-fu ke siá-khièn han.",
        "ipusubmit": "Kié-chhù kim-fûng",
index deb8ab1..64f112a 100644 (file)
        "whatlinkshere-hideimages": "$1 i nā loulou waihona",
        "whatlinkshere-filters": "Kānana",
        "blockip": "Pale i kēia mea ho‘ohana",
-       "ipbexpiry": "Pau āhea:",
        "ipbreason": "Kumu:",
        "ipbsubmit": "Pale i kēia mea ho‘ohana",
        "ipbother": "Manawa ʻē aʻe:",
        "ipboptions": "2 mau hola:2 hours,1 lā:1 day,3 mau lā:3 days,1 pule:1 week,2 mau pule:2 weeks,1 mahina:1 month,3 mau mahina:3 months,6 mau mahina:6 months,1 makahiki:1 year,wā pau ʻole:infinite",
        "badipaddress": "Wahinoho IP hewa",
+       "block-expiry": "Pau āhea:",
        "ipblocklist": "Nā Mea hoʻohana pale ʻia",
        "ipblocklist-submit": "Huli",
        "infiniteblock": "pau ʻole",
index 09aad7a..2cb2039 100644 (file)
@@ -37,7 +37,8 @@
                        "Matma Rex",
                        "Or",
                        "שמזן",
-                       "Uziel302"
+                       "Uziel302",
+                       "Strayblues"
                ]
        },
        "tog-underline": "סימון קישורים בקו תחתי:",
        "resetpass-abort-generic": "שינוי הסיסמה בוטל על־ידי הרחבה.",
        "resetpass-expired": "סיסמתך פקעה. נא להגדיר סיסמה חדשה כדי להיכנס.",
        "resetpass-expired-soft": "הסיסמה שלך פקעה, וצריך לשנות אותה. יש לבחור סיסמה חדשה כעת, או ללחוץ על \"{{int:authprovider-resetpass-skip-label}}\" כדי לשנות אותה מאוחר יותר.",
+       "resetpass-validity": "סיסמתך אינה חוקית: $1\n\nנא להגדיר סיסמה חדשה כדי להיכנס.",
        "resetpass-validity-soft": "הסיסמה שלך אינה תקינה: $1\n\nיש לבחור סיסמה חדשה כעת או ללחוץ על \"{{int:authprovider-resetpass-skip-label}}\" כדי לשנות את הסיסמה מאוחר יותר.",
        "passwordreset": "איפוס סיסמה",
        "passwordreset-text-one": "יש למלא טופס זה כדי לקבל סיסמה זמנית בדוא\"ל.",
        "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כמו־כן, באפשרותך להשתמש בתכונת \"{{int:emailuser}}\", אלא אם לא ציינת כתובת דוא\"ל תקפה ב[[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כמו־כן, באפשרותך להשתמש בתכונת \"{{int:emailuser}}\", אלא אם לא ציינת כתובת דוא\"ל תקפה ב[[Special:Preferences|העדפות המשתמש שלך]] או אם נחסמת משליחת דוא\"ל.\n\nכתובת ה־IP הנוכחית שלך היא $3, ומספר החסימה שלך הוא #$5.\nיש לציין את כל הפרטים הללו בכל פנייה לבירור החסימה.",
        "systemblockedtext": "שם המשתמש או כתובת ה־IP שלך נחסמו באופן אוטומטי על־ידי תוכנת מדיה־ויקי.\nהסיבה שניתנה לחסימה היא:\n\n:<em>$2</em>\n\n* תחילת החסימה: $8\n* פקיעת החסימה: $6\n* החסימה שבוצעה: $7\n\nכתובת ה־IP הנוכחית שלך היא $3.\nיש לציין את כל הפרטים הללו בכל פנייה לבירור החסימה.",
+       "actionblockedtext": "נחסמת מביצוע פעולה זו.",
        "blockednoreason": "לא ניתנה סיבה",
        "whitelistedittext": "נדרשת $1 כדי לערוך דפים.",
        "confirmedittext": "יש לאמת את כתובת הדוא\"ל לפני עריכת דפים.\nנא להגדיר ולאמת את כתובת הדוא\"ל שלך באמצעות [[Special:Preferences|העדפות המשתמש]] שלך.",
        "blockip": "חסימת ה{{GENDER:$1|משתמש|משתמשת}}",
        "blockiptext": "ניתן להשתמש בטופס שלהלן כדי לחסום את הרשאות הכתיבה מכתובת IP מסוימת או משם משתמש מסוים.\nחסימות כאלה צריכות להתבצע רק כדי למנוע השחתה, ובהתאם ל[[{{MediaWiki:Policy-url}}|נהלים]].\nיש למלא את הסיבה הפרטנית לחסימה להלן (לדוגמה, באמצעות ציון דפים מסוימים שהשחית המשתמש).\nבאפשרותך לחסום טווחי כתובות IP באמצעות תחביר [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; הטווח הגדול ביותר שניתן לחסום הוא <span dir=\"ltr\">/$1</span> עבור IPv4 ו־<span dir=\"ltr\">/$2</span> עבור IPv6.",
        "ipaddressorusername": "כתובת IP או שם משתמש:",
-       "ipbexpiry": "פקיעה:",
        "ipbreason": "סיבה:",
        "ipbreason-dropdown": "* סיבות חסימה נפוצות\n** הוספת מידע שגוי\n** הסרת תוכן מדפים\n** הצפת קישורים לאתרים חיצוניים\n** הוספת שטויות/ג'יבריש לדפים\n** התנהגות מאיימת/הטרדה\n** שימוש לרעה בחשבונות מרובים\n** שם משתמש בעייתי",
        "ipb-hardblock": "ביטול האפשרות של משתמשים רשומים לערוך מכתובת IP זו",
-       "ipbcreateaccount": "×\97ס×\99×\9e×\94 ×©×\9c ×\99צ×\99רת ×\97ש×\91×\95× ×\95ת",
-       "ipbemailban": "×\97ס×\99×\9e×\94 ×©×\9c ×©×\9c×\99×\97ת ×\93×\95×\90ר ×\90×\9cק×\98ר×\95× ×\99",
+       "ipbcreateaccount": "יצירת חשבונות",
+       "ipbemailban": "שליחת דואר אלקטרוני",
        "ipbenableautoblock": "חסימה אוטומטית של כתובת ה־IP האחרונה שהמשתמש עשה בה שימוש, וגם של כל כתובת IP שינסה להשתמש בה בעתיד",
        "ipbsubmit": "חסימת המשתמש",
        "ipbother": "זמן אחר:",
        "ipboptions": "שעתיים:2 hours,יום:1 day,שלושה ימים:3 days,שבוע:1 week,שבועיים:2 weeks,חודש:1 month,שלושה חודשים:3 months,שישה חודשים:6 months,שנה:1 year,זמן בלתי מוגבל:infinite",
        "ipbhidename": "הסתרת שם המשתמש מהעריכות ומהרשימות",
        "ipbwatchuser": "מעקב אחרי דף המשתמש ודף השיחה של משתמש זה",
-       "ipb-disableusertalk": "×\91×\99×\98×\95×\9c ×\94×\90פשר×\95ת ×©×\9c ×\94×\9eשת×\9eש ×\9cער×\95×\9a ×\90ת ×\93×£ ×\94ש×\99×\97×\94 ×©×\9c ×¢×¦×\9e×\95 ×\91עת ×\94×\97ס×\99×\9e×\94",
+       "ipb-disableusertalk": "ער×\99×\9bת ×\93×£ ×\94ש×\99×\97×\94 ×©×\9c ×\94×\9eשת×\9eש",
        "ipb-change-block": "חסימת המשתמש מחדש עם הגדרות אלה",
        "ipb-confirm": "אישור החסימה",
        "ipb-sitewide": "כל האתר",
        "ipb-partial": "חלקית",
-       "ipb-type-label": "סוג",
        "ipb-pages-label": "דפים",
        "badipaddress": "כתובת IP שגויה",
        "blockipsuccesssub": "החסימה הושלמה בהצלחה",
        "ipb-blocklist": "הצגת החסימות הנוכחיות",
        "ipb-blocklist-contribs": "תרומות של {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "הזמן שנותר: $1",
+       "block-actions": "פעולות שייחסמו:",
+       "block-expiry": "פקיעה:",
+       "block-options": "אפשרויות נוספות:",
+       "block-prevent-edit": "עריכה",
+       "block-reason": "סיבה:",
+       "block-target": "שם משתמש או כתובת IP:",
        "unblockip": "שחרור חסימה של משתמש",
        "unblockiptext": "ניתן להשתמש בטופס שלהלן כדי להחזיר את הרשאות הכתיבה לכתובת IP חסומה או למשתמש חסום.",
        "ipusubmit": "הסרת חסימה זו",
        "specialpages-group-developer": "כלי פיתוח",
        "blankpage": "דף ריק",
        "intentionallyblankpage": "דף זה הושאר ריק במכוון.",
+       "disabledspecialpage-disabled": "הדף הזה כובה על־ידי מפעיל מערכת.",
        "external_image_whitelist": "#נא להשאיר שורה זו בדיוק כפי שהיא<pre>\n#כתבו קטעים של ביטויים רגולריים (רק החלק שבין סימני //) למטה\n#ביטויים אלה יושוו לכתובות ה־URL של תמונות חיצוניות (המוכללות באמצעות כתובת URL)\n#התמונות שתואמות לאחד הביטויים הרגולריים יוצגו כתמונות, והאחרות יוצגו כקישורים בלבד\n#שורות המתחילות בסימן # הן הערות\n#רשימה זו אינה תלויה ברישיות\n\n#נא לכתוב את כל הביטויים הרגולריים מעל שורה זו. נא להשאיר שורה זו בדיוק כפי שהיא</pre>",
        "tags": "התגיות הקיימות לסימון שינויים",
        "tag-filter": "מסנן [[Special:Tags|תגיות]]:",
index c9cc334..1b9a70a 100644 (file)
                        "Gopalindians"
                ]
        },
-       "tog-underline": "लिà¤\82à¤\95 रेखांकित:",
+       "tog-underline": "à¤\95ड़à¥\80 रेखांकित:",
        "tog-hideminor": "हाल के परिवर्तन से मामूली संपादन छुपाएं",
-       "tog-hidepatrolled": "हाल à¤\95à¥\87 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¸à¥\87 à¤\97शà¥\8dत संपादन छुपाएं",
+       "tog-hidepatrolled": "हाल à¤\95à¥\87 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¸à¥\87 à¤¨à¤\97रानà¥\80 संपादन छुपाएं",
        "tog-newpageshidepatrolled": "नये पृष्ठ की सूची में परीक्षित पृष्ठों को छिपाएँ",
        "tog-hidecategorization": "पृष्ठों का श्रेणीकरण छिपाएं",
-       "tog-extendwatchlist": "à¤\95à¥\87वल à¤¹à¤¾à¤²à¤¿à¤¯à¤¾ ही नहीं, बल्कि सभी परिवर्तनों को दिखाने के लिए ध्यानसूची को विस्तृत करें",
-       "tog-usenewrc": "हाल à¤®à¥\87à¤\82 à¤¹à¥\81à¤\8f परिवर्तनों और ध्यानसूची में परिवर्तनों को पृष्ठ अनुसार समूहों में बाँटें",
+       "tog-extendwatchlist": "à¤\95à¥\87वल à¤¸à¤¬à¤¸à¥\87 à¤¨à¤µà¥\80न ही नहीं, बल्कि सभी परिवर्तनों को दिखाने के लिए ध्यानसूची को विस्तृत करें",
+       "tog-usenewrc": "ससà¥\8dबà¥\87 à¤¨à¤µà¥\80न परिवर्तनों और ध्यानसूची में परिवर्तनों को पृष्ठ अनुसार समूहों में बाँटें",
        "tog-numberheadings": "स्व-क्रमांकित शीर्षक",
        "tog-editondblclick": "डबल क्लिक पर पृष्ठ संपादित करें",
        "tog-editsectiononrightclick": "अनुभाग शीर्षक पर दायाँ क्लिक करने पर अनुभाग सम्पादित करें",
        "tog-minordefault": "मेरे सभी सम्पादनों को छोटे बदलाव के रूप में चिह्नित करें",
        "tog-previewontop": "सम्पादन सन्दूक से पहले झलक दिखायें",
        "tog-previewonfirst": "प्रथम सम्पादन के बाद झलक दिखायें",
-       "tog-enotifwatchlistpages": "मेरी ध्यानसूची में दर्ज किसी भी पृष्ठ अथवा फ़ाइल में परिवर्तन होने पर मुझे ईमेल करें",
+       "tog-enotifwatchlistpages": "मà¥\87रà¥\80 à¤§à¥\8dयानसà¥\82à¤\9aà¥\80 à¤®à¥\87à¤\82 à¤¦à¤°à¥\8dà¤\9c à¤\95िसà¥\80 à¤­à¥\80 à¤ªà¥\83षà¥\8dठ à¤\85थवा à¤\95िसà¥\80 à¤­à¥\80 à¤«à¤¼à¤¾à¤\87ल à¤®à¥\87à¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¹à¥\8bनà¥\87 à¤ªà¤° à¤®à¥\81à¤\9dà¥\87 à¤\88मà¥\87ल à¤\95रà¥\87à¤\82",
        "tog-enotifusertalkpages": "मेरा वार्ता पृष्ठ परिवर्तित होने पर मुझे ईमेल करें",
        "tog-enotifminoredits": "पृष्ठों और फाइलों में हुए छोटे परिवर्तनों के लिए भी मुझे ईमेल भेजें",
        "tog-enotifrevealaddr": "अधिसूचना ईमेल में मेरा ईमेल पता दर्शायें",
        "tog-watchlisthideown": "मेरी ध्यानसूची से मेरे किए परिवर्तन छिपाएँ",
        "tog-watchlisthidebots": "मेरी ध्यानसूची से बॉट द्वारा किए परिवर्तन छिपाएँ",
        "tog-watchlisthideminor": "मेरी ध्यानसूची से छोटे परिवर्तन छिपाएँ",
-       "tog-watchlisthideliu": "मेरी ध्यानसूची में सत्रारम्भित सदस्यों के सम्पादन न दिखाएँ",
+       "tog-watchlisthideliu": "मà¥\87रà¥\80 à¤§à¥\8dयानसà¥\82à¤\9aà¥\80 à¤®à¥\87à¤\82 à¤¸à¤¤à¥\8dरारà¤\82मà¥\8dभित à¤¸à¤¦à¤¸à¥\8dयà¥\8bà¤\82 à¤\95à¥\87 à¤¸à¤®à¥\8dपादन à¤¨ à¤¦à¤¿à¤\96ाà¤\8fà¤\81",
        "tog-watchlistreloadautomatically": "जब भी छननी बदलने पर ध्यानसूची को अपने आप ही लोड करें (जावास्क्रिप्ट अनिवार्य)",
        "tog-watchlistunwatchlinks": "देखनेवाली सूची प्रविष्टियों के लिए सीधा अनदेखा/देखा कड़ी जोड़ें (टॉगल कार्यक्षमता के लिए जावास्क्रिप्ट आवश्यक)",
-       "tog-watchlisthideanons": "à¤\86à¤\88॰पà¥\80॰ सदस्यों द्वारा किए सम्पादनों को मेरी ध्यानसूची में न दिखायें",
+       "tog-watchlisthideanons": "à¤\85नाम सदस्यों द्वारा किए सम्पादनों को मेरी ध्यानसूची में न दिखायें",
        "tog-watchlisthidepatrolled": "परीक्षित सम्पादन मेरी ध्यानसूची में छुपाएँ",
        "tog-watchlisthidecategorization": "पृष्ठों का श्रेणीकरण छुपाएँ",
        "tog-ccmeonemails": "मेरे द्वारा अन्य सदस्यों को भेजी जाने वाली ईमेल की प्रतियाँ मुझे भी भेजें",
        "tog-diffonly": "अवतरणों में अन्तर दर्शाते समय पुराने अवतरण न दिखायें",
        "tog-showhiddencats": "छिपाई हुई श्रेणियाँ दिखायें",
        "tog-norollbackdiff": "सम्पादन वापस लेने के बाद अन्तर न दिखायें",
-       "tog-useeditwarning": "जब मैं किसी सम्पादन पृष्ठ को बिना बदलावों को सहेजे छोड़ूँ तो मुझे सूचित करें।",
-       "tog-prefershttps": "लà¥\89à¤\97िन करते समय सदैव सुरक्षित कनेक्शन का प्रयोग करें",
+       "tog-useeditwarning": "à¤\9cब à¤®à¥\88à¤\82 à¤\95िसà¥\80 à¤¸à¤®à¥\8dपादन à¤ªà¥\83षà¥\8dठ à¤\95à¥\8b à¤¬à¤¿à¤¨à¤¾ à¤¬à¤¦à¤²à¤¾à¤µà¥\8bà¤\82 à¤\95à¥\8b à¤¬à¤¿à¤¨à¤¾ à¤¸à¤¹à¥\87à¤\9cà¥\87 à¤\9bà¥\8bड़à¥\82à¤\81 à¤¤à¥\8b à¤®à¥\81à¤\9dà¥\87 à¤¸à¥\82à¤\9aित à¤\95रà¥\87à¤\82।",
+       "tog-prefershttps": "सतà¥\8dर à¤\86रमà¥\8dभ करते समय सदैव सुरक्षित कनेक्शन का प्रयोग करें",
        "underline-always": "सदैव",
        "underline-never": "कभी नहीं",
-       "underline-default": "पà¥\8dराथमिà¤\95 à¤¤à¥\8dवà¤\9aा à¤¯à¤¾ ब्राउज़र",
-       "editfont-style": "समà¥\8dपादन à¤\95à¥\8dषà¥\87तà¥\8dर à¤\95à¥\80 à¤«à¥\89नà¥\8dà¤\9f à¤¶à¥\88लà¥\80:",
+       "underline-default": "तà¥\8dवà¤\9aा à¤¯à¤¾ à¤ªà¥\8dराथमिà¤\95 ब्राउज़र",
+       "editfont-style": "à¤\95à¥\8dषà¥\87तà¥\8dर à¤\95à¥\80 à¤«à¥\89नà¥\8dà¤\9f à¤¶à¥\88लà¥\80 à¤¸à¤®à¥\8dपादित à¤\95रà¥\87à¤\82:",
        "editfont-monospace": "एकल स्थल मुद्रलिपि",
        "editfont-sansserif": "बिना नोकों वाली मुद्रलिपि",
        "editfont-serif": "नोकों वाली मुद्रलिपि",
        "feb": "फर॰",
        "mar": "मार्च",
        "apr": "अप्रै॰",
-       "may": "मई",
-       "jun": "जून",
+       "may": "मई",
+       "jun": "जून",
        "jul": "जुला॰",
        "aug": "अग॰",
        "sep": "सित॰",
-       "oct": "à¤\85à¤\95à¥\8dà¤\9fू॰",
+       "oct": "à¤\85à¤\95à¥\8dतू॰",
        "nov": "नव॰",
        "dec": "दिस॰",
        "january-date": "$1 जनवरी",
        "searchrelated": "सम्बंधित",
        "searchall": "सभी",
        "showingresults": "नीचे क्रमांक '''$2''' से प्रारंभ कर के अधिकतम '''$1''' परिणाम {{PLURAL:$1|दिखाया गया है|दिखाए गए हैं}}।",
-       "showingresultsinrange": "दिà¤\96ा à¤°à¤¹à¥\87 à¤¹à¥\88à¤\82 {{PLURAL:$1|<strong>1</strong> result|<strong>$1</strong> à¤ªà¤°à¤¿à¤£à¤¾à¤®}} à¤¤à¤\95 à¤ªà¤¹à¥\81à¤\81à¤\9a  #<strong>$2</strong> to #<strong>$3</strong> à¤®à¥\87ं।",
+       "showingresultsinrange": "à¤\95à¥\8dरम à¤¸à¤\82à¤\96à¥\8dया #<strong>$2</strong> à¤¸à¥\87 #<strong>$3</strong> à¤\95à¥\87 à¤¬à¥\80à¤\9a à¤\95à¥\87 à¤\85धिà¤\95तम {{PLURAL:$1|<strong>1</strong> à¤ªà¤°à¤¿à¤£à¤¾à¤®|<strong>$1</strong> à¤ªà¤°à¤¿à¤£à¤¾à¤®}} à¤¨à¤¿à¤®à¥\8dनवतà¥\8d à¤¹à¥\88ं।",
        "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> में से <strong>$1</strong> परिणाम|<strong>$3</strong> में से परिणाम <strong>$1 - $2</strong>}}",
        "search-nonefound": "आपकी खोज से मेल खाते कोई परिणाम नहीं मिले।",
        "search-nonefound-thiswiki": "आपके खोज से कोई भी परिणाम नहीं मिला।",
        "blockip": "{{GENDER:$1|सदस्य|सदस्या}} अवरोधित करें",
        "blockiptext": "विशिष्ठ IP पते अथवा सदस्य नाम को लिखने के अधिकार से बाध्य करने के लिए निम्न पत्र का प्रयोग करें।\nयह सिर्फ बर्बरता को रोकने के लिए ही किया जाना चाहिए, और [[{{MediaWiki:Policy-url}}|नीति]] के अनुसार ही करना चाहिए।\nनीचे विशिष्ठ कारण भी लिखें (उदाहरण के लिए, सटीक पृष्ठों को दर्शाते हुए, जिनमें बर्बरता की गई हो)।\nआप [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing सीआईडीआर] सिंटैक्स का उपयोग करके आईपी पता श्रेणियां ब्लॉक कर सकते हैं। आईपीवी4 के लिए सबसे बड़ी स्वीकार्य सीमा /$1 है और आईपीवी6 के लिए /$2 है।",
        "ipaddressorusername": "आईपी एड्रेस या सदस्यनाम:",
-       "ipbexpiry": "समाप्ति:",
        "ipbreason": "कारण:",
        "ipbreason-dropdown": "*अवरोधित करने के साधारण कारण\n** अवैध सदस्यनाम\n** एक से अधिक खातें खोलकर उनका दुरुपयोग करना\n** गलत जानकारी भरना\n** पृष्ठों में कचरा भरना\n** पृष्ठों से सामग्री हटाना‍‍‍‍‍\n** बाहरी जालस्थलों की फ़ालतू कड़ियां देना \n** सदस्यों को तंग करना",
        "ipb-hardblock": "सत्राराम्भित प्रयोक्ताओं को इस आईपी पते का सम्पादन करने से रोकें",
        "ipb-blocklist": "सद्य ब्लॉक देखें",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} के लिए योगदान",
        "ipb-blocklist-duration-left": "$1 बाकी",
+       "block-expiry": "समाप्ति:",
        "unblockip": "सदस्य को अनब्लॉक करें",
        "unblockiptext": "पहले ब्लॉक किये हुए आईपी एड्रेस या सदस्यनाम को अनब्लॉक करने के लिये नीचे दिया गया फार्म भरें।",
        "ipusubmit": "यह अवरोध हटाएँ",
index adb581e..b29e8f8 100644 (file)
        "blockip": "{{GENDER:$1|sadasya}} ke roko",
        "blockiptext": "Niche ke form ke use kar ke koi khaas IP address nai to username ke write access ke roko.\nIske khaali vandalism ke roke ke khatir kaam me laae ke chaahi [[{{MediaWiki:Policy-url}}|policy]] ke niche.\nFill in a specific reason below (for example, citing particular pages that were vandalized).\nYou can block IP address ranges using the [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] syntax; the largest allowed range is /$1 for IPv4 and /$2 for IPv6.",
        "ipaddressorusername": "IP Address nai to username:",
-       "ipbexpiry": "Expiry:",
        "ipbreason": "Kaaran:",
        "ipbreason-dropdown": "*Roke ke sadhaarankaaran\n** Galat jaankari diis\n** Panna se jaankari nikalis\n** Bahaari site se spamming jorr\n** Panna me bakwaas/and sand liko\n** Duusre ke dhamki do\n** Ek se jaada account ke khraab kaam me laao\n** Sadasya ke naam thiik nai hae",
        "ipb-hardblock": "Logged-in sadasya ke ii IP address se badle ke roko",
        "ipb-blocklist": "Abhi ke rukawat ke dekho",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} ke yogdaan",
        "ipb-blocklist-duration-left": "$1 left",
+       "block-expiry": "Expiry:",
        "unblockip": "Sadasya ke rukawat ke khalaas karo",
        "unblockiptext": "Niche ke form ke use kar ke pahile roka gais IP address nai to username ke likhe ke adhikar do.",
        "ipusubmit": "Ii rukawat ke hatao",
index 1d65754..8c14e0e 100644 (file)
        "prefs-info": "Osnovni podatci",
        "prefs-i18n": "Internacionalizacija",
        "prefs-signature": "Potpis",
-       "prefs-dateformat": "Format datuma",
-       "prefs-timeoffset": "Vremensko poravnavanje",
+       "prefs-dateformat": "Oblik datuma",
+       "prefs-timeoffset": "Vremenska razlika",
        "prefs-advancedediting": "Napredne mogućnosti",
        "prefs-developertools": "Razvijateljski alati",
        "prefs-editor": "Uređivač",
        "prefs-advancedwatchlist": "Napredne mogućnosti",
        "prefs-displayrc": "Mogućnosti prikaza",
        "prefs-displaywatchlist": "Mogućnosti prikaza",
+       "prefs-changesrc": "Prikazivanje izmjena",
        "prefs-changeswatchlist": "Prikazivanje izmjena",
+       "prefs-pageswatchlist": "Praćene stranice",
        "prefs-tokenwatchlist": "Tajni ključ",
        "prefs-diffs": "Razlike između inačica uređivanja",
        "prefs-help-prefershttps": "Ova mogućnost će stupiti na snagu kod sljedeće prijave.",
        "right-autoconfirmed": "Uređivanje stranica zaštićenih za neprijavljene suradnike",
        "right-bot": "Izmjene su tretirane kao automatski proces (bot)",
        "right-nominornewtalk": "Bez manjih izmjena na novim stranicama za razgovor",
-       "right-apihighlimits": "Korištenje viših granica kod API upita",
-       "right-writeapi": "Mogućnost pisanja API-ja",
+       "right-apihighlimits": "Korištenje viših granica za upite od izvršnika",
+       "right-writeapi": "Mogućnost zapišavanja u izvršniku",
        "right-delete": "Brisanje stranica",
        "right-bigdelete": "Brisanje stranica koje imaju veliku povijest",
        "right-deletelogentry": "Brisanje i vraćanje određenih zapisa u evidenciji",
        "action-reupload": "postavljanje nove inačice ove datoteke",
        "action-reupload-shared": "postavljanje nove inačice ove datoteke na zajedničkom poslužitelju",
        "action-upload_by_url": "postavljanje ove datoteke preko URL adrese",
-       "action-writeapi": "za korištenje pisanja API",
+       "action-writeapi": "korištenje zapišavanja u izvršniku",
        "action-delete": "brisanje ove stranice",
        "action-deleterevision": "brisanje izmjena",
        "action-deletedhistory": "gledanje obrisane povijesti ove stranice",
        "protect-cascadeon": "Ova stranica je zaštićena jer je uključena u {{PLURAL:$1|stranicu, koja ima|stranice, koje imaju|stranice, koje imaju}} uključenu prenosivu zaštitu. Možete promijeniti stupanj zaštite ove stranice, no to neće utjecati na prenosivu zaštitu.",
        "protect-default": "Omogućeno svim suradnicima",
        "protect-fallback": "Potrebno je imati \"$1\" ovlasti",
-       "protect-level-autoconfirmed": "dopušteno samo autopotvrđenima",
-       "protect-level-sysop": "samo administratori",
+       "protect-level-autoconfirmed": "Dopušteno samo autopotvrđenim suradnicima",
+       "protect-level-sysop": "Dopušteno samo administratorima",
        "protect-summary-cascade": "prenosiva zaštita",
        "protect-expiring": "istječe $1 (UTC)",
        "protect-expiring-local": "istječe $2 u $3",
        "blockip": "Blokiraj {{GENDER:$1|suradnika|suradnicu}}",
        "blockiptext": "Koristite donji obrazac za blokiranje pisanja pojedinih suradnika ili IP adresa .\nTo biste trebali raditi samo zbog sprječavanja vandalizma i u skladu\nsa [[{{MediaWiki:Policy-url}}|smjernicama]].\nUpišite i razlog za ovo blokiranje (npr. stranice koje su\nvandalizirane).",
        "ipaddressorusername": "IP adresa ili suradničko ime",
-       "ipbexpiry": "Rok (na engleskom)",
        "ipbreason": "Razlog:",
        "ipbreason-dropdown": "*Najčešći razlozi za blokiranje\n** Netočne informacije\n** Uklanjanje sadržaja stranica\n** Postavljanje ''spam'' vanjskih poveznica\n** Grafiti\n** Osobni napadi (ili napadačko ponašanje)\n** Čarapare (zloporaba više suradničkih računa)\n** Neprihvatljivo suradničko ime",
        "ipb-hardblock": "Onemogući prijavljene suradnike uređivati s ove IP adrese",
        "ipb-blocklist": "Vidi postojeća blokiranja",
        "ipb-blocklist-contribs": "Doprinosi za {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "preostalo: $1",
+       "block-expiry": "Rok (na engleskom)",
        "unblockip": "Deblokiraj suradnika",
        "unblockiptext": "Ovaj se obrazac koristi za vraćanje prava na pisanje prethodno blokiranoj IP adresi.",
        "ipusubmit": "Ukloni ovaj blok",
index 202e622..5c4d2b8 100644 (file)
        "blockip": "IP-Adress/Benutzer sperre",
        "blockiptext": "Mit dem Formular sperrst du en IP-Adress orrer en Benutzernoome, so dass von dort ken Ännrunge meh voargenomm sin könne.\nDas sollt nuar erfolche, um Vandalismus zu verhinnre und in Üwereinstimmung mit den [[{{MediaWiki:Policy-url}}|Richtlinie]].\nBittschön tue den Grund für die Sperr gebe.",
        "ipaddressorusername": "IP-Adress orrer Benutzernoome:",
-       "ipbexpiry": "Sperrdauer:",
        "ipbreason": "Grund:",
        "ipbreason-dropdown": "* Allgemein Sperrgründe\n** Infüchung von falscher Informatione\n** Leere von Seite\n** Massweises infüchung von externer Links\n** Instellung von unsinnicher Inhalte in Seite\n** Ungebührliches Verhalte\n** Missbrauch mit mehrre Benutzerkonte\n** Ungeeichneter Benutzernoome",
        "ipb-hardblock": "Angemeldte Benutzer droon hinnre, Beoorbeitunge unner der IP-Adress voarzunehme",
        "ipb-unblock": "IP-Adress/Benutzer freigebe (frei mache)",
        "ipb-blocklist": "Alle aktuelle Sperre oonzeiche",
        "ipb-blocklist-contribs": "Benutzerbeiträche von \"$1\"",
+       "block-expiry": "Sperrdauer:",
        "unblockip": "Benutzer frei mache",
        "unblockiptext": "Mit dem Formular kannst du en IP-Adress orrer en Benutzer freigebe (frei mache).",
        "ipusubmit": "Freigewe (frei mache)",
index 1a5cc7d..80e594c 100644 (file)
        "blockip": "{{GENDER:$1|Wužiwarja|Wužiwarku}} blokować",
        "blockiptext": "Wužij slědowacy formular deleka, zo by pisanski přistup za podatu IP-adresu abo wužiwarske mjeno blokował. To měło so jenož stać, zo by wandalizmej zadźěwało a woptpowědujo [[{{MediaWiki:Policy-url}}|zasadam]]. Zapodaj deleka přičinu (na př. citujo wosebite strony, kotrež běchu z woporom wandalizma).",
        "ipaddressorusername": "IP-adresa abo wužiwarske mjeno",
-       "ipbexpiry": "Spadnjenje",
        "ipbreason": "Přičina:",
        "ipbreason-dropdown": "*powšitkowne přičiny\n** wandalizm\n** wutworjenje njezmyslnych stronow\n** linkspam\n** wosobinske nadběhi\n*specifiske přičiny\n** njepřihódne wužiwarske mjeno\n** znowapřizjewjenje na přeco zablokowaneho wužiwarja\n** proksy, wandalizma jednotliwych wužiwarjow dla dołhodobnje zablokowany",
        "ipb-hardblock": "Přizjewjenym wužiwarjam zadźěwać, pod tutej IP-adresu změny přewjesć",
        "ipb-unblock": "zablokowanje wužiwarja abo IP-adresy zběhnyć",
        "ipb-blocklist": "tuchwilne blokowanja zwobraznić",
        "ipb-blocklist-contribs": "Přinoški za {{GENDER:$1|$1}}",
+       "block-expiry": "Spadnjenje",
        "unblockip": "Zablokowanje zběhnyć",
        "unblockiptext": "Wužij formular deleka, zo by blokowanje IP-adresy abo wužiwarskeho mjena zběhnył.",
        "ipusubmit": "Tute blokěrowanje skónčić",
index 074b395..0833a00 100644 (file)
        "viewsourcetext": "Megtekintheted és másolhatod a lap forrását.",
        "viewyourtext": "Megtekintheted és kimásolhatod a <strong>saját szerkesztéseidet</strong> az alábbi lapra.",
        "protectedinterface": "Ez a lap a szoftver felületéhez szolgáltat szöveget, és a visszaélések elkerülése miatt le van zárva.",
-       "editinginterface": "<strong>Vigyázat:</strong> egy olyan lapot szerkesztesz, ami a MediaWiki szoftver felületéhez tartozik. A lap megváltoztatása hatással lesz a kinézetre, ahogy más szerkesztők látják a lapot.",
-       "translateinterface": "Minden wikire kiterjedő fordítások hozzáadásához vagy szerkesztésére használd a [https://translatewiki.net/ translatewiki.net]-et, a MédiaWiki lokalizációs projektjét.",
+       "editinginterface": "<strong>Vigyázat:</strong> egy olyan lapot szerkesztesz, ami a MediaWiki szoftver felületéhez tartozik. A lap megváltoztatása hatással lesz a kinézetre, ahogy más felhasználók látják a lapot.",
+       "translateinterface": "Minden wikire kiterjedő fordítások hozzáadásához vagy szerkesztéséhez használd a [https://translatewiki.net/ translatewiki.net]-et, a MediaWiki lokalizációs projektjét.",
        "cascadeprotected": "Ez a lap szerkesztés elleni védelemmel lett ellátva, mert be van illesztve a következő {{PLURAL:$1|lapon|lapokon}}, ahol be van kapcsolva a „kaszkádolt” védelem:\n$2",
        "namespaceprotected": "Nincs jogosultságod a(z) '''$1''' névtérben található lapok szerkesztésére.",
        "customcssprotected": "Nem szerkesztheted ezt a CSS-lapot, mert egy másik felhasználó személyes beállításait tartalmazza.",
        "resetpass-abort-generic": "A jelszómódosítást megszakította egy kiterjesztés.",
        "resetpass-expired": "A jelszavad lejárt. Adjál meg egy új jelszót a bejelentkezéshez!",
        "resetpass-expired-soft": "A jelszavad lejárt, ezért újat kell beállítanod. Válassz most egy új jelszót, vagy kattints a {{int:authprovider-resetpass-skip-label}} gombra, ha csak később akarod megváltoztatni.",
+       "resetpass-validity": "A jelszavad érvénytelen: $1\n\nAdj meg egy új jelszót a bejelentkezéshez.",
        "resetpass-validity-soft": "A jelszavad érvénytelen: $1\n\nAdj meg egy új jelszót most, vagy kattints a „{{int:authprovider-resetpass-skip-label}}” gombra, ha csak később akarod megváltoztatni.",
        "passwordreset": "Jelszó visszaállítása",
        "passwordreset-text-one": "A jelszó átmeneti beállításához töltsd ki az űrlapot.",
        "anoneditwarning": "<strong>Figyelem:</strong> Nem vagy bejelentkezve. Ha szerkesztesz, az IP-címed nyilvánosan látható lesz a laptörténetben. Ha <strong>[$1 bejelentkezel]</strong> vagy <strong>[$2 regisztrálsz]</strong>, a szerkesztéseid a felhasználónevedhez lesznek társítva, egyéb hasznos dolgok mellett.",
        "anonpreviewwarning": "''Nem vagy bejelentkezve. A mentéskor az IP-címed rögzítve lesz a laptörténetben.''",
        "missingsummary": "'''Emlékeztető:''' Nem adtál meg szerkesztési összefoglalót. Ha összefoglaló nélkül akarod elküldeni a szöveget, kattints újra a mentésre.",
-       "selfredirect": "<strong>Figyelem:</strong> Az lapot önmagára készült átirányítani. Lehet, hogy rossz célt adtál meg, vagy rossz oldalt szerkesztesz. Ha ismét a $1 gombra kattintasz, akkor az átirányítás mégis létrejön.",
+       "selfredirect": "<strong>Figyelem:</strong> A lapot önmagára készülöd átirányítani. Lehet, hogy rossz célt adtál meg, vagy rossz oldalt szerkesztesz. Ha ismét a „$1” gombra kattintasz, az átirányítás mégis létrejön.",
        "missingcommenttext": "Kérjük, írj összefoglalót a szerkesztésedhez.",
        "missingcommentheader": "<strong>Emlékeztető:</strong> Nem adtad meg a megjegyzés tárgyát.\nHa ismét a „$1” gombra kattintasz, akkor a szerkesztésed nélküle lesz elmentve.",
        "summary-preview": "A szerkesztési összefoglaló előnézete:",
        "blockedtext": "<strong>A szerkesztőnevedet vagy az IP-címedet blokkoltuk.</strong>\n\nA blokkolást $1 végezte el.\nAz általa felhozott indok: <em>$2.</em>\n\n* A blokk kezdete: $8\n* A blokk lejárata: $6\n* Blokkolt szerkesztő: $7\n\nKapcsolatba léphetsz $1 szerkesztőnkkel vagy egy másik [[{{MediaWiki:Grouppage-sysop}}|adminisztrátorral]], és megbeszélheted vele a blokkolást.\nAz „{{int:emailuser}}” funkciót csak akkor használhatod, ha érvényes e-mail-címet adtál meg [[Special:Preferences|fiókbeállításaidban]], és nem blokkolták a használatát.\nJelenlegi IP-címed: $3, a blokkolás azonosítószáma: #$5.\nKérjük, hogy érdeklődés esetén minden fenti részletet adj meg.",
        "autoblockedtext": "Az IP-címed automatikusan blokkolva lett, mert korábban egy olyan szerkesztő használta, akit $1 blokkolt, az alábbi indoklással:\n\n:''$2''\n\n*A blokk kezdete: '''$8'''\n*A blokk lejárata: '''$6'''\n*Blokkolt szerkesztő: '''$7'''\n\nKapcsolatba léphetsz $1 szerkesztőnkkel, vagy egy másik [[{{MediaWiki:Grouppage-sysop}}|adminisztrátorral]], és megbeszélheted vele a blokkolást.\n\nAz „{{int:emailuser}}” funkciót csak akkor használhatod, ha érvényes e-mail címet adtál meg\n[[Special:Preferences|fiókbeállításaidban]], és nem blokkolták a használatát.\n\nJelenlegi IP-címed: $3, a blokkolás azonosítószáma: #$5.\nKérjük, hogy érdeklődés esetén mindkettőt add meg.",
        "systemblockedtext": "A felhasználónevedet vagy IP-címedet automatikusan blokkolta a MediaWiki.\nA blokkolás indoka:\n\n:<em>$2</em>\n\n* A blokk kezdete: $8\n* A blokk lejárata: $6\n* Blokkolt szerkesztő: $7\n\nA jelenlegi IP-címed: $3.\nKérjük, hogy érdeklődés esetén minden fenti részletet adj meg.",
+       "actionblockedtext": "A művelet végrehajtása számodra blokkolva van.",
        "blockednoreason": "nem adott meg okot",
        "whitelistedittext": "Lapok szerkesztéséhez $1.",
        "confirmedittext": "Lapok szerkesztése előtt meg kell erősítened az e-mail címedet. Kérjük, hogy a [[Special:Preferences|szerkesztői beállításaidban]] add meg, majd erősítsd meg az e-mail címedet.",
        "rcfilters-watchlist-showupdated": "Az újabb változtatások, amiket még nem néztél meg, <strong>vastagítva</strong> láthatók, kitöltött jelzőkkel.",
        "rcfilters-preference-label": "JavaScript-nélküli felület használata",
        "rcfilters-preference-help": "Friss változtatások betöltése szűrők közti keresés és kiemelések lehetősége nélkül.",
-       "rcfilters-watchlist-preference-label": "JavaScript-nélküli felület használata",
+       "rcfilters-watchlist-preference-label": "JavaScript nélküli felület használata",
        "rcfilters-watchlist-preference-help": "Figyelőlista betöltése szűrők közti keresés és kiemelések lehetősége nélkül.",
        "rcfilters-filter-showlinkedfrom-label": "A következő lapra hivatkozó lapok változtatásainak megjelenítése",
        "rcfilters-filter-showlinkedfrom-option-label": "A kiválasztott <strong>lapról</strong> hivatkozott lapok",
        "blockip": "{{GENDER:$1|Felhasználó}} blokkolása",
        "blockiptext": "Az alábbi űrlap segítségével megvonhatod egy szerkesztő vagy IP-cím szerkesztési jogait.\nEzt az eszközt csak vandalizmus megelőzésére, a vonatkozó [[{{MediaWiki:Policy-url}}|irányelvvel]] összhangban használd.\nAdd meg a blokkolás okát is (például idézd a blokkolandó személy által vandalizált lapokat).\nIP-tartományokat is blokkolhatsz a [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] szintaxissal; a legnagyobb engedélyezett tartomány /$1 IPv4 és /$2 IPv6 esetén.",
        "ipaddressorusername": "IP-cím vagy felhasználói név",
-       "ipbexpiry": "Lejárat:",
        "ipbreason": "Ok:",
        "ipbreason-dropdown": "*Gyakori blokkolási okok\n** Téves információ beírása\n** Lapok tartalmának eltávolítása\n** Spammelgetés, reklámlinkek tömködése a lapokba\n** Értelmetlen megjegyzések, halandzsa beillesztése a cikkekbe\n** Megfélemlítő viselkedés, zaklatás\n** Több szerkesztői fiókkal való visszaélés\n** Elfogadhatatlan azonosító",
        "ipb-hardblock": "Megakadályozza, hogy a bejelentkezett felhasználók erről az IP-címről szerkesszenek",
-       "ipbcreateaccount": "Új regisztráció megakadályozása",
-       "ipbemailban": "E-mailt se tudjon küldeni",
+       "ipbcreateaccount": "Felhasználói fiók létrehozása",
+       "ipbemailban": "E-mail küldése",
        "ipbenableautoblock": "A szerkesztő által használt IP-címek automatikus blokkolása",
        "ipbsubmit": "Blokkolás",
        "ipbother": "Más időtartam:",
        "ipboptions": "2 óra:2 hours,1 nap:1 day,3 nap:3 days,1 hét:1 week,2 hét:2 weeks,1 hónap:1 month,3 hónap:3 months,6 hónap:6 months,1 év:1 year,végtelen:infinite",
        "ipbhidename": "A felhasználónév ne jelenjen meg a szerkesztéseknél és a listákban",
        "ipbwatchuser": "A felhasználó lapjának és vitalapjának figyelése",
-       "ipb-disableusertalk": "Megakadályozza, hogy a felhasználó szerkeszthesse a saját vitalapját, miközben blokkolva van",
+       "ipb-disableusertalk": "Vitalapjuk szerkesztése",
        "ipb-change-block": "Blokk beállításainak megváltoztatása",
        "ipb-confirm": "Blokk megerősítése",
        "ipb-sitewide": "Teljes körű",
        "ipb-partial": "Részleges",
-       "ipb-type-label": "Típus",
        "ipb-pages-label": "Lapok",
        "badipaddress": "Érvénytelen IP-cím",
        "blockipsuccesssub": "Sikeres blokkolás",
        "ipb-blocklist": "Létező blokkok megtekintése",
        "ipb-blocklist-contribs": "$1 közreműködései",
        "ipb-blocklist-duration-left": "$1 van hátra",
+       "block-actions": "Blokkolandó műveletek:",
+       "block-expiry": "Lejárat:",
+       "block-options": "További lehetőségek:",
+       "block-prevent-edit": "Szerkesztés",
+       "block-reason": "Indoklás:",
+       "block-target": "Felhasználónév vagy IP-cím:",
        "unblockip": "Blokk feloldása",
        "unblockiptext": "Itt tudod visszaadni egy blokkolt felhasználónévnek vagy IP-nek a szerkesztési jogosultságot.",
        "ipusubmit": "Blokk eltávolítása",
        "seconds": "{{PLURAL:$1|egy|$1}} másodperccel",
        "minutes": "{{PLURAL:$1|egy|$1}} perccel",
        "hours": "{{PLURAL:$1|egy|$1}} órával",
-       "days": "$1 nappal",
+       "days": "$1 nap",
        "weeks": "{{PLURAL:$1|$1 hét|$1 hét}}",
        "months": "{{PLURAL:$1|$1 hónap|$1 hónap}}",
        "years": "{{PLURAL:$1|$1 év|$1 év}}",
        "specialpages-group-developer": "Fejlesztői eszközök",
        "blankpage": "Üres lap",
        "intentionallyblankpage": "Ez a lap szándékosan maradt üresen",
+       "disabledspecialpage-disabled": "Ezt az oldalt egy rendszer-adminisztrátor letiltotta.",
        "external_image_whitelist": " #Ezt a sort hagyd pontosan így, ahogy van<pre>\n#Ide reguláris kifejezéseket írhatsz (azon részüket, amik a // közé mennek)\n#Ezek egyeztetve lesznek a külső képek URL-jeivel\n#Egyezés esetén képként fognak megjelenni, egyébként csak link fog rájuk mutatni\n#A #-tel kezdődő sorok megjegyzésnek számítanak\n#A kis- és nagybetűk nincsenek megkülönböztetve\n\n#A reguláris kifejezéseket ezen sor alá írd. Ezt a sort hagyd így, ahogy van.</pre>",
        "tags": "Lapváltozat-címkék",
        "tag-filter": "[[Special:Tags|Címkeszűrő]]:",
index 8907e0a..0908cd2 100644 (file)
        "rcfilters-filter-previousrevision-label": "Ոչ վերջին տարբերակ",
        "rcfilters-view-tags": "Պիտակված խմբագրումներ",
        "rcfilters-liveupdates-button": "Կենդանի թարմացումներ",
+       "rcfilters-watchlist-edit-watchlist-button": "Խմբագրել հսկացանկը",
        "rcnotefrom": "Ստորև բերված են փոփոխությունները սկսած՝ '''$2''' (մինչև՝ '''$1''')։",
        "rclistfrom": "Ցույց տալ նոր փոփոխությունները՝ սկսած $3 $2",
        "rcshowhideminor": "$1 չնչին խմբագրումները",
        "blockip": "Մասնակցի արգելափակում",
        "blockiptext": "Օգտագործեք ստորև բերված ձևը որոշակի IP-հասցեից կամ մասնակցի անունից գրելու հնարավորությունը արգելափակելու համար։\nՆման բան հարկավոր է անել միայն վանդալության կանխարգելման նպատակով և համաձայն [[{{MediaWiki:Policy-url}}|կանոնակարգի]]։\nՆշեք արգելափակման որոշակի պատճառը ստորև (օրինակ՝ նշեք այն էջը, որում վանդալություն է տեղի ունեցել)։",
        "ipaddressorusername": "IP-հասցե կամ մասնակցի անուն.",
-       "ipbexpiry": "Մարման ժամկետ.",
        "ipbreason": "Պատճառ.",
        "ipbreason-dropdown": "*Արգելափակման սովորական պատճառներ\n** Կեղծ տեղեկությունների ներմուծում\n** Էջերից նյութերի հեռացում\n** Արտաքին կայքերին հղումների սպամ\n** Անիմաստ/անկապ տեքստի ներմուծում էջերում\n** Վարկաբեկող/ահաբեկող պահվածք\n** Բազմաթիվ մասնակցային հաշիվների չարաշահում\n** Անպատշաճ մասնակցի անուն",
        "ipb-hardblock": "Արգելել գրանցված մասնակիցներին խմբագրել այս IP-հասցեից",
        "ipb-unblock": "Արգելափակումից հանել որևէ մասնակից կամ IP-հասցե",
        "ipb-blocklist": "Դիտել գործող արգելափակումները",
        "ipb-blocklist-contribs": "$1 մասնակցի ներդրումը",
+       "block-expiry": "Մարման ժամկետ.",
        "unblockip": "Արգելափակումից հանել մասնակցին",
        "unblockiptext": "Օգտագործեք ստորև ձևը՝ նախկինում արգելափակված IP-հասցեի կամ մասնակցի գրելու հնարավորությունը վերականգնելու համար։",
        "ipusubmit": "Հանել արգելափակումը",
index 53a53b6..01138e3 100644 (file)
        "blockip": "Blocar {{GENDER:$1|usator}}",
        "blockiptext": "Usa le formulario infra pro blocar le accesso de scriptura\na partir de un adresse IP specific.\nIsto debe esser facite solmente pro impedir vandalismo, e de\naccordo con le [[{{MediaWiki:Policy-url}}|politica de {{SITENAME}}]].\nScribe un motivo specific infra (per exemplo, citante paginas\nspecific que ha essite vandalisate).\nTu pote blocar intervallos de adresses IP con le syntaxe [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; le intervallo le plus grande permittite es /$1 pro IPv4 e /$2 pro IPv6.",
        "ipaddressorusername": "Adresse IP o nomine de usator:",
-       "ipbexpiry": "Expiration:",
        "ipbreason": "Motivo:",
        "ipbreason-dropdown": "*Motivos frequente pro blocar\n** Insertion de informationes false\n** Elimination de contento de paginas\n** Ligamines ''spam'' verso sitos externe\n** Insertion de nonsenso/absurditates in paginas\n** Comportamento intimidatori/molestation\n** Abuso de contos multiple\n** Nomine de usator inacceptabile",
        "ipb-hardblock": "Impedir que usatores authenticate face modificationes ab iste adresse IP",
        "ipb-confirm": "Confirmar blocada",
        "ipb-sitewide": "Sur tote le sito",
        "ipb-partial": "Partial",
-       "ipb-type-label": "Typo",
        "ipb-pages-label": "Paginas",
        "badipaddress": "Adresse IP mal formate.",
        "blockipsuccesssub": "Blocada succedite",
        "ipb-blocklist": "Vider blocadas existente",
        "ipb-blocklist-contribs": "Contributiones de {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 restante",
+       "block-expiry": "Expiration:",
        "unblockip": "Disblocar usator",
        "unblockiptext": "Usa le formulario infra pro restaurar le accesso de scriptura a un adresse IP o nomine de usator blocate previemente.",
        "ipusubmit": "Cancellar iste blocada",
        "delete_and_move_text": "Le pagina de destination \"[[:$1]]\" jam existe.\nVole tu deler lo pro permitter iste renomination?",
        "delete_and_move_confirm": "Si, deler le pagina",
        "delete_and_move_reason": "Delite pro permitter le renomination de \"[[$1]]\"",
-       "selfmove": " Le titulo es identic;\nnon pote renominar un pagina al mesme titulo.",
+       "selfmove": "Le titulo es identic;\nnon pote renominar un pagina al mesme titulo.",
        "immobile-source-namespace": "Non pote renominar paginas in le spatio de nomines \"$1\"",
        "immobile-target-namespace": "Non pote renominar paginas verso le spatio de nomines \"$1\"",
        "immobile-target-namespace-iw": "Un ligamine interwiki non es un destination valide pro le renomination de un pagina.",
index 2a43c78..7d27c04 100644 (file)
        "newsectionsummary": "/* $1 */ bagian baru",
        "rc-enhanced-expand": "Tampilkan rincian",
        "rc-enhanced-hide": "Sembunyikan rincian",
-       "rc-old-title": "awalnya dibuat sebagai \"$1\"",
+       "rc-old-title": "awalnya dibuat dengan judul \"$1\"",
        "recentchangeslinked": "Perubahan terkait",
        "recentchangeslinked-feed": "Perubahan terkait",
        "recentchangeslinked-toolbox": "Perubahan terkait",
        "blockip": "Blokir {{GENDER:$1|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).\nAnda dapat memblok rentang IP menggunakan [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] syntax; the largest allowed range is /$1 for IPv4 and /$2 for IPv6.",
        "ipaddressorusername": "Alamat IP atau nama pengguna:",
-       "ipbexpiry": "Kedaluwarsa:",
        "ipbreason": "Alasan:",
        "ipbreason-dropdown": "*Alasan umum\n** Vandalisme\n** Memberikan informasi palsu\n** Menghilangkan isi halaman\n** Spam pranala ke situs luar\n** Memasukkan omong kosong ke halaman\n** Perilaku intimidasi/pelecehan\n** Menyalahgunakan beberapa akun\n** Nama pengguna tak layak",
        "ipb-hardblock": "Cegah pengguna terdaftar untuk menyunting dari alamat IP ini",
        "ipb-confirm": "Konfirmasi blokir",
        "ipb-sitewide": "Keseluruhan situs",
        "ipb-partial": "Parsial",
-       "ipb-type-label": "Jenis",
        "ipb-pages-label": "Halaman",
        "badipaddress": "Format alamat IP atau nama pengguna salah.",
        "blockipsuccesssub": "Pemblokiran sukses",
        "ipb-blocklist": "Lihat blokir yang diterapkan",
        "ipb-blocklist-contribs": "Kontribusi untuk {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "Tersisa $1",
+       "block-expiry": "Kedaluwarsa:",
        "unblockip": "Buka blokir pengguna",
        "unblockiptext": "Gunakan formulir di bawah untuk mengembalikan kemampuan menulis sebuah alamat IP atau pengguna yang sebelumnya telah diblokir.",
        "ipusubmit": "Hilangkan blokir ini",
index 71a61e2..36d2fd4 100644 (file)
        "block": "Gbàchí ọ'bànifé",
        "blockip": "Gbàchí ọ'bànifé",
        "ipaddressorusername": "IP mà ọ bu áhà ọ'bànifé:",
-       "ipbexpiry": "Gbá okà:",
        "ipbreason": "Mgbághapụtà:",
        "ipbsubmit": "Kwàchí ọ'bànifé nkèá",
        "ipbother": "Ógẹ ozor",
        "ipb-confirm": "Kwé mgbáchí",
        "ipb-unblock-addr": "Ákwàchịrị $1",
        "ipb-unblock": "Ákwàchịrị áhà ọ'bànifé ma IP",
+       "block-expiry": "Gbá okà:",
        "unblockip": "Ákwàchịrị ọ'bànifé",
        "unblocked": "há kwàchịrị [[User:$1|$1]]",
        "autoblocklist-submit": "Tùwe",
index 7a7a4fc..9f441c7 100644 (file)
        "blockip": "Serraan ti {{GENDER:$1|agar-aramat}}",
        "blockiptext": "Usaren ti porma dita baba tapno maserraan ti panagserrek ti panagsurat manipud iti naisangayan nga adres ti IP wenno nagan ti agar-aramat.\nDaytoy ket nasken laeng a maaramid tapno mapawilan ti bandalismo, ken segun iti [[{{MediaWiki:Policy-url}}|annuroten]].\nIkabil ti naisangayan a rason dita baba (kas pagarigan, ti panagdakamat kadagiti naisangayan a panid a nabandalismo).\nMabalinmo a serraan dagiti sakup ti adres ti IP babaen ti panagusar ti sintaksis ti [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; ti kadakkelan a maipalubos a sakup ket /$1 para iti IPv4 ken /$2 para iti IPv6.",
        "ipaddressorusername": "Adres ti IP wenno nagan ti agar-aramat:",
-       "ipbexpiry": "Agpaso:",
        "ipbreason": "Rason:",
        "ipbreason-dropdown": "*Dagiti kadawyan a rason ti panagserra\n** Agikabil kadagiti  madi a pakaammo\n** Agikkat kadagiti linaon ti pampanid\n** Agikabil ti spam a silpo iti ruar\n** Agikabil ti minamaag/saan a maawatan a pampanid\n** Mangbutbuteng a panagkukua /mangriribok\n** Agab-abuso kadagiti nadumaduma a pakabilangan\n** Saan a maawat a nagan ti agar-aramat",
        "ipb-hardblock": "Iparit dagiti nakastrek nga agar-aramat manipud iti panagurnos manipud iti daytoy nga adres ti IP",
        "ipb-blocklist": "Kitaen dagiti adda a serra",
        "ipb-blocklist-contribs": "Dagiti kontribusion para kenni {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 ti nabati",
+       "block-expiry": "Agpaso:",
        "unblockip": "Lukatan ti serra ti agar-aramat",
        "unblockiptext": "Usaren ti porma dita baba tapno maisubli ti panagserrek ti panagsurat ti dati a naserran nga adres ti IP wenno nagan ti agar-aramat.",
        "ipusubmit": "Ikkaten daytoy a serra",
index cbfe62a..c963d30 100644 (file)
@@ -34,7 +34,7 @@
        "tog-previewontop": "Хьалххе бӀаргтохар хьагойта хувцама кора хьалхашкахь",
        "tog-previewonfirst": "Хувцам бе аьнна дехьаваьлча хьалххе бӀаргтохар хьахьокха",
        "tog-enotifwatchlistpages": "Электронни поште гIолла хоамбе сога аз зем беш йола оагIонаши файлаши цхьанне хийцача",
-       "tog-enotifusertalkpages": "ЭлекÑ\82Ñ\80онни Ð¿Ð¾Ñ\87Ñ\82е Ð³Iолла Ñ\85оам Ð±Ðµ Ñ\81ога Ñ\81а Ð´Ñ\83вÑ\86а Ð¾Ñ\82Ñ\82адаÑ\80а оагIув хийцача",
+       "tog-enotifusertalkpages": "ЭлекÑ\82Ñ\80онни Ð¿Ð¾Ñ\88Ñ\82е Ð³Iолла Ñ\85оам Ð±Ðµ Ñ\81ога Ñ\81а ÐºÑ\8aамаÑ\8cла оагIув хийцача",
        "tog-enotifminoredits": "ОагIонаштеи файлаштеи даь хинна хувцамаш геттара зIамига дале а хоам бе сога",
        "tog-enotifrevealaddr": "ДӀабӀаргадайта са поштан цӀай нахá дӀатӀаухача цхьа хӀама хайташ долча хоамаш чу",
        "tog-shownumberswatching": "Ер оагIув шоаш зембеча оагIонашта юкъеяьккха болча доакьошхой таьрахь хьагойта",
        "moredotdotdot": "ДIахо...",
        "morenotlisted": "Ер хьаязяьр хьалйизанза хила мегаш я.",
        "mypage": "ОагIув",
-       "mytalk": "Ð\94Ñ\83вÑ\86а Ð¾Ñ\82Ñ\82адаÑ\80",
-       "anontalk": "Ð\94Ñ\83вÑ\86а Ð¾Ñ\82Ñ\82адаÑ\80",
+       "mytalk": "Ð\9aÑ\8aамаÑ\8cл",
+       "anontalk": "Ð\9aÑ\8aамаÑ\8cл",
        "navigation": "Навигаци",
        "and": "&#32;а",
        "faq": "Каст-кастта телаш дола хаттараш",
        "protect_change": "хувца",
        "unprotect": "ГIо хувца",
        "newpage": "Керда оагӀув",
-       "talkpagelinktext": "дÑ\83вÑ\86а Ð¾Ñ\82Ñ\82адаÑ\80",
+       "talkpagelinktext": "кÑ\8aамаÑ\8cл",
        "specialpage": "ГIулакха оагӀув",
        "personaltools": "Доакъашхочун кечалаш",
-       "talk": "ЮвÑ\86аÑ\80",
+       "talk": "Ð\9aÑ\8aамаÑ\8cл",
        "views": "Хьажараш",
        "toolbox": "Кечалаш",
        "imagepage": "Файла оагIон бIаргтоха",
        "editlink": "хувца",
        "viewsourcelink": "Хьажа дIадолалу ко́дага",
        "editsectionhint": "Дáкъа хувца: $1",
-       "toc": "ЧÑ\83даÑ\80",
+       "toc": "ЧÑ\83лоаÑ\86ам",
        "showtoc": "хьахьокха",
        "hidetoc": "хьулде",
        "collapsible-collapse": "дIахьулде",
        "summary-preview": "Хувцама сурт оттадарах хьалхе бӀаргтохар:",
        "subject-preview": "Темах/кепакертах хьалххе бӀаргтохар:",
        "blockedtitle": "Доакъашхочун чIега техаб",
-       "blockedtext": "<strong>Хьа дагара йоазон е IP-адреса блоктехай.</strong>\n\nБлоктохар даьд $1 яхача администраторо.\nБелгалдаьд ер бахьан: «<em>$2</em>».\n\n* Блоктохара дух: $8\n* Блоктохара чаккхе: $6\n* Блоктохара дагалоаттам: $7\n\nХьа аьттув ба $1-ца е моллагIа кхыволча [[{{MediaWiki:Grouppage-sysop}}|администраторца]] бувзаме вала блоктохар тахкар духьа.\nТеркал делахь, хьа йиш хургьяц «письмо участнику» яхача функцех пайда эца, нагахьа санна хьай [[Special:Preferences|персональни настройкаш]] чу нийса дола электронни поштан адрес белгалдаькха деце, е нагахьа санна хьона теха блока чу цу тайпара каьхат дахьийтар могадаь деце.\nХьа IP-адрес — $3, блоктохара идентификатор — $5.\nБоккъала, белгалдаха уж хоамаш (дараш) Iайха моллагIа каьхат дохьийтача хана.",
+       "blockedtext": "<strong>Хьа дагара йоазон е IP-цIайна блок техай.</strong>\n\nБлок техай администраторо $1.\nБелгалдаьд ер бахьан: «<em>$2</em>».\n\n* Блок тохара доладалар: $8\n* Блок тохара чаккхе: $6\n* Блок тохара декхар: $7\n\nХьа аьттув ба $1-ца е моллагIа кхыволча [[{{MediaWiki:Grouppage-sysop}}|администраторца]] бувзаме вала блок тохар тахкар духьа.\nТеркалделахь, хьа йиш хургьяц «{{int:emailuser}}» яхача функцех пайда эца, нагахьа санна хьай [[Special:Preferences|персональни оттамаш]] чу нийса дола электронни поштан цIай белгалдаькхадеце, е нагахьа санна хьона теха блока чу цу тайпара каьхат дахьийтар могадаьдеце.\nХьа IP-цIай — $3, блок тохара идентификатор — $5.\nБоккъала, белгалдаха уж хоамаш (дараш) Iайха каьхат дохьийтача хана.",
        "blockednoreason": "бахьан белгалдаьккха дац",
        "whitelistedittext": "Шо $1 деза оагIонашта хувцам бергболаш.",
        "loginreqlink": "чудовла",
        "accmailtitle": "КъайладIоагӀа дӀадахьийтад",
        "newarticle": "(Kерда)",
        "newarticletext": "Шо тIатовжама гIолла дехьадаьннад йолаш йоацача оагӀон тӀа.\nИз хьакхолларгьйолаш кӀалхагӀа доалача корачу текст Iочуязъе (нагахьа санна кхетаде хала дале [$1 новкъосталара оагӀонга] хьажа).\nЦаховш укхаза нийсденнадале, шоай браузера чу '''Юха''' (Назад) яха тоIаера тӀа пӀелг тоӀабе.",
-       "anontalkpagetext": "----\n<em>Ð\95Ñ\80 Ð´Ð° Ð²Ð¾Ð²Ð·Ð°Ñ\88 Ð²Ð¾Ð°Ñ\86аÑ\87а (Ñ\88ий Ð´Ð°Ð³Ð°Ñ\80а Ð¹Ð¾Ð°Ð·Ñ\83в ÐºÑ\85Ñ\8b Ð° Ñ\85Ñ\8cакÑ\85олланза) Ð´Ð¾Ð°ÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð¾Ð°Ð³IÑ\83в Ñ\8eвÑ\86аÑ\80.</em>\nЦÑ\83 Ð±Ð°Ñ\85Ñ\8cане Ñ\82Ñ\85о Ð´ÐµÐºÑ\85аÑ\80ийла Ð´Ð° Ñ\86Ñ\83 Ñ\81агá Ð¸Ð´ÐµÐ½Ñ\82иÑ\84икаÑ\86и ÐµÑ\80 Ð´Ñ\83Ñ\85Ñ\8cа Ñ\86Ñ\83н IP-Ñ\86Ó\80ай Ñ\85Ñ\8cаÑ\85Ñ\8cокÑ\85а.\nÐ\98з Ñ\86Ó\80ай Ð»ÐµÐ»Ð°Ð´ÐµÑ\88 Ñ\85ила Ð¼ÐµÐ³ Ð¼Ð°Ñ\81еÑ\85к ÐºÑ\85Ñ\8bболÑ\87а Ð´Ð¾Ð°ÐºÑ\8aаÑ\88Ñ\85оÑ\88а Ð°.\nÐ¥Ñ\8cо Ð²Ð¾Ð²Ð·Ð°Ñ\88 Ð²Ð¾Ð°Ñ\86а Ð´Ð¾Ð°ÐºÑ\8aаÑ\88Ñ\85о Ð²Ð°Ð»Ðµ, ÐµÑ\80 Ñ\85оам Ñ\85Ñ\8cона Ð±Ð¾Ð°Ð³IаÑ\88 Ð±Ð°Ñ\86 Ð°Ñ\8cнна Ñ\85еÑ\82аÑ\88 Ð° Ð²Ð°Ð»Ðµ, Ð´ÐµÑ\85аÑ\80 Ð´Ð° [[Special:CreateAccount|Ñ\85Ñ\8cакÑ\85олла Ð´Ð°Ð³Ð°Ñ\80а Ð¹Ð¾Ð°Ð·Ñ\83в]] Ðµ [[Special:UserLogin|Ñ\85Ñ\8cавовзийÑ\82а Ñ\80ажá]], тIехьагIа хье тувлавайтаргвоацаш бовзаш боацача доакъашхошца.",
+       "anontalkpagetext": "----\n<em>Ð\95Ñ\80 Ð²Ð¾Ð²Ð·Ð°Ñ\88 Ð²Ð¾Ð°Ñ\86аÑ\87а (Ñ\88ий Ð´Ð°Ð³Ð°Ñ\80а Ð¹Ð¾Ð°Ð·Ñ\83в ÐºÑ\85Ñ\8b Ð° Ñ\85Ñ\8cакÑ\85олланза) Ð´Ð¾Ð°ÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н ÐºÑ\8aамаÑ\8cла Ð¾Ð°Ð³IÑ\83в Ñ\8f.</em>\nЦÑ\83 Ð±Ð°Ñ\85Ñ\8cане Ñ\82Ñ\85о Ð´ÐµÐºÑ\85аÑ\80ийла Ð´Ð° Ñ\86Ñ\83 Ñ\81агá Ð¸Ð´ÐµÐ½Ñ\82иÑ\84икаÑ\86и ÐµÑ\80 Ð´Ñ\83Ñ\85Ñ\8cа Ñ\86Ñ\83н IP-Ñ\86Ó\80ай Ñ\85Ñ\8cаÑ\85Ñ\8cокÑ\85а.\nÐ\98з Ñ\86Ó\80ай Ð»ÐµÐ»Ð°Ð´ÐµÑ\88 Ñ\85ила Ð¼ÐµÐ³ Ð¼Ð°Ñ\81еÑ\85к ÐºÑ\85Ñ\8bболÑ\87а Ð´Ð¾Ð°ÐºÑ\8aаÑ\88Ñ\85оÑ\88а Ð°.\nÐ¥Ñ\8cо Ð²Ð¾Ð²Ð·Ð°Ñ\88 Ð²Ð¾Ð°Ñ\86а Ð´Ð¾Ð°ÐºÑ\8aаÑ\88Ñ\85о Ð²Ð°Ð»Ðµ, ÐµÑ\80 Ñ\85оам Ñ\85Ñ\8cона Ð±Ð¾Ð°Ð³IаÑ\88 Ð±Ð°Ñ\86 Ð°Ñ\8cнна Ñ\85еÑ\82аÑ\88 Ð° Ð²Ð°Ð»Ðµ, Ð´ÐµÑ\85аÑ\80 Ð´Ð° [[Special:CreateAccount|Ñ\85Ñ\8cакÑ\85олла Ð´Ð°Ð³Ð°Ñ\80а Ð¹Ð¾Ð°Ð·Ñ\83в]] Ðµ [[Special:UserLogin|Ñ\87Ñ\83вáла Ñ\80ажаÑ\87а]], тIехьагIа хье тувлавайтаргвоацаш бовзаш боацача доакъашхошца.",
        "noarticletext": "ХIанз укх оагӀон тӀа текст яц.\nШун аьттув ба [[Special:Search/{{PAGENAME}}|цу тайпара цӀи хьоахаяр лаха]] кхыйолча оагIонаш тIа, иштта\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} тептарий дIаяздаьраш лаха] е\n'''[{{fullurl:{{FULLPAGENAME}}|action=edit}} иззамо цӀи йолаш оагӀув хьакхолла]'''</span>.",
        "noarticletext-nopermission": "ХIанз укх оагӀон тӀа текст яц.\nШун аьттув ба кхыйолча оагIонаш тIа [[Special:Search/{{PAGENAME}}|цу тайпара цӀи хьохаяр лаха]], иштта <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} тептарий дIаяздаьраш лаха].</span> Ер оагӀув хьакхолла Хьа бокъо яц.",
        "userpage-userdoesnotexist-view": "«$1» яха дагара йоазув долаш дац.",
        "timezonelegend": "Сахьата оаса:",
        "localtime": "Меттигара ха:",
        "timezoneuseserverdefault": "Сервера ($1) оттамаш леладе",
-       "timezoneuseoffset": "Кхыдар (белгалде ха меттахьялар)",
+       "timezoneuseoffset": "Кхыдар (белгалде меттахьдалар)",
        "servertime": "Сервера ха:",
        "guesstimezone": "Браузера чура оттамаш леладе",
        "timezoneregion-africa": "Африка",
        "grouppage-sysop": "{{ns:project}}:Администратораш",
        "grouppage-bureaucrat": "{{ns:project}}:Бюрократаш",
        "right-read": "оагӀонашка хьажар",
-       "right-edit": "оагӀонаш нийсъяр",
+       "right-edit": "Ð\9eагӀонаш нийсъяр",
        "right-createpage": "дувцара оагIонаш йоаца оагӀонаш кхоллар",
-       "right-createtalk": "дÑ\83вÑ\86а Ð¾Ñ\82Ñ\82адаÑ\80а оагӀонаш кхоллар",
+       "right-createtalk": "Ð\9aÑ\8aамаÑ\8cла оагӀонаш кхоллар",
        "right-createaccount": "доакъашхошта керда дагара йоазонаш кхоллар",
        "right-move": "оагIонай цIераш хувцар",
        "right-movefile": "файлай цӀераш хувцар",
        "rcfilters-empty-filter": "Хьалотадаь луттаргаш дац. Гойташ да деррига хувцамаш.",
        "rcfilters-filterlist-title": "Луттаргаш",
        "rcfilters-filterlist-whatsthis": "Мишта бу укхо болх?",
-       "rcfilters-filterlist-feedbacklink": "Хьадувца тхога, фу хета шоана укх литтара керда кечалах",
+       "rcfilters-filterlist-feedbacklink": "Хьадувца тхога, фу хет шоана укх литтара кечалах",
        "rcfilters-highlightbutton-title": "Белгалде хьалехараш",
        "rcfilters-highlightmenu-title": "Хьахаржа бос",
        "rcfilters-highlightmenu-help": "Белгалде аьнна бос хьахаржа",
        "rcfilters-liveupdates-button": "Ши-шегIа кердадувлийта",
        "rcfilters-liveupdates-button-title-on": "ДIадоаде ши-шегIа кердадалар",
        "rcfilters-liveupdates-button-title-off": "Керда хувцам бешше хьахьокха",
-       "rcfilters-preference-label": "Ð\9aÑ\8aайлаÑ\8fккÑ\85а Â«Ð\9aеÑ\80да Ñ\85Ñ\83вÑ\86амий» Ñ\82олаÑ\88агIа Ð¹Ð¾Ð»Ð° Ñ\8dÑ\80Ñ\88",
-       "rcfilters-preference-help": "ЮÑ\85аÑ\82оÑ\82Ñ\82а 2017 Ñ\88еÑ\80а Ñ\85инна Ð¸Ð½Ñ\82еÑ\80Ñ\84ейÑ\81а Ñ\80едизайн Ð° Ñ\86Ñ\83 Ñ\85ана Ñ\82Ó\80аÑ\82еÑ\85а ÐºÐµÑ\87алаÑ\88 Ð°.",
+       "rcfilters-preference-label": "Ð\9bелае JavaScript Ð¹Ð¾Ð°Ñ\86а Ð¸Ð½Ñ\82еÑ\80Ñ\84ейÑ\81",
+       "rcfilters-preference-help": "Ð¥Ñ\8cагойÑ\82 ÐºÐµÑ\80да Ñ\85Ñ\83вÑ\86амаÑ\88 Ð»Ñ\83Ñ\82Ñ\82аÑ\80гаÑ\88Ñ\86аÑ\80а Ð»Ð°Ñ\85аÑ\80 Ð´Ð¾Ð°Ñ\86аÑ\88.",
        "rcnotefrom": "КIалхагIа {{PLURAL:$5|хувцам белгалбаьккхаб}} <strong>$3, $4</strong> тIера (хьахьекхабац <strong>$1</strong>-л дукхагIа).",
        "rclistfrom": "$3 $2 денза даь хувцамаш хьахьокха",
        "rcshowhideminor": "$1 зIамига дола тоадар",
        "filehist-filesize": "Файла боарам",
        "filehist-comment": "Белгалдаккхар",
        "imagelinks": "Файлах пайда эцар",
-       "linkstoimage": "{{PLURAL:$1|1=ТIехьайоагIача $1 оагIо тIахьожаву|ТIехьайоагIача $1 оагIонаш тIахьожаву}} укх файла тIа:",
+       "linkstoimage": "{{PLURAL:$1|ТIехьайоагIача $1 оагIоно лелаю}} ер файл:",
        "linkstoimage-more": "$1-ннел дуккхагIа {{PLURAL:$1|оагIув}} я укх файлá тIахьожавеш.\nУкх хьаязъяьра чу хьахьекхаб цу файла алхха {{PLURAL:$1|$1 тIатовжам}}.\nЦхьабакъда [[Special:WhatLinksHere/$2|бIарчча хьаязъяьра]] а тIакхача йиш я хьа.",
        "nolinkstoimage": "Укх файла тӏатовжаш оагӏонаш яц.",
        "linkstoimage-redirect": "$1 (файлови дӀа-хьа хьожавар) $2",
        "mywatchlist": "Зем",
        "watchlistfor2": "Доакъашхо $1 $2",
        "addwatch": "Зема хьаязъяьрá юкъеяьккха",
-       "addedwatchtext": "СÑ\82аÑ\82Ñ\8cÑ\8f Â«[[:$1]]» Ð°, Ñ\86Ñ\83н Ð´Ñ\83вÑ\86а Ð¾Ñ\82Ñ\82адаÑ\80а Ð¾Ð°Ð³IÑ\83в Ð° Ñ\82IаÑ\82еÑ\85ай Ñ\85Ñ\8cа [[Special:Watchlist|зем Ð±Ð°Ñ\80а Ñ\85Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80а]].",
-       "removedwatchtext": "СÑ\82аÑ\82Ñ\8cÑ\8f Â«[[:$1]]» Ð°, Ð¸Ñ\88Ñ\82Ñ\82а Ñ\86Ñ\83н Ð´Ñ\83вÑ\86а Ð¾Ñ\82Ñ\82адаÑ\80а Ð¾Ð°Ð³IÑ\83в Ð° Ð´IаÑ\8fÑ\8cккÑ\85ай Ñ\85Ñ\8cа [[Special:Watchlist|зем Ð±Ð°Ñ\80а Ñ\85Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80]] чура.",
+       "addedwatchtext": "СÑ\82аÑ\82Ñ\8cÑ\8f Â«[[:$1]]» Ð°, Ñ\86Ñ\83н ÐºÑ\8aамаÑ\8cла Ð¾Ð°Ð³IÑ\83в Ð°, Ñ\82IаÑ\82еÑ\85ай Ñ\85Ñ\8cа [[Special:Watchlist|зем Ð±Ð°Ñ\80а Ñ\85Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80á]].",
+       "removedwatchtext": "СÑ\82аÑ\82Ñ\8cÑ\8f Â«[[:$1]]» Ð°, Ð¸Ñ\88Ñ\82Ñ\82а Ñ\86Ñ\83н ÐºÑ\8aамаÑ\8cла Ð¾Ð°Ð³IÑ\83в Ð°, Ð´IаÑ\8fÑ\8cккÑ\85ай Ñ\85Ñ\8cа [[Special:Watchlist|зем Ð±Ð°Ñ\80а Ñ\85Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80а]] чура.",
        "watch": "Зем бе",
        "watchthispage": "Зем бе укх оагӀон",
        "unwatch": "Ма бе зем",
        "sp-contributions-deleted": "{{GENDER:$1|доакъашхочун}} дӀадаьккха хинна тоадар",
        "sp-contributions-uploads": "чуяьхараш",
        "sp-contributions-logs": "тептараш",
-       "sp-contributions-talk": "дÑ\83вÑ\86а Ð¾Ñ\82Ñ\82адар",
+       "sp-contributions-talk": "кÑ\8aамаÑ\8cл дар",
        "sp-contributions-userrights": "{{GENDER:$1|доакъашхочун}} бокъонашта урхалдар",
        "sp-contributions-search": "Къахьегама лахар",
        "sp-contributions-username": "IP-адрес е доакъашхочун цӀи:",
        "unblocklogentry": "чIега баьстаб $1",
        "block-log-flags-nocreate": "дагара йоазонаш кхоллар пурам деннадац",
        "proxyblocker": "Проксинна блок тохар",
+       "move-page": "$1 — цӀи хувцар",
        "move-page-legend": "ОагIон цIи хувцар",
        "movepagetext": "КIалха белгаляьча формах пайда ийца Iа оагIон цIи хувцаргья, цун хувцамий тептар кхыйола моттиге оттаярца цхьанна.\nКъаьнарча цIерах хургья кердача цIера дIа-сахьожадар.\nХьа аьттув ба къаьнарча цIера хинна дIа-сахьожадараш ше-ше кердадаккха.\nНагахьа санна Iа из ца дой, дехар ду, [[Special:DoubleRedirects|шолха]]  а [[Special:BrokenRedirects|хеттанза дIа-сахьожадараш]] долаш дий тахка.\nХьо бехктокхаме ва тIахьожаяргаш шоаш тIахьожаде дезача нийса хилар.\n\nТеркам бе, оагIон цIи <strong>хувцалургьйоацалга</strong> нагахьа санна изза мо цIи йола оагIув йолаш яле. Чу хIама доацача оагIонашта е дIа-сахьожадарашта, кхы а цар хувцамий истори йице, из новкъа дац. Из яхилга да, нагахьа Iа харца цIи хувцар даь дале, ше хинна цIи юхадIахувца йиш я, амма бакъда йолаш йола оагIув ца ховш дIаяккха аьттув бац. \n\n<strong>Белгалдоахар:</strong>\nГIоряьннача оагIонай цIи хувцаро тIехдоккхеи цIаьххеи хувцамаш доаладе мега.\nБоккъала, дIахо хье дIавахалехьа, кхета, хила мегаш дар хургдолга.",
-       "movepagetalktext": "Ð\9dагаÑ\85Ñ\8cа Ñ\81анна Iа ÐµÑ\80 Ð¿Ñ\83нкÑ\82 Ð±ÐµÐ»Ð³Ð°Ð»Ñ\8aйой, Ñ\86Ñ\83нÑ\86а Ð±Ñ\83взам Ð±Ð¾Ð»Ð° Ð´Ñ\83вÑ\86а Ð¾Ñ\82Ñ\82адаÑ\80а Ð¾Ð°Ð³IÑ\83в Ð¸Ñ\88Ñ\82Ñ\82а Ñ\88е-Ñ\88е Ñ\86Iи Ñ\85ийÑ\86а Ñ\85Ñ\83Ñ\80гÑ\8cÑ\8f, Ð½Ð°Ð³Ð°Ñ\85Ñ\8cа Ñ\81анна Ð¸Ð·Ð·Ð° Ð¼Ð¾ Ñ\86Iи Ð¹Ð¾Ð»Ð° Ñ\8fÑ\8cÑ\81Ñ\81а Ð¹Ð¾Ð°Ñ\86а Ð´Ñ\83вÑ\86а Ð¾Ñ\82Ñ\82адаÑ\80а Ð¾Ð°Ð³IÑ\83в Ð¹Ð¾Ð»Ð°Ñ\88 Ð¹Ð¸Ñ\86е.\n\nÐ\98з Ð¸Ñ\88Ñ\82Ñ\82а Ð´Ð°Ð»Ðµ, Ð½Ð°Ð³Ð°Ñ\85Ñ\8cа Ð¸Ð· Ñ\8dÑ\88аÑ\88 Ð´Ð°Ð»Ðµ, IайÑ\85а Ð¾Ð°Ð³Iон  цIи дIахувца.",
+       "movepagetalktext": "Ð\9dагаÑ\85Ñ\8cа Ñ\81анна Iа ÐµÑ\80 Ð¿Ñ\83нкÑ\82 Ð±ÐµÐ»Ð³Ð°Ð»Ñ\8aйой, Ñ\86Ñ\83нÑ\86а Ð¹Ð¾Ð°Ð³Iа ÐºÑ\8aамаÑ\8cла Ð¾Ð°Ð³IÑ\83в Ð¸Ñ\88Ñ\82Ñ\82а Ñ\88и-Ñ\88егIа Ñ\86Iи Ñ\85ийÑ\86а Ñ\85Ñ\83Ñ\80гÑ\8cÑ\8f, Ð½Ð°Ð³Ð°Ñ\85Ñ\8cа Ñ\81анна Ð¸Ð·Ð·Ð°Ð¼Ð¾ Ñ\86Iи Ð¹Ð¾Ð»Ð° Ñ\8fÑ\8cÑ\81Ñ\81а Ð¹Ð¾Ð°Ñ\86а ÐºÑ\8aамаÑ\8cла Ð¾Ð°Ð³IÑ\83в Ð¹Ð¾Ð»Ð°Ñ\88 ÐµÑ\86е.\n\nÐ\98з Ð¸Ñ\88Ñ\82Ñ\82а Ð´Ð°Ð»Ðµ, Ð½Ð°Ð³Ð°Ñ\85Ñ\8c Ñ\81анна Ð¸Ð· Ñ\8dÑ\88аÑ\88 Ð´Ð°Ð»Ðµ, IайÑ\85а Ð¾Ð°Ð³Iон цIи дIахувца.",
        "newtitle": "Керда цIи:",
        "move-watch": "Ер оагIув зем бара хьаязъяьра юкъеяьккха",
        "movepagebtn": "ОагIон цIи хувца",
        "pagemovedsub": "ОагӀонах керда цӀи тиллай",
+       "cannotmove": "ОагIон цIи хувца йиш яц {{PLURAL:$1|1=укх бахьан}}:",
        "movepage-moved": "'''«$1» яхача оагӀонах «$2» яха цӀи тиллай'''",
        "movepage-moved-redirect": "Хьакхеллад дIа-юхаластар",
        "articleexists": "Иззамо цӀи йола оагӀув тхьовре йолаш я е оаш тилла цӀи мегаш яц.\nДехар да, кхыйола цӀи харжа.",
-       "movetalk": "Ð\94Ñ\83вÑ\86а Ð¾Ñ\82Ñ\82адаÑ\80а Ð¾Ð°Ð³Ó\80он Ð° Ñ\85Ñ\83вÑ\86а Ñ\86Ó\80и",
+       "movetalk": "ЦÑ\83нÑ\86а Ð¹Ð¾Ð°Ð³IаÑ\87а ÐºÑ\8aамаÑ\8cла Ð¾Ð°Ð³Ó\80он Ð° Ñ\86Ó\80и Ñ\85Ñ\83вÑ\86а",
        "movelogpage": "ЦӀераш хувцара тептар",
        "movereason": "Бахьан:",
        "revertmove": "юха",
        "import-upload-filename": "Файла цӀи:",
        "importlogpage": "Импорта тептар",
        "tooltip-pt-userpage": "{{GENDER:|Хьа}} доакъашхочун оагIув",
-       "tooltip-pt-mytalk": "{{GENDER:|Ð¥Ñ\8cа}} Ð´Ñ\83вÑ\86а Ð¾Ñ\82Ñ\82адаÑ\80а оагIув",
+       "tooltip-pt-mytalk": "{{GENDER:|Ð¥Ñ\8cа}} ÐºÑ\8aамаÑ\8cла оагIув",
        "tooltip-pt-anontalk": "Шун IP-цIайна лаьрхIа дувцара оагӀув",
        "tooltip-pt-preferences": "{{GENDER:|Хьа оттамаш}}",
        "tooltip-pt-watchlist": "Iа зем бу оагIонаш",
        "watchlisttools-view": "Хьаязъяьра чура оагIонаш тIа даь хувцамаш",
        "watchlisttools-edit": "Хьажа а хувца а хьаязъяьр",
        "watchlisttools-raw": "Тоае текст санна",
-       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|дÑ\83вÑ\86а Ð¾Ñ\82Ñ\82адаÑ\80]])",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|кÑ\8aамаÑ\8cл]])",
        "duplicate-defaultsort": "Теркам. Долча тайпара дIанийсдара дIоагIа «$2» юхакъоастаду долча тайпара дIанийсдара хьалха хинна дIоагIа «$1».",
        "version": "Эрш",
        "version-specialpages": "ГIулакха оагӀонаш",
index 9731df5..33bd601 100644 (file)
        "blockip": "Blokusado di IP-adresi",
        "blockiptext": "Uzez la formulario adinfre por blokusar aceso de specifika adreso IP o de specifika uzeronomo.\nFacez to NUR POR PREVENTAR VANDALISMO, e segun la [[{{MediaWiki:Policy-url}}|politiko de ica Wiki]].\nInformez adinfre la specifika motivi (exemple, mencionez specifika pagini qui subisis vandalismo dal IP/uzero).\nVu povas blokusar serio di adresi IP per l'uzo dil sintaxo [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; la maxim longa serio permisata esas /$1 por IPv4 e /$2 por IPv6.",
        "ipaddressorusername": "IP-adreso od uzantonomo:",
-       "ipbexpiry": "Expiro:",
        "ipbreason": "Motivo:",
        "ipbreason-dropdown": "*Ordinara motivi por blokuso\n** Insertar nevera informi\n** Efacar kontenajo de pagini\n** Insertadar ligili 'spam' ad extera reti\n** Insertar radoto aden pagini\n** Timidiganta ago kontre uzeri\n** Trouzar multopla konti\n** Neaceptebla uzeronomo",
        "ipb-hardblock": "Impedar redakturi e modifikuri de uzeri qui facas 'login' de ica IP-adreso",
        "ipb-unblock-addr": "Desblokusar $1",
        "ipb-blocklist": "Vidar existanta blokusi",
        "ipb-blocklist-contribs": "Kontributadi dil uzero {{GENDER:$1|$1}}",
+       "block-expiry": "Expiro:",
        "unblockip": "Desblokusar uzero",
        "unblockiptext": "Uzez la sequanta formularo por restaurar la skribo-aceso ad IP-adreso qua blokusesis antee.",
        "ipusubmit": "Desblokusar",
index 8f9b48e..00f82f1 100644 (file)
        "blockip": "Banna {{GENDER:$1|notanda}}",
        "blockiptext": "Notaðu eyðublaðið hér að neðan til þess að banna ákveðið IP-vistfang eða notandanafn.\nÞetta ætti einungis að gera til þess að koma í veg fyrir skemmdarverk, og í samræmi við [[{{MediaWiki:Policy-url}}|samþykktir]].\nGefðu nákvæma skýringu að neðan (til dæmis, með því að vísa í þær síður sem voru skemmdar).\nÞú getur bannað svið IP-vistfanga með því að nota [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] málsetningu; stærsta leyfilegt svið er /$1 fyrir IPv4 og /$2 fyrir IPv6.",
        "ipaddressorusername": "Vistfang eða notandanafn:",
-       "ipbexpiry": "Bannið rennur út:",
        "ipbreason": "Ástæða:",
        "ipbreason-dropdown": "* Algengar bannástæður\n** Setur inn rangar upplýsingar\n** Fjarlægir efni af síðum\n** Setur inn rusltengla á utanaðkomandi síður\n** Setur inn vitleysu/þvaður á síður\n** Yfirþyrmandi framkoma/áreitni\n** Misnotkun á fjölda notandanafna\n** Óásættanlegt notandanafn",
        "ipb-hardblock": "Banna innskráðum notendum að breyta frá þessu IP-vistfangi.",
        "ipb-confirm": "Staðfesta bann",
        "ipb-sitewide": "Á öllum vefnum",
        "ipb-partial": "Að hluta",
-       "ipb-type-label": "Tegund",
        "ipb-pages-label": "Síður",
        "badipaddress": "Ógilt vistfang",
        "blockipsuccesssub": "Bann tókst",
        "ipb-blocklist": "Sjá núverandi bönn",
        "ipb-blocklist-contribs": "Framlög fyrir {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 eftir",
+       "block-expiry": "Bannið rennur út:",
        "unblockip": "Afbanna notanda",
        "unblockiptext": "Endurvekja skrifréttindi bannaðra notenda eða vistfanga.",
        "ipusubmit": "Afbanna",
index d0614f6..5e14dfb 100644 (file)
        "resetpass-abort-generic": "La modifica della password è stata interrotta da un'estensione.",
        "resetpass-expired": "La password è scaduta. Si prega di impostare una nuova password per effettuare l'accesso.",
        "resetpass-expired-soft": "La tua password è scaduta e deve essere modificata. Si prega di scegliere una nuova password o fare clic su \"{{int:authprovider-resetpass-skip-label}}\" per modificarla successivamente.",
+       "resetpass-validity": "La tua password non è valida: $1\n\nImposta una nuova password per accedere.",
        "resetpass-validity-soft": "La tua password non è valida: $1\n\nSi prega di scegliere una nuova password o fare clic su \"{{int:authprovider-resetpass-skip-label}}\" per modificarla successivamente.",
        "passwordreset": "Reimposta password",
        "passwordreset-text-one": "Compila questo modulo per reimpostare la tua password.",
        "blockedtext": "<strong>Il tuo nome utente o indirizzo IP è stato bloccato.</strong>\n\nIl blocco è stato imposto da $1. La motivazione del blocco è la seguente: <em>$2</em>.\n\n* Inizio del blocco: $8\n* Scadenza del blocco: $6\n* Intervallo di blocco: $7\n\nSe lo si desidera, è possibile contattare $1 o un altro [[{{MediaWiki:Grouppage-sysop}}|amministratore]] per discutere del blocco.\n\nSi noti che la funzione \"{{int:emailuser}}\" non è attiva se non è stato registrato un indirizzo email valido nelle proprie [[Special:Preferences|preferenze]] o se l'utilizzo di tale funzione è stato bloccato.\n\nL'indirizzo IP attuale è $3, il numero ID del blocco è #$5.\nSi prega di specificare tutti i dettagli precedenti in qualsiasi richiesta di chiarimenti.",
        "autoblockedtext": "Questo indirizzo IP è stato bloccato automaticamente perché condiviso con un altro utente, a sua volta bloccato da $1.\nLa motivazione del blocco è la seguente:\n\n:<em>$2</em>\n\n* Inizio del blocco: $8\n* Scadenza del blocco: $6\n* Intervallo di blocco: $7\n\nÈ possibile contattare $1 o un altro [[{{MediaWiki:Grouppage-sysop}}|amministratore]] per richiedere eventuali chiarimenti circa il blocco.\n\nSi noti che la funzione \"{{int:emailuser}}\" non è attiva se non è stato registrato un indirizzo e-mail valido nelle proprie [[Special:Preferences|preferenze]] e, comunque, se nell'applicare il blocco, tale funzione è stata disabilitata (per la durata del blocco).\n\nL'indirizzo IP attuale è $3, il numero ID del blocco è #$5\nSi prega di specificare tutti i dettagli qui inclusi nel compilare qualsiasi richiesta di chiarimenti.",
        "systemblockedtext": "Il tuo nome utente o l'indirizzo IP è stato bloccato automaticamente da MediaWiki.\nLa motivazione del blocco è la seguente:\n\n:''$2''\n\n* Inizio del blocco: $8\n* Scadenza del blocco: $6\n* Intervallo di blocco: $7\n\nL'indirizzo IP attuale è $3.\nSi prega di specificare tutti i dettagli qui inclusi nel compilare qualsiasi richiesta di chiarimenti.",
+       "actionblockedtext": "Sei stato bloccato dall'eseguire questa azione.",
        "blockednoreason": "nessuna motivazione indicata",
        "whitelistedittext": "Per modificare le pagine è necessario $1.",
        "confirmedittext": "Per essere abilitati alla modifica delle pagine è necessario confermare il proprio indirizzo e-mail. Per impostare e confermare l'indirizzo servirsi delle [[Special:Preferences|preferenze]].",
        "blockip": "Blocca {{GENDER:$1|utente}}",
        "blockiptext": "Usa il modulo sottostante per bloccare l'accesso in scrittura a uno specifico indirizzo IP o a un utente registrato.\nIl blocco dev'essere operato per prevenire atti di vandalismo e in stretta osservanza delle [[{{MediaWiki:Policy-url}}|regole di {{SITENAME}}]].\nIndica il motivo specifico per il quale si procede al blocco (per esempio, citando i titoli di eventuali pagine oggetto di vandalismo).\nPuoi bloccare intervalli di IP utilizzando la sintassi [https://it.wikipedia.org/wiki/CIDR CIDR]; l'intervallo più ampio consentito è /$1 per IPv4 e /$2 per IPv6.",
        "ipaddressorusername": "Indirizzo IP o nome utente:",
-       "ipbexpiry": "Scadenza del blocco:",
        "ipbreason": "Motivo:",
        "ipbreason-dropdown": "*Motivazioni più comuni per i blocchi\n** Inserimento di informazioni false\n** Rimozione di contenuti dalle pagine\n** Collegamenti promozionali a siti esterni\n** Inserimento di contenuti privi di senso\n** Comportamenti intimidatori o molestie\n** Uso indebito di utenze multiple\n** Nome utente non consono",
        "ipb-hardblock": "Impedisci agli utenti registrati di contribuire da questo indirizzo IP",
-       "ipbcreateaccount": "Impedisci la registrazione",
-       "ipbemailban": "Impedisci all'utente l'invio di email",
+       "ipbcreateaccount": "Creazione di utenze",
+       "ipbemailban": "Invio di email",
        "ipbenableautoblock": "Blocca automaticamente l'ultimo indirizzo IP usato dall'utente e i successivi con cui vengono tentate modifiche",
        "ipbsubmit": "Blocca l'utente",
        "ipbother": "Altra durata:",
        "ipboptions": "2 ore:2 hours,1 giorno:1 day,3 giorni:3 days,1 settimana:1 week,2 settimane:2 weeks,1 mese:1 month,3 mesi:3 months,6 mesi:6 months,1 anno:1 year,infinito:infinite",
        "ipbhidename": "Nascondi il nome utente dalle modifiche e dagli elenchi.",
        "ipbwatchuser": "Segui le pagine e le discussioni utente di questo utente",
-       "ipb-disableusertalk": "Impedisci a questo utente di modificare la propria pagina di discussioni mentre è bloccato",
+       "ipb-disableusertalk": "Modificare la propria pagina di discussioni",
        "ipb-change-block": "Ri-blocca l'utente con queste impostazioni",
        "ipb-confirm": "Conferma il blocco",
+       "ipb-sitewide": "Completo",
        "ipb-partial": "Parziale",
-       "ipb-type-label": "Tipo",
        "ipb-pages-label": "Pagine",
        "badipaddress": "Indirizzo IP non valido.",
        "blockipsuccesssub": "Blocco eseguito",
        "ipb-blocklist": "Elenca i blocchi attivi",
        "ipb-blocklist-contribs": "Contributi di {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 rimasti",
+       "block-actions": "Azioni da bloccare:",
+       "block-expiry": "Scadenza del blocco:",
+       "block-options": "Opzioni aggiuntive:",
+       "block-prevent-edit": "Modifica",
+       "block-reason": "Motivo:",
+       "block-target": "Nome utente o indirizzo IP:",
        "unblockip": "Sblocca l'utente",
        "unblockiptext": "Usare il modulo sottostante per restituire l'accesso in scrittura ad un utente o indirizzo IP bloccato.",
        "ipusubmit": "Rimuovi questo blocco",
        "logentry-block-block": "$1 {{GENDER:$2|ha bloccato}} {{GENDER:$4|$3}} con una scadenza di $5 $6",
        "logentry-block-unblock": "$1 {{GENDER:$2|ha sbloccato}} {{GENDER:$4|$3}}",
        "logentry-block-reblock": "$1 {{GENDER:$2|ha modificato}} le impostazioni del blocco per {{GENDER:$4|$3}} con una scadenza di $5 $6",
+       "logentry-partialblock-block": "$1 {{GENDER:$2|ha bloccato}} {{GENDER:$4|$3}} dalla modifica {{PLURAL:$8|della pagina|delle pagine}} $7 con una scadenza di $5 $6",
+       "logentry-partialblock-reblock": "$1 {{GENDER:$2|ha modificato}} le impostazioni del blocco per {{GENDER:$4|$3}} bloccando la modifica {{PLURAL:$8|della pagina|delle pagine}} $7 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",
index 0d38e1a..e826f23 100644 (file)
        "returnto": "$1 に戻る。",
        "tagline": "提供: {{SITENAME}}",
        "help": "ヘルプ",
+       "help-mediawiki": "MediaWikiについてのヘルプ",
        "search": "検索",
        "search-ignored-headings": " #<!-- leave this line exactly as it is --> <pre>\n# 検索で無視される見出しを記述します。\n# この変更は、見出し付きページがインデックスされると同時に有効になります。\n# 空の編集を実行することで、強制的にページの再インデックスが行われます。\n# 文法は以下のとおり:\n#   * \"#\" で始まる行は、その行末までがすべてコメントです。\n#   * 非空白行が、無視したい見出しになります。大文字小文字の区別を含め、完全に一致するものが対象です。\nReferences\nExternal links\nSee also\n #</pre> <!-- leave this line exactly as it is -->",
        "searchbutton": "検索",
        "badarticleerror": "このページでは要求された操作を行えません。",
        "cannotdelete": "ページまたはファイル「$1」を削除できませんでした。\n他の人が既に削除した可能性があります。",
        "cannotdelete-title": "「$1」というページを削除できません",
+       "delete-scheduled": "ページ「$1」は削除予定です。\nしばらくお待ちください。",
        "delete-hook-aborted": "フックによって削除が中止されました。\n理由は不明です。",
        "no-null-revision": "ページ「$1」に新しい空編集の版を作成できませんでした。",
        "badtitle": "不適切なページ名",
        "passwordtooshort": "パスワードは {{PLURAL:$1|$1 文字}}以上にしてください。",
        "passwordtoolong": "パスワードは {{PLURAL:$1|$1 文字}}以下にしてください。",
        "passwordtoopopular": "選択したパスワードはありきたりであるため使用することはできません。簡単に思いつかないようなパスワードを選択してください。",
+       "passwordinlargeblacklist": "入力されたパスワードは、非常に一般的に使用されているパスワードのリストにあります。よりユニークなパスワードを選択してください。",
        "password-name-match": "パスワードは利用者名とは異なる必要があります。",
        "password-login-forbidden": "この利用者名とパスワードの使用は禁止されています。",
        "mailmypassword": "パスワードを再設定",
        "resetpass-abort-generic": "拡張機能により、パスワードの変更は取り消されました。",
        "resetpass-expired": "パスワードの有効期限が切れました。ログインするには新しいパスワードを設定してください。",
        "resetpass-expired-soft": "パスワードの有効期限が切れたため、再設定する必要があります。新しいパスワードを今すぐ設定するか、または「{{int:authprovider-resetpass-skip-label}}」をクリックしてあとで再設定してください。",
+       "resetpass-validity": "あなたのパスワードは無効です: $1\n\nログインするには新しいパスワードを設定してください。",
        "resetpass-validity-soft": "あなたのパスワードは無効です: $1\n\n今すぐ新しいパスワードに変更するか、「{{int:authprovider-resetpass-skip-label}}」をクリックして後で再設定してください。",
        "passwordreset": "パスワードの再設定",
        "passwordreset-text-one": "仮パスワードをメールで受け取るにはこのフォームに記入してください。",
        "subject-preview": "題名のプレビュー:",
        "previewerrortext": "変更のプレビューを処理中に、エラーが発生しました。",
        "blockedtitle": "利用者はブロックされています",
+       "blocked-email-user": "<strong>あなたの利用者名がEメールの送信をブロックされました。あなたはまだこのウィキの他のページを編集することはできます。</strong>ブロックの詳細は[[Special:MyContributions|account contributions]]で確認できます。\n\nブロックは$1によってなされました。\n\nその理由は<em>$2</em>です。\n\n* ブロック開始日時: $8\n* ブロック解除予定: $6\n* ブロック対象: $7\n* ブロックID #$5",
+       "blockedtext-partial": "<strong>あなたの利用者名またはIPアドレスがこのページの変更をブロックされました。あなたはまだこのウィキの他のページを編集することはできます。</strong>ブロックの詳細は[[Special:MyContributions|account contributions]]で確認できます。\n\nブロックは$1によってなされました。\n\nその理由は<em>$2</em>です。\n\n* ブロック開始日時: $8\n* ブロック解除予定: $6\n* ブロック対象: $7\n* ブロックID #$5",
        "blockedtext": "<strong>この利用者名またはIPアドレスはブロックされています。</strong>\n\nブロックは$1によって実施されました。\nブロックの理由は <em>$2</em> です。\n\n* ブロック開始日時: $8\n* ブロック解除予定: $6\n* ブロック対象: $7\n\nこのブロックについて、$1もしくは他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]に問い合わせることができます。\nただし、[[Special:Preferences|個人設定]]で有効なメールアドレスが登録されていない場合、またはメール送信機能の使用がブロックされている場合、「この利用者にメールを送信」の機能は使えません。\n現在ご使用中のIPアドレスは$3、このブロックIDは#$5です。\nお問い合わせの際には、上記の情報を必ず書いてください。",
        "autoblockedtext": "この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|個人設定]]に正しいメールアドレスが登録されていない場合、またはメール送信がブロックされている場合、「{{int:emailuser}}」機能を使用できないことに注意してください。\n\n現在ご使用中のIPアドレスは$3 、このブロックIDは#$5です。\nお問い合わせの際は、上記の情報を必ず書いてください。",
        "systemblockedtext": "あなたの利用者名またはIPアドレスはMediaWikiによって自動的にブロックされています。\n理由は次の通りです。\n\n:<em>$2</em>\n\n* ブロック開始日時: $8\n* ブロック解除予定: $6\n* ブロック対象: $7\n\nあなたの現在のIPアドレスは $3 です。\nお問い合わせの際は、上記の詳細情報をすべて含めてください。",
        "timezonelegend": "タイムゾーン:",
        "localtime": "地域の時刻:",
        "timezoneuseserverdefault": "ウィキの既定を使用 ($1)",
-       "timezoneuseoffset": "その他 (時差を指定)",
+       "timezoneuseoffset": "その他 (以下に時差を指定)",
        "timezone-useoffset-placeholder": "設定値の例:「-7:00」や「01:00」",
        "servertime": "サーバーの時刻:",
        "guesstimezone": "ブラウザーの設定から入力",
        "timezoneregion-indian": "インド洋",
        "timezoneregion-pacific": "太平洋",
        "allowemail": "他の利用者からのメールを受け取る",
-       "email-allow-new-users-label": "新しいユーザーからのメールを許可する",
-       "email-blacklist-label": "次のユーザーからのメールを受け取らない:",
+       "email-allow-new-users-label": "新しい利用者からのメールを許可する",
+       "email-blacklist-label": "以下の利用者からのメールを受け取らない:",
        "prefs-searchoptions": "検索",
        "prefs-namespaces": "名前空間",
        "default": "既定",
        "prefs-advancedwatchlist": "詳細の設定",
        "prefs-displayrc": "表示の設定",
        "prefs-displaywatchlist": "表示の設定",
+       "prefs-changesrc": "表示する編集",
+       "prefs-changeswatchlist": "表示する編集",
        "prefs-pageswatchlist": "ウォッチするページ",
        "prefs-tokenwatchlist": "トークン",
        "prefs-diffs": "差分",
        "grant-delete": "ページ、版、記録項目を削除",
        "grant-editinterface": "MediaWiki 名前空間およびサイト全体 JSON、利用者 JSON を編集",
        "grant-editmycssjs": "あなた自身の利用者 CSS/JSON/JavaScript を編集",
-       "grant-editmyoptions": "あなたの個人設定を編集",
+       "grant-editmyoptions": "ã\81\82ã\81ªã\81\9fã\81®å\80\8b人設å®\9aã\81¨JSON設å®\9aã\82\92ç·¨é\9b\86",
        "grant-editmywatchlist": "あなたのウォッチリストを編集",
        "grant-editsiteconfig": "サイト全体と利用者のCSS/JSを編集",
        "grant-editpage": "既存のページを編集",
        "blockip": "{{GENDER:$1|利用者}}をブロック",
        "blockiptext": "以下のフォームを使用して、指定したIPアドレスまたは利用者からの書き込みアクセスをブロックできます。\nこのような措置は、荒らしからの防御の目的のみに行われるべきで、また[[{{MediaWiki:Policy-url}}|方針]]に沿ったものであるべきです。\n以下にブロックの理由を具体的に書いてください (例えば、荒らされたページへの言及など)。\n[https://ja.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] 構文を使用して、IP 範囲をブロックできます。許可された最大の範囲は、IPv4 の場合は /$1、IPv6 の場合は /$2 です。",
        "ipaddressorusername": "IPアドレスまたは利用者名:",
-       "ipbexpiry": "有効期限:",
        "ipbreason": "理由:",
        "ipbreason-dropdown": "*よくあるブロック理由\n** 虚偽情報の挿入\n** ページから内容の除去\n** 外部サイトへのスパムリンク追加\n** ページへ無意味な/意味不明な内容の挿入\n** 威圧的な態度/嫌がらせ\n** 複数アカウントの不正利用\n** 不適切な利用者名",
        "ipb-hardblock": "このIPアドレスからのログイン利用者の編集を禁止",
-       "ipbcreateaccount": "アカウント作成を禁止",
-       "ipbemailban": "メール送信を禁止",
+       "ipbcreateaccount": "アカウント作成",
+       "ipbemailban": "メール送信",
        "ipbenableautoblock": "この利用者が最後に使用したIPアドレスと、ブロック後に編集を試みた際のIPアドレスを自動的にブロック",
        "ipbsubmit": "この利用者をブロック",
        "ipbother": "その他の期間:",
        "ipboptions": "2時間:2 hours,1日:1 day,3日:3 days,1週間:1 week,2週間:2 weeks,1か月:1 month,3か月:3 months,6か月:6 months,1年:1 year,無期限:infinite",
        "ipbhidename": "利用者名を編集履歴や各種一覧から秘匿する",
        "ipbwatchuser": "この利用者の利用者ページとトークページをウォッチ",
-       "ipb-disableusertalk": "この利用者がブロック中に自身のトークページを編集することを禁止",
+       "ipb-disableusertalk": "自身のトークページの編集",
        "ipb-change-block": "これらの設定で、利用者を再びブロック",
        "ipb-confirm": "ブロックの確認",
+       "ipb-sitewide": "サイト全体",
+       "ipb-partial": "部分的",
        "ipb-pages-label": "ページ",
        "badipaddress": "無効なIPアドレス",
        "blockipsuccesssub": "ブロックしました",
        "ipb-blocklist": "現在有効なブロックを表示",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}}の投稿の一覧",
        "ipb-blocklist-duration-left": "残り $1",
+       "block-actions": "ブロックする操作:",
+       "block-expiry": "有効期限:",
+       "block-options": "追加オプション:",
+       "block-prevent-edit": "編集",
+       "block-reason": "理由:",
+       "block-target": "利用者名またはIPアドレス:",
        "unblockip": "ブロックを解除",
        "unblockiptext": "以下のフォームで利用者またはIPアドレスのブロックを解除できます。",
        "ipusubmit": "このブロックを解除",
        "createaccountblock": "アカウント作成も禁止",
        "emailblock": "メール送信も禁止",
        "blocklist-nousertalk": "自分のトークページも編集禁止",
+       "blocklist-editing": "編集",
+       "blocklist-editing-sitewide": "編集(サイト全体)",
        "ipblocklist-empty": "ブロック一覧は空です。",
        "ipblocklist-no-results": "指定されたIPアドレスまたは利用者名はブロックされていません。",
        "blocklink": "ブロック",
        "move-watch": "移動元と移動先ページをウォッチ",
        "movepagebtn": "ページを移動",
        "pagemovedsub": "移動に成功しました",
+       "cannotmove": "次の{{PLURAL:$1|理由}}により、ページを移動できませんでした。",
        "movepage-moved": "<strong>「$1」は「$2」へ移動されました</strong>",
        "movepage-moved-redirect": "転送ページを作成しました。",
        "movepage-moved-noredirect": "転送ページは作成されませんでした。",
        "mw-widgets-titleinput-description-redirect": "$1 へのリダイレクト",
        "mw-widgets-categoryselector-add-category-placeholder": "カテゴリを追加...",
        "mw-widgets-usersmultiselect-placeholder": "さらに追加",
+       "mw-widgets-titlesmultiselect-placeholder": "さらに追加",
        "date-range-from": "この日から:",
        "date-range-to": "この日まで:",
        "sessionmanager-tie": "複数の要求の認証方法を組み合わせることはできません: $1。",
        "passwordpolicies-policy-passwordcannotmatchblacklist": "パスワードは、特にブラックリストに載っているものと一致するものは設定できません",
        "passwordpolicies-policy-maximalpasswordlength": "パスワードは$1{{PLURAL:$1|文字}}以下でなければなりません",
        "passwordpolicies-policy-passwordcannotbepopular": "パスワードは{{PLURAL:$1|一般的なものにすることはできません|一般的な$1個のパスワードのリストと一致するものにすることはできません}}",
-       "easydeflate-invaliddeflate": "提供されたコンテンツが適切に圧縮されていません"
+       "easydeflate-invaliddeflate": "提供されたコンテンツが適切に圧縮されていません",
+       "unprotected-js": "セキュリティ上の理由から、JavaScriptは保護されていないページからロードすることはできません。MediaWiki: 名前空間内、または利用者サブページとしてのみjavascriptを作成してください。"
 }
index a91b9b5..6eeb826 100644 (file)
        "blockip": "Palang {{GENDER:$1|panganggo}}",
        "blockiptext": "Enggonen formulir ing ngisor iki saperlu mblokir aksès nulis lumantar alamat IP utawa panganggo mirunggan.\nIki kudu diayahi kanggo ngéndhani vandhalisme, lan minangkani [[{{MediaWiki:Policy-url}}|pranatan]].\nIsinen alesan kang mirunggan ing ngisor iki (contoné, nyitir kaca mirunggan kang dirusak).\nPanjenengan bisa mblokir saprangkat alamat IP lumantar sintaksis [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; kèhé prangkat kang diidinaké ya iku /$1 kanggo IPv4 lan /$2 kanggo IPv6.",
        "ipaddressorusername": "Alamat IP utawa jeneng panganggo",
-       "ipbexpiry": "Kadaluwarsa",
        "ipbreason": "Alesan:",
        "ipbreason-dropdown": "*Alesan kang lumrah blokiran\n** Mènèhi informasi palsu\n** Mbusak isi kaca\n** Nguwuh pranala menyang situs njaba\n** Nglebokaké tulisan ngawur ing kaca\n** Ngasoraké liyan\n** Nganggo sawenèh akun kanggo laku ala\n** Jeneng panganggo ora patut",
        "ipb-hardblock": "Wurungaké panganggo kang wis mlebu log mbesut saka alamat IP iki",
        "ipb-blocklist": "Deleng blokiran kang ana",
        "ipb-blocklist-contribs": "Pasumbanging {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "Kari $1",
+       "block-expiry": "Kadaluwarsa",
        "unblockip": "Copot blokiran panganggo",
        "unblockiptext": "Nggonen formulir ing ngisor iki kanggo mbalèkaké aksès nulis alamat IP utawa panganggo kang sadurungé diblokir.",
        "ipusubmit": "Copot blokiran iki",
index 4c168c2..95f93af 100644 (file)
        "userrights-groupsmember-auto": "ნაგულისხმევი წევრი:",
        "userrights-groupsmember-type": "$1",
        "userrights-groups-help": "თქვენ შეგიძლიათ შეცვალოთ ჯგუფები, რომელშიც შედის ეს მომხმარებელი.\n* თუ ჯგუფის სახელწოდებასთან გაკეთებულია ნიშნული, ე.ი მომხმარებელი შედის ამ ჯგუფში.\n* თუ ნიშნული არ არის – მომხმარებელი არ განეკუთვნება არსებულ ჯგუფს.\n* ნიშანი * ნიშნავს, რომ თქვენ არ შეგიძლიათ მომხმარებლის ჯგუფიდან წაშლა, თუ დაამატებთ მას იქ ან პირიქით.",
-       "userrights-reason": "á\83¨á\83\94á\83ªá\83\95á\83\9aá\83\98á\83¡ á\83\9bá\83\98á\83\96á\83\94á\83\96á\83\98:",
+       "userrights-reason": "მიზეზი:",
        "userrights-no-interwiki": "თქვენ არ გაქვთ მომხმარებლის უფლებების რედაქტირების უფლება სხვა ვიკი-ებში.",
        "userrights-nodatabase": "მონაცემთა ბაზა $1 არ არსებობს, ან არ არის ლოკალური.",
        "userrights-changeable-col": "ჯგუფები, რომლებიც შეგიძლიათ შეცვალოთ",
        "blockip": "მომხმარებელ {{GENDER:$1|დაბლოკვა}}",
        "blockiptext": "გამოიყენეთ ქვემოთ მოყვანილი ფორმა სპეციფიური IP მისამართის\nან მომხმარებლისთვის რედაქტირების ბლოკირებისთვის.\nამის გაკეთება შეიძლება მხოლოდ ვანდალიზმის ასარიდებლად,\nდა [[{{MediaWiki:Policy-url}}|პოლიტიკასთან]] თანხმობაში.\nჩაწერეთ სპეციფიური მიზეზი ქვემოთ (მაგ. მიუთითეთ გვერდები,\nრომლებზეც ვანდალიზმი განხორციელდა).\nშეგიძლიათ დაბლოკოთ კონკრეტუყლი IP დიაპაზონი [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] სინტაქსის გამოყენებით; უდიდესი შესაძლო დიაპაზონია /$1 IPv4-თვის და /$2 IPv6-თვის.",
        "ipaddressorusername": "IP მისამართი ან მომხმარებლის სახელი",
-       "ipbexpiry": "ვადა",
        "ipbreason": "მიზეზი:",
        "ipbreason-dropdown": "* დაბლოკვის სტანდარტული მიზეზები\n** ცრუ ინფორმაციის ჩამატება\n** გვერდების შინაარსის წაშლა\n** სპამ ბმულები გარე საიტებზე\n** სულელური ტექსტის/ნაგვის ჩამატება\n** დაშინება, მომხმარებელთა დარბევა\n** რამდენიმე ანგარიშის ბოროტად გამოყენება\n** მომხმარებლის მიუღებელი სახელი",
        "ipb-hardblock": "სისტემაში შესული მომხმარებლისთვის ამ IP მისამართით სარგებლობის აკრძალვა",
        "ipb-blocklist": "იხილე არსებული ბლოკირებები",
        "ipb-blocklist-contribs": "მომხმარებელ {{GENDER:$1|$1}} წვლილი",
        "ipb-blocklist-duration-left": "დარჩა $1",
+       "block-actions": "დაბლოკვის მოქმედებები:",
+       "block-expiry": "ვადა",
+       "block-options": "დამატებითი ფუნქციები:",
+       "block-reason": "მიზეზი:",
+       "block-target": "მომხმარებლის სახელი ან IP-მისამართი:",
        "unblockip": "მომხმარებელზე ბლოკის მოხსნა",
        "unblockiptext": "გამოიყენეთ ქვემოთ მოცემული ფორმულარი, რათა  დაბლოკილი IP მისამართი ან მომხმარებლის სახელი აღადგინოთ.",
        "ipusubmit": "ამ ბლოკის მოხსნა",
        "createaccountblock": "ანგარიშის გახსნა ბლოკირებულია",
        "emailblock": "დაიბლოკა ელ. ფოსტა",
        "blocklist-nousertalk": "ვერ შეასწორებთ განხილვის გვერდს",
+       "blocklist-editing": "რედაქტირება",
        "ipblocklist-empty": "დაბლოკვის სია ცარიელია.",
        "ipblocklist-no-results": "მოთხოვნილი IP-მისამართი არ არის დაბლკილი",
        "blocklink": "ბლოკირება",
        "tags-create-heading": "ახალი ტეგის შექმნა",
        "tags-create-explanation": "კვლავ შექმნილი ტეგები ნაგულისხმევად იქნება შექმნილი და იქნება ხელმისაწვდომი მომხმარებლებისა და ბოტებისათვის",
        "tags-create-tag-name": "ტეგის სახელი:",
-       "tags-create-reason": "მიზეზი",
+       "tags-create-reason": "მიზეზი:",
        "tags-create-submit": "შექმნა",
        "tags-create-no-name": "თქვენ უნდა მიუთითოთ დასათაურების სახელი",
        "tags-create-invalid-chars": "ტეგების სახელწოდებები არ უნდა შეიცავდეს მძიმეებს (<code>,</code>), სწორ ხაზებს (<code>|</code>) ან დახრილი ხაზის სიმბოლოებს (<code>/</code>).",
index 2bdb8f0..adef3b5 100644 (file)
        "whatlinkshere-filters": "Filtrler",
        "blockip": "Paydalanıwshını bloklaw",
        "ipaddressorusername": "IP Adres yamasa paydalanıwshı atı:",
-       "ipbexpiry": "Ku'shin joytıw waqtı:",
        "ipbreason": "Sebep:",
        "ipbcreateaccount": "Akkaunt jaratıwdı qadag'an etiw",
        "ipbemailban": "Paydalanıwshını e-mail jiberiwden qadag'alaw",
        "ipb-edit-dropdown": "Bloklaw sebeplerin o'zgertiw",
        "ipb-unblock-addr": "$1 degennin qulpın sheshiw",
        "ipb-unblock": "Paydalanıwshının' yamasa IP adrestin' qulpın shesh",
+       "block-expiry": "Ku'shin joytıw waqtı:",
        "unblockip": "Paydalanıwshının' qulpın sheshiw",
        "ipusubmit": "Bul bloklawdı biykar etiw",
        "unblocked-id": "$1 bloklawı o'shirildi",
index 9af9968..77f101a 100644 (file)
        "blockip": "Sewḥel {{GENDER:$1|aseqdac|taseqdact}}",
        "blockiptext": "Seqdec tiferkit ddaw-agi iwakken ad  sewḥeleḍ ineɛruḍen n ubeddel seg yiwet tansa IP tulmist neɣ n yiwen isem umseqdac.\nAsket am wagi, ur ilaq ad yetwexddem kan iwakken ad yeεeggen axeṣṣar dɣa ilaq ad yemtawi s [[{{MediaWiki:Policy-url}}|ilugan igensanen]].\nEfked ddaw-agi taɣẓint tusdidt (amedya : efked isebtar yetwaxeṣṣren).",
        "ipaddressorusername": "Tansa IP neɣ isem n wemseqdac",
-       "ipbexpiry": "Tanzagt uqbel aneffeṛ :",
        "ipbreason": "Ayɣer",
        "ipbreason-dropdown": "* Tiɣẓinin n ukyaf id ttuɣalen aṭas tikwal\n** Taguri n tilɣa n ukellax\n** Tukksa war assefhem n ugbur n isebtar\n** Taguri s uɛiwed n izdayen uffiɣen ɣer idellilen (abluleɣ)\n** Taguri n ugbur war anamek d tursaḍ deg isebtar\n** Aneɛruḍ n umsiged neɣ ubbezbax\n** Tafuli n useqdac n aṭas imiḍanen\n** Isem n umseqdac ur nezmer ara an qbel, d-anergam neɣ d-abucemmat",
        "ipb-hardblock": "Qareɛ imseqdacen yeqqnen ad beddelen s tansa IP agi",
        "ipb-unblock": "Aksasewḥel amiḍan n umseqdac neɣ tansa IP",
        "ipb-blocklist": "Zeṛ isewḥelen yellan",
        "ipb-blocklist-contribs": "Ittekkiyen i $1",
+       "block-expiry": "Tanzagt uqbel aneffeṛ :",
        "unblockip": "Ekkes asewḥel n umseqdac",
        "unblockiptext": "Seqdec tiferkit ddaw-agi iwakken ad erreḍ addaf i ibeddilen seg yiwet tansa IP neɣ yiwen isem n umseqdac.",
        "ipusubmit": "Ekkes akyaf agi",
index 22df4c2..130e063 100644 (file)
        "tooltip-undo": "\"Peyser\" ni vurnaişi peyser ano u modusê verqayt de vurnaisê formi keno ra.\nTêser-kerdena jü sebebi rê xulasa de imkan dano cı.",
        "tooltip-summary": "Xulasê da kılme cı kuye",
        "common.css": "/* CSSo ke itaro, serba çermu pêroine gurenino */",
+       "pageinfo-category-pages": "Amarê pelan",
        "previousdiff": "← Vurnaiso khanêr",
        "nextdiff": "Vurnaena newêre →",
        "file-info-size": "$1 × $2 piksel, gırsênia dosya: $3, MIME tipê cı: $4",
index 53db60f..5e34529 100644 (file)
        "thu": "ဗြဴပ္တာ်",
        "fri": "အ်ုသုဂ်",
        "sat": "သာ်သဝ့်",
-       "january": "á\80\91á\80«á\80\84á\80·á\80ºá\80\81á\80¯á\80\80á\80ºá\80\96á\80±á\80«á\80\9fá\80º",
-       "february": "á\80\91á\80«á\80\84á\80·á\80ºá\80\81á\80¯á\80\80á\80ºá\80\96á\80«á\80\8dá\80±á\80¬á\80\9fá\80º",
-       "march": "á\80\9cá\80«á\80\9eá\80­á\80¯á\80\84á\80·်",
-       "april": "á\80\9cá\80«á\80\90á\80«",
-       "may_long": "á\80\9cá\80«á\80\9aá\80«á\80·",
-       "june": "á\80\9cá\80«á\80\94á\80¯á\80²á\80¸",
-       "july": "á\80\9cá\80«á\81°á\80­á\80¯á\80\9d်",
-       "august": "á\80\9cá\80«á\80\81á\80¯á\80\82á\80º",
-       "september": "á\80\86á\80®á\80·á\80\99á\80°á\82\8b",
-       "october": "á\80\80á\80¹á\80\90á\80¯á\80\80á\80ºá\80\9dá\80\9dá\80ºá\82\8b",
-       "november": "á\80\9cá\80«á\80\8fá\80\84á\80·်",
-       "december": "á\80\9cá\80«á\80\9cá\80­င်",
-       "january-gen": "á\80\91á\80«á\80\84á\80·á\80ºá\80\81á\80¯á\80\80á\80ºá\80\96á\80±á\80«á\80\9fá\80º",
-       "february-gen": "á\80\91á\80«á\80\84á\80·á\80ºá\80\81á\80¯á\80\80á\80ºá\80\96á\80«á\80\8dá\80±á\80¬á\80\9fá\80º",
-       "march-gen": "á\80\9cá\80«á\80\9eá\80­á\80¯á\80\84á\80·်",
-       "april-gen": "á\80\9cá\80«á\80\90á\80«",
-       "may-gen": "á\80\9cá\80«á\80\9aá\80«á\80·",
-       "june-gen": "á\80\9cá\80«á\80\94á\80¯á\80²á\80¸",
-       "july-gen": "á\80\9cá\80«á\81°á\80­á\80¯á\80\9d်",
-       "august-gen": "á\80\9cá\80«á\80\81á\80¯á\80\82á\80º",
-       "september-gen": "á\80\86á\80®á\80·á\80\99á\80°á\82\8b",
-       "october-gen": "á\80\80á\80¹á\80\90á\80¯á\80\80á\80ºá\80\9dá\80\9dá\80ºá\82\8b",
-       "november-gen": "á\80\9cá\80«á\80\8fá\80\84á\80·်",
-       "december-gen": "á\80\9cá\80«á\80\9cá\80­င်",
+       "january": "á\80\82á\80»á\80¬á\80\84á\80ºá\80\8fá\80ºá\80¯á\80\9dá\80«á\80\9bá\80®",
+       "february": "á\80\96á\80²á\81\9cá\81 á\80°á\80\9dá\80ºá\80¯á\80\9bá\80®",
+       "march": "á\80\99á\80¸á\80\81á\80»á\80­á\80¯á\80\92်",
+       "april": "á\80¡á\80±á\80\95á\80ºá\80¯á\80\9bá\80­á\80¯á\80\84á\80º",
+       "may_long": "á\80\99á\80±",
+       "june": "á\80\82á\80»á\80¶á\80\84á\80º",
+       "july": "á\80\82á\80»á\80°á\80\9cá\80¬á\80\84်",
+       "august": "á\80¡á\80\9dá\80ºá\82\8bá\80\82á\80­á\80¯á\80\84á\80ºá\80¸",
+       "september": "á\80\85á\80\80á\80ºá\80\90á\80±á\80\94á\80ºá\80\98á\80¬",
+       "october": "á\80¡á\80¯á\80\82á\80ºá\80\8dá\80­á\80¯á\80\9dá\80ºá\81\9cá\80­á\80¯á\80\84á\80º",
+       "november": "á\80\94á\80­á\80¯á\80\9dá\80ºá\80\9dá\80±á\80\94á\80ºá\81\9cá\80­á\80¯á\80\84်",
+       "december": "á\80\8dá\80®á\80\87á\80±á\80\94á\80ºá\81\9cá\80­á\80¯င်",
+       "january-gen": "á\80\82á\80»á\80¬á\80\84á\80ºá\80\8fá\80ºá\80¯á\80\9dá\80«á\80\9bá\80®",
+       "february-gen": "á\80\96á\80²á\81\9cá\81 á\80°á\80\9dá\80ºá\80¯á\80\9bá\80®",
+       "march-gen": "á\80\99á\80¸á\80\81á\80»á\80­á\80¯á\80\92်",
+       "april-gen": "á\80¡á\80±á\80\95á\80ºá\80¯á\80\9bá\80­á\80¯á\80\84á\80º",
+       "may-gen": "á\80\99á\80±",
+       "june-gen": "á\80\82á\80»á\80¶á\80\84á\80º",
+       "july-gen": "á\80\82á\80»á\80°á\80\9cá\80¬á\80\84်",
+       "august-gen": "á\80¡á\80\9dá\80ºá\82\8bá\80\82á\80­á\80¯á\80\84á\80ºá\80¸",
+       "september-gen": "á\80\85á\80\80á\80ºá\80\90á\80±á\80\94á\80ºá\80\98á\80¬",
+       "october-gen": "á\80¡á\80¯á\80\82á\80ºá\80\8dá\80­á\80¯á\80\9dá\80ºá\81\9cá\80­á\80¯á\80\84á\80º",
+       "november-gen": "á\80\94á\80­á\80¯á\80\9dá\80ºá\80\9dá\80±á\80\94á\80ºá\81\9cá\80­á\80¯á\80\84်",
+       "december-gen": "á\80\8dá\80®á\80\87á\80±á\80\94á\80ºá\81\9cá\80­á\80¯င်",
        "jan": "ဂျာင်",
-       "feb": "á\80\91á\80«á\80\84á\80·á\80ºá\80\81á\80¯á\80\80á\80ºá\80\96á\80«á\80\8dá\80±á\80¬á\80\9fá\80º",
-       "mar": "á\80\9cá\80«á\80\9eá\80­á\80¯á\80\84á\80·á\80º",
-       "apr": "á\80\9cá\80«á\80\90á\80«",
-       "may": "á\80\9cá\80«á\80\9aá\80«á\80·",
-       "jun": "á\80\9cá\80«á\80\94á\80¯á\80²á\80¸",
-       "jul": "á\80\9cá\80«á\81°á\80­á\80¯á\80\9dá\80º",
-       "aug": "á\80\9cá\80«á\80\81á\80¯á\80\82á\80º",
+       "feb": "á\80\96á\80²",
+       "mar": "á\80\99á\80¸",
+       "apr": "á\80¡á\80±á\80\95á\80ºá\80¯",
+       "may": "á\80\99á\80±",
+       "jun": "á\80\82á\80»á\80¶á\80\84á\80º",
+       "jul": "á\80\82á\80»á\80°",
+       "aug": "á\80¡á\80\9dá\80ºá\82\8b",
        "sep": "စက်",
        "oct": "အုဂ်",
-       "nov": "á\80\9cá\80«á\80\8fá\80\84á\80·်",
+       "nov": "á\80\94á\80­á\80¯á\80\9d်",
        "dec": "ဍီ",
-       "january-date": "á\80\91á\80«á\80\84á\80·á\80ºá\80\81á\80¯á\80\80á\80ºá\80\96á\80±á\80«á\80\9fá\80º $1",
-       "february-date": "á\80\91á\80«á\80\84á\80·á\80ºá\80\81á\80¯á\80\80á\80ºá\80\96á\80«á\80\8dá\80±á\80¬á\80\9fá\80º $1",
-       "march-date": "á\80\9cá\80«á\80\9eá\80­á\80¯á\80\84á\80·် $1",
-       "april-date": "á\80\9cá\80«á\80\90á\80« $1",
-       "may-date": "á\80\9cá\80«á\80\9aá\80«á\80· $1",
-       "june-date": "á\80\9cá\80«á\80\94á\80¯á\80²á\80¸ $1",
-       "july-date": "á\80\9cá\80«á\81°á\80­á\80¯á\80\9d် $1",
-       "august-date": "á\80\9cá\80«á\80\81á\80¯á\80\82á\80º $1",
-       "september-date": "á\80\86á\80®á\80·á\80\99á\80°á\82\8b $1",
-       "october-date": "á\80\80á\80¹á\80\90á\80¯á\80\82á\80ºá\80\9dá\80\9dá\80ºá\82\8b $1",
-       "november-date": "á\80\9cá\80«á\80\8fá\80\84á\80·် $1",
-       "december-date": "á\80\9cá\80«á\80\9cá\80­င် $1",
+       "january-date": "á\80\82á\80»á\80¬á\80\84á\80ºá\80\8fá\80ºá\80¯á\80\9dá\80«á\80\9bá\80® $1",
+       "february-date": "á\80\96á\80²á\81\9cá\81 á\80°á\80\9dá\80ºá\80¯á\80\9bá\80® $1",
+       "march-date": "á\80\99á\80¸á\80\81á\80»á\80­á\80¯á\80\92် $1",
+       "april-date": "á\80¡á\80±á\80\95á\80ºá\80¯á\80\9bá\80­á\80¯á\80\84á\80º $1",
+       "may-date": "á\80\99á\80± $1",
+       "june-date": "á\80\82á\80»á\80¶á\80\84á\80º $1",
+       "july-date": "á\80\82á\80»á\80°á\80\9cá\80¬á\80\84် $1",
+       "august-date": "á\80¡á\80\9dá\80ºá\82\8bá\80\82á\80­á\80¯á\80\84á\80ºá\80¸ $1",
+       "september-date": "á\80\85á\80\80á\80ºá\80\90á\80±á\80\94á\80ºá\80\98á\80¬ $1",
+       "october-date": "á\80¡á\80¯á\80\82á\80ºá\80\8dá\80­á\80¯á\80\9dá\80ºá\81\9cá\80­á\80¯á\80\84á\80º $1",
+       "november-date": "á\80\94á\80­á\80¯á\80\9dá\80ºá\80\9dá\80±á\80\94á\80ºá\81\9cá\80­á\80¯á\80\84် $1",
+       "december-date": "á\80\8dá\80®á\80\87á\80±á\80\94á\80ºá\81\9cá\80­á\80¯င် $1",
        "period-am": "ကေၯဝ်",
        "period-pm": "ကေၯး",
        "pagecategories": "{{PLURAL:$1|အ်ုဆုဂ်တုဂ်|အ်ုဆုဂ်တုဂ်လ်ုဖး}}",
        "viewhelppage": "မ်ုယောဝ်ႋဖိုင့်လိက်မေံ",
        "categorypage": "အ်ုဆုဂ်တုဂ်လိက်မေံသယ် မ်ုယောဝ်ႋ",
        "viewtalkpage": "မ်ုယောဝ်ႋ လဝ်ခၠါင်ဆ်ုခၠါင်",
-       "otherlanguages": "á\80\9cá\80ºá\80¯á\80¡á\80ºá\80¯á\81°á\80¬á\82\8bá\81°á\80¶á\80\84á\80º á\80\86á\80ºá\80¯á\80\81á\81 á\80«á\80\84á\80ºá\80\98á\80¬á\82\8bá\80\9eá\80¬á\80·á\80\9cá\80ºá\80¯á\80\96á\80¸á\80\9eá\80®á\80·",
-       "redirectedfrom": "($1 á\80\81á\80\9dá\80·á\80º á\80\95á\80ºá\80¯á\80\9aá\80¯á\80¶á\80·á\80\91á\80¬á\80·)",
+       "otherlanguages": "á\80¡á\80ºá\80¯á\81°á\80¬á\82\8bá\81°á\80¶á\80\84á\80º á\80\86á\80ºá\80¯á\80\81á\81 á\80«á\80\84á\80ºá\80\98á\80¬á\82\8bá\80\9eá\80¬á\80·á\80\9cá\80ºá\80¯á\80\96á\80¸á\80\9eá\80®á\80¸",
+       "redirectedfrom": "($1 á\80\81á\80\9dá\80·á\80º á\80\91á\80«á\80\84á\80ºá\80\95á\80ºá\80¯á\80\9aá\80¯á\80¶á\80·á\80\91á\80¬)",
        "redirectpagesub": "ထါင်ၮဲအ်ုထိုဝ် လိက်မေံၜၠါ်",
        "redirectto": "က္ဍာထိုဝ်ၜုဂ် -",
        "lastmodifiedat": "လိက်မေံၜၠါ်ယိုဝ် $1၊ $2 အ်ုခါ့ဏှ် လင်ခါင့်ထုက်အင်းတါင်ထာဝေ့လှ်။",
        "pool-errorunknown": "လ်ုသီးယာ့ ဆ်ုမး",
        "poolcounter-usage-error": "ဆ်ုသုံႋဆာႋအ်ုမး: $1",
        "aboutsite": "အ်ုကျံင် {{SITENAME}}",
-       "aboutpage": "Project:á\80¡á\80ºá\80¯á\81¯á\80¶á\80\84á\80ºá\80¡á\80ºá\80¯á\80\80á\80»á\80¶á\80\84á\80º",
+       "aboutpage": "Project:á\80¡á\80ºá\80¯á\81¯á\80¬á\80\84á\80ºá\82\8bá\80¡á\80ºá\80¯á\80\80á\80»á\80¶á\80\84á\80ºá\80¸",
        "copyrightpage": "{{ns:project}}: ပ္တုံဆာပၞံင့်",
        "currentevents": "အ်ုခါ့ယိုဝ်ဆ်ုကဲထင်းလ်ုဖး",
        "currentevents-url": "Project:အ်ုခါ့ယိုဝ်ဆ်ုကဲထင်းလ်ုဖး",
        "nospecialpagetext": "<strong>ၮ်ုယိုဝ် လ်ုထီ့ဆာ့ၜး လိက်မေံခေါဟ်လ်ုၮါင်းအိုဝ် အင်းကိင်ဖှ်ေထဆေဝ်ႋလှ်။</strong>\n\nထီ့ဆာ့ လိက်မေံခေါဟ် စ်ုရင့်သယ် [[Special:SpecialPages|{{int:specialpages}}]] ခဝ့် ၮ်ုဍးၮေဝ်လှ်။",
        "error": "ဆ်ုမး",
        "databaseerror-error": "အ်ုမး: $1",
+       "missingarticle-diff": "(ဆ်ုကါင်ဖါ - $1, $2)",
        "badtitle": "လိက်မေံဆ်ုနာႋ",
        "badtitletext": "အင်းကိင်ႋလင်ထ လိက်မေံၜၠါ် ခေါဟ်တင်ၮ်ှ လ်ုဖံင်ပၞံင့် (လ်ု) လ်ုအှ်မိင်ၜး (လ်ု) ၰာၰံင်ဘာႋသာ့လ်ုဖး(inter-language or inter-wiki title)အိုဝ် ထိုဝ်ၜုဂ်လင့်မးဝေ့လှ်။",
        "viewsource": "မ်ုယောဝ်ႋအ်ုထါ်",
        "viewsource-title": "$1အှ် အ်ုထိုဝ် မ်ုယောဝ်ႋ",
        "viewsourcetext": "လိက်မေံခေါဟ်အိုဝ် အ်ုထိုဝ် ယောဝ်ႋၯံင် ကေဝ်ဍံင်ၮေဝ်လှ်။",
+       "editinginterface": "<strong>ဖှ်ေသ္တာ်အ်ုဏါင်း။</strong> ဏ်ုယိုဝ် ဆော့ဖ်ဝဲါလ် အ်ုၯင်အ်ုဍုံလိက်ဖၠုံးသယ်လ်ုဖးဏှ် ဆ်ုမာၯါင်းခၠိင့် ဆ်ုသုံႋ လိက်မေံၜၠါ်အိုဝ် သံင့်ၜးၯဴဍးဝေ့ဆေဝ်ႋလှ်။\nလိက်မေံၜၠါ်ယိုဝ် ဆ်ုအင်းလယ်လ်ုဖး ဝီႋကေဝ်ယိုဝ်ခဝ့် အ်ုၰာႋၰံင်သုံႋဏင့်ဆာႋလ်ုဖးခဝ့် ဆ်ုသုံႋဆာႋ အ်ုၯင်အ်ုဍုံအ်ုဖင့်ခေါဟ် အ်ုဆ်ုစူးဖံင့်ဏင်းမ်ုလင်ဆောဟ်ဆေဝ်ႋလှ်။",
        "yourname": "ဆ်ုသုံႋဆာႋမိင်:",
        "userlogin-yourname": "ဆ်ုသုံႋဆာႋမိင်",
        "userlogin-yourname-ph": "အွးလင်ႋလ်ုၮ်ုမိင်ႋ",
        "notloggedin": "လ်ုဆူ့လင်ထ အ်ုကုဂ်",
        "userlogin-noaccount": "ဆ်ုဖါ်ဆ်ုမာ အှ်အေးၯး။",
        "userlogin-joinproject": "{{SITENAME}} အိုဝ် မ်ုထိုဝ်ၜုဂ်",
-       "createaccount": "á\80\99á\80ºá\80¯á\80\90á\80«á\80\84á\80ºá\80\91á\80«á\80\84á\80ºá\80¸ á\81®á\80\84á\80·á\80ºá\80\86á\80¬á\82\8bá\80¡á\80ºá\80¯á\81®á\80«á\80\84á\80ºá\80¸",
+       "createaccount": "á\80\99á\80ºá\80¯á\80\95á\80¹á\80\90á\80­á\80\84á\80·á\80º á\80¡á\80ºá\80¯á\80\80á\80¯á\80\82á\80º",
        "userlogin-resetpassword-link": "သာႋၮင်ႋၮ်ုၜီးၜါ်။",
        "userlogin-helplink2": "log in ဆ်ုမာၜိုဝ်",
        "createacct-emailoptional": "အီးမေးလင်က္ဍာ",
        "createacct-reason": "ဖှ်ေအ်ုၯာင်ႋအ်ုကျင်း",
        "createacct-submit": "မ်ုအင်းတင်ႋပ္တုံဆ်ုမာ",
        "createacct-another-submit": "မ်ုတါင်ထါင်း ၮင့်ဆာႋအ်ုၮါင်း",
-       "createacct-benefit-heading": "{{SITENAME}} á\80\81á\80\9dá\80·á\80º á\80\97á\80±á\80·á\81®á\80ºá\80¯á\80\9eá\80­á\80¯á\80\9dá\80º á\80¡á\80ºá\80¯á\80\99á\81\9eá\80®á\82\8bá\80\9eá\80\9aá\80º á\80¡á\80\84á\80ºá\80¸á\80\90င်ထဝေ့လှ်။",
+       "createacct-benefit-heading": "{{SITENAME}} á\80\8fá\80¾á\80º  â\80\8bá\81\9cá\80±á\80·á\80\8fá\80ºá\80¯á\80\9eá\80­á\80¯á\80\9dá\80º á\80¡á\80ºá\80¯á\80\99á\81\9eá\80®á\82\8bá\80\9eá\80\9aá\80ºá\80\9cá\80ºá\80¯á\80\96á\80¸ á\80¡á\80\84á\80ºá\80¸á\80\90á\80«င်ထဝေ့လှ်။",
        "createacct-benefit-body1": "{{PLURAL:$1|ဆ်ုအင်းတင်|ဆ်ုအင်းတင်လ်ုဖး}}",
        "createacct-benefit-body2": "{{PLURAL:$1|လိက်မေံၜၠါ်|လိက်မေံၜၠါ်လ်ုဖး}}",
        "createacct-benefit-body3": "လ်ုယိက်လ်ုမဝ်ႋခါ့ {{PLURAL:$1|မာဖှ်ေက်ုဆာ|မာဖှ်ေက်ုဆာသယ်လ်ုဖး}}",
        "loginlanguagelabel": "လိက်ဆ်ုခၠါင် $1",
        "pt-login": "မ်ုအွးလင်",
        "pt-login-button": "အွးလင်",
-       "pt-createaccount": "á\80\99á\80¯á\80\90á\80«á\80\84á\80ºá\80\91á\80«á\80\84á\80º á\80\9fá\80ºá\80¯á\80\86á\80ºá\80¯á\80\99á\80¬",
+       "pt-createaccount": "á\80\99á\80ºá\80¯á\80\95á\80¹á\80\90á\80­á\80\84á\80·á\80º á\80¡á\80ºá\80¯á\80\80á\80¯á\80\82á\80º",
        "pt-userlogout": "တါ်ထင်း",
        "changepassword": "မ်ုအင်းလယ် ၜီးၜါ်ဖၠုံး",
        "resetpass_header": "မ်ုအင်းလယ် ၜီးၜါ်ဖၠုံး",
        "anoneditwarning": "<strong>ဖှ်ေဆ်ုတ်ုဒှ် - </strong> ၮ်ုယိုဝ် လော့ဂ်အင် လ်ုအွးထၜး။ ၮ်ုအင်းတင်စှ်ၜိုဝ် ၮ်ုအိုင်ပီလင်ဍာၮှ် မွာဲဖၠုံၯေဝ် ဍးဝေ့ဆေဝ်ႋလှ်။ လ်ုမွာဲ ၮ်ု <strong>[$1 လော့ဂ်အင်အွး]</strong> လ်ုမွာဲၜး <strong>[$2 ၮါင်ႋဆါ ပ္တုံ]</strong>ဆှ်ၜိုဝ်၊ ၮ်ုအင်းတင်ဆ်ုယိုဝ် ၮ်ုမိင်လ်ု ပ္ကုံမ်ုမာၮါင်းထလှ်။",
        "blockedtext": "<strong>ၮဲယိုဝ် ဆ်ုသုံ့ဆာအ်ုမိင် လ်ုမွာဲၜး အိုင်ပီလင်ဍာအိုဝ် ခၠာၜိင်ႋ ခံ\nထဆေဝ်ႋလှ်ဆှ်။</strong>\n\nဆ်ုခၠာၜိင်ႋယိုဝ် $1 ခဝ့် အင်းတါင်ထဆေဝ်ႋလှ်။\nအ်ုခဝ့်ပ်ုယဝ့်ၮှ် <em>$2</em> ဆေဝ်ႋလှ်။\n\n* ခၠာၜိင်ႋ ပ္တုံခါ့: $8\n* ခၠာၜိင် အ်ုယှောဟ်မ်ုလုက်ခါ့: $6\n* အ်ုခဝ့်ပ်ုယဝ့် blockee: $7\n\nၮ်ုယိုဝ် ဆ်ုခၠာၜိင်ႋၯင်း ဖှ်ေဆ်ုခၠါင် $1 လ်ုမွာဲၜး ၰာၰံင် [[{{MediaWiki:Grouppage-sysop}}|စီမံခန့်ခွဲသူ]] အိုဝ် ဖှ်ေလင်ပ်ုၮံင်ၮေဝ်။\nၮ်ုခဝ့် [[Special:Preferences|ၮ်ုဆ်ုမာ မလုဲႋဆ်ုသယ်လ်ုဖး]]တၞယ် ထီ့ဆာ့ အီးမေးလင်ဍာၮှ် လ်ုဆူ့ထၰင်စှ်ၜိုဝ် \"{{int:emailuser}}\" ဆ်ုသုဂ်ကၞယ် မ်ုအင်းသုံ့ လ်ုၮေဝ်ၜး။ ဗေ့ၮှ်သိုဝ် ဆ်ုတုဂ်ကၞယ်ၮှ် လ်ုခၠာၜိင်ႋထဝးမာႋ မာဖှ်ေမ်ုၮေဝ်ဆေဝ်ႋလှ်။\nၮ်ု အ်ုခါ့အိုဝ် အိုင်ပီလင်ဍာၮှ် $3 မွာဲၯံင်၊ ဆ်ုခၠာၜိင်ႋအိုင်ဒီၮှ် #$5 ဆေဝ်ႋလှ်။\nၮ်ုမ်ုမာ အင်းစာသယ်လ်ုဖး အ်ုဖံင့်ခေါဟ်၀ယ် အ်ုဍံင်လုက်ဆိင့် ဆူ့ဖှ်ေလာဆေဝ်ႋ။",
        "loginreqlink": "အွးလင်",
-       "newarticletext": "á\81®á\80ºá\80¯á\80\9aá\80­á\80¯á\80\9dá\80º á\80\9cá\80ºá\80¯á\80¡á\80¾á\80ºá\80\8dá\80¬á\80ºá\81\9cá\80¸ á\80\9cá\80­á\80\80á\80ºá\80\99á\80±á\80¶á\81\9cá\81 á\80«á\80ºá\80\9cá\80\84á\80·á\80º á\80¡á\80­á\80¯á\80\9dá\80º á\81®á\80ºá\80¯á\80\91á\80¶á\80\84á\80ºá\80\9cá\80\84á\80ºá\80\86á\80±á\80\9dá\80ºá\82\8bá\80\9cá\80¾á\80ºá\81\8b\ná\80\9cá\80­á\80\80á\80ºá\80\99á\80±á\80¶á\80\9eá\80\84á\80·á\80ºá\80\99á\80ºá\80¯á\80\95á\80¹á\80\90á\80¯á\80¶á\80\91á\80«á\80\84á\80ºá\80¸ á\80\96á\80¶á\80\84á\80·á\80ºá\80\9cá\80¬á\80·á\80\81á\80\9dá\80·á\80º á\80\90á\80ºá\80¯á\80\9cá\80¬á\82\8bá\80\96á\80­á\80¯á\80\84á\80º á\80\95á\80¹á\80\90á\80¯á\80¶á\80\8dá\80±á\80¬á\80\9fá\80ºá\80\9cá\80\84á\80ºá\80\9cá\80¬á\82\8b (á\81°á\80¬á\81°á\80¶á\80\84á\80º á\80\86á\80ºá\80¯á\80\95á\80¼á\80­á\80¯á\80\84á\80·á\80ºá\80¡á\80ºá\80¯á\81¯á\80¬á\80\84á\80ºá\82\8bá\80¡á\80ºá\80¯á\80\80á\80»á\80¶á\80\84á\80ºá\80¸á\80\9eá\80\9aá\80ºá\81¯á\80\84á\80ºá\80¸[$1 á\80\99á\80¬á\81\9cá\80­á\80¯á\80\9dá\80ºá\80\99á\80¬á\80\86á\80­á\80¯á\80\84á\80º á\80\9cá\80­á\80\80á\80ºá\80\99á\80±á\80¶á\81\9cá\81 á\80«á\80º]á\80¡á\80­á\80¯á\80\9dá\80º á\80\9aá\80±á\80¬á\80\9dá\80ºá\82\8bá\80\96á\80¾á\80ºá\80±á\80\9cá\80¬)á\81\8b\ná\80¡á\80ºá\80¯á\80\81á\80\9dá\80·á\80ºá\80\95á\80ºá\80¯á\80\9aá\80\9dá\80·á\80ºá\80\9cá\80ºá\80¯á\80¡á\80¾á\80ºá\80\91á\80¶á\80\84á\80ºá\80\85á\80¾á\80ºá\81\9cá\80­á\80¯á\80\9dá\80º á\80\95á\80ºá\80¯á\80\9bá\80±á\80¬á\80²á\80\86á\80¬á\81®á\80¾á\80º á\80\91á\80«á\80\84á\80ºá\81®á\80«á\80\84á\80ºá\80\9cá\80«á\80\84á\80ºá\80¸á\80\81á\80«á\80\84á\80·á\80º<strong>back</strong> á\80\81á\80\9cá\80¯á\80\90á\80ºá\81®á\80¾á\80º á\81\9cá\80­á\80\84á\80ºá\82\8bá\80\96á\80¾á\80ºá\80±á\80\9cá\80¬။",
+       "newarticletext": "á\80\8fá\80ºá\80¯á\80\9aá\80­á\80¯á\80\9dá\80º á\80\9cá\80ºá\80¯á\80¡á\80¾á\80ºá\80\8dá\80¬á\80ºá\81\9cá\80¸ á\80\9cá\80­á\80\80á\80ºá\80\99á\80±á\80¶á\81\9cá\81 á\80«á\80ºá\80\9cá\80±á\80\94á\80·á\80ºá\80¡á\80­á\80¯á\80\9dá\80º á\80\8fá\80ºá\80¯á\80\91á\80¶á\80\84á\80ºá\80\9cá\80\84á\80ºá\80\86á\80±á\80\9dá\80ºá\82\8bá\80\9cá\80¾á\80ºá\81\8b á\80\9cá\80­á\80\80á\80ºá\80\99á\80±á\80¶á\80\9eá\80\84á\80·á\80ºá\80\99á\80ºá\80¯á\80\95á\80¹á\80\90á\80¯á\80¶á\80\91á\80\84á\80ºá\80¸ á\80\96á\80\84á\80·á\80ºá\80\9cá\80¬á\80\81á\80\9dá\80·á\80º á\80\90á\81 á\80«á\80·á\80\96á\80­á\80¯á\80\84á\80º á\80\95á\80¹á\80\90á\80¯á\80¶á\80\8dá\80±á\80¬á\80\9fá\80ºá\80\9eá\80\84á\80·á\80ºá\80\9cá\80\84á\80ºá\80\9cá\80¬ (á\81°á\80¬á\82\8bá\81°á\80¶á\80\84á\80º á\80\86á\80ºá\80¯á\80\95á\80¼á\80­á\80¯á\80\84á\80·á\80ºá\80¡á\80ºá\80¯á\81¯á\80¬á\80\84á\80ºá\82\8bá\80¡á\80ºá\80¯á\80\80á\80»á\80¶á\80\84á\80ºá\80¸á\80\9eá\80\9aá\80ºá\81¯á\80¶á\80\84á\80º [$1 á\80\99á\80¬á\81\9cá\80­á\80¯á\80\9dá\80ºá\80\99á\80¬á\80\86á\80­á\80¯á\80\84á\80º á\80\9cá\80­á\80\80á\80ºá\80\99á\80±á\80¶á\81\9cá\81 á\80«á\80º]á\80¡á\80­á\80¯á\80\9dá\80º á\80\9aá\80±á\80¬á\80\9dá\80ºá\82\8bá\80\96á\80¾á\80ºá\80±á\80\9cá\80¬)á\81\8b\ná\80¡á\80ºá\80¯á\80\81á\80\9dá\80·á\80ºá\80\95á\80ºá\80¯á\80\9aá\80\9dá\80·á\80ºá\80\9cá\80ºá\80¯á\80¡á\80¾á\80º á\80\91á\80¶á\80\84á\80ºá\80\86á\80«á\80ºá\81\9cá\80­á\80¯á\80\9dá\80º á\80\95á\80ºá\80¯á\80\9cá\80¯á\80\80á\80ºá\80\86á\80¬ á\80\91á\80«á\80\84á\80ºá\80\8fá\80«á\80\84á\80ºá\80\9cá\80\84á\80ºá\80\81á\80«á\80\84á\80·á\80º <strong>back</strong> á\80\86á\80ºá\80¯á\80\81á\80½á\80±á\80\9dá\80ºá\80\8fá\80¾á\80º á\81\9cá\80«á\80ºá\80\96á\80¾á\80ºá\80±á\80\9cá\80¬á\82\8bá\80\86á\80«á\80º။",
        "anontalkpagetext": "----\n<em>အ်ုယိုဝ် လ်ုတါင်ထဆ်ုမာၮါင်း လ်ုမွာဲၜး ဆ်ုမာၮါင်းလ်ုအ်ှ အ်ုမၠိင်လ်ုသီးယာ့ ဆ်ုသုံ့ဆာလ်ုၯာၯင်း အှ်ကုံဆ်ုခၠါင် လိက်မေံၜၠါ်ဝေ့ဆေဝ်ႋလှ်။</em>\nအ်ုၮ်ှကျံင် ဟ်ုသယ်သီးလ်ုဖး အိုင်ပီလင်ဍာဝီႋဖၠုံးၮှ်အိုဝ် ဟ်ု/ဟ်ုမူး သိုဝ် မ်ုအင်းတင်ကါင်ဖါၮေဝ်ၯင်း ၜးအင်းသုံ့ဝေ့လှ်။ ဗှ်ေသိုဝ့် အိုင်ပီလင်ဍာလ်ုဖး ဆ်ုသုံ့ဆာသယ်လ်ုဖးၮှ် အင်းၮင်သုံ့ဝေ့ၮေဝ်ဆေဝ်ႋလှ်။\nၮ်ုယိုဝ် အ်ုမၠိင်လ်ုသီးယာ့ ဆ်ုသုံ့ဆာမွာဲၯံင် လ်ုၜးဆါင့်ၜး အ်ုဍံင်ဆ်ုခၠါင်လ်ုဖးၮှ် ၮှ်အိုဝ် ကဲထင်းဆ်ုပီပၠာစှ်ၜိုဝ်၊ အုဲးသာ့ဆဲ [[Special:CreateAccount|ဆ်ုမာၮါင်း တံင်ႋဖှ်ေလာ]] လ်ုမွာဲၜး [[Special:UserLogin|လော့ဂ်အင်အွးလင်ၯံင်]] ၰာၰံင် အ်ုမၠိင်လ်ုအ်ှသုံ့ဆာသယ်လ်ု အင်းၮင်ခိင့်ဖါ့မ်ုၮေဝ်ၜိုဝ် စါင်းကါင်ဖါၮေဝ်လှ်။",
        "noarticletext": "လိက်မေံယိုဝ် အ်ုခါ့ လိက်ဖၠုံးမိင်မိင် လ်ုအ်ှမိင်ၜး။\nၮ်ု လိက်မေံၰာၰံင်ဝယ် [[Special:Search/{{PAGENAME}}|လိက်မေံအ်ုယိုဝ် ခေါဟ်တင်ၮှ် ၮ်ုအင်းၰူ့ၮေဝ်ႋ]]၊ <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ထိုဝ်ၜုဂ်လင် ဆ်ုမါၮါင်းအိုဝ် အင်းၰူ့ၮေဝ်ႋ]၊ လ်ုမွာဲၜး [{{fullurl:{{FULLPAGENAME}}|action=edit}} လိက်မေံယိုဝ် အင်ႋတင်ႋပ္တုံထါင်ၮေဝ်ႋလှ်]</span>။",
        "noarticletext-nopermission": "လိက်မေံယိုဝ် အ်ုခါ့ လိက်ဖၠုံးမိင်မိင် လ်ုအ်ှမိင်ၜး။\nၮ်ု လိက်မေံၰာၰံင်ဝယ် [[Special:Search/{{PAGENAME}}|လိက်မေံအ်ုယိုဝ် ခေါဟ်တင်ၮှ် ၮ်ုအင်းၰူ့ၮေဝ်ႋ]]၊ <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ထိုဝ်ၜုဂ်လင် ဆ်ုမါၮါင်းအိုဝ် အင်းၰူ့ၮေဝ်ႋ]၊ လ်ုမွာဲၜး [{{fullurl:{{FULLPAGENAME}}|action=edit}} လိက်မေံယိုဝ် အင်ႋတင်ႋပ္တုံထါင်ၮေဝ်ႋလှ်]</span>။",
        "searchresults-title": "\"$1\" အ်ုၯင်း အင်းၰူ့ဍး အ်ုတင်ၮေဝ်ႋ",
        "prevn": "လါင်းခါင့် {{PLURAL:$1|$1}}",
        "nextn": "အ်ုမေံယာ့ခဝ့်အိုဝ် {{PLURAL:$1|$1}}",
+       "prev-page": "ၯံင်ခွိက် လိက်မေံၜၠါ်",
+       "next-page": "လ်ုယာ့လိက်မေံၜၠါ်",
        "prevn-title": "ၰာၰံင်အ်ုတင်ၮေဝ်ႋ $1 {{PLURAL:$1|အ်ုတင်ၮေဝ်ႋ|အ်ုတင်ၮေဝ်ႋသယ်}}",
        "nextn-title": "ၰာၰံင်အ်ုတင်ၮေဝ်ႋ $1 {{PLURAL:$1|ၮါင်း|ၮါင်းသယ်}}",
        "shown-title": "လိက်မေံလ်ုၮါင်း အ်ုတင်ၮေဝ်ႋ $1 {{PLURAL:$1|ၮါင်း|ၮါင်လ်ုဖး}} မ်ုၮဲထါင်",
        "searchprofile-advanced-tooltip": "လ်ုအင်းၰူးဝးသာ့အ်ုမၠိင်ထိုဝ်အှ်လင် မ်ုအင်းၰူး",
        "search-result-size": "$1 ({{PLURAL:$2|လိက်ဖၠုံး 1 ဖၠုံး|လိက်ဖၠုံး $2 ဖၠုံး}})",
        "search-result-category-size": "{{PLURAL:$1|အွးထကုံလွာဲလ်ုၮါင်း|အွးထကုံလွာဲ $1 ၮါင်း}} ({{PLURAL:$2|ဆ်ုဆုဂ်ကါင်ဖါလ်ုၮါင်း|ဆ်ုဆုဂ်ကါင်ဖါ $2 ၮါင်း}}, {{PLURAL:$3|ဖိုင်ႋလ်ုၮါင်း|ဖိုင်ႋ $3 ၮါင်း}})",
-       "search-redirect": "($1 á\80\81á\80\9dá\80·á\80º á\80\95á\80ºá\80¯á\80\9aá\80¯á\80¶á\80·á\80\91á\80¬á\80·)",
+       "search-redirect": "($1 á\80\81á\80\9dá\80·á\80º á\80\91á\80«á\80\84á\80ºá\80\95á\80ºá\80¯á\80\9aá\80¯á\80¶á\80·á\80\91á\80¬)",
        "search-section": "(အ်ုဆုဂ် $1)",
        "search-file-match": "(အ်ုဍံင်ၜး ဖိုင်ႋအ်ုၯာင်းအ်ုကျံင်)",
        "search-suggest": "$1 ၮ်ုၮ်ုလှ်ထါင်ၮှ်ဝး။",
        "prefs-resetpass": "မ်ုအင်းလယ် ၜီးၜါ်ဖၠုံး",
        "prefs-rendering": "ခိင်ႋၯင်",
        "prefs-editing": "ဆ်ုသံင့်ၜးၯဴ",
+       "searchresultshead": "မ်ုအင်းၰူ့",
+       "prefs-searchoptions": "မ်ုအင်းၰူ့",
        "username": "{{GENDER:$1|ဆ်ုသုံႋဆာႋမိင်}}:",
        "yourrealname": "အ်ုမိင်ယင်ႋ:",
        "yourlanguage": "ဆ်ုခၠါင်ဘာႋသာ့:",
        "grouppage-bot": "{{ns:project}}:ဘော့သယ်",
        "grouppage-sysop": "{{ns:project}}:ပိုင်ဆ်ုပျာဆိုင်လ်ုဖး",
        "right-edit": "မ်ုအင်းတါင် လိက်မေံလ်ုဖးယိုဝ်",
+       "right-upload": "မ်ုပ္တံင်ထင်းဖိုင့်လ်ုဖး",
        "right-writeapi": "ဆ်ုကေဝ်လိက် API အိုဝ် မ်ုအင်းသုံ့",
        "right-delete": "မ်ုထုဂ်ဆိင့်လိက်‌မေံၜၠါ်လ်ုဖး",
+       "grant-createaccount": "အ်ုကုဂ်လ်ုဖး မ်ုပ္တိင့်",
        "newuserlogpage": "အွးပ္တုံသံင့် စ်ုရင့်",
        "rightslog": "ဆ်ုသုံ့ဆာ အ်ုဝေ့ၮေဝ်ထဆ်ုပၠယ်တဝ်သယ်လ်ုဖး ဆ်ုမာၮါင်း",
        "action-edit": "လိက်မေံယိုဝ် မ်ုအင်းတါင်",
        "recentchangeslinked-summary": "လိက်မေံယိုဝ်ၯင်း လ်ုမွာဲဝှး လိက်မေံယိုဝ်ခဝ့် ထိုဝ်ၜုဂ်ထး လိက်မေံလ်ုဖးၮှ် အင်းလဲါသာ့သှ် မ်ုယောဝ်ႋၮေဝ်ႋၯင်း လိက်မေံမၠိင်ၮင်ၮါင်းအိုဝ် ဍုဂ်လင်ဖှ်ေလာႋ။ (ဆ်ုဆုဂ်တုဂ်လ်ုၮါင်းၮှ် အွးပ္ကုံဆာသှ် ခိုဝ်ယောဝ်ႋၯင်း {{ns:category}}:ဆ်ုဆုဂ်မၠိင် ၮှ် ကေဝ်ဍုဂ်လင်။) [[Special:Watchlist|ၮ်ုအင်းခိုဝ်ယောဝ်ႋစ်ုရင့်]]အ်ှ လိက်မေံသယ်လ်ုဖးခဝ့် အင်းလယ်သာ့သယ်လ်ုဖးၮှ် <strong>လိက်ဖၠုံးအ်ုတင်း</strong>အိုဝ် ၮဲထဆေဝ်ႋလှ်။",
        "recentchangeslinked-page": "လိက်မေံ မၠိင်",
        "recentchangeslinked-to": "ပေးထားသော စာမျက်နှာများအစား လင့်များနှင့် ဆက်စပ်နေသာ စာမျက်နှာများ၏ အပြောင်းအလဲများကို ပြရန်",
-       "upload": "မ်ုပ္တုံင်ထါင်ဖိုင်ႋ",
+       "upload": "မ်ုပ္တံင်ထင်းဖိုင့်",
+       "uploadbtn": "မ်ုပ္တံင်ထင်းဖိုင့်",
        "uploadlogpage": "ဖိုင်ႋတုံထါင်း ဆ်ုမာၮါင်း",
        "filedesc": "အ်ုအိင်း",
+       "upload-dialog-title": "မ်ုပ္တံင်ထင်းဖိုင့်",
        "upload-form-label-infoform-description": "ဆ်ုဏဲဖၠဟ်",
        "license": "လိုင်စင်ပၞံင့်ပ္တုံ",
        "license-header": "လိုင်စင်ပၞံင့်ပ္တုံ",
        "nbytes": "$1 {{PLURAL:$1|ဘိုက်|ဘိုက်လ်ုဖး}}",
        "nmembers": "ကုံလွာဲဆာ $1 {{PLURAL:$1|ၮါင်း|ၮါင်းလ်ုဖး}}",
        "prefixindex": "အ်ုမေံယာ့ prefix အှ် လိက်မေံၜၠါ်လုက်ဆိင့်",
-       "listusers": "á\80\86á\80ºá\80¯á\80¡á\80\84á\80ºá\80¸á\80\9eá\80¯á\80¶á\80·á\80\86á\80¬စ်ုရင့်",
+       "listusers": "á\80\86á\80ºá\80¯á\80\9eá\80¯á\80¶á\82\8bá\80\8fá\80\84á\80·á\80ºá\80\86á\80¬á\82\8bစ်ုရင့်",
        "usercreated": "$1 $2 အ်ုခါ့ဏှ် {{GENDER:$3|ပ္တံင်ထ​ဝေ့လှ်}}",
        "newpages": "လိက်မေံသင့်",
        "newpages-username": "ဏင့်ဆာႋမိင်:",
        "checkbox-none": "အှ်ဏင်မိင်အေ",
        "checkbox-invert": "ကျးက္ဍာ",
        "allpages": "လိက်မေံၜၠါ်လုက်ဆိင့်",
+       "nextpage": "လ်ုယာ့လိက်မေံၜၠါ် ($1)",
+       "prevpage": "ၯံင်ခွိက် လိက်မေံၜၠါ် ($1)",
        "allarticles": "လိက်မေံၜၠါ်လုက်ကၠာ",
        "allinnamespace": "လိက်မေံၜၠါ်လုက်ဆိင့် (ဏဲပ်ုယုံ့မိင် $1)",
        "allpagessubmit": "လေဝ်",
        "allpages-hide-redirects": "ထါင်ၮဲအ်ုထိုဝ်သယ် မ်ုအဝ်ကှ်ေသူး",
        "categories": "အ်ုဆုဂ်တုဂ်",
+       "linksearch-ok": "မ်ုအင်းၰူ့",
        "listgrouprights-members": "(ပ္ကုံစ်ုရင့်)",
        "emailuser": "ဆ်ုသုံ့က်ုဆာယိုဝ်ၯင်း မ်ုသုံ့ဖှ်ေအီးမေး",
        "emailusername": "ဆ်ုသုံႋဆာႋမိင်:",
        "protect-default": "ပၠယ်တဝ် ဆ်ုသုံႋဏင့်ဆာႋလုက်ဆိင့်",
        "restriction-edit": "သံင့်ၜးၯဴ",
        "restriction-move": "မ်ုသုဂ်",
+       "undelete-search-submit": "မ်ုအင်းၰူ့",
        "undelete-show-file-submit": "မွာဲ",
        "namespace": "အ်ုမၠိင်ထိုဝ်",
        "invert": "လုဲႋထသယ် ဗေ့မ်ုထာင်က္ဍာၯင်း",
        "sp-contributions-talk": "ဆ်ုခၠါင်ကါင်ကါ",
        "sp-contributions-userrights": "{{GENDER:$1|ဆ်ုသုံႋဆာႋ}}ခဝ့် ၜးၮေဝ်ႋအ်ုလူးအ်ုထာ့ မ်ုပိုင်ကြိုင်စီရေင့်",
        "sp-contributions-search": "အင်းၰူ့ဆ်ုမာၜိုဒ်မာဆိုင်",
-       "sp-contributions-username": "á\80¡á\80­á\80¯á\80\84á\80ºá\80\95á\80®á\80\9cá\80\84á\80ºá\80\8dá\80¬ á\80¡á\80­á\80¯á\80\9dá\80º á\80\86á\80ºá\80¯á\80\9eá\80¯á\80¶á\80·á\80\80á\80ºá\80¯á\80\86á\80¬á\80\99á\80­á\80\84á\80º :",
+       "sp-contributions-username": "á\80¡á\80«á\80\84á\80ºá\80\95á\80®á\80\9cá\80\84á\80ºá\80\8dá\80¬ á\80\99á\80½á\80¬á\80²á\80¡á\80­á\80¯á\80\9dá\80º á\80\86á\80ºá\80¯á\80\9eá\80¯á\80¶á\82\8bá\80\8fá\80\84á\80·á\80ºá\80\86á\80¬á\82\8bá\80\99á\80­á\80\84á\80º:",
        "sp-contributions-toponly": "ဟ်ုအင်းတံင်လိက်မေံသှ် မ်ုၮဲဖှ်ေ",
        "sp-contributions-newonly": "ဟ်ုအင်းတံင်လိက်မေံသှ် မ်ုၮဲဖှ်ေ",
        "sp-contributions-submit": "အင်းၰူ့",
        "whatlinkshere-hidelinks": "$1 လင့်ခ်သယ်",
        "whatlinkshere-hideimages": "ဖိုင်ႋဆ်ုထိုဝ်ၜုဂ်လ်ုဖး $1 ၮါင်း",
        "whatlinkshere-filters": "ဆၟိုဝ်သယ်လ်ုဖး",
+       "ipaddressorusername": "အါင်ပီလင်ဍာ မွာဲအိုဝ် ဆ်ုသုံႋဏင့်ဆာႋမိင်:",
        "ipboptions": "၂ နာႋဍီ:2 hours,၁ မူႋသင့်:1 day,၃ မူႋသင့်:3 days,၁ နိုဲ့:1 week,၂ နိုဲ့:2 weeks,လာ ၁ ၜိင်း:1 month,လာ ၃ ၜိင်း:3 months,လာ ၆ ၜိင်း:6 months,၁ ဏိင်း:1 year,လ်ုထုက်ၜးတ:infinite",
        "ipb-partial": "ပါဍီယာႋ",
-       "ipb-type-label": "အ်ုမိင်အ်ုကုဂ်",
        "ipb-pages-label": "လိက်မေံၜၠာ်လ်ုဖး",
+       "autoblocklist-submit": "မ်ုအင်းၰူ့",
+       "ipblocklist-submit": "မ်ုအင်းၰူ့",
        "infiniteblock": "အ်ုထုက်လ်ုအ်ှ",
        "blocklist-editing": "ဆ်ုအင်းတါင်",
        "blocklink": "ဍုဂ်အ်ှပွါ်",
        "tooltip-feed-atom": "လိက်မေံယိုဝ်ၯင်း Atom feed",
        "tooltip-t-contributions": "{{GENDER:$1|ဆ်ုသုံ့ဏင့်ဆာႋယိုဝ်}}ခဝ့် ဆ်ုအင်းမာလ်ုဖး စ်ုရင့်",
        "tooltip-t-emailuser": "{{GENDER:$1|ဆ်ုသုံ့ဆာအိုဝ်}} မ်ုသုံ့အီးမေး",
-       "tooltip-t-upload": "á\80\99á\80ºá\80¯á\80\95á\80¹á\80\90á\80¯á\80¶á\80\84á\80ºá\80\91á\80«á\80\84á\80ºá\80\96á\80­á\80¯á\80\84á\80ºá\82\8b",
+       "tooltip-t-upload": "á\80\99á\80ºá\80¯á\80\95á\80¹á\80\90á\80¶á\80\84á\80ºá\80\91á\80\84á\80ºá\80¸á\80\96á\80­á\80¯á\80\84á\80·á\80º",
        "tooltip-t-specialpages": "လိက်မေံ ခေါဟ် လုက်ဆိင့်",
        "tooltip-t-print": "လိက်မေံၜၠါ်ယိုဝ် မ်ုပ်ုရေန်ႋထုက်ထင်းပၞံင့်",
        "tooltip-t-permalink": "အ်ုယိုဝ်မူၯင်း အ်ုသီ့လင်ဍာ",
        "svg-long-desc": "SVG ဖိုင်ႋ, $1 × $2 pixels ၮှ် ဖှ်ေဆ်ုကုဂ်, ဖိုင်အ်ုခိင်ႋၯင်ႋ - $3",
        "show-big-image": "အ်ုလင်ႋလီ ဖိုင်ႋ",
        "show-big-image-preview": "အ်ုဍံင်ယိုဝ် အ်ုခိင်ႋၯင် - $1။",
-       "show-big-image-other": "ၰာၰံင် {{PLURAL:$2|လာၯင်ၰီး|လာၯင်ၰီးလ်ုဖး}}: $1။",
+       "show-big-image-other": "á\81°á\80¬á\82\8bá\81°á\80¶á\80\84á\80º {{PLURAL:$2|á\80\9cá\80¬á\81¯á\80\84á\80ºá\81°á\80®á\80¸|á\80\9cá\80¬á\81¯á\80\84á\80ºá\81°á\80®á\80¸á\80\9cá\80ºá\80¯á\80\96á\80¸}}: $1á\81\8b",
        "show-big-image-size": "$1 × $2 ပီဇယ်",
+       "ilsubmit": "မ်ုအင်းၰူ့",
        "metadata": "မီတာဒေတာႋ",
        "metadata-help": "ဖိုင်ႋယိုဝ်ဝယ် ဆ်ုပြိုင့်အ်ုၯာင်းအ်ုကျံင် ၰိုဲပ်ုလိတ်ၮ်ှ မွာဲသှ်ေဆေဝ်ႋ။ ဒီဂျစ်တယ် က်ုမ်ုရာ လ်ု စ်ုကင်နာလ်ုဖး ဆူ့ဍုဂ်ၰိုဲဖှ်ေၮှ် မွာသှ်ေဆေဝ်ႋ။\nအ်ုမွာဲၜိုဝ် ဖိုင်ႋအိုဝ် လါင်းလီသိုဝ် မ်ုအင်းလယ်စှ်ၜိုဝ် အ်ုခံင့်ထိုက်ၮှ် အင်းတင်ထဖိင်ႋသယ်ၮှ် ဍုဂ်ဍုဂ်ပါင်ပါင် မ်ုၯယ့်ထါင်လ်ုမွာဲ။",
        "metadata-fields": "metadata table ၮ်ှ ပုဂ်ၯာင် လိက်ဝယ်ယိုဝ် မာထာ့ Image 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",
        "namespacesall": "လုက်ဆိင့်",
        "monthsall": "လုက်ဆိင့်",
+       "imgmultipageprev": "\n← ၯံင်ခွိက် လိက်မေံၜၠါ်",
        "imgmultipagenext": "လိက်မေံၜၠာ် လ်ုခဝ့်အိုဝ်",
        "imgmultigo": "လေဝ်",
        "imgmultigoto": "လိက်မေံ $1 မ်ုလေဝ်",
+       "table_pager_next": "လ်ုယာ့လိက်မေံၜၠါ်",
+       "table_pager_prev": "ၯံင်ခွိက် လိက်မေံၜၠါ်",
+       "autoredircomment": "ထါင်ပ်ုယုံ့စိုဝ်ဝေ့ လိက်မေံၜၠါ်လ်ု [[$1]] ခဝ့်",
        "watchlistedit-raw-titles": "ခေါဟ်တင်လ်ုဖး",
        "watchlistedit-clear-titles": "ခေါဟ်တင်လ်ုဖး",
        "watchlisttools-clear": "ခိုဝ်ယောဝ်ႋစ်ုရင့်သယ် မ်ုအင်းဆိင့်",
        "redirect-page": "လိက်မေံၜၠါ် အိုင်ဒီ",
        "redirect-revision": "လိက်မေံၜၠါ် ဆ်ုအင်ႋတင်ႋ",
        "redirect-file": "ဖိုင်ႋမၠိင်",
+       "fileduplicatesearch-submit": "မ်ုအင်းၰူ့",
        "specialpages": "လိက်မေံၜၠါ်ခေါဟ်လ်ုဖး",
        "tag-filter": "[[Special:Tags|Tag]] ထုက်ပၠာၰင် -",
        "tag-list-wrapper": "[[Special:Tags|{{PLURAL:$1|လိက်ထိက်ၜုဂ်|လိက်ထိက်ၜုဂ်လ်ုဖး}}]]: $2",
index 706dff1..035733f 100644 (file)
        "blockip": "قاتىسۋشىنى بۇعاتتاۋ",
        "blockiptext": "تومەندەگى ٴپىشىن قاتىسۋشىنىڭ جازۋ رۇقساتىن بەلگىلى IP مەكەنجايىمەن نە اتىمەن بۇعاتتاۋ ٴۇشىن قولدانىلادى.\nبۇنى تەك بۇزاقىلىقتى قاقپايلاۋ ٴۇشىن جانە دە [[{{{{ns:mediawiki}}:Policy-url}}|ەرەجەلەر]] بويىنشا اتقارۋىڭىز ٴجون.\nتومەندە ٴتىيىستى سەبەبىن تولتىرىپ كورسەتىڭىز (مىسالى, دايەككە بۇزاقىلىقپەن وزگەرتكەن بەتتەردى كەلتىرىپ).",
        "ipaddressorusername": "IP مەكەنجايى نە قاتىسۋشى اتى:",
-       "ipbexpiry": "مەرزىمى بىتپەك:",
        "ipbreason": "سەبەبى:",
        "ipbreason-dropdown": "* بۇعاتتاۋدىڭ جالپى سەبەبتەرى\n** جالعان مالىمەت ەنگىزۋ\n** بەتتەردەگى ماعلۇماتتى الاستاۋ\n** شەتتىك توراپتار سىلتەمەلەرىن جاۋدىرۋ\n** بەتتەرگە ماعىناسىزدىق/بالدىرلاۋ كىرىستىرۋ\n** قوقانداۋ/قۋعىنداۋ مىنەزقۇلىق\n** بىرنەشە رەت تىركەلىپ قىيياناتتاۋ\n** ورەسكەل قاتىسۋشى اتى",
        "ipbcreateaccount": "تىركەلۋدى قاقپايلاۋ",
        "ipb-unblock-addr": "$1 دەگەندى بۇعاتتاماۋ",
        "ipb-unblock": "قاتىسۋشى اتىن نەمەسە IP مەكەنجايىن بۇعاتتاماۋ",
        "ipb-blocklist": "بار بۇعاتتاۋلاردى قاراۋ",
+       "block-expiry": "مەرزىمى بىتپەك:",
        "unblockip": "قاتىسۋشىنى بۇعاتتاماۋ",
        "unblockiptext": "تومەندەگى ٴپىشىندى الدىنداعى IP مەكەنجايىمەن نە اتىمەن بۇعاتتالعان قاتىسۋشىعا جازۋ قاتىناۋىن قالپىنا كەلتىرىۋى ٴۇشىن قولدانىڭىز.",
        "ipusubmit": "وسى مەكەنجايدى بۇعاتتاماۋ",
index fd860d5..5b01780 100644 (file)
        "blockip": "{{GENDER:$1|Қатысушыны}} бұғаттау",
        "blockiptext": "Төмендегі форманы жазу рұқсатын белгілі IP мекенжайынан не қатысушы есімінен бұғаттау үшін қолданыңыз.\nБұны тек бұзақылықты болдырмау үшін және де [[{{MediaWiki:Policy-url}}|ережелер]] бойынша атқаруыңыз кажет.\nТөменге тиісті себебін көрсетіңіз (мысалы дәлелге бұзақылықпен өзгертілген беттерді келтіріңіз).",
        "ipaddressorusername": "IP-мекенжайы немесе қатысушы аты:",
-       "ipbexpiry": "Мерзімі бітпек:",
        "ipbreason": "Себебі:",
        "ipbreason-dropdown": "* Бұғаттаудың жалпы себебтері\n** Жалған мәлімет енгізу\n** Беттердегі мағлұматты аластау\n** Сыртқы сайттар сілтемелерін жаудыру\n** Беттерге мағынасыздық/балдырлау кірістіру\n** Қоқандау/қуғындау мінезқұлық\n** Бірнеше рет тіркеліп қиянаттау\n** Өрескел қатысушы аты",
        "ipb-hardblock": "Бұл IP мекен-жайы арқылы тіркелген қатысушылардың өңдеуіне кедергі жасау",
        "ipb-unblock": "Қатысушы атын немесе IP мекенжайын бұғаттамау",
        "ipb-blocklist": "Бұғатталғандарды қарау",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} есімді қатысушының үлесі",
+       "block-expiry": "Мерзімі бітпек:",
        "unblockip": "Қатысушыны бұғатынан босату",
        "unblockiptext": "Төмендегі форманы IP мекенжайымен не қатысушы есімімен алдын-ала бұғатталған қатысушыға жазу рұқсатын қалпына келтіріу үшін қолданыңыз.",
        "ipusubmit": "Осы бұғаттауды алып тастау",
index 09cfe49..cff2663 100644 (file)
        "blockip": "Qatıswşını buğattaw",
        "blockiptext": "Tömendegi pişin qatıswşınıñ jazw ruqsatın belgili IP mekenjaýımen ne atımen buğattaw üşin qoldanıladı.\nBunı tek buzaqılıqtı qaqpaýlaw üşin jäne de [[{{{{ns:mediawiki}}:Policy-url}}|erejeler]] boýınşa atqarwıñız jön.\nTömende tïisti sebebin toltırıp körsetiñiz (mısalı, däýekke buzaqılıqpen özgertken betterdi keltirip).",
        "ipaddressorusername": "IP mekenjaýı ne qatıswşı atı:",
-       "ipbexpiry": "Merzimi bitpek:",
        "ipbreason": "Sebebi:",
        "ipbreason-dropdown": "* Buğattawdıñ jalpı sebebteri\n** Jalğan mälimet engizw\n** Betterdegi mağlumattı alastaw\n** Şettik toraptar siltemelerin jawdırw\n** Betterge mağınasızdıq/baldırlaw kiristirw\n** Qoqandaw/qwğındaw minezqulıq\n** Birneşe ret tirkelip qïyanattaw\n** Öreskel qatıswşı atı",
        "ipbcreateaccount": "Tirkelwdi qaqpaýlaw",
        "ipb-unblock-addr": "$1 degendi buğattamaw",
        "ipb-unblock": "Qatıswşı atın nemese IP mekenjaýın buğattamaw",
        "ipb-blocklist": "Bar buğattawlardı qaraw",
+       "block-expiry": "Merzimi bitpek:",
        "unblockip": "Qatıswşını buğattamaw",
        "unblockiptext": "Tömendegi pişindi aldındağı IP mekenjaýımen ne atımen buğattalğan qatıswşığa jazw qatınawın qalpına keltiriwi üşin qoldanıñız.",
        "ipusubmit": "Osı mekenjaýdı buğattamaw",
index 78eb300..0a972b5 100644 (file)
        "changeemail-no-info": "អ្នក​ចាំបាច់​ត្រូវតែ​កត់ឈ្មោះចូល ដើម្បី​ចូលទៅកាន់​ទំព័រ​នេះ​ដោយផ្ទាល់​។",
        "changeemail-oldemail": "អាសយដ្ឋានអ៊ីមែលបច្ចុប្បន្ន៖",
        "changeemail-newemail": "អាសយដ្ឋានអ៊ីមែលថ្មី៖",
+       "changeemail-newemail-help": "កុំវាយបញ្ចូលអ្វីទាំងអស់ក្នុងប្រអប់នេះ បើសិនជាអ្នកចង់លុបអាសយដ្ឋានអ៊ីមែលរបស់អ្នកចេញ។ អ្នកនឹងមិនអាចកំណត់ពាក្យសម្ងាត់ឡើងវិញទេពេលភ្លេចវា ហើយក៏មិនអាចទទួលអ៊ីមែលពីវិគីនេះដែរ បើសិនជាអាសយដ្ឋានអ៊ីមែលត្រូវបានលុបចេញ។",
        "changeemail-none": "(គ្មាន​)",
        "changeemail-password": "ពាក្យសម្ងាត់{{SITENAME}}របស់អ្នក៖",
        "changeemail-submit": "ផ្លាស់ប្ដូរអ៊ីមែល",
        "savearticle": "រក្សាទំព័រទុក",
        "savechanges": "រក្សាទុកបន្លាស់ប្ដូរ",
        "publishpage": "ផ្សព្វផ្សាយទំព័រ",
-       "publishchanges": "á\9e\95á\9f\92á\9e\9fá\9e\96á\9f\92á\9e\9cá\9e\95á\9f\92á\9e\9fá\9e¶á\9e\99á\9e\80á\9e¶á\9e\9aá\9e\95á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8fូរ",
+       "publishchanges": "á\9e\95á\9f\92á\9e\9fá\9e\96á\9f\92á\9e\9cá\9e\95á\9f\92á\9e\9fá\9e¶á\9e\99á\9e\94á\9e\93á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aូរ",
        "savearticle-start": "រក្សាទុកទំព័រ...",
        "savechanges-start": "រក្សាទុកបន្លាស់ប្ដូរ...",
        "publishpage-start": "បោះផ្សាយទំព័រ...",
        "userinvalidconfigtitle": "'''ប្រយ័ត្ន៖''' គ្មានសំបក \"$1\"។ ចងចាំថា ទំព័រផ្ទាល់ខ្លួន .css និង .js ប្រើប្រាស់ ចំណងជើង ជាអក្សរតូច, ឧទាហរណ៍  {{ns:user}}:Foo/vector.css ត្រឹមត្រូវ, រីឯ {{ns:user}}:Foo/Vector.css មិនត្រឹមត្រូវ។",
        "updated": "(បានបន្ទាន់សម័យ)",
        "note": "'''ចំណាំ៖'''",
-       "previewnote": "'''សូមចាំថានេះគ្រាន់តែជា​ការបង្ហាញការមើលជាមុនប៉ុណ្ណោះ។ បន្លាស់ប្ដូរ​របស់អ្នកមិនទាន់បាន​រក្សាទុកទេ!'''",
+       "previewnote": "<strong>សូមចាំថានេះគ្រាន់តែជា​ការបង្ហាញការមើលជាមុនប៉ុណ្ណោះ។ បន្លាស់ប្ដូរ​របស់អ្នកមិនទាន់បាន​រក្សាទុកទេ!</strong>",
        "continue-editing": "ទៅកាន់កន្លែងសំរាប់ធ្វើការកែប្រែ",
        "previewconflict": "ការមើលមុននេះយោងតាមអត្ថបទក្នុងប្រអប់កែប្រែខាងលើ។ ទំព័រអត្ថបទនឹងបង្ហាញចេញបែបនេះប្រសិនបើអ្នកជ្រើសរើសរក្សាទុក។",
        "session_fail_preview": "'''សូមអភ័យទោស! យើងមិនអាចរក្សាទុកការកែប្រែរបស់អ្នកបានទេ ដោយសារបាត់ទិន្នន័យវេនការងារ។\n\nសូមព្យាយាមម្តងទៀត។\n\nបើនៅតែមិនបានទេ សូមព្យាយាម[[Special:UserLogout|កត់ឈ្មោះចេញ]] រួចកត់ឈ្មោះចូលឡើងវិញ។'''",
        "editingsection": "កំពុងកែប្រែ'''$1'''(ផ្នែក)",
        "editingcomment": "កែប្រែ $1 (ផ្នែកថ្មី)",
        "editconflict": "ភាពឆ្គងនៃកំណែប្រែ៖ $1",
-       "explainconflict": "á\9e\85á\9e¶á\9e\94á\9f\8bá\9e\8fá\9e¶á\9f\86á\9e\84á\9e\96á\9e¸á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9e¶á\9e\93á\9e\94á\9e\84á\9f\92á\9e\80á\9e¾á\9e\8fá\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\93á\9f\81á\9f\87á\9e\98á\9e\80 á\9e\98á\9e¶á\9e\93á\9e¢á\9f\92á\9e\93á\9e\80á\9e\8aá\9e\91á\9f\83á\9e\94á\9e¶á\9e\93á\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\9cá\9e¶á\9e á\9e¾á\9e\99á\9f\94 á\9e\95á\9f\92á\9e\93á\9f\82á\9e\80á\9e\81á\9e¶á\9e\84á\9e\9bá\9e¾á\9e\93á\9f\83á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e¢á\9e\8fá\9f\92á\9e\90á\9e\94á\9e\91 á\9e\82á\9eºá\9e\87á\9e¶á\9e\80á\9f\86á\9e\8eá\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\90á\9f\92á\9e\98á\9e¸á\9f\94 á\9e\80á\9f\86á\9e\8eá\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e¢á\9f\92á\9e\93á\9e\80 á\9e\82á\9eºá\9e\93á\9f\85á\9e\95á\9f\92á\9e\93á\9f\82á\9e\80á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98á\9f\94 á\9e\85á\9e¼á\9e\9aá\9e\8aá\9e¶á\9e\80á\9f\8bá\9e\80á\9f\86á\9e\8eá\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9e\89á\9f\92á\9e\85á\9e¼á\9e\9bá\9e\82á\9f\92á\9e\93á\9e¶á\9e\87á\9e¶á\9e\98á\9e½á\9e\99á\9e¢á\9e\8fá\9f\92á\9e\90á\9e\94á\9e\91á\9e\8aá\9f\82á\9e\9bá\9e\98á\9e¶á\9e\93á\9e\93á\9f\85á\9e\95á\9f\92á\9e\93á\9f\82á\9e\80á\9e\81á\9e¶á\9e\84á\9e\9bá\9e¾á\9f\94â\80\8b\n<strong>á\9e¢á\9e\8fá\9f\92á\9e\90á\9e\94á\9e\91á\9e\93á\9f\85á\9e\95á\9f\92á\9e\93á\9f\82á\9e\80á\9e\81á\9e\81á\9e¶á\9e\84á\9e\9bá\9e¾</strong> á\9e\93á\9e¹á\9e\84á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\9aá\9e\80á\9f\92á\9e\9fá\9e¶á\9e\91á\9e»á\9e\80 á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bá\9e¢á\9f\92á\9e\93á\9e\80 á\9e\85á\9e»á\9e\85\"á\9e\9aá\9e\80á\9f\92á\9e\9fá\9e¶á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9a\"។",
+       "explainconflict": "á\9e\85á\9e¶á\9e\94á\9f\8bá\9e\8fá\9e¶á\9f\86á\9e\84á\9e\96á\9e¸á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9e¶á\9e\93á\9e\94á\9e\84á\9f\92á\9e\80á\9e¾á\9e\8fá\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\93á\9f\81á\9f\87á\9e\98á\9e\80 á\9e\98á\9e¶á\9e\93á\9e¢á\9f\92á\9e\93á\9e\80á\9e\8aá\9e\91á\9f\83á\9e\94á\9e¶á\9e\93á\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\9cá\9e¶á\9e á\9e¾á\9e\99á\9f\94 á\9e\95á\9f\92á\9e\93á\9f\82á\9e\80á\9e\81á\9e¶á\9e\84á\9e\9bá\9e¾á\9e\93á\9f\83á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e¢á\9e\8fá\9f\92á\9e\90á\9e\94á\9e\91 á\9e\82á\9eºá\9e\87á\9e¶á\9e\80á\9f\86á\9e\8eá\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\90á\9f\92á\9e\98á\9e¸á\9f\94 á\9e\80á\9f\86á\9e\8eá\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e¢á\9f\92á\9e\93á\9e\80 á\9e\82á\9eºá\9e\93á\9f\85á\9e\95á\9f\92á\9e\93á\9f\82á\9e\80á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98á\9f\94 á\9e\85á\9e¼á\9e\9aá\9e\8aá\9e¶á\9e\80á\9f\8bá\9e\80á\9f\86á\9e\8eá\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9e\89á\9f\92á\9e\85á\9e¼á\9e\9bá\9e\82á\9f\92á\9e\93á\9e¶á\9e\87á\9e¶á\9e\98á\9e½á\9e\99á\9e¢á\9e\8fá\9f\92á\9e\90á\9e\94á\9e\91á\9e\8aá\9f\82á\9e\9bá\9e\98á\9e¶á\9e\93á\9e\93á\9f\85á\9e\95á\9f\92á\9e\93á\9f\82á\9e\80á\9e\81á\9e¶á\9e\84á\9e\9bá\9e¾á\9f\94â\80\8b\n<strong>á\9e\98á\9e¶á\9e\93á\9e\8fá\9f\82</strong>á\9e¢á\9e\8fá\9f\92á\9e\90á\9e\94á\9e\91á\9e\93á\9f\85á\9e\95á\9f\92á\9e\93á\9f\82á\9e\80á\9e\81á\9e¶á\9e\84á\9e\9bá\9e¾á\9e\91á\9f\81á\9e\93á\9e¹á\9e\84á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\9aá\9e\80á\9f\92á\9e\9fá\9e¶á\9e\91á\9e»á\9e\80 á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bá\9e¢á\9f\92á\9e\93á\9e\80 á\9e\85á\9e»á\9e\85\"$1\"។",
        "yourtext": "អត្ថបទរបស់អ្នក",
        "storedversion": "កំណែដែលបានស្តារឡើងវិញ",
-       "editingold": "'''បម្រាម:អ្នកកំពុងតែកែកំណែប្រែដែលហួសសម័យរបស់ទំព័រនេះ។\n\nប្រសិនបើអ្នករក្សាវាទុក កំណែប្រែពីមុនទាំងប៉ុន្មាននឹងត្រូវបាត់បង់។'''",
+       "editingold": "<strong>បម្រាម:អ្នកកំពុងតែកែកំណែប្រែដែលហួសសម័យរបស់ទំព័រនេះ។</strong>\n\nប្រសិនបើអ្នករក្សាវាទុក កំណែប្រែពីមុនទាំងប៉ុន្មាននឹងត្រូវបាត់បង់។",
        "yourdiff": "ចំណុចខុសគ្នា",
        "copyrightwarning": "សូមធ្វើការកត់សម្គាល់​ថា គ្រប់ការរួមចំណែក​របស់អ្នក​នៅលើ{{SITENAME}} ត្រូវបាន​ផ្សព្វផ្សាយ​តាម​លិខិតអនុញ្ញាត $2 (សូម​មើល $1 សម្រាប់​ព័ត៌មាន​លម្អិត) ។ បើអ្នកមិនចង់ឱ្យ​​ត្រូវបានអ្នកដទៃធ្វើការកែប្រែ ផ្សព្វផ្សាយបន្តសំណេរ​របស់អ្នកទេនោះ សូមអ្នកកុំដាក់​ស្នើវា​នៅទីនេះអី។<br />\nអ្នកត្រូវសន្យាថា ​អ្នកសរសេរវា​ដោយខ្លួនអ្នក ឬបានចម្លងវា​ពី​កម្មសិទ្ធិសាធារណៈឬពីប្រភពសេរី ។\n'''មិនត្រូវ​ដាក់ស្នើ​ការងារមានជាប់កម្មសិទ្ឋិបញ្ញាដោយគ្មានការអនុញ្ញាតទេ!'''",
        "copyrightwarning2": "សូមធ្វើការកត់សម្គាល់​ថា គ្រប់ការរួមចំណែក​ទៅ {{SITENAME}} អាច​ត្រូវបាន​កែប្រែ​ ផ្លាស់ប្ដូរ រឺលុបចោល ដោយអ្នករួមចំណែកដទៃទៀត។\n\nបើអ្នកមិនចង់ឱ្យ​​ត្រូវបានអ្នកដទៃធ្វើការកែប្រែទេនោះ សូមអ្នកកុំដាក់​ស្នើវា​នៅទីនេះអី។<br />\nអ្នកត្រូវសន្យាថា ​អ្នកសរសេរវា​ដោយខ្លួនអ្នក ឬបានចម្លងវា​ពី​កម្មសិទ្ធិសាធារណៈឬពីប្រភពសេរី (សូមមើល $1សំរាប់ព័ត៌មានលំអិត)។\n\n'''មិនត្រូវ​ដាក់ស្នើ​ការងារមានជាប់កម្មសិទ្ឋិបញ្ញាដោយគ្មានការអនុញ្ញាតទេ!'''",
        "defaultmessagetext": "អត្ថបទសារតាមលំនាំដើម",
        "invalid-content-data": "ខ្លឹមសារទិន្នន័យគ្មានសុពលភាព",
        "content-not-allowed-here": "មិនអនុញ្ញាតិអោយសរសេរខ្លឹមសារ\"$1\" នៅលើទំព័រ [[:$2]] ទេ។",
-       "editwarning-warning": "á\9e\85á\9e¶á\9e\80á\9e\85á\9f\81á\9e\89á\9e\96á\9e¸á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\93á\9f\81á\9f\87 á\9e\93á\9e¹á\9e\84á\9e\92á\9f\92á\9e\9cá\9e¾á\9e²á\9f\92á\9e\99á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9e¶á\9e\8fá\9f\8bá\9e\94á\9e\84á\9f\8bá\9e\80á\9f\86á\9e\8eá\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82ដែលអ្នកបានធ្វើ។\nប្រសិនបើអ្នកបាន​កត់ឈ្មោះចូលរួចហើយ អ្នកអាច​បិទ​បម្រាម​នេះ​នៅ​ក្នុងផ្នែក​ \"{{int:prefs-editing}}\" នៃ​ចំណង់ចំណូល​ចិត្ត​របស់​អ្នក​។",
+       "editwarning-warning": "á\9e\85á\9e¶á\9e\80á\9e\85á\9f\81á\9e\89á\9e\96á\9e¸á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\93á\9f\81á\9f\87 á\9e\93á\9e¹á\9e\84á\9e\92á\9f\92á\9e\9cá\9e¾á\9e²á\9f\92á\9e\99á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9e¶á\9e\8fá\9f\8bá\9e\94á\9e\84á\9f\8bá\9e\94á\9e\93á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aដែលអ្នកបានធ្វើ។\nប្រសិនបើអ្នកបាន​កត់ឈ្មោះចូលរួចហើយ អ្នកអាច​បិទ​បម្រាម​នេះ​នៅ​ក្នុងផ្នែក​ \"{{int:prefs-editing}}\" នៃ​ចំណង់ចំណូល​ចិត្ត​របស់​អ្នក​។",
        "content-model-wikitext": "អត្ថបទវិគី",
        "content-model-text": "អត្ថបទសុទ្ធ",
        "content-model-javascript": "JavaScript",
        "post-expand-template-inclusion-category": "ទំព័រទាំងឡាយដែលមានបញ្ចូលទំព័រគំរូហួសចំណុះ",
        "post-expand-template-argument-category": "ទំព័រ​ដែល​មាន​ផ្ទុក​នូវ​ការ​ពិភាក្សា​នៃ​គំរូ​ដែល​បាន​បោះបង់​",
        "parser-template-loop-warning": "បាន​រក​ឃើញ​រង្វិលជុំ​របស់ទំព័រគំរូ​៖ [[$1]]",
-       "undo-success": "á\9e\80á\9e¶á\9e\9aá\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\82á\9eºá\9e\98á\9e·á\9e\93á\9e¢á\9e¶á\9e\85á\9e\94á\9e\89á\9f\92á\9e\85á\9e\94á\9f\8bá\9f\94 á\9e\9fá\9e¼á\9e\98á\9e\96á\9e·á\9e\93á\9e·á\9e\8fá\9f\92á\9e\99â\80\8bá\9e\80á\9e¶á\9e\9aá\9e\94á\9f\92á\9e\9aá\9f\80á\9e\94á\9e\92á\9f\80á\9e\94á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98á\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\95á\9f\92á\9e\91á\9f\80á\9e\84á\9e\95á\9f\92á\9e\91á\9e¶á\9e\8fá\9f\8bá\9e\90á\9e¶â\80\8bá\9e\93á\9f\81á\9f\87á\9e\82á\9eºá\9e\87á\9e¶á\9e¢á\9f\92á\9e\9cá\9e¸á\9e\8aá\9f\82á\9e\9bá\9e¢á\9f\92á\9e\93á\9e\80á\9e\85á\9e\84á\9f\8bá\9e\92á\9f\92á\9e\9cá\9e¾á\9e á\9e¾á\9e\99á\9e\94á\9e\93á\9f\92á\9e\91á\9e¶á\9e\94á\9f\8bá\9e\98á\9e\80á\9e\91á\9f\80á\9e\8fâ\80\8bá\9e\9aá\9e\80á\9f\92á\9e\9fá\9e¶á\9e\94á\9f\86á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98á\9e\91á\9e»á\9e\80 á\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\94á\9e\89á\9f\92á\9e\85á\9e\94á\9f\8bá\9e\80á\9e¶á\9e\9aá\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\8aá\9f\82á\9e\9bá\9e\98á\9e·á\9e\93á\9e\91á\9e¶á\9e\93á\9f\8bá\9e\9aá\9e½á\9e\85á\9e\9aá\9e¶á\9e\9bá\9f\8b។",
+       "undo-success": "á\9e\80á\9e¶á\9e\9aá\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e¢á\9e¶á\9e\85á\9e\88á\9e\94á\9f\8bá\9e\92á\9f\92á\9e\9cá\9e¾á\9e\9cá\9e·á\9e\89á\9e\94á\9e¶á\9e\93 \ná\9e\9fá\9e¼á\9e\98á\9e\96á\9e·á\9e\93á\9e·á\9e\8fá\9f\92á\9e\99â\80\8bá\9e\80á\9e¶á\9e\9aá\9e\94á\9f\92á\9e\9aá\9f\80á\9e\94á\9e\92á\9f\80á\9e\94á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98á\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\95á\9f\92á\9e\91á\9f\80á\9e\84á\9e\95á\9f\92á\9e\91á\9e¶á\9e\8fá\9f\8bá\9e\90á\9e¶â\80\8bá\9e\93á\9f\81á\9f\87á\9e\82á\9eºá\9e\87á\9e¶á\9e¢á\9f\92á\9e\9cá\9e¸á\9e\8aá\9f\82á\9e\9bá\9e¢á\9f\92á\9e\93á\9e\80á\9e\85á\9e\84á\9f\8bá\9e\92á\9f\92á\9e\9cá\9e¾á\9e á\9e¾á\9e\99á\9e\94á\9e\93á\9f\92á\9e\91á\9e¶á\9e\94á\9f\8bá\9e\98á\9e\80á\9e\91á\9f\80á\9e\8fâ\80\8bá\9e\9aá\9e\80á\9f\92á\9e\9fá\9e¶á\9e\94á\9e\93á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98á\9e\91á\9e»á\9e\80 á\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\94á\9e\89á\9f\92á\9e\85á\9e\94á\9f\8bá\9e\80á\9e¶á\9e\9aá\9e\88á\9e\94á\9f\8bá\9e\92á\9f\92á\9e\9cá\9e¾á\9e\80á\9e¶á\9e\9aá\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\9cá\9e·á\9e\89។",
        "undo-failure": "កំណែ​មិន​អាច​មិន​ធ្វើ​ឡើង​វិញ​បាន​ទេ​ ដោយ​សារ​ការ​ធ្វើ​ឲ្យ​មាន​ជម្លោះ​កំណែ​នៅ​ចន្លោះ​កណ្ដាល​។",
        "undo-norev": "កំណែ​មិន​អាច​មិន​ធ្វើ​ឡើង​វិញ​បាន​ទេ​ ពីព្រោះ​វា​មិន​មាន​ឬ​ត្រូវ​បាន​លុប​បាត់​ទៅ​ហើយ​។",
        "undo-summary": "មិន​ធ្វើ​វិញ​នូវ​កំណែ​ប្រែ $1 ដោយ​ [[Special:Contributions/$2|$2]] ([[User talk:$2|ការពិភាក្សា​]])",
        "prefs-tokenwatchlist": "កូនសោរ",
        "prefs-diffs": "ភាពខុសគ្នា",
        "prefs-help-prefershttps": "ចំណង់ចំណូលចិត្តនេះនឹងមានប្រសិទ្ធិភាពពេលអ្នកកត់ឈ្មោះចូលលើកក្រោយ។",
-       "prefswarning-warning": "á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9e¶á\9e\93á\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82ចំណង់ចំណូលចិត្តតែមិនទាន់បានរក្សាទុកទេ។ បើសិនជាអ្នកចាកចេញពីទំព័រនេះដោយមិនបានចុច \"$1\" ទេនោះចំណង់ចំណូលចិត្តរបស់អ្នកនឹងមិនត្រូវបន្ទាន់សម័យទេ។",
+       "prefswarning-warning": "á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9e¶á\9e\93á\9e\95á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aចំណង់ចំណូលចិត្តតែមិនទាន់បានរក្សាទុកទេ។ បើសិនជាអ្នកចាកចេញពីទំព័រនេះដោយមិនបានចុច \"$1\" ទេនោះចំណង់ចំណូលចិត្តរបស់អ្នកនឹងមិនត្រូវបន្ទាន់សម័យទេ។",
        "userrights": "សិទ្ធិអ្នកប្រើប្រាស់",
        "userrights-lookup-user": "ជ្រើសរើសអ្នកប្រើប្រាស់",
        "userrights-user-editname": "បញ្ចូលអត្តនាម៖",
        "userrights-expiry-options": "១ថ្ងៃ:1 day,១សប្ដាហ៍:1 week,១ខែ:1 month,៣ខែ:3 months,៦ខែ:6 months,១ឆ្នាំ:1 year",
        "userrights-invalid-expiry": "កាលបរិច្ឆេទផុតកំណត់សម្រាប់ក្រុម \"$1\" មិនត្រឹមត្រូវ។",
        "userrights-expiry-in-past": "កាលបរិច្ឆេទផុតកំណត់សម្រាប់ក្រុម \"$1\" ស្ថិតក្នុងអតីតកាល។",
-       "userrights-conflict": "á\9e\98á\9e¶á\9e\93á\9e\91á\9f\86á\9e\93á\9e¶á\9e\9fá\9f\8bá\9e¢á\9f\86á\9e\96á\9e¸á\9e\80á\9e¶á\9e\9aá\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\9fá\9e·á\9e\91á\9f\92á\9e\92á\9e·á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b! á\9e\9fá\9e¼á\9e\98á\9e\8fá\9f\92á\9e\9aá\9e½á\9e\8fá\9e\96á\9e·á\9e\93á\9e·á\9e\8fá\9f\92á\9e\99á\9e¡á\9e¾á\9e\84á\9e\9cá\9e·á\9e\89á\9e\9aá\9e½á\9e\85á\9e¢á\9f\87á\9e¢á\9e¶á\9e\84á\9e\96á\9e¸á\9e\80á\9e¶á\9e\9aá\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82របស់អ្នក។",
+       "userrights-conflict": "á\9e\98á\9e¶á\9e\93á\9e\91á\9f\86á\9e\93á\9e¶á\9e\9fá\9f\8bá\9e¢á\9f\86á\9e\96á\9e¸á\9e\80á\9e¶á\9e\9aá\9e\95á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\9fá\9e·á\9e\91á\9f\92á\9e\92á\9e·á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b! á\9e\9fá\9e¼á\9e\98á\9e\8fá\9f\92á\9e\9aá\9e½á\9e\8fá\9e\96á\9e·á\9e\93á\9e·á\9e\8fá\9f\92á\9e\99á\9e¡á\9e¾á\9e\84á\9e\9cá\9e·á\9e\89á\9e\9aá\9e½á\9e\85á\9e¢á\9f\87á\9e¢á\9e¶á\9e\84á\9e\94á\9e\93á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aរបស់អ្នក។",
        "group": "ក្រុម៖",
        "group-user": "អ្នកប្រើប្រាស់",
        "group-autoconfirmed": "អ្នកប្រើប្រាស់ទទួលស្គាល់ដោយស្វ័យប្រវត្តិ",
        "right-deletelogentry": "លប់និងឈប់លុបកំណត់ហេតុច្បាស់លាស់ណាមួយ",
        "right-deleterevision": "លុប​និង​ឈប់​លុប​កំណែ​ប្រែ​ច្បាស់លាស់​នៃ​ទំព័រ​",
        "right-deletedhistory": "មើលកំណត់ត្រាប្រវត្តិដែលត្រូវបានលុបចោល ដោយគ្មានអត្ថបទភ្ជាប់របស់វា",
-       "right-deletedtext": "á\9e\98á\9e¾á\9e\9bá\9e\95á\9f\92á\9e\93á\9f\82á\9e\80á\9e¢á\9e\8fá\9f\92á\9e\90á\9e\94á\9e\91á\9e\8aá\9f\82á\9e\9bá\9e\94á\9e¶á\9e\93á\9e\9bá\9e\94á\9f\8bនិងបន្លាស់ប្ដូររវាងកំណែទាំងឡាយដែលបានលុបចោល",
+       "right-deletedtext": "á\9e\98á\9e¾á\9e\9bá\9e\95á\9f\92á\9e\93á\9f\82á\9e\80á\9e¢á\9e\8fá\9f\92á\9e\90á\9e\94á\9e\91á\9e\8aá\9f\82á\9e\9bá\9e\94á\9e¶á\9e\93á\9e\9bá\9e»á\9e\94á\9e\85á\9f\84á\9e\9bនិងបន្លាស់ប្ដូររវាងកំណែទាំងឡាយដែលបានលុបចោល",
        "right-browsearchive": "ស្វែងរកទំព័រដែលត្រូវបានលុបចោល",
        "right-undelete": "ឈប់លុបទំព័រមួយ",
        "right-suppressrevision": "ពិនិត្យនិងស្ដារកំណែដែលអភិបាលបានលាក់",
        "newuserlogpage": "កំណត់ហេតុនៃការបង្កើតគណនី",
        "newuserlogpagetext": "នេះជាកំណត់ហេតុនៃការបង្កើតអ្នកប្រើប្រាស់។",
        "rightslog": "កំណត់ហេតុនៃការប្តូរសិទ្ធិអ្នកប្រើប្រាស់",
-       "rightslogtext": "á\9e\93á\9f\81á\9f\87â\80\8bá\9e\87á\9e¶â\80\8bá\9e\80á\9f\86á\9e\8eá\9e\8fá\9f\8bá\9e á\9f\81á\9e\8fá\9e»á\9e\93á\9f\83á\9e\94á\9f\86á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\85á\9f\86á\9e\96á\9f\84á\9f\87á\9e\80á\9e¶á\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\9fá\9e\98á\9e¶á\9e\87á\9e·á\9e\80á\9e\97á\9e¶á\9e\96â\80\8bរបស់​អ្នកប្រើប្រាស់។",
+       "rightslogtext": "á\9e\93á\9f\81á\9f\87â\80\8bá\9e\87á\9e¶â\80\8bá\9e\80á\9f\86á\9e\8eá\9e\8fá\9f\8bá\9e á\9f\81á\9e\8fá\9e»á\9e\93á\9f\83á\9e\94á\9e\93á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\9fá\9e·á\9e\91á\9f\92á\9e\92á\9e·របស់​អ្នកប្រើប្រាស់។",
        "action-read": "អានទំព័រនេះ",
        "action-edit": "កែប្រែទំព័រនេះ",
        "action-createpage": "បង្កើតទំព័រនេះ",
        "rcfilters-filter-watchlistactivity-unseen-label": "បន្លាស់ប្ដូរមិនទាន់មើល",
        "rcfilters-filter-watchlistactivity-unseen-description": "បន្លាស់ប្ដូរទំព័រដែលអ្នកមិនទាន់ទៅបើកមើលតាំងពីពេលដែលបន្លាស់ប្ដូរបានធ្វើឡើង។",
        "rcfilters-filter-watchlistactivity-seen-label": "បន្លាស់ប្ដូរមើលរួច",
-       "rcfilters-filter-watchlistactivity-seen-description": "បន្លាស់ទំព័រដែលអ្នកបានទៅបើកមើលរួចតាំងពីពេលដែលបន្លាស់ប្ដូរបានធ្វើឡើង។",
+       "rcfilters-filter-watchlistactivity-seen-description": "á\9e\94á\9e\93á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\8aá\9f\82á\9e\9bá\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9e¶á\9e\93á\9e\91á\9f\85á\9e\94á\9e¾á\9e\80á\9e\98á\9e¾á\9e\9bá\9e\9aá\9e½á\9e\85á\9e\8fá\9e¶á\9f\86á\9e\84á\9e\96á\9e¸á\9e\96á\9f\81á\9e\9bá\9e\8aá\9f\82á\9e\9bá\9e\94á\9e\93á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\94á\9e¶á\9e\93á\9e\92á\9f\92á\9e\9cá\9e¾á\9e¡á\9e¾á\9e\84á\9f\94",
        "rcfilters-filtergroup-changetype": "ប្រភេទបន្លាស់ប្ដូរ",
        "rcfilters-filter-pageedits-label": "កំណែប្រែទំព័រ",
        "rcfilters-filter-pageedits-description": "កំណែប្រែខ្លឹមសារអត្ថបទ ទំព័រពិភាក្សា ការពណ៌នាចំណាត់ថ្នាក់ក្រុម...",
        "unusedimages": "ឯកសារមិនប្រើ",
        "wantedcategories": "ចំណាត់ថ្នាក់ក្រុមត្រូវការ",
        "wantedpages": "ទំព័រ​ត្រូវការ",
+       "wantedpages-summary": "បញ្ជីទំព័រដែលមិនទាន់មានដែលមានតំណភ្ជាប់មកច្រើន ដោយមិនរាប់ចូលទំព័រដែលមានតែការបញ្ជូនបន្តមក។ សម្រាប់បញ្ជីទំព័រដែលមិនទាន់មានដែលមានការបញ្ជូនបន្តមក សូមមើល [[{{#special:BrokenRedirects}}|បញ្ជីការបញ្ជូនបន្តដែលខូច]]។",
        "wantedpages-badtitle": "ចំណងជើង​មិន​ត្រឹមត្រូវ​នៅ​ក្នុង​សំនុំ​លទ្ធផល​៖ $1",
        "wantedfiles": "ឯកសារត្រូវការ",
        "wantedtemplates": "ទំព័រគំរូត្រូវការ",
        "deadendpages": "ទំព័រ​ទាល់",
        "deadendpagestext": "ទំព័រដូចតទៅនេះមិនតភ្ជាប់ទៅទំព័រដទៃទៀតក្នុង {{SITENAME}} ទេ។",
        "protectedpages": "ទំព័រដែលត្រូវបានការពារ",
+       "protectedpages-filters": "តម្រង៖",
        "protectedpages-indef": "សម្រាប់តែការការពារដែលមិនកំណត់ប៉ុណ្ណោះ",
        "protectedpages-summary": "ទំព័រនេះរាយបញ្ជីទំព័រដែលកំពុងត្រូវបានការពារ។ សម្រាប់បញ្ជីចំណងជើងទាំងឡាយដែលស្ថិតនៅក្រោមការការពារមិនអោយបង្កើត សូមមើលនៅ [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]]។",
        "protectedpages-cascade": "សម្រាប់ការការពារជាថ្នាក់ប៉ុណ្ណោះ​",
        "protectedtitles-submit": "បង្ហាញចំណងជើង",
        "listusers": "បញ្ជីអ្នកប្រើប្រាស់",
        "listusers-editsonly": "បង្ហាញតែអ្នកប្រើប្រាស់ដែលបានកែប្រែអត្ថបទប៉ុណ្ណោះ",
+       "listusers-temporarygroupsonly": "បង្ហាញតែអ្នកប្រើប្រាស់ក្នុងក្រុមបណ្ណោះអាសន្ន",
        "listusers-creationsort": "តម្រៀបតាមលំដាប់កាលបរិច្ឆេទបង្កើត",
        "listusers-desc": "តម្រៀបជាលំដាប់ពីលើចុះក្រោម",
        "usereditcount": "$1 {{PLURAL:$1|កំណែប្រែ|កំណែប្រែ}}",
        "activeusers-intro": "នេះជាបញ្ជីរាយនាមអ្នកប្រើប្រាស់ដែលមានសកម្មភាពក្នុងរូបភាពណាមួយក្នុងរយៈពេល $1 {{PLURAL:$1|ថ្ងៃ|ថ្ងៃ}}ចុងក្រោយ។",
        "activeusers-count": "{{PLURAL:$1|សកម្មភាព|សកម្មភាព}}ចំនួន$1 ក្នុងរយៈពេល{{PLURAL:$3|១ថ្ងៃ|$3 ថ្ងៃ}}ចុងក្រោយ",
        "activeusers-from": "បង្ហាញអត្តនាមផ្ដើមដោយ៖",
+       "activeusers-groups": "បង្ហាញអ្នកប្រើប្រាស់ក្នុងក្រុម៖",
+       "activeusers-excludegroups": "កុំបង្ហាញអ្នកប្រើប្រាស់ក្នុងក្រុម៖",
        "activeusers-noresult": "អ្នកប្រើប្រាស់​រកមិនឃើញ​។​",
        "activeusers-submit": "បង្ហាញអ្នកប្រើប្រាស់សកម្ម",
        "listgrouprights": "សិទ្ធិនិងក្រុមអ្នកប្រើប្រាស់",
        "rollback-success": "កំណែ​ដែល​ត្រូវ​បាន​ត្រឡប់​ដោយ​ $1។\nបាន​ផ្លាស់​ប្ដូរ​ទៅ​កំណែ​ចុង​ក្រោយ​វិញ​ដោយ $2។",
        "changecontentmodel-reason-label": "មូលហេតុ៖",
        "protectlogpage": "កំណត់ហេតុនៃការការពារ",
-       "protectlogtext": "á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98á\9e\93á\9f\81á\9f\87á\9e\87á\9e¶á\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\93á\9f\83á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\8aá\9f\82á\9e\9bá\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\85á\9e¶á\9e\80á\9f\8bá\9e\9fá\9f\84á\9e\93á\9e·á\9e\84á\9e\8aá\9f\84á\9f\87á\9e\9fá\9f\84។\n\nសូមមើល [[Special:ProtectedPages|បញ្ជីទំព័រត្រូវបានការពារ]] សម្រាប់បញ្ជីការការពារទំព័រដែលកំពុងនៅមានសុពលភាពនៅពេលនេះ។",
+       "protectlogtext": "á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98á\9e\93á\9f\81á\9f\87á\9e\87á\9e¶á\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\94á\9e\93á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\80á\9e¶á\9e\9aá\9e\80á\9e¶á\9e\9aá\9e\96á\9e¶á\9e\9aá\9e\91á\9f\86á\9e\96á\9f\90á\9e\9a។\n\nសូមមើល [[Special:ProtectedPages|បញ្ជីទំព័រត្រូវបានការពារ]] សម្រាប់បញ្ជីការការពារទំព័រដែលកំពុងនៅមានសុពលភាពនៅពេលនេះ។",
        "protectedarticle": "បានការពារ\"[[$1]]\"",
        "modifiedarticleprotection": "បានផ្លាស់ប្តូរកម្រិតការពារនៃ\"[[$1]]\"",
        "unprotectedarticle": "ដកការការពារពី \"[[$1]]\"",
        "undelete-show-file-submit": "បាទ/ចាស៎",
        "namespace": "លំហឈ្មោះ:",
        "invert": "ក្រៅពីនោះ",
-       "tooltip-invert": "á\9e\82á\9e¼á\9e\9fá\9e\92á\9e¸á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¢á\9e\94á\9f\8bá\9e\93á\9f\81á\9f\87á\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\9bá\9e¶á\9e\80á\9f\8bá\9e\80á\9f\86á\9e\8eá\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\9aá\9e\94á\9e\9fá\9f\8bទំព័រដែលស្ថិតនៅក្នុងលំហឈ្មោះដែលបានជ្រើសយក (និងលំហឈ្មោះដែលទាក់ទិន ប្រសិនបើគូសធីក)",
+       "tooltip-invert": "á\9e\82á\9e¼á\9e\9fá\9e\92á\9e¸á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¢á\9e\94á\9f\8bá\9e\93á\9f\81á\9f\87á\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\9bá\9e¶á\9e\80á\9f\8bá\9e\94á\9e\93á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aទំព័រដែលស្ថិតនៅក្នុងលំហឈ្មោះដែលបានជ្រើសយក (និងលំហឈ្មោះដែលទាក់ទិន ប្រសិនបើគូសធីក)",
        "namespace_association": "លំហឈ្មោះដែលទាក់ទិន",
        "tooltip-namespace_association": "គូសធីកប្រអប់នេះដើម្បីដាក់លំហឈ្មោះការពិភាក្សានិងប្រធានបទភ្ជាប់ទាក់ទិនទៅលំហឈ្មោះដែលបានជ្រើសយក",
        "blanknamespace": "(ទូទៅ)",
        "anoncontribs": "ការរួមចំណែក",
        "contribsub2": "សម្រាប់{{GENDER:$3|$1}} ($2)",
        "contributions-userdoesnotexist": "គណនីអ្នកប្រើប្រាស់ដែលមានឈ្មោះ \"$1\"មិនទាន់បានចុះឈ្មោះទេ។",
-       "nocontribs": "á\9e\82á\9f\92á\9e\98á\9e¶á\9e\93á\9e\80á\9e¶á\9e\9aá\9e\95á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8fá\9e¼á\9e\9aá\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\83á\9e¾á\9e\89á\9e\8aá\9e¼á\9e\85á\9e\93á\9e¹á\9e\84á\9e\9bá\9e\80á\9f\92á\9e\81á\9e\8eá\9f\88á\9e\9cá\9e·á\9e\93á\9e·á\9e\85á\9f\92á\9e\86á\9f\90á\9e\99á\9e\91á\9e¶á\9f\86á\9e\84á\9e\93á\9f\81á\9f\87។",
+       "nocontribs": "á\9e\82á\9f\92á\9e\98á\9e¶á\9e\93á\9e\94á\9e\93á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\82á\9f\92á\9e\93á\9e¶á\9e\93á\9e¹á\9e\84á\9e\9bá\9e\80á\9f\92á\9e\81á\9e\81á\9e\8eá\9f\92á\9e\8cá\9e\91á\9e¶á\9f\86á\9e\84á\9e\93á\9f\81á\9f\87á\9e\91á\9f\81។",
        "uctop": "បច្ចុប្បន្ន",
        "month": "ខែ៖",
        "year": "ឆ្នាំ៖",
        "blockip": "ហាមឃាត់{{GENDER:$1|អ្នកប្រើប្រាស់}}",
        "blockiptext": "សូម​ប្រើប្រាស់​សំណុំ​បែបបទ​ខាងក្រោម​ដើម្បី​ហាមឃាត់ការសរសេរ​ពី​អាសយដ្ឋានIP ឬ​អត្តនាមណាមួយ​។\nការ​ធ្វើ​បែបនេះ​គួរតែ​ធ្វើឡើង​ក្នុង​គោលបំណង​បង្ការ​ការប៉ុនប៉ងបំផ្លិច​បំផ្លាញដូច​ដែល​មាន​ចែង​ក្នុង[[{{MediaWiki:Policy-url}}|គោលការណ៍]]។\nសូមបំពេញមូលហេតុច្បាស់លាស់មួយខាងក្រោម (ឧទាហរណ៍៖ រាយឈ្មោះទំព័រនានាដែលគេបំផ្លិចបំផ្លាញ)។\nអ្នកអាចហាមឃាត់អាសយដ្ឋានIPជាជួរដោយប្រើកូដ[https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] ។ ប្រវែងជួរវែងបំផុតគឺ /$1 សម្រាប់ IPv4 និង /$2 សម្រាប់ IPv6។",
        "ipaddressorusername": "អាសយដ្ឋានIP ឬអត្តនាម៖",
-       "ipbexpiry": "រយៈពេលផុតកំណត់៖",
        "ipbreason": "មូលហេតុ៖",
        "ipbreason-dropdown": "*មូលហេតុហាមឃាត់ជាទូទៅ\n** ដាក់បញ្ចូលព័ត៌មានមិនពិត\n** ដកខ្លឹមទាំងស្រុងពីទំព័រនានា\n** ដាក់តំណភ្ជាប់ស្ប៉ាមតភ្ជាប់ទៅវិបសៃថ៍ខាងក្រៅ\n** បញ្ចូលខ្លឹមសារគ្មានន័យឬខ្លឹមសារមិនអាចយល់បានទៅក្នុងទំព័រនានា\n** អំពើគំរាមកំហែងឬរំលោភបំពានសិទ្ធិមនុស្ស\n** ប្រើប្រាស់គណនីច្រើនក្នុងគោលបំណងមិនល្អ\n** ប្រើប្រាស់អត្តនាមដែលមិនអាចទទួលយកបាន",
        "ipb-hardblock": "ហាមមិនអោយអ្នកប្រើប្រាស់ដែលបានកត់ឈ្មោះចូល មិនអោយធ្វើការកែប្រែពីអាសយដ្ឋាន IP នេះ",
        "ipbcreateaccount": "ហាមមិនអោយបង្កើតគណនី",
        "ipbemailban": "ហាមមិនអោយអ្នកប្រើប្រាស់ផ្ញើរអ៊ីមែល",
+       "ipbenableautoblock": "ដាក់ការហាមឃាត់ដោយស្វ័យប្រវត្តិលើអាសយដ្ឋានIPអ្នកប្រើប្រាស់នេះប្រើ",
        "ipbsubmit": "ដាក់ការហាមឃាត់លើអ្នកប្រើប្រាស់នេះ",
        "ipbother": "រយៈពេលផ្សេងទៀត៖",
        "ipboptions": "២ម៉ោង:2 hours,១ថ្ងៃ:1 day,៣ថ្ងៃ:3 days,១សប្តាហ៍:1 week,២សប្តាហ៍:2 weeks,១ខែ:1 month,៣ខែ:3 months,៦ខែ:6 months,១ឆ្នាំ:1 year,គ្មានកំណត់:infinite",
        "ipb-blocklist": "មើលការហាមឃាត់ដែលមានហើយ",
        "ipb-blocklist-contribs": "ការរួមចំណែកសម្រាប់ {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "នៅសល់ $1",
+       "block-expiry": "រយៈពេលផុតកំណត់៖",
        "unblockip": "ដកការហាមឃាត់លើអ្នកប្រើប្រាស់",
        "unblockiptext": "សូម​ប្រើប្រាស់​ទម្រង់​បែបបទ​ខាងក្រោម​នេះ ដើម្បី​បើក​សិទ្ឋិ​សរសេរ​ឡើងវិញ សម្រាប់​អាសយដ្ឋាន​IP​ឬ​អ្នកប្រើប្រាស់​ដែល​ត្រូវ​បាន​ហាមឃាត់ពីមុន​។",
        "ipusubmit": "ដក​ការហាមឃាត់នេះ​ចេញ",
        "unblocked-range": "$1 ត្រូវបានដកការហាមឃាត់ហើយ",
        "unblocked-id": "$1 ត្រូវបានដកការហាមឃាត់ហើយ",
        "blocklist": "អ្នកប្រើប្រាស់ដែលជាប់ការហាមឃាត់",
+       "autoblocklist-total-autoblocks": "ចំនួនការហាមឃាត់ដោយស្វ័យប្រវត្តិសរុប៖ $1",
        "ipblocklist": "អ្នកប្រើប្រាស់ដែលជាប់ការហាមឃាត់",
        "ipblocklist-legend": "ស្វែងរកអ្នកប្រើប្រាស់ដែលជាប់ការហាមឃាត់",
        "blocklist-userblocks": "លាក់ការហាមឃាត់លើគណនី",
        "sorbs_create_account_reason": "អាសយដ្ឋាន IP របស់អ្នកមានឈ្មោះក្នុងបញ្ជីប្រុកស៊ី(proxy)ចំហ នៅក្នុង DNSBL របស់ {{SITENAME}}។\n\nអ្នកមិនអាចបង្កើតគណនីបានទេ",
        "lockdb": "ចាក់សោមូលដ្ឋានទិន្នន័យ",
        "unlockdb": "ដោះសោមូលដ្ឋានទិន្នន័យ",
-       "lockdbtext": "ការ​ចាក់សោ​មូលដ្ឋាន​ទិន្នន័យ​នឹង​ផ្អាក​មិន​ឱ្យ​អ្នកប្រើប្រាស់​ទាំងអស់​ធ្វើការ​កែប្រែ​ទំព័រ​នានា ផ្លាស់ប្ដូរ​ចំណូលចិត្ត​របស់​ពួកគេ កែប្រែ​បញ្ជីតាមដាន​របស់​ពួកគេ និង​ធ្វើ​អ្វីៗ​ទាំងឡាយ​ណា​ដែល​ត្រូវការ​ការ​កែប្រែ​នៅក្នុង​មូលដ្ឋាន​ទិន្នន័យ​នេះ​។\n\nសូម​អះអាង​ថា​នេះ​ពិតជា​អ្វី​ដែល​អ្នក​ចង់​ធ្វើ ហើយ​ថា​អ្នក​នឹង​ដោះ​សោ​មូលដ្ឋាន​ទិន្នន័យ​វិញ​នៅ​ពេល​ដែល​ការថែទាំ​របស់​អ្នក​បាន​បញ្ចប់​។",
+       "lockdbtext": "á\9e\80á\9e¶á\9e\9aâ\80\8bá\9e\85á\9e¶á\9e\80á\9f\8bá\9e\9fá\9f\84â\80\8bá\9e\98á\9e¼á\9e\9bá\9e\8aá\9f\92á\9e\8bá\9e¶á\9e\93â\80\8bá\9e\91á\9e·á\9e\93á\9f\92á\9e\93á\9e\93á\9f\90á\9e\99â\80\8bá\9e\93á\9e¹á\9e\84â\80\8bá\9e\95á\9f\92á\9e¢á\9e¶á\9e\80â\80\8bá\9e\98á\9e·á\9e\93â\80\8bá\9e±á\9f\92á\9e\99â\80\8bá\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bâ\80\8bá\9e\91á\9e¶á\9f\86á\9e\84á\9e¢á\9e\9fá\9f\8bâ\80\8bá\9e\92á\9f\92á\9e\9cá\9e¾á\9e\80á\9e¶á\9e\9aâ\80\8bá\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82â\80\8bá\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aâ\80\8bá\9e\93á\9e¶á\9e\93á\9e¶ á\9e\95á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aâ\80\8bá\9e\85á\9f\86á\9e\8eá\9e\84á\9f\8bá\9e\85á\9f\86á\9e\8eá\9e¼á\9e\9bá\9e\85á\9e·á\9e\8fá\9f\92á\9e\8fâ\80\8bá\9e\9aá\9e\94á\9e\9fá\9f\8bâ\80\8bá\9e\96á\9e½á\9e\80á\9e\82á\9f\81 á\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82â\80\8bá\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\8fá\9e¶á\9e\98á\9e\8aá\9e¶á\9e\93â\80\8bá\9e\9aá\9e\94á\9e\9fá\9f\8bâ\80\8bá\9e\96á\9e½á\9e\80á\9e\82á\9f\81 á\9e\93á\9e·á\9e\84â\80\8bá\9e\92á\9f\92á\9e\9cá\9e¾â\80\8bá\9e¢á\9f\92á\9e\9cá\9e¸á\9f\97â\80\8bá\9e\91á\9e¶á\9f\86á\9e\84á\9e¡á\9e¶á\9e\99â\80\8bá\9e\8eá\9e¶â\80\8bá\9e\8aá\9f\82á\9e\9bâ\80\8bá\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\80á\9e¶á\9e\9aâ\80\8bá\9e\80á\9e¶á\9e\9aâ\80\8bá\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82â\80\8bá\9e\93á\9f\85á\9e\80á\9f\92á\9e\93á\9e»á\9e\84â\80\8bá\9e\98á\9e¼á\9e\9bá\9e\8aá\9f\92á\9e\8bá\9e¶á\9e\93â\80\8bá\9e\91á\9e·á\9e\93á\9f\92á\9e\93á\9e\93á\9f\90á\9e\99â\80\8bá\9e\93á\9f\81á\9f\87â\80\8bá\9f\94\n\ná\9e\9fá\9e¼á\9e\98â\80\8bá\9e¢á\9f\87á\9e¢á\9e¶á\9e\84â\80\8bá\9e\90á\9e¶â\80\8bá\9e\93á\9f\81á\9f\87â\80\8bá\9e\96á\9e·á\9e\8fá\9e\87á\9e¶â\80\8bá\9e¢á\9f\92á\9e\9cá\9e¸â\80\8bá\9e\8aá\9f\82á\9e\9bâ\80\8bá\9e¢á\9f\92á\9e\93á\9e\80â\80\8bá\9e\85á\9e\84á\9f\8bâ\80\8bá\9e\92á\9f\92á\9e\9cá\9e¾ á\9e á\9e¾á\9e\99â\80\8bá\9e\90á\9e¶â\80\8bá\9e¢á\9f\92á\9e\93á\9e\80â\80\8bá\9e\93á\9e¹á\9e\84â\80\8bá\9e\8aá\9f\84á\9f\87â\80\8bá\9e\9fá\9f\84â\80\8bá\9e\98á\9e¼á\9e\9bá\9e\8aá\9f\92á\9e\8bá\9e¶á\9e\93â\80\8bá\9e\91á\9e·á\9e\93á\9f\92á\9e\93á\9e\93á\9f\90á\9e\99â\80\8bá\9e\9cá\9e·á\9e\89â\80\8bá\9e\93á\9f\85â\80\8bá\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\8aá\9f\82á\9e\9bâ\80\8bá\9e\80á\9e¶á\9e\9aá\9e\90á\9f\82á\9e\91á\9e¶á\9f\86â\80\8bá\9e\9aá\9e\94á\9e\9fá\9f\8bâ\80\8bá\9e¢á\9f\92á\9e\93á\9e\80â\80\8bá\9e\94á\9e¶á\9e\93â\80\8bá\9e\94á\9e\89á\9f\92á\9e\85á\9e\94á\9f\8bâ\80\8bá\9f\94",
        "unlockdbtext": "ការ​ដោះ​សោ​មូលដ្ឋាន​ទិន្នន័យ​នឹង​ផ្ដល់​លទ្ធភាព​ឱ្យ​អ្នកប្រើប្រាស់​ទាំងអស់​ធ្វើការ​កែប្រែ​ទំព័រ​នានា ផ្លាស់ប្ដូរ​ចំណូលចិត្ត​របស់​ពួកគេ កែប្រែ​បញ្ជីតាមដាន​របស់​ពួកគេ និង​ធ្វើ​អ្វីៗទាំងឡាយ​ណា​ដែល​ត្រូវការ​ការ​កែប្រែ​នៅក្នុង​មូលដ្ឋាន​ទិន្នន័យនេះ​។\n\nសូម​អះអាង​ថា​នេះ​ពិតជា​អ្វី​ដែល​អ្នក​ចង់​ធ្វើ​។",
        "lockconfirm": "បាទ/ចាស៎, ខ្ញុំពិតជាចង់ចាក់សោមូលដ្ឋានទិន្នន័យមែន។",
        "unlockconfirm": "បាទ/ចាស៎, ខ្ញុំពិតជាចង់ដោះសោមូលដ្ឋានទិន្នន័យមែន។",
        "tooltip-n-mainpage-description": "ចូលមើលទំព័រដើម",
        "tooltip-n-portal": "អំពីគម្រោង វិធីប្រើប្រាស់ និងការស្វែងរកព័ត៌មាន",
        "tooltip-n-currentevents": "រកមើលព័ត៌មានទាក់ទិននឹងព្រឹត្តិការណ៍បច្ចុប្បន្ន",
-       "tooltip-n-recentchanges": "បញ្ជី​នៃ​បន្លាស់ប្ដូរថ្មីៗ​នៅក្នុងវិគីនេះ",
+       "tooltip-n-recentchanges": "បញ្ជី​​បន្លាស់ប្ដូរថ្មីៗ​នៅក្នុងវិគីនេះ",
        "tooltip-n-randompage": "ផ្ទុក​ទំព័រចៃដន្យ​មួយទំព័រ",
        "tooltip-n-help": "ជំនួយ​បន្ថែម",
        "tooltip-t-whatlinkshere": "បញ្ជី​ទំព័វិគី​ទាំងអស់​ដែលតភ្ជាប់​នឹងទីនេះ",
-       "tooltip-t-recentchangeslinked": "បន្លាស់ប្ដូរថ្មីៗ ក្នុងទំព័រដែលត្រូវបានភ្ជាប់មក ទំព័រនេះ",
+       "tooltip-t-recentchangeslinked": "បន្លាស់ប្ដូរថ្មីៗក្នុងទំព័រដែលត្រូវបានភ្ជាប់មកទំព័រនេះ",
        "tooltip-feed-rss": "បម្រែបម្រួល RSS ចំពោះទំព័រនេះ",
        "tooltip-feed-atom": "បម្រែបម្រួល Atom ចំពោះទំព័រនេះ",
        "tooltip-t-contributions": "បញ្ជីនៃការរួមចំណែករបស់{{GENDER:$1|អ្នកប្រើប្រាស់នេះ}}",
        "pageinfo-header-restrictions": "ការការពារទំព័រ",
        "pageinfo-header-properties": "លក្ខណៈសម្បត្តិទំព័រ",
        "pageinfo-display-title": "បង្ហាញចំណងជើង",
-       "pageinfo-default-sort": "á\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\82á\9e\93á\9f\92á\9e\9bá\9eºá\9f\87á\9e\9fá\9f\86á\9e\9aá\9e¶á\9e\94á\9f\8bá\9e\8fá\9f\86រៀប",
+       "pageinfo-default-sort": "á\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\82á\9e\93á\9f\92á\9e\9bá\9e¹á\9f\87á\9e\9fá\9e\98á\9f\92á\9e\9aá\9e¶á\9e\94á\9f\8bá\9e\8fá\9e\98á\9f\92រៀប",
        "pageinfo-length": "ប្រវែងទំព័រ (គិតជាបៃ)",
        "pageinfo-article-id": "អត្តលេខទំព័រ",
        "pageinfo-language": "ភាសារបស់ខ្លឹមសារទំព័រ",
        "pageinfo-robot-index": "អនុញ្ញាត",
        "pageinfo-robot-noindex": "មិនអនុញ្ញាត",
        "pageinfo-watchers": "ចំនួនអ្នកតាមដានទំព័រ",
+       "pageinfo-visiting-watchers": "ចំនួនអ្នកតាមដានទំព័រដែលបានមកមើលការកែប្រែថ្មីៗនេះ",
        "pageinfo-few-watchers": "អ្នកតាមដានតិចជាង $1 {{PLURAL:$1|នាក់|នាក់}}",
        "pageinfo-redirects-name": "ចំនួនការបញ្ជូនបន្តមកកាន់ទំព័រនេះ",
        "pageinfo-subpages-name": "ទំព័ររងរបស់ទំព័រនេះ",
        "pageinfo-category-pages": "ចំនួនទំព័រ",
        "pageinfo-category-subcats": "ចំនួនកូនចំណាត់ថ្នាក់ក្រុម",
        "pageinfo-category-files": "ចំនួនឯកសារ",
+       "pageinfo-view-protect-log": "មើលកំណត់ហេតុការពារសម្រាប់ទំព័រនេះ។",
        "markaspatrolleddiff": "ចំណាំថាបានល្បាត",
        "markaspatrolledtext": "ចំណាំទំព័រនេះថាបានល្បាត",
        "markedaspatrolled": "បានចំណាំថាបានល្បាត",
        "size-kilobytes": "$1គីឡូបៃ",
        "size-megabytes": "$1មេកាបៃ",
        "size-gigabytes": "$1ជីកាបៃ",
-       "lag-warn-normal": "បន្លាស់ប្តូរក្រោយ {{PLURAL:$1|មួយវិនាទី|វិនាទី}}មុន អាចមិនត្រូវបានបង្ហាញក្នុងបញ្ជីនេះ​។",
+       "lag-warn-normal": "á\9e\94á\9e\93á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8fá\9e¼á\9e\9aá\9e\80á\9f\92á\9e\9aá\9f\84á\9e\99 {{PLURAL:$1|á\9e\98á\9e½á\9e\99á\9e\9cá\9e·á\9e\93á\9e¶á\9e\91á\9e¸|á\9e\9cá\9e·á\9e\93á\9e¶á\9e\91á\9e¸}}á\9e\98á\9e»á\9e\93 á\9e¢á\9e¶á\9e\85á\9e\98á\9e·á\9e\93á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\94á\9e\84á\9f\92á\9e á\9e¶á\9e\89á\9e\80á\9f\92á\9e\93á\9e»á\9e\84á\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\93á\9f\81á\9f\87â\80\8bá\9e\91á\9f\81á\9f\94",
        "lag-warn-high": "ដោយសារប្រព័ន្ធបំរើការមូលដ្ឋានទិន្នន័យមានភាពយឺតយ៉ាវខ្លាំង បន្លាស់ប្ដូរដែលថ្មីជាង $1 វិនាទីមិនអាចបង្ហាញនៅក្នុងបញ្ជីនេះបានទេ។",
        "watchlistedit-normal-title": "កែប្រែបញ្ជីតាមដាន",
        "watchlistedit-normal-legend": "ដកចំណងជើងចេញពីបញ្ជីតាមដាន",
        "log-name-pagelang": "កំណត់ហេតុបន្លាស់ប្ដូរភាសា",
        "log-description-pagelang": "នេះជាកំណត់ហេតុបន្លាស់ប្ដូរភាសាទំព័រ។",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|បានផ្លាស់ប្ដូរ}}ភាសារបស់ $3 ពី $4 ទៅ $5",
+       "mediastatistics-table-count": "ចំនួនឯកសារ",
        "special-characters-group-latin": "អក្សរឡាតាំង",
        "special-characters-group-latinextended": "អក្សរឡាតាំងផ្សេងទៀត",
        "special-characters-group-ipa": "អក្ខរក្រមសំលេងអន្តរជាតិ",
        "passwordpolicies": "គោលការណ៍ស្ដីពីពាក្យសម្ងាត់",
        "passwordpolicies-policies": "គោលការណ៍",
        "passwordpolicies-policy-minimalpasswordlength": "ពាក្យសម្ងាត់ត្រូវ​តែវែងជាង{{PLURAL:$1|តួអក្សរ|$1តួអក្សរ}}",
+       "passwordpolicies-policy-minimumpasswordlengthtologin": "ពាក្យសម្ងាត់ត្រូវ​តែវែងជាង$1 {{PLURAL:$1|តួអក្សរ|តួអក្សរ}}ទើបអាចកត់ឈ្មោះចូលបាន",
        "passwordpolicies-policy-passwordcannotmatchusername": "ពាក្យសម្ងាត់មិនត្រូវដូចគ្នានឹងអត្តនាមទេ",
        "passwordpolicies-policy-passwordcannotmatchblacklist": "ពាក្យសម្ងាត់មិនត្រូវដូចពាក្យសម្ងាត់ក្នុងបញ្ជីខ្មៅទេ",
        "passwordpolicies-policy-maximalpasswordlength": "ពាក្យសម្ងាត់ត្រូវតែខ្លីជាង $1 {{PLURAL:$1|តួអក្សរ|តួអក្សរ}}",
index e13e9f9..a133afd 100644 (file)
        "unblock": "ಬಳಕೆದಾರನ ತಡೆಯನ್ನು ತೆಗೆ",
        "blockip": "ಈ ಸದಸ್ಯನನ್ನು ತಡೆ ಹಿಡಿಯಿರಿ",
        "ipaddressorusername": "IP ವಿಳಾಸ ಅಥವ ಬಳಕೆಯ ಹೆಸರು:",
-       "ipbexpiry": "ಅಂತ್ಯ:",
        "ipbreason": "ಕಾರಣ:",
        "ipbreason-dropdown": "*ತಡೆಹಿಡಿಯುವಿಕೆಗೆ ಸಾಧಾರಣ ಕಾರಣಗಳು\n** ತಪ್ಪು ಮಾಹಿತಿಯನ್ನು ಸೇರಿಸುವುದು\n** ಪುಟದಲ್ಲಿರುವ ಮಾಹಿತಿಯನ್ನು ತೆಗೆಯುವುದು\n** ಬಾಹ್ಯ ತಾಣಗಳಿಗೆ ಜಾಹೀರಾತಿಗೆ ಕೊಂಡಿ ಸೇರಿಸುವುದು\n** ಪುಟಗಳಲ್ಲಿ ಅರ್ಥವಿಲ್ಲದ ಮಾಹಿತಿ ಸೇರಿಸುವುದು\n** ಬೇರೆಯವರನ್ನು ಬೆದರಿಸುವ/ಕಾಡುವ ವರ್ತನೆ\n** ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಖಾತೆಗಳ ದುರುಪಯೋಗ\n** ಒಪ್ಪಿಗೆಯಿರದಂತಹ ಬಳಕೆಯ ಹೆಸರು",
        "ipbcreateaccount": "ಖಾತೆ ಸೃಷ್ಟಿಯನ್ನು ನಿರ್ಬಂಧಿಸು",
        "ipb-unblock-addr": "$1 ಖಾತೆಯ ತಡೆಯನ್ನು ತೆಗೆ",
        "ipb-unblock": "ಬಳಕೆದಾರರ ಅಥವ IP ವಿಳಾಸದ ತಡೆಯನ್ನು ತೆಗೆ",
        "ipb-blocklist": "ಅಸ್ಥಿತ್ವದಲ್ಲಿರುವ ತಡೆಗಳನ್ನು ನೋಡು",
+       "block-expiry": "ಅಂತ್ಯ:",
        "unblockip": "ಬಳಕೆದಾರನ ತಡೆಯನ್ನು ತೆಗೆ",
        "ipusubmit": "ಈ ವಿಳಾಸದ ತಡೆಯನ್ನು ತೆಗೆ",
        "unblocked": "[[User:$1|$1]] ಖಾತೆಯ ತಡೆಯನ್ನು ತೆಗೆಯಲಾಗಿದೆ",
index 1f08554..e1b7518 100644 (file)
@@ -93,8 +93,8 @@
        "tog-watchuploads": "내가 올린 파일을 주시문서 목록에 추가",
        "tog-watchrollback": "내가 되돌리기 기능을 사용한 문서를 주시문서 목록에 추가",
        "tog-minordefault": "모든 편집에 기본적으로 사소한 편집을 표시",
-       "tog-previewontop": "편집 상자 앞에 미리 보기 보기",
-       "tog-previewonfirst": "처음 편집할 때 미리 보기 보기",
+       "tog-previewontop": "편집 상자 앞에 미리 보기 보기",
+       "tog-previewonfirst": "처음 편집할 때 미리 보기 보기",
        "tog-enotifwatchlistpages": "주시문서 목록에 속한 문서나 파일이 바뀌면 이메일로 알림",
        "tog-enotifusertalkpages": "내 토론 문서가 바뀌면 이메일로 알림",
        "tog-enotifminoredits": "문서나 파일의 사소한 편집도 이메일로 알림",
        "resetpass-abort-generic": "비밀번호 바꾸기가 확장 기능에 의해 중단되었습니다.",
        "resetpass-expired": "비밀번호가 만료되었습니다. 로그인하려면 새 비밀번호를 설정해야 합니다.",
        "resetpass-expired-soft": "비밀번호가 만료되어 변경해야 합니다. 지금 새로운 비밀번호를 선택하거나, \"{{int:authprovider-resetpass-skip-label}}\"를 클릭하고 나중에 재설정해주세요.",
+       "resetpass-validity": "비밀번호가 유효하지 않습니다: $1\n\n로그인하려면 새 비밀번호를 설정해 주십시오.",
        "resetpass-validity-soft": "귀하의 비밀번호는 유효하지 않습니다: $1\n\n새로운 비밀번호를 지금 설정하거나, \"{{int:authprovider-resetpass-skip-label}}\"을 눌러 나중에 변경하세요.",
        "passwordreset": "비밀번호 재설정",
        "passwordreset-text-one": "이메일을 통해 임시 비밀번호를 받으려면 이 양식을 채우세요.",
        "blockip": "{{GENDER:$1|사용자}} 차단",
        "blockiptext": "차단할 IP 주소나 사용자 이름을 아래에 적어 주세요.\n차단은 문서 훼손을 막기 위해, [[{{MediaWiki:Policy-url}}|정책]]에 의해서만 이루어져야 합니다.\n차단 이유를 같이 적어주세요(예: 특정 문서 훼손).\n[https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] 형식을 사용해 IP 대역을 차단할 수 있습니다. IPv4에서는 /$1, IPv6에서는 /$2까지 허용됩니다.",
        "ipaddressorusername": "IP 주소 또는 사용자 이름:",
-       "ipbexpiry": "기한:",
        "ipbreason": "이유:",
        "ipbreason-dropdown": "*일반적인 차단 이유\n** 거짓 정보를 넣음\n** 문서 내용을 지움\n** 외부 사이트의 광고성 링크를 넣음\n** 문서에 장난성 내용을 넣음\n** 협박성 행동\n** 다중 계정 악용\n** 부적절한 사용자 이름",
        "ipb-hardblock": "이 IP를 이용하는 로그인한 사용자가 편집하는 것을 막기",
-       "ipbcreateaccount": "계정 만들기를 막기",
+       "ipbcreateaccount": "계정 만들기",
        "ipbemailban": "이메일을 보내지 못하도록 막기",
        "ipbenableautoblock": "이 사용자가 최근에 사용했거나 앞으로 사용하는 IP를 자동으로 막기",
        "ipbsubmit": "사용자 차단",
        "ipb-confirm": "차단 확인",
        "ipb-sitewide": "사이트 전체",
        "ipb-partial": "부분",
-       "ipb-type-label": "유형",
        "ipb-pages-label": "문서",
        "badipaddress": "잘못된 IP 주소",
        "blockipsuccesssub": "차단 완료",
        "ipb-blocklist": "현재 차단 기록 보기",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}}의 기여",
        "ipb-blocklist-duration-left": "남은 기간: $1",
+       "block-actions": "차단할 행위:",
+       "block-expiry": "기한:",
+       "block-options": "추가 옵션:",
+       "block-prevent-edit": "편집",
+       "block-reason": "이유:",
+       "block-target": "사용자 이름 또는 IP 주소:",
        "unblockip": "사용자 차단 해제",
        "unblockiptext": "아래의 양식에 차단 해제하려는 IP 주소나 사용자 이름을 입력하세요.",
        "ipusubmit": "차단 해제",
index 2ae70a2..17513d4 100644 (file)
        "blockip": "Бу къошулуучуну блок эт",
        "blockiptext": "Тюбюндеги форманы хайырланыб белгили бир IP-ден неда регистрация этилген къошулуучуну тюрлениу этиуюню тыяллыкъсыз. Бу, джангыз вандализмни тыяр ючюн эм [[{{MediaWiki:Policy-url}}|джорукълагъа]] келишиулю этилирге керекди. Тюбюрек тыйыу бла байламлы ангылатыу джазыгъыз. (юлгю: -Бу- бетледе вандализм этилгенди).",
        "ipaddressorusername": "IP-адрес неда къошулуучу ат:",
-       "ipbexpiry": "Бошаллыкъды (ётсе):",
        "ipbreason": "Чурум:",
        "ipbreason-dropdown": "* Тыйылыуну асламысында тюбеген чурумлары\n** Джалгъан билги къошуу\n** Бетлени ичиндегин кетериу\n** Тыш спам-сайтлагъа джибериу бериу\n** Бетлеге магъанасыз/ангыламсыз джазмала къошуу\n** Къошулуучуланы къоркъутургъа излеу\n** Талай тергеу джазыу къураб аманлыкъгъа хайырланыу\n** Джарамагъан къошулуучу ат",
        "ipbcreateaccount": "Джангы тергеу джазыу къурауну тый",
        "ipb-unblock": "Къошулуучуну неда IP-адресни тыйылыуун тохтат",
        "ipb-blocklist": "Бусагъатдагъы болгъан тыйгъычланы кёргюз",
        "ipb-blocklist-contribs": "$1 къошулуучуну къошханы",
+       "block-expiry": "Бошаллыкъды (ётсе):",
        "unblockip": "Къошулуучуну тыйгъыч этиуню тохтат",
        "unblockiptext": "Алгъаракъ тыйылгъан IP-адресге неда къошулуучюге джазар эркинликни къайтарыргъа излей эсенг, тюбюндеги форманы хайырландыр.",
        "ipusubmit": "Бу тыйгъычны кетер",
index 06546b5..5d0685f 100644 (file)
        "blockip": "{{GENDER:$1|Dä Metmaacher|De Metmaacherėn|Dä Metmaacher|De Metmaacherėn|Dä Metmaacher}} schpärre",
        "blockiptext": "Heh kanns De beschtemmpte Metmaacher udder <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Internet Protocol\">IP</i>-Adräß schpärre, su dat se heh em Wikki nit mih schrihve un Sigge änndere künne.\nDat sollt nor jedon wääde om sujenannte Vandahle ze brämse. Un mer möße ons dobei natörlich aan uns [[{{MediaWiki:Policy-url}}|Rejelle]] för esu en Fäll halde.\nDrahch bei „Aanlass“ ene müjjeleschs jenaue Jronnd enn, woröm dat Schpärre passehrt. Nänn se un Lengk op de Sigge wo Einer kapott jemaat hät, zem Beispill.",
        "ipaddressorusername": "<i lang=\"en\">IP</i>-Adress oder Metmaacher Name:",
-       "ipbexpiry": "Duur, för wie lang",
        "ipbreason": "Aanlass:",
        "ipbreason-dropdown": "* Alljemein Jrönd för et Schpärre\n** hät fekeehte Behouptunge udder Leeje jeschrevve\n** hät Sigge fottjeschmeße udder läddesch jemaat\n** hält sesch ihwesch nit aan de Räjelle övver de Lengks op annder Wäbsigge un jäje der Lengk-<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„för jewöhnlesch angmaß övverdrahre Nohreeschte udder Meddeijlonge, di wä se kritt jaa nit han well,“\">SPAM</i>\n** hät Sigge met Schtuß udder Kauderwelsch drop aajelaat udder Keu en Sigge jedonn\n** deit Metmaacher bedrohe, beleijije, udder schlääsch maache\n** hät mih wi eine Metmaachernahme un deit domet Schmuu maache\n* Op der Nahme betrocke Jrönd\n** esu ene Metmaacher_Nahme wolle mer nit\n* Op en <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Internet Protocol\">IP</i>-Adräß betroke Jrönd\n** dat es en <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„ene ẞööver en de Nohberschaff, ene Zweschedrääjer udder Zwescheschpeijscher, ene Vermeddelongsrääschner“\">proxy</i>-ẞööver dää de Lück zoh vill Driß aanjeställt han",
        "ipb-hardblock": "Enjelogg Metmaacher dörfe vun heh dä <i lang=\"en\">IP</i>-Addräß kein Sigge ändere",
        "ipb-blocklist": "All de Sperre för Metmaacher un <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i>-Adräße aanzeije, di jrad beschtonn",
        "ipb-blocklist-contribs": "{{GENDER:$1|Däm|Däm|Däm Metmaacher|Dä|Däm}} $1 {{GENDER:$1|sing|singe|sing|iere|sing}} Bäjdrähsch",
        "ipb-blocklist-duration-left": "noch $1",
+       "block-expiry": "Duur, för wie lang",
        "unblockip": "Dä Medmacher widder maache looße",
        "unblockiptext": "Heh kanns De vörher jesperrte IP_Adresse oder Metmaacher widder freijevve, un dänne esu dat Rääch för ze Schrieve heh em Wiki widder jevve.",
        "ipusubmit": "Sperr ophevve!",
index 52d52c8..4f6272c 100644 (file)
        "blockedtitle": "Bikarhêner hate astengkirin",
        "blockedtext": "'''Navê te yê bikarhêneriyê an jî IP'ya te hate astengkirin.'''\n\nAstengkirin ji aliyê $1 ve pêk hat. Sedema astengkirina te ev e: ''$2''.\n\n* Destpêka astengkirinê: $8\n* Xelasbûna astengkirinê: $6\n* Astengkirin ji van re: $7\n\nTu dikarî bi $1 re an jî bi [[{{MediaWiki:Grouppage-sysop}}|koordînatorên]] din re ji bo astengkirinê bikevî têkiliyê. Tu nikarî 'Ji vê/vî bikarhênerê/î re e-name bişîne' bikar bînî heta ku di [[Special:Preferences|tercihên xwe]] de navnîşana e-nameyeke derbasdar bi kar bînî û tu ji bo bikaranîna vê fonksiyonê nehatî astengkirin.\n\nIP'ya te ya niha $3 ye, û ID'ya astengkirina te #$5 e. Ji kerema xwe yek ji van hejmaran têxe nav peyama xwe.",
        "autoblockedtext": "Navnîşana IP ya te otomatîk hate astengkirin, ji ber ku bikarhênerekî/e din wê bikartîne, yê niha ji $1 hate astengkirin.\nSedema astengkirinê ev e:\n\n: ''$2''\n\n*Destpêka astengkirinê: $8\n*Dawiya astengkirinê: $6\n\nEger tu difikirî ku ev astengkirin ne sererast e, ji kerema xwe bi $1 re an jî yekî din ji [[{{MediaWiki:Grouppage-sysop}}|koordînatoran]] re bipeyive.\n\nZanibe ku tu nikarî e-nameya bişînî heta tu di [[Special:Preferences|tercihên xwe]] de navnîşana e-nameyan binivîsînî û tu ji bo bikaranîna vê nehatî astengkirin.\n\n'''Heke tu bixwazî peyamekê bişînî, ji kerema xwe van tiştan têxe nav nameya xwe:'''\n\n*Koordînator, yê te astengkir: $1\n*Sedema astengkirinê: $2\n*ID'ya astengkirinê: #$5",
+       "actionblockedtext": "Te hate astengkirin ji ber bicihanîna vê kiryarê.",
        "blockednoreason": "sedem nehatiye gotin",
        "whitelistedittext": "Ji bo guherandina rûpelan, $1 pêwîst e.",
        "confirmedittext": "Tu gireke adrêsa e-nameya xwe nasbikê berî tu rûpelan diguherînê. Xêra xwe adrêsa e-nameya ya xwe di [[Special:Preferences|tercihên xwe]] da binivisîne û nasbike.",
        "blockip": "{{GENDER:$1|Bikarhêner}} asteng bike",
        "blockiptext": "Ji bo astengkirina nivîsandinê ya ji navnîşaneke IP'yê an jî ji bikarhênerekî/ê, vê formê bikarbîne.\nDivê ev tenê ji bo sekinandina vandalîzmê were bikaranîn, ku divê li gorî [[{{MediaWiki:Policy-url}}|rêgezê]] be.\n\nSedemekê binivîse!",
        "ipaddressorusername": "adresê IP'yekê ya navekî bikarhênerekî",
-       "ipbexpiry": "Dem:",
        "ipbreason": "Sedem:",
        "ipbreason-dropdown": "*Sedemên astengkirinê\n** Vandalîzm\n** Agahiya şaş dikire gotarekê\n** Naveroka rûpelekê vala kir\n** Girêdanên xerab tevlî rûpelan dikir\n** Tiştên tewş tevlî gotaran dikir\n** Heqaretkirin\n** Pir hesab bikaranîn\n** Navekî ku nayê pejirandin",
        "ipbcreateaccount": "Çêkirina hesaban qedexe bike",
        "ipb-unblock": "Astengkirina bikarhênerekî ya adrêsa IP'yekê rake",
        "ipb-blocklist": "Astengkirinên niha bibîne",
        "ipb-blocklist-contribs": "Beşdariyên ji bo {{GENDER:$1|}}",
+       "block-expiry": "Dem:",
        "unblockip": "Astengkirina bikarhêner rake",
        "unblockiptext": "Nivîsara jêr bikarwîne ji bo qebûlkirina nivîsandinê bikarhênerekî ya IP'yeka berê astengkirî.",
        "ipusubmit": "Vê astengkirinê rake",
index abcad58..b0acf30 100644 (file)
        "blockip": "Usorem obstruere",
        "blockiptext": "Forma infra data utere, ut quendam usorem vel locum IP arceas a scribendo.\nQuod non nisi secundum [[{{MediaWiki:Policy-url}}|hoc consilium]] fiat, ut vandalismus supprimatur.\nRationem certam da (exempli gratia titulos paginarum, quibus iste usor more vandalico nocuit)!",
        "ipaddressorusername": "Locus IP aut nomen usoris:",
-       "ipbexpiry": "Exitus:",
        "ipbreason": "Causa:",
        "ipbreason-dropdown": "*Rationes crebriter adductae\n** Ob scripta falsa\n** Ob textum remotum\n** Ob nexus externos multiplicatos\n** Ob scripta sensu sive et Latinitate carentia\n** Ob scripta inurbana\n** Ob rationes perniciose multiplicatas\n** Ob nomen inurbanum sive inconveniens",
        "ipbcreateaccount": "Arcere a nominibus imponendis",
        "ipb-unblock-addr": "Deobstruere $1",
        "ipb-unblock": "Deobstruere nomen usoris vel locum IP",
        "ipb-blocklist-contribs": "Conlationes usoris $1",
+       "block-expiry": "Exitus:",
        "unblockip": "Deobstruere locum IP",
        "unblockiptext": "Formam inferam usere ut locum IP deobstruere.",
        "ipusubmit": "Hanc obstructionem removere",
index 8ae5dc0..24502f7 100644 (file)
        "blockedtitle": "Benotzer ass gespaart",
        "blockedtext": "<strong>Äre Benotzernumm oder Är IP-Adress gouf gespaart.</strong>\n\nD'Spär gouf vum $1 gemaach.\nAls Grond gouf <em>$2</em> uginn.\n\n* Ufank vun der Spär: $8\n* Enn vun der Spär: $6\n* Spär betrëfft: $7\n\nDir kënnt den/d' $1 kontaktéieren oder ee vun den aneren [[{{MediaWiki:Grouppage-sysop}}|Administrateure]] fir iwwer d'Spär ze schwätzen.\n\nDëst sollt Dir besonnesch maachen, wann Dir d'Gefill hutt, datt de Grond fir d'Spären net bei Iech läit.\nD'Ursaach dofir ass an deem Fall, datt Dir eng dynamesch IP hutt, iwwer en Access-Provider, iwwer deen och aner Leit fueren.\nAus deem Grond ass et recommandéiert, sech e Benotzernumm zouzeleeën, fir all Mëssverständnes z'evitéieren.\n\nDir kënnt d'Funktioun \"{{int:emailuser}}\" nëmme benotzen, wann Dir eng gëlteg E-Mail Adress bei Ären [[Special:Preferences|Astellungen]] aginn hutt.\nÄr aktuell IP-Adress ass $3 an d'Nummer vun der Spär ass #$5.\nSchreift all dës Informatioune w.e.g. bei all Ufro derbäi.",
        "autoblockedtext": "Är IP-Adress gouf automatesch gespaart, well se vun engem anere Benotzer gebraucht gouf, an dee vum $1 gespaart gouf.\nDe Grond dofir war:\n\n:''$2''\n\n* Ufank vun der Spär: $8\n* Dauer vun der Spär: $6\n* D'Spär leeft of: $7\n\nDir kënnt de(n) $1 oder soss een [[{{MediaWiki:Grouppage-sysop}}|Administrateur]] kontaktéieren, fir iwwer déi Spär ze diskutéieren.\n\nBedenkt datt Dir d'Funktioun \"Dësem Benotzer eng E-Mail schécken\" benotze kënnt wann Dir eng gëlteg E-Mail-Adress an Ären [[Special:Preferences|Astellungen]] uginn hutt a wann dat net fir Iech gespaart gouf.\n\nÄr aktuell IP-Adress ass $3 an d'Nummer vun Ärer Spär ass $5.\nGitt dës Donnéeë w.e.g bei allen Ufroen zu dëser Spär un.",
+       "actionblockedtext": "Dir gouft gespaart fir dës Aktioun ze maachen.",
        "blockednoreason": "Kee Grond uginn",
        "whitelistedittext": "Dir musst Iech $1, fir Säiten änneren ze kënnen.",
        "confirmedittext": "Dir musst är E-Mail-Adress confirméieren, ier Dir Ännerunge maache kënnt.\nGitt w.e.g. eng E-Mailadrss a validéiert se op äre [[Special:Preferences|Benotzerastellungen]].",
        "blockip": "{{GENDER:$1|Benotzer}} spären",
        "blockiptext": "Benotzt dëse Formulaire fir eng spezifesch IP-Adress oder e Benotzernumm ze spären.\nDëst soll nëmmen am Fall vu Vandalismus gemaach ginn, en accordance mat den [[{{MediaWiki:Policy-url}}|interne Richtlinnen]].\nGitt e spezifesche Grond un (zum Beispill Säite wou Vandalismus virgefall ass).\nDir kënnt IP-Beräicher spären an deem Dir d' [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] Syntax benotzt; de gréissten erlaabte Beräich as  /$1 fir IPv4 an /$2 fir IPv6",
        "ipaddressorusername": "IP-Adress oder Benotzernumm:",
-       "ipbexpiry": "Gültegkeet:",
        "ipbreason": "Grond:",
        "ipbreason-dropdown": "*Heefeg Ursaache fir Benotzer ze spären:\n**Bewosst falsch Informatiounen an eng oder méi Säite gesat\n**Ouni Grond Inhalt vu Säite geläscht\n**Spam-Verknëppunge mat externe Säiten\n**Topereien an d'Säite gesat\n**Beleidegt oder bedreet aner Mataarbechter\n**Mëssbrauch vu verschiddene Benotzernimm\n**Net akzeptabele Benotzernumm",
        "ipb-hardblock": "Verhënneren datt ageloggt Benotzer vun dëser IP-Adress aus Ännerunge maache kënnen",
-       "ipbcreateaccount": "Opmaache vun engem Benotzerkont verhënneren",
+       "ipbcreateaccount": "Benotzerkont opmaachen",
        "ipbemailban": "Verhënneren datt de Benotzer E-Maile verschéckt",
        "ipbenableautoblock": "Automatesch déi lescht IP-Adress spären déi vun dësem Benotzer benotzt gouf, an all IP-Adresse vun denen dëse Benotzer versicht Ännerunge virzehuelen",
        "ipbsubmit": "Dës IP-Adress resp dëse Benotzer spären",
        "ipboptions": "2 Stonnen:2 hours,1 Dag:1 day,3 Deeg:3 days,1 Woch:1 week,2 Wochen:2 weeks,1 Mount:1 month,3 Méint:3 months,6 Méint:6 months,1 Joer:1 year,onbegrenzt:infinite",
        "ipbhidename": "Benotzernumm op Lëschten a bei Ännerunge verstoppen",
        "ipbwatchuser": "Dësem Benotzer seng Benotzer- an Diskussiouns-Säit iwwerwaachen",
-       "ipb-disableusertalk": "Dëse Benotzer dorun hënnere fir seng eegen Diskussiounssäit z'ännere sou laang wéi e gespaart ass",
+       "ipb-disableusertalk": "seng eegen Diskussiounssäit ännert",
        "ipb-change-block": "De Benotzer mat dese Parameteren nees spären",
        "ipb-confirm": "Spär confirméieren",
        "ipb-partial": "Partiell",
-       "ipb-type-label": "Typ",
        "ipb-pages-label": "Säiten",
        "badipaddress": "D'IP-Adress huet dat falscht Format.",
        "blockipsuccesssub": "Gouf gespaart",
        "ipb-blocklist": "Kuckt aktuell Spären",
        "ipb-blocklist-contribs": "Kontributioune vum {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 iwwreg",
+       "block-expiry": "Gültegkeet:",
+       "block-options": "Zousätzlech Optiounen:",
+       "block-prevent-edit": "Änneren",
+       "block-reason": "Grond:",
        "unblockip": "Spär vum Benotzer ophiewen",
        "unblockiptext": "Benotzt dëse Formulaire fir enger IP-Adress oder engem Benotzer seng Spär opzehiewen.",
        "ipusubmit": "Des Spär ophiewen",
        "blocklog-showsuppresslog": "Dëse Benotzer war virdru gespaart a verstoppt. D'Logbuch vun de Suppressiounen steet als Referenz hei ënnendrënner:",
        "blocklogentry": "\"[[$1]]\" gespaart fir $2 $3",
        "reblock-logentry": "huet d'Spär vum [[$1]] bis den $2 $3 geännert",
-       "blocklogtext": "Dëst ass eng Lëscht vu Spären a vu Spären déi opgehuewe goufen.\nAutomatesch gespaarten IP-Adresse sinn hei net opgelëscht.\nKuckt d'[[Special:BlockList|Spärlëscht]] fir déi aktuell Spären.",
+       "blocklogtext": "Dëst ass eng Lëscht vu Spären a vu Spären déi opgehuewe goufen.\nAutomatesch gespaart IP-Adresse sinn hei net opgelëscht.\nKuckt d'[[Special:BlockList|Spärlëscht]] fir déi aktuell Spären.",
        "unblocklogentry": "huet d'Spär vum $1 opgehuewen",
        "block-log-flags-anononly": "Nëmmen anonym Benotzer",
        "block-log-flags-nocreate": "Schafe vu Benotzerkonte gespaart",
        "specialpages-group-developer": "Handwierksgeschir fir Entwéckler (Programméierer)",
        "blankpage": "Eidel Säit",
        "intentionallyblankpage": "Dës Säit ass absichtlech eidel. Si gëtt fir Benchmarking an Ähnleches benotzt.",
+       "disabledspecialpage-disabled": "Dës Säit gouf vun engem System-Administrateur desaktivéiert.",
        "external_image_whitelist": "#Dës Zeil genee sou loosse wéi se ass<pre>\n#Schreift hei ënnendrënner Fragmenter vu regulären Ausdréck (just den Deel zwëscht den // aginn)\n#Dës gi mat den URLe vu Biller aus externe Quelle verglach\n#Wann d'Resultat positiv ass, gëtt d'Bild gewisen, soss gëtt d'Bild just als Link gewisen\n#Zeilen, déi mat engem # ufänken, ginn als Bemierkung behandelt\n#Et gëtt en Ënnerscheed tëscht groussen a klenge Buschtawe gemaach\n\n#All regulär Ausdréck ënner dëser Zeil androen. Dës Zeil genee sou loosse wéi se ass</pre>",
        "tags": "Valabel Ännerungsmarkéierungen",
        "tag-filter": "[[Special:Tags|Markéierungs]]-Filter:",
index 5ab381c..7c415a8 100644 (file)
        "blockip": "Impedi {{GENDER:$1|usor}}",
        "blockiptext": "Usa la formulario a su per impedi asedes scrivente de un adirije IP o nom de usor spesifada.\nOn debe fa esta sola per preveni vandalsime, e longo la [[{{MediaWiki:Policy-url}}|politica]].\nSpesifa un razona a su (per esemplo, indicante pajes individua cual ia es vandalida).\nPer impedi adirijes IP, on pote usa la sintatica [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; la estende la plu grande permeteda es /$1 per IPv4 e /$2 per IPv6.",
        "ipaddressorusername": "Adirije IP o nom de usor:",
-       "ipbexpiry": "Desvalidi:",
        "ipbreason": "Razona:",
        "ipbreason-dropdown": "*Razonas comun de impedi\n** Ajunta de informas falsa\n** Sutrae de contenida de pajes\n** Spam liante a pajerias esterna\n** Ajunta de asurdas/babela a pajes\n** Condui menasante/molestante\n** Malusa de multe contas\n** Nom de usor nonasetable",
        "ipb-hardblock": "Preveni usores autenticida de edita de esta adirije IP",
        "ipb-blocklist": "Regarda impedis esistente",
        "ipb-blocklist-contribs": "Contribuis per $1",
        "ipb-blocklist-duration-left": "$1 resta",
+       "block-expiry": "Desvalidi:",
        "unblockip": "Desimpedi usor",
        "unblockiptext": "Usa la formulario a su per restora asedes scrivente a un adirije IP o nom de usor impedida en la pasada.",
        "ipusubmit": "Sutrae esta impedi",
index 070db27..be4b046 100644 (file)
        "blockip": "Blokkeer {{GENDER:$1|gebroeker}}",
        "blockiptext": "Gebroek 't óngerstaondj formeleer óm sjrieftoegank van e zeker IP-adres te verbeje. Dit maag allein gedaon weure om vandalisme te veurkómme en in euvereinkóms mitte [[{{MediaWiki:Policy-url}}|beleid]]. Gaef hiejónger de raeje óp (bv. inkel vandaliseerdje paazjes).\nDoe kins IP-ranges blokkere door gebroek te make van de [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]-syntaxis; de grótste toegestange reeks is /$1 veur IPv4 en /$2 veur IPv6.",
        "ipaddressorusername": "IP-adres of gebroekersnaam",
-       "ipbexpiry": "Verlöp (maak 'n keuze)",
        "ipbreason": "Reeje:",
        "ipbreason-dropdown": "*Väöl veurkommende rejer veur blokkaazjes\n** Foutieve informatie inveure\n** Verwiedere van informatie oet artikele\n** Spamlinks nao externe websites\n** Inveuge van nonsens in artikele\n** Intimiderend gedraag\n** Misbroek van meerdere gebroekers\n** Onacceptabele gebroekersnaam",
        "ipb-hardblock": "Veurkóm det aangemèldje gebroekers vanaaf dit IP-adres kinne bewèrke",
        "ipb-blocklist": "Bekiek bestaonde blokkades",
        "ipb-blocklist-contribs": "Biedraag van {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 nag euver",
+       "block-expiry": "Verlöp (maak 'n keuze)",
        "unblockip": "Deblokkeer IP adres",
        "unblockiptext": "Gebroek het ongersjtaonde formeleer om weer sjrieftoegang te gaeve aan e geblokkierd IP adres.",
        "ipusubmit": "Deblokkeer dit.",
index 22086dc..30ede7a 100644 (file)
        "blockip": "Blocca {{GENDER:$1|utente}}",
        "blockiptext": "Doeuvia o moddulo sottostante pe bloccâ l'accesso in scrittua a un speciffico addreçço IP ò a un utente registrou.\nO blocco o dev'ese doeuviou pe prevegnî di atti de vandalismo e in streita öservança de [[{{MediaWiki:Policy-url}}|reggole de {{SITENAME}}]].\nIndica o motivo speçiffico pe-o quæ se procede a-o blocco (presempio, çitando i tittoli di eventuæ paggine ögetto de vandalismo).\nTi poeu bloccâ di ntervalli de IP doeuviando a scintasci [https://it.wikipedia.org/wiki/CIDR CIDR]; l'intervallo ciù ampio consentio o l'è /$1 pe IPv4 e /$2 pe IPv6.",
        "ipaddressorusername": "Indirìsso IP ò nómme uténte:",
-       "ipbexpiry": "Scadença:",
        "ipbreason": "Raxon:",
        "ipbreason-dropdown": "*Motivaçioni ciù comun-e pe-i blocchi\n** Inseimento de informaçioin fase\n** Rimoçion di contegnti da-e paggine\n** Collegamenti promoçionæ a di sciti esterni\n** Inseimento di contegnui privi de senso\n** Comportamenti intimidatoi ò molestie\n** Uso indebbito de utençe murtiple\n** Nomme utente inaçettabbile",
        "ipb-hardblock": "Impedisci a-i utenti registræ de contribuî da questo adreçço IP",
        "ipb-blocklist": "Elenca i blocchi attivi",
        "ipb-blocklist-contribs": "Contribuçioin de {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 arestæ",
+       "block-expiry": "Scadença:",
        "unblockip": "Desblocca utente",
        "unblockiptext": "Doeuvia o moddulo sottostante pe restituî l'accesso in scrittua a 'n utente ò adreçço IP bloccou.",
        "ipusubmit": "Leva sto blocco",
index aadf2a9..72db9a2 100644 (file)
        "blockip": "بستن {{GENDER:$1|کاربر}}",
        "blockiptext": "از فرم زیر برای بستن دسترسی ویرایش یک نشانی آی‌پی یا نام کاربری مشخص استفاده کنید.\nاین کار فقط فقط باید برای جلوگیری از خرابکاری و بر اساس [[{{MediaWiki:Policy-url}}|سیاست قطع دسترسی]] انجام شود.\nدلیل مشخص این کار را در زیر ذکر کنید (مثلاً با ذکر صفحه‌های به‌خصوصی که مورد خرابکاری واقع شده‌اند).",
        "ipaddressorusername": "نشانی آی‌پی یا نام کاربری:",
-       "ipbexpiry": "زمان سرآمدن:",
        "ipbreason": ":دةلیل",
        "ipbreason-dropdown": "*دلایل متداول قطع دسترسی\n**واردکردن اطلاعات نادرست\n**پاک‌کردن اطلاعات مفید از صفحات\n**هرزنگاری از طریق درج مکرر پیوند به وب‌گاه‌ها\n**درج چرندیات یا نوشته‌های بی‌معنا در صفحات\n**تهدید یا ارعاب دیگر کاربران\n**سوء استفاده از چند حساب کاربری\n**نام کاربری نامناسب",
        "ipb-hardblock": "جلوگیری از ویرایش کردن کاربران ثبت نام کرده از طریق این نشانی آی‌پی",
        "ipb-unblock": "باز کردن نام کاربری یا نشانی آی‌پی",
        "ipb-blocklist": "دیدن قطع دسترسی‌های موجود",
        "ipb-blocklist-contribs": "مشارکت‌های $1",
+       "block-expiry": "زمان سرآمدن:",
        "unblockip": "بازکردن کاربر",
        "unblockiptext": "برای بازگرداندن دسترسی نوشتن به یک نشانی آی‌پی یا نام کاربری بسته‌شده از فرم زیر استفاده کنید.",
        "ipusubmit": "باز کردن دسترسی",
index 9645c13..06ae51e 100644 (file)
        "blockip": "Bloca el dovrat",
        "blockiptext": "Druvee 'l mòdul chì de suta per blucà l'acess cun dirit de scritüra a un indirizz IP specifegh o a un druvadur registraa.\nEl bloch gh'è de druvàl dumà per evità el vandalism e in acord cun i [[{{MediaWiki:Policy-url}}|regulament de {{SITENAME}}]].\nScrivee chì de suta 'l mutiv specifegh per el bloch (presempi, a pudii scriv i titul di paginn che i henn stat suget a vandalism).",
        "ipaddressorusername": "Indirizz IP o nom del druvdur:",
-       "ipbexpiry": "Fina al:",
        "ipbreason": "Reson:",
        "ipbreason-dropdown": "*Mutiv püssee cumün per i blòch\n** Avè caregaa di infurmazión fals\n** Avè töt via del cuntegnüü dai paginn\n** Avè giuntaa di ereclam a di sit da föra\n** Avè giuntaa de la ratatuja int i paginn\n** Cumpurtament intimidatori\n** Avè druvaa püssee dun cünt in manera abüsiva\n** El nom del druvàt l'è inacetabil",
        "ipbcreateaccount": "Lassegh mia creà di alter cünt",
        "ipb-unblock": "Desbloca un duvrat o un adress IP",
        "ipb-blocklist": "Vardee i blòch ativ",
        "ipb-blocklist-contribs": "Cuntribüzión de $1",
+       "block-expiry": "Fina al:",
        "unblockip": "Desblòca quel druvàt chì",
        "ipusubmit": "Tö via 'stu bloch chì",
        "unblocked": "[[User:$1|$1]] l'è staa desblucaa",
index 932e2fa..75d4709 100644 (file)
        "blockip": "نهاگری{{GENDER:$1|کاریار}}",
        "blockiptext": "نومگه بلگه هاری نه سی نهاگری د دسرسی ویرایشت یه گل تیرنشون آی پی وا نوم کاریاری مشخص وه کار بئیریت.\nای کار فقط فقط واس سی نهاگری د خراوکاری و د پایه [[{{MediaWiki:Policy-url}}|سیاست نهاگری]] انجوم با.\nدلیل دیاری نه د هار بوئیت (مثلند وا گوتن بلگه یایی که دشو خراوکاری بیه).",
        "ipaddressorusername": "نوم نشون آی پی يا نوم كاروری:",
-       "ipbexpiry": "تموم بين:",
        "ipbreason": "دليل:",
        "ipbreason-dropdown": "*دلیلیا جاافتائه سی نهاگری\n**دئن دونسمنیا غلط\n**پاکسا کردن دونسمنیا خو د بلگه یا\n**هرزه نیسی د طریق نیسنن هوم پیوند تکراری د دیارگه یا\n**نیسنن چرند و چار یا نیسسه یا بی مئنی د بلگه یا\n**سهم ونن د کاریاریا هنی\n**وه کار گرتن چن گل حساو کاریاری\n**نوم کاریاری گن",
        "ipb-hardblock": "پیشگری د ویرایشت کردن کاریاریی که د طریق ای تیرنشون آی پی وامین اومانه.",
-       "ipbcreateaccount": "نهاگری دروس کردن حساو",
-       "ipbemailban": "نهاگرتن کاریار د کل کردن انجومانامه",
+       "ipbcreateaccount": "نئهاگری د دوروس کردن هساڤ",
+       "ipbemailban": "نئهاگرتن کاریار د کل کردن ٱنجومانامٱ",
        "ipbenableautoblock": "بستن خودانجوم آخری تیرنشون آی پی وه کار گرته بیه وه دس کاریار و تیرنشونیا هنی که که د ونو سی ویرایشت وه سعی می کن.",
        "ipbsubmit": "نهاگری ای کاریار",
        "ipbother": "وخت هنی:",
        "ipboptions": "2 hours:2 hours,1 day:1 day,3 days:3 days,1 week:1 week,2 weeks:2 weeks,1 month:1 month,3 months:3 months,6 months:6 months,1 year:1 year,indefinite:infinite",
        "ipbhidename": "نوم کاروری نه سی ویرایشت یا و نوم گه یا قام کو",
        "ipbwatchuser": "پی گری بلگه کاریاری و بلگه چک چنه ای کاریار",
-       "ipb-disableusertalk": "نها ای کاریار نه اوسه که میها د بلگه چک چنه ش ویرایشت بکه و وه قلف بیه بئر",
+       "ipb-disableusertalk": "نئها ای کاریار نٱ اۊساْ کاٛ میها د بٱلگٱ چٱک چنٱش ڤیرایشت بٱکٱ و قولف بیٱ بئر.",
        "ipb-change-block": "بسن دوواره کاریار وا ای میزونکاریا",
        "ipb-confirm": "پشت راس کردن قلف",
        "badipaddress": "تیرنشون نامعتور آی پی",
        "ipb-unblock": "واز کردن نوم کاریاری یا تیرنشون آی پی",
        "ipb-blocklist": "دیئن نهاگرتن یا ایسنی",
        "ipb-blocklist-contribs": "هومیاریا $1",
+       "block-expiry": "تٱموم بيئن:",
+       "block-prevent-edit": "د هال و بال ڤیرایشت",
        "unblockip": "کارور منع نبیه",
        "unblockiptext": "سی ؤرئشت دئن دسرسی نیسسن د یه گل تیرنشون آی پی یا نوم کاریاری نهاگری بیه نوم بلگه هاری نه وه کار بئیریت.",
        "ipusubmit": "ای قلف نه ؤردار",
index 8c0f4a9..8b0e0f9 100644 (file)
        "prefs-watchlist-edits": "Kiek daugiausia keitimų rodyti stebimųjų sąraše:",
        "prefs-watchlist-edits-max": "Didžiausias skaičius: 1000",
        "prefs-watchlist-token": "Stebimųjų sąrašo raktas:",
+       "prefs-watchlist-managetokens": "Tvarkyti žetonus",
        "prefs-misc": "Įvairūs nustatymai",
        "prefs-resetpass": "Keisti slaptažodį",
        "prefs-changeemail": "Keisti arba pašalinti el. pašto adresą",
        "recentchangescount": "Numatytasis rodomas keitimų skaičius naujausių keitimų puslapyje, puslapio istorijose ir žurnaluose:",
        "prefs-help-recentchangescount": "Didžiausias skaičius: 1000",
        "prefs-help-watchlist-token2": "Tai yra slaptas jūsų stebimųjų sąrašo raktas, skirtas žiniatinkliui.\nKiekvienas, kuris jį žino, gali skaityti jūsų stebimųjų puslapių sąrašą, taigi, juo nesidalinkite.\nJei norite, [[Special:ResetTokens|galite jį anuliuoti]].",
+       "prefs-help-tokenmanagement": "Galite peržiūrėti ir iš naujo nustatyti slaptą raktą, skirtą prieigai prie stebimų puslapių sąrašo. Kiekvienas, kuris žino raktą, galės matyti jūsų stebimų puslapių sąrašą, todėl nesidalinkite juo.",
        "savedprefs": "Nustatymai sėkmingai išsaugoti.",
        "savedrights": "Naudotojo {{GENDER:$1|$1}} grupės buvo išsaugotos.",
        "timezonelegend": "Laiko juosta:",
        "prefs-dateformat": "Datos formatas",
        "prefs-timeoffset": "Laiko skirtumas",
        "prefs-advancedediting": "Bendrosios parinktys",
+       "prefs-developertools": "Kūrėjo įrankiai",
        "prefs-editor": "Redaktorius",
        "prefs-preview": "Peržiūra",
        "prefs-advancedrc": "Papildomi nustatymai",
        "prefs-advancedwatchlist": "Papildomi nustatymai",
        "prefs-displayrc": "Rodymo nustatymai",
        "prefs-displaywatchlist": "Rodymo nuostatos",
+       "prefs-changesrc": "Rodomi keitimai",
+       "prefs-changeswatchlist": "Rodomi keitimai",
+       "prefs-pageswatchlist": "Stebimi puslapiai",
        "prefs-tokenwatchlist": "Žetonas",
        "prefs-diffs": "Skirtumai",
        "prefs-help-prefershttps": "Šis nustatymas suveiks kitą kartą prisijungiant.",
        "prefixindex": "Visi puslapiai pagal pavadinimo pradžią",
        "prefixindex-namespace": "Visi puslapiai prasidedantys ($1 vardų sritis)",
        "prefixindex-submit": "Rodyti",
-       "prefixindex-strip": "Paslėpti priešdėlį gavinių sąraše",
+       "prefixindex-strip": "Paslėpti priešdėlį rezultatų sąraše",
        "shortpages": "Trumpiausi puslapiai",
        "longpages": "Ilgiausi puslapiai",
        "deadendpages": "Puslapiai-aklavietės",
        "blockip": "Blokuoti naudotoją",
        "blockiptext": "Naudokite šią formą, kad uždraustumėte redagavimo prieigą pasirinktam IP adresui ar naudotojui. Tai turėtų būti atliekama tik tam, kad sustabdytumėte vandalizmą, ir neprieštarauti [[{{MediaWiki:Policy-url}}|projekte galiojančioms taisyklėms]].\nŽemiau pateikite tikslią priežastį (pavyzdžiui, nurodydami sugadintus puslapius).\nJūs galite blokuoti IP intervalus pasinaudodami [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] sintakse; didžiausias leidžiamas intervalas yra /$1 IPv4 ir /$2 IPv6.",
        "ipaddressorusername": "IP adresas arba naudotojo vardas",
-       "ipbexpiry": "Galiojimo laikas",
        "ipbreason": "Priežastis:",
        "ipbreason-dropdown": "*Bendrosios blokavimo priežastys\n** Klaidingos informacijos įterpimas\n** Turinio šalinimas iš puslapių\n** Kitų svetainių reklamavimas\n** Nesusijusio arba beprasmio teksto įterpimas į puslapius\n** Gąsdinimai/įžeidinėjimai\n** Piktnaudžiavimas keliomis paskyromis\n** Nepriimtinas naudotojo vardas",
        "ipb-hardblock": "Neleisti prisijungusiems naudotojams redaguoti iš šio IP adreso",
        "ipb-blocklist": "Rodyti egzistuojančius blokavimus",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} indėlis",
        "ipb-blocklist-duration-left": "liko $1",
+       "block-actions": "Užblokuoti šiuos veiksmus:",
+       "block-expiry": "Galiojimo laikas",
+       "block-options": "Papildomi nustatymai:",
+       "block-reason": "Priežastis:",
+       "block-target": "Naudotojo vardas arba IP adresas:",
        "unblockip": "Atblokuoti naudotoją",
        "unblockiptext": "Naudokite šią formą, kad atkurtumėte redagavimo galimybę\nankščiau užblokuotam IP adresui ar naudotojui.",
        "ipusubmit": "Atblokuoti šį adresą",
        "delete_and_move_text": "Paskirties puslapis „[[:$1]]“ jau yra. Ar norite jį ištrinti, kad galėtumėte pervardinti?",
        "delete_and_move_confirm": "Taip, trinti puslapį",
        "delete_and_move_reason": "Ištrinta dėl perkėlimo iš \"[[$1]]\"",
-       "selfmove": " Pavadinimai yra tokie patys; negalima pervardyti puslapio į save.",
+       "selfmove": "Pavadinimai yra tokie patys; negalima pervardyti puslapio į save.",
        "immobile-source-namespace": "Negalima perkelti puslapių vardų srityje „$1“",
        "immobile-target-namespace": "Perkelti puslapius į „$1“ vardų sritį negalima",
        "immobile-target-namespace-iw": "Tarprojektinė nuoroda yra neleistina paskirtis perkelti puslapį.",
        "special-characters-title-endash": "en brūkšnys",
        "special-characters-title-emdash": "em brūkšnys",
        "special-characters-title-minus": "minuso ženklas",
-       "mw-widgets-abandonedit": "Ar esate tikri, jog norite palikti redagavimo rėžimą pirma neišsaugoję pakeitimų?",
+       "mw-widgets-abandonedit": "Ar esate tikri, jog norite palikti redagavimo režimą neišsaugoję pakeitimų?",
        "mw-widgets-abandonedit-discard": "Atsisakyti pakeitimų",
-       "mw-widgets-abandonedit-keep": "Tęsti koregavimą",
-       "mw-widgets-abandonedit-title": "Ar tikrai?",
+       "mw-widgets-abandonedit-keep": "Tęsti redagavimą",
+       "mw-widgets-abandonedit-title": "Esate tikri?",
        "mw-widgets-dateinput-no-date": "Nepasirinkta data",
        "mw-widgets-mediasearch-input-placeholder": "Ieškoti medijų",
        "mw-widgets-mediasearch-noresults": "Rezultatų nerasta.",
index c3c82c2..1fc4446 100644 (file)
        "whatlinkshere-filters": "Thlitfimna",
        "blockip": "Hmangtu dangbet rawh",
        "ipaddressorusername": "Chenhmun-IP emaw hmangtuhming:",
-       "ipbexpiry": "Tawphun:",
        "ipbreason": "Chhan:",
        "ipbsubmit": "Hmangtu dangbet rawh",
        "ipboptions": "darkar 2:2 hours, ni 1:1 day, ni 3:3 days, kar 1:1 week, kar 2:2 weeks, thla 1:1 month, thla 3:3 months, thla 6:6 months, kum 1:1 year, tiam chin awm lo:infinite",
        "ipb-blockingself": "Nangmah leh nangmah i indäl dáwn! I duh chiah maw?",
+       "block-expiry": "Tawphun:",
        "ipblocklist": "Hmangtu danbeh-ho",
        "ipblocklist-legend": "Hmangtu danbeh zawng rawh",
        "blocklink": "danbehna",
index 583fa92..eaa51bb 100644 (file)
        "returnto": "Atgriezties: $1.",
        "tagline": "No ''{{grammar:ģenitīvs|{{SITENAME}}}}''",
        "help": "Palīdzība",
+       "help-mediawiki": "MediaWiki palīdzība",
        "search": "Meklēt",
        "search-ignored-headings": " #<!-- atstāt šo rindiņu tādu, kāda tā ir --> <pre>\n#Virsraksti, kas tiks ignorēti meklējot.\n#Izmaiņas stāsies spēkā, kad lapa ar virsrakstiem ir indeksēta.\n#Jūs varat piespiest lapai tikt indeksētai vēlreiz ar nulles labojumu.\n#Sintakse:\n# * Jebkas no \"#\" zīmes līdz rindiņas beigām ir komentārs.\n# * Katra līnija ir precīzs ignorējamais virsraksts, ieskaitot lielos / mazos burtus.\nAtsauces\nĀrējās saites\nSkatīt arī\n #</pre> <!-- atstāt šo rindiņu tādu, kāda tā ir -->",
        "searchbutton": "Meklēt",
        "botpasswords-created-title": "Bota parole izveidota",
        "botpasswords-updated-title": "Bota parole atjaunināta",
        "botpasswords-deleted-title": "Bota parole dzēsta",
+       "botpasswords-no-provider": "BotPasswordsSessionProvider nav pieejams.",
        "botpasswords-restriction-failed": "Botu paroles ierobežojumi liedz šo pieslēgšanos.",
        "botpasswords-not-exist": "Lietotājam \"$1\" nav bota paroles ar nosaukumu \"$2\".",
        "resetpass_forbidden": "Paroles nav iespējams nomainīt",
        "prefs-advancedwatchlist": "Papildu iespējas",
        "prefs-displayrc": "Pamatuzstādījumi",
        "prefs-displaywatchlist": "Pamatuzstādījumi",
+       "prefs-pageswatchlist": "Uzraudzītās lapas",
        "prefs-tokenwatchlist": "Marķieris",
        "prefs-diffs": "Izmaiņas",
        "prefs-help-prefershttps": "Šie uzstādījumi stāsies spēkā nākamajā pievienošanās reizē.",
        "blockip": "Bloķēt {{GENDER:$1|dalībnieku|dalībnieci}}",
        "blockiptext": "Šo veidni izmanto, lai bloķētu kādas IP adreses vai lietotājvārda piekļuvi wiki lapu saglabāšanai. Dari to tikai, lai novērstu vandālismu atbilstoši [[{{MediaWiki:Policy-url}}|noteikumiem]].\nNorādi konkrētu iemeslu (piemēram, linkus uz vandalizētajām lapām).",
        "ipaddressorusername": "IP adrese vai lietotājvārds",
-       "ipbexpiry": "Termiņš",
        "ipbreason": "Iemesls:",
        "ipbreason-dropdown": "*Biežākie bloķēšanas iemesli\n** Ievieto nepatiesu informāciju\n** Dzēš lapu saturu\n** Spamo ārējās saitēs\n** Ievieto nesakarīgus simbolus sakopojumus\n** Nepieņemama uzvedība un apvainojumi\n** Vairāku kontu ļaunprātīga izmantošana\n** Nepieņemams lietotājvārds",
        "ipbcreateaccount": "Neļaut izveidot lietotājvārdu",
        "ipb-unblock": "Atbloķēt lietotāju vai IP adresi",
        "ipb-blocklist": "Apskatīt esošos blokus",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} devums",
+       "block-actions": "Bloķējamās darbības:",
+       "block-expiry": "Termiņš",
+       "block-options": "Papildu iespējas:",
+       "block-prevent-edit": "Labošana",
+       "block-reason": "Iemesls:",
+       "block-target": "Lietotājvārds vai IP adrese:",
        "unblockip": "Atbloķēt lietotāju",
        "unblockiptext": "Šeit var atbloķēt iepriekš nobloķētu IP adresi vai lietotāja vārdu (atjaunot viņiem rakstīšanas piekļuvi).",
        "ipusubmit": "Noņemt šo bloku",
        "unblocked": "[[User:$1|$1]] tika atbloķēts",
        "unblocked-range": "$1 tika atbloķēts",
        "unblocked-id": "Bloks $1 tika noņemts",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] tika atbloķēta.",
        "blocklist": "Bloķētie lietotāji",
        "autoblocklist-submit": "Meklēt",
        "ipblocklist": "Bloķētie lietotāji",
        "delete_and_move_text": "==Nepieciešama dzēšana==\nMērķa lapa \"[[:$1]]\" jau eksistē.\nVai tu to gribi izdzēst, lai atbrīvotu vietu pārvietošanai?",
        "delete_and_move_confirm": "Jā, dzēst lapu",
        "delete_and_move_reason": "Izdzēsts, lai atbrīvotu vietu pārvietošanai no \"[[$1]]\"",
-       "selfmove": "Izejas un mērķa lapu nosaukumi ir vienādi;\nnevar pārvietot lapu uz sevi.",
+       "selfmove": "Nosaukums ir tāds pats;\nnevar pārvietot lapu uz sevi.",
        "immobile-source-namespace": "Nevar pārvietot lapas vārdtelpā \"$1\"",
        "immobile-target-namespace": "Nevar pārvietot lapas uz vārdtelpu \"$1\"",
+       "immobile-target-namespace-iw": "Starpviki saite nav derīgs lapas pārvietošanas mērķis.",
        "immobile-source-page": "Šī lapa nav pārvietojama.",
        "immobile-target-page": "Nevar pārvietot uz mērķa nosaukumu.",
        "imagenocrossnamespace": "Nevar pārvietot failu uz vārtelpu, kas nav paredzēta failiem.",
        "pageinfo-display-title": "Attēlojamais nosaukums",
        "pageinfo-default-sort": "Noklusējuma kārtošanas atslēga",
        "pageinfo-length": "Lapas garums (baitos)",
+       "pageinfo-namespace": "Vārdtelpa",
        "pageinfo-article-id": "Lapas ID",
        "pageinfo-language": "Lappuses satura valoda",
        "pageinfo-language-change": "izmainīt",
        "redirect-file": "Faila nosaukums",
        "redirect-logid": "Ieraksta ID",
        "redirect-not-exists": "Vērtība nav atrasta",
+       "redirect-not-numeric": "Vērtība nav skaitliska",
        "fileduplicatesearch": "Meklēt failu kopijas",
        "fileduplicatesearch-summary": "Meklē dublējošos failus, izmantojot uz jaucējfunkcijas vērtības.",
        "fileduplicatesearch-filename": "Faila vārds:",
        "mediastatistics-header-executable": "Izpildāmi",
        "mediastatistics-header-archive": "Arhīva formāti",
        "mediastatistics-header-total": "Visi faili",
+       "json-error-state-mismatch": "Nederīgs vai nepareizi veidots JSON",
        "json-error-syntax": "Sintakses kļūda",
        "headline-anchor-title": "Saite uz šo sadaļu",
        "special-characters-group-latin": "Latīņu",
        "mw-widgets-abandonedit-keep": "Turpināt labošanu",
        "mw-widgets-abandonedit-title": "Vai esi pārliecināts?",
        "mw-widgets-dateinput-no-date": "Nav izvēlēts datums",
+       "mw-widgets-mediasearch-noresults": "Nav atrasts neviens rezultāts.",
        "mw-widgets-titleinput-description-new-page": "lapa vēl nepastāv",
        "mw-widgets-categoryselector-add-category-placeholder": "Pievienot kategoriju...",
        "mw-widgets-usersmultiselect-placeholder": "Pievienot vēl...",
        "date-range-to": "Līdz datumam:",
        "sessionprovider-generic": "$1 sesijas",
        "randomrootpage": "Nejauša saknes lapa",
+       "log-action-filter-protect": "Aizsardzības veids:",
        "log-action-filter-suppress": "Cenzēšanas veids:",
        "log-action-filter-upload": "Augšupielādes veids:",
        "log-action-filter-block-unblock": "Atbloķēšana",
        "pageid": "lapas ID $1",
        "gotointerwiki-invalid": "Norādītais nosaukums ir nederīgs.",
        "pagedata-title": "Lapas dati",
-       "pagedata-bad-title": "Nederīgs nosaukums: $1."
+       "pagedata-bad-title": "Nederīgs nosaukums: $1.",
+       "passwordpolicies": "Paroļu politika",
+       "passwordpolicies-group": "Grupa",
+       "passwordpolicies-policies": "Politikas"
 }
index 848811b..bfa44c3 100644 (file)
        "blockip": "禁簿",
        "blockiptext": "函下禁纂,簿、址明判;[[{{MediaWiki:Policy-url}}|秉據]]如斯,立法克亂。指罪證行,了冤無憾。",
        "ipaddressorusername": "IP或簿名",
-       "ipbexpiry": "限期",
        "ipbreason": "指證",
        "ipbreason-dropdown": "*如下道:\n** 造假報\n** 毀文貌\n** 廣賈告\n** 話胡鬧\n** 恐嚇擾\n** 污名號\n** 名瀆道",
        "ipbcreateaccount": "禁增簿",
        "ipb-unblock": "赦簿、址",
        "ipb-blocklist": "列禁",
        "ipb-blocklist-contribs": "$1勛績",
+       "block-expiry": "限期",
        "unblockip": "赦簿",
        "unblockiptext": "函下赦禁。",
        "ipusubmit": "赦此址",
index edda4f4..5fb1c6f 100644 (file)
@@ -11,7 +11,8 @@
                        "The Evil IP address",
                        "아라",
                        "Velg",
-                       "Stephanecbisson"
+                       "Stephanecbisson",
+                       "Cem Rize"
                ]
        },
        "tog-underline": "Link'iş tude kogu3’uxaçki:",
        "category-subcat-count": "{{PLURAL:$2|Am kʼatʼegoris, xvala, tude na ren kʼatʼegori uğun.|Am kʼatʼegori tʼoplamurot $2 kʼatʼegorişen {{PLURAL:$1|tudekʼatʼegori|$1 tudekʼatʼegori}}s uğun}}",
        "category-subcat-count-limited": "Am k'at'egori tudes na dgin {{PLURAL:$1|tude k'at'egoris|$1 tude k'at'egoris}} uğun.",
        "category-article-count": "{{PLURAL:$2|Am kʼatʼegoris, xvala, tude na ren kʼatʼegori uğun.|Tʼoplami $2 şen, tude na ren {{PLURAL:$1|butʼkʼa|$1 butʼkʼa}} am kʼatʼegoris ren.}}",
+       "category-file-count": "{{PLURAL:$2|Am kʼatʼegoris, xvala, tude na ren kʼatʼegori uğun.|Tʼoplami $2 şen, tude na ren {{PLURAL:$1|butʼkʼa|$1 butʼkʼa}} am kʼatʼegoris ren.}}",
        "listingcontinuesabbrev": "(naqona)",
        "index-category": "Indexi na uğun but'k'ape",
        "noindex-category": "Indexi muşi na var uğun sayfape",
+       "broken-file-category": "Bozuk dosya bağlantıları içeren sayfalar",
        "about": "Şeni",
        "newwindow": "(ağne penceres guin3ʼkʼen)",
        "cancel": "İpʼtʼali qʼvi",
        "anontalk": "Am IP'şi mesajepe",
        "navigation": "Goxtima",
        "and": "&#32;do",
+       "namespaces": "Svacoxo",
        "variants": "Variant'epe",
+       "navigation-heading": "Gezinti menüsü",
        "errorpagetitle": "Çilata",
        "returnto": "$1 butʼkʼaşa goikti.",
        "tagline": "{{SITENAME}}-işen",
        "history_short": "Tarixi",
        "printableversion": "Kart'alişa na geibaz*gen versiyoni",
        "permalink": "Am xalişa kʼontaktʼi qʼvi",
+       "view": "Oz*iramepe",
+       "view-foreign": "$1 üzerinde gör",
        "edit": "doktiri",
        "create": "dokʼidi",
+       "create-local": "Yerel açıklama ekle",
        "delete": "Jili",
        "protect": "İçvi",
        "protect_change": "Doktiri",
        "otherlanguages": "Majurani nenapes",
        "redirectedfrom": "($1 butʼkʼaşen moxtu)",
        "redirectpagesub": "Redirektʼiş butʼkʼa",
+       "redirectto": "Şuraya yönlendir:",
        "lastmodifiedat": "Am butʼkʼa çodinurot $2, $1 tarixis iktirinu.",
        "jumpto": "İdi do:",
        "jumptonavigation": "ixmari",
        "aboutpage": "Project:Ambarepe",
        "copyright": "Doloxe na renanpe, $1-şi ren.",
        "copyrightpage": "{{ns:project}}:Şinaxeri Hakʼepe",
+       "currentevents": "Güncel olaylar",
+       "currentevents-url": "Project:Güncel olaylar",
        "disclaimers": "Kʼabuli na var ixvenu ondepe",
        "disclaimerpage": "Project:Mtelot kʼabuli na var ixvenu ondepe",
        "edithelp": "Muçʼoşi iktirinen?",
        "mainpage": "Dudi Butʼkʼa",
        "mainpage-description": "Dudi But'k'a",
+       "portal": "Topluluk portali",
+       "portal-url": "Project:Topluluk portali",
        "privacy": "Şinaxeri Hakʼepe",
        "privacypage": "Project:Şinaxeri Hakʼepe",
        "badaccess": "İzini çilata",
        "ok": "HO",
        "retrievedfrom": "\"$1\" adresişen eizdinu",
        "youhavenewmessages": "Ağani $1 giğun. ($2)",
+       "youhavenewmessagesfromusers": "{{PLURAL:$3|Başka bir kullanıcıdan|$3 kullanıcıdan}} $1 var ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|yeni mesajınız|yeni mesajlarınız}}",
+       "newmessagesdifflinkplural": "$1 {{PLURAL:$1|oktiroba|oktiroba}}",
        "youhavenewmessagesmulti": "$1's ağne mesajepe giğun",
        "editsection": "doktiri",
        "editold": "Doktiri",
        "nstab-help": "Meşvelaşi but’k’a",
        "nstab-category": "Kʼatʼegori",
        "mainpage-nstab": "Dudi But'k'a",
+       "nosuchspecialpage": "Böyle bir özel sayfa yok",
+       "nospecialpagetext": "<strong>Mevcut olmayan bir özel sayfayı istediniz.</strong>\n\nVarolan tüm özel sayfaları [[Special:SpecialPages|özel sayfalar]] sayfasında görebilirsiniz.",
        "error": "Çilata",
        "missing-article": "Datʼabeizik, na igoren \"$1\" $2 coxoni butʼkʼaşi tekstʼi var az*iru.\n\nMuşeni? Çunki am butʼkʼa, jileri na ren a butʼkʼaşi golaxteri versiyoni ren.\n\nEger sebebi aya na va renna, pʼrogramis ar çilata z*irit.\nMu iqʼven! Aya, a [[Special:ListUsers/sysop|adminis]], URL-ti çʼareli şekʼilite rapʼortʼi doçʼarit.",
        "missingarticle-rev": "(revizyoni#: $1)",
        "badtitle": "Varixmarinen boxoxia",
        "badtitletext": "Na içʼaren butʼkʼaşi coxo ya çilatoni ren ya boşi ren varna inter-nena do inter-vikʼişi kʼontʼaktʼis na uğutʼu şeni mtini varen.\nDudicoxopes oxmaruşi yasaği na ren ar, varna daha dido kʼarakʼtʼeri uğun.",
        "viewsource": "Odudes o3ʼkʼedi",
+       "viewsource-title": "$1 sayfasının kaynağını görüntüle",
+       "viewsourcetext": "Bu sayfanın kaynağını görebilir ve kopyalayabilirsiniz.",
        "welcomeuser": "K'aobaten, $1!",
        "yourname": "Skani maxmare-coxo:",
        "userlogin-yourname": "Skani maxmare-coxo",
+       "userlogin-yourname-ph": "Kullanıcı adı girin",
        "yourpassword": "Pʼarola-skani:",
        "userlogin-yourpassword": "Pʼarola-skani",
+       "userlogin-yourpassword-ph": "Parolanızı girin",
+       "createacct-yourpassword-ph": "Bir parola girin",
+       "createacct-yourpasswordagain": "Parolayı onayla",
+       "createacct-yourpasswordagain-ph": "Parolayı yeniden girin",
+       "userlogin-remembermypassword": "Oturumumu sürekli açık tut",
        "yourdomainname": "Skani domaini:",
        "login": "Sitʼeşa amaxti",
        "nav-login-createaccount": "Sitʼeşa amaxti / hesabi dokʼidi",
        "logout": "Siteşen Kogamaxti",
        "userlogout": "Siteşen Kogamaxti",
+       "userlogin-noaccount": "Hesabi va giğuni? '''$1'''",
        "userlogin-joinproject": "{{SITENAME}}işe ak’ati",
        "createaccount": "Hesabi dokʼidi",
+       "userlogin-resetpassword-link": "Parolanızı mı unuttunuz?",
+       "userlogin-helplink2": "Oturum açma konusunda yardım alın",
+       "createacct-emailoptional": "E-posta adresi (isteğe bağlı)",
+       "createacct-email-ph": "E-posta adresinizi girin",
        "createacct-reason": "Muşen",
+       "createacct-submit": "Hesabi dokʼidi.",
+       "createacct-benefit-heading": "{{SITENAME}} sizin gibi insanlar tarafından geliştirilir.",
+       "createacct-benefit-body1": "{{PLURAL:$1|düzenleme|düzenleme}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|madde|madde}}",
+       "createacct-benefit-body3": "yakın zamanda {{PLURAL:$1|katkı yapan|katkı yapan}} kişi",
        "mailmypassword": "Ağne pʼarola-çkimi moncğoni",
        "loginlanguagelabel": "Nena: $1",
        "pt-login": "Sitʼeşa amaxti",
+       "pt-login-button": "Sitʼeşa amaxti",
        "pt-createaccount": "Hesabi dokʼidi",
+       "pt-userlogout": "Siteşen Kogamaxti",
        "oldpassword": "Mcveşi p'arola:",
        "newpassword": "Ağani P'arola:",
+       "passwordreset": "Ağne pʼarola-çkimi moncğoni",
        "passwordreset-username": "Skani maxmare-coxo:",
        "bold_sample": "Mçxu nçʼara",
        "bold_tip": "Mçxu nçʼara",
        "preview": "Evvelişen i3ʼkʼedi",
        "showpreview": "\"Evvelişen i3ʼkʼedi\" fonkʼsioni ixmari",
        "showdiff": "Oktirobape ko3ʼiri",
-       "anoneditwarning": "'''KUN3Xİ:''' Sitʼeşa amaxtimeri va re.\nEmuşeni butʼkʼaşi oktirobaşi kʼayitʼepes, coxoskani yeine IP adresiskani ikʼayitʼinasen.",
+       "anoneditwarning": "<strong>Uyarı:</strong> Giriş yapmadınız. Herhangi bir değişiklik yapmanız durumunda IP adresiniz herkese gözükecektir. Eğer <strong>[$1 giriş yaparsanız]</strong> veya <strong>[$2 bir hesap oluşturursanız]</strong>, edineceğiniz çeşitli yararların yanı sıra yaptığınız değişiklikler de kullanıcı adınıza atfedilecektir.",
        "summary-preview": "\"Evvelişen i3ʼkʼedi\" fonkʼsionişi ozetʼi:",
+       "blockedtext": "<strong>Kullanıcı adı veya IP adresiniz engellenmiştir.</strong>\n\nSizi engelleyen hizmetli: $1.<br />\nEngelleme sebebi: <em>$2</em>.\n\n* Engellenmenin başlangıcı: $8\n* Engellenmenin bitişi: $6\n* Engellenme süresi: $7\n\nBelirtilen nedene göre engellenmenizin uygun olmadığını düşünüyorsanız, $1 ya da başka bir [[{{MediaWiki:Grouppage-sysop}}|hizmetli]] ile bu durumu görüşebilirsiniz. [[Special:Preferences|Tercihlerim]] kısmında geçerli bir e-posta adresi girmediyseniz \"Kullanıcıya e-posta gönder\" özelliğini kullanamazsınız, tercihlerinize e-posta adresinizi eklediğinizde e-posta gönderme hakkına sahip olacaksınız.\n<br />Şu anki IP adresiniz $3, engellenme numaranız #$5.\n<br />Bir hizmetliden durumunuz hakkında bilgi almak istediğinizde veya herhangi bir sorguda bu bilgiler gerekecektir, lütfen not ediniz.",
+       "loginreqlink": "Sitʼeşa amaxti",
        "newarticle": "(Ağani)",
        "newarticletext": "Daha na va ren ar butʼkʼaşa na geidven ar kʼontʼaktʼis atxozit. Am butʼkʼa okʼidu şeni tude na ren tʼeksboksi ixmarit. Çkina şeni [$1 meşvelaşi butʼkʼas] o3ʼkʼedit. Ak çilataten moxtit na, pʼrogramişi '''Ukʼuni''' tʼuşis geibaz*git.",
-       "noarticletext": "A3ʼi am butʼkʼa boşi ren.\nAm butʼkʼaş dudi-coxo majurani butʼkʼapes [[Special:Search/{{PAGENAME}}|gagoren]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} alakʼali na renan ndğerepe gagoren],\nvarna am butʼkʼa [{{fullurl:{{FULLPAGENAME}}|action=edit}} gaktirinen]</span>.",
+       "anontalkpagetext": "----\n<em>Bu sayfa henüz bir kullanıcı hesabı oluşturmamış veya hesabını kullanmayan bir anonim kullanıcının mesaj sayfasıdır.</em>\nBu nedenle bu kişileri belirtmek için rakamsal IP adresini kullanmak zorundayız.\nBu gibi IP adresleri birçok kullanıcı tarafından paylaşılabilir.\nEğer siz de bir anonim kullanıcıysanız ve size sizin ilginiz olmayan iletiler geliyorsa, lütfen diğer anonim kullanıcılarla olabilecek olan karmaşayı önlemek için [[Special:CreateAccount|bir hesap edinin]] veya [[Special:UserLogin|oturum açın]].",
+       "noarticletext": "Bu sayfa şu anda boştur.\nBu başlığı [[Special:Search/{{PAGENAME}}|diğer sayfalarda arayabilir]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ilgili kayıtları arayabilir],\nya da bu sayfayı [{{fullurl:{{FULLPAGENAME}}|action=edit}} oluşturabilirsiniz]</span>.",
+       "noarticletext-nopermission": "Bu sayfa şu anda boştur.\nBu başlığı [[Special:Search/{{PAGENAME}}|diğer sayfalarda arayabilir]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ilgili kayıtları arayabilir],\nya da bu sayfayı [{{fullurl:{{FULLPAGENAME}}|action=edit}} oluşturabilirsiniz]</span>.",
+       "userpage-userdoesnotexist-view": "\"$1\" kullanıcı hesabı kayıtlı değil.",
+       "clearyourcache": "<strong>Note:</strong> Kaydettikten sonra değişiklikleri görmek için tarayıcınızın önbelleğini temizlemeniz gerekebilir.\n* <strong>Firefox / Safari:</strong> <em>Shift</em> tuşuna basılıyken <em>Yeniden yükle</em>'ye tıklayın ya da <em>Ctrl-F5</em> ya da <em>Ctrl-R</em> yapın (Mac için <em>⌘-R</em>).\n* <strong>Google Chrome:</strong> <em>Ctrl-Shift-R</em>'ye basın. (Mac için <em>⌘-Shift-R</em>)\n* <strong>Internet Explorer:</strong> <em>Ctrl</em> basılıyken <em>Yenile</em>'ye tıklayın ya da <em>Ctrl-F5</em> yapın.\n* <strong>Opera:</strong> <em>Araçlar → Tercihler</em>'den önbelliği temizleyin.",
        "previewnote": "'''Aya, xvala, \"Evvelişen i3ʼkʼedi\" fonkʼsioni ren do oktirobape-skani kʼayitʼi var ixvenu çkva!'''",
+       "continue-editing": "Düzenlemeye devam et",
        "editing": "\"$1\" butʼkʼa iktirinen a3ʼi",
+       "creating": "$1 sayfasını oluşturuyorsunuz",
        "editingsection": "\"$1\" butʼkʼas burme iktirinen",
        "copyrightwarning": "'''Mu iqʼven kʼun3xi:''' {{SITENAME}} sitʼeşa na ixvenu mteli meşvelape <i>$2</i>\npaktʼiş doloxe ren (detayepe şeni $1's o3ʼkʼedi).\nNa qʼvi meşvelaşa başka makʼaturepeşkʼelen pʼatʼi mutxanepe ixvenen varna xemoşletinerot do uoçodinurot başka svapeşa niçinen, aya kʼabuli qʼvi varna am sitʼe şeni mutu mo ikip!<br />\nEdo amuş metʼi, ak mxuciş meçamu ginonna, meşvelape ti-skani kʼala oçʼaruşi re, varna ofi3ialurişa gon3ʼkʼimeri na ren ar kʼaynağişen (odudeşen) varna başka oxoşkveri kʼaynağepeşen (odudepeşen) na ezdi kʼabuli oxvenuşi re.<br />\n'''DOXMELİ HAKʼEPETE NA İŞİNAXENAN XANDAPE AK MO UKʼATEPT!'''",
        "templatesused": "Am butʼkʼas na ixmarinen {{PLURAL:$1|şabloni|şablonepe}}:",
        "template-protected": "(oçvu)",
        "template-semiprotected": "(gverd-oçvu)",
        "hiddencategories": "Am butʼkʼa {{PLURAL:$1|1 şinaxeri kʼatʼegori|$1 şinaxeri kʼatʼegori}}şi ren:",
+       "permissionserrors": "İzini çilata",
        "permissionserrorstext-withaction": "Tude na çʼars {{PLURAL:$1|sebebi|sebebepe}} na rtʼu şeni $2 yetʼkʼi var giğun:",
+       "recreate-moveddeleted-warn": "<strong>Uyarı: Daha önceden silinmiş bir sayfayı tekrar oluşturuyorsunuz.</strong>\n\nBu sayfayı düzenlemeye devam etmenin uygun olup olmadığını düşünmelisiniz.\nBu sayfanın silme ve taşıma günlüğü kolaylık için burada verilmiştir:",
+       "moveddeleted-notice": "Bu sayfa silinmiş.\nSayfanın silme, koruma ve taşıma kaydı referans için aşağıda verilmiştir.",
+       "content-model-wikitext": "vikimetin",
+       "undo-failure": "Değişikliklerin çakışması nedeniyle geri alma işlemi başarısız oldu.",
        "viewpagelogs": "Am butʼkʼa şeni kʼayitʼepe ko3ʼiri",
        "currentrev-asof": "$1 itibariten butʼkʼaşi a3ʼineri xali.",
        "revisionasof": "Butʼkʼaşi $1 tarixis xali muşi",
+       "revision-info": "$2 tarafından oluşturulmuş $1 tarihli sürüm $7",
        "previousrevision": "← Mcveşi xali muşi",
        "nextrevision": "Ağani xali-muşi →",
        "currentrevisionlink": "İrişen ağne xali-muşi ko3ʼiri",
        "history-show-deleted": "Xvala nijilenepe",
        "histfirst": "irişen mcveşi",
        "histlast": "irişen ağani",
+       "history-feed-title": "Değişiklik geçmişi",
+       "history-feed-description": "Viki üzerindeki bu sayfanın değişiklik geçmişi.",
+       "history-feed-item-nocomment": "$1, $2'de",
        "rev-delundel": "ko3ʼiri/doşinaxi",
        "rev-showdeleted": "ko3ʼiri",
        "revdelete-show-file-submit": "Ho",
        "revdelete-radio-set": "Şinaxeri",
        "revdelete-radio-unset": "Var",
        "revdel-restore": "Ozʼiramuşi doktiri",
+       "mergelog": "Birleştirme günlüğü",
        "revertmerge": "Artikʼartişen okʼo3ʼkʼi",
        "history-title": "Butʼkʼaşi tarixi \"$1\"",
+       "difference-title": "\"$1\" sayfasının sürümleri arasındaki fark",
        "lineno": "$1. satʼiri:",
        "compareselectedversions": "Na goşiğen versiyonepe okʼo3ʼiri",
        "editundo": "ukʼuni",
+       "diff-empty": "(Fark yok)",
+       "diff-multi-sameuser": "(Aynı kullanıcının {{PLURAL:$1|aradaki bir diğer değişikliği|aradaki diğer $1 değişikliği}} gösterilmiyor)",
+       "diff-multi-otherusers": "({{PLURAL:$2|Bir diğer kullanıcıdan|$2 kullanıcıdan}} {{PLURAL:$1|bir ara revizyon|$1 ara revizyon}} gösterilmiyor)",
        "searchresults": "Ogoru sonucepe",
        "searchresults-title": "\"$1\" şeni ogoru sonucepe",
        "notextmatches": "Çkar butʼkʼa var iz*irinu",
        "prevn": "ukʼuni {{PLURAL:$1|$1}}",
        "nextn": "mendi {{PLURAL:$1|$1}}",
+       "prevn-title": "Önceki $1 {{PLURAL:$1|sonuç|sonuç}}",
+       "nextn-title": "Sonraki $1 {{PLURAL:$1|sonuç|sonuç}}",
+       "shown-title": "Sayfa başına $1 {{PLURAL:$1|sonuç|sonuç}} göster",
        "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3)",
+       "searchmenu-exists": "'''Bu vikide \"[[:$1]]\" adında bir sayfa mevcut'''",
+       "searchmenu-new": "<strong>\"[[:$1]]\" sayfasını oluşturabilirsiniz!</strong> {{PLURAL:$2|0=|Ayrıca aramanız sonucunda bulunan sayfayı görüntüleyebilirsiniz.|Ayrıca bulunan arama sonuçlarını görüntüleyebilirsiniz.}}",
+       "searchprofile-articles": "İçerik sayfaları",
+       "searchprofile-images": "Çoklu ortam",
+       "searchprofile-everything": "Her şey",
+       "searchprofile-advanced": "Gelişmiş",
+       "searchprofile-articles-tooltip": "$1 içinde ara",
+       "searchprofile-images-tooltip": "Dosya ara",
+       "searchprofile-everything-tooltip": "Tüm içerikte ara (tartışma sayfaları dahil)",
+       "searchprofile-advanced-tooltip": "Özel ad alanlarında ara",
        "search-result-size": "$1 ({{PLURAL:$2|1 tkvala|$2 tkvala}})",
-       "search-redirect": "(redirektʼi $1)",
+       "search-result-category-size": "{{PLURAL:$1|1 üye|$1 üye}} ({{PLURAL:$2|1 altkategori|$2 altkategori}}, {{PLURAL:$3|1 dosya|$3 dosya}})",
+       "search-redirect": "($1 butʼkʼaşen moxtu)",
        "search-section": "(burme $1)",
+       "search-file-match": "(dosya içeriğiyle eşleşiyor)",
        "search-suggest": "Aya çʼari-i: $1",
        "search-interwiki-caption": "Cuma projepe",
        "search-interwiki-default": "$1'işi sonucepe:",
        "search-interwiki-more": "(çkva)",
        "searchall": "mteli",
+       "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> için sonuç|<strong>$3</strong> için <strong>$1 - $2</strong> sonuçlar}}",
+       "search-nonefound": "Sorguyla eşleşen bir sonuç yok.",
        "powersearch-legend": "Mordineri ogoru",
        "powersearch-ns": "Svacoxo-s mgori:",
        "powersearch-toggleall": "İri",
        "group-bot": "Botepe",
        "group-sysop": "Adminepe",
        "group-all": "(iri)",
+       "grouppage-bot": "{{ns:project}}:Botlar",
        "grouppage-sysop": "{{ns:project}}:Adminepe",
        "right-read": "But’k’ape ik’itxi",
        "right-edit": "But'k'ape nkturi",
+       "right-writeapi": "Yazma API'sini kullan",
        "right-delete": "Am sayfape jili",
        "newuserlogpage": "Ağani maxmareş kʼayitʼepe",
        "rightslog": "Maxmareş hakʼişi kʼayitʼepe",
        "action-read": "am sayfa ik'itxi",
        "action-edit": "am butʼkʼa oktiruşa",
+       "action-createaccount": "bu kullanıcı hesabını oluşturmaya",
        "action-delete": "am sayfa dokosi",
        "nchanges": "$1 {{PLURAL:$1|oktiroba|oktiroba}}",
+       "enhancedrc-history": "Tarixi",
        "recentchanges": "Çodinaşi oktirobape",
        "recentchanges-legend": "Çodinaşi oktirobape tercihepe",
+       "recentchanges-summary": "Am feedis vikiʼs na ixvenu irişen sonni oktirobape gatxozi.",
+       "recentchanges-noresult": "Belirtilen kriterlere uyan herhangi bir değişiklik bulunamadı.",
        "recentchanges-feed-description": "Am feedis vikiʼs na ixvenu irişen sonni oktirobape gatxozi.",
+       "recentchanges-label-newpage": "Bu değişiklikle yeni bir sayfa oluşturuldu",
+       "recentchanges-label-minor": "Çʼitʼa oktiroba",
+       "recentchanges-label-bot": "Bu değişiklik bir bot tarafından yapıldı",
+       "recentchanges-label-unpatrolled": "Bu değişiklik henüz gözlenmemiş",
+       "recentchanges-label-plusminus": "Sayfa boyutundaki değişikliğin bayt bazında değeri",
+       "recentchanges-legend-heading": "<strong>Gösterge:</strong>",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ayrıca [[Special:NewPages|yeni sayfalar listesine]] bakınız)",
+       "rcnotefrom": "<strong>$3, $4</strong> tarihinden itibaren yapılan {{PLURAL:$5|değişiklik|değişiklik}} aşağıdadır (<strong>$1</strong> tarhine kadar olanlar gösterilmektedir).",
        "rclistfrom": "$3 $2 tarixişen doni na ixvenu oktirobape ko3ʼiri",
        "rcshowhideminor": "çʼitʼa oktirobape $1",
        "rcshowhideminor-show": "Ko3ʼiri",
        "rcshowhideanons": "anonimuri maxmarepe $1",
        "rcshowhideanons-show": "Ko3ʼiri",
        "rcshowhideanons-hide": "Şinaxi",
+       "rcshowhidepatr": "İzlenmiş değişiklikleri $1",
        "rcshowhidepatr-show": "Ko3ʼiri",
        "rcshowhidepatr-hide": "Şinaxi",
        "rcshowhidemine": "çkimi oktirobape $1",
        "minoreditletter": "çʼ",
        "newpageletter": "A",
        "boteditletter": "b",
+       "rc-change-size-new": "Değişiklikten sonraki boyut: $1 {{PLURAL:$1|bayt|bayt}}",
        "rc-enhanced-expand": "Detayepe ko3ʼiri (JavaScript-i unon)",
        "rc-enhanced-hide": "Detayepe doşinaxi",
+       "rc-old-title": "ilk olarak oluşturulan \"$1\"",
        "recentchangeslinked": "Alakʼali na renan oktirobape",
+       "recentchangeslinked-feed": "Alakʼali na renan oktirobape",
        "recentchangeslinked-toolbox": "Alakʼali na renan oktirobape",
        "recentchangeslinked-title": "\"$1\" kʼala alakʼali na renan oktirobape",
-       "recentchangeslinked-summary": "Tude na çʼars listʼe, kʼiti na noğiru butʼkʼaşa (varna kʼiti na noğiru kʼatʼegorişi makʼaturepeşa) kʼontʼaktʼi na ikips butʼkʼapes na ixvenu çodinaşi oktirobapeşi listʼe ren.\n[[Special:Watchlist|Gotxozu na ginon butʼkʼapeşi listʼes]] na renan butʼkʼape '''mçxu''' nçʼaraten niçʼaru.",
+       "recentchangeslinked-summary": "Aşağıdaki liste, belirtilen sayfaya (ya da belirtilen kategorinin üyelerine) bağlantı veren sayfalarda yapılan son değişikliklerin listesidir.\n[[Special:Watchlist|İzleme listenizdeki]] sayfalar <strong>kalın</strong> olarak belirtilmiştir.",
        "recentchangeslinked-page": "Butʼkʼaşi coxo:",
        "recentchangeslinked-to": "Na niçinen butʼkʼa yeine na niçinen butʼkʼaşa kʼontʼaktʼi meçameri na renan butʼkʼape ko3ʼiri",
        "upload": "Dosya doloxe kamaxvi",
        "uploadlogpage": "Dosya oncğonu kʼayitʼepe",
+       "filedesc": "Mkʼule nçʼarate:",
+       "license": "Lisans",
        "license-header": "Lisans",
+       "imgfile": "Dosya",
+       "listfiles": "Media dosyasişa kʼontʼaktʼi",
        "file-anchor-link": "Dosya",
        "filehist": "Dosyaşi tarixi",
        "filehist-help": "Dosyaşi tarixi oz*iru şeni Ndğa/Ora burme-muşis na renan tarixepes o3ʼkʼedi.",
        "filehist-datetime": "Dğa/Ora",
        "filehist-thumb": "Mçʼitʼa sureti",
        "filehist-thumbtext": "$1 tarixis na iz*iren versiyonişi mçʼitʼa na ren xali",
+       "filehist-nothumb": "Küçük resim yok",
        "filehist-user": "Maxmare",
        "filehist-dimensions": "Ebatʼepe",
        "filehist-comment": "Kʼommentʼi",
        "imagelinks": "Dosyaşi kʼontaktʼepe",
        "linkstoimage": "Am oz*ira-dosyaşa kʼontʼaktʼi na ikips {{PLURAL:$1|butʼkʼa|$1 butʼkʼa}}:",
+       "linkstoimage-more": "$1 {{PLURAL:$1|sayfadan|sayfadan}} fazlası bu dosyayı kullanıyor.\nAşağıdaki listede sadece bu dosyayı kullanan  {{PLURAL:$1|ilk sayfa|ilk $1 sayfa}} gösterilmektedir.\n[[Special:WhatLinksHere/$2|Tam listesi]] mevcuttur.",
+       "nolinkstoimage": "Bu dosyayı kullanan sayfa yok.",
+       "linkstoimage-redirect": "$1 (dosya yönlendirme) $2",
        "sharedupload": "Am dosya $1-şen moxtu do belkim majurani pʼrojepesti ixmarinen.",
+       "sharedupload-desc-here": "Bu dosya $1 deposunda bulunmaktadır ve diğer projeler tarafından kullanılıyor olabilir.\nAşağıda [$2 dosya açıklama sayfasındaki] açıklama gösteriliyor.",
+       "filepage-nofile": "Bu isimde bir dosya yok.",
        "uploadnewversion-linktext": "Dosyaşi ağani versiyoni doloxe kamaxvi",
+       "upload-disallowed-here": "Bu dosyanın üzerine yazamazsınız.",
+       "randompage": "Rastgele sayfa",
        "statistics": "İstatistʼiğepe",
+       "double-redirect-fixer": "Yönlendirme tamircisi",
        "brokenredirects-edit": "doktiri",
        "brokenredirects-delete": "jili",
        "nbytes": "$1 {{PLURAL:$1|byte|byte}}",
        "nmembers": "{{PLURAL:$1|makʼature|makʼaturepe}}",
        "prefixindex": "Pʼrefiksi kʼala mteli butʼkʼape",
+       "listusers": "Kullanıcı listesi",
        "newpages": "Ağani butʼkʼape",
        "move": "Komendiği",
        "movethispage": "Butʼkʼa zdi",
        "pager-older-n": "{{PLURAL:$1|çkva mcveşi 1|çkva mcveşi $1}}",
        "booksources": "Odude svarape",
        "booksources-search-legend": "Svaraş odudepe mgori",
+       "booksources-search": "Mgori",
+       "specialloguserlabel": "Kullanıcı:",
+       "speciallogtitlelabel": "Hedef (başlık ya da kullanıcı için {{ns:user}}:kullanıcıadı):",
        "log": "Kʼayitʼepe",
+       "all-logs-page": "Tüm genel günlükler",
+       "alllogstext": "{{SITENAME}} için mevcut tüm günlüklerin birleşik gösterimi.\nGünlük tipini, kullanıcı adını (büyük-küçük harf duyarlı), ya da etkilenen sayfayı (yine büyük-küçük harf duyarlı) seçerek görünümü daraltabilirsiniz.",
+       "logempty": "Kayıtlarda eşleşen bilgi yok.",
        "allpages": "Mteli butʼkʼape",
        "prevpage": "İptineri butʼkʼa ($1)",
        "allpagesfrom": "Olistʼeluşa na geiçʼkʼasen harfepe:",
        "allpagesto": "Amu kʼala na içodu butʼkʼape ko3ʼiri:",
        "allarticles": "Mteli butʼkʼape",
        "allpagessubmit": "İgzali",
+       "allpages-hide-redirects": "Yönlendirmeleri gizle",
+       "categories": "Kategoriler",
        "linksearch": "Galeni kʼontaktʼepe",
        "listgrouprights-members": "(makʼaturepeşi listʼe)",
        "emailuser": "Maxmares e-maili oncğoni",
+       "usermessage-editor": "Sistem habercisi",
        "watchlist": "çkimi gotxozu listʼe",
        "mywatchlist": "Çkimi gotxozu listʼe",
+       "watchlistfor2": "$1 için $2",
        "addedwatchtext": "\"<nowiki>[[:$1]]</nowiki>\" coxoni butʼkʼa [[Special:Watchlist|gotxozu listʼes]] ikʼayitʼinu.\n\nNa moxtasen oras, am butʼkʼaşa do am butʼkʼa kʼala alakʼali na ren oğarğaluşi butʼkʼaşa na ixvenasen oktirobape ak ilistʼelinasen.\n\nDido kʼai o3xunu şeni doloxe muşis [[Special:RecentChanges|çodinaşi oktirobapeşi listʼe]] stʼatʼias dolom3ʼkʼupineri harfepete ilistʼelinasenan.\n\nButʼkʼai gotxozu listʼeşen ojilu şeni \"gotxozu naşkʼvi\" linkʼişa gebaz*git.",
        "removedwatchtext": "\"[[:$1]]\" but'k'a, [[Special:Watchlist|skani gotxozu list'eşen]] nijilu.",
        "watch": "Amus gatxozi",
        "watchthispage": "Butʼkʼa gatxozi",
        "unwatch": "Gotxozu naşkʼvi",
        "watchlist-details": "{{PLURAL:$1|$1 butʼkʼa|$1 butʼkʼa}}, skani gotxozu listʼes ren, ama oğarğaluşi butʼkʼapes va ren",
-       "wlshowlast": "Çodinaşi $1 saatʼi $2 ndğa ko3ʼiri",
+       "wlheader-showupdated": "Sayfaları son ziyaretinizden beri değişen sayfalar '''kalın''' gösterilmiştir.",
+       "wlnote": "$3 saat $4 itibariyle son {{PLURAL:$2|bir saatte|'''$2''' saatte}} yapılan {{PLURAL:$1|son değişiklik|son '''$1''' değişiklik}} aşağıdadır.",
+       "wlshowlast": "Son $1 saati $2 ndğa göster",
        "watchlist-options": "Gotxozu listʼeşi tercihepe",
        "watching": "i3ʼkʼedinen...",
        "unwatching": "var i3ʼkʼedinen...",
+       "enotif_reset": "Tüm sayfaları ziyaret edilmiş olarak işaretle",
        "deletepage": "Butʼkʼa jili",
        "confirmdeletetext": "Aşoten am butʼkʼa varna dosya, mteli golaxteri kʼayitʼepe kʼala datʼabeizişen nijilen.\nAm dulyaşen na yeçkindasen zararepe giçkinna do am dulya [[{{MediaWiki:Policy-url}}|Ojiluşi kʼaidepe]] şeni mtini renya isimadep na, am dulya doqʼvi.",
        "actioncomplete": "Aksiyoni içodinu.",
        "deleteotherreason": "Majurani/ilave sebebi:",
        "deletereasonotherlist": "Majurani sebebepe",
        "rollbacklink": "mcveşi xali muşişa igzali",
+       "rollbacklinkcount": "$1 {{PLURAL:$1|değişikliği|değişikliği}} geri döndür",
        "protectlogpage": "Oçvaluşi kʼayitʼepe",
        "protectedarticle": "\"[[$1]]\" içven a3ʼi",
        "modifiedarticleprotection": "\"[[$1]]\" şeni oçvaluşi derece iktirinu",
        "protect-cantedit": "Am butʼkʼaşi oçvaluşi sinori va gaktirinen, çunki yetkʼi var giğun.",
        "restriction-type": "İzini:",
        "restriction-level": "Om3ikanuşi sinori:",
+       "restriction-edit": "Doktiri",
+       "restriction-move": "Tori",
        "undeletelink": "i3ʼkʼedi/komoiği",
        "undelete-search-submit": "Mgori",
        "undelete-show-file-submit": "Ho",
        "namespace": "Svacoxo:",
        "invert": "3xuneri na var renanpe ko3ʼiri",
+       "tooltip-invert": "Seçili ad alanındaki (ve seçiliyse, ilişkili ad alanlarındaki) sayfalara olan değişiklikleri gizlemek için bu kutucuğu işaretleyin",
+       "namespace_association": "İlişkili ad alanı",
+       "tooltip-namespace_association": "Seçili ad alanıyla ilgili tartışma ya da madde ad alanlarını da eklemek için bu kutucuğu işaretleyin",
        "blanknamespace": "(Dudi)",
        "contributions": "{{GENDER:$1|User}} işi meşvelape",
        "contributions-title": "$1 şeni maxmareş meşvelape",
        "mycontris": "Çkimi meşvelape",
+       "anoncontribs": "Çkimi meşvelape",
        "contribsub2": "{{GENDER:$3|$1}} ($2) işen",
+       "nocontribs": "Bu kriterlere uyan değişiklik bulunamadı",
        "uctop": "dudi",
        "month": "Tuta:",
        "year": "3ʼana:",
        "sp-contributions-newbies": "Xvala ağani maxmarepeşi meşvelape ko3ʼiri",
        "sp-contributions-blocklog": "Bloğiş kʼayitʼi",
+       "sp-contributions-uploads": "yüklenenler",
+       "sp-contributions-logs": "Kʼayitʼepe",
        "sp-contributions-talk": "Mesaji",
        "sp-contributions-search": "Meşvelape mgori",
        "sp-contributions-username": "IP varna maxmare:",
+       "sp-contributions-toponly": "Sadece son revizyon olan değişiklikleri göster",
+       "sp-contributions-newonly": "Yalnızca yeni sayfa oluşturan değişiklikleri görüntüle",
        "sp-contributions-submit": "Mgori",
        "whatlinkshere": "Butʼkʼaşa na ixvenu kʼontʼaktʼepe",
        "whatlinkshere-title": "\"$1\" maddeşa kʼontʼaktʼi na ikips butʼkʼape",
        "whatlinkshere-page": "Butʼkʼa:",
        "linkshere": "'''$2''' butʼkʼaşa kʼontʼaktʼi na ikips butʼkʼape:",
+       "nolinkshere": "'''$1''' sayfasına bağlantı veren sayfa yok.",
        "isredirect": "redirektʼiş butʼkʼa",
        "istemplate": "okʼatu",
        "isimage": "dosyaşi kʼontʼaktʼi",
        "whatlinkshere-prev": "{{PLURAL:$1|ukʼuni|ukʼuni $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|mendi|mendi $1}}",
        "whatlinkshere-links": "← kʼontaktʼepe",
-       "whatlinkshere-hideredirs": "redirektʼepe $1",
-       "whatlinkshere-hidetrans": "Çʼapʼrazi mem3xverepe $1",
-       "whatlinkshere-hidelinks": "kʼontʼaktʼepe $1",
+       "whatlinkshere-hideredirs": "Yönlendirmeleri $1",
+       "whatlinkshere-hidetrans": "okʼatu",
+       "whatlinkshere-hidelinks": "← kʼontaktʼepe",
+       "whatlinkshere-hideimages": "$1 dosya bağlantısı",
        "whatlinkshere-filters": "Filitʼrepe",
        "blockip": "Maxmares bloği qʼvi",
        "ipboptions": "2 saatʼi:2 hours,1 ndğa:1 day,3 ndğa:3 days,1 doloni:1 week,2 doloni:2 weeks,1 tuta:1 month,3 tuta:3 months,6 tuta:6 months,1 3ʼana:1 year,pʼanda:infinite",
        "ipblocklist": "Bloği do maxmareş",
+       "infiniteblock": "Süresiz",
        "blocklink": "bloği qʼvi",
        "unblocklink": "bloği kezdi",
        "change-blocklink": "bloği doktiri",
        "contribslink": "Meşvelape",
        "blocklogpage": "Bloğiş kʼayitʼepe",
        "blocklogentry": ", [[$1]] maxmare kododginu, dodginuşi ora: $2 $3",
+       "reblock-logentry": ", [[$1]] adlı kullanıcı için engelleme ayarlarını değiştirdi ve bitiş süresini $2 olarak belirledi $3",
        "unblocklogentry": "$1 maxmareşi bloği kaizdinu",
        "block-log-flags-nocreate": "hesabi okʼidu geinkʼilu",
+       "proxyblocker": "Proxy engelleyici",
        "movepagetext": "Tude na ren formi oxmarute butʼkʼaşi coxo iktirinen. Edo xolo mteli golaxteri kʼayitʼepeti ağani coxos itiren.\nMcveşi coxo, ağani coxoşa redirektʼi xali aqʼven.\nOtomatikurot mcveşi stʼatʼiaşa na ixvenen redirektʼepe gaktirinen.\nAm dulya otomatikurot oxvenu va ginonna [[Special:DoubleRedirects|tʼkʼubi]] varna [[Special:BrokenRedirects|tʼaxeri]] na renan redirektʼepe ti-skani kʼala oktiruşi re. Na qʼvare am oktirobate mteli kʼontʼaktʼepe dido kʼai oçalişu ren, amuşen si sorumli re.\n\nEger ağani coxos ar butʼkʼa zate korenna coxoşi oktiroba '''var ixvenasen'''. Amuş metʼi, coxoşi oktirobaşen pişmani qʼvi na, am oktiroba ipʼtʼali gaxvenen, aşoten başka butʼkʼapeşati zarari meçameri va gaqʼven.\n\n'''KʼUN3Xİ!'''\nAm ktira, populeri na ren a butʼkʼa şeni pʼatʼi mutxanepe axvenen; mu iqʼven ipti, aya giçkitʼas do ukʼule mutxanepe doktiri.",
        "movepagetalktext": "Okʼokʼatineri na ren oğarğaluşi butʼkʼati (eger korenna) otʼomatikurot ağani coxos itirinasen. Mara am situa3yonepes '''var itirinen''':\n\n*Ağani coxos ar oğarğaluşi butʼkʼa zaten korenna,\n*Tude na ren çʼitʼa boksi va ixmarit na.\n\nAm situa3yonepes, butʼkʼa skanişkʼelen otiruşi ren.",
        "newtitle": "Ağani coxo:",
        "export": "Butʼkʼa ikʼayitʼi",
        "allmessagesname": "Coxo",
        "thumbnail-more": "Didi qʼvi",
-       "tooltip-pt-userpage": "Skani butʼkʼa",
+       "importlogpage": "Aktarım günlüğü",
+       "tooltip-pt-userpage": "{{GENDER:|Kullanıcı}} sayfanız",
        "tooltip-pt-mytalk": "Mesajiş butʼkʼa",
-       "tooltip-pt-preferences": "Skani tercixepe",
+       "tooltip-pt-preferences": "{{GENDER:|Tercihleriniz}}",
        "tooltip-pt-watchlist": "Gotxozu na minon butʼkʼape",
        "tooltip-pt-mycontris": "Skani meşvelapeşi listʼe",
        "tooltip-pt-login": "Ginon na sitʼeşa amaxti, mecburi va re",
        "tooltip-pt-logout": "Siteşen Kogamaxti",
+       "tooltip-pt-createaccount": "Bir hesap oluşturup oturum açmanız tavsiye edilmektedir ancak bu zorunlu değildir",
        "tooltip-ca-talk": "Butʼkʼaş doloxe na içʼaren çʼarape şeni mutxanepe mi3ʼvit",
        "tooltip-ca-edit": "Butʼkʼa doktiri",
        "tooltip-ca-addsection": "Ağani burme dokʼidi.",
        "tooltip-t-recentchangeslinked": "Am butʼkʼaşa kʼontʼaktʼi na ikips butʼkʼapes, çodinaşi oktirobape",
        "tooltip-feed-rss": "Am butʼkʼa şeni RSS-iş feedi",
        "tooltip-feed-atom": "Am butʼkʼa şeni atʼom-iş feedi",
-       "tooltip-t-contributions": "Maxmareşi meşvela listʼe kozʼiri",
+       "tooltip-t-contributions": "{{GENDER:$1|Bu kullanıcı}} tarafından yapılan katkıların listesi",
        "tooltip-t-emailuser": "Maxmareşa e-maili oncğoni",
        "tooltip-t-upload": "Dosyape doloxe kamaxvi",
        "tooltip-t-specialpages": "Mteli doxmeli butʼkʼapeşi listʼe ko3ʼiri",
        "tooltip-t-permalink": "Am butʼkʼaşi am versiyoni muşis kʼarta ora kʼontʼaktʼi iqʼvi.",
        "tooltip-ca-nstab-main": "Butʼkʼa ko3ʼiri",
        "tooltip-ca-nstab-user": "Maxmareşi butʼkʼa ko3ʼiri",
-       "tooltip-ca-nstab-special": "Aya doxmeli butʼkʼa ren, emuşeni ak mutu va gaktirinen.",
+       "tooltip-ca-nstab-special": "Bu bir özel sayfadır ve düzenleme yapılamaz",
        "tooltip-ca-nstab-project": "Pʼrojeşi butʼkʼa ko3ʼiri",
        "tooltip-ca-nstab-image": "Dosyaşi butʼkʼa ko3ʼiri",
+       "tooltip-ca-nstab-mediawiki": "Sistem mesajını göster",
        "tooltip-ca-nstab-template": "Şabloni ko3ʼiri",
        "tooltip-ca-nstab-category": "Kʼatʼegorişi butʼkʼa ko3ʼiri",
        "tooltip-minoredit": "Aşoten \"Çʼitʼa oktiroba\" gaxvenen",
        "tooltip-watch": "Am butʼkʼa gatxozi",
        "tooltip-rollback": "\"Ukʼuni\" fonkʼsionik, ar gebaz*gute, am butʼkʼas na nuşvelu maxmareşi oktirobape ipʼtʼali ikips",
        "tooltip-undo": "\"Ukʼuni\" am fonkʼsionik, oktirobape ipʼtʼali ikips do aşoten oktirobaşi formi, \"Evvelişen i3ʼkʼedi\" modis guin3ʼkʼen.\n\"Mkʼule nçʼarate\" fonkʼsioni şeni ar sebebi okʼum3xus izni meçaps",
+       "tooltip-summary": "Kısa bir özet girin",
+       "simpleantispam-label": "Anti-spam denetimi.\nBunu <strong>doldurmayın</strong>!",
+       "pageinfo-title": "\"$1\" sayfa bilgisi",
+       "pageinfo-header-basic": "Temel bilgiler",
+       "pageinfo-header-edits": "Düzenleme geçmişi",
+       "pageinfo-header-restrictions": "Sayfa koruması",
+       "pageinfo-header-properties": "Sayfa özellikleri",
+       "pageinfo-display-title": "Görüntülenen başlık",
+       "pageinfo-default-sort": "Varsayılan sıralama anahtarı",
+       "pageinfo-length": "Sayfa uzunluğu (bayt cinsinden)",
+       "pageinfo-article-id": "Sayfa ID",
+       "pageinfo-language": "Sayfa içeriğinin dili",
+       "pageinfo-content-model": "Sayfa içerik modeli",
+       "pageinfo-robot-policy": "Robotlar tarafından endeksleniyor",
+       "pageinfo-robot-index": "İzin verilmiş",
+       "pageinfo-robot-noindex": "İzin verilmedi",
+       "pageinfo-watchers": "Sayfanın izleyici sayısı",
+       "pageinfo-few-watchers": "$1 {{PLURAL:$1|izleyiciden|izleyiciden}} az",
+       "pageinfo-redirects-name": "Bu sayfaya yönlendirme sayısı",
+       "pageinfo-subpages-name": "Bu sayfanın alt sayfaları",
+       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|yönlendirme|yönlendirme}}; $3 {{PLURAL:$3|yönlendirme olmayan|yönlendirme olmayan}})",
+       "pageinfo-firstuser": "Sayfa oluşturucu",
+       "pageinfo-firsttime": "Sayfa oluşturulma tarihi",
+       "pageinfo-lastuser": "En son düzenleyici",
+       "pageinfo-lasttime": "Son değişiklik tarihi",
+       "pageinfo-edits": "Düzenleme sayısı",
+       "pageinfo-authors": "Farklı yazar sayısı",
+       "pageinfo-recent-edits": "Son zamanlardaki düzenlemeler (son $1)",
+       "pageinfo-recent-authors": "Farklı yazarların son sayısı",
+       "pageinfo-magic-words": "Sihirli {{PLURAL:$1|kelimeler|kelimeler}} ($1)",
+       "pageinfo-hidden-categories": "Gizli {{PLURAL:$1|kategori|kategoriler}} ($1)",
+       "pageinfo-templates": "Görüntülenen {{PLURAL:$1|şablon|şablonlar}} ($1)",
+       "pageinfo-toolboxlink": "Sayfa bilgisi",
+       "pageinfo-contentpage": "Bir içerik sayfası sayılır",
+       "pageinfo-contentpage-yes": "Ho",
+       "patrol-log-page": "Devriye günlüğü",
        "previousdiff": "← İptineri versiyoni kʼala na ren farkʼi",
        "nextdiff": "Ukʼaçxineri versiyoni kʼala na ren farkʼi →",
+       "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|sayfa|sayfa}}",
        "file-info-size": "$1 × $2 pikseli, dosyaşi didinoba: $3, MIME type: $4",
+       "file-info-size-pages": "$1 × $2 piksel, dosya boyutu: $3, MIME tipi: $4, $5 {{PLURAL:$5|sayfa|sayfa}}",
        "file-nohires": "Çkva kʼai ozʼiramuşis na uğun versiyoni va ren.",
        "svg-long-desc": "SVG dosya, coxoten $1 × $2 pʼikʼseli, dosyaşi didinoba: $3",
        "show-big-image": "Tam ozʼiramuşi",
+       "show-big-image-preview": "Önizleme boyutu: $1.",
+       "show-big-image-other": "Diğer {{PLURAL:$2|çözünürlük|çözünürlükleri}}: $1.",
+       "show-big-image-size": "$1 × $2 piksel",
        "bad_image_list": "Formatʼi aşo ren:\n\nXvala listeşi dudi ondepe (* kʼala na gyoçʼkʼaps ondepe) beciti ren.\nSatʼirişi maartani kʼontʼaktʼi, pʼatʼi dosyaşa na ulun ar kʼontʼaktʼi oqʼopinu dvaçʼirs.\nUkʼaçxe na mulunan kʼontʼaktʼepe istʼisna oqʼopinot kʼabuli ixvenen. Mesela: dosya, butʼkʼas, satʼiriş doloxe iz*iren.",
        "metadata": "Metadata",
        "metadata-help": "Am dosyas, suretişi mangana varna mao3xoneşkʼelen kʼatineri na ren okʼum3vale çkinape koren. Eger dosyaşi originali xalişa modifiye na iqʼu na, namtini çkinape, ağani oktiroba şeni mcveşi doskideri iqʼopen.",
        "metadata-fields": "Am butʼkʼas na ilistʼelinen EXIF metadataş burmepe, resimi ozʼiramuşi butʼkʼapes metadata tʼablo na ğuru oras ixmarinen. Majuranepeti maartani oqʼopinot işinaxasen.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "namespacesall": "mteli",
        "monthsall": "mteli",
+       "imgmultipagenext": "sonraki sayfa →",
+       "imgmultigo": "Git!",
+       "imgmultigoto": "$1 sayfasına git",
+       "watchlisttools-clear": "İzleme listesini temizle",
        "watchlisttools-view": "Am tema kʼala alakʼali na renan oktirobape ko3ʼiri",
        "watchlisttools-edit": "Gotxozu listʼe koz*iri do doktiri",
        "watchlisttools-raw": "Kʼobo gotxozu listʼe doktiri",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|mesaj]])",
+       "redirect": "Dosya, kullanıcı, sayfa ya da revizyon ya da log kimliği ile yönlendirme",
+       "redirect-summary": "Bu özel sayfa sizi bir dosya (dosya adı verilen), bir sayfa (bir revizyon ya da sayfa ID'si verilen) veya bir kullanıcı sayfasının (sayısal kullanıcı kimliği verilen) adresine yönlendirir. Kullanım: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]], or [[{{#Special:Redirect}}/logid/186]].",
+       "redirect-submit": "İgzali",
+       "redirect-lookup": "Ara:",
+       "redirect-value": "Değer:",
+       "redirect-user": "Kullanıcı kimliği",
+       "redirect-page": "Sayfa kimliği",
+       "redirect-revision": "Sayfa revizyonu",
+       "redirect-file": "Dosya adı",
        "specialpages": "Doxmeli butʼkʼape",
+       "tag-filter": "[[Special:Tags|Etiket]] süzgeci:",
+       "tag-list-wrapper": "[[Special:Tags|{{PLURAL:$1|Etiket|Etiketler}}]]: $2",
+       "tags-active-yes": "Ho",
+       "tags-active-no": "var",
+       "tags-hitcount": "$1 {{PLURAL:$1|oktiroba|oktiroba}}",
+       "logentry-delete-delete": "$1 $3 sayfasını {{GENDER:$2|sildi}}",
+       "logentry-delete-restore": "$1, $3 sayfasını $4 sayfasına {{GENDER:$2|taşıdı}}",
+       "logentry-delete-revision": "$1, $3 sayfasında {{PLURAL:$5|bir sürümün|$5 sürümün}} görünürlüğünü {{GENDER:$2|değiştirdi}}: $4",
+       "revdelete-content-hid": "Gizli içerik",
+       "logentry-move-move": "$1, $3 sayfasını $4 sayfasına {{GENDER:$2|taşıdı}}",
+       "logentry-move-move-noredirect": "$1, $3 sayfasını $4 sayfasına yönlendirme olmaksızın {{GENDER:$2|taşıdı}}",
+       "logentry-move-move_redir": "$1, $3 sayfasını $4 sayfasına yönlendirme üzerinden {{GENDER:$2|taşıdı}}",
+       "logentry-patrol-patrol-auto": "$1, $3 sayfasının $4 sürümünü otomatik olarak {{GENDER:$2|kontrol etti}}",
+       "logentry-newusers-create": "Kullanıcı hesabı $1 {{GENDER:$2|oluşturuldu}}",
+       "logentry-newusers-autocreate": "$1 kullanıcı hesabı otomatik olarak {{GENDER:$2|oluşturuldu}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|yükledi}} $3",
+       "logentry-upload-overwrite": "$1 $3 dosyasının yeni bir sürümünü {{GENDER:$2|yükledi}}",
        "rightsnone": "(Va ren)",
        "searchsuggest-search": "Mgori",
+       "duration-days": "$1 {{PLURAL:$1|gün|gün}}",
        "special-characters-group-latin": "Lat'ini",
        "special-characters-group-greek": "Xorumi",
-       "special-characters-group-arabic": "Arabuli"
+       "special-characters-group-arabic": "Arabuli",
+       "randomrootpage": "Rasgele kök sayfa"
 }
index 5b00e94..599ec13 100644 (file)
        "blockip": "{{GENDER:$1|प्रयोक्ता}}क प्रतिबन्धित करी",
        "blockiptext": "नीचाँक आवेदनक प्रयोग कोनो खास अनिकेत वा प्रयोक्तानामक लिखैक प्रवेशकेँ प्रतिबन्धित करबा लेल करू।\nई अतत्तः करैबलाक विरुद्ध प्रयुक्त हुअए, आ एकर अनुसार [[{{MediaWiki:Policy-url}}|policy]]।\nनीचाँ स्पष्ट कारण लिखू (जेना, खास पन्नाकेँ देखबैत जतए अतत्तः कएल गेल अछि)।",
        "ipaddressorusername": "अनिकेत संकेत वा प्रयोक्तानाम:",
-       "ipbexpiry": "खतम हएत:",
        "ipbreason": "कारण:",
        "ipbreason-dropdown": "*सामान्य प्रतिबन्ध कारण\n** गलत सूचना घुसेनाइ\n** पन्ना सभसँ पाठ हटेनाइ\n** बाहरी जालस्थलक अवांछित लागि\n** फालतू/ अवांछित सामिग्रिक पान्नामे घुसाएब\n** धमकीबला व्यवहार/ तंग करब\n** कएक खाताकेँ गरिआएब\n** अवांछित प्रयोक्तानाम",
        "ipb-hardblock": "ऐ अनिकेत पतासँ सम्प्रवेशित प्रयोक्ताकेँ सम्पादनसँ रोकू",
        "ipb-change-block": "प्रयोक्ताकें  पुनः प्रतिबन्धित करू ई विकल्पक संग",
        "ipb-confirm": "प्रतिबन्ध सुनिश्चित करू",
        "ipb-partial": "आंशिक",
-       "ipb-type-label": "प्रकार",
        "ipb-pages-label": "पन्ना",
        "badipaddress": "अमान्य आईपी पता",
        "blockipsuccesssub": "प्रतिबन्ध सफल भेल",
        "ipb-blocklist": "अखुनका प्रतिबंधित देखू",
        "ipb-blocklist-contribs": "$1 लेल अवदान",
        "ipb-blocklist-duration-left": "$1 बाकी",
+       "block-expiry": "खतम हएत:",
        "unblockip": "प्रयोक्ताकेँ प्रतिबन्ध सँ हटाबी",
        "unblockiptext": "पहिनेसँ प्रतिबन्धित अनिकेत वा प्रयोक्तानामकेँ लिखबाक अधिकार देबा लेल निचुलका आवेदन भरू।",
        "ipusubmit": "ई  प्रतिबन्ध हटाउ",
index a8a9219..cf14be6 100644 (file)
        "blockip": "Пякстамс тиить",
        "blockiptext": "Эряви нолдамс тевс форм ала башка IP адресста эли тиить лем вельде  сёрмадомань сувамать сёлгоманкса.\nТя эряви тиемс аньцек колендемада аралама туфталонкса ди [[{{MediaWiki:Policy-url}}|политик]]-ть коряс.\nПутт туфталть алу (кепотьксонди, лятфнек лопатне конатнень эса колендесть).",
        "ipaddressorusername": "IP адрес эли тиить лемоц:",
-       "ipbexpiry": "Сирелгоды:",
        "ipbreason": "Туфтал:",
        "ipbreason-dropdown": "* Кърдань сёлгома туфталхт\n** Аф виде информациень путнема\n** Лопаста сёрматфть нардама\n** Аф виде ушеширень интернет сюлмафкснень макссема\n** Ёньфтома/смузьфтома информациень лопас путнема\n** Кальдяв прянь вятема/сялгодома\n** Лама сёрматфтоматнень покордама\n** Аф пара тиить лемоц",
        "ipbcreateaccount": "Кардамс сёрматфтомась тиема",
        "ipb-unblock": "Тиинь эли IP адресонь сёлгома валхтомс",
        "ipb-blocklist": "Ваномс тяниень сёлгомат",
        "ipb-blocklist-contribs": "Путксне $1 лопанди",
+       "block-expiry": "Сирелгоды:",
        "unblockip": "Валхтомс сёлгома тииста",
        "unblockiptext": "Нолдак тевс форм ала инголе сёлкф тиить суваманц сёлкф IP адрес эли тиинь лемоц вельде мърдафтоманкса.",
        "ipusubmit": "Валхтомс тя сёлгомась",
index 2ab063d..0f84ce1 100644 (file)
        "blockip": "Hanakana an'i {{GENDER:$1|mpikambana}}",
        "blockiptext": "Ampiasao ity formulaire ity hisakanana ny fahazoan-dàlana hanoratra\nananan'ny adiresy IP iray na solonanarana iray.\nTokony ho antony fisorohana ny fisomparana ihany, ary mifanaraka amin'ny [[{{MediaWiki:Policy-url}}|fepetra]]\nihany no hanaovana ny fisakanana.\nFenoy etsy ambany ny antony manokana (ohatra, mitanisà pejy nosomparana).",
        "ipaddressorusername": "Adiresy IP na solonanarana",
-       "ipbexpiry": "Fahataperana",
        "ipbreason": "Antony :",
        "ipb-hardblock": "Hanakana ny mpikambana nisoratra anarana mampiasa ity adiresy IP ity",
        "ipbcreateaccount": "Hanakana ny fanokafana kaonty",
        "ipb-blocklist": "Hijery ny sakana efa misy",
        "ipb-blocklist-contribs": "Fandraisan'anjaran'i $1",
        "ipb-blocklist-duration-left": "$1 sisa",
+       "block-expiry": "Fahataperana",
        "unblockip": "Esory ny sakana amin'io mpikambana io",
        "unblockiptext": "\nAmpiasao ity fisy eto ambany ity hanalana ny sakana\nmihatra amin'ny adiresy IP na solonanarana iray.",
        "ipusubmit": "Esory ny sakana",
index d5632f8..3c75477 100644 (file)
@@ -12,7 +12,9 @@
                        "Macofe",
                        "Fitoschido",
                        "Baloch Khan",
-                       "Muhraz"
+                       "Muhraz",
+                       "Ardzun",
+                       "Amjad Khan"
                ]
        },
        "tog-underline": "Garih bawahi tautan:",
        "permalink": "Pautan parmanen",
        "print": "Cetak",
        "view": "Baco",
+       "view-foreign": "Caliak di $1",
        "edit": "Suntiang",
        "create": "Buek",
+       "create-local": "Tambah sumber deskripsi lokal",
        "delete": "Hapuih",
        "undelete_short": "Batal hapuih $1 {{PLURAL:$1|suntiangan}}",
        "viewdeleted_short": "Lihek {{PLURAL:$1|$1 suntiangan}} nan dihapuih",
        "otherlanguages": "Dalam bahaso lain",
        "redirectedfrom": "(Dialiahkan dari $1)",
        "redirectpagesub": "Laman pangaliahan",
+       "redirectto": "Dialiahkan ka",
        "lastmodifiedat": "Laman ko tarakhia diubah pado $2, tanggal $1.",
        "viewcount": "Laman ko lah dicaliak {{PLURAL:$1|$1 kali}}.",
        "protectedpage": "Laman nan dilinduangi",
        "youhavenewmessages": "Sanak punyo $1 ($2).",
        "youhavenewmessagesfromusers": "Sanak mandapek $1 dari {{PLURAL:$3|$3 pangguno}} ($2)",
        "youhavenewmessagesmanyusers": "Sanak mandapek $1 dari banyak pangguno ($2)",
-       "newmessageslinkplural": "{{PLURAL:$1|pasan baru}}",
-       "newmessagesdifflinkplural": "{{PLURAL:$1|parubahan}} taakhia",
+       "newmessageslinkplural": "{{PLURAL:$1|pasan baru|999=pasan-pasan baru}}",
+       "newmessagesdifflinkplural": "{{PLURAL:$1|parubahan|999=parubahan-parubahan}} taakhia",
        "youhavenewmessagesmulti": "Sanak ado pasan baru pado $1",
        "editsection": "suntiang",
        "editold": "suntiang",
        "actionthrottled": "Tindakan tabateh",
        "actionthrottledtext": "Sanak tabateh untuak malakuan tindakan ko banyak-banyak dalam wakatu singkek. Cubo lah laik satalah bara minit.",
        "protectedpagetext": "Laman ko alah dikunci untuak manghindari panyuntiangan.",
-       "viewsourcetext": "Sanak dapek malihek atau manyalin sumber laman iko:",
+       "viewsourcetext": "Sanak dapek mancaliak atau manyalin sumber laman iko:",
        "viewyourtext": "Sanak dapek mancaliak jo mangkopi sumber untuak \"suntiangan sanak\" ka laman ko",
        "protectedinterface": "Laman ko baisi teks antarmuko untuak digunoan dek parangkaik lunak di wiki ko sajo, dan alah dikunci untuak maindaan kasalahan. \nUntuak manambah atau maubah tajamahan di kasado wiki, harap gunoan [https://translatewiki.net/ translatewiki.net], yaitu proyek palokalan MediaWiki.",
        "editinginterface": "'''Paringatan:''' Sanak manyuntiang laman nan digunoan untuak manyadiokan teks antarmuko untuak parangkaik lunak.\nParubahan teks ko akan mampangaruhi tampilan pado antarmuko pangguno untuak pangguno lain.\nUntuak tajamahan, harap gunoan [https://translatewiki.net/wiki/Main_Page?setlang=min translatewiki.net], proyek palokalan MediaWiki.",
        "userlogin-noaccount": "Alun ado akun?",
        "userlogin-joinproject": "Join {{SITENAME}}",
        "createaccount": "Buek akun",
-       "userlogin-resetpassword-link": "Buek ulang kato sandi",
+       "userlogin-resetpassword-link": "Lupo kato sandi Sanak?",
+       "userlogin-helplink2": "Bantuan masuak log",
        "createacct-emailrequired": "Alamaik surel",
        "createacct-emailoptional": "Alamaik surel (opsional)",
        "createacct-email-ph": "Masuakan alamaik surel Sanak",
        "loginlanguagelabel": "Baso: $1",
        "suspicious-userlogout": "Pamintaan Sanak untuak kalua log ditulak karano tampaknyo dikirim oleh paramban nan rusak atau proksi panyinggah.",
        "pt-login": "Masuak log",
+       "pt-login-button": "Masuak log",
        "pt-createaccount": "Buek akun",
        "pt-userlogout": "Kalua log",
        "php-mail-error-unknown": "Kasalahan nan indak jaleh dalam fungsi mail() PHP",
        "preview": "Caliak",
        "showpreview": "Pratonton",
        "showdiff": "Parubahan",
-       "anoneditwarning": "'''Ingek:''' Sanak alun masuak log.\nAlamat IP sanak tacatat pado riwayaik suntiangan laman ko.",
+       "anoneditwarning": "'''Ingek:''' Sanak alun masuak log.\nAlamat IP sanak tacatat pado riwayaik suntiangan laman ko. Kok Sanak <strong>[$1 log in]</strong> atau <strong>[$2 mambuek akun]</strong>, suantiang Sanak ka didistribusian kapado namo pangguno Sanak, sarato baragam kauntuangan lainnyo.",
        "anonpreviewwarning": "''Sanak alun masuak log. Manyimpan laman akan manyababkan alamaik IP Sanak tacatat pado riwayat suntiangan laman iko.''",
        "missingsummary": "'''Paringatan:''' Sanak indak mamasuakan ringkasan panyuntiangan. Jikok Sanak baliak manakan tombol Simpan, suntiangan Sanak akan disimpan tanpa ringkasan panyuntiangan.",
        "missingcommenttext": "Masuakan komentar Sanak di bawah ko.",
        "userpage-userdoesnotexist": "Akun pangguno \"$1\" indak tadaftar.\nCubo pareso jikok nio mambuek/suntiang laman ko.",
        "userpage-userdoesnotexist-view": "Pangguno \"$1\" indak tadaftar.",
        "blocked-notice-logextract": "Pangguno ko tangah diblokir.\nEntri log pamblokiran tabaru disadioan di bawah ko untuak referensi:",
-       "clearyourcache": "'''Catatan:''' Sasudah menyimpan, Sanak mungkin harus meminteh singgahan paramban Sanak untuak maliek parubahan.\n* '''Firefox / Safari:''' Tahan ''Shift'' sambia mangklik ''Reload'', atau takan ''Ctrl-F5'' atau ''Ctrl-R'' (''⌘-R'' di Mac)\n* '''Google Chrome:''' Takan ''Ctrl-Shift-R'' (''⌘-Shift-R'' di Mac)\n* '''Internet Explorer:''' Tahan ''Ctrl'' sambia mangklik ''Refresh'', atau takan ''Ctrl-F5''\n* '''Opera:''' Barasiahkan singgahan di ''Tools → Preferences''",
+       "clearyourcache": "<strong>Catatan:</strong> Sasudah manyimpan, Sanak mungkin harus meminteh singgahan paramban Sanak untuak maliek parubahan.\n* <strong>Firefox / Safari:</strong> Tahan <em>Shift</em> sambia mangklik <em>Reload</em>, atau takan <em>Ctrl-F5</em> atau <em>Ctrl-R</em> (<em>⌘-R</em> di Mac)\n* <strong>Google Chrome:</strong> Takan <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> di Mac)\n* <strong>Internet Explorer:</strong> Tahan <em>Ctrl</em> sambia mangklik <em>Refresh</em>, atau takan <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Pai ka <em>Menu → Settings </em> (<em>Opera → Preferences</em> di Mac) lalu ka <em>Privacy & security → Clear browsing data → Cached images and files</em>.",
        "usercssyoucanpreview": "'''Tips:''' Gunoan tombol \"{{int:showpreview}}\" untuak mauji CSS baharu Sanak sabalun manyimpannyo.",
        "userjsyoucanpreview": "'''Tips:''' Gunoan tombol \"{{int:showpreview}}\" untuak mauji JS baharu Sanak sabalun manyimpannyo.",
        "usercsspreview": "'''Ingeklah bahawa Sanak sadang manampilan pratayang dari CSS Sanak.\nPratayang iko alun disimpan!'''",
        "permissionserrorstext": "Sanak indak ado hak untuak malakuannyo dek {{PLURAL:$1|alasan}} barikuik:",
        "permissionserrorstext-withaction": "Sanak indak punyo hak akses untuak $2, dek {{PLURAL:$1|alasan}} barikuik:",
        "recreate-moveddeleted-warn": "'''Ingek: Sanak mambuek ulang suatu laman nan alah dihapuih.'''\n\nHarap ditimbang apo rancak malanjuikan suntiangan Sanak.\nBarikuik ko log pangapuihan jo pamindahan dari laman ko:",
-       "moveddeleted-notice": "Laman ko alah dihapuih.\nSabagai reperensi, barikuik adolah log pangapuihan dan pamindahannyo.",
+       "moveddeleted-notice": "Laman ko alah dihapuih.\nSabagai referensi, barikuik adolah log pangapuihan jo pamindahannyo.",
        "log-fulllog": "Liek saluruah log",
        "edit-hook-aborted": "Suntiangan dibatalan samo kait parser\ntanpa ado katarangan.",
        "edit-gone-missing": "Indak dapek mampabarui laman.\nMungkin alah dihapuih.",
        "histlegend": "Bandiangan piliahan: Tandoi revisi untuak mambandiangan dan takan enter atau tombol di bawah.<br />\nContoh: '''({{int:cur}})''' = bedo jo versi tarakhia, '''({{int:last}})''' = bedo jo versi sabalunnyo, '''{{int:minoreditletter}}''' = suntiangan ketek.",
        "history-fieldset-title": "Talusuri riwayaik",
        "history-show-deleted": "Hanyo nan dihapuih",
-       "histfirst": "Nan lamo",
-       "histlast": "Nan baru",
+       "histfirst": "Nan paliang lamo",
+       "histlast": "Nan paliang baru",
        "historysize": "({{PLURAL:$1|$1  bita}})",
        "historyempty": "(kosong)",
        "history-feed-title": "Riwayat revisi",
        "compareselectedversions": "Bandiangan versi tapiliah",
        "showhideselectedversions": "Tunjuakan/suruakan versi tapiliah",
        "editundo": "batal",
+       "diff-multi-sameuser": "({{PLURAL:$1|Ciek parubahan antaro|$1 parubahan antaro}} dek pangguno nan samo indak ditampilkan)",
+       "diff-multi-otherusers": "({{PLURAL:$1|Ciek parubahan antaro|$1 parubahan antaro}} dek {{PLURAL:$2|ciek pangguno lain|$2 pangguno}} indak ditampilkan)",
        "searchresults": "Hasil pancarian",
        "searchresults-title": "Hasil pancarian untuak \"$1\"",
        "titlematches": "Judul laman pas",
        "shown-title": "Tampilkan $1 {{PLURAL:$1|hasil}} per laman",
        "viewprevnext": "Caliak ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''Ado laman nan banamo \"[[:$1]]\" pado wiki ko.'''",
-       "searchmenu-new": "'''Buek laman \"[[:$1]]\" di wiki ko!'''",
+       "searchmenu-new": "<strong>Buek laman \"[[:$1]]\" di wiki ko!</strong> {{PLURAL:$2|0=|Caliak pulo laman nan ditamukan dari pancarian Sanal.|Caliak pulo hasia pancarian nan ditamukan.}}",
        "searchprofile-articles": "Laman isi",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Sadonyo",
        "search-result-category-size": "{{PLURAL:$1|$1 anggota}} ({{PLURAL:$2|$2 subkategori}}, {{PLURAL:$3|$3 berkas}})",
        "search-redirect": "(dialiahan dari $1)",
        "search-section": "(bagian $1)",
+       "search-file-match": "(isi berkas nan sasuai)",
        "search-suggest": "Mungkin makasuiknyo: $1",
        "search-interwiki-caption": "Proyek badunsanak",
        "search-interwiki-default": "Hasil $1:",
        "searchrelated": "bakaitan",
        "searchall": "sado",
        "showingresults": "Di bawah ko dikaluaan sampai {{PLURAL:$1|'''$1''' hasil}}, dimulai dari #'''$2'''.",
+       "search-showingresults": "{{PLURAL:$4|Hasia <strong>$1</strong> dari <strong>$3</strong>|Hasia <strong>$1 - $2</strong> dari <strong>$3</strong>}}",
        "search-nonefound": "Indak ado hasil nan cocok sasuai jo parmintaan",
        "powersearch-legend": "Pencarian lanjut",
        "powersearch-ns": "Mancari di ruangnamo:",
        "action-writeapi": "manggunoan panulisan API",
        "action-import": "impor laman ko dari wiki lain",
        "nchanges": "$1 {{PLURAL:$1|parubahan}}",
+       "enhancedrc-history": "riwayaik",
        "recentchanges": "Parubahan baru",
        "recentchanges-legend": "Piliahan parubahan baru",
        "recentchanges-summary": "Caliak parubahan tabaru pado wiki di laman ko.<br />\n;Patunjuak:(<span style=\"color:blue;\">bedo</span>) parubahan, (<span style=\"color:blue;\">sijarah</span>) riwayaik parubahan, '''B''' laman baru, '''b''' suntiangan bot, '''k''' suntiangan ketek, <span class=\"unpatrolled\">!</span> parubahan alun dipatroli,<br /><span style=\"color:green;\">'''(+ ''bita'')'''</span> isi laman batambah, <span style=\"color:red;\">(- ''bita'')</span> isi laman bakurang, (← Ikhtisar otomatih), (→ <span style=\"color:grey;\">Suntiangan bagian</span>)",
+       "recentchanges-noresult": "Indak ado parubahan dalam rantang wakatu ko nan sasuai jo kriteria.",
        "recentchanges-feed-description": "Tamuan parubahan baru dalam umpan wiki ko",
        "recentchanges-label-newpage": "Suntiangan ko mambuek laman baru",
        "recentchanges-label-minor": "Iko suntiangan ketek",
        "recentchanges-label-plusminus": "Parubahan ukuran halaman dalam bita",
        "recentchanges-legend-heading": "<strong>Katarangan:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (caliak pulo [[Special:NewPages|daftar halaman nan baru]])",
-       "rcnotefrom": "Di bawah ko ado parubahan mulai dari '''$2''' (sampai '''$1''' parubahan).",
+       "rcnotefrom": "Di bawah iko adolah {{PLURAL:$5|parubahan|babagai parubahan}} sajak <strong>$3, $4</strong> (ditampilkan sampai <strong>$1</strong> parubahan).",
        "rclistfrom": "Tunjuakan parubahan baru mulai dari tanggal $3 $2",
        "rcshowhideminor": "$1 suntiangan ketek",
+       "rcshowhideminor-show": "Tunjuakan",
+       "rcshowhideminor-hide": "Suruakan",
        "rcshowhidebots": "$1 bot",
+       "rcshowhidebots-show": "Tunjuakan",
+       "rcshowhidebots-hide": "Suruakan",
        "rcshowhideliu": "$1 pangguno tadaftar",
+       "rcshowhideliu-show": "Tunjuakan",
+       "rcshowhideliu-hide": "Suruakan",
        "rcshowhideanons": "$1 pangguno anon",
+       "rcshowhideanons-show": "Tunjuakan",
+       "rcshowhideanons-hide": "Suruakan",
        "rcshowhidepatr": "$1 suntiangan tapatroli",
        "rcshowhidemine": "$1 suntiangan denai",
+       "rcshowhidemine-show": "Tunjuakan",
+       "rcshowhidemine-hide": "Suruakan",
        "rclinks": "Tunjuakkan $1 parubahan tabaru dalam $2 hari nan tarakhia",
        "diff": "bedo",
        "hist": "sijarah",
        "rc-enhanced-expand": "Tampilkan rincian (paralu JavaScript)",
        "rc-enhanced-hide": "Suruakkan rincian",
        "recentchangeslinked": "Parubahan takaik",
+       "recentchangeslinked-feed": "Parubahan takaik",
        "recentchangeslinked-toolbox": "Parubahan takaik",
        "recentchangeslinked-title": "Parubahan nan takaik jo \"$1\"",
        "recentchangeslinked-summary": "Masuakkan namo halaman untuak mancaliak parubahan pado halaman nan taubuang dari atau pado halaman tu. (Untuak mancaliak laman nan manjadi anggota kategori itu, masuakkan {{ns:category}}:Namo kategori). Parubahan pado halaman nan ado pado [[Special:Watchlist|daftar pantauan Sanak]] batando <strong>pakek</strong>.",
        "imagelinks": "Panggunoan berkas",
        "linkstoimage": "{{PLURAL:$1|Halaman|$1 halaman}} nan iko manggunoan berkas nan iko:",
        "linkstoimage-more": "Labiah dari $1 {{PLURAL:$1|laman}} ado pautan ka berkas ko.\nDaftar barikuik manunjuakan {{PLURAL:$1|$1 laman jo pautan langsuang}} ka berkas ko.\nAdo juo tasadio [[Special:WhatLinksHere/$2|daftar langkoknyo]].",
-       "nolinkstoimage": "Indak ado laman nan bapauik ka berkas ko.",
+       "nolinkstoimage": "Indak ado laman nan manggunokan berkas ko.",
        "morelinkstoimage": "Caliak [[Special:WhatLinksHere/$1|pautan baliak]] ka berkas ko.",
        "linkstoimage-redirect": "$1 (pangaliahan berkas) $2",
        "duplicatesoffile": "Sabanyak {{PLURAL:$1|$1 berkas barikuik}} marupoan duplikat dari berkas ko ([[Special:FileDuplicateSearch/$2|rincian labiah lanjuik]]):",
        "apisandbox": "Bak kasiak API",
        "booksources": "Sumber buku",
        "booksources-search-legend": "Cari di sumber buku",
+       "booksources-search": "Cari",
        "specialloguserlabel": "Pangguno:",
-       "speciallogtitlelabel": "Target (judul atau pangguno):",
+       "speciallogtitlelabel": "Target (judua atau {{ns:pangguno}}:namo pangguno untuak pangguno):",
        "log": "Log",
        "all-logs-page": "Sado log publik",
        "alllogstext": "Gabuangan kasado log nan ado di {{SITENAME}}.\nSanak dapek mamiliah jinih log nan ado, namo pangguno (bedoan hurup ketek/gadang), atau judul laman (bedoan hurup ketek/gadang).",
        "contributions": "Jariah {{GENDER:$1|pangguno}}",
        "contributions-title": "Jariah pangguno untuak $1",
        "mycontris": "Jariah",
-       "contribsub2": "Untuak $1 ($2)",
+       "anoncontribs": "Jariah",
+       "contribsub2": "Untuak {{GENDER:$3|$1}} ($2)",
        "uctop": "kini",
        "month": "Dari bulan (dan sabalunnyo):",
        "year": "Dari taun (dan sabalunnyo):",
        "sp-contributions-search": "Cari jariah",
        "sp-contributions-username": "Alamaik IP atau namo pangguno:",
        "sp-contributions-toponly": "Hanyo manampilan suntiangan nan tarakhia",
+       "sp-contributions-newonly": "Hanyo manampilan suntiangan nan tarakhia",
        "sp-contributions-submit": "Cari",
        "whatlinkshere": "Pautan baliak",
        "whatlinkshere-title": "Laman nan takaik ka \"$1\"",
        "blockip": "Sakek pangguno",
        "blockiptext": "Gunoan formulir di bawah ko untuak manyakek akses dari sabuah alamaik IP atau pangguno.\nIko hanyo buliah dilakuan untuak mancagah vandal, dan sajalan jo [[{{MediaWiki:Policy-url}}|kabijakan]].\nMasuakan alasan sakek di bawah (contoh, mambuek karusakan atau vandal).",
        "ipaddressorusername": "Alamaik IP atau namo pangguno:",
-       "ipbexpiry": "Sampai:",
        "ipbreason": "Alasan:",
        "ipbreason-dropdown": "*Alasan umum sakek\n** Marusak (vandal)\n** Mangagiah informasi palsu\n** Mangilangkan isi laman\n** Spam pautan ka situs lua\n** Mambuek ota gadang di laman\n** Babuek intimidasi/palecehan\n** Manyalahgunoan babarapo akun\n** Namo pangguno talarang\n** Bot alun ado bot flag",
        "ipb-hardblock": "Halang pangguno tadaftar untuak manyuntiang dari alamaik IP ko",
        "ipb-unblock": "Lapeh sakek pangguno atau alamaik IP",
        "ipb-blocklist": "Caliak nan disakek",
        "ipb-blocklist-contribs": "Jariah untuak $1",
+       "block-expiry": "Sampai:",
        "unblockip": "Lapeh sakek",
        "unblockiptext": "Gunoan formulir ko untuak mangambalian hak akses alamaik IP atau pangguno nan kanai sakek",
        "ipusubmit": "Lapeh sakek ko",
        "import": "Impor laman",
        "importstart": "Mangimpor laman...",
        "importnosources": "Indak ado sumber impor transwiki nan lah dibuek dan pamuatan riwayaik sacaro langsuang alah dinon-aktipan.",
+       "importlogpage": "Log impor",
        "importlogpagetext": "Administrasi laman impor jo riwayaik panyuntiangannyo dari wiki lain.",
-       "tooltip-pt-userpage": "Laman pangguno Sanak",
+       "tooltip-pt-userpage": "Laman {{GENDER:|pangguno Sanak}}",
        "tooltip-pt-anonuserpage": "Laman pangguno IP Sanak",
-       "tooltip-pt-mytalk": "Laman rundiang Sanak",
+       "tooltip-pt-mytalk": "Laman rundiang {{GENDER:|Sanak}}",
        "tooltip-pt-anontalk": "Parundiangan tantang suntiangan dari IP ko",
-       "tooltip-pt-preferences": "Pangaturan denai",
+       "tooltip-pt-preferences": "Piliahan {{GENDER:|Sanak}}",
        "tooltip-pt-watchlist": "Daftar laman nan dipantau.",
-       "tooltip-pt-mycontris": "Daftar jariah Sanak",
+       "tooltip-pt-mycontris": "Daftar jariah {{GENDER:|Sanak}}",
        "tooltip-pt-login": "Sanak disaranan untuak masuak log; walaupun indak wajib",
        "tooltip-pt-logout": "Kalua log",
        "tooltip-pt-createaccount": "Sanak dianjuaan mambuek akun dan masuak log; walaupun hal iko indak aruih",
        "tooltip-t-recentchangeslinked": "Parubahan baru laman nan bakaik jo laman ko",
        "tooltip-feed-rss": "Umpan RSS untuak laman ko",
        "tooltip-feed-atom": "Umpan Atom untuak laman ko",
-       "tooltip-t-contributions": "Caliak daftar jariah pangguno ko",
+       "tooltip-t-contributions": "Daftar kontribusi {{GENDER:$1|pangguno iko}}",
        "tooltip-t-emailuser": "Kirimkan surel pado pangguno ko",
        "tooltip-t-upload": "Muek berkas",
        "tooltip-t-specialpages": "Daftar kasado laman istimewa",
        "pageinfo-length": "Panjang laman (dalam bita)",
        "pageinfo-article-id": "ID Laman",
        "pageinfo-language": "Bahaso isi laman",
-       "pageinfo-robot-policy": "Statuih masin pancari",
-       "pageinfo-robot-index": "Dapek di indeks",
+       "pageinfo-content-model": "Model isi laman",
+       "pageinfo-robot-policy": "Pembuekan indek dek robot",
+       "pageinfo-robot-index": "Dapek diindekskan",
        "pageinfo-robot-noindex": "Indak dapek di indeks",
        "pageinfo-watchers": "Bara urang nan mambaco",
        "pageinfo-few-watchers": "Kurang dari $1 {{PLURAL:$1|pambaco}}",
-       "pageinfo-redirects-name": "Pangaliahan ka laman ko",
+       "pageinfo-redirects-name": "Jumalah pangaliahan ka laman ko",
        "pageinfo-subpages-name": "Sublaman dari laman ko",
        "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|pangaliahan}}; $3 {{PLURAL:$3|bukan pangaliahan}})",
        "pageinfo-firstuser": "Pambuek laman",
        "version-entrypoints-header-url": "URL",
        "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Artikel path]",
        "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Skrip path]",
+       "redirect": "Pengaliahan badasa ID berkas, pangguno, laman, revisi, atau log",
+       "redirect-summary": "Laman istimewa ko baraliah ka berkas (sasuai namo berkasnya), laman (sasuai ID parubahannya), atau laman pangguno (sasuai ID numerik panggunonya). Panggunoan: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/revision/328429]], atau [[{{#Special:Redirect}}/user/101]].",
+       "redirect-submit": "Tuju",
+       "redirect-lookup": "Pancarian:",
+       "redirect-value": "Nilai",
+       "redirect-user": "ID pangguno",
+       "redirect-page": "ID Laman",
+       "redirect-revision": "Revisi laman",
+       "redirect-file": "Namo berkas",
        "fileduplicatesearch": "Pancarian berkas duplikat",
        "fileduplicatesearch-summary": "Pancarian berkas duplikat badasaran nilai hash-nyo.",
        "fileduplicatesearch-result-n": "Berkas \"$1\" ado {{PLURAL:$2|$2 duplikat nan samo}}.",
        "htmlform-required": "Nilai ko diparaluan",
        "logentry-delete-delete": "$1 {{GENDER:$2|mangapuih}} laman $3",
        "logentry-delete-restore": "$1 {{GENDER:$2|mangambalian}} laman $3",
+       "logentry-delete-revision": "$1 {{GENDER:$2|mangubah}} tampilan dari {{PLURAL:$5|revisi|$5 revisi}} di laman $3: $4",
+       "revdelete-content-hid": "isi disambunyikan",
        "logentry-move-move": "$1 {{GENDER:$2|mamindahan}} laman $3 ka $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|mamindahan}} laman $3 ka $4 tanpa mambuek pangaliahan",
        "logentry-move-move_redir": "$1 {{GENDER:$2|mamindahan}} laman $3 ka $4 maimpok pangaliahan lamo",
        "logentry-newusers-autocreate": "Akun pangguno $1 alah {{GENDER:$2|dibuek}} sacaro otomatih",
        "logentry-rights-rights": "$1 {{GENDER:$2|maubah}} kaanggotaan kalompok $3 dari $4 manjadi $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|maubah}} kaanggotaan kalompok $3",
+       "logentry-upload-upload": "$1 {{GENDER:$2|mangunggah}} $3",
        "rightsnone": "(indak ado)",
        "searchsuggest-search": "Cari {{SITENAME}}",
        "searchsuggest-containing": "Barisi...",
index 66abc0f..9dbde82 100644 (file)
        "category-subcat-count": "{{PLURAL:$2|Оваа категорија ја содржи само следнава поткатегорија.|Оваа категорија {{PLURAL:$1|ја содржи следнава поткатегорија|ги содржи следниве $1 поткатегории}} од вкупно $2.}}",
        "category-subcat-count-limited": "Оваа категорија {{PLURAL:$1|ја содржи следнава поткатегорија|ги содржи следниве $1 поткатегории}}.",
        "category-article-count": "{{PLURAL:$2|Оваа категорија содржи само една страница.|{{PLURAL:$1|Прикажана е една|Прикажани се $1}} од вкупно $2 страници во категоријата.}}",
-       "category-article-count-limited": "{{PLURAL:$1|Следната страница е|Следните $1 страници се}} во оваа категорија.",
+       "category-article-count-limited": "{{PLURAL:$1|Следнава страница е|Следниве $1 страници се}} во оваа категорија.",
        "category-file-count": "{{PLURAL:$2|Оваа категорија содржи само една податотека.|{{PLURAL:$1|Прикажана е една|Прикажани се $1}} од вкупно $2 податотеки во категоријата.}}",
        "category-file-count-limited": "{{PLURAL:$1|Следнава податотека е|Следниве $1 податотеки се}} во оваа категорија.",
        "listingcontinuesabbrev": "продолжува",
        "views": "Посети",
        "toolbox": "Алатки",
        "tool-link-userrights": "Смени ги {{GENDER:$1|корисничките}} групи",
-       "tool-link-userrights-readonly": "Погл. {{GENDER:$1|кориснички}} групи",
+       "tool-link-userrights-readonly": "Преглед на {{GENDER:$1|корисничките}} групи",
        "tool-link-emailuser": "Испрати е-пошта на {{GENDER:$1|корисников}}",
        "imagepage": "Преглед на страницата на податотеката",
        "mediawikipage": "Преглед на пораката",
        "resetpass-abort-generic": "Смената на лозинката е откажана од додаток.",
        "resetpass-expired": "Лозинката ви е истечена. Задајте нова лозинка за да се најавите.",
        "resetpass-expired-soft": "Лозинката ви е истечена и ќе мора да ја смените. Изберете ја сега, или пак стиснете на „{{int:authprovider-resetpass-skip-label}}“ за да ја смените подоцна.",
+       "resetpass-validity": "Лозинката ви е неважечка: $1\n\nЗадајте нова лозинка за да се најавите.",
        "resetpass-validity-soft": "Лозинката ви е неважечка: $1\n\nИзберете друга сега, или пак стиснете на „{{int:authprovider-resetpass-skip-label}}“ за да ја смените подоцна.",
        "passwordreset": "Менување на лозинка",
        "passwordreset-text-one": "Пополнете го образецов за да ја измените лозинката.",
        "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Можете да ја искористите можноста „{{int:emailuser}}“ ако е назначена важечка е-поштенска адреса во [[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Имајте предвид дека можеби нема да можете да ја искористите можноста „{{int:emailuser}}“ доколку не е назначена важечка е-поштенска адреса во [[Special:Preferences|вашите нагодувања]] и ви е забрането користење на истата.\n\nВашата IP-адреса е $3, a назнака на блокирањетo е $5.\nВе молиме наведете ги овие подробности доколку реагирате на блокирањето.",
        "systemblockedtext": "Вашето корисничко име или IP-адреса е автоматски блокирано од МедијаВики.\nПонудена причина:\n\n:<em>$2</em>\n\n* Почеток на блокот: $8\n* Истек на блокот: $6\n* Блокот е наменет за: $7\n\nВашата тековна IP-адреса гласи $3.\nПрепишете ги сите горенаведени поединости доколку сакате да се распрашате кај надлежните во врска со блокот.",
+       "actionblockedtext": "Вршењето на ова дејство ви е забрането.",
        "blockednoreason": "не е наведена причина",
        "whitelistedittext": "Мора да сте $1 за да уредувате страници.",
        "confirmedittext": "Морате да ја потврдите вашата е-поштенска адреса пред да уредувате страници.\nПоставете ја и валидирајте ја вашата е-поштенска адреса преку вашите [[Special:Preferences|нагодувања]].",
        "rev-deleted-user": "(избришано корисничко име)",
        "rev-deleted-event": "(избришани податоци од дневникот)",
        "rev-deleted-user-contribs": "[отстрането е корисничкото име или IP-адресата - уредувањето нема да се прикаже на списокот на придонеси]",
-       "rev-deleted-text-permission": "Оваа преработка страницата е <strong>избришана</strong>.\nМожеби има подробности во [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дневникот на бришења].",
+       "rev-deleted-text-permission": "Оваа преработка на страницата е <strong>избришана</strong>.\nМожеби има подробности во [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дневникот на бришења].",
        "rev-suppressed-text-permission": "Оваа преработка на страницата е <strong>притаена</strong>. Повеќе подробности ќе најдете во [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} дневникот на скривања].",
        "rev-deleted-text-unhide": "Оваа преработка на страницата е '''избришана'''.\nПовеќе подробности ќе најдете во [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дневникот на бришења].\nСепак можете [$1 да ја погледнете оваа преработка] ако сакате да продолжите.",
        "rev-suppressed-text-unhide": "Оваа преработка на страница е '''притаена'''.\nПовеќе подробности ќе најдете во [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} дневникот на прикривања].\nСепак можете да ја [$1 погледнете оваа преработка] ако сакате да продолжите.",
        "powersearch-togglenone": "Ништо",
        "powersearch-remember": "Запoмни во иднина",
        "search-external": "Надворешно пребарување",
-       "searchdisabled": "{{SITENAME}} пребарувањето е оневозможено.\nВо меѓувреме, можете да пребарувате преку Google.\nДа напоменеме дека нивното индексирање на {{SITENAME}} содржините може да биде застарено.",
+       "searchdisabled": "Пребарувањето во {{SITENAME}} е оневозможено.\nВо меѓувреме, можете да пребарувате преку Google.\nДа напоменеме дека нивното индексирање на {{SITENAME}} содржините може да биде застарено.",
        "search-error": "Се појави грешка при пребарувањето: $1",
        "search-warning": "Се појави предупредување при пребарувањето: $1",
        "preferences": "Нагодувања",
        "upload-form-label-own-work": "Ова е мое дело",
        "upload-form-label-infoform-categories": "Категории",
        "upload-form-label-infoform-date": "Датум",
-       "upload-form-label-own-work-message-generic-local": "Потврдувам дека податотекава ја подигам во согласност со уловите на користење и правилата за лиценцирање на {{SITENAME}}.",
-       "upload-form-label-not-own-work-message-generic-local": "Ако не сте во можност да ја подигнете податотекава согласно правилата на {{SITENAME}}. Затворете го дијалогов и обидете се на друг начин.",
+       "upload-form-label-own-work-message-generic-local": "Потврдувам дека податотекава ја подигам во согласност со условите на користење и правилата за лиценцирање на {{SITENAME}}.",
+       "upload-form-label-not-own-work-message-generic-local": "Ако не сте во можност да ја подигнете податотекава согласно правилата на {{SITENAME}}, затворете го дијалогов и обидете се на друг начин.",
        "upload-form-label-not-own-work-local-generic-local": "Можете да ја пробате и [[Special:Upload|стандардната страница за подигање]].",
        "upload-form-label-own-work-message-generic-foreign": "Разбирам дека ја подигам податотекава на заедничко складиште. Потврдувам дека со тоа ги почитувам тамошните услови на користење и лиценцните правила.",
        "upload-form-label-not-own-work-message-generic-foreign": "Ако не сте во можност да ја подигнете податотекава во склад со правилата на заедничкото складиште, би ве замолиле да го затворите дијалогов и да пробате на друг начин.",
        "shared-repo": "заедничко складиште",
        "shared-repo-name-wikimediacommons": "Ризницата",
        "filepage.css": "/* Тука поставените каскадни стилски страници (CSS) се вклучени во описната страница на податотеката, како и на клиентските викија */",
-       "upload-disallowed-here": "Ð\97а Ð¶Ð°Ð», Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ð¿Ñ\80езапиÑ\88еÑ\82е Ð²Ñ\80з Ñ\81ликава.",
+       "upload-disallowed-here": "Ð\9dе Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ð¿Ñ\80езапиÑ\88еÑ\82е Ð²Ñ\80з Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82екава.",
        "filerevert": "Врати $1",
        "filerevert-legend": "Врати податотека",
        "filerevert-intro": "Ја враќате '''[[Media:$1|$1]]''' на [$4 верзијата од $3, $2].",
        "undelete-fieldset-title": "Врати преработки",
        "undeleteextrahelp": "За да вратите целосна историја на една страница, отштиклирајте ги сите полиња и притиснете на „'''{{int:undeletebtn}}'''“.\nЗа да извршите делумно враќање, штиклирајте ги соодветните преработки за враќање и притиснете на „'''{{int:undeletebtn}}'''“.",
        "undeleterevisions": "${{PLURAL:$1|Избришана една преработка|Избришани $1 преработки}}",
-       "undeletehistory": "Ако ја обновите страницата, сите поправки ќе бидат вратени во историјата.\nАко нова страница со исто име е создадена по бришењето, обновените поправки ќе се појават во претходната историја.",
+       "undeletehistory": "Ако ја обновите страницата, сите преработки ќе бидат вратени во историјата.\nАко нова страница со исто име е создадена по бришењето, обновените преработки ќе се појават во претходната историја.",
        "undeleterevdel": "Избришаното нема да биде вратено ако тоа значи дека со тоа најгорната страница или преработката на податотеката делумно ќе се избрише.\nВо такви случаи, морате да ја отштиклирате или откриете (ако е скриена) најновата избришана преработка.",
        "undeletehistorynoadmin": "Оваа статија е избришана. Причината за бришењето е наведена подолу,\nзаедно со информации за корисникот кој ја уредувал страницата пред бришењето. Целиот текст\nод избришаните верзии е достапен само за администраторите.",
        "undelete-revision": "Избришана преработка на $1 (од $4, во $5) од уредникот $3:",
        "blockip": "Блокирај {{GENDER:$1|корисник}}",
        "blockiptext": "Користете го долниот образец за да го забраните пристапот за пишување од одредена IP-адреса или корисничко име.\nОва единствено треба да се прави за да се спречи вандализам, во согласност со [[{{MediaWiki:Policy-url}}|правилата на Википедија]].\nИзберете конкретна причина подолу (на пр. наведувајќи ги страниците што биле вандализирани).\nМожете да блокирате IP-опсези со помош на [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing синтаксата на CIDR]; најголемиот допуштен опсег е /$1 за IPv4 и /$2 за IPv6.",
        "ipaddressorusername": "IP-адреса или корисничко име:",
-       "ipbexpiry": "Истек на рокот:",
        "ipbreason": "Причина:",
        "ipbreason-dropdown": "*Вообичаени причини за блокирање\n** Вметнување лажни информации\n** Бришење на содржини од страниците\n** Спам-врски кон надворешни мрежни места\n** Вметнување глупости во страниците\n** Непристојно однесување\n** Навредување на други корисници\n** Неприфатливо корисничко име",
        "ipb-hardblock": "Спречи ги најавените корисници да уредуваат од оваа IP-адреса",
-       "ipbcreateaccount": "Ð\9eневозможи Ñ\81оздаваÑ\9aе ÐºÐ¾Ñ\80иÑ\81ниÑ\87ки Ñ\81меÑ\82ки",
-       "ipbemailban": "Ð\9eневозможи Ð¼Ñ\83 Ð½Ð° ÐºÐ¾Ñ\80иÑ\81никоÑ\82 Ð´Ð° Ð¿Ñ\80аÑ\9cа е-пошта",
+       "ipbcreateaccount": "СоздаваÑ\9aе Ð½Ð° Ñ\81меÑ\82ка",
+       "ipbemailban": "Ð\98Ñ\81пÑ\80аÑ\9cаÑ\9aе Ð½а е-пошта",
        "ipbenableautoblock": "Автоматски блокирај ја последната IP-адреса што ја користел корисникот и сите понатамошни адреси од кои ќе се обиде да уредува",
        "ipbsubmit": "Блокирај го овој корисник",
        "ipbother": "Друг рок:",
        "ipboptions": "2 часа:2 hours,1 ден:1 day,3 дена:3 days,1 недела:1 week,2 недели:2 weeks,1 месец:1 month,3 месеци:3 months,6 месеци:6 months,1 година:1 year,бесконечно:infinite",
        "ipbhidename": "Скриј го корисничкото име во уредувањата и списоците",
        "ipbwatchuser": "Набљудувај ја корисничката страница и разговорната страница на овој корисник",
-       "ipb-disableusertalk": "СпÑ\80еÑ\87и Ð³Ð¾ ÐºÐ¾Ñ\80иÑ\81ников Ð´Ð° Ñ\98а Ñ\83Ñ\80едÑ\83ва Ð½ÐµÐ³Ð¾Ð²Ð°Ñ\82а Ñ\80азговоÑ\80на Ñ\81Ñ\82Ñ\80аниÑ\86а Ð´Ð¾Ð´ÐµÐºÐ° Ðµ Ð±Ð»Ð¾ÐºÐ¸Ñ\80ан",
+       "ipb-disableusertalk": "УÑ\80едÑ\83ваÑ\9aе Ð½Ð° Ñ\81воÑ\98а Ñ\80азговоÑ\80на Ñ\81Ñ\82Ñ\80аниÑ\86а",
        "ipb-change-block": "Преблокирај го корисникот со овие нагодувања",
        "ipb-confirm": "Потврди блок",
        "ipb-sitewide": "Насекаде",
        "ipb-partial": "Делумно",
-       "ipb-type-label": "Вид",
        "ipb-pages-label": "Страници",
        "badipaddress": "Неважечка IP-адреса",
        "blockipsuccesssub": "Успешно блокирање",
        "ipb-blocklist": "Преглед на активни блокирања",
        "ipb-blocklist-contribs": "Придонеси на {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "{{PLURAL:$1|преостанува уште $1|преостануваат уште $1}}",
+       "block-actions": "Дејства за блокирање:",
+       "block-expiry": "Истек на рокот:",
+       "block-options": "Дополнителни можности:",
+       "block-prevent-edit": "Уредување",
+       "block-reason": "Причина:",
+       "block-target": "Корисничко име или IP-адреса:",
        "unblockip": "Деблокирај корисник",
        "unblockiptext": "Користете го долниот образец да го вратите правото на пишување на претходно блокирана IP-адреса или корисничко име.",
        "ipusubmit": "Избриши го ова блокирање",
        "proxyblockreason": "Вашата IP-адреса е блокирана бидејќи претставува отворен застапник (proxy).\nВе молиме контактирајте со вашиот семрежен услужник и или техничката поддршка и информирајте ги за овој сериозен безбедносен проблем.",
        "sorbs": "DNSBL",
        "sorbsreason": "Вашата IP-адреса е запишана како отворен застапник (proxy) во DNSBL кој го користи {{SITENAME}}..",
-       "sorbs_create_account_reason": "Вашата IP-адреса е наведена како отворен застапникот (proxy) во DNSBL користена од {{SITENAME}}.\nНе можете да создадете корисничка сметка.",
+       "sorbs_create_account_reason": "Вашата IP-адреса е наведена како отворен застапник (прокси) во DNSBL користена од {{SITENAME}}.\nНе можете да создадете корисничка сметка.",
        "softblockrangesreason": "Анонимните придонеси не се дозволени од вашата IP-адреса ($1). Најавете се.",
        "xffblockreason": "Блокирана е IP-адреса присутна во заглавието X-Forwarded-For, која е ваша или на застапничкиот опслужувач што го користите. Наведеното образложение гласи: $1",
        "cant-see-hidden-user": "Корисникот кој се обидувате да го блокирате е веќе блокиран и сокриен. Бидејќи вие немате права за сокривање на корисник, не можете да ги видите или уредувате корисничките блокирања.",
        "tooltip-feed-atom": "Атом-тековник за оваа страница",
        "tooltip-t-contributions": "Список на придонеси {{GENDER:$1|на овој корисник}}",
        "tooltip-t-emailuser": "Испрати е-пошта {{GENDER:$1|на овој корисник}}",
-       "tooltip-t-info": "Повеќе информаици за страницава",
+       "tooltip-t-info": "Повеќе информации за страницата",
        "tooltip-t-upload": "Подигни податотеки",
        "tooltip-t-specialpages": "Список на сите службени страници",
        "tooltip-t-print": "Верзија на страницава наменета за печатење",
        "anonymous": "{{PLURAL:$1|Анонимен корисник|Анонимни корисници}} на {{SITENAME}}",
        "siteuser": "{{SITENAME}} корисник $1",
        "anonuser": "{{SITENAME}} анонимен корисник $1",
-       "lastmodifiedatby": "Последната промена на страницава е извршена на $1 г Сво $2 ч. Промената ја направи $3.",
+       "lastmodifiedatby": "Последната промена на страницава е извршена на $1 гво $2 ч. Промената ја направи $3.",
        "othercontribs": "Засновано на работата на $1.",
        "others": "други",
        "siteusers": "{{SITENAME}} {{PLURAL:$2|{{GENDER:$1|корисник}}|корисници}} $1",
        "specialpages-group-developer": "Развојни алатки",
        "blankpage": "Празна страница",
        "intentionallyblankpage": "Оваа страница намерно е оставена празна",
+       "disabledspecialpage-disabled": "Оваа страница е оневозможена од системскиот администратор.",
        "external_image_whitelist": "  #Остави го овој ред таков каков што е<pre>\n#Додавај фрагменти на регуларни изрази (само делот кој се наоѓа помеѓу //) подолу\n#Ова ќе биде споредено со URL-та на надворешните (hotlinked) слики\n#Оние кои одговараат ќе бидат прикажани како слики, до другите ќе биде прикажана само врската\n#Се прави разлика помеѓу мали и големи букви\n\n#Стави ги сите фрагменти на регуларни изрази над овој ред. Оставете го овој ред таков каков што е</pre>",
        "tags": "Важечки ознаки за менување",
        "tag-filter": "[[Special:Tags|Филтер за ознаки]]:",
index 422ce80..cb505d1 100644 (file)
        "grant-delete": "താളുകൾ, നാൾപ്പതിപ്പുകൾ, രേഖകളിലെ ഉൾപ്പെടുത്തലുകൾ മായ്ക്കുക",
        "grant-editinterface": "മീഡിയവിക്കി നാമമേഖലയും സൈറ്റ്-വ്യാപക/ഉപയോക്തൃ ജെസണും തിരുത്തുക",
        "grant-editmycssjs": "താങ്കളുടെ ഉപയോക്തൃ സി.എസ്.എസ്./ജെസൺ/ജാവാസ്ക്രിപ്റ്റ് തിരുത്തുക",
-       "grant-editmyoptions": "താà´\99àµ\8dà´\95à´³àµ\81à´\9fàµ\86 à´\89പയàµ\8bà´\95àµ\8dà´¤àµ\83 à´\95àµ\8dà´°à´®àµ\80à´\95à´°à´£à´\99àµ\8dà´\99ൾ തിരുത്തുക",
+       "grant-editmyoptions": "താà´\99àµ\8dà´\95à´³àµ\81à´\9fàµ\86 à´\89പയàµ\8bà´\95àµ\8dà´¤àµ\83 à´\95àµ\8dà´°à´®àµ\80à´\95à´°à´£à´\99àµ\8dà´\99à´³àµ\81à´\82 à´\9càµ\86സൺ à´\95àµ\8dà´°à´®àµ\80à´\95à´°à´£à´\99àµ\8dà´\99à´³àµ\81à´\82 തിരുത്തുക",
        "grant-editmywatchlist": "താങ്കൾ ശ്രദ്ധിക്കുന്നവയുടെ പട്ടിക തിരുത്തുക",
        "grant-editsiteconfig": "സൈറ്റ്-വ്യാപകവും ഉപയോക്താക്കളുടെയും സി.എസ്.എസ്./ജെ.എസ്. തിരുത്തുക",
        "grant-editpage": "നിലവിലുള്ള താളുകൾ തിരുത്തുക",
        "action-managechangetags": "ടാഗുകൾ സൃഷ്ടിക്കുക അല്ലെങ്കിൽ സജ്ജമാക്കുക/ഒഴിവാക്കുക",
        "action-applychangetags": "താങ്കളുടെ മാറ്റങ്ങൾക്കൊപ്പം ടാഗുകൾ ബാധകമാക്കുക",
        "action-changetags": "ഒറ്റയൊറ്റ നാൾപ്പതിപ്പുകൾക്കും രേഖയിലെ ഉൾപ്പെടുത്തലുകൾക്കും ഐച്ഛിക ടാഗുകൾ ചേർക്കുക അല്ലെങ്കിൽ നീക്കംചെയ്യുക",
+       "action-deletechangetags": "ഡേറ്റാബേസിൽ നിന്നും റ്റാഗുകൾ മായ്ക്കുക",
        "action-purge": "താൾ ശുദ്ധീകരിച്ചെടുക്കുക",
        "nchanges": "{{PLURAL:$1|ഒരു മാറ്റം|$1 മാറ്റങ്ങൾ}}",
        "enhancedrc-since-last-visit": "കഴിഞ്ഞ സന്ദർശനത്തിനു ശേഷം {{PLURAL:$1|ഒരെണ്ണം|$1 എണ്ണം}}",
        "uploadstash-bad-path-unknown-type": "അപരിചിതമായ തരം \"$1\".",
        "uploadstash-file-not-found-no-thumb": "ലഘുചിത്രം സംഘടിപ്പിക്കാൻ കഴിഞ്ഞില്ല.",
        "uploadstash-file-not-found-no-remote-thumb": "ലഘുചിത്രം എടുക്കൽ പരാജയപ്പെട്ടു: $1\nയു.ആർ.എൽ.= $2",
+       "uploadstash-no-extension": "എക്സ്റ്റെൻഷൻ ശൂന്യമാണ്.",
        "img-auth-accessdenied": "പ്രവേശനമില്ല",
-       "img-auth-nopathinfo": "PATH_INFO ലഭ്യമല്ല.\nതാങ്കളുടെ സെർവർ ഈ വിവരം കൈമാറ്റം ചെയ്യാൻ തയ്യാറാക്കിയിട്ടില്ല.\nഅത് img_auth പിന്തുണയില്ലാത്ത സി.ജി.ഐ. അധിഷ്ഠിതമായ ഒന്നായിരിക്കാം.\nhttps://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization കാണുക.",
+       "img-auth-nopathinfo": "പാത്ത് വിവരങ്ങൾ ലഭ്യമല്ല.\nതാങ്കളുടെ സെർവർ REQUEST_URI ഒപ്പം/അല്ലെങ്കിൽ PATH_INFO കൈമാറ്റം ചെയ്യാൻ കഴിയുന്നതായി സജ്ജീകരിച്ചിരിക്കേണ്ടതുണ്ട്.\nഅങ്ങനെ ചെയ്തിട്ടുണ്ടെങ്കിൽ $wgUsePathInfo സജ്ജമാക്കുക.\nhttps://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization കാണുക.",
        "img-auth-notindir": "ആവശ്യപ്പെട്ട പാത അപ്‌‌ലോഡ് ഡയറക്റ്ററിയിൽ സജ്ജീകരിച്ചു നൽകിയിട്ടില്ല.",
        "img-auth-badtitle": "\"$1\" എന്നതിൽ നിന്ന് സാധുവായ തലക്കെട്ട് സൃഷ്ടിക്കാൻ കഴിയില്ല.",
        "img-auth-nologinnWL": "താങ്കൾ ലോഗിൻ ചെയ്തിട്ടില്ല ഒപ്പം \"$1\" ശുദ്ധിപട്ടികയിൽ ഇല്ല.",
        "newpages-submit": "പ്രദർശിപ്പിക്കുക",
        "newpages-username": "ഉപയോക്തൃനാമം:",
        "ancientpages": "ഏറ്റവും പഴയ താളുകൾ",
-       "move": "തലà´\95àµ\8dà´\95àµ\86à´\9fàµ\8dà´\9fàµ\81àµ\8dâ\80\8c മാറ്റുക",
+       "move": "തലà´\95àµ\8dà´\95àµ\86à´\9fàµ\8dà´\9fàµ\8d മാറ്റുക",
        "movethispage": "ഈ താൾ മാറ്റുക",
        "unusedimagestext": "താഴെ കൊടുത്തിരിക്കുന്ന പ്രമാണങ്ങൾ നിലവിലുണ്ട്, പക്ഷേ ഒരു താളിലും ഉൾപ്പെടുത്തിയിട്ടില്ല.\nമറ്റു വെബ്‌‌ സൈറ്റുകൾ നേരിട്ടുള്ള യൂ.ആർ.എൽ. വഴി പ്രമാണത്തെ നേരിട്ട് ഉപയോഗിക്കുന്നുണ്ടാവുമെന്ന് ദയവായി ഓർക്കുക, അതുകൊണ്ട് സജീവമായ ഉപയോഗത്തെ ശ്രദ്ധിക്കാതെയാവാം ഇവിടെ പട്ടികയിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്നത്.",
        "unusedcategoriestext": "താഴെ പറയുന്ന വർഗ്ഗങ്ങൾക്ക് താൾ നിലവിലുണ്ട്, എങ്കിലും മറ്റു താളുകളോ വർഗ്ഗങ്ങളോ അവ ഉപയോഗിക്കുന്നില്ല.",
        "maximum-size": "പരമാവധി വലിപ്പം",
        "pagesize": "(ബൈറ്റുകൾ)",
        "restriction-edit": "തിരുത്തുക",
-       "restriction-move": "തലà´\95àµ\8dà´\95àµ\86à´\9fàµ\8dà´\9fàµ\81àµ\8dâ\80\8c മാറ്റുക",
+       "restriction-move": "തലà´\95àµ\8dà´\95àµ\86à´\9fàµ\8dà´\9fàµ\8d മാറ്റുക",
        "restriction-create": "താൾ സൃഷ്ടിക്കുക",
        "restriction-upload": "അപ്‌ലോഡ്",
        "restriction-level-sysop": "പൂർണ്ണമായി സം‌രക്ഷിച്ചിരിക്കുന്നു",
        "blockip": "{{GENDER:$1|ഉപയോക്താവിനെ}} തടയുക",
        "blockiptext": "ഏതെങ്കിലും ഐ.പി. വിലാസത്തേയോ ഉപയോക്താവിനേയോ തടയുവാൻ താഴെയുള്ള ഫോം ഉപയോഗിക്കുക.\n[[{{MediaWiki:Policy-url}}|വിക്കിയുടെ നയം]] അനുസരിച്ച് നശീകരണപ്രവർത്തനം തടയാൻ മാത്രമേ ഇതു ചെയ്യാവൂ.\nതടയാനുള്ള വ്യക്തമായ കാരണം (ഏതു താളിലാണു നശീകരണപ്രവർത്തനം നടന്നത് എന്നതടക്കം) താഴെ രേഖപ്പെടുത്തിയിരിക്കണം.\n[https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing സി.ഐ.ഡി.ആർ.] എഴുത്തുരീതി ഉപയോഗിച്ച് താങ്കൾക്ക് ഐ.പി. റേഞ്ചുകൾ തടയാൻ കഴിയുന്നതാണ്;  /$1  ആണ് ഐ.പി.v4-നു അനുവദിച്ചിരിക്കുന്ന വലിയ റേഞ്ച്,  /$2  ആണ് ഐ.പി.v6-നു അനുവദിച്ചിരിക്കുന്ന വലിയ റേഞ്ച്.",
        "ipaddressorusername": "ഐ.പി. വിലാസം അല്ലെങ്കിൽ ഉപയോക്തൃനാമം:",
-       "ipbexpiry": "കാലാവധി:",
        "ipbreason": "കാരണം:",
        "ipbreason-dropdown": "*തടയലിനു യോഗ്യമായ കാരണങ്ങൾ\n** തെറ്റായ വിവരങ്ങൾ ചേർക്കുക\n** താളിൽ നിന്നു വിവരങ്ങൾ മായ്ക്കുക\n** പുറം വെബ്ബ്സൈറ്റിലേക്കുള്ള പാഴ് കണ്ണികൾ ചേർക്കൽ\n** അനാവശ്യം/അസംബന്ധം താളിലേക്കു ചേർക്കൽ\n** മാന്യമല്ലാത്ത പെരുമാറ്റം\n** ദുരുദ്ദേശത്തോടെ ഉപയോഗിക്കുന്ന നിരവധി അംഗത്വങ്ങൾ\n** വിക്കിക്കു ചേരാത്ത ഉപയോക്തൃനാമം",
        "ipb-hardblock": "ഈ ഐ.പി. വിലാസത്തിൽ നിന്നും പ്രവേശിക്കുന്ന ഉപയോക്താക്കളെ തിരുത്തുന്നതിൽ നിന്നും തടയുക",
-       "ipbcreateaccount": "അംഗത്വം സൃഷ്ടിക്കുന്നത് തടയുക",
-       "ipbemailban": "à´\87à´®àµ\86യിൽ à´\85à´¯à´\95àµ\8dà´\95àµ\81à´¨àµ\8dനതിൽ à´¨à´¿à´¨àµ\8dà´¨àµ\81 à´\89പയàµ\8bà´\95àµ\8dതാവിനàµ\86 à´¤à´\9fà´¯àµ\81à´\95",
+       "ipbcreateaccount": "അംഗത്വ സൃഷ്ടി",
+       "ipbemailban": "à´\87à´®àµ\86യിൽ à´\85യയàµ\8dà´\95àµ\8dà´\95ൽ",
        "ipbenableautoblock": "ഈ ഉപയോക്താവ് അവസാനം ഉപയോഗിച്ച ഐ.പി.യും തുടർന്ന് ഉപയോഗിക്കാൻ സാദ്ധ്യതയുള്ള ഐ.പി.കളും യാന്ത്രികമായി തടയുക",
        "ipbsubmit": "ഈ ഉപയോക്താവിനെ തടയുക",
        "ipbother": "മറ്റ് കാലാവധി:",
        "ipboptions": "2 മണിക്കൂർ:2 hours,1 ദിവസം:1 day,3 ദിവസം:3 days,1 ആഴ്ച:1 week,2 ആഴ്ച:2 weeks,1 മാസം:1 month,3 മാസം:3 months,6 മാസം:6 months,1 വർഷം:1 year,അനന്തകാലം:infinite",
        "ipbhidename": "തിരുത്തലുകൾ, പട്ടികകൾ എന്നിവയിൽ നിന്നും ഉപയോക്തൃനാമം മറയ്ക്കുക",
        "ipbwatchuser": "ഈ ഉപയോക്താവിന്റെ താളും സംവാദം താളും ശ്രദ്ധിക്കുക",
-       "ipb-disableusertalk": "à´¤à´\9fയപàµ\8dà´ªàµ\86à´\9fàµ\8dà´\9fà´¿à´°à´¿à´\95àµ\8dà´\95àµ\81à´®àµ\8dà´ªàµ\8bൾ à´¸àµ\8dവനàµ\8dà´¤à´\82 à´¸à´\82വാദà´\82 à´¤à´¾àµ¾ à´¤à´¿à´°àµ\81à´¤àµ\8dà´¤àµ\81à´¨àµ\8dനതിൽ à´¨à´¿à´¨àµ\8dà´¨àµ\81à´\82 à´\88 à´\89പയàµ\8bà´\95àµ\8dതാവിനàµ\86 à´¤à´\9fà´¯àµ\81à´\95",
+       "ipb-disableusertalk": "à´¸àµ\8dവനàµ\8dà´¤à´\82 à´¸à´\82വാദà´\82 à´¤à´¾àµ¾ à´¤à´¿à´°àµ\81à´¤àµ\8dതൽ",
        "ipb-change-block": "ഈ ക്രമീകരണപ്രകാരം ഉപയോക്താവിനെ വീണ്ടും തടയുക",
        "ipb-confirm": "തടയൽ സ്ഥിരീകരിക്കുക",
        "ipb-sitewide": "സൈറ്റ്-വ്യാപകം",
        "ipb-partial": "ഭാഗികം",
-       "ipb-type-label": "തരം",
        "ipb-pages-label": "താളുകൾ",
        "badipaddress": "അസാധുവായ ഐ.പി. വിലാസം.",
        "blockipsuccesssub": "തടയൽ വിജയിച്ചിരിക്കുന്നു",
        "ipb-blocklist": "നിലവിലുള്ള തടയലുകൾ",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} നൽകിയ സംഭാവനകൾ",
        "ipb-blocklist-duration-left": "$1 പോയി",
+       "block-actions": "തടയേണ്ട പ്രവൃത്തികൾ:",
+       "block-expiry": "കാലാവധി:",
+       "block-options": "കൂടുതൽ ഐച്ഛികങ്ങൾ:",
+       "block-prevent-edit": "തിരുത്തൽ",
+       "block-reason": "കാരണം:",
+       "block-target": "ഉപയോക്തൃനാമം അല്ലെങ്കിൽ ഐ.പി. വിലാസം:",
        "unblockip": "ഉപയോക്താവിനുള്ള തടയൽ നീക്കുക",
        "unblockiptext": "മുൻപ് തടയപ്പെട്ട ഐ.പി.യുടേയും ഉപയോക്താവിന്റേയും തിരുത്തൽ അവകാശം പുനഃസ്ഥാപിക്കാൻ താഴെയുള്ള ഫോം ഉപയോഗിക്കുക.",
        "ipusubmit": "ഈ വിലക്ക് ഒഴിവാക്കുക",
        "tooltip-ca-unprotect": "ഈ താളിന്റെ സംരക്ഷണത്തിൽ മാറ്റംവരുത്തുക",
        "tooltip-ca-delete": "ഈ താൾ നീക്കം ചെയ്യുക",
        "tooltip-ca-undelete": "ഈ താൾ നീക്കം ചെയ്തതിനുമുമ്പ് വരുത്തിയ തിരുത്തലുകൾ പുനഃസ്ഥാപിക്കുക",
-       "tooltip-ca-move": "à´\88 à´¤à´¾à´³à´¿à´¨àµ\8dà´±àµ\86 à´¤à´²à´\95àµ\8dà´\95àµ\86à´\9fàµ\8dà´\9fàµ\81àµ\8dâ\80\8c മാറ്റുക",
+       "tooltip-ca-move": "à´\88 à´¤à´¾à´³à´¿à´¨àµ\8dà´±àµ\86 à´¤à´²à´\95àµ\8dà´\95àµ\86à´\9fàµ\8dà´\9fàµ\8d മാറ്റുക",
        "tooltip-ca-watch": "ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിലേയ്ക്ക് ഈ താൾ ചേർക്കുക",
        "tooltip-ca-unwatch": "ഈ താൾ ഞാൻ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽനിന്നു നീക്കുക",
        "tooltip-search": "{{SITENAME}} സംരംഭത്തിൽ തിരയുക",
        "pageinfo-firstuser": "താളിന്റെ നിർമ്മാതാവ്",
        "pageinfo-firsttime": "താൾ നിർമ്മിച്ച ദിവസം",
        "pageinfo-lastuser": "ഏറ്റവും പുതിയ രചയിതാവ്",
-       "pageinfo-lasttime": "à´\85വസാനതàµ\8dà´¤àµ\86 à´¤à´¿à´°àµ\81à´¤àµ\8dà´¤àµ\81 നടന്ന ദിവസം",
+       "pageinfo-lasttime": "à´\85വസാനതàµ\8dà´¤àµ\86 à´¤à´¿à´°àµ\81à´¤àµ\8dà´¤àµ\8d നടന്ന ദിവസം",
        "pageinfo-edits": "മൊത്തം തിരുത്തുകളുടെ എണ്ണം",
        "pageinfo-authors": "ആകെ വ്യത്യസ്തരചയിതാക്കളുടെ എണ്ണം",
        "pageinfo-recent-edits": "സമീപകാലത്തെ തിരുത്തുകൾ (കഴിഞ്ഞ $1 കാലയളവിനുള്ളിൽ)",
index 29c06ab..f745e58 100644 (file)
        "blockip": "{{GENDER:$1|хэрэглэгчийн}} түгжих",
        "blockiptext": "Доорх маягтыг ашиглан тодорхой IP хаяг эсвэл хэрэглэгчийн нэрийг засвар хийхээс түгжинэ үү.\nЭнэ нь зөвхөн вандализм үйлдэх явдлаас сэргийлэхийн тулд, [[{{MediaWiki:Policy-url}}|бодлого, баримтлалын]] дагуу хийгдэх ёстой.\nДоор тодорхой шалтгаанаа бичнэ үү.",
        "ipaddressorusername": "IP хаяг буюу хэрэглэгчийн нэр",
-       "ipbexpiry": "Түгжээ нь нээгдэх хугацаа",
        "ipbreason": "Шалтгаан:",
        "ipbreason-dropdown": "*Ерөнхий түгжих шалтгаанууд\n** Худал мэдээлэл оруулсан\n** Хуудаснуудаас агуулга устгасан\n** Гадны холбоосууд руу линк оруулж спам үйлдсэн\n** Утгагүй зүйл/бувтнал оруулсан\n** Сүрдүүлсэн/зовоосон ааш авиртай\n** Олон бүртгэлийг буруу хэргээр ашигласан\n** Зөвшөөршгүй хэрэглэгчийн нэртэй",
        "ipb-hardblock": "Нэвтэрсэн хэрэглэгчидийг энэ IP хаягаас өөрчлөлт хийхээс зайлс хийх",
        "ipb-unblock": "Хэрэглэгчийн нэр эсвэл IP хаягийн түгжээг тайлах",
        "ipb-blocklist": "Байгаа түгжээнүүдийг харах",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}}-н хувь нэмэр",
+       "block-expiry": "Түгжээ нь нээгдэх хугацаа",
        "unblockip": "Хэрэглэгчийг идэвхижүүлэх",
        "unblockiptext": "Өмнө нь хориг тавьсан интернет хаяг юм уу хэрэглэгчийн бичих эрхийг сэргээхийн тулд дорх маягтыг ашигла.",
        "ipusubmit": "Энэ түгжээг цуцлах",
index 9381dba..9aaddc1 100644 (file)
        "returnto": "$1 कडे परत चला.",
        "tagline": "{{SITENAME}} कडून",
        "help": "साहाय्य",
+       "help-mediawiki": "मिडियाविकि बद्दलची मदत",
        "search": "शोधा",
        "search-ignored-headings": " #<!-- हे असेच सोडा --> <pre>\n# शोधामधून ही शिर्षके वगळली जातील.\n# शिर्षकांमधील बदल अनुक्रमाणिकेत आल्याबरोबरच पुढील बदल आपसूकच होतील.\n# तुम्ही पानांमध्ये कसलाही बदल न करता पुन्हा साठवून ठेवल्यास पान आपसूकच अनुक्रमाणिकेत पुन्हा जोडले जाईल.\n# त्याचा सिन्टेक्स पुढीलप्रमाणे आहे:\n#   * \"#\" इथपासून ओळीच्या शेवटापर्यंतचे सर्वकाही मत म्हणून नोंदवलेले आहे.\n#   * प्रत्येक रिकामी नसलेली ओळ ही दुर्लक्षित करण्यासाठीचे शिर्षक आहे, पाने आणि सर्वकाही.\nसंदर्भयादी\nबाह्यदुवे\nहे ही पहा\n #</pre> <!-- हे असेच सोडा -->",
        "searchbutton": "शोधा",
        "badarticleerror": "या पानावर ही कृती करता येत नाही.",
        "cannotdelete": "$1 हे पान किंवा संचिका वगळता आलेली नाही. (आधीच इतर कुणी वगळले असण्याची शक्यता आहे.)",
        "cannotdelete-title": "$1 ला वगळू शकत नाही",
+       "delete-scheduled": "\"$1\" हे पान काढून टाकण्यात येत आहे, कृपया संयम राखा.",
        "delete-hook-aborted": "खोडण्याची  क्रिया मधेच थांबविण्यात येत आहे.\nकोणतेही कारण देण्यात आले नाही",
        "no-null-revision": "\"$1\" या पानाची नविन रिक्त आवृत्ती निर्मिता आली नाही.",
        "badtitle": "खराब शीर्षक",
        "cascadeprotected": "हे पान संपादनांपासून सुरक्षित केल्या गेले आहे, कारण ते खालील {{PLURAL:$1|पानात|पानांमध्ये}} आंतरविन्यासित केलेले आहे,{{PLURAL:$1|जे पान|जी पाने }} निपतन पर्याय सुरु केल्यामुळे सुरक्षित आहेत:\n$2",
        "namespaceprotected": "'''$1''' नामविश्वातील पाने संपादण्याची आपणांस परवानगी नाही.",
        "customcssprotected": "या पानावर इतर सदस्याची वैयक्तिक मांडणी असल्यामुळे, तुम्हाला हे सीएसएस पान संपादित करण्याची परवानगी नाही.",
+       "customjsonprotected": "या पानावर इतर सदस्याची वैयक्तिक मांडणी असल्यामुळे, तुम्हाला हे जएसओएन पान संपादित करण्याची परवानगी नाही.",
        "customjsprotected": "या पानावर इतर सदस्याची वैयक्तिक मांडणी असल्यामुळे, तुम्हाला हे 'जावास्क्रिप्ट' पान संपादित करण्याची परवानगी नाही.",
+       "sitecssprotected": "ह्या पानाला भेट देणाऱ्या सगळ्या सदस्यांवर परिणाम होण्याची शक्यता असल्यामुळे, तुम्हाला हे सीएसएस पान संपादित करण्याची परवानगी नाही.",
+       "sitejsonprotected": "ह्या पानाला भेट देणाऱ्या सगळ्या सदस्यांवर परिणाम होण्याची शक्यता असल्यामुळे, तुम्हाला हे जेएसओएन पान संपादित करण्याची परवानगी नाही.",
+       "sitejsprotected": "ह्या पानाला भेट देणाऱ्या सगळ्या सदस्यांवर परिणाम होण्याची शक्यता असल्यामुळे, तुम्हाला हे जाव्हास्क्रिप्ट पान संपादित करण्याची परवानगी नाही.",
        "mycustomcssprotected": "या सीएसएस (CSS) पानावरील मजकूर बदलण्याची आपणास परवानगी नाही.",
+       "mycustomjsonprotected": "या जेएसओएन पानावर संपादन करण्याची आपणास परवानगी नाही.",
        "mycustomjsprotected": "या जावास्क्रिप्ट पानावर संपादन करण्याची आपणास परवानगी नाही.",
        "myprivateinfoprotected": "आपणास आपली वैयक्तिक माहिती बदलण्याची परवानगी नाही.",
        "mypreferencesprotected": "आपणास आपला पसंतीक्रम बदलण्याची परवानगी नाही.",
        "invalidtitle": "अग्राह्य शीर्षक",
        "invalidtitle-knownnamespace": "\"$2\" नामविश्वात \"$3\" मजकूराचे अयोग्य शीर्षक",
        "invalidtitle-unknownnamespace": "अनोळखी नामविश्वाच्या आकड्यासह अवैध मथळा $1 व मजकूर \"$2\"",
-       "exception-nologin": "सनà¥\8bà¤\82द-पà¥\8dरवà¥\87शित à¤¨à¤¾à¤¹à¥\80",
+       "exception-nologin": "à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95à¥\87लà¥\87लà¥\80 à¤¨à¤¾à¤¹à¥\80(लà¥\89à¤\97 à¤\87न à¤\95à¥\87लà¥\87लà¥\87 à¤¨à¤¾à¤¹à¥\80)",
        "exception-nologin-text": "हे पान किंवा क्रिया करण्यासाठी आपल्याला सनोंद- प्रवेशित असावयास हवे.",
        "exception-nologin-text-manual": "हे पान किंवा क्रियेस पोचण्यास कृपया $1 करा.",
        "virus-badscanner": "खराब विन्यास (कॉन्फिगरेशन): अनोळखी व्हायरस स्कॅनर: ''$1''",
        "userlogin-remembermypassword": "मला नोंदीकृतच (लॉग्ड-ईन) ठेवा",
        "userlogin-signwithsecure": "सुरक्षित अनुबंध(सेक्युअर कनेक्शन) वापरा",
        "cannotlogin-title": "सनोंद प्रवेश करु शकत नाही",
-       "cannotlogin-text": "सनà¥\8bà¤\82द-पà¥\8dरवà¥\87श à¤¶à¤\95à¥\8dय à¤¨à¤¾à¤¹à¥\80.",
+       "cannotlogin-text": "à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤¶à¤\95à¥\8dय à¤¨à¤¾à¤¹à¥\80 (लà¥\89à¤\97 à¤\87न à¤¶à¤\95à¥\8dय à¤¨à¤¾à¤¹à¥\80)",
        "cannotloginnow-title": "आता सनोंद प्रवेश घेऊ शकत नाही",
        "cannotloginnow-text": "$1 वापरत असतांना सनोंद प्रवेश करणे शक्य नाही.",
        "cannotcreateaccount-title": "खाते तयार करू शकत नाही",
        "yourdomainname": "तुमचे क्षेत्र (डोमेन) :",
        "password-change-forbidden": "तुम्ही या विकिवर तुमचा परवलीचा शब्द बदलू शकत नाही.",
        "externaldberror": "विदागार ’खातरजमा’ (प्रमाणितीकरण) त्रुटी होती अथवा तुम्हाला तुमचे बाह्य खाते अद्ययावत  करण्याची परवानगी नाही.",
-       "login": "सनà¥\8bà¤\82द-पà¥\8dरवà¥\87श(लà¥\89à¤\97-à¤\88न)",
+       "login": "à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द(लà¥\89à¤\97-à¤\87न)",
        "login-security": "तुमची ओळख पटवा",
-       "nav-login-createaccount": "सनà¥\8bà¤\82द-पà¥\8dरवà¥\87श / सदस्यखाते उघडा",
+       "nav-login-createaccount": "à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95रा /नविन सदस्यखाते उघडा",
        "logout": "बाहेर पडा",
        "userlogout": "बाहेर पडा",
-       "notloggedin": "à¤\86पण à¤¸à¤¨à¥\8bà¤\82द-पà¥\8dरवà¥\87शित à¤¨à¤¾à¤¹à¥\80त",
+       "notloggedin": "à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95à¥\87लà¥\87लà¥\80 à¤¨à¤¾à¤¹à¥\80(लà¥\89à¤\97 à¤\87न à¤\95à¥\87लà¥\87लà¥\87 à¤¨à¤¾à¤¹à¥\80)",
        "userlogin-noaccount": "आपले खाते नाही?",
        "userlogin-joinproject": "{{SITENAME}}मध्ये सहभागी व्हा",
        "createaccount": "नवीन खाते तयार करा",
        "nocookiesfornew": "हे सदस्य खाते अस्तित्वात नाही, त्यामुळे आम्ही त्याच्या स्रोताची खात्री करू शकलो नाही.\nतुमचे स्मृतिशेष उपलब्ध असण्याची खात्री करा,या पानास पुनर्भारण(रिलोड) करा  किंवा पुन्हा प्रयत्न करा.",
        "createacct-loginerror": "खाते यशस्वीरित्या निर्माण केल्या गेले आहे पण आपला आपोआप प्रवेश करता आला नाही.कृपया हे [[Special:UserLogin|मानवी प्रवेशा]]साठी वापरा.",
        "noname": "आपण वैध सदस्यनाम नमूद केले नाही.",
-       "loginsuccesstitle": "सनà¥\8bà¤\82द-पà¥\8dरवà¥\87शित",
+       "loginsuccesstitle": "à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95à¥\87लà¥\80",
        "loginsuccess": "'''तुम्ही {{SITENAME}} वर \"$1\" नावाने सनोंद प्रवेशित आहात.'''",
        "nosuchuser": "\"$1\" या नावाचा कोणताही सदस्य नाही.तुमचे शुद्धलेखन तपासा, किंवा [[Special:CreateAccount|नवीन खाते]] तयार करा.",
        "nosuchusershort": "\"$1\" या नावाचा सदस्य नाही. लिहीताना आपली चूक तर नाही ना झाली?",
        "passwordremindertext": "कुणीतरी (अंकपत्ता $1 कडून) {{SITENAME}} करिता ’नवा परवलीचा शब्दांक पाठवावा’ अशी विनंती केली आहे ($4).\n\"$2\" सदस्याकरिता तात्पुरता परवलीचा शब्दांक \"$3\" झाला आहे.\nतुम्ही आता प्रवेश करा व तुमचा परवलीचा शब्दांक बदला. तुमचा अस्थायी शब्दांक {{PLURAL:$5|एका दिवसात|$5 दिवसांत}} मृत होईल.\n\nजर ही विनंती इतर कुणी केली असेल किंवा तुम्हाला तुमचा परवलीचा शब्दांक आठवला असेल आणि तुम्ही तो आता बदलू इच्छित नसाल तर, तुम्ही हा संदेश दुर्लक्षित करून जुना परवलीचा शब्दांक वापरत राहू शकता.",
        "noemail": "\"$1\" सदस्याच्या कोणत्याही विपत्रपत्त्याची(ई-मेल)नोंद नाही.",
        "noemailcreate": "आपण वैध विरोप-पत्ता (ई-मेल ऍड्रेस) देणे आवश्यक आहे.",
-       "passwordsent": "\"$1\" सदस्याच्या नोंदणी केलेल्या ई-मेल पत्त्यावर परवलीचा नवीन शब्द पाठविण्यात आलेला आहे.\n\nतो मिळाल्यावर पुन्हा सनोंद-प्रवेश करा.",
+       "passwordsent": "\"$1\" सदस्याच्या नोंदणी केलेल्या ई-मेल पत्त्यावर परवलीचा नवीन शब्द(नवा पासवर्ड) पाठविण्यात आलेला आहे.\n\nतो मिळाल्यावर पुन्हा प्रवेश करा.",
        "blocked-mailpassword": "तुमच्या अंकपत्त्यास संपादनापासून प्रतिबंधित करण्यात आले आहे,आणि म्हणून दुरूपयोग टाळ्ण्याच्या दृष्टीने, परवलीचा शब्द परत मिळवण्याची क्रिया करण्यास आपणास परवानगी नाही.",
        "eauthentsent": "नमूद केलेल्या ई-मेल पत्त्यावर एक निश्चितता स्वीकारक ई-मेल पाठविला गेला आहे.\nखात्यावर कोणताही इतर ई-मेल पाठविण्यापूर्वी - तो ई-मेल पत्ता तुमचाच आहे, हे सुनिश्चित करण्यासाठी - तुम्हाला त्या ई-मेल मधील सूचनांचे पालन करावे लागेल.",
        "throttled-mailpassword": "मागील {{PLURAL:$1|तासात|$1 तासांत}} परवलीचा शब्द बदलण्यासाठीची सूचना विपत्राद्वारे पाठविलेली आहे. दुरुपयोग टाळण्यासाठी, {{PLURAL:$1|एका तासामध्ये|$1 तासांमध्ये}} फक्त एकदाच सूचना दिली जाईल.",
        "loginlanguagelabel": "भाषा: $1",
        "suspicious-userlogout": "तुमच्या सनोंद-निर्गमनास नकार दिल्या गेला कारण असे दिसते की ती विनंती अन-अनुबंधित(डिसकनेक्टेड) न्याहाळकाद्वारे पाठवल्या गेली.",
        "createacct-another-realname-tip": "आपले खरे नाव टाकणे वैकल्पिक आहे.\nजर आपण ते द्यायचे ठरविले तर,ते आपल्या कामाचा मूळ स्रोत म्णून देण्यास वापरले जाईल.",
-       "pt-login": "सनà¥\8bà¤\82द-पà¥\8dरवà¥\87श à¤\95रा",
-       "pt-login-button": "सनà¥\8bà¤\82द-पà¥\8dरवà¥\87श à¤\95रा",
+       "pt-login": "पà¥\8dरवà¥\87श à¤\95रा(लà¥\89à¤\97 à¤\87न à¤\95रा)",
+       "pt-login-button": "पà¥\8dरवà¥\87श à¤\95रा(लà¥\89à¤\97 à¤\87न à¤\95रा)",
        "pt-login-continue-button": "आल्याची नोंद तशीच ठेवा",
-       "pt-createaccount": "à¤\96ातà¥\87 à¤¬à¤¨à¤µा",
+       "pt-createaccount": "नवà¥\80न à¤\96ातà¥\87 à¤¤à¤¯à¤¾à¤° à¤\95रा",
        "pt-userlogout": "सनोंद-निर्गम",
        "php-mail-error-unknown": "पीएचपीच्या विपत्र() पर्यायात अज्ञात चूक",
        "user-mail-no-addy": "ईमेल पत्त्या विना ईमेल पाठविण्याचा प्रयत्न केला.",
        "oldpassword": "जुना परवलीचा शब्दः",
        "newpassword": "नवीन परवलीचा शब्द:",
        "retypenew": "पुन्हा एकदा परवलीचा शब्द टंका:",
-       "resetpass_submit": "परवलà¥\80à¤\9aा à¤¶à¤¬à¥\8dद à¤\9fाà¤\95ा à¤\86णि à¤¸à¤¨à¥\8bà¤\82द-पà¥\8dरवà¥\87श à¤\95रा",
+       "resetpass_submit": "परवलà¥\80à¤\9aा à¤¶à¤¬à¥\8dद à¤\9fाà¤\95ा à¤\86णि à¤ªà¥\8dरवà¥\87श à¤\95रा(लà¥\89à¤\97 à¤\87न à¤\95रा)",
        "changepassword-success": "तुमचा परवलीचा शब्द बदललेला आहे!",
        "changepassword-throttled": "तुम्ही नुकतेच आल्याची नोंद करण्यासाठी अनेकानेक प्रयत्न केले आहेत.\nकृपया, पुन्हा प्रयत्न करण्याआधी $1 थोडी उसंत घ्या.",
        "botpasswords": "सांगकाम्याचे परवलीचे शब्द",
        "botpasswords-locked": "तुम्ही तुमच्या सांगकाम्या खात्यावरून आल्याची नोंद करू शकत नाही, हे खाते बंद केले गेले आहे.",
        "resetpass_forbidden": "परवलीचे शब्द बदलता येत नाहीत.",
        "resetpass_forbidden-reason": "परवलीचे शब्द बदलता येऊ शकत नाहीत:$1",
-       "resetpass-no-info": "या à¤ªà¤¾à¤¨à¤¾à¤®à¤§à¥\8dयà¥\87 à¤¥à¥\87à¤\9f à¤\9cाणà¥\8dयासाठà¥\80 à¤¤à¥\81मà¥\8dहास  à¤¸à¤¨à¥\8bà¤\82द-पà¥\8dरवà¥\87शित à¤\85सावयास à¤¹à¤µà¥\87.",
+       "resetpass-no-info": "या à¤ªà¤¾à¤¨à¤¾à¤®à¤§à¥\8dयà¥\87 à¤¥à¥\87à¤\9f à¤\9cाणà¥\8dयासाठà¥\80 à¤¤à¥\81मà¥\8dहास  à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95रायला à¤¹à¤µà¥\80.",
        "resetpass-submit-loggedin": "परवलीचा शब्द बदला",
        "resetpass-submit-cancel": "रद्द करा",
        "resetpass-wrong-oldpass": "अवैध किंवा अस्थायी परवलीचा शब्द.\nकदाचित तुम्ही आधीच तो बदलला असेल किंवा नवीन तात्पुरता परवलीचा शब्द मागवला असेल.",
        "passwordreset-nodata": "सदस्यनाव अथवा विपत्रपता यापैकी काहीच पुरविल्या गेले नाही",
        "changeemail": "विपत्रपत्ता बदला किंवा हटवा",
        "changeemail-header": "आपला विपत्रपत्ता बदलण्यास हे आवेदन पूर्ण करा.जर आपणास आपल्या खात्याशी संलग्न कोणताही विपत्रपत्ता हटवायचा असेल तर,आवेदन सादर करण्यापूर्वी, नविन विपत्रपत्त्यासाठी असलेली जागा कोरी ठेवा.",
-       "changeemail-no-info": "हà¥\87 à¤ªà¤¾à¤¨ à¤¥à¥\87à¤\9f à¤¬à¤\98णà¥\8dयासठà¥\80 à¤¤à¥\81मà¥\8dहाला à¤¸à¤¨à¥\8bà¤\82द-पà¥\8dरवà¥\87शित à¤\85सावà¥\87 लागेल.",
+       "changeemail-no-info": "हà¥\87 à¤ªà¤¾à¤¨ à¤¥à¥\87à¤\9f à¤¬à¤\98णà¥\8dयासठà¥\80 à¤¤à¥\81मà¥\8dहाला à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95रावà¥\80 लागेल.",
        "changeemail-oldemail": "सध्याचा ईमेल पत्ता :",
        "changeemail-newemail": "नवा ईमेल पत्ता:",
        "changeemail-newemail-help": "जर आपणास आपला विपत्रपत्ता(ई-मेल एड्रेस) हटवायचा असेल तर हे क्षेत्र आपण कोरे ठेवावयास हवे. जर आपण आपला विपत्रपत्ता हटविला तर, आपण विसरलेला परवलीचा शब्द पुनर्स्थापित करु शकणार नाही व या विकिवरुन आपणास विपत्रे प्राप्त होणार नाहीत.",
        "nosuchsectiontitle": "असा विभाग नाही.",
        "nosuchsectiontext": "तुम्ही अस्तिवात नसलेला विभाग संपादन करण्याचा प्रयत्न केला आहे.हे पान आपण बघत असतांना तो हलविल्या किंवा वगळल्या गेला आहे.",
        "loginreqtitle": "आल्याची नोंद करणे आवश्यक आहे",
-       "loginreqlink": "\nसनोंद-प्रवेश करा",
+       "loginreqlink": "प्रवेश करा (लॉग इन)",
        "loginreqpagetext": "तुम्ही इतर पाने पहाण्याकरिता $1 केलेच पाहिजे.",
        "accmailtitle": "परवलीचा शब्द पाठविण्यात आलेला आहे.",
        "accmailtext": "[[User talk:$1|$1]] यांसाठी अनियतक्रमाने निर्मित केलेला परवलीचा शब्द $2 यांना पाठवण्यात आला आहे.\n\nया नवीन खात्यासाठीचा परवलीचा शब्द,सनोंद-प्रवेश घेतल्यावर [[Special:ChangePassword|परवलीचा शब्द बदला]] येथे बदलता येईल.",
        "uploadbtn": "संचिकेचे अपभारण करा",
        "reuploaddesc": "अपभारण रद्द करुन ,अपभारणाच्या अर्जाकडे परत जा",
        "upload-tryagain": "बदललेले संचिका वर्णन पाठवा",
-       "uploadnologin": "सनà¥\8bà¤\82द-पà¥\8dरवà¥\87शित à¤¨à¤¾à¤¹à¥\80",
+       "uploadnologin": "à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95à¥\87लà¥\87लà¥\80 à¤¨à¤¾à¤¹à¥\80(लà¥\89à¤\97 à¤\87न à¤\95à¥\87लà¥\87लà¥\87 à¤¨à¤¾à¤¹à¥\80)",
        "uploadnologintext": "संचिका चढविण्यासाठी तुम्हाला $1 करावा लागेल.",
        "upload_directory_missing": "अपलोड डिरेक्टरी ($1) सापडली नाही तसेच वेबसर्व्हर ती तयार करू शकलेला नाही.",
        "upload_directory_read_only": "$1 या डिरेक्टरी मध्ये सर्व्हर लिहू शकत नाही.",
        "watchlistfor2": "$1 $2 साठी",
        "nowatchlist": "तुमची पहाऱ्याची सूची रिकामी आहे.",
        "watchlistanontext": "तुमच्या पहाऱ्याच्या सूचीमधील बाबी पाहण्याकरता किंवा संपादित करण्याकरता, कृपया सनोंद प्रवेश करा.",
-       "watchnologin": "सनà¥\8bà¤\82द-पà¥\8dरवà¥\87शित à¤¨à¤¾à¤¹à¥\80",
+       "watchnologin": "à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95à¥\87लà¥\87लà¥\80 à¤¨à¤¾à¤¹à¥\80(लà¥\89à¤\97 à¤\87न à¤\95à¥\87लà¥\87लà¥\87 à¤¨à¤¾à¤¹à¥\80)",
        "addwatch": "पहाऱ्याच्या सूचीमध्ये टाका",
        "addedwatchtext": "\"[[:$1]]\"  हे पान व त्याचे चर्चापान तुमच्या  [[Special:Watchlist|'माझी निरीक्षणसूची']] मध्ये टाकले आहे.",
        "addedwatchtext-short": "\"$1\" हे पान आपल्या निरीक्षणसूचीत जोडण्यात आले आहे.",
        "blockip": "{{GENDER:$1|सदस्यास}} प्रतिबंधित करा",
        "blockiptext": "एखाद्या विशिष्ट अंकपत्त्याची किंवा सदस्याची लिहिण्याची क्षमता प्रतिबंधित  करण्याकरिता खालील सारणी वापरा.\nहे केवळ उच्छेद टाळण्याच्याच दृष्टीने आणि [[{{MediaWiki:Policy-url}}|निती]]स अनुसरून केले पाहिजे.\nखाली विशिष्ट कारण भरा(उदाहरणार्थ,ज्या पानांवर उच्छेद माजवला गेला त्यांची उद्धरणे देऊन).\nआपण [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] ही वाक्यरचना वापरुन अंकपत्त्याचा आवाका प्रतिबंधित करु शकता. जास्तीत जास्त अनुमानित आवाका आहे  /$1  IPv4 साठी व /$2 IPv6 साठी.",
        "ipaddressorusername": "अंकपत्ता किंवा सदस्यनाम:",
-       "ipbexpiry": "समाप्ति:",
        "ipbreason": "कारण:",
        "ipbreason-dropdown": "*प्रतिबंधनाची सामान्य कारणे\n** चुकीची माहिती भरणे\n** पानांवरील मजकूर काढणे\n** बाह्यसंकेतस्थळाचे चिखलणी(स्पॅमींग) दुवे देणे\n** पानात अटरफटर/वेडगळ भरणे\n** धमकावणारे/उपद्रवी वर्तन\n** असंख्य खात्यांचा गैरवापर\n** अस्वीकार्य सदस्यनाम",
        "ipb-hardblock": "या अंक पत्यावरुन (IP address) प्रवेश केलेल्या सदस्यांना बदल करण्यापासून प्रतिबंध करा.",
        "ipb-blocklist": "सध्याचे प्रतिबंध पहा",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}}साठीचे योगदान",
        "ipb-blocklist-duration-left": "$1 उरले आहेत",
+       "block-expiry": "समाप्ति:",
        "unblockip": "सदस्यप्रतिबंध काढा",
        "unblockiptext": "खाली दिलेला फॉर्म वापरून पूर्वी अडवलेल्या अंकपत्त्याला लेखनासाठी आधिकार द्या.",
        "ipusubmit": "हा पत्ता सोडवा",
        "proxyblockreason": "तुमचा अंकपत्ता प्रतिबंधित केला आहे कारण तो उघड-उघड प्रतिनिधी आहे.कृपया तुमच्या आंतरजाल सेवा दात्यास किंवा तंत्रज्ञास पाचारण संपर्क करा आणि त्यांचे या गंभीर सुरक्षाप्रश्नाकडे लक्ष वेधा.",
        "sorbsreason": "{{SITENAME}}ने वापरलेल्या DNSBL मध्ये तुमच्या अंकपत्त्याची नोंद उघड-उघड प्रतिनिधी म्हणून सूचित केली आहे.",
        "sorbs_create_account_reason": "{{SITENAME}}च्या DNSBLने तुमचा अंकपत्ता उघड-उघड प्रतिनिधी म्हणून सूचित केला आहे.तुम्ही खाते उघडू शकत नाही",
-       "softblockrangesreason": "($1) à¤¯à¤¾ à¤\86पलà¥\8dया à¤\85à¤\82à¤\95पतà¥\8dतà¥\8dयाà¤\95डà¥\82न à¤\85नामिà¤\95 à¤¯à¥\8bà¤\97दानास à¤ªà¤°à¤µà¤¾à¤¨à¤\97à¥\80 à¤¨à¤¾à¤¹à¥\80. à¤\95à¥\83पया à¤¸à¤¨à¥\8bà¤\82द-पà¥\8dरवà¥\87श à¤\95रा.",
+       "softblockrangesreason": "($1) à¤¯à¤¾ à¤\86पलà¥\8dया à¤\85à¤\82à¤\95पतà¥\8dतà¥\8dयाà¤\95डà¥\82न à¤\85नामिà¤\95 à¤¯à¥\8bà¤\97दानास à¤ªà¤°à¤µà¤¾à¤¨à¤\97à¥\80 à¤¨à¤¾à¤¹à¥\80. à¤\95à¥\83पया à¤ªà¥\8dरवà¥\87श à¤\95रा(लà¥\89à¤\97 à¤\87न).",
        "xffblockreason": "(X-Forwarded-For header) मधील अंकपत्ता,आपला किंवा आपण वापरत असलेल्या सर्व्हरचा,प्रतिबंधित केल्या गेला आहे.प्रतिबंधित करण्याचे मुळ कारण होते:$1",
        "cant-see-hidden-user": "तुम्ही प्रतिबंध करण्याचा प्रयत्न करत असलेले सदस्य खाते आधीपासूनच प्रतिबंधित आणि लपविले गेले आहे.\nतुमच्याकडे सदस्य लपविण्याचे अधिकार नसल्यामुळे , तुम्ही सदस्य प्रतिबंधन  पाहू अथवा संपादित करू शकत नाही.",
        "ipbblocked": "तुमचे स्वत:चेच खाते प्रतिबंधित असल्यामुळे तुम्ही इतर सदस्यांना प्रतिबंधित किंवा अप्रतिबंधीत करू शकत नाही",
        "tooltip-pt-mycontris": "{{GENDER:|आपल्या}} योगदानांची यादी",
        "tooltip-pt-anoncontribs": "या अंकपत्त्यावरुन झालेले संपादन",
        "tooltip-pt-login": "आपणांस सनोंद प्रवेशासाठी प्रोत्साहीत करण्यात येत आहे;अर्थातच, ते अनिवार्य नाही.",
-       "tooltip-pt-login-private": "हा à¤µà¤¿à¤\95ि à¤µà¤¾à¤ªà¤°à¤£à¥\8dयास à¤\86पला à¤¸à¤¨à¥\8bà¤\82द-पà¥\8dरवà¥\87श आवश्यक आहे",
+       "tooltip-pt-login-private": "हा à¤µà¤¿à¤\95ि à¤µà¤¾à¤ªà¤°à¤£à¥\8dयास à¤\86पण à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95रणà¥\87 आवश्यक आहे",
        "tooltip-pt-logout": "सनोंद निर्गम",
-       "tooltip-pt-createaccount": "à¤\86मà¥\8dहà¥\80 à¤\86पणास à¤\96ातà¥\87 à¤\89à¤\98डà¥\82न à¤¸à¤¨à¥\8bà¤\82द-पà¥\8dरवà¥\87शास à¤ªà¥\8dरà¥\8bतà¥\8dसाहà¥\80त à¤\95रत à¤\86हà¥\87;à¤\85रà¥\8dथातà¤\9a, à¤¤à¥\87 à¤\85निवारà¥\8dय नाही.",
+       "tooltip-pt-createaccount": "à¤\86मà¥\8dहà¥\80 à¤\86पणास à¤\96ातà¥\87 à¤\89à¤\98डà¥\82न à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95रणà¥\8dयास à¤ªà¥\8dरà¥\8bतà¥\8dसाहà¥\80त à¤\95रत à¤\86हà¥\8bत;à¤\85रà¥\8dथातà¤\9a, à¤¤à¥\87 à¤¨à¥\87हमà¥\80à¤\9a à¤\86वशà¥\8dयà¤\95 नाही.",
        "tooltip-ca-talk": "आशय पानाबद्दलची चर्चा",
        "tooltip-ca-edit": "या पानाचे संपादन करा",
        "tooltip-ca-addsection": "नवीन विभाग सुरू करा",
index 29f9d1c..ac3a323 100644 (file)
        "blockip": "Sekat {{GENDER:$1|pengguna}}",
        "blockiptext": "Gunakan borang di bawah untuk menyekat\npenyuntingan daripada alamat IP atau pengguna tertentu.\nTindakan ini perlu dilakukan untuk menentang vandalisme sahaja dan selaras\ndengan [[{{MediaWiki:Policy-url}}|dasar {{SITENAME}}]].\nSila masukkan sebab sekatan di bawah (umpamannya, sebutkan laman yang telah\ndirosakkan).",
        "ipaddressorusername": "Alamat IP atau nama pengguna:",
-       "ipbexpiry": "Tamat:",
        "ipbreason": "Sebab:",
        "ipbreason-dropdown": "*Sebab lazim\n** Memasukkan maklumat palsu\n** Membuang kandungan daripada laman\n** Memasukkan pautan spam ke tapak web luar\n** Memasukkan karut-marut ke dalam laman\n** Mengugut/mengganggu pengguna lain\n** Menyalahgunakan berbilang akaun\n** Nama pengguna yang tidak sesuai",
        "ipb-hardblock": "Cegah pengguna yang sudah log masuk daripada menyunting dari alamat IP ini",
        "ipb-unblock": "Nyahsekat nama pengguna atau alamat IP",
        "ipb-blocklist": "Lihat sekatan sedia ada",
        "ipb-blocklist-contribs": "Sumbangan oleh {{GENDER:$1|$1}}",
+       "block-expiry": "Tamat:",
        "unblockip": "Nyahsekat pengguna",
        "unblockiptext": "Gunakan borang di bawah untuk membuang sekatan bagialamat IP atau nama pengguna yang telah disekat.",
        "ipusubmit": "Tarik balik sekatan ini",
index e258e7f..94332da 100644 (file)
        "blockip": "Imblokka lill-{{GENDER:$1|utent}}",
        "blockiptext": "Uża l-formola t'hawn taħt sabiex biex tibblokkja l-aċċess tal-kitba lil IP speċifiku jew utent.\nIl-blokk irid ikun użat biss sabiex jitnaqqas iċ-ċans ta' vandaliżmu, u għandu josservja b'mod strett il-[[{{MediaWiki:Policy-url}}|politika ta' {{SITENAME}}]].\nIndika r-raġuni speċifika għalfejn tixtieq tipproċedi bil-blokk (per eżempju, billi turi l-paġni partikolari li ġew ivvandalizzati).",
        "ipaddressorusername": "Indirizz tal-IP jew isem tal-utent:",
-       "ipbexpiry": "Skadenza tal-imblokk:",
        "ipbreason": "Raġuni:",
        "ipbreason-dropdown": "*Raġunijiet komuni dwar blokki\n** Iddaħħal informazzjoni falza\n** Tneħħi kontenut mill-paġni\n** Links kummerċjali ma' siti esterni\n** Iddaħal kontenut bla sens\n** Komportament intimidanti jew molestiku\n** Abbuż minn aktar minn kont wieħed\n** isem ta' utent mhux aċċettabli",
        "ipb-hardblock": "Ipprevjeni utenti reġistri li jikkontribwixxu minn dan l-indirizz IP",
        "ipb-unblock": "Żblokka isem tal-utent jew indirizz IP",
        "ipb-blocklist": "Uri l-blokki eżistenti",
        "ipb-blocklist-contribs": "Kontribuzzjonijiet ta' {{GENDER:$1|$1}}",
+       "block-expiry": "Skadenza tal-imblokk:",
        "unblockip": "Żblokkja l-utent",
        "unblockiptext": "Uża l-formola t'hawn taħt sabiex tirkupra l-aċċess tal-ktiba 'l utent jew indirizz tal-IP imblukkat.",
        "ipusubmit": "Żblokkja dan l-indirizz",
index bfbbe17..49b5fcb 100644 (file)
        "changeemail-throttled": "သင်သည် login ဝင်ရန် အကြိမ်မြောက်မြားစွာ ပြုလုပ်ခဲ့ပြီးဖြစ်သည်။\nကျေးဇူးပြု၍ ထပ်မဝင်ခင် $1 စောင့်ပေးပါ။",
        "changeemail-nochange": "မတူညီသော အီးမေးလ်လိပ်စာအသစ်ကို ကျေးဇူးပြု၍ ရိုက်ထည့်ပါ။",
        "resettokens-token-label": "$1 (လက်ရှိတန်ဖိုး: $2)",
+       "resettokens-resetbutton": "ရွေးချယ်ထားသော တိုကင်များကို ပြန်ချိန်ရန်",
        "bold_sample": "စာလုံးမည်း",
        "bold_tip": "စာလုံးမည်း",
        "italic_sample": "စာလုံး အစောင်း",
        "blockip": "{{GENDER:$1|အသုံးပြုသူ}} ပိတ်ပင်ရန်",
        "blockiptext": "သတ်မှတ်ထားသော အိုင်ပီလိပ်စာ သို့မဟုတ် အသုံးပြုသူအမည်ကို ရေးသားပိုင်ခွင့်မှ ပိတ်ပင်တားဆီးရန် အောက်ပါပုံစံကို အသုံးပြုပါ။ ဤသည် [[{{MediaWiki:Policy-url}}|မူဝါဒ]] အရ ဖျက်လိုဖျက်ဆီးလုပ်ဆောင်မှုကို ကာကွယ်ရန်အတွက်သာ ဆောင်ရွက်သင့်သည်။ ပိတ်ပင်ရသည့် အကြောင်းပြချက်များကိုလည်း အောက်တွင်\nဖြည့်သွင်းပါ။ အိုင်ပီလိပ်စာ အတိုင်းအတာအလိုက် [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] syntax ကို အသုံးပြု၍ ပိတ်ပင်နိုင်ပါသည်။ အများဆုံး ခွင့်ပြုပမာဏမှာ IPv4 အတွက် /$1 ဖြစ်ပြီး IPv6 အတွက် /$2 ဖြစ်သည်။",
        "ipaddressorusername": "အိုင်ပီလိပ်စာ သို့ အသုံးပြုသူအမည် -",
-       "ipbexpiry": "သက်တမ်းကုန်လွန်ရက် -",
        "ipbreason": "အ​ကြောင်း​ပြ​ချက်:",
        "ipbreason-dropdown": "*ယေဘုယျ ပိတ်ပင်တားဆီးရခြင်း အကြောင်းပြချက်များ\n** မှားယွင်းအချက်အလက်များကို ထည့်သွင်းမှု\n** စာမျက်နှာများမှ အကြောင်းအရာကို ဖယ်ရှားမှု\n** ပြင်ပဆိုဒ်များသို့လင့်ခ်ချိတ်၍ ဖွမှု\n** စာမျက်နှာများတွင် ပေါက်တတ်ကရများ ထည့်သွင်းမှု\n** ခြိမ်းခြောက်ခြင်း အပြုအမူ/အနှောက်အယှက်ပေးခြင်း\n** အကောင့်များစွာကို အလွဲသုံးစားလုပ်မှု\n** လက်ခံနိုင်ဖွယ်မရှိသော အသုံးပြုသူအမည်",
        "ipb-hardblock": "ဤအိုင်ပီလိပ်စာမှ လော့ဂ်အင်ဝင်ထားသော အသုံးပြုသူများကို တည်းဖြတ်ခြင်းမှ တားမြစ်ရန်",
        "ipb-disableusertalk": "ပိတ်ပင်ထားစဉ်အတွင်း ဤအသုံးပြုသူအား သူတို့၏ ကိုယ်ပိုင်ဆွေးနွေးချက် စာမျက်နှာကို ပြင်ဆင်ခြင်းမှ ပိတ်ပင်ရန်",
        "ipb-change-block": "အသုံးပြုသူအား ဤအပြင်အဆင်များဖြင့် ထပ်မံပိတ်ပင်ရန်",
        "ipb-confirm": "ပိတ်ပင်မှုကို အတည်ပြု",
-       "ipb-type-label": "အမျိုးအစား",
        "ipb-pages-label": "စာမျက်နှာများ",
        "badipaddress": "တရားမဝင်သော IP address",
        "blockipsuccesssub": "ပိတ်ပင်ခြင်း အောင်မြင်သည်",
        "ipb-blocklist": "ရှိနှင့်ပြီးသား ပိတ်ပင်မှုများကို ကြည့်ရန်",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} အတွက် ဆောင်ရွက်ချက်များ",
        "ipb-blocklist-duration-left": "$1 ကျန်ရှိ",
+       "block-expiry": "သက်တမ်းကုန်လွန်ရက် -",
        "unblockip": "အသုံးပြုသူကို ပိတ်ပင်ထားရာမှ ပြန်ဖွင့်ပေးရန်",
        "ipusubmit": "ဤပိတ်ပင်မှုကို ဖယ်ရှားရန်",
        "unblocked": "[[User:$1|$1]] ကို ပိတ်ပင်ထားရာမှ ပြန်ဖွင့်ပေးလိုက်သည်",
index 1170226..e55d65e 100644 (file)
        "unblock": "Нолдамс теицянть саймасто",
        "blockip": "Аравтомс {{GENDER:$1|теицянть}} саймас",
        "ipaddressorusername": "IP адрес эли теицянь лем:",
-       "ipbexpiry": "Таштомома шказо:",
        "ipbreason": "Тувталось:",
        "ipbsubmit": "Озавтомс те теицянть саймес",
        "ipbother": "Лия шка:",
        "ipb-unblock-addr": "Нолдамс $1-нть сайместэ",
        "ipb-blocklist": "Ваномс саймес озавтозетнень",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}}-нь путовксонзо",
+       "block-expiry": "Таштомома шказо:",
        "unblockip": "Нолдамс теицянть сайместэ",
        "ipusubmit": "Нардамс те саймас аравтоманть",
        "blocklist": "Саймес саень теицят",
index c4faa1b..57c149d 100644 (file)
        "whatlinkshere-filters": "Tlatzetzelōni",
        "blockip": "Tiquitzacuilīz tlatequitiltilīlli",
        "ipaddressorusername": "IP nozo tlatequitiltilīlli ītōcā:",
-       "ipbexpiry": "Motlamia:",
        "ipbreason": "Īxtlamatiliztli:",
        "ipbsubmit": "Tiquitzacuilīz inīn tlatequitiltilīlli",
        "ipbother": "Occē cāuhpan:",
        "blockipsuccesssub": "Cualli tlatzacuiliztli",
        "ipb-unblock-addr": "Ahtiquitzacuilīz $1",
        "ipb-unblock": "Ahtiquitzacuilīz IP nozo tlatequitiltilīlli",
+       "block-expiry": "Motlamia:",
        "unblockip": "Ahtiquitzacuilīz tlatequitiltilīlli",
        "ipblocklist": "Tlatequitiltilīltzacualli",
        "blocklist-reason": "Tleīpampa",
index 23dfe24..88f933d 100644 (file)
        "blockip": "Fremma {{GENDER:$1|utente}}",
        "blockiptext": "Ausa 'o modulo ccà abbascio pe' bluccà l'acciesso 'e scrittura a n'indirizzo IP o utente.\nChisto s'avesse 'a ffà sulamente pe' se pruteggere d' 'o vandalismo, d'accordo ch' [[{{MediaWiki:Policy-url}}|'e reole]].\nMettite pure nu mutivo specifico ccà abbascio (p'esempio, facenno 'o nomme 'e paggene addò se so' fatte 'e vandalisme).\nPutite bluccà ntervalle IP ausanno 'a sintasse [https://it.wikipedia.org/wiki/CIDR CIDR]; l'intervallo cchiù ampio cunzentito è /$1 pe' IPv4 e /$2 pe' IPv6.",
        "ipaddressorusername": "Nnerizzo IP o nomme utente",
-       "ipbexpiry": "Ammatura:",
        "ipbreason": "Mutivo:",
        "ipbreason-dropdown": "* Mutive comune pe' ffà 'o blocco\n** Steva nzertanno nfurmaziune fauze\n** Steva a luvà cuntenute d' 'e paggene\n** Steva a fà spam 'e cullegamiente a 'e site 'e fore\n** Steva a nzertà robbe senza senso dint' 'e paggene\n** Minacce e ntimidaziune\n** Abbuso 'e cunte utente multiple\n** Nomme utente inaccettabbele",
        "ipb-hardblock": "Nun permettere 'o cagnamiento a l'utente riggistrate ca veneno 'a st'indirizzo IP",
        "ipb-disableusertalk": "Nun permettere a st'utente edità 'a paggena 'e chiacchiera d' 'a soja pe' tramente ch'e bloccato",
        "ipb-change-block": "Fremma n'ata vota ll'utente cu ste mpustaziune",
        "ipb-confirm": "Cunferma 'o blocco",
-       "ipb-type-label": "Tipo",
        "ipb-pages-label": "Paggene",
        "badipaddress": "Indirizzo IP nun valido",
        "blockipsuccesssub": "Blocco aseguito",
        "ipb-blocklist": "Fà vedé 'e blocche ch'esisteno",
        "ipb-blocklist-contribs": "Contribbute 'e {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 rummase",
+       "block-expiry": "Ammatura:",
        "unblockip": "Sblocca utente",
        "unblockiptext": "Ausa 'o modulo ccà abbascio p'arrepiglià 'e deritte 'e scrittura a l'indirizze IP o cunte utente ca primma so state bluccate.",
        "ipusubmit": "Lèva stu blocco",
index 8de0926..1a1b018 100644 (file)
        "returnto": "Tilbake til $1.",
        "tagline": "Fra {{SITENAME}}",
        "help": "Hjelp",
+       "help-mediawiki": "Hjelp til MediaWiki",
        "search": "Søk",
        "search-ignored-headings": " #<!-- la denne linjen stå akkurat som den er --> <pre>\n# Overskrifter som vil bli ignorert ved søking.\n# Endringer på denne siden trer i kraft ved neste indeksering.\n# Du kan fremtvinge en reindeksering av en gitt side ved å gjøre en nullredigering.\n# Syntaksen er som følger:\n#   * Alt fra et \"#\"-tegn til slutten av en linje er en kommentar.\n#   * Enhver ikke-tom linje regnes som en ordrett tittel (inkludert skille mellom store og små bokstaver) som skal ignoreres.\nReferanser\nKilder\nEksterne lenker\nSe også\n #</pre> <!-- la denne linjen stå akkurat som den er -->",
        "searchbutton": "Søk",
        "resetpass-abort-generic": "Endring av passord har blitt avbrutt av en utvidelse.",
        "resetpass-expired": "Passordet ditt har utløpt. Vær vennlig å angi et nytt passord for å logge inn.",
        "resetpass-expired-soft": "Passordet ditt har utløpt og må endres. Vær vennlig å angi et nytt passord, eller klikk \"{{int:authprovider-resetpass-skip-label}}\" for å endre det senere.",
+       "resetpass-validity": "Passordet ditt er ugyldig: $1\n\nVelg et annet passord for å logge inn.",
        "resetpass-validity-soft": "Passordet ditt er ikke gyldig: $1\n\nVelg et nytt passord nå, eller klikk på «{{int:authprovider-resetpass-skip-label}}» for å endre det seinere.",
        "passwordreset": "Tilbakestilling av passord",
        "passwordreset-text-one": "Fyll ut skjemaet for å tilbakestille passordet",
        "blockedtext": "<strong>Ditt brukernavn eller din IP-adresse har blitt blokkert.</strong>\n\nBlokkeringen ble utført av $1. Grunnen som ble oppgitt var <em>$2</em>.\n\n* Blokkeringen begynte:  $8\n* Blokkeringen opphører: $6\n* Blokkeringen ment for: $7\n\nDu kan kontakte $1 eller en annen [[{{MediaWiki:Grouppage-sysop}}|administrator]] for å diskutere blokkeringen.\nDu kan ikke bruke «{{int:emailuser}}»-funksjonen med mindre du har oppgitt en gyldig e-postadresse i [[Special:Preferences|innstillingene dine]] og du ikke har blitt blokkert fra å sende e-post.\nDin nåværende IP-adresse er $3, og blokkerings-ID-en er #$5.\nVennligst ta med all denne informasjonen ved henvendelser.",
        "autoblockedtext": "Din IP-adresse har blitt automatisk blokkert fordi den ble brukt av en annen bruker som ble blokkert av $1.\nDen oppgitte grunnen var:\n\n:'''$2'''\n\n* Blokkeringen begynte: $8\n* Blokkeringen utgår: $6\n* Blokkeringen er ment for: $7\n\nDu kan kontakte $1 eller en av de andre [[{{MediaWiki:Grouppage-sysop}}|administratorene]] for å diskutere blokkeringen.\n\nMerk at du ikke kan bruke «{{int:emailuser}}»-funksjonen med mindre du har registrert en gyldig e-postadresse i [[Special:Preferences|innstillingene dine]].\n\nDin IP-adresse er $3, og blokkerings-ID-en er #$5.\nVennligst ta med all denne informasjonen ved henvendelser.",
        "systemblockedtext": "Ditt brukernavn eller IP-adresse har blitt blokkert automatisk av MediaWiki.\n\nBlokkeringen grunnes:\n\n:<em>$2</em>\n\n* Blokkeringen startet: $8\n* Blokkeringen gjelder til: $6\n* Blokkeringen er ment for: $7\n\nDin nåværende IP-adresse er $3.\nVennligst inkluder informasjonen over i alle spørsmål du spør angående dette.",
+       "actionblockedtext": "Du har blitt blokkert fra å gjøre dette.",
        "blockednoreason": "ingen grunn gitt",
        "whitelistedittext": "Du må $1 for å redigere artikler.",
        "confirmedittext": "Du må bekrefte e-postadressen din før du kan redigere sider. Vennligst oppgi og bekreft e-postadressen din via [[Special:Preferences|innstillingene dine]].",
        "accmailtext": "Et tilfeldig passord for [[User talk:$1|$1]] har blitt sendt til $2. Det kan endres på [[Special:ChangePassword|passordendringssiden]] under innlogging.",
        "newarticle": "(Ny)",
        "newarticletext": "Du har fulgt en lenke til en side som ikke finnes ennå.\nFor å opprette siden, begynn å skrive i boksen under (se [$1 hjelpesiden] for mer informasjon).\nOm du havnet her ved en feil, trykk '''tilbake''' i nettleseren.",
-       "anontalkpagetext": "----\n<em>Dette er en diskusjonsside for en anonym bruker som ikke har opprettet konto enda, eller som ikke bruker den.</em>\nVi er derfor nødt til å bruke den numeriske IP-adressen til å identifisere ham eller henne.\nEn IP-adresse kan være delt mellom flere brukere.\nHvis du er en anonym bruker og opplever å få irrelevante kommentarer rettet mot deg, [[Special:CreateAccount|opprett en konto]] eller [[Special:UserLogin|logg inn]] for å unngå fremtidige forvekslinger med andre anonyme brukere.",
+       "anontalkpagetext": "----\n<em>Dette er en diskusjonsside for en anonym bruker som ikke har opprettet konto enda, eller som ikke bruker den.</em>\nVi er derfor nødt til å bruke den numeriske IP-adressen til å identifisere dem.\nEn IP-adresse kan være delt mellom flere brukere.\nHvis du er en anonym bruker og opplever å få irrelevante kommentarer rettet mot deg, [[Special:CreateAccount|opprett en konto]] eller [[Special:UserLogin|logg inn]] for å unngå fremtidige forvekslinger med andre anonyme brukere.",
        "noarticletext": "Det er for tiden ingen tekst på denne siden.\nDu kan [[Special:Search/{{PAGENAME}}|søke etter denne sidetittelen]] på andre sider,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} søke i relaterte logger],\neller [{{fullurl:{{FULLPAGENAME}}|action=edit}} opprette siden]</span>.",
        "noarticletext-nopermission": "Det er for tiden ingen tekst på denne siden.\nDu kan [[Special:Search/{{PAGENAME}}|søke etter sidens tittel]] blant andre sider, eller <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} søke i relevante logger]</span>, men du har ikke tillatelse til å opprette denne siden.",
        "missing-revision": "Revisjonen #$1 av siden med navnet \"{{FULLPAGENAME}}\" eksisterer ikke.\n\nDette skyldes som regel at en gammel historikklenke er fulgt til en side som er slettet.\nDetaljer kan finnes i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sletteloggen].",
        "edit-gone-missing": "Kunne ikke oppdatere siden fordi den har blitt slettet.",
        "edit-conflict": "Redigeringskollisjon.",
        "edit-no-change": "Redigeringen din ble ignorert fordi det ikke var noen endringer.",
+       "edit-slots-cannot-add": "Følgende {{PLURAL:$1|spalte|spalter}} støttes ikke her: $2.",
+       "edit-slots-cannot-remove": "Følgende {{PLURAL:$1|spalte|spalter}} er påkrevd og kan ikke fjernes: $2.",
+       "edit-slots-missing": "Følgende {{PLURAL:$1|spalte|spalter}} mangler: $2.",
        "postedit-confirmation-created": "Siden har blitt opprettet.",
        "postedit-confirmation-restored": "Siden har blitt gjenopprettet.",
        "postedit-confirmation-saved": "Redigeringen din ble lagret.",
        "defaultmessagetext": "Standard meldingstekst",
        "content-failed-to-parse": "Klarte ikke å tolke innholdet $2 for innholdsmodellen $1: $3",
        "invalid-content-data": "Ugyldig innhold",
-       "content-not-allowed-here": "Innholdsmodellen «$1» er ikke tillatt på siden [[:$2]]",
+       "content-not-allowed-here": "Innholdsmodellen «$1» er ikke tillatt på siden [[:$2]] i spalten «$3»",
        "editwarning-warning": "Ved å forlate siden kan du miste alle endringer du har gjort.\nHvis du er innlogget, kan du slå av denne advarselen under \"{{int:prefs-editing}}\"-avsnittet i dine innstillinger.",
        "editpage-invalidcontentmodel-title": "Innholdsmodellen støttes ikke",
        "editpage-invalidcontentmodel-text": "Innholdsmodellen «$1» støttes ikke.",
        "editpage-notsupportedcontentformat-title": "Innholdsformatet er ikke støttet",
        "editpage-notsupportedcontentformat-text": "Innholdsformatet $1 er ikke støttet av innholdsmodellen $2.",
+       "slot-name-main": "Hoveddel",
        "content-model-wikitext": "wikitekst",
        "content-model-text": "Ren tekst",
        "content-model-javascript": "JavaScript",
        "grant-delete": "Slette sider, revisjoner og logginnlegg",
        "grant-editinterface": "Redigere MediaWiki-navnerommet og JSON for helle nettstedet og i brukernavnerommet",
        "grant-editmycssjs": "Redigere din bruker-CSS/JSON/JavaScript",
-       "grant-editmyoptions": "Rediger dine brukerinnstillinger",
+       "grant-editmyoptions": "Rediger brukerinnstillingene dine og JSON-konfigurasjon",
        "grant-editmywatchlist": "Redigere overvåkningslisten din",
        "grant-editsiteconfig": "Redigere CSS og JavaScript for hele nettstedet og i brukernavnerommet",
        "grant-editpage": "Redigere eksisterende sider",
        "rcfilters-watchlist-edit-watchlist-button": "Rediger listen over sider du overvåker",
        "rcfilters-watchlist-showupdated": "Endringer til sider du ikke har besøkt siden endringene ble gjort vises med <strong>fet</strong> skrift.",
        "rcfilters-preference-label": "Bruk grensesnitt uten JavaScript",
-       "rcfilters-preference-help": "Laster siste endringer uten filtre eller markeringsfunksjonalitet.",
+       "rcfilters-preference-help": "Laster siste endringer uten filtersøk eller markeringsfunksjonalitet.",
        "rcfilters-watchlist-preference-label": "Bruk grensesnitt uten JavaScript",
-       "rcfilters-watchlist-preference-help": "Laster overvåkningslisten uten filtre eller markeringsfunksjonalitet.",
+       "rcfilters-watchlist-preference-help": "Laster overvåkningslisten uten filtersøk eller markeringsfunksjonalitet.",
        "rcfilters-filter-showlinkedfrom-label": "Vis endringer på sider som lenkes fra",
        "rcfilters-filter-showlinkedfrom-option-label": "<strong>Sider som lenkes fra</strong> den valgte siden",
        "rcfilters-filter-showlinkedto-label": "Vis endringer på sider som lenker til",
        "move": "Flytt",
        "movethispage": "Flytt denne siden",
        "unusedimagestext": "Følgende filer eksisterer men er ikke innlagt på noen sider.\nMerk at andre sider kanskje lenker til en fil med en direkte lenke, så filen listes her selv om den faktisk er i bruk.",
+       "unusedimagestext-categorizedimgisused": "Følgende filer eksisterer men inkluderes ikke på noen sider. Kategoriserte bilder anses som brukt til tross for at de ikke inkluderes på noen sider.\nMerk at andre nettsteder kan lenke til en fil med direkte URL, så det kan hende filer listes opp her selv om de blir brukt aktivt.",
        "unusedcategoriestext": "Følgende kategorier finnes, men det er ingen sider i dem.",
        "notargettitle": "Intet mål",
        "notargettext": "Du oppga ikke en målside eller bruker å utføre denne funksjonen på.",
        "blockip": "Blokker {{GENDER:$1|bruker}}",
        "blockiptext": "Bruk skjemaet under for å blokkere skrivetilgangen til en spesifikk IP-adresse eller et brukernavn.\nDette bør kun gjøres for å forhindre vandalisme, og i samsvar med [[{{MediaWiki:Policy-url}}|retningslinjene]].\nSkriv inn en spesifikk grunn nedenfor (for eksempel ved å angi hvilke sider som ble vandalisert).\nDu kan blokkere IP-intervaller med [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]-syntaks; det største tillatte intervallet er /$1 for IPv4 og /$2 for IPv6.",
        "ipaddressorusername": "IP-adresse eller brukernavn",
-       "ipbexpiry": "Varighet:",
        "ipbreason": "Årsak:",
        "ipbreason-dropdown": "*Vanlige blokkeringsgrunner\n** Legger inn feilinformasjon\n** Fjerner innhold fra sider\n** Lenkespam\n** Legger inn vås\n** Truende oppførsel\n** Misbruk av flere kontoer\n** Uakseptabelt brukernavn",
        "ipb-hardblock": "Hindre innloggede brukere i å redigere fra denne IP-adressen",
-       "ipbcreateaccount": "Hindre kontoopprettelse",
-       "ipbemailban": "Forhindre brukeren fra å sende e-post",
+       "ipbcreateaccount": "Kontoopprettelse",
+       "ipbemailban": "Sende e-post",
        "ipbenableautoblock": "Blokker forrige IP-adresse brukt av denne brukeren automatisk, samt alle IP-adresser brukeren forsøker å redigere med i framtiden",
        "ipbsubmit": "Blokker denne brukeren",
        "ipbother": "Annen tid",
        "ipboptions": "2 timer:2 hours,1 dag:1 day,3 dager:3 days,1 uke:1 week,2 uker:2 weeks,1 måned:1 month,3 måneder:3 months,6 måneder:6 months,1 år:1 year,ubestemt:infinite",
        "ipbhidename": "Skjul brukernavn fra endringer og lister",
        "ipbwatchuser": "Overvåk brukerens brukerside og diskusjonsside",
-       "ipb-disableusertalk": "Hindre denne brukeren i å redigere sin egen diskusjonsside mens han/hun er blokkert",
+       "ipb-disableusertalk": "Redigere sin egen diskusjonsside mens man er blokkert",
        "ipb-change-block": "Blokker brukeren på nytt med disse innstillingene",
        "ipb-confirm": "Bekreft blokkering",
        "ipb-sitewide": "Hele nettstedet",
        "ipb-partial": "Delvis",
-       "ipb-type-label": "Type",
        "ipb-pages-label": "Sider",
        "badipaddress": "Ugyldig IP-adresse.",
        "blockipsuccesssub": "Blokkering utført",
        "ipb-blocklist": "Vis gjeldende blokkeringer",
        "ipb-blocklist-contribs": "Bidrag fra {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 igjen",
+       "block-actions": "Handlinger som skal blokkeres:",
+       "block-expiry": "Varighet:",
+       "block-options": "Ekstra valg:",
+       "block-prevent-edit": "Redigering",
+       "block-reason": "Årsak:",
+       "block-target": "Brukernavn eller IP-adresse:",
        "unblockip": "Opphev blokkering",
        "unblockiptext": "Bruk skjemaet under for å gjenopprette skriveadgangen for en tidligere blokkert adresse eller bruker.",
        "ipusubmit": "Opphev blokkering",
        "pageinfo-display-title": "Visningstittel",
        "pageinfo-default-sort": "Standardsorteringsnøkkel",
        "pageinfo-length": "Sidestørrelse (i bytes)",
+       "pageinfo-namespace": "Navnerom",
        "pageinfo-article-id": "Side-ID",
        "pageinfo-language": "Språk for sideinnholdet",
        "pageinfo-language-change": "endre",
index ac8cf13..fadc281 100644 (file)
        "blockip": "Gebruker blokkeren",
        "blockiptext": "Gebruuk dit formulier um n IP-adres of gebrukersnaam te blokkeren. \nt Is bedoeld um vandalisme te veurkoemen en mut akkederen mit t [[{{MediaWiki:Policy-url}}|beleid]]. \nGeef hieronder n reden op (bieveurbeeld op welke ziejen de vandalisme epleegd is).",
        "ipaddressorusername": "IP-adres of gebrukersnaam",
-       "ipbexpiry": "Verlöp nao",
        "ipbreason": "Reden:",
        "ipbreason-dropdown": "*Algemene redens veur t blokkeren\n** verkeerde informasie invoeren\n** ziejen leegmaken\n** ongewunste verwiezingen plaotsen\n** onzinteksten schrieven\n** targerieje of naor gedrag\n** misbruuk vanaof meerdere profielen\n** ongewunste gebrukersnaam",
        "ipb-hardblock": "Veurkoemen dat an-emelde gebrukers vanaof dit IP-adres kunnen bewarken",
        "ipb-unblock": "Deblokkeer n gebruker of IP-adres",
        "ipb-blocklist": "Bekiek bestaonde blokkeringen",
        "ipb-blocklist-contribs": "Biedragen van $1",
+       "block-expiry": "Verlöp nao",
        "unblockip": "Deblokkeer gebruker",
        "unblockiptext": "Gebruuk t onderstaonde formulier um weerumme schrieftoegang te geven an n eblokkeerden gebruker of IP-adres.",
        "ipusubmit": "Blokkering deraof haolen",
index 220481b..76a4237 100644 (file)
        "blockip": "IP-Adress blocken",
        "blockiptext": "Bruuk dat Formular, ene IP-Adress to blocken.\nDit schall blots maakt warrn, Vandalismus to vermasseln, aver jümmer in Övereenstimmen mit uns [[{{MediaWiki:Policy-url}}|Leidlienen]].\nOk den Grund för dat Blocken indregen.",
        "ipaddressorusername": "IP-Adress oder Brukernaam:",
-       "ipbexpiry": "Aflooptiet",
        "ipbreason": "Grund:",
        "ipbreason-dropdown": "* Allgemene Sperrgrünn\n** Tofögen vun verkehrte Infos\n** Leddigmaken vun Sieden\n** Schrifft Tüdelkraam in Sieden\n** Bedroht annere\n** Brukernaam nich akzeptabel",
        "ipbcreateaccount": "Anleggen vun Brukerkonto verhinnern",
        "ipb-unblock": "IP-Adress/Bruker freegeven",
        "ipb-blocklist": "Aktuelle Sperren wiesen",
        "ipb-blocklist-contribs": "Brukerbidrääg för „$1“",
+       "block-expiry": "Aflooptiet",
        "unblockip": "IP-Adress freegeven",
        "unblockiptext": "Bruuk dat Formular, üm en blockte IP-Adress freetogeven.",
        "ipusubmit": "Disse Sperr opheven",
index c42cb12..3cff993 100644 (file)
        "blockip": "{{GENDER:$1|प्रयोगकर्ता}}लाई निषेध गर्ने",
        "blockiptext": "विशेष IP ठेगाना अथवा प्रयोगकर्तालाई रोक लगाउन निम्न प्रपत्र (form) प्रयोग गर्नुहोस्।\nयसो गर्नुको कारण [[{{MediaWiki:Policy-url}}|नीति]] अनुरुप विकिमा गरिने बर्बरताका कार्य रोक्नु मात्र हो।\nविशेष कारण देखाउँदै तलको प्रपत्र भर्नुहोस्(उदाहरण, बर्बरताको कार्य गरिएको पृष्ठ दर्शाउँदै)",
        "ipaddressorusername": "आइपी ठेगाना वा प्रयोगकर्ता नाम :",
-       "ipbexpiry": "सकिने:",
        "ipbreason": "कारण:",
        "ipbreason-dropdown": "*रोक लगाउनुका समान्य कारणहरू\n** झूटो सूचना दिइएको\n** पृष्ठहरूबाट सामाग्रीहरू हटाइएको\n** बाहिरी जालक्षेत्र (sites)सित नचाहिंदो लिङ्क गराइएको \n** पृष्ठहरूमा बकवास/गाली-गलौच हालिएको\n** भय फैलाउने व्यवहार/उत्पीडन (सताउने कार्य)\n** धेरै गलत खाताहरू\n** प्रयोगकर्ता नाम अस्वीकार्य",
        "ipb-hardblock": "यस आई पी ठेगानाबाट प्रवेश गरेका प्रयोगकर्तालाई संपादन गर्न नदिने",
-       "ipbcreateaccount": "खाता  सिर्जना रोक्नुहोस",
-       "ipbemailban": "पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dतालाà¤\88 à¤\87मà¥\87ल à¤ªà¤ à¤¾à¤\89नबाà¤\9f à¤°à¥\8bà¤\95à¥\8dनà¥\87",
+       "ipbcreateaccount": "खाता सिर्जना गर्नुहोस्",
+       "ipbemailban": "à¤\87मà¥\87ल à¤ªà¤ à¤¾à¤\89नà¥\81हà¥\8bसà¥\8d",
        "ipbenableautoblock": "यस प्रयोगकर्ताले प्रयोग गरेको अन्तिम IP ठेगानालाई स्वतः रोक्ने, र पछाड़िका अरु पनि IP ठेगानालाई जहाँबाट तिनीहरुले सम्पादन गर्ने प्रयास गर्छन्।",
        "ipbsubmit": "यो प्रयोगकर्तालाई रोक्नुहोस",
        "ipbother": "अरु समय:",
        "ipboptions": "२ घण्टाहरू:2 hours,१ दिन :1 day,३ दिनहरू:3 days,१ हप्ता:1 week,२ हप्ताहरू:2 weeks,१ महिना:1 month,३ महिनाहरू:3 months,६ महिनाहरू:6 months,१ वर्ष:1 year,अनगिन्ती:infinite",
        "ipbhidename": "प्रयोगकर्ताको नाम सम्पादनबाट र सूचीबाट हटाउने",
        "ipbwatchuser": "यो प्रयोगकर्ताको प्रयपोगकर्ता पृष्ठ र वार्तालाप पृष्ठ हेर्नुहोस्",
-       "ipb-disableusertalk": "यस à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dतालाà¤\88 à¤¨à¤¿à¤·à¥\87धित à¤¸à¤®à¤¯à¤®à¤¾ à¤\86फà¥\8dनà¥\88 à¤µà¤¾à¤°à¥\8dतालाप à¤ªà¥\83षà¥\8dठ à¤¸à¤®à¥\8dपादन à¤\97रà¥\8dन à¤¨à¤¦à¤¿ने",
+       "ipb-disableusertalk": "à¤\86फà¥\8dनà¥\88 à¤µà¤¾à¤°à¥\8dतालाप à¤ªà¥\83षà¥\8dठ à¤¸à¤®à¥\8dपादन à¤\97रà¥\8dने",
        "ipb-change-block": "निम्म स्थितीमा प्रयोगकर्तालाई पुन: निषेध गर्ने",
        "ipb-confirm": "रोक सुनिश्चित गर्ने",
        "badipaddress": "अमान्य IP ठेगाना",
        "ipb-unblock": "प्रयोगकर्ता वा IP माथिको निषेध खारेज गर्ने",
        "ipb-blocklist": "हाल रहेका निषेधहरू हेर्नुहोस्",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}}को लागि योगदान",
+       "block-expiry": "सकिने:",
        "unblockip": "प्रयोगकर्ताको निषेध खारेज गर्नुहोस्",
        "unblockiptext": "IP ठेगाना अथवा प्रयोगकर्तामाथि पहिले लगाइएको रोक फुकुवा गर्न तलको प्रपत्र प्रयोग गर्नुहोस्।",
        "ipusubmit": "यो रोक हटाउने",
index 0c9f61d..7d435bb 100644 (file)
@@ -94,7 +94,8 @@
                        "AHmed Khaled",
                        "Jeroen N",
                        "Bdijkstra",
-                       "KlaasZ4usV"
+                       "KlaasZ4usV",
+                       "Elroy"
                ]
        },
        "tog-underline": "Verwijzingen onderstrepen:",
        "resetpass-abort-generic": "De wachtwoordwijziging is afgebroken door een uitbreiding.",
        "resetpass-expired": "Uw wachtwoord is verlopen. Stel een nieuw wachtwoord om aan te melden.",
        "resetpass-expired-soft": "Uw wachtwoord is verlopen en moet opnieuw worden ingesteld. Kies nu een nieuw wachtwoord of klik op \"{{int:authprovider-resetpass-skip-label}}\" om dit later te doen.",
+       "resetpass-validity": "Uw wachtwoord is ongeldig: $1\n\nStel een nieuw wachtwoord in om aan te melden.",
        "resetpass-validity-soft": "Uw wachtwoord is niet geldig: $1\n\nKies nu een nieuw wachtwoord of klik \"{{int:authprovider-resetpass-skip-label}}\" om het later opnieuw in te stellen.",
        "passwordreset": "Wachtwoord opnieuw instellen",
        "passwordreset-text-one": "Vul dit formulier in om uw wachtwoord opnieuw in te stellen.",
        "blockedtext": "'''Uw gebruikersaccount of IP-adres is geblokkeerd.'''\n\nDe blokkade is uitgevoerd door $1.\nDe opgegeven reden is ''$2''.\n\n* Aanvang blokkade: $8\n* Einde blokkade: $6\n* Bedoeld te blokkeren: $7\n\nU kunt contact opnemen met $1 of een andere [[{{MediaWiki:Grouppage-sysop}}|beheerder]] om de blokkade te bespreken.\nU kunt geen gebruik maken van de functie \"{{int:emailuser}}\", tenzij u een geldig e-mailadres hebt opgegeven in uw [[Special:Preferences|voorkeuren]] en het gebruik van deze functie niet geblokkeerd is.\nUw huidige IP-adres is $3 en het blokkadenummer is #$5.\nVermeld alle bovenstaande gegevens als u ergens op deze blokkade reageert.",
        "autoblockedtext": "Uw IP-adres is automatisch geblokkeerd, omdat het gebruikt is door een andere gebruiker, die geblokkeerd is door $1.\nDe opgegeven reden is:\n\n:''$2''\n\n* Aanvang blokkade: $8\n* Einde blokkade: $6\n* Bedoeld te blokkeren: $7\n\nU kunt contact opnemen met $1 of een andere [[{{MediaWiki:Grouppage-sysop}}|beheerder]] om de blokkade te bespreken.\n\nU kunt geen gebruik maken van de functie \"{{int:emailuser}}\", tenzij u een geldig e-mailadres hebt opgegeven in uw [[Special:Preferences|voorkeuren]], en het gebruik van deze functie niet is geblokkeerd.\n\nUw huidige IP-adres is $3 en het blokkadenummer is #$5.\nVermeld alle bovenstaande gegevens als u ergens op deze blokkade reageert.",
        "systemblockedtext": "Uw gebruikersaccount of IP-adres is automatisch geblokkeerd door MediaWiki.\nDe opgegeven reden is:\n\n:<em>$2</em>\n\n* Aanvang blokkade: $8\n* Einde blokkade: $6\n* Bedoeld te blokkeren: $7\n\nUw huidige IP-adres is $3.\nVermeld alle bovenstaande gegevens als u ergens op deze blokkade reageert.",
+       "actionblockedtext": "U kunt deze handeling niet uitvoeren door een blokkering.",
        "blockednoreason": "geen reden opgegeven",
        "whitelistedittext": "U moet $1 om pagina's te bewerken.",
        "confirmedittext": "U moet uw e-mailadres bevestigen voor u kunt bewerken.\nVoer uw e-mailadres in en bevestig het via uw [[Special:Preferences|voorkeuren]].",
        "edit-gone-missing": "De pagina is niet bijgewerkt.\nDeze lijkt verwijderd te zijn.",
        "edit-conflict": "Bewerkingsconflict.",
        "edit-no-change": "Uw bewerking is genegeerd, omdat er geen wijziging aan de tekst is gemaakt.",
+       "edit-slots-cannot-add": "De volgende {{PLURAL:$1|sleuf wordt|sleuven worden}} hier niet ondersteund: $2.",
+       "edit-slots-cannot-remove": "De volgende {{PLURAL:$1|sleuf is vereist en kan|sleuven zijn vereist en kunnen}} niet worden verwijderd: $2.",
+       "edit-slots-missing": "De volgende {{PLURAL:$1|sleuf ontbreekt|sleuven ontbreken}}: $2.",
        "postedit-confirmation-created": "De pagina is aangemaakt.",
        "postedit-confirmation-restored": "De pagina is hersteld.",
        "postedit-confirmation-saved": "Uw bewerking is opgeslagen.",
        "editpage-invalidcontentmodel-text": "Het inhoudsmodel \"$1\" wordt niet ondersteund.",
        "editpage-notsupportedcontentformat-title": "Inhoudsformaat niet ondersteund",
        "editpage-notsupportedcontentformat-text": "Het inhoudstype $1 wordt niet ondersteund door het inhoudsmodel $2.",
+       "slot-name-main": "Hoofdonderdeel",
        "content-model-wikitext": "wikitekst",
        "content-model-text": "tekst zonder opmaak",
        "content-model-javascript": "JavaScript",
        "blockip": "{{GENDER:$1|Gebruiker}} blokkeren",
        "blockiptext": "Gebruik het onderstaande formulier om schrijftoegang voor een gebruiker of IP-adres in te trekken.\nDoe dit alleen als bescherming tegen vandalisme en in overeenstemming met het [[{{MediaWiki:Policy-url}}|beleid]].\nGeef hieronder een reden op (bijvoorbeeld welke pagina's gevandaliseerd zijn).\nU kunt IP-ranges blokkeren door gebruik te maken van de [https://nl.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]-syntaxis, tot een maximum range van /$1 voor IPv4 en /$2 voor IPv6.",
        "ipaddressorusername": "IP-adres of gebruikersnaam:",
-       "ipbexpiry": "Vervalt (maak een keuze):",
        "ipbreason": "Reden:",
        "ipbreason-dropdown": "*Veelvoorkomende redenen voor blokkades\n** Foutieve informatie invoeren\n** Informatie uit pagina's verwijderen\n** Veelvuldig koppelingen naar externe websites plaatsen\n** Nonsens/gebrabbel in pagina's opnemen\n** Intimiderend gedragen/anderen lastigvallen\n** Van meerdere accounts misbruik maken\n** Een onaanvaardbare gebruikersnaam kiezen",
        "ipb-hardblock": "Aangemelde gebruikers de mogelijkheid ontnemen om vanaf dit IP-adres te bewerken",
-       "ipbcreateaccount": "Registreren accounts blokkeren",
-       "ipbemailban": "Gebruiker de mogelijkheid ontnemen om e-mail te versturen",
+       "ipbcreateaccount": "Accounts aanmaken",
+       "ipbemailban": "E-mail versturen",
        "ipbenableautoblock": "Automatisch het laatste IP-adres van deze gebruiker blokkeren, en alle volgende IP-adressen waarvandaan degene probeert te bewerken",
        "ipbsubmit": "Deze gebruiker blokkeren",
        "ipbother": "Andere duur:",
        "ipboptions": "2 uur:2 hours,1 dag:1 day,3 dagen:3 days,1 week:1 week,2 weken:2 weeks,1 maand:1 month,3 maanden:3 months,6 maanden:6 months,1 jaar:1 year,onbepaald:infinite",
        "ipbhidename": "Gebruikersnaam in bewerkingen en lijsten verbergen",
        "ipbwatchuser": "Gebruikerspagina en overlegpagina van deze gebruiker op de volglijst plaatsen",
-       "ipb-disableusertalk": "Deze gebruiker de mogelijkheid ontnemen om tijdens de blokkade de eigen overlegpagina te bewerken",
+       "ipb-disableusertalk": "De eigen overlegpagina te bewerken",
        "ipb-change-block": "De gebruiker opnieuw blokkeren met deze instellingen",
        "ipb-confirm": "Blokkade bevestigen",
-       "ipb-sitewide": "Op de hele site",
+       "ipb-sitewide": "Van de hele site",
        "ipb-partial": "Gedeeltelijk",
-       "ipb-type-label": "Type",
        "ipb-pages-label": "Pagina's",
        "badipaddress": "Geen geldig IP-adres",
        "blockipsuccesssub": "De blokkering is ingesteld",
        "ipb-blocklist": "Bestaande blokkades bekijken",
        "ipb-blocklist-contribs": "Bijdragen van {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 te gaan",
+       "block-actions": "Te blokkeren handelingen:",
+       "block-expiry": "Vervalt:",
+       "block-options": "Extra opties:",
+       "block-prevent-edit": "Bewerken",
+       "block-reason": "Reden:",
+       "block-target": "Gebruikersnaam of IP-adres:",
        "unblockip": "Gebruiker deblokkeren",
        "unblockiptext": "Gebruik het onderstaande formulier om opnieuw schrijftoegang te geven aan een geblokkeerde gebruiker of IP-adres.",
        "ipusubmit": "Blokkade opheffen",
        "specialpages-group-developer": "Hulpmiddelen voor ontwikkelaars",
        "blankpage": "Lege pagina",
        "intentionallyblankpage": "Deze pagina is bewust leeg gelaten en wordt gebruikt voor benchmarks, enzovoort.",
+       "disabledspecialpage-disabled": "Deze pagina is uitgeschakeld door een systeembeheerder.",
        "external_image_whitelist": " #Laat deze regel onveranderd<pre>\n#Zet hieronder reguliere expressiefragmenten (alleen het deel dat tussen de // staat)\n#Deze worden gehouden tegen de URL's van externe (gehotlinkte) afbeeldingen\n#Als de reguliere expressie van toegang is, wordt een afbeelding weergegeven, anders wordt alleen een koppeling weergegeven\n#Regels die beginnen met \"#\" worden als opmerking behandeld\n#Regels in de witte lijst zijn niet hoofdlettergevoelig.\n\n#Zet alle reguliere expressiefragmenten boven deze regel. Laat deze regel onveranderd</pre>",
        "tags": "Geldige wijzigingslabels",
        "tag-filter": "[[Special:Tags|Labelfilter]]:",
index 1efacdb..e2ba377 100644 (file)
        "blockip": "Blokker {{GENDER:$1|brukar}}",
        "blockiptext": "Bruk skjemaet nedanfor for å blokkere skrivetilgangen frå ei spesifikk IP-adresse eller brukarnamn. Dette bør berre gjerast for å hindre hærverk, og i samsvar med [[{{MediaWiki:Policy-url}}|retningslinene]].",
        "ipaddressorusername": "IP-adresse eller brukarnamn",
-       "ipbexpiry": "Opphøyrstid:",
        "ipbreason": "Årsak:",
        "ipbreason-dropdown": "*Vanlege grunnar for blokkering\n** Legg inn usann tekst/tull\n** Fjernar innhald frå sider\n** Legg inn reklamelenkjer til eksterne nettstader\n** Sjikane/plaging av andre brukarar\n** Misbruk ved hjelp av fleire brukarkontoar\n** Uansvarleg brukarnamn",
        "ipb-hardblock": "Hindre innlogga frå å endre sider frå denne IP-adressa.",
        "ipb-unblock": "Opphev blokkeringa av eit brukarnamn eller ei IP-adresse",
        "ipb-blocklist": "Vis gjeldande blokkeringar",
        "ipb-blocklist-contribs": "Bidrag frå $1",
+       "block-expiry": "Opphøyrstid:",
        "unblockip": "Opphev blokkering",
        "unblockiptext": "Bruk skjemaet nedanfor for å oppheve blokkeringa av ein tidlegare blokkert brukar.",
        "ipusubmit": "Opphev blokkering",
        "pageinfo-category-pages": "Tal sider",
        "pageinfo-category-subcats": "Tal underkategoriar",
        "pageinfo-category-files": "Tal filer",
+       "pageinfo-view-protect-log": "Vis verneloggen til sida.",
        "markaspatrolleddiff": "Merk som patruljert",
        "markaspatrolledtext": "Merk innhaldssida som patruljert",
        "markaspatrolledtext-file": "Merk filversjonen som patruljert",
        "logentry-partialblock-reblock": "$1 {{GENDER:$2|endra}} innstillingar for blokkeringa av {{GENDER:$4|$3}} som hindrar endring av {{PLURAL:$8|sida|sidene}} $7 og som endar $5 $6",
        "logentry-non-editing-block-reblock": "$1 {{GENDER:$2|endra}} innstillingar for blokkeringa av {{GENDER:$4|$3}} for visse handlingar som ikkje er endringar og som endar $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|endra}} blokkeringsinnstillingar for {{GENDER:$4|$3}} med opphøyrstid $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|importerte}} $3 gjennom filopplasting",
+       "logentry-import-upload-details": "$1 {{GENDER:$2|importerte}} $3 gjennom filopplasting ({{PLURAL:$4|éin versjon|$4 versjonar}})",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|importerte}} $3 frå ein annan wiki",
+       "logentry-import-interwiki-details": "$1 {{GENDER:$2|importerte}} $3 frå $5 ({{PLURAL:$4|éin versjon|$4 versjonar}})",
        "logentry-merge-merge": "$1 {{GENDER:$2|fletta}} $3 inn i $4 (versjonar til og med $5)",
        "logentry-move-move": "$1 {{GENDER:$2|flytte}} sida $3 til $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|flytte}} sida $3 til $4 utan å lata etter ei omdirigering",
index 1300676..3d63236 100644 (file)
        "whatlinkshere-hideimages": "$1 seswantšho dihlomaganyo",
        "whatlinkshere-filters": "Dihlotla",
        "blockip": "Thibela mošomiši go tsena",
-       "ipbexpiry": "Fetatšatši:",
        "ipbreason": "Lebaka:",
        "ipbsubmit": "Thiba mošomiši yo",
        "ipbother": "Nako yengwe:",
        "ipboptions": "2 diiri:2 hours,1 letšatši:1 day,3 matšatši:3 days,1 beke:1 week,2 dibeke:2 weeks,1 kgwedi:1 month,3 digkwedi:3 months,6 dikgwedi:6 months,1 ngwaga:1 year,ga efele:infinite",
+       "block-expiry": "Fetatšatši:",
        "ipblocklist": "Bašumiši bao bathibilwego(''blocked'')",
        "ipblocklist-submit": "Fetleka",
        "emailblock": "e-mail e thibilwe",
index 1195724..3634caf 100644 (file)
        "blockip": "Blocar l’{{GENDER:$1|utilizaire|utilizaira}}",
        "blockiptext": "Utilizatz lo formulari çaijós per blocar las temptativas de modificacion a partir d'una adreça IP especifica o d'un nom d'utilizaire.\nUna tala mesura deuriá pas èsser presa pas que per empachar lo vandalisme e en acòrd amb las [[{{MediaWiki:Policy-url}}|règlas intèrnas]].\nDonatz çaijós un motiu precís (per exemple en citant las paginas que son estadas vandalizadas).\nPodètz blocar de plajas d’adreças IP en utilizant la sintaxi [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] ; la mai granda plaja autorizada es /$1 per IP v4 e /$2 per IP v6.",
        "ipaddressorusername": "Adreça IP o nom d’utilizaire :",
-       "ipbexpiry": "Durada del blocatge :",
        "ipbreason": "Motiu :",
        "ipbreason-dropdown": "* Motius de blocatge mai frequents\n** Insercion d’informacions faussas\n** Supression injustificada de contengut de las paginas\n** Insercion repetida de ligams extèrnes publicitaris (spam)\n** Insercion de contengut sens cap de sens e de bordilhas dins las paginas\n** Temptativa d’intimidacion o agarriment\n** Abús d’utilizacion de comptes multiples\n** Nom d’utilizaire inacceptable, injuriós o difamant",
        "ipb-hardblock": "Empachar los utilizaires connectats de modificar en utilizant aquesta adreça IP",
        "ipb-blocklist": "Vejatz los blocatges existents",
        "ipb-blocklist-contribs": "Contribucions per {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 restant",
+       "block-expiry": "Durada del blocatge :",
        "unblockip": "Desblocar un utilizaire o una adreça IP",
        "unblockiptext": "Utilizatz lo formulari çaijós per restablir l'accès en escritura\na partir d'una adreça IP precedentament blocada.",
        "ipusubmit": "Suprimir aqueste blocatge",
index 796a8c0..3bc1673 100644 (file)
        "blockip": "{{GENDER:$1|ଜଣ ସଭ୍ୟଙ୍କୁ}} ଅଟକାନ୍ତୁ",
        "blockiptext": "ଏକ ନିର୍ଦିଷ୍ଟ IP ଠିକଣା ବା ବ୍ୟବହାରକାରୀଙ୍କ ଲେଖିବା ସୁବିଧାକୁ ବାରାଁ କରିବା ନିମନ୍ତେ ଏହି ତଳ ଫର୍ମଟି ବ୍ୟବହାର କରନ୍ତୁ ।\nଏହା କେବଳ ଅପବ୍ୟବହାରକୁ ରୋକିବା ନିମନ୍ତେ କରାଯାଇଥାଏ, ଏହା [[{{MediaWiki:Policy-url}}|ନୀତି]] ଅନୁସାରେ କରାଯାଇଥାଏ ।\nଏହା ତଳେ ଏକ ନିର୍ଦିଷ୍ଟ କାରଣ ଦିଅନ୍ତୁ (ଯଥା, ଯେଉଁସବୁ ପୃଷ୍ଠାରେ କିଛି ପ୍ରକାରର ଅପବ୍ୟବହାର କରାଯାଇଛି) ।",
        "ipaddressorusername": "ବ୍ୟବହାରକାରୀଙ୍କର IP ଠିକଣା ବା ଇଉଜର ନାମ:",
-       "ipbexpiry": "ମିଆଦ:",
        "ipbreason": "କାରଣ:",
        "ipbreason-dropdown": "*ସାଧାରଣ ଅଟକ କାରଣ\n** ଭୁଲ ବିବରଣୀ ଦେବା\n** ପୃଷ୍ଠାରୁ ବିବରଣୀ କାଢିବା\n** ଅନନୁମୋଦିତ ବାହାର ସାଇଟର ଲିଙ୍କ ସ୍ପାମ କରିବା\n** ଅଯଥା କଥା ପୃଷ୍ଠାରେ ପୁରାଇବା\n** ଧମକାଣି/ଅପମାନ\n** ଏକାଧିକ ଖାତାରେ ଅସଦାଆଚରଣ\n** ଗ୍ରହଣ ଅଯୋଗ୍ୟ ଇଉଜର ନାମ",
        "ipb-hardblock": "ଏହି IP ଠିକଣାରୁ ଲଗ ଇନ କରିଥିବା ସଭ୍ୟମାନଙ୍କୁ ସମ୍ପାଦନା କରିବାରୁ ବାଟ ଓଗାଳନ୍ତୁ",
        "ipb-unblock": "ଏକ ଇଉଜର ନାମ ବା IP ଠିକଣାକୁ ବାସନ୍ଦରୁ ମୁକୁଳାଇବେ",
        "ipb-blocklist": "ଏବେ ଥିବା ଅଟକମାନ ଦେଖାନ୍ତୁ",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} ପାଇଁ ଅବଦାନ",
+       "block-expiry": "ମିଆଦ:",
        "unblockip": "ବାସନ୍ଦ ହୋଇଥିବା ସଭ୍ୟଙ୍କୁ ମୁକୁଳାଇବେ",
        "unblockiptext": "ଆଗରୁ ବାସନ୍ଦ କରାଯାଇଥିବା ଇଉଜର ନାମ ବା IP ଠିକଣା ମୁକୁଳାଇବା ନିମନ୍ତେ ତଳେ ଥିବା ଫର୍ମ ବ୍ୟବହାର କରନ୍ତୁ ।",
        "ipusubmit": "ଏହି ବାସନ୍ଦଟିକୁ ଉଠାଇଦେବେ",
index 4b6c1ba..fbd2266 100644 (file)
        "block": "Архайæгыл хъоды кæнын",
        "blockip": "Архайæджы бахъоды кæнын",
        "ipaddressorusername": "IP адрис кæнæ фæсномыг:",
-       "ipbexpiry": "Фæуыны афон:",
        "ipbreason": "Аххос:",
        "ipbsubmit": "Бахъоды кæн ацы архайæджы",
        "ipbother": "Æндæр рæстæг:",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] хъодыгонд æрцыд.<br />\nКæс [[Special:Ipblocklist|хъодыгонд IP-адристы номхыгъд]].",
        "ipb-blocklist": "Актуалон хъоды равдис",
        "ipb-blocklist-contribs": "{{grammar:genitive|$1}} бавæрд",
+       "block-expiry": "Фæуыны афон:",
        "blocklist": "Хъодыгонд архайджытæ",
        "ipblocklist": "Хъодыгонд архайджытæ",
        "ipblocklist-legend": "Хъодыгонд архайæджы ацагур",
index daef015..b7fa99b 100644 (file)
        "unblock": "ਵਰਤੋਂਕਾਰ 'ਤੇ ਲੱਗੀ ਪਾਬੰਦੀ ਹਟਾਓ",
        "blockip": "{{GENDER:$1|ਵਰਤੋਂਕਾਰ}} 'ਤੇ ਰੋਕ ਲਾਉ",
        "ipaddressorusername": "IP ਐਡਰੈਸ ਜਾਂ ਯੂਜ਼ਰ ਨਾਂ:",
-       "ipbexpiry": "ਮਿਆਦ:",
        "ipbreason": "ਕਾਰਨ:",
        "ipbcreateaccount": "ਖਾਤਾ ਬਣਾਉਣ 'ਤੇ ਰੋਕ ਲਾਓ",
        "ipbemailban": "ਵਰਤੋਂਕਾਰ ਉੱਤੇ ਈਮੇਲ ਭੇਜਣ ਦੀ ਰੋਕ ਲਾਓ",
        "ipb-unblock": "ਇੱਕ ਯੂਜ਼ਰ ਨਾਂ ਜਾਂ IP ਐਡਰੈੱਸ ਅਣ-ਬਲਾਕ ਕਰੋ",
        "ipb-blocklist": "ਮੌਜੂਦਾ ਪਾਬੰਦੀਆਂ ਵੇਖੋ",
        "ipb-blocklist-contribs": "$1 ਦੇ ਯੋਗਦਾਨ",
+       "block-expiry": "ਮਿਆਦ:",
        "unblockip": "ਵਰਤੋਂਕਾਰ ਤੋਂ ਰੋਕ ਹਟਾਉ",
        "ipusubmit": "ਇਹ ਪਾਬੰਦੀ ਹਟਾਓ",
        "unblocked": "[[User:$1|$1]] ਪਾਬੰਦੀ ਮੁਕਤ ਹੋ ਚੁੱਕਾ ਹੈ",
index 9f844e3..b0f7551 100644 (file)
        "blockip": "Sabatan ya ing talagamit",
        "blockiptext": "Gamitan me ing form king lalam ba yang sabatan king pamaglub\ning particular a IP address o lagyu ning talagamit (username).\nMalyari mung gawan iti bang milisya king pamanyira (vandalism),\nat agpang king [[{{MediaWiki:Policy-url}}|patakaran]].\nIsulat me ing particular a sangkan king lalam (alimbawa, sabyan\nmu nung sanu retang bulung a sinira da).",
        "ipaddressorusername": "IP Address o lagyungtalagamit (username):",
-       "ipbexpiry": "Mayari:",
        "ipbreason": "Sangkan:",
        "ipbreason-dropdown": "*Keraklan a sangkan king pamaniabat\n** Mangibiling e tutung impormasiun\n** Maglakong laman kareng bulung\n** Maniuglung spam\n** Manyingit alang kabaldugan a sulat o e dapat misulat kareng bulung\n** Mamatakut o maniaul\n** Mamabusu kareng dakal a account\n** E katanggap-tanggap a lagyungtalagamit (username)",
        "ipbcreateaccount": "Sabatan ing pamaglalang account",
        "ipb-unblock-addr": "Ilako ya pangasabat ing $1",
        "ipb-unblock": "Ilako ya pangasabat ing lagyungtalagamit (username) o IP address",
        "ipb-blocklist": "Lon la reng kasalungsungang makasabat",
+       "block-expiry": "Mayari:",
        "unblockip": "Ilako ya pangasabat ing talagamit",
        "unblockiptext": "Gamitan me ing form king lalam ba mung ibalik ing paintulut a sumulat (write access) king IP address o lagyungtalagamit a sadiang makasabat.",
        "ipusubmit": "Ilako ya pangasabat ing address a ini",
index c78e8a7..9d9a58b 100644 (file)
        "resetpass-abort-generic": "Zmiana hasła została przerwana przez rozszerzenie.",
        "resetpass-expired": "Twoje hasło wygasło. Proszę ustawić nowe hasło do logowania.",
        "resetpass-expired-soft": "Twoje hasło wygasło i musi zostać zmienione. Wybierz nowe hasło albo kliknij na „{{int:authprovider-resetpass-skip-label}}”, aby zmienić je później.",
+       "resetpass-validity": "Twoje hasło jest nieprawidłowe: $1\n\nUstaw nowe hasło aby się zalogować.",
        "resetpass-validity-soft": "Twoje hasło jest niepoprawne: $1\n\nWybierz nowe hasło albo kliknij „{{int:authprovider-resetpass-skip-label}}”, aby zmienić je później.",
        "passwordreset": "Wyczyść hasło",
        "passwordreset-text-one": "Wypełnij ten formularz, aby otrzymać tymczasowe hasło na email.",
        "blockedtext": "<strong>Twoje konto lub adres IP zostały zablokowane.</strong>\n\nBlokada została nałożona przez $1.\nPodany powód to: <em>$2</em>.\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 „{{int:emailuser}}”, 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:<em>$2</em>\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 „{{int:emailuser}}”, 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.",
        "systemblockedtext": "Twoja nazwa użytkownika lub adres IP zostały automatycznie zablokowane przez MediaWiki.\nPodany powód to:\n\n:<em>$2</em>\n\n* Początek blokady: $8\n* Wygaśnięcie blokady: $6\n* Zamierzano zablokować: $7\n\nTwój obecny adres IP to $3.\nProsimy o dołączenie powyższych szczegółów w jakichkolwiek zadawanych pytaniach.",
+       "actionblockedtext": "Została Ci zablokowana możliwość wykonania tej czynności.",
        "blockednoreason": "nie podano przyczyny",
        "whitelistedittext": "Musisz $1, by edytować strony.",
        "confirmedittext": "Edytowanie jest możliwe dopiero po zweryfikowaniu adresu e‐mail.\nPodaj adres e‐mail i potwierdź go w swoich [[Special:Preferences|ustawieniach użytkownika]].",
        "blockip": "Zablokuj {{GENDER:$1|użytkownika|użytkowniczkę}}",
        "blockiptext": "Użyj poniższego formularza do zablokowania możliwości edycji spod określonego adresu IP lub konkretnemu użytkownikowi.\nBlokować należy jedynie po to, by zapobiec wandalizmom, zgodnie z [[{{MediaWiki:Policy-url}}|przyjętymi zasadami]].\nPodaj powód (np. umieszczając nazwy stron, na których dopuszczono się wandalizmu).\nMożesz zablokować zakres adresów stosując składnię [https://pl.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; najszerszym dozwolonym zakresem jest /$1 dla IPv4 i /$2 dla IPv6.",
        "ipaddressorusername": "Adres IP lub nazwa użytkownika:",
-       "ipbexpiry": "Czas trwania:",
        "ipbreason": "Powód:",
        "ipbreason-dropdown": "*Najczęstsze przyczyny blokad\n** Ataki na innych użytkowników\n** Naruszenie praw autorskich\n** Niedozwolona nazwa użytkownika\n** Open proxy lub Tor\n** Spamowanie\n** Usuwanie treści stron\n** Wprowadzanie fałszywych informacji\n** Wulgaryzmy\n** Wypisywanie bzdur na stronach",
        "ipb-hardblock": "Zablokuj możliwość edytowania przez zalogowanych użytkowników z tego adresu IP.",
-       "ipbcreateaccount": "Zapobiegnij utworzeniu konta",
-       "ipbemailban": "Zablokuj możliwość wysyłania e‐mailów",
+       "ipbcreateaccount": "Utworzenie konta",
+       "ipbemailban": "Wysyłanie e‐mailów",
        "ipbenableautoblock": "Zablokuj ostatni adres IP tego użytkownika i automatycznie wszystkie kolejne, z których będzie próbował edytować",
        "ipbsubmit": "Zablokuj użytkownika",
        "ipbother": "Inny okres",
        "ipboptions": "2 godziny:2 hours,1 dzień:1 day,3 dni:3 days,1 tydzień:1 week,2 tygodnie:2 weeks,1 miesiąc:1 month,3 miesiące:3 months,6 miesięcy:6 months,1 rok:1 year,na zawsze:infinite",
        "ipbhidename": "Ukryj nazwę użytkownika w edycjach i listach",
        "ipbwatchuser": "Obserwuj stronę osobistą i stronę dyskusji tego użytkownika",
-       "ipb-disableusertalk": "Zablokuj możliwość edytowania przez tego użytkownika własnej strony dyskusji w czasie trwania blokady.",
+       "ipb-disableusertalk": "Edytowanie przez tego użytkownika swojej strony dyskusji",
        "ipb-change-block": "Zmień ustawienia blokady",
        "ipb-confirm": "Potwierdzam blokadę",
        "ipb-sitewide": "Globalna",
        "ipb-partial": "Częściowa",
-       "ipb-type-label": "Rodzaj",
        "ipb-pages-label": "Strony",
        "badipaddress": "Niepoprawny adres IP",
        "blockipsuccesssub": "Zablokowanie powiodło się",
        "ipb-blocklist": "Zobacz istniejące blokady",
        "ipb-blocklist-contribs": "Wkład {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "pozostało $1",
+       "block-actions": "Czynności, które zablokować:",
+       "block-expiry": "Czas trwania:",
+       "block-options": "Opcje dodatkowe:",
+       "block-prevent-edit": "Edytowanie",
+       "block-reason": "Powód:",
+       "block-target": "Nazwa użytkownika lub adres IP:",
        "unblockip": "Odblokuj użytkownika",
        "unblockiptext": "Użyj poniższego formularza, by przywrócić możliwość edycji z wcześniej zablokowanego adresu IP lub użytkownikowi.",
        "ipusubmit": "Odblokuj",
        "specialpages-group-developer": "Narzędzia dewelopera",
        "blankpage": "Pusta strona",
        "intentionallyblankpage": "Tę stronę umyślnie pozostawiono pustą.",
+       "disabledspecialpage-disabled": "Ta strona została wyłączona przez administratora systemu.",
        "external_image_whitelist": " #Pozostaw tę linię dokładnie tak, jak jest.<pre>\n#Wstaw poniżej fragmenty wyrażeń regularnych (tylko to, co znajduje się między //).\n#Wyrażenia te zostaną dopasowane do adresów URL zewnętrznych (bezpośrednio linkowanych) grafik.\n#Dopasowane adresy URL zostaną wyświetlone jako grafiki, w przeciwnym wypadku będzie pokazany jedynie link do grafiki.\n#Linie zaczynające się od # są traktowane jako komentarze.\n#We wpisach ma znaczenie wielkość znaków.\n\n#Wstaw wszystkie deklaracje wyrażeniami regularnymi poniżej tej linii. Pozostaw tę linię dokładnie tak, jak jest.</pre>",
        "tags": "Znaczniki zmian",
        "tag-filter": "Filtr [[Special:Tags|znaczników]]:",
        "authmanager-authn-no-local-user": "Żaden użytkownik nie korzysta z tych danych.",
        "authmanager-authn-no-local-user-link": "Podane poświadczenia są prawidłowe, ale nie odpowiadają żadnemu użytkownikowi na tej wiki. Zaloguj się w inny sposób lub utwórz nowe konto, aby móc połączyć poprzednie poświadczenie z tym kontem.",
        "authmanager-authn-autocreate-failed": "Automatyczne tworzenie lokalnego konta nie powiodło się: $1",
+       "authmanager-change-not-supported": "Podane dane logowania nie mogą być zmienione, ponieważ nic nie będzie ich używać.",
        "authmanager-create-disabled": "Utworzenie konta jest wyłączone.",
        "authmanager-create-from-login": "Aby utworzyć konto, wypełnij odpowiednie pola.",
        "authmanager-create-not-in-progress": "Tworzenie konta nie jest wykonywane lub dane sesji zostały utracone. Zacznij od początku.",
        "authmanager-create-no-primary": "Podanych danych uwierzytelniających nie można użyć do utworzenia konta.",
+       "authmanager-link-no-primary": "Podanych danych uwierzytelniających nie można użyć do powiązania konta.",
        "authmanager-link-not-in-progress": "Tworzenie konta nie jest wykonywane lub dane sesji zostały utracone. Zacznij od początku.",
        "authmanager-authplugin-setpass-failed-title": "Zmiana hasła nie powiodła się",
        "authmanager-authplugin-setpass-failed-message": "Wtyczka do uwierzytelniania uniemożliwiła zmianę hasła.",
        "linkaccounts-submit": "Połącz konta",
        "unlinkaccounts": "Odłącz konta",
        "unlinkaccounts-success": "Konta zostały odłączone.",
+       "authenticationdatachange-ignored": "Zmiana danych uwierzytelniających nie została obsłużona. Być może nie skonfigurowano dostawcy.",
        "userjsispublic": "Uwaga: Podstrony z kodem JavaScript są widoczne publicznie i nie powinny zawierać poufnych danych.",
        "userjsonispublic": "Uwaga: podstrony JSON nie powinny zawierać poufnych danych, ponieważ są dostępne dla innych użytkowników.",
        "usercssispublic": "Uwaga: Podstrony z kodem CSS są widoczne publicznie i nie powinny zawierać poufnych danych.",
index e809faf..077d77e 100644 (file)
        "blockip": "Bloché l'{{GENDER:$1|utent}}",
        "blockiptext": "Che a deuvra ël mòdulo ëd domanda 'd blocagi ambelessì sota për bloché l'acess con drit dë scritura da chèich adrëssa IP o stranòm.<br />\nËs blocagi-sì as dev dovresse MACH për evité dij comportament vandàlich, ën strèita osservansa ëd tùit ij prinsipi dle [[{{MediaWiki:Policy-url}}|régole ëd {{SITENAME}}]].<br />\nËl blocagi a peul ën gnun-a manera esse dovrà për dle question d'ideologìa.\n\nChe a scriva codì che st'adrëssa IP o së stranòm a dev second chiel esse blocà (pr'esempi, che a buta ij tìtoj ëd pàgine che a l'abio già patì dj'at vandàlich da cost'adrëssa IP o së stranòm).",
        "ipaddressorusername": "Adrëssa IP ò stranòm",
-       "ipbexpiry": "Fin-a al",
        "ipbreason": "Rason:",
        "ipbreason-dropdown": "*Motiv sòlit për ij blocagi\n** Avej butà d'anformassion fàosse\n** Avej gavà dël contnù da 'nt le pàgine\n** Avèj butà dla rumenta porcherìa coma anliure d'areclam\n** Avèj butà test sensa sust ant le pàgine\n** Avèj un deuit da bërsach con la gent\n** Avèj dovrà vàire cont fòra dij deuit\n** Stranòm ch'as peul nen acetesse",
        "ipb-hardblock": "Proibì a j'utent intrà ant ël sistema ëd modifiché da cost'adrëssa IP",
        "ipb-unblock": "Dësbloché n'utent ò n'adrëssa IP",
        "ipb-blocklist": "Vardé ij blocagi ativ",
        "ipb-blocklist-contribs": "Contribussion për {{GENDER:$1|$1}}",
+       "block-expiry": "Fin-a al",
        "unblockip": "Dësbloché n'utent",
        "unblockiptext": "Che a deuvra ël formolari ambelessì-sota për deje andré ël drit dë scritura a n'adrëssa IP o në stranòm che a l'era stàit blocà.",
        "ipusubmit": "Gavé ës blocagi",
index c5d43e6..8228b25 100644 (file)
        "blockip": "اس ورتن والے نو روکو",
        "blockiptext": "تھلے دتا گیا فارم ورتو کسے خاص آئی پی پتے یا ورتن ناں  نوں لکھن روک لئی۔ ایہ صرف ونڈالزم توں بچن لئی اے، تے [[{{MediaWiki:Policy-url}}|policy]] دے نال اے۔ \nتھلے خاص وجہاں دسو (ادھارن لئی خاص صفیاں دی دس دیو جیہڑے خراب کیتے گۓ۔)",
        "ipaddressorusername": "آئی پی پتہ یا ورتن آلے دا ناں:",
-       "ipbexpiry": "انت:",
        "ipbreason": "وجہ:",
        "ipbreason-dropdown": "*روکن دیاں عام وجہاں\n** غلط جانکاری دینا\n** صفیاں توں مواد مٹانا\n** بارلیاں ویب سائٹاں نال غلط جوڑ جوڑنا\n** خراب / احمفانہ مواد صفیاں چ پانا\n** دوجیاں نوں ڈرانا\n** کھاتیاں نوں خراب کرنا\n** ناں منیا جان والا ورتن ناں ورتنا",
        "ipb-hardblock": "لاگ ان ہووے ورتن والیاں نوں  ایس آئی پی پتے نوں ورتن توں روکو",
        "ipb-blocklist": "روکیاں گياں نوں ویکھو",
        "ipb-blocklist-contribs": "$1 دے کم",
        "ipb-blocklist-duration-left": "سجے",
+       "block-expiry": "انت:",
        "unblockip": "ورتن آلے تے روک بند کرو",
        "unblockiptext": "تھلے دتا گیا فارم ورتو لکھن دی ازادی لین لئی پہلاں توں روکے آئی پی پتے  یا ورتن ناں لئی۔",
        "ipusubmit": "ایس روک نوں ہٹاؤ",
index 8669262..f8c4cf5 100644 (file)
        "whatlinkshere-hideimages": "$1 συνδέσμαι εικονίων",
        "whatlinkshere-filters": "Φίλτρα",
        "blockip": "Ασπάλιγμαν τη χρήστε",
-       "ipbexpiry": "Τέλεμαν:",
        "ipbreason": "Αιτία:",
        "ipbsubmit": "Ασπάλισον τον χρήστεν",
        "ipbother": "Άλλον ώρα:",
        "badipaddress": "Άχρηστον IP",
        "blockipsuccesssub": "Τ' ασπάλιγμαν εγέντον",
        "ipb-edit-dropdown": "Άλλαξον αιτίας ασπαλιγματί",
+       "block-expiry": "Τέλεμαν:",
        "ipblocklist": "Ασπαλιγμένα λογαρίας",
        "ipblocklist-submit": "Εύρον",
        "infiniteblock": "άπειρον",
index 81c67e7..bdc800a 100644 (file)
        "blockip": "Blōkis tērpautajan",
        "blockiptext": "Tērpaus zemmaisin fōrmularan, kāi blōkilai enpeisāsenes mazīngiskwan iz kōnkretai IP adressin anga kōnkretasmu tērpautajan.\nBlōkitun prawerru tēr kāi ebsergītun ezze wandalisman be preitarīngi sen [[{{MediaWiki:Policy-url}}|pōlitikin]].\nPadāis brewīnslin zemmais (p. endījanei tītelins stēisan wandalizītan pāusan).",
        "ipaddressorusername": "IP adressi anga tērpautajas pabilisnā:",
-       "ipbexpiry": "Blōkisenis wanginna:",
        "ipbreason": "Brewīnsli:",
        "ipbcreateaccount": "Ebsergēis ezze rekkenas teīkseņu",
        "ipbemailban": "Ebsergēis ezze e-mailas tengīnsnas mazīngiskwai",
        "ipb-unblock": "Etblōkis tērpautajas pabilīsnan anga IP adressin",
        "ipb-blocklist": "Wīdais ekzistīntins blōkisenins",
        "ipb-blocklist-contribs": "$1 endīja",
+       "block-expiry": "Blōkisenis wanginna:",
        "unblockip": "Etblōkis tērpautajan",
        "unblockiptext": "Tērpaus zemmaisin fōrmularan, kāi etwārtai wartīnlai redigīsnas mazīngiskwan iz ānkstais blōkitan IP adressin anga blōkitasmu tērpautajan.",
        "ipusubmit": "Etblōkis šan adressin",
index 92a0d7a..198c30c 100644 (file)
@@ -10,7 +10,8 @@
                        "Matma Rex",
                        "Ibrahim khashrowdi",
                        "Baloch Khan",
-                       "Fitoschido"
+                       "Fitoschido",
+                       "Amjad Khan"
                ]
        },
        "tog-underline": "کرښنې تړنې:",
        "blockip": "په {{GENDER:$1|کارن}} بنديز لگول",
        "blockiptext": "د لاندينۍ فورمې په کارولو سره تاسې يو کارن او يا هم يوې ځانگړې IP پتې باندې د ليکلو بنديزونه لگولی شی.  \nدا بايد د پوهې سره دښمنۍ او ورانکارۍ د مخنيولو په تکل او د پښتو ويکيپېډيا د [[{{MediaWiki:Policy-url}}|تگلارې]] سره سم پلي شي.\nد بنديز لپاره مو يو ځانگړی دليل لاندې روښانه کړئ (د ساري په توگه، هغه مخونو ښکاره کول چې ورانکاري په کې ترسره شوې).\n[https://ps.wikipedia.org/wiki/Classless_Inter-Domain_Routing سي ډي اي ار] نخښه; the آر اجازه ورکول رینج دی /$1 لپاره د اي پي وي ۴ او /$2 لپاره د اي پي وي ۶.",
        "ipaddressorusername": "IP پته يا کارن نوم",
-       "ipbexpiry": "د پای نېټه:",
        "ipbreason": "سبب:",
        "ipbreason-dropdown": "*د بنديز ټولگړي سببونه\n** د ناسمو مالوماتو خپرول\n** د مخونو د مېنځپانگې ړنگول\n** په مخونو کې د باندنيو وېبځايونو بېکاره سپام تړنې ځايول\n** په مخونو کې بې مانا/چټياټ ځايول\n** په مخونو کې ناندرۍ راپارېدنې/د تاوتريخوالي خپرېدو ته هڅول\n** د گڼ شمېر گڼونونو نه ناوړه گټه اخيستل\n** نه مننونکی کارن-نوم کارول",
        "ipb-hardblock": "د همدغې IP پتې کارونکو کارنانو مخنيوی کول",
        "ipb-blocklist": "شته بنديزونه کتل",
        "ipb-blocklist-contribs": "د {{GENDER:$1|$1}} ونډې",
        "ipb-blocklist-duration-left": "$1 پاتې دی",
+       "block-expiry": "د پای نېټه:",
        "unblockip": "کارن له بنديزه وېستل",
        "unblockiptext": "د لاندې فورمې په کارولو سره يو بنديز شوي کارن يا آی پي پتې ته د ليکلو لاسرسی ورکولی شی.",
        "ipusubmit": "دا بنديز ليرې کول",
index 714343d..c4c8ab4 100644 (file)
        "retypenew": "Reintroduza a nova senha",
        "resetpass_submit": "Definir senha e entrar",
        "changepassword-success": "Sua senha foi alterada com sucesso!",
-       "changepassword-throttled": "Você realizou demasiadas tentativas de se registrar.\nPor favor, aguarde $1 antes de tentar novamente.",
+       "changepassword-throttled": "Você realizou muitas tentativas de se registrar.\nPor favor, aguarde $1 antes de tentar novamente.",
        "botpasswords": "Senhas de robôs",
        "botpasswords-summary": "<em>Senhas de robôs</em> permitem acesso a uma conta de usuário via a API sem usar as credenciais da conta para autenticação. Os direitos disponíveis do usuário ao se autenticar com uma senha bot podem ser restritos.\n\nSe você não sabe porque você poderia precisar fazer isso, provavelmente você não deveria fazer. Ninguém jamais deve perguntar a você para criar uma dessas e fornecê-la.",
        "botpasswords-disabled": "Senhas de robôs estão desabilitadas.",
        "resetpass-abort-generic": "Uma extensão cancelou a alteração da senha.",
        "resetpass-expired": "Sua senha expirou. Por favor insira uma nova senha para autenticar-se.",
        "resetpass-expired-soft": "Sua senha expirou e precisa ser alterada. Escolha uma nova senha agora ou clique em \"{{int:authprovider-resetpass-skip-label}}\" para alterá-la mais tarde.",
+       "resetpass-validity": "A sua senha não é válida: $1\n\nDefina uma senha nova para poder entrar, por favor.",
        "resetpass-validity-soft": "Sua senha não é válida: $1\n\nPor favor escolha uma nova senha agora, ou clique \"{{int:authprovider-resetpass-skip-label}}\" para mudar depois.",
        "passwordreset": "Redefinir senha",
        "passwordreset-text-one": "Complete este formulário para trocar sua senha.",
        "blockedtext": "<strong>O seu nome de usuário ou endereço IP foram bloqueados.</strong>\n\nO bloqueio foi realizado por $1.\nO motivo apresentado foi <em>$2</em>.\n\n* Início do bloqueio: $8\n* Expiração do bloqueio: $6\n* Destinatário do bloqueio: $7\n\nPode contactar $1 ou outro [[{{MediaWiki:Grouppage-sysop}}|administrador]] para discutir o bloqueio.\nNote que para utilizar a funcionalidade \"{{int:emailuser}}\" precisa de ter um endereço de e-mail válido nas suas [[Special:Preferences|preferências]] e de não lhe ter sido bloqueado o uso desta funcionalidade.\nO seu endereço IP neste momento é $3 e a identificação (ID) do bloqueio é #$5.\nInclua todos os detalhes acima em quaisquer contatos relacionados com este bloqueio, por favor.",
        "autoblockedtext": "O seu endereço IP foi bloqueado de forma automática porque foi utilizado recentemente por outro usuário, o qual foi bloqueado por $1.\nO motivo apresentado foi:\n\n:<em>$2</em>\n\n* Início do bloqueio: $8\n* Expiração do bloqueio: $6\n* Destinatário do bloqueio: $7\n\nPode contactar $1 ou outro [[{{MediaWiki:Grouppage-sysop}}|administrador]] para discutir o bloqueio.\n\nNote que para utilizar a funcionalidade \"{{int:emailuser}}\" precisa de ter um endereço de e-mail válido nas suas [[Special:Preferences|preferências]] e de não lhe ter sido bloqueado o uso desta funcionalidade.\n\nO seu endereço IP neste momento é $3 e a identificação (ID) do bloqueio é #$5.\nInclua todos os detalhes acima em quaisquer contatos relacionados com este bloqueio, por favor.",
        "systemblockedtext": "O seu nome de usuário ou endereço IP foram bloqueados automaticamente pelo MediaWiki.\nO motivo fornecido é:\n\n:<em>$2</em>\n\n* Início do bloqueio: $8\n* Expiração do bloqueio: $6\n* Destinatário do bloqueio: $7\n\nO seu endereço IP atual é $3.\nInclua todos os detalhes acima em quaisquer contatos sobre este assunto, por favor.",
+       "actionblockedtext": "Você foi impedido de executar esta ação.",
        "blockednoreason": "sem motivo especificado",
        "whitelistedittext": "Você precisa $1 para poder editar páginas.",
        "confirmedittext": "Você precisa confirmar o seu endereço de e-mail antes de começar a editar páginas.\nPor favor, introduza um e valide-o através das suas [[Special:Preferences|preferências de usuário]].",
        "blockip": "Bloquear {{GENDER:$1|usuário|usuária|usuário(a)}}",
        "blockiptext": "Utilize o formulário abaixo para bloquear o acesso à escrita de um endereço específico de IP ou nome de usuário(a).\nIsto só deve ser feito para prevenir vandalismo, e de acordo com a [[{{MediaWiki:Policy-url}}|política]]. Preencha com um motivo específico a seguir (por exemplo, citando páginas que sofreram vandalismo).\nVocê pode bloquear os intervalos de endereços IP com a sintaxe [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] A maior faixa permitida é de $1 para IPv4 $2 para IPv6.",
        "ipaddressorusername": "Endereço de IP ou nome de usuário(a):",
-       "ipbexpiry": "Expiração:",
        "ipbreason": "Motivo:",
        "ipbreason-dropdown": "*Razões comuns para um bloqueio\n** Inserindo informações falsas\n** Removendo o conteúdo de páginas\n** Fazendo \"spam\" de sítios externos\n** Inserindo conteúdo sem sentido/incompreensível nas páginas\n** Comportamento intimidador/inoportuno\n** Uso abusivo de contas múltiplas\n** Nome de usuário inaceitável",
        "ipb-hardblock": "Impedir que usuários autenticados editem a partir deste endereço IP",
-       "ipbcreateaccount": "Prevenir a criação de contas",
-       "ipbemailban": "Impedir usuário(a) de enviar e-mail",
+       "ipbcreateaccount": "Criação de contas",
+       "ipbemailban": "Enviar e-mail",
        "ipbenableautoblock": "Bloquear automaticamente o endereço de IP mais recente usado por este(a) usuário(a) e todos os IPs subsequentes dos quais ele(a) tentar editar",
        "ipbsubmit": "Bloquear",
        "ipbother": "Outro período:",
        "ipboptions": "2 horas:2 hours,1 dia:1 day,3 dias:3 days,1 semana:1 week,2 semanas:2 weeks,1 mês:1 month,3 meses:3 months,6 meses:6 months,1 ano:1 year,indefinido:infinite",
        "ipbhidename": "Ocultar nome de usuário em edições e listas",
        "ipbwatchuser": "Vigiar a página de usuário(a) e a página de discussão deste(a) usuário(a)",
-       "ipb-disableusertalk": "Impedir que este(a) usuário(a) edite a sua página de discussão enquanto estiver bloqueado(a)",
+       "ipb-disableusertalk": "Editar a sua própria página de discussão",
        "ipb-change-block": "Bloquear o usuário novamente com estes parâmetros",
        "ipb-confirm": "Confirmar bloqueio",
        "ipb-sitewide": "Em todo o site",
        "ipb-partial": "Parcial",
-       "ipb-type-label": "Tipo",
        "ipb-pages-label": "Páginas",
        "badipaddress": "Endereço de IP inválido",
        "blockipsuccesssub": "Bloqueio bem sucedido",
        "ipb-blocklist": "Ver bloqueios em vigência",
        "ipb-blocklist-contribs": "Contribuições de $1",
        "ipb-blocklist-duration-left": "$1 restantes",
+       "block-actions": "Operações para bloquear:",
+       "block-expiry": "Expiração:",
+       "block-options": "Opções adicionais:",
+       "block-prevent-edit": "Edição",
+       "block-reason": "Motivo:",
+       "block-target": "Nome de usuário ou endereço IP:",
        "unblockip": "Desbloquear usuário",
        "unblockiptext": "Utilize o formulário a seguir para restaurar o acesso à escrita para um endereço de IP ou usuário previamente bloqueado.",
        "ipusubmit": "Remover este bloqueio",
        "specialpages-group-developer": "Ferramentas de desenvolvimento",
        "blankpage": "Página em branco",
        "intentionallyblankpage": "Esta página foi intencionalmente deixada em branco e é usada para medições de performance, etc.",
+       "disabledspecialpage-disabled": "Esta página foi desativada por um administrador do sistema.",
        "external_image_whitelist": " # Deixe esta linha exatamente como ela está <pre>\n# Insira uma expressão regular (apenas a parte que vai entre o //) a seguir\n# Estas serão casadas com as URLs de imagens externas (''hotlinked'')\n# Aquelas que corresponderem serão exibidas como imagens; caso contrário, apenas um link para a imagem será mostrado\n# As linhas que começam com # são tratadas como comentários\n# Isto não é sensível à capitalização\n\n# Coloque todos os fragmentos de ''regex'' acima dessa linha. Deixe esta linha exatamente como ela está</pre>",
        "tags": "Etiquetas de modificação válidas",
        "tag-filter": "Filtrar [[Special:Tags|etiquetas]]:",
index 049fbb7..3c7ee5a 100644 (file)
        "resetpass-abort-generic": "A alteração da palavra-passe foi cancelada por uma extensão.",
        "resetpass-expired": "A sua palavra-passe expirou. Por favor, defina uma nova para iniciar a sessão.",
        "resetpass-expired-soft": "A sua palavra-passe expirou e tem de ser alterada. Escolha uma nova agora ou clique \"{{int:authprovider-resetpass-skip-label}}\" para alterá-la mais tarde.",
+       "resetpass-validity": "A sua palavra-passe não é válida: $1\n\nDefina uma palavra-passe nova para poder entrar, por favor.",
        "resetpass-validity-soft": "A sua palavra-passe não é válida: $1\n\nEscolha uma palavra-passe nova agora, ou clique em \"{{int:authprovider-resetpass-skip-label}}\" para alterá-la mais tarde, por favor.",
        "passwordreset": "Redefinir palavra-passe",
        "passwordreset-text-one": "Preencha este formulário para receber uma palavra-passe temporária por correio eletrónico.",
        "blockedtext": "<strong>O seu nome de utilizador ou endereço IP foram bloqueados.</strong>\n\nO bloqueio foi realizado por $1.\nO motivo apresentado foi <em>$2</em>.\n\n* Início do bloqueio: $8\n* Expiração do bloqueio: $6\n* Destinatário do bloqueio: $7\n\nPode contactar $1 ou outro [[{{MediaWiki:Grouppage-sysop}}|administrador]] para discutir o bloqueio.\nNote que para utilizar a funcionalidade \"{{int:emailuser}}\" precisa de ter um endereço de correio eletrónico válido nas suas [[Special:Preferences|preferências]] e de não lhe ter sido bloqueado o uso desta funcionalidade.\nO seu endereço IP neste momento é $3 e a identificação (ID) do bloqueio é #$5.\nInclua todos os detalhes acima em quaisquer contactos relacionados com este bloqueio, por favor.",
        "autoblockedtext": "O seu endereço IP foi bloqueado de forma automática porque foi utilizado recentemente por outro utilizador, o qual foi bloqueado por $1.\nO motivo apresentado foi:\n\n:<em>$2</em>\n\n* Início do bloqueio: $8\n* Expiração do bloqueio: $6\n* Destinatário do bloqueio: $7\n\nPode contactar $1 ou outro [[{{MediaWiki:Grouppage-sysop}}|administrador]] para discutir o bloqueio.\n\nNote que para utilizar a funcionalidade \"{{int:emailuser}}\" precisa de ter um endereço de correio eletrónico válido nas suas [[Special:Preferences|preferências]] e de não lhe ter sido bloqueado o uso desta funcionalidade.\n\nO seu endereço IP neste momento é $3 e a identificação (ID) do bloqueio é #$5.\nInclua todos os detalhes acima em quaisquer contactos relacionados com este bloqueio, por favor.",
        "systemblockedtext": "O seu nome de utilizador ou endereço IP foram bloqueados automaticamente pelo MediaWiki.\nO motivo fornecido é:\n\n:<em>$2</em>\n\n* Início do bloqueio: $8\n* Expiração do bloqueio: $6\n* Destinatário do bloqueio: $7\n\nO seu endereço IP atual é $3.\nInclua todos os detalhes acima em quaisquer contactos sobre este assunto, por favor.",
+       "actionblockedtext": "Foi-lhe bloqueada a capacidade de realizar esta operação.",
        "blockednoreason": "sem motivo especificado",
        "whitelistedittext": "Precisa de $1 para poder editar páginas.",
        "confirmedittext": "Precisa de confirmar o seu endereço de correio eletrónico antes de começar a editar páginas.\nIntroduza e valide o endereço através das suas [[Special:Preferences|preferências de utilizador]], por favor.",
        "blockip": "Bloquear {{GENDER:$1|utilizador|utilizadora}}",
        "blockiptext": "Utilize o formulário abaixo para bloquear o acesso de escrita de um endereço IP específico ou de um nome de utilizador.\nIsto só deve ser feito para impedir vandalismo e de acordo com as [[{{MediaWiki:Policy-url}}|normas]]. Indique abaixo um motivo de bloqueio específico (por exemplo, mencionando as páginas que foram alvo de vandalismo).\nPode bloquear intervalos de endereços IP com a sintaxe [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; o maior intervalo permitido é /$1 para IPv4 e /$2 para IPv6.",
        "ipaddressorusername": "Endereço IP ou nome de utilizador:",
-       "ipbexpiry": "Expiração:",
        "ipbreason": "Motivo:",
        "ipbreason-dropdown": "*Razões comuns para um bloqueio\n** Inserção de informações falsas\n** Remoção de conteúdos de páginas\n** Inserção de \"spam\" para sítios externos\n** Inserção de conteúdo sem sentido/incompreensível nas páginas\n** Comportamento intimidador/inoportuno\n** Uso abusivo de contas múltiplas\n** Nome de utilizador inaceitável",
        "ipb-hardblock": "Impedir que utilizadores autenticados editem a partir deste endereço IP",
-       "ipbcreateaccount": "Impedir a criação de contas",
-       "ipbemailban": "Impedir utilizador de enviar correio eletrónico",
+       "ipbcreateaccount": "Criação de contas",
+       "ipbemailban": "Enviar correio eletrónico",
        "ipbenableautoblock": "Bloquear automaticamente o endereço IP mais recente deste utilizador e todos os endereços IP subsequentes a partir dos quais ele tente editar",
        "ipbsubmit": "Bloquear este utilizador",
        "ipbother": "Outro período:",
        "ipboptions": "2 horas:2 hours,1 dia:1 day,3 dias:3 days,1 semana:1 week,2 semanas:2 weeks,1 mês:1 month,3 meses:3 months,6 meses:6 months,1 ano:1 year,indefinido:infinite",
        "ipbhidename": "Ocultar nome de utilizador nas edições e listas",
        "ipbwatchuser": "Vigiar as páginas de utilizador e de discussão deste utilizador",
-       "ipb-disableusertalk": "Impedir que este utilizador edite a sua página de discussão enquanto estiver bloqueado",
+       "ipb-disableusertalk": "Editar a sua própria página de discussão",
        "ipb-change-block": "Voltar a bloquear o utilizador com estes parâmetros",
        "ipb-confirm": "Confirmar o bloqueio",
        "ipb-sitewide": "Em todo o site",
        "ipb-partial": "Parcial",
-       "ipb-type-label": "Tipo",
        "ipb-pages-label": "Páginas",
        "badipaddress": "Endereço IP inválido",
        "blockipsuccesssub": "Bloqueio efetuado",
        "ipb-blocklist": "Ver bloqueios em vigência",
        "ipb-blocklist-contribs": "Contribuições de {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "resta $1",
+       "block-actions": "Operações a bloquear:",
+       "block-expiry": "Expiração:",
+       "block-options": "Opções adicionais:",
+       "block-prevent-edit": "Edição",
+       "block-reason": "Motivo:",
+       "block-target": "Nome de utilizador ou endereço IP:",
        "unblockip": "Desbloquear utilizador",
        "unblockiptext": "Utilize o formulário abaixo para restaurar o acesso de escrita de um endereço IP ou utilizador previamente bloqueado.",
        "ipusubmit": "Remover este bloqueio",
        "specialpages-group-developer": "Ferramentas de desenvolvimento",
        "blankpage": "Página em branco",
        "intentionallyblankpage": "Esta página foi intencionalmente deixada em branco",
+       "disabledspecialpage-disabled": "Esta página foi desativada por um administrador do sistema.",
        "external_image_whitelist": " # Deixe esta linha exatamente como ela está<pre>\n# Coloque fragmentos de expressões regulares (apenas a parte entre //) abaixo\n# Estas serão comparadas com os URL das imagens externas (com ligação direta)\n# As que corresponderem serão apresentadas como imagens, caso contrário apenas será apresentada uma hiperligação para a imagem\n# As linhas que começam com um símbolo de cardinal (#) são tratadas como comentários\n# Esta lista não distingue maiúsculas de minúsculas\n\n# Coloque todos os fragmentos de expressões regulares (regex) acima desta linha. Deixe esta linha exatamente como ela está</pre>",
        "tags": "Etiquetas de modificação válidas",
        "tag-filter": "Filtro de [[Special:Tags|etiquetas]]:",
        "right-pagelang": "Alterar a língua da página",
        "action-pagelang": "alterar a língua da página",
        "log-name-pagelang": "Registo de alteração de língua",
-       "log-description-pagelang": "Este é um registo de alterações aos idiomas das páginas.",
+       "log-description-pagelang": "Este é um registo de alterações das línguas das páginas.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|alterou}} a língua da página $3 de $4 para $5.",
        "default-skin-not-found": "O tema padrão da sua wiki definido em <code dir=\"ltr\">$wgDefaultSkin</code>, <code>$1</code>, não está disponível.\n\nA instalação parece incluir {{PLURAL:$4|o seguinte tema|os seguintes temas}}. Consulte [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Configuração de Temas] para saber como {{PLURAL:$4|ativá-lo|ativá-los e escolher o tema padrão}}.\n\n$2\n\n; Se acabou de instalar o MediaWiki:\n: Provavelmente instalou-o a partir do git, ou diretamente do código fonte usando outro método. O comportamento é o esperado. Tente instalar temas a partir do [https://www.mediawiki.org/wiki/Category:All_skins diretório de temas da mediawiki.org], assim:\n:* Descarregue o  [https://www.mediawiki.org/wiki/Download tarball de instalação], que contém vários temas e extensões. Pode copiar o diretório <code>skins/</code> nele incluído.\n:* Descarregue tarballs de temas individuais, da [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Use o Git para descarregar temas].\n: Se é programador(a) do MediaWiki, isto não deverá interferir com o seu repositório git.\n\n; Se fez uma atualização do MediaWiki:\n: O MediaWiki 1.24 e versões mais recentes não ativam automaticamente os temas instalados (consulte [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Autodescoberta do Tema]). Pode copiar {{PLURAL:$5|a linha seguinte|as linhas seguintes}} para o ficheiro <code>LocalSettings.php</code> para ativar {{PLURAL:$5|o tema instalado|os temas instalados}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Se acabou de modificar o <code>LocalSettings.php</code>:\n: Verifique cuidadosamente se o nome de cada tema está bem soletrado.",
        "default-skin-not-found-no-skins": "O tema padrão da sua wiki definido em <code dir=\"ltr\">$wgDefaultSkin</code>, <code>$1</code>, não está disponível.\n\nNão tem nenhum tema instalado.\n\n; Se acabou de instalar ou atualizar o MediaWiki:\n: Provavelmente instalou-o a partir do git, ou diretamente do código fonte usando outro método. O comportamento é o esperado. O MediaWiki 1.24 e versões mais recentes não incluem qualquer tema no repositório principal. Tente instalar temas a partir do [https://www.mediawiki.org/wiki/Category:All_skins diretório de temas da mediawiki.org], assim:\n:* Descarregue o  [https://www.mediawiki.org/wiki/Download tarball de instalação], que contém vários temas e extensões. Pode copiar o diretório <code>skins/</code> nele incluído.\n:* Descarregue tarballs de temas individuais, da [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Use o Git para descarregar temas].\n: Se é programador(a) do MediaWiki, isto não deverá interferir com o seu repositório git. Consulte [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Configuração de Temas] para saber como ativar temas e escolher o tema padrão.",
        "edit-error-long": "Erros:\n\n$1",
        "revid": "revisão $1",
        "pageid": "identificador de página $1",
-       "interfaceadmin-info": "A edição de ficheiros CSS/JS/JSON foi recentemente limitada a membros do grupo [[{{int:grouppage-interface-admin}}|{{int:group-interface-admin}}]]. Para mais informações, consulte [[m:Creation of separate user group for editing sitewide CSS/JS/pt]].",
+       "interfaceadmin-info": "$1\n\nAs permissões de edição de ficheiros CSS/JS/JSON que afetam todo o ''site'' foram recentemente separadas do privilégio <code>editinterface</code>. Se não compreende porque está a receber este erro, consulte [[mw:MediaWiki_1.32/interface-admin]].",
        "rawhtml-notallowed": "As etiquetas &lt;html&gt; não podem ser utilizadas fora de páginas normais.",
        "gotointerwiki": "A sair da wiki {{SITENAME}}",
        "gotointerwiki-invalid": "O título especificado é inválido.",
index 2349b20..1984fd5 100644 (file)
                        "Daimona Eaytoy",
                        "A2093064",
                        "BadDog",
-                       "The Discoverer"
+                       "The Discoverer",
+                       "Bencemac",
+                       "Zoranzoki21"
                ]
        },
        "sidebar": "{{notranslate}}",
        "resetpass-abort-generic": "Generic error message shown on [[Special:ChangePassword]] when an extension aborts a password change from a hook.",
        "resetpass-expired": "Generic error message shown on [[Special:ChangePassword]] when a user's password is expired",
        "resetpass-expired-soft": "Generic warning message shown on [[Special:ChangePassword]] when a user needs to reset their password, but they are not prevented from logging in at this time",
+       "resetpass-validity": "Warning message shown on [[Special:ChangePassword]] when a user needs to reset their password, because their password is not valid.\n\nParameters:\n* $1 - error message",
        "resetpass-validity-soft": "Warning message shown on [[Special:ChangePassword]] when a user needs to reset their password, because their password is not valid.\n\nRefers to {{msg-mw|authprovider-resetpass-skip-label}}.\n\nParameters:\n* $1 - error message",
        "passwordreset": "Title of [[Special:PasswordReset]].\n{{Identical|Reset password}}",
        "passwordreset-text-one": "Text on [[Special:PasswordReset]] that appears when there is only one way of resetting the password.\n\n{{msg-mw|Passwordreset-text-many}} will be used, when there are multiple ways of resetting the password.",
        "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|notext=1}}\n* {{msg-mw|Systemblockedtext|notext=1}}",
        "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|notext=1}}\n* {{msg-mw|Systemblockedtext|notext=1}}",
        "systemblockedtext": "Text displayed to requests blocked by MediaWiki configuration.\n\n\"email this user\" should be consistent with {{msg-mw|Emailuser}}.\n\nParameters:\n* $1 - (Unused) A dummy user attributed as the blocker, possibly as a link to a user page.\n* $2 - the reason for the block\n* $3 - the current IP address of the blocked user\n* $4 - (Unused) the dummy blocking user's username (plain text, without the link).\n* $5 - A short string indicating the type of system block.\n* $6 - the expiry of the block\n* $7 - the intended target of the block\n* $8 - the timestamp when the block started\nSee also:\n* {{msg-mw|Grouppage-sysop}}\n* {{msg-mw|Blockedtext|notext=1}}\n* {{msg-mw|Autoblockedtext|notext=1}}",
+       "actionblockedtext": "Text displayed when a user is blocked from performing an action, but no matching block for the user exists. This can happen if an extension forces a user to be blocked.",
        "blockednoreason": "Substituted with <code>$2</code> in the following message if the reason is not given:\n* {{msg-mw|cantcreateaccount-text}}.\n{{Identical|No reason given}}",
        "whitelistedittext": "Used as error message. Parameters:\n* $1 - a link to [[Special:UserLogin]] with {{msg-mw|loginreqlink}} as link description\n* $2 - an URL to the same\n\nSee also:\n* {{msg-mw|Nocreatetext}}\n* {{msg-mw|Uploadnologintext}}\n* {{msg-mw|Loginreqpagetext}}",
        "confirmedittext": "Used as error message.",
        "page_last": "This is part of the navigation message on the top and bottom of Special pages which are lists of things in alphabetical order, e.g. the '[[Special:Categories|Categories]]' special page. It is followed by the message {{msg-mw|Viewprevnext}}.\n\n{{Identical|Last}}",
        "histlegend": "Text in history page.\n\nSee also:\n* {{msg-mw|Cur}}\n* {{msg-mw|Last}}\n* {{msg-mw|Minoreditletter}}",
        "history-fieldset-title": "Fieldset label in the edit history pages.",
-       "history-show-deleted": "CheckBox to show only per [[mw:Manual:RevisionDelete|RevisonDelete]] deleted versions.\n\nUsed in History and [[Special:Contributions]].",
+       "history-show-deleted": "CheckBox to show only per [[mw:Manual:RevisionDelete|RevisionDelete]] deleted versions.\n\nUsed in History and [[Special:Contributions]].",
        "history_copyright": "{{notranslate}}",
        "histfirst": "This is part of the navigation message on the top and bottom of Page History pages which are lists of things in date order, e.g. [{{canonicalurl:Support|action=history}} Page History of Support].\n\nIt is followed by the message {{msg-mw|Viewprevnext}}.\n{{Identical|Oldest}}",
        "histlast": "This is part of the navigation message on the top and bottom of Page History pages which are lists of things in date order, e.g. [{{canonicalurl:Support|action=history}} Page History of Support].\n\nIt is followed by the message {{msg-mw|Viewprevnext}}.\n{{Identical|Newest}}",
        "blockip": "Used as the text of a link in the sidebar toolbox. Clicking this link takes you to [[Special:Block]], with a relevant username or IP address (e.g. \"Username\" on [[User talk:Username]], [[Special:Contributions/Username]], etc.) already filled in.\n\nParameters:\n* $1 - username, for GENDER support\n{{Identical|Block user}}",
        "blockiptext": "Used in the {{msg-mw|Blockip}} form in [[Special:Block]].\n\nRefers to {{msg-mw|Policy-url}}.\n\nThis message may follow the message {{msg-mw|Ipb-otherblocks-header}} and other block messages.\n\nParameters:\n* $1 - CIDR suffix of the largest allowed IPv4 block (as an integer)\n* $2 - CIDR suffix of the largest allowed IPv6 block (as an integer)\n\nSee also:\n* {{msg-mw|Unblockiptext}}",
        "ipaddressorusername": "{{Identical|IP address or username}}",
-       "ipbexpiry": "{{Identical|Expiry}}",
        "ipbreason": "Label of the block reason dropdown in [[Special:BlockIP]] and the unblock reason textfield in [{{fullurl:Special:IPBlockList|action=unblock}} Special:IPBlockList?action=unblock].\n\n{{Identical|Reason}}",
        "ipbreason-dropdown": "Used as item list for dropdown on [[Special:Block]].\n\nThe label for this dropdown is {{msg-mw|Ipbreason}}.",
        "ipb-hardblock": "This is the label for a checkbox in the user block form on [[Special:Block]].\n\nSee also:\n* {{msg-mw|ipbemailban}}\n* {{msg-mw|ipb-disableusertalk}}\n* {{msg-mw|ipbenableautoblock}}\n* {{msg-mw|ipbhidename}}\n* {{msg-mw|ipbwatchuser}}",
        "ipb-confirm": "Used as hidden field in the form on [[Special:Block]].",
        "ipb-sitewide": "A type of block the user can select from on [[Special:Block]].",
        "ipb-partial": "A type of block the user can select from on [[Special:Block]].",
-       "ipb-type-label": "The label of the type of editing restriction the admin would like to impose on [[Special:Block]].",
        "ipb-pages-label": "The label for an autocomplete text field to specify pages to block a user from editing on [[Special:Block]].",
        "badipaddress": "An error message shown when one entered an invalid IP address in blocking page.",
        "blockipsuccesssub": "Used as page title in [[Special:Block]].\n\nThis message is the subject for the following message:\n* {{msg-mw|Blockipsuccesstext}}",
        "ipb-blocklist": "Used as link text in [[Special:Block]].\n\nThe link points to Specil:BlockList.",
        "ipb-blocklist-contribs": "Used in [[Special:Block]].\n* $1 - target username",
        "ipb-blocklist-duration-left": "Used on [[Special:BlockList]] to show the remaining time (years, months, days, hours, minutes) until the block expires.\n$1 - The duration left",
+       "block-actions": "Label for the checkboxes for specifying the actions that a block affects on [[Special:Block]]",
+       "block-expiry": "Label for the input for specifying the expiry time of a block on [[Special:Block]]",
+       "block-options": "Label for the checkboxes for specifying additional options for a block on [[Special:Block]]",
+       "block-prevent-edit": "Label for the checkbox for specifying an editing block in [[Special:Block]].",
+       "block-reason": "Label for the input for specifying the reason for a block on [[Special:Block]]\n{{Identical|Reason}}",
+       "block-target": "Label for the input for specifying the target of a block on [[Special:Block]]",
        "unblockip": "Used as title and legend for the form in [[Special:Unblock]].",
        "unblockiptext": "Used in the {{msg-mw|Unblockip}} form on [[Special:Unblock]].",
        "ipusubmit": "Used as button text on [{{canonicalurl:Special:BlockList|action=unblock}} Special:BlockList?action=unblock]. To see the message:\n* Go to [[Special:BlockList]]\n* Click \"unblock\" for any block (but you can only see \"unblock\" if you have administrator rights)\n* It is now the button below the form",
        "specialpages-group-developer": "{{doc-special-group|that=are related to tools for developers}}",
        "blankpage": "{{doc-special|BlankPage|unlisted=1}}\nSee also:\n* {{msg-mw|Intentionallyblankpage|text}}",
        "intentionallyblankpage": "Text displayed in [[Special:BlankPage]].\n\nSee also:\n* {{msg-mw|Intentionallyblankpage|page title}}",
+       "disabledspecialpage-disabled": "Default message used on disabled special pages.",
        "external_image_whitelist": "As usual please leave all the wiki markup, including the spaces, as they are. You can translate the text, including 'Leave this line exactly as it is'. The first line of this messages has one (1) leading space.\n\nSee definition of [[w:Regular_expression|regular expression]] on Wikipedia.",
        "tags": "Shown on [[Special:Specialpages]] for page listing the tags that the software may mark an edit with, and their meaning. For more information on tags see [[mw:Manual:Tags|MediaWiki]].\n\nIt appears that the word 'valid' describes 'tags', not 'change'. It also appears that you could use the term 'defined' instead of 'valid', or perhaps use a phrase meaning 'The change tags that are in use'.",
        "tags-summary": "{{doc-specialpagesummary|tags}}",
        "tags-update-blocked": "Error message seen via the API when a user is blocked and attempted to add or remove change tags after the fact.\n\nParameters:\n* $1 - user name for gender",
        "tags-update-add-not-allowed-one": "Error message seen via the API when a user tries to add a single tag that is not properly defined. This message is only ever used in the case of 1 tag.\n\nParameters:\n* $1 - tag name",
        "tags-update-add-not-allowed-multi": "Error message seen via the API when a user tries to add more than one tag that is not properly defined.\n\nParameters:\n* $1 - comma-separated list of tag names\n* $2 - number of tags",
-       "tags-update-remove-not-allowed-one": "Error message seen via the API when a user tries to remove a single tag that is not properly defined. This message is only ever used in the case of 1 tag.\n\nParameters:\n* $1 - tag name",
-       "tags-update-remove-not-allowed-multi": "Error message seen via the API when a user tries to remove more than one tag that is not properly defined.\n\nParameters:\n* $1 - comma-separated list of tag names\n* $2 - number of tags",
+       "tags-update-remove-not-allowed-one": "Error message seen via the API when a user tries to remove a single tag that is not properly defined. This message is only ever used in the case of 1 tag.\n\nParameters:\n* $1 - tag name\n\nSee also:\n* {{msg-mw|Tags-update-remove-not-allowed-multi}}",
+       "tags-update-remove-not-allowed-multi": "Error message seen via the API when a user tries to remove more than one tag that is not properly defined.\n\nParameters:\n* $1 - comma-separated list of tag names\n* $2 - number of tags\n\nSee also:\n* {{msg-mw|Tags-update-remove-not-allowed-one}}",
        "tags-edit-title": "The title of a page where tags can be added or removed from selected revisions or log entries.\nFor more information on tags see [[mw:Manual:Tags]].",
        "tags-edit-manage-link": "Text of a link to [[Special:Tags]], in imperative mood. Refers to the same thing as {{msg-mw|log-name-managetags}}.",
        "tags-edit-revision-selected": "{{Identical|revdelete-selected-text}}\n\nParameters:\n* $1 - Number of ids of selected revisions\n* $2 - Title of the page that user has selected revisions of\nSee also:\n* {{msg-mw|tags-edit-logentry-selected}}",
        "logentry-managetags-deactivate": "{{Logentry|[[Special:Log/managetags]]}}\n*$4 - tag name",
        "log-name-tag": "The title of a log which contains entries related to applying and removing change tags from individual revisions or log entries. \"Tag\" here refers to the same thing as {{msg-mw|tags-tag}}.",
        "log-description-tag": "The description of the tag log. \"Tag\" here refers to the same thing as {{msg-mw|tags-tag}}.",
-       "logentry-tag-update-add-revision": "{{Logentry|[[Special:Log/tag]]}}\n*$4 - revision ID\n* $6 - list of tags that were added, separated by {{msg-mw|Comma-separator}}\n* $7 - number of added tags",
+       "logentry-tag-update-add-revision": "{{Logentry|[[Special:Log/tag]]}}\n* $4 - revision ID\n* $6 - list of tags that were added, separated by {{msg-mw|Comma-separator}}\n* $7 - number of added tags\n\nSee also:\n* {{msg-mw|Logentry-tag-update-remove-revision}}",
        "logentry-tag-update-add-logentry": "{{Logentry|[[Special:Log/tag]]}}\n*$5 - log entry ID\n* $6 - list of tags that were added, separated by {{msg-mw|Comma-separator}}\n* $7 - number of added tags",
-       "logentry-tag-update-remove-revision": "{{Logentry|[[Special:Log/tag]]}}\n*$4 - revision ID\n* $8 - list of tags that were removed, separated by {{msg-mw|Comma-separator}}\n* $9 - number of removed tags",
+       "logentry-tag-update-remove-revision": "{{Logentry|[[Special:Log/tag]]}}\n* $4 - revision ID\n* $8 - list of tags that were removed, separated by {{msg-mw|Comma-separator}}\n* $9 - number of removed tags\n\nSee also:\n* {{msg-mw|Logentry-tag-update-add-revision}}",
        "logentry-tag-update-remove-logentry": "{{Logentry|[[Special:Log/tag]]}}\n*$5 - log entry ID\n* $8 - list of tags that were removed, separated by {{msg-mw|Comma-separator}}\n* $9 - number of removed tags",
        "logentry-tag-update-revision": "{{Logentry|[[Special:Log/tag]]}}\n*$4 - revision ID\n* $6 - list of tags that were added, separated by {{msg-mw|Comma-separator}}\n* $7 - number of added tags\n* $8 - list of tags that were removed, separated by {{msg-mw|Comma-separator}}\n* $9 - number of removed tags",
        "logentry-tag-update-logentry": "{{Logentry|[[Special:Log/tag]]}}\n*$5 - log entry ID\n* $6 - list of tags that were added, separated by {{msg-mw|Comma-separator}}\n* $7 - number of added tags\n* $8 - list of tags that were removed, separated by {{msg-mw|Comma-separator}}\n* $9 - number of removed tags",
index f61d242..84701bd 100644 (file)
        "blockip": "Ruraqta hark'ay",
        "blockiptext": "Kay qatiq hunt'ana p'anqata llamk'achiy huk sapaq IP huchhamanta icha ruraqpa rakiqunanmanta qillqay atiyta hark'anapaq.\nKayqa rurasqa kachun wandalismullatam hark'anapaq, [[{{MediaWiki:Policy-url}}|{{SITENAME}}pa kawpayninkamallam]].\nWillariy imaraykum hark'anki (ahinataq: sapaq wandaluchasqa p'anqakunamanta willaspa).",
        "ipaddressorusername": "IP huchha icha ruraqpa sutin",
-       "ipbexpiry": "Hark'ay kaykama:",
        "ipbreason": "Kayrayku:",
        "ipbreason-dropdown": "*Hark'anapaq sapsi raykukuna\n** Llulla willayta qillqamuy\n** P'anqata samiqninmanta ch'usaqchay\n** ''Spam'' nisqa millay t'inkikunata yapay\n** Q'upata, mana ima chaniyuqtapas yapay\n** Huk ruraqkunata manchachiy icha k'amiy\n** Achka rakiqunakunawan millayta ruray\n** Mana chaskinalla ruraqpa sutin",
        "ipb-hardblock": "Yaykusqa ruraqkuna kay IP huchhayuq tiyaymanta ama llamk'apuchunchu",
        "ipb-unblock": "Hark'asqa ruraqta icha IP huchhata qispichiy",
        "ipb-blocklist": "Kachkaq hark'asqakunata qhaway",
        "ipb-blocklist-contribs": "$1-paq llamk'apusqakuna",
+       "block-expiry": "Hark'ay kaykama:",
        "unblockip": "Hark'asqa ruraqta qispichiy",
        "unblockiptext": "Kay qatiq hunt'ana p'anqata llamk'achiy ñawpaqta hark'asqa IP huchhaman icha ruraqman qillqana hayñinta kutichinapaq.",
        "ipusubmit": "Kay hark'asqata qispichiy",
index 20768d4..6c0b2dd 100644 (file)
        "blockip": "Bloccar l'utilisader",
        "blockiptext": "Utilisescha il formular sutvart per bloccar ina adressa IP u in utilisader uschia ch'el na po betg pli far midadas.\nTi duessas be far quai per impedir vandalissem e en ina moda confurma a las [[{{MediaWiki:Policy-url}}|directivas]].\nInditgescha sutvart in motiv (per exempel pos ti inditgar paginas ch'èn vegnidas destruidas).",
        "ipaddressorusername": "Adressa IP u num d'utilisader:",
-       "ipbexpiry": "Bloccà enfin:",
        "ipbreason": "Motiv:",
        "ipbreason-dropdown": "*Motivs generals per bloccar\n** Inserir infurmaziuns faussas\n** Stizzar cuntegn da paginas\n** Inserir colliaziuns da spam a paginas externas\n** Inserir nonsens en paginas\n** Sedepurtar nunconvegnent u mulestant\n** Abus da plirs contos\n** Num d'utilisader nunacceptabel",
        "ipb-hardblock": "Evitar che utilisaders annunziads pon far modificaziuns davent da questa adressa IP",
        "ipb-unblock": "Debloccar in utilisader u ina adressa IP",
        "ipb-blocklist": "Mussar tut las bloccadas activas",
        "ipb-blocklist-contribs": "Contribuziuns d'utilisader da $1",
+       "block-expiry": "Bloccà enfin:",
        "unblockip": "Debloccar in utilisader",
        "unblockiptext": "Utilisescha il formular sutvart per restituir l'access da scriver per ina adressa IP u in utilisader ch'è vegnì bloccà pli baud.",
        "ipusubmit": "Allontanar questa bloccada",
index b83f272..5f627d1 100644 (file)
@@ -35,7 +35,8 @@
                        "Matrafox",
                        "Cybernenea11",
                        "Andreyyshore",
-                       "Andrei Stroe"
+                       "Andrei Stroe",
+                       "WebSourceContentRO"
                ]
        },
        "tog-underline": "Sublinierea legăturilor:",
@@ -58,7 +59,7 @@
        "tog-previewontop": "Arată previzualizarea deasupra căsuței de modificare",
        "tog-previewonfirst": "Arată previzualizarea la prima modificare",
        "tog-enotifwatchlistpages": "Trimite-mi un e-mail atunci când o pagină sau un fișier din lista mea de pagini urmărite suferă modificări",
-       "tog-enotifusertalkpages": "Trimite-mi un email când pagina mea de discuții este modificată",
+       "tog-enotifusertalkpages": "Trimite-mi un e-mail când pagina mea de discuții este modificată",
        "tog-enotifminoredits": "Trimite-mi, de asemenea, un e-mail în caz de modificări minore asupra paginilor și fișierelor",
        "tog-enotifrevealaddr": "Afișează-mi adresa de e-mail în mesajele de notificare",
        "tog-shownumberswatching": "Arată numărul utilizatorilor care urmăresc",
        "resetpass-abort-generic": "Schimbarea parolei a fost anulată de către o extensie.",
        "resetpass-expired": "Parola dumneavoastră a expirat. Alegeți o parolă nouă pentru a vă autentifica.",
        "resetpass-expired-soft": "Parola dumneavoastră a expirat și trebuie schimbată. Alegeți o parolă nouă acum sau apăsați „{{int:authprovider-resetpass-skip-label}}” pentru a o reseta mai târziu.",
+       "resetpass-validity": "Parola dvs. nu este validă: $1\n\nVă rugăm să setați o parolă nouă pentru a vă conecta.",
        "resetpass-validity-soft": "Parola dumneavoastră nu este validă: $1 \n\nAlegeți o parolă nouă acum sau apăsați „{{int:authprovider-resetpass-skip-label}}” pentru a o schimba mai târziu.",
        "passwordreset": "Resetare parolă",
        "passwordreset-text-one": "Completați acest formular pentru a vă reseta parola.",
        "blockedtext": "* Începutul blocării: $8\n* Sfârșitul blocării: $6\n* Utilizatorul vizat: $7\n\nÎl puteți contacta pe $1 sau pe alt [[{{MediaWiki:Grouppage-sysop}}|administrator]] pentru a discuta blocarea.\nNu puteți folosi opțiunea 'trimite un e-mai utilizatorului' decât dacă o adresă de e-mail validă este specificată în [[Special:Preferences|preferințele contului]] și nu sunteți blocat la folosirea ei.\nAdresa dumneavoastră IP curentă este $3, iar ID-ul blocării este #$5. Vă rugăm să includeți toate detaliile de mai sus în orice mesaj.",
        "autoblockedtext": "Această adresă IP a fost blocată automat deoarece a fost folosită de către un alt utilizator, care a fost blocat de $1.\nMotivul blocării este:\n\n:<em>$2</em>\n\n* Începutul blocării: $8\n* Sfârșitul blocării: $6\n* Intervalul blocării: $7\n\nPuteți contacta pe $1 sau pe unul dintre ceilalți [[{{MediaWiki:Grouppage-sysop}}|administratori]] pentru a discuta blocarea.\n\nNu veți putea folosi opțiunea de \"{{int:emailuser}}\" decât dacă aveți înregistrată o adresă de e-mail validă la [[Special:Preferences|preferințe]] și nu sunteți blocat la folosirea ei.\n\nAveți adresa IP $3, iar identificatorul dumneavoastră de blocare este #$5.\nVă rugăm să includeți detaliile de mai sus în orice mesaje pe care le trimiteți.",
        "systemblockedtext": "Numele de utilizator sau adresa IP a fost blocat automat de MediaWiki.\nMotivul indicat este:\n\n:<em>$2</em>\n\n\n* Începutul blocării: $8\n* Expirarea blocării: $6\n* Utilizatorul vizat: $7\n\nAdresa IP curentă a dumneavoastră este $3.\nVă rugăm să includeți toate detaliile de mai sus în orice interogare pe care o veți faceți.",
+       "actionblockedtext": "Ați fost blocat(ă) să efectuați această acțiune.",
        "blockednoreason": "nici un motiv oferit",
        "whitelistedittext": "Trebuie să vă $1 pentru a putea modifica pagini.",
        "confirmedittext": "Trebuie să vă confirmați adresa de e-mail înainte de a edita pagini. Vă rugăm să vă setați și să vă validați adresa de e-mail cu ajutorul [[Special:Preferences|preferințelor utilizatorului]].",
        "accmailtext": "O parolă generată aleator pentru [[User talk:$1|$1]] a fost trimisă la $2. Parola poate fi schimbată după autentificare din pagina ''[[Special:ChangePassword|schimbare parolă]]''.",
        "newarticle": "(Nou)",
        "newarticletext": "Ați încercat să ajungeți la o pagină care nu există. Pentru a o crea, începeți să scrieți în caseta de mai jos (vedeți [$1 pagina de ajutor] pentru mai multe informații). Dacă ați ajuns aici din greșeală, întoarceți-vă folosind controalele navigatorului dumneavoastră.",
-       "anontalkpagetext": "----\n''Aceasta este pagina de discuții pentru un utilizator care încă nu și-a creat un cont sau care nu s-a autentificat.\nPrin urmare trebuie să folosim adresa IP pentru a identifica această persoană.\nO adresă IP poate fi folosită în comun de mai mulți utilizatori.\nDacă sunteți un astfel de utilizator și credeți că vă sunt adresate mesaje irelevante, vă rugăm să [[Special:CreateAccount|vă creați un cont]] sau să [[Special:UserLogin|vă autentificați]] pentru a evita confuzii cu alți utilizatori anonimi în viitor.''",
+       "anontalkpagetext": "----\n''Aceasta este pagina de discuții pentru un utilizator care încă nu și-a creat un cont sau care nu s-a autentificat.\nPrin urmare, trebuie să folosim adresa IP numerică pentru a le identifica.\nO adresă IP poate fi folosită în comun de mai mulți utilizatori.\nDacă sunteți un astfel de utilizator și credeți că vă sunt adresate mesaje irelevante, vă rugăm să [[Special:CreateAccount|vă creați un cont]] sau să [[Special:UserLogin|vă autentificați]] pentru a evita confuzii cu alți utilizatori anonimi în viitor.''",
        "noarticletext": "Actualmente, această pagină este lipsită de conținut.\nPuteți [[Special:Search/{{PAGENAME}}|căuta titlul acestei pagini]] în alte pagini, puteți <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} căuta înregistrări în jurnalele relevante]\nsau puteți [{{fullurl:{{FULLPAGENAME}}|action=edit}} crea această pagină]</span>.",
        "noarticletext-nopermission": "Actualmente, această pagină este lipsită de conținut.\nPuteți [[Special:Search/{{PAGENAME}}|căuta acest titlu]] în alte pagini sau puteți <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} căuta înregistrări în jurnale]</span>; nu aveți însă permisiunea de a crea această pagină.",
        "missing-revision": "Versiunea nr. $1 a paginii „{{FULLPAGENAME}}” nu există.\n\nAcest lucru se întâmplă de obicei atunci când se accesează o legătură expirată către istoricul unei pagini șterse.\nDetalii se pot găsi în [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jurnalul ștergerilor].",
        "blockip": "Blocare {{GENDER:$1|utilizator|utilizatoare}}",
        "blockiptext": "Folosiți formularul de mai jos pentru a bloca accesul la modificare al unei adrese IP specifice sau al unui nume de utilizator.\nAcest lucru ar trebui făcut doar pentru a preveni vandalismul, și în acord cu [[{{MediaWiki:Policy-url}}|politica]].\nCompletați un motiv specific mai jos (de exemplu, citând paginile care au fost vandalizate).\nPuteți bloca range-uri de adrese IP folosind notația [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; cea mai mică mască permisă este /$1 pentru IPv4 și /$2 pentru IPv6.",
        "ipaddressorusername": "Adresă IP sau nume de utilizator",
-       "ipbexpiry": "Expiră",
        "ipbreason": "Motiv:",
        "ipbreason-dropdown": "*Motivele cele mai frecvente\n** Introducere de informații false\n** Ștergere conținut fără explicații\n** Introducere de legături externe de publicitate (spam)\n** Creare pagini fără sens\n** Tentative de intimidare\n** Abuz utilizare conturi multiple\n** Nume de utilizator inacceptabil",
        "ipb-hardblock": "Se interzice utilizatorilor autentificați să contribuie folosind această adresă IP",
-       "ipbcreateaccount": "Nu permite crearea de conturi",
-       "ipbemailban": "Nu permite utilizatorului să trimită e-mail",
+       "ipbcreateaccount": "Crearea de conturi",
+       "ipbemailban": "Trimiterea unui e-mail",
        "ipbenableautoblock": "Blochează automat ultima adresă IP folosită de acest utilizator și toate adresele de la care încearcă să editeze în viitor",
        "ipbsubmit": "Blochează acest utilizator",
        "ipbother": "Alt termen:",
        "ipb-confirm": "Confirmare blocare",
        "ipb-sitewide": "Pe site",
        "ipb-partial": "Parțial",
-       "ipb-type-label": "Tip",
        "ipb-pages-label": "Pagini",
        "badipaddress": "Adresa IP este invalidă.",
        "blockipsuccesssub": "Utilizatorul a fost blocat",
        "ipb-blocklist": "Vezi blocările existente",
        "ipb-blocklist-contribs": "Contribuțiile {{GENDER:$1|utilizatorului $1|utilizatoarei $1}}",
        "ipb-blocklist-duration-left": "$1 a mai rămas",
+       "block-actions": "Acțiuni pentru a bloca:",
+       "block-expiry": "Expiră",
        "unblockip": "Deblochează adresă IP",
        "unblockiptext": "Folosiți formularul de mai jos pentru a restaura permisiunea de scriere pentru adrese IP sau nume de utilizator blocate anterior.",
        "ipusubmit": "Elimină blocarea",
        "specialpages-group-developer": "Unelte pentru dezvolatori",
        "blankpage": "Pagină goală",
        "intentionallyblankpage": "Această pagină este goală în mod intenționat",
+       "disabledspecialpage-disabled": "Această opțiunea a fost dezactivată de către administratorul sistemului.",
        "external_image_whitelist": " #Lasă această linie exact așa cum este <pre>\n#Pune fragmentele expresiei regulate (doar partea care merge între //) mai jos\n#Acestea vor fi potrivite cu URL-uri de exterior (hotlinked)\n#Acelea care se potrivesc vor fi afișate ca imagini, altfel va fi afișat doar un link la imagine\n#Liniile care încep cu # sunt tratate ca comentarii\n#Acesta este insensibil la majuscule sau minuscule\n\n#Pune toate fragmentele regex deasupra aceastei linii. Lasă această linie exact așa cum este</pre>",
        "tags": "Etichete valabile pentru marcarea modificărilor",
        "tag-filter": "Filtru pentru [[Special:Tags|etichete]]:",
index 51f8435..2cdf55d 100644 (file)
        "resetpass-abort-generic": "'U cange de passuord ha state annullate da 'n'estenzione.",
        "resetpass-expired": "'A password toje ha scadute. Pe piacere 'mboste 'a password nove pe trasè.",
        "resetpass-expired-soft": "'A password toje ha scadute e ave abbesògne de essere cangiate. Pe piacere scacchie 'n'otra password mò, o cazze \"{{int:authprovider-resetpass-skip-label}}\" pe cangiale cchiù tarde.",
+       "resetpass-validity": "'A password toje non g'è valide: $1",
        "resetpass-validity-soft": "'A password toje non g'è valide: $1\n\nPe piacere scacchie 'na password nove, o cazze \"{{int:authprovider-resetpass-skip-label}}\" pe cangiale cchiù tarde.",
        "passwordreset": "Azzere 'a passuord",
        "passwordreset-text-one": "Comblete stu module pe azzerà 'a passuord toje.",
        "blockedtitle": "L'utende è blocchete",
        "blockedtext": "<strong>'U nome de l'utende o l'indirizze IP ha state bloccate.</strong>\n\n'U blocche ha state fatte da $1.\n'U mutive date jè <em>$2</em>.\n\n* 'U Blocche accumenze: $8\n* 'U Blocche spicce: $6\n* Tipe de blocche: $7\n\nTu puè condatta $1 o n'otre [[{{MediaWiki:Grouppage-sysop}}|amministratore]] pe 'ngazzarte sus a 'u blocche.\nTu non ge puè ausà 'u strumende \"{{int:emailuser}}\" senza ca mitte n'indirizze email valide jndr'à le\n[[Special:Preferences|preferenze tune]] e ce è state bloccate sus a l'use sue.\nL'IP ca tine mò jè $3 e 'u codece d'u blocche jè #$5.\nPe piacere mitte ste doje 'mbormaziune ce manne 'na richieste de sblocche.",
        "autoblockedtext": "L'indirizze IP tue ha state automaticamende blocchete purcè ha state ausete da n'otre utende, ca avère state blocchete da $1.\n'U mutive date jè 'u seguende:\n\n:''$2''\n\n* Inizie d'u blocche: $8\n* Scadenze d'u blocche: $6\n* Blocche 'ndise: $7\n\nTu puè cundattà $1 o une de l'otre [[{{MediaWiki:Grouppage-sysop}}|amministrature]] pe parà de stu probbleme.\n\nVide Bbuene ca tu non ge puè ausà 'a funziona \"manne n'e-mail a stu utende\" senze ca tu tìne 'n'indirizze e-mail valide e reggistrete jndr'à seziona [[Special:Preferences|me piace accussì]] e tu non ge sinde blocchete da ausarle.\n\nL'indirizze IP corrende jè $3, e 'u codece d'u blocche jè #$5.\nPe piacere mitte tutte le dettaglie ca ponne essere utile pe le richieste tune.",
+       "actionblockedtext": "E' state bloccate da fà st'azione.",
        "blockednoreason": "nisciune mutive",
        "whitelistedittext": "Tu ha $1 pàggene da cangià.",
        "confirmedittext": "Tu a confermà l'indirizze e-mail tue apprime de cangià le pàggene.\nPe piacere mitte e validesce l'indirizze e-mail tue ausanne le [[Special:Preferences|preferenze de l'utende]].",
        "blocked-notice-logextract": "Stu utende jè correndemende bloccate.<br />\nL'urteme archivije de le bloccaminde se iacche aqquà sotte pe referimende:",
        "clearyourcache": "<strong>Vide Bbuene</strong> - Apprisse 'a reggistrazione, tu puè zumbà 'a cache d'u browser tune pe vedè le cangiaminde.\n*<strong>Firefox / Safari:</strong> cazze 'u <em>Shift</em> e condemboraneamende cazze 'u buttone <em>Aggiorne</em>, o cazze 'nzieme <em>Ctrl-F5</em> o <em>Ctrl-R</em> (<em>⌘-R</em> sus a 'nu Mac);\n*<strong>Google Chrome:</strong> cazze <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> sus a 'nu Mac)\n*<strong>Internet Explorer:</strong> cazze ''Ctrl'' e condemboraneamende cazze <em>Aggiorne</em> o cazze <em>Ctrl-F5</em>.\n*<strong>Opera:</strong> pulizze 'a cache da <em>Tools → Preferences</em> (in inglese) (Struminde - Preferenze in tarandine);",
        "usercssyoucanpreview": "'''Conziglie:''' Ause 'u buttone \"{{int:showpreview}}\" pe condrollà 'u CSS nuève apprime de reggistrà.",
+       "userjsonyoucanpreview": "<strong>Conziglie:</strong> Ause 'u buttone \"{{int:showpreview}}\" pe condrollà 'u JSON nuève apprime de reggistrà.",
        "userjsyoucanpreview": "'''Conziglie:''' Ause 'u buttone \"{{int:showpreview}}\" pe condrollà 'u JavaScript nuève apprime de reggistrà.",
        "usercsspreview": "'''Arrecuerdete ca tu ste vide sulamende in andeprime 'u CSS tue.'''\n'''Non g'à state angore reggistrete ninde!'''",
        "userjsonpreview": "<strong>Arrecuerdete ca tu ste teste/'ndruche sulamende in andeprime 'a configurazione JSON tue.\nNon g'à state angore reggistrete ninde!</strong>",
        "edit-gone-missing": "Non ge puè cangià sta pàgene.\nPare proprie ca l'onne scangellete.",
        "edit-conflict": "conflitte de cangiaminde.",
        "edit-no-change": "'U cangiamende ca p fatte, avène scettate purcè 'u teste non g'à cangete manghe de 'na virgola.",
+       "edit-slots-cannot-add": "{{PLURAL:$1|'U slot seguende non g'è|Le slot seguende non ge sò}} supportate aqquà: $2.",
+       "edit-slots-cannot-remove": "{{PLURAL:$1|'U slot seguende jè obbligatorie e non ge se pò|Le slot seguende sò obbligatorie e non ge se ponne}} scangellà: $2.",
+       "edit-slots-missing": "{{PLURAL:$1|'U slot seguende jè|Le slot seguende sò}} mangande: $2.",
        "postedit-confirmation-created": "Sta pàgene ha state ccrejate.",
        "postedit-confirmation-restored": "Sta pàgene ha state repristinate.",
        "postedit-confirmation-saved": "'U cangiamende tune ha state reggistrate.",
        "blockip": "Blocche {{GENDER:$1|l'utende}}",
        "blockiptext": "Ause 'a schermata de sotte pe bloccà l'accesse in scritture de 'nu specifiche indirizze IP o utende.\nQuiste avessa essere fatte sulamende pe prevenìe 'u vandalisme e in accorde cu [[{{MediaWiki:Policy-url}}|le regole]].\nMitte pure 'nu mutive specifiche aqquà sotte (pe esembije, nnomene 'a pàgene addò è acchiate 'u vandalisme).\nPuè bloccà le indervalle de indirizze IP ausanne 'a sindasse [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; 'u 'ndervalle cchiù larije ca se pò mettere jè /$1 pe IPv4 e /$2 pe IPv6.",
        "ipaddressorusername": "Indirizze IP o nome de l'utende:",
-       "ipbexpiry": "More:",
        "ipbreason": "Mutive:",
        "ipbreason-dropdown": "*Mutive comune de blocche\n** Inzerimende de 'mbormaziune fause\n** Scangellamende de condenute da le vôsce\n** Collegaminde pubblecetarie a site fore de Uicchipèdie\n** Inzerimende de studecarie jndr'à le vôsce\n** Menacce e intimidaziune\n** Abbuse de cunde utende multiple\n** Nome de l'utende inaccettabbele",
        "ipb-hardblock": "Non ge face cangià l'utinde reggistrate da stu 'ndirizze IP",
-       "ipbcreateaccount": "No fà ccrejà le cunde utinde",
-       "ipbemailban": "No fà mannà email a l'utinde",
+       "ipbcreateaccount": "Ccrejaziune d'u cunde utende",
+       "ipbemailban": "Stoche a manne 'n'e-mail",
        "ipbenableautoblock": "Automaticamende blocche l'urteme indirizze IP ausate da stu utende e tutte le sottosequenze de le IP ca onne state ausate pe cangià",
        "ipbsubmit": "Blocche st'utende",
        "ipbother": "Otre orarie:",
        "ipboptions": "2 ore:2 hours,1 giurne:1 day,3 giurne:3 days,1 sumane:1 week,2 sumane:2 weeks,1 mese:1 month,3 mise:3 months,6 mise:6 months,1 anne:1 year,infinite:infinite",
        "ipbhidename": "Scunne le nome utinde da le cangiaminde e da le liste",
        "ipbwatchuser": "Vide a pàgena utende e quedde de le 'ngazzaminde de stu utende",
-       "ipb-disableusertalk": "Non ge face cangià a stu utende 'a pàgena de le 'ngazzaminde sue fine ca jè bloccate",
+       "ipb-disableusertalk": "Stoche a cange a le pàggene de le 'ngazzaminde lore",
        "ipb-change-block": "Blocche 'n'otra vote l'utende cu ste 'mbostaziune",
        "ipb-confirm": "Conferme 'u blocche",
        "ipb-sitewide": "Tutte 'u site",
        "ipb-partial": "Parziale",
-       "ipb-type-label": "Tipe",
        "ipb-pages-label": "Pàggene",
        "badipaddress": "Indirizze IP invalide",
        "blockipsuccesssub": "Blocche effettuate",
        "ipb-blocklist": "Vide le blocche ca esistene",
        "ipb-blocklist-contribs": "Condrebbute pe {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 mangande",
+       "block-expiry": "More:",
        "unblockip": "Sblocche l'utende",
        "unblockiptext": "Ause 'a maschera aqquà sotte pe repristinà l'accesse in scritture a le indirizze IP o a le cunde utinde ca apprime avèrene state bloccate.",
        "ipusubmit": "Live stu blocche",
index f0b871f..bd39b34 100644 (file)
        "resetpass-abort-generic": "Изменение пароля было прервано расширением.",
        "resetpass-expired": "Срок действия вашего пароля истёк. Пожалуйста, установите новый пароль для входа в систему.",
        "resetpass-expired-soft": "Срок действия вашего пароля истёк, и теперь он должен быть изменён. Пожалуйста, выберите новый пароль или нажмите «{{int:authprovider-resetpass-skip-label}}», чтобы изменить его позже.",
+       "resetpass-validity": "Ваш пароль неверен: $1\n\nУстановите новый пароль для входа в систему.",
        "resetpass-validity-soft": "Задан некорректный пароль: $1\n\nПожалуйста, выберите новый пароль или нажмите «{{int:authprovider-resetpass-skip-label}}», чтобы изменить его позже.",
        "passwordreset": "Сброс пароля",
        "passwordreset-text-one": "Заполните эту форму, чтобы сбросить свой пароль.",
        "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Обратите внимание, что вы не сможете использовать функцию «{{int:emailuser}}», если в своих [[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Обратите внимание, что вы не сможете использовать функцию «{{int:emailuser}}», если в своих [[Special:Preferences|персональных настройках]] не задали или не подтвердили корректный адрес электронной почты, или если ваша блокировка включает запрет отправки писем подобным образом.\n\nВаш IP-адрес — $3, идентификатор блокировки — #$5.\nПожалуйста, указывайте эти сведения в любых своих обращениях.",
        "systemblockedtext": "Ваше имя участника или IP-адрес были автоматически заблокированы MediaWiki.\nУказана следующая причина:\n\n:<em>$2</em>\n\n* Начало блокировки: $8\n* Окончание блокировки: $6\n* Цель блокировки: $7\n\nВаш текущий IP-адрес $3.\nПожалуйста, указывайте все эти сведения в любых своих обращениях.",
+       "actionblockedtext": "Вам запрещено выполнять это действие.",
        "blockednoreason": "причина не указана",
        "whitelistedittext": "Вы должны $1 для изменения страниц.",
        "confirmedittext": "Вы должны подтвердить свой адрес электронной почты перед правкой страниц.\nПожалуйста, введите и подтвердите свой адрес электронной почты в своих [[Special:Preferences|персональных настройках]].",
        "duplicate-args-category-desc": "Страницы, содержащие вызовы шаблонов, использующие повторяющиеся аргументы, такие как <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> или <code><nowiki>{{foo|bar|1=bar}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Внимание!''' Эта страница содержит слишком много вызовов ресурсоёмких функций.\n\nДолжно быть не более {{PLURAL:$2|$2 вызова|$2 вызовов|1=одного вызова}}, в то время как сейчас здесь $1 {{PLURAL:$1|вызов|вызовов|вызова}}.",
        "expensive-parserfunction-category": "Страницы со слишком большим количеством вызовов ресурсоёмких функций",
-       "post-expand-template-inclusion-warning": "Предупреждение: суммарный размер включаемых шаблонов слишком велик.\nНекоторые шаблоны не будут включены.",
+       "post-expand-template-inclusion-warning": "<strong>Внимание:</strong> суммарный размер включаемых шаблонов слишком велик.\nНекоторые шаблоны не будут включены.",
        "post-expand-template-inclusion-category": "Страницы, для которых превышен допустимый размер включаемых шаблонов",
        "post-expand-template-argument-warning": "'''Внимание:''' эта страница содержит по крайней мере один шаблон, аргумент которого имеет слишком большой размер развёртывания.\nПодобные аргументы были опущены.",
        "post-expand-template-argument-category": "Страницы, содержащие пропущенные аргументы шаблонов",
        "blockip": "Заблокировать {{GENDER:$1|участника|участницу}}",
        "blockiptext": "Используйте форму ниже, чтобы заблокировать возможность редактирования с определённого IP-адреса или имени участника.\nЭтот инструмент следует использовать для предотвращения вандализма и только в соответствии с [[{{MediaWiki:Policy-url}}|правилами]].\nНиже укажите конкретную причину (к примеру, процитируйте некоторые страницы с признаками вандализма).\nВы можете заблокировать диапазоны IP-адресов, используя [https://ru.wikipedia.org/wiki/Бесклассовая_адресация CIDR]-синтаксис. Максимально допустимый диапазон — /$1 для протокола IPv4 и /$2 для протокола IPv6.",
        "ipaddressorusername": "IP-адрес или имя участника:",
-       "ipbexpiry": "Закончится через:",
        "ipbreason": "Причина:",
        "ipbreason-dropdown": "* Стандартные причины блокировок\n** Вставка ложной информации\n** Удаление содержимого страниц\n** Спам-ссылки на внешние сайты\n** Добавление бессмысленного текста/мусора\n** Угрозы, преследование участников\n** Злоупотребление несколькими учётными записями\n** Неприемлемое имя участника",
        "ipb-hardblock": "Запретить представившимся участникам редактирование с этого IP-адреса",
-       "ipbcreateaccount": "Ð\97апÑ\80еÑ\82иÑ\82Ñ\8c Ñ\81оздание Ð½Ð¾Ð²Ñ\8bÑ\85 учётных записей",
-       "ipbemailban": "Ð\97апÑ\80еÑ\82иÑ\82Ñ\8c Ñ\83Ñ\87аÑ\81Ñ\82никÑ\83 Ð¾Ñ\82пÑ\80авлÑ\8fÑ\82Ñ\8c Ð¿Ð¸Ñ\81Ñ\8cма Ð¿Ð¾ Ñ\8dлекÑ\82Ñ\80онной Ð¿Ð¾Ñ\87Ñ\82е",
+       "ipbcreateaccount": "Создание учётных записей",
+       "ipbemailban": "Ð\9eÑ\82пÑ\80авка Ð¿Ð¸Ñ\81ем",
        "ipbenableautoblock": "Автоматически блокировать используемые участником IP-адреса",
        "ipbsubmit": "Заблокировать этот адрес/участника",
        "ipbother": "Другое время:",
        "ipboptions": "2 часа:2 hours,1 день:1 day,3 дня:3 days,1 неделя:1 week,2 недели:2 weeks,1 месяц:1 month,3 месяца:3 months,6 месяцев:6 months,1 год:1 year,бессрочно:infinite",
        "ipbhidename": "Скрыть имя участника из правок и списков",
        "ipbwatchuser": "Добавить в список наблюдения личную страницу участника и его страницу обсуждения",
-       "ipb-disableusertalk": "Ð\97апÑ\80еÑ\82иÑ\82Ñ\8c Ñ\8dÑ\82омÑ\83 Ñ\83Ñ\87аÑ\81Ñ\82никÑ\83 Ñ\80едакÑ\82иÑ\80оваÑ\82Ñ\8c Ñ\81воÑ\8e Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 обсуждения",
+       "ipb-disableusertalk": "РедакÑ\82иÑ\80ование Ñ\81воей Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b обсуждения",
        "ipb-change-block": "Переблокировать участника с этими настройками",
        "ipb-confirm": "Подтвердить блокировку",
        "ipb-sitewide": "Во всём проекте",
        "ipb-partial": "Частичная",
-       "ipb-type-label": "Тип",
        "ipb-pages-label": "Страницы",
        "badipaddress": "IP-адрес записан в неправильном формате, или участника с таким именем не существует.",
        "blockipsuccesssub": "Блокировка произведена",
        "ipb-blocklist": "Показать действующие блокировки",
        "ipb-blocklist-contribs": "Вклад {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "осталось $1",
+       "block-actions": "Действия для блокировки:",
+       "block-expiry": "Закончится через:",
+       "block-options": "Дополнительные опции:",
+       "block-prevent-edit": "Редактирование",
+       "block-reason": "Причина:",
+       "block-target": "Имя участника или IP-адрес:",
        "unblockip": "Разблокировать участника",
        "unblockiptext": "Используйте форму ниже, чтобы восстановить возможность редактирования с ранее заблокированного IP-адреса или учётной записи.",
        "ipusubmit": "Снять эту блокировку",
        "specialpages-group-developer": "Инструменты разработчика",
        "blankpage": "Пустая страница",
        "intentionallyblankpage": "Эта страница намеренно оставлена пустой",
+       "disabledspecialpage-disabled": "Данная страница была отключена системным администратором.",
        "external_image_whitelist": " #Оставьте эту строчку такой, как она есть<pre>\n#Разместите здесь фрагменты регулярных выражений (ту часть, что находится между //)\n#они будут соотнесены с URL внешних изображений.\n#Подходящие будут показаны как изображения, остальные будут показаны как ссылки на изображения.\n#Строки, начинающиеся с # считаются комментариями.\n#Строки не чувствительны к регистру\n\n#Размещайте фрагменты регулярных выражений над этой строчкой. Оставьте эту строчку такой, как она есть.</pre>",
        "tags": "Действующие метки изменений",
        "tag-filter": "Фильтр [[Special:Tags|меток]]:",
index 1663281..f51d68f 100644 (file)
        "blockip": "Заблоковати хоснователя",
        "blockiptext": "Тот формуларь служыть про заблокованя едітованя з конкретной IP адресы або мена хоснователя.\nТото бы мало быти хосноване лем в згодї з [[{{MediaWiki:Policy-url}}|правилами]].\nЗадайте причіну ниже (наприклад вкажте, котры сторінкы были пошкоджены).",
        "ipaddressorusername": "IP-адреса або мено хоснователя:",
-       "ipbexpiry": "Кінчіть:",
        "ipbreason": "Причіна:",
        "ipbreason-dropdown": "*Часты причіны блокованя\n** Вкладаня неправдивых інформацій\n** Одстранёваня обсягу сторінок\n** Вкладаня рекламных екстерных одказів\n** Вкладаня незмыслїв\n** Застрашованя або выгрожованя\n** Знеужываня веце конт\n** Невгодне мено хоснователя",
        "ipb-hardblock": "Заборонити приголошеным хоснователям едітовати з той IP-адресы",
        "ipb-unblock": "Одблоковати хоснователя або  IP адресу",
        "ipb-blocklist": "Вказати екзістуючі блокованя",
        "ipb-blocklist-contribs": "Приспевкы хоснователя  $1",
+       "block-expiry": "Кінчіть:",
        "unblockip": "Одблоковати хоснователя",
        "unblockiptext": "Тым формуларём є можне обновити права блокованой IP адресы ці хоснователя знову приспівати до  {{grammar:2sg|{{SITENAME}}}}.",
        "ipusubmit": "Зняти тото блокованя",
index 2de9e79..291a880 100644 (file)
        "blockip": "{{GENDER:$1|सदस्यः}} अवरुद्ध्यताम्",
        "blockiptext": "विशिष्टं  IP सङ्केतम् अथवा सदस्यनाम लेखानाधिकारस्य प्राप्तये निम्नदत्तपत्रस्य उपयोगं करोतु ।\nकेवलं नाशकत्वम् अवरोद्धुं एतस्य उपयोगं करोतु । [[{{MediaWiki:Policy-url}}|नीतिः]] इत्यानुसारं करणीयम् ।\nअधः विशिष्टं कारणमपि लिखतु ।",
        "ipaddressorusername": "आइ.पी.सङ्केतः अथवा सदस्यनाम :",
-       "ipbexpiry": "समाप्तिः :",
        "ipbreason": "कारणम् :",
        "ipbreason-dropdown": "* अवरोधस्य सामान्यानि कारणानि ।  \n** मिथ्या सदस्यनाम । \n** एकाधिकयोजकस्थानं निर्मीय तेषां दुरुपयोगः । \n** असत्यविषयानाम् उत्तारणम् । \n** पुटेषु अवकरपूरणम् । \n** पुटेभ्यः पदार्थान् अपनयनम् । \n** बाह्यजालस्थानाम् असम्बद्धानुबन्धानाम् संयोजनम् । \n** सदस्यानां पीडनम् ।",
        "ipb-hardblock": "नामाभिलेखितयोजकान् अनेन ऐपि सङ्केतेन सम्पादनं निवारयतु ।",
        "ipb-unblock": "सदस्यनाम अथवा ऐपिसङ्केतम् अवरुणद्धु ।",
        "ipb-blocklist": "वर्तमानावरोधान् अवलोकयतु ।",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} कृते योगदानम्",
+       "block-expiry": "समाप्तिः :",
        "unblockip": "योजकसु अवरोधं परिहरतु ।",
        "unblockiptext": "सद्यः अवरुद्धान् ऐपिसङ्केतान् अथवा अवरुद्धानि योजकनामानि पुनस्संस्थाप्य लिखनावकाशं प्राप्तुम् अधो दत्तप्रपत्रस्य उपयोगं करोतु ।",
        "ipusubmit": "अवरोधम् अपनयतु ।",
index fcd25c4..a8387d2 100644 (file)
        "blockip": "{{GENDER:$1|Кыттааччыны}} хааччахтаа",
        "blockiptext": "Ханнык эмит IP-ттан биитэр бэлиэ-ааттан суруйары манна баар форманы туһанан боп.\nБандааллааһыны утаран уонна [[{{MediaWiki:Policy-url}}|быраабылалары]]\nтутуһан эрэ бобуохтааххын.\nХайаан да бобуу төрүөтүн кэпсээ (холобур, бандааллааһын баар сирэйдэриттэн\nбыһа тардан көрдөр).\nIP-аадырыс диапазонун [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] туһанан хааччахтыаххын сөп.\nХааччах муҥутуур диапазона IPv4 боротокуолга - /$1, IPv6 боротокуолга - /$2.",
        "ipaddressorusername": "IP аадырыһа эбэтэр кыттааччы аата:",
-       "ipbexpiry": "Түмүктэниэ:",
        "ipbreason": "Төрүөтэ:",
        "ipbreason-dropdown": "* Бобуу сүрүн биричиинэлэрэ\n** Сымыйаны суруйуу\n** Сирэй иһинээҕитин суох оҥоруу\n** Тас саайтарга спам-ыйынньыктары олордуу\n** Туох да суолтата суох тиэкиһи суруйуу\n** Кыттааччыларга суоһурҕаныы, күөмчүлээһин\n** Хас да аатынан киирэн куһаҕаны оҥоруу\n** Бүрүкүтэ суох ааттаныы",
        "ipb-hardblock": "Бу IP-ттан киирбит дьон ыстатыйалары уларыталларын хааччахтааһын",
        "ipb-blocklist": "Бобуулары көрдөр",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} суруйуута",
        "ipb-blocklist-duration-left": "$1 хаалла",
+       "block-expiry": "Түмүктэниэ:",
        "unblockip": "Кыттааччыны көҥүллээ",
        "unblockiptext": "IP эбэтэр кыттааччы көннөрөр/уларытар быраабын манна баар форманы туһанан төннөр.",
        "ipusubmit": "Хааччаҕын уһул",
index 67d9a98..da6d921 100644 (file)
        "blockip": "Blocca {{GENDER:$1|impitadore}}",
        "blockiptext": "Usa il modulo sottostante per bloccare l'accesso con diritto di scrittura da uno specifico indirizzo IP. Questo blocco deve essere operato SOLO per prevenire atti di vandalismo, ed in stretta osservanza dei principi tutti della [[{{MediaWiki:Policy-url}}|policy di {{SITENAME}}]]. Il blocco non può in nessun caso essere applicato per motivi ideologici.\nScrivi un motivo specifico per il quale questo indirizzo IP dovrebbe a tuo avviso essere bloccato (per esempio, cita i titoli di pagine eventualmente già oggetto di vandalismo editoriale).",
        "ipaddressorusername": "Indiritzu IP o nùmene impitadore:",
-       "ipbexpiry": "Scadèntzia:",
        "ipbreason": "Motivu:",
        "ipbsubmit": "Blocca custu impitadore",
        "ipbother": "Àteru perìodu:",
        "ipb-edit-dropdown": "Càmbia su motivu de su bloccu",
        "ipb-unblock-addr": "Sblocca $1",
        "ipb-blocklist-contribs": "Contributziones de {{GENDER:$1|$1}}",
+       "block-expiry": "Scadèntzia:",
        "unblockip": "Sblocca s'impitadore",
        "unblockiptext": "Usa il modulo sottostante per restituire il diritto di scrittura ad un indirizzo IP precedentemente bloccato.",
        "ipusubmit": "Boga custu bloccu",
index 27ded93..5e4e2cc 100644 (file)
        "blockip": "Blocca a {{GENDER:$1|st'utenti|st'utenti}}",
        "blockiptext": "Usa lu mòdulu cassutta pi bluccari la pussibbilità di scrìviri pi n'utenti o pi nu ndirizzu IP spicìficu. Chistu s'havi a fari sulu pi privèniri lu vannalismu e secunnu la [[{{MediaWiki:Policy-url}}|pulìtica di {{SITENAME}}]]. Scrivi na raggiùni valida ccà sutta (pi asempiu, cita li pàggini chi foru vannalizzati).",
        "ipaddressorusername": "Nnirizzu IP o nomu utenti:",
-       "ipbexpiry": "Durata dû bloccu:",
        "ipbreason": "Mutivu:",
        "ipbreason-dropdown": "*Mutivi cchiù cumuni pî blocchi\n** Nzirimentu di nfurmazzioni fàusi\n** Cancillazzioni di cuntinuti dê pàggini\n** Liami prumuzziunali a siti esterni\n** Nzirimentu di cuntinuti privi di senzu\n** Cumpurtamenti ntimidatori o mulesti\n** Usu nun duvutu di cchiù cunti\n** Nomu utenti nun accittàbbili",
        "ipb-hardblock": "Mpidisci a l'utenti trasuti di fari canciamenti di stu nnirizzu IP",
        "ipb-unblock": "Sblocca a n'utenti o nu nnirizzu IP",
        "ipb-blocklist": "Talìa li blocchi n viguri",
        "ipb-blocklist-contribs": "Cuntribbuti di {{GENDER:$1|$1}}",
+       "block-expiry": "Durata dû bloccu:",
        "unblockip": "Sblocca a l'utenti",
        "unblockiptext": "Adupirari lu mòdulu suttastanti pi'arristituiri l'accessu n scrittura a nu nnirizzu IP o nomu utenti ca fu bluccatu.",
        "ipusubmit": "Leva stu bloccu",
index 9153ef5..2d6c483 100644 (file)
        "blockip": "Block {{GENDER:$1|uiser}}",
        "blockiptext": "Uise the form ablo tae block write access fae ae speceefic IP address or uisername. This shid be dun juist tae hinder vandaleesm, n in accord wi [[{{MediaWiki:Policy-url}}|policie]]. Fil in ae speceefic raison ablo (fer exemplar, citin parteecular pages that were vandalised).",
        "ipaddressorusername": "IP address or uisername:",
-       "ipbexpiry": "Expirie:",
        "ipbreason": "Raison:",
        "ipbreason-dropdown": "*Commyn block raisons\n** Insertin false information\n** Remuivin content fae pages\n** Spammin airtins til ootby steids\n** Insertin nonsense/gibberish intil pages\n** Inteemidatin behavier/harassment\n** Abuisin multiple accoonts\n** Onacceptable uisername",
        "ipb-hardblock": "Stap loggit-in uisers fae eeditin fae this IP address",
        "ipb-unblock": "Onblock ae uisername or IP address",
        "ipb-blocklist": "See exeestin blocks",
        "ipb-blocklist-contribs": "Contreebutions fer {{GENDER:$1|$1}}",
+       "block-expiry": "Expirie:",
        "unblockip": "Onblock uiser",
        "unblockiptext": "Uise the form ablo tae restore screevin richts\ntil aen afore-blockit IP address or uisername.",
        "ipusubmit": "Remuive this block",
index 6d213c5..aa7443b 100644 (file)
        "unblock": "واپرائيندڙ کي اڻبندشيو",
        "blockip": "{{GENDER:$1|واپرائيندڙ}} تي بندش وجھو",
        "ipaddressorusername": "آئي پي پتو يا واپرائيندڙ-نانءُ:",
-       "ipbexpiry": "اختتام:",
        "ipbreason": "سبب:",
        "ipbother": "ٻيو وقت:",
        "ipboptions": "2 ڪلاڪ:2 hours,1 ڏينهن:1 day,3 days:3 days,1 هفتو:1 week,2 weeks:2 weeks,1 مهينا:1 month,3 مهينا:3 months,6 مهينا:6 months,1 سال:1 year,اڻ کٽ:infinite",
        "badipaddress": "ناقابلڪار آءِ پي پتو",
        "blockipsuccesssub": "بندش ڪامياب ٿي",
        "ipb-blockingself": "اوهان پنهنجي پاڻ تي بندش وجهي رهيا آهيو! ڇا اوهان اهو ڪرڻ پسند ڪندو؟",
+       "block-expiry": "اختتام:",
        "unblockip": "واپرائيندڙ کي اڻبندشيو",
        "ipusubmit": "اها بندش هٽايو",
        "unblocked-range": "$1 تان بندش هٽي چڪي آهي.",
index 6db403f..3811db9 100644 (file)
        "whatlinkshere-filters": "Filthri",
        "blockip": "Brocca utenti",
        "ipaddressorusername": "Indirizzu IP o innòmu utenti:",
-       "ipbexpiry": "Ischadènzia di lu broccu:",
        "ipbreason": "Mutibu di lu broccu:",
        "ipbcreateaccount": "Impidisci la criazioni d'althri registhrazioni",
        "ipbemailban": "Impidisci a l'utenti l'inviu di postha erettrònica",
        "ipb-unblock-addr": "Ibbrucca $1",
        "ipb-unblock": "Ibbrucca un'utenti o un'indirizzu IP",
        "ipb-blocklist": "Erenca i brocchi attibi",
+       "block-expiry": "Ischadènzia di lu broccu:",
        "unblockip": "Ibbrucca l'utenti",
        "unblockiptext": "Usà lu mòdulu in giossu pa turrà l'intradda i'ischrittura a un'utenti o indirizzu IP broccaddu.",
        "ipusubmit": "Ibbrucca chisth'indirizzu",
index 30b7d86..48ffc2a 100644 (file)
        "block": "Hehtte geavaheaddji",
        "blockip": "Hehtte rievdadeamis",
        "ipaddressorusername": "IP-čujuhus dahje geavaheaddjidovddaldat",
-       "ipbexpiry": "Guhkkodat",
        "ipbreason": "Sivva",
        "ipbreason-dropdown": "*Dábálas cakkastallansivat\n** Boasto dieđuid lasiheapmi\n** Sisdoalu sihkkun\n** Reklámaliŋkkaid lasiheapmi\n** Moiven dahje ruskkaid lasiheapmi\n** Hehtten\n** Maŋgga geavaheaddjidovddaldaga geaveaheapmi boastut\n** Fasttes geavaheaddjidovddaldat",
        "ipbcreateaccount": "Eastte dovddaldagaid ráhkadeami",
        "ipb-edit-dropdown": "Rievdat sivaid",
        "ipb-unblock-addr": "Sihko geavaheaddji $1 estema",
        "ipb-unblock": "Sihko geavaheaddji dahje IP-čujuhusa rievdadaneasttu",
+       "block-expiry": "Guhkkodat",
        "ipblocklist": "Listu cakkojuvvon IP-adreassain ja geavaheddjiin",
        "ipblocklist-submit": "Oza",
        "infiniteblock": "bissovaččat",
index 71549ac..b4ffcae 100644 (file)
@@ -31,9 +31,9 @@
        "tog-enotifminoredits": "Bataga sanba yane da nda moɲey nda tukey barmay kayna",
        "tog-enotifrevealaddr": "Ay bataga aderesoo cebe bayrandi batagawey ra",
        "tog-shownumberswatching": "Goykey kaŋ ga moɲoo hawgay hinnaa cebe",
-       "tog-oldsig": "Kanbežeeri barantaa:",
-       "tog-fancysig": "Kanbežeero tee sanda wikihantum (bila nda nga boŋdobu)",
-       "tog-uselivepreview": "Cebe kaŋ a ga dira",
+       "tog-oldsig": "War kanbežeeri barantaa:",
+       "tog-fancysig": "Kanbežeero tee sanda wikihantum (bila nda nga boŋ dobu)",
+       "tog-uselivepreview": "Moofurey cebe bila nda moɲoo ma zumandi taaga",
        "tog-forceeditsummary": "Ay šaawar nda fasal durandiyan koonu ga huru",
        "tog-watchlisthideown": "Ay boŋ fasalyaney tugu hawgayhayey ra",
        "tog-watchlisthidebots": "Maršin fasalyaney tugu hawgayhayey ra",
@@ -44,9 +44,9 @@
        "tog-ccmeonemails": "Batagawey kaŋ ay g'i sanba goykaw taney se gaabu yane",
        "tog-diffonly": "Ma ši moo gundekuna cebe fayarey cire",
        "tog-showhiddencats": "Duni tugantey cebe",
-       "tog-norollbackdiff": "Ma ši fayari cebe taagandiyan waate",
+       "tog-norollbackdiff": "Ma ši fayari cebe taagandiyan banda ga",
        "tog-useeditwarning": "Ay šaawar waati kaŋ ay ga fasal moo naŋ bila nda barmawey ma gaabundi",
-       "tog-prefershttps": "Ciyari saajante tee waati kul ka huru",
+       "tog-prefershttps": "Ciyari saajante tee waati kul kaŋ n huru",
        "underline-always": "Waati kul",
        "underline-never": "Abada",
        "underline-default": "Kuusu wala ceecikaw tilasu",
        "october-date": "Oktoobur $1",
        "november-date": "Noowanbur $1",
        "december-date": "Deesanbur $1",
+       "period-am": "Subbaahi",
+       "period-pm": "Zaarikay",
        "pagecategories": "{{PLURAL:$1|Dumi|Dumey}}",
        "category_header": "Moɲey dumi \"$1\" ra",
        "subcategories": "Dumi-izey",
        "morenotlisted": "Maašeedaa woo mana timme.",
        "mypage": "Moo",
        "mytalk": "Šelaŋ",
-       "anontalk": "Šelaŋ IP aderesoo woo se",
+       "anontalk": "Šelaŋ",
        "navigation": "Naaruyan",
        "and": "&#32;nda",
        "faq": "Hãa ka faham",
        "returnto": "Willi $1 ga.",
        "tagline": "Hun {{SITENAME}} ga",
        "help": "Faaba",
+       "help-mediawiki": "Faaba MediaWiki ga",
        "search": "Ceeci",
+       "search-ignored-headings": "#<!-- ma ši žeero woo barmay kul --> <pre>\n# Tammaasawey kaŋ ceeciyanoo g'i muray.\n# Ne barmawey ga huru goy ra za moɲoo nda tammaasaa šilbandi.\n# War ga hin ka moɲoo gaabi k'a šilbay taaga nda war na barmayyan koonu tee.\n# Nahawoo ti sanda:\n#   * Haya kul kaŋ hun \"#\" harfu ga hala žeeri benantaa ga ti daara.\n#   * Žeeri kaŋ ši koonu kul ti maa alhakiika kaŋ ga murandi, šigira azzaati da goo a ra.\nFellawey\nTarayhere dobey\nGuna da\n #</pre> <!-- ma ši žeero woo barmay kul -->",
        "searchbutton": "Ceeci",
        "go": "Koy",
        "searcharticle": "Koy",
        "history": "Moo taariki",
        "history_short": "Taariki",
+       "history_small": "taariki",
        "updatedmarker": "kaŋ taagandi z'ay naarumi koraa",
        "printableversion": "Karyan dumi",
        "permalink": "Dobu duumante",
        "talk": "Deedeyan",
        "views": "Gunarey",
        "toolbox": "Goyjinawey",
+       "tool-link-userrights": "{{GENDER:$1|goykaw}} batey barmay",
+       "tool-link-userrights-readonly": "{{GENDER:$1|goykaw}} batey guna",
+       "tool-link-emailuser": "Bataga sanba {{GENDER:$1|goykaa woo}} se",
        "imagepage": "Tuku moo guna",
        "mediawikipage": "Bataga moo guna",
        "templatepage": "Leeti moo guna",
        "redirectedfrom": "(Kaŋ $1 n'a bisandi)",
        "redirectpagesub": "Bisandi moo",
        "redirectto": "Bisandi ne:",
-       "lastmodifiedat": "Moɲoo barmay cee koraa $1 hane, $2 waate.",
+       "lastmodifiedat": "Moɲoo woo barmay koraa tee $1 hane, $2 waate.",
        "viewcount": "Moɲoo woo duwandi {{PLURAL:$1|cee foo|$1 cee booboyaŋ}}.",
        "protectedpage": "Moo jejebante",
        "jumpto": "Sar ne:",
        "pool-queuefull": "Batuyan šillo too",
        "pool-errorunknown": "Firka šibayante",
        "pool-servererror": "Batuyan goy kabukaw ši duwandi ($1).",
+       "poolcounter-usage-error": "Goyyan firka: $1",
        "aboutsite": "{{SITENAME}} ga",
        "aboutpage": "Porože:Bayray",
        "copyright": "Gundekuna ga bara $1 cire nda manti kakaw ra.",
        "disclaimers": "Yaamarey",
        "disclaimerpage": "Project: Hankul yaamar",
        "edithelp": "Fasalyan faaba",
+       "helppage-top-gethelp": "Faaba",
        "mainpage": "Šintin moo",
        "mainpage-description": "Šintin moo",
        "policy-url": "Project:Laada",
        "nstab-template": "Leeti",
        "nstab-help": "Faaba moo",
        "nstab-category": "Dumi",
+       "mainpage-nstab": "Šintin moo",
        "nosuchaction": "Teera tanaa woo šii",
        "nosuchactiontext": "Goyoo kaŋ tabatandi URL ra ši tee.\nMane firka bara URL hantumoo ra, wala dobu laala ma hanga.\nWoo ga hin ka tee da hasaraw {{SITENAME}} goy porogaramoo ra.",
        "nosuchspecialpage": "Cerecere moɲoo woo ši bara",
        "laggedslavemode": "<strong>Yaamar:</strong> A ga hin ka tee taagandiri korawey šii moɲoo ra.",
        "readonly": "Bayrayhugu kufalante",
        "enterlockreason": "Dalin dam kaŋ kufaloo se, sanda ka žimam waati kaŋ kufaloo ka feera",
-       "readonlytext": "Juwalkaa kaŋ n'a kufal na daliloo woo noo: $1",
+       "readonlytext": "Dabariɲaa juwalkaa kaŋ n'a kufal na daliloo woo noo: $1",
        "missing-article": "Bayrayhugoo mana dii moo foo hantumoo kaŋ a hima ka duu w'a, kaŋ maaɲoo ti \"$1\" $2.",
        "missingarticle-rev": "(barmayyan#: $1)",
        "missingarticle-diff": "(Barmay: $1, $2)",
        "readonly_lag": "Bayrayhugoo n' ka kufalandi nga boŋše waati kaŋ alhaadimi bayrayhugu feršikey ga feršikaw jinehuno gaarandi",
        "internalerror": "Kunahere firka",
        "internalerror_info": "Kunahere firka: $1",
+       "internalerror-fatal-exception": "\"$1\" hasaraw laala dumi",
        "filecopyerror": "Mana hin ka tuku \"$1\" bere \"$2\" ga.",
        "filerenameerror": "Mana hin ka tuku \"$1\" maa barmay \"$2\" ga.",
        "filedeleteerror": "Mana hin ka tuku \"$1\" tuusu.",
        "directorycreateerror": "Mana hin ka fooloɲaa \"$1\" tee.",
+       "directoryreadonlyerror": "\"$1\" fooloɲaŋoo ti cawyan de se.",
+       "directorynotreadableerror": "\"$1\"fooloɲaŋoo ši hin ka cawandi.",
        "filenotfound": "Mana hin ka duu tuku \"$1\" barmay.",
        "unexpected": "Hinna kaŋ mana naanandi: \"$1\"=\"$2\".",
        "formerror": "Firka: Mana hin ka takari sanba.",
        "badarticleerror": "Goyoo woo ši hin ka tee moɲoo woo ga.",
        "cannotdelete": "\"$1\" moo wala tuku mana hin ka tuusandi.",
        "cannotdelete-title": "Ši hi ka \"$1\" moɲoo tuusu",
+       "delete-scheduled": "\"$1\" moɲoo ka kaa ka tuusandi.\nSuuri kayna.",
        "delete-hook-aborted": "Dobu foo na tuusuroo ganji.\nA mana dalil kul noo.",
        "no-null-revision": "Mana hin ka yaada-barmay taaga tee \"$1\" moo se",
        "badtitle": "Maa laala",
        "viewsource": "Aššil guna",
        "viewsource-title": "Aššil guna $1 se",
        "actionthrottled": "Goy nakasante",
-       "actionthrottledtext": "Ka žiibi bataga ganji, war ga hin ka goyoo woo tee de cee fooyaŋ waati dunba ra, nda war na adadoo din hoo.\nTaare wa ceeci koyne minitiyaŋ ra.",
+       "actionthrottledtext": "Ka žiibi bataga ganji, war ga hin ka goyoo woo tee de cee fooyaŋ waati dunba ra, nda war na adadoo din hoo.\nCeeci koyne minitiyaŋ ra.",
        "protectedpagetext": "Moɲoo woo n' ka jejebandi ka barmayyan wala goy tanayaŋ ganji.",
-       "viewsourcetext": "War ga hin ka dii moɲoo ašsiloo nda k'a bere:",
-       "viewyourtext": "War ga hin ka dii <strong>war fasalyaney</strong> aššilo nda k'i bere:",
+       "viewsourcetext": "War ga hin ka moɲoo ašsiloo guna k'a bere.",
+       "viewyourtext": "War ga hin ka dii <strong>war fasalyaney</strong> moɲoo woo here.",
        "protectedinterface": "Moɲoo woo ka hantumoo cebe wikiyoo woo porogaramoo se nd'a ga jejebu hasaraw teekey ga. Goy nda [https://translatewiki.net/ translatewiki.net], MediaWiki berandiyan porožewoo ka berandiyaŋ tonton wala k'i barmay.",
        "editinginterface": "<strong>Yaamar:</strong> War goo ma moo fasal kaŋ nd'i ga goy ka goyjinaa porogaram hantumoo cebe. \nBarmawey kaŋ ga tee moɲoo ka hantumey kaŋ goykaw ga dii y'ey bere wikiyoo woo ga.",
        "translateinterface": "Ka berandiyan tonton wala k'i barmay, wa goy nda [https://translatewiki.net/ translatewiki.net], MediaWiki berandiyan porožewoo.",
-       "cascadeprotected": "Moɲoo woo ga jejebu barmayyan ga zam'a goo ne {PLURAL:$1|moo kaŋ ti|moɲey kaŋ ti}} jejebante nda \"kaŋandiyan\" suubari kaŋ ga dira: \n$2",
+       "cascadeprotected": "Moɲoo woo ga jejebu barmayyan ga zam'a goo ne {{PLURAL:$1|}}|moo kaŋ ti|moɲey kaŋ ti}} jejebante nda \"kaŋandiyan\" suubaroo kaŋ ga dira: \n$2",
        "namespaceprotected": "War šii nda fondo ka moɲey barmay <strong>$1</strong> maadogoo ra.",
        "customcssprotected": "War šii nda fondo ka CSS moɲoo woo barmay zama goykaw tana foo boŋkayandiyaney g'a ra.",
        "customjsprotected": "War šii nda fondo ka JavaScript barmay zama a goo nda goykaw tana foo boŋkayandiyaney.",
        "mycustomcssprotected": "War šii nda fondo ka CSS moɲoo woo barmay.",
+       "mycustomjsonprotected": "War šii nda fondo ka JSON moɲoo woo barmay.",
        "mycustomjsprotected": "War šii nda fondo ka JavaScript moɲoo woo barmay.",
        "myprivateinfoprotected": "War šii nda fondo ka war sutura alhabaroo moɲoo woo barmay.",
        "mypreferencesprotected": "War šii nda fondo ka war ibaayey barmay.",
        "ns-specialprotected": "Moo cerecerantey ši hin ka barmandi.",
        "titleprotected": "[[User:$1|$1]] na maaɲoo woo jejebu za teeyanoo ga.\nI na daliloo noo <em>$2</em> ra.",
-       "filereadonlyerror": "Mana hin ka \"$1\" tukoo barmay zama tuku \"$2\" jišidogoo goo cawyan-hinne alhaali ra.\n\nJuwalkaa kaŋ n'a kufal na daliloo woo noo: \"$3\"",
+       "filereadonlyerror": "Mana hin ka \"$1\" tukoo barmay zama tuku \"$2\" jišidogoo goo cawyan-hinne alhaali ra.\n\nDabariɲaa juwalkaa kaŋ n'a kufal na daliloo woo noo: \"$3\".",
        "invalidtitle-knownnamespace": "Maa laala \"$2\" maadogoo nda \"$3\" hantumoo bande",
        "invalidtitle-unknownnamespace": "Maa laala maadoo hinna \"$1\" šibayante nda \"$2\" hantumoo bande",
        "exception-nologin": "Mana huru",
        "virus-scanfailed": "gunari kaŋ (ašariya $1)",
        "virus-unknownscanner": "wirisi safari šibayante:",
        "logouttext": "Bay kaŋ moɲey jerey ga hin ka gaabandi ka cebe sanda war n' ka cindi ka huru, hala war ma ceecikaw tugudogoo tuusu.",
+       "cannotlogoutnow-title": "Ši hin ka huru sohõ",
+       "cannotlogoutnow-text": "Fattayan ši tee waati kaŋ $1 ga goyandi.",
        "welcomeuser": "Kubayni, $1!",
        "welcomecreation-msg": "War kontoo tee ka ben.\nWar ga hin ka war {{SITENAME}} [[Special:Preferences|ibaayey]] barmay nda war ga baa.",
        "yourname": "Goykaw maa:",
        "createacct-yourpasswordagain-ph": "Šennikufal dam taaga",
        "userlogin-remembermypassword": "Ay goywaatoo ma gaabandi ka feera",
        "userlogin-signwithsecure": "Ciya nda saajaw",
+       "cannotlogin-title": "Ši hin ka huru",
+       "cannotlogin-text": "Huruyan ši hin ka tee.",
+       "cannotloginnow-title": "Ši hin ka huru sohõ",
+       "cannotloginnow-text": "Huruyan ši tee waati kaŋ $1 ga goyandi.",
+       "cannotcreateaccount-title": "Ši hin ka kontuyaŋ tee",
+       "cannotcreateaccount-text": "Kontu ši hin ka tee dogoo ra wikiyoo woo ga.",
        "yourdomainname": "Ni zunbu dogoo:",
        "password-change-forbidden": "Ni ši hin ka šennikufaley barmay wikiyoo woo ga.",
        "externaldberror": "Huru",
        "login": "Huru",
+       "login-security": "War tammaasaa koroši",
        "nav-login-createaccount": "Huru / kontu tee",
        "logout": "Fatta",
        "userlogout": "Fatta",
        "userlogin-resetpassword-link": "Dirŋa ni šennikufaloo?",
        "userlogin-helplink2": "Ay gaa ka huru",
        "userlogin-loggedin": "N' huru ka ben sanda {{GENDER:$1|$1}}.\nGanda takaddaa zaa ka huru goykaw tana.",
-       "userlogin-createanother": "Kontu tee",
+       "userlogin-reauth": "War mma hima ka huru ka tabatandi kaŋ war ti {{GENDER:$1|$1}}.",
+       "userlogin-createanother": "Kontu tana tee",
        "createacct-emailrequired": "Bataga aderesu",
        "createacct-emailoptional": "Bataga aderesu (suubari)",
        "createacct-email-ph": "Ni bataga aderesoo dam",
        "createacct-another-email-ph": "Bataga aderesu dam",
        "createaccountmail": "Šiiyan šennikufal dam saaye bande nd'a sanba bataga aderesu tabatantaa do",
+       "createaccountmail-help": "Ši hin ka goyandi ka kontu boro tana se bila nda ma šennikufaloo bay.",
        "createacct-realname": "Maa cimi (suubari)",
        "createacct-reason": "Dalil",
        "createacct-reason-ph": "Hayaa kaŋ se war goo ma kontu waana tee",
+       "createacct-reason-help": "Alhabar cebandi kontu teeyan tiiraa ra",
        "createacct-submit": "War kontoo tee",
-       "createacct-another-submit": "Kontu waana foo tee",
+       "createacct-another-submit": "Kontoo tee",
+       "createacct-continue-submit": "Gaabandi nda kontu teeyan",
+       "createacct-another-continue-submit": "Gaabandi nda kontu teeyan",
        "createacct-benefit-heading": "Boro kaŋ ga hima war ka {{SITENAME}} tee.",
        "createacct-benefit-body1": "{{PLURAL:$1|barmay $1}}",
        "createacct-benefit-body2": "{{PLURAL:$1|moo $1}}",
        "createacct-benefit-body3": "Cee koraa {{PLURAL:$1|kanbuzaakaw $1}}",
        "badretype": "Kufalšenney kaŋ war n'i dam ši tenji.",
+       "usernameinprogress": "Kontu teeyan boraa woo se goo fondaa ra.\nSuuri kayna.",
        "userexists": "Maa waanante suuba taare.",
        "loginerror": "Huruyan firka",
        "createacct-error": "Kontu feeriyan firka",
        "nocookiesfornew": "Goykaw kontoo mana mana teendi zam'ir mana hin ka ng'aššiloo tabatandi.\nWar m'alhakiika kaŋ aleewawey tunandi, moɲoo zumandi taaga nda ceeci koyne.",
        "nocookiesforlogin": "{{int:nocookieslogin}}",
        "noname": "War mana goykaw maa henna kayandi.",
-       "loginsuccesstitle": "Huryanoo boori",
+       "loginsuccesstitle": "Hurante",
        "loginsuccess": "<strong>War huru {{SITENAME}} ra sohõ sanda \"$1\".</strong>",
        "nosuchuser": "Goykaw kul šii kaŋ ti \"$1\".  \nGoykawmaaɲey ga kula nda harfu azzaati.\nWar hantumoo koroši, wala [[Special:CreateAccount|kontu taaga tee]].",
        "nosuchusershort": "Goykaw kul šii kaŋ ti \"$1\".\nHantum-tenjiyan koroši.",
        "nouserspecified": "War ga hima ka goykawmaa kayandi.",
        "login-userblocked": "Goykaw gagayandi. Huruyan šii nda fondo.",
-       "wrongpassword": "Ceeci koyne taare.",
+       "wrongpassword": "Ceeci koyne.",
        "wrongpasswordempty": "Šennikufaloo kaŋ huru ga koonu. \nTee koyne taare.",
        "passwordtooshort": "Šennikufaley ka hima ka bara nda {{harfu 1$|PLURAL:$1}.",
        "password-name-match": "War šennikufaloo ma ši hima war goykaw maaɲoo.",
        "password-login-forbidden": "Goykaw maa nda šennikufaley wey ši hin ka koy.",
        "mailmypassword": "Šennikufaloo yeeti",
        "passwordremindertitle": "Šiiyan šennikufal taaga {{SITENAME}} se",
-       "passwordremindertext": "Boro foo (sanda ni, nda IP aderesu $1) na šennikufal taaga wiri {{SITENAME}} ($4) se nd'a kayandi \"$3\" ga. Nda war mana boona woo, war mma hima ka huru nda šennikufal taaga suuba sohõ. War šiiyan šennikufaloo waato ga ben {{PLURAL:$5|jirbi foo|jirbi $5}} ra. \n\nNda boro waani foo no k'a wiri, wala war n' ka honga war šennikufaloo nda war ši boona k'a barmay koyne, war ga hin ka yaamaroo woo muray, nda ka gaabu ka goy nda šennikufal žeenaa.",
+       "passwordremindertext": "Boro foo (nda IP aderesu $1) na šennikufal taaga wiri {{SITENAME}} ($4) se. Waati-duura šennikufal n' ka tee goykaw \"$2\" se nd'a kayandi \"$3\" ga. Nda woo manti war anniyaa, war mma hima ka huru sohõ ka šennikufal taaga suuba. War šiiyan šennikufaloo waato ga ben {{PLURAL:$5|jirbi foo|jirbi $5}} ra. \n\nNda boro waani foo no k'a wiri, wala war n' ka honga war šennikufaloo nda war ši boona k'a barmay koyne, war ga hin ka yaamaroo woo muray, nda ka gaabu ka goy nda šennikufal žeenaa.",
        "noemail": "Bataga aderesu kul mana jisandi \"$1\" goykaa se.",
        "noemailcreate": "War ga hima ka bataga aderesu henna noo.",
        "passwordsent": "Šennikufal taaga n' ka sanbandi bataga aderesu jisantaa ga  \"$1\" se. Ceeci ka huru koyne nda n' duu w'a.",
-       "blocked-mailpassword": "I na war IP aderesoo ganji a ma hantum, adiši a ši duu fondo ka goy nda šennikufal yeetiyan dabaroo ka zanbayan gagay.",
+       "blocked-mailpassword": "I na war IP aderesoo ganji a ma hantum. Ka zanbayan ganji, šennikufal yeetiyan ši duɲe IP aderesoo woo ga.",
        "eauthentsent": "Cimandiyan bataga n' ka sanbandi bataga aderesu tabatantaa ga. \nWar ga hima ka šilbawey kaŋ goo bataga laasaabu jina, hala war ga hin ka war ga hin ka bataga tana kul sanba ka cimandi kaŋ alhakiika ra kontoo ti war wane.",
        "throttled-mailpassword": "Šennikufal yeetiyan bataga n' ka sanbandi war se a ga too {{PLURAL:$1|guuru $1}}.\nKa zanbayan ganji, šennikufal yeetiyan bataga foo de ma sanbandi {{PLURAL:$1|guuru $1}} ra.",
        "mailerror": "Bataga sanbayan firka: $1",
-       "acct_creation_throttle_hit": "Boro kaŋ ga ciya nda war IP aderesoo na {{PLURAL:$1|kontu $1}} jirbi koraa ra, woo ti alkadaroo beero kaŋ ga hin ka tee waatoo woo ra. \nWoo sabboo se, borey kaŋ ga goy nda IP aderesoo woo ši hin ka kontu kul tee koyne sohõda.",
+       "acct_creation_throttle_hit": "Boro kaŋ ga ciya nda war IP aderesoo na {{PLURAL:$1|kontu foo|kontu $1}} jirbi $2 korawey ra, kaŋ ti alkadar kul ibeero kaŋ duɲe waatoo woo ra. \nAdiši, borey kaŋ ga goy nda IP aderesoo woo ši hin ka kontu kul tee koyne sohõda.",
        "emailauthenticated": "War bataga aderesoo n' ka tabatandi $2 boŋ $3 ga.",
        "emailnotauthenticated": "War bataga aderesoo mana tabatandi.\nBataga kul ši sanbandi alhaaley wey affoo ku še.",
        "noemailprefs": "Bataga aderesu tabatandi war ibaayey ra alhaaley wey ma hin ka goy.",
        "createaccount-title": "Kontu tee {{SITENAME}} se",
        "createaccount-text": "Boro foo na kontu tee war bataga aderesoo se {{SITENAME}} ($4) kaŋ maa ti \"$2\" ga, nda \"$3\" šennikufaloo.\nWa maa hantum ka hima ka huru nda šennikufal barmay sohõ.\n\nWar ga hin ka batagaa woo muray nda kontoo woo n' ka dere ka tee.",
        "login-throttled": "War ceeci cee booboyaŋ ka huru.\nTaare batu $1 jina ka ciya koyne.",
-       "login-abort-generic": "War mana hin ka huru - Laybu",
+       "login-abort-generic": "War mana hin ka huru",
        "login-migrated-generic": "War kontoo n' ka ganandi nda war goykaw maaɲoo ši ye ka bara wikiyoo woo ga.",
        "loginlanguagelabel": "Šenni:$1",
        "suspicious-userlogout": "War ceeciroo ka fatta mongu zam'a ga hima kaŋ ceecikaw kayraa wala tugudoo tokore k'a sanba.",
        "createacct-another-realname-tip": "Maa cimi noo nda n' ga baa.\nNda war soobay k'a noondi, boro ga goy nd'a ka goykaw alhaali noo ngi goyoo se.",
        "pt-login": "Huru",
        "pt-login-button": "Huru",
+       "pt-login-continue-button": "Gaabandi ka huru",
        "pt-createaccount": "Kontu tee",
        "pt-userlogout": "Fatta",
        "php-mail-error-unknown": "Firka šibayante PHP mail() goymee se",
        "newpassword": "Šennikufal taaga:",
        "retypenew": "Šennikufal taagaa hantum koyne:",
        "resetpass_submit": "Šennikufal barmay ka huru",
-       "changepassword-success": "War šennikufaloo barmay ka boori!",
+       "changepassword-success": "War šennikufaloo n' k barmay!",
        "changepassword-throttled": "War ceeci cee booboyaŋ ka huru.\nTaare batu $1 jina ka ceeci koyne.",
        "resetpass_forbidden": "Šennikufaley ši hin ka barmay",
        "resetpass-no-info": "War ga hima ka huru jina ka duu moɲoo woo.",
        "resetpass-submit-loggedin": "Šennikufal barmay",
        "resetpass-submit-cancel": "Naŋ",
-       "resetpass-wrong-oldpass": "Sohõda wala batuyan šennikufal laala.\nA ga hin ka tee war bay na šennikufaloo barmay wala batuyan wane taaga wiri.",
-       "resetpass-recycled": "Taare war šennikufaloo yeeti k'a tee affoo kaŋ nanti war sohõda šennikufaloo. \\",
+       "resetpass-wrong-oldpass": "Sohõda wala batuyan šennikufal laala.\nA ga hin ka tee war bay na war šennikufaloo barmay wala war na batuyan šennikufal wiri.",
+       "resetpass-recycled": "War šennikufaloo yeeti k'a tee affoo kaŋ manti war sohõda šennikufaloo.",
        "resetpass-temp-emailed": "War n' ka huruyan nda šiiyan ašariya kaŋ sanbandi bataga ra.\nKa huru ka timme, war ga hima ka šennikufal taaga dam ne: \\",
        "resetpass-temp-password": "Šiiyan šennikufal:",
        "resetpass-abort-generic": "Dobu foo no ka šennikufal barmayyanoo ganji.",
        "resetpass-expired": "War šennikulaloo waatoo ben. Wa šennikufal taaga dam ka huru.",
-       "resetpass-expired-soft": "War šennikufaloo waatoo ben nd'a ga hima ka yeeti. War šennikufal taaga suuba sohõda, wala \"{{int:authprovider-resetpass-skip-label}}\" naagu k'a yeeti waati foo.",
-       "resetpass-validity-soft": "War šennikufaloi ši boori: $1\n\nTaare šennikufal taaga suuba sohõ, wala \"{{int:authprovider-resetpass-skip-label}}\" naagu k'a yeeti waati foo.",
+       "resetpass-expired-soft": "War šennikufaloo waatoo ben nd'a ga hima ka barmay. Wa šennikufal taaga suuba sohõda, wala \"{{int:authprovider-resetpass-skip-label}}\" naagu k'a barmay hiino.",
+       "resetpass-validity-soft": "War šennikufaloo ši boori: $1\n\nŠennikufal taaga suuba sohõ, wala \"{{int:authprovider-resetpass-skip-label}}\" naagu k'a barmay hiino.",
        "passwordreset": "Šennikufal yeeti",
        "passwordreset-text-one": "Takaddaa woo timmandi ka duu šiiyan šennikufal bataga ra.",
        "passwordreset-text-many": "{{PLURAL:$1|Faari foo toonandi ka duu šiiyan šennikufal foo bataga ra.}}",
        "passwordreset-emailtext-ip": "Boro foo (sanda war da, nda IP aderesu $1) ceeci ka war\n šenniufaloo barmay {{SITENAME}} ($4) se. Goykaa woo {{PLURAL:$3|kontoo ti}\n kaŋ ga hanga bataga aderesoo woo:\n\n $2\n\n{{PLURAL:$3|Šiiyan šennikufaloo woo|Šiiyan šennikufaley wey}}  ga buu {{PLURAL:$5|zaari foo|zaari}} ra.\nWar ga hima ka huru nda šennifulal taaga dam sohõ. Nda boro waani ka ceeci ka woo tee\n nda war honga war šennikufal žeenaa, nda war ši boona koyne\n ka šennikufal barmay,\n war ga hin ka šaawaroo woo murayy nda soobay ka goy nda war\n šennikufal žeenaa. \\",
        "passwordreset-emailtext-user": "Goykaw $1 {{SITENAME}} wiri ka war sennikufaloo yeeti {{SITENAME}} se\n($4). Goykaa woo {{PLURAL:$3|kontoo ga|kontey ga}} marga nda nda bataga aderesoo woo:\n\n$2\n\n {{PLURAL:$3|Šiiyan šennikufaloo woo|Šiiyan šennikufaley wey}} ga buu {{PLURAL:$5|jirbi foo|jirbi $5}} ra.\nWar ga hima ka huru  nda šennikufal taaga suuba sohõ. Nda boro waani ka ceeci\n ka woo tee wala war ga honga wara šennikufal žeenaa nda war ši boona koyne\n k'a barma, war ga hin ka šaawaroo woo muray nda gaabandi ka goy nda war\n šennikufal žeenaa.",
        "passwordreset-emailelement": "Goykaw maa: \n$1\n\nŠiiyan šennikufal: \n$2",
-       "passwordreset-emailsentemail": "Šennikufal yeetiyan bataga n' ka sanbandi war se.",
-       "changeemail": "Bataga aderesu barmay",
+       "passwordreset-emailsentemail": "Nda bataga aderesoo woo ga hanga war kontoo, waati din šennikufal yeetiyan bataga ga sanbandi war se.",
+       "changeemail": "Bataga aderesu barmay wal'a kaa.",
        "changeemail-header": "Takaddaa woo toonandi ka war bataga aderesoo barmay. War ka hima ka war šennikufaloo dam ka barmayyanoo tabatandi.",
        "changeemail-no-info": "War ga hima ka huru ka hin duu moɲoo woo.",
        "changeemail-oldemail": "Sohõda bataga aderesu",
        "sig_tip": "War kanbežeeroo nda waati šilbay",
        "hr_tip": "Žeeri kanante (w'a tee cee fooyaŋ de)",
        "summary": "Duurandi:",
-       "subject": "Teekaw/boŋžeeri:",
+       "subject": "Furari:",
        "minoredit": "Barmay kayna ti woo:",
        "watchthis": "Moɲoo woo hawgay",
        "savearticle": "Moɲoo gaabu",
        "preview": "Moofur",
        "showpreview": "Moofuryan cebe",
        "showdiff": "Barmawey cebe",
-       "blankarticle": "<strong>Yaamar:</strong> Moɲoo kaŋ war goo m'a tee t'ikoonu.\nNda war na \"$1\" naagu, moɲoo ga kaa ta tee bila nda gundekuna.",
+       "blankarticle": "<strong>Yaamar:</strong> Moɲoo kaŋ war goo m'a tee ga koonu.\nNda war na \"$1\" naagu koyne, moɲoo ga kaa ta tee bila nda gundekuna.",
        "anoneditwarning": "<strong>Yaamar:</strong> War mana huru. Borey kul hin ka dii war IP aderesoo nda war na barmay kul tee. Nda war <strong>[$1 huru]</strong> wala <strong>[$2 kontu tee]</strong>, war barmawey ga hanga war goykaw maaɲoo bande, nda nafaw taney kul. \\",
        "anonpreviewwarning": "<em>War mana huru. Gaabuyan ga too war IP aderesoo ma jisandi moɲoo woo fasalyan taarikoo ra.</em>",
        "missingsummary": "<strong>Hongu:</strong> War mana barmay duurandi noo.\nWa \"$1\" naagu koyne, kul war barmaa ga gaabundi bila nd'affoo.",
-       "missingcommenttext": "Wa feeriyan foo hantum ganda.",
+       "missingcommenttext": "Wa daara foo hantum.",
        "missingcommentheader": "<strong>Hongu:</strong> War mana teekaw/boŋžeeri noo feeriyanoo woo se.\nWa \"$1\" naagu koyne, kul war barmaa ga gaabundi bila nd'affoo.",
-       "summary-preview": "Duurandi moofuryan:",
-       "subject-preview": "Teekaw|boŋžeeri moofuryan:",
+       "summary-preview": "Moofur fasal duurandiyan ga:",
+       "subject-preview": "Furari moofuryan:",
        "blockedtitle": "Goykaa n' ka gagayandi",
-       "blockedtext": "<strong>War goykaw maa wala IP aderesoo n' ka hode.</strong>\n\n$1 no k'a hode.\nDaliloo kaŋ a n'a noo ti <em>$2</em>.\n\n* Hode šintinoo: $8\n* Hode benantaa: $6\n* Boraa kaŋ š'a na hoderoo miile: $7\n\nWar ga hin ka hantum $1 wala [[{{MediaWiki:Grouppage-sysop}}|juwalkaa]] se ka hoderoo šennoo tee.\nWar ši hin ka bataga sanba nda \"email this user\" fondaa nda manti war bataga aderesu henna ka tabatandi war [[Special:Ibaayey|kontu ibaayey]] ra nd'i mana war gagay a ga. \nWar sohõda IP aderesoo to $3 nda hode šilbaa ti #$5.\nWa beene šilbawey kul dam hãayan bataga kaŋ war g'a tee ra.",
-       "autoblockedtext": "War IP aderesoo hode nga boŋše zama goykaw waani foo k'a ka goy, boro kaŋ $1 n'a hode.\nDaliloo kaŋ noondi ti:\n\n:<em>$2</em>\n\n* Hode šintinoo: $8\n* Hode benantaa: $6\n* Boraa kaŋ i n'a miile hodeyan se: $7\n\nLaasaabu kaŋ war ši hima ka goy nda \"email this user\" alhaaloo nda manti war mma bara nda bataga aderesu jisante war [[Special:Preferences|goykaw ibaayey]] ra nd'i mana war gagay ka goy nd'a.\n\nWar sohõda IP aderesoo ti $3 nda hodeyan šilbaa ti #$5.\nTaare wa šilbawey wey kul dam hãayan kul kaŋ war g'a sanba ra.",
+       "blockedtext": "<strong>War goykaw maa wala IP aderesoo n' ka hode.</strong>\n\n$1 no k'a hode.\nDaliloo kaŋ noondi ti <em>$2</em>.\n\n* Hode šintinoo: $8\n* Hode benantaa: $6\n* Boraa kaŋ mma hode: $7\n\nWar ga hin ka hantum $1 wala [[{{MediaWiki:Grouppage-sysop}}|juwalkaa]] se ka hodeyanoo šennoo tee.\nWar ši hin ka bataga sanba nda \"email this user\" fondaa nda manti war bataga aderesu henna ka tabatandi war [[Special:Preferences|kontu ibaayey]] ra nd'i mana war gagay a ga. \nWar sohõda IP aderesoo to $3 nda hodeyan šilbaa ti #$5.\nWa beene šilbawey kul dam hãayan bataga kaŋ war g'a tee ra.",
+       "autoblockedtext": "War IP aderesoo hode nga boŋše zama goykaw waani foo k'a ka goy, boro kaŋ $1 n'a hode.\nDaliloo kaŋ noondi ti:\n\n:<em>$2</em>\n\n* Hodeyan šintinoo: $8\n* Hodeyan benantaa: $6\n* Kontoo kaŋ hode: $7\n\nWar ga hin ka hantum $1 wala [[{{MediaWiki:Grouppage-sysop}}|juwalkey]] affoo se ka hodeyanoo šennoo tee.\n\nLaasaabu kaŋ war ši hima ka goy nda \"email this user\" alhaaloo nda manti war mma bara nda bataga aderesu jisante war [[Special:Preferences|goykaw ibaayey]] ra nd'i mana war gagay ka goy nd'a.\n\nWar sohõda IP aderesoo ti $3 nda hodeyan šilbaa ti #$5.\nWa šilbawey wey kul dam hãayan kul kaŋ war g'a sanba ra.",
        "blockednoreason": "dalil kul šii",
        "whitelistedittext": "Taare $1 ka moɲey fasal.",
        "confirmedittext": "War ga hima ka war bataga aderesoo tabatandi jina ka moɲey fasal.\nWar bataga aderesoo tabatandi [[Special:Preferences|goykaw ibaayey]] ra.",
        "accmailtext": "Ɲaami-ra šennikufal kaŋ tee  [[User talk:$1|$1]] sanbandi $2 do. A ga hin ka barmay  <em>[[Special:ChangePassword|šennikufal barmay]] moɲoo ga </em> nda war ga huru.",
        "newarticle": "(Itaaga)",
        "newarticletext": "War hanga dobu kaŋ ka fatta moo foo kaŋ ši bara jina ga.\nKa moɲoo tee, soobay ka hantum ganda bataa ra ([$1 faaba moɲoo] guna ka bay ka tonton.\nNda war n' ka dere ka kaa ne, war ceecikaa <strong>banda</strong>butoŋoo naagu.",
-       "anontalkpagetext": "----\n<em>Kakaw moɲoo woo goo goykaw kaŋ maaɲoo ši bangay se, boro kaɲ mana kontu tee jina, wal'a ši a ka goy.</em>\nAdiši kal'ir ma goy nda hinna IP aderesu ka boraa alhaaloo tabatandi.\nIP aderesu dumoo woo ga hin ka žemnandi goykaw booboyaŋ game.\nNda war ti goykaw kaŋ maaɲoo ši bangay nda war ga tammahã kaŋ war ši kula nda šenney wey, [[Special:CreateAccount|kontu tee]] wala [[Special:UserLogin|huru]] ka ganji hiino war nda goykaw taney kaŋ šii nda maa ma birji cere ra. \\",
-       "noarticletext": "Hantum kul šii moɲoo woo ga sohõda.\nWar ga hin ka [Special:Search/{{PAGENAME}}|moɲoo woo maaɲoo ceeci]] moɲe jerey ra,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|moo={{FULLPAGENAMEE}}}} hantum himantey guna],\nwala [{{fullurl:{{FULLPAGENAME}}|teera=fasal}} moɲoo woo fasal]</span>.",
+       "anontalkpagetext": "----\n<em>Faakaaray moɲoo woo goo goykaw kaŋ maaɲoo ši bangay se, boro kaɲ mana kontu tee jina, wal'a ši a ka goy.</em>\nAdiši kal'ir ma goy nda hinna IP aderesu ka borey alhaaloo tabatandi.\nIP aderesu dumoo woo ga hin ka žemnandi goykaw booboyaŋ game.\nNda war ti goykaw kaŋ maaɲoo ši bangay nda war ga tammahã kaŋ war ši kula nda šenney wey, [[Special:CreateAccount|kontu tee]] wala [[Special:UserLogin|huru]] ka ganji hiino war nda goykaw taney kaŋ šii nda maa ma birji cere ra. \\",
+       "noarticletext": "Hantum kul šii moɲoo woo ga sohõda.\nWar ga hin ka [[Special:Search/{{PAGENAME}}|moɲoo woo maaɲoo ceeci]] moɲey jerey ra,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|moo={{FULLPAGENAMEE}}}} hantum himantey guna],\nwala [{{fullurl:{{FULLPAGENAME}}|teera=barmay}} moɲoo woo tee]</span>.",
        "noarticletext-nopermission": "Hantum kul šii moɲoo woo ra sohõda.\nWar ga hin ka [[Special:Search/{{PAGENAME}}|moɲoo woo maaɲoo ceeci]] moɲey jerey ra wala <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|moo={{FULLPAGENAMEE}}}} cceci hantum himantey ra]</span>, amma war ši nda fondo ka moɲoo woo tee.",
        "missing-revision": "Filla #$1 moɲoo kaŋ maaɲoo ti \"{{FULLPAGENAME}}\" se ši bara.\n\nWoo ga doona ka tee nda boro hanga taariki dobu žeena banda kaŋ ga fatta moo tuusante ga.\nŠilbaywey ga hin ka duwandi [{{fullurl:{{#Special:Log}}/tuusu|moo={{FULLPAGENAMEE}}}} tuusuyan taariki] ra.",
        "userpage-userdoesnotexist": "Goykaw kontu \"$1\" mana jisandi.\nTaare guna wala war ga boona ka moɲoo woo tee/fasal.",
        "userpage-userdoesnotexist-view": "Goykaw kontu \"$1\"  mana jisandi.",
        "blocked-notice-logextract": "Goykaw n' ka hode sohõda.\nHodeyan kokorantaa šilbay ceebandoo ga duwandi ganda feeriyanoo ra:",
-       "clearyourcache": "<strong>Laasaabu:</strong> Nd war gaabundi ka ben, war ga hin ka war ceecika tugudogoo koli ka dii barmawey.\n* <strong>Firefox / Safari:</strong> Gaabu <em>Shift</em> nda war ga <em>Zumandi taaga</em> naagu, wala naagu <em>Ctrl-F5</em> wala <em>Ctrl-R</em> (<em>⌘-R</em> Mac ga)\n* <strong>Google Chrome:</strong> <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> naagu Mac ga)\n* <strong>Internet Explorer:</strong> Gaabu <em>Ctrl</em> nda war ga <em>Taagandi</em> naagu, wala <em>Ctrl-F5</em> naagu\n * <strong>Opera:</strong> Tugudogoo tuusu <em>Goyjinawey → Ibaayey</em> ra",
+       "clearyourcache": "<strong>Laasaabu:</strong> Nda war gaabundi ka ben, war ga hin ka war ceecika tugudogoo koli ka dii barmawey.\n* <strong>Firefox / Safari:</strong> Gaabu <em>Shift</em> nda war ga <em>Zumandi taaga</em> naagu, wala naagu <em>Ctrl-F5</em> wala <em>Ctrl-R</em> (<em>⌘-R</em> Mac ga)\n* <strong>Google Chrome:</strong> <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> naagu Mac ga)\n* <strong>Internet Explorer:</strong> Gaabu <em>Ctrl</em> nda war ga <em>Taagandi</em> naagu, wala <em>Ctrl-F5</em> naagu\n* <strong>Opera:</strong> Koy <em>Šilbayboŋ ga → Kayandiayaney</em> (<em>Opera → Ibaayey</em> Mac ga) nda <em>Sutura nda saajaw ga → Ceeciyan biyey nda tukey tuusu → Bii nda tuku tugantey</em>.",
        "usercssyoucanpreview": "<strong>Alhiila:</strong> Goy nda \"{{int:showpreview}}\" butoŋoo ka war CSS taagaa šii jina k'a gaabu. before saving.",
        "userjsyoucanpreview": "<strong>Alhiila:</strong>Goy nda \"{{int:showpreview}}\" butoŋoo ka  war JavaScript taagaa šii jina k'a gaabu.",
        "usercsspreview": "<strong>Honga kaŋ war na mma moofur de war CSS goykaa ga.\nA mana gaabundi jina!</strong>",
        "userjspreview": "<strong>Honga kaŋ war goo ma šii/moofur de war JavaScript goykaa ga.\nA mana gaabundi jina!</strong>",
        "sitecsspreview": "<strong>Honga kaŋ war mma moofur de CSS woo ga.\n A mana gaabundi jina!</strong>",
        "sitejspreview": "<strong>Honga kaŋ war mma moofur de JavaScript ašariyaa woo ga.\nA mana gaabundi jina!</strong>",
-       "userinvalidconfigtitle": "<strong>Yaamar:</strong> \"$1\" kuuru kul šii.\nLaada .css nda .js moɲey ga goy nda karfu kayna maa, sanda {{ns:user}}:Foo/vector.css manti {{ns:user}}:Foo/Vector.css.",
+       "userinvalidconfigtitle": "<strong>Hawgay:</strong> \"$1\" kuuru kul šii.\nBoro boŋ moɲey nda .css, .json nda moɲey ga goy nda karfu kayna maa, sanda {{ns:user}}:Foo/vector.css manti {{ns:user}}:Foo/Vector.css.",
        "updated": "(Taagante)",
        "note": "<strong>Laasaabu:</strong>",
        "previewnote": "<strong>Honga kaŋ war moofuryan de ti wo.</strong>\nWar barmawey mana gaabundi jina!",
        "continue-editing": "Koy fasal nungu here",
        "previewconflict": "Moofuryanoo woo ga tenji nda beene hantum fasalyan doo, z'a ga bangay nda war soobay k'a gaabu.",
-       "session_fail_preview": "<strong>Alhaa naŋ! Ir mana hin ka war barmaa ka koy nda jine za goywaatoo bayhayey dere.</strong>\nTaare ceeci k'a tee koyne.\nNd'a ši koy hala sohõ, ceeci ka [[Special:UserLogout|fatta]] nda huru taaga.",
-       "session_fail_preview_html": "<strong>Alhaa naŋ! Ir mana hin ka war barmaa ka koy nda jine za goywaatoo bayhayey dere.</strong>\n\n<em>Zama {{SITENAME}} goo nda HTML gani ka dira, moofuryan mma tugu ka ganji i ma kaŋ JavaScript ga.</em>\n\n\\",
+       "session_fail_preview": "Alhaa naŋ! Ir mana hin ka war barmaa gaabu za goywaatoo bayhayey dere.\n\nA ga hin ka tee war fatta. <strong>Koroši wala war goo batoo ra nda ceeci taaga.</strong>\nNd'a ši koy hala sohõ, ceeci nda [[Special:UserLogout|fatta]] nda huru taaga, nda guna wala war ceecikaa ga yadda aleewa nungoo woo ga.",
+       "session_fail_preview_html": "Alhaa naŋ! Ir mana hin ka war barmaa ka koy nda jine za goywaatoo bayhayey dere.\n\n<em>Zama {{SITENAME}} goo nda HTML gani kaŋ ga dira, moofuryan mma tugu ka ganji i ma kaŋ JavaScript ga.</em>\n\n<strong>Nda woo ti barmay kaŋ ši kubay, ceeci koyne.</strong>\nNda woo ši koy hala sohõ. ceeci nda [[Special:UserLogout|ka fatta]], de wa huru taaga, nda war ma guna wala war ceecikaa ga yadda aleewa ga moɲoo woo ga.",
        "token_suffix_mismatch": "<strong>I wanji war barmaa ga zama war daykaa na tonbi harfey birji fasalyan tammaasaa ra.</strong>\nI wanji barmaa ga ka ganji moo hantumoo ma hasara.\nWoo ka tee waati kaŋ war ga goy nda maršin interneti-bande tokore goymee kaŋ ši nda maa.",
        "edit_form_incomplete": "<strong>Barmay takari jerey mana too feršikaa do; naagu ceeci hinka ka dii kaŋ war barmawey ga timme de war ma ceeci koyne.</strong>",
        "editing": "Goo ma $1 fasal",
        "copyrightwarning": "Taare laasaabu kaŋ kanbuzaamey kul kaŋ tee {{SITENAME}} se ga tee sanda i n' ka fattandi $2 cire (dii $1 ka bay ka tonton).\nNda war ši baa war hantumoo ma barmay laala nd'a ma žemnandi forba, kul ma ši  a sanba ne.<br />\nWar ga allaahidu noo kaŋ war n'a hantum war boŋše, kaŋ war man'a bere ka kaa baytal doo for ga wala forba aššil tana.\n<strong>War ši goy-waani kul sanba bila nda alhaku koyey duɲeyanoo!</strong> \\",
        "copyrightwarning2": "Laasaabu kaŋ kanbuzaamawey kul kaŋ tee {{SITENAME}} se, hantumkaw fooyaŋ ga hin ki fasal, barmay wal'i k'i tuusu.\nNda war ši boona war hantumoo ma barmay laala, kul war ma ši a sanba ne. <br />\nWar ga allaahidu no kaŋ war n'a hantum war boŋše, wala k'a bere ka hun baytal nungu ga wala forba aššil tana (dii $1 ka bay ka tonton).\n<strong>War ma ši goy kul sanba bila nda hantumkey alhaku duɲeyanoo!</strong>",
        "longpageerror": "<strong>Firka: Hantumoo kaŋ sanbandi kuuroo ka sawa nda  {{PLURAL:$1|cebsi-ize $1}} long, kaŋ ga bisa {{PLURAL:$2|cebsi-ize $2}}.</strong>\nA ši hin ka gaabundi.",
-       "readonlywarning": "<strong>Yaamar: Bayhayahugoo \\",
+       "readonlywarning": "<strong>Yaamar: Bayhayahugoo n' ka daaba hanseyan se, adiši war ši hin ka war barmawey gaabu sohõ.</strong>\nWar ga hin ka war hantumoo bere k'a dam tuku ra nda k'a gaabu hiino se.\n\nDabariɲaa juwalkaa kaŋ n'a kufal na yaamaroo woo noo: $1",
        "protectedpagewarning": "<strong>Yaamar: Moɲoo woo n' ka jejebandi hala goykey kaŋ goo nda juwalkaw fondo hinne ma hin k'a fasal.</strong>\nWar ceebandu taariki hantum kokorantaa ga fatta ne ganda šeede se:",
-       "semiprotectedpagewarning": "<strong>Laasaabu:</strong> Moɲoo woo n' ka jejebandi hala goykaw hantumantey hinne ma hin k'a fasal.\nCWar ceebandu taariki hantum kokorantaa ga fatta ne ganda šeede se:",
-       "cascadeprotectedwarning": "<strong>Yaamar:</strong> Moɲoo woo ga jejebandi hala goykey kaŋ goo nda juwalkaw fondo hinne ma hin k'a fasal zam'a ga jejebu kaŋandi-leetoo woo dumoo {{PLURAL:$1|moo|moɲey}} se:",
+       "semiprotectedpagewarning": "<strong>Laasaabu:</strong> Moɲoo woo n' ka jejebandi hala goykaw tabatantey hinne ma hin k'a barmay.\nWar ceebandu taariki hantum kokorantaa ga fatta ne ganda šeede se:",
+       "cascadeprotectedwarning": "<strong>Yaamar:</strong> Moɲoo woo ga jejebandi, adiši goykey kaŋ goo nda [[Special:ListGroupRights|alhaku cerecerantey]] hinne ma hin k'a barmay zam'a ga jejebu kaŋandi-leetoo woo dumoo {{PLURAL:$1|moo|moɲey}} se:",
        "titleprotectedwarning": "<strong>Yaamar: Moɲoo woo ga jejebandi hala [[Special:ListGroupRights|alhaku tabatanteyaŋ]] ga hima ka duwandi k'a tee.</strong>\nCeebandu taariki hantum kokorantaa ga fatta ne ganda šeede se:",
        "templatesused": "{{PLURAL:$1|Leetoo|Leetey}} kaŋ zaandi moɲoo woo se:",
        "templatesusedpreview": "{{PLURAL:$1|Leetoo|Leetey}} kaŋ cebandi moofuroo woo ra:",
        "permissionserrorstext": "War ši nda fondo ka woo tee, {{PLURAL:$1|daliloo woo|daliley wey}} se:",
        "permissionserrorstext-withaction": "War ši nda fondo ka $2, {{PLURAL:$1|daliloo woo|daliley wey}} se:",
        "recreate-moveddeleted-warn": "<strong>Yaamar: War goo ma moo foo kaŋ bay ka tuusandi tee taaga.</strong>\n\nWar ga hima ka laasaabu wal'a kubay nda war gaabandi ka moɲoo woo fasal.\nMoɲoo woo tuusuyan nda ganandiyan taarikoo ga fatta ne šeede se:",
-       "moveddeleted-notice": "Moɲoo n' ka tuusandi.\nMoɲoo tuusuyan nda ganandiyan taarikoo ga fatta ne ganda šeede ne.",
+       "moveddeleted-notice": "Moɲoo n' ka tuusandi.\nMoo tuusuyan, jejebuyan nda ganandiyan ga fatta ne ganda šeedaa ga.",
        "log-fulllog": "Ceebandu hantum kul guna",
        "edit-hook-aborted": "Delbu na fasalyanoo say.\nA mana fahamandiyan kul noo.",
        "edit-gone-missing": "Mana hin ka moɲoo taagandi.\nA ga hima an' ka tuusandi.",
        "defaultmessagetext": "Tilasu alhabar hantum",
        "content-failed-to-parse": "Mana hin ka $2 gundekuna fesu-fesu $1 takari se: $3",
        "invalid-content-data": "Gundekuna bayhaya laala",
-       "content-not-allowed-here": "\"$1\" gundekuna ši koy moɲoo woo ga [[:$2]]",
+       "content-not-allowed-here": "\"$1\" gundekuna ši koy moɲoo woo ga [[:$2]] \"$3\" lokoo ra",
        "editwarning-warning": "Nda war na moɲoo naŋ, a ga hin ka tee barmawey kaŋ war n'i tee kul ga dere.\nNda war huru ka ben, war ga hin ka yaamaroo wii war ibaayey \"{{int:prefs-editing}}\" dunboo ra.",
        "editpage-notsupportedcontentformat-title": "Gundekuna takari ši koy ne \\",
        "editpage-notsupportedcontentformat-text": "Gundekuna takari $1 ši koy ne gundekuna takari $2 bande.",
        "page_first": "jina",
        "page_last": "kora",
        "histlegend": "Zilayyan suubari: Arajo batawey šilbay fillawey se k'i deedandi, de ma dam butoŋ wala ganda butoŋ naagu.<br />\nŠilbayɲaa: <strong>({{int:cur}})</strong> = zilayyan nda filla kokorantaa, <strong>({{int:last}})</strong> = zilayyan nda filla bisantaa, <strong>{{int:minoreditletter}}</strong> = barmay kayna.",
-       "history-fieldset-title": "Ceeci taariki",
-       "history-show-deleted": "Tuusu hinne",
+       "history-fieldset-title": "Barmawey ceeci",
+       "history-show-deleted": "Barmay tuusuyan hinne",
        "histfirst": "ikul ižeenaa \\",
        "histlast": "ikul itaagaa",
        "historysize": "({{PLURAL:$1|cebsi $1}})",
        "history-feed-empty": "Moɲoo kaŋ war n'a wiri ši bara.\nA ga hin ka tee a tuusandi ka hun wikiyoo ga, wal'a duu maa taaga.Šii nda [[Special:Search|ceeciyan wiki ga]] moo taaga himantey se.",
        "rev-deleted-comment": "(fasal duurandi n' ka hun)",
        "rev-deleted-user": "(goykaw hun)",
-       "rev-deleted-event": "(hantum ceebandu teera hun)",
+       "rev-deleted-event": "(ceebandu teera hun)",
        "rev-deleted-user-contribs": "[goykaw wala IP aderesu hun - barmaa tugandi sanbarey se]",
        "rev-deleted-text-permission": "Moo fillaa woo n' ka <strong>tuusandi</strong>.\nŠilbawey ga hin ka duwandi [{{fullurl:{{#Special:Log}}/tuusu|moo={{FULLPAGENAMEE}}}} tuusu taariki] ra.",
        "rev-suppressed-text-permission": "Moo fillaa woo n' ka <strong>tuusandi</strong>.\nŠilbawey ga hin ka duwandi [{{fullurl:{{#Special:Log}}/tuusu|moo={{FULLPAGENAMEE}}}} tuusuyan taariki].",
        "rev-showdeleted": "cebe",
        "revisiondelete": "Fillawey tuusu/yeeti",
        "revdelete-nooldid-title": "Toodoo filla laala",
-       "revdelete-nooldid-text": "War mana toodoo fillawey tabatandi ka goyoo woo tee\n filla tabatante ši bara, wala war mma ceeci ka sohõda fillaa tugu.",
+       "revdelete-nooldid-text": "War mana toodoo fillawey tabatandi ka goyoo woo tee, wala \nbarmay tabatantaa ši bara, wala war mma ceeci ka sohõda barmaaa tugu.",
        "revdelete-no-file": "Tukoo tabatantaa ši bara.",
        "revdelete-show-file-confirm": "Alhakiika kaŋ war ga boona ka dii tukoo filla tuusante foo guna \"<nowiki>$1</nowiki>\" kaŋ tee $2 hane $3 waate?",
        "revdelete-show-file-submit": "Ayyo",
        "revdelete-legend": "Kayandi hayey kaŋ borey ga dii y'ey",
        "revdelete-hide-text": "Filla hantum",
        "revdelete-hide-image": "Tuku gundekuna tugu",
-       "revdelete-hide-name": "Teera nda toodoo tugu",
+       "revdelete-hide-name": "Toodoo nda hanseyaney tugu",
        "revdelete-hide-comment": "Duurandi fasal",
        "revdelete-hide-user": "Fasalkaa goykaw maaɲoo/IP aderesu",
        "revdelete-hide-restricted": "Bayhayey tuusu k'i kaa juwalkey nda goykaw taney jine",
        "revdelete-unsuppress": "Kankamandey kaa  filla willantey ga",
        "revdelete-log": "Dalil:",
        "revdelete-submit": "Kanandi {PLURAL:$1|filla}} kanante ga",
-       "revdelete-success": "Filla diiyan alkadar taagandi ka boori.",
+       "revdelete-success": "Barmay diiyan n' ka taagandi.",
        "revdelete-failure": " Filla diiyan alkdar mana hin ka taagandi:\n$1",
-       "logdelete-success": "Hantum ceebandu diiyan alkadar kayandi ka boori.",
+       "logdelete-success": "Huruyan diiyan alkadar n' ka kayandi.",
        "logdelete-failure": "Hantum ceebandu diiyan alkdar mana kayandi:\n$1",
        "revdel-restore": "diiyan alkadar barmay",
        "pagehist": "Moo taariki",
        "mergehistory-go": "Fasalyaney kaŋ ga hin ka marga cebe",
        "mergehistory-submit": "Fillawey marga",
        "mergehistory-empty": "Filla kulyaŋ mana margandi.",
-       "mergehistory-done": "$1 {{PLURAL:$3|filla}} $3 margandi ka boori ka tee [[:$2]].",
+       "mergehistory-done": "$3 dumi {{PLURAL:$3|barmay}} $1 ga n' ka margandi [[:$2]] ra.",
        "mergehistory-fail": "Ši hin taariki margaroo tee, taare moo nda waati kayandiyaney guna ka boori. \\",
        "mergehistory-fail-toobig": "Ši hin ka taariki margaroo tee zam'a ga bisa {{PLURAL:$1|filla}} $1 kaŋ ga ganandi waati din.",
        "mergehistory-no-source": "$1 aššil moo ši bara.",
        "searchprofile-advanced-tooltip": "Guna laada maafarrey ra",
        "search-result-size": "$1 ({{PLURAL:$1|kalima $1}})",
        "search-result-category-size": "{{PLURAL:$1|koydayze $1}} ({{PLURAL:$2|1 dumi-ize $2}}, {{PLURAL:$3|tuku $3}})",
-       "search-redirect": "($1 bisandi)",
+       "search-redirect": "(bisandi ka hun $1 ga)",
        "search-section": "($1 dunbu)",
        "search-category": "(dumi $1)",
        "search-file-match": "(ga tenji nda tuku gundekuna)",
        "search-suggest": "War n' ka tammahãa: $1",
-       "search-interwiki-caption": "Porože ɲayzey",
+       "search-interwiki-caption": "Porože ɲayzey hunhayey",
        "search-interwiki-default": "Hunyaney $1 ga:",
        "search-interwiki-more": "(tontoni)",
        "search-relatedarticle": "Himante",
        "prefs-watchlist": "Hawgayhayey",
        "prefs-watchlist-days": "Zaarey ka fatta hawgayhayey ra:",
        "prefs-watchlist-days-max": "{{PLURAL:$1|Zaari}} $1 ibeeri",
-       "prefs-watchlist-edits": "Barmay hinna kul ibeeroo ka cebe hawgawhayey hayantey ra:",
+       "prefs-watchlist-edits": "Barmay hinna kul ibeeroo ka cebe hawgayhayey ra:",
        "prefs-watchlist-edits-max": "Hinna kul ibeeroo: 1000",
        "prefs-watchlist-token": "Hawgayhayey tammaasa:",
        "prefs-misc": "Haya birjantey",
        "prefs-resetpass": "Šennikufal barmay",
-       "prefs-changeemail": "Bataga aderesu barmay",
+       "prefs-changeemail": "Bataga aderesu barmay wal'a kaa",
        "prefs-setemail": "Bataga aderesu kayandi",
        "prefs-email": "Bataga suubarey",
        "prefs-rendering": "Bangayyan alhaali",
        "restoreprefs": "Tilasu kayandiyaney kul yeeti (dunbey kul ra)",
        "prefs-editing": "Goo ma fasal",
        "searchresultshead": "Ceeci",
-       "stub-threshold": "Šiifa <a href=\"#\" class=\"stub\">zaa dobu</a> takari kayandiyan (cebsi hinna) se:",
+       "stub-threshold": "Adadu šintin dobey kayandiyanoo se ($1):",
        "stub-threshold-disabled": "Ga kay",
        "recentchangesdays": "Zaarey kaŋ ga cebe barmay korawey ra:",
        "recentchangesdays-max": "$1 ibeeri {{PLURAL:$1|zaari $1}}",
-       "recentchangescount": "Barmay hinnawey kaŋ ga cebe tilasu ra:",
-       "prefs-help-recentchangescount": "Sanda barmay korawey, moo taarikey nda hantum ceebandu tiirawey.",
+       "recentchangescount": "Barmay hinnawey kaŋ ga cebe barmay korawey, moo taarikey and ceeciyan zaaritiirawey ra, tilasu boŋ:",
+       "prefs-help-recentchangescount": "Hinna kul ibeeroo: 1000",
        "prefs-help-watchlist-token2": "Woo ti kufal tugante war hawgayhayey interneti toonandiyanoo se.\nBoro kul kaŋ g'a bay ga hin ka war hawgayhayey caw, adiši ma ši žemna.\nNd'a waažibi, [[Special:ResetTokens|war ga hin k'a yeeti]] da.",
        "savedprefs": "War ibaayey n' ka gaabundi.",
        "timezonelegend": "Waati ganda:",
        "rcshowhidemine": "Ay barmay $1",
        "rcshowhidemine-show": "Cebe",
        "rcshowhidemine-hide": "Tugu",
-       "rclinks": "Cebe barmay koraw $1 jirbi $2 korawey ra",
+       "rclinks": "Cebe barmay koraw $1 jirbi koraw $2 ra",
        "diff": "zilayyan",
        "hist": "taariki",
        "hide": "Tugu",
        "recentchangeslinked-feed": "Barmay kondantey",
        "recentchangeslinked-toolbox": "Barmay kondantey",
        "recentchangeslinked-title": "Barmay kondantey \"$1\" ga",
-       "recentchangeslinked-summary": "Ne ti barmawey kaŋ kokor ka tee moɲey kaŋ moɲey kaŋ dobandi moo tabatante ga (wala dumi tabatante foo moɲey).\nMoɲey kaŋ goo [[Special:Watchlist|war hawgayhayey ra]] ga tee <strong>hantum warga</strong>.",
+       "recentchangeslinked-summary": "Moo dam ka dii barmawey kaŋ kokor ka tee moɲey kaŋ moɲey kaŋ dobandi wala kaŋ hun moɲoo din ga. (Ka dii dumi-izey, dam {{ns:category}}:Dumi maa). Moo barmawey [[Special:Watchlist|war hawgayhayey]] ga tee <strong>hantum warga</strong>.",
        "recentchangeslinked-page": "Moo maa:",
        "recentchangeslinked-to": "Saadin cebe barmawey kaŋ tee moɲey kaŋ dobandi moo šilbantaa ga",
        "upload": "Tukoo zijandi",
        "filehist-filesize": "Tuku azzaati",
        "filehist-comment": "Deede",
        "imagelinks": "Tuku goyyan",
-       "linkstoimage": "Ne {{PLURAL:$1|moo $1 ga dobu}} tukoo woo ga:",
+       "linkstoimage": "Ne {{PLURAL:$1|moɲoo woo ga goy nda|moo $1 wey ga goy nda}}  tukoo woo ga:",
        "linkstoimage-more": "A ga bisa {{PLURAL:$1|moo $1 kaŋ ga dobu}} tukoo woo ga.\nMaašeedaa woo ga {{PLURAL:$1|moo jina dobu |moo jina $1 dobey}} cebe tukoo woo hinne ga.\n[[Special:WhatLinksHere/$2|maašeeda timmante]] ga bara.",
        "nolinkstoimage": "Moo kulyaŋ šii kaŋ ga dobu tukoo woo ga.",
        "morelinkstoimage": "[[Special:WhatLinksHere/$1|dobu tontoni]] guna tukoo woo ka.",
        "blockip": "Hode {{GENDER:$1|goykaw}}",
        "blockiptext": "Takadda goy ka hantum huruyan hode ka hun IP aderesu wala goykawmaa tabatante ga.\nWoo ga hima ka tee de ka hawandi-hasaraw ganji, woo goo [[{{MediaWiki:Policy-url}}|laada]] bande.\n Dalil tabatante noo ganda (sanda, moo tanayaŋ cee kaŋyaŋ hasaraw tee i ga).",
        "ipaddressorusername": "IP aderesu wala goykawmaa",
-       "ipbexpiry": "Benyan:",
        "ipbreason": "Dalil:",
        "ipbreason-dropdown": "*Common block reasons\n** Inserting false information\n** Removing content from pages\n** Spamming links to external sites\n** Inserting nonsense/gibberish into pages\n** Intimidating behavior/harassment\n** Abusing multiple accounts\n** Unacceptable username",
        "ipb-hardblock": "Goykaw hurantey ganji i ma barmay tee IP aderesoo woo ga",
        "ipb-unblock": "Goykawmaa wala IP aderesu hodeyan naŋ",
        "ipb-blocklist": "Hodeyan barantey guna",
        "ipb-blocklist-contribs": "Kanbuzaamawey {{GENDER:$1|$1}} se",
+       "block-expiry": "Benyan:",
        "unblockip": "Hodeyan naŋ goykaa se",
        "unblockiptext": "Goy nda ganda takadda ka hantum huruyan yeeti IP aderesu wala goykawmaa kaŋ hodandi ka bisa.",
        "ipusubmit": "Hodeyanoo woo kaa",
        "tooltip-pt-logout": "Fatta",
        "tooltip-pt-createaccount": "Wa soobay ka kontu tee nda ka huru; amma woo ši waažibi ya.",
        "tooltip-ca-talk": "Deede gundekuna moɲoo ga",
-       "tooltip-ca-edit": "War ga hin ka moɲoo woo fasal. Moofur butoŋoo naagu jina k'a gaabu",
+       "tooltip-ca-edit": "Moɲoo woo fasal",
        "tooltip-ca-addsection": "Dunbu taaga šintin",
        "tooltip-ca-viewsource": "Moɲoo woo ga jejebandi.\nWar hin ka dii ng'aššiloo",
        "tooltip-ca-history": "Filla bisantey moɲoo woo se",
        "tooltip-ca-nstab-main": "Gundekuna moɲoo guna",
        "tooltip-ca-nstab-user": "Goykaw moɲoo guna",
        "tooltip-ca-nstab-media": "Hẽenandi moɲoo guna",
-       "tooltip-ca-nstab-special": "Moo cerecerante ti woo, war ši hin ka moɲoo hunday fasal",
+       "tooltip-ca-nstab-special": "Moo cerecerante ti woo, nd'a ši hin ka barmay",
        "tooltip-ca-nstab-project": "Poorože moɲoo guna",
        "tooltip-ca-nstab-image": "Tuku moɲoo guna",
        "tooltip-ca-nstab-mediawiki": "Dabariɲaa alhabaroo guna",
        "spam_reverting": "Ga yeeti dumi koraa boŋ kaŋ ši dobu $1 ga",
        "spam_blanking": "Fillawey kul bara nda dobuyaŋ $1 ga, koonandiyan",
        "spam_deleting": "Fillawey kul bara nda dobuyaŋ $1 ga, tuusuyan",
-       "simpleantispam-label": "Bataga Å¾iiba koroÅ¡iyan.\nMa <strong>Å I</strong> woo toonandi!",
+       "simpleantispam-label": "Bataga Å¾iiba koroÅ¡iyan.\nMa <strong>Å¡i</strong> hantum ne ra!",
        "pageinfo-title": "Alhabar \"$1\" se",
        "pageinfo-not-current": "Alhaa naŋ, boro ši hin k'alhabaroo woo noo filla žeeney se.",
        "pageinfo-header-basic": "Alhabar doona",
        "feedback-subject": "Teekaw",
        "feedback-submit": "Sanba",
        "feedback-thanks": "Foo nda goy! War willandoo n' ka wallafandi \"[$2 $1]\" moɲoo ga.",
-       "searchsuggest-search": "Ceeci",
+       "searchsuggest-search": "Ceeci {{SITENAME}} ra",
        "searchsuggest-containing": "goo nda…",
        "api-error-badtoken": "Kunahere firka: Tokore laala.",
        "api-error-emptypage": "Boro ši hin ka moo taaga, koonuyaŋ tee.",
index db2da15..c24b779 100644 (file)
        "blockip": "Ožgintė {{GENDER:$1|nauduotoji}}",
        "blockiptext": "Nauduokėt šėta skvarma kap nuorėt ožgintė redagavėma teisės nūruodītou IP adresou a nauduotuojou. Tas torietom būtė dėrbama, ka apsergietomėt poslapius nug gadėnėma, ė palē [[{{MediaWiki:Policy-url}}|sotarėma]].\n\nKap ožgėnat, nūruodīkėt tikslē, ož kon.",
        "ipaddressorusername": "IP adresos a nauduotuojė vards",
-       "ipbexpiry": "Vēkėma čiesos",
        "ipbreason": "Dingstės:",
        "ipbreason-dropdown": "*Tonkiausės ožgīnėma dingstisː\n** Neteisībės rašīms\n** Torėnė trīnims ėš poslapiu\n** Šiokšlėnėms\n** Zaunu/bikuo rašīms i poslapius\n** Gondėnėmā/Pėktžuodiavėmā\n** Nauduojėms daugiaus kāp vėinuos paskīruos\n** Natinkams nauduotuojė vards",
        "ipb-hardblock": "Nalaistė prisijongosėm nauduotuojėm dėrbtė pakeitėmu ėš ton IP adresa",
        "ipb-blocklist": "Ruodītė vielībousius ožgīnėmus",
        "ipb-blocklist-contribs": "$1 duovis",
        "ipb-blocklist-duration-left": "palėka $1",
+       "block-expiry": "Vēkėma čiesos",
        "unblockip": "Nauduotuojė ožgīnėma bengtė",
        "unblockiptext": "Nauduokėt šėta fuorma, kū atkortomiet rašīma teises\nonkstiau ožbluokoutam IP adresō a nauduotuojō.",
        "ipusubmit": "Ton ožgīnėma nojėmtė",
index 495cc6a..53619ca 100644 (file)
        "blockip": "Blokiraj {{GENDER:$1|korisnika|korisnicu}}",
        "blockiptext": "Upotrebite donji upitnik da biste uklonili prava pisanja sa određene IP adrese ili korisničkog imena.  \nOvo bi trebalo da bude urađeno samo da bi se spriječio vandalizam, i u skladu sa [[{{MediaWiki:Policy-url}}|smjernicama]]. \nUnesite konkretan razlog ispod (na primjer, navodeći koje konkretne stranice su vandalizovane).",
        "ipaddressorusername": "IP adresa ili korisničko ime:",
-       "ipbexpiry": "Ističe:",
        "ipbreason": "Razlog:",
        "ipbreason-dropdown": "*Najčešći razlozi blokiranja\n**Unošenje netačnih informacija\n**Uklanjanje sadržaja stranica\n**Postavljanje spam vanjskih linkova\n**Ubacivanje gluposti/grafita\n**Osobni napadi (ili napadačko ponašanje)\n**Čarapare (zloupotreba više korisničkih računa)\n**Neprihvatljivo korisničko ime",
        "ipb-hardblock": "Onemogući prijavljene korisnike da uređuju sa ove IP adrese",
        "ipb-unblock": "Deblokiraj korisničko ime ili IP adresu",
        "ipb-blocklist": "Vidi postojeće blokade",
        "ipb-blocklist-contribs": "Doprinosi za {{GENDER:$1|$1}}",
+       "block-expiry": "Ističe:",
        "unblockip": "Odblokiraj korisnika / Одблокирај корисника",
        "unblockiptext": "Upotrebite donji upitnik da bi ste vratili pravo pisanja ranije blokiranoj IP adresi ili korisničkom imenu.",
        "ipusubmit": "Ukloni ovu blokadu",
index c6e624f..66eaeb2 100644 (file)
        "unblock": "ပိုတ်ႇႁႄႉတတ်း ၽူႈၸႂ်ႉတိုဝ်း",
        "blockip": "ႁႄႉတတ်း {{GENDER:$1|ၽူႈၸႂ်ႉတိုဝ်း}}",
        "ipaddressorusername": "ႁဵၼ်းလိၵ်ႈ ဢၢႆႇၽီ ဢမ်ႇၼၼ် ၸိုဝ်ႈၽူႈၸႂ်ႉတိုဝ်း :",
-       "ipbexpiry": "ၶၢဝ်းယၢမ်းသုတ်းသဵင်ႈ:",
        "ipbreason": "လွင်ႈတၢင်း :",
        "ipbreason-dropdown": "*လွင်ႈတၢင်းႁႄႉတတ်း ဢၼ်ၵဵဝ်ႈလူၺ်ႈတင်းၼမ်\n** ထႅမ်သႂ်ႇ လွၼ်ႉၶၢဝ်ႇ ဢၼ်ၽိတ်းပိူင်ႈ\n** ထွၼ်ပႅတ်ႈ ၸိူဝ်းၶဝ်ႈပႃး ၼႂ်းၼႃႈလိၵ်ႈ\n** ႁဵတ်းႁဵင်းၵွင်ႉဢၼ်မီးမႅင်း တီႈၽၢႆႇၼွၵ်ႈ\n** ထႅမ်သႂ်ႇ ဢၼ်ဢမ်ႇမီးလွင်ႈမီးတၢင်း/လွင်ႈဢူၼ်ဢၢၼ် တီႈၼႂ်းၼႃႈလိၵ်ႈ\n** လွင်ႈႁဵတ်းသၢင်ႈ တၢင်းလွၵ်ႇငိူတ်ႈ/ပၼ်လွင်ႈတၢင်းသုၵ်ႉယုင်ႈၸႂ်\n** လူလၢႆ ဢၶွင်ႉလၢႆဢၼ်\n** ၸႂ်ႉဝႆႉၸိုဝ်ႈၽူႈၸႂ်ႉတိုဝ်း မဵဝ်းဢမ်ႇႁပ်ႉၶၢမ်ႇလႆႈ",
        "ipb-hardblock": "ႁႄႉၵၼ် ၽူႈၸႂ်ႉတိုဝ်း ၸိူဝ်းလွၵ်ႉဢိၼ်ႇဝႆႉ ၵႃႈတီႈ ၵၢၼ်မႄးထတ်း ၵႃႈတီႈ ႁဵင်းလိၵ်ႈ ဢၢႆႇၽီႇဢၼ်ၼႆႉ",
        "ipb-blocklist": "တူၺ်း ၸိူဝ်းႁႄႉတတ်းဝႆႉ ယၢမ်းလဵဝ်",
        "ipb-blocklist-contribs": "ၶဝ်ႈႁူမ်ႈတႃႇ {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "ၵိုတ်း $1",
+       "block-expiry": "ၶၢဝ်းယၢမ်းသုတ်းသဵင်ႈ:",
        "unblockip": "ဢမ်ႇႁႄႉတတ်း ၽူႈၸႂ်ႉတိုဝ်း",
        "unblockiptext": "တွၼ်ႈတႃႇ ဝႆႉၶိုၼ်း ၵၢၼ်သုၼ်ႇတႅမ်ႈ ဢၼ်လႆႈ ႁႄႉတတ်းဝႆႉ ႁဵင်းလိၵ်ႈ ဢမ်ႇၼၼ် ၽူႈၸႂ်ႉတိုဝ်းၼၼ်ႉၼႆ ၸႂ်ႉပၼ် လွၵ်ႈထႅမ်သဵၼ်ႈ ၽၢႆႇတႂ်ႈၼႆႉလႄႈ။",
        "ipusubmit": "ထွၼ်ပႅတ်ႈ လွင်ႈႁႄႉတတ်းဢၼ်ၼႆႉ�",
index 16b6249..b201855 100644 (file)
        "blockip": "{{GENDER:$1|පරිශීලකයා}} වාරණය කරන්න",
        "blockiptext": "විශේෂිත අන්තර්ජාල ලිපිනයකින් හෝ ප්‍රතිශීලක නාමයකින් ලිවීම් ප්‍රවේශය වාරණය කෙරුමට පහත ආකෘති පත්‍රය භාවිතා කරන්න.\nවන්ධල්‍යය වැලැක්වීමේ හුදු  අභිලාෂයෙන් හා, [[{{MediaWiki:Policy-url}}|ප්‍රතිපත්ති]] ප්‍රකාරව මෙය සිදුකල යුත්තේය.\nවිශේෂිත  හේතුවක් මෙහි පහත ඇතුලත් කරන්න (නිදසුනක් ලෙස, වන්ධල්‍ය්‍යට ලක්වුනු විශේෂිත පිටු හඳුන්වමින්).",
        "ipaddressorusername": "පරිශීලක නාමය හෝ IP ලිපිනය:",
-       "ipbexpiry": "කල් ඉකුත්වීම:",
        "ipbreason": "හේතුව:",
        "ipbreason-dropdown": "*සාමාන්‍ය වාරණ හේතූන්\n** සාවද්‍ය තොරතුරු බහාලීම\n** පිටුවලින් අන්තර්ගතය ඉවත්කිරීම\n** බාහිර අඩවි වෙත අයාචිත-තැපැල් සබැඳියන්\n** විප්‍රලාප /පල්හෑලි පිටු තුලට බහාලීම\n** තැතිගන්වනසුළු  හැසිරීම/හිරිහැරකිරීම\n** බහුගණ ගිනුම් අපයෙදුම\n** නොපිළිගතහැකි පරිශීලකනාමය",
        "ipb-hardblock": "ප්‍රවිෂ්ට වූ පරිශීලකයන්ට  මෙම අන්තර්ජාල ලිපිනයෙන් සංස්කරණය කිරීම වලන්වන්න",
        "ipb-unblock": "පරිශීලක නාමයක හෝ අන්තර්ජාල ලිපිනයක වාරණය අත්හිටුවන්න",
        "ipb-blocklist": "පවතින වාරණයන් නරඹන්න",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} සඳහා දායකත්වයන්",
+       "block-expiry": "කල් ඉකුත්වීම:",
        "unblockip": "පරිශීලකයාගේ වාරණය අත්හිටුවන්න",
        "unblockiptext": "පෙරදී වාරණයට ලක්වූ අන්තර්ජාල ලිපිනය හෝ පරිශීලක නාමය හෝ වෙත ලිවීමේ බලය ප්‍රතිෂ්ඨාපනය කෙරුමට පහත ආකෘතිය භාවිත කරන්න.",
        "ipusubmit": "මෙම වාරණය කිරීම අත්හිටුවන්න",
index b9e7191..01b000b 100644 (file)
        "blockip": "Zablokovať {{GENDER:$1|používateľa|používateľku}}",
        "blockiptext": "Tento formulár použite na zablokovanie možnosti zápisu z konkrétnej IP adresy alebo od konkrétneho používateľa.\nMali by ste to urobiť len na zabránenie vandalizmu a v súlade so [[{{MediaWiki:Policy-url}}|zásadami a smernicami {{GRAMMAR:genitív|{{SITENAME}}}}]].\nNižšie uveďte konkrétny dôvod (napríklad uveďte konkrétne stránky, ktoré padli za obeť vandalizmu).\nRozsahy IP adreies môžete blokovať pomocou syntaxe [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; najväčší povolený rozsah je /$1 v prípade IPv4 a /$2 v prípade IPv6.",
        "ipaddressorusername": "IP adresa alebo meno používateľa:",
-       "ipbexpiry": "Ukončenie:",
        "ipbreason": "Dôvod:",
        "ipbreason-dropdown": "* Bežné dôvody blokovania\n** Zámerné vkladanie chybných informácií\n** Mazanie obsahu stránok\n** Spam odkazy na externé stránky\n** Vkladanie nezmyslov do stránok\n** Zastrašujúce správanie/obťažovanie\n** Zneužívanie viacerých účtov\n** Neprípustné používateľské meno",
        "ipb-hardblock": "Zabrániť prihláseným používateľom upravovať z tejto IP adresy",
        "ipb-blocklist": "Zobraziť existujúce blokovania",
        "ipb-blocklist-contribs": "Príspevky {{GENDER:$1|redaktora|redaktorky}} $1",
        "ipb-blocklist-duration-left": "zostáva $1",
+       "block-expiry": "Ukončenie:",
        "unblockip": "Odblokovať používateľa",
        "unblockiptext": "Použite tento formulár na obnovenie možnosti zápisov\nz/od momentálne zablokovanej IP adresy/používateľa.",
        "ipusubmit": "Zrušiť toto blokovanie",
index 2488bbe..680862b 100644 (file)
        "recentchangeslinked-feed": "رلدیاں ملدیاں تبدیلیاں",
        "recentchangeslinked-toolbox": "رلدیاں ملدیاں تبدیلیاں",
        "recentchangeslinked-title": "\"$1\" دے متعلقہ تبدیلیاں",
-       "recentchangeslinked-summary": "اوں ورقے تے یا ورقے نال جُڑے ورقیاں وچ تبدیلیاں ݙیکھݨ کیتے ورقے دا ناں لکھو۔(کہیں ون٘کی دے رکناں کوں ݙیکھݨ کیتے ون٘کی دا ناں لکھو)۔\nایں ورقے دی تبدیلیاں [[Special:Watchlist|اکھیں ہیٹھ ورقے]] <strong>موٹے</strong> نظر آسن۔",
+       "recentchangeslinked-summary": "اوں ورقے تے یا ورقے نال جُڑے ورقیاں وچ تبدیلیاں ݙیکھݨ کیتے ورقے دا ناں لکھو۔(کہیں ونکی دے رکناں کوں ݙیکھݨ کیتے ونکی دا ناں لکھو)۔\nایں ورقے دی تبدیلیاں [[Special:Watchlist|اکھیں ہیٹھ ورقے]] <strong>موٹے</strong> نظر آسن۔",
        "recentchangeslinked-page": "ورقے دا ناں",
        "recentchangeslinked-to": "کھلے ہوئے ورقے دی بجائے ایندے نال جُڑے ہوئے ورقے دیاں تبدیلیاں ݙکھاؤ",
        "upload": "فائل چڑھاؤ",
        "whatlinkshere-submit": "ڄلو",
        "ipbreason": "سبب:",
        "ipb-partial": "جزوی",
-       "ipb-type-label": "قسم",
        "ipb-pages-label": "ورقے",
+       "block-reason": "سبب:",
        "autoblocklist-submit": "ڳولو",
        "blocklist-reason": "سبب:",
        "infiniteblock": "بے انت",
index e0233fb..b841a2e 100644 (file)
        "resetpass-abort-generic": "Razširitev je prekinila spremembo gesla.",
        "resetpass-expired": "Vaše geslo je poteklo. Prosimo, nastavite novo geslo za prijavo.",
        "resetpass-expired-soft": "Vaše geslo je poteklo in ga morate spremeniti. Prosimo, izberite novo geslo zdaj ali kliknite »{{int:authprovider-resetpass-skip-label}}«, da ga spremenite pozneje.",
+       "resetpass-validity": "Vaše geslo ni veljavno: $1\n\nProsimo, nastavite novo geslo za prijavo.",
        "resetpass-validity-soft": "Vaše geslo ni veljavno: $1\n\nProsimo, izberite novo geslo zdaj ali kliknite »{{int:authprovider-resetpass-skip-label}}«, da ga spremenite pozneje.",
        "passwordreset": "Ponastavitev gesla",
        "passwordreset-text-one": "Da ponastavite svoje geslo, izpolnite naslednji obrazec.",
        "blockedtext": "<strong>Urejanje z vašim uporabniškim imenom oziroma IP-naslovom je onemogočeno.</strong>\n\nBlokiral vas je $1.\nPodani razlog je <em>$2</em>.\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 »{{int:emailuser}}« 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:<em>$2</em>\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 »{{int:emailuser}}« 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.",
        "systemblockedtext": "Vaše uporabniško ime ali IP-naslov je MediaWiki samodejn blokiral.\nPodani razlog je:\n\n:<em>$2</em>\n\n* Začetek blokade: $8\n* Potek blokade: $6\n* Blokirani uporabnik: $7\n\nVaš trenutni IP-naslov je $3.\nProsimo, da v svoje poizvedbe vključite vse zgornje podatke.",
+       "actionblockedtext": "To dejanje vam je bilo preprečeno.",
        "blockednoreason": "razlog ni podan",
        "whitelistedittext": "Za urejanje strani se morate $1.",
        "confirmedittext": "Pred urejanjem strani morate potrditi svoj e-poštni naslov.\nProsimo, da ga z uporabo [[Special:Preferences|uporabniških nastavitev]] vpišete in potrdite.",
        "blockip": "Blokiraj {{GENDER:$1|uporabnika|uporabnico}}",
        "blockiptext": "Naslednji obrazec vam omogoča, da določenemu IP-naslovu ali uporabniškemu imenu preprečite urejanje.\nTo storimo le zaradi zaščite pred nepotrebnim uničevanjem in po [[{{MediaWiki:Policy-url}}|pravilih]].\nVnesite tudi razlog (''na primer'' seznam strani, ki jih je uporabnik po nepotrebnem kvaril).\nBlokirate lahko razpone IP s skladnjo[https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; najširši dovoljen razpon je /$1 za IPv4 in /$2 za IPv6.",
        "ipaddressorusername": "IP-naslov ali uporabniško ime",
-       "ipbexpiry": "Pretek",
        "ipbreason": "Razlog:",
        "ipbreason-dropdown": "*Razlogi za blokado\n** vandalizem\n** dodajanje napačnih/lažnih podatkov\n** brisanje strani\n** dodajanje nepotrebnih zunanjih povezav\n** dodajanje neumnosti v besedilo\n** nadlegovanje/osebni napadi\n** neprimerno uporabniško ime",
        "ipb-hardblock": "Prepreči prijavljenim uporabnikom urejati s tega IP-naslova",
-       "ipbcreateaccount": "Prepreči ustvarjanje računov",
-       "ipbemailban": "Uporabniku prepreči pošiljanje e-pošte",
+       "ipbcreateaccount": "Ustvarjanje računa",
+       "ipbemailban": "Pošiljanje e-pošte",
        "ipbenableautoblock": "Samodejno blokiraj zadnji IP-naslov tega uporabnika in vse naslednje naslove, ki jih bodo hoteli uporabiti",
        "ipbsubmit": "Blokiraj naslov",
        "ipbother": "Drugačen čas",
        "ipboptions": "2 uri:2 hours,1 dan:1 day,3 dni:3 days,1 teden:1 week,2 tedna:2 weeks,1 mesec:1 month,3 mesece:3 months,6 mesecev:6 months,1 leto:1 year,neomejeno dolgo:infinite",
        "ipbhidename": "Skrij uporabniško ime iz urejanja in seznamov",
        "ipbwatchuser": "Nadzoruj uporabnikovo uporabniško in pogovorno stran",
-       "ipb-disableusertalk": "Med blokado prepreči temu uporabniku urejati lastno pogovorno stran",
+       "ipb-disableusertalk": "Urejanje lastne pogovorne strani",
        "ipb-change-block": "Ponovno blokiraj uporabnika s temi nastavitvami",
        "ipb-confirm": "Potrdi blokado",
        "ipb-sitewide": "Po celotni strani",
        "ipb-partial": "Delno",
-       "ipb-type-label": "Vrsta",
        "ipb-pages-label": "Strani",
        "badipaddress": "Neveljaven IP-naslov ali uporabniško ime.",
        "blockipsuccesssub": "Blokiranje je uspelo",
        "ipb-blocklist": "Ogled obstoječih blokad",
        "ipb-blocklist-contribs": "Prispevki za {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "še $1",
+       "block-actions": "Blokiraj dejanja:",
+       "block-expiry": "Pretek",
+       "block-options": "Dodatne možnosti:",
+       "block-prevent-edit": "Urejanje",
+       "block-reason": "Razlog:",
+       "block-target": "Uporabniško ime ali IP-naslov:",
        "unblockip": "Deblokirajte uporabnika",
        "unblockiptext": "Z naslednjim obrazcem obnovite možnost urejanja z blokiranega IP-naslova ali uporabniškega računa.",
        "ipusubmit": "Odstrani blokado",
        "specialpages-group-developer": "Razvijalska orodja",
        "blankpage": "Prazna stran",
        "intentionallyblankpage": "Ta stran je namenoma prazna.",
+       "disabledspecialpage-disabled": "Stran je onemogočil sistemski administrator.",
        "external_image_whitelist": " #Pustite to vrstico takšno, kot je<pre>\n#Navedite odlomke običajnih izrazov (regular expressions) (samo del, ki gre med //) spodaj\n#Ti bodo primerjani z URL-ji zunanjih (hotlinkanih) slik\n#Tisti, ki se bodo ujemali, bodo prikazani kot slike; v nasprotnem primeru bo prikazana samo povezava do slike\n#Vrstice, ki se začnejo z #, so obravnavane kot komentarji\n#Zadeva je občutljiva na velikost črk\n\n#Navedite vse izraze regex pod to vrstico. Pustite to vrstico takšno, kot je</pre>",
        "tags": "Veljavne etikete sprememb",
        "tag-filter": "Filter [[Special:Tags|oznak]]:",
index 23ebccf..85ac42b 100644 (file)
        "blockip": "Blloko {{GENDER:$1|user}}",
        "blockiptext": "Përdorni formularin e mëposhtëm për të hequr lejen e shkrimit për një përdorues ose IP specifike.\nKjo duhet bërë vetëm në raste vandalizmi, dhe në përputhje me [[{{MediaWiki:Policy-url}}|politikat]].\nPlotësoni arsyen specifike më poshtë (p.sh., tregoni faqet specifike që u vandalizuan).\nJu mund të bllokoni vargjet e adresës IP duke përdorur sintaksën [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; vargu më i madh i lejuar është /$1 për IPv4 dhe /$2 për IPv6.",
        "ipaddressorusername": "Adresë IP ose emër përdoruesi",
-       "ipbexpiry": "Afati",
        "ipbreason": "Arsyeja:",
        "ipbreason-dropdown": "*Arsye të zakonshme të bllokimit\n** Vendosja e të dhënave të rreme\n** Largimi i përmbajtjeve të faqeve\n** Vendosja e lidhjeve spam \n** Vendosja e të dhënave të pakuptimta\n** Sjellje arrogante dhe/ose ngacmuese\n** Përdorimi i më shumë llogarive\n** Nofkë e papranueshme",
        "ipb-hardblock": "Parandalo përdoruesit e kyçur për të redaktuar nga kjo IP adresë",
        "ipb-blocklist": "Përdorues dhe IP adresa të bllokuara",
        "ipb-blocklist-contribs": "Kontributet për {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "kanë mbetë $1",
+       "block-expiry": "Afati",
        "unblockip": "Zhblloko përdoruesin",
        "unblockiptext": "Përdor formularin e më poshtëm për t'i ridhënë leje shkrimi\nnjë përdoruesi ose IP adreseje të bllokuar.",
        "ipusubmit": "Hiqni këtë bllokim",
index fb160ce..29cdee6 100644 (file)
                ]
        },
        "tog-underline": "Подвлачење веза:",
-       "tog-hideminor": "Сакриј мање измене са списка скорашњих измена",
+       "tog-hideminor": "Сакривај мање измене са списка скорашњих измена",
        "tog-hidepatrolled": "Сакриј патролиране измене са списка скорашњих измена",
        "tog-newpageshidepatrolled": "Сакриј патролиране странице са списка нових страница",
-       "tog-hidecategorization": "Сакриј категоризацију страница",
-       "tog-extendwatchlist": "Прошири списак надгледања за приказ свих промена, не само недавних",
+       "tog-hidecategorization": "Сакривај категоризацију страница",
+       "tog-extendwatchlist": "Прошируј списак надгледања за приказ свих промена, не само недавних",
        "tog-usenewrc": "Групиши промене по страници у скорашњим изменама и списку надгледања",
        "tog-numberheadings": "Аутоматски нумериши наслове",
        "tog-editondblclick": "Омогући уређивање страница двоструким кликом",
@@ -60,8 +60,8 @@
        "tog-watchuploads": "Додај нове датотеке које отпремим на мој списак надгледања",
        "tog-watchrollback": "Додај странице на којима сам извршио враћање измена на мој списак надгледања",
        "tog-minordefault": "Подразумевано означавај све измене као мање",
-       "tog-previewontop": "Ð\9fÑ\80икажи претпреглед пре оквира за уређивање",
-       "tog-previewonfirst": "Ð\9fÑ\80икажи претпреглед при првој измени",
+       "tog-previewontop": "Ð\9fÑ\80иказÑ\83Ñ\98 претпреглед пре оквира за уређивање",
+       "tog-previewonfirst": "Ð\9fÑ\80иказÑ\83Ñ\98 претпреглед при првој измени",
        "tog-enotifwatchlistpages": "Пошаљи ми е-поруку када се промени страница или датотека са мог списка надгледања",
        "tog-enotifusertalkpages": "Пошаљи ми е-поруку кад се промени моја корисничка страница за разговор",
        "tog-enotifminoredits": "Пошаљи ми е-поруку и код мањих измена страница и датотека",
        "tog-shownumberswatching": "Прикажи број корисника који надгледају",
        "tog-oldsig": "Ваш постојећи потпис:",
        "tog-fancysig": "Сматрај потпис као викитекст (без аутоматског повезивања)",
-       "tog-uselivepreview": "Ð\9fÑ\80икажи претпреглед без поновног учитавања странице",
+       "tog-uselivepreview": "Ð\9fÑ\80иказÑ\83Ñ\98 претпреглед без поновног учитавања странице",
        "tog-forceeditsummary": "Упозори ме када не унесем опис измене",
-       "tog-watchlisthideown": "Сакриј моје измене са списка надгледања",
-       "tog-watchlisthidebots": "Сакриј измене ботова са списка надгледања",
-       "tog-watchlisthideminor": "Сакриј мање измене са списка надгледања",
-       "tog-watchlisthideliu": "Сакриј измене пријављених корисника са списка надгледања",
+       "tog-watchlisthideown": "Сакривај моје измене са списка надгледања",
+       "tog-watchlisthidebots": "Сакривај измене ботова са списка надгледања",
+       "tog-watchlisthideminor": "Сакривај мање измене са списка надгледања",
+       "tog-watchlisthideliu": "Сакривај измене пријављених корисника са списка надгледања",
        "tog-watchlistreloadautomatically": "Аутоматски поново учитај списак надгледања кад год се филтер промени (потребан JavaScript)",
        "tog-watchlistunwatchlinks": "Додај означиваче за прекид надгледања/нагледање ({{int:Watchlist-unwatch}}/{{int:Watchlist-unwatch-undo}}) на надгледане странице са променама (за функционалност пребацивања је потребан JavaScript)",
-       "tog-watchlisthideanons": "Сакриј измене анонимних корисника са списка надгледања",
+       "tog-watchlisthideanons": "Сакривај измене анонимних корисника са списка надгледања",
        "tog-watchlisthidepatrolled": "Сакриј патролиране измене са списка надгледања",
-       "tog-watchlisthidecategorization": "Сакриј категоризацију страница",
+       "tog-watchlisthidecategorization": "Сакривај категоризацију страница",
        "tog-ccmeonemails": "Пошаљи ми копије е-порука које пошаљем другим корисницима",
        "tog-diffonly": "Не приказуј садржај странице испод разлика",
-       "tog-showhiddencats": "Ð\9fÑ\80икажи скривене категорије",
+       "tog-showhiddencats": "Ð\9fÑ\80иказÑ\83Ñ\98 скривене категорије",
        "tog-norollbackdiff": "Не приказуј разлику након извршеног враћања",
        "tog-useeditwarning": "Упозори ме када напуштам страницу за уређивање са несачуваним променама",
        "tog-prefershttps": "Увек користи безбедну везу док сам пријављен/а.",
        "resetpass-abort-generic": "Промену лозинке је прекинуо додатак.",
        "resetpass-expired": "Ваша лозинка је истекла. Поставите нову лозинку да бисте се пријавили.",
        "resetpass-expired-soft": "Ваша лозинка је истекла и морате је променити. Поставите нову лозинку или кликните „{{int:authprovider-resetpass-skip-label}}“ да је промените касније.",
+       "resetpass-validity": "Ваша лозинка није важећа: $1\n\nПоставите нову да бисте се пријавили.",
        "resetpass-validity-soft": "Ваша лозинка није важећа: $1\n\nИзаберите нову одмах или кликните на „{{int:authprovider-resetpass-skip-label}}“ да је промените касније.",
        "passwordreset": "Ресетовање лозинке",
        "passwordreset-text-one": "Попуните овај образац да бисте примили привремену лозинку путем е-поште.",
        "blockedtext-partial": "<strong>Вашем корисничком имену или IP адреси је блокирано прављење промена на овој страници. Још увек можете да уређујете друге странице на овом викију.</strong> Можете да видите потпуне детаље блокаде на [[Special:MyContributions|доприносима налога]].\n\nБлокаду је извршио/ла $1.\n\nНаведен је следећи разлог: <em>$2</em>.\n\n* Почетак блокаде: $8\n* Истек блокаде: $6\n* Намењена кориснику/ци или IP адреси: $7\n* ID блокаде #$5",
        "blockedtext": "<strong>Ваше корисничко име или IP адреса је блокирана.</strong>\n\nБлокирање је {{GENDER:$4|извршио|извршила}} $1.\nРазлог је <em>$2</em>.\n\n* Почетак блокирања: $8\n* Истек блокирања: $6\n* Блокирани: $7\n\nМожете да се обратите {{GENDER:$4|кориснику|корисници}} $1 или [[{{MediaWiki:Grouppage-sysop}}|администратору]] ради дискусије о блокирању.\nНе можете да користите могућност „{{int:emailuser}}” осим ако сте унели валидну имејл адресу у својим [[Special:Preferences|подешавањима]] налога и нисте блокирани од коришћења исте.\nВаша тренутна IP адреса је $3, а ID блокирања #$5.\nНаведите све информације одозго при стварању било каквих упита.",
        "autoblockedtext": "Ваша IP адреса је аутоматски блокирана јер ју је користио други корисник, кога је {{GENDER:$4|блокирао|блокирала|блокирао/ла}} $1.\nРазлог:\n\n:<em>$2</em>\n\n* Почетак блокаде: $8\n* Крај блокаде: $6\n* Име корисника: $7\n\nМожете да контактирате {{GENDER:$4|корисника|корисницу|корисника/цу}} $1 или другог [[{{MediaWiki:Grouppage-sysop}}|администратора]] да бисте расправљали о блокади.\n\nЗапамтите да не можете да користите функцију „{{int:emailuser}}“ осим ако сте навели важећу адресу е-поште у [[Special:Preferences|подешавањима]].\n\nВаша тренутна IP адреса је $3, а ID блокаде $5.\nУкључите све горње детаље при прављењу било каквих упита.",
+       "actionblockedtext": "Блокирано вам је извршавање ове радње.",
        "blockednoreason": "разлог није наведен",
        "whitelistedittext": "$1 да бисте уређивали странице.",
        "confirmedittext": "Морате да потврдите адресу е-поште пре уређивања страница.\nПоставите и проверите ваљаност адресе преко [[Special:Preferences|подешавања]].",
        "showhideselectedversions": "Промени видљивост изабраних измена",
        "editundo": "поништи",
        "diff-empty": "(нема разлике)",
-       "diff-multi-sameuser": "({{PLURAL:$1|Једна међуизмена истог корисника није приказана|$1 међуизмена истог корисника нису приказане|$1 међуизмена истог корисника није приказано}})",
+       "diff-multi-sameuser": "({{PLURAL:$1|1=Једна међуизмена истог корисника није приказана|$1 међуизмена истог корисника није приказана|$1 међуизмене истог корисника нису приказане|$1 међуизмена истог корисника није приказано}})",
        "diff-multi-otherusers": "({{PLURAL:$1|Једна међуизмена|$1 међуизмене|$1 међуизмена}} од стране {{PLURAL:$2|још једног корисника није приказана|$2 корисника није приказано}})",
        "diff-multi-manyusers": "({{PLURAL:$1|Није приказана међуизмена|Нису приказане $1 међуизмене|Није приказано $1 међуизмена}} од више од $2 корисника)",
        "diff-paragraph-moved-tonew": "Пасус је премештен. Кликните да пређете на нову локацију.",
        "mailnologintext": "Морате да се [[Special:UserLogin|пријавите]] и имате важећи адресу е-поште у [[Special:Preferences|подешавањима]] да бисте слали е-поруке другим корисницима.",
        "emailuser": "Пошаљи е-поруку овом кориснику/ци",
        "emailuser-title-target": "Слање е-поруке {{GENDER:$1|кориснику|корисници|кориснику/ци}}",
-       "emailuser-title-notarget": "СлаÑ\9aе Ðµ-поÑ\80Ñ\83ке ÐºÐ¾Ñ\80иÑ\81никÑ\83\86и",
+       "emailuser-title-notarget": "СлаÑ\9aе Ð¸Ð¼ÐµÑ\98ла ÐºÐ¾Ñ\80иÑ\81никÑ\83",
        "emailpagetext": "Можете да користите доњи образац да пошаљете имејл {{GENDER:$1|овом кориснику|овој корисници}}.\nИмејл који сте унели у вашим [[Special:Preferences|подешавањима]] ће се приказати у пољу „Од“, тако да ће прималац моћи да вам одговори директно.",
        "defemailsubject": "{{SITENAME}} — е-порука од {{GENDER:$1|корисника|кориснице|корисника/це}} „$1”",
        "usermaildisabled": "Корисничка е-пошта је онемогућена",
        "blockip": "Блокирање {{GENDER:$1|корисника|кориснице}}",
        "blockiptext": "Користите доњи образац да бисте забранили приступ за писање с одређене IP адресе или корисничког имена.\nОво би требало да вршите само ради спречавања вандализма, у складу са [[{{MediaWiki:Policy-url}}|смерницама]].\nИзаберите конкретан разлог испод (пример: навођење конкретних страница које су вандализоване). Можете блокирати опсеге IP адреса помоћу [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] синтаксе, највећи дозвољени опсег за IPv4 је /$1 односно /$2 за IPv6.",
        "ipaddressorusername": "IP адреса или корисничко име:",
-       "ipbexpiry": "Истиче:",
        "ipbreason": "Разлог:",
        "ipbreason-dropdown": "*Најчешћи разлози за блокирање\n** Уметање лажних информација\n** Уклањање садржаја са страница\n** Додавање непожељних веза до спољашњих сајтова\n** Уношење бесмислица/графита у странице\n** Непристојно понашање\n** Употреба више налога\n** Неприхватљиво корисничко име",
        "ipb-hardblock": "Спречи пријављене кориснике да уређују с ове IP адресе",
-       "ipbcreateaccount": "Онемогући отварање налога",
-       "ipbemailban": "СпÑ\80еÑ\87и Ñ\84Ñ\83нкÑ\86иÑ\98Ñ\83 Ñ\81лаÑ\9aа Ðµ-поÑ\80Ñ\83ке ÐºÐ¾Ñ\80иÑ\81ника",
+       "ipbcreateaccount": "Отварање налога",
+       "ipbemailban": "СлаÑ\9aе Ðµ-поÑ\80Ñ\83ка",
        "ipbenableautoblock": "Аутоматски блокирај последњу IP адресу овог корисника и све даљње адресе с којих покуша да уређује",
        "ipbsubmit": "Блокирај овог корисника",
        "ipbother": "Друго време:",
        "ipboptions": "2 сата:2 hours,1 дан:1 day,3 дана:3 days,1 недеља:1 week,2 недеље:2 weeks,1 месец:1 month,3 месеца:3 months,6 месеци:6 months,1 година:1 year,трајно:infinite",
        "ipbhidename": "Сакриј корисничко име са измена и спискова",
        "ipbwatchuser": "Надгледај корисничке странице и странице за разговор овог корисника",
-       "ipb-disableusertalk": "Ð\9eнемогÑ\83Ñ\9bи ÐºÐ¾Ñ\80иÑ\81никÑ\83 Ð´Ð° Ñ\83Ñ\80еÑ\92Ñ\83Ñ\98е Ñ\81воÑ\98Ñ\83 Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 за разговор",
+       "ipb-disableusertalk": "УÑ\80еÑ\92иваÑ\9aе Ñ\81опÑ\81Ñ\82вене Ñ\81Ñ\82Ñ\80аниÑ\86е за разговор",
        "ipb-change-block": "Поновно блокирај корисника с овим подешавањима",
        "ipb-confirm": "Потврди блокирање",
        "ipb-sitewide": "На целом сајту",
        "ipb-partial": "Делимично",
-       "ipb-type-label": "Врста",
        "ipb-pages-label": "Странице",
        "badipaddress": "Неважећа IP адреса",
        "blockipsuccesssub": "Блокирање је успело",
        "ipb-blocklist": "Прикажи постојеће блокаде",
        "ipb-blocklist-contribs": "Доприноси за {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "преостало: $1",
+       "block-actions": "Радње за блокирање:",
+       "block-expiry": "Истек:",
+       "block-options": "Додатне опције:",
+       "block-prevent-edit": "Уређивање",
+       "block-reason": "Разлог:",
+       "block-target": "Корисничко име или IP адреса",
        "unblockip": "Деблокирање корисника",
        "unblockiptext": "Користите доњи образац да бисте вратили право писања раније блокираној IP адреси или корисничком имену.",
        "ipusubmit": "Уклони ову блокаду",
        "previousdiff": "← Старија измена",
        "nextdiff": "Новија измена →",
        "mediawarning": "<strong>Упозорење:</strong> овај тип датотеке може да садржи штетан код.\nЊеговим извршавањем можете да угрозите ваш систем.",
-       "imagemaxsize": "Ð\9eгÑ\80аниÑ\87еÑ\9aе Ð²ÐµÐ»Ð¸Ñ\87ине слике на страницама за опис датотека:",
+       "imagemaxsize": "Ð\9eгÑ\80аниÑ\87и Ð²ÐµÐ»Ð¸Ñ\87инÑ\83 слике на страницама за опис датотека:",
        "thumbsize": "Величина сличице:",
        "widthheight": "$1 × $2",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|страница|странице|страница}}",
        "version-entrypoints": "URL адресе улазне тачке",
        "version-entrypoints-header-entrypoint": "Улазна тачка",
        "version-entrypoints-header-url": "URL адреса",
-       "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Article path]",
-       "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Script path]",
+       "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Путања до чланка]",
+       "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Путања до скрипте]",
        "version-libraries": "Инсталиране библиотеке",
        "version-libraries-library": "Библиотека",
        "version-libraries-version": "Верзија",
index 3ec0600..5a1c848 100644 (file)
        "showhideselectedversions": "Promeni vidljivost izabranih izmena",
        "editundo": "poništi",
        "diff-empty": "(nema razlike)",
-       "diff-multi-sameuser": "({{PLURAL:$1|Jedna međuizmena istog korisnika nije prikazana|$1 međuizmena istog korisnika nisu prikazane|$1 međuizmena istog korisnika nije prikazano}})",
+       "diff-multi-sameuser": "({{PLURAL:$1|1=Jedna međuizmena istog korisnika nije prikazana|$1 međuizmena istog korisnika nije prikazana|$1 međuizmene istog korisnika nisu prikazane|$1 međuizmena istog korisnika nije prikazano}})",
        "diff-multi-otherusers": "({{PLURAL:$1|Jedna međuizmena|$1 međuizmene|$1 međuizmena}} od strane {{PLURAL:$2|još jednog korisnika nije prikazana|$2 korisnika nije prikazano}})",
        "diff-multi-manyusers": "({{PLURAL:$1|Nije prikazana međuizmena|Nisu prikazane $1 međuizmene|Nije prikazano $1 međuizmena}} od više od $2 korisnika)",
        "diff-paragraph-moved-tonew": "Pasus je premešten. Kliknite da pređete na novu lokaciju.",
        "blockip": "Blokiranje {{GENDER:$1|korisnika|korisnice}}",
        "blockiptext": "Koristite donji obrazac da biste zabranili pristup za pisanje s određene IP adrese ili korisničkog imena.\nOvo bi trebalo da vršite samo radi sprečavanja vandalizma, u skladu sa [[{{MediaWiki:Policy-url}}|smernicama]].\nIzaberite konkretan razlog ispod (primer: navođenje konkretnih stranica koje su vandalizovane). Možete blokirati opsege IP adresa pomoću [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] sintakse, najveći dozvoljeni opseg za IPv4 je /$1 odnosno /$2 za IPv6.",
        "ipaddressorusername": "IP adresa ili korisničko ime:",
-       "ipbexpiry": "Ističe:",
        "ipbreason": "Razlog:",
        "ipbreason-dropdown": "*Najčešći razlozi za blokiranje\n** Umetanje lažnih informacija\n** Uklanjanje sadržaja sa stranica\n** Dodavanje nepoželjnih veza do spoljašnjih sajtova\n** Unošenje besmislica/grafita u stranice\n** Nepristojno ponašanje\n** Upotreba više naloga\n** Neprihvatljivo korisničko ime",
        "ipb-hardblock": "Spreči prijavljene korisnike da uređuju s ove IP adrese",
        "ipb-confirm": "Potvrdi blokiranje",
        "ipb-sitewide": "Na celom sajtu",
        "ipb-partial": "Delimično",
-       "ipb-type-label": "Vrsta",
        "ipb-pages-label": "Stranice",
        "badipaddress": "Nevažeća IP adresa",
        "blockipsuccesssub": "Blokiranje je uspelo",
        "ipb-blocklist": "Prikaži postojeće blokade",
        "ipb-blocklist-contribs": "Doprinosi za {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "preostalo: $1",
+       "block-expiry": "Ističe:",
        "unblockip": "Deblokiranje korisnika",
        "unblockiptext": "Koristite donji obrazac da biste vratili pravo pisanja ranije blokiranoj IP adresi ili korisničkom imenu.",
        "ipusubmit": "Ukloni ovu blokadu",
        "version-entrypoints": "URL adrese ulazne tačke",
        "version-entrypoints-header-entrypoint": "Ulazna tačka",
        "version-entrypoints-header-url": "URL adresa",
-       "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Article path]",
-       "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Script path]",
+       "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Putanja do članka]",
+       "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Putanja do skripte]",
        "version-libraries": "Instalirane biblioteke",
        "version-libraries-library": "Biblioteka",
        "version-libraries-version": "Verzija",
index b0e0197..6064c30 100644 (file)
        "blockip": "Blokkierje Benutser",
        "blockiptext": "Mäd dit Formular speerst du ne IP-Adresse of n Benutsernoome, so dät fon deer neen Annerengen moor foarnuumen wäide konnen.\nDit skuul bloot geböäre, uum Vandalismus tou ferhinnerjen un in Uureenstimmenge mäd do [[{{MediaWiki:Policy-url}}|Gjuchtlienjen]].\nReek dän Gruund foar ju Speere oun.",
        "ipaddressorusername": "IP-Adresse of Benutsernoome:",
-       "ipbexpiry": "Oulooptied (Speerduur):",
        "ipbreason": "Begruundenge:",
        "ipbreason-dropdown": "* Algemeene Speergruunde\n** Ienföigjen fon falske Information\n** Loosmoakjen fon Sieden\n** Föiget massenhaft externe Links ien\n** Ienstaalen fon uunsinnige Seeken in Sieden\n** betruujend Ferhoolden/Belästigenge\n** Misbruuk truch moorere Benutserkonten\n** Uungoadelge Benutsernoome",
        "ipb-hardblock": "Anmäldede Benutsere deeran hinderje, Beoarbaidengen unner disse IP-Adtässe foartouniemen",
        "ipb-unblock": "IP-Adrässe/Benutser fräireeke",
        "ipb-blocklist": "Aal aktuelle Speeren anwiese",
        "ipb-blocklist-contribs": "Benutserbiedreege foar „$1“",
+       "block-expiry": "Oulooptied (Speerduur):",
        "unblockip": "IP-Adrässe fräireeke",
        "unblockiptext": "Benutsje dät Formular, uum ne blokkierde IP-Adrässe fräitoureeken.",
        "ipusubmit": "Disse Speerenge wächhoalje",
index f324ef7..d7e4fee 100644 (file)
        "blockip": "Peungpeuk {{GENDER:$1|pamaké}}",
        "blockiptext": "Paké formulir di handap pikeun meungpeuk aksés nulis ti alamat IP atawa ngaran pamaké husus. Ieu sakuduna ditujukeun pikeun nyegah vandalisme, sarta saluyu jeung [[{{MediaWiki:Policy-url}}|kawijakan]]. Eusi alesan nu jéntré (misal, ngarujuk kaca tinangtu nu geus diruksak).",
        "ipaddressorusername": "Alamat IP atawa sandiasma:",
-       "ipbexpiry": "Kadaluarsa",
        "ipbreason": "Alesan:",
        "ipb-hardblock": "Nyegah pamaké anu asup log pikeun ngédit ti ieu alamat IP",
        "ipbcreateaccount": "Ulah bisa nyieun akun",
        "ipb-blocklist": "Tempo peungpeuk nu diteurapkeun",
        "ipb-blocklist-contribs": "Kontribusi pikeun {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "Nyésa $1",
+       "block-expiry": "Kadaluarsa",
        "unblockip": "Buka peungpeuk pamaké",
        "unblockiptext": "Paké formulir di handap pikeun mulangkeun aksés nulis ka alamat IP atawa ngaran pamaké nu saméméhna dipeungpeuk.",
        "ipusubmit": "Pupus ieu peungpeukan",
index 1345a57..53bc31b 100644 (file)
@@ -79,7 +79,8 @@
                        "Mdjarv",
                        "Frisko",
                        "Bengtsson96",
-                       "Nirmos (Wikimedia)"
+                       "Nirmos (Wikimedia)",
+                       "Psl85"
                ]
        },
        "tog-underline": "Stryk under länkar:",
        "tog-watchlisthideliu": "Visa inte redigeringar av inloggade användare i bevakningslistan",
        "tog-watchlistreloadautomatically": "Uppdatera bevakningslistan automatiskt när ett filter ändras (JavaScript krävs)",
        "tog-watchlistunwatchlinks": "Lägg till länkar för att bevaka och sluta bevaka ({{int:Watchlist-unwatch}}/{{int:Watchlist-unwatch-undo}}) artiklar i bevakningslistan (JavaScript krävs)",
-       "tog-watchlisthideanons": "Dölj redigeringar av anonyma användare i bevakningslistan",
+       "tog-watchlisthideanons": "Dölj redigeringar av oregistrerade användare i bevakningslistan",
        "tog-watchlisthidepatrolled": "Dölj patrullerade redigeringar i bevakningslistan",
        "tog-watchlisthidecategorization": "Dölj kategorisering av sidor",
        "tog-ccmeonemails": "Skicka kopior till mig av e-post jag skickar till andra användare",
        "resetpass-abort-generic": "Lösenordsändring av har avbrutits av ett tillägg.",
        "resetpass-expired": "Ditt lösenord har gått ut. Var god ange ett nytt lösenord för att logga in.",
        "resetpass-expired-soft": "Ditt lösenord har gått ut och behöver ändras. Var god välj ett nytt lösenord nu eller klicka på \"{{int:authprovider-resetpass-skip-label}}\" för att ändra det senare.",
+       "resetpass-validity": "Ditt lösenord är inte giltigt: $1\n\nVar god ange ett nytt lösenord för att logga in.",
        "resetpass-validity-soft": "Ditt lösenord är ogiltigt: $1\n\nVar god välj ett nytt lösenord nu eller klicka på \"{{int:authprovider-resetpass-skip-label}}\" för att ändra det senare.",
        "passwordreset": "Återställ lösenord",
        "passwordreset-text-one": "Fyll i detta formulär för att återställa ditt lösenord.",
        "blockedtext": "'''Din IP-adress eller ditt användarnamn är blockerat.'''\n\nBlockeringen utfördes av $1 med motiveringen: ''$2''.\n\n* Blockeringen startade: $8\n* Blockeringen gäller till: $6.\n* Blockeringen var avsedd för: $7.\n\nDu kan kontakta $1 eller någon annan av [[{{MediaWiki:Grouppage-sysop}}|administratörerna]] för att diskutera blockeringen.\nOm du är inloggad och har uppgivit en e-postadress i dina [[Special:Preferences|inställningar]] så kan du använda funktionen \"{{int:emailuser}}\", såvida du inte blivit blockerad från funktionen.\n\nDin IP-adress är $3 och blockerings-ID är #$5.\nVänligen ange informationen ovan i alla förfrågningar som du gör i ärendet.",
        "autoblockedtext": "Din IP-adress har blockerats automatiskt eftersom den har använts av en annan användare som blockerats av $1.\nMotiveringen av blockeringen var:\n\n:''$2''\n\n* Blockeringen startade: $8\n* Blockeringen gäller till: $6\n* Blockeringen är avsedd för: $7\n\nDu kan kontakta $1 eller någon annan [[{{MediaWiki:Grouppage-sysop}}|administratör]] för att diskutera blockeringen.\n\nObservera att du inte kan använda dig av funktionen \"{{int:emailuser}}\" om du inte har registrerat en giltig e-postadress i [[Special:Preferences|dina inställningar]] eller om du har blivit blockerad från att skicka e-post.\n\nDin nuvarande IP-adress är $3, och blockerings-ID är #$5.\nVänligen ange informationen ovan i alla förfrågningar som du gör i ärendet.",
        "systemblockedtext": "Ditt användarnamn eller IP-adress h    ar blockerats automatiskt av MediaWiki.\n\nMotiveringen av blockeringen var:\n\n:<em>$2</em>\n\n* Blockeringen startade: $8\n* Blockeringen gäller till: $6\n* Blockeringen är avsedd för: $7\n\nDin nuvarande IP-adress är $3.\nVänligen ange informationen ovan i alla förfrågningar som du gör i ärendet.",
+       "actionblockedtext": "Du har blockerats från att göra detta.",
        "blockednoreason": "ingen motivering angavs",
        "whitelistedittext": "Vänligen $1 för att redigera sidor.",
        "confirmedittext": "Du måste bekräfta din e-postadress innan du kan redigera sidor. Var vänlig ställ in och validera din e-postadress genom dina [[Special:Preferences|användarinställningar]].",
        "watchlist-options": "Alternativ för bevakningslistan",
        "watching": "Bevakar...",
        "unwatching": "Avbevakar...",
-       "watcherrortext": "Ett fel inträffade när du ändrade dina bevakningsinställningarna för \"$1\".",
+       "watcherrortext": "Ett fel inträffade när du ändrade dina bevakningsinställningar för \"$1\".",
        "enotif_reset": "Markera alla sidor som besökta",
        "enotif_impersonal_salutation": "{{SITENAME}}användare",
        "enotif_subject_deleted": "{{SITENAME}}sidan $1 har raderats av {{gender:$2|$2}}",
        "blockip": "Blockera {{GENDER:$1|användare}}",
        "blockiptext": "Använd formuläret nedan för att blockera möjligheten att redigera sidor från en specifik IP-adress eller ett användarnamn.\nDetta bör endast göras för att förhindra vandalisering, och i överensstämmelse med gällande [[{{MediaWiki:Policy-url}}|policy]].\nAnge orsak nedan (exempelvis genom att nämna sidor som blivit vandaliserade).\nDu kan blockera intervaller av IP-adresser med [https://sv.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]-syntax; det största tillåtna intervallet är /$1 för IPv4 och /$2 för IPv6.",
        "ipaddressorusername": "IP-adress eller användarnamn:",
-       "ipbexpiry": "Varaktighet:",
        "ipbreason": "Anledning:",
        "ipbreason-dropdown": "*Vanliga motiv till blockering\n** Infogar falsk information\n** Tar bort sidinnehåll\n** Länkspam till externa sajter\n** Lägger till nonsens på sidor\n** Hotfullt beteende/trakasserier\n** Missbruk av flera användarkonton\n** Oacceptabelt användarnamn",
        "ipb-hardblock": "Förhindra inloggade användare från att redigera från den här IP-adressen",
-       "ipbcreateaccount": "Förhindra registrering av användarkonton",
-       "ipbemailban": "Hindra användaren från att skicka e-post",
+       "ipbcreateaccount": "Skapa konto",
+       "ipbemailban": "Skicka e-post",
        "ipbenableautoblock": "Blockera automatiskt den IP-adress som användaren använde senast, samt alla adresser som användaren försöker redigera ifrån",
        "ipbsubmit": "Blockera användaren",
        "ipbother": "Annan tid:",
        "ipboptions": "2 timmar:2 hours,1 dygn:1 day,3 dygn:3 days,1 vecka:1 week,2 veckor:2 weeks,1 månad:1 month,3 månader:3 months,6 månader:6 months,1 år:1 year,oändlig:infinite",
        "ipbhidename": "Dölj användarnamnet från redigeringar och listor",
        "ipbwatchuser": "Bevaka användarens användarsida och diskussionssida",
-       "ipb-disableusertalk": "Hindra användaren från att redigera sin egen diskussionssida under blockeringen",
+       "ipb-disableusertalk": "Redigera sin egen diskussionssida",
        "ipb-change-block": "Återblockera användaren med de här inställningarna",
        "ipb-confirm": "Bekräfta blockering",
        "ipb-sitewide": "Hela webbplatsen",
        "ipb-partial": "Partiell",
-       "ipb-type-label": "Typ",
        "ipb-pages-label": "Sidor",
        "badipaddress": "Du har inte skrivit IP-adressen korrekt.",
        "blockipsuccesssub": "Blockeringen är utförd",
        "ipb-blocklist": "Visa gällande blockeringar",
        "ipb-blocklist-contribs": "Bidrag från {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 kvar",
+       "block-actions": "Handlingar att blockera:",
+       "block-expiry": "Varaktighet:",
+       "block-options": "Ytterligare alternativ:",
+       "block-prevent-edit": "Redigering",
+       "block-reason": "Anledning:",
+       "block-target": "Användarnamn eller IP-adress:",
        "unblockip": "Ta bort blockering av användare/IP-adress",
        "unblockiptext": "Använd formuläret nedan för att ta bort blockeringen av en IP-adress.",
        "ipusubmit": "Upphäv denna blockering",
        "delete_and_move_text": "Den titel du vill flytta sidan till, \"[[:$1]]\", finns redan. Vill du radera den för att möjliggöra flytt av denna sida dit?",
        "delete_and_move_confirm": "Ja, radera sidan",
        "delete_and_move_reason": "Raderad för att göra plats till flyttning av \"[[$1]]\"",
-       "selfmove": " Titeln är densamma;\nkan inte flytta en sida till sig själv.",
+       "selfmove": "Titeln är densamma;\nkan inte flytta en sida till sig själv.",
        "immobile-source-namespace": "Kan inte flytta sidor i namnrymden \"$1\"",
        "immobile-target-namespace": "Kan inte flytta sidor till namnrymden \"$1\"",
        "immobile-target-namespace-iw": "Interwikilänk är inte ett giltigt mål för sidflyttar.",
        "specialpages-group-developer": "Utvecklarverktyg",
        "blankpage": "Tom sida",
        "intentionallyblankpage": "Denna sida har avsiktligen lämnats tom.",
+       "disabledspecialpage-disabled": "Den här sidan har inaktiverats av en systemadministratör.",
        "external_image_whitelist": "#Lämna den här raden precis som den är<pre>\n#Skriv fragment av reguljära uttryck (bara delen som ska vara mellan //) nedan\n#Dessa kommer att jämföras med URL:er för externa bilder\n#De som matchar kommer att visas som bilder, annars visas bara en länk till bilden\n#Rader som börjar med # behandlas som kommentarer\n#Detta är skiftläges-okänsligt\n\n#Skriv alla fragment av reguljära uttryck ovanför den här raden. Lämna den här raden precis som den är</pre>",
        "tags": "Giltiga ändringsmärken",
        "tag-filter": "Filter för [[Special:Tags|märken]]:",
index d8cf4ee..63f2e87 100644 (file)
        "blockip": "Zuia mtumiaji",
        "blockiptext": "Tumia fomu iliyopo chini kumzuia mtu asihariri kwa kupitia anwani fulani wa IP au kwa kutumia jina fulani la mtumiaji.\nNia ya kumzuia mtu inatakiwa kuwa kuzuia uharibifu tu, na ifanikiwe kutokana na masharti ya [[{{MediaWiki:Policy-url}}|sera]].\nAndika sababu ya kuzuia chini (kwa mfano, kwa kutaja mifano ya kurasa zilizoharibiwa).",
        "ipaddressorusername": "Anwani ya IP au jina la mtumiaji:",
-       "ipbexpiry": "Itakwisha:",
        "ipbreason": "Sababu:",
        "ipbreason-dropdown": "*Sababu za kawaida za kuzuia\n** Kuingiza habari za uongo\n** Kuondosha yaliyomo katika kurasa\n** Viungo vya nje visivyotakiwa\n** Kuingiza upuuzi/ujinga sioeleweka kwenye makala\n** Adabu mbaya/kero\n** Kusumbua akaunti nyinginyingi\n** Jina la mutumiaji lisilokubalika",
        "ipb-hardblock": "Kuzuia watumiaji walioingia katika akaunti zao wasihariri kwa kutumia anwani hii ya IP",
        "ipb-unblock": "Acha kumzuia mtumiaji au anwani ya IP",
        "ipb-blocklist": "Tazama vizuizi vilivyomo",
        "ipb-blocklist-contribs": "Michango ya $1",
+       "block-expiry": "Itakwisha:",
        "unblockip": "Acha kuzuia mtumiaji",
        "ipusubmit": "Toa kizuizi hiki",
        "blocklist": "Watumiaji waliozuiliwa",
index d4bf92a..2b789cd 100644 (file)
        "blockip": "Zawrzij sprowjorza",
        "blockiptext": "Tyn formularz służy do zawjerańo sprowjyń spod uokreślůnygo adresu IP abo kůnkretnymu użytkowńikowi.\nZawjerać noleży jydyńy po to, by zapobjec wandalizmům, zgodńy ze [[{{MediaWiki:Policy-url}}|przijyntymi reglůma]].\nPodej powůd (np. umjeszczajůnc mjana zajtůw, na kerych dopuszczůno śe wandalizmu).",
        "ipaddressorusername": "Adres IP abo mjano użytkowńika",
-       "ipbexpiry": "Wygaso:",
        "ipbreason": "Čymu:",
        "ipbreason-dropdown": "*Nojczynstsze powody zawjerańo uod sprawjyń\n** Ataki na inkszych użytkowńikůw\n** Naruszyńy praw autorskych\n** Ńydozwolůne mjano użytkowńika\n** Open proxy/Tor\n** Spamowańy\n** Ůsuwańy treśći zajtůw\n** Wprowadzańy fołszywych informacyji\n** Wulgaryzmy\n** Wypisywańy gůpot na zajtach",
        "ipbcreateaccount": "Ńy dozwůl utwožyć kůnta",
        "ipb-unblock": "Uodymknij užytkowńika abo adres IP",
        "ipb-blocklist": "Zoboč istńijůnce zawarća",
        "ipb-blocklist-contribs": "Wkłod $1",
+       "block-expiry": "Wygaso:",
        "unblockip": "Uodymkńij sprowjyńo užytkowńikowi",
        "unblockiptext": "Ůžyj formulořa půńižej coby přiwrůćić možliwość sprowjańo s wčeśńij zawartygo adresu IP abo užytkowńikowi.",
        "ipusubmit": "Uodymkńij sprowjyńo užytkowńikowi",
index dd3206f..1c0708d 100644 (file)
        "blockip": "தடுக்கவும் {{GENDER:$1|பயனர்}}",
        "blockiptext": "ஒரு குறிப்பிட்ட ஐபி முகவரி அல்லது பயனரிடமிருந்து எழுத்து அணுக்கத்தைத் தடுப்பதற்குக் கீழேயுள்ள படிவத்தை உபயோகிக்கவும். இது விசமத்தனத்தைத் தடுப்பதற்கும் [[{{MediaWiki:Policy-url}}|{{SITENAME}} கொள்கை]]க்கு எற்புடைய வகையிலும் மட்டுமே பயன்படுத்தப்பட வேண்டும்.\nகுறிப்பிட்ட காரணமொன்றைக் கீழே நிரப்புக (எடுத்துக்காட்டாக, விசமத்தனம் செய்யப்பட்ட பக்கங்களை எடுத்துக் காட்டவும்).",
        "ipaddressorusername": "ஐ.பி. அல்லது பயனர் பெயர்:",
-       "ipbexpiry": "காலாவதி:",
        "ipbreason": "காரணம்:",
        "ipbreason-dropdown": "*பொதுவான தடைக் காரணங்கள்\n** பொய்யான தகவல்களை இடல்\n** பக்கங்களிலிருந்து உள்ளடக்கங்களை நீக்கல்\n** எரித இணைப்புகளை வெளியிணைப்பாக கொடுத்தல்\n** பக்கங்களுக்கு அர்த்தமற்ற உள்ளடக்கங்களை இணைத்தல்\n** பொறுப்பற்ற நடிவடிக்கைகள்\n** ஒரு பயனர் பல கணக்குகளைப் பேணல்\n** ஏற்றுக்கொள்ளப்படமுடியாத பயனர் பெயர்",
        "ipb-hardblock": "இந்த IP முகவரியில் இருந்து புகுபதிகை செய்த பயனர்கள் தொகுப்பதைத் தடுக்கவும்",
        "ipb-blocklist": "தற்போதுள்ள தடுப்புகளைப் பார்",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}}க்கு பங்களிப்புகள்",
        "ipb-blocklist-duration-left": "$1 வெளியேறினர்",
+       "block-expiry": "காலாவதி:",
        "unblockip": "பயனர் தடையை நீக்கு",
        "unblockiptext": "முன்னர் தடுக்கப்பட்ட ஐ.பி. முகவரி அல்லது பயனர்பெயரின் எழுத்து அணுக்கத்தை மீழ்விப்பதற்கு கீழேயுள்ள படிவத்தை பயன்படுத்தவும்.",
        "ipusubmit": "இந்தத் தடையை நீக்கு",
index 5f97429..51935ea 100644 (file)
        "whatlinkshere-filters": "Hmkangi’",
        "whatlinkshere-submit": "Musa’",
        "block": "Htzyaniy quw pptzyuwaw",
-       "ipbexpiry": "Sinpngan ryax:",
        "ipbreason": "’ringan:",
        "ipbsubmit": "Qhtaniy quw pptzyuwaw qaniy",
        "ipbother": "Zikang tay bzinah:",
        "blockipsuccesssub": "Wal thuzyay qmhut smu’ut",
        "ipb-edit-dropdown": "Sr’zyut miru’ quw ’ringan na qnhut",
        "ipb-blocklist-duration-left": "msthay $1",
+       "block-expiry": "Sinpngan ryax:",
        "ipusubmit": "Laxiy quw qnihut qaniy",
        "autoblocklist-submit": "Hhkangi’",
        "blocklist-timestamp": "Ryax zikang",
index bfb4c5c..f588e25 100644 (file)
        "blockip": "{{GENDER:$1|వాడుకరిని}} నిరోధించు",
        "blockiptext": "ఏదైనా ప్రత్యేక ఐపీ చిరునామానో లేదా వాడుకరిపేరునో రచనలు చెయ్యకుండా నిరోధించాలంటే కింది ఫారాన్ని వాడండి.\nకేవలం దుశ్చర్యల నివారణ కోసం మాత్రమే దీన్ని వాడాలి, అదికూడా [[{{MediaWiki:Policy-url}}|విధానాన్ని]] అనుసరించి మాత్రమే.\nస్పష్టమైన కారణాన్ని కింద రాయండి (ఉదాహరణకు, దుశ్చర్యలకు పాల్పడిన పేజీలను ఉదహరించండి).\n[https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] సిన్‌టాక్సును వాడి ఐపీ అడ్రసు శ్రేణిని నిరోధించవచ్చు; అనుమతించబడ్డ అతిపెద్ద శ్రేణి: IPv4 కు /$1, IPv6 కు /$2.",
        "ipaddressorusername": "ఐపీ చిరునామా లేదా వాడుకరిపేరు:",
-       "ipbexpiry": "అంతమయ్యే గడువు",
        "ipbreason": "కారణం:",
        "ipbreason-dropdown": "*సాధారణ నిరోధ కారణాలు\n** తప్పు సమాచారాన్ని చొప్పించడం\n** పేజీల్లోని సమాచారాన్ని తీసెయ్యడం\n** బయటి సైట్లకు లంకెలతో స్పాము చెయ్యడం\n** పేజీల్లోకి చెత్తను ఎక్కించడం\n** బెదిరింపు ప్రవర్తన/వేధింపులు\n** అనేక ఖాతాలను సృష్టించి దుశ్చర్యకు పాల్పడడం\n** అనుచితమైన వాడుకరి పేరు",
        "ipb-hardblock": "లాగినై ఉన్న వాడుకరులు ఈ ఐపీ అడ్రసు నుంచి మార్పుచేర్పులు చెయ్యకుండా నిరోధించండి",
        "ipb-confirm": "నిరోధాన్ని ధృవపరచండి",
        "ipb-sitewide": "సైట్ వ్యాప్తంగా",
        "ipb-partial": "పాక్షికం",
-       "ipb-type-label": "రకం",
        "ipb-pages-label": "పేజీలు",
        "badipaddress": "సరైన ఐ.పి. అడ్రసు కాదు",
        "blockipsuccesssub": "నిరోధం విజయవంతం అయింది",
        "ipb-blocklist": "అమల్లో ఉన్న నిరోధాలను చూపించు",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} మార్పులు-చేర్పులు",
        "ipb-blocklist-duration-left": "ఇంకా $1 మిగిలి ఉంది.",
+       "block-expiry": "అంతమయ్యే గడువు",
        "unblockip": "వాడుకరిపై నిరోధాన్ని తొలగించు",
        "unblockiptext": "కింది ఫారం ఉపయోగించి, నిరోధించబడిన ఐ.పీ. చిరునామా లేదా వాడుకరికి తిరిగి రచనలు చేసే అధికారం ఇవ్వవచ్చు.",
        "ipusubmit": "ఈ నిరోధాన్ని తొలగించు",
        "delete_and_move_text": "గమ్యపు పేజీ \"[[:$1]]\" ఇప్పటికే ఉనికిలో ఉంది. \nప్రస్తుత తరలింపుకు వీలుగా దాన్ని తొలగించేయమంటారా?",
        "delete_and_move_confirm": "అవును, పేజీని తొలగించు",
        "delete_and_move_reason": "\"[[$1]]\"ను తరలించడానికి వీలుగా తొలగించారు",
-       "selfmove": " శీర్షిక ఒకటే;\nపేజీని దాని పైకే తరలించడం కుదరదు.",
+       "selfmove": "శీర్షిక ఒకటే;\nపేజీని దాని పైకే తరలించడం కుదరదు.",
        "immobile-source-namespace": "\"$1\" పేరుబరిలోని పేజీలను తరలించలేరు",
        "immobile-target-namespace": "\"$1\" పేరుబరిలోనికి పేజీలను తరలించలేరు",
        "immobile-target-namespace-iw": "పేజీని తరలించడానికి అంతర్వికీ లింకు సరైన లక్ష్యం కాదు.",
index 46b78d6..32bd7f8 100644 (file)
        "block": "Blokeiu uza-na'in",
        "blockip": "Blokeiu uza-na'in",
        "ipaddressorusername": "Diresaun IP ka naran uza-na'in:",
-       "ipbexpiry": "Tempu:",
        "ipbreason": "Motivu:",
        "ipbcreateaccount": "La bele kria konta foun",
        "ipbemailban": "La bele haruka korreiu eletróniku",
        "ipbhidename": "Subar naran uza-na'in (iha kontribuisaun no lista seluk)",
        "ipbwatchuser": "Hateke pájina uza-na'in nian (hamutuk ho pájina diskusaun)",
        "ipb-disableusertalk": "La bele edita ninia pájina diskusaun",
+       "block-expiry": "Tempu:",
        "ipblocklist": "Uza-na'in sira-ne'ebé la bele edita",
        "blocklist-reason": "Razaun",
        "ipblocklist-submit": "Buka",
index 7049dc8..5b7db06 100644 (file)
        "blockip": "Бастани корбар",
        "blockiptext": "Барои бастани дастрасии вироиши нишонаи IP ё номи корбарӣ мушаххас аз форми зерин истифода кунед.\nИн кор фақат бояд барои ҷилавгирӣ аз харобкори ва мувофиқи бо [[{{MediaWiki:Policy-url}}|сиёсати қатъи дастрасӣ]] анҷом шавад.\nДалели мушаххас барои ин корро дар зер зикр кунед (барои мисол, зикри саҳифаҳое, ки харобкорӣ шудаанд).",
        "ipaddressorusername": "IP нишона ё номи корбар:",
-       "ipbexpiry": "Хотима:",
        "ipbreason": "Сабаб:",
        "ipbreason-dropdown": "*Сабабҳои умумии бастан\n** Ворид кардани иттилооти нодуруст\n** Пок кардани иттилооти муфид аз саҳифаҳо\n** Истифода бурдани пайвандҳои спам ба сомонаҳои беруна\n** Ворид кардани навиштаҳои беманънӣ ба саҳифаҳо\n** Рафтори баъд/масхаракунии дигар корбарон\n** Сӯиистифода аз чанд ҳисоби корбарӣ\n** Номи корбарии номуносиб",
        "ipbcreateaccount": "Ҷилавгирӣ аз эҷоди ҳисоб",
        "ipb-unblock-addr": "Боз кардани $1",
        "ipb-unblock": "Боз кардани номи корбарӣ ё нишонаи IP",
        "ipb-blocklist": "Дидани бастаҳои мавҷуд",
+       "block-expiry": "Хотима:",
        "unblockip": "Боз кардани корбар",
        "unblockiptext": "Барои барқарор кардан дастрасии навиштан барои нишонаи IP ё номи корбарии қаблан баста шуда, аз форми зерин истифода кунед.",
        "ipusubmit": "Боз кардани дастрасӣ",
index 641ed31..fe5c5b3 100644 (file)
        "blockip": "Bastani korbar",
        "blockiptext": "Baroi bastani dastrasiji viroişi nişonai IP jo nomi korbarī muşaxxas az formi zerin istifoda kuned.\nIn kor faqat bojad baroi çilavgirī az xarobkori va muvofiqi bo [[{{MediaWiki:Policy-url}}|sijosati qat'i dastrasī]] ançom şavad.\nDaleli muşaxxas baroi in korro dar zer zikr kuned (baroi misol, zikri sahifahoe, ki xarobkorī şudaand).",
        "ipaddressorusername": "IP nişona jo nomi korbar:",
-       "ipbexpiry": "Xotima:",
        "ipbreason": "Sabab:",
        "ipbreason-dropdown": "*Sababhoi umumiji bastan\n** Vorid kardani ittilooti nodurust\n** Pok kardani ittilooti mufid az sahifaho\n** Istifoda burdani pajvandhoi spam ba somonahoi beruna\n** Vorid kardani naviştahoi beman'nī ba sahifaho\n** Raftori ba'd/masxarakuniji digar korbaron\n** Sūiistifoda az cand hisobi korbarī\n** Nomi korbariji nomunosib",
        "ipbcreateaccount": "Çilavgirī az eçodi hisob",
        "ipb-unblock-addr": "Boz kardani $1",
        "ipb-unblock": "Boz kardani nomi korbarī jo nişonai IP",
        "ipb-blocklist": "Didani bastahoi mavçud",
+       "block-expiry": "Xotima:",
        "unblockip": "Boz kardani korbar",
        "unblockiptext": "Baroi barqaror kardan dastrasiji naviştan baroi nişonai IP jo nomi korbariji qablan basta şuda, az formi zerin istifoda kuned.",
        "ipusubmit": "Boz kardani dastrasī",
index 34054a3..d999e12 100644 (file)
        "talkpagelinktext": "คุย",
        "specialpage": "หน้าพิเศษ",
        "personaltools": "เครื่องมือส่วนตัว",
-       "talk": "à¸\81ารอภิà¸\9bราย",
+       "talk": "อภิปราย",
        "views": "ดู",
        "toolbox": "เครื่องมือ",
        "tool-link-userrights": "เปลี่ยนกลุ่ม{{GENDER:$1|ผู้ใช้}}",
        "tool-link-userrights-readonly": "ดูกลุ่ม{{GENDER:$1|ผู้ใช้}}",
        "tool-link-emailuser": "ส่งอีเมลหา{{GENDER:$1|ผู้ใช้}}นี้",
        "imagepage": "ดูหน้าไฟล์",
-       "mediawikipage": "à¸\94ูหà¸\99à¹\89าà¸\82à¹\89อà¸\84วาม",
+       "mediawikipage": "à¸\94ูหà¸\99à¹\89าสาร",
        "templatepage": "ดูหน้าแม่แบบ",
        "viewhelppage": "ดูหน้าคำอธิบาย",
        "categorypage": "ดูหน้าหมวดหมู่",
        "resetpass-abort-generic": "การเปลี่ยนรหัสผ่านถูกส่วนขยายยกเลิก",
        "resetpass-expired": "รหัสผ่านของคุณหมดอายุแล้ว โปรดตั้งรหัสผ่านใหม่เพื่อเข้าสู่ระบบ",
        "resetpass-expired-soft": "รหัสผ่านของคุณหมดอายุแล้วและจำเป็นต้องเปลี่ยนใหม่ โปรดเลือกรหัสผ่านใหม่ขณะนี้ หรือคลิก \"{{int:authprovider-resetpass-skip-label}}\" เพื่อเปลี่ยนใหม่ทีหลัง",
+       "resetpass-validity": "รหัสผ่านของคุณไม่ถูกต้อง: $1\n\nกรุณาตั้งรหัสผ่านใหม่เพื่อเข้าสู่ระบบ",
        "resetpass-validity-soft": "รหัสผ่านของคุณไม่สมเหตุสมผล: $1\n\nโปรดเลือกรหัสผ่านใหม่ในขณะนี้ หรือคลิก \"{{int:authprovider-resetpass-skip-label}}\" เพื่อเปลี่ยนใหม่ทีหลัง",
        "passwordreset": "ตั้งรหัสผ่านใหม่",
        "passwordreset-text-one": "กรอกแบบนี้เพื่อรับรหัสผ่านชั่วคราวโดยทางอีเมล",
        "blockedtext": "<strong>ชื่อผู้ใช้หรือเลขที่อยู่ไอพีของคุณถูกบล็อก</strong>\n\nการบล็อกนี้ดำเนินการโดย $1\nซึ่งให้เหตุผลว่า ''$2''\n\n* เริ่มการบล็อก: $8\n* หมดเขตการบล็อก: $6\n* ผู้ถูกบล็อกที่เจตนา: $7\n\nคุณสามารถติดต่อ $1 หรือ[[{{MediaWiki:Grouppage-sysop}}|ผู้ดูแลระบบ]]คนอื่นเพื่ออภิปรายการบล็อกนี้ได้\nคุณไม่สามารถใช้คุณลักษณะ \"{{int:emailuser}}\" จนกว่าจะระบุที่อยู่อีเมลให้ถูกต้องใน[[Special:Preferences|การตั้งค่าบัญชี]]ของคุณ และคุณมิได้ถูกห้ามใช้ความสามารถนี้\nเลขที่อยู่ไอพีปัจจุบันของคุณคือ $3 และหมายเลขการบล็อกคือ #$5 \nโปรดแสดงรายละเอียดข้างต้นทั้งหมดในการสอบถามใด ๆ",
        "autoblockedtext": "เลขที่อยู่ไอพีของคุณถูกบล็อกอัตโนมัติ เพราะเคยมีผู้ใช้อื่นใช้ ซึ่งถูกบล็อกโดย $1\nโดยให้เหตุผลว่า\n\n:<em>$2</em>\n\n* เริ่มการบล็อก: $8\n* สิ้นสุดการบล็อก: $6\n* ผู้ถูกบล็อกที่เจตนา: $7\n\nคุณสามารถติดต่อ $1 หรือ[[{{MediaWiki:Grouppage-sysop}}|ผู้ดูแลระบบ]]คนอื่นเพื่ออภิปรายการบล็อกนี้ \nคุณไม่สามารถใช้คุณลักษณะ \"{{int:emailuser}}\" จนกว่าจะระบุที่อยู่อีเมลที่ถูกต้องใน[[Special:Preferences|การตั้งค่าบัญชี]]ของคุณ และคุณมิได้ถูกห้ามใช้\nเลขที่อยู่ไอพีปัจจุบันของคุณคือ $3 และหมายเลขการบล็อกคือ #$5 \nโปรดรวมรายละเอียดข้างต้นทั้งหมดในการสอบถามใด ๆ",
        "systemblockedtext": "ชื่อผู้ใช้หรือที่อยู่ไอพีของคุณถูกบล็อกอัตโนมัติโดยมีเดียวิกิ\nเหตุผลสำหรับการบล็อกคือ:\n\n:<em>$2</em>\n\n* เริ่มการบล็อก: $8\n* สิ้นสุดการบล็อก: $6\n* ผู้ดำเนินการบล็อก: $7\n\nไอพีแอดเดรสปัจจุบันของคุณคือ $3\nโปรดแจ้งรายละเอียดทั้งหมดข้างต้น ถ้าคุณมีข้อสงสัยใด ๆ",
+       "actionblockedtext": "คุณถูกบล็อกไม่ให้ทำการกระทำนี้",
        "blockednoreason": "ไม่ได้ให้เหตุผล",
        "whitelistedittext": "คุณต้อง$1เพื่อแก้ไขหน้า",
        "confirmedittext": "คุณต้องยืนยันที่อยู่อีเมลของคุณก่อนแก้ไขหน้า \nโปรดตั้งและตรวจสอบความสมเหตุสมผลของที่อยู่อีเมลของคุผ่าน[[Special:Preferences|การตั้งค่าผู้ใช้]]",
        "listgrouprights-summary": "ด้านล่างเป็นรายการกลุ่มผู้ใช้ที่นิยามบนวิกินี้ และสิทธิการเข้าถึงที่เกี่ยวข้อง\nอาจมี[[{{MediaWiki:Listgrouprights-helppage}}|ข้อมูลเพิ่มเติม]]เกี่ยวกับสิทธิหนึ่ง ๆ",
        "listgrouprights-key": "คำอธิบาย:\n* <span class=\"listgrouprights-granted\">สิทธิที่ได้รับแต่งตั้ง</span>\n* <span class=\"listgrouprights-revoked\">สิทธิที่ถูกเพิกถอน</span>",
        "listgrouprights-group": "กลุ่ม",
-       "listgrouprights-rights": "สิทธิ",
+       "listgrouprights-rights": "สิทธิ",
        "listgrouprights-helppage": "Help:สิทธิกลุ่ม",
        "listgrouprights-members": "(รายการสมาชิก)",
        "listgrouprights-addgroup": "เพิ่ม{{PLURAL:$2|กลุ่มนี้|กลุ่มเหล่านี้}}: $1",
        "listgrouprights-namespaceprotection-restrictedto": "สิทธิอนุญาตให้ผู้ใช้แก้ไข",
        "listgrants": "การให้สิทธิ",
        "listgrants-grant": "การให้สิทธิ",
-       "listgrants-rights": "สิทธิ",
+       "listgrants-rights": "สิทธิ",
        "trackingcategories": "หมวดหมู่ค้นหาและติดตาม",
        "trackingcategories-summary": "หน้านี้แสดงรายการหมวดหมู่ค้นหาและติดตามซึ่งซอฟต์แวร์มีเดียวิกิจัดการอัตโนมัติ สามารถเปลี่ยนชื่อเหล่านี้ได้โดยการเปลี่ยนข้อความระบบที่เกี่ยวข้องในเนมสเปซ {{ns:8}}",
        "trackingcategories-msg": "หมวดหมู่ค้นหาและติดตาม",
        "logentry-contentmodel-change-revert": "ย้อน",
        "protectlogpage": "ปูมการป้องกัน",
        "protectlogtext": "ด้านล่างเป็นรายการการเปลี่ยนแปลงการล็อกหน้า\nดู[[Special:ProtectedPages|รายการหน้าที่ถูกล็อก]]สำหรับการล็อกหน้าที่มีผลอยู่ในปัจจุบัน",
-       "protectedarticle": "à¸\96ูà¸\81ป้องกัน \"[[$1]]\"",
+       "protectedarticle": "à¹\84à¸\94à¹\89ป้องกัน \"[[$1]]\"",
        "modifiedarticleprotection": "เปลี่ยนระดับการล็อกของ \"[[$1]]\"",
        "unprotectedarticle": "ยกเลิกการล็อกจาก \"[[$1]]\"",
        "movedarticleprotection": "ย้ายการตั้งค่าการล็อกจาก \"[[$2]]\" ไป \"[[$1]]\"",
        "blockip": "บล็อกผู้ใช้",
        "blockiptext": "ใช้แบบด้านล่างเพื่อบล็อกการเข้าถึงการเขียนของเลขที่อยู่ไอพีหรือชื่อผู้ใช้โดยเจาะจง การบล็อกนี้ควรดำเนินการเพื่อป้องกันการก่อกวนเท่านั้น และให้สอดคล้องกับ[[{{MediaWiki:Policy-url}}|นโยบาย]]\nกรอกเหตุผลโดยเจาะจงด้านล่าง (เช่น อ้างถึงหน้าที่ถูกก่อกวน)\nคุณสามารถบล็อกช่วงไอพีได้โดยใช้วากยสัมพันธ์ CIDR ช่วงใหญ่ที่สุดที่อนุญาต คือ /$1 สำหรับ IPv4 และ /$2 สำหรับ IPv6",
        "ipaddressorusername": "เลขที่อยู่ไอพีหรือชื่อผู้ใช้:",
-       "ipbexpiry": "หมดอายุ:",
        "ipbreason": "เหตุผล:",
        "ipbreason-dropdown": "*สาเหตุการบล็อกทั่วไป\n** ใส่ข้อมูลเท็จ\n** ลบเนื้อหาในหน้าออก\n** ใส่ลิงก์สแปม\n** ใส่ข้อความไร้สาระ/ขยะเข้ามา\n** พฤติกรรมข่มขู่/รังควาน\n** ใช้หลายบัญชีในทางที่ผิด\n** ชื่อผู้ใช้ที่ไม่อาจยอมรับได้",
        "ipb-hardblock": "ป้องกันไม่ให้ผู้ใช้ล็อกอินแก้ไขจากเลขที่อยู่ไอพีนี้",
-       "ipbcreateaccount": "à¸\9bà¹\89อà¸\87à¸\81ัà¸\99à¸\81ารสรà¹\89าà¸\87à¸\9aัà¸\8dà¸\8aี",
-       "ipbemailban": "à¸\9bà¹\89อà¸\87à¸\81ัà¸\99มิà¹\83หà¹\89à¸\9cูà¹\89à¹\83à¸\8aà¹\89ส่งอีเมล",
+       "ipbcreateaccount": "การสร้างบัญชี",
+       "ipbemailban": "à¸\81ำลัà¸\87ส่งอีเมล",
        "ipbenableautoblock": "บล็อกเลขที่อยู่ไอพีล่าสุดที่ผู้ใช้นี้ใช้ ทั้งทุกเลขที่อยู่ไอพีที่ผู้นั้นพยายามใช้แก้ไขโดยอัตโนมัติ",
        "ipbsubmit": "บล็อกผู้ใช้นี้",
        "ipbother": "เวลาอื่น:",
        "ipboptions": "2 ชั่วโมง:2 hours,1 วัน:1 day,3 วัน:3 days,1 สัปดาห์:1 week,2 สัปดาห์:2 weeks,1 เดือน:1 month,3 เดือน:3 months,6 เดือน:6 months,1 ปี:1 year,ไม่มีกำหนด:infinite",
        "ipbhidename": "ซ่อนชื่อผู้ใช้จากการแก้ไขและรายการต่าง ๆ",
        "ipbwatchuser": "เฝ้าดูหน้าผู้ใช้และหน้าคุยกับผู้ใช้ของผู้ใช้นี้",
-       "ipb-disableusertalk": "à¸\9bà¹\89อà¸\87à¸\81ัà¸\99à¹\84มà¹\88à¹\83หà¹\89à¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\99ีà¹\89à¹\81à¸\81à¹\89à¹\84à¸\82หà¸\99à¹\89าà¸\84ุยà¸\81ัà¸\9aà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\82อà¸\87à¸\95ัวà¹\80อà¸\87à¸\82à¸\93ะà¸\96ูà¸\81à¸\9aลà¹\87อà¸\81",
+       "ipb-disableusertalk": "à¹\81à¸\81à¹\89à¹\84à¸\82หà¸\99à¹\89าà¸\9eูà¸\94à¸\84ุยà¸\82อà¸\87à¸\95ัวà¹\80อà¸\87",
        "ipb-change-block": "บล็อกผู้ใช้อีกครั้งด้วยการตั้งค่าเหล่านี้",
        "ipb-confirm": "ยืนยันการบล็อก",
        "ipb-sitewide": "ทั้งเว็บไซต์",
        "ipb-partial": "บางส่วน",
-       "ipb-type-label": "ประเภท",
        "ipb-pages-label": "หน้า",
        "badipaddress": "เลขที่อยู่ไอพีไม่ถูกต้อง",
        "blockipsuccesssub": "บล็อกสำเร็จ",
        "ipb-blocklist": "ดูการบล็อกที่มีอยู่",
        "ipb-blocklist-contribs": "เรื่องที่มีส่วนร่วมโดย $1",
        "ipb-blocklist-duration-left": "เหลือเวลา $1",
+       "block-actions": "การกระทำเพื่อบล็อก:",
+       "block-expiry": "หมดอายุ:",
+       "block-options": "ตัวเลือกเพิ่มเติม:",
+       "block-prevent-edit": "การแก้ไข",
+       "block-reason": "เหตุผล:",
+       "block-target": "ชื่อผู้ใช้หรือที่อยู่ไอพี:",
        "unblockip": "ปลดบล็อกผู้ใช้",
        "unblockiptext": "ใช้แบบด้านล่างเพื่อคืนการเข้าถึงการเขียนแก่เลขที่อยู่ไอพี หรือชื่อผู้ใช้ที่เคยถูกบล็อก",
        "ipusubmit": "ยกเลิกการบล็อกนี้",
        "specialpages-group-developer": "เครื่องมือผู้พัฒนา",
        "blankpage": "หน้าว่าง",
        "intentionallyblankpage": "หน้านี้ถูกปล่อยว่างโดยเจตนา",
+       "disabledspecialpage-disabled": "หน้านี้ถูกปิดใช้งานโดยผู้ดูแลระบบ",
        "external_image_whitelist": "  #เว้นบรรทัดนี้ไว้จากการแก้ไข<pre>\n#ใส่คำอธิบายปกติ (เฉพาะในส่วนที่อยู่ระหว่างสัญลักษณ์ //) ด้านล่างนี้\n#ซึ่งคำอธิบายดังกล่าวจะถูกจับคู่กับ URL ของรูปถ่ายภายนอก\n#ถ้าตรงกันจะปรากฏเป็นภาพออกมา หรือมิเช่นนั้นจะปรากฏเป็นลิงก์ไปยังรูปภาพนั้น\n#บรรทัดที่ขึ้นต้นด้วย # จะถูกกำหนดเป็นหมายเหตุเพิ่มเติม\n#กรุณาพิมพ์ตัวพิมพ์เล็ก-ใหญ่ตามชื่อไฟล์ให้ตรงกัน\n\n#ใส่ส่วนของคำอธิบายด้านบนของบรรทัดนี้และเว้นบรรทัดนี้จากการแก้ไข</pre>",
        "tags": "ป้ายระบุการเปลี่ยนแปลงที่สมเหตุสมผล",
        "tag-filter": "ตัวกรอง[[Special:Tags|ป้ายระบุ]]:",
        "logentry-newusers-autocreate": "บัญชีผู้ใช้ $1 ถูกสร้างขึ้นอัตโนมัติ",
        "logentry-protect-move_prot": "$1 ย้ายการตั้งค่าการล็อกจาก $4 ไป $3",
        "logentry-protect-unprotect": "$1 ลบการล็อกจาก $3",
-       "logentry-protect-protect": "$1 {{GENDER:$2|à¸\96ูà¸\81ป้องกัน}} $3 $4",
-       "logentry-protect-protect-cascade": "$1 {{GENDER:$2|à¸\96ูà¸\81ป้องกัน}} $3 $4 [ต่อเรียง]",
+       "logentry-protect-protect": "$1 {{GENDER:$2|à¹\84à¸\94à¹\89ป้องกัน}} $3 $4",
+       "logentry-protect-protect-cascade": "$1 {{GENDER:$2|à¹\84à¸\94à¹\89ป้องกัน}} $3 $4 [ต่อเรียง]",
        "logentry-protect-modify": "$1 เปลี่ยนระดับการตั้งค่าสำหรับ $3 $4",
        "logentry-protect-modify-cascade": "$1 เปลี่ยนระดับการตั้งค่าสำหรับ $3 $4 [ต่อเรียง]",
        "logentry-rights-rights": "$1 {{GENDER:$2|เปลี่ยน}}กลุ่มสมาชิกของ $3 จาก $4 เป็น $5",
        "limitreport-templateargumentsize-value": "$1/$2 ไบต์",
        "limitreport-expansiondepth": "ความลึกการขยายสูงสุด",
        "limitreport-unstrip-depth": "ความลึกการเรียกซ้ำ Unstrip",
+       "limitreport-unstrip-size-value": "$1/$2 ไบต์",
        "expandtemplates": "ขยายแม่แบบ",
        "expand_templates_output": "ผลลัพธ์",
        "expand_templates_ok": "ตกลง",
        "pagelang-select-lang": "เลือกภาษา",
        "pagelang-reason": "เหตุผล",
        "pagelang-submit": "ส่ง",
+       "pagelang-nonexistent-page": "ไม่มีหน้า $1",
+       "pagelang-unchanged-language": "ตั้งหน้า $1 เป็นภาษา $2 แล้ว",
+       "pagelang-unchanged-language-default": "ตั้งหน้า $1 เป็นภาษาเนื้อหาโดยปริยายของวิกิแล้ว",
+       "pagelang-db-failed": "ฐานข้อมูลไม่สามารถเปลี่ยนภาษาของหน้า",
        "right-pagelang": "เปลี่ยนภาษาหน้า",
        "action-pagelang": "เปลี่ยนภาษาหน้า",
        "log-name-pagelang": "ปูมการเปลี่ยนภาษา",
        "special-characters-group-khmer": "เขมร",
        "special-characters-group-canadianaboriginal": "แคนาดาพื้นเมืองดั้งเดิม",
        "special-characters-title-minus": "เครื่องหมายลบ",
-       "mw-widgets-abandonedit": "คุณแน่ใจว่าต้องการกลับไป view mode โดยไม่บันทึกข้อมูลเอาไว้ก่อน ?",
+       "mw-widgets-abandonedit": "คุณแน่ใจว่าต้องการออกจากภาวะแก้ไขโดยไม่บันทึกก่อนหรือไม่",
+       "mw-widgets-abandonedit-discard": "ทิ้งการแก้ไข",
+       "mw-widgets-abandonedit-keep": "แก้ไขต่อ",
+       "mw-widgets-abandonedit-title": "คุณแน่ใจหรือไม่",
        "mw-widgets-dateinput-no-date": "ไม่เลือกวันที่",
+       "mw-widgets-mediasearch-input-placeholder": "ค้นหาสื่อ",
+       "mw-widgets-mediasearch-noresults": "ไม่พบผลลัพธ์",
+       "mw-widgets-titleinput-description-new-page": "ขณะนี้ไม่มีหน้า",
+       "mw-widgets-titleinput-description-redirect": "เปลี่ยนทางไป $1",
        "mw-widgets-usersmultiselect-placeholder": "เพิ่ม...",
        "mw-widgets-titlesmultiselect-placeholder": "เพิ่ม...",
        "date-range-from": "ตั้งแต่วันที่:",
index 6d27fe9..e0a7dd0 100644 (file)
        "blockip": "Ulanyjyny blokirle",
        "blockiptext": "Aşakdaky formdan peýdalanyp, belli bir IP-niň ýa-da ulanyjy adynyň ýazmak hukugyny blokirläp bilersiňiz.\nBu diňe wandalizmiň öňüni almak üçin hem-de [[{{MediaWiki:Policy-url}}|kadalara]] laýyklykda edilmelidir.\nAşakda blokirlemäniň takyk sebäbini ýazyň (meselem: wandalizm eden sahypalaryny görkeziň).",
        "ipaddressorusername": "IP adresi ýa-da ulanyjy ady:",
-       "ipbexpiry": "Gutarýan wagty:",
        "ipbreason": "Sebäp:",
        "ipbreason-dropdown": "*Adaty blokirleme sebäpleri\n** Ýalan maglumat girizmek\n** Sahypalaryň mazmunyny aýyrmak\n** Daşarky saýtlara spam çykgydy goýmak\n** Sahypalara manysyz/düşnüksiz sözler girizmek\n** Haýbat atyjy hereket/Yrsaramak\n** Birden köp hasaby betniýetli ulanmak\n** Kabul edip bolmajak ulanyjy ady",
        "ipbcreateaccount": "Hasap açmagyny bökde",
        "ipb-unblock": "Ulanyjy adynyň ýa-da IP adresiniň blokirlemesini aýyr",
        "ipb-blocklist": "Bar bolan blokirlemeleri görkez",
        "ipb-blocklist-contribs": "$1 ulanyjysynyň goşantlary",
+       "block-expiry": "Gutarýan wagty:",
        "unblockip": "Ulanyjynyň blokirlemesini aýyr",
        "unblockiptext": "Ozaldan blokirlenen bir IP adresine ýa-da ulanyjy adyna ýazgy etmek mümkinçiligini almak üçin aşakdaky formdan peýdalanyň.",
        "ipusubmit": "Bu blokirlemäni aýyr",
index 529e0f4..4ae1911 100644 (file)
        "blockip": "Harangin/hadlangan ang tagagamit",
        "blockiptext": "Gamitin ang mga lahok sa ibaba upang maharang ang akses sa pagsulat mula sa isang espesipikong IP address o bansag.\nGawin lamang ito para maiwasan ang bandalismo, at napapaloob sa [[{{MediaWiki:Policy-url}}|patakaran]].\nPunan ang espesipikong dahilan sa ibaba (halimbawa, magbanggit ng partikular na mga pahina na nagkaroon ng bandalismo).",
        "ipaddressorusername": "Direksyong IP o bansag:",
-       "ipbexpiry": "Pagkawalang-bisa:",
        "ipbreason": "Dahilan:",
        "ipbreason-dropdown": "*Mga karaniwang dahilan sa paghaharang\n** Pagpasok ng hindi totoong impormasyon\n** Pag-alis ng nilalaman mula sa mga pahina\n** Paglalagay ng mga panlabas na link  na spam\n** Pagpasok ng impormasyong walang kabuluhan o hindi maintindihan sa mga pahina\n** Ugaling nananakot/pagligalig\n** Pagmamalabis ng maramihang account\n** Hindi kanais-nais na pangalan",
        "ipb-hardblock": "Pigilan ang nakalagdang mga tagagamit mula sa pamamatnugot mula sa tirahan ng IP na ito",
        "ipb-unblock": "Tanggalin ang pagkaharang ng isang bansag o IP address",
        "ipb-blocklist": "Tingnan ang umiiral na mga pagharang/paghadlang",
        "ipb-blocklist-contribs": "Mga ambag ni $1",
+       "block-expiry": "Pagkawalang-bisa:",
        "unblockip": "Tanggalin ang pagharang/paghadlang sa tagagamit",
        "unblockiptext": "Gamitin ang pormularyo sa ibaba upang ibalik ang akses ng pagsulat sa isang dating nakaharang na IP address o bansag.",
        "ipusubmit": "Tanggalin ang paghadlang na ito",
index 43d9186..8387a26 100644 (file)
        "blockip": "Taʻofia ʻa e ʻetita",
        "blockiptext": "Ngāueʻaki ʻa e foomu ʻi lalo ʻe taʻofia ʻa e ngofua tohi ʻo e tuʻasila IP pe hingoa ʻetita ʻe taha. ʻOku pau ʻe fai pehē ʻi he taʻofi laukovi pē, lototaha ia mo e [[{{MediaWiki:Policy-url}}|founga]]. Fakafonu ʻi lalo ʻa e ʻuhinga totonu (fakafuaʻaki, lau ki he ngaahi peesi naʻe laukovi).",
        "ipaddressorusername": "Tuʻasila IP pe hingoa ʻo e ʻetita",
-       "ipbexpiry": "Mate",
        "ipbreason": "ʻUhinga",
        "ipbcreateaccount": "Taʻofia ʻa e fakatupu ʻo ha tohi kau-ki-ai",
        "ipbsubmit": "Taʻofia ʻa e ʻetitá ni",
        "badipaddress": "Tuʻasila IP taʻeʻaongaʻi",
        "blockipsuccesssub": "Ola ʻo e taʻofi",
        "blockipsuccesstext": "Kuo taʻofia ʻa [[Special:Contributions/$1|$1]]\n<br />Vakai ki he [[Special:BlockList|hokohoko ʻo e taʻofi]] ʻo toe fakakaukau ʻi ai.",
+       "block-expiry": "Mate",
        "unblockip": "Taʻetaʻofia ʻetita",
        "unblockiptext": "Ngāueʻaki ʻa e foomu ʻi lalo ke fakafoki e ngofua tohi maʻa e tuʻasila IP pe hingoa ʻo e kau-ki-ai ʻosi taʻofi.",
        "ipusubmit": "Taʻetaʻofia ʻa e ʻetitá ni",
index a34b9b8..7d94be7 100644 (file)
        "blockip": "{{GENDER:$1|Kullanıcıyı}} engelle",
        "blockiptext": "Aşağıdaki formu kullanarak belli bir IP'nin veya kayıtlı kullanıcının değişiklik yapmasını engelleyebilirsiniz. Bu sadece vandalizmi engellemek için ve [[{{MediaWiki:Policy-url}}|kurallara]] uygun olarak yapılmalı. Aşağıya mutlaka engelleme ile ilgili bir açıklama yazınız. (örnek: -Şu- sayfalarda vandalizm yapmıştır).",
        "ipaddressorusername": "IP adresi veya kullanıcı adı:",
-       "ipbexpiry": "Bitiş süresi",
        "ipbreason": "Neden:",
        "ipbreason-dropdown": "*Genel engelleme nedenleri\n** Yanlış bilgi eklemek\n** Sayfalardan içeriği çıkarmak\n** Dış sitelere spam bağlantı vermek\n** Sayfalara mantıksız/anlaşılmaz sözler eklemek\n** Tehditvari davranış/Taciz\n** Birden fazla hesabı kötüye kullanmak\n** Kabul edilemez kullanıcı adı",
        "ipb-hardblock": "Bu IP adresindeki oturum açmış kullanıcıların değişiklik yapmasını önle",
        "ipb-blocklist": "Mevcut olan engellemeleri göster",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} için katkılar",
        "ipb-blocklist-duration-left": "$1 ayrıldı",
+       "block-expiry": "Bitiş süresi",
        "unblockip": "Kullanıcının engellemesini kaldır",
        "unblockiptext": "Daha önceden engellenmiş bir IP adresine ya da kullanıcı adına yazma erişimini geri vermek için aşağıdaki formu kullanın.",
        "ipusubmit": "Bu engellemeyi kaldır",
index 778bd93..b09bc7e 100644 (file)
        "september": "сентябрь",
        "october": "октябрь",
        "november": "ноябрь",
-       "december": "дикÓ\99беÑ\80",
+       "december": "декабÑ\80Ñ\8c",
        "january-gen": "гыйнвар",
        "february-gen": "февраль",
        "march-gen": "март",
        "september-date": "$1 Сентябрь",
        "october-date": "$1 Октябрь",
        "november-date": "$1 Ноябрь",
-       "december-date": "$1 Ð´Ð¸ÐºÓ\99беÑ\80",
+       "december-date": "$1 Ð´ÐµÐºÐ°Ð±Ñ\80Ñ\8c",
        "period-am": "ТК",
        "period-pm": "ТС",
        "pagecategories": "{{PLURAL:$1|1=Төркем|Төркемнәр}}",
        "unblock": "Кулланучыны тыюдан азат итү",
        "blockip": "{{GENDER:$1|Кулланучыны}} тыю",
        "ipaddressorusername": "IP адресы яки кулланучы исеме:",
-       "ipbexpiry": "Бетә:",
        "ipbreason": "Сәбәп:",
        "ipbreason-dropdown": "* Кысуның гадәттәге сәбәпләре\n** Ялган мәгълүмат кертү\n** Битләрнең эчтәлеген сөртү\n** Тышкы сайтларга спам-сылтамалар\n** Мәгънәсез текст/чүп өстәү\n** Кулланучыларны эзәрлекләү/янаулар\n** Берничә хисап язмасы белән исәпләшмәү\n** Кулланучы исеменең яраксыз булуы",
        "ipbenableautoblock": "Кулланучы кулланган IP адресларын автоматик рәвештә тыю",
        "ipb-unblock-addr": "$1 кулланучысын тыюдан азат итү",
        "ipb-unblock": "Кулланучы яки IP адресы тыюдан азат итү",
        "ipb-blocklist-duration-left": "$1 калды",
+       "block-expiry": "Бетә:",
        "unblockip": "Кулланучыны тыюдан азат итү",
        "ipusubmit": "Бу тыюны туктату",
        "blocklist": "Тыелган кулланучылар",
index f65d0fa..f2e25e1 100644 (file)
        "whatlinkshere-filters": "Filtrlar",
        "blockip": "Qullanuçını tıyu",
        "ipaddressorusername": "IP adresı yäki qullanuçı iseme:",
-       "ipbexpiry": "Betä:",
        "ipbreason": "Säbäp:",
        "ipbreason-dropdown": "* Qısunıñ ğädättäge säbäpläre\n** Yalğan mäğlümat kertü\n** Bitlärneñ eçtälegen sörtü\n** Tışqı saytlarğa spam-sıltamalar\n** Mäğnäsez tekst/çüp östäw\n** Qullanuçılarnı ezärlekläw/yanawlar\n** Berniçä xisap yazması belän isäpläşmäw\n** Qullanuçı isemeneñ yaraqsız buluı",
        "ipbenableautoblock": "Qullanuçı qullanğan IP adresların avtomatik räweştä tıyu",
        "blockipsuccesssub": "Tıyu başqarılğan",
        "ipb-unblock-addr": "$1 qullanuçısın tıyudan azat itü",
        "ipb-unblock": "Qullanuçı yäki IP adresı tıyudan azat itü",
+       "block-expiry": "Betä:",
        "unblockip": "Qullanuçını tıyudan azat itü",
        "ipusubmit": "Bu tıyunı tuqtatu",
        "blocklist": "Tıyılğan qullanuçılar",
index 38eabd5..b25f9e7 100644 (file)
        "blockip": "چەكلەنگەن ئىشلەتكۈچى",
        "blockiptext": "تۆۋەندىكى جەدۋەلنى ئىشلىتىپ بەلگىلىك IP ئادرېس ياكى ئىشلەتكۈچى ئاتىدىن كەلگەن يېزىش زىيارىتىنى چەكلەشكە بولىدۇ.\nپەقەت بۇزغۇنچىلىكنىڭ ئالدىنى ئېلىش ھەمدە [[{{MediaWiki:Policy-url}}|تاكتىكا]].\nسىغا ئۇيغۇن بولغان ئەھۋالدا ئاندىن بۇ مەشغۇلاتنى ئېلىپ بېرىشقا بولىدۇ. تۆۋەندە ئەمەلىي سەۋەب (مەسىلەن، بۇزۇۋېتىلگەن بەتتىن بىرنى نەقىل ئېلىش)تىن بىرنى كىرگۈزۈڭ.",
        "ipaddressorusername": "IP ئادرېس ياكى ئىشلەتكۈچى ئاتى:",
-       "ipbexpiry": "مۇددىتى:",
        "ipbreason": "سەۋەب:",
        "ipbreason-dropdown": "*ئادەتتىكى چەكلەش سەۋەبى\n** ساختا ئۇچۇر قوشۇش\n** بەت مەزمۇنىنى چىقىرىۋېتىش\n** سىرتقى ئەخلەت ئۇلانما قوشۇش\n** بەتكە تۇترۇقسىز گەپ قوشۇش\n**  باشقىلارغا ھەيۋە قىلىش/مەجبۇرلاش\n** كۆپ ھېساباتنى قالايمىغان ئىشلىتىش\n** قوبۇل قىلغىلى بولمايدىغان ئىشلەتكۈچى ئاتى",
        "ipb-hardblock": "تىزىمغا كىرگەن ئىشلەتكۈچىنىڭ بۇ IP ئادرېستىن تەھرىرلىشىنىڭ ئالدىنى ئالىدۇ",
        "ipb-unblock": "چەكلەش بىكار قىلىغان ئىشلەتكۈچى ئاتى ياكى IP ئادرېس",
        "ipb-blocklist": "نۆۋەتتىكى چەكلەشنى كۆرسەت",
        "ipb-blocklist-contribs": "$1 نىڭ ئىشلەتكۈچى تۆھپىسى",
+       "block-expiry": "مۇددىتى:",
        "unblockip": "چەكلەش بىكار قىلىنغان ئىشلەتكۈچى",
        "unblockiptext": "تۆۋەندىكى جەدۋەلنى ئىشلىتىپ ئىلگىرى چەكلەنگەن IP ئادرېس ياكى ئىشلەتكۈچىنىڭ يېزىش ھوقۇقىنى ئەسلىگە كەلتۈر.",
        "ipusubmit": "بۇ چەكلەشنى چىقىرىۋەت",
index 97223a8..489ead6 100644 (file)
        "resetpass-abort-generic": "Зміну пароля було перервано розширенням.",
        "resetpass-expired": "Термін дії вашого пароля закінчився. Будь ласка, встановіть новий пароль для входу в систему.",
        "resetpass-expired-soft": "Термін дії вашого пароля закінчився, і тепер він повинен бути змінений. Будь ласка, виберіть новий пароль або натисніть «{{int:authprovider-resetpass-skip-label}}», щоб змінити його пізніше.",
+       "resetpass-validity": "Ваш пароль недійсний: $1\n\nБудь ласка, виберіть новий пароль, щоб увійти в систему.",
        "resetpass-validity-soft": "Ваш пароль є некоректним: $1\n\nБудь ласка, виберіть новий пароль або натисніть «{{int:authprovider-resetpass-skip-label}}», щоб змінити його пізніше.",
        "passwordreset": "Скинути пароль",
        "passwordreset-text-one": "Заповніть цю форму, щоб отримати тимчасовий пароль електронною поштою.",
        "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\nЗверніть увагу, що ви не зможете використати функцію \"{{int:emailuser}}\", якщо ви не зареєстровані або не підтвердили свою електронну адресу в [[Special:Preferences|особистих налаштуваннях]], а також якщо вам було заборонено надсилати листи при блокуванні.\n\nВаша поточна IP-адреса — $3, ідентифікатор блокування — #$5. Будь ласка, зазначайте ці дані у своїх запитах.",
        "autoblockedtext": "Ваша IP-адреса автоматично заблокована у зв'язку з тим, що вона раніше використовувалася кимось із користувачів, якого заблокував $1.\nПричина блокування блокування:\n\n:<em>$2</em>\n\n* Початок блокування: $8\n* Закінчення блокування: $6\n* Блокування виконав: $7\n\nВи можете надіслати листа користувачеві $1 або будь-якому іншому [[{{MediaWiki:Grouppage-sysop}}|адміністратору]], щоб обговорити блокування.\n\nЗверніть увагу, що ви не зможете скористатися функцією \"{{int:emailuser}}\", так як не маєте дійсної електронної пошти, зареєстрованої в [[Special:Preferences|особистих налаштуваннях]], а також якщо вам було заборонено надсилати листи при блокуванні.\n\nВаша поточна IP-адреса — $3, ідентифікатор блокування — #$5. Будь ласка, зазначайте ці дані у своїх запитах.",
        "systemblockedtext": "Ваше ім'я користувача або IP-адресу було автоматично заблоковано MediaWiki.\nВказана причина:\n\n:<em>$2</em>\n\n* Початок блокування: $8\n* Закінчення блокування: $6\n* Ціль блокування: $7\n\nВаша поточна IP-адреса — $3.\nБудь ласка, додайте всі вказані подробиці до будь-яких запитів, які Ви будете робити.",
+       "actionblockedtext": "Вам заблоковано можливість здійснення цієї дії.",
        "blockednoreason": "не вказано причини",
        "whitelistedittext": "Ви повинні $1, щоб редагувати сторінки.",
        "confirmedittext": "Ви повинні підтвердити вашу адресу електронної пошти перед редагуванням сторінок.\nБудь-ласка вкажіть і підтвердіть вашу електронну адресу на [[Special:Preferences|сторінці налаштувань]].",
        "last": "попер.",
        "page_first": "перша",
        "page_last": "остання",
-       "histlegend": "Вибір версії: позначте у кружечках версії для порівняння і натисніть «Enter» або кнопку внизу.\n\nПояснення: <strong>({{int:cur}})</strong> = відмінності від поточної версії,\n<strong>({{int:last}})</strong> = відмінності від попередньої версії, <strong>{{int:minoreditletter}}</strong> = незначне редагування",
+       "histlegend": "Вибір версії: позначте у кружечках версії для порівняння і натисніть «Enter» або кнопку внизу.<br />\nПояснення: <strong>({{int:cur}})</strong> = відмінності від поточної версії, <strong>({{int:last}})</strong> = відмінності від попередньої версії, <strong>{{int:minoreditletter}}</strong> = незначне редагування.",
        "history-fieldset-title": "Пошук версій",
        "history-show-deleted": "Лише вилучені версії",
        "histfirst": "найдавніші",
        "search-category": "(категорія $1)",
        "search-file-match": "(збігається із вмістом файлу)",
        "search-suggest": "Можливо, ви мали на увазі: $1",
-       "search-rewritten": "Показуються результати для $1. Шукати натомість $2.",
+       "search-rewritten": "Показано результати для $1. Шукати натомість $2.",
        "search-interwiki-caption": "Результати із сестринських проектів",
        "search-interwiki-default": "Результати із $1:",
        "search-interwiki-more": "(більше)",
        "rcfilters-restore-default-filters": "Відновити стандартні фільтри",
        "rcfilters-clear-all-filters": "Очистити фільтри",
        "rcfilters-show-new-changes": "Переглянути найновіші зміни",
-       "rcfilters-search-placeholder": "Фільтруйте редагування (використовуйте меню, або скористайтесь пошуком фільтру за назвою)",
+       "rcfilters-search-placeholder": "Фільтруйте редагування (використовуйте меню, або скористайтесь пошуком фільтра за назвою)",
        "rcfilters-invalid-filter": "Недійсний фільтр",
        "rcfilters-empty-filter": "Без фільтрів. Показано всі зміни.",
        "rcfilters-filterlist-title": "Фільтри",
        "blockip": "Заблокувати {{GENDER:$1|користувача|користувачку}}",
        "blockiptext": "Використовуйте форму нижче, щоб заблокувати можливість редагування зазначеній IP-адресі або користувачу.\nЦе слід робити лише для запобігання порушенням і у відповідності до [[{{MediaWiki:Policy-url}}|правил]].\nОбов'язково заповніть причину нижче, бажано дати інформативну вичерпну інформацію (наприклад, послатися на конкретні правила, дати посилання на редагування користувача, які призвели до блокування). Можна конкретизувати причину блокування на сторінці обговорення користувача.\nВи можете заблокувати діапазони IP-адрес, використовуючи [https://uk.wikipedia.org/wiki/CIDR CIDR]-синтаксис. Максимально допустимий діапазон — /$1 для протоколу IPv4 та /$2 для протоколу IPv6.",
        "ipaddressorusername": "IP-адреса або ім'я користувача:",
-       "ipbexpiry": "Термін:",
        "ipbreason": "Причина:",
        "ipbreason-dropdown": "* Типові причини блокування\n** Вставка неправильної інформації\n** Видалення змісту сторінок\n** Спам, рекламні посилання\n** Вставка нісенітниці/лайки в текст\n** Залякуюча поведінка/переслідування\n** Зловживання кількома обліковими записами\n** Неприйнятне ім'я користувача",
        "ipb-hardblock": "Заборонити редагування зареєстрованим користувачам з цієї IP-адреси",
-       "ipbcreateaccount": "Ð\97абоÑ\80ониÑ\82и Ñ\81Ñ\82воÑ\80еннÑ\8f Ð½Ð¾Ð²Ð¸Ñ\85 Ð¾Ð±Ð»Ñ\96ковиÑ\85 Ð·Ð°Ð¿Ð¸Ñ\81Ñ\96в",
-       "ipbemailban": "Ð\97абоÑ\80ониÑ\82и ÐºÐ¾Ñ\80иÑ\81Ñ\82Ñ\83ваÑ\87евÑ\96 Ð²Ñ\96дпÑ\80авлÑ\8fÑ\82и Ð»Ð¸Ñ\81Ñ\82и ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\8e Ð¿Ð¾Ñ\88Ñ\82оÑ\8e",
+       "ipbcreateaccount": "СÑ\82воÑ\80еннÑ\8f Ð¾Ð±Ð»Ñ\96кового Ð·Ð°Ð¿Ð¸Ñ\81Ñ\83",
+       "ipbemailban": "Ð\9dадÑ\81иланнÑ\8f ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\97 Ð¿Ð¾Ñ\88Ñ\82и",
        "ipbenableautoblock": "Автоматично блокувати IP-адреси, які використовуються цим користувачем та будь-які наступні адреси, з яких він буде редагувати",
        "ipbsubmit": "Заблокувати доступ цьому користувачу",
        "ipbother": "Інший термін",
        "ipboptions": "2 години:2 hours,1 день:1 day,3 дні:3 days,1 тиждень:1 week,2 тижні:2 weeks,1 місяць:1 month,3 місяці:3 months,6 місяців:6 months,1 рік:1 year,назавжди:infinite",
        "ipbhidename": "Приховати ім'я користувача у редагуваннях та списках",
        "ipbwatchuser": "Додати до списку спостереження сторінку користувача і його обговорення",
-       "ipb-disableusertalk": "Ð\97абоÑ\80ониÑ\82и ÐºÐ¾Ñ\80иÑ\81Ñ\82Ñ\83ваÑ\87евÑ\96 Ñ\80едагÑ\83ваÑ\82и Ñ\81воÑ\8e Ñ\81Ñ\82оÑ\80Ñ\96нкÑ\83 Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ\80еннÑ\8f Ð¿Ñ\96д Ñ\87аÑ\81 Ð±Ð»Ð¾ÐºÑ\83вання",
+       "ipb-disableusertalk": "РедагÑ\83ваннÑ\8f Ð²Ð»Ð°Ñ\81ноÑ\97 Ñ\81Ñ\82оÑ\80Ñ\96нки Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ\80ення",
        "ipb-change-block": "Переблокувати користувача з цими налаштуваннями",
        "ipb-confirm": "Підтвердити блокування",
        "ipb-sitewide": "У всій вікі",
        "ipb-partial": "Частково",
-       "ipb-type-label": "Тип",
        "ipb-pages-label": "Сторінки",
        "badipaddress": "IP-адреса записана в невірному форматі, або користувача з таким іменем не існує.",
        "blockipsuccesssub": "Блокування проведено",
        "ipb-blocklist": "Показати чинні блокування",
        "ipb-blocklist-contribs": "Внесок {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "Залишилось $1",
+       "block-actions": "Дії, які слід заблокувати:",
+       "block-expiry": "Термін:",
+       "block-options": "Додаткові опції:",
+       "block-prevent-edit": "Редагування",
+       "block-reason": "Причина:",
+       "block-target": "Ім'я користувача чи IP-адреса:",
        "unblockip": "Розблокувати IP-адресу",
        "unblockiptext": "Використовуйте подану нижче форму, щоб відновити можливість збереження з раніше заблокованої IP-адреси.",
        "ipusubmit": "Зняти це блокування",
        "file-no-thumb-animation": "'''Примітка. Через технічні обмеження, мініатюри цього файлу не будуть анімованими.'''",
        "file-no-thumb-animation-gif": "'''Примітка. Через технічні обмеження, мініатюри GIF-зображень високої роздільності, як це, не анімуються.'''",
        "newimages": "Галерея нових файлів",
-       "imagelisttext": "Нижче подано список з '''$1''' {{PLURAL:$1|файлу|файлів|файлів}}, відсортованих $2.",
+       "imagelisttext": "Нижче подано список з '''$1''' {{PLURAL:$1|файлу|файлів}}, відсортованих $2.",
        "newimages-summary": "Ця спеціальна сторінка показує останні завантажені файли.",
        "newimages-legend": "Фільтр",
        "newimages-label": "Назва файлу (або її частина):",
        "autosumm-removed-redirect": "Вилучено перенаправлення на [[$1]]",
        "autosumm-changed-redirect-target": "Змінено ціль перенаправлення з [[$1]] на [[$2]]",
        "autosumm-new": "Створена сторінка: $1",
-       "autosumm-newblank": "СÑ\82воÑ\80иÑ\82и порожню сторінку",
+       "autosumm-newblank": "СÑ\82воÑ\80ено порожню сторінку",
        "size-bytes": "$1 {{PLURAL:$1|байт|байти|байтів}}",
        "size-kilobytes": "$1 КБ",
        "size-megabytes": "$1 МБ",
        "specialpages-group-developer": "Інструменти розробника",
        "blankpage": "Порожня сторінка",
        "intentionallyblankpage": "Цю сторінку навмисне залишили порожньою",
+       "disabledspecialpage-disabled": "Ця сторінка була відключена системним адміністратором.",
        "external_image_whitelist": "  #Залиште цей рядок таким, яким він є<pre>\n#Записуйте тут фрагменти регулярних виразів (ту частину, що знаходиться між //)\n#Вони будуть зіставлені з URL зовнішніх зображень.\n#Потрібні будуть показані як зображення, решта будуть показані як посилання на зображення\n#Рядки, що починаються з #, вважаються коментарями.\n#Рядки чутливі до регістра\n\n#Розміщуйте фрагменти регулярних виразів над цією строчкою. Залиште цей рядок таким, яким він є.</pre>",
        "tags": "Чинні мітки змін",
        "tag-filter": "Фільтр&nbsp;[[Special:Tags|міток]]:",
index fef7a1b..dda88f9 100644 (file)
        "cannotlogoutnow-text": "$1 کے استعمال کے دوران میں خارج ہونا ممکن نہیں۔",
        "welcomeuser": "خوش آمدید، $1!",
        "welcomecreation-msg": "آپ کا کھاتہ بن گیا۔\nاگر آپ چاہیں تو [[Special:Preferences|اپنی ترجیحات]] میں حسب منشا تبدیلی کر سکتے ہیں۔",
-       "yourname": "اسÙ\85Ù\90 Ø±Ú©Ù\86Û\8cت",
+       "yourname": "صارÙ\81 Ù\86اÙ\85:",
        "userlogin-yourname": "صارف نام",
        "userlogin-yourname-ph": "اپنا صارف نام درج کریں",
        "createacct-another-username-ph": "صارف نام درج کریں",
        "right-editcontentmodel": "صفحہ کے مواد کے ماڈل میں ترمیم",
        "right-editinterface": "صارف انٹرفیس میں ترمیم",
        "right-editusercss": "دیگر صارفین کی سی ایس ایس فائلوں میں ترمیم",
+       "right-edituserjson": "دیگر صارفین کی جے سن فائلوں میں ترمیم",
        "right-edituserjs": "دیگر صارفین کی جاوا اسکرپٹ فائلوں میں ترمیم",
+       "right-editsitecss": "سائٹ کی سی ایس ایس میں ترمیم",
+       "right-editsitejson": "سائٹ کی جے سن فائل میں ترمیم",
+       "right-editsitejs": "سائٹ کی جاوا اسکرپٹ میں ترمیم",
        "right-editmyusercss": "اپنی ذاتی سی ایس ایس فائلوں میں ترمیم",
+       "right-editmyuserjson": "اپنی ذاتی جے سن فائلوں میں ترمیم",
        "right-editmyuserjs": "اپنی ذاتی جاوا اسکرپٹ فائلوں میں ترمیم",
        "right-viewmywatchlist": "اپنی ذاتی زیرنظر فہرست کا معائنہ",
        "right-editmywatchlist": "اپنی ذاتی زیرنظر فہرست میں ترمیم۔ خیال رکھیں کہ اس اختیار کے بغیر بھی بعض اقدامات کے ذریعہ صفحات شامل کیے جا سکتے ہیں۔",
        "unblock": "صارف سے پابندی ہٹائیں",
        "blockip": "داخلہ ممنوع برائے صارف",
        "ipaddressorusername": "آئی پی پتہ یا صارف نام:",
-       "ipbexpiry": "وقت اختتام:",
        "ipbreason": "وجہ:",
        "ipbreason-dropdown": "* پابندی کی عام وجوہات\n** غلط معلومات کا اندراج\n** صفحات سے متن کا مٹانا\n** بیرونی روابط میں بے کار روابط کی فاضل کاری\n** صفحات میں لغو چیزوں کا اندراج\n** بدتمیزی/بداخلاقی\n** متعدد کھاتوں کا استعمال\n** ناقابلِ قبول صارف نام",
        "ipb-hardblock": "اس آئی پی پتے سے داخل شدہ صارفین کو ترمیم کاری سے باز رکھیں",
-       "ipbcreateaccount": "کھاتہ سازی سے باز رکھیں",
-       "ipbemailban": "برÙ\82Û\8c Ø®Ø· Ø¨Ú¾Û\8cجÙ\86Û\92 Ø³Û\92 Ø¨Ø§Ø² Ø±Ú©Ú¾Û\8cÚº",
-       "ipbenableautoblock": "یہ آئی پی پتہ ممنوع صارف نے استعمال کیا ہے اور خود کار طریقے سے اس آئی پی پتے پر پابندی عائد کر دی گئی ہے اور بعد میں اگر وہ ممنوع صارف جتنے بھی آئی پی پتے استعمال کرے گا تو ان پر بھی پابندی لگ جائے گی",
+       "ipbcreateaccount": "کھاتہ سازی",
+       "ipbemailban": "ترسÛ\8cÙ\84 Ø¨Ø±Ù\82Û\8c Ú\88اک",
+       "ipbenableautoblock": "اس صارف کے استعمال کردہ آخری آئی پی پتے اور بعد میں استعمال ہونے والے تمام آئی پتوں پر خودکار پابندی عائد کریں",
        "ipbsubmit": "پابندی لگائیں",
        "ipbother": "دیگر وقت:",
        "ipboptions": "2 گھنٹے:2 hours,1 یوم:1 day,3 ایام:3 days,1 ہفتہ:1 week,2 ہفتے:2 weeks,1 مہینہ:1 month,3 مہینے:3 months,6 مہینے:6 months,1 سال:1 year,لامحدود:infinite",
        "ipbhidename": "ترامیم اور فہرستوں سے صارف نام کو چھپائیں",
        "ipbwatchuser": "اس صارف کے صارف اور تبادلۂ خیال صفحات کو زیر نظر کریں",
-       "ipb-disableusertalk": "بحاÙ\84ت Ù¾Ø§Ø¨Ù\86دÛ\8c Ø§Ø³ ØµØ§Ø±Ù\81 Ú©Ù\88 Ø§Ù¾Ù\86Û\92 Ø°Ø§ØªÛ\8c ØªØ¨Ø§Ø¯Ù\84Û\82 Ø®Û\8cاÙ\84 ØµÙ\81Ø­Û\81 Ù\85Û\8cÚº ØªØ±Ù\85Û\8cÙ\85 Ú©Ø±Ù\86Û\92 Ø³Û\92 Ø¨Ø§Ø² Ø±Ú©Ú¾Û\8cÚº",
+       "ipb-disableusertalk": "ذاتÛ\8c ØªØ¨Ø§Ø¯Ù\84Û\82 Ø®Û\8cاÙ\84 ØµÙ\81Ø­Û\81 Ù\85Û\8cÚº ØªØ±Ù\85Û\8cÙ\85",
        "ipb-change-block": "ان ترتیبات کے ساتھ اس صارف پر دوبارہ پابندی لگائیں",
        "ipb-confirm": "پابندی کی تصدیق کریں",
        "badipaddress": "نادرست آئی پی پتا",
        "ipb-blocklist": "موجودہ پابندیاں دیکھیں",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} کی شراکتیں",
        "ipb-blocklist-duration-left": "$1 باقی ہے",
+       "block-actions": "حسب ذیل کاموں پر پابندی عائد کریں:",
+       "block-expiry": "وقت اختتام:",
+       "block-options": "اضافی اختیارات:",
+       "block-prevent-edit": "ترمیم کاری",
+       "block-reason": "وجہ:",
+       "block-target": "صارف نام یا آئی پی پتا:",
        "unblockip": "صارف سے پابندی ہٹائیں",
        "unblockiptext": "گزشتہ ممنوع صارف یا آئی پی پتے کی تحریری دسترس بحال کرنے کے لیے درج ذیل فارم استعمال کریں۔",
        "ipusubmit": "اس پابندی کو ہٹائیں",
        "createaccountblock": "کھاتہ سازی غیر فعال",
        "emailblock": "برقی خط غیر فعال",
        "blocklist-nousertalk": "اپنے ذاتی تبادلۂ خیال میں ترمیم نہیں کر سکتا",
+       "blocklist-editing": "ترمیم کاری",
        "ipblocklist-empty": "پابندیوں کی فہرست خالی ہے۔",
        "ipblocklist-no-results": "درخواست شدہ آئی پی پتے یا صارف نام پر پابندی عائد نہیں ہے",
        "blocklink": "پابندی لگائیں",
index 1ca81b1..b57cdd2 100644 (file)
        "tog-watchdefault": "Men tahrirlagan sahifa va fayllar kuzatuv roʻyxatimga qoʻshilsin",
        "tog-watchmoves": "Men nomini koʻchirgan sahifa va fayllar kuzatuv roʻyxatimga qoʻshilsin",
        "tog-watchdeletion": "Men oʻchirgan sahifa va fayllarni kuzatuv roʻyxatimga qoʻsh",
-       "tog-minordefault": "Sukut boʻyicha barcha tahrirlarimni «kichik tahrir» etib belgilash",
+       "tog-watchuploads": "Yuklagan fayllarim kuzatuv roʻyxatimga qoʻshilsin",
+       "tog-watchrollback": "Tezda qaytarish harakatini amalga oshirganimdan keyin oʻsha sahifa kuzatuv roʻyxatimga qoʻshilsin",
+       "tog-minordefault": "Sukut boʻyicha barcha tahrirlarimni «kichik tahrir» deb belgilansin",
        "tog-previewontop": "Koʻrib chiqish imkoniyati tahrir oynasi tepasida boʻlsin",
-       "tog-previewonfirst": "Tahrirlashga oʻtgandayoq koʻrib chiqishni boshlash",
+       "tog-previewonfirst": "Tahrirlashga oʻtgandayoq koʻrib chiqish boshlansin",
        "tog-enotifwatchlistpages": "Kuzatuv roʻyxatimdagi sahifa yoki fayllar oʻzgartirilsa, menga bu haqda xat yuborilsin",
        "tog-enotifusertalkpages": "Munozara sahifam oʻzgartirilsa, menga bu haqda xat yuborilsin",
-       "tog-enotifminoredits": "Kichik tahrir qilinsa ham e-pochtamga bu haqda xat yuborilsin",
-       "tog-enotifrevealaddr": "Xabar beruvchi xatlarda e-pochta manzilim koʻrsatilsin",
-       "tog-shownumberswatching": "Sahifani kuzatuv roʻyxatiga olgan foydalanuvchilar sonini koʻrsatish",
-       "tog-oldsig": "Joriy imzo:",
+       "tog-enotifminoredits": "Sahifa va fayllarga kichik oʻzgarish kiritilsa ham elektron pochtamga bu haqda xat yuborilsin",
+       "tog-enotifrevealaddr": "Xabar beruvchi xatlarda elektron pochta manzilim koʻrsatilsin",
+       "tog-shownumberswatching": "Sahifani kuzatuv roʻyxatiga qoʻshgan foydalanuvchilar soni koʻrsatilsin",
+       "tog-oldsig": "Joriy imzoingiz:",
        "tog-fancysig": "Imzoni viki-belgi qilib koʻrsatish (avtomatik ishoratsiz)",
-       "tog-uselivepreview": "Tez koʻrib chiqish",
-       "tog-forceeditsummary": "Qisqa tavsif oynasi toʻldirilmagani haqida ogohlantirish koʻrsatish",
+       "tog-uselivepreview": "Oʻzgarishlarni sahifani yangilamasdan koʻrib chiqish",
+       "tog-forceeditsummary": "Qisqa tavsif oynasi toʻldirilmagani haqida ogohlantirish berilsin",
        "tog-watchlisthideown": "Oʻz tahrirlarim kuzatuv roʻyxatimda koʻrsatilmasin",
        "tog-watchlisthidebots": "Botlar qilgan tahrirlar kuzatuv roʻyxatimda koʻrsatilmasin",
        "tog-watchlisthideminor": "Kichik tahrirlar kuzatuv roʻyxatimda koʻrsatilmasin",
        "tog-watchlisthideliu": "Tizimga kirgan foydalanuvchilar tahrirlari kuzatuv roʻyxatimda koʻrsatilmasin",
-       "tog-watchlisthideanons": "Anonim foydalanuvchilar tahrirlari kuzatuv roʻyxatimda koʻrsatilmasin",
+       "tog-watchlisthideanons": "Anonimlarning tahrirlari kuzatuv roʻyxatimda koʻrsatilmasin",
        "tog-watchlisthidepatrolled": "Tekshirilgan tahrirlar kuzatuv roʻyxatimda koʻrsatilmasin",
+       "tog-watchlisthidecategorization": "Sahifalarning turkumlari yashirilsin",
        "tog-ccmeonemails": "Boshqa ishtirokchilarga yozgan xatimning nusxasi oʻzimga yuborilsin",
        "tog-diffonly": "Versiyalar taqqoslanayotganda, pastda sahifa matni koʻrsatilmasin",
-       "tog-showhiddencats": "Yashirin turkumlarni koʻrsatish",
-       "tog-norollbackdiff": "Tahrir qaytarilganda, versiyalar taqqosi koʻrsatilmasin",
-       "tog-useeditwarning": "Oʻzgarishlarni saqlamay sahifadan chiqib ketayotganim haqida ogohlantir",
-       "tog-prefershttps": "Doim himoyalangan holda kirish",
+       "tog-showhiddencats": "Yashirin turkumlar koʻrsatilsin",
+       "tog-norollbackdiff": "Biron tahrir tezda qaytarilsa, versiyalar taqqosini koʻrsatishning hojati yoʻq",
+       "tog-useeditwarning": "Oʻzgarishlarni saqlamay sahifadan chiqib ketayotganim haqida ogohlantirish berilsin",
+       "tog-prefershttps": "Tizimga kirganimdan keyin doim himoyalangan aloqadan foydalanilsin",
        "underline-always": "Har doim",
        "underline-never": "Hech qachon",
-       "underline-default": "Bezak mavzusi yoki brauzer andozasi boʻyicha",
+       "underline-default": "Brauzer sozlamalaridan foydalanilsin",
        "editfont-style": "Tahrirlash maydonidagi shrift turi:",
        "editfont-monospace": "Teng enli shrift (Monospaced)",
        "editfont-sansserif": "Kertiksiz shrift (Sans-serif)",
        "category_header": "„$1“ turkumidagi sahifalar",
        "subcategories": "Ostturkumlar",
        "category-media-header": "„$1“ turkumidagi fayllar",
-       "category-empty": "''Ushbu turkumda hozircha sahifa yoki fayllar yoʻq.''",
+       "category-empty": "<em>Ushbu turkumda hozircha sahifa yoki fayllar yoʻq.</em>",
        "hidden-categories": "{{PLURAL:$1|Yashirin turkum}}",
        "hidden-category-category": "Yashirin turkumlar",
        "category-subcat-count": "{{PLURAL:$2|Ushbu turkumda faqat bitta ostturkum mavjud.|Quyida ushbu turkumga kiruvchi $2 ta ostturkumdan $1 tasi koʻrsatilgan.}}",
        "mytalk": "Munozara",
        "anontalk": "Ushbu IP-manzil munozarasi",
        "navigation": "Saytda harakatlanish",
-       "and": "&nbsp;va",
+       "and": "&#32;va",
        "faq": "TSS",
        "actions": "Amallar",
        "namespaces": "Nomfazolar",
        "viewsourcelink": "manbasini koʻrish",
        "editsectionhint": "Boʻlimni tahrirlash: $1",
        "toc": "Mundarija",
-       "showtoc": "koʻrsatish",
+       "showtoc": "koʻrsat",
        "hidetoc": "yashirish",
        "collapsible-collapse": "Yigʻish",
        "collapsible-expand": "Yoyish",
        "viewsource-title": "$1 sahifasining manbasini koʻrish",
        "actionthrottled": "Tezlik cheklovi",
        "protectedpagetext": "Bu sahifa tahrirlash va boshqa oʻzgarishlar kiritishdan himoyalangan.",
-       "viewsourcetext": "Siz bu sahifaning manbasini koʻrishingiz va uni nusxasini olishingiz mumkin:",
+       "viewsourcetext": "Siz bu sahifaning ichki kodini koʻrishingiz va undan nusxa olishingiz mumkin:",
        "protectedinterface": "Ushbu sahifada dasturiy taʼminot interfeysi xabari mavjud. Bezoriliklardan saqlash uchun uni oʻzgartirish taʼqiqlangan.\nUshbu xabar tarjimasini qoʻshish yoki oʻzgartirish uchun, iltimos, MediaWikining [https://translatewiki.net/ translatewiki.net] mahalliylashtirish saytidan foydalaning.",
        "editinginterface": "<strong>Eʼtibor bering:</strong> Siz interfeys matnini aks ettiruvchi sahifani tahrirlamoqdasiz.\nUning oʻzgartirilishi boshqa foydalanuvchilar uchun ham interfeys oʻzgarishiga olib keladi.",
        "translateinterface": "Ushbu xabar tarjimasini qoʻshish yoki oʻzgartirish uchun, iltimos, MediaWikining [https://translatewiki.net/ translatewiki.net] mahalliylashtirish saytidan foydalaning.",
        "headline_sample": "Sarlavha",
        "headline_tip": "2-darajadagi sarlavha",
        "nowiki_sample": "Bu yerga formatlash zarur boʻlmagan matnni qoʻying",
-       "nowiki_tip": "Viki-formatlashga e'tibor qilmaslik",
+       "nowiki_tip": "Viki-formatlashga eʼtibor berilmasin",
        "image_tip": "Fayl oʻrnatish",
        "media_tip": "Faylga havola",
        "sig_tip": "Imzoingiz va sana",
        "subject": "Mavzu/sarlavha",
        "minoredit": "Bu kichik tahrir",
        "watchthis": "Sahifani kuzatish",
-       "savearticle": "Saqla",
-       "publishpage": "Sahifani chop et",
-       "publishchanges": "Oʻzgarishlarni chop et",
+       "savearticle": "Chop etish",
+       "savechanges": "Oʻzgarishlarni saqlash",
+       "publishpage": "Sahifani chop etish",
+       "publishchanges": "Oʻzgarishlarni chop etish",
        "preview": "Ko‘rib chiqish",
        "showpreview": "Koʻrib chiqish",
        "showdiff": "Kiritilgan o‘zgarishlar",
        "newarticle": "(Yangi)",
        "newarticletext": "Bu sahifa hali mavjud emas.\nSahifani yaratish uchun quyida matn kiritishingiz mumkin (qoʻshimcha axborot uchun [$1 yordam sahifasini] koʻring).\nAgar bu sahifaga xatolik sabab kelib qolgan boʻlsangiz brauzeringizning '''orqaga''' tugmasini bosing.",
        "anontalkpagetext": "----\n<em>Ushbu munozara sahifasi hisob yozuvi yaratmagan (yoki yaratishni xohlamaydigan) anonim foydalanuvchiga tegishli.</em>\n\nShu sababli, uni aniqlash uchun raqamli IP-manzildan foydalaniladi.\nUshbu IP-manzil bir nechta foydalanuvchilarga tegishli boʻlishi mumkin.\nAgar siz anonim foydalanuvchi boʻlsangiz va qoldirilgan xabarlar sizga yoʻnaltirilmagan deb hisoblasangiz, iltimos, boshqa anonim foydalanuvchilar bilan adashtirib yubormasliklari uchun [[Special:CreateAccount|hisob yozuvi yarating]] yoki [[Special:UserLogin|tizimga kiring]].",
-       "noarticletext": "Bu sahifada hozircha hech qanday matn yoʻq. Siz bu soʻzni boshqa sahifalardan [[Special:Search/{{PAGENAME}}|qidirib koʻrishingiz]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ushbu sahifaga tegishli qaydlarni koʻrib chiqishingiz] yoki shunday nomli sahifani [{{fullurl:{{FULLPAGENAME}}|action=edit}} yaratishingiz]</span> mumkin.",
+       "noarticletext": "Bu sahifada hozircha hech qanday matn yoʻq. Siz bu atamani [[Special:Search/{{PAGENAME}}|boshqa sahifalar ichidan qidirib koʻrishingiz]] yoki <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ushbu sahifaga oid qaydlarni koʻrib chiqishingiz] mumkin.\n\nAgar lozim deb hisoblasangiz, „''{{PAGENAME}}''“ nomli [{{fullurl:{{FULLPAGENAME}}|action=edit}} yangi sahifa yaratishingiz]</span> mumkin.",
        "userpage-userdoesnotexist-view": "\"$1\" foydalanuvchi hisobi roʻyxatga olinmagan.",
+       "blocked-notice-logextract": "Ushbu foydalanuvchi hozirda '''chetlatilgan'''.\nQuyida chetlatish jurnalidan soʻnggi qaydni koʻrishingiz mumkin:",
        "clearyourcache": "'''Eslatma.''' Saqlaganingizdan so'ng o'zgarishlarni ko'rish uchun siz o'z brauzeringiz keshini tozalashingizga to'gri kelishi mumkin.\n* '''Firefox / Safari:''' ''Shift'' tugmasini bosgan holda, ''Yangilash'' unsurlar darchasini bosing, yoki ''Ctrl-F5'' yoki ''Ctrl-R'' (Macda ''⌘-R'') ni bosing\n* '''Google Chrome:''' ''Ctrl-Shift-R'' (Macda ''⌘-Shift-R'') ni bosing\n* '''Internet Explorer:''' ''Ctrl''ni bosgan holda, ''Yangilash''ni bosing, yoki ''Ctrl-F5''ni bosing\n* '''Opera:''' ''Asboblar → Moslamalar'' menyusidan keshni tozalashni tanlang",
        "updated": "(Yangilandi)",
        "note": "'''Izoh:'''",
        "rev-deleted-user": "(muallif nomi oʻchirilgan)",
        "rev-deleted-event": "(jurnal tafsilotlari o‘chirildi)",
        "rev-delundel": "koʻrsatish/yashirish",
-       "rev-showdeleted": "koʻrsatish",
+       "rev-showdeleted": "koʻrsat",
        "revdelete-show-file-submit": "Ha",
        "revdelete-confirm": "Iltimos, haqiqatdan ham shu harakatni amalga oshirmoqchiligingizni, uning oqibatlarini tushunib turganingizni va harakatingiz [[{{MediaWiki:Policy-url}}|qoidalarga]] asosanlanganini tasdiqlang.",
        "revdelete-hide-text": "Sahifaning ushbu versiyasi matnini yashirish",
        "revdelete-radio-set": "Ha",
        "revdelete-radio-unset": "Yoʻq",
        "revdelete-log": "Sabab:",
-       "revdel-restore": "Ko'rinuvchanlikni o'zgartirish",
+       "revdel-restore": "koʻrinuvchanligini oʻzgartirish",
        "revdelete-otherreason": "Boshqa/qoʻshimcha sabab:",
        "revdelete-reasonotherlist": "Boshqa sabab",
        "mergehistory": "Tahrirlar tarixlarini birlashtirish",
        "showingresults": "Quyida №'''$2'''dan boshlab {{PLURAL:$1|'''bitta''' natija|'''$1''' ta natija}} koʻrsatilgan.",
        "search-nonefound": "Talabga javob beradigan natija topilmadi.",
        "powersearch-legend": "Kengaytirilgan qidiruv",
-       "powersearch-ns": "Quyidagi nomfazolardan qidir:",
+       "powersearch-ns": "Muayyan nomfazolardan qidirish:",
        "powersearch-togglelabel": "Belgilash:",
        "powersearch-toggleall": "Hammasini",
        "powersearch-togglenone": "Hech qaysini",
        "prefs-signature": "Imzo",
        "prefs-dateformat": "Sana formati",
        "prefs-timeoffset": "Vaqt farqi",
-       "prefs-advancedediting": "Qoʻshimcha moslamalar",
+       "prefs-advancedediting": "Asosiy bandlar",
+       "prefs-editor": "Tahrirlagich",
        "prefs-advancedrc": "Qoʻshimcha moslamalar",
        "prefs-advancedrendering": "Qoʻshimcha moslamalar",
        "prefs-advancedsearchoptions": "Qoʻshimcha moslamalar",
        "userrights": "Huquqlarini oʻzgartirish",
        "userrights-lookup-user": "Foydalanuvchini tanlash",
        "userrights-user-editname": "Foydalanuvchi nomi:",
-       "editusergroup": "Shu foydalanuvchi huquqlarini oʻzgartirish",
+       "editusergroup": "Qaysi guruhlarga aʼzo ekanligini koʻrish",
        "editinguser": "{{GENDER:$1|Foydalanuvchi}} <strong>[[User:$1|$1]]</strong> $2 huquqlarini oʻzgartirish",
        "userrights-editusergroup": "Guruhlardagi aʼzoligini oʻzgartirish",
        "saveusergroups": "Oʻzgarishlarni saqlash",
        "newuserlogpage": "Foydalanuvchilarni roʻyxatga olish qaydlari",
        "newuserlogpagetext": "Yaqinda roʻyxatdan oʻtgan foydalanuvchilar roʻyxati",
        "rightslog": "Foydalanuvchi huquqlari koʻrsatilgan qaydlar",
-       "rightslogtext": "Foydalanuvchi huquqlarini oʻzgartirish qaydlari.",
+       "rightslogtext": "Bu sahifada foydalanuvchilarning huquqlarini oʻzgartirish qaydlari koʻrsatilgan.",
        "action-edit": "ushbu sahifani tahrirlash",
        "action-move": "bu sahifani koʻchirish",
        "action-move-subpages": "Bu sahifani va uning ostsahifalarini koʻchirish",
        "enhancedrc-history": "tarix",
        "recentchanges": "Yangi oʻzgarishlar",
        "recentchanges-legend": "Yangi oʻzgarishlar moslamalari",
-       "recentchanges-summary": "Bu sahifada {{SITENAME}} loyihasida sodir boʻlgan soʻnggi oʻzgarishlarni koʻrishingiz mumkin.",
+       "recentchanges-summary": "Bu sahifada Siz „{{SITENAME}}“da sodir boʻlgan soʻnggi oʻzgarishlarni koʻrishingiz mumkin.",
        "recentchanges-noresult": "Koʻrsatilgan muddatga va shartlarga oid oʻzgarishlar topilmadi.",
-       "recentchanges-feed-description": "Vikida mazkur oqimdagi oxirgi oʻzgarishlarni kuzatish",
+       "recentchanges-feed-description": "Vikidagi eng oxirgi oʻzgarishlarni kuzatish.",
        "recentchanges-label-newpage": "Bu tahrir orqali yangi sahifa yaratilgan",
-       "recentchanges-label-minor": "Bu tahrir kichik deb belgilangan",
-       "recentchanges-label-bot": "Bu tahrirni bot bajargan",
-       "recentchanges-label-unpatrolled": "Bu tahrir hali tekshirilmagan",
-       "recentchanges-label-plusminus": "Sahifa vazni qanchaga oʻzgargani (bayt)",
+       "recentchanges-label-minor": "Bu tahrir ''kichik'' deb belgilangan",
+       "recentchanges-label-bot": "Bu tahrirni ''bot'' bajargan",
+       "recentchanges-label-unpatrolled": "Bu tahrir hali tekshirib chiqilmagan",
+       "recentchanges-label-plusminus": "Sahifa vazni necha baytga oʻzgargani",
        "recentchanges-legend-heading": "<strong>Izoh:</strong>",
-       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|alohida roʻyxat]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (shuningdek q.: [[Special:NewPages|alohida roʻyxat]])",
+       "recentchanges-legend-plusminus": "(<em>±123</em>)",
+       "recentchanges-submit": "Koʻrsat",
+       "rcfilters-tag-remove": "'$1'ni oʻchirish",
+       "rcfilters-legend-heading": "<strong>Qisqartmalar roʻyxati:</strong>",
+       "rcfilters-other-review-tools": "Tekshiruv oʻtkazishning qoʻshimcha usullari",
+       "rcfilters-activefilters": "Tanlangan filtrlar",
+       "rcfilters-activefilters-hide": "Yashirish",
+       "rcfilters-activefilters-show": "Koʻrsatish",
+       "rcfilters-limit-and-date-label": "$1 ta {{PLURAL:$1|oʻzgarish|oʻzgarish}}, $2",
+       "rcfilters-days-title": "Oxirgi necha kundagi?",
+       "rcfilters-hours-title": "Oxirgi necha soatdagi?",
+       "rcfilters-days-show-days": "$1 {{PLURAL:$1|kun|kun}}",
+       "rcfilters-days-show-hours": "$1 {{PLURAL:$1|soat|soat}}",
+       "rcfilters-savedqueries-rename": "Qayta nomlash",
+       "rcfilters-savedqueries-remove": "Oʻchirish",
+       "rcfilters-savedqueries-new-name-label": "Nomi",
+       "rcfilters-savedqueries-cancel-label": "Bekor qilish",
+       "rcfilters-savedqueries-add-new-title": "Amaldagi filtrlar eslab qolinsin",
+       "rcfilters-search-placeholder": "Oʻzgarishlarni filtrlash (menyudan foydalaning yoki filtr nomini kiriting)",
+       "rcfilters-filterlist-title": "Filtrlar",
+       "rcfilters-filtergroup-userExpLevel": "Foydalanuvchining tajriba darajasi",
+       "rcfilters-filter-bots-label": "Bot",
+       "rcfilters-filter-minor-label": "Kichik tahrirlar",
+       "rcfilters-filter-major-label": "Oddiy tahrirlar",
+       "rcfilters-filter-watchlistactivity-unseen-label": "Koʻrib chiqilmagan oʻzgarishlar",
+       "rcfilters-filter-watchlistactivity-seen-label": "Koʻrib chiqilgan oʻzgarishlar",
+       "rcfilters-filtergroup-changetype": "Kiritilgan oʻzgarishning turi",
+       "rcfilters-filter-categorization-label": "Turkumlardagi oʻzgarishlar",
+       "rcfilters-filter-logactions-label": "Qaydga olingan amallar",
+       "rcfilters-tag-prefix-namespace-inverted": "<strong>:not</strong> $1",
        "rcnotefrom": "Quyida <strong>$3, $4</strong> dan keyin sodir boʻlgan oʻzgarishlar koʻrsatilgan (oxirgi <strong>$1</strong> tasi).",
        "rclistfrom": "$3, $2 dan keyin sodir boʻlgan oʻzgarishlarni koʻrsat",
        "rcshowhideminor": "Kichik tahrirlarni $1",
-       "rcshowhideminor-show": "koʻrsat",
+       "rcshowhideminor-show": "Koʻrsat",
        "rcshowhideminor-hide": "yashir",
        "rcshowhidebots": "Botlarni $1",
-       "rcshowhidebots-show": "koʻrsat",
+       "rcshowhidebots-show": "Koʻrsat",
        "rcshowhidebots-hide": "yashir",
        "rcshowhideliu": "Roʻyxatdan oʻtganlarni $1",
        "rcshowhideliu-show": "koʻrsat",
        "rcshowhideliu-hide": "yashir",
        "rcshowhideanons": "Anonimlarni $1",
-       "rcshowhideanons-show": "koʻrsat",
+       "rcshowhideanons-show": "Koʻrsat",
        "rcshowhideanons-hide": "yashir",
        "rcshowhidepatr": "Tekshirilgan tahrirlarni $1",
+       "rcshowhidepatr-show": "Koʻrsat",
        "rcshowhidepatr-hide": "yashir",
        "rcshowhidemine": "Oʻz tahrirlarimni $1",
-       "rcshowhidemine-show": "koʻrsat",
+       "rcshowhidemine-show": "Koʻrsat",
        "rcshowhidemine-hide": "yashir",
        "rclinks": "Oxirgi $2 kun ichida sodir boʻlgan $1 ta oʻzgarish koʻrsatildi",
        "diff": "farq",
        "hist": "tarix",
-       "hide": "yashir",
-       "show": "koʻrsat",
+       "hide": "Yashir",
+       "show": "Koʻrsat",
        "minoreditletter": "k",
        "newpageletter": "Y",
        "boteditletter": "b",
        "statistics-header-users": "Foydalanuvchilar statistikasi",
        "statistics-articles": "Maqolalar",
        "statistics-pages": "Sahifalar",
-       "statistics-pages-desc": "Ushbu vikidagi barcha sahifalar, jumladan munozara, yoʻnaltirish va hk.",
+       "statistics-pages-desc": "Ushbu vikidagi barcha sahifalar, shu jumladan munozara sahifalari, qayta yoʻnaltiruvchi va boshqa sahifalar",
        "statistics-files": "Yuklangan fayllar",
        "statistics-edits": "{{SITENAME}}dagi tahrirlarning umumiy soni",
        "statistics-edits-average": "Oʻrtacha tahrirlar soni (sahifa boshiga)",
        "pageswithprop-prop": "Xossa nomi:",
        "pageswithprop-submit": "Oʻtish",
        "brokenredirects-edit": "tahrirlash",
+       "withoutinterwiki-submit": "Koʻrsat",
        "nbytes": "$1 {{PLURAL:$1|bayt}}",
        "ncategories": "$1 {{PLURAL:$1|turkum|turkumlar}}",
        "nmembers": "$1 {{PLURAL:$1|ta sahifa}}",
        "wantedcategories": "Talab qilinayotgan turkumlar",
        "mostcategories": "Eng koʻp turkumli sahifalar",
        "prefixindex": "Prefiksli barcha sahifalar",
+       "prefixindex-submit": "Koʻrsat",
        "prefixindex-strip": "Natijalar roʻyxatida prefiks koʻrsatilmasin",
        "protectedpages": "Himoyalangan sahifalar",
        "listusers": "Foydalanuvchilar roʻyxati",
        "usercreated": "$1, $2 da {{GENDER:$3|roʻyxatdan oʻtgan}}",
        "newpages": "Yangi sahifalar",
+       "newpages-submit": "Koʻrsat",
        "move": "Ko‘chirish",
        "movethispage": "Bu sahifani koʻchirish",
        "pager-newer-n": "{{PLURAL:$1|yangiroq 1|yangiroq $1}}",
        "specialloguserlabel": "Ijrochi:",
        "speciallogtitlelabel": "Moʻljal:",
        "log": "Qaydlar",
+       "logeventslist-submit": "Koʻrsat",
        "all-logs-page": "Barcha ochiq qaydlar",
        "alllogstext": "{{SITENAME}}dagi barcha jurnallar roʻyxati.\nNatijalarni jurnal nomi, foydalanuvchi nomi (harflar katta-kichikligi inobatga olinadi) yoki sahifa nomi boʻyicha saralashingiz mumkin.\n* Biror foydalanuvchi amalga oshirgan qaydni topish uchun uning foydalanuvchi nomini „Ijrochi“ oynasiga kiriting.\n* Biror foydalanuvchi yoki sahifaga nisbatan amalga oshirilgan qaydni topish uchun ulardan birining nomini „Moʻljal“ oynasiga kiriting.",
        "logempty": "Talabga mos yozuvlar mavjud emas.",
        "allpages-hide-redirects": "Yoʻnaltirishlarni yashirish",
        "cachedspecial-refresh-now": "Oxirgi versiyasini koʻrish",
        "categories": "Turkumlar",
+       "categories-submit": "Koʻrsat",
        "categoriespagetext": "Quyidagi {{PLURAL:$1|turkumda|turkumlarda}} sahifa yoki media-fayllar mavjud.\n[[Special:UnusedCategories|Ishlatilmayotgan turkumlar]] bu yerda koʻrsatilmaydi.\nShuningdek qarang: [[Special:WantedCategories|talab qilinayotgan turkumlar]].",
        "categoriesfrom": "Quyidagidan boshlanuvchi turkumlarni koʻrsatish:",
        "deletedcontributions": "Foydalanuvchining o‘chirilgan hissasi",
        "linksearch-ok": "Qidirish",
        "linksearch-line": "$2 ichidan $1 ga havola",
        "listusersfrom": "Quyidagidan boshlanuvchi foydalanuvchilarni koʻrsatish:",
-       "listusers-submit": "Koʻrsatish",
+       "listusers-submit": "Koʻrsat",
        "listusers-noresult": "Foydalanuvchilar topilmadi.",
        "listusers-blocked": "(chetlashtirilgan)",
        "activeusers": "Faol foydalanuvchilar roʻyxati",
        "wlheader-showupdated": "Siz oxirgi marta kirganingizdan keyin oʻzgartirilgan sahifalar '''qalin''' yozuv bilan ajratib koʻrsatilgan.",
        "wlnote": "Quyida oxirgi $2 soat ichida sodir boʻlgan {{PLURAL:$1|oxirgi oʻzgarish|<strong>$1</strong> ta oʻzgarishlar}} koʻrsatilgan. $3, $4.",
        "wlshowlast": "Oxirgi $1 soatdagi $2 kundagi tahrirlarni koʻrsatish",
+       "watchlist-submit": "Koʻrsat",
        "watchlist-options": "Kuzatuv roʻyxati moslamalari",
        "watching": "Kuzatish...",
        "unwatching": "Kuzatuv roʻyxatidan oʻchirilmoqda...",
        "delete-confirm": "$1 — oʻchirish",
        "delete-legend": "Sahifani o‘chirish",
        "historywarning": "<strong>Diqqat:</strong> Siz oʻchirmoqchi boʻlayotgan sahifaning tarixida $1 ta {{PLURAL:$1|versiyasi}} bor:",
+       "historyaction-submit": "Koʻrsat",
        "confirmdeletetext": "Siz ushbu sahifani va uning tarixini butunlay oʻchirib tashlamoqchi boʻlyapsiz. Iltimos, [[Special:Whatlinkshere/{{FULLPAGENAMEE}}|bogʻlangan sahifalar]] bilan tanishib chiqishni unutmang.",
        "actioncomplete": "Bajarildi",
-       "actionfailed": "Jarayon amalga oshmadi",
+       "actionfailed": "Bajarilmadi",
        "deletedtext": "«$1» oʻchirildi.\nYaqinda sodir etilgan oʻchirishlar roʻyxatini $2 sahifasida qarang.",
        "dellogpage": "Oʻchirish qaydlari",
        "dellogpagetext": "Quyida yaqinda oʻchirilgan sahifalar roʻyxati keltirilgan",
        "restriction-level-all": "barcha darajalar",
        "undelete": "Oʻchirilgan sahifalarni koʻrish",
        "undeletepage": "Oʻchirilgan sahifalarni koʻrish va tiklash",
+       "undeletepagetitle": "<strong>Quyida [[:$1|$1]] sahifasining oʻchirib tashlangan nashrlarini koʻrishingiz mumkin</strong>.",
        "viewdeletedpage": "Oʻchirilgan sahifalarni koʻrish",
        "undelete-nodiff": "Oldingi versiya topilmadi.",
        "undeletebtn": "Tiklash",
        "contributions-title": "{{GENDER:$1|Foydalanuvchi}} $1 hissasi",
        "mycontris": "Hissam",
        "anoncontribs": "Qoʻshilgan hissa",
-       "contribsub2": "$1 uchun ($2)",
+       "contribsub2": "{{GENDER:$3|$1}} ($2) amalga oshirgan tahrirlar",
        "nocontribs": "Belgilangan shartlarga muvofiq oʻzgarishlar topilmadi.",
        "uctop": "joriy",
        "month": "Oydan (va avvalroq)",
        "year": "Yildan (va avvalroq)",
+       "date": "Shu sanadan avvalroq:",
        "sp-contributions-newbies": "Faqatgina yangi foydalanuvchilarning hissalarini koʻrsat",
        "sp-contributions-newbies-sub": "Yangi hisob yozuvlaridan",
        "sp-contributions-newbies-title": "Yangi hisob yozuvlarining hissalari",
        "sp-contributions-logs": "qaydlar",
        "sp-contributions-talk": "munozara",
        "sp-contributions-userrights": "huquqlarini oʻzgartirish",
-       "sp-contributions-blocked-notice": "Ushbu foydalanuvchi hozirda tahrirlashdan chetlatilgan. Quyida chetlatish qaydlaridan soʻnggi yozuv keltirilgan:",
+       "sp-contributions-blocked-notice": "Ushbu foydalanuvchi hozirda '''chetlatilgan'''.\nQuyida chetlatish jurnalidan soʻnggi qaydni koʻrishingiz mumkin:",
+       "sp-contributions-blocked-notice-anon": "Ushbu IP-manzil hozirda '''chetlatilgan'''.\nQuyida chetlatish jurnalidan soʻnggi qaydni koʻrishingiz mumkin:",
        "sp-contributions-search": "Hissalarni qidirish",
        "sp-contributions-username": "IP-manzil yoki foydalanuvchi nomi:",
        "sp-contributions-toponly": "Faqat oxirgi deb hisoblangan tahrirlarni koʻrsat",
        "unblock": "Foydalanuvchiga yo'l ochish",
        "blockip": "Chetlashtirish",
        "ipaddressorusername": "IP-manzil yoki foydalanuvchi nomi:",
-       "ipbexpiry": "Tugash muddati:",
        "ipbreason": "Sabab:",
        "ipbreason-dropdown": "* Chetlashtirishning odatiy sabablari\n** Yolgʻon maʼlumot kiritish\n** Sahifa matnini toʻliq oʻchirish\n** Tashqi saytlarga spam-havolalar\n** Maʼnosiz matn/axlat qoʻshish\n** Foydalanuvchilarga tahdid qilish, ularni taʼqib qilish\n** Bir nechta hisob yozuvlaridan oʻz manfaatlarida foydalanish\n** Nomaqbul foydalanuvchi nomi",
        "ipb-hardblock": "Tasdiqlangan foydalanuvchilarga ham ushbu IP-manzildan tahrirlashni taʼqiqlash",
        "ipb-unblock-addr": "$1dan toʻsiqni olish",
        "ipb-unblock": "Foydalanuvchidan (yoki IP-manzildan) toʻsiqni olib tashlash",
        "ipb-blocklist": "Mavjud chetlatishlarni koʻrsat",
+       "block-expiry": "Tugash muddati:",
        "unblockip": "Foydalanuvchidan to‘siqni olib tashlash",
        "ipusubmit": "Ushbu chetlashtirishni olib tashlash",
        "unblocked": "[[User:$1|$1]]dan to‘siq olib tashlandi",
        "tooltip-n-mainpage-description": "Bosh sahifaga o‘tish",
        "tooltip-n-portal": "Loyiha haqida, nimalar qilishingiz mumkin, nimalarni qayerdan topish mumkin",
        "tooltip-n-currentevents": "Joriy hodisalar haqida ma’lumot olish",
-       "tooltip-n-recentchanges": "Wikidagi eng so‘nggi o‘zgartirishlar ro‘yxati",
+       "tooltip-n-recentchanges": "Vikidagi eng so‘nggi o‘zgarishlar ro‘yxati",
        "tooltip-n-randompage": "Tasodifiy sahifaga oʻtish",
        "tooltip-n-help": "Qisqa va loʻnda maʼlumotnoma",
        "tooltip-t-whatlinkshere": "Ushbu sahifaga bogʻlangan sahifalar roʻyxati",
        "tooltip-ca-nstab-category": "Turkum sahifasini koʻrish",
        "tooltip-minoredit": "Kichik o‘zgartirish sifatida belgilash",
        "tooltip-save": "Oʻzgarishlarni saqlash",
+       "tooltip-publish": "Siz kiritgan oʻzgarishlarni chop etish",
        "tooltip-preview": "Oʻzgarishlarni koʻrib chiqish; Iltimos, saqlashdan oldin undan foydalaning!",
        "tooltip-diff": "Matnga qanday oʻzgarishlar kiritganligingizni koʻrish.",
        "tooltip-compareselectedversions": "Bu sahifaning ikki tanlangan versiyalari orasidagi farqni koʻrish.",
        "watchlisttools-raw": "Kuzatuv roʻyxatimni tahrirlash",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|munozara]])",
        "duplicate-defaultsort": "'''Diqqat:''' \"$2\" boshlang'ich saralash kaliti oldingi \"$1\" boshlang'ich saralash kalitini qayta aniqlayapti.",
+       "version": "Versiyasi",
        "version-specialpages": "Maxsus sahifalar",
+       "version-ext-colheader-version": "Versiyasi",
+       "version-software-version": "Versiyasi",
+       "version-libraries-version": "Versiyasi",
        "specialpages": "Maxsus sahifalar",
        "tag-filter": "[[Special:Tags|Nishonlar]] filtri:",
        "tag-list-wrapper": "[[Special:Tags|{{PLURAL:$1|Teg|Teglar}}]]: $2",
        "htmlform-reset": "Oʻzgarishlarni bekor qilish",
        "htmlform-selectorother-other": "Boshqa",
        "logentry-delete-delete": "$1 $3 sahifasini {{GENDER:$2|oʻchirdi}}",
-       "logentry-delete-restore": "$1 $3 sahifasini {{GENDER:$2|tikladi}}",
+       "logentry-delete-restore": "$1 $3 ($4) sahifasini {{GENDER:$2|tikladi}}",
+       "restore-count-revisions": "{{PLURAL:$1|1 ta versiyasi|$1 ta versiyasi}}",
+       "logentry-delete-event": "$1 $3 sahifasi tarixidagi {{PLURAL:$5|$5 ta qaydning}} koʻrinuvchanligini {{GENDER:$2|oʻzgartirdi}}: $4",
+       "logentry-delete-revision": "$1 $3 sahifasining {{PLURAL:$5|$5 ta versiyasi}} koʻrinuvchanligini {{GENDER:$2|oʻzgartirdi}}: $4",
+       "logentry-suppress-event": "$1 $3 sahifasi tarixidagi $5 ta qaydning koʻrinuvchanligini maxfiy ravishda oʻzgartirdi: $4",
+       "logentry-suppress-revision": "$1 $3 sahifasining {{PLURAL:$5|$5 ta versiyasi}} koʻrinuvchanligini maxfiy ravishda {{GENDER:$2|oʻzgartirdi}}: $4",
+       "revdelete-content-hid": "matn yashirildi",
+       "revdelete-summary-hid": "tahrir izohi yashirildi",
+       "revdelete-uname-hid": "foydalanuvchining nomi yashirildi",
+       "revdelete-content-unhid": "matn ochildi",
+       "revdelete-summary-unhid": "tahrir izohi ochildi",
+       "revdelete-uname-unhid": "foydalanuvchining nomi ochildi",
+       "revdelete-restricted": "administratorlarga nisbatan cheklovlar qoʻllanildi",
+       "revdelete-unrestricted": "administratorlarga nisbatan cheklovlar olib tashlandi",
        "logentry-move-move": "$1 $3 sahifasini $4ga koʻchirdi",
        "logentry-move-move-noredirect": "$1 $3 sahifasini $4ga {{GENDER:$2|koʻchirdi}}",
        "logentry-move-move_redir": "$1 sahifa nomini $3dan $4ga yoʻnaltirish ustidan {{GENDER:$2|koʻchirdi}}",
        "special-characters-group-khmer": "Kxmer",
        "special-characters-title-emdash": "uzun tire",
        "special-characters-title-minus": "minus belgisi",
-       "mw-widgets-abandonedit": "Siz haqiqatdan ham oʻzgarishlarni saqlamasdan koʻrish tartibiga oʻtishni xohlaysizmi?"
+       "mw-widgets-abandonedit": "Siz haqiqatdan ham oʻzgarishlarni saqlamasdan koʻrish tartibiga oʻtishni xohlaysizmi?",
+       "log-action-filter-block": "Chetlatish turi:",
+       "log-action-filter-rights": "Huquqlarni oʻzgartirish turi:",
+       "log-action-filter-all": "Barchasi",
+       "log-action-filter-block-block": "Chetlatish",
+       "log-action-filter-block-reblock": "Chetlatish turini oʻzgartirish",
+       "log-action-filter-block-unblock": "Chetlatishni bekor qilish",
+       "log-action-filter-rights-rights": "Qoʻlda kiritilgan oʻzgarish",
+       "authprovider-resetpass-skip-label": "Qoldirib ketish"
 }
index a91dcf3..3ecf5b3 100644 (file)
        "blockip": "Bloco utente",
        "blockiptext": "Dòpara el moduło qua soto par blocar l'accesso in scritura a un speçifico utente o indirizo IP. El bloco el gà de èssar operà par prevegner ati de vandalismo e in streta osservansa de ła [[{{MediaWiki:Policy-url}}|policy de {{SITENAME}}]]. Speçifica in detałio el motivo del bloco nel canpo seguente (ad es. indicando i titołi de łe pàxene ogeto de vandalismo).",
        "ipaddressorusername": "Indirizo IP o nome utente",
-       "ipbexpiry": "Scadensa",
        "ipbreason": "Motivassion:",
        "ipbreason-dropdown": "*Motivazion piassè comuni par i blocchi\n** Inserimento de informazion false\n** Rimozion de contenuti da le pagine\n** Colegamenti promozionali a siti foresti\n** Inserimento de contenuti privi de senso\n** Conportamenti intimidatori o molestie\n** Uso indebito de più account\n** Nome utente non cònsono",
        "ipb-hardblock": "Inpedissighe agli utenti rejistrai de contribuire da sto indirizo IP",
        "ipb-unblock": "Sbloca un utente o un indirizo IP",
        "ipb-blocklist": "Elenca i blochi ativi",
        "ipb-blocklist-contribs": "Contributi de $1",
+       "block-expiry": "Scadensa",
        "unblockip": "Sbloca indirizzo IP",
        "unblockiptext": "Dòpara el modulo qua soto par ridarghe el dirito de scritura a un indirizzo IP precedentemente blocà.",
        "ipusubmit": "Cava sto bloco",
index 73d1986..37fbf20 100644 (file)
        "blockip": "Blokiruida kävutajad",
        "blockiptext": "Kävutagat alemba anttud form, miše blokiruida kirjutandan voimuz märitud IP-adresaspäi.\nNece sab tehta vaiše sen täht, miše borcuidas vandalizmanke, kut om kirjutadud [[{{MediaWiki:Policy-url}}|ohjandimiš]].\nKirjutagat sü alemba (ozutesikš, citiruigat vandaliziruidud lehtpoled).",
        "ipaddressorusername": "IP-adres vai kävutajan nimi:",
-       "ipbexpiry": "Lopindan strok:",
        "ipbreason": "Sü:",
        "ipbreason-dropdown": "*Blokiruindan päsüd\n** Väran informacijan andand\n** Lehtpoliden südäimišton čudand\n** Spamkosketused irdsaitoihe\n** Hamatoman tekstan da rujon kirjutamine lehtpolile\n** Toižiden kävutajiden pöl'gästoitand\n** Erazvuiččiden registracijoiden kävutand ühtel ristitul\n** Paha kävutajan nimi",
        "ipbcreateaccount": "Kel'ta uded registracijad",
        "ipb-unblock": "Heitta blokiruind kävutajan nimelpäi vai IP-adresalpäi",
        "ipb-blocklist": "Ozutada aktualižed blokiruindad",
        "ipb-blocklist-contribs": "Kävutajan $1 tond",
+       "block-expiry": "Lopindan strok:",
        "unblockip": "Heitta blokiruind IP-adresalpäi",
        "unblockiptext": "Kävutagat nece form, miše endištada kirjutandvoimuz blokiruidud IP-adresalpäi vai kävutajan nimelpäi.",
        "ipusubmit": "Heitta nece blokiruind",
index 06e53a8..c65650f 100644 (file)
@@ -44,7 +44,8 @@
                        "Fitoschido",
                        "Leducthn",
                        "Nhatminh01",
-                       "Leduyquang753"
+                       "Leduyquang753",
+                       "Ioe2015"
                ]
        },
        "tog-underline": "Gạch chân liên kết:",
        "blockip": "Cấm {{GENDER:$1}}người dùng",
        "blockiptext": "Dùng mẫu dưới để cấm một địa chỉ IP hoặc thành viên không được viết trang.\nĐiều này chỉ nên làm để tránh phá hoại, và phải theo [[{{MediaWiki:Policy-url}}|quy định]].\nĐiền vào lý do cụ thể ở dưới (ví dụ, chỉ ra trang nào bị phá hoại). \nBạn có thể cấm một dãy IP bằng cách dùng cú pháp [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; giới hạn cho phép tối đa là /$1 đối với IPv4 và /$2 đối với IPv6.",
        "ipaddressorusername": "Địa chỉ IP hay tên thành viên:",
-       "ipbexpiry": "Thời hạn:",
        "ipbreason": "Lý do:",
        "ipbreason-dropdown": "*Một số lý do cấm thường gặp\n** Phá hoại\n** Thêm thông tin sai lệch\n** Xóa nội dung trang\n** Đăng liên kết thư rác dẫn đến trang Web bên ngoài\n** Cho thông tin rác vào trang\n** Có thái độ dọa dẫm/quấy rối\n** Lạm dụng nhiều tài khoản\n** Tên thành viên không thể chấp nhận",
        "ipb-hardblock": "Ngăn không cho thành viên đã đăng nhập sửa đổi từ địa chỉ IP này",
        "ipb-confirm": "Xác nhận cấm",
        "ipb-sitewide": "Toàn website",
        "ipb-partial": "Một phần",
-       "ipb-type-label": "Kiểu",
        "ipb-pages-label": "Các trang",
        "badipaddress": "Địa chỉ IP không hợp lệ",
        "blockipsuccesssub": "Cấm thành công",
        "ipb-blocklist": "Xem danh sách đang bị cấm",
        "ipb-blocklist-contribs": "Đóng góp của $1",
        "ipb-blocklist-duration-left": "còn $1 nữa",
+       "block-expiry": "Thời hạn:",
        "unblockip": "Bỏ cấm thành viên",
        "unblockiptext": "Sử dụng mẫu sau để phục hồi lại quyền sửa đổi đối với một địa chỉ IP hoặc tên thành viên đã bị cấm trước đó.",
        "ipusubmit": "Bỏ cấm",
        "specialpages-group-developer": "Công cụ dành cho lập trình viên",
        "blankpage": "Trang trắng",
        "intentionallyblankpage": "Trang này được chủ định để trắng",
+       "disabledspecialpage-disabled": "Chức năng này đã bị vô hiệu hoá bởi một quản trị viên hệ thống.",
        "external_image_whitelist": " #Hãy để yên dòng này<pre>\n#Hãy đặt các mẩu biểu thức chính quy (chỉ gồm phần ở giữa //) vào phía dưới\n#Những mẩu này sẽ được so trùng với địa chỉ URL của hình ảnh được nhúng trực tiếp từ bên ngoài\n#Những địa chỉ nào trùng sẽ hiển thị thành hình ảnh, nếu không thì chỉ hiển thị liên kết đến hình\n#Những dòng bắt đầu bằng # được xem là chú thích\n#Không phân biệt chữ hoa chữ thường\n\n#Hãy đặt các mẩu biểu thức chính quy ở phía trên dòng này. Hãy để yên dòng này</pre>",
        "tags": "Thẻ đánh dấu thay đổi hợp lệ",
        "tag-filter": "Bộ lọc [[Special:Tags|thẻ]]:",
index 381ee59..4eac0b2 100644 (file)
        "blockip": "Blokön gebani",
        "blockiptext": "Gebolös padi at ad blokön redakamagitäti gebananema u ladeta-IP semikas. Atos söton padunön teiko ad vitön vandalimi, e bai [[{{MediaWiki:Policy-url}}|dunalesets {{SITENAME}}]]. Penolös dono kodi patik pro blokam (a. s., mäniotolös padis pedobüköl).",
        "ipaddressorusername": "Ladet-IP u gebananem",
-       "ipbexpiry": "Dü",
        "ipbreason": "Kod:",
        "ipbreason-dropdown": "*Blokamakods suvik:\n** Läükam nünas neverätik\n** Moükam ninäda se pads\n** Läükam yümas plödik tu mödikis (el „spam“)\n** Penam vödas/vödemas nesiämik su pads\n** Kondöt tu komipälik u dredüköl\n** Geb dobik kalas mödik\n** Gebananem no zepabik",
        "ipbcreateaccount": "Neletön kalijafi",
        "ipb-unblock": "Säblokön gebananemi u ladeti-IP",
        "ipb-blocklist": "Logön blokamis dabinöl",
        "ipb-blocklist-contribs": "Keblünots gebana: $1",
+       "block-expiry": "Dü",
        "unblockip": "Säblokön gebani",
        "unblockiptext": "Gebolös padi at ad gegivön redakamafägi gebane (u ladete-IP) büo pibloköle.",
        "ipusubmit": "Säblokön ladeti at",
index 295810e..62d063b 100644 (file)
        "blockip": "Piäq puutri võrgoaadrõs kinniq",
        "blockiptext": "Taa vorm om kimmä puutri võrgoaadrõsi päält tettüisi kirotuisi kinniqpidämises. '''Taad tohis tetäq õnnõ lehti ts'urkmisõ vasta ni [[{{MediaWiki:Policy-url}}|{{SITENAME}} sisekõrra perrä]]'''. Kimmähe tulõ täütäq ka rida \"põhjus\". Sinnäq võinuq pandaq nt lingiq noilõ lehile, midä rikuti.",
        "ipaddressorusername": "Puutri võrgoaadrõs vai pruukjanimi",
-       "ipbexpiry": "Tähtaig",
        "ipbreason": "Põhjus:",
        "ipbreason-dropdown": "*Hariliguq kinniqpidämise põhjusõq\n** Võlss teedüse kirotaminõ\n** Lehti sisu ärqkistutaminõ\n** Reklaamilinkõ pandminõ\n** Mõttõlda jutu vai prahi pandminõ\n** Segämine ja ts'urkminõ\n** Mitmõ pruukjanime võlsspruukminõ\n** Sündümäldäq pruukjanimi",
        "ipbcreateaccount": "Lasku-i pruukjanimme luvvaq",
        "ipb-unblock-addr": "Lõpõdaq pruukja $1 kinniqpidämine ärq",
        "ipb-unblock": "Lõpõdaq pruukja vai puutri võrgoaadrõasi kinniqpidämine ärq",
        "ipb-blocklist": "Näütäq kinnniqpidämiisi",
+       "block-expiry": "Tähtaig",
        "unblockip": "Lõpõdaq puutri võrgoaadrõsi kinniqpidämine ärq",
        "unblockiptext": "Täüdäq ärq taa vorm, et lõpõtaq ärq pruukja vai puutri võrgoaadrõsi kinniqpidämine",
        "ipusubmit": "Lõpõdaq kinniqpidämine ärq",
index c8cef83..8d6f5ec 100644 (file)
        "summary-preview": "Prévoeyaedje do rascourti do candjmint",
        "blockedtitle": "L' uzeu est bloké",
        "blockedtext": "<strong>Vosse no d' uzeu ou voste adresse IP a stî blokêye.</strong>\n\nLi blocaedje a stî fwait pa $1.\nLi råjhon dnêye est <em>$2</em>.\n\n* Comince do blocaedje: $8\n* Fén do blocaedje: $6\n* Blocaedje di: $7\n\nVos ploz contacter $1 oudonbén onk des\n[[{{MediaWiki:Grouppage-sysop}}|manaedjeus]] po discuter do blocaedje.\nNotez ki vos n' poloz nén eployî l' fonccion « {{int:emailuser}} » a moens ki vos åyîz ene adresse emile valide dins vos [[Special:Preferences|preferinces]] et ki cisse possibilité n' a nén stî blokêye.\nVoste adresse IP est $3 eyet l' ID di blocaedje est $5.\nS' i vs plait racsegnoz totes les racsegnes chal å dzeur dins les dmandes ki vos frîz.",
-       "autoblockedtext": "Voste adresse IP a stî ablokêye otomaticmint, pask' elle a stî eployeye pa èn ôte uzeu, lu-minme dedja rbouté pa $1.\nLi råjhon k' on-z a dné, c' est:\n\n:''$2''.\n\n* Comince do blocaedje: $8\n* Fén do blocaedje: $6\n* Blocaedje di: $7\n\nVos ploz contacter $1 oudonbén onk des\n[[{{MediaWiki:Grouppage-sysop}}|manaedjeus]] po discuter do blocaedje.\n\nNotez ki vos n' poloz nén eployî l' fonccion «emiler a l' uzeu» a moens ki vos åyîz ene adresse emile valide dins vos [[Special:Preferences|preferinces]] et ki cisse possibilité n' a nén stî blokêye.\n\nVoste adresse IP est $3 eyet l' ID di blocaedje est $5.\nS' i vs plait racsegnoz totes les racsegnes chal å dzeur dins les dmandes ki vos frîz.",
+       "autoblockedtext": "Voste adresse IP a stî ablokêye otomaticmint, pask' elle a stî eployeye pa èn ôte uzeu, lu-minme dedja rbouté pa $1.\nLi råjhon k' on-z a dné, c' est:\n\n:<em>$2</em>.\n\n* Comince do blocaedje: $8\n* Fén do blocaedje: $6\n* Blocaedje di: $7\n\nVos ploz contacter $1 oudonbén onk des\n[[{{MediaWiki:Grouppage-sysop}}|manaedjeus]] po discuter do blocaedje.\n\nNotez ki vos n' poloz nén eployî l' fonccion « {{int:emailuser}} » a moens ki vos åyîz ene adresse emile valide dins vos [[Special:Preferences|preferinces]] et ki cisse possibilité n' a nén stî blokêye.\n\nVoste adresse IP est $3 eyet l' ID di blocaedje est $5.\nS' i vs plait racsegnoz totes les racsegnes chal å dzeur dins les dmandes ki vos frîz.",
        "blockednoreason": "sins dire pocwè",
        "whitelistedittext": "I vs fåt $1 po pleur candjî les årtikes.",
        "confirmedittext": "I vs fåt acertiner vost emile po pleur candjî les årtikes. Dinez èn emile eyet l' acertiner dins vos [[Special:Preferences|preferinces d' uzeu]].",
        "loginreqlink": "elodjî",
        "loginreqpagetext": "Vos vs divoz $1 po vey des ôtès pådjes.",
        "accmailtitle": "Li scret a stî evoyî.",
-       "accmailtext": "On scret costrût a l' astcheyance po [[User talk:$1|$1]] a stî evoyî a $2.\n\nLi scret po ci novea conte ci pout esse candjî sol pådje di ''[[Special:ChangePassword|candjmint di scret]]'' après l' elodjaedje.",
+       "accmailtext": "On scret costrût a l' astcheyance po [[User talk:$1|$1]] a stî evoyî a $2.\n\nI pout esse candjî sol pådje di <em>[[Special:ChangePassword|candjmint di scret]]</em> après l' elodjaedje.",
        "newarticle": "(Novea)",
        "newarticletext": "Vos avoz clitchî so on loyén viè ene pådje ki n' egzistêye nén co.\nMins '''vos''' l' poloz askepyî! Po çoula, vos n' avoz k' a cmincî a taper vosse tecse dins l' boesse di tecse cial pa dzo (alez vey li [$1 pådje d' aidance] po pus d' infôrmåcion).\nSi vos estoz droci par accidint, clitchîz simplumint sol boton <strong>En erî</strong> di vosse betchteu waibe po rivni al pådje di dvant.",
        "anontalkpagetext": "---- \n<em>Çouchal, c' est li pådje di copene po èn uzeu anonime ki n' a nén co fwait on conte por lu s' elodjî, ou ki n' l' eploye nén.\nÇa fwait k' on doet eployî si adresse IP limerike po l' idintifyî.\nCome ene sifwaite adresse IP pout esse eployeye pa pus d' èn uzeu, i s' pout ki vos veyoz chal des rmarkes et des messaedjes ki n' sont nén por vos.\nLoukîz s' i vs plait po [[Special:CreateAccount|fé on novea conte]] ou [[Special:UserLogin|s' elodjî]] po n' pus aveur d' ecramiaedje avou des ôtes uzeus anonimes.</em>",
        "userjsyoucanpreview": "'''Racsegne:''' eployîz l' boton «{{int:showpreview}}» po sayî vosse novea JavaScript divant del schaper.",
        "usercsspreview": "Èn rovyîz nén ki c' est djusse on prévoeyaedje di vosse stîle CSS d' uzeu.'''\n'''I n' a nén co stî schapé!'''",
        "userjspreview": "'''Èn rovyîz nén ki c' est djusse on prévoeyaedje/saye di vosse JavaScript d' uzeu, i n' a nén co stî schapé!'''",
-       "userinvalidconfigtitle": "'''Asteme:''' I n' a pont d' pea lomêye «$1». Tuzez ki les pådjes .css eyet .js des uzeus eployèt des tite e ptitès letes, metans {{ns:user}}:Toto/vector.css et nén {{ns:user}}:Toto/Vector.css.",
+       "userinvalidconfigtitle": "<strong>Asteme :</strong> I n' a pont d' pea lomêye «$1». Tuzez ki les pådjes .css, .json eyet .js des uzeus eployèt des tite e ptitès letes, metans {{ns:user}}:Toto/vector.css et nén {{ns:user}}:Toto/Vector.css.",
        "updated": "(Ramidré)",
        "note": "'''Note :'''",
        "previewnote": "'''Èn rovyîz nén ki c' est djusse on prévoeyaedje.'''\n'''Les candmints n' ont nén co stî schapés!'''",
        "continue-editing": "Alez dins l' zône di candjmint",
        "previewconflict": "Ci prévoeyaedje ci mostere kimint kel tecse del boesse di tecse do dzeu sereut håyné si vos decidez del schaper.",
-       "session_fail_preview": "'''Mande escuzes! Mins dji n' a nén polou traitî vosse candjmint paski les dnêyes del session ont stî pierdowes.\nRissayîz s' i vs plait. Si çoula n' va todi nén, sayîz di vs dislodjî eyet di vs relodjî.'''",
-       "session_fail_preview_html": "'''Mande escuzes! Mins dji n' a nén polou traitî vosse candjmint paski les dnêyes del session ont stî pierdowes.'''\n\n''Come {{SITENAME}} a-st en alaedje li HTML brut, li prévoeyaedje est catchî, come proteccion siconte des atakes JavaScript.''\n\n'''Si c' est ene saye oniesse di candjî l' pådje, rissayîz s' i vs plait.'''\nSi çoula n' va todi nén, sayîz di vs [[Special:UserLogout|dislodjî]] eyet di vs relodjî.",
+       "session_fail_preview": "Mande escuzes ! Mins on n' a nén polou traitî vosse candjmint paski les dnêyes del session ont stî pierdowes.\n\nI s' pout k' vos avoz stî dislodjî. <strong>Loukîz si vs estôz todi-z elodjî et rissayîz s' i vs plait.</strong> Si çoula n' va todi nén, sayîz di vs [[Special:UserLogout|dislodjî]] eyet di vs relodjî, tot rwaitant bén a çki vosse betchteu acceptêye les coukis (<em>cookies</em>) po ci waibe ci.",
+       "session_fail_preview_html": "Mande escuzes ! Mins on n' a nén polou traitî vosse candjmint paski les dnêyes del session ont stî pierdowes.\n\n<em>Come {{SITENAME}} a-st en alaedje li HTML brut, li prévoeyaedje est catchî, come proteccion siconte des atakes JavaScript.</em>\n\n<strong>Si c' est ene saye oniesse di candjî l' pådje, rissayîz s' i vs plait.</strong>\nSi çoula n' va todi nén, sayîz di vs [[Special:UserLogout|dislodjî]] eyet di vs relodjî, tot rwaitant bén a çki vosse betchteu acceptêye les coukis (<em>cookies</em>) po ci waibe ci.",
        "editing": "Candjant $1",
        "creating": "Ahivant $1",
        "editingsection": "Candjant $1 (seccion)",
        "copyrightwarning": "Notez ki tos les contribouwaedjes fwaits po {{SITENAME}} dvèt esse dizo l' licince $2 (loukîz $1 po pus di racsegnes).\nSi vos n' voloz nén ki vosse tecse poye esse candjî eyet spårdou pa tot l' minme kî, adon nel evoyîz nén chal.<br />\nVos nos acertinez eto ki vos avoz scrît l' tecse vos-minme, oudonbén l' avoz copyî d' on sourdant libe (dominne publik ou on sourdant pareymint libe).\n'''N' EVOYÎZ NÉN DES TECSES DIZO ABONDROETS SINS PERMISSION!'''",
        "copyrightwarning2": "Notez ki tos les contribouwaedjes fwaits po {{SITENAME}} polèt esse esse candjîs ou disfacés pa des ôtes contribouweus.\nSi vos n' voloz nén scrire des årtikes ki polèt esse candjîs pa des ôtes, adon nels evoyîz nén chal.<br />\nVos nos acertinez eto ki vos avoz scrît l' tecse vos-minme, oudonbén l' avoz copyî d' on sourdant libe (veyoz $1 po pus di racsegnes).\n'''N' EVOYÎZ NÉN DES TECSES DIZO ABONDROETS SINS PERMISSION!'''",
        "longpageerror": "'''AROKE: Li tecse ki vos avoz evoyî fwait di pus d' $1 kilo-octet{{PLURAL:$1||s}}, çou k' est pus ki l' macsimom di $2 kilo-octet{{PLURAL:$2||s}}.'''\nC' est nén possible del schaper sol sierveu.",
-       "readonlywarning": "'''ASTEME: On-z overe sol båze di dnêyes pol moumint, ey elle a stî metowe e mode seulmint-lére.\nDo côp, vos n' såroz schaper vos candjmints asteure.'''\nMotoit vos dvrîz copyî et aclaper l' tecse dins on fitchî da vosse pol poleur rimete pus tård.\n\nLi manaedjeu k' a-st eclawé l' båze di dnêyes a dné cist esplicaedje ci: $1",
+       "readonlywarning": "<strong>ASTEME : on-z overe sol båze di dnêyes pol moumint, ey elle a stî metowe e mode seulmint-lére. Do côp, vos n' såroz schaper vos candjmints asteure.</strong>\nMotoit vos dvrîz copyî et aclaper l' tecse dins on fitchî da vosse pol poleur rimete pus tård.\n\nLi manaedjeu do sistinme k' a-st eclawé l' båze di dnêyes a dné cist esplicaedje ci: $1",
        "protectedpagewarning": "'''ASTEME: Cisse pådje chal a stî protedjeye, seulmint les uzeus avou èn accès di manaedjeu el polèt candjî.'''\nLi dierinne intrêye ezès djournås est håynêye chal pa dzo po referince:",
-       "semiprotectedpagewarning": "'''Note:''' cisse pådje ci a stî protedjeye po k' seulmint les uzeus edjîstrés el polexhe candjî.\nLi dierinne intrêye do djournå est håynêye chal pa dzo po referince:",
-       "cascadeprotectedwarning": "'''ASTEME:''' cisse pådje ci a stî protedjeye ça fwait ki seulmint les uzeus avou l' livea d' manaedjeu el polnut candjî, paski l' pådje est eployeye å dvins {{PLURAL:$1|del pådje shuvante, k' est protedjeye|des pådjes shuvantes, ki sont protedjeyes}} avou l' tchuze «e cascåde» en alaedje:",
+       "semiprotectedpagewarning": "<strong>Note :</strong> cisse pådje ci a stî protedjeye po k' seulmint les uzeus otoconfirmés el polexhe candjî.\nLi dierinne intrêye do djournå est håynêye chal pa dzo po referince:",
+       "cascadeprotectedwarning": "<strong>ASTEME :</strong> cisse pådje ci a stî protedjeye di manire a çki seulmint les uzeus avou [[Special:ListGroupRights|des droets especiås]] el polnut candjî, paski l' pådje est eployeye å dvins {{PLURAL:$1|del pådje shuvante, k' est protedjeye|des pådjes shuvantes, ki sont protedjeyes}} avou l' tchuze « e cascåde » en alaedje :",
        "templatesused": "{{PLURAL:$1|Modele eployî|Modeles eployîs}} e cisse pådje ci:",
        "templatesusedpreview": "{{PLURAL:$1|Modele eployî|Modeles eployîs}} e ç' prévoeyaedje ci:",
        "templatesusedsection": "{{PLURAL:$1|Modele eployî|Modeles eployîs}} e cisse seccion ci:",
        "postedit-confirmation-created": "Li pådje a stî ahivêye",
        "postedit-confirmation-saved": "vosse candjmint a stî schapé",
        "edit-already-exists": "Li novele pâdje n' a savou esse ahivêye, ca cisse pâdje la egzistêye dedja.",
-       "editwarning-warning": "Cwiter cisse pådje ci vos frè piede tos les candjmints ki vos avoz fwait.\nSi vos estoz elodjî, vos ploz dismete cist adviertixhmint ci dins l' linwete «Boesse di tecse» di vos preferinces.",
+       "editwarning-warning": "Cwiter cisse pådje ci vos frè piede tos les candjmints ki vs avoz fwait.\nSi vs estoz elodj{{GENDER:|î|eye}}, vos ploz dismete cist adviertixhmint ci dins l' linwete « {{int:prefs-editing}} » di vos preferinces.",
        "content-model-wikitext": "wikitecse",
        "duplicate-args-category": "Pådje eployant des dobes parametes dins les uzaedjes di modele",
        "post-expand-template-inclusion-warning": "'''Asteme:''' I gn a trop di modeles dins cisse pådje ci.\nSacwants di zels ni seront nén eployîs.",
        "page_last": "dierin",
        "histlegend": "Tchoezi les modêyes a comparer: clitchîz so les botons radio des deus modêyes\nki vos vloz comparer et s' tchôkîz sol tape «enter» ou clitchîz sol\nboton do dzo.<br />\nLedjinde: '''({{int:cur}})''' = diferince avou l' modêye d' asteure, '''({{int:last}})''' = diferince avou l' modêye di dvant, '''{{int:minoreditletter}}''' = pitit candjmint d' rén do tot.",
        "history-fieldset-title": "Cachî dins l' istwere des candjmints",
-       "history-show-deleted": "Disfacés seulmint",
+       "history-show-deleted": "Modêye disfacêye seulmint",
        "histfirst": "les pus vîs",
        "histlast": "les dierins",
        "historysize": "({{PLURAL:$1|1 octet|$1 octets}})",
        "revdelete-show-file-submit": "Oyi",
        "logdelete-selected": "{{PLURAL:$1|Evenmint tchoezi|Evenmints tchoezis}} ezès djournås:",
        "revdelete-legend": "Defini des restriccions sol veyaedje",
-       "revdelete-hide-text": "Catchî l' tecse del modêye",
-       "revdelete-hide-comment": "Catchî l' comintaire di candjmint",
-       "revdelete-hide-user": "Catchî l' no d' uzeu/adresse IP do candjeu",
+       "revdelete-hide-text": "Tecse del modêye",
+       "revdelete-hide-comment": "Comintåre di candjmint",
+       "revdelete-hide-user": "No d' uzeu/adresse IP do candjeu",
        "revdelete-hide-restricted": "Oister foû les dnêyes ossu bén po les manaedjeus k' po les ôtes",
        "revdelete-radio-set": "Catchî",
        "revdelete-radio-unset": "Veyåve",
        "statistics-articles": "Pådjes di contnou",
        "statistics-pages-desc": "Totes les pådjes do \"Wiki\", minme les copinaedjes, les rdjiblaedjes, evnd.",
        "doubleredirects": "Dobes redjiblaedjes",
-       "doubleredirectstext": "Cisse pådje ci mostere les dobes redjiblaedjes (pådjes ki redjiblèt viè ene ôte pådje di redjiblaedje).\nTchaeke roye a-st on loyén viè l' prumî eyet l' deujhinme redjiblaedje, avou on mostraedje del såme do deujhinme redjiblaedje, çou ki å pus sovint dene li «vraiy» årtike såme, ki l' prumî redjiblaedje divreut evoyî viè lu.\nLis intrêyes <del>bårêyes</del> otn ddja stî coridjeyes.",
+       "doubleredirectstext": "Cisse pådje ci mostere les dobes redjiblaedjes (pådjes ki redjiblèt viè ene ôte pådje di redjiblaedje).\nTchaeke roye a-st on loyén viè l' prumî eyet l' deujhinme redjiblaedje, avou on mostraedje del såme do deujhinme redjiblaedje, çou ki å pus sovint dene li « vraiy » årtike såme, ki l' prumî redjiblaedje divreut evoyî viè lu. Les intrêyes <del>bårêyes</del> ont ddja stî coridjeyes.",
        "double-redirect-fixed-move": "[[$1]] a stî displaecî.\nAsteure c' est on redjiblaedje viè [[$2]].",
        "double-redirect-fixer": "Coridjaedje des dobes redjiblaedjes",
        "brokenredirects": "Pierdous redjiblaedjes",
        "blockip": "Bloker èn uzeu",
        "blockiptext": "Rimplixhoz les tchamps chal pa dzo po bloker\nl' accès e scrijhaedje d' èn uzeu dné ou a pårt d' ene\nadresse IP dnêye. Çouci èn doet esse fwait ki po-z arester les\nvandales, et çoula doet esse fwait tot shuvant les\n[[{{MediaWiki:Policy-url}}|rîles]].\nDinez ene råjhon do blocaedje (eg: dijhoz les pådjes k' ont\nstî vandalijheyes).",
        "ipaddressorusername": "Adresse IP ou no d' uzeu",
-       "ipbexpiry": "Tins do blocaedje",
        "ipbreason": "Råjhon:",
        "ipbsubmit": "Bloker cist uzeu",
        "ipbother": "Ôte termene",
        "badipaddress": "Nol uzeu avou ç' no la, ou adresse IP nén valide",
        "blockipsuccesssub": "Li blocaedje a stî comifåt",
        "blockipsuccesstext": "«[[Special:Contributions/$1|$1]]» a stî {{GENDER:$1|bloké|blokêye}}.<br />\nLoukîz li [[Special:BlockList|djivêye des blocaedjes]] po verifyî les blocaedjes.",
+       "block-expiry": "Tins do blocaedje",
        "unblockip": "Disbloker èn uzeu",
        "unblockiptext": "Rimplixhoz les tchamps chal pa dzo po ridner accès e scrijhaedje a èn uzeu ou adresse IP k' estént blokés.",
        "ipusubmit": "Rissaetchî l' blocaedje",
index 8ee5e97..900c6ba 100644 (file)
        "block": "Pugngi an gumaramit",
        "blockip": "Pugngi an {{GENDER:$1|gumaramit}}",
        "ipaddressorusername": "IP address o agnay-hit-gumaramit:",
-       "ipbexpiry": "Matitima an dulot:",
        "ipbreason": "Katadungan:",
        "ipbreason-dropdown": "*Agsob nga mga rason hit pagpugong\n** Pagsusuksok hin sayop nga pananabutan\n** Pagtatangtang hin sulod tikang ha mga pakli\n** Bisan la ano nga pansusumpay ngadto ha gawas nga mga dapit\n** Pansusuksok hin inamasang/buro-buro ngadto ha mga pakli\n** Panhahadlok nga pamatasan/makakalilisang nga pansamok\n** Pan-abusar hin dirudilain nga mga akawnt\n** Diri makakarawat nga agnay-hit-gumaramit",
        "ipb-hardblock": "Pugnga an mga nakalog-in nga mga gumaramit tikang ha pagliwat ha dinhi nga IP address",
        "ipb-edit-dropdown": "Igliwat an mga rason han pagpugong",
        "ipb-unblock-addr": "\nTanggala an pagpugong $1",
        "ipb-unblock": "Tanggala an pagpugong ha uska aganay-hit-gumaramit o IP address",
+       "block-expiry": "Matitima an dulot:",
        "ipusubmit": "Tanggala ini nga pagpugong",
        "blocklist": "Mga gumaramit nga nakapugong",
        "ipblocklist": "Mga ginpugngan nga gumaramit",
index baedce7..acd02ed 100644 (file)
        "whatlinkshere-filters": "Seggukaay",
        "blockip": "Téyeb jëfandikukat",
        "ipaddressorusername": "Màkkaanu IP walla turu jëfandikukat:",
-       "ipbexpiry": "Diiru téye gi",
        "ipbreason": "Ngirte :",
        "ipbreason-dropdown": "* Ngirtey téye yi ëpp\n** Ag caay-caay\n** Dugalub xibaar yu dëgguwul\n** Farug ëmbitu ay xët\n** Dugalub lëkkalekaay ngir yëgle ay dal\n** Dugalub ëmbit yu amul-njariñ\n** Di jéem a xiixaan walla di xuloo ak nit ñi\n** Ëppal ci sosi sàq yu bari\n** Turu jëfandikukat buñu fi nanguwul",
        "ipbcreateaccount": "Tere sosug yeneeni sàq",
        "ipb-unblock": "Téyedi ab turu jëfandikukat walla ab màkkaanub IP",
        "ipb-blocklist": "Xool téye yi teew",
        "ipb-blocklist-contribs": "Cëru yu $1",
+       "block-expiry": "Diiru téye gi",
        "unblockip": "Téyedi jëfandikukat bi",
        "ipusubmit": "Far gii téye",
        "unblocked": "[[User:$1|$1]] dees koo téye",
index caa3c62..75a9e56 100644 (file)
        "customcssprotected": "איר האט נישט רשות צו רעדאַקטירן דעם CSS בלאַט, ווײַל ער אַנטהאַלט די פערזענלעכע באַשטימונגען פון אַן אַנדער באַניצער.",
        "customjsprotected": "איר האט נישט רשות צו רעדאַקטירן דעם JavaScript בלאַט, ווײַל ער אַנטהאַלט די פערזענלעכע באַשטימונגען פון אַן אַנדער באַניצער.",
        "mycustomcssprotected": "איר זענט נישט ערלויבט צו רעדאקטירן דעם CSS בלאט.",
+       "mycustomjsonprotected": "איר זענט נישט ערלויבט צו רעדאקטירן דעם JSON בלאט.",
        "mycustomjsprotected": "איר זענט נישט ערלויבט צו רעדאקטירן דעם JavaScript בלאט.",
        "myprivateinfoprotected": "איר האט נישט קיין דערלויבניש צו רעדאקטירן אייער פריוואטע אינפארמאציע.",
        "mypreferencesprotected": "איר האט נישט קיין דערלויבניש צו רעדאקטירן אייערע פרעפערענצן.",
        "passwordtooshort": "פאַסווערטער מוזן זײַן כאטש {{PLURAL:$1|איין כאַראַקטער|$1 כאַראַקטערס}}.",
        "passwordtoolong": "פאַסווערטער טארן נישט זיין לענגער וויי {{PLURAL:$1|איין כאַראַקטער|$1 כאַראַקטערס}}.",
        "passwordtoopopular": "ברייט געקליבענע פאסווערטער טאר מען נישט ניצן. זייט אזוי גוט און קלויבט אויס אן פאסווארט וואס איז שווער צו טרעפֿן.",
+       "passwordinlargeblacklist": "דאס איינגעגעבענע פאסווארט געפינט זיך אין א רשימה פון ברייט־באניצטע פאסווערטער. זייט אזוי גוט און קלויבט א מער אינדיווידועל פאסווארט.",
        "password-name-match": "אײַער פאַסווארט מוז זײַן אנדערש פון אײַער באַניצער נאָמען.",
        "password-login-forbidden": "באַניצן דעם נאָמען און שפּריכוואָרט איז פאַרבאָטן.",
        "mailmypassword": "צוריקשטעלן פאַסווארט",
        "editpage-invalidcontentmodel-text": "דער אינהאלט מאדעל \"$1\" איז נישט געשטיצט.",
        "editpage-notsupportedcontentformat-title": "אינהאלט־פארמאט נישט געשטיצט",
        "editpage-notsupportedcontentformat-text": "דער אינהאלט־פארמאט $1 ווערט ניט געשטיצט דורכן אינהאלט־מאדעל $2.",
+       "slot-name-main": "הויפט",
        "content-model-wikitext": "וויקיטעקסט",
        "content-model-text": "פשוטער טעקסט",
        "content-model-javascript": "JavaScript",
        "default": "גרונטלעך",
        "prefs-files": "טעקעס",
        "prefs-custom-css": "באַניצער דעפֿינירט CSS",
+       "prefs-custom-json": "באניצער־דעפינירט JSON",
        "prefs-custom-js": "באַניצער דעפֿינירט JS",
        "prefs-common-config": "שותפֿותדיקער CSS/JSON/JavaScript פֿאַר אַלע אויספֿארמירונגען:",
        "prefs-reset-intro": "איר קענט ניצן דעם בלאַט צוריקצושטעלן אײַערע פרעפֿערענצן גרונטלעך פֿאַרן ארט.\nמען קען דאָס נישט אַנולירן.",
        "prefs-advancedwatchlist": "פֿארגעשריטענע אפציעס",
        "prefs-displayrc": "ווײַזן אפציעס",
        "prefs-displaywatchlist": "ווײַזן אפציעס",
+       "prefs-changesrc": "באוויזענע ענדערונגען",
        "prefs-tokenwatchlist": "טאקן",
        "prefs-diffs": "צווישנשיידן",
        "prefs-help-prefershttps": "דער פרעפערענץ וועט ארבעטן ביי אײַער נעקסטער ארײַנלאגירונג.",
        "grant-delete": "אויסמעקן בלעטער, ווערסיעס און לאגבוך פרטים",
        "grant-editinterface": "רעדאקטירן דעם מעדיעוויקי נאמענטייל און וויקיווייט/באניצער JSON",
        "grant-editmycssjs": "רעדאקטירן אייער באניצער CSS/JSON/JavaScript",
-       "grant-editmyoptions": "רעדאקטירן אײַערע באניצער פרעפֿערענצן",
+       "grant-editmyoptions": "רעדאקטירן אײַערע באניצער פרעפֿערענצן און JSON קאנפֿיגוראציע",
        "grant-editmywatchlist": "רעדאקטירן אײַער אויפֿפאסונג ליסטע",
        "grant-editpage": "רעדאקטירן עקזיסטירנדע בלעטער",
        "grant-editprotected": "רעדאקטירן געשיצטע בלעטער",
        "rcfilters-activefilters-show": "ווייזן",
        "rcfilters-advancedfilters": "פֿארגעשריטענע פֿילטערס",
        "rcfilters-limit-title": "רעזולטאטן צו ווייזן",
+       "rcfilters-limit-and-date-label": "$1 {{PLURAL:$1|ענדערונג|ענדערונגען}}, $2",
        "rcfilters-days-title": "לעצטיקע טעג",
        "rcfilters-hours-title": "לעצטיקע שעה׳ן",
        "rcfilters-days-show-days": "$1 {{PLURAL:$1|טאג|טעג}}",
        "rcfilters-filter-minor-label": "מינערדיקע רעדאַקטירונגען",
        "rcfilters-filter-minor-description": "רעדאקטירונגען וואס דער שרייבער האט מארקירט פֿארמינערט.",
        "rcfilters-filter-watchlist-watched-label": "אויף דער אויפֿפאַסונג ליסטע",
+       "rcfilters-filter-watchlist-watchednew-label": "נייע אויפֿפאסונג־ליסטע ענדערונגען",
        "rcfilters-filter-watchlist-notwatched-label": "נישט אויף דער אויפֿפאַסונג ליסטע",
        "rcfilters-filter-watchlistactivity-seen-label": "געזעענע ענדערונגען",
        "rcfilters-filtergroup-changetype": "טיפ ענדערונג",
        "uploadstash-errclear": "אוועקנעמען די טעקעס דורכגעפאלן.",
        "uploadstash-refresh": "דערפֿרישן די רשימה פון טעקעס",
        "uploadstash-thumbnail": "באקוקן קליינבילד",
+       "uploadstash-zero-length": "טעקע האט נול גרייס.",
        "invalid-chunk-offset": "אומגילטיקער סטארטפונקט",
        "img-auth-accessdenied": "צוטריט אָפגעזאָגט",
        "img-auth-notindir": "געשיכטעס שטעג איז נישט אין דער קאנפיגורטער ארויפלאד־דירעקטאריע.",
        "booksources-search": "זוכן",
        "booksources-text": "אונטן איז א ליסטע פון סייטס וואס פֿארקויפֿן נייע און גענוצטע ביכער און האבן אויך נאך אינפֿארמאציע וועגן די ביכער וואס איר זוכט:",
        "booksources-invalid-isbn": "דאָס געגעבענע ISBN זעט נישט אויס צו זיין גילטיק; קאנטראלירט פֿאַר גרײַזן בײַם קאפּירן פון דעם ערשטיקן מקור.",
+       "magiclink-tracking-rfc": "בלעטער וואס ניצן מאגישע RFC-לינקען",
+       "magiclink-tracking-pmid": "בלעטער וואס ניצן מאגישע PMID-לינקען",
+       "magiclink-tracking-isbn": "בלעטער וואס ניצן מאגישע ISBN-לינקען",
        "specialloguserlabel": "אויספֿירער:",
        "speciallogtitlelabel": "ציל (טיטל אדער {{ns:user}}:באניצער־נאמען פאר א באניצער):",
        "log": "לאגביכער",
        "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\nאייער פֿריינטליכע  {{SITENAME}} מעלדונגען סיסטעם\n\n--\nצו ענדערן אייער ע־פאסט נאטיפיקאציע שטעלונגען, באזוכט\n{{canonicalurl:{{#special:Preferences}}}}\n\nצו ענדערן אייער אויפֿפאסונג ליסטע, באזוכט\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nכדי אויסמעקן דעם בלאט פון אײַער אויפֿפאַסונג ליסטע, באַזוכט\n$UNWATCHURL\n\nפאר מער הילף:\n$HELPPAGE",
+       "enotif_minoredit": "דאָס איז אַ מינערדיקע רעדאַקטירונג",
        "created": "געשאַפֿן",
        "changed": "געטוישט",
        "deletepage": "מעק אויס בלאט",
        "dellogpage": "אויסמעקונג לאג",
        "dellogpagetext": "ווייטער איז א ליסטע פון די מערסט לעצטיגע אויסמעקונגען.",
        "deletionlog": "אויסמעקונג לאג",
+       "log-name-create": "בלאַט־שאַפֿונג לאגבוך",
        "reverted": "צוריקגעשטעלט צו פֿריערדיקער באַאַרבעטונג",
        "deletecomment": "אורזאַך:",
        "deleteotherreason": "אנדער/נאך אן אורזאך:",
        "blockip": "בלאקירן {{GENDER:$1|באַניצער}}",
        "blockiptext": "באניצט די פארעם דא אונטן כדי צו בלאקירן שרײַבן רעכטן פֿון איינגעשריבענע באניצער אדער סתם ספעציפישע איי פי אדרעסן.\n\nאזאלכע בלאקירונגען מוזן דורכגעפירט ווערן בלויז צו פֿאַרמײַדן וואַנדאַליזם, און לויט די [[{{MediaWiki:Policy-url}}|פארשריפטן און פאליסיס]].\n\nביטע שרײַבט ארויס קלאָר די ספעציפֿישע סיבה (למשל, ציטירן וועלכע בלעטער מ'האט וואַנדאַליזירט).\n\nאיר קענט בלאקירן IP אפשטאנדן מיטן [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] סינטאקס; דער גרעסטער דערלויבטער אפשטאנד איז /$1 פאר IPv4 און /$2 פאר IPv6.",
        "ipaddressorusername": "IP אדרעס אדער באַניצער נאמען:",
-       "ipbexpiry": "אויסגיין:",
        "ipbreason": "אורזאַך:",
        "ipbreason-dropdown": "* פֿארשפרייטע בלאקירן סיבות\n** ארײַנלייגן פֿאלשע אינפֿארמאציע\n** אויסמעקן אינהאַלט פֿון בלעטער\n** פֿארפֿלייצן לינקען צו דרויסנדיקע ערטער\n** ארײַנלייגן שטותים/טאָטעריש אין בלעטער\n** סטראשעט און שטערט\n** קרומבאניצן מערערע קאנטעס\n** באַניצער נאָמען פראבלעמאַטיש",
        "ipb-hardblock": "פארמיידן אריינלאגירטע באניצער פון רעדאקטירן פון דעם IP־אדרעס",
        "ipbcreateaccount": "פֿאַרמײַדן שאַפֿן קאנטעס",
        "ipbemailban": "פֿארמײַדן באַניצער פון שיקן ע־פאסט",
-       "ipbenableautoblock": "אויטאמאַטיש בלאקירן דעם לעצטן IP אַדרעס פֿ\nפֿון דעם באַניצער, און אַבי וועלכן IP אַדרעס ער פרובירט צו ניצן",
+       "ipbenableautoblock": "אויטאמאַטיש בלאקירן דעם לעצטן IP אַדרעס פֿון דעם באַניצער, און אַבי וועלכן IP אַדרעס ער פרובירט צו ניצן",
        "ipbsubmit": "בלאקירן דעם באַניצער",
        "ipbother": "אַנדער צײַט",
        "ipboptions": "2 שעהן:2 hours,\n1 טאָג:1 day,\n3 טעג:3 days,\n1 װאָך:1 week,\n2 װאָכן:2 weeks,\n1 מאָנאַט:1 month,\n3 מאָנאַטן:3 months,\n6 מאָנאַטן:6 months,\n1 יאָר:1 year,\nאויף אייביק:infinite",
        "ipb-disableusertalk": "פארמײַדן דעם באניצער פון רעדאקטירן זײַן אייגענעם רעדן בלאט בשעת ער איז בלאקירט",
        "ipb-change-block": "ווידער-בלאקירן דעם באניצער מיט די דאזיקע אײַנשטעלונגען",
        "ipb-confirm": "באַשטעטיקן בלאָק",
+       "ipb-partial": "טיילווײַז",
+       "ipb-pages-label": "בלעטער",
        "badipaddress": "נישט קיין גוטער IP אַדרעס.",
        "blockipsuccesssub": "בלאק איז דורכגפירט מיט דערפֿאלג",
        "blockipsuccesstext": "באַניצער [[Special:Contributions/$1|$1]] <br />איז פֿאַרשפאַרט.\nזעט די [[Special:BlockList|ליסטע פון בלאקירטע באַניצער]] כדי צו זען די בלאקירונגען.",
        "ipb-blocklist": "זעט עקזיסטירנדע בלאקירונגען",
        "ipb-blocklist-contribs": "בײַשטײַערונגען פֿון {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "נאך $1",
+       "block-expiry": "אויסגיין:",
        "unblockip": "אויפֿבלאקירן באניצער",
        "unblockiptext": "מיט דעם פארמולאר קענט איר צוריקשטעלן שרייבן ערלויבניש צו אן IP אדרעס אדער באניצער נאמען וואס איז געווען בלאקירט.",
        "ipusubmit": "אוועקנעמען דעם בלאק",
        "createaccountblock": "קאנטע באשאפֿן בלאקירט",
        "emailblock": "בליצפאסט בלאקירט",
        "blocklist-nousertalk": "קען נישט רעדאַקטירן דעם אייגענעם רעדן בלאַט",
+       "blocklist-editing": "רעדאקטירן",
        "ipblocklist-empty": "בלאקירן ליסטע איז  ליידיג.",
        "ipblocklist-no-results": "דער געזוכטער IP אַדרעס אָדער באַניצער נאמען איז ניט פֿאַרשפאַרט.",
        "blocklink": "ארויסטרייבן",
        "import-mapping-namespace": "אימפארטירן צו נאמענטייל:",
        "import-mapping-subpage": "אימפארטירן ווי אונטערבלעטער פונעם פאלגנדן בלאט:",
        "import-upload-filename": "טעקע נאמען:",
+       "import-upload-username-prefix": "צווישן־וויקי פרעפֿיקס:",
        "import-comment": "הערה:",
        "importtext": "ביטע עקספארטירט די טעקע פון דער מקור וויקי ניצנדיג דאס [[Special:Export|עקספארט הילפמיטל]], שפייכלט אײַן אויף אײַער קאמפיוטער און לאדט אַרויף דא.",
        "importstart": "אימפארטירט בלעטער…",
        "pageinfo-display-title": "געוויזענע קעפל",
        "pageinfo-default-sort": "גרונט סארטירן שליסל",
        "pageinfo-length": "בלאט לענג (אין בייטן)",
+       "pageinfo-namespace": "נאָמענטייל",
        "pageinfo-article-id": "בלאט נומער",
        "pageinfo-language": "בלאט אינהאלט שפראך",
        "pageinfo-language-change": "ענדערן",
        "pageinfo-category-pages": "צאָל בלעטער",
        "pageinfo-category-subcats": "צאָל אונטערקאטעגאריעס",
        "pageinfo-category-files": "צאָל טעקעס",
+       "pageinfo-user-id": "באַניצער־נומער",
        "markaspatrolleddiff": "באצייכענען אלס פאטראלירט",
        "markaspatrolledtext": "באצייכענען בלאט אלס פאטראלירט",
        "markedaspatrolled": "באצייכנט אלס פאטראלירט",
index 356ffe2..7b04d18 100644 (file)
        "blockip": "Dínà oníṣe",
        "blockiptext": "Ẹ lo fọ́ọ̀mù ìsàlẹ̀ láti dínà ìle kọ láti ọ̀dọ̀ àdírẹ́ẹ̀sì IP pàtó kan tàbí orúkọ oníṣe.\nẸyí gbọ́dọ̀ jẹ́ síṣe láti dínà ìṣèbàjẹ́ nìkan, àtí gẹ́gẹ́bí [[{{MediaWiki:Policy-url}}|ètò ìsiṣẹ́]].\nẸ sọ ìdí pàtó nísàlẹ̀ (fún àpẹrẹ, ìtọ́kasí àwọn ojúewé pàtó tí wọ́n jẹ́ bíbàjẹ́).",
        "ipaddressorusername": "Àdírẹ́ẹ̀sì IP tàbí orúkọ oníṣe:",
-       "ipbexpiry": "Ìwásópin:",
        "ipbreason": "Ìdíẹ̀:",
        "ipbreason-dropdown": "*Àwọn ìdí fún ìdínà\n** Àròyé tí kò jẹ́ òtítọ́\n** Yíyọ àkóónú kúrò nínú ojúewé\n** Kíkọ àjápọ̀ sí àwọn ibi tí kò ní ìbámu mọ́ ojúewé\n** Ìkọkúkọ sínú ojúewé\n** Iwùwà ìpayà sí ẹlòmíràn\n** Ìlòkulò ọ̀pọ̀lọpọ̀ àpamọ́\n** Lílo orúkọ oníṣe tí kò tọ́",
        "ipb-hardblock": "Ìdínà àwọn oníṣe agbàwọlé láti ṣàtúnṣe láti ibi àdírẹ́ẹ̀sì IP yìí",
        "ipb-blocklist": "Ìwo àwọn ìdínà tó wà",
        "ipb-blocklist-contribs": "Àwọn àfikún fún $1",
        "ipb-blocklist-duration-left": "$1 lókù",
+       "block-expiry": "Ìwásópin:",
        "unblockip": "Ìmúkúrò ìdínà oníṣe",
        "unblockiptext": "Lo fọ́ọ́mù ìsàlẹ̀ láti dá ẹ̀tọ́ ìkọ padà fún àdírẹ́ẹ̀sì IP tàbí orúkọ oníṣe dídílọ́nà tẹ́lẹ̀.",
        "ipusubmit": "Ìmúkúrò ìdínà yìí",
index 9ec2ace..0b73212 100644 (file)
        "rcfilters-other-review-tools": "第啲檢閱架撐",
        "rcfilters-group-results-by-page": "將相同頁面嘅結果夾埋",
        "rcfilters-activefilters": "用緊嘅篩選條件",
-       "rcfilters-activefilters-hide": "隱藏",
+       "rcfilters-activefilters-hide": "收埋",
        "rcfilters-activefilters-show": "顯示",
        "rcfilters-advancedfilters": "進階嘅篩選條件",
        "rcfilters-limit-title": "顯示幾多結果",
        "rcfilters-filter-humans-description": "真人做嘅編輯",
        "rcfilters-filtergroup-reviewstatus": "巡查狀態",
        "rcfilters-filter-reviewstatus-unpatrolled-label": "未巡查",
-       "rcfilters-filter-reviewstatus-auto-label": "已經自動巡查咗",
+       "rcfilters-filter-reviewstatus-auto-label": "自動巡查咗",
        "rcfilters-filtergroup-significance": "顯著度",
        "rcfilters-filter-minor-label": "細編輯",
        "rcfilters-filter-minor-description": "作者話程度細嘅修改。",
        "recentchanges-page-added-to-category": "[[:$1]] 加咗落分類",
        "recentchanges-page-added-to-category-bundled": "[[:$1]] 同另外 [[Special:WhatLinksHere/$1|一版比其他版包含咗]]",
        "recentchanges-page-removed-from-category": "[[:$1]] 移出呢類",
-       "recentchanges-page-removed-from-category-bundled": "$1[[:$1]] 同另外 [[Special:WhatLinksHere/$1|伊一版比其他版包含咗]] 響分類到拎走左",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]]移出分類,[[Special:WhatLinksHere/$1|呢版有嵌入其他版]]",
        "autochange-username": "MediaWiki 自動改動",
        "upload": "上載檔案",
        "uploadbtn": "上載檔案",
        "sp-contributions-newbies-title": "新戶口嘅用戶貢獻",
        "sp-contributions-blocklog": "封鎖日誌",
        "sp-contributions-suppresslog": "壓制咗{{GENDER:$1|user}}嘅用戶貢獻",
-       "sp-contributions-deleted": "用戶{{GENDER:$1|user}}嘅貢獻已經刪除咗",
+       "sp-contributions-deleted": "刪除咗嘅用戶貢獻",
        "sp-contributions-uploads": "上載",
        "sp-contributions-logs": "日誌",
        "sp-contributions-talk": "傾偈",
-       "sp-contributions-userrights": "{{GENDER:$1|user}}用戶權限管理",
+       "sp-contributions-userrights": "用戶權限管理",
        "sp-contributions-blocked-notice": "呢位用戶現時封鎖緊。\n最近嘅封鎖日誌項目響下面提供以便參考:",
        "sp-contributions-blocked-notice-anon": "呢個IP地址現時封鎖緊。\n最近嘅封鎖日誌項目響下面提供以便參考:",
        "sp-contributions-search": "搵貢獻",
        "blockip": "封鎖{{GENDER:$1|用戶}}",
        "blockiptext": "使用以下嘅表格嚟去阻止指定嘅IP地址或用戶名嘅寫權限。\n僅當僅當為咗避免有版畀人惡意破壞嘅時候先可以使用,而且唔可以違反[[{{MediaWiki:Policy-url}}|政策]]。\n喺下面填寫阻止嘅確切原因(比如:引用咗某啲已經破壞咗嘅頁面)。\n你可以用[https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]語法格式封鎖 IP 範圍,IPv4最大容許範圍係 /$1,IPv6就係 /$2。",
        "ipaddressorusername": "IP地址或用戶名:",
-       "ipbexpiry": "期限:",
        "ipbreason": "原因:",
        "ipbreason-dropdown": "*共用封鎖原因\n** 插入錯嘅資料\n** 響頁面度拎走\n** 亂加入外部連結\n** 響頁度加入冇意義嘅嘢\n** 嚇人/騷擾\n** 濫用多個戶口\n** 唔能夠接受嘅用戶名",
        "ipb-hardblock": "唔畀簽到用戶用呢個IP位址去改文",
        "ipb-confirm": "確認封鎖",
        "ipb-sitewide": "全站",
        "ipb-partial": "部分",
-       "ipb-type-label": "類型",
        "ipb-pages-label": "版",
        "badipaddress": "無效嘅IP地址",
        "blockipsuccesssub": "封鎖成功",
        "ipb-blocklist": "去睇現時嘅封鎖",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}}嘅貢獻",
        "ipb-blocklist-duration-left": "淨返 $1",
+       "block-expiry": "期限:",
        "unblockip": "解封用戶",
        "unblockiptext": "使用以下表格恢復之前阻止嘅某個IP地址或者某個用戶名嘅寫權限。",
        "ipusubmit": "拎走呢個封鎖",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|傾偈]])",
        "timezone-local": "本地",
        "duplicate-defaultsort": "警告: 預設嘅排序鍵 \"$2\" 覆蓋之前嘅預設排序鍵 \"$1\"。",
+       "restricted-displaytitle": "<strong>警告:</strong>顯示標題「$1」已經忽略自從同嗰版嘅實際標題唔相等。",
        "version": "版本",
        "version-extensions": "裝咗嘅擴展",
        "version-skins": "裝咗嘅畫面",
index 30ef496..7c2c200 100644 (file)
        "accmailtext": "为[[User talk:$1|$1]]随机生成的密码已送至$2。登录后可以在<em>[[Special:ChangePassword|更改密码]]</em>页面中修改。",
        "newarticle": "(新页面)",
        "newarticletext": "您点击了一个尚不存在的页面的链接。要创建该页面,请在下面的编辑框中输入内容(更多信息请见[$1 帮助页面])。如果您是错误地进入了此页面,请点击您的浏览器的<strong>返回</strong>按钮。",
-       "anontalkpagetext": "----\n<em>这是一个还未建立账户的匿名用户的讨论页, 因此我们只能用IP地址来与他或她联络。</em>该IP地址可能由几名用户共享。如果您是一名匿名用户并认为此页上的评语与您无关,请[[Special:CreateAccount|创建新账户]]或[[Special:UserLogin|登录]]以避免在未来与其他匿名用户混淆。",
+       "anontalkpagetext": "----\n<em>这是一个还未建立账户的匿名用户的讨论页, 因此我们只能用IP地址来与他联络。</em>该IP地址可能由几名用户共享。如果您是一名匿名用户并认为此页上的评语与您无关,请[[Special:CreateAccount|创建新账户]]或[[Special:UserLogin|登录]]以避免在未来与其他匿名用户混淆。",
        "noarticletext": "本页面目前没有内容。您可以在其他页面中[[Special:Search/{{PAGENAME}}|搜索本页标题]]、<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜索相关日志]或[{{fullurl:{{FULLPAGENAME}}|action=edit}} 创建本页面]</span>。",
        "noarticletext-nopermission": "本页面目前没有内容。您可以在其他页面中[[Special:Search/{{PAGENAME}}|搜索本页标题]]或<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜索相关日志]</span>,但您没有权限创建本页面。",
        "missing-revision": "“{{FULLPAGENAME}}”的版本#$1不存在。\n\n这通常是因为进入了一个已被删除的页面的历史链接。\n详细信息可以在[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]中找到。",
        "edit-gone-missing": "不能更新页面。\n它可能刚刚被删除。",
        "edit-conflict": "编辑冲突。",
        "edit-no-change": "因为没有文字更改,您的编辑已被忽略。",
+       "edit-slots-cannot-add": "下列{{PLURAL:$1|栏位|栏位}}在此不受支持:$2。",
+       "edit-slots-cannot-remove": "下列{{PLURAL:$1|栏位|栏位}}是必需的且无法被移除:$2。",
        "postedit-confirmation-created": "页面已创建。",
        "postedit-confirmation-restored": "页面已恢复。",
        "postedit-confirmation-saved": "您的编辑已保存。",
        "blockip": "封禁{{GENDER:$1|用户}}",
        "blockiptext": "使用下方的表单来禁止来自特定IP地址或用户名的写访问。\n只有在为了防止破坏,并符合[[{{MediaWiki:Policy-url}}|方针]]的情况下才可采取此行动。\n请在下面输入一个具体的理由(例如引述一个被破坏的页面)。\n您可以使用[https://zh.wikipedia.org/wiki/无类别域间路由 CIDR]语法封禁IP地址段;允许的最大段是/$1(用于IPv4)和/$2(用于IPv6)。",
        "ipaddressorusername": "IP地址或用户名:",
-       "ipbexpiry": "终止时间:",
        "ipbreason": "原因:",
        "ipbreason-dropdown": "*常见封禁原因\n** 插入虚假信息\n** 移除页面内容\n** 添加垃圾外部链接\n** 插入无意义文字\n** 恐吓行为/骚扰\n** 滥用多个账户\n** 不能接受的用户名",
        "ipb-hardblock": "阻止登录用户使用该IP地址编辑",
        "ipb-blocklist": "查看现有封禁",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}}的贡献",
        "ipb-blocklist-duration-left": "剩余$1",
+       "block-expiry": "终止时间:",
        "unblockip": "解封用户",
        "unblockiptext": "使用下列表单来恢复之前被封禁的IP地址或用户名的写权限。",
        "ipusubmit": "解除此封禁",
index 173edd3..120a650 100644 (file)
        "userlogin-reauth": "您必須再登入一次來驗証您為 {{GENDER:$1|$1}}。",
        "userlogin-createanother": "建立另一個帳號",
        "createacct-emailrequired": "電子郵件地址",
-       "createacct-emailoptional": "電子郵件地址 (選填)",
+       "createacct-emailoptional": "電子郵件地址(選填)",
        "createacct-email-ph": "輸入您的電子郵件地址",
        "createacct-another-email-ph": "輸入電子郵件地址",
        "createaccountmail": "使用臨時的隨機密碼,並將它寄至指定的電子郵件地址",
        "resetpass-abort-generic": "擴充套件已中止了變更密碼的操作。",
        "resetpass-expired": "您的密碼已過期。請設定一個新的密碼以登入。",
        "resetpass-expired-soft": "您的密碼已過期,需要作出更改。請現在設定您的新密碼,或點選 \"{{int:authprovider-resetpass-skip-label}}\" 來事後更改。",
+       "resetpass-validity": "您的密碼無效:$1\n\n請設定新密碼來登入。",
        "resetpass-validity-soft": "您的密碼無效:$1 \n\n請現在設定您的新密碼,或點選 \"{{int:authprovider-resetpass-skip-label}}\" 來事後更改。",
        "passwordreset": "重新設定密碼",
        "passwordreset-text-one": "完成此表單,透過電子郵件傳送臨時密碼以重新設定您的密碼。",
        "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|偏好設定]] 中設定了一個有效的電子郵件地址,且尚未被封鎖郵件功能,則您可透過 \"{{int:emailuser}}\" 的功能來聯絡相關管理員。\n您目前的 IP 位址是 $3,此次封鎖的 ID 為 #$5。\n請您在詢問時附註以上詳細訊息。",
        "autoblockedtext": "因先前的另一位使用者被 $1 封鎖,您的 IP 位址已被自動封鎖。\n原因是:\n\n:<em>$2</em>\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 相關封鎖對象:$7\n\n您可以聯絡 $1 或其他的 [[{{MediaWiki:Grouppage-sysop}}|管理員]] 討論封鎖的相關問題。\n若您已在 [[Special:Preferences|偏好設定]] 中設定了一個有效的電子郵件地址,且尚未被封鎖郵件功能,則您可透過 \"{{int:emailuser}}\" 的功能來聯絡相關管理員。\n您目前的 IP 位址是 $3,此次封鎖的 ID 為 #$5。\n請您在詢問時附註以上詳細資料。",
        "systemblockedtext": "您的使用者名稱或 IP 位址已被 MediaWiki 自動封鎖,原因如下:\n\n:<em>$2</em>\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 被封鎖的使用者:$7\n\n您目前的 IP 位址為 $3。\n請在做詢問時附上以上資訊。",
+       "actionblockedtext": "您已被禁止執行此操作。",
        "blockednoreason": "未說明原因",
        "whitelistedittext": "請先 $1 才可編輯頁面。",
        "confirmedittext": "在編輯此頁之前您必須確認您的電子郵件地址。\n請透過 [[Special:Preferences|偏好設定]] 設定並驗證您的電子郵件地址。",
        "blockip": "封鎖{{GENDER:$1|使用者}}",
        "blockiptext": "填寫以下表單可封鎖特定 IP 位址或使用者的編輯權限。\n只有為了防止破壞,並符合[[{{MediaWiki:Policy-url}}|方針或政策]]的情況下方可採取此行動。\n請在下方填寫一個具體的原因(例如:引述一個被破壞的頁面)。\n您可以使用[//zh.wikipedia.org/wiki/无类别域间路由 CIDR]語法格式封鎖 IP 範圍,最大允許的範圍 IPv4 為 /$1、IPv6 為 /$2。",
        "ipaddressorusername": "IP 位址或使用者名稱:",
-       "ipbexpiry": "期限:",
        "ipbreason": "原因:",
        "ipbreason-dropdown": "*常見的封鎖原因\n** 填寫不實資訊\n** 刪除頁面內容\n** 散佈外部廣告連結\n** 在頁面填寫無意義文字\n** 無禮的行為、攻擊/騷擾別人\n** 濫用多個帳號\n** 使用不受歡迎的使用者名稱",
        "ipb-hardblock": "禁止使用此 IP 位址登入的使用者編輯",
-       "ipbcreateaccount": "防止建立新帳號",
-       "ipbemailban": "禁止使用者傳送電子郵件",
+       "ipbcreateaccount": "帳號建立",
+       "ipbemailban": "傳送電子郵件",
        "ipbenableautoblock": "自動封鎖此使用者最後使用的 IP 位址,以及所有之後嘗試編輯使用的 IP 位址",
        "ipbsubmit": "封鎖此使用者",
        "ipbother": "其他時間:",
        "ipboptions": "2 小時:2 hours,1 天:1 day,3 天:3 days,1 週:1 week,2 週:2 weeks,1 個月:1 month,3 個月:3 months,6 個月:6 months,1 年:1 year,無限期:infinite",
        "ipbhidename": "在編輯及清單中隱藏使用者名稱",
        "ipbwatchuser": "監視這位使用者的使用者頁面及其對話頁面",
-       "ipb-disableusertalk": "ç¦\81止使ç\94¨è\80\85å\9c¨å°\81é\8e\96æ\9c\9fé\96\93編輯è\87ªå·±ç\9a\84å°\8d話é \81é\9d¢",
+       "ipb-disableusertalk": "編輯自己的對話頁面",
        "ipb-change-block": "使用現有設定重新封鎖使用者",
        "ipb-confirm": "確認封鎖",
        "ipb-sitewide": "站台範圍",
        "ipb-partial": "部分",
-       "ipb-type-label": "類型",
        "ipb-pages-label": "頁面",
        "badipaddress": "無效的 IP 位址",
        "blockipsuccesssub": "封鎖成功",
        "ipb-blocklist": "檢視目前的封鎖",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} 的貢獻",
        "ipb-blocklist-duration-left": "剩下 $1",
+       "block-actions": "封鎖的操作:",
+       "block-expiry": "期限:",
+       "block-options": "額外選項:",
+       "block-prevent-edit": "編輯",
+       "block-reason": "原因:",
+       "block-target": "使用者名稱或 IP 位址:",
        "unblockip": "解除封鎖使用者",
        "unblockiptext": "使用以下表單以還原之前被封鎖的 IP 位址或使用者名稱的寫入權限。",
        "ipusubmit": "移除此封鎖",
        "thumbnail_image-failure-limit": "最近顯示此縮圖已發生太多次失敗 ($1 次或更多),請稍後再試。",
        "import": "匯入頁面",
        "importinterwiki": "從其他 wiki 匯入",
-       "import-interwiki-text": "請選擇一個 Wiki 與頁面標題以進行匯入。\n會同時記錄修訂日期和編輯者的名稱。\n所有的從跨 Wiki 匯入操作都會被記錄在 [[Special:Log/import|匯入日誌]]。",
+       "import-interwiki-text": "請選擇一個 Wiki 與頁面標題以進行匯入,會同時記錄修訂日期和編輯者的名稱,所有的從跨 Wiki 匯入操作都會被記錄在[[Special:Log/import|匯入日誌]]。",
        "import-interwiki-sourcewiki": "原始 wiki:",
        "import-interwiki-sourcepage": "來源頁面:",
        "import-interwiki-history": "複製此頁面的所有歷史修訂",
        "specialpages-group-developer": "開發人員工具",
        "blankpage": "空白頁面",
        "intentionallyblankpage": "此頁故意留白。",
+       "disabledspecialpage-disabled": "此頁面已被系統管理員給停用。",
        "external_image_whitelist": " #請勿修改本行文字<pre>\n#請於下方填寫正規表示法 (只需 // 之間的內容)\n#將會檢查外部連結的圖片是否符合這些條件\n#符合條件的連結會以圖片顯示,否則只顯示連結\n#以 # 開頭的行會被做為註解\n#此條件不區分大小寫\n\n#請將所有正規表示法輸入在此行上方,請勿修改本行文字</pre>",
        "tags": "有效變更標籤",
        "tag-filter": "[[Special:Tags|標籤]]搜尋:",
        "tags-update-blocked": "您無法在{{GENDER:$1|您}}被封鎖的情況下移除變更標籤。",
        "tags-update-add-not-allowed-one": "不允許手動加入標籤 \"$1\"。",
        "tags-update-add-not-allowed-multi": "不允許手動加入以下{{PLURAL:$2|標籤|標籤}}:$1",
-       "tags-update-remove-not-allowed-one": "不允許手動移除標籤 \"$1\"。",
+       "tags-update-remove-not-allowed-one": "不允許手動移除標籤「$1」。",
        "tags-update-remove-not-allowed-multi": "不允許手動移除以下{{PLURAL:$2|標籤|標籤}}:$1",
        "tags-edit-title": "編輯標籤",
        "tags-edit-manage-link": "管理標籤",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|已停用}}標籤 \"$4\" 供使用者與機器人使用",
        "log-name-tag": "標籤日誌",
        "log-description-tag": "當使用者自各別修訂或日誌項目加入或移除[[Special:Tags|標籤]]時會顯示於此頁面。 此日誌並不會列出當時對標籤所做的編輯、刪除或類似的動作。",
-       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|已新增}}{{PLURAL:$7|標籤|標籤}} $6 至頁面 $3 的修訂版本 $4。",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|已新增}}{{PLURAL:$7|標籤|標籤}} $6 至頁面 $3 的修訂 $4。",
        "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|已新增}}{{PLURAL:$7|標籤|標籤}} $6 至頁面 $3 的日誌項目 $5。",
        "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|已移除}}{{PLURAL:$9|標籤|標籤}} $8 自頁面 $3 的修訂 $4。",
        "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|已移除}}{{PLURAL:$9|標籤|標籤}} $8 自日誌項目 $3 的修訂 $5。",
index d7a7cc8..0971005 100644 (file)
@@ -23,8 +23,8 @@ $namespaceNames = [
        NS_FILE_TALK        => 'फायल_चर्चा',
        NS_MEDIAWIKI        => 'मिडियाविकी',
        NS_MEDIAWIKI_TALK   => 'मिडियाविकी_चर्चा',
-       NS_TEMPLATE         => 'पà¥\8dरारà¥\82प',
-       NS_TEMPLATE_TALK    => 'पà¥\8dरारà¥\82प_चर्चा',
+       NS_TEMPLATE         => 'साà¤\82à¤\9aà¥\8b',
+       NS_TEMPLATE_TALK    => 'साà¤\82à¤\9aà¥\8b_चर्चा',
        NS_HELP             => 'आदार',
        NS_HELP_TALK        => 'आदार_चर्चा',
        NS_CATEGORY         => 'वर्ग',
@@ -38,5 +38,7 @@ $namespaceAliases = [
        'श्रेणी_चर्चा' => NS_CATEGORY_TALK,
        'मिडिया' => NS_MEDIA,
        'उपेगकर्तो' => NS_USER,
-       'उपेगकर्तो_चर्चा' => NS_USER_TALK
+       'उपेगकर्तो_चर्चा' => NS_USER_TALK,
+       'प्रारूप' => NS_TEMPLATE,
+       'प्रारूप_चर्चा' => NS_TEMPLATE_TALK,
 ];
index 9dbb838..20fdc2c 100644 (file)
@@ -27,3 +27,16 @@ $namespaceNames = [
        NS_CATEGORY         => 'ᱛᱷᱚᱠ',
        NS_CATEGORY_TALK    => 'ᱛᱷᱚᱠ_ᱜᱟᱞᱢᱟᱨᱟᱣ',
 ];
+
+$digitTransformTable = [
+       '0' => '᱐',
+       '1' => '᱑',
+       '2' => '᱒',
+       '3' => '᱓',
+       '4' => '᱔',
+       '5' => '᱕',
+       '6' => '᱖',
+       '7' => '᱗',
+       '8' => '᱘',
+       '9' => '᱙',
+];
index 24ab3d2..93614e0 100644 (file)
@@ -112,9 +112,16 @@ class CreateAndPromote extends Maintenance {
                }
 
                if ( !$exists ) {
-                       # Insert the account into the database
-                       $user->addToDatabase();
-                       $user->saveSettings();
+                       // Create the user via AuthManager as there may be various side
+                       // effects that are perfomed by the configured AuthManager chain.
+                       $status = MediaWiki\Auth\AuthManager::singleton()->autoCreateUser(
+                               $user,
+                               MediaWiki\Auth\AuthManager::AUTOCREATE_SOURCE_MAINT,
+                               false
+                       );
+                       if ( !$status->isGood() ) {
+                               $this->fatalError( $status->getWikiText( null, null, 'en' ) );
+                       }
                }
 
                if ( $password ) {
index ebb1f26..ed7a762 100644 (file)
@@ -5,12 +5,12 @@
  *
  * This script assumes that:
  * - hooks names in hooks.txt are at the beginning of a line and single quoted.
- * - hooks names in code are the first parameter of wfRunHooks.
+ * - hooks names in code are the first parameter of Hooks::run.
  *
  * if --online option is passed, the script will compare the hooks in the code
  * with the ones at https://www.mediawiki.org/wiki/Manual:Hooks
  *
- * Any instance of wfRunHooks that doesn't meet these parameters will be noted.
+ * Any instance of Hooks::run that doesn't meet these requirements will be noted.
  *
  * Copyright © Antoine Musso
  *
@@ -245,7 +245,7 @@ class FindHooks extends Maintenance {
                $m = [];
                preg_match_all(
                        // All functions which runs hooks
-                       '/(?:wfRunHooks|Hooks\:\:run|Hooks\:\:runWithoutAbort)\s*\(\s*' .
+                       '/(?:Hooks\:\:run|Hooks\:\:runWithoutAbort)\s*\(\s*' .
                                // First argument is the hook name as string
                                '([\'"])(.*?)\1' .
                                // Comma for second argument
@@ -287,13 +287,12 @@ class FindHooks extends Maintenance {
        /**
         * Get bad hooks (where the hook name could not be determined) from a PHP file
         * @param string $filePath Full filename to the PHP file.
-        * @return array Array of bad wfRunHooks() lines
+        * @return array Array of source code lines
         */
        private function getBadHooksFromFile( $filePath ) {
                $content = file_get_contents( $filePath );
                $m = [];
-               // We want to skip the "function wfRunHooks()" one.  :)
-               preg_match_all( '/(?<!function )wfRunHooks\(\s*[^\s\'"].*/', $content, $m );
+               preg_match_all( '/(?:Hooks\:\:run|Hooks\:\:runWithoutAbort)\(\s*[^\s\'"].*/', $content, $m );
                $list = [];
                foreach ( $m[0] as $match ) {
                        $list[] = $match . "(" . $filePath . ")";
index 4c2b64c..31fe33f 100644 (file)
@@ -358,9 +358,7 @@ abstract class BackupDumper extends Maintenance {
        function backupServer() {
                global $wgDBserver;
 
-               return $this->server
-                       ? $this->server
-                       : $wgDBserver;
+               return $this->server ?: $wgDBserver;
        }
 
        function reportPage() {
index 31abd35..6c34e0b 100644 (file)
@@ -2650,7 +2650,6 @@ A型肝炎        甲型肝炎
 數碼訊號   数字信号
 數位音樂   数字音乐
 數位化      数字化
-咪高峰      麦克风
 幫浦 泵
 電單車      摩托车
 演化論      进化论
@@ -2710,3 +2709,9 @@ A型肝炎        甲型肝炎
 皮特肯      皮特凯恩
 安地卡      安提瓜
 撒拉威阿拉伯     阿拉伯撒哈拉
+樸茨茅夫   朴茨茅斯
+留尼旺      留尼汪
+道瓊斯      道琼斯
+道瓊 道琼斯
+聖佐治      圣乔治
+格瑞那丁   格林纳丁斯
index 1ad4540..93acb33 100644 (file)
@@ -3023,8 +3023,6 @@ IP地址  IP位址
 數位音樂   數碼音樂
 数字化      數碼化
 數位化      數碼化
-麥克風      咪高峰
-麦克风      咪高峰
 幫浦 泵
 朝鲜战争   韓戰
 万历朝鲜战争     萬曆朝鮮戰爭
@@ -3073,3 +3071,10 @@ IP地址 IP位址
 皮特凯恩   皮特肯
 安地卡      安提瓜
 撒拉威阿拉伯     阿拉伯撒哈拉
+朴茨茅斯   樸茨茅夫
+樸茨茅斯   樸茨茅夫
+道瓊斯      道瓊斯
+道瓊 道瓊斯
+圣乔治      聖佐治
+聖喬治      聖佐治
+格瑞那丁   格林納丁斯
index 5ad8eeb..aacec98 100644 (file)
 釐正 厘正
 毫釐 毫厘
 釐毫 厘毫
+釐米 厘米
 剖釐 剖厘
 一釐 一厘
 昇平 升平
index 28055e1..dd8e5d0 100644 (file)
@@ -768,7 +768,6 @@ IP地址    IP位址
 網絡遊戲   網路遊戲
 电脑网络   電腦網路
 電腦網絡   電腦網路
-咪高峰      麥克風
 電單車      機車
 搜索引擎   搜尋引擎
 福尔马林   福馬林
@@ -815,3 +814,10 @@ IP地址   IP位址
 皮特凯恩   皮特肯
 安提瓜      安地卡
 阿拉伯撒哈拉     撒拉威阿拉伯
+樸茨茅夫   樸茨茅斯
+留尼汪      留尼旺
+道琼斯      道瓊
+道瓊斯      道瓊
+聖佐治      聖喬治
+格林纳丁斯        格瑞那丁
+格林納丁斯        格瑞那丁
index 5bfe18f..a3565b8 100644 (file)
@@ -22,6 +22,7 @@
 陳杰 陳杰
 黃杰 黃杰
 謝杰 謝杰
+余杰 余杰
 博杰普爾   博杰普爾
 寶曆 寶曆
 涂謹申      涂謹申
index 7206924..8d09901 100644 (file)
@@ -690,7 +690,6 @@ 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逾|
index 327f8f3..24d8a42 100644 (file)
 張三丰
 復始
 往復式
+恢復 #分詞用
 複分析
 複輔音
 複元音
 複合 #因複合詞頻遠高於復合
 複方
 複穗
+複讀機
 撥穀
 扁擬穀盜蟲
 不穀
 孛里海
 布里海
 公里海
+年里約 #里约奧運
 地圖裡
 版圖裡
 配圖裡
index 5e27ac8..f5a1e44 100644 (file)
@@ -119,6 +119,29 @@ class MigrateActors extends LoggedUpdateMaintenance {
                return [ $next, $display ];
        }
 
+       /**
+        * Make the subqueries for `actor_id`
+        * @param IDatabase $dbw
+        * @param string $userField User ID field name
+        * @param string $nameField User name field name
+        * @return string SQL fragment
+        */
+       private function makeActorIdSubquery( $dbw, $userField, $nameField ) {
+               $idSubquery = $dbw->buildSelectSubquery(
+                       'actor',
+                       'actor_id',
+                       [ "$userField = actor_user" ],
+                       __METHOD__
+               );
+               $nameSubquery = $dbw->buildSelectSubquery(
+                       'actor',
+                       'actor_id',
+                       [ "$nameField = actor_name" ],
+                       __METHOD__
+               );
+               return "CASE WHEN $userField = 0 OR $userField IS NULL THEN $nameSubquery ELSE $idSubquery END";
+       }
+
        /**
         * Add actors for anons in a set of rows
         * @param IDatabase $dbw
@@ -214,6 +237,7 @@ class MigrateActors extends LoggedUpdateMaintenance {
                wfWaitForSlaves();
 
                $dbw = $this->getDB( DB_MASTER );
+               $actorIdSubquery = $this->makeActorIdSubquery( $dbw, $userField, $nameField );
                $next = '1=1';
                $countUpdated = 0;
                $countActors = 0;
@@ -221,8 +245,8 @@ class MigrateActors extends LoggedUpdateMaintenance {
                while ( true ) {
                        // Fetch the rows needing update
                        $res = $dbw->select(
-                               [ $table, 'actor' ],
-                               array_merge( $primaryKey, [ $userField, $nameField, 'actor_id' ] ),
+                               $table,
+                               array_merge( $primaryKey, [ $userField, $nameField, 'actor_id' => $actorIdSubquery ] ),
                                [
                                        $actorField => 0,
                                        $next,
@@ -231,13 +255,6 @@ class MigrateActors extends LoggedUpdateMaintenance {
                                [
                                        'ORDER BY' => $primaryKey,
                                        'LIMIT' => $this->mBatchSize,
-                               ],
-                               [
-                                       'actor' => [
-                                               'LEFT JOIN',
-                                               "$userField != 0 AND actor_user = $userField OR "
-                                               . "($userField = 0 OR $userField IS NULL) AND actor_name = $nameField"
-                                       ]
                                ]
                        );
                        if ( !$res->numRows() ) {
@@ -315,6 +332,7 @@ class MigrateActors extends LoggedUpdateMaintenance {
                wfWaitForSlaves();
 
                $dbw = $this->getDB( DB_MASTER );
+               $actorIdSubquery = $this->makeActorIdSubquery( $dbw, $userField, $nameField );
                $next = [];
                $countUpdated = 0;
                $countActors = 0;
@@ -322,8 +340,8 @@ class MigrateActors extends LoggedUpdateMaintenance {
                while ( true ) {
                        // Fetch the rows needing update
                        $res = $dbw->select(
-                               [ $table, $newTable, 'actor' ],
-                               [ $primaryKey, $userField, $nameField, 'actor_id' ] + $extra,
+                               [ $table, $newTable ],
+                               [ $primaryKey, $userField, $nameField, 'actor_id' => $actorIdSubquery ] + $extra,
                                [ $newPrimaryKey => null ] + $next,
                                __METHOD__,
                                [
@@ -332,11 +350,6 @@ class MigrateActors extends LoggedUpdateMaintenance {
                                ],
                                [
                                        $newTable => [ 'LEFT JOIN', "{$primaryKey}={$newPrimaryKey}" ],
-                                       'actor' => [
-                                               'LEFT JOIN',
-                                               "$userField != 0 AND actor_user = $userField OR "
-                                               . "($userField = 0 OR $userField IS NULL) AND actor_name = $nameField"
-                                       ]
                                ]
                        );
                        if ( !$res->numRows() ) {
@@ -414,18 +427,31 @@ class MigrateActors extends LoggedUpdateMaintenance {
                while ( true ) {
                        // Fetch the rows needing update
                        $res = $dbw->select(
-                               [ 'log_search', 'actor' ],
-                               [ 'ls_field', 'ls_value', 'actor_id' ],
                                [
-                                       'ls_field' => 'target_author_id',
-                                       $next,
+                                       'ls' => $dbw->buildSelectSubquery(
+                                               'log_search',
+                                               'ls_value',
+                                               [
+                                                       'ls_field' => 'target_author_id',
+                                                       $next
+                                               ],
+                                               __METHOD__,
+                                               [
+                                                       'DISTINCT',
+                                                       'ORDER BY' => [ 'ls_value' ],
+                                                       'LIMIT' => $this->mBatchSize,
+                                               ]
+                                       ),
+                                       'actor'
                                ],
-                               __METHOD__,
                                [
-                                       'DISTINCT',
-                                       'ORDER BY' => [ 'ls_value' ],
-                                       'LIMIT' => $this->mBatchSize,
+                                       'ls_field' => $dbw->addQuotes( 'target_author_id' ),
+                                       'ls_value',
+                                       'actor_id'
                                ],
+                               [],
+                               __METHOD__,
+                               [],
                                [ 'actor' => [ 'LEFT JOIN', 'ls_value = ' . $dbw->buildStringCast( 'actor_user' ) ] ]
                        );
                        if ( !$res->numRows() ) {
@@ -474,18 +500,31 @@ class MigrateActors extends LoggedUpdateMaintenance {
                while ( true ) {
                        // Fetch the rows needing update
                        $res = $dbw->select(
-                               [ 'log_search', 'actor' ],
-                               [ 'ls_field', 'ls_value', 'actor_id' ],
                                [
-                                       'ls_field' => 'target_author_ip',
-                                       $next,
+                                       'ls' => $dbw->buildSelectSubquery(
+                                               'log_search',
+                                               'ls_value',
+                                               [
+                                                       'ls_field' => 'target_author_ip',
+                                                       $next
+                                               ],
+                                               __METHOD__,
+                                               [
+                                                       'DISTINCT',
+                                                       'ORDER BY' => [ 'ls_value' ],
+                                                       'LIMIT' => $this->mBatchSize,
+                                               ]
+                                       ),
+                                       'actor'
                                ],
-                               __METHOD__,
                                [
-                                       'DISTINCT',
-                                       'ORDER BY' => [ 'ls_value' ],
-                                       'LIMIT' => $this->mBatchSize,
+                                       'ls_field' => $dbw->addQuotes( 'target_author_ip' ),
+                                       'ls_value',
+                                       'actor_id'
                                ],
+                               [],
+                               __METHOD__,
+                               [],
                                [ 'actor' => [ 'LEFT JOIN', 'ls_value = actor_name' ] ]
                        );
                        if ( !$res->numRows() ) {
index f01d8f5..43bbca1 100644 (file)
@@ -117,9 +117,7 @@ class CLIParser extends Maintenance {
         * @return Title
         */
        protected function getTitle() {
-               $title = $this->getOption( 'title' )
-                       ? $this->getOption( 'title' )
-                       : 'CLIParser';
+               $title = $this->getOption( 'title' ) ?: 'CLIParser';
 
                return Title::newFromText( $title );
        }
index ee5b8c3..6163e5e 100644 (file)
@@ -112,8 +112,8 @@ oojs:
 
 ooui:
   type: tar
-  src: https://registry.npmjs.org/oojs-ui/-/oojs-ui-0.30.0.tgz
-  integrity: sha384-MobtIvHeTSLhBXh5VNtjjmzTYhcj7bD9QlAMIZ6impdwFpx8jTA8cgpjtNaR9i2O
+  src: https://registry.npmjs.org/oojs-ui/-/oojs-ui-0.30.1.tgz
+  integrity: sha384-amsFgQLik4VSMWUOcRkaNM2w6rzL4PhRO+OALDi9rkRdS4OxQCRBepPH9jkvcgLX
   dest:
     # Main stuff
     package/dist/oojs-ui-core.js{,.map.json}:
@@ -146,11 +146,11 @@ qunitjs:
   # Integrity from link modals at https://code.jquery.com/qunit/
   files:
     qunit.js:
-      src: https://code.jquery.com/qunit/qunit-2.6.2.js
-      integrity: sha256-72OhbBvECs6Z5vG0GfPqiyYvTf8vhdEVHKQcacIcIeM=
+      src: http://code.jquery.com/qunit/qunit-2.9.1.js
+      integrity: sha256-eNccBdxd8zReziWcVjEsPeyJDi3LKMYnzMXyDv8bzsU=
     qunit.css:
-      src: https://code.jquery.com/qunit/qunit-2.6.2.css
-      integrity: sha256-qpkurjTvVTJJCSpMABcvF4IlYUJkd8saxiHgUQpEjX8=
+      src: https://code.jquery.com/qunit/qunit-2.9.1.css
+      integrity: sha256-SSS7o92V7wzcIFg3qnJL9mc4msePaT4klbxtuSGvVVo=
 
 sinonjs:
   type: file
index 0ea5db5..22e10b5 100644 (file)
@@ -71,7 +71,7 @@ class RollbackEdits extends Maintenance {
                }
 
                if ( !$titles ) {
-                       $this->output( 'No suitable titles to be rolled back' );
+                       $this->output( 'No suitable titles to be rolled back.' );
 
                        return;
                }
@@ -82,9 +82,9 @@ class RollbackEdits extends Maintenance {
                        $page = WikiPage::factory( $t );
                        $this->output( 'Processing ' . $t->getPrefixedText() . '... ' );
                        if ( !$page->commitRollback( $user, $summary, $bot, $results, $doer ) ) {
-                               $this->output( "done\n" );
+                               $this->output( "Done!\n" );
                        } else {
-                               $this->output( "failed\n" );
+                               $this->output( "Failed!\n" );
                        }
                }
        }
index 74bdcf8..b0c5c4c 100644 (file)
@@ -18,7 +18,9 @@
                $( '.config-help-field-data' ).hide()
                        .closest( '.config-help-field-container' ).find( '.config-help-field-hint' )
                        .show()
-                       .click( function () {
+                       .on( 'click', function () {
+                               // FIXME: Use CSS transition
+                               // eslint-disable-next-line jquery/no-slide
                                $( this ).closest( '.config-help-field-container' ).find( '.config-help-field-data' )
                                        .slideToggle( 'fast' );
                        } );
                        $( document.getElementById( $( this ).attr( 'rel' ) ) ).hide();
                } );
                $( document.getElementById( $( '.dbRadio:checked' ).attr( 'rel' ) ) ).show();
-               $( '.dbRadio' ).click( function () {
+               $( '.dbRadio' ).on( 'click', function () {
                        var $checked = $( '.dbRadio:checked' ),
                                $wrapper = $( document.getElementById( $checked.attr( 'rel' ) ) );
                        if ( $wrapper.is( ':hidden' ) ) {
+                               // FIXME: Use CSS transition
+                               // eslint-disable-next-line jquery/no-animate-toggle
                                $( '.dbWrapper' ).hide( 'slow' );
+                               // eslint-disable-next-line jquery/no-animate-toggle
                                $wrapper.show( 'slow' );
                        }
                } );
                } );
 
                // Show/hide Creative Commons thingy
-               $( '.licenseRadio' ).click( function () {
+               $( '.licenseRadio' ).on( 'click', function () {
                        var $wrapper = $( '#config-cc-wrapper' );
                        if ( $( '#config__LicenseCode_cc-choose' ).is( ':checked' ) ) {
+                               // FIXME: Use CSS transition
+                               // eslint-disable-next-line jquery/no-animate-toggle
                                $wrapper.show( 'slow' );
                        } else {
+                               // eslint-disable-next-line jquery/no-animate-toggle
                                $wrapper.hide( 'slow' );
                        }
                } );
 
                // Show/hide random stuff (email, upload)
-               $( '.showHideRadio' ).click( function () {
+               $( '.showHideRadio' ).on( 'click', function () {
                        var $wrapper = $( '#' + $( this ).attr( 'rel' ) );
                        if ( $( this ).is( ':checked' ) ) {
+                               // FIXME: Use CSS transition
+                               // eslint-disable-next-line jquery/no-animate-toggle
                                $wrapper.show( 'slow' );
                        } else {
+                               // eslint-disable-next-line jquery/no-animate-toggle
                                $wrapper.hide( 'slow' );
                        }
                } );
-               $( '.hideShowRadio' ).click( function () {
+               $( '.hideShowRadio' ).on( 'click', function () {
                        var $wrapper = $( '#' + $( this ).attr( 'rel' ) );
                        if ( $( this ).is( ':checked' ) ) {
+                               // FIXME: Use CSS transition
+                               // eslint-disable-next-line jquery/no-animate-toggle
                                $wrapper.hide( 'slow' );
                        } else {
+                               // eslint-disable-next-line jquery/no-animate-toggle
                                $wrapper.show( 'slow' );
                        }
                } );
                }
 
                // Enable/disable "other" textboxes
-               $( '.enableForOther' ).click( function () {
+               $( '.enableForOther' ).on( 'click', function () {
                        var $textbox = $( document.getElementById( $( this ).attr( 'rel' ) ) );
                        // FIXME: Ugh, this is ugly
                        if ( $( this ).val() === 'other' ) {
+                               // FIXME: Use CSS transition
+                               // eslint-disable-next-line jquery/no-slide
                                $textbox.prop( 'readonly', false ).closest( '.config-block' ).slideDown( 'fast' );
                        } else {
+                               // eslint-disable-next-line jquery/no-slide
                                $textbox.prop( 'readonly', true ).closest( '.config-block' ).slideUp( 'fast' );
                        }
                } );
                $( '#config_wgSitename' ).on( 'keyup change', syncText ).each( syncText );
 
                // Show/Hide memcached servers when needed
-               $( 'input[name$="config__MainCacheType"]' ).change( function () {
+               $( 'input[name$="config__MainCacheType"]' ).on( 'change', function () {
                        var $memc = $( '#config-memcachewrapper' );
                        if ( $( 'input[name$="config__MainCacheType"]:checked' ).val() === 'memcached' ) {
+                               // FIXME: Use CSS transition
+                               // eslint-disable-next-line jquery/no-animate-toggle
                                $memc.show( 'slow' );
                        } else {
+                               // eslint-disable-next-line jquery/no-animate-toggle
                                $memc.hide( 'slow' );
                        }
                } );
index e3379ca..3b8ea58 100644 (file)
@@ -11,7 +11,7 @@
   },
   "devDependencies": {
     "deepmerge": "1.3.2",
-    "eslint-config-wikimedia": "0.9.0",
+    "eslint-config-wikimedia": "0.10.0",
     "grunt": "1.0.3",
     "grunt-banana-checker": "0.6.0",
     "grunt-contrib-copy": "1.0.0",
@@ -26,8 +26,7 @@
     "karma-mocha-reporter": "2.2.5",
     "karma-qunit": "2.1.0",
     "postcss-less": "2.0.0",
-    "qunit": "2.6.2",
-    "stylelint": "9.6.0",
+    "qunit": "2.9.1",
     "stylelint-config-wikimedia": "0.5.0",
     "wdio-junit-reporter": "0.2.0",
     "wdio-mediawiki": "file:tests/selenium/wdio-mediawiki",
index c8daad6..1971001 100644 (file)
@@ -1987,6 +1987,7 @@ return [
                        'resources/src/mediawiki.special/upload.css',
                        'resources/src/mediawiki.special/userrights.css',
                        'resources/src/mediawiki.special/watchlist.css',
+                       'resources/src/mediawiki.special/block.less',
                ],
                'targets' => [ 'desktop', 'mobile' ],
        ],
@@ -2065,7 +2066,6 @@ return [
        ],
        'mediawiki.special.block' => [
                'scripts' => 'resources/src/mediawiki.special.block.js',
-               'styles' => 'resources/src/mediawiki.special.block.less',
                'dependencies' => [
                        'oojs-ui-core',
                        'oojs-ui.styles.icons-editing-core',
@@ -2867,7 +2867,8 @@ return [
                        'oojs-ui.styles.icons-interactions',
                ],
                'messages' => [
-                       'ooui-field-help'
+                       'ooui-field-help',
+                       'ooui-combobox-button-label',
                ],
                'targets' => [ 'desktop', 'mobile' ],
        ],
index 72c9bb6..ec0f71e 100644 (file)
@@ -1,4 +1,30 @@
 # OOUI Release History
+## v0.30.1 / 2019-01-09
+### Deprecations
+* [DEPRECATING CHANGE]: Deprecate `iconTitle` and `indicatorTitle` (Volker E.)
+
+### Styles
+* icons: Decrease 'close' size marginally (Volker E.)
+* themes: Fine tune library 'close' icon usages (Volker E.)
+
+### Code
+* Add TitledElement mixin to all main widgets where useful (Volker E.)
+* Clean up handling of `aria-expanded` attribute (Bartosz Dziewoński)
+* DropdownInputWidget: Fix mixing in TitledElement twice (Bartosz Dziewoński)
+* MultilineTextInputWidget: Move `styleHeight` property into widget from parent (Volker E.)
+* Replace double TitledElement mixins in several widgets (Volker E.)
+* build: Commit package-lock.json (James D. Forrester)
+* build: Bump various devDependencies to latest (Volker E.)
+* build: Update eslint-config-wikimedia to 0.10.0 (Volker E.)
+* build: Upgrade grunt-banana-checker from 0.6.0 to 0.7.0 (James D. Forrester)
+* demos: Replace most unicode LTR markers with CSS rule (Volker E.)
+* docs: Bump copyright year for 2019 (James D. Forrester)
+* docs: Unify code examples and describe MultilineText- & SearchInputWidget (Volker E.)
+* tests: Make JS/PHP comparison tests async (Bartosz Dziewoński)
+* tests: Reduce code duplication in JS/PHP comparison tests (Bartosz Dziewoński)
+* tests: Unbreak JS/PHP tests for DropdownInputWidget (Bartosz Dziewoński)
+
+
 ## v0.30.0 / 2018-12-19
 ### Breaking changes
 * [BREAKING CHANGE] Make non-continuous StackLayouts non-scrollable (Ed Sanders)
index 8f0984c..3dd1927 100644 (file)
@@ -1,4 +1,4 @@
-Copyright 2011-2018 OOUI Team and other contributors.
+Copyright 2011-2019 OOUI Team and other contributors.
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the
index ce7f999..3affa4d 100644 (file)
@@ -30,6 +30,7 @@
        "ooui-dialog-process-dismiss": "أغلق",
        "ooui-dialog-process-retry": "حاول مرة أخرى",
        "ooui-dialog-process-continue": "استمر",
+       "ooui-combobox-button-label": "القائمة المنسدلة لصندوق التحرير",
        "ooui-selectfile-button-select": "اختر ملفا",
        "ooui-selectfile-not-supported": "اختيار الملفات غير مدعوم",
        "ooui-selectfile-placeholder": "لم يتم اختيار أي ملف",
index 5b78b1f..1ab2496 100644 (file)
@@ -29,6 +29,7 @@
        "ooui-dialog-process-dismiss": "Zavřít",
        "ooui-dialog-process-retry": "Zkusit znovu",
        "ooui-dialog-process-continue": "Pokračovat",
+       "ooui-combobox-button-label": "Rozbalení výběru",
        "ooui-selectfile-button-select": "Vybrat soubor",
        "ooui-selectfile-not-supported": "Výběr souboru není podporován",
        "ooui-selectfile-placeholder": "Nebyl vybrán žádný soubor",
index 2b01df9..c6d8f6d 100644 (file)
@@ -26,6 +26,7 @@
        "ooui-dialog-process-dismiss": "Ausblenden",
        "ooui-dialog-process-retry": "Erneut versuchen",
        "ooui-dialog-process-continue": "Fortfahren",
+       "ooui-combobox-button-label": "Dropdown für die Combobox",
        "ooui-selectfile-button-select": "Eine Datei auswählen",
        "ooui-selectfile-not-supported": "Die Dateiauswahl wird nicht unterstützt",
        "ooui-selectfile-placeholder": "Keine Datei ausgewählt",
index d27da01..4b92713 100644 (file)
@@ -7,7 +7,8 @@
                        "Yekrats",
                        "Kvardek du",
                        "Psychoslave",
-                       "Fitoschido"
+                       "Fitoschido",
+                       "YvesNevelsteen"
                ]
        },
        "ooui-outline-control-move-down": "Movi eron suben",
        "ooui-outline-control-remove": "Forigi eron",
        "ooui-toolbar-more": "Pli",
        "ooui-toolgroup-expand": "Pli",
-       "ooui-toolgroup-collapse": "Mapli",
+       "ooui-toolgroup-collapse": "Malpli",
        "ooui-dialog-message-accept": "Bone",
        "ooui-dialog-message-reject": "Nuligi",
-       "ooui-dialog-process-error": "Io rompiĝis",
-       "ooui-dialog-process-dismiss": "Elimini",
+       "ooui-dialog-process-error": "Io misfunkciis",
+       "ooui-dialog-process-dismiss": "Fermi",
        "ooui-dialog-process-retry": "Reprovi",
        "ooui-dialog-process-continue": "Daŭrigi",
        "ooui-selectfile-button-select": "Elekti dosieron",
-       "ooui-selectfile-not-supported": "Dosieroselekto ne estas subtenata.",
-       "ooui-selectfile-placeholder": "Vi ne selektis dosieron",
-       "ooui-selectfile-dragdrop-placeholder": "Ĵetu dosieron ĉi tie.",
+       "ooui-selectfile-not-supported": "Dosierelekto ne estas subtenata.",
+       "ooui-selectfile-placeholder": "Neniu dosiero elektita",
+       "ooui-selectfile-dragdrop-placeholder": "Demetu la dosieron ĉi tie",
        "ooui-field-help": "Helpo"
 }
index a426875..6bfe4d6 100644 (file)
@@ -46,6 +46,7 @@
        "ooui-dialog-process-dismiss": "Fermer",
        "ooui-dialog-process-retry": "Réessayer",
        "ooui-dialog-process-continue": "Continuer",
+       "ooui-combobox-button-label": "Liste déroulante de combobox",
        "ooui-selectfile-button-select": "Sélectionner un fichier",
        "ooui-selectfile-not-supported": "La sélection de fichier n’est pas prise en charge",
        "ooui-selectfile-placeholder": "Aucun fichier sélectionné",
index e40820d..3b6be43 100644 (file)
@@ -28,6 +28,7 @@
        "ooui-dialog-process-dismiss": "לוותר",
        "ooui-dialog-process-retry": "לנסות שוב",
        "ooui-dialog-process-continue": "המשך",
+       "ooui-combobox-button-label": "רשימה נפתחת עבור תיבה משולבת",
        "ooui-selectfile-button-select": "נא לבחור קובץ",
        "ooui-selectfile-not-supported": "בחירת קבצים אינה נתמכת",
        "ooui-selectfile-placeholder": "לא נבחר שום קובץ",
index 8de0d80..e423e40 100644 (file)
@@ -19,6 +19,7 @@
        "ooui-dialog-process-dismiss": "Тргни",
        "ooui-dialog-process-retry": "Обиди се пак",
        "ooui-dialog-process-continue": "Продолжи",
+       "ooui-combobox-button-label": "Расклоп за комбокутијата",
        "ooui-selectfile-button-select": "Одберете податотека",
        "ooui-selectfile-not-supported": "Изборот на податотеки не е поддржан",
        "ooui-selectfile-placeholder": "Немате одбрано податотека",
index c6fd278..c478203 100644 (file)
@@ -18,7 +18,8 @@
                        "सरोज कुमार ढकाल",
                        "Sjoerddebruin",
                        "Gloria sah",
-                       "Mainframe98"
+                       "Mainframe98",
+                       "Marcelhospers"
                ]
        },
        "ooui-outline-control-move-down": "Item omlaag verplaatsen",
@@ -34,6 +35,7 @@
        "ooui-dialog-process-dismiss": "Sluiten",
        "ooui-dialog-process-retry": "Opnieuw proberen",
        "ooui-dialog-process-continue": "Doorgaan",
+       "ooui-combobox-button-label": "Dropdown voor combobox",
        "ooui-selectfile-button-select": "Selecteer een bestand",
        "ooui-selectfile-not-supported": "Selectie van een bestand wordt niet ondersteund",
        "ooui-selectfile-placeholder": "Er is geen bestand geselecteerd",
index 11c5ff3..9cd9c69 100644 (file)
@@ -29,6 +29,7 @@
        "ooui-dialog-process-dismiss": "Dispensar",
        "ooui-dialog-process-retry": "Tente novamente",
        "ooui-dialog-process-continue": "Continuar",
+       "ooui-combobox-button-label": "Expansor da caixa de combinação",
        "ooui-selectfile-button-select": "Selecionar um arquivo",
        "ooui-selectfile-not-supported": "O selecionamento de arquivos não é suportado",
        "ooui-selectfile-placeholder": "Nenhum arquivo selecionado",
index 7117cd9..a99290f 100644 (file)
@@ -28,6 +28,7 @@
        "ooui-dialog-process-dismiss": "Ignorar",
        "ooui-dialog-process-retry": "Tentar novamente",
        "ooui-dialog-process-continue": "Continuar",
+       "ooui-combobox-button-label": "Expansor da caixa de combinação",
        "ooui-selectfile-button-select": "Selecionar ficheiro",
        "ooui-selectfile-not-supported": "A seleção de ficheiros não é suportada",
        "ooui-selectfile-placeholder": "Nenhum ficheiro selecionado",
index f396902..ee3c15c 100644 (file)
@@ -17,6 +17,7 @@
        "ooui-dialog-process-dismiss": "Scitte",
        "ooui-dialog-process-retry": "Pruève arrete",
        "ooui-dialog-process-continue": "Condinue",
+       "ooui-combobox-button-label": "Menu a discese pa liste",
        "ooui-selectfile-button-select": "Scacchie 'nu file",
        "ooui-selectfile-not-supported": "'U scacchiamende d'u file non g'è supportate",
        "ooui-selectfile-placeholder": "Nisciune file scacchiate",
index 679f1a6..9467c7f 100644 (file)
@@ -7,7 +7,8 @@
                        "GretaDoci",
                        "Gertakapllani",
                        "Techlik",
-                       "Liridon"
+                       "Liridon",
+                       "Arianit"
                ]
        },
        "ooui-outline-control-move-down": "Zhvendose artikullin më poshtë",
        "ooui-toolbar-more": "Më tepër...",
        "ooui-toolgroup-expand": "Më tepër...",
        "ooui-toolgroup-collapse": "Më pak",
+       "ooui-item-remove": "Hiqe",
        "ooui-dialog-message-accept": "Në rregull",
        "ooui-dialog-message-reject": "Anullo",
        "ooui-dialog-process-error": "Diçka shkoi keq",
        "ooui-dialog-process-dismiss": "Largoje",
        "ooui-dialog-process-retry": "Provo përsëri",
        "ooui-dialog-process-continue": "Vazhdo",
+       "ooui-combobox-button-label": "Menyja rënse për combobox",
        "ooui-selectfile-button-select": "Përzgjidhni një skedë",
        "ooui-selectfile-not-supported": "Skedari i përzgjedhur nuk përkrahet",
        "ooui-selectfile-placeholder": "Nuk është zgjedhur asnjë skedar",
-       "ooui-selectfile-dragdrop-placeholder": "Vendose skedën këtu"
+       "ooui-selectfile-dragdrop-placeholder": "Vendose skedën këtu",
+       "ooui-field-help": "Ndihmë"
 }
index d310569..19625e7 100644 (file)
@@ -23,6 +23,7 @@
        "ooui-dialog-process-dismiss": "Одбаци",
        "ooui-dialog-process-retry": "Покушај поново",
        "ooui-dialog-process-continue": "Настави",
+       "ooui-combobox-button-label": "Падајућа листа за ComboBox",
        "ooui-selectfile-button-select": "Изаберите датотеку",
        "ooui-selectfile-not-supported": "Избор датотеке није подржан",
        "ooui-selectfile-placeholder": "Датотека није изабрана",
index c49b392..2c4107f 100644 (file)
@@ -29,6 +29,7 @@
        "ooui-dialog-process-dismiss": "Stäng",
        "ooui-dialog-process-retry": "Försök igen",
        "ooui-dialog-process-continue": "Fortsätt",
+       "ooui-combobox-button-label": "Rullgardinslist för kryssruta",
        "ooui-selectfile-button-select": "Välj en fil",
        "ooui-selectfile-not-supported": "Filval stöds inte",
        "ooui-selectfile-placeholder": "Ingen fil är vald",
index fcf9b1f..a7676a6 100644 (file)
@@ -6,21 +6,23 @@
                        "BukhariSaeed"
                ]
        },
-       "ooui-outline-control-move-down": "Ù\85د Ù\86Û\8cÚ\86Û\92 Ú©Ú¾Ø³Ú©Ø§Ø¦Û\8cÚº",
-       "ooui-outline-control-move-up": " مداوپرلےجائیں",
-       "ooui-outline-control-remove": " مدحذف کریں",
+       "ooui-outline-control-move-down": "نیچے کھسکائیں",
+       "ooui-outline-control-move-up": "اوپر کھسکائیں",
+       "ooui-outline-control-remove": "حذف کریں",
        "ooui-toolbar-more": "مزید",
        "ooui-toolgroup-expand": "مزید",
-       "ooui-toolgroup-collapse": "کم کریں",
-       "ooui-item-remove": "ھٹادیں",
+       "ooui-toolgroup-collapse": "سمیٹیں",
+       "ooui-item-remove": "ہٹائیں",
        "ooui-dialog-message-accept": "ٹھیک",
        "ooui-dialog-message-reject": "منسوخ کریں",
        "ooui-dialog-process-error": "کچھ غلط ہو گیا ہے",
-       "ooui-dialog-process-dismiss": "موقوف کریں",
+       "ooui-dialog-process-dismiss": "بند کریں",
        "ooui-dialog-process-retry": "دوبارہ کوشش کریں",
        "ooui-dialog-process-continue": "جاری رکھیں",
+       "ooui-combobox-button-label": "ڈراپ ڈاؤن برائے خانہ ترمیم",
        "ooui-selectfile-button-select": "فائل منتخب کریں",
        "ooui-selectfile-not-supported": "فائل کا انتخاب معاونت شدہ نہیں",
-       "ooui-selectfile-placeholder": "کوئی فائل منتخب نہیں کی گئ",
-       "ooui-selectfile-dragdrop-placeholder": "فائل یہاں چھوڑیں"
+       "ooui-selectfile-placeholder": "کوئی فائل منتخب نہیں کی گئی",
+       "ooui-selectfile-dragdrop-placeholder": "فائل یہاں چھوڑیں",
+       "ooui-field-help": "معاونت"
 }
index 1e05886..6cb84e5 100644 (file)
@@ -33,6 +33,7 @@
        "ooui-dialog-process-dismiss": "關閉",
        "ooui-dialog-process-retry": "再試一次",
        "ooui-dialog-process-continue": "繼續",
+       "ooui-combobox-button-label": "拖曳下拉式方塊",
        "ooui-selectfile-button-select": "選擇一個檔案",
        "ooui-selectfile-not-supported": "無法支援所選擇的檔案",
        "ooui-selectfile-placeholder": "尚未選擇檔案",
index 0841424..1fc1d2b 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOUI v0.30.0
+ * OOUI v0.30.1
  * https://www.mediawiki.org/wiki/OOUI
  *
- * Copyright 2011–2018 OOUI Team and other contributors.
+ * Copyright 2011–2019 OOUI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2018-12-20T06:10:28Z
+ * Date: 2019-01-10T07:00:09Z
  */
 ( function ( OO ) {
 
index 2fbde18..8c52764 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOUI v0.30.0
+ * OOUI v0.30.1
  * https://www.mediawiki.org/wiki/OOUI
  *
- * Copyright 2011–2018 OOUI Team and other contributors.
+ * Copyright 2011–2019 OOUI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2018-12-20T06:10:36Z
+ * Date: 2019-01-10T07:00:17Z
  */
 .oo-ui-element-hidden {
   display: none !important;
@@ -974,6 +974,9 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   top: 0.25em;
   right: 0.25em;
 }
+.oo-ui-popupWidget-head > .oo-ui-buttonWidget .oo-ui-icon-close {
+  background-size: 1.25em 1.25em;
+}
 .oo-ui-popupWidget-head > .oo-ui-labelElement-label {
   margin: 0.75em 2.125em 0.75em 1em;
 }
index a8a090b..0b88c47 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOUI v0.30.0
+ * OOUI v0.30.1
  * https://www.mediawiki.org/wiki/OOUI
  *
- * Copyright 2011–2018 OOUI Team and other contributors.
+ * Copyright 2011–2019 OOUI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2018-12-20T06:10:36Z
+ * Date: 2019-01-10T07:00:17Z
  */
 .oo-ui-element-hidden {
   display: none !important;
@@ -1136,7 +1136,7 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   right: 0;
 }
 .oo-ui-popupWidget-head > .oo-ui-buttonWidget .oo-ui-icon-close {
-  background-size: 1em 1em;
+  background-size: 1.14285714em 1.14285714em;
 }
 .oo-ui-popupWidget-body {
   line-height: 1.42857143em;
index ab9586f..047e1e4 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOUI v0.30.0
+ * OOUI v0.30.1
  * https://www.mediawiki.org/wiki/OOUI
  *
- * Copyright 2011–2018 OOUI Team and other contributors.
+ * Copyright 2011–2019 OOUI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2018-12-20T06:10:28Z
+ * Date: 2019-01-10T07:00:09Z
  */
 ( function ( OO ) {
 
@@ -426,7 +426,7 @@ OO.ui.infuse = function ( idOrNode, config ) {
         *             label: OO.ui.msg( 'ooui-dialog-message-accept' ),
         *             icon: 'check'
         *         } );
-        *         $( 'body' ).append( button.$element );
+        *         $( document.body ).append( button.$element );
         *
         *         // A button displaying "OK" in Urdu
         *         $.i18n().locale = 'ur';
@@ -434,7 +434,7 @@ OO.ui.infuse = function ( idOrNode, config ) {
         *             label: OO.ui.msg( 'ooui-dialog-message-accept' ),
         *             icon: 'check'
         *         } );
-        *         $( 'body' ).append( button.$element );
+        *         $( document.body ).append( button.$element );
         *     } );
         *
         * @param {string} key Message key
@@ -570,7 +570,7 @@ OO.ui.getViewportSpacing = function () {
 OO.ui.getDefaultOverlay = function () {
        if ( !OO.ui.$defaultOverlay ) {
                OO.ui.$defaultOverlay = $( '<div>' ).addClass( 'oo-ui-defaultOverlay' );
-               $( 'body' ).append( OO.ui.$defaultOverlay );
+               $( document.body ).append( OO.ui.$defaultOverlay );
        }
        return OO.ui.$defaultOverlay;
 };
@@ -1339,6 +1339,7 @@ OO.ui.Element.static.scrollIntoView = function ( el, config ) {
                }
        }
        if ( !$.isEmptyObject( animations ) ) {
+               // eslint-disable-next-line jquery/no-animate
                $container.stop( true ).animate( animations, config.duration === undefined ? 'fast' : config.duration );
                $container.queue( function ( next ) {
                        deferred.resolve();
@@ -1903,28 +1904,28 @@ OO.ui.Theme.prototype.getDialogTransitionDuration = function () {
 /**
  * The TabIndexedElement class is an attribute mixin used to add additional functionality to an
  * element created by another class. The mixin provides a ‘tabIndex’ property, which specifies the
- * order in which users will navigate through the focusable elements via the "tab" key.
+ * order in which users will navigate through the focusable elements via the “tab” key.
  *
  *     @example
  *     // TabIndexedElement is mixed into the ButtonWidget class
  *     // to provide a tabIndex property.
  *     var button1 = new OO.ui.ButtonWidget( {
- *         label: 'fourth',
- *         tabIndex: 4
- *     } );
- *     var button2 = new OO.ui.ButtonWidget( {
- *         label: 'second',
- *         tabIndex: 2
- *     } );
- *     var button3 = new OO.ui.ButtonWidget( {
- *         label: 'third',
- *         tabIndex: 3
- *     } );
- *     var button4 = new OO.ui.ButtonWidget( {
- *         label: 'first',
- *         tabIndex: 1
- *     } );
- *     $( 'body' ).append( button1.$element, button2.$element, button3.$element, button4.$element );
+ *             label: 'fourth',
+ *             tabIndex: 4
+ *         } ),
+ *         button2 = new OO.ui.ButtonWidget( {
+ *             label: 'second',
+ *             tabIndex: 2
+ *         } ),
+ *         button3 = new OO.ui.ButtonWidget( {
+ *             label: 'third',
+ *             tabIndex: 3
+ *         } ),
+ *         button4 = new OO.ui.ButtonWidget( {
+ *             label: 'first',
+ *             tabIndex: 1
+ *         } );
+ *     $( document.body ).append( button1.$element, button2.$element, button3.$element, button4.$element );
  *
  * @abstract
  * @class
@@ -2126,7 +2127,7 @@ OO.ui.mixin.TabIndexedElement.prototype.simulateLabelClick = function () {
 
 /**
  * ButtonElement is often mixed into other classes to generate a button, which is a clickable
- * interface element that can be configured with access keys for accessibility.
+ * interface element that can be configured with access keys for keyboard interaction.
  * See the [OOUI documentation on MediaWiki] [1] for examples.
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Buttons_and_Switches#Buttons
@@ -2865,7 +2866,7 @@ OO.ui.mixin.LabelElement.prototype.setLabelContent = function ( label ) {
  *  value using a jQuery selection. For example:
  *
  *      // Use a <div> tag instead of a <span>
- *     $icon: $("<div>")
+ *     $icon: $( '<div>' )
  *     // Use an existing icon element instead of the one generated by the class
  *     $icon: this.$element
  *     // Use an icon element from a child widget
@@ -2892,6 +2893,11 @@ OO.ui.mixin.IconElement = function OoUiMixinIconElement( config ) {
        this.icon = null;
        this.iconTitle = null;
 
+       // `iconTitle`s are deprecated since 0.30.0
+       if ( config.iconTitle !== undefined ) {
+               OO.ui.warnDeprecation( 'IconElement: Widgets with iconTitle set are deprecated, use title instead. See T76638 for details.' );
+       }
+
        // Initialization
        this.setIcon( config.icon || this.constructor.static.icon );
        this.setIconTitle( config.iconTitle || this.constructor.static.iconTitle );
@@ -3003,6 +3009,7 @@ OO.ui.mixin.IconElement.prototype.setIcon = function ( icon ) {
  *  a function that returns title text, or `null` for no title.
  * @chainable
  * @return {OO.ui.Element} The element, for chaining
+ * @deprecated
  */
 OO.ui.mixin.IconElement.prototype.setIconTitle = function ( iconTitle ) {
        iconTitle =
@@ -3020,6 +3027,12 @@ OO.ui.mixin.IconElement.prototype.setIconTitle = function ( iconTitle ) {
                }
        }
 
+       // `setIconTitle is deprecated since 0.30.0
+       if ( iconTitle !== null ) {
+               // Avoid a warning when this is called from the constructor with no iconTitle set
+               OO.ui.warnDeprecation( 'IconElement: setIconTitle is deprecated, use setTitle of TitledElement instead. See T76638 for details.' );
+       }
+
        return this;
 };
 
@@ -3079,6 +3092,11 @@ OO.ui.mixin.IndicatorElement = function OoUiMixinIndicatorElement( config ) {
        this.indicator = null;
        this.indicatorTitle = null;
 
+       // `indicatorTitle`s are deprecated since 0.30.0
+       if ( config.indicatorTitle !== undefined ) {
+               OO.ui.warnDeprecation( 'IndicatorElement: Widgets with indicatorTitle set are deprecated, use title instead. See T76638 for details.' );
+       }
+
        // Initialization
        this.setIndicator( config.indicator || this.constructor.static.indicator );
        this.setIndicatorTitle( config.indicatorTitle || this.constructor.static.indicatorTitle );
@@ -3178,6 +3196,7 @@ OO.ui.mixin.IndicatorElement.prototype.setIndicator = function ( indicator ) {
  *   `null` for no indicator title
  * @chainable
  * @return {OO.ui.Element} The element, for chaining
+ * @deprecated
  */
 OO.ui.mixin.IndicatorElement.prototype.setIndicatorTitle = function ( indicatorTitle ) {
        indicatorTitle =
@@ -3195,6 +3214,12 @@ OO.ui.mixin.IndicatorElement.prototype.setIndicatorTitle = function ( indicatorT
                }
        }
 
+       // `setIndicatorTitle is deprecated since 0.30.0
+       if ( indicatorTitle !== null ) {
+               // Avoid a warning when this is called from the constructor with no indicatorTitle set
+               OO.ui.warnDeprecation( 'IndicatorElement: setIndicatorTitle is deprecated, use setTitle of TitledElement instead. See T76638 for details.' );
+       }
+
        return this;
 };
 
@@ -3227,7 +3252,7 @@ OO.ui.mixin.IndicatorElement.prototype.getIndicatorTitle = function () {
  *
  * The library currently contains the following styling flags for general use:
  *
- * - **progressive**:  Progressive styling is applied to convey that the widget will move the user forward in a process.
+ * - **progressive**: Progressive styling is applied to convey that the widget will move the user forward in a process.
  * - **destructive**: Destructive styling is applied to convey that the widget will remove something.
  *
  * The flags affect the appearance of the buttons:
@@ -3235,14 +3260,14 @@ OO.ui.mixin.IndicatorElement.prototype.getIndicatorTitle = function () {
  *     @example
  *     // FlaggedElement is mixed into ButtonWidget to provide styling flags
  *     var button1 = new OO.ui.ButtonWidget( {
- *         label: 'Progressive',
- *         flags: 'progressive'
- *     } );
- *     var button2 = new OO.ui.ButtonWidget( {
- *         label: 'Destructive',
- *         flags: 'destructive'
- *     } );
- *     $( 'body' ).append( button1.$element, button2.$element );
+ *             label: 'Progressive',
+ *             flags: 'progressive'
+ *         } ),
+ *         button2 = new OO.ui.ButtonWidget( {
+ *             label: 'Destructive',
+ *             flags: 'destructive'
+ *         } );
+ *     $( document.body ).append( button1.$element, button2.$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 [OOUI documentation on MediaWiki] [1] for more information.
@@ -3433,13 +3458,13 @@ OO.ui.mixin.FlaggedElement.prototype.setFlags = function ( flags ) {
  * the mouse over the element. Titles are not visible on touch devices.
  *
  *     @example
- *     // TitledElement provides a 'title' attribute to the
- *     // ButtonWidget class
+ *     // TitledElement provides a `title` attribute to the
+ *     // ButtonWidget class.
  *     var button = new OO.ui.ButtonWidget( {
  *         label: 'Button with Title',
  *         title: 'I am a button'
  *     } );
- *     $( 'body' ).append( button.$element );
+ *     $( document.body ).append( button.$element );
  *
  * @abstract
  * @class
@@ -3554,19 +3579,19 @@ OO.ui.mixin.TitledElement.prototype.getTitle = function () {
 };
 
 /**
- * AccessKeyedElement is mixed into other classes to provide an `accesskey` attribute.
+ * AccessKeyedElement is mixed into other classes to provide an `accesskey` HTML attribute.
  * Accesskeys allow an user to go to a specific element by using
  * a shortcut combination of a browser specific keys + the key
  * set to the field.
  *
  *     @example
- *     // AccessKeyedElement provides an 'accesskey' attribute to the
- *     // ButtonWidget class
+ *     // AccessKeyedElement provides an `accesskey` attribute to the
+ *     // ButtonWidget class.
  *     var button = new OO.ui.ButtonWidget( {
  *         label: 'Button with Accesskey',
  *         accessKey: 'k'
  *     } );
- *     $( 'body' ).append( button.$element );
+ *     $( document.body ).append( button.$element );
  *
  * @abstract
  * @class
@@ -3707,13 +3732,13 @@ OO.ui.mixin.AccessKeyedElement.prototype.formatTitleWithAccessKey = function ( t
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Buttons_and_Switches
  *
  *     @example
- *     // A button widget
+ *     // A button widget.
  *     var button = new OO.ui.ButtonWidget( {
  *         label: 'Button with Icon',
  *         icon: 'trash',
  *         title: 'Remove'
  *     } );
- *     $( 'body' ).append( button.$element );
+ *     $( document.body ).append( button.$element );
  *
  * NOTE: HTML form buttons should use the OO.ui.ButtonInputWidget class.
  *
@@ -3933,27 +3958,28 @@ OO.ui.ButtonWidget.prototype.setNoFollow = function ( noFollow ) {
  * removed, and cleared from the group.
  *
  *     @example
- *     // Example: A ButtonGroupWidget with two buttons
+ *     // A ButtonGroupWidget with two buttons.
  *     var button1 = new OO.ui.PopupButtonWidget( {
- *         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'
- *     });
- *     var buttonGroup = new OO.ui.ButtonGroupWidget( {
- *         items: [button1, button2]
- *     } );
- *     $( 'body' ).append( buttonGroup.$element );
+ *             label: 'Select a category',
+ *             icon: 'menu',
+ *             popup: {
+ *                 $content: $( '<p>List of categories…</p>' ),
+ *                 padded: true,
+ *                 align: 'left'
+ *             }
+ *         } ),
+ *         button2 = new OO.ui.ButtonWidget( {
+ *             label: 'Add item'
+ *         } ),
+ *         buttonGroup = new OO.ui.ButtonGroupWidget( {
+ *             items: [ button1, button2 ]
+ *         } );
+ *     $( document.body ).append( buttonGroup.$element );
  *
  * @class
  * @extends OO.ui.Widget
  * @mixins OO.ui.mixin.GroupElement
+ * @mixins OO.ui.mixin.TitledElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -3968,6 +3994,7 @@ OO.ui.ButtonGroupWidget = function OoUiButtonGroupWidget( config ) {
 
        // Mixin constructors
        OO.ui.mixin.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );
+       OO.ui.mixin.TitledElement.call( this, config );
 
        // Initialization
        this.$element.addClass( 'oo-ui-buttonGroupWidget' );
@@ -3980,6 +4007,7 @@ OO.ui.ButtonGroupWidget = function OoUiButtonGroupWidget( config ) {
 
 OO.inheritClass( OO.ui.ButtonGroupWidget, OO.ui.Widget );
 OO.mixinClass( OO.ui.ButtonGroupWidget, OO.ui.mixin.GroupElement );
+OO.mixinClass( OO.ui.ButtonGroupWidget, OO.ui.mixin.TitledElement );
 
 /* Static Properties */
 
@@ -4019,16 +4047,16 @@ OO.ui.ButtonGroupWidget.prototype.simulateLabelClick = function () {
  * for a list of icons included in the library.
  *
  *     @example
- *     // An icon widget with a label
+ *     // An IconWidget with a label via LabelWidget.
  *     var myIcon = new OO.ui.IconWidget( {
- *         icon: 'help',
- *         title: 'Help'
- *      } );
- *      // Create a label.
- *      var iconLabel = new OO.ui.LabelWidget( {
- *          label: 'Help'
- *      } );
- *      $( 'body' ).append( myIcon.$element, iconLabel.$element );
+ *             icon: 'help',
+ *             title: 'Help'
+ *          } ),
+ *          // Create a label.
+ *          iconLabel = new OO.ui.LabelWidget( {
+ *              label: 'Help'
+ *          } );
+ *      $( document.body ).append( myIcon.$element, iconLabel.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Icons
  *
@@ -4084,17 +4112,18 @@ OO.ui.IconWidget.static.tagName = 'span';
  * indicators included in the library, please see the [OOUI documentation on MediaWiki][1].
  *
  *     @example
- *     // Example of an indicator widget
+ *     // An indicator widget.
  *     var indicator1 = new OO.ui.IndicatorWidget( {
- *         indicator: 'required'
- *     } );
- *
- *     // Create a fieldset layout to add a label
- *     var fieldset = new OO.ui.FieldsetLayout();
+ *             indicator: 'required'
+ *         } ),
+ *         // Create a fieldset layout to add a label.
+ *         fieldset = new OO.ui.FieldsetLayout();
  *     fieldset.addItems( [
- *         new OO.ui.FieldLayout( indicator1, { label: 'A required indicator:' } )
+ *         new OO.ui.FieldLayout( indicator1, {
+ *             label: 'A required indicator:'
+ *         } )
  *     ] );
- *     $( 'body' ).append( fieldset.$element );
+ *     $( document.body ).append( fieldset.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Indicators
  *
@@ -4155,20 +4184,20 @@ OO.ui.IndicatorWidget.static.tagName = 'span';
  * will come into focus when the label is clicked.
  *
  *     @example
- *     // Examples of LabelWidgets
+ *     // Two LabelWidgets.
  *     var label1 = new OO.ui.LabelWidget( {
- *         label: 'plaintext label'
- *     } );
- *     var label2 = new OO.ui.LabelWidget( {
- *         label: $( '<a>' ).attr( 'href', 'default.html' ).text( 'jQuery label' )
- *     } );
- *     // Create a fieldset layout with fields for each example
- *     var fieldset = new OO.ui.FieldsetLayout();
+ *             label: 'plaintext label'
+ *         } ),
+ *         label2 = new OO.ui.LabelWidget( {
+ *             label: $( '<a>' ).attr( 'href', 'default.html' ).text( 'jQuery label' )
+ *         } ),
+ *         // Create a fieldset layout with fields for each example.
+ *         fieldset = new OO.ui.FieldsetLayout();
  *     fieldset.addItems( [
  *         new OO.ui.FieldLayout( label1 ),
  *         new OO.ui.FieldLayout( label2 )
  *     ] );
- *     $( 'body' ).append( fieldset.$element );
+ *     $( document.body ).append( fieldset.$element );
  *
  * @class
  * @extends OO.ui.Widget
@@ -4266,7 +4295,7 @@ OO.ui.LabelWidget.static.tagName = 'label';
  *     };
  *
  *     var windowManager = new OO.ui.WindowManager();
- *     $( 'body' ).append( windowManager.$element );
+ *     $( document.body ).append( windowManager.$element );
  *
  *     var dialog = new MessageDialog();
  *     windowManager.addWindows( [ dialog ] );
@@ -5176,14 +5205,14 @@ OO.ui.mixin.ClippableElement.prototype.clip = function () {
  * Unlike most widgets, PopupWidget is initially hidden and must be shown by calling #toggle.
  *
  *     @example
- *     // A popup widget.
+ *     // A PopupWidget.
  *     var popup = new OO.ui.PopupWidget( {
  *         $content: $( '<p>Hi there!</p>' ),
  *         padded: true,
  *         width: 300
  *     } );
  *
- *     $( 'body' ).append( popup.$element );
+ *     $( document.body ).append( popup.$element );
  *     // To display the popup, toggle the visibility to 'true'.
  *     popup.toggle( true );
  *
@@ -5951,7 +5980,7 @@ OO.ui.mixin.PopupElement.prototype.getPopup = function () {
  * which is used to display additional information or options.
  *
  *     @example
- *     // Example of a popup button.
+ *     // A PopupButtonWidget.
  *     var popupButton = new OO.ui.PopupButtonWidget( {
  *         label: 'Popup button with options',
  *         icon: 'menu',
@@ -5962,7 +5991,7 @@ OO.ui.mixin.PopupElement.prototype.getPopup = function () {
  *         }
  *     } );
  *     // Append the button to the DOM.
- *     $( 'body' ).append( popupButton.$element );
+ *     $( document.body ).append( popupButton.$element );
  *
  * @class
  * @extends OO.ui.ButtonWidget
@@ -6131,6 +6160,7 @@ OO.ui.mixin.ItemWidget.prototype.setElementGroup = function ( group ) {
  * @mixins OO.ui.mixin.LabelElement
  * @mixins OO.ui.mixin.FlaggedElement
  * @mixins OO.ui.mixin.AccessKeyedElement
+ * @mixins OO.ui.mixin.TitledElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -6147,6 +6177,7 @@ OO.ui.OptionWidget = function OoUiOptionWidget( config ) {
        OO.ui.mixin.LabelElement.call( this, config );
        OO.ui.mixin.FlaggedElement.call( this, config );
        OO.ui.mixin.AccessKeyedElement.call( this, config );
+       OO.ui.mixin.TitledElement.call( this, config );
 
        // Properties
        this.selected = false;
@@ -6171,6 +6202,7 @@ OO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.ItemWidget );
 OO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.LabelElement );
 OO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.FlaggedElement );
 OO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.AccessKeyedElement );
+OO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.TitledElement );
 
 /* Static Properties */
 
@@ -6356,7 +6388,7 @@ OO.ui.OptionWidget.prototype.getMatchText = function () {
  * information, please see the [OOUI documentation on MediaWiki][1].
  *
  *     @example
- *     // Example of a select widget with three options
+ *     // A select widget with three options.
  *     var select = new OO.ui.SelectWidget( {
  *         items: [
  *             new OO.ui.OptionWidget( {
@@ -6373,7 +6405,7 @@ OO.ui.OptionWidget.prototype.getMatchText = function () {
  *             } )
  *         ]
  *     } );
- *     $( 'body' ).append( select.$element );
+ *     $( document.body ).append( select.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options
  *
@@ -7300,7 +7332,7 @@ OO.ui.SelectWidget.prototype.clearItems = function () {
 /**
  * Set the DOM element which has focus while the user is interacting with this SelectWidget.
  *
- * Currently this is just used to set `aria-activedescendant` on it.
+ * This is used to set `aria-activedescendant` and `aria-expanded` on it.
  *
  * @protected
  * @param {jQuery} $focusOwner
@@ -7317,7 +7349,7 @@ OO.ui.SelectWidget.prototype.setFocusOwner = function ( $focusOwner ) {
  * [OOUI documentation on MediaWiki][1].
  *
  *     @example
- *     // Decorated options in a select widget
+ *     // Decorated options in a select widget.
  *     var select = new OO.ui.SelectWidget( {
  *         items: [
  *             new OO.ui.DecoratedOptionWidget( {
@@ -7332,7 +7364,7 @@ OO.ui.SelectWidget.prototype.setFocusOwner = function ( $focusOwner ) {
  *             } )
  *         ]
  *     } );
- *     $( 'body' ).append( select.$element );
+ *     $( document.body ).append( select.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options
  *
@@ -7411,7 +7443,7 @@ OO.ui.MenuOptionWidget.static.scrollIntoViewOnSelect = true;
  * {@link OO.ui.MenuOptionWidget menu options}. MenuSectionOptionWidgets cannot be highlighted or selected.
  *
  *     @example
- *     var myDropdown = new OO.ui.DropdownWidget( {
+ *     var dropdown = new OO.ui.DropdownWidget( {
  *         menu: {
  *             items: [
  *                 new OO.ui.MenuSectionOptionWidget( {
@@ -7435,7 +7467,7 @@ OO.ui.MenuOptionWidget.static.scrollIntoViewOnSelect = true;
  *             ]
  *         }
  *     } );
- *     $( 'body' ).append( myDropdown.$element );
+ *     $( document.body ).append( dropdown.$element );
  *
  * @class
  * @extends OO.ui.DecoratedOptionWidget
@@ -7555,6 +7587,7 @@ OO.ui.MenuSelectWidget = function OoUiMenuSelectWidget( config ) {
        // TODO: Find a better way to handle post-constructor setup
        this.visible = false;
        this.$element.addClass( 'oo-ui-element-hidden' );
+       this.$focusOwner.attr( 'aria-expanded', 'false' );
 };
 
 /* Setup */
@@ -7928,7 +7961,7 @@ OO.ui.MenuSelectWidget.prototype.toggle = function ( visible ) {
  * OO.ui.DropdownInputWidget instead.
  *
  *     @example
- *     // Example: A DropdownWidget with a menu that contains three options
+ *     // A DropdownWidget with a menu that contains three options.
  *     var dropDown = new OO.ui.DropdownWidget( {
  *         label: 'Dropdown menu: Select a menu option',
  *         menu: {
@@ -7949,11 +7982,11 @@ OO.ui.MenuSelectWidget.prototype.toggle = function ( visible ) {
  *         }
  *     } );
  *
- *     $( 'body' ).append( dropDown.$element );
+ *     $( document.body ).append( dropDown.$element );
  *
  *     dropDown.getMenu().selectItemByData( 'b' );
  *
- *     dropDown.getMenu().findSelectedItem().getData(); // returns 'b'
+ *     dropDown.getMenu().findSelectedItem().getData(); // Returns 'b'.
  *
  * For more information, please see the [OOUI documentation on MediaWiki] [1].
  *
@@ -8016,6 +8049,7 @@ OO.ui.DropdownWidget = function OoUiDropdownWidget( config ) {
        this.$handle
                .addClass( 'oo-ui-dropdownWidget-handle' )
                .attr( {
+                       type: 'button',
                        'aria-owns': this.menu.getElementId(),
                        'aria-haspopup': 'listbox'
                } )
@@ -8078,10 +8112,6 @@ OO.ui.DropdownWidget.prototype.onMenuSelect = function ( item ) {
  */
 OO.ui.DropdownWidget.prototype.onMenuToggle = function ( isVisible ) {
        this.$element.toggleClass( 'oo-ui-dropdownWidget-open', isVisible );
-       this.$handle.attr(
-               'aria-expanded',
-               this.$element.hasClass( 'oo-ui-dropdownWidget-open' ).toString()
-       );
 };
 
 /**
@@ -8233,23 +8263,21 @@ OO.ui.RadioOptionWidget.prototype.setDisabled = function ( disabled ) {
  *     @example
  *     // A RadioSelectWidget with RadioOptions.
  *     var option1 = new OO.ui.RadioOptionWidget( {
- *         data: 'a',
- *         label: 'Selected radio option'
- *     } );
- *
- *     var option2 = new OO.ui.RadioOptionWidget( {
- *         data: 'b',
- *         label: 'Unselected radio option'
- *     } );
- *
- *     var radioSelect=new OO.ui.RadioSelectWidget( {
- *         items: [ option1, option2 ]
- *      } );
+ *             data: 'a',
+ *             label: 'Selected radio option'
+ *         } ),
+ *         option2 = new OO.ui.RadioOptionWidget( {
+ *             data: 'b',
+ *             label: 'Unselected radio option'
+ *         } );
+ *         radioSelect = new OO.ui.RadioSelectWidget( {
+ *             items: [ option1, option2 ]
+ *         } );
  *
  *     // Select 'option 1' using the RadioSelectWidget's selectItem() method.
  *     radioSelect.selectItem( option1 );
  *
- *     $( 'body' ).append( radioSelect.$element );
+ *     $( document.body ).append( radioSelect.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options
 
@@ -8297,6 +8325,7 @@ OO.mixinClass( OO.ui.RadioSelectWidget, OO.ui.mixin.TabIndexedElement );
  * @extends OO.ui.Widget
  * @mixins OO.ui.mixin.ItemWidget
  * @mixins OO.ui.mixin.LabelElement
+ * @mixins OO.ui.mixin.TitledElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -8312,6 +8341,7 @@ OO.ui.MultioptionWidget = function OoUiMultioptionWidget( config ) {
        // Mixin constructors
        OO.ui.mixin.ItemWidget.call( this );
        OO.ui.mixin.LabelElement.call( this, config );
+       OO.ui.mixin.TitledElement.call( this, config );
 
        // Properties
        this.selected = null;
@@ -8328,6 +8358,7 @@ OO.ui.MultioptionWidget = function OoUiMultioptionWidget( config ) {
 OO.inheritClass( OO.ui.MultioptionWidget, OO.ui.Widget );
 OO.mixinClass( OO.ui.MultioptionWidget, OO.ui.mixin.ItemWidget );
 OO.mixinClass( OO.ui.MultioptionWidget, OO.ui.mixin.LabelElement );
+OO.mixinClass( OO.ui.MultioptionWidget, OO.ui.mixin.TitledElement );
 
 /* Events */
 
@@ -8380,6 +8411,7 @@ OO.ui.MultioptionWidget.prototype.setSelected = function ( state ) {
  * @abstract
  * @extends OO.ui.Widget
  * @mixins OO.ui.mixin.GroupWidget
+ * @mixins OO.ui.mixin.TitledElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -8394,6 +8426,7 @@ OO.ui.MultiselectWidget = function OoUiMultiselectWidget( config ) {
 
        // Mixin constructors
        OO.ui.mixin.GroupWidget.call( this, config );
+       OO.ui.mixin.TitledElement.call( this, config );
 
        // Events
        this.aggregate( { change: 'select' } );
@@ -8414,6 +8447,7 @@ OO.ui.MultiselectWidget = function OoUiMultiselectWidget( config ) {
 
 OO.inheritClass( OO.ui.MultiselectWidget, OO.ui.Widget );
 OO.mixinClass( OO.ui.MultiselectWidget, OO.ui.mixin.GroupWidget );
+OO.mixinClass( OO.ui.MultiselectWidget, OO.ui.mixin.TitledElement );
 
 /* Events */
 
@@ -8601,21 +8635,18 @@ OO.ui.CheckboxMultioptionWidget.prototype.onKeyDown = function ( e ) {
  *     @example
  *     // A CheckboxMultiselectWidget with CheckboxMultioptions.
  *     var option1 = new OO.ui.CheckboxMultioptionWidget( {
- *         data: 'a',
- *         selected: true,
- *         label: 'Selected checkbox'
- *     } );
- *
- *     var option2 = new OO.ui.CheckboxMultioptionWidget( {
- *         data: 'b',
- *         label: 'Unselected checkbox'
- *     } );
- *
- *     var multiselect=new OO.ui.CheckboxMultiselectWidget( {
- *         items: [ option1, option2 ]
- *      } );
- *
- *     $( 'body' ).append( multiselect.$element );
+ *             data: 'a',
+ *             selected: true,
+ *             label: 'Selected checkbox'
+ *         } ),
+ *         option2 = new OO.ui.CheckboxMultioptionWidget( {
+ *             data: 'b',
+ *             label: 'Unselected checkbox'
+ *         } ),
+ *         multiselect = new OO.ui.CheckboxMultiselectWidget( {
+ *             items: [ option1, option2 ]
+ *         } );
+ *     $( document.body ).append( multiselect.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options
  *
@@ -8770,13 +8801,19 @@ OO.ui.CheckboxMultiselectWidget.prototype.simulateLabelClick = function () {
  *     } );
  *     var progressBar2 = new OO.ui.ProgressBarWidget();
  *
- *     // Create a FieldsetLayout to layout progress bars
+ *     // 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'})
+ *         new OO.ui.FieldLayout( progressBar1, {
+ *             label: 'Determinate',
+ *             align: 'top'
+ *         } ),
+ *         new OO.ui.FieldLayout( progressBar2, {
+ *             label: 'Indeterminate',
+ *             align: 'top'
+ *         } )
  *     ] );
- *     $( 'body' ).append( fieldset.$element );
+ *     $( document.body ).append( fieldset.$element );
  *
  * @class
  * @extends OO.ui.Widget
@@ -9103,7 +9140,7 @@ OO.ui.InputWidget.prototype.restorePreInfuseState = function ( state ) {
 };
 
 /**
- * Data widget intended for creating 'hidden'-type inputs.
+ * Data widget intended for creating `<input type="hidden">` inputs.
  *
  * @class
  * @extends OO.ui.Widget
@@ -9155,7 +9192,7 @@ OO.ui.HiddenInputWidget.static.tagName = 'input';
  *         icon: 'check',
  *         value: 'check'
  *     } );
- *     $( 'body' ).append( button.$element );
+ *     $( document.body ).append( button.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs#Button_inputs
  *
@@ -9165,7 +9202,6 @@ OO.ui.HiddenInputWidget.static.tagName = 'input';
  * @mixins OO.ui.mixin.IconElement
  * @mixins OO.ui.mixin.IndicatorElement
  * @mixins OO.ui.mixin.LabelElement
- * @mixins OO.ui.mixin.TitledElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -9195,7 +9231,6 @@ OO.ui.ButtonInputWidget = function OoUiButtonInputWidget( config ) {
        OO.ui.mixin.IconElement.call( this, config );
        OO.ui.mixin.IndicatorElement.call( this, config );
        OO.ui.mixin.LabelElement.call( this, config );
-       OO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$input } ) );
 
        // Initialization
        if ( !config.useInputTag ) {
@@ -9211,7 +9246,6 @@ OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.ButtonElement );
 OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.IconElement );
 OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.IndicatorElement );
 OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.LabelElement );
-OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.TitledElement );
 
 /* Static Properties */
 
@@ -9295,28 +9329,28 @@ OO.ui.ButtonInputWidget.prototype.getInputId = function () {
  * This widget can be used inside an HTML form, such as a OO.ui.FormLayout.
  *
  *     @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'
- *     } );
+ *     // An example of selected, unselected, and disabled checkbox inputs.
+ *     var checkbox1 = new OO.ui.CheckboxInputWidget( {
+ *             value: 'a',
+ *              selected: true
+ *         } ),
+ *         checkbox2 = new OO.ui.CheckboxInputWidget( {
+ *             value: 'b'
+ *         } ),
+ *         checkbox3 = new OO.ui.CheckboxInputWidget( {
+ *             value:'c',
+ *             disabled: true
+ *         } ),
+ *         // Create a fieldset layout with fields for each checkbox.
+ *         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 );
+ *     $( document.body ).append( fieldset.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs
  *
@@ -9466,7 +9500,7 @@ OO.ui.CheckboxInputWidget.prototype.restorePreInfuseState = function ( state ) {
  * This and OO.ui.RadioSelectInputWidget support the same configuration options.
  *
  *     @example
- *     // Example: A DropdownInputWidget with three options
+ *     // A DropdownInputWidget with three options.
  *     var dropdownInput = new OO.ui.DropdownInputWidget( {
  *         options: [
  *             { data: 'a', label: 'First' },
@@ -9474,13 +9508,12 @@ OO.ui.CheckboxInputWidget.prototype.restorePreInfuseState = function ( state ) {
  *             { data: 'c', label: 'Third' }
  *         ]
  *     } );
- *     $( 'body' ).append( dropdownInput.$element );
+ *     $( document.body ).append( dropdownInput.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs
  *
  * @class
  * @extends OO.ui.InputWidget
- * @mixins OO.ui.mixin.TitledElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -9506,9 +9539,6 @@ OO.ui.DropdownInputWidget = function OoUiDropdownInputWidget( config ) {
        // Use this instead of setOptions() because this.$input is not set up yet.
        this.setOptionsData( config.options || [] );
 
-       // Mixin constructors
-       OO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.dropdownWidget.$handle } ) );
-
        // Parent constructor
        OO.ui.DropdownInputWidget.parent.call( this, config );
 
@@ -9520,12 +9550,12 @@ OO.ui.DropdownInputWidget = function OoUiDropdownInputWidget( config ) {
                .addClass( 'oo-ui-dropdownInputWidget' )
                .append( this.dropdownWidget.$element );
        this.setTabIndexedElement( this.dropdownWidget.$tabIndexed );
+       this.setTitledElement( this.dropdownWidget.$handle );
 };
 
 /* Setup */
 
 OO.inheritClass( OO.ui.DropdownInputWidget, OO.ui.InputWidget );
-OO.mixinClass( OO.ui.DropdownInputWidget, OO.ui.mixin.TitledElement );
 
 /* Methods */
 
@@ -9742,7 +9772,7 @@ OO.ui.DropdownInputWidget.prototype.blur = function () {
  *         new OO.ui.FieldLayout( radio2, { label: 'Unselected', align: 'inline' } ),
  *         new OO.ui.FieldLayout( radio3, { label: 'Disabled', align: 'inline' } ),
  *     ] );
- *     $( 'body' ).append( fieldset.$element );
+ *     $( document.body ).append( fieldset.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs
  *
@@ -9866,7 +9896,7 @@ OO.ui.RadioInputWidget.prototype.restorePreInfuseState = function ( state ) {
  * This and OO.ui.DropdownInputWidget support the same configuration options.
  *
  *     @example
- *     // Example: A RadioSelectInputWidget with three options
+ *     // A RadioSelectInputWidget with three options
  *     var radioSelectInput = new OO.ui.RadioSelectInputWidget( {
  *         options: [
  *             { data: 'a', label: 'First' },
@@ -9874,7 +9904,7 @@ OO.ui.RadioInputWidget.prototype.restorePreInfuseState = function ( state ) {
  *             { data: 'c', label: 'Third' }
  *         ]
  *     } );
- *     $( 'body' ).append( radioSelectInput.$element );
+ *     $( document.body ).append( radioSelectInput.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs
  *
@@ -10045,15 +10075,15 @@ OO.ui.RadioSelectInputWidget.prototype.blur = function () {
  * more information about input widgets.
  *
  *     @example
- *     // Example: A CheckboxMultiselectInputWidget with three options
+ *     // A CheckboxMultiselectInputWidget with three options.
  *     var multiselectInput = new OO.ui.CheckboxMultiselectInputWidget( {
  *         options: [
  *             { data: 'a', label: 'First' },
- *             { data: 'b', label: 'Second'},
+ *             { data: 'b', label: 'Second' },
  *             { data: 'c', label: 'Third' }
  *         ]
  *     } );
- *     $( 'body' ).append( multiselectInput.$element );
+ *     $( document.body ).append( multiselectInput.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs
  *
@@ -10288,11 +10318,11 @@ OO.ui.CheckboxMultiselectInputWidget.prototype.focus = function () {
  * This widget can be used inside an HTML form, such as a OO.ui.FormLayout.
  *
  *     @example
- *     // Example of a text input widget
+ *     // A TextInputWidget.
  *     var textInput = new OO.ui.TextInputWidget( {
  *         value: 'Text input'
  *     } )
- *     $( 'body' ).append( textInput.$element );
+ *     $( document.body ).append( textInput.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs
  *
@@ -10350,7 +10380,6 @@ OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
        this.readOnly = false;
        this.required = false;
        this.validate = null;
-       this.styleHeight = null;
        this.scrollWidth = null;
 
        this.setValidation( config.validate );
@@ -10982,6 +11011,12 @@ OO.ui.TextInputWidget.prototype.positionLabel = function () {
 };
 
 /**
+ * SearchInputWidgets are TextInputWidgets with `type="search"` assigned and feature a
+ * {@link OO.ui.mixin.IconElement search icon} by default.
+ * Please see the [OOUI documentation on MediaWiki] [1] for more information and examples.
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs#SearchInputWidget
+ *
  * @class
  * @extends OO.ui.TextInputWidget
  *
@@ -11076,6 +11111,23 @@ OO.ui.SearchInputWidget.prototype.setReadOnly = function ( state ) {
 };
 
 /**
+ * MultilineTextInputWidgets, like HTML textareas, are featuring customization options to
+ * configure number of rows visible. In addition, these widgets can be autosized to fit user
+ * inputs and can show {@link OO.ui.mixin.IconElement icons} and
+ * {@link OO.ui.mixin.IndicatorElement indicators}.
+ * Please see the [OOUI documentation on MediaWiki] [1] for more information and examples.
+ *
+ * This widget can be used inside an HTML form, such as a OO.ui.FormLayout.
+ *
+ *     @example
+ *     // A MultilineTextInputWidget.
+ *     var multilineTextInput = new OO.ui.MultilineTextInputWidget( {
+ *         value: 'Text input on multiple lines'
+ *     } )
+ *     $( 'body' ).append( multilineTextInput.$element );
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs#MultilineTextInputWidget
+ *
  * @class
  * @extends OO.ui.TextInputWidget
  *
@@ -11097,6 +11149,7 @@ OO.ui.MultilineTextInputWidget = function OoUiMultilineTextInputWidget( config )
 
        // Properties
        this.autosize = !!config.autosize;
+       this.styleHeight = null;
        this.minRows = config.rows !== undefined ? config.rows : '';
        this.maxRows = config.maxRows || Math.max( 2 * ( this.minRows || 0 ), 10 );
 
@@ -11306,7 +11359,7 @@ OO.ui.MultilineTextInputWidget.prototype.restorePreInfuseState = function ( stat
  * For more information about menus and options, please see the [OOUI documentation on MediaWiki][1].
  *
  *     @example
- *     // Example: A ComboBoxInputWidget.
+ *     // A ComboBoxInputWidget.
  *     var comboBox = new OO.ui.ComboBoxInputWidget( {
  *         value: 'Option 1',
  *         options: [
@@ -11315,7 +11368,7 @@ OO.ui.MultilineTextInputWidget.prototype.restorePreInfuseState = function ( stat
  *             { data: 'Option 3' }
  *         ]
  *     } );
- *     $( 'body' ).append( comboBox.$element );
+ *     $( document.body ).append( comboBox.$element );
  *
  *     @example
  *     // Example: A ComboBoxInputWidget with additional option labels.
@@ -11336,7 +11389,7 @@ OO.ui.MultilineTextInputWidget.prototype.restorePreInfuseState = function ( stat
  *             }
  *         ]
  *     } );
- *     $( 'body' ).append( comboBox.$element );
+ *     $( document.body ).append( comboBox.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options#Menu_selects_and_options
  *
@@ -11406,7 +11459,6 @@ OO.ui.ComboBoxInputWidget = function OoUiComboBoxInputWidget( config ) {
        // Initialization
        this.$input.attr( {
                role: 'combobox',
-               'aria-expanded': 'false',
                'aria-owns': this.menu.getElementId(),
                'aria-autocomplete': 'list'
        } );
@@ -11970,7 +12022,7 @@ OO.ui.FieldLayout.prototype.createHelpElement = function ( help, $overlay ) {
  *         }
  *     );
  *
- *     $( 'body' ).append( actionFieldLayout.$element );
+ *     $( document.body ).append( actionFieldLayout.$element );
  *
  * @class
  * @extends OO.ui.FieldLayout
@@ -12041,7 +12093,7 @@ OO.inheritClass( OO.ui.ActionFieldLayout, OO.ui.FieldLayout );
  *             label: 'Field Two'
  *         } )
  *     ] );
- *     $( 'body' ).append( fieldset.$element );
+ *     $( document.body ).append( fieldset.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Layouts/Fields_and_Fieldsets
  *
@@ -12173,7 +12225,7 @@ OO.ui.FieldsetLayout.static.tagName = 'fieldset';
  *         action: '/api/formhandler',
  *         method: 'get'
  *     } )
- *     $( 'body' ).append( form.$element );
+ *     $( document.body ).append( form.$element );
  *
  * @class
  * @extends OO.ui.Layout
@@ -12269,7 +12321,7 @@ OO.ui.FormLayout.prototype.onFormSubmit = function () {
  *         padded: true,
  *         $content: $( '<p>A panel layout with padding and a frame.</p>' )
  *     } );
- *     $( 'body' ).append( panel.$element );
+ *     $( document.body ).append( panel.$element );
  *
  * @class
  * @extends OO.ui.Layout
@@ -12339,7 +12391,7 @@ OO.ui.PanelLayout.prototype.focus = function () {
  *         new OO.ui.TextInputWidget( { value: 'Text' } )
  *       ]
  *     } );
- *     $( 'body' ).append( layout.$element );
+ *     $( document.body ).append( layout.$element );
  *
  * @class
  * @extends OO.ui.Layout
@@ -12377,14 +12429,14 @@ OO.mixinClass( OO.ui.HorizontalLayout, OO.ui.mixin.GroupElement );
  * (to adjust the value in increments) to allow the user to enter a number.
  *
  *     @example
- *     // Example: A NumberInputWidget.
+ *     // A NumberInputWidget.
  *     var numberInput = new OO.ui.NumberInputWidget( {
  *         label: 'NumberInputWidget',
  *         input: { value: 5 },
  *         min: 1,
  *         max: 10
  *     } );
- *     $( 'body' ).append( numberInput.$element );
+ *     $( document.body ).append( numberInput.$element );
  *
  * @class
  * @extends OO.ui.TextInputWidget
index 2799b58..af9ca34 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["../src/intro.js.txt","../src/core.js","../src/mixin.js","../src/Element.js","../src/HtmlSnippet.js","../src/Layout.js","../src/Widget.js","../src/Theme.js","../src/mixins/TabIndexedElement.js","../src/mixins/ButtonElement.js","../src/mixins/GroupElement.js","../src/mixins/LabelElement.js","../src/mixins/IconElement.js","../src/mixins/IndicatorElement.js","../src/mixins/FlaggedElement.js","../src/mixins/TitledElement.js","../src/mixins/AccessKeyedElement.js","../src/widgets/ButtonWidget.js","../src/widgets/ButtonGroupWidget.js","../src/widgets/IconWidget.js","../src/widgets/IndicatorWidget.js","../src/widgets/LabelWidget.js","../src/mixins/PendingElement.js","../src/mixins/FloatableElement.js","../src/mixins/ClippableElement.js","../src/widgets/PopupWidget.js","../src/mixins/PopupElement.js","../src/widgets/PopupButtonWidget.js","../src/mixins/GroupWidget.js","../src/mixins/ItemWidget.js","../src/widgets/OptionWidget.js","../src/widgets/SelectWidget.js","../src/widgets/DecoratedOptionWidget.js","../src/widgets/MenuOptionWidget.js","../src/widgets/MenuSectionOptionWidget.js","../src/widgets/MenuSelectWidget.js","../src/widgets/DropdownWidget.js","../src/widgets/RadioOptionWidget.js","../src/widgets/RadioSelectWidget.js","../src/widgets/MultioptionWidget.js","../src/widgets/MultiselectWidget.js","../src/widgets/CheckboxMultioptionWidget.js","../src/widgets/CheckboxMultiselectWidget.js","../src/widgets/ProgressBarWidget.js","../src/widgets/InputWidget.js","../src/widgets/HiddenInputWidget.js","../src/widgets/ButtonInputWidget.js","../src/widgets/CheckboxInputWidget.js","../src/widgets/DropdownInputWidget.js","../src/widgets/RadioInputWidget.js","../src/widgets/RadioSelectInputWidget.js","../src/widgets/CheckboxMultiselectInputWidget.js","../src/widgets/TextInputWidget.js","../src/widgets/SearchInputWidget.js","../src/widgets/MultilineTextInputWidget.js","../src/widgets/ComboBoxInputWidget.js","../src/layouts/FieldLayout.js","../src/layouts/ActionFieldLayout.js","../src/layouts/FieldsetLayout.js","../src/layouts/FormLayout.js","../src/layouts/PanelLayout.js","../src/layouts/HorizontalLayout.js","../src/widgets/NumberInputWidget.js","../src/outro.js.txt"],"names":[],"mappings":"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","file":"oojs-ui-core.js","sourcesContent":["( function ( OO ) {\n\n'use strict';\n","/**\n * Namespace for all classes, static methods and static properties.\n *\n * @class\n * @singleton\n */\nOO.ui = {};\n\nOO.ui.bind = $.proxy;\n\n/**\n * @property {Object}\n */\nOO.ui.Keys = {\n\tUNDEFINED: 0,\n\tBACKSPACE: 8,\n\tDELETE: 46,\n\tLEFT: 37,\n\tRIGHT: 39,\n\tUP: 38,\n\tDOWN: 40,\n\tENTER: 13,\n\tEND: 35,\n\tHOME: 36,\n\tTAB: 9,\n\tPAGEUP: 33,\n\tPAGEDOWN: 34,\n\tESCAPE: 27,\n\tSHIFT: 16,\n\tSPACE: 32\n};\n\n/**\n * Constants for MouseEvent.which\n *\n * @property {Object}\n */\nOO.ui.MouseButtons = {\n\tLEFT: 1,\n\tMIDDLE: 2,\n\tRIGHT: 3\n};\n\n/**\n * @property {number}\n * @private\n */\nOO.ui.elementId = 0;\n\n/**\n * Generate a unique ID for element\n *\n * @return {string} ID\n */\nOO.ui.generateElementId = function () {\n\tOO.ui.elementId++;\n\treturn 'ooui-' + OO.ui.elementId;\n};\n\n/**\n * Check if an element is focusable.\n * Inspired by :focusable in jQueryUI v1.11.4 - 2015-04-14\n *\n * @param {jQuery} $element Element to test\n * @return {boolean} Element is focusable\n */\nOO.ui.isFocusableElement = function ( $element ) {\n\tvar nodeName,\n\t\telement = $element[ 0 ];\n\n\t// Anything disabled is not focusable\n\tif ( element.disabled ) {\n\t\treturn false;\n\t}\n\n\t// Check if the element is visible\n\tif ( !(\n\t\t// This is quicker than calling $element.is( ':visible' )\n\t\t$.expr.pseudos.visible( element ) &&\n\t\t// Check that all parents are visible\n\t\t!$element.parents().addBack().filter( function () {\n\t\t\treturn $.css( this, 'visibility' ) === 'hidden';\n\t\t} ).length\n\t) ) {\n\t\treturn false;\n\t}\n\n\t// Check if the element is ContentEditable, which is the string 'true'\n\tif ( element.contentEditable === 'true' ) {\n\t\treturn true;\n\t}\n\n\t// Anything with a non-negative numeric tabIndex is focusable.\n\t// Use .prop to avoid browser bugs\n\tif ( $element.prop( 'tabIndex' ) >= 0 ) {\n\t\treturn true;\n\t}\n\n\t// Some element types are naturally focusable\n\t// (indexOf is much faster than regex in Chrome and about the\n\t// same in FF: https://jsperf.com/regex-vs-indexof-array2)\n\tnodeName = element.nodeName.toLowerCase();\n\tif ( [ 'input', 'select', 'textarea', 'button', 'object' ].indexOf( nodeName ) !== -1 ) {\n\t\treturn true;\n\t}\n\n\t// Links and areas are focusable if they have an href\n\tif ( ( nodeName === 'a' || nodeName === 'area' ) && $element.attr( 'href' ) !== undefined ) {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n/**\n * Find a focusable child\n *\n * @param {jQuery} $container Container to search in\n * @param {boolean} [backwards] Search backwards\n * @return {jQuery} Focusable child, or an empty jQuery object if none found\n */\nOO.ui.findFocusable = function ( $container, backwards ) {\n\tvar $focusable = $( [] ),\n\t\t// $focusableCandidates is a superset of things that\n\t\t// could get matched by isFocusableElement\n\t\t$focusableCandidates = $container\n\t\t\t.find( 'input, select, textarea, button, object, a, area, [contenteditable], [tabindex]' );\n\n\tif ( backwards ) {\n\t\t$focusableCandidates = Array.prototype.reverse.call( $focusableCandidates );\n\t}\n\n\t$focusableCandidates.each( function () {\n\t\tvar $this = $( this );\n\t\tif ( OO.ui.isFocusableElement( $this ) ) {\n\t\t\t$focusable = $this;\n\t\t\treturn false;\n\t\t}\n\t} );\n\treturn $focusable;\n};\n\n/**\n * Get the user's language and any fallback languages.\n *\n * These language codes are used to localize user interface elements in the user's language.\n *\n * In environments that provide a localization system, this function should be overridden to\n * return the user's language(s). The default implementation returns English (en) only.\n *\n * @return {string[]} Language codes, in descending order of priority\n */\nOO.ui.getUserLanguages = function () {\n\treturn [ 'en' ];\n};\n\n/**\n * Get a value in an object keyed by language code.\n *\n * @param {Object.<string,Mixed>} obj Object keyed by language code\n * @param {string|null} [lang] Language code, if omitted or null defaults to any user language\n * @param {string} [fallback] Fallback code, used if no matching language can be found\n * @return {Mixed} Local value\n */\nOO.ui.getLocalValue = function ( obj, lang, fallback ) {\n\tvar i, len, langs;\n\n\t// Requested language\n\tif ( obj[ lang ] ) {\n\t\treturn obj[ lang ];\n\t}\n\t// Known user language\n\tlangs = OO.ui.getUserLanguages();\n\tfor ( i = 0, len = langs.length; i < len; i++ ) {\n\t\tlang = langs[ i ];\n\t\tif ( obj[ lang ] ) {\n\t\t\treturn obj[ lang ];\n\t\t}\n\t}\n\t// Fallback language\n\tif ( obj[ fallback ] ) {\n\t\treturn obj[ fallback ];\n\t}\n\t// First existing language\n\tfor ( lang in obj ) {\n\t\treturn obj[ lang ];\n\t}\n\n\treturn undefined;\n};\n\n/**\n * Check if a node is contained within another node\n *\n * Similar to jQuery#contains except a list of containers can be supplied\n * and a boolean argument allows you to include the container in the match list\n *\n * @param {HTMLElement|HTMLElement[]} containers Container node(s) to search in\n * @param {HTMLElement} contained Node to find\n * @param {boolean} [matchContainers] Include the container(s) in the list of nodes to match, otherwise only match descendants\n * @return {boolean} The node is in the list of target nodes\n */\nOO.ui.contains = function ( containers, contained, matchContainers ) {\n\tvar i;\n\tif ( !Array.isArray( containers ) ) {\n\t\tcontainers = [ containers ];\n\t}\n\tfor ( i = containers.length - 1; i >= 0; i-- ) {\n\t\tif ( ( matchContainers && contained === containers[ i ] ) || $.contains( containers[ i ], contained ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/**\n * Return a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing.\n *\n * Ported from: http://underscorejs.org/underscore.js\n *\n * @param {Function} func Function to debounce\n * @param {number} [wait=0] Wait period in milliseconds\n * @param {boolean} [immediate] Trigger on leading edge\n * @return {Function} Debounced function\n */\nOO.ui.debounce = function ( func, wait, immediate ) {\n\tvar timeout;\n\treturn function () {\n\t\tvar context = this,\n\t\t\targs = arguments,\n\t\t\tlater = function () {\n\t\t\t\ttimeout = null;\n\t\t\t\tif ( !immediate ) {\n\t\t\t\t\tfunc.apply( context, args );\n\t\t\t\t}\n\t\t\t};\n\t\tif ( immediate && !timeout ) {\n\t\t\tfunc.apply( context, args );\n\t\t}\n\t\tif ( !timeout || wait ) {\n\t\t\tclearTimeout( timeout );\n\t\t\ttimeout = setTimeout( later, wait );\n\t\t}\n\t};\n};\n\n/**\n * Puts a console warning with provided message.\n *\n * @param {string} message Message\n */\nOO.ui.warnDeprecation = function ( message ) {\n\tif ( OO.getProp( window, 'console', 'warn' ) !== undefined ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn( message );\n\t}\n};\n\n/**\n * Returns a function, that, when invoked, will only be triggered at most once\n * during a given window of time. If called again during that window, it will\n * wait until the window ends and then trigger itself again.\n *\n * As it's not knowable to the caller whether the function will actually run\n * when the wrapper is called, return values from the function are entirely\n * discarded.\n *\n * @param {Function} func Function to throttle\n * @param {number} wait Throttle window length, in milliseconds\n * @return {Function} Throttled function\n */\nOO.ui.throttle = function ( func, wait ) {\n\tvar context, args, timeout,\n\t\tprevious = 0,\n\t\trun = function () {\n\t\t\ttimeout = null;\n\t\t\tprevious = OO.ui.now();\n\t\t\tfunc.apply( context, args );\n\t\t};\n\treturn function () {\n\t\t// Check how long it's been since the last time the function was\n\t\t// called, and whether it's more or less than the requested throttle\n\t\t// period. If it's less, run the function immediately. If it's more,\n\t\t// set a timeout for the remaining time -- but don't replace an\n\t\t// existing timeout, since that'd indefinitely prolong the wait.\n\t\tvar remaining = wait - ( OO.ui.now() - previous );\n\t\tcontext = this;\n\t\targs = arguments;\n\t\tif ( remaining <= 0 ) {\n\t\t\t// Note: unless wait was ridiculously large, this means we'll\n\t\t\t// automatically run the first time the function was called in a\n\t\t\t// given period. (If you provide a wait period larger than the\n\t\t\t// current Unix timestamp, you *deserve* unexpected behavior.)\n\t\t\tclearTimeout( timeout );\n\t\t\trun();\n\t\t} else if ( !timeout ) {\n\t\t\ttimeout = setTimeout( run, remaining );\n\t\t}\n\t};\n};\n\n/**\n * A (possibly faster) way to get the current timestamp as an integer\n *\n * @return {number} Current timestamp, in milliseconds since the Unix epoch\n */\nOO.ui.now = Date.now || function () {\n\treturn new Date().getTime();\n};\n\n/**\n * Reconstitute a JavaScript object corresponding to a widget created by\n * the PHP implementation.\n *\n * This is an alias for `OO.ui.Element.static.infuse()`.\n *\n * @param {string|HTMLElement|jQuery} idOrNode\n *   A DOM id (if a string) or node for the widget to infuse.\n * @param {Object} [config] Configuration options\n * @return {OO.ui.Element}\n *   The `OO.ui.Element` corresponding to this (infusable) document node.\n */\nOO.ui.infuse = function ( idOrNode, config ) {\n\treturn OO.ui.Element.static.infuse( idOrNode, config );\n};\n\n( function () {\n\t/**\n\t * Message store for the default implementation of OO.ui.msg\n\t *\n\t * Environments that provide a localization system should not use this, but should override\n\t * OO.ui.msg altogether.\n\t *\n\t * @private\n\t */\n\tvar messages = {\n\t\t// Tool tip for a button that moves items in a list down one place\n\t\t'ooui-outline-control-move-down': 'Move item down',\n\t\t// Tool tip for a button that moves items in a list up one place\n\t\t'ooui-outline-control-move-up': 'Move item up',\n\t\t// Tool tip for a button that removes items from a list\n\t\t'ooui-outline-control-remove': 'Remove item',\n\t\t// Label for the toolbar group that contains a list of all other available tools\n\t\t'ooui-toolbar-more': 'More',\n\t\t// Label for the fake tool that expands the full list of tools in a toolbar group\n\t\t'ooui-toolgroup-expand': 'More',\n\t\t// Label for the fake tool that collapses the full list of tools in a toolbar group\n\t\t'ooui-toolgroup-collapse': 'Fewer',\n\t\t// Default label for the tooltip for the button that removes a tag item\n\t\t'ooui-item-remove': 'Remove',\n\t\t// Default label for the accept button of a confirmation dialog\n\t\t'ooui-dialog-message-accept': 'OK',\n\t\t// Default label for the reject button of a confirmation dialog\n\t\t'ooui-dialog-message-reject': 'Cancel',\n\t\t// Title for process dialog error description\n\t\t'ooui-dialog-process-error': 'Something went wrong',\n\t\t// Label for process dialog dismiss error button, visible when describing errors\n\t\t'ooui-dialog-process-dismiss': 'Dismiss',\n\t\t// Label for process dialog retry action button, visible when describing only recoverable errors\n\t\t'ooui-dialog-process-retry': 'Try again',\n\t\t// Label for process dialog retry action button, visible when describing only warnings\n\t\t'ooui-dialog-process-continue': 'Continue',\n\t\t// Label for button in combobox input that triggers its dropdown\n\t\t'ooui-combobox-button-label': 'Dropdown for combobox',\n\t\t// Label for the file selection widget's select file button\n\t\t'ooui-selectfile-button-select': 'Select a file',\n\t\t// Label for the file selection widget if file selection is not supported\n\t\t'ooui-selectfile-not-supported': 'File selection is not supported',\n\t\t// Label for the file selection widget when no file is currently selected\n\t\t'ooui-selectfile-placeholder': 'No file is selected',\n\t\t// Label for the file selection widget's drop target\n\t\t'ooui-selectfile-dragdrop-placeholder': 'Drop file here',\n\t\t// Label for the help icon attached to a form field\n\t\t'ooui-field-help': 'Help'\n\t};\n\n\t/**\n\t * Get a localized message.\n\t *\n\t * After the message key, message parameters may optionally be passed. In the default implementation,\n\t * any occurrences of $1 are replaced with the first parameter, $2 with the second parameter, etc.\n\t * Alternative implementations of OO.ui.msg may use any substitution system they like, as long as\n\t * they support unnamed, ordered message parameters.\n\t *\n\t * In environments that provide a localization system, this function should be overridden to\n\t * return the message translated in the user's language. The default implementation always returns\n\t * English messages. An example of doing this with [jQuery.i18n](https://github.com/wikimedia/jquery.i18n)\n\t * follows.\n\t *\n\t *     @example\n\t *     var i, iLen, button,\n\t *         messagePath = 'oojs-ui/dist/i18n/',\n\t *         languages = [ $.i18n().locale, 'ur', 'en' ],\n\t *         languageMap = {};\n\t *\n\t *     for ( i = 0, iLen = languages.length; i < iLen; i++ ) {\n\t *         languageMap[ languages[ i ] ] = messagePath + languages[ i ].toLowerCase() + '.json';\n\t *     }\n\t *\n\t *     $.i18n().load( languageMap ).done( function() {\n\t *         // Replace the built-in `msg` only once we've loaded the internationalization.\n\t *         // OOUI uses `OO.ui.deferMsg` for all initially-loaded messages. So long as\n\t *         // you put off creating any widgets until this promise is complete, no English\n\t *         // will be displayed.\n\t *         OO.ui.msg = $.i18n;\n\t *\n\t *         // A button displaying \"OK\" in the default locale\n\t *         button = new OO.ui.ButtonWidget( {\n\t *             label: OO.ui.msg( 'ooui-dialog-message-accept' ),\n\t *             icon: 'check'\n\t *         } );\n\t *         $( 'body' ).append( button.$element );\n\t *\n\t *         // A button displaying \"OK\" in Urdu\n\t *         $.i18n().locale = 'ur';\n\t *         button = new OO.ui.ButtonWidget( {\n\t *             label: OO.ui.msg( 'ooui-dialog-message-accept' ),\n\t *             icon: 'check'\n\t *         } );\n\t *         $( 'body' ).append( button.$element );\n\t *     } );\n\t *\n\t * @param {string} key Message key\n\t * @param {...Mixed} [params] Message parameters\n\t * @return {string} Translated message with parameters substituted\n\t */\n\tOO.ui.msg = function ( key ) {\n\t\tvar message = messages[ key ],\n\t\t\tparams = Array.prototype.slice.call( arguments, 1 );\n\t\tif ( typeof message === 'string' ) {\n\t\t\t// Perform $1 substitution\n\t\t\tmessage = message.replace( /\\$(\\d+)/g, function ( unused, n ) {\n\t\t\t\tvar i = parseInt( n, 10 );\n\t\t\t\treturn params[ i - 1 ] !== undefined ? params[ i - 1 ] : '$' + n;\n\t\t\t} );\n\t\t} else {\n\t\t\t// Return placeholder if message not found\n\t\t\tmessage = '[' + key + ']';\n\t\t}\n\t\treturn message;\n\t};\n}() );\n\n/**\n * Package a message and arguments for deferred resolution.\n *\n * Use this when you are statically specifying a message and the message may not yet be present.\n *\n * @param {string} key Message key\n * @param {...Mixed} [params] Message parameters\n * @return {Function} Function that returns the resolved message when executed\n */\nOO.ui.deferMsg = function () {\n\tvar args = arguments;\n\treturn function () {\n\t\treturn OO.ui.msg.apply( OO.ui, args );\n\t};\n};\n\n/**\n * Resolve a message.\n *\n * If the message is a function it will be executed, otherwise it will pass through directly.\n *\n * @param {Function|string} msg Deferred message, or message text\n * @return {string} Resolved message\n */\nOO.ui.resolveMsg = function ( msg ) {\n\tif ( typeof msg === 'function' ) {\n\t\treturn msg();\n\t}\n\treturn msg;\n};\n\n/**\n * @param {string} url\n * @return {boolean}\n */\nOO.ui.isSafeUrl = function ( url ) {\n\t// Keep this function in sync with php/Tag.php\n\tvar i, protocolWhitelist;\n\n\tfunction stringStartsWith( haystack, needle ) {\n\t\treturn haystack.substr( 0, needle.length ) === needle;\n\t}\n\n\tprotocolWhitelist = [\n\t\t'bitcoin', 'ftp', 'ftps', 'geo', 'git', 'gopher', 'http', 'https', 'irc', 'ircs',\n\t\t'magnet', 'mailto', 'mms', 'news', 'nntp', 'redis', 'sftp', 'sip', 'sips', 'sms', 'ssh',\n\t\t'svn', 'tel', 'telnet', 'urn', 'worldwind', 'xmpp'\n\t];\n\n\tif ( url === '' ) {\n\t\treturn true;\n\t}\n\n\tfor ( i = 0; i < protocolWhitelist.length; i++ ) {\n\t\tif ( stringStartsWith( url, protocolWhitelist[ i ] + ':' ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\t// This matches '//' too\n\tif ( stringStartsWith( url, '/' ) || stringStartsWith( url, './' ) ) {\n\t\treturn true;\n\t}\n\tif ( stringStartsWith( url, '?' ) || stringStartsWith( url, '#' ) ) {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n/**\n * Check if the user has a 'mobile' device.\n *\n * For our purposes this means the user is primarily using an\n * on-screen keyboard, touch input instead of a mouse and may\n * have a physically small display.\n *\n * It is left up to implementors to decide how to compute this\n * so the default implementation always returns false.\n *\n * @return {boolean} User is on a mobile device\n */\nOO.ui.isMobile = function () {\n\treturn false;\n};\n\n/**\n * Get the additional spacing that should be taken into account when displaying elements that are\n * clipped to the viewport, e.g. dropdown menus and popups. This is meant to be overridden to avoid\n * such menus overlapping any fixed headers/toolbars/navigation used by the site.\n *\n * @return {Object} Object with the properties 'top', 'right', 'bottom', 'left', each representing\n *     the extra spacing from that edge of viewport (in pixels)\n */\nOO.ui.getViewportSpacing = function () {\n\treturn {\n\t\ttop: 0,\n\t\tright: 0,\n\t\tbottom: 0,\n\t\tleft: 0\n\t};\n};\n\n/**\n * Get the default overlay, which is used by various widgets when they are passed `$overlay: true`.\n * See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n *\n * @return {jQuery} Default overlay node\n */\nOO.ui.getDefaultOverlay = function () {\n\tif ( !OO.ui.$defaultOverlay ) {\n\t\tOO.ui.$defaultOverlay = $( '<div>' ).addClass( 'oo-ui-defaultOverlay' );\n\t\t$( 'body' ).append( OO.ui.$defaultOverlay );\n\t}\n\treturn OO.ui.$defaultOverlay;\n};\n","/*!\n * Mixin namespace.\n */\n\n/**\n * Namespace for OOUI mixins.\n *\n * Mixins are named according to the type of object they are intended to\n * be mixed in to.  For example, OO.ui.mixin.GroupElement is intended to be\n * mixed in to an instance of OO.ui.Element, and OO.ui.mixin.GroupWidget\n * is intended to be mixed in to an instance of OO.ui.Widget.\n *\n * @class\n * @singleton\n */\nOO.ui.mixin = {};\n","/**\n * Each Element represents a rendering in the DOM—a button or an icon, for example, or anything\n * that is visible to a user. Unlike {@link OO.ui.Widget widgets}, plain elements usually do not have events\n * connected to them and can't be interacted with.\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string[]} [classes] The names of the CSS classes to apply to the element. CSS styles are added\n *  to the top level (e.g., the outermost div) of the element. See the [OOUI documentation on MediaWiki][2]\n *  for an example.\n *  [2]: https://www.mediawiki.org/wiki/OOUI/Widgets/Buttons_and_Switches#cssExample\n * @cfg {string} [id] The HTML id attribute used in the rendered tag.\n * @cfg {string} [text] Text to insert\n * @cfg {Array} [content] An array of content elements to append (after #text).\n *  Strings will be html-escaped; use an OO.ui.HtmlSnippet to append raw HTML.\n *  Instances of OO.ui.Element will have their $element appended.\n * @cfg {jQuery} [$content] Content elements to append (after #text).\n * @cfg {jQuery} [$element] Wrapper element. Defaults to a new element with #getTagName.\n * @cfg {Mixed} [data] Custom data of any type or combination of types (e.g., string, number, array, object).\n *  Data can also be specified with the #setData method.\n */\nOO.ui.Element = function OoUiElement( config ) {\n\tif ( OO.ui.isDemo ) {\n\t\tthis.initialConfig = config;\n\t}\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$ = $;\n\tthis.elementId = null;\n\tthis.visible = true;\n\tthis.data = config.data;\n\tthis.$element = config.$element ||\n\t\t$( document.createElement( this.getTagName() ) );\n\tthis.elementGroup = null;\n\n\t// Initialization\n\tif ( Array.isArray( config.classes ) ) {\n\t\tthis.$element.addClass( config.classes );\n\t}\n\tif ( config.id ) {\n\t\tthis.setElementId( config.id );\n\t}\n\tif ( config.text ) {\n\t\tthis.$element.text( config.text );\n\t}\n\tif ( config.content ) {\n\t\t// The `content` property treats plain strings as text; use an\n\t\t// HtmlSnippet to append HTML content.  `OO.ui.Element`s get their\n\t\t// appropriate $element appended.\n\t\tthis.$element.append( config.content.map( function ( v ) {\n\t\t\tif ( typeof v === 'string' ) {\n\t\t\t\t// Escape string so it is properly represented in HTML.\n\t\t\t\treturn document.createTextNode( v );\n\t\t\t} else if ( v instanceof OO.ui.HtmlSnippet ) {\n\t\t\t\t// Bypass escaping.\n\t\t\t\treturn v.toString();\n\t\t\t} else if ( v instanceof OO.ui.Element ) {\n\t\t\t\treturn v.$element;\n\t\t\t}\n\t\t\treturn v;\n\t\t} ) );\n\t}\n\tif ( config.$content ) {\n\t\t// The `$content` property treats plain strings as HTML.\n\t\tthis.$element.append( config.$content );\n\t}\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.Element );\n\n/* Static Properties */\n\n/**\n * The name of the HTML tag used by the element.\n *\n * The static value may be ignored if the #getTagName method is overridden.\n *\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.Element.static.tagName = 'div';\n\n/* Static Methods */\n\n/**\n * Reconstitute a JavaScript object corresponding to a widget created\n * by the PHP implementation.\n *\n * @param {string|HTMLElement|jQuery} idOrNode\n *   A DOM id (if a string) or node for the widget to infuse.\n * @param {Object} [config] Configuration options\n * @return {OO.ui.Element}\n *   The `OO.ui.Element` corresponding to this (infusable) document node.\n *   For `Tag` objects emitted on the HTML side (used occasionally for content)\n *   the value returned is a newly-created Element wrapping around the existing\n *   DOM node.\n */\nOO.ui.Element.static.infuse = function ( idOrNode, config ) {\n\tvar obj = OO.ui.Element.static.unsafeInfuse( idOrNode, config, false );\n\n\tif ( typeof idOrNode === 'string' ) {\n\t\t// IDs deprecated since 0.29.7\n\t\tOO.ui.warnDeprecation(\n\t\t\t'Passing a string ID to infuse is deprecated. Use an HTMLElement or jQuery collection instead.'\n\t\t);\n\t}\n\t// Verify that the type matches up.\n\t// FIXME: uncomment after T89721 is fixed, see T90929.\n\t/*\n\tif ( !( obj instanceof this['class'] ) ) {\n\t\tthrow new Error( 'Infusion type mismatch!' );\n\t}\n\t*/\n\treturn obj;\n};\n\n/**\n * Implementation helper for `infuse`; skips the type check and has an\n * extra property so that only the top-level invocation touches the DOM.\n *\n * @private\n * @param {string|HTMLElement|jQuery} idOrNode\n * @param {Object} [config] Configuration options\n * @param {jQuery.Promise} [domPromise] A promise that will be resolved\n *     when the top-level widget of this infusion is inserted into DOM,\n *     replacing the original node; only used internally.\n * @return {OO.ui.Element}\n */\nOO.ui.Element.static.unsafeInfuse = function ( idOrNode, config, domPromise ) {\n\t// look for a cached result of a previous infusion.\n\tvar id, $elem, error, data, cls, parts, parent, obj, top, state, infusedChildren;\n\tif ( typeof idOrNode === 'string' ) {\n\t\tid = idOrNode;\n\t\t$elem = $( document.getElementById( id ) );\n\t} else {\n\t\t$elem = $( idOrNode );\n\t\tid = $elem.attr( 'id' );\n\t}\n\tif ( !$elem.length ) {\n\t\tif ( typeof idOrNode === 'string' ) {\n\t\t\terror = 'Widget not found: ' + idOrNode;\n\t\t} else if ( idOrNode && idOrNode.selector ) {\n\t\t\terror = 'Widget not found: ' + idOrNode.selector;\n\t\t} else {\n\t\t\terror = 'Widget not found';\n\t\t}\n\t\tthrow new Error( error );\n\t}\n\tif ( $elem[ 0 ].oouiInfused ) {\n\t\t$elem = $elem[ 0 ].oouiInfused;\n\t}\n\tdata = $elem.data( 'ooui-infused' );\n\tif ( data ) {\n\t\t// cached!\n\t\tif ( data === true ) {\n\t\t\tthrow new Error( 'Circular dependency! ' + id );\n\t\t}\n\t\tif ( domPromise ) {\n\t\t\t// pick up dynamic state, like focus, value of form inputs, scroll position, etc.\n\t\t\tstate = data.constructor.static.gatherPreInfuseState( $elem, data );\n\t\t\t// restore dynamic state after the new element is re-inserted into DOM under infused parent\n\t\t\tdomPromise.done( data.restorePreInfuseState.bind( data, state ) );\n\t\t\tinfusedChildren = $elem.data( 'ooui-infused-children' );\n\t\t\tif ( infusedChildren && infusedChildren.length ) {\n\t\t\t\tinfusedChildren.forEach( function ( data ) {\n\t\t\t\t\tvar state = data.constructor.static.gatherPreInfuseState( $elem, data );\n\t\t\t\t\tdomPromise.done( data.restorePreInfuseState.bind( data, state ) );\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t\treturn data;\n\t}\n\tdata = $elem.attr( 'data-ooui' );\n\tif ( !data ) {\n\t\tthrow new Error( 'No infusion data found: ' + id );\n\t}\n\ttry {\n\t\tdata = JSON.parse( data );\n\t} catch ( _ ) {\n\t\tdata = null;\n\t}\n\tif ( !( data && data._ ) ) {\n\t\tthrow new Error( 'No valid infusion data found: ' + id );\n\t}\n\tif ( data._ === 'Tag' ) {\n\t\t// Special case: this is a raw Tag; wrap existing node, don't rebuild.\n\t\treturn new OO.ui.Element( $.extend( {}, config, { $element: $elem } ) );\n\t}\n\tparts = data._.split( '.' );\n\tcls = OO.getProp.apply( OO, [ window ].concat( parts ) );\n\tif ( cls === undefined ) {\n\t\tthrow new Error( 'Unknown widget type: id: ' + id + ', class: ' + data._ );\n\t}\n\n\t// Verify that we're creating an OO.ui.Element instance\n\tparent = cls.parent;\n\n\twhile ( parent !== undefined ) {\n\t\tif ( parent === OO.ui.Element ) {\n\t\t\t// Safe\n\t\t\tbreak;\n\t\t}\n\n\t\tparent = parent.parent;\n\t}\n\n\tif ( parent !== OO.ui.Element ) {\n\t\tthrow new Error( 'Unknown widget type: id: ' + id + ', class: ' + data._ );\n\t}\n\n\tif ( !domPromise ) {\n\t\ttop = $.Deferred();\n\t\tdomPromise = top.promise();\n\t}\n\t$elem.data( 'ooui-infused', true ); // prevent loops\n\tdata.id = id; // implicit\n\tinfusedChildren = [];\n\tdata = OO.copy( data, null, function deserialize( value ) {\n\t\tvar infused;\n\t\tif ( OO.isPlainObject( value ) ) {\n\t\t\tif ( value.tag ) {\n\t\t\t\tinfused = OO.ui.Element.static.unsafeInfuse( value.tag, config, domPromise );\n\t\t\t\tinfusedChildren.push( infused );\n\t\t\t\t// Flatten the structure\n\t\t\t\tinfusedChildren.push.apply( infusedChildren, infused.$element.data( 'ooui-infused-children' ) || [] );\n\t\t\t\tinfused.$element.removeData( 'ooui-infused-children' );\n\t\t\t\treturn infused;\n\t\t\t}\n\t\t\tif ( value.html !== undefined ) {\n\t\t\t\treturn new OO.ui.HtmlSnippet( value.html );\n\t\t\t}\n\t\t}\n\t} );\n\t// allow widgets to reuse parts of the DOM\n\tdata = cls.static.reusePreInfuseDOM( $elem[ 0 ], data );\n\t// pick up dynamic state, like focus, value of form inputs, scroll position, etc.\n\tstate = cls.static.gatherPreInfuseState( $elem[ 0 ], data );\n\t// rebuild widget\n\t// eslint-disable-next-line new-cap\n\tobj = new cls( $.extend( {}, config, data ) );\n\t// If anyone is holding a reference to the old DOM element,\n\t// let's allow them to OO.ui.infuse() it and do what they expect, see T105828.\n\t// Do not use jQuery.data(), as using it on detached nodes leaks memory in 1.x line by design.\n\t$elem[ 0 ].oouiInfused = obj.$element;\n\t// now replace old DOM with this new DOM.\n\tif ( top ) {\n\t\t// An efficient constructor might be able to reuse the entire DOM tree of the original element,\n\t\t// so only mutate the DOM if we need to.\n\t\tif ( $elem[ 0 ] !== obj.$element[ 0 ] ) {\n\t\t\t$elem.replaceWith( obj.$element );\n\t\t}\n\t\ttop.resolve();\n\t}\n\tobj.$element.data( 'ooui-infused', obj );\n\tobj.$element.data( 'ooui-infused-children', infusedChildren );\n\t// set the 'data-ooui' attribute so we can identify infused widgets\n\tobj.$element.attr( 'data-ooui', '' );\n\t// restore dynamic state after the new element is inserted into DOM\n\tdomPromise.done( obj.restorePreInfuseState.bind( obj, state ) );\n\treturn obj;\n};\n\n/**\n * Pick out parts of `node`'s DOM to be reused when infusing a widget.\n *\n * This method **must not** make any changes to the DOM, only find interesting pieces and add them\n * to `config` (which should then be returned). Actual DOM juggling should then be done by the\n * constructor, which will be given the enhanced config.\n *\n * @protected\n * @param {HTMLElement} node\n * @param {Object} config\n * @return {Object}\n */\nOO.ui.Element.static.reusePreInfuseDOM = function ( node, config ) {\n\treturn config;\n};\n\n/**\n * Gather the dynamic state (focus, value of form inputs, scroll position, etc.) of an HTML DOM node\n * (and its children) that represent an Element of the same class and the given configuration,\n * generated by the PHP implementation.\n *\n * This method is called just before `node` is detached from the DOM. The return value of this\n * function will be passed to #restorePreInfuseState after the newly created widget's #$element\n * is inserted into DOM to replace `node`.\n *\n * @protected\n * @param {HTMLElement} node\n * @param {Object} config\n * @return {Object}\n */\nOO.ui.Element.static.gatherPreInfuseState = function () {\n\treturn {};\n};\n\n/**\n * Get a jQuery function within a specific document.\n *\n * @static\n * @param {jQuery|HTMLElement|HTMLDocument|Window} context Context to bind the function to\n * @param {jQuery} [$iframe] HTML iframe element that contains the document, omit if document is\n *   not in an iframe\n * @return {Function} Bound jQuery function\n */\nOO.ui.Element.static.getJQuery = function ( context, $iframe ) {\n\tfunction wrapper( selector ) {\n\t\treturn $( selector, wrapper.context );\n\t}\n\n\twrapper.context = this.getDocument( context );\n\n\tif ( $iframe ) {\n\t\twrapper.$iframe = $iframe;\n\t}\n\n\treturn wrapper;\n};\n\n/**\n * Get the document of an element.\n *\n * @static\n * @param {jQuery|HTMLElement|HTMLDocument|Window} obj Object to get the document for\n * @return {HTMLDocument|null} Document object\n */\nOO.ui.Element.static.getDocument = function ( obj ) {\n\t// jQuery - selections created \"offscreen\" won't have a context, so .context isn't reliable\n\treturn ( obj[ 0 ] && obj[ 0 ].ownerDocument ) ||\n\t\t// Empty jQuery selections might have a context\n\t\tobj.context ||\n\t\t// HTMLElement\n\t\tobj.ownerDocument ||\n\t\t// Window\n\t\tobj.document ||\n\t\t// HTMLDocument\n\t\t( obj.nodeType === Node.DOCUMENT_NODE && obj ) ||\n\t\tnull;\n};\n\n/**\n * Get the window of an element or document.\n *\n * @static\n * @param {jQuery|HTMLElement|HTMLDocument|Window} obj Context to get the window for\n * @return {Window} Window object\n */\nOO.ui.Element.static.getWindow = function ( obj ) {\n\tvar doc = this.getDocument( obj );\n\treturn doc.defaultView;\n};\n\n/**\n * Get the direction of an element or document.\n *\n * @static\n * @param {jQuery|HTMLElement|HTMLDocument|Window} obj Context to get the direction for\n * @return {string} Text direction, either 'ltr' or 'rtl'\n */\nOO.ui.Element.static.getDir = function ( obj ) {\n\tvar isDoc, isWin;\n\n\tif ( obj instanceof $ ) {\n\t\tobj = obj[ 0 ];\n\t}\n\tisDoc = obj.nodeType === Node.DOCUMENT_NODE;\n\tisWin = obj.document !== undefined;\n\tif ( isDoc || isWin ) {\n\t\tif ( isWin ) {\n\t\t\tobj = obj.document;\n\t\t}\n\t\tobj = obj.body;\n\t}\n\treturn $( obj ).css( 'direction' );\n};\n\n/**\n * Get the offset between two frames.\n *\n * TODO: Make this function not use recursion.\n *\n * @static\n * @param {Window} from Window of the child frame\n * @param {Window} [to=window] Window of the parent frame\n * @param {Object} [offset] Offset to start with, used internally\n * @return {Object} Offset object, containing left and top properties\n */\nOO.ui.Element.static.getFrameOffset = function ( from, to, offset ) {\n\tvar i, len, frames, frame, rect;\n\n\tif ( !to ) {\n\t\tto = window;\n\t}\n\tif ( !offset ) {\n\t\toffset = { top: 0, left: 0 };\n\t}\n\tif ( from.parent === from ) {\n\t\treturn offset;\n\t}\n\n\t// Get iframe element\n\tframes = from.parent.document.getElementsByTagName( 'iframe' );\n\tfor ( i = 0, len = frames.length; i < len; i++ ) {\n\t\tif ( frames[ i ].contentWindow === from ) {\n\t\t\tframe = frames[ i ];\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Recursively accumulate offset values\n\tif ( frame ) {\n\t\trect = frame.getBoundingClientRect();\n\t\toffset.left += rect.left;\n\t\toffset.top += rect.top;\n\t\tif ( from !== to ) {\n\t\t\tthis.getFrameOffset( from.parent, offset );\n\t\t}\n\t}\n\treturn offset;\n};\n\n/**\n * Get the offset between two elements.\n *\n * The two elements may be in a different frame, but in that case the frame $element is in must\n * be contained in the frame $anchor is in.\n *\n * @static\n * @param {jQuery} $element Element whose position to get\n * @param {jQuery} $anchor Element to get $element's position relative to\n * @return {Object} Translated position coordinates, containing top and left properties\n */\nOO.ui.Element.static.getRelativePosition = function ( $element, $anchor ) {\n\tvar iframe, iframePos,\n\t\tpos = $element.offset(),\n\t\tanchorPos = $anchor.offset(),\n\t\telementDocument = this.getDocument( $element ),\n\t\tanchorDocument = this.getDocument( $anchor );\n\n\t// If $element isn't in the same document as $anchor, traverse up\n\twhile ( elementDocument !== anchorDocument ) {\n\t\tiframe = elementDocument.defaultView.frameElement;\n\t\tif ( !iframe ) {\n\t\t\tthrow new Error( '$element frame is not contained in $anchor frame' );\n\t\t}\n\t\tiframePos = $( iframe ).offset();\n\t\tpos.left += iframePos.left;\n\t\tpos.top += iframePos.top;\n\t\telementDocument = iframe.ownerDocument;\n\t}\n\tpos.left -= anchorPos.left;\n\tpos.top -= anchorPos.top;\n\treturn pos;\n};\n\n/**\n * Get element border sizes.\n *\n * @static\n * @param {HTMLElement} el Element to measure\n * @return {Object} Dimensions object with `top`, `left`, `bottom` and `right` properties\n */\nOO.ui.Element.static.getBorders = function ( el ) {\n\tvar doc = el.ownerDocument,\n\t\twin = doc.defaultView,\n\t\tstyle = win.getComputedStyle( el, null ),\n\t\t$el = $( el ),\n\t\ttop = parseFloat( style ? style.borderTopWidth : $el.css( 'borderTopWidth' ) ) || 0,\n\t\tleft = parseFloat( style ? style.borderLeftWidth : $el.css( 'borderLeftWidth' ) ) || 0,\n\t\tbottom = parseFloat( style ? style.borderBottomWidth : $el.css( 'borderBottomWidth' ) ) || 0,\n\t\tright = parseFloat( style ? style.borderRightWidth : $el.css( 'borderRightWidth' ) ) || 0;\n\n\treturn {\n\t\ttop: top,\n\t\tleft: left,\n\t\tbottom: bottom,\n\t\tright: right\n\t};\n};\n\n/**\n * Get dimensions of an element or window.\n *\n * @static\n * @param {HTMLElement|Window} el Element to measure\n * @return {Object} Dimensions object with `borders`, `scroll`, `scrollbar` and `rect` properties\n */\nOO.ui.Element.static.getDimensions = function ( el ) {\n\tvar $el, $win,\n\t\tdoc = el.ownerDocument || el.document,\n\t\twin = doc.defaultView;\n\n\tif ( win === el || el === doc.documentElement ) {\n\t\t$win = $( win );\n\t\treturn {\n\t\t\tborders: { top: 0, left: 0, bottom: 0, right: 0 },\n\t\t\tscroll: {\n\t\t\t\ttop: $win.scrollTop(),\n\t\t\t\tleft: $win.scrollLeft()\n\t\t\t},\n\t\t\tscrollbar: { right: 0, bottom: 0 },\n\t\t\trect: {\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\tbottom: $win.innerHeight(),\n\t\t\t\tright: $win.innerWidth()\n\t\t\t}\n\t\t};\n\t} else {\n\t\t$el = $( el );\n\t\treturn {\n\t\t\tborders: this.getBorders( el ),\n\t\t\tscroll: {\n\t\t\t\ttop: $el.scrollTop(),\n\t\t\t\tleft: $el.scrollLeft()\n\t\t\t},\n\t\t\tscrollbar: {\n\t\t\t\tright: $el.innerWidth() - el.clientWidth,\n\t\t\t\tbottom: $el.innerHeight() - el.clientHeight\n\t\t\t},\n\t\t\trect: el.getBoundingClientRect()\n\t\t};\n\t}\n};\n\n/**\n * Get the number of pixels that an element's content is scrolled to the left.\n *\n * Adapted from <https://github.com/othree/jquery.rtl-scroll-type>.\n * Original code copyright 2012 Wei-Ko Kao, licensed under the MIT License.\n *\n * This function smooths out browser inconsistencies (nicely described in the README at\n * <https://github.com/othree/jquery.rtl-scroll-type>) and produces a result consistent\n * with Firefox's 'scrollLeft', which seems the sanest.\n *\n * @static\n * @method\n * @param {HTMLElement|Window} el Element to measure\n * @return {number} Scroll position from the left.\n *  If the element's direction is LTR, this is a positive number between `0` (initial scroll position)\n *  and `el.scrollWidth - el.clientWidth` (furthest possible scroll position).\n *  If the element's direction is RTL, this is a negative number between `0` (initial scroll position)\n *  and `-el.scrollWidth + el.clientWidth` (furthest possible scroll position).\n */\nOO.ui.Element.static.getScrollLeft = ( function () {\n\tvar rtlScrollType = null;\n\n\tfunction test() {\n\t\tvar $definer = $( '<div>' ).attr( {\n\t\t\t\tdir: 'rtl',\n\t\t\t\tstyle: 'font-size: 14px; width: 1px; height: 1px; position: absolute; top: -1000px; overflow: scroll;'\n\t\t\t} ).text( 'A' ),\n\t\t\tdefiner = $definer[ 0 ];\n\n\t\t$definer.appendTo( 'body' );\n\t\tif ( definer.scrollLeft > 0 ) {\n\t\t\t// Safari, Chrome\n\t\t\trtlScrollType = 'default';\n\t\t} else {\n\t\t\tdefiner.scrollLeft = 1;\n\t\t\tif ( definer.scrollLeft === 0 ) {\n\t\t\t\t// Firefox, old Opera\n\t\t\t\trtlScrollType = 'negative';\n\t\t\t} else {\n\t\t\t\t// Internet Explorer, Edge\n\t\t\t\trtlScrollType = 'reverse';\n\t\t\t}\n\t\t}\n\t\t$definer.remove();\n\t}\n\n\treturn function getScrollLeft( el ) {\n\t\tvar isRoot = el.window === el ||\n\t\t\t\tel === el.ownerDocument.body ||\n\t\t\t\tel === el.ownerDocument.documentElement,\n\t\t\tscrollLeft = isRoot ? $( window ).scrollLeft() : el.scrollLeft,\n\t\t\t// All browsers use the correct scroll type ('negative') on the root, so don't\n\t\t\t// do any fixups when looking at the root element\n\t\t\tdirection = isRoot ? 'ltr' : $( el ).css( 'direction' );\n\n\t\tif ( direction === 'rtl' ) {\n\t\t\tif ( rtlScrollType === null ) {\n\t\t\t\ttest();\n\t\t\t}\n\t\t\tif ( rtlScrollType === 'reverse' ) {\n\t\t\t\tscrollLeft = -scrollLeft;\n\t\t\t} else if ( rtlScrollType === 'default' ) {\n\t\t\t\tscrollLeft = scrollLeft - el.scrollWidth + el.clientWidth;\n\t\t\t}\n\t\t}\n\n\t\treturn scrollLeft;\n\t};\n}() );\n\n/**\n * Get the root scrollable element of given element's document.\n *\n * On Blink-based browsers (Chrome etc.), `document.documentElement` can't be used to get or set\n * the scrollTop property; instead we have to use `document.body`. Changing and testing the value\n * lets us use 'body' or 'documentElement' based on what is working.\n *\n * https://code.google.com/p/chromium/issues/detail?id=303131\n *\n * @static\n * @param {HTMLElement} el Element to find root scrollable parent for\n * @return {HTMLElement} Scrollable parent, `document.body` or `document.documentElement`\n *     depending on browser\n */\nOO.ui.Element.static.getRootScrollableElement = function ( el ) {\n\tvar scrollTop, body;\n\n\tif ( OO.ui.scrollableElement === undefined ) {\n\t\tbody = el.ownerDocument.body;\n\t\tscrollTop = body.scrollTop;\n\t\tbody.scrollTop = 1;\n\n\t\t// In some browsers (observed in Chrome 56 on Linux Mint 18.1),\n\t\t// body.scrollTop doesn't become exactly 1, but a fractional value like 0.76\n\t\tif ( Math.round( body.scrollTop ) === 1 ) {\n\t\t\tbody.scrollTop = scrollTop;\n\t\t\tOO.ui.scrollableElement = 'body';\n\t\t} else {\n\t\t\tOO.ui.scrollableElement = 'documentElement';\n\t\t}\n\t}\n\n\treturn el.ownerDocument[ OO.ui.scrollableElement ];\n};\n\n/**\n * Get closest scrollable container.\n *\n * Traverses up until either a scrollable element or the root is reached, in which case the root\n * scrollable element will be returned (see #getRootScrollableElement).\n *\n * @static\n * @param {HTMLElement} el Element to find scrollable container for\n * @param {string} [dimension] Dimension of scrolling to look for; `x`, `y` or omit for either\n * @return {HTMLElement} Closest scrollable container\n */\nOO.ui.Element.static.getClosestScrollableContainer = function ( el, dimension ) {\n\tvar i, val,\n\t\t// Browsers do not correctly return the computed value of 'overflow' when 'overflow-x' and\n\t\t// 'overflow-y' have different values, so we need to check the separate properties.\n\t\tprops = [ 'overflow-x', 'overflow-y' ],\n\t\t$parent = $( el ).parent();\n\n\tif ( dimension === 'x' || dimension === 'y' ) {\n\t\tprops = [ 'overflow-' + dimension ];\n\t}\n\n\t// Special case for the document root (which doesn't really have any scrollable container, since\n\t// it is the ultimate scrollable container, but this is probably saner than null or exception)\n\tif ( $( el ).is( 'html, body' ) ) {\n\t\treturn this.getRootScrollableElement( el );\n\t}\n\n\twhile ( $parent.length ) {\n\t\tif ( $parent[ 0 ] === this.getRootScrollableElement( el ) ) {\n\t\t\treturn $parent[ 0 ];\n\t\t}\n\t\ti = props.length;\n\t\twhile ( i-- ) {\n\t\t\tval = $parent.css( props[ i ] );\n\t\t\t// We assume that elements with 'overflow' (in any direction) set to 'hidden' will never be\n\t\t\t// scrolled in that direction, but they can actually be scrolled programatically. The user can\n\t\t\t// unintentionally perform a scroll in such case even if the application doesn't scroll\n\t\t\t// programatically, e.g. when jumping to an anchor, or when using built-in find functionality.\n\t\t\t// This could cause funny issues...\n\t\t\tif ( val === 'auto' || val === 'scroll' ) {\n\t\t\t\treturn $parent[ 0 ];\n\t\t\t}\n\t\t}\n\t\t$parent = $parent.parent();\n\t}\n\t// The element is unattached... return something mostly sane\n\treturn this.getRootScrollableElement( el );\n};\n\n/**\n * Scroll element into view.\n *\n * @static\n * @param {HTMLElement} el Element to scroll into view\n * @param {Object} [config] Configuration options\n * @param {string} [config.duration='fast'] jQuery animation duration value\n * @param {string} [config.direction] Scroll in only one direction, e.g. 'x' or 'y', omit\n *  to scroll in both directions\n * @return {jQuery.Promise} Promise which resolves when the scroll is complete\n */\nOO.ui.Element.static.scrollIntoView = function ( el, config ) {\n\tvar position, animations, container, $container, elementDimensions, containerDimensions, $window,\n\t\tdeferred = $.Deferred();\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\tanimations = {};\n\tcontainer = this.getClosestScrollableContainer( el, config.direction );\n\t$container = $( container );\n\telementDimensions = this.getDimensions( el );\n\tcontainerDimensions = this.getDimensions( container );\n\t$window = $( this.getWindow( el ) );\n\n\t// Compute the element's position relative to the container\n\tif ( $container.is( 'html, body' ) ) {\n\t\t// If the scrollable container is the root, this is easy\n\t\tposition = {\n\t\t\ttop: elementDimensions.rect.top,\n\t\t\tbottom: $window.innerHeight() - elementDimensions.rect.bottom,\n\t\t\tleft: elementDimensions.rect.left,\n\t\t\tright: $window.innerWidth() - elementDimensions.rect.right\n\t\t};\n\t} else {\n\t\t// Otherwise, we have to subtract el's coordinates from container's coordinates\n\t\tposition = {\n\t\t\ttop: elementDimensions.rect.top - ( containerDimensions.rect.top + containerDimensions.borders.top ),\n\t\t\tbottom: containerDimensions.rect.bottom - containerDimensions.borders.bottom - containerDimensions.scrollbar.bottom - elementDimensions.rect.bottom,\n\t\t\tleft: elementDimensions.rect.left - ( containerDimensions.rect.left + containerDimensions.borders.left ),\n\t\t\tright: containerDimensions.rect.right - containerDimensions.borders.right - containerDimensions.scrollbar.right - elementDimensions.rect.right\n\t\t};\n\t}\n\n\tif ( !config.direction || config.direction === 'y' ) {\n\t\tif ( position.top < 0 ) {\n\t\t\tanimations.scrollTop = containerDimensions.scroll.top + position.top;\n\t\t} else if ( position.top > 0 && position.bottom < 0 ) {\n\t\t\tanimations.scrollTop = containerDimensions.scroll.top + Math.min( position.top, -position.bottom );\n\t\t}\n\t}\n\tif ( !config.direction || config.direction === 'x' ) {\n\t\tif ( position.left < 0 ) {\n\t\t\tanimations.scrollLeft = containerDimensions.scroll.left + position.left;\n\t\t} else if ( position.left > 0 && position.right < 0 ) {\n\t\t\tanimations.scrollLeft = containerDimensions.scroll.left + Math.min( position.left, -position.right );\n\t\t}\n\t}\n\tif ( !$.isEmptyObject( animations ) ) {\n\t\t$container.stop( true ).animate( animations, config.duration === undefined ? 'fast' : config.duration );\n\t\t$container.queue( function ( next ) {\n\t\t\tdeferred.resolve();\n\t\t\tnext();\n\t\t} );\n\t} else {\n\t\tdeferred.resolve();\n\t}\n\treturn deferred.promise();\n};\n\n/**\n * Force the browser to reconsider whether it really needs to render scrollbars inside the element\n * and reserve space for them, because it probably doesn't.\n *\n * Workaround primarily for <https://code.google.com/p/chromium/issues/detail?id=387290>, but also\n * similar bugs in other browsers. \"Just\" forcing a reflow is not sufficient in all cases, we need\n * to first actually detach (or hide, but detaching is simpler) all children, *then* force a reflow,\n * and then reattach (or show) them back.\n *\n * @static\n * @param {HTMLElement} el Element to reconsider the scrollbars on\n */\nOO.ui.Element.static.reconsiderScrollbars = function ( el ) {\n\tvar i, len, scrollLeft, scrollTop, nodes = [];\n\t// Save scroll position\n\tscrollLeft = el.scrollLeft;\n\tscrollTop = el.scrollTop;\n\t// Detach all children\n\twhile ( el.firstChild ) {\n\t\tnodes.push( el.firstChild );\n\t\tel.removeChild( el.firstChild );\n\t}\n\t// Force reflow\n\t// eslint-disable-next-line no-void\n\tvoid el.offsetHeight;\n\t// Reattach all children\n\tfor ( i = 0, len = nodes.length; i < len; i++ ) {\n\t\tel.appendChild( nodes[ i ] );\n\t}\n\t// Restore scroll position (no-op if scrollbars disappeared)\n\tel.scrollLeft = scrollLeft;\n\tel.scrollTop = scrollTop;\n};\n\n/* Methods */\n\n/**\n * Toggle visibility of an element.\n *\n * @param {boolean} [show] Make element visible, omit to toggle visibility\n * @fires visible\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.Element.prototype.toggle = function ( show ) {\n\tshow = show === undefined ? !this.visible : !!show;\n\n\tif ( show !== this.isVisible() ) {\n\t\tthis.visible = show;\n\t\tthis.$element.toggleClass( 'oo-ui-element-hidden', !this.visible );\n\t\tthis.emit( 'toggle', show );\n\t}\n\n\treturn this;\n};\n\n/**\n * Check if element is visible.\n *\n * @return {boolean} element is visible\n */\nOO.ui.Element.prototype.isVisible = function () {\n\treturn this.visible;\n};\n\n/**\n * Get element data.\n *\n * @return {Mixed} Element data\n */\nOO.ui.Element.prototype.getData = function () {\n\treturn this.data;\n};\n\n/**\n * Set element data.\n *\n * @param {Mixed} data Element data\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.Element.prototype.setData = function ( data ) {\n\tthis.data = data;\n\treturn this;\n};\n\n/**\n * Set the element has an 'id' attribute.\n *\n * @param {string} id\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.Element.prototype.setElementId = function ( id ) {\n\tthis.elementId = id;\n\tthis.$element.attr( 'id', id );\n\treturn this;\n};\n\n/**\n * Ensure that the element has an 'id' attribute, setting it to an unique value if it's missing,\n * and return its value.\n *\n * @return {string}\n */\nOO.ui.Element.prototype.getElementId = function () {\n\tif ( this.elementId === null ) {\n\t\tthis.setElementId( OO.ui.generateElementId() );\n\t}\n\treturn this.elementId;\n};\n\n/**\n * Check if element supports one or more methods.\n *\n * @param {string|string[]} methods Method or list of methods to check\n * @return {boolean} All methods are supported\n */\nOO.ui.Element.prototype.supports = function ( methods ) {\n\tvar i, len,\n\t\tsupport = 0;\n\n\tmethods = Array.isArray( methods ) ? methods : [ methods ];\n\tfor ( i = 0, len = methods.length; i < len; i++ ) {\n\t\tif ( typeof this[ methods[ i ] ] === 'function' ) {\n\t\t\tsupport++;\n\t\t}\n\t}\n\n\treturn methods.length === support;\n};\n\n/**\n * Update the theme-provided classes.\n *\n * @localdoc This is called in element mixins and widget classes any time state changes.\n *   Updating is debounced, minimizing overhead of changing multiple attributes and\n *   guaranteeing that theme updates do not occur within an element's constructor\n */\nOO.ui.Element.prototype.updateThemeClasses = function () {\n\tOO.ui.theme.queueUpdateElementClasses( this );\n};\n\n/**\n * Get the HTML tag name.\n *\n * Override this method to base the result on instance information.\n *\n * @return {string} HTML tag name\n */\nOO.ui.Element.prototype.getTagName = function () {\n\treturn this.constructor.static.tagName;\n};\n\n/**\n * Check if the element is attached to the DOM\n *\n * @return {boolean} The element is attached to the DOM\n */\nOO.ui.Element.prototype.isElementAttached = function () {\n\treturn $.contains( this.getElementDocument(), this.$element[ 0 ] );\n};\n\n/**\n * Get the DOM document.\n *\n * @return {HTMLDocument} Document object\n */\nOO.ui.Element.prototype.getElementDocument = function () {\n\t// Don't cache this in other ways either because subclasses could can change this.$element\n\treturn OO.ui.Element.static.getDocument( this.$element );\n};\n\n/**\n * Get the DOM window.\n *\n * @return {Window} Window object\n */\nOO.ui.Element.prototype.getElementWindow = function () {\n\treturn OO.ui.Element.static.getWindow( this.$element );\n};\n\n/**\n * Get closest scrollable container.\n *\n * @return {HTMLElement} Closest scrollable container\n */\nOO.ui.Element.prototype.getClosestScrollableElementContainer = function () {\n\treturn OO.ui.Element.static.getClosestScrollableContainer( this.$element[ 0 ] );\n};\n\n/**\n * Get group element is in.\n *\n * @return {OO.ui.mixin.GroupElement|null} Group element, null if none\n */\nOO.ui.Element.prototype.getElementGroup = function () {\n\treturn this.elementGroup;\n};\n\n/**\n * Set group element is in.\n *\n * @param {OO.ui.mixin.GroupElement|null} group Group element, null if none\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.Element.prototype.setElementGroup = function ( group ) {\n\tthis.elementGroup = group;\n\treturn this;\n};\n\n/**\n * Scroll element into view.\n *\n * @param {Object} [config] Configuration options\n * @return {jQuery.Promise} Promise which resolves when the scroll is complete\n */\nOO.ui.Element.prototype.scrollElementIntoView = function ( config ) {\n\tif (\n\t\t!this.isElementAttached() ||\n\t\t!this.isVisible() ||\n\t\t( this.getElementGroup() && !this.getElementGroup().isVisible() )\n\t) {\n\t\treturn $.Deferred().resolve();\n\t}\n\treturn OO.ui.Element.static.scrollIntoView( this.$element[ 0 ], config );\n};\n\n/**\n * Restore the pre-infusion dynamic state for this widget.\n *\n * This method is called after #$element has been inserted into DOM. The parameter is the return\n * value of #gatherPreInfuseState.\n *\n * @protected\n * @param {Object} state\n */\nOO.ui.Element.prototype.restorePreInfuseState = function () {\n};\n","/**\n * Wraps an HTML snippet for use with configuration values which default\n * to strings.  This bypasses the default html-escaping done to string\n * values.\n *\n * @class\n *\n * @constructor\n * @param {string} [content] HTML content\n */\nOO.ui.HtmlSnippet = function OoUiHtmlSnippet( content ) {\n\t// Properties\n\tthis.content = content;\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.HtmlSnippet );\n\n/* Methods */\n\n/**\n * Render into HTML.\n *\n * @return {string} Unchanged HTML snippet.\n */\nOO.ui.HtmlSnippet.prototype.toString = function () {\n\treturn this.content;\n};\n","/**\n * Layouts are containers for elements and are used to arrange other widgets of arbitrary type in a way\n * that is centrally controlled and can be updated dynamically. Layouts can be, and usually are, combined.\n * See {@link OO.ui.FieldsetLayout FieldsetLayout}, {@link OO.ui.FieldLayout FieldLayout}, {@link OO.ui.FormLayout FormLayout},\n * {@link OO.ui.PanelLayout PanelLayout}, {@link OO.ui.StackLayout StackLayout}, {@link OO.ui.PageLayout PageLayout},\n * {@link OO.ui.HorizontalLayout HorizontalLayout}, and {@link OO.ui.BookletLayout BookletLayout} for more information and examples.\n *\n * @abstract\n * @class\n * @extends OO.ui.Element\n * @mixins OO.EventEmitter\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.Layout = function OoUiLayout( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.Layout.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.EventEmitter.call( this );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-layout' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.Layout, OO.ui.Element );\nOO.mixinClass( OO.ui.Layout, OO.EventEmitter );\n\n/* Methods */\n\n/**\n * Reset scroll offsets\n *\n * @chainable\n * @return {OO.ui.Layout} The layout, for chaining\n */\nOO.ui.Layout.prototype.resetScroll = function () {\n\tthis.$element[ 0 ].scrollTop = 0;\n\t// TODO: Reset scrollLeft in an RTL-aware manner, see OO.ui.Element.static.getScrollLeft.\n\n\treturn this;\n};\n","/**\n * Widgets are compositions of one or more OOUI elements that users can both view\n * and interact with. All widgets can be configured and modified via a standard API,\n * and their state can change dynamically according to a model.\n *\n * @abstract\n * @class\n * @extends OO.ui.Element\n * @mixins OO.EventEmitter\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [disabled=false] Disable the widget. Disabled widgets cannot be used and their\n *  appearance reflects this state.\n */\nOO.ui.Widget = function OoUiWidget( config ) {\n\t// Initialize config\n\tconfig = $.extend( { disabled: false }, config );\n\n\t// Parent constructor\n\tOO.ui.Widget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.EventEmitter.call( this );\n\n\t// Properties\n\tthis.disabled = null;\n\tthis.wasDisabled = null;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-widget' );\n\tthis.setDisabled( !!config.disabled );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.Widget, OO.ui.Element );\nOO.mixinClass( OO.ui.Widget, OO.EventEmitter );\n\n/* Events */\n\n/**\n * @event disable\n *\n * A 'disable' event is emitted when the disabled state of the widget changes\n * (i.e. on disable **and** enable).\n *\n * @param {boolean} disabled Widget is disabled\n */\n\n/**\n * @event toggle\n *\n * A 'toggle' event is emitted when the visibility of the widget changes.\n *\n * @param {boolean} visible Widget is visible\n */\n\n/* Methods */\n\n/**\n * Check if the widget is disabled.\n *\n * @return {boolean} Widget is disabled\n */\nOO.ui.Widget.prototype.isDisabled = function () {\n\treturn this.disabled;\n};\n\n/**\n * Set the 'disabled' state of the widget.\n *\n * When a widget is disabled, it cannot be used and its appearance is updated to reflect this state.\n *\n * @param {boolean} disabled Disable widget\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.Widget.prototype.setDisabled = function ( disabled ) {\n\tvar isDisabled;\n\n\tthis.disabled = !!disabled;\n\tisDisabled = this.isDisabled();\n\tif ( isDisabled !== this.wasDisabled ) {\n\t\tthis.$element.toggleClass( 'oo-ui-widget-disabled', isDisabled );\n\t\tthis.$element.toggleClass( 'oo-ui-widget-enabled', !isDisabled );\n\t\tthis.$element.attr( 'aria-disabled', isDisabled.toString() );\n\t\tthis.emit( 'disable', isDisabled );\n\t\tthis.updateThemeClasses();\n\t}\n\tthis.wasDisabled = isDisabled;\n\n\treturn this;\n};\n\n/**\n * Update the disabled state, in case of changes in parent widget.\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.Widget.prototype.updateDisabled = function () {\n\tthis.setDisabled( this.disabled );\n\treturn this;\n};\n\n/**\n * Get an ID of a labelable node which is part of this widget, if any, to be used for `<label for>`\n * value.\n *\n * If this function returns null, the widget should have a meaningful #simulateLabelClick method\n * instead.\n *\n * @return {string|null} The ID of the labelable element\n */\nOO.ui.Widget.prototype.getInputId = function () {\n\treturn null;\n};\n\n/**\n * Simulate the behavior of clicking on a label (a HTML `<label>` element) bound to this input.\n * HTML only allows `<label>` to act on specific \"labelable\" elements; complex widgets might need to\n * override this method to provide intuitive, accessible behavior.\n *\n * By default, this does nothing. OO.ui.mixin.TabIndexedElement overrides it for focusable widgets.\n * Individual widgets may override it too.\n *\n * This method is called by OO.ui.LabelWidget and OO.ui.FieldLayout. It should not be called\n * directly.\n */\nOO.ui.Widget.prototype.simulateLabelClick = function () {\n};\n","/**\n * Theme logic.\n *\n * @abstract\n * @class\n *\n * @constructor\n */\nOO.ui.Theme = function OoUiTheme() {\n\tthis.elementClassesQueue = [];\n\tthis.debouncedUpdateQueuedElementClasses = OO.ui.debounce( this.updateQueuedElementClasses );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.Theme );\n\n/* Methods */\n\n/**\n * Get a list of classes to be applied to a widget.\n *\n * The 'on' and 'off' lists combined MUST contain keys for all classes the theme adds or removes,\n * otherwise state transitions will not work properly.\n *\n * @param {OO.ui.Element} element Element for which to get classes\n * @return {Object.<string,string[]>} Categorized class names with `on` and `off` lists\n */\nOO.ui.Theme.prototype.getElementClasses = function () {\n\treturn { on: [], off: [] };\n};\n\n/**\n * Update CSS classes provided by the theme.\n *\n * For elements with theme logic hooks, this should be called any time there's a state change.\n *\n * @param {OO.ui.Element} element Element for which to update classes\n */\nOO.ui.Theme.prototype.updateElementClasses = function ( element ) {\n\tvar $elements = $( [] ),\n\t\tclasses = this.getElementClasses( element );\n\n\tif ( element.$icon ) {\n\t\t$elements = $elements.add( element.$icon );\n\t}\n\tif ( element.$indicator ) {\n\t\t$elements = $elements.add( element.$indicator );\n\t}\n\n\t$elements\n\t\t.removeClass( classes.off )\n\t\t.addClass( classes.on );\n};\n\n/**\n * @private\n */\nOO.ui.Theme.prototype.updateQueuedElementClasses = function () {\n\tvar i;\n\tfor ( i = 0; i < this.elementClassesQueue.length; i++ ) {\n\t\tthis.updateElementClasses( this.elementClassesQueue[ i ] );\n\t}\n\t// Clear the queue\n\tthis.elementClassesQueue = [];\n};\n\n/**\n * Queue #updateElementClasses to be called for this element.\n *\n * @localdoc QUnit tests override this method to directly call #queueUpdateElementClasses,\n *   to make them synchronous.\n *\n * @param {OO.ui.Element} element Element for which to update classes\n */\nOO.ui.Theme.prototype.queueUpdateElementClasses = function ( element ) {\n\t// Keep items in the queue unique. Use lastIndexOf to start checking from the end because that's\n\t// the most common case (this method is often called repeatedly for the same element).\n\tif ( this.elementClassesQueue.lastIndexOf( element ) !== -1 ) {\n\t\treturn;\n\t}\n\tthis.elementClassesQueue.push( element );\n\tthis.debouncedUpdateQueuedElementClasses();\n};\n\n/**\n * Get the transition duration in milliseconds for dialogs opening/closing\n *\n * The dialog should be fully rendered this many milliseconds after the\n * ready process has executed.\n *\n * @return {number} Transition duration in milliseconds\n */\nOO.ui.Theme.prototype.getDialogTransitionDuration = function () {\n\treturn 0;\n};\n","/**\n * The TabIndexedElement class is an attribute mixin used to add additional functionality to an\n * element created by another class. The mixin provides a ‘tabIndex’ property, which specifies the\n * order in which users will navigate through the focusable elements via the \"tab\" key.\n *\n *     @example\n *     // TabIndexedElement is mixed into the ButtonWidget class\n *     // to provide a tabIndex property.\n *     var button1 = new OO.ui.ButtonWidget( {\n *         label: 'fourth',\n *         tabIndex: 4\n *     } );\n *     var button2 = new OO.ui.ButtonWidget( {\n *         label: 'second',\n *         tabIndex: 2\n *     } );\n *     var button3 = new OO.ui.ButtonWidget( {\n *         label: 'third',\n *         tabIndex: 3\n *     } );\n *     var button4 = new OO.ui.ButtonWidget( {\n *         label: 'first',\n *         tabIndex: 1\n *     } );\n *     $( 'body' ).append( button1.$element, button2.$element, button3.$element, button4.$element );\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$tabIndexed] The element that should use the tabindex functionality. By default,\n *  the functionality is applied to the element created by the class ($element). If a different element is specified, the tabindex\n *  functionality will be applied to it instead.\n * @cfg {string|number|null} [tabIndex=0] Number that specifies the element’s position in the tab-navigation\n *  order (e.g., 1 for the first focusable element). Use 0 to use the default navigation order; use -1\n *  to remove the element from the tab-navigation flow.\n */\nOO.ui.mixin.TabIndexedElement = function OoUiMixinTabIndexedElement( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( { tabIndex: 0 }, config );\n\n\t// Properties\n\tthis.$tabIndexed = null;\n\tthis.tabIndex = null;\n\n\t// Events\n\tthis.connect( this, { disable: 'onTabIndexedElementDisable' } );\n\n\t// Initialization\n\tthis.setTabIndex( config.tabIndex );\n\tthis.setTabIndexedElement( config.$tabIndexed || this.$element );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.TabIndexedElement );\n\n/* Methods */\n\n/**\n * Set the element that should use the tabindex functionality.\n *\n * This method is used to retarget a tabindex mixin so that its functionality applies\n * to the specified element. If an element is currently using the functionality, the mixin’s\n * effect on that element is removed before the new element is set up.\n *\n * @param {jQuery} $tabIndexed Element that should use the tabindex functionality\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.TabIndexedElement.prototype.setTabIndexedElement = function ( $tabIndexed ) {\n\tvar tabIndex = this.tabIndex;\n\t// Remove attributes from old $tabIndexed\n\tthis.setTabIndex( null );\n\t// Force update of new $tabIndexed\n\tthis.$tabIndexed = $tabIndexed;\n\tthis.tabIndex = tabIndex;\n\treturn this.updateTabIndex();\n};\n\n/**\n * Set the value of the tabindex.\n *\n * @param {string|number|null} tabIndex Tabindex value, or `null` for no tabindex\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.TabIndexedElement.prototype.setTabIndex = function ( tabIndex ) {\n\ttabIndex = /^-?\\d+$/.test( tabIndex ) ? Number( tabIndex ) : null;\n\n\tif ( this.tabIndex !== tabIndex ) {\n\t\tthis.tabIndex = tabIndex;\n\t\tthis.updateTabIndex();\n\t}\n\n\treturn this;\n};\n\n/**\n * Update the `tabindex` attribute, in case of changes to tab index or\n * disabled state.\n *\n * @private\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.TabIndexedElement.prototype.updateTabIndex = function () {\n\tif ( this.$tabIndexed ) {\n\t\tif ( this.tabIndex !== null ) {\n\t\t\t// Do not index over disabled elements\n\t\t\tthis.$tabIndexed.attr( {\n\t\t\t\ttabindex: this.isDisabled() ? -1 : this.tabIndex,\n\t\t\t\t// Support: ChromeVox and NVDA\n\t\t\t\t// These do not seem to inherit aria-disabled from parent elements\n\t\t\t\t'aria-disabled': this.isDisabled().toString()\n\t\t\t} );\n\t\t} else {\n\t\t\tthis.$tabIndexed.removeAttr( 'tabindex aria-disabled' );\n\t\t}\n\t}\n\treturn this;\n};\n\n/**\n * Handle disable events.\n *\n * @private\n * @param {boolean} disabled Element is disabled\n */\nOO.ui.mixin.TabIndexedElement.prototype.onTabIndexedElementDisable = function () {\n\tthis.updateTabIndex();\n};\n\n/**\n * Get the value of the tabindex.\n *\n * @return {number|null} Tabindex value\n */\nOO.ui.mixin.TabIndexedElement.prototype.getTabIndex = function () {\n\treturn this.tabIndex;\n};\n\n/**\n * Get an ID of a focusable element of this widget, if any, to be used for `<label for>` value.\n *\n * If the element already has an ID then that is returned, otherwise unique ID is\n * generated, set on the element, and returned.\n *\n * @return {string|null} The ID of the focusable element\n */\nOO.ui.mixin.TabIndexedElement.prototype.getInputId = function () {\n\tvar id;\n\n\tif ( !this.$tabIndexed ) {\n\t\treturn null;\n\t}\n\tif ( !this.isLabelableNode( this.$tabIndexed ) ) {\n\t\treturn null;\n\t}\n\n\tid = this.$tabIndexed.attr( 'id' );\n\tif ( id === undefined ) {\n\t\tid = OO.ui.generateElementId();\n\t\tthis.$tabIndexed.attr( 'id', id );\n\t}\n\n\treturn id;\n};\n\n/**\n * Whether the node is 'labelable' according to the HTML spec\n * (i.e., whether it can be interacted with through a `<label for=\"…\">`).\n * See: <https://html.spec.whatwg.org/multipage/forms.html#category-label>.\n *\n * @private\n * @param {jQuery} $node\n * @return {boolean}\n */\nOO.ui.mixin.TabIndexedElement.prototype.isLabelableNode = function ( $node ) {\n\tvar\n\t\tlabelableTags = [ 'button', 'meter', 'output', 'progress', 'select', 'textarea' ],\n\t\ttagName = $node.prop( 'tagName' ).toLowerCase();\n\n\tif ( tagName === 'input' && $node.attr( 'type' ) !== 'hidden' ) {\n\t\treturn true;\n\t}\n\tif ( labelableTags.indexOf( tagName ) !== -1 ) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n/**\n * Focus this element.\n *\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.TabIndexedElement.prototype.focus = function () {\n\tif ( !this.isDisabled() ) {\n\t\tthis.$tabIndexed.focus();\n\t}\n\treturn this;\n};\n\n/**\n * Blur this element.\n *\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.TabIndexedElement.prototype.blur = function () {\n\tthis.$tabIndexed.blur();\n\treturn this;\n};\n\n/**\n * @inheritdoc OO.ui.Widget\n */\nOO.ui.mixin.TabIndexedElement.prototype.simulateLabelClick = function () {\n\tthis.focus();\n};\n","/**\n * ButtonElement is often mixed into other classes to generate a button, which is a clickable\n * interface element that can be configured with access keys for accessibility.\n * See the [OOUI documentation on MediaWiki] [1] for examples.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Buttons_and_Switches#Buttons\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$button] The button element created by the class.\n *  If this configuration is omitted, the button element will use a generated `<a>`.\n * @cfg {boolean} [framed=true] Render the button with a frame\n */\nOO.ui.mixin.ButtonElement = function OoUiMixinButtonElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$button = null;\n\tthis.framed = null;\n\tthis.active = config.active !== undefined && config.active;\n\tthis.onDocumentMouseUpHandler = this.onDocumentMouseUp.bind( this );\n\tthis.onMouseDownHandler = this.onMouseDown.bind( this );\n\tthis.onDocumentKeyUpHandler = this.onDocumentKeyUp.bind( this );\n\tthis.onKeyDownHandler = this.onKeyDown.bind( this );\n\tthis.onClickHandler = this.onClick.bind( this );\n\tthis.onKeyPressHandler = this.onKeyPress.bind( this );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-buttonElement' );\n\tthis.toggleFramed( config.framed === undefined || config.framed );\n\tthis.setButtonElement( config.$button || $( '<a>' ) );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.ButtonElement );\n\n/* Static Properties */\n\n/**\n * Cancel mouse down events.\n *\n * This property is usually set to `true` to prevent the focus from changing when the button is clicked.\n * Classes such as {@link OO.ui.mixin.DraggableElement DraggableElement} and {@link OO.ui.ButtonOptionWidget ButtonOptionWidget}\n * use a value of `false` so that dragging behavior is possible and mousedown events can be handled by a\n * parent widget.\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.mixin.ButtonElement.static.cancelButtonMouseDownEvents = true;\n\n/* Events */\n\n/**\n * A 'click' event is emitted when the button element is clicked.\n *\n * @event click\n */\n\n/* Methods */\n\n/**\n * Set the button element.\n *\n * This method is used to retarget a button mixin so that its functionality applies to\n * the specified button element instead of the one created by the class. If a button element\n * is already set, the method will remove the mixin’s effect on that element.\n *\n * @param {jQuery} $button Element to use as button\n */\nOO.ui.mixin.ButtonElement.prototype.setButtonElement = function ( $button ) {\n\tif ( this.$button ) {\n\t\tthis.$button\n\t\t\t.removeClass( 'oo-ui-buttonElement-button' )\n\t\t\t.removeAttr( 'role accesskey' )\n\t\t\t.off( {\n\t\t\t\tmousedown: this.onMouseDownHandler,\n\t\t\t\tkeydown: this.onKeyDownHandler,\n\t\t\t\tclick: this.onClickHandler,\n\t\t\t\tkeypress: this.onKeyPressHandler\n\t\t\t} );\n\t}\n\n\tthis.$button = $button\n\t\t.addClass( 'oo-ui-buttonElement-button' )\n\t\t.on( {\n\t\t\tmousedown: this.onMouseDownHandler,\n\t\t\tkeydown: this.onKeyDownHandler,\n\t\t\tclick: this.onClickHandler,\n\t\t\tkeypress: this.onKeyPressHandler\n\t\t} );\n\n\t// Add `role=\"button\"` on `<a>` elements, where it's needed\n\t// `toUpperCase()` is added for XHTML documents\n\tif ( this.$button.prop( 'tagName' ).toUpperCase() === 'A' ) {\n\t\tthis.$button.attr( 'role', 'button' );\n\t}\n};\n\n/**\n * Handles mouse down events.\n *\n * @protected\n * @param {jQuery.Event} e Mouse down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.mixin.ButtonElement.prototype.onMouseDown = function ( e ) {\n\tif ( this.isDisabled() || e.which !== OO.ui.MouseButtons.LEFT ) {\n\t\treturn;\n\t}\n\tthis.$element.addClass( 'oo-ui-buttonElement-pressed' );\n\t// Run the mouseup handler no matter where the mouse is when the button is let go, so we can\n\t// reliably remove the pressed class\n\tthis.getElementDocument().addEventListener( 'mouseup', this.onDocumentMouseUpHandler, true );\n\t// Prevent change of focus unless specifically configured otherwise\n\tif ( this.constructor.static.cancelButtonMouseDownEvents ) {\n\t\treturn false;\n\t}\n};\n\n/**\n * Handles document mouse up events.\n *\n * @protected\n * @param {MouseEvent} e Mouse up event\n */\nOO.ui.mixin.ButtonElement.prototype.onDocumentMouseUp = function ( e ) {\n\tif ( this.isDisabled() || e.which !== OO.ui.MouseButtons.LEFT ) {\n\t\treturn;\n\t}\n\tthis.$element.removeClass( 'oo-ui-buttonElement-pressed' );\n\t// Stop listening for mouseup, since we only needed this once\n\tthis.getElementDocument().removeEventListener( 'mouseup', this.onDocumentMouseUpHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.mixin.ButtonElement.prototype.onMouseUp = function () {\n\tOO.ui.warnDeprecation( 'onMouseUp is deprecated, use onDocumentMouseUp instead' );\n\tthis.onDocumentMouseUp.apply( this, arguments );\n};\n\n/**\n * Handles mouse click events.\n *\n * @protected\n * @param {jQuery.Event} e Mouse click event\n * @fires click\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.mixin.ButtonElement.prototype.onClick = function ( e ) {\n\tif ( !this.isDisabled() && e.which === OO.ui.MouseButtons.LEFT ) {\n\t\tif ( this.emit( 'click' ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n};\n\n/**\n * Handles key down events.\n *\n * @protected\n * @param {jQuery.Event} e Key down event\n */\nOO.ui.mixin.ButtonElement.prototype.onKeyDown = function ( e ) {\n\tif ( this.isDisabled() || ( e.which !== OO.ui.Keys.SPACE && e.which !== OO.ui.Keys.ENTER ) ) {\n\t\treturn;\n\t}\n\tthis.$element.addClass( 'oo-ui-buttonElement-pressed' );\n\t// Run the keyup handler no matter where the key is when the button is let go, so we can\n\t// reliably remove the pressed class\n\tthis.getElementDocument().addEventListener( 'keyup', this.onDocumentKeyUpHandler, true );\n};\n\n/**\n * Handles document key up events.\n *\n * @protected\n * @param {KeyboardEvent} e Key up event\n */\nOO.ui.mixin.ButtonElement.prototype.onDocumentKeyUp = function ( e ) {\n\tif ( this.isDisabled() || ( e.which !== OO.ui.Keys.SPACE && e.which !== OO.ui.Keys.ENTER ) ) {\n\t\treturn;\n\t}\n\tthis.$element.removeClass( 'oo-ui-buttonElement-pressed' );\n\t// Stop listening for keyup, since we only needed this once\n\tthis.getElementDocument().removeEventListener( 'keyup', this.onDocumentKeyUpHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.mixin.ButtonElement.prototype.onKeyUp = function () {\n\tOO.ui.warnDeprecation( 'onKeyUp is deprecated, use onDocumentKeyUp instead' );\n\tthis.onDocumentKeyUp.apply( this, arguments );\n};\n\n/**\n * Handles key press events.\n *\n * @protected\n * @param {jQuery.Event} e Key press event\n * @fires click\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.mixin.ButtonElement.prototype.onKeyPress = function ( e ) {\n\tif ( !this.isDisabled() && ( e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER ) ) {\n\t\tif ( this.emit( 'click' ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n};\n\n/**\n * Check if button has a frame.\n *\n * @return {boolean} Button is framed\n */\nOO.ui.mixin.ButtonElement.prototype.isFramed = function () {\n\treturn this.framed;\n};\n\n/**\n * Render the button with or without a frame. Omit the `framed` parameter to toggle the button frame on and off.\n *\n * @param {boolean} [framed] Make button framed, omit to toggle\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.ButtonElement.prototype.toggleFramed = function ( framed ) {\n\tframed = framed === undefined ? !this.framed : !!framed;\n\tif ( framed !== this.framed ) {\n\t\tthis.framed = framed;\n\t\tthis.$element\n\t\t\t.toggleClass( 'oo-ui-buttonElement-frameless', !framed )\n\t\t\t.toggleClass( 'oo-ui-buttonElement-framed', framed );\n\t\tthis.updateThemeClasses();\n\t}\n\n\treturn this;\n};\n\n/**\n * Set the button's active state.\n *\n * The active state can be set on:\n *\n *  - {@link OO.ui.ButtonOptionWidget ButtonOptionWidget} when it is selected\n *  - {@link OO.ui.ToggleButtonWidget ToggleButtonWidget} when it is toggle on\n *  - {@link OO.ui.ButtonWidget ButtonWidget} when clicking the button would only refresh the page\n *\n * @protected\n * @param {boolean} value Make button active\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.ButtonElement.prototype.setActive = function ( value ) {\n\tthis.active = !!value;\n\tthis.$element.toggleClass( 'oo-ui-buttonElement-active', this.active );\n\tthis.updateThemeClasses();\n\treturn this;\n};\n\n/**\n * Check if the button is active\n *\n * @protected\n * @return {boolean} The button is active\n */\nOO.ui.mixin.ButtonElement.prototype.isActive = function () {\n\treturn this.active;\n};\n","/**\n * Any OOUI widget that contains other widgets (such as {@link OO.ui.ButtonWidget buttons} or\n * {@link OO.ui.OptionWidget options}) mixes in GroupElement. Adding, removing, and clearing\n * items from the group is done through the interface the class provides.\n * For more information, please see the [OOUI documentation on MediaWiki] [1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Elements/Groups\n *\n * @abstract\n * @mixins OO.EmitterList\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$group] The container element created by the class. If this configuration\n *  is omitted, the group element will use a generated `<div>`.\n */\nOO.ui.mixin.GroupElement = function OoUiMixinGroupElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Mixin constructors\n\tOO.EmitterList.call( this, config );\n\n\t// Properties\n\tthis.$group = null;\n\n\t// Initialization\n\tthis.setGroupElement( config.$group || $( '<div>' ) );\n};\n\n/* Setup */\n\nOO.mixinClass( OO.ui.mixin.GroupElement, OO.EmitterList );\n\n/* Events */\n\n/**\n * @event change\n *\n * A change event is emitted when the set of selected items changes.\n *\n * @param {OO.ui.Element[]} items Items currently in the group\n */\n\n/* Methods */\n\n/**\n * Set the group element.\n *\n * If an element is already set, items will be moved to the new element.\n *\n * @param {jQuery} $group Element to use as group\n */\nOO.ui.mixin.GroupElement.prototype.setGroupElement = function ( $group ) {\n\tvar i, len;\n\n\tthis.$group = $group;\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\tthis.$group.append( this.items[ i ].$element );\n\t}\n};\n\n/**\n * Find an item by its data.\n *\n * Only the first item with matching data will be returned. To return all matching items,\n * use the #findItemsFromData method.\n *\n * @param {Object} data Item data to search for\n * @return {OO.ui.Element|null} Item with equivalent data, `null` if none exists\n */\nOO.ui.mixin.GroupElement.prototype.findItemFromData = function ( data ) {\n\tvar i, len, item,\n\t\thash = OO.getHash( data );\n\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\titem = this.items[ i ];\n\t\tif ( hash === OO.getHash( item.getData() ) ) {\n\t\t\treturn item;\n\t\t}\n\t}\n\n\treturn null;\n};\n\n/**\n * Find items by their data.\n *\n * All items with matching data will be returned. To return only the first match, use the #findItemFromData method instead.\n *\n * @param {Object} data Item data to search for\n * @return {OO.ui.Element[]} Items with equivalent data\n */\nOO.ui.mixin.GroupElement.prototype.findItemsFromData = function ( data ) {\n\tvar i, len, item,\n\t\thash = OO.getHash( data ),\n\t\titems = [];\n\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\titem = this.items[ i ];\n\t\tif ( hash === OO.getHash( item.getData() ) ) {\n\t\t\titems.push( item );\n\t\t}\n\t}\n\n\treturn items;\n};\n\n/**\n * Add items to the group.\n *\n * Items will be added to the end of the group array unless the optional `index` parameter specifies\n * a different insertion point. Adding an existing item will move it to the end of the array or the point specified by the `index`.\n *\n * @param {OO.ui.Element[]} items An array of items to add to the group\n * @param {number} [index] Index of the insertion point\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.GroupElement.prototype.addItems = function ( items, index ) {\n\t// Mixin method\n\tOO.EmitterList.prototype.addItems.call( this, items, index );\n\n\tthis.emit( 'change', this.getItems() );\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.mixin.GroupElement.prototype.moveItem = function ( items, newIndex ) {\n\t// insertItemElements expects this.items to not have been modified yet, so call before the mixin\n\tthis.insertItemElements( items, newIndex );\n\n\t// Mixin method\n\tnewIndex = OO.EmitterList.prototype.moveItem.call( this, items, newIndex );\n\n\treturn newIndex;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.mixin.GroupElement.prototype.insertItem = function ( item, index ) {\n\titem.setElementGroup( this );\n\tthis.insertItemElements( item, index );\n\n\t// Mixin method\n\tindex = OO.EmitterList.prototype.insertItem.call( this, item, index );\n\n\treturn index;\n};\n\n/**\n * Insert elements into the group\n *\n * @private\n * @param {OO.ui.Element} itemWidget Item to insert\n * @param {number} index Insertion index\n */\nOO.ui.mixin.GroupElement.prototype.insertItemElements = function ( itemWidget, index ) {\n\tif ( index === undefined || index < 0 || index >= this.items.length ) {\n\t\tthis.$group.append( itemWidget.$element );\n\t} else if ( index === 0 ) {\n\t\tthis.$group.prepend( itemWidget.$element );\n\t} else {\n\t\tthis.items[ index ].$element.before( itemWidget.$element );\n\t}\n};\n\n/**\n * Remove the specified items from a group.\n *\n * Removed items are detached (not removed) from the DOM so that they may be reused.\n * To remove all items from a group, you may wish to use the #clearItems method instead.\n *\n * @param {OO.ui.Element[]} items An array of items to remove\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.GroupElement.prototype.removeItems = function ( items ) {\n\tvar i, len, item, index;\n\n\t// Remove specific items elements\n\tfor ( i = 0, len = items.length; i < len; i++ ) {\n\t\titem = items[ i ];\n\t\tindex = this.items.indexOf( item );\n\t\tif ( index !== -1 ) {\n\t\t\titem.setElementGroup( null );\n\t\t\titem.$element.detach();\n\t\t}\n\t}\n\n\t// Mixin method\n\tOO.EmitterList.prototype.removeItems.call( this, items );\n\n\tthis.emit( 'change', this.getItems() );\n\treturn this;\n};\n\n/**\n * Clear all items from the group.\n *\n * Cleared items are detached from the DOM, not removed, so that they may be reused.\n * To remove only a subset of items from a group, use the #removeItems method.\n *\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.GroupElement.prototype.clearItems = function () {\n\tvar i, len;\n\n\t// Remove all item elements\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\tthis.items[ i ].setElementGroup( null );\n\t\tthis.items[ i ].$element.detach();\n\t}\n\n\t// Mixin method\n\tOO.EmitterList.prototype.clearItems.call( this );\n\n\tthis.emit( 'change', this.getItems() );\n\treturn this;\n};\n","/**\n * LabelElement is often mixed into other classes to generate a label, which\n * helps identify the function of an interface element.\n * See the [OOUI documentation on MediaWiki] [1] for more information.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Labels\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$label] The label element created by the class. If this\n *  configuration is omitted, the label element will use a generated `<span>`.\n * @cfg {jQuery|string|Function|OO.ui.HtmlSnippet} [label] The label text. The label can be specified\n *  as a plaintext string, a jQuery selection of elements, or a function that will produce a string\n *  in the future. See the [OOUI documentation on MediaWiki] [2] for examples.\n *  [2]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Labels\n * @cfg {boolean} [invisibleLabel] Whether the label should be visually hidden (but still accessible\n *  to screen-readers).\n */\nOO.ui.mixin.LabelElement = function OoUiMixinLabelElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$label = null;\n\tthis.label = null;\n\tthis.invisibleLabel = null;\n\n\t// Initialization\n\tthis.setLabel( config.label || this.constructor.static.label );\n\tthis.setLabelElement( config.$label || $( '<span>' ) );\n\tthis.setInvisibleLabel( config.invisibleLabel );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.LabelElement );\n\n/* Events */\n\n/**\n * @event labelChange\n * @param {string} value\n */\n\n/* Static Properties */\n\n/**\n * The label text. The label can be specified as a plaintext string, a function that will\n * produce a string in the future, or `null` for no label. The static value will\n * be overridden if a label is specified with the #label config option.\n *\n * @static\n * @inheritable\n * @property {string|Function|null}\n */\nOO.ui.mixin.LabelElement.static.label = null;\n\n/* Static methods */\n\n/**\n * Highlight the first occurrence of the query in the given text\n *\n * @param {string} text Text\n * @param {string} query Query to find\n * @param {Function} [compare] Optional string comparator, e.g. Intl.Collator().compare\n * @return {jQuery} Text with the first match of the query\n *  sub-string wrapped in highlighted span\n */\nOO.ui.mixin.LabelElement.static.highlightQuery = function ( text, query, compare ) {\n\tvar i, tLen, qLen,\n\t\toffset = -1,\n\t\t$result = $( '<span>' );\n\n\tif ( compare ) {\n\t\ttLen = text.length;\n\t\tqLen = query.length;\n\t\tfor ( i = 0; offset === -1 && i <= tLen - qLen; i++ ) {\n\t\t\tif ( compare( query, text.slice( i, i + qLen ) ) === 0 ) {\n\t\t\t\toffset = i;\n\t\t\t}\n\t\t}\n\t} else {\n\t\toffset = text.toLowerCase().indexOf( query.toLowerCase() );\n\t}\n\n\tif ( !query.length || offset === -1 ) {\n\t\t$result.text( text );\n\t} else {\n\t\t$result.append(\n\t\t\tdocument.createTextNode( text.slice( 0, offset ) ),\n\t\t\t$( '<span>' )\n\t\t\t\t.addClass( 'oo-ui-labelElement-label-highlight' )\n\t\t\t\t.text( text.slice( offset, offset + query.length ) ),\n\t\t\tdocument.createTextNode( text.slice( offset + query.length ) )\n\t\t);\n\t}\n\treturn $result.contents();\n};\n\n/* Methods */\n\n/**\n * Set the label element.\n *\n * If an element is already set, it will be cleaned up before setting up the new element.\n *\n * @param {jQuery} $label Element to use as label\n */\nOO.ui.mixin.LabelElement.prototype.setLabelElement = function ( $label ) {\n\tif ( this.$label ) {\n\t\tthis.$label.removeClass( 'oo-ui-labelElement-label' ).empty();\n\t}\n\n\tthis.$label = $label.addClass( 'oo-ui-labelElement-label' );\n\tthis.setLabelContent( this.label );\n};\n\n/**\n * Set the label.\n *\n * An empty string will result in the label being hidden. A string containing only whitespace will\n * be converted to a single `&nbsp;`.\n *\n * @param {jQuery|string|OO.ui.HtmlSnippet|Function|null} label Label nodes; text; a function that returns nodes or\n *  text; or null for no label\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.LabelElement.prototype.setLabel = function ( label ) {\n\tlabel = typeof label === 'function' ? OO.ui.resolveMsg( label ) : label;\n\tlabel = ( ( typeof label === 'string' || label instanceof $ ) && label.length ) || ( label instanceof OO.ui.HtmlSnippet && label.toString().length ) ? label : null;\n\n\tif ( this.label !== label ) {\n\t\tif ( this.$label ) {\n\t\t\tthis.setLabelContent( label );\n\t\t}\n\t\tthis.label = label;\n\t\tthis.emit( 'labelChange' );\n\t}\n\n\tthis.$element.toggleClass( 'oo-ui-labelElement', !!this.label && !this.invisibleLabel );\n\n\treturn this;\n};\n\n/**\n * Set whether the label should be visually hidden (but still accessible to screen-readers).\n *\n * @param {boolean} invisibleLabel\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.LabelElement.prototype.setInvisibleLabel = function ( invisibleLabel ) {\n\tinvisibleLabel = !!invisibleLabel;\n\n\tif ( this.invisibleLabel !== invisibleLabel ) {\n\t\tthis.invisibleLabel = invisibleLabel;\n\t\tthis.emit( 'labelChange' );\n\t}\n\n\tthis.$label.toggleClass( 'oo-ui-labelElement-invisible', this.invisibleLabel );\n\t// Pretend that there is no label, a lot of CSS has been written with this assumption\n\tthis.$element.toggleClass( 'oo-ui-labelElement', !!this.label && !this.invisibleLabel );\n\n\treturn this;\n};\n\n/**\n * Set the label as plain text with a highlighted query\n *\n * @param {string} text Text label to set\n * @param {string} query Substring of text to highlight\n * @param {Function} [compare] Optional string comparator, e.g. Intl.Collator().compare\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.LabelElement.prototype.setHighlightedQuery = function ( text, query, compare ) {\n\treturn this.setLabel( this.constructor.static.highlightQuery( text, query, compare ) );\n};\n\n/**\n * Get the label.\n *\n * @return {jQuery|string|Function|null} Label nodes; text; a function that returns nodes or\n *  text; or null for no label\n */\nOO.ui.mixin.LabelElement.prototype.getLabel = function () {\n\treturn this.label;\n};\n\n/**\n * Set the content of the label.\n *\n * Do not call this method until after the label element has been set by #setLabelElement.\n *\n * @private\n * @param {jQuery|string|Function|null} label Label nodes; text; a function that returns nodes or\n *  text; or null for no label\n */\nOO.ui.mixin.LabelElement.prototype.setLabelContent = function ( label ) {\n\tif ( typeof label === 'string' ) {\n\t\tif ( label.match( /^\\s*$/ ) ) {\n\t\t\t// Convert whitespace only string to a single non-breaking space\n\t\t\tthis.$label.html( '&nbsp;' );\n\t\t} else {\n\t\t\tthis.$label.text( label );\n\t\t}\n\t} else if ( label instanceof OO.ui.HtmlSnippet ) {\n\t\tthis.$label.html( label.toString() );\n\t} else if ( label instanceof $ ) {\n\t\tthis.$label.empty().append( label );\n\t} else {\n\t\tthis.$label.empty();\n\t}\n};\n","/**\n * IconElement is often mixed into other classes to generate an icon.\n * Icons are graphics, about the size of normal text. They are used to aid the user\n * in locating a control or to convey information in a space-efficient way. See the\n * [OOUI documentation on MediaWiki] [1] for a list of icons\n * included in the library.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Icons\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$icon] The icon element created by the class. If this configuration is omitted,\n *  the icon element will use a generated `<span>`. To use a different HTML tag, or to specify that\n *  the icon element be set to an existing icon instead of the one generated by this class, set a\n *  value using a jQuery selection. For example:\n *\n *      // Use a <div> tag instead of a <span>\n *     $icon: $(\"<div>\")\n *     // Use an existing icon element instead of the one generated by the class\n *     $icon: this.$element\n *     // Use an icon element from a child widget\n *     $icon: this.childwidget.$element\n * @cfg {Object|string} [icon=''] The symbolic name of the icon (e.g., ‘remove’ or ‘menu’), or a map of\n *  symbolic names.  A map is used for i18n purposes and contains a `default` icon\n *  name and additional names keyed by language code. The `default` name is used when no icon is keyed\n *  by the user's language.\n *\n *  Example of an i18n map:\n *\n *     { default: 'bold-a', en: 'bold-b', de: 'bold-f' }\n *  See the [OOUI documentation on MediaWiki] [2] for a list of icons included in the library.\n * [2]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Icons\n * @cfg {string|Function} [iconTitle] A text string used as the icon title, or a function that returns title\n *  text. The icon title is displayed when users move the mouse over the icon.\n */\nOO.ui.mixin.IconElement = function OoUiMixinIconElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$icon = null;\n\tthis.icon = null;\n\tthis.iconTitle = null;\n\n\t// Initialization\n\tthis.setIcon( config.icon || this.constructor.static.icon );\n\tthis.setIconTitle( config.iconTitle || this.constructor.static.iconTitle );\n\tthis.setIconElement( config.$icon || $( '<span>' ) );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.IconElement );\n\n/* Static Properties */\n\n/**\n * The symbolic name of the icon (e.g., ‘remove’ or ‘menu’), or a map of symbolic names. A map is used\n * for i18n purposes and contains a `default` icon name and additional names keyed by\n * language code. The `default` name is used when no icon is keyed by the user's language.\n *\n * Example of an i18n map:\n *\n *     { default: 'bold-a', en: 'bold-b', de: 'bold-f' }\n *\n * Note: the static property will be overridden if the #icon configuration is used.\n *\n * @static\n * @inheritable\n * @property {Object|string}\n */\nOO.ui.mixin.IconElement.static.icon = null;\n\n/**\n * The icon title, displayed when users move the mouse over the icon. The value can be text, a\n * function that returns title text, or `null` for no title.\n *\n * The static property will be overridden if the #iconTitle configuration is used.\n *\n * @static\n * @inheritable\n * @property {string|Function|null}\n */\nOO.ui.mixin.IconElement.static.iconTitle = null;\n\n/* Methods */\n\n/**\n * Set the icon element. This method is used to retarget an icon mixin so that its functionality\n * applies to the specified icon element instead of the one created by the class. If an icon\n * element is already set, the mixin’s effect on that element is removed. Generated CSS classes\n * and mixin methods will no longer affect the element.\n *\n * @param {jQuery} $icon Element to use as icon\n */\nOO.ui.mixin.IconElement.prototype.setIconElement = function ( $icon ) {\n\tif ( this.$icon ) {\n\t\tthis.$icon\n\t\t\t.removeClass( 'oo-ui-iconElement-icon oo-ui-icon-' + this.icon )\n\t\t\t.removeAttr( 'title' );\n\t}\n\n\tthis.$icon = $icon\n\t\t.addClass( 'oo-ui-iconElement-icon' )\n\t\t.toggleClass( 'oo-ui-iconElement-noIcon', !this.icon )\n\t\t.toggleClass( 'oo-ui-icon-' + this.icon, !!this.icon );\n\tif ( this.iconTitle !== null ) {\n\t\tthis.$icon.attr( 'title', this.iconTitle );\n\t}\n\n\tthis.updateThemeClasses();\n};\n\n/**\n * Set icon by symbolic name (e.g., ‘remove’ or ‘menu’). Use `null` to remove an icon.\n * The icon parameter can also be set to a map of icon names. See the #icon config setting\n * for an example.\n *\n * @param {Object|string|null} icon A symbolic icon name, a {@link #icon map of icon names} keyed\n *  by language code, or `null` to remove the icon.\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.IconElement.prototype.setIcon = function ( icon ) {\n\ticon = OO.isPlainObject( icon ) ? OO.ui.getLocalValue( icon, null, 'default' ) : icon;\n\ticon = typeof icon === 'string' && icon.trim().length ? icon.trim() : null;\n\n\tif ( this.icon !== icon ) {\n\t\tif ( this.$icon ) {\n\t\t\tif ( this.icon !== null ) {\n\t\t\t\tthis.$icon.removeClass( 'oo-ui-icon-' + this.icon );\n\t\t\t}\n\t\t\tif ( icon !== null ) {\n\t\t\t\tthis.$icon.addClass( 'oo-ui-icon-' + icon );\n\t\t\t}\n\t\t}\n\t\tthis.icon = icon;\n\t}\n\n\tthis.$element.toggleClass( 'oo-ui-iconElement', !!this.icon );\n\tif ( this.$icon ) {\n\t\tthis.$icon.toggleClass( 'oo-ui-iconElement-noIcon', !this.icon );\n\t}\n\tthis.updateThemeClasses();\n\n\treturn this;\n};\n\n/**\n * Set the icon title. Use `null` to remove the title.\n *\n * @param {string|Function|null} iconTitle A text string used as the icon title,\n *  a function that returns title text, or `null` for no title.\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.IconElement.prototype.setIconTitle = function ( iconTitle ) {\n\ticonTitle =\n\t\t( typeof iconTitle === 'function' || ( typeof iconTitle === 'string' && iconTitle.length ) ) ?\n\t\t\tOO.ui.resolveMsg( iconTitle ) : null;\n\n\tif ( this.iconTitle !== iconTitle ) {\n\t\tthis.iconTitle = iconTitle;\n\t\tif ( this.$icon ) {\n\t\t\tif ( this.iconTitle !== null ) {\n\t\t\t\tthis.$icon.attr( 'title', iconTitle );\n\t\t\t} else {\n\t\t\t\tthis.$icon.removeAttr( 'title' );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Get the symbolic name of the icon.\n *\n * @return {string} Icon name\n */\nOO.ui.mixin.IconElement.prototype.getIcon = function () {\n\treturn this.icon;\n};\n\n/**\n * Get the icon title. The title text is displayed when a user moves the mouse over the icon.\n *\n * @return {string} Icon title text\n */\nOO.ui.mixin.IconElement.prototype.getIconTitle = function () {\n\treturn this.iconTitle;\n};\n","/**\n * IndicatorElement is often mixed into other classes to generate an indicator.\n * Indicators are small graphics that are generally used in two ways:\n *\n * - To draw attention to the status of an item. For example, an indicator might be\n *   used to show that an item in a list has errors that need to be resolved.\n * - To clarify the function of a control that acts in an exceptional way (a button\n *   that opens a menu instead of performing an action directly, for example).\n *\n * For a list of indicators included in the library, please see the\n * [OOUI documentation on MediaWiki] [1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Indicators\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$indicator] The indicator element created by the class. If this\n *  configuration is omitted, the indicator element will use a generated `<span>`.\n * @cfg {string} [indicator] Symbolic name of the indicator (e.g., ‘clear’ or ‘down’).\n *  See the [OOUI documentation on MediaWiki][2] for a list of indicators included\n *  in the library.\n * [2]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Indicators\n * @cfg {string|Function} [indicatorTitle] A text string used as the indicator title,\n *  or a function that returns title text. The indicator title is displayed when users move\n *  the mouse over the indicator.\n */\nOO.ui.mixin.IndicatorElement = function OoUiMixinIndicatorElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$indicator = null;\n\tthis.indicator = null;\n\tthis.indicatorTitle = null;\n\n\t// Initialization\n\tthis.setIndicator( config.indicator || this.constructor.static.indicator );\n\tthis.setIndicatorTitle( config.indicatorTitle || this.constructor.static.indicatorTitle );\n\tthis.setIndicatorElement( config.$indicator || $( '<span>' ) );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.IndicatorElement );\n\n/* Static Properties */\n\n/**\n * Symbolic name of the indicator (e.g., ‘clear’ or  ‘down’).\n * The static property will be overridden if the #indicator configuration is used.\n *\n * @static\n * @inheritable\n * @property {string|null}\n */\nOO.ui.mixin.IndicatorElement.static.indicator = null;\n\n/**\n * A text string used as the indicator title, a function that returns title text, or `null`\n * for no title. The static property will be overridden if the #indicatorTitle configuration is used.\n *\n * @static\n * @inheritable\n * @property {string|Function|null}\n */\nOO.ui.mixin.IndicatorElement.static.indicatorTitle = null;\n\n/* Methods */\n\n/**\n * Set the indicator element.\n *\n * If an element is already set, it will be cleaned up before setting up the new element.\n *\n * @param {jQuery} $indicator Element to use as indicator\n */\nOO.ui.mixin.IndicatorElement.prototype.setIndicatorElement = function ( $indicator ) {\n\tif ( this.$indicator ) {\n\t\tthis.$indicator\n\t\t\t.removeClass( 'oo-ui-indicatorElement-indicator oo-ui-indicator-' + this.indicator )\n\t\t\t.removeAttr( 'title' );\n\t}\n\n\tthis.$indicator = $indicator\n\t\t.addClass( 'oo-ui-indicatorElement-indicator' )\n\t\t.toggleClass( 'oo-ui-indicatorElement-noIndicator', !this.indicator )\n\t\t.toggleClass( 'oo-ui-indicator-' + this.indicator, !!this.indicator );\n\tif ( this.indicatorTitle !== null ) {\n\t\tthis.$indicator.attr( 'title', this.indicatorTitle );\n\t}\n\n\tthis.updateThemeClasses();\n};\n\n/**\n * Set the indicator by its symbolic name: ‘clear’, ‘down’, ‘required’, ‘search’, ‘up’. Use `null` to remove the indicator.\n *\n * @param {string|null} indicator Symbolic name of indicator, or `null` for no indicator\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.IndicatorElement.prototype.setIndicator = function ( indicator ) {\n\tindicator = typeof indicator === 'string' && indicator.length ? indicator.trim() : null;\n\n\tif ( this.indicator !== indicator ) {\n\t\tif ( this.$indicator ) {\n\t\t\tif ( this.indicator !== null ) {\n\t\t\t\tthis.$indicator.removeClass( 'oo-ui-indicator-' + this.indicator );\n\t\t\t}\n\t\t\tif ( indicator !== null ) {\n\t\t\t\tthis.$indicator.addClass( 'oo-ui-indicator-' + indicator );\n\t\t\t}\n\t\t}\n\t\tthis.indicator = indicator;\n\t}\n\n\tthis.$element.toggleClass( 'oo-ui-indicatorElement', !!this.indicator );\n\tif ( this.$indicator ) {\n\t\tthis.$indicator.toggleClass( 'oo-ui-indicatorElement-noIndicator', !this.indicator );\n\t}\n\tthis.updateThemeClasses();\n\n\treturn this;\n};\n\n/**\n * Set the indicator title.\n *\n * The title is displayed when a user moves the mouse over the indicator.\n *\n * @param {string|Function|null} indicatorTitle Indicator title text, a function that returns text, or\n *   `null` for no indicator title\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.IndicatorElement.prototype.setIndicatorTitle = function ( indicatorTitle ) {\n\tindicatorTitle =\n\t\t( typeof indicatorTitle === 'function' || ( typeof indicatorTitle === 'string' && indicatorTitle.length ) ) ?\n\t\t\tOO.ui.resolveMsg( indicatorTitle ) : null;\n\n\tif ( this.indicatorTitle !== indicatorTitle ) {\n\t\tthis.indicatorTitle = indicatorTitle;\n\t\tif ( this.$indicator ) {\n\t\t\tif ( this.indicatorTitle !== null ) {\n\t\t\t\tthis.$indicator.attr( 'title', indicatorTitle );\n\t\t\t} else {\n\t\t\t\tthis.$indicator.removeAttr( 'title' );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Get the symbolic name of the indicator (e.g., ‘clear’ or  ‘down’).\n *\n * @return {string} Symbolic name of indicator\n */\nOO.ui.mixin.IndicatorElement.prototype.getIndicator = function () {\n\treturn this.indicator;\n};\n\n/**\n * Get the indicator title.\n *\n * The title is displayed when a user moves the mouse over the indicator.\n *\n * @return {string} Indicator title text\n */\nOO.ui.mixin.IndicatorElement.prototype.getIndicatorTitle = function () {\n\treturn this.indicatorTitle;\n};\n","/**\n * The FlaggedElement class is an attribute mixin, meaning that it is used to add\n * additional functionality to an element created by another class. The class provides\n * a ‘flags’ property assigned the name (or an array of names) of styling flags,\n * which are used to customize the look and feel of a widget to better describe its\n * importance and functionality.\n *\n * The library currently contains the following styling flags for general use:\n *\n * - **progressive**:  Progressive styling is applied to convey that the widget will move the user forward in a process.\n * - **destructive**: Destructive styling is applied to convey that the widget will remove something.\n *\n * The flags affect the appearance of the buttons:\n *\n *     @example\n *     // FlaggedElement is mixed into ButtonWidget to provide styling flags\n *     var button1 = new OO.ui.ButtonWidget( {\n *         label: 'Progressive',\n *         flags: 'progressive'\n *     } );\n *     var button2 = new OO.ui.ButtonWidget( {\n *         label: 'Destructive',\n *         flags: 'destructive'\n *     } );\n *     $( 'body' ).append( button1.$element, button2.$element );\n *\n * {@link OO.ui.ActionWidget ActionWidgets}, which are a special kind of button that execute an action, use these flags: **primary** and **safe**.\n * Please see the [OOUI documentation on MediaWiki] [1] for more information.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Elements/Flagged\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string|string[]} [flags] The name or names of the flags (e.g., 'progressive' or 'primary') to apply.\n *  Please see the [OOUI documentation on MediaWiki] [2] for more information about available flags.\n *  [2]: https://www.mediawiki.org/wiki/OOUI/Elements/Flagged\n * @cfg {jQuery} [$flagged] The flagged element. By default,\n *  the flagged functionality is applied to the element created by the class ($element).\n *  If a different element is specified, the flagged functionality will be applied to it instead.\n */\nOO.ui.mixin.FlaggedElement = function OoUiMixinFlaggedElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.flags = {};\n\tthis.$flagged = null;\n\n\t// Initialization\n\tthis.setFlags( config.flags );\n\tthis.setFlaggedElement( config.$flagged || this.$element );\n};\n\n/* Events */\n\n/**\n * @event flag\n * A flag event is emitted when the #clearFlags or #setFlags methods are used. The `changes`\n * parameter contains the name of each modified flag and indicates whether it was\n * added or removed.\n *\n * @param {Object.<string,boolean>} changes Object keyed by flag name. A Boolean `true` indicates\n * that the flag was added, `false` that the flag was removed.\n */\n\n/* Methods */\n\n/**\n * Set the flagged element.\n *\n * This method is used to retarget a flagged mixin so that its functionality applies to the specified element.\n * If an element is already set, the method will remove the mixin’s effect on that element.\n *\n * @param {jQuery} $flagged Element that should be flagged\n */\nOO.ui.mixin.FlaggedElement.prototype.setFlaggedElement = function ( $flagged ) {\n\tvar classNames = Object.keys( this.flags ).map( function ( flag ) {\n\t\treturn 'oo-ui-flaggedElement-' + flag;\n\t} );\n\n\tif ( this.$flagged ) {\n\t\tthis.$flagged.removeClass( classNames );\n\t}\n\n\tthis.$flagged = $flagged.addClass( classNames );\n};\n\n/**\n * Check if the specified flag is set.\n *\n * @param {string} flag Name of flag\n * @return {boolean} The flag is set\n */\nOO.ui.mixin.FlaggedElement.prototype.hasFlag = function ( flag ) {\n\t// This may be called before the constructor, thus before this.flags is set\n\treturn this.flags && ( flag in this.flags );\n};\n\n/**\n * Get the names of all flags set.\n *\n * @return {string[]} Flag names\n */\nOO.ui.mixin.FlaggedElement.prototype.getFlags = function () {\n\t// This may be called before the constructor, thus before this.flags is set\n\treturn Object.keys( this.flags || {} );\n};\n\n/**\n * Clear all flags.\n *\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n * @fires flag\n */\nOO.ui.mixin.FlaggedElement.prototype.clearFlags = function () {\n\tvar flag, className,\n\t\tchanges = {},\n\t\tremove = [],\n\t\tclassPrefix = 'oo-ui-flaggedElement-';\n\n\tfor ( flag in this.flags ) {\n\t\tclassName = classPrefix + flag;\n\t\tchanges[ flag ] = false;\n\t\tdelete this.flags[ flag ];\n\t\tremove.push( className );\n\t}\n\n\tif ( this.$flagged ) {\n\t\tthis.$flagged.removeClass( remove );\n\t}\n\n\tthis.updateThemeClasses();\n\tthis.emit( 'flag', changes );\n\n\treturn this;\n};\n\n/**\n * Add one or more flags.\n *\n * @param {string|string[]|Object.<string, boolean>} flags A flag name, an array of flag names,\n *  or an object keyed by flag name with a boolean value that indicates whether the flag should\n *  be added (`true`) or removed (`false`).\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n * @fires flag\n */\nOO.ui.mixin.FlaggedElement.prototype.setFlags = function ( flags ) {\n\tvar i, len, flag, className,\n\t\tchanges = {},\n\t\tadd = [],\n\t\tremove = [],\n\t\tclassPrefix = 'oo-ui-flaggedElement-';\n\n\tif ( typeof flags === 'string' ) {\n\t\tclassName = classPrefix + flags;\n\t\t// Set\n\t\tif ( !this.flags[ flags ] ) {\n\t\t\tthis.flags[ flags ] = true;\n\t\t\tadd.push( className );\n\t\t}\n\t} else if ( Array.isArray( flags ) ) {\n\t\tfor ( i = 0, len = flags.length; i < len; i++ ) {\n\t\t\tflag = flags[ i ];\n\t\t\tclassName = classPrefix + flag;\n\t\t\t// Set\n\t\t\tif ( !this.flags[ flag ] ) {\n\t\t\t\tchanges[ flag ] = true;\n\t\t\t\tthis.flags[ flag ] = true;\n\t\t\t\tadd.push( className );\n\t\t\t}\n\t\t}\n\t} else if ( OO.isPlainObject( flags ) ) {\n\t\tfor ( flag in flags ) {\n\t\t\tclassName = classPrefix + flag;\n\t\t\tif ( flags[ flag ] ) {\n\t\t\t\t// Set\n\t\t\t\tif ( !this.flags[ flag ] ) {\n\t\t\t\t\tchanges[ flag ] = true;\n\t\t\t\t\tthis.flags[ flag ] = true;\n\t\t\t\t\tadd.push( className );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Remove\n\t\t\t\tif ( this.flags[ flag ] ) {\n\t\t\t\t\tchanges[ flag ] = false;\n\t\t\t\t\tdelete this.flags[ flag ];\n\t\t\t\t\tremove.push( className );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( this.$flagged ) {\n\t\tthis.$flagged\n\t\t\t.addClass( add )\n\t\t\t.removeClass( remove );\n\t}\n\n\tthis.updateThemeClasses();\n\tthis.emit( 'flag', changes );\n\n\treturn this;\n};\n","/**\n * TitledElement is mixed into other classes to provide a `title` attribute.\n * Titles are rendered by the browser and are made visible when the user moves\n * the mouse over the element. Titles are not visible on touch devices.\n *\n *     @example\n *     // TitledElement provides a 'title' attribute to the\n *     // ButtonWidget class\n *     var button = new OO.ui.ButtonWidget( {\n *         label: 'Button with Title',\n *         title: 'I am a button'\n *     } );\n *     $( 'body' ).append( button.$element );\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$titled] The element to which the `title` attribute is applied.\n *  If this config is omitted, the title functionality is applied to $element, the\n *  element created by the class.\n * @cfg {string|Function} [title] The title text or a function that returns text. If\n *  this config is omitted, the value of the {@link #static-title static title} property is used.\n */\nOO.ui.mixin.TitledElement = function OoUiMixinTitledElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$titled = null;\n\tthis.title = null;\n\n\t// Initialization\n\tthis.setTitle( config.title !== undefined ? config.title : this.constructor.static.title );\n\tthis.setTitledElement( config.$titled || this.$element );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.TitledElement );\n\n/* Static Properties */\n\n/**\n * The title text, a function that returns text, or `null` for no title. The value of the static property\n * is overridden if the #title config option is used.\n *\n * @static\n * @inheritable\n * @property {string|Function|null}\n */\nOO.ui.mixin.TitledElement.static.title = null;\n\n/* Methods */\n\n/**\n * Set the titled element.\n *\n * This method is used to retarget a TitledElement mixin so that its functionality applies to the specified element.\n * If an element is already set, the mixin’s effect on that element is removed before the new element is set up.\n *\n * @param {jQuery} $titled Element that should use the 'titled' functionality\n */\nOO.ui.mixin.TitledElement.prototype.setTitledElement = function ( $titled ) {\n\tif ( this.$titled ) {\n\t\tthis.$titled.removeAttr( 'title' );\n\t}\n\n\tthis.$titled = $titled;\n\tif ( this.title ) {\n\t\tthis.updateTitle();\n\t}\n};\n\n/**\n * Set title.\n *\n * @param {string|Function|null} title Title text, a function that returns text, or `null` for no title\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.TitledElement.prototype.setTitle = function ( title ) {\n\ttitle = typeof title === 'function' ? OO.ui.resolveMsg( title ) : title;\n\ttitle = ( typeof title === 'string' && title.length ) ? title : null;\n\n\tif ( this.title !== title ) {\n\t\tthis.title = title;\n\t\tthis.updateTitle();\n\t}\n\n\treturn this;\n};\n\n/**\n * Update the title attribute, in case of changes to title or accessKey.\n *\n * @protected\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.TitledElement.prototype.updateTitle = function () {\n\tvar title = this.getTitle();\n\tif ( this.$titled ) {\n\t\tif ( title !== null ) {\n\t\t\t// Only if this is an AccessKeyedElement\n\t\t\tif ( this.formatTitleWithAccessKey ) {\n\t\t\t\ttitle = this.formatTitleWithAccessKey( title );\n\t\t\t}\n\t\t\tthis.$titled.attr( 'title', title );\n\t\t} else {\n\t\t\tthis.$titled.removeAttr( 'title' );\n\t\t}\n\t}\n\treturn this;\n};\n\n/**\n * Get title.\n *\n * @return {string} Title string\n */\nOO.ui.mixin.TitledElement.prototype.getTitle = function () {\n\treturn this.title;\n};\n","/**\n * AccessKeyedElement is mixed into other classes to provide an `accesskey` attribute.\n * Accesskeys allow an user to go to a specific element by using\n * a shortcut combination of a browser specific keys + the key\n * set to the field.\n *\n *     @example\n *     // AccessKeyedElement provides an 'accesskey' attribute to the\n *     // ButtonWidget class\n *     var button = new OO.ui.ButtonWidget( {\n *         label: 'Button with Accesskey',\n *         accessKey: 'k'\n *     } );\n *     $( 'body' ).append( button.$element );\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$accessKeyed] The element to which the `accesskey` attribute is applied.\n *  If this config is omitted, the accesskey functionality is applied to $element, the\n *  element created by the class.\n * @cfg {string|Function} [accessKey] The key or a function that returns the key. If\n *  this config is omitted, no accesskey will be added.\n */\nOO.ui.mixin.AccessKeyedElement = function OoUiMixinAccessKeyedElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$accessKeyed = null;\n\tthis.accessKey = null;\n\n\t// Initialization\n\tthis.setAccessKey( config.accessKey || null );\n\tthis.setAccessKeyedElement( config.$accessKeyed || this.$element );\n\n\t// If this is also a TitledElement and it initialized before we did, we may have\n\t// to update the title with the access key\n\tif ( this.updateTitle ) {\n\t\tthis.updateTitle();\n\t}\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.AccessKeyedElement );\n\n/* Static Properties */\n\n/**\n * The access key, a function that returns a key, or `null` for no accesskey.\n *\n * @static\n * @inheritable\n * @property {string|Function|null}\n */\nOO.ui.mixin.AccessKeyedElement.static.accessKey = null;\n\n/* Methods */\n\n/**\n * Set the accesskeyed element.\n *\n * This method is used to retarget a AccessKeyedElement mixin so that its functionality applies to the specified element.\n * If an element is already set, the mixin's effect on that element is removed before the new element is set up.\n *\n * @param {jQuery} $accessKeyed Element that should use the 'accesskeyed' functionality\n */\nOO.ui.mixin.AccessKeyedElement.prototype.setAccessKeyedElement = function ( $accessKeyed ) {\n\tif ( this.$accessKeyed ) {\n\t\tthis.$accessKeyed.removeAttr( 'accesskey' );\n\t}\n\n\tthis.$accessKeyed = $accessKeyed;\n\tif ( this.accessKey ) {\n\t\tthis.$accessKeyed.attr( 'accesskey', this.accessKey );\n\t}\n};\n\n/**\n * Set accesskey.\n *\n * @param {string|Function|null} accessKey Key, a function that returns a key, or `null` for no accesskey\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.AccessKeyedElement.prototype.setAccessKey = function ( accessKey ) {\n\taccessKey = typeof accessKey === 'string' ? OO.ui.resolveMsg( accessKey ) : null;\n\n\tif ( this.accessKey !== accessKey ) {\n\t\tif ( this.$accessKeyed ) {\n\t\t\tif ( accessKey !== null ) {\n\t\t\t\tthis.$accessKeyed.attr( 'accesskey', accessKey );\n\t\t\t} else {\n\t\t\t\tthis.$accessKeyed.removeAttr( 'accesskey' );\n\t\t\t}\n\t\t}\n\t\tthis.accessKey = accessKey;\n\n\t\t// Only if this is a TitledElement\n\t\tif ( this.updateTitle ) {\n\t\t\tthis.updateTitle();\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Get accesskey.\n *\n * @return {string} accessKey string\n */\nOO.ui.mixin.AccessKeyedElement.prototype.getAccessKey = function () {\n\treturn this.accessKey;\n};\n\n/**\n * Add information about the access key to the element's tooltip label.\n * (This is only public for hacky usage in FieldLayout.)\n *\n * @param {string} title Tooltip label for `title` attribute\n * @return {string}\n */\nOO.ui.mixin.AccessKeyedElement.prototype.formatTitleWithAccessKey = function ( title ) {\n\tvar accessKey;\n\n\tif ( !this.$accessKeyed ) {\n\t\t// Not initialized yet; the constructor will call updateTitle() which will rerun this function\n\t\treturn title;\n\t}\n\t// Use jquery.accessKeyLabel if available to show modifiers, otherwise just display the single key\n\tif ( $.fn.updateTooltipAccessKeys && $.fn.updateTooltipAccessKeys.getAccessKeyLabel ) {\n\t\taccessKey = $.fn.updateTooltipAccessKeys.getAccessKeyLabel( this.$accessKeyed[ 0 ] );\n\t} else {\n\t\taccessKey = this.getAccessKey();\n\t}\n\tif ( accessKey ) {\n\t\ttitle += ' [' + accessKey + ']';\n\t}\n\treturn title;\n};\n","/**\n * ButtonWidget is a generic widget for buttons. A wide variety of looks,\n * feels, and functionality can be customized via the class’s configuration options\n * and methods. Please see the [OOUI documentation on MediaWiki] [1] for more information\n * and examples.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Buttons_and_Switches\n *\n *     @example\n *     // A button widget\n *     var button = new OO.ui.ButtonWidget( {\n *         label: 'Button with Icon',\n *         icon: 'trash',\n *         title: 'Remove'\n *     } );\n *     $( 'body' ).append( button.$element );\n *\n * NOTE: HTML form buttons should use the OO.ui.ButtonInputWidget class.\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.ButtonElement\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.TitledElement\n * @mixins OO.ui.mixin.FlaggedElement\n * @mixins OO.ui.mixin.TabIndexedElement\n * @mixins OO.ui.mixin.AccessKeyedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [active=false] Whether button should be shown as active\n * @cfg {string} [href] Hyperlink to visit when the button is clicked.\n * @cfg {string} [target] The frame or window in which to open the hyperlink.\n * @cfg {boolean} [noFollow] Search engine traversal hint (default: true)\n */\nOO.ui.ButtonWidget = function OoUiButtonWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.ButtonWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.ButtonElement.call( this, config );\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$button } ) );\n\tOO.ui.mixin.FlaggedElement.call( this, config );\n\tOO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$button } ) );\n\tOO.ui.mixin.AccessKeyedElement.call( this, $.extend( {}, config, { $accessKeyed: this.$button } ) );\n\n\t// Properties\n\tthis.href = null;\n\tthis.target = null;\n\tthis.noFollow = false;\n\n\t// Events\n\tthis.connect( this, { disable: 'onDisable' } );\n\n\t// Initialization\n\tthis.$button.append( this.$icon, this.$label, this.$indicator );\n\tthis.$element\n\t\t.addClass( 'oo-ui-buttonWidget' )\n\t\t.append( this.$button );\n\tthis.setActive( config.active );\n\tthis.setHref( config.href );\n\tthis.setTarget( config.target );\n\tthis.setNoFollow( config.noFollow );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ButtonWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.ButtonElement );\nOO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.TitledElement );\nOO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.FlaggedElement );\nOO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.TabIndexedElement );\nOO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.AccessKeyedElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.ButtonWidget.static.cancelButtonMouseDownEvents = false;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.ButtonWidget.static.tagName = 'span';\n\n/* Methods */\n\n/**\n * Get hyperlink location.\n *\n * @return {string} Hyperlink location\n */\nOO.ui.ButtonWidget.prototype.getHref = function () {\n\treturn this.href;\n};\n\n/**\n * Get hyperlink target.\n *\n * @return {string} Hyperlink target\n */\nOO.ui.ButtonWidget.prototype.getTarget = function () {\n\treturn this.target;\n};\n\n/**\n * Get search engine traversal hint.\n *\n * @return {boolean} Whether search engines should avoid traversing this hyperlink\n */\nOO.ui.ButtonWidget.prototype.getNoFollow = function () {\n\treturn this.noFollow;\n};\n\n/**\n * Set hyperlink location.\n *\n * @param {string|null} href Hyperlink location, null to remove\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ButtonWidget.prototype.setHref = function ( href ) {\n\thref = typeof href === 'string' ? href : null;\n\tif ( href !== null && !OO.ui.isSafeUrl( href ) ) {\n\t\thref = './' + href;\n\t}\n\n\tif ( href !== this.href ) {\n\t\tthis.href = href;\n\t\tthis.updateHref();\n\t}\n\n\treturn this;\n};\n\n/**\n * Update the `href` attribute, in case of changes to href or\n * disabled state.\n *\n * @private\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ButtonWidget.prototype.updateHref = function () {\n\tif ( this.href !== null && !this.isDisabled() ) {\n\t\tthis.$button.attr( 'href', this.href );\n\t} else {\n\t\tthis.$button.removeAttr( 'href' );\n\t}\n\n\treturn this;\n};\n\n/**\n * Handle disable events.\n *\n * @private\n * @param {boolean} disabled Element is disabled\n */\nOO.ui.ButtonWidget.prototype.onDisable = function () {\n\tthis.updateHref();\n};\n\n/**\n * Set hyperlink target.\n *\n * @param {string|null} target Hyperlink target, null to remove\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ButtonWidget.prototype.setTarget = function ( target ) {\n\ttarget = typeof target === 'string' ? target : null;\n\n\tif ( target !== this.target ) {\n\t\tthis.target = target;\n\t\tif ( target !== null ) {\n\t\t\tthis.$button.attr( 'target', target );\n\t\t} else {\n\t\t\tthis.$button.removeAttr( 'target' );\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Set search engine traversal hint.\n *\n * @param {boolean} noFollow True if search engines should avoid traversing this hyperlink\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ButtonWidget.prototype.setNoFollow = function ( noFollow ) {\n\tnoFollow = typeof noFollow === 'boolean' ? noFollow : true;\n\n\tif ( noFollow !== this.noFollow ) {\n\t\tthis.noFollow = noFollow;\n\t\tif ( noFollow ) {\n\t\t\tthis.$button.attr( 'rel', 'nofollow' );\n\t\t} else {\n\t\t\tthis.$button.removeAttr( 'rel' );\n\t\t}\n\t}\n\n\treturn this;\n};\n\n// Override method visibility hints from ButtonElement\n/**\n * @method setActive\n * @inheritdoc\n */\n/**\n * @method isActive\n * @inheritdoc\n */\n","/**\n * A ButtonGroupWidget groups related buttons and is used together with OO.ui.ButtonWidget and\n * its subclasses. Each button in a group is addressed by a unique reference. Buttons can be added,\n * removed, and cleared from the group.\n *\n *     @example\n *     // Example: A ButtonGroupWidget with two buttons\n *     var button1 = new OO.ui.PopupButtonWidget( {\n *         label: 'Select a category',\n *         icon: 'menu',\n *         popup: {\n *             $content: $( '<p>List of categories...</p>' ),\n *             padded: true,\n *             align: 'left'\n *         }\n *     } );\n *     var button2 = new OO.ui.ButtonWidget( {\n *         label: 'Add item'\n *     });\n *     var buttonGroup = new OO.ui.ButtonGroupWidget( {\n *         items: [button1, button2]\n *     } );\n *     $( 'body' ).append( buttonGroup.$element );\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.ui.ButtonWidget[]} [items] Buttons to add\n */\nOO.ui.ButtonGroupWidget = function OoUiButtonGroupWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.ButtonGroupWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-buttonGroupWidget' );\n\tif ( Array.isArray( config.items ) ) {\n\t\tthis.addItems( config.items );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ButtonGroupWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.ButtonGroupWidget, OO.ui.mixin.GroupElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.ButtonGroupWidget.static.tagName = 'span';\n\n/* Methods */\n\n/**\n * Focus the widget\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ButtonGroupWidget.prototype.focus = function () {\n\tif ( !this.isDisabled() ) {\n\t\tif ( this.items[ 0 ] ) {\n\t\t\tthis.items[ 0 ].focus();\n\t\t}\n\t}\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ButtonGroupWidget.prototype.simulateLabelClick = function () {\n\tthis.focus();\n};\n","/**\n * IconWidget is a generic widget for {@link OO.ui.mixin.IconElement icons}. In general, IconWidgets should be used with OO.ui.LabelWidget,\n * which creates a label that identifies the icon’s function. See the [OOUI documentation on MediaWiki] [1]\n * for a list of icons included in the library.\n *\n *     @example\n *     // An icon widget with a label\n *     var myIcon = new OO.ui.IconWidget( {\n *         icon: 'help',\n *         title: 'Help'\n *      } );\n *      // Create a label.\n *      var iconLabel = new OO.ui.LabelWidget( {\n *          label: 'Help'\n *      } );\n *      $( 'body' ).append( myIcon.$element, iconLabel.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Icons\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.TitledElement\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.FlaggedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.IconWidget = function OoUiIconWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.IconWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.IconElement.call( this, $.extend( {}, config, { $icon: this.$element } ) );\n\tOO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$element } ) );\n\tOO.ui.mixin.LabelElement.call( this, $.extend( {}, config, { $label: this.$element, invisibleLabel: true } ) );\n\tOO.ui.mixin.FlaggedElement.call( this, $.extend( {}, config, { $flagged: this.$element } ) );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-iconWidget' );\n\t// Remove class added by LabelElement initialization. It causes unexpected CSS to apply when\n\t// nested in other widgets, because this widget used to not mix in LabelElement.\n\tthis.$element.removeClass( 'oo-ui-labelElement-label' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.IconWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.IconWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.IconWidget, OO.ui.mixin.TitledElement );\nOO.mixinClass( OO.ui.IconWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.IconWidget, OO.ui.mixin.FlaggedElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.IconWidget.static.tagName = 'span';\n","/**\n * IndicatorWidgets create indicators, which are small graphics that are generally used to draw\n * attention to the status of an item or to clarify the function within a control. For a list of\n * indicators included in the library, please see the [OOUI documentation on MediaWiki][1].\n *\n *     @example\n *     // Example of an indicator widget\n *     var indicator1 = new OO.ui.IndicatorWidget( {\n *         indicator: 'required'\n *     } );\n *\n *     // Create a fieldset layout to add a label\n *     var fieldset = new OO.ui.FieldsetLayout();\n *     fieldset.addItems( [\n *         new OO.ui.FieldLayout( indicator1, { label: 'A required indicator:' } )\n *     ] );\n *     $( 'body' ).append( fieldset.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Indicators\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.TitledElement\n * @mixins OO.ui.mixin.LabelElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.IndicatorWidget = function OoUiIndicatorWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.IndicatorWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.IndicatorElement.call( this, $.extend( {}, config, { $indicator: this.$element } ) );\n\tOO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$element } ) );\n\tOO.ui.mixin.LabelElement.call( this, $.extend( {}, config, { $label: this.$element, invisibleLabel: true } ) );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-indicatorWidget' );\n\t// Remove class added by LabelElement initialization. It causes unexpected CSS to apply when\n\t// nested in other widgets, because this widget used to not mix in LabelElement.\n\tthis.$element.removeClass( 'oo-ui-labelElement-label' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.IndicatorWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.IndicatorWidget, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.IndicatorWidget, OO.ui.mixin.TitledElement );\nOO.mixinClass( OO.ui.IndicatorWidget, OO.ui.mixin.LabelElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.IndicatorWidget.static.tagName = 'span';\n","/**\n * LabelWidgets help identify the function of interface elements. Each LabelWidget can\n * be configured with a `label` option that is set to a string, a label node, or a function:\n *\n * - String: a plaintext string\n * - jQuery selection: a jQuery selection, used for anything other than a plaintext label, e.g., a\n *   label that includes a link or special styling, such as a gray color or additional graphical elements.\n * - Function: a function that will produce a string in the future. Functions are used\n *   in cases where the value of the label is not currently defined.\n *\n * In addition, the LabelWidget can be associated with an {@link OO.ui.InputWidget input widget}, which\n * will come into focus when the label is clicked.\n *\n *     @example\n *     // Examples of LabelWidgets\n *     var label1 = new OO.ui.LabelWidget( {\n *         label: 'plaintext label'\n *     } );\n *     var label2 = new OO.ui.LabelWidget( {\n *         label: $( '<a>' ).attr( 'href', 'default.html' ).text( 'jQuery label' )\n *     } );\n *     // Create a fieldset layout with fields for each example\n *     var fieldset = new OO.ui.FieldsetLayout();\n *     fieldset.addItems( [\n *         new OO.ui.FieldLayout( label1 ),\n *         new OO.ui.FieldLayout( label2 )\n *     ] );\n *     $( 'body' ).append( fieldset.$element );\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.TitledElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.ui.InputWidget} [input] {@link OO.ui.InputWidget Input widget} that uses the label.\n *  Clicking the label will focus the specified input field.\n */\nOO.ui.LabelWidget = function OoUiLabelWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.LabelWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.LabelElement.call( this, $.extend( {}, config, { $label: this.$element } ) );\n\tOO.ui.mixin.TitledElement.call( this, config );\n\n\t// Properties\n\tthis.input = config.input;\n\n\t// Initialization\n\tif ( this.input ) {\n\t\tif ( this.input.getInputId() ) {\n\t\t\tthis.$element.attr( 'for', this.input.getInputId() );\n\t\t} else {\n\t\t\tthis.$label.on( 'click', function () {\n\t\t\t\tthis.input.simulateLabelClick();\n\t\t\t}.bind( this ) );\n\t\t}\n\t}\n\tthis.$element.addClass( 'oo-ui-labelWidget' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.LabelWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.LabelWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.LabelWidget, OO.ui.mixin.TitledElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.LabelWidget.static.tagName = 'label';\n","/**\n * PendingElement is a mixin that is used to create elements that notify users that something is happening\n * and that they should wait before proceeding. The pending state is visually represented with a pending\n * texture that appears in the head of a pending {@link OO.ui.ProcessDialog process dialog} or in the input\n * field of a {@link OO.ui.TextInputWidget text input widget}.\n *\n * Currently, {@link OO.ui.ActionWidget Action widgets}, which mix in this class, can also be marked as pending, but only when\n * used in {@link OO.ui.MessageDialog message dialogs}. The behavior is not currently supported for action widgets used\n * in process dialogs.\n *\n *     @example\n *     function MessageDialog( config ) {\n *         MessageDialog.parent.call( this, config );\n *     }\n *     OO.inheritClass( MessageDialog, OO.ui.MessageDialog );\n *\n *     MessageDialog.static.name = 'myMessageDialog';\n *     MessageDialog.static.actions = [\n *         { action: 'save', label: 'Done', flags: 'primary' },\n *         { label: 'Cancel', flags: 'safe' }\n *     ];\n *\n *     MessageDialog.prototype.initialize = function () {\n *         MessageDialog.parent.prototype.initialize.apply( this, arguments );\n *         this.content = new OO.ui.PanelLayout( { padded: true } );\n *         this.content.$element.append( '<p>Click the \\'Done\\' action widget to see its pending state. Note that action widgets can be marked pending in message dialogs but not process dialogs.</p>' );\n *         this.$body.append( this.content.$element );\n *     };\n *     MessageDialog.prototype.getBodyHeight = function () {\n *         return 100;\n *     }\n *     MessageDialog.prototype.getActionProcess = function ( action ) {\n *         var dialog = this;\n *         if ( action === 'save' ) {\n *             dialog.getActions().get({actions: 'save'})[0].pushPending();\n *             return new OO.ui.Process()\n *             .next( 1000 )\n *             .next( function () {\n *                 dialog.getActions().get({actions: 'save'})[0].popPending();\n *             } );\n *         }\n *         return MessageDialog.parent.prototype.getActionProcess.call( this, action );\n *     };\n *\n *     var windowManager = new OO.ui.WindowManager();\n *     $( 'body' ).append( windowManager.$element );\n *\n *     var dialog = new MessageDialog();\n *     windowManager.addWindows( [ dialog ] );\n *     windowManager.openWindow( dialog );\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$pending] Element to mark as pending, defaults to this.$element\n */\nOO.ui.mixin.PendingElement = function OoUiMixinPendingElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.pending = 0;\n\tthis.$pending = null;\n\n\t// Initialisation\n\tthis.setPendingElement( config.$pending || this.$element );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.PendingElement );\n\n/* Methods */\n\n/**\n * Set the pending element (and clean up any existing one).\n *\n * @param {jQuery} $pending The element to set to pending.\n */\nOO.ui.mixin.PendingElement.prototype.setPendingElement = function ( $pending ) {\n\tif ( this.$pending ) {\n\t\tthis.$pending.removeClass( 'oo-ui-pendingElement-pending' );\n\t}\n\n\tthis.$pending = $pending;\n\tif ( this.pending > 0 ) {\n\t\tthis.$pending.addClass( 'oo-ui-pendingElement-pending' );\n\t}\n};\n\n/**\n * Check if an element is pending.\n *\n * @return {boolean} Element is pending\n */\nOO.ui.mixin.PendingElement.prototype.isPending = function () {\n\treturn !!this.pending;\n};\n\n/**\n * Increase the pending counter. The pending state will remain active until the counter is zero\n * (i.e., the number of calls to #pushPending and #popPending is the same).\n *\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.PendingElement.prototype.pushPending = function () {\n\tif ( this.pending === 0 ) {\n\t\tthis.$pending.addClass( 'oo-ui-pendingElement-pending' );\n\t\tthis.updateThemeClasses();\n\t}\n\tthis.pending++;\n\n\treturn this;\n};\n\n/**\n * Decrease the pending counter. The pending state will remain active until the counter is zero\n * (i.e., the number of calls to #pushPending and #popPending is the same).\n *\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.PendingElement.prototype.popPending = function () {\n\tif ( this.pending === 1 ) {\n\t\tthis.$pending.removeClass( 'oo-ui-pendingElement-pending' );\n\t\tthis.updateThemeClasses();\n\t}\n\tthis.pending = Math.max( 0, this.pending - 1 );\n\n\treturn this;\n};\n","/**\n * Element that will stick adjacent to a specified container, even when it is inserted elsewhere\n * in the document (for example, in an OO.ui.Window's $overlay).\n *\n * The elements's position is automatically calculated and maintained when window is resized or the\n * page is scrolled. If you reposition the container manually, you have to call #position to make\n * sure the element is still placed correctly.\n *\n * As positioning is only possible when both the element and the container are attached to the DOM\n * and visible, it's only done after you call #togglePositioning. You might want to do this inside\n * the #toggle method to display a floating popup, for example.\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$floatable] Node to position, assigned to #$floatable, omit to use #$element\n * @cfg {jQuery} [$floatableContainer] Node to position adjacent to\n * @cfg {string} [verticalPosition='below'] Where to position $floatable vertically:\n *  'below': Directly below $floatableContainer, aligning f's top edge with fC's bottom edge\n *  'above': Directly above $floatableContainer, aligning f's bottom edge with fC's top edge\n *  'top': Align the top edge with $floatableContainer's top edge\n *  'bottom': Align the bottom edge with $floatableContainer's bottom edge\n *  'center': Vertically align the center with $floatableContainer's center\n * @cfg {string} [horizontalPosition='start'] Where to position $floatable horizontally:\n *  'before': Directly before $floatableContainer, aligning f's end edge with fC's start edge\n *  'after': Directly after $floatableContainer, aligning f's start edge with fC's end edge\n *  'start': Align the start (left in LTR, right in RTL) edge with $floatableContainer's start edge\n *  'end': Align the end (right in LTR, left in RTL) edge with $floatableContainer's end edge\n *  'center': Horizontally align the center with $floatableContainer's center\n * @cfg {boolean} [hideWhenOutOfView=true] Whether to hide the floatable element if the container\n *  is out of view\n */\nOO.ui.mixin.FloatableElement = function OoUiMixinFloatableElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$floatable = null;\n\tthis.$floatableContainer = null;\n\tthis.$floatableWindow = null;\n\tthis.$floatableClosestScrollable = null;\n\tthis.floatableOutOfView = false;\n\tthis.onFloatableScrollHandler = this.position.bind( this );\n\tthis.onFloatableWindowResizeHandler = this.position.bind( this );\n\n\t// Initialization\n\tthis.setFloatableContainer( config.$floatableContainer );\n\tthis.setFloatableElement( config.$floatable || this.$element );\n\tthis.setVerticalPosition( config.verticalPosition || 'below' );\n\tthis.setHorizontalPosition( config.horizontalPosition || 'start' );\n\tthis.hideWhenOutOfView = config.hideWhenOutOfView === undefined ? true : !!config.hideWhenOutOfView;\n};\n\n/* Methods */\n\n/**\n * Set floatable element.\n *\n * If an element is already set, it will be cleaned up before setting up the new element.\n *\n * @param {jQuery} $floatable Element to make floatable\n */\nOO.ui.mixin.FloatableElement.prototype.setFloatableElement = function ( $floatable ) {\n\tif ( this.$floatable ) {\n\t\tthis.$floatable.removeClass( 'oo-ui-floatableElement-floatable' );\n\t\tthis.$floatable.css( { left: '', top: '' } );\n\t}\n\n\tthis.$floatable = $floatable.addClass( 'oo-ui-floatableElement-floatable' );\n\tthis.position();\n};\n\n/**\n * Set floatable container.\n *\n * The element will be positioned relative to the specified container.\n *\n * @param {jQuery|null} $floatableContainer Container to keep visible, or null to unset\n */\nOO.ui.mixin.FloatableElement.prototype.setFloatableContainer = function ( $floatableContainer ) {\n\tthis.$floatableContainer = $floatableContainer;\n\tif ( this.$floatable ) {\n\t\tthis.position();\n\t}\n};\n\n/**\n * Change how the element is positioned vertically.\n *\n * @param {string} position 'below', 'above', 'top', 'bottom' or 'center'\n */\nOO.ui.mixin.FloatableElement.prototype.setVerticalPosition = function ( position ) {\n\tif ( [ 'below', 'above', 'top', 'bottom', 'center' ].indexOf( position ) === -1 ) {\n\t\tthrow new Error( 'Invalid value for vertical position: ' + position );\n\t}\n\tif ( this.verticalPosition !== position ) {\n\t\tthis.verticalPosition = position;\n\t\tif ( this.$floatable ) {\n\t\t\tthis.position();\n\t\t}\n\t}\n};\n\n/**\n * Change how the element is positioned horizontally.\n *\n * @param {string} position 'before', 'after', 'start', 'end' or 'center'\n */\nOO.ui.mixin.FloatableElement.prototype.setHorizontalPosition = function ( position ) {\n\tif ( [ 'before', 'after', 'start', 'end', 'center' ].indexOf( position ) === -1 ) {\n\t\tthrow new Error( 'Invalid value for horizontal position: ' + position );\n\t}\n\tif ( this.horizontalPosition !== position ) {\n\t\tthis.horizontalPosition = position;\n\t\tif ( this.$floatable ) {\n\t\t\tthis.position();\n\t\t}\n\t}\n};\n\n/**\n * Toggle positioning.\n *\n * Do not turn positioning on until after the element is attached to the DOM and visible.\n *\n * @param {boolean} [positioning] Enable positioning, omit to toggle\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.FloatableElement.prototype.togglePositioning = function ( positioning ) {\n\tvar closestScrollableOfContainer;\n\n\tif ( !this.$floatable || !this.$floatableContainer ) {\n\t\treturn this;\n\t}\n\n\tpositioning = positioning === undefined ? !this.positioning : !!positioning;\n\n\tif ( positioning && !this.warnedUnattached && !this.isElementAttached() ) {\n\t\tOO.ui.warnDeprecation( 'FloatableElement#togglePositioning: Before calling this method, the element must be attached to the DOM.' );\n\t\tthis.warnedUnattached = true;\n\t}\n\n\tif ( this.positioning !== positioning ) {\n\t\tthis.positioning = positioning;\n\n\t\tclosestScrollableOfContainer = OO.ui.Element.static.getClosestScrollableContainer( this.$floatableContainer[ 0 ] );\n\t\t// If the scrollable is the root, we have to listen to scroll events\n\t\t// on the window because of browser inconsistencies.\n\t\tif ( $( closestScrollableOfContainer ).is( 'html, body' ) ) {\n\t\t\tclosestScrollableOfContainer = OO.ui.Element.static.getWindow( closestScrollableOfContainer );\n\t\t}\n\n\t\tif ( positioning ) {\n\t\t\tthis.$floatableWindow = $( this.getElementWindow() );\n\t\t\tthis.$floatableWindow.on( 'resize', this.onFloatableWindowResizeHandler );\n\n\t\t\tthis.$floatableClosestScrollable = $( closestScrollableOfContainer );\n\t\t\tthis.$floatableClosestScrollable.on( 'scroll', this.onFloatableScrollHandler );\n\n\t\t\t// Initial position after visible\n\t\t\tthis.position();\n\t\t} else {\n\t\t\tif ( this.$floatableWindow ) {\n\t\t\t\tthis.$floatableWindow.off( 'resize', this.onFloatableWindowResizeHandler );\n\t\t\t\tthis.$floatableWindow = null;\n\t\t\t}\n\n\t\t\tif ( this.$floatableClosestScrollable ) {\n\t\t\t\tthis.$floatableClosestScrollable.off( 'scroll', this.onFloatableScrollHandler );\n\t\t\t\tthis.$floatableClosestScrollable = null;\n\t\t\t}\n\n\t\t\tthis.$floatable.css( { left: '', right: '', top: '' } );\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Check whether the bottom edge of the given element is within the viewport of the given container.\n *\n * @private\n * @param {jQuery} $element\n * @param {jQuery} $container\n * @return {boolean}\n */\nOO.ui.mixin.FloatableElement.prototype.isElementInViewport = function ( $element, $container ) {\n\tvar elemRect, contRect, topEdgeInBounds, bottomEdgeInBounds, leftEdgeInBounds, rightEdgeInBounds,\n\t\tstartEdgeInBounds, endEdgeInBounds, viewportSpacing,\n\t\tdirection = $element.css( 'direction' );\n\n\telemRect = $element[ 0 ].getBoundingClientRect();\n\tif ( $container[ 0 ] === window ) {\n\t\tviewportSpacing = OO.ui.getViewportSpacing();\n\t\tcontRect = {\n\t\t\ttop: 0,\n\t\t\tleft: 0,\n\t\t\tright: document.documentElement.clientWidth,\n\t\t\tbottom: document.documentElement.clientHeight\n\t\t};\n\t\tcontRect.top += viewportSpacing.top;\n\t\tcontRect.left += viewportSpacing.left;\n\t\tcontRect.right -= viewportSpacing.right;\n\t\tcontRect.bottom -= viewportSpacing.bottom;\n\t} else {\n\t\tcontRect = $container[ 0 ].getBoundingClientRect();\n\t}\n\n\ttopEdgeInBounds = elemRect.top >= contRect.top && elemRect.top <= contRect.bottom;\n\tbottomEdgeInBounds = elemRect.bottom >= contRect.top && elemRect.bottom <= contRect.bottom;\n\tleftEdgeInBounds = elemRect.left >= contRect.left && elemRect.left <= contRect.right;\n\trightEdgeInBounds = elemRect.right >= contRect.left && elemRect.right <= contRect.right;\n\tif ( direction === 'rtl' ) {\n\t\tstartEdgeInBounds = rightEdgeInBounds;\n\t\tendEdgeInBounds = leftEdgeInBounds;\n\t} else {\n\t\tstartEdgeInBounds = leftEdgeInBounds;\n\t\tendEdgeInBounds = rightEdgeInBounds;\n\t}\n\n\tif ( this.verticalPosition === 'below' && !bottomEdgeInBounds ) {\n\t\treturn false;\n\t}\n\tif ( this.verticalPosition === 'above' && !topEdgeInBounds ) {\n\t\treturn false;\n\t}\n\tif ( this.horizontalPosition === 'before' && !startEdgeInBounds ) {\n\t\treturn false;\n\t}\n\tif ( this.horizontalPosition === 'after' && !endEdgeInBounds ) {\n\t\treturn false;\n\t}\n\n\t// The other positioning values are all about being inside the container,\n\t// so in those cases all we care about is that any part of the container is visible.\n\treturn elemRect.top <= contRect.bottom && elemRect.bottom >= contRect.top &&\n\t\telemRect.left <= contRect.right && elemRect.right >= contRect.left;\n};\n\n/**\n * Check if the floatable is hidden to the user because it was offscreen.\n *\n * @return {boolean} Floatable is out of view\n */\nOO.ui.mixin.FloatableElement.prototype.isFloatableOutOfView = function () {\n\treturn this.floatableOutOfView;\n};\n\n/**\n * Position the floatable below its container.\n *\n * This should only be done when both of them are attached to the DOM and visible.\n *\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.FloatableElement.prototype.position = function () {\n\tif ( !this.positioning ) {\n\t\treturn this;\n\t}\n\n\tif ( !(\n\t\t// To continue, some things need to be true:\n\t\t// The element must actually be in the DOM\n\t\tthis.isElementAttached() && (\n\t\t\t// The closest scrollable is the current window\n\t\t\tthis.$floatableClosestScrollable[ 0 ] === this.getElementWindow() ||\n\t\t\t// OR is an element in the element's DOM\n\t\t\t$.contains( this.getElementDocument(), this.$floatableClosestScrollable[ 0 ] )\n\t\t)\n\t) ) {\n\t\t// Abort early if important parts of the widget are no longer attached to the DOM\n\t\treturn this;\n\t}\n\n\tthis.floatableOutOfView = this.hideWhenOutOfView && !this.isElementInViewport( this.$floatableContainer, this.$floatableClosestScrollable );\n\tif ( this.floatableOutOfView ) {\n\t\tthis.$floatable.addClass( 'oo-ui-element-hidden' );\n\t\treturn this;\n\t} else {\n\t\tthis.$floatable.removeClass( 'oo-ui-element-hidden' );\n\t}\n\n\tthis.$floatable.css( this.computePosition() );\n\n\t// We updated the position, so re-evaluate the clipping state.\n\t// (ClippableElement does not listen to 'scroll' events on $floatableContainer's parent, and so\n\t// will not notice the need to update itself.)\n\t// TODO: This is terrible, we shouldn't need to know about ClippableElement at all here. Why does\n\t// it not listen to the right events in the right places?\n\tif ( this.clip ) {\n\t\tthis.clip();\n\t}\n\n\treturn this;\n};\n\n/**\n * Compute how #$floatable should be positioned based on the position of #$floatableContainer\n * and the positioning settings. This is a helper for #position that shouldn't be called directly,\n * but may be overridden by subclasses if they want to change or add to the positioning logic.\n *\n * @return {Object} New position to apply with .css(). Keys are 'top', 'left', 'bottom' and 'right'.\n */\nOO.ui.mixin.FloatableElement.prototype.computePosition = function () {\n\tvar isBody, scrollableX, scrollableY, containerPos,\n\t\thorizScrollbarHeight, vertScrollbarWidth, scrollTop, scrollLeft,\n\t\tnewPos = { top: '', left: '', bottom: '', right: '' },\n\t\tdirection = this.$floatableContainer.css( 'direction' ),\n\t\t$offsetParent = this.$floatable.offsetParent();\n\n\tif ( $offsetParent.is( 'html' ) ) {\n\t\t// The innerHeight/Width and clientHeight/Width calculations don't work well on the\n\t\t// <html> element, but they do work on the <body>\n\t\t$offsetParent = $( $offsetParent[ 0 ].ownerDocument.body );\n\t}\n\tisBody = $offsetParent.is( 'body' );\n\tscrollableX = $offsetParent.css( 'overflow-x' ) === 'scroll' || $offsetParent.css( 'overflow-x' ) === 'auto';\n\tscrollableY = $offsetParent.css( 'overflow-y' ) === 'scroll' || $offsetParent.css( 'overflow-y' ) === 'auto';\n\n\tvertScrollbarWidth = $offsetParent.innerWidth() - $offsetParent.prop( 'clientWidth' );\n\thorizScrollbarHeight = $offsetParent.innerHeight() - $offsetParent.prop( 'clientHeight' );\n\t// We don't need to compute and add scrollTop and scrollLeft if the scrollable container is the body,\n\t// or if it isn't scrollable\n\tscrollTop = scrollableY && !isBody ? $offsetParent.scrollTop() : 0;\n\tscrollLeft = scrollableX && !isBody ? OO.ui.Element.static.getScrollLeft( $offsetParent[ 0 ] ) : 0;\n\n\t// Avoid passing the <body> to getRelativePosition(), because it won't return what we expect\n\t// if the <body> has a margin\n\tcontainerPos = isBody ?\n\t\tthis.$floatableContainer.offset() :\n\t\tOO.ui.Element.static.getRelativePosition( this.$floatableContainer, $offsetParent );\n\tcontainerPos.bottom = containerPos.top + this.$floatableContainer.outerHeight();\n\tcontainerPos.right = containerPos.left + this.$floatableContainer.outerWidth();\n\tcontainerPos.start = direction === 'rtl' ? containerPos.right : containerPos.left;\n\tcontainerPos.end = direction === 'rtl' ? containerPos.left : containerPos.right;\n\n\tif ( this.verticalPosition === 'below' ) {\n\t\tnewPos.top = containerPos.bottom;\n\t} else if ( this.verticalPosition === 'above' ) {\n\t\tnewPos.bottom = $offsetParent.outerHeight() - containerPos.top;\n\t} else if ( this.verticalPosition === 'top' ) {\n\t\tnewPos.top = containerPos.top;\n\t} else if ( this.verticalPosition === 'bottom' ) {\n\t\tnewPos.bottom = $offsetParent.outerHeight() - containerPos.bottom;\n\t} else if ( this.verticalPosition === 'center' ) {\n\t\tnewPos.top = containerPos.top +\n\t\t\t( this.$floatableContainer.height() - this.$floatable.height() ) / 2;\n\t}\n\n\tif ( this.horizontalPosition === 'before' ) {\n\t\tnewPos.end = containerPos.start;\n\t} else if ( this.horizontalPosition === 'after' ) {\n\t\tnewPos.start = containerPos.end;\n\t} else if ( this.horizontalPosition === 'start' ) {\n\t\tnewPos.start = containerPos.start;\n\t} else if ( this.horizontalPosition === 'end' ) {\n\t\tnewPos.end = containerPos.end;\n\t} else if ( this.horizontalPosition === 'center' ) {\n\t\tnewPos.left = containerPos.left +\n\t\t\t( this.$floatableContainer.width() - this.$floatable.width() ) / 2;\n\t}\n\n\tif ( newPos.start !== undefined ) {\n\t\tif ( direction === 'rtl' ) {\n\t\t\tnewPos.right = ( isBody ? $( $offsetParent[ 0 ].ownerDocument.documentElement ) : $offsetParent ).outerWidth() - newPos.start;\n\t\t} else {\n\t\t\tnewPos.left = newPos.start;\n\t\t}\n\t\tdelete newPos.start;\n\t}\n\tif ( newPos.end !== undefined ) {\n\t\tif ( direction === 'rtl' ) {\n\t\t\tnewPos.left = newPos.end;\n\t\t} else {\n\t\t\tnewPos.right = ( isBody ? $( $offsetParent[ 0 ].ownerDocument.documentElement ) : $offsetParent ).outerWidth() - newPos.end;\n\t\t}\n\t\tdelete newPos.end;\n\t}\n\n\t// Account for scroll position\n\tif ( newPos.top !== '' ) {\n\t\tnewPos.top += scrollTop;\n\t}\n\tif ( newPos.bottom !== '' ) {\n\t\tnewPos.bottom -= scrollTop;\n\t}\n\tif ( newPos.left !== '' ) {\n\t\tnewPos.left += scrollLeft;\n\t}\n\tif ( newPos.right !== '' ) {\n\t\tnewPos.right -= scrollLeft;\n\t}\n\n\t// Account for scrollbar gutter\n\tif ( newPos.bottom !== '' ) {\n\t\tnewPos.bottom -= horizScrollbarHeight;\n\t}\n\tif ( direction === 'rtl' ) {\n\t\tif ( newPos.left !== '' ) {\n\t\t\tnewPos.left -= vertScrollbarWidth;\n\t\t}\n\t} else {\n\t\tif ( newPos.right !== '' ) {\n\t\t\tnewPos.right -= vertScrollbarWidth;\n\t\t}\n\t}\n\n\treturn newPos;\n};\n","/**\n * Element that can be automatically clipped to visible boundaries.\n *\n * Whenever the element's natural height changes, you have to call\n * {@link OO.ui.mixin.ClippableElement#clip} to make sure it's still\n * clipping correctly.\n *\n * The dimensions of #$clippableContainer will be compared to the boundaries of the\n * nearest scrollable container. If #$clippableContainer is too tall and/or too wide,\n * then #$clippable will be given a fixed reduced height and/or width and will be made\n * scrollable. By default, #$clippable and #$clippableContainer are the same element,\n * but you can build a static footer by setting #$clippableContainer to an element that contains\n * #$clippable and the footer.\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$clippable] Node to clip, assigned to #$clippable, omit to use #$element\n * @cfg {jQuery} [$clippableContainer] Node to keep visible, assigned to #$clippableContainer,\n *   omit to use #$clippable\n */\nOO.ui.mixin.ClippableElement = function OoUiMixinClippableElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$clippable = null;\n\tthis.$clippableContainer = null;\n\tthis.clipping = false;\n\tthis.clippedHorizontally = false;\n\tthis.clippedVertically = false;\n\tthis.$clippableScrollableContainer = null;\n\tthis.$clippableScroller = null;\n\tthis.$clippableWindow = null;\n\tthis.idealWidth = null;\n\tthis.idealHeight = null;\n\tthis.onClippableScrollHandler = this.clip.bind( this );\n\tthis.onClippableWindowResizeHandler = this.clip.bind( this );\n\n\t// Initialization\n\tif ( config.$clippableContainer ) {\n\t\tthis.setClippableContainer( config.$clippableContainer );\n\t}\n\tthis.setClippableElement( config.$clippable || this.$element );\n};\n\n/* Methods */\n\n/**\n * Set clippable element.\n *\n * If an element is already set, it will be cleaned up before setting up the new element.\n *\n * @param {jQuery} $clippable Element to make clippable\n */\nOO.ui.mixin.ClippableElement.prototype.setClippableElement = function ( $clippable ) {\n\tif ( this.$clippable ) {\n\t\tthis.$clippable.removeClass( 'oo-ui-clippableElement-clippable' );\n\t\tthis.$clippable.css( { width: '', height: '', overflowX: '', overflowY: '' } );\n\t\tOO.ui.Element.static.reconsiderScrollbars( this.$clippable[ 0 ] );\n\t}\n\n\tthis.$clippable = $clippable.addClass( 'oo-ui-clippableElement-clippable' );\n\tthis.clip();\n};\n\n/**\n * Set clippable container.\n *\n * This is the container that will be measured when deciding whether to clip. When clipping,\n * #$clippable will be resized in order to keep the clippable container fully visible.\n *\n * If the clippable container is unset, #$clippable will be used.\n *\n * @param {jQuery|null} $clippableContainer Container to keep visible, or null to unset\n */\nOO.ui.mixin.ClippableElement.prototype.setClippableContainer = function ( $clippableContainer ) {\n\tthis.$clippableContainer = $clippableContainer;\n\tif ( this.$clippable ) {\n\t\tthis.clip();\n\t}\n};\n\n/**\n * Toggle clipping.\n *\n * Do not turn clipping on until after the element is attached to the DOM and visible.\n *\n * @param {boolean} [clipping] Enable clipping, omit to toggle\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.ClippableElement.prototype.toggleClipping = function ( clipping ) {\n\tclipping = clipping === undefined ? !this.clipping : !!clipping;\n\n\tif ( clipping && !this.warnedUnattached && !this.isElementAttached() ) {\n\t\tOO.ui.warnDeprecation( 'ClippableElement#toggleClipping: Before calling this method, the element must be attached to the DOM.' );\n\t\tthis.warnedUnattached = true;\n\t}\n\n\tif ( this.clipping !== clipping ) {\n\t\tthis.clipping = clipping;\n\t\tif ( clipping ) {\n\t\t\tthis.$clippableScrollableContainer = $( this.getClosestScrollableElementContainer() );\n\t\t\t// If the clippable container is the root, we have to listen to scroll events and check\n\t\t\t// jQuery.scrollTop on the window because of browser inconsistencies\n\t\t\tthis.$clippableScroller = this.$clippableScrollableContainer.is( 'html, body' ) ?\n\t\t\t\t$( OO.ui.Element.static.getWindow( this.$clippableScrollableContainer ) ) :\n\t\t\t\tthis.$clippableScrollableContainer;\n\t\t\tthis.$clippableScroller.on( 'scroll', this.onClippableScrollHandler );\n\t\t\tthis.$clippableWindow = $( this.getElementWindow() )\n\t\t\t\t.on( 'resize', this.onClippableWindowResizeHandler );\n\t\t\t// Initial clip after visible\n\t\t\tthis.clip();\n\t\t} else {\n\t\t\tthis.$clippable.css( {\n\t\t\t\twidth: '',\n\t\t\t\theight: '',\n\t\t\t\tmaxWidth: '',\n\t\t\t\tmaxHeight: '',\n\t\t\t\toverflowX: '',\n\t\t\t\toverflowY: ''\n\t\t\t} );\n\t\t\tOO.ui.Element.static.reconsiderScrollbars( this.$clippable[ 0 ] );\n\n\t\t\tthis.$clippableScrollableContainer = null;\n\t\t\tthis.$clippableScroller.off( 'scroll', this.onClippableScrollHandler );\n\t\t\tthis.$clippableScroller = null;\n\t\t\tthis.$clippableWindow.off( 'resize', this.onClippableWindowResizeHandler );\n\t\t\tthis.$clippableWindow = null;\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Check if the element will be clipped to fit the visible area of the nearest scrollable container.\n *\n * @return {boolean} Element will be clipped to the visible area\n */\nOO.ui.mixin.ClippableElement.prototype.isClipping = function () {\n\treturn this.clipping;\n};\n\n/**\n * Check if the bottom or right of the element is being clipped by the nearest scrollable container.\n *\n * @return {boolean} Part of the element is being clipped\n */\nOO.ui.mixin.ClippableElement.prototype.isClipped = function () {\n\treturn this.clippedHorizontally || this.clippedVertically;\n};\n\n/**\n * Check if the right of the element is being clipped by the nearest scrollable container.\n *\n * @return {boolean} Part of the element is being clipped\n */\nOO.ui.mixin.ClippableElement.prototype.isClippedHorizontally = function () {\n\treturn this.clippedHorizontally;\n};\n\n/**\n * Check if the bottom of the element is being clipped by the nearest scrollable container.\n *\n * @return {boolean} Part of the element is being clipped\n */\nOO.ui.mixin.ClippableElement.prototype.isClippedVertically = function () {\n\treturn this.clippedVertically;\n};\n\n/**\n * Set the ideal size. These are the dimensions #$clippable will have when it's not being clipped.\n *\n * @param {number|string} [width] Width as a number of pixels or CSS string with unit suffix\n * @param {number|string} [height] Height as a number of pixels or CSS string with unit suffix\n */\nOO.ui.mixin.ClippableElement.prototype.setIdealSize = function ( width, height ) {\n\tthis.idealWidth = width;\n\tthis.idealHeight = height;\n\n\tif ( !this.clipping ) {\n\t\t// Update dimensions\n\t\tthis.$clippable.css( { width: width, height: height } );\n\t}\n\t// While clipping, idealWidth and idealHeight are not considered\n};\n\n/**\n * Return the side of the clippable on which it is \"anchored\" (aligned to something else).\n * ClippableElement will clip the opposite side when reducing element's width.\n *\n * Classes that mix in ClippableElement should override this to return 'right' if their\n * clippable is absolutely positioned and using 'right: Npx' (and not using 'left').\n * If your class also mixes in FloatableElement, this is handled automatically.\n *\n * (This can't be guessed from the actual CSS because the computed values for 'left'/'right' are\n * always in pixels, even if they were unset or set to 'auto'.)\n *\n * When in doubt, 'left' (or 'right' in RTL) is a sane fallback.\n *\n * @return {string} 'left' or 'right'\n */\nOO.ui.mixin.ClippableElement.prototype.getHorizontalAnchorEdge = function () {\n\tif ( this.computePosition && this.positioning && this.computePosition().right !== '' ) {\n\t\treturn 'right';\n\t}\n\treturn 'left';\n};\n\n/**\n * Return the side of the clippable on which it is \"anchored\" (aligned to something else).\n * ClippableElement will clip the opposite side when reducing element's width.\n *\n * Classes that mix in ClippableElement should override this to return 'bottom' if their\n * clippable is absolutely positioned and using 'bottom: Npx' (and not using 'top').\n * If your class also mixes in FloatableElement, this is handled automatically.\n *\n * (This can't be guessed from the actual CSS because the computed values for 'left'/'right' are\n * always in pixels, even if they were unset or set to 'auto'.)\n *\n * When in doubt, 'top' is a sane fallback.\n *\n * @return {string} 'top' or 'bottom'\n */\nOO.ui.mixin.ClippableElement.prototype.getVerticalAnchorEdge = function () {\n\tif ( this.computePosition && this.positioning && this.computePosition().bottom !== '' ) {\n\t\treturn 'bottom';\n\t}\n\treturn 'top';\n};\n\n/**\n * Clip element to visible boundaries and allow scrolling when needed. You should call this method\n * when the element's natural height changes.\n *\n * Element will be clipped the bottom or right of the element is within 10px of the edge of, or\n * overlapped by, the visible area of the nearest scrollable container.\n *\n * Because calling clip() when the natural height changes isn't always possible, we also set\n * max-height when the element isn't being clipped. This means that if the element tries to grow\n * beyond the edge, something reasonable will happen before clip() is called.\n *\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.ClippableElement.prototype.clip = function () {\n\tvar extraHeight, extraWidth, viewportSpacing,\n\t\tdesiredWidth, desiredHeight, allotedWidth, allotedHeight,\n\t\tnaturalWidth, naturalHeight, clipWidth, clipHeight,\n\t\t$item, itemRect, $viewport, viewportRect, availableRect,\n\t\tdirection, vertScrollbarWidth, horizScrollbarHeight,\n\t\t// Extra tolerance so that the sloppy code below doesn't result in results that are off\n\t\t// by one or two pixels. (And also so that we have space to display drop shadows.)\n\t\t// Chosen by fair dice roll.\n\t\tbuffer = 7;\n\n\tif ( !this.clipping ) {\n\t\t// this.$clippableScrollableContainer and this.$clippableWindow are null, so the below will fail\n\t\treturn this;\n\t}\n\n\tfunction rectIntersection( a, b ) {\n\t\tvar out = {};\n\t\tout.top = Math.max( a.top, b.top );\n\t\tout.left = Math.max( a.left, b.left );\n\t\tout.bottom = Math.min( a.bottom, b.bottom );\n\t\tout.right = Math.min( a.right, b.right );\n\t\treturn out;\n\t}\n\n\tviewportSpacing = OO.ui.getViewportSpacing();\n\n\tif ( this.$clippableScrollableContainer.is( 'html, body' ) ) {\n\t\t$viewport = $( this.$clippableScrollableContainer[ 0 ].ownerDocument.body );\n\t\t// Dimensions of the browser window, rather than the element!\n\t\tviewportRect = {\n\t\t\ttop: 0,\n\t\t\tleft: 0,\n\t\t\tright: document.documentElement.clientWidth,\n\t\t\tbottom: document.documentElement.clientHeight\n\t\t};\n\t\tviewportRect.top += viewportSpacing.top;\n\t\tviewportRect.left += viewportSpacing.left;\n\t\tviewportRect.right -= viewportSpacing.right;\n\t\tviewportRect.bottom -= viewportSpacing.bottom;\n\t} else {\n\t\t$viewport = this.$clippableScrollableContainer;\n\t\tviewportRect = $viewport[ 0 ].getBoundingClientRect();\n\t\t// Convert into a plain object\n\t\tviewportRect = $.extend( {}, viewportRect );\n\t}\n\n\t// Account for scrollbar gutter\n\tdirection = $viewport.css( 'direction' );\n\tvertScrollbarWidth = $viewport.innerWidth() - $viewport.prop( 'clientWidth' );\n\thorizScrollbarHeight = $viewport.innerHeight() - $viewport.prop( 'clientHeight' );\n\tviewportRect.bottom -= horizScrollbarHeight;\n\tif ( direction === 'rtl' ) {\n\t\tviewportRect.left += vertScrollbarWidth;\n\t} else {\n\t\tviewportRect.right -= vertScrollbarWidth;\n\t}\n\n\t// Add arbitrary tolerance\n\tviewportRect.top += buffer;\n\tviewportRect.left += buffer;\n\tviewportRect.right -= buffer;\n\tviewportRect.bottom -= buffer;\n\n\t$item = this.$clippableContainer || this.$clippable;\n\n\textraHeight = $item.outerHeight() - this.$clippable.outerHeight();\n\textraWidth = $item.outerWidth() - this.$clippable.outerWidth();\n\n\titemRect = $item[ 0 ].getBoundingClientRect();\n\t// Convert into a plain object\n\titemRect = $.extend( {}, itemRect );\n\n\t// Item might already be clipped, so we can't just use its dimensions (in case we might need to\n\t// make it larger than before). Extend the rectangle to the maximum size we are allowed to take.\n\tif ( this.getHorizontalAnchorEdge() === 'right' ) {\n\t\titemRect.left = viewportRect.left;\n\t} else {\n\t\titemRect.right = viewportRect.right;\n\t}\n\tif ( this.getVerticalAnchorEdge() === 'bottom' ) {\n\t\titemRect.top = viewportRect.top;\n\t} else {\n\t\titemRect.bottom = viewportRect.bottom;\n\t}\n\n\tavailableRect = rectIntersection( viewportRect, itemRect );\n\n\tdesiredWidth = Math.max( 0, availableRect.right - availableRect.left );\n\tdesiredHeight = Math.max( 0, availableRect.bottom - availableRect.top );\n\t// It should never be desirable to exceed the dimensions of the browser viewport... right?\n\tdesiredWidth = Math.min( desiredWidth,\n\t\tdocument.documentElement.clientWidth - viewportSpacing.left - viewportSpacing.right );\n\tdesiredHeight = Math.min( desiredHeight,\n\t\tdocument.documentElement.clientHeight - viewportSpacing.top - viewportSpacing.right );\n\tallotedWidth = Math.ceil( desiredWidth - extraWidth );\n\tallotedHeight = Math.ceil( desiredHeight - extraHeight );\n\tnaturalWidth = this.$clippable.prop( 'scrollWidth' );\n\tnaturalHeight = this.$clippable.prop( 'scrollHeight' );\n\tclipWidth = allotedWidth < naturalWidth;\n\tclipHeight = allotedHeight < naturalHeight;\n\n\tif ( clipWidth ) {\n\t\t// The order matters here. If overflow is not set first, Chrome displays bogus scrollbars. See T157672.\n\t\t// Forcing a reflow is a smaller workaround than calling reconsiderScrollbars() for this case.\n\t\tthis.$clippable.css( 'overflowX', 'scroll' );\n\t\t// eslint-disable-next-line no-void\n\t\tvoid this.$clippable[ 0 ].offsetHeight; // Force reflow\n\t\tthis.$clippable.css( {\n\t\t\twidth: Math.max( 0, allotedWidth ),\n\t\t\tmaxWidth: ''\n\t\t} );\n\t} else {\n\t\tthis.$clippable.css( {\n\t\t\toverflowX: '',\n\t\t\twidth: this.idealWidth || '',\n\t\t\tmaxWidth: Math.max( 0, allotedWidth )\n\t\t} );\n\t}\n\tif ( clipHeight ) {\n\t\t// The order matters here. If overflow is not set first, Chrome displays bogus scrollbars. See T157672.\n\t\t// Forcing a reflow is a smaller workaround than calling reconsiderScrollbars() for this case.\n\t\tthis.$clippable.css( 'overflowY', 'scroll' );\n\t\t// eslint-disable-next-line no-void\n\t\tvoid this.$clippable[ 0 ].offsetHeight; // Force reflow\n\t\tthis.$clippable.css( {\n\t\t\theight: Math.max( 0, allotedHeight ),\n\t\t\tmaxHeight: ''\n\t\t} );\n\t} else {\n\t\tthis.$clippable.css( {\n\t\t\toverflowY: '',\n\t\t\theight: this.idealHeight || '',\n\t\t\tmaxHeight: Math.max( 0, allotedHeight )\n\t\t} );\n\t}\n\n\t// If we stopped clipping in at least one of the dimensions\n\tif ( ( this.clippedHorizontally && !clipWidth ) || ( this.clippedVertically && !clipHeight ) ) {\n\t\tOO.ui.Element.static.reconsiderScrollbars( this.$clippable[ 0 ] );\n\t}\n\n\tthis.clippedHorizontally = clipWidth;\n\tthis.clippedVertically = clipHeight;\n\n\treturn this;\n};\n","/**\n * PopupWidget is a container for content. The popup is overlaid and positioned absolutely.\n * By default, each popup has an anchor that points toward its origin.\n * Please see the [OOUI documentation on MediaWiki.org] [1] for more information and examples.\n *\n * Unlike most widgets, PopupWidget is initially hidden and must be shown by calling #toggle.\n *\n *     @example\n *     // A popup widget.\n *     var popup = new OO.ui.PopupWidget( {\n *         $content: $( '<p>Hi there!</p>' ),\n *         padded: true,\n *         width: 300\n *     } );\n *\n *     $( 'body' ).append( popup.$element );\n *     // To display the popup, toggle the visibility to 'true'.\n *     popup.toggle( true );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Popups\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.ClippableElement\n * @mixins OO.ui.mixin.FloatableElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {number|null} [width=320] Width of popup in pixels. Pass `null` to use automatic width.\n * @cfg {number|null} [height=null] Height of popup in pixels. Pass `null` to use automatic height.\n * @cfg {boolean} [anchor=true] Show anchor pointing to origin of popup\n * @cfg {string} [position='below'] Where to position the popup relative to $floatableContainer\n *  'above': Put popup above $floatableContainer; anchor points down to the horizontal center\n *           of $floatableContainer\n *  'below': Put popup below $floatableContainer; anchor points up to the horizontal center\n *           of $floatableContainer\n *  'before': Put popup to the left (LTR) / right (RTL) of $floatableContainer; anchor points\n *            endwards (right/left) to the vertical center of $floatableContainer\n *  'after': Put popup to the right (LTR) / left (RTL) of $floatableContainer; anchor points\n *            startwards (left/right) to the vertical center of $floatableContainer\n * @cfg {string} [align='center'] How to align the popup to $floatableContainer\n *  'forwards': If position is above/below, move the popup as far endwards (right in LTR, left in RTL)\n *              as possible while still keeping the anchor within the popup;\n *              if position is before/after, move the popup as far downwards as possible.\n *  'backwards': If position is above/below, move the popup as far startwards (left in LTR, right in RTL)\n *               as possible while still keeping the anchor within the popup;\n *               if position in before/after, move the popup as far upwards as possible.\n *  'center': Horizontally (if position is above/below) or vertically (before/after) align the center\n *            of the popup with the center of $floatableContainer.\n * 'force-left': Alias for 'forwards' in LTR and 'backwards' in RTL\n * 'force-right': Alias for 'backwards' in RTL and 'forwards' in LTR\n * @cfg {boolean} [autoFlip=true] Whether to automatically switch the popup's position between\n *  'above' and 'below', or between 'before' and 'after', if there is not enough space in the\n *  desired direction to display the popup without clipping\n * @cfg {jQuery} [$container] Constrain the popup to the boundaries of the specified container.\n *  See the [OOUI docs on MediaWiki][3] for an example.\n *  [3]: https://www.mediawiki.org/wiki/OOUI/Widgets/Popups#containerExample\n * @cfg {number} [containerPadding=10] Padding between the popup and its container, specified as a number of pixels.\n * @cfg {jQuery} [$content] Content to append to the popup's body\n * @cfg {jQuery} [$footer] Content to append to the popup's footer\n * @cfg {boolean} [autoClose=false] Automatically close the popup when it loses focus.\n * @cfg {jQuery} [$autoCloseIgnore] Elements that will not close the popup when clicked.\n *  This config option is only relevant if #autoClose is set to `true`. See the [OOUI documentation on MediaWiki][2]\n *  for an example.\n *  [2]: https://www.mediawiki.org/wiki/OOUI/Widgets/Popups#autocloseExample\n * @cfg {boolean} [head=false] Show a popup header that contains a #label (if specified) and close\n *  button.\n * @cfg {boolean} [padded=false] Add padding to the popup's body\n */\nOO.ui.PopupWidget = function OoUiPopupWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.PopupWidget.parent.call( this, config );\n\n\t// Properties (must be set before ClippableElement constructor call)\n\tthis.$body = $( '<div>' );\n\tthis.$popup = $( '<div>' );\n\n\t// Mixin constructors\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.ClippableElement.call( this, $.extend( {}, config, {\n\t\t$clippable: this.$body,\n\t\t$clippableContainer: this.$popup\n\t} ) );\n\tOO.ui.mixin.FloatableElement.call( this, config );\n\n\t// Properties\n\tthis.$anchor = $( '<div>' );\n\t// If undefined, will be computed lazily in computePosition()\n\tthis.$container = config.$container;\n\tthis.containerPadding = config.containerPadding !== undefined ? config.containerPadding : 10;\n\tthis.autoClose = !!config.autoClose;\n\tthis.transitionTimeout = null;\n\tthis.anchored = false;\n\tthis.onDocumentMouseDownHandler = this.onDocumentMouseDown.bind( this );\n\tthis.onDocumentKeyDownHandler = this.onDocumentKeyDown.bind( this );\n\n\t// Initialization\n\tthis.setSize( config.width, config.height );\n\tthis.toggleAnchor( config.anchor === undefined || config.anchor );\n\tthis.setAlignment( config.align || 'center' );\n\tthis.setPosition( config.position || 'below' );\n\tthis.setAutoFlip( config.autoFlip === undefined || config.autoFlip );\n\tthis.setAutoCloseIgnore( config.$autoCloseIgnore );\n\tthis.$body.addClass( 'oo-ui-popupWidget-body' );\n\tthis.$anchor.addClass( 'oo-ui-popupWidget-anchor' );\n\tthis.$popup\n\t\t.addClass( 'oo-ui-popupWidget-popup' )\n\t\t.append( this.$body );\n\tthis.$element\n\t\t.addClass( 'oo-ui-popupWidget' )\n\t\t.append( this.$popup, this.$anchor );\n\t// Move content, which was added to #$element by OO.ui.Widget, to the body\n\t// FIXME This is gross, we should use '$body' or something for the config\n\tif ( config.$content instanceof $ ) {\n\t\tthis.$body.append( config.$content );\n\t}\n\n\tif ( config.padded ) {\n\t\tthis.$body.addClass( 'oo-ui-popupWidget-body-padded' );\n\t}\n\n\tif ( config.head ) {\n\t\tthis.closeButton = new OO.ui.ButtonWidget( { framed: false, icon: 'close' } );\n\t\tthis.closeButton.connect( this, { click: 'onCloseButtonClick' } );\n\t\tthis.$head = $( '<div>' )\n\t\t\t.addClass( 'oo-ui-popupWidget-head' )\n\t\t\t.append( this.$label, this.closeButton.$element );\n\t\tthis.$popup.prepend( this.$head );\n\t}\n\n\tif ( config.$footer ) {\n\t\tthis.$footer = $( '<div>' )\n\t\t\t.addClass( 'oo-ui-popupWidget-footer' )\n\t\t\t.append( config.$footer );\n\t\tthis.$popup.append( this.$footer );\n\t}\n\n\t// Initially hidden - using #toggle may cause errors if subclasses override toggle with methods\n\t// that reference properties not initialized at that time of parent class construction\n\t// TODO: Find a better way to handle post-constructor setup\n\tthis.visible = false;\n\tthis.$element.addClass( 'oo-ui-element-hidden' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.PopupWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.PopupWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.PopupWidget, OO.ui.mixin.ClippableElement );\nOO.mixinClass( OO.ui.PopupWidget, OO.ui.mixin.FloatableElement );\n\n/* Events */\n\n/**\n * @event ready\n *\n * The popup is ready: it is visible and has been positioned and clipped.\n */\n\n/* Methods */\n\n/**\n * Handles document mouse down events.\n *\n * @private\n * @param {MouseEvent} e Mouse down event\n */\nOO.ui.PopupWidget.prototype.onDocumentMouseDown = function ( e ) {\n\tif (\n\t\tthis.isVisible() &&\n\t\t!OO.ui.contains( this.$element.add( this.$autoCloseIgnore ).get(), e.target, true )\n\t) {\n\t\tthis.toggle( false );\n\t}\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.PopupWidget.prototype.onMouseDown = function () {\n\tOO.ui.warnDeprecation( 'onMouseDown is deprecated, use onDocumentMouseDown instead' );\n\tthis.onDocumentMouseDown.apply( this, arguments );\n};\n\n/**\n * Bind document mouse down listener.\n *\n * @private\n */\nOO.ui.PopupWidget.prototype.bindDocumentMouseDownListener = function () {\n\t// Capture clicks outside popup\n\tthis.getElementDocument().addEventListener( 'mousedown', this.onDocumentMouseDownHandler, true );\n\t// We add 'click' event because iOS safari needs to respond to this event.\n\t// We can't use 'touchstart' (as is usually the equivalent to 'mousedown') because\n\t// then it will trigger when scrolling. While iOS Safari has some reported behavior\n\t// of occasionally not emitting 'click' properly, that event seems to be the standard\n\t// that it should be emitting, so we add it to this and will operate the event handler\n\t// on whichever of these events was triggered first\n\tthis.getElementDocument().addEventListener( 'click', this.onDocumentMouseDownHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.PopupWidget.prototype.bindMouseDownListener = function () {\n\tOO.ui.warnDeprecation( 'bindMouseDownListener is deprecated, use bindDocumentMouseDownListener instead' );\n\tthis.bindDocumentMouseDownListener.apply( this, arguments );\n};\n\n/**\n * Handles close button click events.\n *\n * @private\n */\nOO.ui.PopupWidget.prototype.onCloseButtonClick = function () {\n\tif ( this.isVisible() ) {\n\t\tthis.toggle( false );\n\t}\n};\n\n/**\n * Unbind document mouse down listener.\n *\n * @private\n */\nOO.ui.PopupWidget.prototype.unbindDocumentMouseDownListener = function () {\n\tthis.getElementDocument().removeEventListener( 'mousedown', this.onDocumentMouseDownHandler, true );\n\tthis.getElementDocument().removeEventListener( 'click', this.onDocumentMouseDownHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.PopupWidget.prototype.unbindMouseDownListener = function () {\n\tOO.ui.warnDeprecation( 'unbindMouseDownListener is deprecated, use unbindDocumentMouseDownListener instead' );\n\tthis.unbindDocumentMouseDownListener.apply( this, arguments );\n};\n\n/**\n * Handles document key down events.\n *\n * @private\n * @param {KeyboardEvent} e Key down event\n */\nOO.ui.PopupWidget.prototype.onDocumentKeyDown = function ( e ) {\n\tif (\n\t\te.which === OO.ui.Keys.ESCAPE &&\n\t\tthis.isVisible()\n\t) {\n\t\tthis.toggle( false );\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t}\n};\n\n/**\n * Bind document key down listener.\n *\n * @private\n */\nOO.ui.PopupWidget.prototype.bindDocumentKeyDownListener = function () {\n\tthis.getElementDocument().addEventListener( 'keydown', this.onDocumentKeyDownHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.PopupWidget.prototype.bindKeyDownListener = function () {\n\tOO.ui.warnDeprecation( 'bindKeyDownListener is deprecated, use bindDocumentKeyDownListener instead' );\n\tthis.bindDocumentKeyDownListener.apply( this, arguments );\n};\n\n/**\n * Unbind document key down listener.\n *\n * @private\n */\nOO.ui.PopupWidget.prototype.unbindDocumentKeyDownListener = function () {\n\tthis.getElementDocument().removeEventListener( 'keydown', this.onDocumentKeyDownHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.PopupWidget.prototype.unbindKeyDownListener = function () {\n\tOO.ui.warnDeprecation( 'unbindKeyDownListener is deprecated, use unbindDocumentKeyDownListener instead' );\n\tthis.unbindDocumentKeyDownListener.apply( this, arguments );\n};\n\n/**\n * Show, hide, or toggle the visibility of the anchor.\n *\n * @param {boolean} [show] Show anchor, omit to toggle\n */\nOO.ui.PopupWidget.prototype.toggleAnchor = function ( show ) {\n\tshow = show === undefined ? !this.anchored : !!show;\n\n\tif ( this.anchored !== show ) {\n\t\tif ( show ) {\n\t\t\tthis.$element.addClass( 'oo-ui-popupWidget-anchored' );\n\t\t\tthis.$element.addClass( 'oo-ui-popupWidget-anchored-' + this.anchorEdge );\n\t\t} else {\n\t\t\tthis.$element.removeClass( 'oo-ui-popupWidget-anchored' );\n\t\t\tthis.$element.removeClass( 'oo-ui-popupWidget-anchored-' + this.anchorEdge );\n\t\t}\n\t\tthis.anchored = show;\n\t}\n};\n\n/**\n * Change which edge the anchor appears on.\n *\n * @param {string} edge 'top', 'bottom', 'start' or 'end'\n */\nOO.ui.PopupWidget.prototype.setAnchorEdge = function ( edge ) {\n\tif ( [ 'top', 'bottom', 'start', 'end' ].indexOf( edge ) === -1 ) {\n\t\tthrow new Error( 'Invalid value for edge: ' + edge );\n\t}\n\tif ( this.anchorEdge !== null ) {\n\t\tthis.$element.removeClass( 'oo-ui-popupWidget-anchored-' + this.anchorEdge );\n\t}\n\tthis.anchorEdge = edge;\n\tif ( this.anchored ) {\n\t\tthis.$element.addClass( 'oo-ui-popupWidget-anchored-' + edge );\n\t}\n};\n\n/**\n * Check if the anchor is visible.\n *\n * @return {boolean} Anchor is visible\n */\nOO.ui.PopupWidget.prototype.hasAnchor = function () {\n\treturn this.anchored;\n};\n\n/**\n * Toggle visibility of the popup. The popup is initially hidden and must be shown by calling\n * `.toggle( true )` after its #$element is attached to the DOM.\n *\n * Do not show the popup while it is not attached to the DOM. The calculations required to display\n * it in the right place and with the right dimensions only work correctly while it is attached.\n * Side-effects may include broken interface and exceptions being thrown. This wasn't always\n * strictly enforced, so currently it only generates a warning in the browser console.\n *\n * @fires ready\n * @inheritdoc\n */\nOO.ui.PopupWidget.prototype.toggle = function ( show ) {\n\tvar change, normalHeight, oppositeHeight, normalWidth, oppositeWidth;\n\tshow = show === undefined ? !this.isVisible() : !!show;\n\n\tchange = show !== this.isVisible();\n\n\tif ( show && !this.warnedUnattached && !this.isElementAttached() ) {\n\t\tOO.ui.warnDeprecation( 'PopupWidget#toggle: Before calling this method, the popup must be attached to the DOM.' );\n\t\tthis.warnedUnattached = true;\n\t}\n\tif ( show && !this.$floatableContainer && this.isElementAttached() ) {\n\t\t// Fall back to the parent node if the floatableContainer is not set\n\t\tthis.setFloatableContainer( this.$element.parent() );\n\t}\n\n\tif ( change && show && this.autoFlip ) {\n\t\t// Reset auto-flipping before showing the popup again. It's possible we no longer need to flip\n\t\t// (e.g. if the user scrolled).\n\t\tthis.isAutoFlipped = false;\n\t}\n\n\t// Parent method\n\tOO.ui.PopupWidget.parent.prototype.toggle.call( this, show );\n\n\tif ( change ) {\n\t\tthis.togglePositioning( show && !!this.$floatableContainer );\n\n\t\tif ( show ) {\n\t\t\tif ( this.autoClose ) {\n\t\t\t\tthis.bindDocumentMouseDownListener();\n\t\t\t\tthis.bindDocumentKeyDownListener();\n\t\t\t}\n\t\t\tthis.updateDimensions();\n\t\t\tthis.toggleClipping( true );\n\n\t\t\tif ( this.autoFlip ) {\n\t\t\t\tif ( this.popupPosition === 'above' || this.popupPosition === 'below' ) {\n\t\t\t\t\tif ( this.isClippedVertically() || this.isFloatableOutOfView() ) {\n\t\t\t\t\t\t// If opening the popup in the normal direction causes it to be clipped, open\n\t\t\t\t\t\t// in the opposite one instead\n\t\t\t\t\t\tnormalHeight = this.$element.height();\n\t\t\t\t\t\tthis.isAutoFlipped = !this.isAutoFlipped;\n\t\t\t\t\t\tthis.position();\n\t\t\t\t\t\tif ( this.isClippedVertically() || this.isFloatableOutOfView() ) {\n\t\t\t\t\t\t\t// If that also causes it to be clipped, open in whichever direction\n\t\t\t\t\t\t\t// we have more space\n\t\t\t\t\t\t\toppositeHeight = this.$element.height();\n\t\t\t\t\t\t\tif ( oppositeHeight < normalHeight ) {\n\t\t\t\t\t\t\t\tthis.isAutoFlipped = !this.isAutoFlipped;\n\t\t\t\t\t\t\t\tthis.position();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif ( this.popupPosition === 'before' || this.popupPosition === 'after' ) {\n\t\t\t\t\tif ( this.isClippedHorizontally() || this.isFloatableOutOfView() ) {\n\t\t\t\t\t\t// If opening the popup in the normal direction causes it to be clipped, open\n\t\t\t\t\t\t// in the opposite one instead\n\t\t\t\t\t\tnormalWidth = this.$element.width();\n\t\t\t\t\t\tthis.isAutoFlipped = !this.isAutoFlipped;\n\t\t\t\t\t\t// Due to T180173 horizontally clipped PopupWidgets have messed up dimensions,\n\t\t\t\t\t\t// which causes positioning to be off. Toggle clipping back and fort to work around.\n\t\t\t\t\t\tthis.toggleClipping( false );\n\t\t\t\t\t\tthis.position();\n\t\t\t\t\t\tthis.toggleClipping( true );\n\t\t\t\t\t\tif ( this.isClippedHorizontally() || this.isFloatableOutOfView() ) {\n\t\t\t\t\t\t\t// If that also causes it to be clipped, open in whichever direction\n\t\t\t\t\t\t\t// we have more space\n\t\t\t\t\t\t\toppositeWidth = this.$element.width();\n\t\t\t\t\t\t\tif ( oppositeWidth < normalWidth ) {\n\t\t\t\t\t\t\t\tthis.isAutoFlipped = !this.isAutoFlipped;\n\t\t\t\t\t\t\t\t// Due to T180173 horizontally clipped PopupWidgets have messed up dimensions,\n\t\t\t\t\t\t\t\t// which causes positioning to be off. Toggle clipping back and fort to work around.\n\t\t\t\t\t\t\t\tthis.toggleClipping( false );\n\t\t\t\t\t\t\t\tthis.position();\n\t\t\t\t\t\t\t\tthis.toggleClipping( true );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.emit( 'ready' );\n\t\t} else {\n\t\t\tthis.toggleClipping( false );\n\t\t\tif ( this.autoClose ) {\n\t\t\t\tthis.unbindDocumentMouseDownListener();\n\t\t\t\tthis.unbindDocumentKeyDownListener();\n\t\t\t}\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Set the size of the popup.\n *\n * Changing the size may also change the popup's position depending on the alignment.\n *\n * @param {number|null} [width=320] Width in pixels. Pass `null` to use automatic width.\n * @param {number|null} [height=null] Height in pixels. Pass `null` to use automatic height.\n * @param {boolean} [transition=false] Use a smooth transition\n * @chainable\n */\nOO.ui.PopupWidget.prototype.setSize = function ( width, height, transition ) {\n\tthis.width = width !== undefined ? width : 320;\n\tthis.height = height !== undefined ? height : null;\n\tif ( this.isVisible() ) {\n\t\tthis.updateDimensions( transition );\n\t}\n};\n\n/**\n * Update the size and position.\n *\n * Only use this to keep the popup properly anchored. Use #setSize to change the size, and this will\n * be called automatically.\n *\n * @param {boolean} [transition=false] Use a smooth transition\n * @chainable\n */\nOO.ui.PopupWidget.prototype.updateDimensions = function ( transition ) {\n\tvar widget = this;\n\n\t// Prevent transition from being interrupted\n\tclearTimeout( this.transitionTimeout );\n\tif ( transition ) {\n\t\t// Enable transition\n\t\tthis.$element.addClass( 'oo-ui-popupWidget-transitioning' );\n\t}\n\n\tthis.position();\n\n\tif ( transition ) {\n\t\t// Prevent transitioning after transition is complete\n\t\tthis.transitionTimeout = setTimeout( function () {\n\t\t\twidget.$element.removeClass( 'oo-ui-popupWidget-transitioning' );\n\t\t}, 200 );\n\t} else {\n\t\t// Prevent transitioning immediately\n\t\tthis.$element.removeClass( 'oo-ui-popupWidget-transitioning' );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.PopupWidget.prototype.computePosition = function () {\n\tvar direction, align, vertical, start, end, near, far, sizeProp, popupSize, anchorSize, anchorPos,\n\t\tanchorOffset, anchorMargin, parentPosition, positionProp, positionAdjustment, floatablePos,\n\t\toffsetParentPos, containerPos, popupPosition, viewportSpacing,\n\t\tpopupPos = {},\n\t\tanchorCss = { left: '', right: '', top: '', bottom: '' },\n\t\tpopupPositionOppositeMap = {\n\t\t\tabove: 'below',\n\t\t\tbelow: 'above',\n\t\t\tbefore: 'after',\n\t\t\tafter: 'before'\n\t\t},\n\t\talignMap = {\n\t\t\tltr: {\n\t\t\t\t'force-left': 'backwards',\n\t\t\t\t'force-right': 'forwards'\n\t\t\t},\n\t\t\trtl: {\n\t\t\t\t'force-left': 'forwards',\n\t\t\t\t'force-right': 'backwards'\n\t\t\t}\n\t\t},\n\t\tanchorEdgeMap = {\n\t\t\tabove: 'bottom',\n\t\t\tbelow: 'top',\n\t\t\tbefore: 'end',\n\t\t\tafter: 'start'\n\t\t},\n\t\thPosMap = {\n\t\t\tforwards: 'start',\n\t\t\tcenter: 'center',\n\t\t\tbackwards: this.anchored ? 'before' : 'end'\n\t\t},\n\t\tvPosMap = {\n\t\t\tforwards: 'top',\n\t\t\tcenter: 'center',\n\t\t\tbackwards: 'bottom'\n\t\t};\n\n\tif ( !this.$container ) {\n\t\t// Lazy-initialize $container if not specified in constructor\n\t\tthis.$container = $( this.getClosestScrollableElementContainer() );\n\t}\n\tdirection = this.$container.css( 'direction' );\n\n\t// Set height and width before we do anything else, since it might cause our measurements\n\t// to change (e.g. due to scrollbars appearing or disappearing), and it also affects centering\n\tthis.$popup.css( {\n\t\twidth: this.width !== null ? this.width : 'auto',\n\t\theight: this.height !== null ? this.height : 'auto'\n\t} );\n\n\talign = alignMap[ direction ][ this.align ] || this.align;\n\tpopupPosition = this.popupPosition;\n\tif ( this.isAutoFlipped ) {\n\t\tpopupPosition = popupPositionOppositeMap[ popupPosition ];\n\t}\n\n\t// If the popup is positioned before or after, then the anchor positioning is vertical, otherwise horizontal\n\tvertical = popupPosition === 'before' || popupPosition === 'after';\n\tstart = vertical ? 'top' : ( direction === 'rtl' ? 'right' : 'left' );\n\tend = vertical ? 'bottom' : ( direction === 'rtl' ? 'left' : 'right' );\n\tnear = vertical ? 'top' : 'left';\n\tfar = vertical ? 'bottom' : 'right';\n\tsizeProp = vertical ? 'Height' : 'Width';\n\tpopupSize = vertical ? ( this.height || this.$popup.height() ) : ( this.width || this.$popup.width() );\n\n\tthis.setAnchorEdge( anchorEdgeMap[ popupPosition ] );\n\tthis.horizontalPosition = vertical ? popupPosition : hPosMap[ align ];\n\tthis.verticalPosition = vertical ? vPosMap[ align ] : popupPosition;\n\n\t// Parent method\n\tparentPosition = OO.ui.mixin.FloatableElement.prototype.computePosition.call( this );\n\t// Find out which property FloatableElement used for positioning, and adjust that value\n\tpositionProp = vertical ?\n\t\t( parentPosition.top !== '' ? 'top' : 'bottom' ) :\n\t\t( parentPosition.left !== '' ? 'left' : 'right' );\n\n\t// Figure out where the near and far edges of the popup and $floatableContainer are\n\tfloatablePos = this.$floatableContainer.offset();\n\tfloatablePos[ far ] = floatablePos[ near ] + this.$floatableContainer[ 'outer' + sizeProp ]();\n\t// Measure where the offsetParent is and compute our position based on that and parentPosition\n\toffsetParentPos = this.$element.offsetParent()[ 0 ] === document.documentElement ?\n\t\t{ top: 0, left: 0 } :\n\t\tthis.$element.offsetParent().offset();\n\n\tif ( positionProp === near ) {\n\t\tpopupPos[ near ] = offsetParentPos[ near ] + parentPosition[ near ];\n\t\tpopupPos[ far ] = popupPos[ near ] + popupSize;\n\t} else {\n\t\tpopupPos[ far ] = offsetParentPos[ near ] +\n\t\t\tthis.$element.offsetParent()[ 'inner' + sizeProp ]() - parentPosition[ far ];\n\t\tpopupPos[ near ] = popupPos[ far ] - popupSize;\n\t}\n\n\tif ( this.anchored ) {\n\t\t// Position the anchor (which is positioned relative to the popup) to point to $floatableContainer\n\t\tanchorPos = ( floatablePos[ start ] + floatablePos[ end ] ) / 2;\n\t\tanchorOffset = ( start === far ? -1 : 1 ) * ( anchorPos - popupPos[ start ] );\n\n\t\t// If the anchor is less than 2*anchorSize from either edge, move the popup to make more space\n\t\t// this.$anchor.width()/height() returns 0 because of the CSS trickery we use, so use scrollWidth/Height\n\t\tanchorSize = this.$anchor[ 0 ][ 'scroll' + sizeProp ];\n\t\tanchorMargin = parseFloat( this.$anchor.css( 'margin-' + start ) );\n\t\tif ( anchorOffset + anchorMargin < 2 * anchorSize ) {\n\t\t\t// Not enough space for the anchor on the start side; pull the popup startwards\n\t\t\tpositionAdjustment = ( positionProp === start ? -1 : 1 ) *\n\t\t\t\t( 2 * anchorSize - ( anchorOffset + anchorMargin ) );\n\t\t} else if ( anchorOffset + anchorMargin > popupSize - 2 * anchorSize ) {\n\t\t\t// Not enough space for the anchor on the end side; pull the popup endwards\n\t\t\tpositionAdjustment = ( positionProp === end ? -1 : 1 ) *\n\t\t\t\t( anchorOffset + anchorMargin - ( popupSize - 2 * anchorSize ) );\n\t\t} else {\n\t\t\tpositionAdjustment = 0;\n\t\t}\n\t} else {\n\t\tpositionAdjustment = 0;\n\t}\n\n\t// Check if the popup will go beyond the edge of this.$container\n\tcontainerPos = this.$container[ 0 ] === document.documentElement ?\n\t\t{ top: 0, left: 0 } :\n\t\tthis.$container.offset();\n\tcontainerPos[ far ] = containerPos[ near ] + this.$container[ 'inner' + sizeProp ]();\n\tif ( this.$container[ 0 ] === document.documentElement ) {\n\t\tviewportSpacing = OO.ui.getViewportSpacing();\n\t\tcontainerPos[ near ] += viewportSpacing[ near ];\n\t\tcontainerPos[ far ] -= viewportSpacing[ far ];\n\t}\n\t// Take into account how much the popup will move because of the adjustments we're going to make\n\tpopupPos[ near ] += ( positionProp === near ? 1 : -1 ) * positionAdjustment;\n\tpopupPos[ far ] += ( positionProp === near ? 1 : -1 ) * positionAdjustment;\n\tif ( containerPos[ near ] + this.containerPadding > popupPos[ near ] ) {\n\t\t// Popup goes beyond the near (left/top) edge, move it to the right/bottom\n\t\tpositionAdjustment += ( positionProp === near ? 1 : -1 ) *\n\t\t\t( containerPos[ near ] + this.containerPadding - popupPos[ near ] );\n\t} else if ( containerPos[ far ] - this.containerPadding < popupPos[ far ] ) {\n\t\t// Popup goes beyond the far (right/bottom) edge, move it to the left/top\n\t\tpositionAdjustment += ( positionProp === far ? 1 : -1 ) *\n\t\t\t( popupPos[ far ] - ( containerPos[ far ] - this.containerPadding ) );\n\t}\n\n\tif ( this.anchored ) {\n\t\t// Adjust anchorOffset for positionAdjustment\n\t\tanchorOffset += ( positionProp === start ? -1 : 1 ) * positionAdjustment;\n\n\t\t// Position the anchor\n\t\tanchorCss[ start ] = anchorOffset;\n\t\tthis.$anchor.css( anchorCss );\n\t}\n\n\t// Move the popup if needed\n\tparentPosition[ positionProp ] += positionAdjustment;\n\n\treturn parentPosition;\n};\n\n/**\n * Set popup alignment\n *\n * @param {string} [align=center] Alignment of the popup, `center`, `force-left`, `force-right`,\n *  `backwards` or `forwards`.\n */\nOO.ui.PopupWidget.prototype.setAlignment = function ( align ) {\n\t// Validate alignment\n\tif ( [ 'force-left', 'force-right', 'backwards', 'forwards', 'center' ].indexOf( align ) > -1 ) {\n\t\tthis.align = align;\n\t} else {\n\t\tthis.align = 'center';\n\t}\n\tthis.position();\n};\n\n/**\n * Get popup alignment\n *\n * @return {string} Alignment of the popup, `center`, `force-left`, `force-right`,\n *  `backwards` or `forwards`.\n */\nOO.ui.PopupWidget.prototype.getAlignment = function () {\n\treturn this.align;\n};\n\n/**\n * Change the positioning of the popup.\n *\n * @param {string} position 'above', 'below', 'before' or 'after'\n */\nOO.ui.PopupWidget.prototype.setPosition = function ( position ) {\n\tif ( [ 'above', 'below', 'before', 'after' ].indexOf( position ) === -1 ) {\n\t\tposition = 'below';\n\t}\n\tthis.popupPosition = position;\n\tthis.position();\n};\n\n/**\n * Get popup positioning.\n *\n * @return {string} 'above', 'below', 'before' or 'after'\n */\nOO.ui.PopupWidget.prototype.getPosition = function () {\n\treturn this.popupPosition;\n};\n\n/**\n * Set popup auto-flipping.\n *\n * @param {boolean} autoFlip Whether to automatically switch the popup's position between\n *  'above' and 'below', or between 'before' and 'after', if there is not enough space in the\n *  desired direction to display the popup without clipping\n */\nOO.ui.PopupWidget.prototype.setAutoFlip = function ( autoFlip ) {\n\tautoFlip = !!autoFlip;\n\n\tif ( this.autoFlip !== autoFlip ) {\n\t\tthis.autoFlip = autoFlip;\n\t}\n};\n\n/**\n * Set which elements will not close the popup when clicked.\n *\n * For auto-closing popups, clicks on these elements will not cause the popup to auto-close.\n *\n * @param {jQuery} $autoCloseIgnore Elements to ignore for auto-closing\n */\nOO.ui.PopupWidget.prototype.setAutoCloseIgnore = function ( $autoCloseIgnore ) {\n\tthis.$autoCloseIgnore = $autoCloseIgnore;\n};\n\n/**\n * Get an ID of the body element, this can be used as the\n * `aria-describedby` attribute for an input field.\n *\n * @return {string} The ID of the body element\n */\nOO.ui.PopupWidget.prototype.getBodyId = function () {\n\tvar id = this.$body.attr( 'id' );\n\tif ( id === undefined ) {\n\t\tid = OO.ui.generateElementId();\n\t\tthis.$body.attr( 'id', id );\n\t}\n\treturn id;\n};\n","/**\n * PopupElement is mixed into other classes to generate a {@link OO.ui.PopupWidget popup widget}.\n * A popup is a container for content. It is overlaid and positioned absolutely. By default, each\n * popup has an anchor, which is an arrow-like protrusion that points toward the popup’s origin.\n * See {@link OO.ui.PopupWidget PopupWidget} for an example.\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {Object} [popup] Configuration to pass to popup\n * @cfg {boolean} [popup.autoClose=true] Popup auto-closes when it loses focus\n */\nOO.ui.mixin.PopupElement = function OoUiMixinPopupElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.popup = new OO.ui.PopupWidget( $.extend(\n\t\t{\n\t\t\tautoClose: true,\n\t\t\t$floatableContainer: this.$element\n\t\t},\n\t\tconfig.popup,\n\t\t{\n\t\t\t$autoCloseIgnore: this.$element.add( config.popup && config.popup.$autoCloseIgnore )\n\t\t}\n\t) );\n};\n\n/* Methods */\n\n/**\n * Get popup.\n *\n * @return {OO.ui.PopupWidget} Popup widget\n */\nOO.ui.mixin.PopupElement.prototype.getPopup = function () {\n\treturn this.popup;\n};\n","/**\n * PopupButtonWidgets toggle the visibility of a contained {@link OO.ui.PopupWidget PopupWidget},\n * which is used to display additional information or options.\n *\n *     @example\n *     // Example of a popup button.\n *     var popupButton = new OO.ui.PopupButtonWidget( {\n *         label: 'Popup button with options',\n *         icon: 'menu',\n *         popup: {\n *             $content: $( '<p>Additional options here.</p>' ),\n *             padded: true,\n *             align: 'force-left'\n *         }\n *     } );\n *     // Append the button to the DOM.\n *     $( 'body' ).append( popupButton.$element );\n *\n * @class\n * @extends OO.ui.ButtonWidget\n * @mixins OO.ui.mixin.PopupElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$overlay] Render the popup into a separate layer. This configuration is useful in cases where\n *  the expanded popup is larger than its containing `<div>`. The specified overlay layer is usually on top of the\n *  containing `<div>` and has a larger area. By default, the popup uses relative positioning.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n */\nOO.ui.PopupButtonWidget = function OoUiPopupButtonWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.PopupButtonWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.PopupElement.call( this, config );\n\n\t// Properties\n\tthis.$overlay = ( config.$overlay === true ? OO.ui.getDefaultOverlay() : config.$overlay ) || this.$element;\n\n\t// Events\n\tthis.connect( this, { click: 'onAction' } );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-popupButtonWidget' );\n\tthis.popup.$element\n\t\t.addClass( 'oo-ui-popupButtonWidget-popup' )\n\t\t.toggleClass( 'oo-ui-popupButtonWidget-framed-popup', this.isFramed() )\n\t\t.toggleClass( 'oo-ui-popupButtonWidget-frameless-popup', !this.isFramed() );\n\tthis.$overlay.append( this.popup.$element );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.PopupButtonWidget, OO.ui.ButtonWidget );\nOO.mixinClass( OO.ui.PopupButtonWidget, OO.ui.mixin.PopupElement );\n\n/* Methods */\n\n/**\n * Handle the button action being triggered.\n *\n * @private\n */\nOO.ui.PopupButtonWidget.prototype.onAction = function () {\n\tthis.popup.toggle();\n};\n","/**\n * Mixin for OO.ui.Widget subclasses to provide OO.ui.mixin.GroupElement.\n *\n * Use together with OO.ui.mixin.ItemWidget to make disabled state inheritable.\n *\n * @private\n * @abstract\n * @class\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.mixin.GroupWidget = function OoUiMixinGroupWidget( config ) {\n\t// Mixin constructors\n\tOO.ui.mixin.GroupElement.call( this, config );\n};\n\n/* Setup */\n\nOO.mixinClass( OO.ui.mixin.GroupWidget, OO.ui.mixin.GroupElement );\n\n/* Methods */\n\n/**\n * Set the disabled state of the widget.\n *\n * This will also update the disabled state of child widgets.\n *\n * @param {boolean} disabled Disable widget\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.mixin.GroupWidget.prototype.setDisabled = function ( disabled ) {\n\tvar i, len;\n\n\t// Parent method\n\t// Note: Calling #setDisabled this way assumes this is mixed into an OO.ui.Widget\n\tOO.ui.Widget.prototype.setDisabled.call( this, disabled );\n\n\t// During construction, #setDisabled is called before the OO.ui.mixin.GroupElement constructor\n\tif ( this.items ) {\n\t\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\t\tthis.items[ i ].updateDisabled();\n\t\t}\n\t}\n\n\treturn this;\n};\n","/**\n * Mixin for widgets used as items in widgets that mix in OO.ui.mixin.GroupWidget.\n *\n * Item widgets have a reference to a OO.ui.mixin.GroupWidget while they are attached to the group. This\n * allows bidirectional communication.\n *\n * Use together with OO.ui.mixin.GroupWidget to make disabled state inheritable.\n *\n * @private\n * @abstract\n * @class\n *\n * @constructor\n */\nOO.ui.mixin.ItemWidget = function OoUiMixinItemWidget() {\n\t//\n};\n\n/* Methods */\n\n/**\n * Check if widget is disabled.\n *\n * Checks parent if present, making disabled state inheritable.\n *\n * @return {boolean} Widget is disabled\n */\nOO.ui.mixin.ItemWidget.prototype.isDisabled = function () {\n\treturn this.disabled ||\n\t\t( this.elementGroup instanceof OO.ui.Widget && this.elementGroup.isDisabled() );\n};\n\n/**\n * Set group element is in.\n *\n * @param {OO.ui.mixin.GroupElement|null} group Group element, null if none\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.mixin.ItemWidget.prototype.setElementGroup = function ( group ) {\n\t// Parent method\n\t// Note: Calling #setElementGroup this way assumes this is mixed into an OO.ui.Element\n\tOO.ui.Element.prototype.setElementGroup.call( this, group );\n\n\t// Initialize item disabled states\n\tthis.updateDisabled();\n\n\treturn this;\n};\n","/**\n * OptionWidgets are special elements that can be selected and configured with data. The\n * data is often unique for each option, but it does not have to be. OptionWidgets are used\n * with OO.ui.SelectWidget to create a selection of mutually exclusive options. For more information\n * and examples, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.ItemWidget\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.FlaggedElement\n * @mixins OO.ui.mixin.AccessKeyedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.OptionWidget = function OoUiOptionWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.OptionWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.ItemWidget.call( this );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.FlaggedElement.call( this, config );\n\tOO.ui.mixin.AccessKeyedElement.call( this, config );\n\n\t// Properties\n\tthis.selected = false;\n\tthis.highlighted = false;\n\tthis.pressed = false;\n\n\t// Initialization\n\tthis.$element\n\t\t.data( 'oo-ui-optionWidget', this )\n\t\t// Allow programmatic focussing (and by accesskey), but not tabbing\n\t\t.attr( 'tabindex', '-1' )\n\t\t.attr( 'role', 'option' )\n\t\t.attr( 'aria-selected', 'false' )\n\t\t.addClass( 'oo-ui-optionWidget' )\n\t\t.append( this.$label );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.OptionWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.ItemWidget );\nOO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.FlaggedElement );\nOO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.AccessKeyedElement );\n\n/* Static Properties */\n\n/**\n * Whether this option can be selected. See #setSelected.\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.OptionWidget.static.selectable = true;\n\n/**\n * Whether this option can be highlighted. See #setHighlighted.\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.OptionWidget.static.highlightable = true;\n\n/**\n * Whether this option can be pressed. See #setPressed.\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.OptionWidget.static.pressable = true;\n\n/**\n * Whether this option will be scrolled into view when it is selected.\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.OptionWidget.static.scrollIntoViewOnSelect = false;\n\n/* Methods */\n\n/**\n * Check if the option can be selected.\n *\n * @return {boolean} Item is selectable\n */\nOO.ui.OptionWidget.prototype.isSelectable = function () {\n\treturn this.constructor.static.selectable && !this.disabled && this.isVisible();\n};\n\n/**\n * Check if the option can be highlighted. A highlight indicates that the option\n * may be selected when a user presses enter or clicks. Disabled items cannot\n * be highlighted.\n *\n * @return {boolean} Item is highlightable\n */\nOO.ui.OptionWidget.prototype.isHighlightable = function () {\n\treturn this.constructor.static.highlightable && !this.disabled && this.isVisible();\n};\n\n/**\n * Check if the option can be pressed. The pressed state occurs when a user mouses\n * down on an item, but has not yet let go of the mouse.\n *\n * @return {boolean} Item is pressable\n */\nOO.ui.OptionWidget.prototype.isPressable = function () {\n\treturn this.constructor.static.pressable && !this.disabled && this.isVisible();\n};\n\n/**\n * Check if the option is selected.\n *\n * @return {boolean} Item is selected\n */\nOO.ui.OptionWidget.prototype.isSelected = function () {\n\treturn this.selected;\n};\n\n/**\n * Check if the option is highlighted. A highlight indicates that the\n * item may be selected when a user presses enter or clicks.\n *\n * @return {boolean} Item is highlighted\n */\nOO.ui.OptionWidget.prototype.isHighlighted = function () {\n\treturn this.highlighted;\n};\n\n/**\n * Check if the option is pressed. The pressed state occurs when a user mouses\n * down on an item, but has not yet let go of the mouse. The item may appear\n * selected, but it will not be selected until the user releases the mouse.\n *\n * @return {boolean} Item is pressed\n */\nOO.ui.OptionWidget.prototype.isPressed = function () {\n\treturn this.pressed;\n};\n\n/**\n * Set the option’s selected state. In general, all modifications to the selection\n * should be handled by the SelectWidget’s {@link OO.ui.SelectWidget#selectItem selectItem( [item] )}\n * method instead of this method.\n *\n * @param {boolean} [state=false] Select option\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.OptionWidget.prototype.setSelected = function ( state ) {\n\tif ( this.constructor.static.selectable ) {\n\t\tthis.selected = !!state;\n\t\tthis.$element\n\t\t\t.toggleClass( 'oo-ui-optionWidget-selected', state )\n\t\t\t.attr( 'aria-selected', state.toString() );\n\t\tif ( state && this.constructor.static.scrollIntoViewOnSelect ) {\n\t\t\tthis.scrollElementIntoView();\n\t\t}\n\t\tthis.updateThemeClasses();\n\t}\n\treturn this;\n};\n\n/**\n * Set the option’s highlighted state. In general, all programmatic\n * modifications to the highlight should be handled by the\n * SelectWidget’s {@link OO.ui.SelectWidget#highlightItem highlightItem( [item] )}\n * method instead of this method.\n *\n * @param {boolean} [state=false] Highlight option\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.OptionWidget.prototype.setHighlighted = function ( state ) {\n\tif ( this.constructor.static.highlightable ) {\n\t\tthis.highlighted = !!state;\n\t\tthis.$element.toggleClass( 'oo-ui-optionWidget-highlighted', state );\n\t\tthis.updateThemeClasses();\n\t}\n\treturn this;\n};\n\n/**\n * Set the option’s pressed state. In general, all\n * programmatic modifications to the pressed state should be handled by the\n * SelectWidget’s {@link OO.ui.SelectWidget#pressItem pressItem( [item] )}\n * method instead of this method.\n *\n * @param {boolean} [state=false] Press option\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.OptionWidget.prototype.setPressed = function ( state ) {\n\tif ( this.constructor.static.pressable ) {\n\t\tthis.pressed = !!state;\n\t\tthis.$element.toggleClass( 'oo-ui-optionWidget-pressed', state );\n\t\tthis.updateThemeClasses();\n\t}\n\treturn this;\n};\n\n/**\n * Get text to match search strings against.\n *\n * The default implementation returns the label text, but subclasses\n * can override this to provide more complex behavior.\n *\n * @return {string|boolean} String to match search string against\n */\nOO.ui.OptionWidget.prototype.getMatchText = function () {\n\tvar label = this.getLabel();\n\treturn typeof label === 'string' ? label : this.$label.text();\n};\n","/**\n * A SelectWidget is of a generic selection of options. The OOUI library contains several types of\n * select widgets, including {@link OO.ui.ButtonSelectWidget button selects},\n * {@link OO.ui.RadioSelectWidget radio selects}, and {@link OO.ui.MenuSelectWidget\n * menu selects}.\n *\n * This class should be used together with OO.ui.OptionWidget or OO.ui.DecoratedOptionWidget. For more\n * information, please see the [OOUI documentation on MediaWiki][1].\n *\n *     @example\n *     // Example of a select widget with three options\n *     var select = new OO.ui.SelectWidget( {\n *         items: [\n *             new OO.ui.OptionWidget( {\n *                 data: 'a',\n *                 label: 'Option One',\n *             } ),\n *             new OO.ui.OptionWidget( {\n *                 data: 'b',\n *                 label: 'Option Two',\n *             } ),\n *             new OO.ui.OptionWidget( {\n *                 data: 'c',\n *                 label: 'Option Three',\n *             } )\n *         ]\n *     } );\n *     $( 'body' ).append( select.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options\n *\n * @abstract\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.GroupWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.ui.OptionWidget[]} [items] An array of options to add to the select.\n *  Options are created with {@link OO.ui.OptionWidget OptionWidget} classes. See\n *  the [OOUI documentation on MediaWiki] [2] for examples.\n *  [2]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options\n */\nOO.ui.SelectWidget = function OoUiSelectWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.SelectWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupWidget.call( this, $.extend( {}, config, { $group: this.$element } ) );\n\n\t// Properties\n\tthis.pressed = false;\n\tthis.selecting = null;\n\tthis.onDocumentMouseUpHandler = this.onDocumentMouseUp.bind( this );\n\tthis.onDocumentMouseMoveHandler = this.onDocumentMouseMove.bind( this );\n\tthis.onDocumentKeyDownHandler = this.onDocumentKeyDown.bind( this );\n\tthis.onDocumentKeyPressHandler = this.onDocumentKeyPress.bind( this );\n\tthis.keyPressBuffer = '';\n\tthis.keyPressBufferTimer = null;\n\tthis.blockMouseOverEvents = 0;\n\n\t// Events\n\tthis.connect( this, {\n\t\ttoggle: 'onToggle'\n\t} );\n\tthis.$element.on( {\n\t\tfocusin: this.onFocus.bind( this ),\n\t\tmousedown: this.onMouseDown.bind( this ),\n\t\tmouseover: this.onMouseOver.bind( this ),\n\t\tmouseleave: this.onMouseLeave.bind( this )\n\t} );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-selectWidget oo-ui-selectWidget-depressed' )\n\t\t.attr( 'role', 'listbox' );\n\tthis.setFocusOwner( this.$element );\n\tif ( Array.isArray( config.items ) ) {\n\t\tthis.addItems( config.items );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.SelectWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.SelectWidget, OO.ui.mixin.GroupWidget );\n\n/* Events */\n\n/**\n * @event highlight\n *\n * A `highlight` event is emitted when the highlight is changed with the #highlightItem method.\n *\n * @param {OO.ui.OptionWidget|null} item Highlighted item\n */\n\n/**\n * @event press\n *\n * A `press` event is emitted when the #pressItem method is used to programmatically modify the\n * pressed state of an option.\n *\n * @param {OO.ui.OptionWidget|null} item Pressed item\n */\n\n/**\n * @event select\n *\n * A `select` event is emitted when the selection is modified programmatically with the #selectItem method.\n *\n * @param {OO.ui.OptionWidget|null} item Selected item\n */\n\n/**\n * @event choose\n * A `choose` event is emitted when an item is chosen with the #chooseItem method.\n * @param {OO.ui.OptionWidget} item Chosen item\n */\n\n/**\n * @event add\n *\n * An `add` event is emitted when options are added to the select with the #addItems method.\n *\n * @param {OO.ui.OptionWidget[]} items Added items\n * @param {number} index Index of insertion point\n */\n\n/**\n * @event remove\n *\n * A `remove` event is emitted when options are removed from the select with the #clearItems\n * or #removeItems methods.\n *\n * @param {OO.ui.OptionWidget[]} items Removed items\n */\n\n/* Methods */\n\n/**\n * Handle focus events\n *\n * @private\n * @param {jQuery.Event} event\n */\nOO.ui.SelectWidget.prototype.onFocus = function ( event ) {\n\tvar item;\n\tif ( event.target === this.$element[ 0 ] ) {\n\t\t// This widget was focussed, e.g. by the user tabbing to it.\n\t\t// The styles for focus state depend on one of the items being selected.\n\t\tif ( !this.findSelectedItem() ) {\n\t\t\titem = this.findFirstSelectableItem();\n\t\t}\n\t} else {\n\t\tif ( event.target.tabIndex === -1 ) {\n\t\t\t// One of the options got focussed (and the event bubbled up here).\n\t\t\t// They can't be tabbed to, but they can be activated using accesskeys.\n\t\t\t// OptionWidgets and focusable UI elements inside them have tabindex=\"-1\" set.\n\t\t\titem = this.findTargetItem( event );\n\t\t} else {\n\t\t\t// There is something actually user-focusable in one of the labels of the options, and the\n\t\t\t// user focussed it (e.g. by tabbing to it). Do nothing (especially, don't change the focus).\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif ( item ) {\n\t\tif ( item.constructor.static.highlightable ) {\n\t\t\tthis.highlightItem( item );\n\t\t} else {\n\t\t\tthis.selectItem( item );\n\t\t}\n\t}\n\n\tif ( event.target !== this.$element[ 0 ] ) {\n\t\tthis.$focusOwner.focus();\n\t}\n};\n\n/**\n * Handle mouse down events.\n *\n * @private\n * @param {jQuery.Event} e Mouse down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectWidget.prototype.onMouseDown = function ( e ) {\n\tvar item;\n\n\tif ( !this.isDisabled() && e.which === OO.ui.MouseButtons.LEFT ) {\n\t\tthis.togglePressed( true );\n\t\titem = this.findTargetItem( e );\n\t\tif ( item && item.isSelectable() ) {\n\t\t\tthis.pressItem( item );\n\t\t\tthis.selecting = item;\n\t\t\tthis.getElementDocument().addEventListener( 'mouseup', this.onDocumentMouseUpHandler, true );\n\t\t\tthis.getElementDocument().addEventListener( 'mousemove', this.onDocumentMouseMoveHandler, true );\n\t\t}\n\t}\n\treturn false;\n};\n\n/**\n * Handle document mouse up events.\n *\n * @private\n * @param {MouseEvent} e Mouse up event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectWidget.prototype.onDocumentMouseUp = function ( e ) {\n\tvar item;\n\n\tthis.togglePressed( false );\n\tif ( !this.selecting ) {\n\t\titem = this.findTargetItem( e );\n\t\tif ( item && item.isSelectable() ) {\n\t\t\tthis.selecting = item;\n\t\t}\n\t}\n\tif ( !this.isDisabled() && e.which === OO.ui.MouseButtons.LEFT && this.selecting ) {\n\t\tthis.pressItem( null );\n\t\tthis.chooseItem( this.selecting );\n\t\tthis.selecting = null;\n\t}\n\n\tthis.getElementDocument().removeEventListener( 'mouseup', this.onDocumentMouseUpHandler, true );\n\tthis.getElementDocument().removeEventListener( 'mousemove', this.onDocumentMouseMoveHandler, true );\n\n\treturn false;\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.SelectWidget.prototype.onMouseUp = function () {\n\tOO.ui.warnDeprecation( 'onMouseUp is deprecated, use onDocumentMouseUp instead' );\n\tthis.onDocumentMouseUp.apply( this, arguments );\n};\n\n/**\n * Handle document mouse move events.\n *\n * @private\n * @param {MouseEvent} e Mouse move event\n */\nOO.ui.SelectWidget.prototype.onDocumentMouseMove = function ( e ) {\n\tvar item;\n\n\tif ( !this.isDisabled() && this.pressed ) {\n\t\titem = this.findTargetItem( e );\n\t\tif ( item && item !== this.selecting && item.isSelectable() ) {\n\t\t\tthis.pressItem( item );\n\t\t\tthis.selecting = item;\n\t\t}\n\t}\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.SelectWidget.prototype.onMouseMove = function () {\n\tOO.ui.warnDeprecation( 'onMouseMove is deprecated, use onDocumentMouseMove instead' );\n\tthis.onDocumentMouseMove.apply( this, arguments );\n};\n\n/**\n * Handle mouse over events.\n *\n * @private\n * @param {jQuery.Event} e Mouse over event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectWidget.prototype.onMouseOver = function ( e ) {\n\tvar item;\n\tif ( this.blockMouseOverEvents ) {\n\t\treturn;\n\t}\n\tif ( !this.isDisabled() ) {\n\t\titem = this.findTargetItem( e );\n\t\tthis.highlightItem( item && item.isHighlightable() ? item : null );\n\t}\n\treturn false;\n};\n\n/**\n * Handle mouse leave events.\n *\n * @private\n * @param {jQuery.Event} e Mouse over event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectWidget.prototype.onMouseLeave = function () {\n\tif ( !this.isDisabled() ) {\n\t\tthis.highlightItem( null );\n\t}\n\treturn false;\n};\n\n/**\n * Handle document key down events.\n *\n * @protected\n * @param {KeyboardEvent} e Key down event\n */\nOO.ui.SelectWidget.prototype.onDocumentKeyDown = function ( e ) {\n\tvar nextItem,\n\t\thandled = false,\n\t\tcurrentItem = this.findHighlightedItem() || this.findSelectedItem();\n\n\tif ( !this.isDisabled() && this.isVisible() ) {\n\t\tswitch ( e.keyCode ) {\n\t\t\tcase OO.ui.Keys.ENTER:\n\t\t\t\tif ( currentItem && currentItem.constructor.static.highlightable ) {\n\t\t\t\t\t// Was only highlighted, now let's select it. No-op if already selected.\n\t\t\t\t\tthis.chooseItem( currentItem );\n\t\t\t\t\thandled = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase OO.ui.Keys.UP:\n\t\t\tcase OO.ui.Keys.LEFT:\n\t\t\t\tthis.clearKeyPressBuffer();\n\t\t\t\tnextItem = this.findRelativeSelectableItem( currentItem, -1 );\n\t\t\t\thandled = true;\n\t\t\t\tbreak;\n\t\t\tcase OO.ui.Keys.DOWN:\n\t\t\tcase OO.ui.Keys.RIGHT:\n\t\t\t\tthis.clearKeyPressBuffer();\n\t\t\t\tnextItem = this.findRelativeSelectableItem( currentItem, 1 );\n\t\t\t\thandled = true;\n\t\t\t\tbreak;\n\t\t\tcase OO.ui.Keys.ESCAPE:\n\t\t\tcase OO.ui.Keys.TAB:\n\t\t\t\tif ( currentItem && currentItem.constructor.static.highlightable ) {\n\t\t\t\t\tcurrentItem.setHighlighted( false );\n\t\t\t\t}\n\t\t\t\tthis.unbindDocumentKeyDownListener();\n\t\t\t\tthis.unbindDocumentKeyPressListener();\n\t\t\t\t// Don't prevent tabbing away / defocusing\n\t\t\t\thandled = false;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( nextItem ) {\n\t\t\tif ( nextItem.constructor.static.highlightable ) {\n\t\t\t\tthis.highlightItem( nextItem );\n\t\t\t} else {\n\t\t\t\tthis.chooseItem( nextItem );\n\t\t\t}\n\t\t\tthis.scrollItemIntoView( nextItem );\n\t\t}\n\n\t\tif ( handled ) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.SelectWidget.prototype.onKeyDown = function () {\n\tOO.ui.warnDeprecation( 'onKeyDown is deprecated, use onDocumentKeyDown instead' );\n\tthis.onDocumentKeyDown.apply( this, arguments );\n};\n\n/**\n * Bind document key down listener.\n *\n * @protected\n */\nOO.ui.SelectWidget.prototype.bindDocumentKeyDownListener = function () {\n\tthis.getElementDocument().addEventListener( 'keydown', this.onDocumentKeyDownHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.SelectWidget.prototype.bindKeyDownListener = function () {\n\tOO.ui.warnDeprecation( 'bindKeyDownListener is deprecated, use bindDocumentKeyDownListener instead' );\n\tthis.bindDocumentKeyDownListener.apply( this, arguments );\n};\n\n/**\n * Unbind document key down listener.\n *\n * @protected\n */\nOO.ui.SelectWidget.prototype.unbindDocumentKeyDownListener = function () {\n\tthis.getElementDocument().removeEventListener( 'keydown', this.onDocumentKeyDownHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.SelectWidget.prototype.unbindKeyDownListener = function () {\n\tOO.ui.warnDeprecation( 'unbindKeyDownListener is deprecated, use unbindDocumentKeyDownListener instead' );\n\tthis.unbindDocumentKeyDownListener.apply( this, arguments );\n};\n\n/**\n * Scroll item into view, preventing spurious mouse highlight actions from happening.\n *\n * @param {OO.ui.OptionWidget} item Item to scroll into view\n */\nOO.ui.SelectWidget.prototype.scrollItemIntoView = function ( item ) {\n\tvar widget = this;\n\t// Chromium's Blink engine will generate spurious 'mouseover' events during programmatic scrolling\n\t// and around 100-150 ms after it is finished.\n\tthis.blockMouseOverEvents++;\n\titem.scrollElementIntoView().done( function () {\n\t\tsetTimeout( function () {\n\t\t\twidget.blockMouseOverEvents--;\n\t\t}, 200 );\n\t} );\n};\n\n/**\n * Clear the key-press buffer\n *\n * @protected\n */\nOO.ui.SelectWidget.prototype.clearKeyPressBuffer = function () {\n\tif ( this.keyPressBufferTimer ) {\n\t\tclearTimeout( this.keyPressBufferTimer );\n\t\tthis.keyPressBufferTimer = null;\n\t}\n\tthis.keyPressBuffer = '';\n};\n\n/**\n * Handle key press events.\n *\n * @protected\n * @param {KeyboardEvent} e Key press event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectWidget.prototype.onDocumentKeyPress = function ( e ) {\n\tvar c, filter, item;\n\n\tif ( !e.charCode ) {\n\t\tif ( e.keyCode === OO.ui.Keys.BACKSPACE && this.keyPressBuffer !== '' ) {\n\t\t\tthis.keyPressBuffer = this.keyPressBuffer.substr( 0, this.keyPressBuffer.length - 1 );\n\t\t\treturn false;\n\t\t}\n\t\treturn;\n\t}\n\t// eslint-disable-next-line no-restricted-properties\n\tif ( String.fromCodePoint ) {\n\t\t// eslint-disable-next-line no-restricted-properties\n\t\tc = String.fromCodePoint( e.charCode );\n\t} else {\n\t\tc = String.fromCharCode( e.charCode );\n\t}\n\n\tif ( this.keyPressBufferTimer ) {\n\t\tclearTimeout( this.keyPressBufferTimer );\n\t}\n\tthis.keyPressBufferTimer = setTimeout( this.clearKeyPressBuffer.bind( this ), 1500 );\n\n\titem = this.findHighlightedItem() || this.findSelectedItem();\n\n\tif ( this.keyPressBuffer === c ) {\n\t\t// Common (if weird) special case: typing \"xxxx\" will cycle through all\n\t\t// the items beginning with \"x\".\n\t\tif ( item ) {\n\t\t\titem = this.findRelativeSelectableItem( item, 1 );\n\t\t}\n\t} else {\n\t\tthis.keyPressBuffer += c;\n\t}\n\n\tfilter = this.getItemMatcher( this.keyPressBuffer, false );\n\tif ( !item || !filter( item ) ) {\n\t\titem = this.findRelativeSelectableItem( item, 1, filter );\n\t}\n\tif ( item ) {\n\t\tif ( this.isVisible() && item.constructor.static.highlightable ) {\n\t\t\tthis.highlightItem( item );\n\t\t} else {\n\t\t\tthis.chooseItem( item );\n\t\t}\n\t\tthis.scrollItemIntoView( item );\n\t}\n\n\te.preventDefault();\n\te.stopPropagation();\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.SelectWidget.prototype.onKeyPress = function () {\n\tOO.ui.warnDeprecation( 'onKeyPress is deprecated, use onDocumentKeyPress instead' );\n\tthis.onDocumentKeyPress.apply( this, arguments );\n};\n\n/**\n * Get a matcher for the specific string\n *\n * @protected\n * @param {string} s String to match against items\n * @param {boolean} [exact=false] Only accept exact matches\n * @return {Function} function ( OO.ui.OptionWidget ) => boolean\n */\nOO.ui.SelectWidget.prototype.getItemMatcher = function ( s, exact ) {\n\tvar re;\n\n\t// eslint-disable-next-line no-restricted-properties\n\tif ( s.normalize ) {\n\t\t// eslint-disable-next-line no-restricted-properties\n\t\ts = s.normalize();\n\t}\n\ts = exact ? s.trim() : s.replace( /^\\s+/, '' );\n\tre = '^\\\\s*' + s.replace( /([\\\\{}()|.?*+\\-^$[\\]])/g, '\\\\$1' ).replace( /\\s+/g, '\\\\s+' );\n\tif ( exact ) {\n\t\tre += '\\\\s*$';\n\t}\n\tre = new RegExp( re, 'i' );\n\treturn function ( item ) {\n\t\tvar matchText = item.getMatchText();\n\t\t// eslint-disable-next-line no-restricted-properties\n\t\tif ( matchText.normalize ) {\n\t\t\t// eslint-disable-next-line no-restricted-properties\n\t\t\tmatchText = matchText.normalize();\n\t\t}\n\t\treturn re.test( matchText );\n\t};\n};\n\n/**\n * Bind document key press listener.\n *\n * @protected\n */\nOO.ui.SelectWidget.prototype.bindDocumentKeyPressListener = function () {\n\tthis.getElementDocument().addEventListener( 'keypress', this.onDocumentKeyPressHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.SelectWidget.prototype.bindKeyPressListener = function () {\n\tOO.ui.warnDeprecation( 'bindKeyPressListener is deprecated, use bindDocumentKeyPressListener instead' );\n\tthis.bindDocumentKeyPressListener.apply( this, arguments );\n};\n\n/**\n * Unbind document key down listener.\n *\n * If you override this, be sure to call this.clearKeyPressBuffer() from your\n * implementation.\n *\n * @protected\n */\nOO.ui.SelectWidget.prototype.unbindDocumentKeyPressListener = function () {\n\tthis.getElementDocument().removeEventListener( 'keypress', this.onDocumentKeyPressHandler, true );\n\tthis.clearKeyPressBuffer();\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.SelectWidget.prototype.unbindKeyPressListener = function () {\n\tOO.ui.warnDeprecation( 'unbindKeyPressListener is deprecated, use unbindDocumentKeyPressListener instead' );\n\tthis.unbindDocumentKeyPressListener.apply( this, arguments );\n};\n\n/**\n * Visibility change handler\n *\n * @protected\n * @param {boolean} visible\n */\nOO.ui.SelectWidget.prototype.onToggle = function ( visible ) {\n\tif ( !visible ) {\n\t\tthis.clearKeyPressBuffer();\n\t}\n};\n\n/**\n * Get the closest item to a jQuery.Event.\n *\n * @private\n * @param {jQuery.Event} e\n * @return {OO.ui.OptionWidget|null} Outline item widget, `null` if none was found\n */\nOO.ui.SelectWidget.prototype.findTargetItem = function ( e ) {\n\tvar $option = $( e.target ).closest( '.oo-ui-optionWidget' );\n\tif ( !$option.closest( '.oo-ui-selectWidget' ).is( this.$element ) ) {\n\t\treturn null;\n\t}\n\treturn $option.data( 'oo-ui-optionWidget' ) || null;\n};\n\n/**\n * Find selected item.\n *\n * @return {OO.ui.OptionWidget|null} Selected item, `null` if no item is selected\n */\nOO.ui.SelectWidget.prototype.findSelectedItem = function () {\n\tvar i, len;\n\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\tif ( this.items[ i ].isSelected() ) {\n\t\t\treturn this.items[ i ];\n\t\t}\n\t}\n\treturn null;\n};\n\n/**\n * Find highlighted item.\n *\n * @return {OO.ui.OptionWidget|null} Highlighted item, `null` if no item is highlighted\n */\nOO.ui.SelectWidget.prototype.findHighlightedItem = function () {\n\tvar i, len;\n\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\tif ( this.items[ i ].isHighlighted() ) {\n\t\t\treturn this.items[ i ];\n\t\t}\n\t}\n\treturn null;\n};\n\n/**\n * Toggle pressed state.\n *\n * Press is a state that occurs when a user mouses down on an item, but\n * has not yet let go of the mouse. The item may appear selected, but it will not be selected\n * until the user releases the mouse.\n *\n * @param {boolean} pressed An option is being pressed\n */\nOO.ui.SelectWidget.prototype.togglePressed = function ( pressed ) {\n\tif ( pressed === undefined ) {\n\t\tpressed = !this.pressed;\n\t}\n\tif ( pressed !== this.pressed ) {\n\t\tthis.$element\n\t\t\t.toggleClass( 'oo-ui-selectWidget-pressed', pressed )\n\t\t\t.toggleClass( 'oo-ui-selectWidget-depressed', !pressed );\n\t\tthis.pressed = pressed;\n\t}\n};\n\n/**\n * Highlight an option. If the `item` param is omitted, no options will be highlighted\n * and any existing highlight will be removed. The highlight is mutually exclusive.\n *\n * @param {OO.ui.OptionWidget} [item] Item to highlight, omit for no highlight\n * @fires highlight\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectWidget.prototype.highlightItem = function ( item ) {\n\tvar i, len, highlighted,\n\t\tchanged = false;\n\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\thighlighted = this.items[ i ] === item;\n\t\tif ( this.items[ i ].isHighlighted() !== highlighted ) {\n\t\t\tthis.items[ i ].setHighlighted( highlighted );\n\t\t\tchanged = true;\n\t\t}\n\t}\n\tif ( changed ) {\n\t\tif ( item ) {\n\t\t\tthis.$focusOwner.attr( 'aria-activedescendant', item.getElementId() );\n\t\t} else {\n\t\t\tthis.$focusOwner.removeAttr( 'aria-activedescendant' );\n\t\t}\n\t\tthis.emit( 'highlight', item );\n\t}\n\n\treturn this;\n};\n\n/**\n * Fetch an item by its label.\n *\n * @param {string} label Label of the item to select.\n * @param {boolean} [prefix=false] Allow a prefix match, if only a single item matches\n * @return {OO.ui.Element|null} Item with equivalent label, `null` if none exists\n */\nOO.ui.SelectWidget.prototype.getItemFromLabel = function ( label, prefix ) {\n\tvar i, item, found,\n\t\tlen = this.items.length,\n\t\tfilter = this.getItemMatcher( label, true );\n\n\tfor ( i = 0; i < len; i++ ) {\n\t\titem = this.items[ i ];\n\t\tif ( item instanceof OO.ui.OptionWidget && item.isSelectable() && filter( item ) ) {\n\t\t\treturn item;\n\t\t}\n\t}\n\n\tif ( prefix ) {\n\t\tfound = null;\n\t\tfilter = this.getItemMatcher( label, false );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\titem = this.items[ i ];\n\t\t\tif ( item instanceof OO.ui.OptionWidget && item.isSelectable() && filter( item ) ) {\n\t\t\t\tif ( found ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tfound = item;\n\t\t\t}\n\t\t}\n\t\tif ( found ) {\n\t\t\treturn found;\n\t\t}\n\t}\n\n\treturn null;\n};\n\n/**\n * Programmatically select an option by its label. If the item does not exist,\n * all options will be deselected.\n *\n * @param {string} [label] Label of the item to select.\n * @param {boolean} [prefix=false] Allow a prefix match, if only a single item matches\n * @fires select\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectWidget.prototype.selectItemByLabel = function ( label, prefix ) {\n\tvar itemFromLabel = this.getItemFromLabel( label, !!prefix );\n\tif ( label === undefined || !itemFromLabel ) {\n\t\treturn this.selectItem();\n\t}\n\treturn this.selectItem( itemFromLabel );\n};\n\n/**\n * Programmatically select an option by its data. If the `data` parameter is omitted,\n * or if the item does not exist, all options will be deselected.\n *\n * @param {Object|string} [data] Value of the item to select, omit to deselect all\n * @fires select\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectWidget.prototype.selectItemByData = function ( data ) {\n\tvar itemFromData = this.findItemFromData( data );\n\tif ( data === undefined || !itemFromData ) {\n\t\treturn this.selectItem();\n\t}\n\treturn this.selectItem( itemFromData );\n};\n\n/**\n * Programmatically select an option by its reference. If the `item` parameter is omitted,\n * all options will be deselected.\n *\n * @param {OO.ui.OptionWidget} [item] Item to select, omit to deselect all\n * @fires select\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n*/\nOO.ui.SelectWidget.prototype.selectItem = function ( item ) {\n\tvar i, len, selected,\n\t\tchanged = false;\n\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\tselected = this.items[ i ] === item;\n\t\tif ( this.items[ i ].isSelected() !== selected ) {\n\t\t\tthis.items[ i ].setSelected( selected );\n\t\t\tchanged = true;\n\t\t}\n\t}\n\tif ( changed ) {\n\t\tif ( item && !item.constructor.static.highlightable ) {\n\t\t\tif ( item ) {\n\t\t\t\tthis.$focusOwner.attr( 'aria-activedescendant', item.getElementId() );\n\t\t\t} else {\n\t\t\t\tthis.$focusOwner.removeAttr( 'aria-activedescendant' );\n\t\t\t}\n\t\t}\n\t\tthis.emit( 'select', item );\n\t}\n\n\treturn this;\n};\n\n/**\n * Press an item.\n *\n * Press is a state that occurs when a user mouses down on an item, but has not\n * yet let go of the mouse. The item may appear selected, but it will not be selected until the user\n * releases the mouse.\n *\n * @param {OO.ui.OptionWidget} [item] Item to press, omit to depress all\n * @fires press\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectWidget.prototype.pressItem = function ( item ) {\n\tvar i, len, pressed,\n\t\tchanged = false;\n\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\tpressed = this.items[ i ] === item;\n\t\tif ( this.items[ i ].isPressed() !== pressed ) {\n\t\t\tthis.items[ i ].setPressed( pressed );\n\t\t\tchanged = true;\n\t\t}\n\t}\n\tif ( changed ) {\n\t\tthis.emit( 'press', item );\n\t}\n\n\treturn this;\n};\n\n/**\n * Choose an item.\n *\n * Note that ‘choose’ should never be modified programmatically. A user can choose\n * an option with the keyboard or mouse and it becomes selected. To select an item programmatically,\n * use the #selectItem method.\n *\n * This method is identical to #selectItem, but may vary in subclasses that take additional action\n * when users choose an item with the keyboard or mouse.\n *\n * @param {OO.ui.OptionWidget} item Item to choose\n * @fires choose\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectWidget.prototype.chooseItem = function ( item ) {\n\tif ( item ) {\n\t\tthis.selectItem( item );\n\t\tthis.emit( 'choose', item );\n\t}\n\n\treturn this;\n};\n\n/**\n * Find an option by its position relative to the specified item (or to the start of the option array,\n * if item is `null`). The direction in which to search through the option array is specified with a\n * number: -1 for reverse (the default) or 1 for forward. The method will return an option, or\n * `null` if there are no options in the array.\n *\n * @param {OO.ui.OptionWidget|null} item Item to describe the start position, or `null` to start at the beginning of the array.\n * @param {number} direction Direction to move in: -1 to move backward, 1 to move forward\n * @param {Function} [filter] Only consider items for which this function returns\n *  true. Function takes an OO.ui.OptionWidget and returns a boolean.\n * @return {OO.ui.OptionWidget|null} Item at position, `null` if there are no items in the select\n */\nOO.ui.SelectWidget.prototype.findRelativeSelectableItem = function ( item, direction, filter ) {\n\tvar currentIndex, nextIndex, i,\n\t\tincrease = direction > 0 ? 1 : -1,\n\t\tlen = this.items.length;\n\n\tif ( item instanceof OO.ui.OptionWidget ) {\n\t\tcurrentIndex = this.items.indexOf( item );\n\t\tnextIndex = ( currentIndex + increase + len ) % len;\n\t} else {\n\t\t// If no item is selected and moving forward, start at the beginning.\n\t\t// If moving backward, start at the end.\n\t\tnextIndex = direction > 0 ? 0 : len - 1;\n\t}\n\n\tfor ( i = 0; i < len; i++ ) {\n\t\titem = this.items[ nextIndex ];\n\t\tif (\n\t\t\titem instanceof OO.ui.OptionWidget && item.isSelectable() &&\n\t\t\t( !filter || filter( item ) )\n\t\t) {\n\t\t\treturn item;\n\t\t}\n\t\tnextIndex = ( nextIndex + increase + len ) % len;\n\t}\n\treturn null;\n};\n\n/**\n * Find the next selectable item or `null` if there are no selectable items.\n * Disabled options and menu-section markers and breaks are not selectable.\n *\n * @return {OO.ui.OptionWidget|null} Item, `null` if there aren't any selectable items\n */\nOO.ui.SelectWidget.prototype.findFirstSelectableItem = function () {\n\treturn this.findRelativeSelectableItem( null, 1 );\n};\n\n/**\n * Add an array of options to the select. Optionally, an index number can be used to\n * specify an insertion point.\n *\n * @param {OO.ui.OptionWidget[]} items Items to add\n * @param {number} [index] Index to insert items after\n * @fires add\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectWidget.prototype.addItems = function ( items, index ) {\n\t// Mixin method\n\tOO.ui.mixin.GroupWidget.prototype.addItems.call( this, items, index );\n\n\t// Always provide an index, even if it was omitted\n\tthis.emit( 'add', items, index === undefined ? this.items.length - items.length - 1 : index );\n\n\treturn this;\n};\n\n/**\n * Remove the specified array of options from the select. Options will be detached\n * from the DOM, not removed, so they can be reused later. To remove all options from\n * the select, you may wish to use the #clearItems method instead.\n *\n * @param {OO.ui.OptionWidget[]} items Items to remove\n * @fires remove\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectWidget.prototype.removeItems = function ( items ) {\n\tvar i, len, item;\n\n\t// Deselect items being removed\n\tfor ( i = 0, len = items.length; i < len; i++ ) {\n\t\titem = items[ i ];\n\t\tif ( item.isSelected() ) {\n\t\t\tthis.selectItem( null );\n\t\t}\n\t}\n\n\t// Mixin method\n\tOO.ui.mixin.GroupWidget.prototype.removeItems.call( this, items );\n\n\tthis.emit( 'remove', items );\n\n\treturn this;\n};\n\n/**\n * Clear all options from the select. Options will be detached from the DOM, not removed,\n * so that they can be reused later. To remove a subset of options from the select, use\n * the #removeItems method.\n *\n * @fires remove\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectWidget.prototype.clearItems = function () {\n\tvar items = this.items.slice();\n\n\t// Mixin method\n\tOO.ui.mixin.GroupWidget.prototype.clearItems.call( this );\n\n\t// Clear selection\n\tthis.selectItem( null );\n\n\tthis.emit( 'remove', items );\n\n\treturn this;\n};\n\n/**\n * Set the DOM element which has focus while the user is interacting with this SelectWidget.\n *\n * Currently this is just used to set `aria-activedescendant` on it.\n *\n * @protected\n * @param {jQuery} $focusOwner\n */\nOO.ui.SelectWidget.prototype.setFocusOwner = function ( $focusOwner ) {\n\tthis.$focusOwner = $focusOwner;\n};\n","/**\n * DecoratedOptionWidgets are {@link OO.ui.OptionWidget options} that can be configured\n * with an {@link OO.ui.mixin.IconElement icon} and/or {@link OO.ui.mixin.IndicatorElement indicator}.\n * This class is used with OO.ui.SelectWidget to create a selection of mutually exclusive\n * options. For more information about options and selects, please see the\n * [OOUI documentation on MediaWiki][1].\n *\n *     @example\n *     // Decorated options in a select widget\n *     var select = new OO.ui.SelectWidget( {\n *         items: [\n *             new OO.ui.DecoratedOptionWidget( {\n *                 data: 'a',\n *                 label: 'Option with icon',\n *                 icon: 'help'\n *             } ),\n *             new OO.ui.DecoratedOptionWidget( {\n *                 data: 'b',\n *                 label: 'Option with indicator',\n *                 indicator: 'next'\n *             } )\n *         ]\n *     } );\n *     $( 'body' ).append( select.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options\n *\n * @class\n * @extends OO.ui.OptionWidget\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.DecoratedOptionWidget = function OoUiDecoratedOptionWidget( config ) {\n\t// Parent constructor\n\tOO.ui.DecoratedOptionWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-decoratedOptionWidget' )\n\t\t.prepend( this.$icon )\n\t\t.append( this.$indicator );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.DecoratedOptionWidget, OO.ui.OptionWidget );\nOO.mixinClass( OO.ui.DecoratedOptionWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.DecoratedOptionWidget, OO.ui.mixin.IndicatorElement );\n","/**\n * MenuOptionWidget is an option widget that looks like a menu item. The class is used with\n * OO.ui.MenuSelectWidget to create a menu of mutually exclusive options. Please see\n * the [OOUI documentation on MediaWiki] [1] for more information.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options#Menu_selects_and_options\n *\n * @class\n * @extends OO.ui.DecoratedOptionWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.MenuOptionWidget = function OoUiMenuOptionWidget( config ) {\n\t// Parent constructor\n\tOO.ui.MenuOptionWidget.parent.call( this, config );\n\n\t// Properties\n\tthis.checkIcon = new OO.ui.IconWidget( {\n\t\ticon: 'check',\n\t\tclasses: [ 'oo-ui-menuOptionWidget-checkIcon' ]\n\t} );\n\n\t// Initialization\n\tthis.$element\n\t\t.prepend( this.checkIcon.$element )\n\t\t.addClass( 'oo-ui-menuOptionWidget' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MenuOptionWidget, OO.ui.DecoratedOptionWidget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.MenuOptionWidget.static.scrollIntoViewOnSelect = true;\n","/**\n * MenuSectionOptionWidgets are used inside {@link OO.ui.MenuSelectWidget menu select widgets} to group one or more related\n * {@link OO.ui.MenuOptionWidget menu options}. MenuSectionOptionWidgets cannot be highlighted or selected.\n *\n *     @example\n *     var myDropdown = new OO.ui.DropdownWidget( {\n *         menu: {\n *             items: [\n *                 new OO.ui.MenuSectionOptionWidget( {\n *                     label: 'Dogs'\n *                 } ),\n *                 new OO.ui.MenuOptionWidget( {\n *                     data: 'corgi',\n *                     label: 'Welsh Corgi'\n *                 } ),\n *                 new OO.ui.MenuOptionWidget( {\n *                     data: 'poodle',\n *                     label: 'Standard Poodle'\n *                 } ),\n *                 new OO.ui.MenuSectionOptionWidget( {\n *                     label: 'Cats'\n *                 } ),\n *                 new OO.ui.MenuOptionWidget( {\n *                     data: 'lion',\n *                     label: 'Lion'\n *                 } )\n *             ]\n *         }\n *     } );\n *     $( 'body' ).append( myDropdown.$element );\n *\n * @class\n * @extends OO.ui.DecoratedOptionWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.MenuSectionOptionWidget = function OoUiMenuSectionOptionWidget( config ) {\n\t// Parent constructor\n\tOO.ui.MenuSectionOptionWidget.parent.call( this, config );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-menuSectionOptionWidget' )\n\t\t.removeAttr( 'role aria-selected' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MenuSectionOptionWidget, OO.ui.DecoratedOptionWidget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.MenuSectionOptionWidget.static.selectable = false;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.MenuSectionOptionWidget.static.highlightable = false;\n","/**\n * MenuSelectWidget is a {@link OO.ui.SelectWidget select widget} that contains options and\n * is used together with OO.ui.MenuOptionWidget. It is designed be used as part of another widget.\n * See {@link OO.ui.DropdownWidget DropdownWidget}, {@link OO.ui.ComboBoxInputWidget ComboBoxInputWidget},\n * and {@link OO.ui.mixin.LookupElement LookupElement} for examples of widgets that contain menus.\n * MenuSelectWidgets themselves are not instantiated directly, rather subclassed\n * and customized to be opened, closed, and displayed as needed.\n *\n * By default, menus are clipped to the visible viewport and are not visible when a user presses the\n * mouse outside the menu.\n *\n * Menus also have support for keyboard interaction:\n *\n * - Enter/Return key: choose and select a menu option\n * - Up-arrow key: highlight the previous menu option\n * - Down-arrow key: highlight the next menu option\n * - Esc key: hide the menu\n *\n * Unlike most widgets, MenuSelectWidget is initially hidden and must be shown by calling #toggle.\n *\n * Please see the [OOUI documentation on MediaWiki][1] for more information.\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options\n *\n * @class\n * @extends OO.ui.SelectWidget\n * @mixins OO.ui.mixin.ClippableElement\n * @mixins OO.ui.mixin.FloatableElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.ui.TextInputWidget} [input] Text input used to implement option highlighting for menu items that match\n *  the text the user types. This config is used by {@link OO.ui.ComboBoxInputWidget ComboBoxInputWidget}\n *  and {@link OO.ui.mixin.LookupElement LookupElement}\n * @cfg {jQuery} [$input] Text input used to implement option highlighting for menu items that match\n *  the text the user types. This config is used by {@link OO.ui.TagMultiselectWidget TagMultiselectWidget}\n * @cfg {OO.ui.Widget} [widget] Widget associated with the menu's active state. If the user clicks the mouse\n *  anywhere on the page outside of this widget, the menu is hidden. For example, if there is a button\n *  that toggles the menu's visibility on click, the menu will be hidden then re-shown when the user clicks\n *  that button, unless the button (or its parent widget) is passed in here.\n * @cfg {boolean} [autoHide=true] Hide the menu when the mouse is pressed outside the menu.\n * @cfg {jQuery} [$autoCloseIgnore] If these elements are clicked, don't auto-hide the menu.\n * @cfg {boolean} [hideOnChoose=true] Hide the menu when the user chooses an option.\n * @cfg {boolean} [filterFromInput=false] Filter the displayed options from the input\n * @cfg {boolean} [highlightOnFilter] Highlight the first result when filtering\n * @cfg {number} [width] Width of the menu\n */\nOO.ui.MenuSelectWidget = function OoUiMenuSelectWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.MenuSelectWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.ClippableElement.call( this, $.extend( {}, config, { $clippable: this.$group } ) );\n\tOO.ui.mixin.FloatableElement.call( this, config );\n\n\t// Initial vertical positions other than 'center' will result in\n\t// the menu being flipped if there is not enough space in the container.\n\t// Store the original position so we know what to reset to.\n\tthis.originalVerticalPosition = this.verticalPosition;\n\n\t// Properties\n\tthis.autoHide = config.autoHide === undefined || !!config.autoHide;\n\tthis.hideOnChoose = config.hideOnChoose === undefined || !!config.hideOnChoose;\n\tthis.filterFromInput = !!config.filterFromInput;\n\tthis.$input = config.$input ? config.$input : config.input ? config.input.$input : null;\n\tthis.$widget = config.widget ? config.widget.$element : null;\n\tthis.$autoCloseIgnore = config.$autoCloseIgnore || $( [] );\n\tthis.onDocumentMouseDownHandler = this.onDocumentMouseDown.bind( this );\n\tthis.onInputEditHandler = OO.ui.debounce( this.updateItemVisibility.bind( this ), 100 );\n\tthis.highlightOnFilter = !!config.highlightOnFilter;\n\tthis.width = config.width;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-menuSelectWidget' );\n\tif ( config.widget ) {\n\t\tthis.setFocusOwner( config.widget.$tabIndexed );\n\t}\n\n\t// Initially hidden - using #toggle may cause errors if subclasses override toggle with methods\n\t// that reference properties not initialized at that time of parent class construction\n\t// TODO: Find a better way to handle post-constructor setup\n\tthis.visible = false;\n\tthis.$element.addClass( 'oo-ui-element-hidden' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MenuSelectWidget, OO.ui.SelectWidget );\nOO.mixinClass( OO.ui.MenuSelectWidget, OO.ui.mixin.ClippableElement );\nOO.mixinClass( OO.ui.MenuSelectWidget, OO.ui.mixin.FloatableElement );\n\n/* Events */\n\n/**\n * @event ready\n *\n * The menu is ready: it is visible and has been positioned and clipped.\n */\n\n/* Static properties */\n\n/**\n * Positions to flip to if there isn't room in the container for the\n * menu in a specific direction.\n *\n * @property {Object.<string,string>}\n */\nOO.ui.MenuSelectWidget.static.flippedPositions = {\n\tbelow: 'above',\n\tabove: 'below',\n\ttop: 'bottom',\n\tbottom: 'top'\n};\n\n/* Methods */\n\n/**\n * Handles document mouse down events.\n *\n * @protected\n * @param {MouseEvent} e Mouse down event\n */\nOO.ui.MenuSelectWidget.prototype.onDocumentMouseDown = function ( e ) {\n\tif (\n\t\tthis.isVisible() &&\n\t\t!OO.ui.contains(\n\t\t\tthis.$element.add( this.$widget ).add( this.$autoCloseIgnore ).get(),\n\t\t\te.target,\n\t\t\ttrue\n\t\t)\n\t) {\n\t\tthis.toggle( false );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.onDocumentKeyDown = function ( e ) {\n\tvar currentItem = this.findHighlightedItem() || this.findSelectedItem();\n\n\tif ( !this.isDisabled() && this.isVisible() ) {\n\t\tswitch ( e.keyCode ) {\n\t\t\tcase OO.ui.Keys.LEFT:\n\t\t\tcase OO.ui.Keys.RIGHT:\n\t\t\t\t// Do nothing if a text field is associated, arrow keys will be handled natively\n\t\t\t\tif ( !this.$input ) {\n\t\t\t\t\tOO.ui.MenuSelectWidget.parent.prototype.onDocumentKeyDown.call( this, e );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase OO.ui.Keys.ESCAPE:\n\t\t\tcase OO.ui.Keys.TAB:\n\t\t\t\tif ( currentItem ) {\n\t\t\t\t\tcurrentItem.setHighlighted( false );\n\t\t\t\t}\n\t\t\t\tthis.toggle( false );\n\t\t\t\t// Don't prevent tabbing away, prevent defocusing\n\t\t\t\tif ( e.keyCode === OO.ui.Keys.ESCAPE ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tOO.ui.MenuSelectWidget.parent.prototype.onDocumentKeyDown.call( this, e );\n\t\t\t\treturn;\n\t\t}\n\t}\n};\n\n/**\n * Update menu item visibility and clipping after input changes (if filterFromInput is enabled)\n * or after items were added/removed (always).\n *\n * @protected\n */\nOO.ui.MenuSelectWidget.prototype.updateItemVisibility = function () {\n\tvar i, item, items, visible, section, sectionEmpty, filter, exactFilter,\n\t\tanyVisible = false,\n\t\tlen = this.items.length,\n\t\tshowAll = !this.isVisible(),\n\t\texactMatch = false;\n\n\tif ( this.$input && this.filterFromInput ) {\n\t\tfilter = showAll ? null : this.getItemMatcher( this.$input.val() );\n\t\texactFilter = this.getItemMatcher( this.$input.val(), true );\n\t\t// Hide non-matching options, and also hide section headers if all options\n\t\t// in their section are hidden.\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\titem = this.items[ i ];\n\t\t\tif ( item instanceof OO.ui.MenuSectionOptionWidget ) {\n\t\t\t\tif ( section ) {\n\t\t\t\t\t// If the previous section was empty, hide its header\n\t\t\t\t\tsection.toggle( showAll || !sectionEmpty );\n\t\t\t\t}\n\t\t\t\tsection = item;\n\t\t\t\tsectionEmpty = true;\n\t\t\t} else if ( item instanceof OO.ui.OptionWidget ) {\n\t\t\t\tvisible = showAll || filter( item );\n\t\t\t\texactMatch = exactMatch || exactFilter( item );\n\t\t\t\tanyVisible = anyVisible || visible;\n\t\t\t\tsectionEmpty = sectionEmpty && !visible;\n\t\t\t\titem.toggle( visible );\n\t\t\t}\n\t\t}\n\t\t// Process the final section\n\t\tif ( section ) {\n\t\t\tsection.toggle( showAll || !sectionEmpty );\n\t\t}\n\n\t\tif ( anyVisible && this.items.length && !exactMatch ) {\n\t\t\tthis.scrollItemIntoView( this.items[ 0 ] );\n\t\t}\n\n\t\tif ( !anyVisible ) {\n\t\t\tthis.highlightItem( null );\n\t\t}\n\n\t\tthis.$element.toggleClass( 'oo-ui-menuSelectWidget-invisible', !anyVisible );\n\n\t\tif ( this.highlightOnFilter ) {\n\t\t\t// Highlight the first item on the list\n\t\t\titem = null;\n\t\t\titems = this.getItems();\n\t\t\tfor ( i = 0; i < items.length; i++ ) {\n\t\t\t\tif ( items[ i ].isVisible() ) {\n\t\t\t\t\titem = items[ i ];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.highlightItem( item );\n\t\t}\n\n\t}\n\n\t// Reevaluate clipping\n\tthis.clip();\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.bindDocumentKeyDownListener = function () {\n\tif ( this.$input ) {\n\t\tthis.$input.on( 'keydown', this.onDocumentKeyDownHandler );\n\t} else {\n\t\tOO.ui.MenuSelectWidget.parent.prototype.bindDocumentKeyDownListener.call( this );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.unbindDocumentKeyDownListener = function () {\n\tif ( this.$input ) {\n\t\tthis.$input.off( 'keydown', this.onDocumentKeyDownHandler );\n\t} else {\n\t\tOO.ui.MenuSelectWidget.parent.prototype.unbindDocumentKeyDownListener.call( this );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.bindDocumentKeyPressListener = function () {\n\tif ( this.$input ) {\n\t\tif ( this.filterFromInput ) {\n\t\t\tthis.$input.on( 'keydown mouseup cut paste change input select', this.onInputEditHandler );\n\t\t\tthis.updateItemVisibility();\n\t\t}\n\t} else {\n\t\tOO.ui.MenuSelectWidget.parent.prototype.bindDocumentKeyPressListener.call( this );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.unbindDocumentKeyPressListener = function () {\n\tif ( this.$input ) {\n\t\tif ( this.filterFromInput ) {\n\t\t\tthis.$input.off( 'keydown mouseup cut paste change input select', this.onInputEditHandler );\n\t\t\tthis.updateItemVisibility();\n\t\t}\n\t} else {\n\t\tOO.ui.MenuSelectWidget.parent.prototype.unbindDocumentKeyPressListener.call( this );\n\t}\n};\n\n/**\n * Choose an item.\n *\n * When a user chooses an item, the menu is closed, unless the hideOnChoose config option is set to false.\n *\n * Note that ‘choose’ should never be modified programmatically. A user can choose an option with the keyboard\n * or mouse and it becomes selected. To select an item programmatically, use the #selectItem method.\n *\n * @param {OO.ui.OptionWidget} item Item to choose\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.MenuSelectWidget.prototype.chooseItem = function ( item ) {\n\tOO.ui.MenuSelectWidget.parent.prototype.chooseItem.call( this, item );\n\tif ( this.hideOnChoose ) {\n\t\tthis.toggle( false );\n\t}\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.addItems = function ( items, index ) {\n\t// Parent method\n\tOO.ui.MenuSelectWidget.parent.prototype.addItems.call( this, items, index );\n\n\tthis.updateItemVisibility();\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.removeItems = function ( items ) {\n\t// Parent method\n\tOO.ui.MenuSelectWidget.parent.prototype.removeItems.call( this, items );\n\n\tthis.updateItemVisibility();\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.clearItems = function () {\n\t// Parent method\n\tOO.ui.MenuSelectWidget.parent.prototype.clearItems.call( this );\n\n\tthis.updateItemVisibility();\n\n\treturn this;\n};\n\n/**\n * Toggle visibility of the menu. The menu is initially hidden and must be shown by calling\n * `.toggle( true )` after its #$element is attached to the DOM.\n *\n * Do not show the menu while it is not attached to the DOM. The calculations required to display\n * it in the right place and with the right dimensions only work correctly while it is attached.\n * Side-effects may include broken interface and exceptions being thrown. This wasn't always\n * strictly enforced, so currently it only generates a warning in the browser console.\n *\n * @fires ready\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.toggle = function ( visible ) {\n\tvar change, originalHeight, flippedHeight;\n\n\tvisible = ( visible === undefined ? !this.visible : !!visible ) && !!this.items.length;\n\tchange = visible !== this.isVisible();\n\n\tif ( visible && !this.warnedUnattached && !this.isElementAttached() ) {\n\t\tOO.ui.warnDeprecation( 'MenuSelectWidget#toggle: Before calling this method, the menu must be attached to the DOM.' );\n\t\tthis.warnedUnattached = true;\n\t}\n\n\tif ( change && visible ) {\n\t\t// Reset position before showing the popup again. It's possible we no longer need to flip\n\t\t// (e.g. if the user scrolled).\n\t\tthis.setVerticalPosition( this.originalVerticalPosition );\n\t}\n\n\t// Parent method\n\tOO.ui.MenuSelectWidget.parent.prototype.toggle.call( this, visible );\n\n\tif ( change ) {\n\t\tif ( visible ) {\n\n\t\t\tif ( this.width ) {\n\t\t\t\tthis.setIdealSize( this.width );\n\t\t\t} else if ( this.$floatableContainer ) {\n\t\t\t\tthis.$clippable.css( 'width', 'auto' );\n\t\t\t\tthis.setIdealSize(\n\t\t\t\t\tthis.$floatableContainer[ 0 ].offsetWidth > this.$clippable[ 0 ].offsetWidth ?\n\t\t\t\t\t\t// Dropdown is smaller than handle so expand to width\n\t\t\t\t\t\tthis.$floatableContainer[ 0 ].offsetWidth :\n\t\t\t\t\t\t// Dropdown is larger than handle so auto size\n\t\t\t\t\t\t'auto'\n\t\t\t\t);\n\t\t\t\tthis.$clippable.css( 'width', '' );\n\t\t\t}\n\n\t\t\tthis.togglePositioning( !!this.$floatableContainer );\n\t\t\tthis.toggleClipping( true );\n\n\t\t\tthis.bindDocumentKeyDownListener();\n\t\t\tthis.bindDocumentKeyPressListener();\n\n\t\t\tif (\n\t\t\t\t( this.isClippedVertically() || this.isFloatableOutOfView() ) &&\n\t\t\t\tthis.originalVerticalPosition !== 'center'\n\t\t\t) {\n\t\t\t\t// If opening the menu in one direction causes it to be clipped, flip it\n\t\t\t\toriginalHeight = this.$element.height();\n\t\t\t\tthis.setVerticalPosition(\n\t\t\t\t\tthis.constructor.static.flippedPositions[ this.originalVerticalPosition ]\n\t\t\t\t);\n\t\t\t\tif ( this.isClippedVertically() || this.isFloatableOutOfView() ) {\n\t\t\t\t\t// If flipping also causes it to be clipped, open in whichever direction\n\t\t\t\t\t// we have more space\n\t\t\t\t\tflippedHeight = this.$element.height();\n\t\t\t\t\tif ( originalHeight > flippedHeight ) {\n\t\t\t\t\t\tthis.setVerticalPosition( this.originalVerticalPosition );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Note that we do not flip the menu's opening direction if the clipping changes\n\t\t\t// later (e.g. after the user scrolls), that seems like it would be annoying\n\n\t\t\tthis.$focusOwner.attr( 'aria-expanded', 'true' );\n\n\t\t\tif ( this.findSelectedItem() ) {\n\t\t\t\tthis.$focusOwner.attr( 'aria-activedescendant', this.findSelectedItem().getElementId() );\n\t\t\t\tthis.findSelectedItem().scrollElementIntoView( { duration: 0 } );\n\t\t\t}\n\n\t\t\t// Auto-hide\n\t\t\tif ( this.autoHide ) {\n\t\t\t\tthis.getElementDocument().addEventListener( 'mousedown', this.onDocumentMouseDownHandler, true );\n\t\t\t}\n\n\t\t\tthis.emit( 'ready' );\n\t\t} else {\n\t\t\tthis.$focusOwner.removeAttr( 'aria-activedescendant' );\n\t\t\tthis.unbindDocumentKeyDownListener();\n\t\t\tthis.unbindDocumentKeyPressListener();\n\t\t\tthis.$focusOwner.attr( 'aria-expanded', 'false' );\n\t\t\tthis.getElementDocument().removeEventListener( 'mousedown', this.onDocumentMouseDownHandler, true );\n\t\t\tthis.togglePositioning( false );\n\t\t\tthis.toggleClipping( false );\n\t\t}\n\t}\n\n\treturn this;\n};\n","/**\n * DropdownWidgets are not menus themselves, rather they contain a menu of options created with\n * OO.ui.MenuOptionWidget. The DropdownWidget takes care of opening and displaying the menu so that\n * users can interact with it.\n *\n * If you want to use this within an HTML form, such as a OO.ui.FormLayout, use\n * OO.ui.DropdownInputWidget instead.\n *\n *     @example\n *     // Example: A DropdownWidget with a menu that contains three options\n *     var dropDown = new OO.ui.DropdownWidget( {\n *         label: 'Dropdown menu: Select a menu option',\n *         menu: {\n *             items: [\n *                 new OO.ui.MenuOptionWidget( {\n *                     data: 'a',\n *                     label: 'First'\n *                 } ),\n *                 new OO.ui.MenuOptionWidget( {\n *                     data: 'b',\n *                     label: 'Second'\n *                 } ),\n *                 new OO.ui.MenuOptionWidget( {\n *                     data: 'c',\n *                     label: 'Third'\n *                 } )\n *             ]\n *         }\n *     } );\n *\n *     $( 'body' ).append( dropDown.$element );\n *\n *     dropDown.getMenu().selectItemByData( 'b' );\n *\n *     dropDown.getMenu().findSelectedItem().getData(); // returns 'b'\n *\n * For more information, please see the [OOUI documentation on MediaWiki] [1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options#Menu_selects_and_options\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.TitledElement\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {Object} [menu] Configuration options to pass to {@link OO.ui.MenuSelectWidget menu select widget}\n * @cfg {jQuery} [$overlay] Render the menu into a separate layer. This configuration is useful in cases where\n *  the expanded menu is larger than its containing `<div>`. The specified overlay layer is usually on top of the\n *  containing `<div>` and has a larger area. By default, the menu uses relative positioning.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n */\nOO.ui.DropdownWidget = function OoUiDropdownWidget( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( { indicator: 'down' }, config );\n\n\t// Parent constructor\n\tOO.ui.DropdownWidget.parent.call( this, config );\n\n\t// Properties (must be set before TabIndexedElement constructor call)\n\tthis.$handle = $( '<button>' );\n\tthis.$overlay = ( config.$overlay === true ? OO.ui.getDefaultOverlay() : config.$overlay ) || this.$element;\n\n\t// Mixin constructors\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$label } ) );\n\tOO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$handle } ) );\n\n\t// Properties\n\tthis.menu = new OO.ui.MenuSelectWidget( $.extend( {\n\t\twidget: this,\n\t\t$floatableContainer: this.$element\n\t}, config.menu ) );\n\n\t// Events\n\tthis.$handle.on( {\n\t\tclick: this.onClick.bind( this ),\n\t\tkeydown: this.onKeyDown.bind( this ),\n\t\t// Hack? Handle type-to-search when menu is not expanded and not handling its own events\n\t\tkeypress: this.menu.onDocumentKeyPressHandler,\n\t\tblur: this.menu.clearKeyPressBuffer.bind( this.menu )\n\t} );\n\tthis.menu.connect( this, {\n\t\tselect: 'onMenuSelect',\n\t\ttoggle: 'onMenuToggle'\n\t} );\n\n\t// Initialization\n\tthis.$handle\n\t\t.addClass( 'oo-ui-dropdownWidget-handle' )\n\t\t.attr( {\n\t\t\t'aria-owns': this.menu.getElementId(),\n\t\t\t'aria-haspopup': 'listbox'\n\t\t} )\n\t\t.append( this.$icon, this.$label, this.$indicator );\n\tthis.$element\n\t\t.addClass( 'oo-ui-dropdownWidget' )\n\t\t.append( this.$handle );\n\tthis.$overlay.append( this.menu.$element );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.DropdownWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.DropdownWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.DropdownWidget, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.DropdownWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.DropdownWidget, OO.ui.mixin.TitledElement );\nOO.mixinClass( OO.ui.DropdownWidget, OO.ui.mixin.TabIndexedElement );\n\n/* Methods */\n\n/**\n * Get the menu.\n *\n * @return {OO.ui.MenuSelectWidget} Menu of widget\n */\nOO.ui.DropdownWidget.prototype.getMenu = function () {\n\treturn this.menu;\n};\n\n/**\n * Handles menu select events.\n *\n * @private\n * @param {OO.ui.MenuOptionWidget} item Selected menu item\n */\nOO.ui.DropdownWidget.prototype.onMenuSelect = function ( item ) {\n\tvar selectedLabel;\n\n\tif ( !item ) {\n\t\tthis.setLabel( null );\n\t\treturn;\n\t}\n\n\tselectedLabel = item.getLabel();\n\n\t// If the label is a DOM element, clone it, because setLabel will append() it\n\tif ( selectedLabel instanceof $ ) {\n\t\tselectedLabel = selectedLabel.clone();\n\t}\n\n\tthis.setLabel( selectedLabel );\n};\n\n/**\n * Handle menu toggle events.\n *\n * @private\n * @param {boolean} isVisible Open state of the menu\n */\nOO.ui.DropdownWidget.prototype.onMenuToggle = function ( isVisible ) {\n\tthis.$element.toggleClass( 'oo-ui-dropdownWidget-open', isVisible );\n\tthis.$handle.attr(\n\t\t'aria-expanded',\n\t\tthis.$element.hasClass( 'oo-ui-dropdownWidget-open' ).toString()\n\t);\n};\n\n/**\n * Handle mouse click events.\n *\n * @private\n * @param {jQuery.Event} e Mouse click event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.DropdownWidget.prototype.onClick = function ( e ) {\n\tif ( !this.isDisabled() && e.which === OO.ui.MouseButtons.LEFT ) {\n\t\tthis.menu.toggle();\n\t}\n\treturn false;\n};\n\n/**\n * Handle key down events.\n *\n * @private\n * @param {jQuery.Event} e Key down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.DropdownWidget.prototype.onKeyDown = function ( e ) {\n\tif (\n\t\t!this.isDisabled() &&\n\t\t(\n\t\t\te.which === OO.ui.Keys.ENTER ||\n\t\t\t(\n\t\t\t\te.which === OO.ui.Keys.SPACE &&\n\t\t\t\t// Avoid conflicts with type-to-search, see SelectWidget#onKeyPress.\n\t\t\t\t// Space only closes the menu is the user is not typing to search.\n\t\t\t\tthis.menu.keyPressBuffer === ''\n\t\t\t) ||\n\t\t\t(\n\t\t\t\t!this.menu.isVisible() &&\n\t\t\t\t(\n\t\t\t\t\te.which === OO.ui.Keys.UP ||\n\t\t\t\t\te.which === OO.ui.Keys.DOWN\n\t\t\t\t)\n\t\t\t)\n\t\t)\n\t) {\n\t\tthis.menu.toggle();\n\t\treturn false;\n\t}\n};\n","/**\n * RadioOptionWidget is an option widget that looks like a radio button.\n * The class is used with OO.ui.RadioSelectWidget to create a selection of radio options.\n * Please see the [OOUI documentation on MediaWiki] [1] for more information.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options#Button_selects_and_option\n *\n * @class\n * @extends OO.ui.OptionWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.RadioOptionWidget = function OoUiRadioOptionWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties (must be done before parent constructor which calls #setDisabled)\n\tthis.radio = new OO.ui.RadioInputWidget( { value: config.data, tabIndex: -1 } );\n\n\t// Parent constructor\n\tOO.ui.RadioOptionWidget.parent.call( this, config );\n\n\t// Initialization\n\t// Remove implicit role, we're handling it ourselves\n\tthis.radio.$input.attr( 'role', 'presentation' );\n\tthis.$element\n\t\t.addClass( 'oo-ui-radioOptionWidget' )\n\t\t.attr( 'role', 'radio' )\n\t\t.attr( 'aria-checked', 'false' )\n\t\t.removeAttr( 'aria-selected' )\n\t\t.prepend( this.radio.$element );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.RadioOptionWidget, OO.ui.OptionWidget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.RadioOptionWidget.static.highlightable = false;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.RadioOptionWidget.static.scrollIntoViewOnSelect = true;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.RadioOptionWidget.static.pressable = false;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.RadioOptionWidget.static.tagName = 'label';\n\n/* Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioOptionWidget.prototype.setSelected = function ( state ) {\n\tOO.ui.RadioOptionWidget.parent.prototype.setSelected.call( this, state );\n\n\tthis.radio.setSelected( state );\n\tthis.$element\n\t\t.attr( 'aria-checked', state.toString() )\n\t\t.removeAttr( 'aria-selected' );\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioOptionWidget.prototype.setDisabled = function ( disabled ) {\n\tOO.ui.RadioOptionWidget.parent.prototype.setDisabled.call( this, disabled );\n\n\tthis.radio.setDisabled( this.isDisabled() );\n\n\treturn this;\n};\n","/**\n * RadioSelectWidget is a {@link OO.ui.SelectWidget select widget} that contains radio\n * options and is used together with OO.ui.RadioOptionWidget. The RadioSelectWidget provides\n * an interface for adding, removing and selecting options.\n * Please see the [OOUI documentation on MediaWiki][1] for more information.\n *\n * If you want to use this within an HTML form, such as a OO.ui.FormLayout, use\n * OO.ui.RadioSelectInputWidget instead.\n *\n *     @example\n *     // A RadioSelectWidget with RadioOptions.\n *     var option1 = new OO.ui.RadioOptionWidget( {\n *         data: 'a',\n *         label: 'Selected radio option'\n *     } );\n *\n *     var option2 = new OO.ui.RadioOptionWidget( {\n *         data: 'b',\n *         label: 'Unselected radio option'\n *     } );\n *\n *     var radioSelect=new OO.ui.RadioSelectWidget( {\n *         items: [ option1, option2 ]\n *      } );\n *\n *     // Select 'option 1' using the RadioSelectWidget's selectItem() method.\n *     radioSelect.selectItem( option1 );\n *\n *     $( 'body' ).append( radioSelect.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options\n\n *\n * @class\n * @extends OO.ui.SelectWidget\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.RadioSelectWidget = function OoUiRadioSelectWidget( config ) {\n\t// Parent constructor\n\tOO.ui.RadioSelectWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.TabIndexedElement.call( this, config );\n\n\t// Events\n\tthis.$element.on( {\n\t\tfocus: this.bindDocumentKeyDownListener.bind( this ),\n\t\tblur: this.unbindDocumentKeyDownListener.bind( this )\n\t} );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-radioSelectWidget' )\n\t\t.attr( 'role', 'radiogroup' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.RadioSelectWidget, OO.ui.SelectWidget );\nOO.mixinClass( OO.ui.RadioSelectWidget, OO.ui.mixin.TabIndexedElement );\n","/**\n * MultioptionWidgets are special elements that can be selected and configured with data. The\n * data is often unique for each option, but it does not have to be. MultioptionWidgets are used\n * with OO.ui.SelectWidget to create a selection of mutually exclusive options. For more information\n * and examples, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Multioptions\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.ItemWidget\n * @mixins OO.ui.mixin.LabelElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [selected=false] Whether the option is initially selected\n */\nOO.ui.MultioptionWidget = function OoUiMultioptionWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.MultioptionWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.ItemWidget.call( this );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\n\t// Properties\n\tthis.selected = null;\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-multioptionWidget' )\n\t\t.append( this.$label );\n\tthis.setSelected( config.selected );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MultioptionWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.MultioptionWidget, OO.ui.mixin.ItemWidget );\nOO.mixinClass( OO.ui.MultioptionWidget, OO.ui.mixin.LabelElement );\n\n/* Events */\n\n/**\n * @event change\n *\n * A change event is emitted when the selected state of the option changes.\n *\n * @param {boolean} selected Whether the option is now selected\n */\n\n/* Methods */\n\n/**\n * Check if the option is selected.\n *\n * @return {boolean} Item is selected\n */\nOO.ui.MultioptionWidget.prototype.isSelected = function () {\n\treturn this.selected;\n};\n\n/**\n * Set the option’s selected state. In general, all modifications to the selection\n * should be handled by the SelectWidget’s {@link OO.ui.SelectWidget#selectItem selectItem( [item] )}\n * method instead of this method.\n *\n * @param {boolean} [state=false] Select option\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.MultioptionWidget.prototype.setSelected = function ( state ) {\n\tstate = !!state;\n\tif ( this.selected !== state ) {\n\t\tthis.selected = state;\n\t\tthis.emit( 'change', state );\n\t\tthis.$element.toggleClass( 'oo-ui-multioptionWidget-selected', state );\n\t}\n\treturn this;\n};\n","/**\n * MultiselectWidget allows selecting multiple options from a list.\n *\n * For more information about menus and options, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options#Menu_selects_and_options\n *\n * @class\n * @abstract\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.GroupWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.ui.MultioptionWidget[]} [items] An array of options to add to the multiselect.\n */\nOO.ui.MultiselectWidget = function OoUiMultiselectWidget( config ) {\n\t// Parent constructor\n\tOO.ui.MultiselectWidget.parent.call( this, config );\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupWidget.call( this, config );\n\n\t// Events\n\tthis.aggregate( { change: 'select' } );\n\t// This is mostly for compatibility with TagMultiselectWidget... normally, 'change' is emitted\n\t// by GroupElement only when items are added/removed\n\tthis.connect( this, { select: [ 'emit', 'change' ] } );\n\n\t// Initialization\n\tif ( config.items ) {\n\t\tthis.addItems( config.items );\n\t}\n\tthis.$group.addClass( 'oo-ui-multiselectWidget-group' );\n\tthis.$element.addClass( 'oo-ui-multiselectWidget' )\n\t\t.append( this.$group );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MultiselectWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.MultiselectWidget, OO.ui.mixin.GroupWidget );\n\n/* Events */\n\n/**\n * @event change\n *\n * A change event is emitted when the set of items changes, or an item is selected or deselected.\n */\n\n/**\n * @event select\n *\n * A select event is emitted when an item is selected or deselected.\n */\n\n/* Methods */\n\n/**\n * Find options that are selected.\n *\n * @return {OO.ui.MultioptionWidget[]} Selected options\n */\nOO.ui.MultiselectWidget.prototype.findSelectedItems = function () {\n\treturn this.items.filter( function ( item ) {\n\t\treturn item.isSelected();\n\t} );\n};\n\n/**\n * Find the data of options that are selected.\n *\n * @return {Object[]|string[]} Values of selected options\n */\nOO.ui.MultiselectWidget.prototype.findSelectedItemsData = function () {\n\treturn this.findSelectedItems().map( function ( item ) {\n\t\treturn item.data;\n\t} );\n};\n\n/**\n * Select options by reference. Options not mentioned in the `items` array will be deselected.\n *\n * @param {OO.ui.MultioptionWidget[]} items Items to select\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.MultiselectWidget.prototype.selectItems = function ( items ) {\n\tthis.items.forEach( function ( item ) {\n\t\tvar selected = items.indexOf( item ) !== -1;\n\t\titem.setSelected( selected );\n\t} );\n\treturn this;\n};\n\n/**\n * Select items by their data. Options not mentioned in the `datas` array will be deselected.\n *\n * @param {Object[]|string[]} datas Values of items to select\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.MultiselectWidget.prototype.selectItemsByData = function ( datas ) {\n\tvar items,\n\t\twidget = this;\n\titems = datas.map( function ( data ) {\n\t\treturn widget.findItemFromData( data );\n\t} );\n\tthis.selectItems( items );\n\treturn this;\n};\n","/**\n * CheckboxMultioptionWidget is an option widget that looks like a checkbox.\n * The class is used with OO.ui.CheckboxMultiselectWidget to create a selection of checkbox options.\n * Please see the [OOUI documentation on MediaWiki] [1] for more information.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options#Button_selects_and_option\n *\n * @class\n * @extends OO.ui.MultioptionWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.CheckboxMultioptionWidget = function OoUiCheckboxMultioptionWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties (must be done before parent constructor which calls #setDisabled)\n\tthis.checkbox = new OO.ui.CheckboxInputWidget();\n\n\t// Parent constructor\n\tOO.ui.CheckboxMultioptionWidget.parent.call( this, config );\n\n\t// Events\n\tthis.checkbox.on( 'change', this.onCheckboxChange.bind( this ) );\n\tthis.$element.on( 'keydown', this.onKeyDown.bind( this ) );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-checkboxMultioptionWidget' )\n\t\t.prepend( this.checkbox.$element );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.CheckboxMultioptionWidget, OO.ui.MultioptionWidget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.CheckboxMultioptionWidget.static.tagName = 'label';\n\n/* Methods */\n\n/**\n * Handle checkbox selected state change.\n *\n * @private\n */\nOO.ui.CheckboxMultioptionWidget.prototype.onCheckboxChange = function () {\n\tthis.setSelected( this.checkbox.isSelected() );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultioptionWidget.prototype.setSelected = function ( state ) {\n\tOO.ui.CheckboxMultioptionWidget.parent.prototype.setSelected.call( this, state );\n\tthis.checkbox.setSelected( state );\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultioptionWidget.prototype.setDisabled = function ( disabled ) {\n\tOO.ui.CheckboxMultioptionWidget.parent.prototype.setDisabled.call( this, disabled );\n\tthis.checkbox.setDisabled( this.isDisabled() );\n\treturn this;\n};\n\n/**\n * Focus the widget.\n */\nOO.ui.CheckboxMultioptionWidget.prototype.focus = function () {\n\tthis.checkbox.focus();\n};\n\n/**\n * Handle key down events.\n *\n * @protected\n * @param {jQuery.Event} e\n */\nOO.ui.CheckboxMultioptionWidget.prototype.onKeyDown = function ( e ) {\n\tvar\n\t\telement = this.getElementGroup(),\n\t\tnextItem;\n\n\tif ( e.keyCode === OO.ui.Keys.LEFT || e.keyCode === OO.ui.Keys.UP ) {\n\t\tnextItem = element.getRelativeFocusableItem( this, -1 );\n\t} else if ( e.keyCode === OO.ui.Keys.RIGHT || e.keyCode === OO.ui.Keys.DOWN ) {\n\t\tnextItem = element.getRelativeFocusableItem( this, 1 );\n\t}\n\n\tif ( nextItem ) {\n\t\te.preventDefault();\n\t\tnextItem.focus();\n\t}\n};\n","/**\n * CheckboxMultiselectWidget is a {@link OO.ui.MultiselectWidget multiselect widget} that contains\n * checkboxes and is used together with OO.ui.CheckboxMultioptionWidget. The\n * CheckboxMultiselectWidget provides an interface for adding, removing and selecting options.\n * Please see the [OOUI documentation on MediaWiki][1] for more information.\n *\n * If you want to use this within an HTML form, such as a OO.ui.FormLayout, use\n * OO.ui.CheckboxMultiselectInputWidget instead.\n *\n *     @example\n *     // A CheckboxMultiselectWidget with CheckboxMultioptions.\n *     var option1 = new OO.ui.CheckboxMultioptionWidget( {\n *         data: 'a',\n *         selected: true,\n *         label: 'Selected checkbox'\n *     } );\n *\n *     var option2 = new OO.ui.CheckboxMultioptionWidget( {\n *         data: 'b',\n *         label: 'Unselected checkbox'\n *     } );\n *\n *     var multiselect=new OO.ui.CheckboxMultiselectWidget( {\n *         items: [ option1, option2 ]\n *      } );\n *\n *     $( 'body' ).append( multiselect.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options\n *\n * @class\n * @extends OO.ui.MultiselectWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.CheckboxMultiselectWidget = function OoUiCheckboxMultiselectWidget( config ) {\n\t// Parent constructor\n\tOO.ui.CheckboxMultiselectWidget.parent.call( this, config );\n\n\t// Properties\n\tthis.$lastClicked = null;\n\n\t// Events\n\tthis.$group.on( 'click', this.onClick.bind( this ) );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-checkboxMultiselectWidget' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.CheckboxMultiselectWidget, OO.ui.MultiselectWidget );\n\n/* Methods */\n\n/**\n * Get an option by its position relative to the specified item (or to the start of the option array,\n * if item is `null`). The direction in which to search through the option array is specified with a\n * number: -1 for reverse (the default) or 1 for forward. The method will return an option, or\n * `null` if there are no options in the array.\n *\n * @param {OO.ui.CheckboxMultioptionWidget|null} item Item to describe the start position, or `null` to start at the beginning of the array.\n * @param {number} direction Direction to move in: -1 to move backward, 1 to move forward\n * @return {OO.ui.CheckboxMultioptionWidget|null} Item at position, `null` if there are no items in the select\n */\nOO.ui.CheckboxMultiselectWidget.prototype.getRelativeFocusableItem = function ( item, direction ) {\n\tvar currentIndex, nextIndex, i,\n\t\tincrease = direction > 0 ? 1 : -1,\n\t\tlen = this.items.length;\n\n\tif ( item ) {\n\t\tcurrentIndex = this.items.indexOf( item );\n\t\tnextIndex = ( currentIndex + increase + len ) % len;\n\t} else {\n\t\t// If no item is selected and moving forward, start at the beginning.\n\t\t// If moving backward, start at the end.\n\t\tnextIndex = direction > 0 ? 0 : len - 1;\n\t}\n\n\tfor ( i = 0; i < len; i++ ) {\n\t\titem = this.items[ nextIndex ];\n\t\tif ( item && !item.isDisabled() ) {\n\t\t\treturn item;\n\t\t}\n\t\tnextIndex = ( nextIndex + increase + len ) % len;\n\t}\n\treturn null;\n};\n\n/**\n * Handle click events on checkboxes.\n *\n * @param {jQuery.Event} e\n */\nOO.ui.CheckboxMultiselectWidget.prototype.onClick = function ( e ) {\n\tvar $options, lastClickedIndex, nowClickedIndex, i, direction, wasSelected, items,\n\t\t$lastClicked = this.$lastClicked,\n\t\t$nowClicked = $( e.target ).closest( '.oo-ui-checkboxMultioptionWidget' )\n\t\t\t.not( '.oo-ui-widget-disabled' );\n\n\t// Allow selecting multiple options at once by Shift-clicking them\n\tif ( $lastClicked && $nowClicked.length && e.shiftKey ) {\n\t\t$options = this.$group.find( '.oo-ui-checkboxMultioptionWidget' );\n\t\tlastClickedIndex = $options.index( $lastClicked );\n\t\tnowClickedIndex = $options.index( $nowClicked );\n\t\t// If it's the same item, either the user is being silly, or it's a fake event generated by the\n\t\t// browser. In either case we don't need custom handling.\n\t\tif ( nowClickedIndex !== lastClickedIndex ) {\n\t\t\titems = this.items;\n\t\t\twasSelected = items[ nowClickedIndex ].isSelected();\n\t\t\tdirection = nowClickedIndex > lastClickedIndex ? 1 : -1;\n\n\t\t\t// This depends on the DOM order of the items and the order of the .items array being the same.\n\t\t\tfor ( i = lastClickedIndex; i !== nowClickedIndex; i += direction ) {\n\t\t\t\tif ( !items[ i ].isDisabled() ) {\n\t\t\t\t\titems[ i ].setSelected( !wasSelected );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// For the now-clicked element, use immediate timeout to allow the browser to do its own\n\t\t\t// handling first, then set our value. The order in which events happen is different for\n\t\t\t// clicks on the <input> and on the <label> and there are additional fake clicks fired for\n\t\t\t// non-click actions that change the checkboxes.\n\t\t\te.preventDefault();\n\t\t\tsetTimeout( function () {\n\t\t\t\tif ( !items[ nowClickedIndex ].isDisabled() ) {\n\t\t\t\t\titems[ nowClickedIndex ].setSelected( !wasSelected );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n\n\tif ( $nowClicked.length ) {\n\t\tthis.$lastClicked = $nowClicked;\n\t}\n};\n\n/**\n * Focus the widget\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.CheckboxMultiselectWidget.prototype.focus = function () {\n\tvar item;\n\tif ( !this.isDisabled() ) {\n\t\titem = this.getRelativeFocusableItem( null, 1 );\n\t\tif ( item ) {\n\t\t\titem.focus();\n\t\t}\n\t}\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultiselectWidget.prototype.simulateLabelClick = function () {\n\tthis.focus();\n};\n","/**\n * Progress bars visually display the status of an operation, such as a download,\n * and can be either determinate or indeterminate:\n *\n * - **determinate** process bars show the percent of an operation that is complete.\n *\n * - **indeterminate** process bars use a visual display of motion to indicate that an operation\n *   is taking place. Because the extent of an indeterminate operation is unknown, the bar does\n *   not use percentages.\n *\n * The value of the `progress` configuration determines whether the bar is determinate or indeterminate.\n *\n *     @example\n *     // Examples of determinate and indeterminate progress bars.\n *     var progressBar1 = new OO.ui.ProgressBarWidget( {\n *         progress: 33\n *     } );\n *     var progressBar2 = new OO.ui.ProgressBarWidget();\n *\n *     // Create a FieldsetLayout to layout progress bars\n *     var fieldset = new OO.ui.FieldsetLayout;\n *     fieldset.addItems( [\n *        new OO.ui.FieldLayout( progressBar1, {label: 'Determinate', align: 'top'}),\n *        new OO.ui.FieldLayout( progressBar2, {label: 'Indeterminate', align: 'top'})\n *     ] );\n *     $( 'body' ).append( fieldset.$element );\n *\n * @class\n * @extends OO.ui.Widget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {number|boolean} [progress=false] The type of progress bar (determinate or indeterminate).\n *  To create a determinate progress bar, specify a number that reflects the initial percent complete.\n *  By default, the progress bar is indeterminate.\n */\nOO.ui.ProgressBarWidget = function OoUiProgressBarWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.ProgressBarWidget.parent.call( this, config );\n\n\t// Properties\n\tthis.$bar = $( '<div>' );\n\tthis.progress = null;\n\n\t// Initialization\n\tthis.setProgress( config.progress !== undefined ? config.progress : false );\n\tthis.$bar.addClass( 'oo-ui-progressBarWidget-bar' );\n\tthis.$element\n\t\t.attr( {\n\t\t\trole: 'progressbar',\n\t\t\t'aria-valuemin': 0,\n\t\t\t'aria-valuemax': 100\n\t\t} )\n\t\t.addClass( 'oo-ui-progressBarWidget' )\n\t\t.append( this.$bar );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ProgressBarWidget, OO.ui.Widget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.ProgressBarWidget.static.tagName = 'div';\n\n/* Methods */\n\n/**\n * Get the percent of the progress that has been completed. Indeterminate progresses will return `false`.\n *\n * @return {number|boolean} Progress percent\n */\nOO.ui.ProgressBarWidget.prototype.getProgress = function () {\n\treturn this.progress;\n};\n\n/**\n * Set the percent of the process completed or `false` for an indeterminate process.\n *\n * @param {number|boolean} progress Progress percent or `false` for indeterminate\n */\nOO.ui.ProgressBarWidget.prototype.setProgress = function ( progress ) {\n\tthis.progress = progress;\n\n\tif ( progress !== false ) {\n\t\tthis.$bar.css( 'width', this.progress + '%' );\n\t\tthis.$element.attr( 'aria-valuenow', this.progress );\n\t} else {\n\t\tthis.$bar.css( 'width', '' );\n\t\tthis.$element.removeAttr( 'aria-valuenow' );\n\t}\n\tthis.$element.toggleClass( 'oo-ui-progressBarWidget-indeterminate', progress === false );\n};\n","/**\n * InputWidget is the base class for all input widgets, which\n * include {@link OO.ui.TextInputWidget text inputs}, {@link OO.ui.CheckboxInputWidget checkbox inputs},\n * {@link OO.ui.RadioInputWidget radio inputs}, and {@link OO.ui.ButtonInputWidget button inputs}.\n * See the [OOUI documentation on MediaWiki] [1] for more information and examples.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs\n *\n * @abstract\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.FlaggedElement\n * @mixins OO.ui.mixin.TabIndexedElement\n * @mixins OO.ui.mixin.TitledElement\n * @mixins OO.ui.mixin.AccessKeyedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string} [name=''] The value of the input’s HTML `name` attribute.\n * @cfg {string} [value=''] The value of the input.\n * @cfg {string} [dir] The directionality of the input (ltr/rtl).\n * @cfg {string} [inputId] The value of the input’s HTML `id` attribute.\n * @cfg {Function} [inputFilter] The name of an input filter function. Input filters modify the value of an input\n *  before it is accepted.\n */\nOO.ui.InputWidget = function OoUiInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.InputWidget.parent.call( this, config );\n\n\t// Properties\n\t// See #reusePreInfuseDOM about config.$input\n\tthis.$input = config.$input || this.getInputElement( config );\n\tthis.value = '';\n\tthis.inputFilter = config.inputFilter;\n\n\t// Mixin constructors\n\tOO.ui.mixin.FlaggedElement.call( this, config );\n\tOO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$input } ) );\n\tOO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$input } ) );\n\tOO.ui.mixin.AccessKeyedElement.call( this, $.extend( {}, config, { $accessKeyed: this.$input } ) );\n\n\t// Events\n\tthis.$input.on( 'keydown mouseup cut paste change input select', this.onEdit.bind( this ) );\n\n\t// Initialization\n\tthis.$input\n\t\t.addClass( 'oo-ui-inputWidget-input' )\n\t\t.attr( 'name', config.name )\n\t\t.prop( 'disabled', this.isDisabled() );\n\tthis.$element\n\t\t.addClass( 'oo-ui-inputWidget' )\n\t\t.append( this.$input );\n\tthis.setValue( config.value );\n\tif ( config.dir ) {\n\t\tthis.setDir( config.dir );\n\t}\n\tif ( config.inputId !== undefined ) {\n\t\tthis.setInputId( config.inputId );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.InputWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.InputWidget, OO.ui.mixin.FlaggedElement );\nOO.mixinClass( OO.ui.InputWidget, OO.ui.mixin.TabIndexedElement );\nOO.mixinClass( OO.ui.InputWidget, OO.ui.mixin.TitledElement );\nOO.mixinClass( OO.ui.InputWidget, OO.ui.mixin.AccessKeyedElement );\n\n/* Static Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.InputWidget.static.reusePreInfuseDOM = function ( node, config ) {\n\tconfig = OO.ui.InputWidget.parent.static.reusePreInfuseDOM( node, config );\n\t// Reusing `$input` lets browsers preserve inputted values across page reloads, see T114134.\n\tconfig.$input = $( node ).find( '.oo-ui-inputWidget-input' );\n\treturn config;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.InputWidget.static.gatherPreInfuseState = function ( node, config ) {\n\tvar state = OO.ui.InputWidget.parent.static.gatherPreInfuseState( node, config );\n\tif ( config.$input && config.$input.length ) {\n\t\tstate.value = config.$input.val();\n\t\t// Might be better in TabIndexedElement, but it's awkward to do there because mixins are awkward\n\t\tstate.focus = config.$input.is( ':focus' );\n\t}\n\treturn state;\n};\n\n/* Events */\n\n/**\n * @event change\n *\n * A change event is emitted when the value of the input changes.\n *\n * @param {string} value\n */\n\n/* Methods */\n\n/**\n * Get input element.\n *\n * Subclasses of OO.ui.InputWidget use the `config` parameter to produce different elements in\n * different circumstances. The element must have a `value` property (like form elements).\n *\n * @protected\n * @param {Object} config Configuration options\n * @return {jQuery} Input element\n */\nOO.ui.InputWidget.prototype.getInputElement = function () {\n\treturn $( '<input>' );\n};\n\n/**\n * Handle potentially value-changing events.\n *\n * @private\n * @param {jQuery.Event} e Key down, mouse up, cut, paste, change, input, or select event\n */\nOO.ui.InputWidget.prototype.onEdit = function () {\n\tvar widget = this;\n\tif ( !this.isDisabled() ) {\n\t\t// Allow the stack to clear so the value will be updated\n\t\tsetTimeout( function () {\n\t\t\twidget.setValue( widget.$input.val() );\n\t\t} );\n\t}\n};\n\n/**\n * Get the value of the input.\n *\n * @return {string} Input value\n */\nOO.ui.InputWidget.prototype.getValue = function () {\n\t// Resynchronize our internal data with DOM data. Other scripts executing on the page can modify\n\t// it, and we won't know unless they're kind enough to trigger a 'change' event.\n\tvar value = this.$input.val();\n\tif ( this.value !== value ) {\n\t\tthis.setValue( value );\n\t}\n\treturn this.value;\n};\n\n/**\n * Set the directionality of the input.\n *\n * @param {string} dir Text directionality: 'ltr', 'rtl' or 'auto'\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.InputWidget.prototype.setDir = function ( dir ) {\n\tthis.$input.prop( 'dir', dir );\n\treturn this;\n};\n\n/**\n * Set the value of the input.\n *\n * @param {string} value New value\n * @fires change\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.InputWidget.prototype.setValue = function ( value ) {\n\tvalue = this.cleanUpValue( value );\n\t// Update the DOM if it has changed. Note that with cleanUpValue, it\n\t// is possible for the DOM value to change without this.value changing.\n\tif ( this.$input.val() !== value ) {\n\t\tthis.$input.val( value );\n\t}\n\tif ( this.value !== value ) {\n\t\tthis.value = value;\n\t\tthis.emit( 'change', this.value );\n\t}\n\t// The first time that the value is set (probably while constructing the widget),\n\t// remember it in defaultValue. This property can be later used to check whether\n\t// the value of the input has been changed since it was created.\n\tif ( this.defaultValue === undefined ) {\n\t\tthis.defaultValue = this.value;\n\t\tthis.$input[ 0 ].defaultValue = this.defaultValue;\n\t}\n\treturn this;\n};\n\n/**\n * Clean up incoming value.\n *\n * Ensures value is a string, and converts undefined and null to empty string.\n *\n * @private\n * @param {string} value Original value\n * @return {string} Cleaned up value\n */\nOO.ui.InputWidget.prototype.cleanUpValue = function ( value ) {\n\tif ( value === undefined || value === null ) {\n\t\treturn '';\n\t} else if ( this.inputFilter ) {\n\t\treturn this.inputFilter( String( value ) );\n\t} else {\n\t\treturn String( value );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.InputWidget.prototype.setDisabled = function ( state ) {\n\tOO.ui.InputWidget.parent.prototype.setDisabled.call( this, state );\n\tif ( this.$input ) {\n\t\tthis.$input.prop( 'disabled', this.isDisabled() );\n\t}\n\treturn this;\n};\n\n/**\n * Set the 'id' attribute of the `<input>` element.\n *\n * @param {string} id\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.InputWidget.prototype.setInputId = function ( id ) {\n\tthis.$input.attr( 'id', id );\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.InputWidget.prototype.restorePreInfuseState = function ( state ) {\n\tOO.ui.InputWidget.parent.prototype.restorePreInfuseState.call( this, state );\n\tif ( state.value !== undefined && state.value !== this.getValue() ) {\n\t\tthis.setValue( state.value );\n\t}\n\tif ( state.focus ) {\n\t\tthis.focus();\n\t}\n};\n","/**\n * Data widget intended for creating 'hidden'-type inputs.\n *\n * @class\n * @extends OO.ui.Widget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string} [value=''] The value of the input.\n * @cfg {string} [name=''] The value of the input’s HTML `name` attribute.\n */\nOO.ui.HiddenInputWidget = function OoUiHiddenInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( { value: '', name: '' }, config );\n\n\t// Parent constructor\n\tOO.ui.HiddenInputWidget.parent.call( this, config );\n\n\t// Initialization\n\tthis.$element.attr( {\n\t\ttype: 'hidden',\n\t\tvalue: config.value,\n\t\tname: config.name\n\t} );\n\tthis.$element.removeAttr( 'aria-disabled' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.HiddenInputWidget, OO.ui.Widget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.HiddenInputWidget.static.tagName = 'input';\n","/**\n * ButtonInputWidget is used to submit HTML forms and is intended to be used within\n * a OO.ui.FormLayout. If you do not need the button to work with HTML forms, you probably\n * want to use OO.ui.ButtonWidget instead. Button input widgets can be rendered as either an\n * HTML `<button>` (the default) or an HTML `<input>` tags. See the\n * [OOUI documentation on MediaWiki] [1] for more information.\n *\n *     @example\n *     // A ButtonInputWidget rendered as an HTML button, the default.\n *     var button = new OO.ui.ButtonInputWidget( {\n *         label: 'Input button',\n *         icon: 'check',\n *         value: 'check'\n *     } );\n *     $( 'body' ).append( button.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs#Button_inputs\n *\n * @class\n * @extends OO.ui.InputWidget\n * @mixins OO.ui.mixin.ButtonElement\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.TitledElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string} [type='button'] The value of the HTML `'type'` attribute: 'button', 'submit' or 'reset'.\n * @cfg {boolean} [useInputTag=false] Use an `<input>` tag instead of a `<button>` tag, the default.\n *  Widgets configured to be an `<input>` do not support {@link #icon icons} and {@link #indicator indicators},\n *  non-plaintext {@link #label labels}, or {@link #value values}. In general, useInputTag should only\n *  be set to `true` when there’s need to support IE 6 in a form with multiple buttons.\n */\nOO.ui.ButtonInputWidget = function OoUiButtonInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( { type: 'button', useInputTag: false }, config );\n\n\t// See InputWidget#reusePreInfuseDOM about config.$input\n\tif ( config.$input ) {\n\t\tconfig.$input.empty();\n\t}\n\n\t// Properties (must be set before parent constructor, which calls #setValue)\n\tthis.useInputTag = config.useInputTag;\n\n\t// Parent constructor\n\tOO.ui.ButtonInputWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.ButtonElement.call( this, $.extend( {}, config, { $button: this.$input } ) );\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$input } ) );\n\n\t// Initialization\n\tif ( !config.useInputTag ) {\n\t\tthis.$input.append( this.$icon, this.$label, this.$indicator );\n\t}\n\tthis.$element.addClass( 'oo-ui-buttonInputWidget' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ButtonInputWidget, OO.ui.InputWidget );\nOO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.ButtonElement );\nOO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.TitledElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.ButtonInputWidget.static.tagName = 'span';\n\n/* Methods */\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.ButtonInputWidget.prototype.getInputElement = function ( config ) {\n\tvar type;\n\ttype = [ 'button', 'submit', 'reset' ].indexOf( config.type ) !== -1 ? config.type : 'button';\n\treturn $( '<' + ( config.useInputTag ? 'input' : 'button' ) + ' type=\"' + type + '\">' );\n};\n\n/**\n * Set label value.\n *\n * If #useInputTag is `true`, the label is set as the `value` of the `<input>` tag.\n *\n * @param {jQuery|string|Function|null} label Label nodes, text, a function that returns nodes or\n *  text, or `null` for no label\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ButtonInputWidget.prototype.setLabel = function ( label ) {\n\tif ( typeof label === 'function' ) {\n\t\tlabel = OO.ui.resolveMsg( label );\n\t}\n\n\tif ( this.useInputTag ) {\n\t\t// Discard non-plaintext labels\n\t\tif ( typeof label !== 'string' ) {\n\t\t\tlabel = '';\n\t\t}\n\n\t\tthis.$input.val( label );\n\t}\n\n\treturn OO.ui.mixin.LabelElement.prototype.setLabel.call( this, label );\n};\n\n/**\n * Set the value of the input.\n *\n * This method is disabled for button inputs configured as {@link #useInputTag <input> tags}, as\n * they do not support {@link #value values}.\n *\n * @param {string} value New value\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ButtonInputWidget.prototype.setValue = function ( value ) {\n\tif ( !this.useInputTag ) {\n\t\tOO.ui.ButtonInputWidget.parent.prototype.setValue.call( this, value );\n\t}\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ButtonInputWidget.prototype.getInputId = function () {\n\t// Disable generating `<label>` elements for buttons. One would very rarely need additional label\n\t// for a button, and it's already a big clickable target, and it causes unexpected rendering.\n\treturn null;\n};\n","/**\n * CheckboxInputWidgets, like HTML checkboxes, can be selected and/or configured with a value.\n * Note that these {@link OO.ui.InputWidget input widgets} are best laid out\n * in {@link OO.ui.FieldLayout field layouts} that use the {@link OO.ui.FieldLayout#align inline}\n * alignment. For more information, please see the [OOUI documentation on MediaWiki][1].\n *\n * This widget can be used inside an HTML form, such as a OO.ui.FormLayout.\n *\n *     @example\n *     // An example of selected, unselected, and disabled checkbox inputs\n *     var checkbox1=new OO.ui.CheckboxInputWidget( {\n *          value: 'a',\n *          selected: true\n *     } );\n *     var checkbox2=new OO.ui.CheckboxInputWidget( {\n *         value: 'b'\n *     } );\n *     var checkbox3=new OO.ui.CheckboxInputWidget( {\n *         value:'c',\n *         disabled: true\n *     } );\n *     // Create a fieldset layout with fields for each checkbox.\n *     var fieldset = new OO.ui.FieldsetLayout( {\n *         label: 'Checkboxes'\n *     } );\n *     fieldset.addItems( [\n *         new OO.ui.FieldLayout( checkbox1, { label: 'Selected checkbox', align: 'inline' } ),\n *         new OO.ui.FieldLayout( checkbox2, { label: 'Unselected checkbox', align: 'inline' } ),\n *         new OO.ui.FieldLayout( checkbox3, { label: 'Disabled checkbox', align: 'inline' } ),\n *     ] );\n *     $( 'body' ).append( fieldset.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs\n *\n * @class\n * @extends OO.ui.InputWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [selected=false] Select the checkbox initially. By default, the checkbox is not selected.\n */\nOO.ui.CheckboxInputWidget = function OoUiCheckboxInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.CheckboxInputWidget.parent.call( this, config );\n\n\t// Properties\n\tthis.checkIcon = new OO.ui.IconWidget( {\n\t\ticon: 'check',\n\t\tclasses: [ 'oo-ui-checkboxInputWidget-checkIcon' ]\n\t} );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-checkboxInputWidget' )\n\t\t// Required for pretty styling in WikimediaUI theme\n\t\t.append( this.checkIcon.$element );\n\tthis.setSelected( config.selected !== undefined ? config.selected : false );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.CheckboxInputWidget, OO.ui.InputWidget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.CheckboxInputWidget.static.tagName = 'span';\n\n/* Static Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxInputWidget.static.gatherPreInfuseState = function ( node, config ) {\n\tvar state = OO.ui.CheckboxInputWidget.parent.static.gatherPreInfuseState( node, config );\n\tstate.checked = config.$input.prop( 'checked' );\n\treturn state;\n};\n\n/* Methods */\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.CheckboxInputWidget.prototype.getInputElement = function () {\n\treturn $( '<input>' ).attr( 'type', 'checkbox' );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxInputWidget.prototype.onEdit = function () {\n\tvar widget = this;\n\tif ( !this.isDisabled() ) {\n\t\t// Allow the stack to clear so the value will be updated\n\t\tsetTimeout( function () {\n\t\t\twidget.setSelected( widget.$input.prop( 'checked' ) );\n\t\t} );\n\t}\n};\n\n/**\n * Set selection state of this checkbox.\n *\n * @param {boolean} state `true` for selected\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.CheckboxInputWidget.prototype.setSelected = function ( state ) {\n\tstate = !!state;\n\tif ( this.selected !== state ) {\n\t\tthis.selected = state;\n\t\tthis.$input.prop( 'checked', this.selected );\n\t\tthis.emit( 'change', this.selected );\n\t}\n\t// The first time that the selection state is set (probably while constructing the widget),\n\t// remember it in defaultSelected. This property can be later used to check whether\n\t// the selection state of the input has been changed since it was created.\n\tif ( this.defaultSelected === undefined ) {\n\t\tthis.defaultSelected = this.selected;\n\t\tthis.$input[ 0 ].defaultChecked = this.defaultSelected;\n\t}\n\treturn this;\n};\n\n/**\n * Check if this checkbox is selected.\n *\n * @return {boolean} Checkbox is selected\n */\nOO.ui.CheckboxInputWidget.prototype.isSelected = function () {\n\t// Resynchronize our internal data with DOM data. Other scripts executing on the page can modify\n\t// it, and we won't know unless they're kind enough to trigger a 'change' event.\n\tvar selected = this.$input.prop( 'checked' );\n\tif ( this.selected !== selected ) {\n\t\tthis.setSelected( selected );\n\t}\n\treturn this.selected;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxInputWidget.prototype.simulateLabelClick = function () {\n\tif ( !this.isDisabled() ) {\n\t\tthis.$input.click();\n\t}\n\tthis.focus();\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxInputWidget.prototype.restorePreInfuseState = function ( state ) {\n\tOO.ui.CheckboxInputWidget.parent.prototype.restorePreInfuseState.call( this, state );\n\tif ( state.checked !== undefined && state.checked !== this.isSelected() ) {\n\t\tthis.setSelected( state.checked );\n\t}\n};\n","/**\n * DropdownInputWidget is a {@link OO.ui.DropdownWidget DropdownWidget} intended to be used\n * within an HTML form, such as a OO.ui.FormLayout. The selected value is synchronized with the value\n * of a hidden HTML `input` tag. Please see the [OOUI documentation on MediaWiki][1] for\n * more information about input widgets.\n *\n * A DropdownInputWidget always has a value (one of the options is always selected), unless there\n * are no options. If no `value` configuration option is provided, the first option is selected.\n * If you need a state representing no value (no option being selected), use a DropdownWidget.\n *\n * This and OO.ui.RadioSelectInputWidget support the same configuration options.\n *\n *     @example\n *     // Example: A DropdownInputWidget with three options\n *     var dropdownInput = new OO.ui.DropdownInputWidget( {\n *         options: [\n *             { data: 'a', label: 'First' },\n *             { data: 'b', label: 'Second'},\n *             { data: 'c', label: 'Third' }\n *         ]\n *     } );\n *     $( 'body' ).append( dropdownInput.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs\n *\n * @class\n * @extends OO.ui.InputWidget\n * @mixins OO.ui.mixin.TitledElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {Object[]} [options=[]] Array of menu options in the format `{ data: …, label: … }`\n * @cfg {Object} [dropdown] Configuration options for {@link OO.ui.DropdownWidget DropdownWidget}\n * @cfg {jQuery} [$overlay] Render the menu into a separate layer. This configuration is useful in cases where\n *  the expanded menu is larger than its containing `<div>`. The specified overlay layer is usually on top of the\n *  containing `<div>` and has a larger area. By default, the menu uses relative positioning.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n */\nOO.ui.DropdownInputWidget = function OoUiDropdownInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties (must be done before parent constructor which calls #setDisabled)\n\tthis.dropdownWidget = new OO.ui.DropdownWidget( $.extend(\n\t\t{\n\t\t\t$overlay: config.$overlay\n\t\t},\n\t\tconfig.dropdown\n\t) );\n\t// Set up the options before parent constructor, which uses them to validate config.value.\n\t// Use this instead of setOptions() because this.$input is not set up yet.\n\tthis.setOptionsData( config.options || [] );\n\n\t// Mixin constructors\n\tOO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.dropdownWidget.$handle } ) );\n\n\t// Parent constructor\n\tOO.ui.DropdownInputWidget.parent.call( this, config );\n\n\t// Events\n\tthis.dropdownWidget.getMenu().connect( this, { select: 'onMenuSelect' } );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-dropdownInputWidget' )\n\t\t.append( this.dropdownWidget.$element );\n\tthis.setTabIndexedElement( this.dropdownWidget.$tabIndexed );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.DropdownInputWidget, OO.ui.InputWidget );\nOO.mixinClass( OO.ui.DropdownInputWidget, OO.ui.mixin.TitledElement );\n\n/* Methods */\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.DropdownInputWidget.prototype.getInputElement = function () {\n\treturn $( '<select>' );\n};\n\n/**\n * Handles menu select events.\n *\n * @private\n * @param {OO.ui.MenuOptionWidget|null} item Selected menu item\n */\nOO.ui.DropdownInputWidget.prototype.onMenuSelect = function ( item ) {\n\tthis.setValue( item ? item.getData() : '' );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.DropdownInputWidget.prototype.setValue = function ( value ) {\n\tvar selected;\n\tvalue = this.cleanUpValue( value );\n\t// Only allow setting values that are actually present in the dropdown\n\tselected = this.dropdownWidget.getMenu().findItemFromData( value ) ||\n\t\tthis.dropdownWidget.getMenu().findFirstSelectableItem();\n\tthis.dropdownWidget.getMenu().selectItem( selected );\n\tvalue = selected ? selected.getData() : '';\n\tOO.ui.DropdownInputWidget.parent.prototype.setValue.call( this, value );\n\tif ( this.optionsDirty ) {\n\t\t// We reached this from the constructor or from #setOptions.\n\t\t// We have to update the <select> element.\n\t\tthis.updateOptionsInterface();\n\t}\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.DropdownInputWidget.prototype.setDisabled = function ( state ) {\n\tthis.dropdownWidget.setDisabled( state );\n\tOO.ui.DropdownInputWidget.parent.prototype.setDisabled.call( this, state );\n\treturn this;\n};\n\n/**\n * Set the options available for this input.\n *\n * @param {Object[]} options Array of menu options in the format `{ data: …, label: … }`\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.DropdownInputWidget.prototype.setOptions = function ( options ) {\n\tvar value = this.getValue();\n\n\tthis.setOptionsData( options );\n\n\t// Re-set the value to update the visible interface (DropdownWidget and <select>).\n\t// In case the previous value is no longer an available option, select the first valid one.\n\tthis.setValue( value );\n\n\treturn this;\n};\n\n/**\n * Set the internal list of options, used e.g. by setValue() to see which options are allowed.\n *\n * This method may be called before the parent constructor, so various properties may not be\n * intialized yet.\n *\n * @param {Object[]} options Array of menu options in the format `{ data: …, label: … }`\n * @private\n */\nOO.ui.DropdownInputWidget.prototype.setOptionsData = function ( options ) {\n\tvar\n\t\toptionWidgets,\n\t\twidget = this;\n\n\tthis.optionsDirty = true;\n\n\toptionWidgets = options.map( function ( opt ) {\n\t\tvar optValue;\n\n\t\tif ( opt.optgroup !== undefined ) {\n\t\t\treturn widget.createMenuSectionOptionWidget( opt.optgroup );\n\t\t}\n\n\t\toptValue = widget.cleanUpValue( opt.data );\n\t\treturn widget.createMenuOptionWidget(\n\t\t\toptValue,\n\t\t\topt.label !== undefined ? opt.label : optValue\n\t\t);\n\n\t} );\n\n\tthis.dropdownWidget.getMenu().clearItems().addItems( optionWidgets );\n};\n\n/**\n * Create a menu option widget.\n *\n * @protected\n * @param {string} data Item data\n * @param {string} label Item label\n * @return {OO.ui.MenuOptionWidget} Option widget\n */\nOO.ui.DropdownInputWidget.prototype.createMenuOptionWidget = function ( data, label ) {\n\treturn new OO.ui.MenuOptionWidget( {\n\t\tdata: data,\n\t\tlabel: label\n\t} );\n};\n\n/**\n * Create a menu section option widget.\n *\n * @protected\n * @param {string} label Section item label\n * @return {OO.ui.MenuSectionOptionWidget} Menu section option widget\n */\nOO.ui.DropdownInputWidget.prototype.createMenuSectionOptionWidget = function ( label ) {\n\treturn new OO.ui.MenuSectionOptionWidget( {\n\t\tlabel: label\n\t} );\n};\n\n/**\n * Update the user-visible interface to match the internal list of options and value.\n *\n * This method must only be called after the parent constructor.\n *\n * @private\n */\nOO.ui.DropdownInputWidget.prototype.updateOptionsInterface = function () {\n\tvar\n\t\t$optionsContainer = this.$input,\n\t\tdefaultValue = this.defaultValue,\n\t\twidget = this;\n\n\tthis.$input.empty();\n\n\tthis.dropdownWidget.getMenu().getItems().forEach( function ( optionWidget ) {\n\t\tvar $optionNode;\n\n\t\tif ( !( optionWidget instanceof OO.ui.MenuSectionOptionWidget ) ) {\n\t\t\t$optionNode = $( '<option>' )\n\t\t\t\t.attr( 'value', optionWidget.getData() )\n\t\t\t\t.text( optionWidget.getLabel() );\n\n\t\t\t// Remember original selection state. This property can be later used to check whether\n\t\t\t// the selection state of the input has been changed since it was created.\n\t\t\t$optionNode[ 0 ].defaultSelected = ( optionWidget.getData() === defaultValue );\n\n\t\t\t$optionsContainer.append( $optionNode );\n\t\t} else {\n\t\t\t$optionNode = $( '<optgroup>' )\n\t\t\t\t.attr( 'label', optionWidget.getLabel() );\n\t\t\twidget.$input.append( $optionNode );\n\t\t\t$optionsContainer = $optionNode;\n\t\t}\n\t} );\n\n\tthis.optionsDirty = false;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.DropdownInputWidget.prototype.focus = function () {\n\tthis.dropdownWidget.focus();\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.DropdownInputWidget.prototype.blur = function () {\n\tthis.dropdownWidget.blur();\n\treturn this;\n};\n","/**\n * RadioInputWidget creates a single radio button. Because radio buttons are usually used as a set,\n * in most cases you will want to use a {@link OO.ui.RadioSelectWidget radio select}\n * with {@link OO.ui.RadioOptionWidget radio options} instead of this class. For more information,\n * please see the [OOUI documentation on MediaWiki][1].\n *\n * This widget can be used inside an HTML form, such as a OO.ui.FormLayout.\n *\n *     @example\n *     // An example of selected, unselected, and disabled radio inputs\n *     var radio1 = new OO.ui.RadioInputWidget( {\n *         value: 'a',\n *         selected: true\n *     } );\n *     var radio2 = new OO.ui.RadioInputWidget( {\n *         value: 'b'\n *     } );\n *     var radio3 = new OO.ui.RadioInputWidget( {\n *         value: 'c',\n *         disabled: true\n *     } );\n *     // Create a fieldset layout with fields for each radio button.\n *     var fieldset = new OO.ui.FieldsetLayout( {\n *         label: 'Radio inputs'\n *     } );\n *     fieldset.addItems( [\n *         new OO.ui.FieldLayout( radio1, { label: 'Selected', align: 'inline' } ),\n *         new OO.ui.FieldLayout( radio2, { label: 'Unselected', align: 'inline' } ),\n *         new OO.ui.FieldLayout( radio3, { label: 'Disabled', align: 'inline' } ),\n *     ] );\n *     $( 'body' ).append( fieldset.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs\n *\n * @class\n * @extends OO.ui.InputWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [selected=false] Select the radio button initially. By default, the radio button is not selected.\n */\nOO.ui.RadioInputWidget = function OoUiRadioInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.RadioInputWidget.parent.call( this, config );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-radioInputWidget' )\n\t\t// Required for pretty styling in WikimediaUI theme\n\t\t.append( $( '<span>' ) );\n\tthis.setSelected( config.selected !== undefined ? config.selected : false );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.RadioInputWidget, OO.ui.InputWidget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.RadioInputWidget.static.tagName = 'span';\n\n/* Static Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioInputWidget.static.gatherPreInfuseState = function ( node, config ) {\n\tvar state = OO.ui.RadioInputWidget.parent.static.gatherPreInfuseState( node, config );\n\tstate.checked = config.$input.prop( 'checked' );\n\treturn state;\n};\n\n/* Methods */\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.RadioInputWidget.prototype.getInputElement = function () {\n\treturn $( '<input>' ).attr( 'type', 'radio' );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioInputWidget.prototype.onEdit = function () {\n\t// RadioInputWidget doesn't track its state.\n};\n\n/**\n * Set selection state of this radio button.\n *\n * @param {boolean} state `true` for selected\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.RadioInputWidget.prototype.setSelected = function ( state ) {\n\t// RadioInputWidget doesn't track its state.\n\tthis.$input.prop( 'checked', state );\n\t// The first time that the selection state is set (probably while constructing the widget),\n\t// remember it in defaultSelected. This property can be later used to check whether\n\t// the selection state of the input has been changed since it was created.\n\tif ( this.defaultSelected === undefined ) {\n\t\tthis.defaultSelected = state;\n\t\tthis.$input[ 0 ].defaultChecked = this.defaultSelected;\n\t}\n\treturn this;\n};\n\n/**\n * Check if this radio button is selected.\n *\n * @return {boolean} Radio is selected\n */\nOO.ui.RadioInputWidget.prototype.isSelected = function () {\n\treturn this.$input.prop( 'checked' );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioInputWidget.prototype.simulateLabelClick = function () {\n\tif ( !this.isDisabled() ) {\n\t\tthis.$input.click();\n\t}\n\tthis.focus();\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioInputWidget.prototype.restorePreInfuseState = function ( state ) {\n\tOO.ui.RadioInputWidget.parent.prototype.restorePreInfuseState.call( this, state );\n\tif ( state.checked !== undefined && state.checked !== this.isSelected() ) {\n\t\tthis.setSelected( state.checked );\n\t}\n};\n","/**\n * RadioSelectInputWidget is a {@link OO.ui.RadioSelectWidget RadioSelectWidget} intended to be used\n * within an HTML form, such as a OO.ui.FormLayout. The selected value is synchronized with the value\n * of a hidden HTML `input` tag. Please see the [OOUI documentation on MediaWiki][1] for\n * more information about input widgets.\n *\n * This and OO.ui.DropdownInputWidget support the same configuration options.\n *\n *     @example\n *     // Example: A RadioSelectInputWidget with three options\n *     var radioSelectInput = new OO.ui.RadioSelectInputWidget( {\n *         options: [\n *             { data: 'a', label: 'First' },\n *             { data: 'b', label: 'Second'},\n *             { data: 'c', label: 'Third' }\n *         ]\n *     } );\n *     $( 'body' ).append( radioSelectInput.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs\n *\n * @class\n * @extends OO.ui.InputWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {Object[]} [options=[]] Array of menu options in the format `{ data: …, label: … }`\n */\nOO.ui.RadioSelectInputWidget = function OoUiRadioSelectInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties (must be done before parent constructor which calls #setDisabled)\n\tthis.radioSelectWidget = new OO.ui.RadioSelectWidget();\n\t// Set up the options before parent constructor, which uses them to validate config.value.\n\t// Use this instead of setOptions() because this.$input is not set up yet\n\tthis.setOptionsData( config.options || [] );\n\n\t// Parent constructor\n\tOO.ui.RadioSelectInputWidget.parent.call( this, config );\n\n\t// Events\n\tthis.radioSelectWidget.connect( this, { select: 'onMenuSelect' } );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-radioSelectInputWidget' )\n\t\t.append( this.radioSelectWidget.$element );\n\tthis.setTabIndexedElement( this.radioSelectWidget.$tabIndexed );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.RadioSelectInputWidget, OO.ui.InputWidget );\n\n/* Static Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioSelectInputWidget.static.gatherPreInfuseState = function ( node, config ) {\n\tvar state = OO.ui.RadioSelectInputWidget.parent.static.gatherPreInfuseState( node, config );\n\tstate.value = $( node ).find( '.oo-ui-radioInputWidget .oo-ui-inputWidget-input:checked' ).val();\n\treturn state;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioSelectInputWidget.static.reusePreInfuseDOM = function ( node, config ) {\n\tconfig = OO.ui.RadioSelectInputWidget.parent.static.reusePreInfuseDOM( node, config );\n\t// Cannot reuse the `<input type=radio>` set\n\tdelete config.$input;\n\treturn config;\n};\n\n/* Methods */\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.RadioSelectInputWidget.prototype.getInputElement = function () {\n\t// Use this instead of <input type=\"hidden\">, because hidden inputs do not have separate\n\t// 'value' and 'defaultValue' properties, and InputWidget wants to handle 'defaultValue'.\n\treturn $( '<input>' ).addClass( 'oo-ui-element-hidden' );\n};\n\n/**\n * Handles menu select events.\n *\n * @private\n * @param {OO.ui.RadioOptionWidget} item Selected menu item\n */\nOO.ui.RadioSelectInputWidget.prototype.onMenuSelect = function ( item ) {\n\tthis.setValue( item.getData() );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioSelectInputWidget.prototype.setValue = function ( value ) {\n\tvar selected;\n\tvalue = this.cleanUpValue( value );\n\t// Only allow setting values that are actually present in the dropdown\n\tselected = this.radioSelectWidget.findItemFromData( value ) ||\n\t\tthis.radioSelectWidget.findFirstSelectableItem();\n\tthis.radioSelectWidget.selectItem( selected );\n\tvalue = selected ? selected.getData() : '';\n\tOO.ui.RadioSelectInputWidget.parent.prototype.setValue.call( this, value );\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioSelectInputWidget.prototype.setDisabled = function ( state ) {\n\tthis.radioSelectWidget.setDisabled( state );\n\tOO.ui.RadioSelectInputWidget.parent.prototype.setDisabled.call( this, state );\n\treturn this;\n};\n\n/**\n * Set the options available for this input.\n *\n * @param {Object[]} options Array of menu options in the format `{ data: …, label: … }`\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.RadioSelectInputWidget.prototype.setOptions = function ( options ) {\n\tvar value = this.getValue();\n\n\tthis.setOptionsData( options );\n\n\t// Re-set the value to update the visible interface (RadioSelectWidget).\n\t// In case the previous value is no longer an available option, select the first valid one.\n\tthis.setValue( value );\n\n\treturn this;\n};\n\n/**\n * Set the internal list of options, used e.g. by setValue() to see which options are allowed.\n *\n * This method may be called before the parent constructor, so various properties may not be\n * intialized yet.\n *\n * @param {Object[]} options Array of menu options in the format `{ data: …, label: … }`\n * @private\n */\nOO.ui.RadioSelectInputWidget.prototype.setOptionsData = function ( options ) {\n\tvar widget = this;\n\n\tthis.radioSelectWidget\n\t\t.clearItems()\n\t\t.addItems( options.map( function ( opt ) {\n\t\t\tvar optValue = widget.cleanUpValue( opt.data );\n\t\t\treturn new OO.ui.RadioOptionWidget( {\n\t\t\t\tdata: optValue,\n\t\t\t\tlabel: opt.label !== undefined ? opt.label : optValue\n\t\t\t} );\n\t\t} ) );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioSelectInputWidget.prototype.focus = function () {\n\tthis.radioSelectWidget.focus();\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioSelectInputWidget.prototype.blur = function () {\n\tthis.radioSelectWidget.blur();\n\treturn this;\n};\n","/**\n * CheckboxMultiselectInputWidget is a\n * {@link OO.ui.CheckboxMultiselectWidget CheckboxMultiselectWidget} intended to be used within a\n * HTML form, such as a OO.ui.FormLayout. The selected values are synchronized with the value of\n * HTML `<input type=checkbox>` tags. Please see the [OOUI documentation on MediaWiki][1] for\n * more information about input widgets.\n *\n *     @example\n *     // Example: A CheckboxMultiselectInputWidget with three options\n *     var multiselectInput = new OO.ui.CheckboxMultiselectInputWidget( {\n *         options: [\n *             { data: 'a', label: 'First' },\n *             { data: 'b', label: 'Second'},\n *             { data: 'c', label: 'Third' }\n *         ]\n *     } );\n *     $( 'body' ).append( multiselectInput.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs\n *\n * @class\n * @extends OO.ui.InputWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {Object[]} [options=[]] Array of menu options in the format `{ data: …, label: …, disabled: … }`\n */\nOO.ui.CheckboxMultiselectInputWidget = function OoUiCheckboxMultiselectInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties (must be done before parent constructor which calls #setDisabled)\n\tthis.checkboxMultiselectWidget = new OO.ui.CheckboxMultiselectWidget();\n\t// Must be set before the #setOptionsData call below\n\tthis.inputName = config.name;\n\t// Set up the options before parent constructor, which uses them to validate config.value.\n\t// Use this instead of setOptions() because this.$input is not set up yet\n\tthis.setOptionsData( config.options || [] );\n\n\t// Parent constructor\n\tOO.ui.CheckboxMultiselectInputWidget.parent.call( this, config );\n\n\t// Events\n\tthis.checkboxMultiselectWidget.connect( this, { select: 'onCheckboxesSelect' } );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-checkboxMultiselectInputWidget' )\n\t\t.append( this.checkboxMultiselectWidget.$element );\n\t// We don't use this.$input, but rather the CheckboxInputWidgets inside each option\n\tthis.$input.detach();\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.CheckboxMultiselectInputWidget, OO.ui.InputWidget );\n\n/* Static Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultiselectInputWidget.static.gatherPreInfuseState = function ( node, config ) {\n\tvar state = OO.ui.CheckboxMultiselectInputWidget.parent.static.gatherPreInfuseState( node, config );\n\tstate.value = $( node ).find( '.oo-ui-checkboxInputWidget .oo-ui-inputWidget-input:checked' )\n\t\t.toArray().map( function ( el ) { return el.value; } );\n\treturn state;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultiselectInputWidget.static.reusePreInfuseDOM = function ( node, config ) {\n\tconfig = OO.ui.CheckboxMultiselectInputWidget.parent.static.reusePreInfuseDOM( node, config );\n\t// Cannot reuse the `<input type=checkbox>` set\n\tdelete config.$input;\n\treturn config;\n};\n\n/* Methods */\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.getInputElement = function () {\n\t// Actually unused\n\treturn $( '<unused>' );\n};\n\n/**\n * Handles CheckboxMultiselectWidget select events.\n *\n * @private\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.onCheckboxesSelect = function () {\n\tthis.setValue( this.checkboxMultiselectWidget.findSelectedItemsData() );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.getValue = function () {\n\tvar value = this.$element.find( '.oo-ui-checkboxInputWidget .oo-ui-inputWidget-input:checked' )\n\t\t.toArray().map( function ( el ) { return el.value; } );\n\tif ( this.value !== value ) {\n\t\tthis.setValue( value );\n\t}\n\treturn this.value;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.setValue = function ( value ) {\n\tvalue = this.cleanUpValue( value );\n\tthis.checkboxMultiselectWidget.selectItemsByData( value );\n\tOO.ui.CheckboxMultiselectInputWidget.parent.prototype.setValue.call( this, value );\n\tif ( this.optionsDirty ) {\n\t\t// We reached this from the constructor or from #setOptions.\n\t\t// We have to update the <select> element.\n\t\tthis.updateOptionsInterface();\n\t}\n\treturn this;\n};\n\n/**\n * Clean up incoming value.\n *\n * @param {string[]} value Original value\n * @return {string[]} Cleaned up value\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.cleanUpValue = function ( value ) {\n\tvar i, singleValue,\n\t\tcleanValue = [];\n\tif ( !Array.isArray( value ) ) {\n\t\treturn cleanValue;\n\t}\n\tfor ( i = 0; i < value.length; i++ ) {\n\t\tsingleValue =\n\t\t\tOO.ui.CheckboxMultiselectInputWidget.parent.prototype.cleanUpValue.call( this, value[ i ] );\n\t\t// Remove options that we don't have here\n\t\tif ( !this.checkboxMultiselectWidget.findItemFromData( singleValue ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tcleanValue.push( singleValue );\n\t}\n\treturn cleanValue;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.setDisabled = function ( state ) {\n\tthis.checkboxMultiselectWidget.setDisabled( state );\n\tOO.ui.CheckboxMultiselectInputWidget.parent.prototype.setDisabled.call( this, state );\n\treturn this;\n};\n\n/**\n * Set the options available for this input.\n *\n * @param {Object[]} options Array of menu options in the format `{ data: …, label: …, disabled: … }`\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.setOptions = function ( options ) {\n\tvar value = this.getValue();\n\n\tthis.setOptionsData( options );\n\n\t// Re-set the value to update the visible interface (CheckboxMultiselectWidget).\n\t// This will also get rid of any stale options that we just removed.\n\tthis.setValue( value );\n\n\treturn this;\n};\n\n/**\n * Set the internal list of options, used e.g. by setValue() to see which options are allowed.\n *\n * This method may be called before the parent constructor, so various properties may not be\n * intialized yet.\n *\n * @param {Object[]} options Array of menu options in the format `{ data: …, label: … }`\n * @private\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.setOptionsData = function ( options ) {\n\tvar widget = this;\n\n\tthis.optionsDirty = true;\n\n\tthis.checkboxMultiselectWidget\n\t\t.clearItems()\n\t\t.addItems( options.map( function ( opt ) {\n\t\t\tvar optValue, item, optDisabled;\n\t\t\toptValue =\n\t\t\t\tOO.ui.CheckboxMultiselectInputWidget.parent.prototype.cleanUpValue.call( widget, opt.data );\n\t\t\toptDisabled = opt.disabled !== undefined ? opt.disabled : false;\n\t\t\titem = new OO.ui.CheckboxMultioptionWidget( {\n\t\t\t\tdata: optValue,\n\t\t\t\tlabel: opt.label !== undefined ? opt.label : optValue,\n\t\t\t\tdisabled: optDisabled\n\t\t\t} );\n\t\t\t// Set the 'name' and 'value' for form submission\n\t\t\titem.checkbox.$input.attr( 'name', widget.inputName );\n\t\t\titem.checkbox.setValue( optValue );\n\t\t\treturn item;\n\t\t} ) );\n};\n\n/**\n * Update the user-visible interface to match the internal list of options and value.\n *\n * This method must only be called after the parent constructor.\n *\n * @private\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.updateOptionsInterface = function () {\n\tvar defaultValue = this.defaultValue;\n\n\tthis.checkboxMultiselectWidget.getItems().forEach( function ( item ) {\n\t\t// Remember original selection state. This property can be later used to check whether\n\t\t// the selection state of the input has been changed since it was created.\n\t\tvar isDefault = defaultValue.indexOf( item.getData() ) !== -1;\n\t\titem.checkbox.defaultSelected = isDefault;\n\t\titem.checkbox.$input[ 0 ].defaultChecked = isDefault;\n\t} );\n\n\tthis.optionsDirty = false;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.focus = function () {\n\tthis.checkboxMultiselectWidget.focus();\n\treturn this;\n};\n","/**\n * TextInputWidgets, like HTML text inputs, can be configured with options that customize the\n * size of the field as well as its presentation. In addition, these widgets can be configured\n * with {@link OO.ui.mixin.IconElement icons}, {@link OO.ui.mixin.IndicatorElement indicators}, an optional\n * validation-pattern (used to determine if an input value is valid or not) and an input filter,\n * which modifies incoming values rather than validating them.\n * Please see the [OOUI documentation on MediaWiki] [1] for more information and examples.\n *\n * This widget can be used inside an HTML form, such as a OO.ui.FormLayout.\n *\n *     @example\n *     // Example of a text input widget\n *     var textInput = new OO.ui.TextInputWidget( {\n *         value: 'Text input'\n *     } )\n *     $( 'body' ).append( textInput.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs\n *\n * @class\n * @extends OO.ui.InputWidget\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.PendingElement\n * @mixins OO.ui.mixin.LabelElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string} [type='text'] The value of the HTML `type` attribute: 'text', 'password'\n *  'email', 'url' or 'number'.\n * @cfg {string} [placeholder] Placeholder text\n * @cfg {boolean} [autofocus=false] Use an HTML `autofocus` attribute to\n *  instruct the browser to focus this widget.\n * @cfg {boolean} [readOnly=false] Prevent changes to the value of the text input.\n * @cfg {number} [maxLength] Maximum number of characters allowed in the input.\n *\n *  For unfortunate historical reasons, this counts the number of UTF-16 code units rather than\n *  Unicode codepoints, which means that codepoints outside the Basic Multilingual Plane (e.g.\n *  many emojis) count as 2 characters each.\n * @cfg {string} [labelPosition='after'] The position of the inline label relative to that of\n *  the value or placeholder text: `'before'` or `'after'`\n * @cfg {boolean} [required=false] Mark the field as required with `true`. Implies `indicator: 'required'`.\n *  Note that `false` & setting `indicator: 'required' will result in no indicator shown.\n * @cfg {boolean} [autocomplete=true] Should the browser support autocomplete for this field\n * @cfg {boolean} [spellcheck] Should the browser support spellcheck for this field (`undefined` means\n *  leaving it up to the browser).\n * @cfg {RegExp|Function|string} [validate] Validation pattern: when string, a symbolic name of a\n *  pattern defined by the class: 'non-empty' (the value cannot be an empty string) or 'integer'\n *  (the value must contain only numbers); when RegExp, a regular expression that must match the\n *  value for it to be considered valid; when Function, a function receiving the value as parameter\n *  that must return true, or promise resolving to true, for it to be considered valid.\n */\nOO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( {\n\t\ttype: 'text',\n\t\tlabelPosition: 'after'\n\t}, config );\n\n\t// Parent constructor\n\tOO.ui.TextInputWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\tOO.ui.mixin.PendingElement.call( this, $.extend( {}, config, { $pending: this.$input } ) );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\n\t// Properties\n\tthis.type = this.getSaneType( config );\n\tthis.readOnly = false;\n\tthis.required = false;\n\tthis.validate = null;\n\tthis.styleHeight = null;\n\tthis.scrollWidth = null;\n\n\tthis.setValidation( config.validate );\n\tthis.setLabelPosition( config.labelPosition );\n\n\t// Events\n\tthis.$input.on( {\n\t\tkeypress: this.onKeyPress.bind( this ),\n\t\tblur: this.onBlur.bind( this ),\n\t\tfocus: this.onFocus.bind( this )\n\t} );\n\tthis.$icon.on( 'mousedown', this.onIconMouseDown.bind( this ) );\n\tthis.$indicator.on( 'mousedown', this.onIndicatorMouseDown.bind( this ) );\n\tthis.on( 'labelChange', this.updatePosition.bind( this ) );\n\tthis.on( 'change', OO.ui.debounce( this.onDebouncedChange.bind( this ), 250 ) );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-textInputWidget oo-ui-textInputWidget-type-' + this.type )\n\t\t.append( this.$icon, this.$indicator );\n\tthis.setReadOnly( !!config.readOnly );\n\tthis.setRequired( !!config.required );\n\tif ( config.placeholder !== undefined ) {\n\t\tthis.$input.attr( 'placeholder', config.placeholder );\n\t}\n\tif ( config.maxLength !== undefined ) {\n\t\tthis.$input.attr( 'maxlength', config.maxLength );\n\t}\n\tif ( config.autofocus ) {\n\t\tthis.$input.attr( 'autofocus', 'autofocus' );\n\t}\n\tif ( config.autocomplete === false ) {\n\t\tthis.$input.attr( 'autocomplete', 'off' );\n\t\t// Turning off autocompletion also disables \"form caching\" when the user navigates to a\n\t\t// different page and then clicks \"Back\". Re-enable it when leaving. Borrowed from jQuery UI.\n\t\t$( window ).on( {\n\t\t\tbeforeunload: function () {\n\t\t\t\tthis.$input.removeAttr( 'autocomplete' );\n\t\t\t}.bind( this ),\n\t\t\tpageshow: function () {\n\t\t\t\t// Browsers don't seem to actually fire this event on \"Back\", they instead just reload the\n\t\t\t\t// whole page... it shouldn't hurt, though.\n\t\t\t\tthis.$input.attr( 'autocomplete', 'off' );\n\t\t\t}.bind( this )\n\t\t} );\n\t}\n\tif ( config.spellcheck !== undefined ) {\n\t\tthis.$input.attr( 'spellcheck', config.spellcheck ? 'true' : 'false' );\n\t}\n\tif ( this.label ) {\n\t\tthis.isWaitingToBeAttached = true;\n\t\tthis.installParentChangeDetector();\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.TextInputWidget, OO.ui.InputWidget );\nOO.mixinClass( OO.ui.TextInputWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.TextInputWidget, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.TextInputWidget, OO.ui.mixin.PendingElement );\nOO.mixinClass( OO.ui.TextInputWidget, OO.ui.mixin.LabelElement );\n\n/* Static Properties */\n\nOO.ui.TextInputWidget.static.validationPatterns = {\n\t'non-empty': /.+/,\n\tinteger: /^\\d+$/\n};\n\n/* Events */\n\n/**\n * An `enter` event is emitted when the user presses 'enter' inside the text box.\n *\n * @event enter\n */\n\n/* Methods */\n\n/**\n * Handle icon mouse down events.\n *\n * @private\n * @param {jQuery.Event} e Mouse down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.TextInputWidget.prototype.onIconMouseDown = function ( e ) {\n\tif ( e.which === OO.ui.MouseButtons.LEFT ) {\n\t\tthis.focus();\n\t\treturn false;\n\t}\n};\n\n/**\n * Handle indicator mouse down events.\n *\n * @private\n * @param {jQuery.Event} e Mouse down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.TextInputWidget.prototype.onIndicatorMouseDown = function ( e ) {\n\tif ( e.which === OO.ui.MouseButtons.LEFT ) {\n\t\tthis.focus();\n\t\treturn false;\n\t}\n};\n\n/**\n * Handle key press events.\n *\n * @private\n * @param {jQuery.Event} e Key press event\n * @fires enter If enter key is pressed\n */\nOO.ui.TextInputWidget.prototype.onKeyPress = function ( e ) {\n\tif ( e.which === OO.ui.Keys.ENTER ) {\n\t\tthis.emit( 'enter', e );\n\t}\n};\n\n/**\n * Handle blur events.\n *\n * @private\n * @param {jQuery.Event} e Blur event\n */\nOO.ui.TextInputWidget.prototype.onBlur = function () {\n\tthis.setValidityFlag();\n};\n\n/**\n * Handle focus events.\n *\n * @private\n * @param {jQuery.Event} e Focus event\n */\nOO.ui.TextInputWidget.prototype.onFocus = function () {\n\tif ( this.isWaitingToBeAttached ) {\n\t\t// If we've received focus, then we must be attached to the document, and if\n\t\t// isWaitingToBeAttached is still true, that means the handler never fired. Fire it now.\n\t\tthis.onElementAttach();\n\t}\n\tthis.setValidityFlag( true );\n};\n\n/**\n * Handle element attach events.\n *\n * @private\n * @param {jQuery.Event} e Element attach event\n */\nOO.ui.TextInputWidget.prototype.onElementAttach = function () {\n\tthis.isWaitingToBeAttached = false;\n\t// Any previously calculated size is now probably invalid if we reattached elsewhere\n\tthis.valCache = null;\n\tthis.positionLabel();\n};\n\n/**\n * Handle debounced change events.\n *\n * @param {string} value\n * @private\n */\nOO.ui.TextInputWidget.prototype.onDebouncedChange = function () {\n\tthis.setValidityFlag();\n};\n\n/**\n * Check if the input is {@link #readOnly read-only}.\n *\n * @return {boolean}\n */\nOO.ui.TextInputWidget.prototype.isReadOnly = function () {\n\treturn this.readOnly;\n};\n\n/**\n * Set the {@link #readOnly read-only} state of the input.\n *\n * @param {boolean} state Make input read-only\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.setReadOnly = function ( state ) {\n\tthis.readOnly = !!state;\n\tthis.$input.prop( 'readOnly', this.readOnly );\n\treturn this;\n};\n\n/**\n * Check if the input is {@link #required required}.\n *\n * @return {boolean}\n */\nOO.ui.TextInputWidget.prototype.isRequired = function () {\n\treturn this.required;\n};\n\n/**\n * Set the {@link #required required} state of the input.\n *\n * @param {boolean} state Make input required\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.setRequired = function ( state ) {\n\tthis.required = !!state;\n\tif ( this.required ) {\n\t\tthis.$input\n\t\t\t.prop( 'required', true )\n\t\t\t.attr( 'aria-required', 'true' );\n\t\tif ( this.getIndicator() === null ) {\n\t\t\tthis.setIndicator( 'required' );\n\t\t}\n\t} else {\n\t\tthis.$input\n\t\t\t.prop( 'required', false )\n\t\t\t.removeAttr( 'aria-required' );\n\t\tif ( this.getIndicator() === 'required' ) {\n\t\t\tthis.setIndicator( null );\n\t\t}\n\t}\n\treturn this;\n};\n\n/**\n * Support function for making #onElementAttach work across browsers.\n *\n * This whole function could be replaced with one line of code using the DOMNodeInsertedIntoDocument\n * event, but it's not supported by Firefox and allegedly deprecated, so we only use it as fallback.\n *\n * Due to MutationObserver performance woes, #onElementAttach is only somewhat reliably called the\n * first time that the element gets attached to the documented.\n */\nOO.ui.TextInputWidget.prototype.installParentChangeDetector = function () {\n\tvar mutationObserver, onRemove, topmostNode, fakeParentNode,\n\t\tMutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,\n\t\twidget = this;\n\n\tif ( MutationObserver ) {\n\t\t// The new way. If only it wasn't so ugly.\n\n\t\tif ( this.isElementAttached() ) {\n\t\t\t// Widget is attached already, do nothing. This breaks the functionality of this function when\n\t\t\t// the widget is detached and reattached. Alas, doing this correctly with MutationObserver\n\t\t\t// would require observation of the whole document, which would hurt performance of other,\n\t\t\t// more important code.\n\t\t\treturn;\n\t\t}\n\n\t\t// Find topmost node in the tree\n\t\ttopmostNode = this.$element[ 0 ];\n\t\twhile ( topmostNode.parentNode ) {\n\t\t\ttopmostNode = topmostNode.parentNode;\n\t\t}\n\n\t\t// We have no way to detect the $element being attached somewhere without observing the entire\n\t\t// DOM with subtree modifications, which would hurt performance. So we cheat: we hook to the\n\t\t// parent node of $element, and instead detect when $element is removed from it (and thus\n\t\t// probably attached somewhere else). If there is no parent, we create a \"fake\" one. If it\n\t\t// doesn't get attached, we end up back here and create the parent.\n\n\t\tmutationObserver = new MutationObserver( function ( mutations ) {\n\t\t\tvar i, j, removedNodes;\n\t\t\tfor ( i = 0; i < mutations.length; i++ ) {\n\t\t\t\tremovedNodes = mutations[ i ].removedNodes;\n\t\t\t\tfor ( j = 0; j < removedNodes.length; j++ ) {\n\t\t\t\t\tif ( removedNodes[ j ] === topmostNode ) {\n\t\t\t\t\t\tsetTimeout( onRemove, 0 );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tonRemove = function () {\n\t\t\t// If the node was attached somewhere else, report it\n\t\t\tif ( widget.isElementAttached() ) {\n\t\t\t\twidget.onElementAttach();\n\t\t\t}\n\t\t\tmutationObserver.disconnect();\n\t\t\twidget.installParentChangeDetector();\n\t\t};\n\n\t\t// Create a fake parent and observe it\n\t\tfakeParentNode = $( '<div>' ).append( topmostNode )[ 0 ];\n\t\tmutationObserver.observe( fakeParentNode, { childList: true } );\n\t} else {\n\t\t// Using the DOMNodeInsertedIntoDocument event is much nicer and less magical, and works for\n\t\t// detachment and reattachment, but it's not supported by Firefox and allegedly deprecated.\n\t\tthis.$element.on( 'DOMNodeInsertedIntoDocument', this.onElementAttach.bind( this ) );\n\t}\n};\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.TextInputWidget.prototype.getInputElement = function ( config ) {\n\tif ( this.getSaneType( config ) === 'number' ) {\n\t\treturn $( '<input>' )\n\t\t\t.attr( 'step', 'any' )\n\t\t\t.attr( 'type', 'number' );\n\t} else {\n\t\treturn $( '<input>' ).attr( 'type', this.getSaneType( config ) );\n\t}\n};\n\n/**\n * Get sanitized value for 'type' for given config.\n *\n * @param {Object} config Configuration options\n * @return {string|null}\n * @protected\n */\nOO.ui.TextInputWidget.prototype.getSaneType = function ( config ) {\n\tvar allowedTypes = [\n\t\t'text',\n\t\t'password',\n\t\t'email',\n\t\t'url',\n\t\t'number'\n\t];\n\treturn allowedTypes.indexOf( config.type ) !== -1 ? config.type : 'text';\n};\n\n/**\n * Focus the input and select a specified range within the text.\n *\n * @param {number} from Select from offset\n * @param {number} [to] Select to offset, defaults to from\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.selectRange = function ( from, to ) {\n\tvar isBackwards, start, end,\n\t\tinput = this.$input[ 0 ];\n\n\tto = to || from;\n\n\tisBackwards = to < from;\n\tstart = isBackwards ? to : from;\n\tend = isBackwards ? from : to;\n\n\tthis.focus();\n\n\ttry {\n\t\tinput.setSelectionRange( start, end, isBackwards ? 'backward' : 'forward' );\n\t} catch ( e ) {\n\t\t// IE throws an exception if you call setSelectionRange on a unattached DOM node.\n\t\t// Rather than expensively check if the input is attached every time, just check\n\t\t// if it was the cause of an error being thrown. If not, rethrow the error.\n\t\tif ( this.getElementDocument().body.contains( input ) ) {\n\t\t\tthrow e;\n\t\t}\n\t}\n\treturn this;\n};\n\n/**\n * Get an object describing the current selection range in a directional manner\n *\n * @return {Object} Object containing 'from' and 'to' offsets\n */\nOO.ui.TextInputWidget.prototype.getRange = function () {\n\tvar input = this.$input[ 0 ],\n\t\tstart = input.selectionStart,\n\t\tend = input.selectionEnd,\n\t\tisBackwards = input.selectionDirection === 'backward';\n\n\treturn {\n\t\tfrom: isBackwards ? end : start,\n\t\tto: isBackwards ? start : end\n\t};\n};\n\n/**\n * Get the length of the text input value.\n *\n * This could differ from the length of #getValue if the\n * value gets filtered\n *\n * @return {number} Input length\n */\nOO.ui.TextInputWidget.prototype.getInputLength = function () {\n\treturn this.$input[ 0 ].value.length;\n};\n\n/**\n * Focus the input and select the entire text.\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.select = function () {\n\treturn this.selectRange( 0, this.getInputLength() );\n};\n\n/**\n * Focus the input and move the cursor to the start.\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.moveCursorToStart = function () {\n\treturn this.selectRange( 0 );\n};\n\n/**\n * Focus the input and move the cursor to the end.\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.moveCursorToEnd = function () {\n\treturn this.selectRange( this.getInputLength() );\n};\n\n/**\n * Insert new content into the input.\n *\n * @param {string} content Content to be inserted\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.insertContent = function ( content ) {\n\tvar start, end,\n\t\trange = this.getRange(),\n\t\tvalue = this.getValue();\n\n\tstart = Math.min( range.from, range.to );\n\tend = Math.max( range.from, range.to );\n\n\tthis.setValue( value.slice( 0, start ) + content + value.slice( end ) );\n\tthis.selectRange( start + content.length );\n\treturn this;\n};\n\n/**\n * Insert new content either side of a selection.\n *\n * @param {string} pre Content to be inserted before the selection\n * @param {string} post Content to be inserted after the selection\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.encapsulateContent = function ( pre, post ) {\n\tvar start, end,\n\t\trange = this.getRange(),\n\t\toffset = pre.length;\n\n\tstart = Math.min( range.from, range.to );\n\tend = Math.max( range.from, range.to );\n\n\tthis.selectRange( start ).insertContent( pre );\n\tthis.selectRange( offset + end ).insertContent( post );\n\n\tthis.selectRange( offset + start, offset + end );\n\treturn this;\n};\n\n/**\n * Set the validation pattern.\n *\n * The validation pattern is either a regular expression, a function, or the symbolic name of a\n * pattern defined by the class: 'non-empty' (the value cannot be an empty string) or 'integer' (the\n * value must contain only numbers).\n *\n * @param {RegExp|Function|string|null} validate Regular expression, function, or the symbolic name\n *  of a pattern (either ‘integer’ or ‘non-empty’) defined by the class.\n */\nOO.ui.TextInputWidget.prototype.setValidation = function ( validate ) {\n\tif ( validate instanceof RegExp || validate instanceof Function ) {\n\t\tthis.validate = validate;\n\t} else {\n\t\tthis.validate = this.constructor.static.validationPatterns[ validate ] || /.*/;\n\t}\n};\n\n/**\n * Sets the 'invalid' flag appropriately.\n *\n * @param {boolean} [isValid] Optionally override validation result\n */\nOO.ui.TextInputWidget.prototype.setValidityFlag = function ( isValid ) {\n\tvar widget = this,\n\t\tsetFlag = function ( valid ) {\n\t\t\tif ( !valid ) {\n\t\t\t\twidget.$input.attr( 'aria-invalid', 'true' );\n\t\t\t} else {\n\t\t\t\twidget.$input.removeAttr( 'aria-invalid' );\n\t\t\t}\n\t\t\twidget.setFlags( { invalid: !valid } );\n\t\t};\n\n\tif ( isValid !== undefined ) {\n\t\tsetFlag( isValid );\n\t} else {\n\t\tthis.getValidity().then( function () {\n\t\t\tsetFlag( true );\n\t\t}, function () {\n\t\t\tsetFlag( false );\n\t\t} );\n\t}\n};\n\n/**\n * Get the validity of current value.\n *\n * This method returns a promise that resolves if the value is valid and rejects if\n * it isn't. Uses the {@link #validate validation pattern}  to check for validity.\n *\n * @return {jQuery.Promise} A promise that resolves if the value is valid, rejects if not.\n */\nOO.ui.TextInputWidget.prototype.getValidity = function () {\n\tvar result;\n\n\tfunction rejectOrResolve( valid ) {\n\t\tif ( valid ) {\n\t\t\treturn $.Deferred().resolve().promise();\n\t\t} else {\n\t\t\treturn $.Deferred().reject().promise();\n\t\t}\n\t}\n\n\t// Check browser validity and reject if it is invalid\n\tif (\n\t\tthis.$input[ 0 ].checkValidity !== undefined &&\n\t\tthis.$input[ 0 ].checkValidity() === false\n\t) {\n\t\treturn rejectOrResolve( false );\n\t}\n\n\t// Run our checks if the browser thinks the field is valid\n\tif ( this.validate instanceof Function ) {\n\t\tresult = this.validate( this.getValue() );\n\t\tif ( result && typeof result.promise === 'function' ) {\n\t\t\treturn result.promise().then( function ( valid ) {\n\t\t\t\treturn rejectOrResolve( valid );\n\t\t\t} );\n\t\t} else {\n\t\t\treturn rejectOrResolve( result );\n\t\t}\n\t} else {\n\t\treturn rejectOrResolve( this.getValue().match( this.validate ) );\n\t}\n};\n\n/**\n * Set the position of the inline label relative to that of the value: `‘before’` or `‘after’`.\n *\n * @param {string} labelPosition Label position, 'before' or 'after'\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.setLabelPosition = function ( labelPosition ) {\n\tthis.labelPosition = labelPosition;\n\tif ( this.label ) {\n\t\t// If there is no label and we only change the position, #updatePosition is a no-op,\n\t\t// but it takes really a lot of work to do nothing.\n\t\tthis.updatePosition();\n\t}\n\treturn this;\n};\n\n/**\n * Update the position of the inline label.\n *\n * This method is called by #setLabelPosition, and can also be called on its own if\n * something causes the label to be mispositioned.\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.updatePosition = function () {\n\tvar after = this.labelPosition === 'after';\n\n\tthis.$element\n\t\t.toggleClass( 'oo-ui-textInputWidget-labelPosition-after', !!this.label && after )\n\t\t.toggleClass( 'oo-ui-textInputWidget-labelPosition-before', !!this.label && !after );\n\n\tthis.valCache = null;\n\tthis.scrollWidth = null;\n\tthis.positionLabel();\n\n\treturn this;\n};\n\n/**\n * Position the label by setting the correct padding on the input.\n *\n * @private\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.positionLabel = function () {\n\tvar after, rtl, property, newCss;\n\n\tif ( this.isWaitingToBeAttached ) {\n\t\t// #onElementAttach will be called soon, which calls this method\n\t\treturn this;\n\t}\n\n\tnewCss = {\n\t\t'padding-right': '',\n\t\t'padding-left': ''\n\t};\n\n\tif ( this.label ) {\n\t\tthis.$element.append( this.$label );\n\t} else {\n\t\tthis.$label.detach();\n\t\t// Clear old values if present\n\t\tthis.$input.css( newCss );\n\t\treturn;\n\t}\n\n\tafter = this.labelPosition === 'after';\n\trtl = this.$element.css( 'direction' ) === 'rtl';\n\tproperty = after === rtl ? 'padding-left' : 'padding-right';\n\n\tnewCss[ property ] = this.$label.outerWidth( true ) + ( after ? this.scrollWidth : 0 );\n\t// We have to clear the padding on the other side, in case the element direction changed\n\tthis.$input.css( newCss );\n\n\treturn this;\n};\n","/**\n * @class\n * @extends OO.ui.TextInputWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.SearchInputWidget = function OoUiSearchInputWidget( config ) {\n\tconfig = $.extend( {\n\t\ticon: 'search'\n\t}, config );\n\n\t// Parent constructor\n\tOO.ui.SearchInputWidget.parent.call( this, config );\n\n\t// Events\n\tthis.connect( this, {\n\t\tchange: 'onChange'\n\t} );\n\n\t// Initialization\n\tthis.updateSearchIndicator();\n\tthis.connect( this, {\n\t\tdisable: 'onDisable'\n\t} );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.SearchInputWidget, OO.ui.TextInputWidget );\n\n/* Methods */\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.SearchInputWidget.prototype.getSaneType = function () {\n\treturn 'search';\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.SearchInputWidget.prototype.onIndicatorMouseDown = function ( e ) {\n\tif ( e.which === OO.ui.MouseButtons.LEFT ) {\n\t\t// Clear the text field\n\t\tthis.setValue( '' );\n\t\tthis.focus();\n\t\treturn false;\n\t}\n};\n\n/**\n * Update the 'clear' indicator displayed on type: 'search' text\n * fields, hiding it when the field is already empty or when it's not\n * editable.\n */\nOO.ui.SearchInputWidget.prototype.updateSearchIndicator = function () {\n\tif ( this.getValue() === '' || this.isDisabled() || this.isReadOnly() ) {\n\t\tthis.setIndicator( null );\n\t} else {\n\t\tthis.setIndicator( 'clear' );\n\t}\n};\n\n/**\n * Handle change events.\n *\n * @private\n */\nOO.ui.SearchInputWidget.prototype.onChange = function () {\n\tthis.updateSearchIndicator();\n};\n\n/**\n * Handle disable events.\n *\n * @param {boolean} disabled Element is disabled\n * @private\n */\nOO.ui.SearchInputWidget.prototype.onDisable = function () {\n\tthis.updateSearchIndicator();\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.SearchInputWidget.prototype.setReadOnly = function ( state ) {\n\tOO.ui.SearchInputWidget.parent.prototype.setReadOnly.call( this, state );\n\tthis.updateSearchIndicator();\n\treturn this;\n};\n","/**\n * @class\n * @extends OO.ui.TextInputWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {number} [rows] Number of visible lines in textarea. If used with `autosize`,\n *  specifies minimum number of rows to display.\n * @cfg {boolean} [autosize=false] Automatically resize the text input to fit its content.\n *  Use the #maxRows config to specify a maximum number of displayed rows.\n * @cfg {number} [maxRows] Maximum number of rows to display when #autosize is set to true.\n *  Defaults to the maximum of `10` and `2 * rows`, or `10` if `rows` isn't provided.\n */\nOO.ui.MultilineTextInputWidget = function OoUiMultilineTextInputWidget( config ) {\n\tconfig = $.extend( {\n\t\ttype: 'text'\n\t}, config );\n\t// Parent constructor\n\tOO.ui.MultilineTextInputWidget.parent.call( this, config );\n\n\t// Properties\n\tthis.autosize = !!config.autosize;\n\tthis.minRows = config.rows !== undefined ? config.rows : '';\n\tthis.maxRows = config.maxRows || Math.max( 2 * ( this.minRows || 0 ), 10 );\n\n\t// Clone for resizing\n\tif ( this.autosize ) {\n\t\tthis.$clone = this.$input\n\t\t\t.clone()\n\t\t\t.removeAttr( 'id' )\n\t\t\t.removeAttr( 'name' )\n\t\t\t.insertAfter( this.$input )\n\t\t\t.attr( 'aria-hidden', 'true' )\n\t\t\t.addClass( 'oo-ui-element-hidden' );\n\t}\n\n\t// Events\n\tthis.connect( this, {\n\t\tchange: 'onChange'\n\t} );\n\n\t// Initialization\n\tif ( config.rows ) {\n\t\tthis.$input.attr( 'rows', config.rows );\n\t}\n\tif ( this.autosize ) {\n\t\tthis.$input.addClass( 'oo-ui-textInputWidget-autosized' );\n\t\tthis.isWaitingToBeAttached = true;\n\t\tthis.installParentChangeDetector();\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MultilineTextInputWidget, OO.ui.TextInputWidget );\n\n/* Static Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.MultilineTextInputWidget.static.gatherPreInfuseState = function ( node, config ) {\n\tvar state = OO.ui.MultilineTextInputWidget.parent.static.gatherPreInfuseState( node, config );\n\tstate.scrollTop = config.$input.scrollTop();\n\treturn state;\n};\n\n/* Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.MultilineTextInputWidget.prototype.onElementAttach = function () {\n\tOO.ui.MultilineTextInputWidget.parent.prototype.onElementAttach.call( this );\n\tthis.adjustSize();\n};\n\n/**\n * Handle change events.\n *\n * @private\n */\nOO.ui.MultilineTextInputWidget.prototype.onChange = function () {\n\tthis.adjustSize();\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MultilineTextInputWidget.prototype.updatePosition = function () {\n\tOO.ui.MultilineTextInputWidget.parent.prototype.updatePosition.call( this );\n\tthis.adjustSize();\n};\n\n/**\n * @inheritdoc\n *\n * Modify to emit 'enter' on Ctrl/Meta+Enter, instead of plain Enter\n */\nOO.ui.MultilineTextInputWidget.prototype.onKeyPress = function ( e ) {\n\tif (\n\t\t( e.which === OO.ui.Keys.ENTER && ( e.ctrlKey || e.metaKey ) ) ||\n\t\t// Some platforms emit keycode 10 for ctrl+enter in a textarea\n\t\te.which === 10\n\t) {\n\t\tthis.emit( 'enter', e );\n\t}\n};\n\n/**\n * Automatically adjust the size of the text input.\n *\n * This only affects multiline inputs that are {@link #autosize autosized}.\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n * @fires resize\n */\nOO.ui.MultilineTextInputWidget.prototype.adjustSize = function () {\n\tvar scrollHeight, innerHeight, outerHeight, maxInnerHeight, measurementError,\n\t\tidealHeight, newHeight, scrollWidth, property;\n\n\tif ( this.$input.val() !== this.valCache ) {\n\t\tif ( this.autosize ) {\n\t\t\tthis.$clone\n\t\t\t\t.val( this.$input.val() )\n\t\t\t\t.attr( 'rows', this.minRows )\n\t\t\t\t// Set inline height property to 0 to measure scroll height\n\t\t\t\t.css( 'height', 0 );\n\n\t\t\tthis.$clone.removeClass( 'oo-ui-element-hidden' );\n\n\t\t\tthis.valCache = this.$input.val();\n\n\t\t\tscrollHeight = this.$clone[ 0 ].scrollHeight;\n\n\t\t\t// Remove inline height property to measure natural heights\n\t\t\tthis.$clone.css( 'height', '' );\n\t\t\tinnerHeight = this.$clone.innerHeight();\n\t\t\touterHeight = this.$clone.outerHeight();\n\n\t\t\t// Measure max rows height\n\t\t\tthis.$clone\n\t\t\t\t.attr( 'rows', this.maxRows )\n\t\t\t\t.css( 'height', 'auto' )\n\t\t\t\t.val( '' );\n\t\t\tmaxInnerHeight = this.$clone.innerHeight();\n\n\t\t\t// Difference between reported innerHeight and scrollHeight with no scrollbars present.\n\t\t\t// This is sometimes non-zero on Blink-based browsers, depending on zoom level.\n\t\t\tmeasurementError = maxInnerHeight - this.$clone[ 0 ].scrollHeight;\n\t\t\tidealHeight = Math.min( maxInnerHeight, scrollHeight + measurementError );\n\n\t\t\tthis.$clone.addClass( 'oo-ui-element-hidden' );\n\n\t\t\t// Only apply inline height when expansion beyond natural height is needed\n\t\t\t// Use the difference between the inner and outer height as a buffer\n\t\t\tnewHeight = idealHeight > innerHeight ? idealHeight + ( outerHeight - innerHeight ) : '';\n\t\t\tif ( newHeight !== this.styleHeight ) {\n\t\t\t\tthis.$input.css( 'height', newHeight );\n\t\t\t\tthis.styleHeight = newHeight;\n\t\t\t\tthis.emit( 'resize' );\n\t\t\t}\n\t\t}\n\t\tscrollWidth = this.$input[ 0 ].offsetWidth - this.$input[ 0 ].clientWidth;\n\t\tif ( scrollWidth !== this.scrollWidth ) {\n\t\t\tproperty = this.$element.css( 'direction' ) === 'rtl' ? 'left' : 'right';\n\t\t\t// Reset\n\t\t\tthis.$label.css( { right: '', left: '' } );\n\t\t\tthis.$indicator.css( { right: '', left: '' } );\n\n\t\t\tif ( scrollWidth ) {\n\t\t\t\tthis.$indicator.css( property, scrollWidth );\n\t\t\t\tif ( this.labelPosition === 'after' ) {\n\t\t\t\t\tthis.$label.css( property, scrollWidth );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.scrollWidth = scrollWidth;\n\t\t\tthis.positionLabel();\n\t\t}\n\t}\n\treturn this;\n};\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.MultilineTextInputWidget.prototype.getInputElement = function () {\n\treturn $( '<textarea>' );\n};\n\n/**\n * Check if the input automatically adjusts its size.\n *\n * @return {boolean}\n */\nOO.ui.MultilineTextInputWidget.prototype.isAutosizing = function () {\n\treturn !!this.autosize;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MultilineTextInputWidget.prototype.restorePreInfuseState = function ( state ) {\n\tOO.ui.MultilineTextInputWidget.parent.prototype.restorePreInfuseState.call( this, state );\n\tif ( state.scrollTop !== undefined ) {\n\t\tthis.$input.scrollTop( state.scrollTop );\n\t}\n};\n","/**\n * ComboBoxInputWidgets combine a {@link OO.ui.TextInputWidget text input} (where a value\n * can be entered manually) and a {@link OO.ui.MenuSelectWidget menu of options} (from which\n * a value can be chosen instead). Users can choose options from the combo box in one of two ways:\n *\n * - by typing a value in the text input field. If the value exactly matches the value of a menu\n *   option, that option will appear to be selected.\n * - by choosing a value from the menu. The value of the chosen option will then appear in the text\n *   input field.\n *\n * After the user chooses an option, its `data` will be used as a new value for the widget.\n * A `label` also can be specified for each option: if given, it will be shown instead of the\n * `data` in the dropdown menu.\n *\n * This widget can be used inside an HTML form, such as a OO.ui.FormLayout.\n *\n * For more information about menus and options, please see the [OOUI documentation on MediaWiki][1].\n *\n *     @example\n *     // Example: A ComboBoxInputWidget.\n *     var comboBox = new OO.ui.ComboBoxInputWidget( {\n *         value: 'Option 1',\n *         options: [\n *             { data: 'Option 1' },\n *             { data: 'Option 2' },\n *             { data: 'Option 3' }\n *         ]\n *     } );\n *     $( 'body' ).append( comboBox.$element );\n *\n *     @example\n *     // Example: A ComboBoxInputWidget with additional option labels.\n *     var comboBox = new OO.ui.ComboBoxInputWidget( {\n *         value: 'Option 1',\n *         options: [\n *             {\n *                 data: 'Option 1',\n *                 label: 'Option One'\n *             },\n *             {\n *                 data: 'Option 2',\n *                 label: 'Option Two'\n *             },\n *             {\n *                 data: 'Option 3',\n *                 label: 'Option Three'\n *             }\n *         ]\n *     } );\n *     $( 'body' ).append( comboBox.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options#Menu_selects_and_options\n *\n * @class\n * @extends OO.ui.TextInputWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {Object[]} [options=[]] Array of menu options in the format `{ data: …, label: … }`\n * @cfg {Object} [menu] Configuration options to pass to the {@link OO.ui.MenuSelectWidget menu select widget}.\n * @cfg {jQuery} [$overlay] Render the menu into a separate layer. This configuration is useful in cases where\n *  the expanded menu is larger than its containing `<div>`. The specified overlay layer is usually on top of the\n *  containing `<div>` and has a larger area. By default, the menu uses relative positioning.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n */\nOO.ui.ComboBoxInputWidget = function OoUiComboBoxInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( {\n\t\tautocomplete: false\n\t}, config );\n\n\t// ComboBoxInputWidget shouldn't support `multiline`\n\tconfig.multiline = false;\n\n\t// See InputWidget#reusePreInfuseDOM about `config.$input`\n\tif ( config.$input ) {\n\t\tconfig.$input.removeAttr( 'list' );\n\t}\n\n\t// Parent constructor\n\tOO.ui.ComboBoxInputWidget.parent.call( this, config );\n\n\t// Properties\n\tthis.$overlay = ( config.$overlay === true ? OO.ui.getDefaultOverlay() : config.$overlay ) || this.$element;\n\tthis.dropdownButton = new OO.ui.ButtonWidget( {\n\t\tclasses: [ 'oo-ui-comboBoxInputWidget-dropdownButton' ],\n\t\tlabel: OO.ui.msg( 'ooui-combobox-button-label' ),\n\t\tindicator: 'down',\n\t\tinvisibleLabel: true,\n\t\tdisabled: this.disabled\n\t} );\n\tthis.menu = new OO.ui.MenuSelectWidget( $.extend(\n\t\t{\n\t\t\twidget: this,\n\t\t\tinput: this,\n\t\t\t$floatableContainer: this.$element,\n\t\t\tdisabled: this.isDisabled()\n\t\t},\n\t\tconfig.menu\n\t) );\n\n\t// Events\n\tthis.connect( this, {\n\t\tchange: 'onInputChange',\n\t\tenter: 'onInputEnter'\n\t} );\n\tthis.dropdownButton.connect( this, {\n\t\tclick: 'onDropdownButtonClick'\n\t} );\n\tthis.menu.connect( this, {\n\t\tchoose: 'onMenuChoose',\n\t\tadd: 'onMenuItemsChange',\n\t\tremove: 'onMenuItemsChange',\n\t\ttoggle: 'onMenuToggle'\n\t} );\n\n\t// Initialization\n\tthis.$input.attr( {\n\t\trole: 'combobox',\n\t\t'aria-expanded': 'false',\n\t\t'aria-owns': this.menu.getElementId(),\n\t\t'aria-autocomplete': 'list'\n\t} );\n\tthis.dropdownButton.$button.attr( {\n\t\t'aria-controls': this.menu.getElementId()\n\t} );\n\t// Do not override options set via config.menu.items\n\tif ( config.options !== undefined ) {\n\t\tthis.setOptions( config.options );\n\t}\n\tthis.$field = $( '<div>' )\n\t\t.addClass( 'oo-ui-comboBoxInputWidget-field' )\n\t\t.append( this.$input, this.dropdownButton.$element );\n\tthis.$element\n\t\t.addClass( 'oo-ui-comboBoxInputWidget' )\n\t\t.append( this.$field );\n\tthis.$overlay.append( this.menu.$element );\n\tthis.onMenuItemsChange();\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ComboBoxInputWidget, OO.ui.TextInputWidget );\n\n/* Methods */\n\n/**\n * Get the combobox's menu.\n *\n * @return {OO.ui.MenuSelectWidget} Menu widget\n */\nOO.ui.ComboBoxInputWidget.prototype.getMenu = function () {\n\treturn this.menu;\n};\n\n/**\n * Get the combobox's text input widget.\n *\n * @return {OO.ui.TextInputWidget} Text input widget\n */\nOO.ui.ComboBoxInputWidget.prototype.getInput = function () {\n\treturn this;\n};\n\n/**\n * Handle input change events.\n *\n * @private\n * @param {string} value New value\n */\nOO.ui.ComboBoxInputWidget.prototype.onInputChange = function ( value ) {\n\tvar match = this.menu.findItemFromData( value );\n\n\tthis.menu.selectItem( match );\n\tif ( this.menu.findHighlightedItem() ) {\n\t\tthis.menu.highlightItem( match );\n\t}\n\n\tif ( !this.isDisabled() ) {\n\t\tthis.menu.toggle( true );\n\t}\n};\n\n/**\n * Handle input enter events.\n *\n * @private\n */\nOO.ui.ComboBoxInputWidget.prototype.onInputEnter = function () {\n\tif ( !this.isDisabled() ) {\n\t\tthis.menu.toggle( false );\n\t}\n};\n\n/**\n * Handle button click events.\n *\n * @private\n */\nOO.ui.ComboBoxInputWidget.prototype.onDropdownButtonClick = function () {\n\tthis.menu.toggle();\n\tthis.focus();\n};\n\n/**\n * Handle menu choose events.\n *\n * @private\n * @param {OO.ui.OptionWidget} item Chosen item\n */\nOO.ui.ComboBoxInputWidget.prototype.onMenuChoose = function ( item ) {\n\tthis.setValue( item.getData() );\n};\n\n/**\n * Handle menu item change events.\n *\n * @private\n */\nOO.ui.ComboBoxInputWidget.prototype.onMenuItemsChange = function () {\n\tvar match = this.menu.findItemFromData( this.getValue() );\n\tthis.menu.selectItem( match );\n\tif ( this.menu.findHighlightedItem() ) {\n\t\tthis.menu.highlightItem( match );\n\t}\n\tthis.$element.toggleClass( 'oo-ui-comboBoxInputWidget-empty', this.menu.isEmpty() );\n};\n\n/**\n * Handle menu toggle events.\n *\n * @private\n * @param {boolean} isVisible Open state of the menu\n */\nOO.ui.ComboBoxInputWidget.prototype.onMenuToggle = function ( isVisible ) {\n\tthis.$element.toggleClass( 'oo-ui-comboBoxInputWidget-open', isVisible );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ComboBoxInputWidget.prototype.setDisabled = function ( disabled ) {\n\t// Parent method\n\tOO.ui.ComboBoxInputWidget.parent.prototype.setDisabled.call( this, disabled );\n\n\tif ( this.dropdownButton ) {\n\t\tthis.dropdownButton.setDisabled( this.isDisabled() );\n\t}\n\tif ( this.menu ) {\n\t\tthis.menu.setDisabled( this.isDisabled() );\n\t}\n\n\treturn this;\n};\n\n/**\n * Set the options available for this input.\n *\n * @param {Object[]} options Array of menu options in the format `{ data: …, label: … }`\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ComboBoxInputWidget.prototype.setOptions = function ( options ) {\n\tthis.getMenu()\n\t\t.clearItems()\n\t\t.addItems( options.map( function ( opt ) {\n\t\t\treturn new OO.ui.MenuOptionWidget( {\n\t\t\t\tdata: opt.data,\n\t\t\t\tlabel: opt.label !== undefined ? opt.label : opt.data\n\t\t\t} );\n\t\t} ) );\n\n\treturn this;\n};\n","/**\n * FieldLayouts are used with OO.ui.FieldsetLayout. Each FieldLayout requires a field-widget,\n * which is a widget that is specified by reference before any optional configuration settings.\n *\n * Field layouts can be configured with help text and/or labels. Labels are aligned in one of four ways:\n *\n * - **left**: The label is placed before the field-widget and aligned with the left margin.\n *   A left-alignment is used for forms with many fields.\n * - **right**: The label is placed before the field-widget and aligned to the right margin.\n *   A right-alignment is used for long but familiar forms which users tab through,\n *   verifying the current field with a quick glance at the label.\n * - **top**: The label is placed above the field-widget. A top-alignment is used for brief forms\n *   that users fill out from top to bottom.\n * - **inline**: The label is placed after the field-widget and aligned to the left.\n *   An inline-alignment is best used with checkboxes or radio buttons.\n *\n * Help text can either be:\n *\n * - accessed via a help icon that appears in the upper right corner of the rendered field layout, or\n * - shown as a subtle explanation below the label.\n *\n * If the help text is brief, or is essential to always expose it, set `helpInline` to `true`. If it\n * is long or not essential, leave `helpInline` to its default, `false`.\n *\n * Please see the [OOUI documentation on MediaWiki] [1] for examples and more information.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Layouts/Fields_and_Fieldsets\n *\n * @class\n * @extends OO.ui.Layout\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.TitledElement\n *\n * @constructor\n * @param {OO.ui.Widget} fieldWidget Field widget\n * @param {Object} [config] Configuration options\n * @cfg {string} [align='left'] Alignment of the label: 'left', 'right', 'top'\n *  or 'inline'\n * @cfg {Array} [errors] Error messages about the widget, which will be\n *  displayed below the widget.\n *  The array may contain strings or OO.ui.HtmlSnippet instances.\n * @cfg {Array} [notices] Notices about the widget, which will be displayed\n *  below the widget.\n *  The array may contain strings or OO.ui.HtmlSnippet instances.\n *  These are more visible than `help` messages when `helpInline` is set, and so\n *  might be good for transient messages.\n * @cfg {string|OO.ui.HtmlSnippet} [help] Help text. When help text is specified\n *  and `helpInline` is `false`, a \"help\" icon will appear in the upper-right\n *  corner of the rendered field; clicking it will display the text in a popup.\n *  If `helpInline` is `true`, then a subtle description will be shown after the\n *  label.\n * @cfg {boolean} [helpInline=false] Whether or not the help should be inline,\n *  or shown when the \"help\" icon is clicked.\n * @cfg {jQuery} [$overlay] Passed to OO.ui.PopupButtonWidget for help popup, if\n * `help` is given.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n *\n * @throws {Error} An error is thrown if no widget is specified\n */\nOO.ui.FieldLayout = function OoUiFieldLayout( fieldWidget, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( fieldWidget ) && config === undefined ) {\n\t\tconfig = fieldWidget;\n\t\tfieldWidget = config.fieldWidget;\n\t}\n\n\t// Make sure we have required constructor arguments\n\tif ( fieldWidget === undefined ) {\n\t\tthrow new Error( 'Widget not found' );\n\t}\n\n\t// Configuration initialization\n\tconfig = $.extend( { align: 'left', helpInline: false }, config );\n\n\t// Parent constructor\n\tOO.ui.FieldLayout.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.LabelElement.call( this, $.extend( {}, config, {\n\t\t$label: $( '<label>' )\n\t} ) );\n\tOO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$label } ) );\n\n\t// Properties\n\tthis.fieldWidget = fieldWidget;\n\tthis.errors = [];\n\tthis.notices = [];\n\tthis.$field = this.isFieldInline() ? $( '<span>' ) : $( '<div>' );\n\tthis.$messages = $( '<ul>' );\n\tthis.$header = $( '<span>' );\n\tthis.$body = $( '<div>' );\n\tthis.align = null;\n\tthis.helpInline = config.helpInline;\n\n\t// Events\n\tthis.fieldWidget.connect( this, { disable: 'onFieldDisable' } );\n\n\t// Initialization\n\tthis.$help = config.help ?\n\t\tthis.createHelpElement( config.help, config.$overlay ) :\n\t\t$( [] );\n\tif ( this.fieldWidget.getInputId() ) {\n\t\tthis.$label.attr( 'for', this.fieldWidget.getInputId() );\n\t\tif ( this.helpInline ) {\n\t\t\tthis.$help.attr( 'for', this.fieldWidget.getInputId() );\n\t\t}\n\t} else {\n\t\tthis.$label.on( 'click', function () {\n\t\t\tthis.fieldWidget.simulateLabelClick();\n\t\t}.bind( this ) );\n\t\tif ( this.helpInline ) {\n\t\t\tthis.$help.on( 'click', function () {\n\t\t\t\tthis.fieldWidget.simulateLabelClick();\n\t\t\t}.bind( this ) );\n\t\t}\n\t}\n\tthis.$element\n\t\t.addClass( 'oo-ui-fieldLayout' )\n\t\t.toggleClass( 'oo-ui-fieldLayout-disabled', this.fieldWidget.isDisabled() )\n\t\t.append( this.$body );\n\tthis.$body.addClass( 'oo-ui-fieldLayout-body' );\n\tthis.$header.addClass( 'oo-ui-fieldLayout-header' );\n\tthis.$messages.addClass( 'oo-ui-fieldLayout-messages' );\n\tthis.$field\n\t\t.addClass( 'oo-ui-fieldLayout-field' )\n\t\t.append( this.fieldWidget.$element );\n\n\tthis.setErrors( config.errors || [] );\n\tthis.setNotices( config.notices || [] );\n\tthis.setAlignment( config.align );\n\t// Call this again to take into account the widget's accessKey\n\tthis.updateTitle();\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.FieldLayout, OO.ui.Layout );\nOO.mixinClass( OO.ui.FieldLayout, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.FieldLayout, OO.ui.mixin.TitledElement );\n\n/* Methods */\n\n/**\n * Handle field disable events.\n *\n * @private\n * @param {boolean} value Field is disabled\n */\nOO.ui.FieldLayout.prototype.onFieldDisable = function ( value ) {\n\tthis.$element.toggleClass( 'oo-ui-fieldLayout-disabled', value );\n};\n\n/**\n * Get the widget contained by the field.\n *\n * @return {OO.ui.Widget} Field widget\n */\nOO.ui.FieldLayout.prototype.getField = function () {\n\treturn this.fieldWidget;\n};\n\n/**\n * Return `true` if the given field widget can be used with `'inline'` alignment (see\n * #setAlignment). Return `false` if it can't or if this can't be determined.\n *\n * @return {boolean}\n */\nOO.ui.FieldLayout.prototype.isFieldInline = function () {\n\t// This is very simplistic, but should be good enough.\n\treturn this.getField().$element.prop( 'tagName' ).toLowerCase() === 'span';\n};\n\n/**\n * @protected\n * @param {string} kind 'error' or 'notice'\n * @param {string|OO.ui.HtmlSnippet} text\n * @return {jQuery}\n */\nOO.ui.FieldLayout.prototype.makeMessage = function ( kind, text ) {\n\tvar $listItem, $icon, message;\n\t$listItem = $( '<li>' );\n\tif ( kind === 'error' ) {\n\t\t$icon = new OO.ui.IconWidget( { icon: 'alert', flags: [ 'warning' ] } ).$element;\n\t\t$listItem.attr( 'role', 'alert' );\n\t} else if ( kind === 'notice' ) {\n\t\t$icon = new OO.ui.IconWidget( { icon: 'notice' } ).$element;\n\t} else {\n\t\t$icon = '';\n\t}\n\tmessage = new OO.ui.LabelWidget( { label: text } );\n\t$listItem\n\t\t.append( $icon, message.$element )\n\t\t.addClass( 'oo-ui-fieldLayout-messages-' + kind );\n\treturn $listItem;\n};\n\n/**\n * Set the field alignment mode.\n *\n * @private\n * @param {string} value Alignment mode, either 'left', 'right', 'top' or 'inline'\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.FieldLayout.prototype.setAlignment = function ( value ) {\n\tif ( value !== this.align ) {\n\t\t// Default to 'left'\n\t\tif ( [ 'left', 'right', 'top', 'inline' ].indexOf( value ) === -1 ) {\n\t\t\tvalue = 'left';\n\t\t}\n\t\t// Validate\n\t\tif ( value === 'inline' && !this.isFieldInline() ) {\n\t\t\tvalue = 'top';\n\t\t}\n\t\t// Reorder elements\n\n\t\tif ( this.helpInline ) {\n\t\t\tif ( value === 'top' ) {\n\t\t\t\tthis.$header.append( this.$label );\n\t\t\t\tthis.$body.append( this.$header, this.$field, this.$help );\n\t\t\t} else if ( value === 'inline' ) {\n\t\t\t\tthis.$header.append( this.$label, this.$help );\n\t\t\t\tthis.$body.append( this.$field, this.$header );\n\t\t\t} else {\n\t\t\t\tthis.$header.append( this.$label, this.$help );\n\t\t\t\tthis.$body.append( this.$header, this.$field );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( value === 'top' ) {\n\t\t\t\tthis.$header.append( this.$help, this.$label );\n\t\t\t\tthis.$body.append( this.$header, this.$field );\n\t\t\t} else if ( value === 'inline' ) {\n\t\t\t\tthis.$header.append( this.$help, this.$label );\n\t\t\t\tthis.$body.append( this.$field, this.$header );\n\t\t\t} else {\n\t\t\t\tthis.$header.append( this.$label );\n\t\t\t\tthis.$body.append( this.$header, this.$help, this.$field );\n\t\t\t}\n\t\t}\n\t\t// Set classes. The following classes can be used here:\n\t\t// * oo-ui-fieldLayout-align-left\n\t\t// * oo-ui-fieldLayout-align-right\n\t\t// * oo-ui-fieldLayout-align-top\n\t\t// * oo-ui-fieldLayout-align-inline\n\t\tif ( this.align ) {\n\t\t\tthis.$element.removeClass( 'oo-ui-fieldLayout-align-' + this.align );\n\t\t}\n\t\tthis.$element.addClass( 'oo-ui-fieldLayout-align-' + value );\n\t\tthis.align = value;\n\t}\n\n\treturn this;\n};\n\n/**\n * Set the list of error messages.\n *\n * @param {Array} errors Error messages about the widget, which will be displayed below the widget.\n *  The array may contain strings or OO.ui.HtmlSnippet instances.\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.FieldLayout.prototype.setErrors = function ( errors ) {\n\tthis.errors = errors.slice();\n\tthis.updateMessages();\n\treturn this;\n};\n\n/**\n * Set the list of notice messages.\n *\n * @param {Array} notices Notices about the widget, which will be displayed below the widget.\n *  The array may contain strings or OO.ui.HtmlSnippet instances.\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.FieldLayout.prototype.setNotices = function ( notices ) {\n\tthis.notices = notices.slice();\n\tthis.updateMessages();\n\treturn this;\n};\n\n/**\n * Update the rendering of error and notice messages.\n *\n * @private\n */\nOO.ui.FieldLayout.prototype.updateMessages = function () {\n\tvar i;\n\tthis.$messages.empty();\n\n\tif ( this.errors.length || this.notices.length ) {\n\t\tthis.$body.after( this.$messages );\n\t} else {\n\t\tthis.$messages.remove();\n\t\treturn;\n\t}\n\n\tfor ( i = 0; i < this.notices.length; i++ ) {\n\t\tthis.$messages.append( this.makeMessage( 'notice', this.notices[ i ] ) );\n\t}\n\tfor ( i = 0; i < this.errors.length; i++ ) {\n\t\tthis.$messages.append( this.makeMessage( 'error', this.errors[ i ] ) );\n\t}\n};\n\n/**\n * Include information about the widget's accessKey in our title. TitledElement calls this method.\n * (This is a bit of a hack.)\n *\n * @protected\n * @param {string} title Tooltip label for 'title' attribute\n * @return {string}\n */\nOO.ui.FieldLayout.prototype.formatTitleWithAccessKey = function ( title ) {\n\tif ( this.fieldWidget && this.fieldWidget.formatTitleWithAccessKey ) {\n\t\treturn this.fieldWidget.formatTitleWithAccessKey( title );\n\t}\n\treturn title;\n};\n\n/**\n * Creates and returns the help element. Also sets the `aria-describedby`\n * attribute on the main element of the `fieldWidget`.\n *\n * @private\n * @param {string|OO.ui.HtmlSnippet} [help] Help text.\n * @param {jQuery} [$overlay] Passed to OO.ui.PopupButtonWidget for help popup.\n * @return {jQuery} The element that should become `this.$help`.\n */\nOO.ui.FieldLayout.prototype.createHelpElement = function ( help, $overlay ) {\n\tvar helpId, helpWidget;\n\n\tif ( this.helpInline ) {\n\t\thelpWidget = new OO.ui.LabelWidget( {\n\t\t\tlabel: help,\n\t\t\tclasses: [ 'oo-ui-inline-help' ]\n\t\t} );\n\n\t\thelpId = helpWidget.getElementId();\n\t} else {\n\t\thelpWidget = new OO.ui.PopupButtonWidget( {\n\t\t\t$overlay: $overlay,\n\t\t\tpopup: {\n\t\t\t\tpadded: true\n\t\t\t},\n\t\t\tclasses: [ 'oo-ui-fieldLayout-help' ],\n\t\t\tframed: false,\n\t\t\ticon: 'info',\n\t\t\tlabel: OO.ui.msg( 'ooui-field-help' ),\n\t\t\tinvisibleLabel: true\n\t\t} );\n\t\tif ( help instanceof OO.ui.HtmlSnippet ) {\n\t\t\thelpWidget.getPopup().$body.html( help.toString() );\n\t\t} else {\n\t\t\thelpWidget.getPopup().$body.text( help );\n\t\t}\n\n\t\thelpId = helpWidget.getPopup().getBodyId();\n\t}\n\n\t// Set the 'aria-describedby' attribute on the fieldWidget\n\t// Preference given to an input or a button\n\t(\n\t\tthis.fieldWidget.$input ||\n\t\tthis.fieldWidget.$button ||\n\t\tthis.fieldWidget.$element\n\t).attr( 'aria-describedby', helpId );\n\n\treturn helpWidget.$element;\n};\n","/**\n * ActionFieldLayouts are used with OO.ui.FieldsetLayout. The layout consists of a field-widget, a button,\n * and an optional label and/or help text. The field-widget (e.g., a {@link OO.ui.TextInputWidget TextInputWidget}),\n * is required and is specified before any optional configuration settings.\n *\n * Labels can be aligned in one of four ways:\n *\n * - **left**: The label is placed before the field-widget and aligned with the left margin.\n *   A left-alignment is used for forms with many fields.\n * - **right**: The label is placed before the field-widget and aligned to the right margin.\n *   A right-alignment is used for long but familiar forms which users tab through,\n *   verifying the current field with a quick glance at the label.\n * - **top**: The label is placed above the field-widget. A top-alignment is used for brief forms\n *   that users fill out from top to bottom.\n * - **inline**: The label is placed after the field-widget and aligned to the left.\n *   An inline-alignment is best used with checkboxes or radio buttons.\n *\n * Help text is accessed via a help icon that appears in the upper right corner of the rendered field layout when help\n * text is specified.\n *\n *     @example\n *     // Example of an ActionFieldLayout\n *     var actionFieldLayout = new OO.ui.ActionFieldLayout(\n *         new OO.ui.TextInputWidget( {\n *             placeholder: 'Field widget'\n *         } ),\n *         new OO.ui.ButtonWidget( {\n *             label: 'Button'\n *         } ),\n *         {\n *             label: 'An ActionFieldLayout. This label is aligned top',\n *             align: 'top',\n *             help: 'This is help text'\n *         }\n *     );\n *\n *     $( 'body' ).append( actionFieldLayout.$element );\n *\n * @class\n * @extends OO.ui.FieldLayout\n *\n * @constructor\n * @param {OO.ui.Widget} fieldWidget Field widget\n * @param {OO.ui.ButtonWidget} buttonWidget Button widget\n * @param {Object} config\n */\nOO.ui.ActionFieldLayout = function OoUiActionFieldLayout( fieldWidget, buttonWidget, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( fieldWidget ) && config === undefined ) {\n\t\tconfig = fieldWidget;\n\t\tfieldWidget = config.fieldWidget;\n\t\tbuttonWidget = config.buttonWidget;\n\t}\n\n\t// Parent constructor\n\tOO.ui.ActionFieldLayout.parent.call( this, fieldWidget, config );\n\n\t// Properties\n\tthis.buttonWidget = buttonWidget;\n\tthis.$button = $( '<span>' );\n\tthis.$input = this.isFieldInline() ? $( '<span>' ) : $( '<div>' );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-actionFieldLayout' );\n\tthis.$button\n\t\t.addClass( 'oo-ui-actionFieldLayout-button' )\n\t\t.append( this.buttonWidget.$element );\n\tthis.$input\n\t\t.addClass( 'oo-ui-actionFieldLayout-input' )\n\t\t.append( this.fieldWidget.$element );\n\tthis.$field\n\t\t.append( this.$input, this.$button );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ActionFieldLayout, OO.ui.FieldLayout );\n","/**\n * FieldsetLayouts are composed of one or more {@link OO.ui.FieldLayout FieldLayouts},\n * which each contain an individual widget and, optionally, a label. Each Fieldset can be\n * configured with a label as well. For more information and examples,\n * please see the [OOUI documentation on MediaWiki][1].\n *\n *     @example\n *     // Example of a fieldset layout\n *     var input1 = new OO.ui.TextInputWidget( {\n *         placeholder: 'A text input field'\n *     } );\n *\n *     var input2 = new OO.ui.TextInputWidget( {\n *         placeholder: 'A text input field'\n *     } );\n *\n *     var fieldset = new OO.ui.FieldsetLayout( {\n *         label: 'Example of a fieldset layout'\n *     } );\n *\n *     fieldset.addItems( [\n *         new OO.ui.FieldLayout( input1, {\n *             label: 'Field One'\n *         } ),\n *         new OO.ui.FieldLayout( input2, {\n *             label: 'Field Two'\n *         } )\n *     ] );\n *     $( 'body' ).append( fieldset.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Layouts/Fields_and_Fieldsets\n *\n * @class\n * @extends OO.ui.Layout\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.ui.FieldLayout[]} [items] An array of fields to add to the fieldset. See OO.ui.FieldLayout for more information about fields.\n * @cfg {string|OO.ui.HtmlSnippet} [help] Help text. When help text is specified, a \"help\" icon will appear\n *  in the upper-right corner of the rendered field; clicking it will display the text in a popup.\n *  For important messages, you are advised to use `notices`, as they are always shown.\n * @cfg {jQuery} [$overlay] Passed to OO.ui.PopupButtonWidget for help popup, if `help` is given.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n */\nOO.ui.FieldsetLayout = function OoUiFieldsetLayout( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.FieldsetLayout.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.GroupElement.call( this, config );\n\n\t// Properties\n\tthis.$header = $( '<legend>' );\n\tif ( config.help ) {\n\t\tthis.popupButtonWidget = new OO.ui.PopupButtonWidget( {\n\t\t\t$overlay: config.$overlay,\n\t\t\tpopup: {\n\t\t\t\tpadded: true\n\t\t\t},\n\t\t\tclasses: [ 'oo-ui-fieldsetLayout-help' ],\n\t\t\tframed: false,\n\t\t\ticon: 'info',\n\t\t\tlabel: OO.ui.msg( 'ooui-field-help' ),\n\t\t\tinvisibleLabel: true\n\t\t} );\n\t\tif ( config.help instanceof OO.ui.HtmlSnippet ) {\n\t\t\tthis.popupButtonWidget.getPopup().$body.html( config.help.toString() );\n\t\t} else {\n\t\t\tthis.popupButtonWidget.getPopup().$body.text( config.help );\n\t\t}\n\t\tthis.$help = this.popupButtonWidget.$element;\n\t} else {\n\t\tthis.$help = $( [] );\n\t}\n\n\t// Initialization\n\tthis.$header\n\t\t.addClass( 'oo-ui-fieldsetLayout-header' )\n\t\t.append( this.$icon, this.$label, this.$help );\n\tthis.$group.addClass( 'oo-ui-fieldsetLayout-group' );\n\tthis.$element\n\t\t.addClass( 'oo-ui-fieldsetLayout' )\n\t\t.prepend( this.$header, this.$group );\n\tif ( Array.isArray( config.items ) ) {\n\t\tthis.addItems( config.items );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.FieldsetLayout, OO.ui.Layout );\nOO.mixinClass( OO.ui.FieldsetLayout, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.FieldsetLayout, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.FieldsetLayout, OO.ui.mixin.GroupElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.FieldsetLayout.static.tagName = 'fieldset';\n","/**\n * FormLayouts are used to wrap {@link OO.ui.FieldsetLayout FieldsetLayouts} when you intend to use browser-based\n * form submission for the fields instead of handling them in JavaScript. Form layouts can be configured with an\n * HTML form action, an encoding type, and a method using the #action, #enctype, and #method configs, respectively.\n * See the [OOUI documentation on MediaWiki] [1] for more information and examples.\n *\n * Only widgets from the {@link OO.ui.InputWidget InputWidget} family support form submission. It\n * includes standard form elements like {@link OO.ui.CheckboxInputWidget checkboxes}, {@link\n * OO.ui.RadioInputWidget radio buttons} and {@link OO.ui.TextInputWidget text fields}, as well as\n * some fancier controls. Some controls have both regular and InputWidget variants, for example\n * OO.ui.DropdownWidget and OO.ui.DropdownInputWidget – only the latter support form submission and\n * often have simplified APIs to match the capabilities of HTML forms.\n * See the [OOUI documentation on MediaWiki] [2] for more information about InputWidgets.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Layouts/Forms\n * [2]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs\n *\n *     @example\n *     // Example of a form layout that wraps a fieldset layout\n *     var input1 = new OO.ui.TextInputWidget( {\n *         placeholder: 'Username'\n *     } );\n *     var input2 = new OO.ui.TextInputWidget( {\n *         placeholder: 'Password',\n *         type: 'password'\n *     } );\n *     var submit = new OO.ui.ButtonInputWidget( {\n *         label: 'Submit'\n *     } );\n *\n *     var fieldset = new OO.ui.FieldsetLayout( {\n *         label: 'A form layout'\n *     } );\n *     fieldset.addItems( [\n *         new OO.ui.FieldLayout( input1, {\n *             label: 'Username',\n *             align: 'top'\n *         } ),\n *         new OO.ui.FieldLayout( input2, {\n *             label: 'Password',\n *             align: 'top'\n *         } ),\n *         new OO.ui.FieldLayout( submit )\n *     ] );\n *     var form = new OO.ui.FormLayout( {\n *         items: [ fieldset ],\n *         action: '/api/formhandler',\n *         method: 'get'\n *     } )\n *     $( 'body' ).append( form.$element );\n *\n * @class\n * @extends OO.ui.Layout\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string} [method] HTML form `method` attribute\n * @cfg {string} [action] HTML form `action` attribute\n * @cfg {string} [enctype] HTML form `enctype` attribute\n * @cfg {OO.ui.FieldsetLayout[]} [items] Fieldset layouts to add to the form layout.\n */\nOO.ui.FormLayout = function OoUiFormLayout( config ) {\n\tvar action;\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.FormLayout.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );\n\n\t// Events\n\tthis.$element.on( 'submit', this.onFormSubmit.bind( this ) );\n\n\t// Make sure the action is safe\n\taction = config.action;\n\tif ( action !== undefined && !OO.ui.isSafeUrl( action ) ) {\n\t\taction = './' + action;\n\t}\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-formLayout' )\n\t\t.attr( {\n\t\t\tmethod: config.method,\n\t\t\taction: action,\n\t\t\tenctype: config.enctype\n\t\t} );\n\tif ( Array.isArray( config.items ) ) {\n\t\tthis.addItems( config.items );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.FormLayout, OO.ui.Layout );\nOO.mixinClass( OO.ui.FormLayout, OO.ui.mixin.GroupElement );\n\n/* Events */\n\n/**\n * A 'submit' event is emitted when the form is submitted.\n *\n * @event submit\n */\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.FormLayout.static.tagName = 'form';\n\n/* Methods */\n\n/**\n * Handle form submit events.\n *\n * @private\n * @param {jQuery.Event} e Submit event\n * @fires submit\n * @return {OO.ui.FormLayout} The layout, for chaining\n */\nOO.ui.FormLayout.prototype.onFormSubmit = function () {\n\tif ( this.emit( 'submit' ) ) {\n\t\treturn false;\n\t}\n};\n","/**\n * PanelLayouts expand to cover the entire area of their parent. They can be configured with scrolling, padding,\n * and a frame, and are often used together with {@link OO.ui.StackLayout StackLayouts}.\n *\n *     @example\n *     // Example of a panel layout\n *     var panel = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         framed: true,\n *         padded: true,\n *         $content: $( '<p>A panel layout with padding and a frame.</p>' )\n *     } );\n *     $( 'body' ).append( panel.$element );\n *\n * @class\n * @extends OO.ui.Layout\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [scrollable=false] Allow vertical scrolling\n * @cfg {boolean} [padded=false] Add padding between the content and the edges of the panel.\n * @cfg {boolean} [expanded=true] Expand the panel to fill the entire parent element.\n * @cfg {boolean} [framed=false] Render the panel with a frame to visually separate it from outside content.\n */\nOO.ui.PanelLayout = function OoUiPanelLayout( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( {\n\t\tscrollable: false,\n\t\tpadded: false,\n\t\texpanded: true,\n\t\tframed: false\n\t}, config );\n\n\t// Parent constructor\n\tOO.ui.PanelLayout.parent.call( this, config );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-panelLayout' );\n\tif ( config.scrollable ) {\n\t\tthis.$element.addClass( 'oo-ui-panelLayout-scrollable' );\n\t}\n\tif ( config.padded ) {\n\t\tthis.$element.addClass( 'oo-ui-panelLayout-padded' );\n\t}\n\tif ( config.expanded ) {\n\t\tthis.$element.addClass( 'oo-ui-panelLayout-expanded' );\n\t}\n\tif ( config.framed ) {\n\t\tthis.$element.addClass( 'oo-ui-panelLayout-framed' );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.PanelLayout, OO.ui.Layout );\n\n/* Methods */\n\n/**\n * Focus the panel layout\n *\n * The default implementation just focuses the first focusable element in the panel\n */\nOO.ui.PanelLayout.prototype.focus = function () {\n\tOO.ui.findFocusable( this.$element ).focus();\n};\n","/**\n * HorizontalLayout arranges its contents in a single line (using `display: inline-block` for its\n * items), with small margins between them. Convenient when you need to put a number of block-level\n * widgets on a single line next to each other.\n *\n * Note that inline elements, such as OO.ui.ButtonWidgets, do not need this wrapper.\n *\n *     @example\n *     // HorizontalLayout with a text input and a label\n *     var layout = new OO.ui.HorizontalLayout( {\n *       items: [\n *         new OO.ui.LabelWidget( { label: 'Label' } ),\n *         new OO.ui.TextInputWidget( { value: 'Text' } )\n *       ]\n *     } );\n *     $( 'body' ).append( layout.$element );\n *\n * @class\n * @extends OO.ui.Layout\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.ui.Widget[]|OO.ui.Layout[]} [items] Widgets or other layouts to add to the layout.\n */\nOO.ui.HorizontalLayout = function OoUiHorizontalLayout( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.HorizontalLayout.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-horizontalLayout' );\n\tif ( Array.isArray( config.items ) ) {\n\t\tthis.addItems( config.items );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.HorizontalLayout, OO.ui.Layout );\nOO.mixinClass( OO.ui.HorizontalLayout, OO.ui.mixin.GroupElement );\n","/**\n * NumberInputWidgets combine a {@link OO.ui.TextInputWidget text input} (where a value\n * can be entered manually) and two {@link OO.ui.ButtonWidget button widgets}\n * (to adjust the value in increments) to allow the user to enter a number.\n *\n *     @example\n *     // Example: A NumberInputWidget.\n *     var numberInput = new OO.ui.NumberInputWidget( {\n *         label: 'NumberInputWidget',\n *         input: { value: 5 },\n *         min: 1,\n *         max: 10\n *     } );\n *     $( 'body' ).append( numberInput.$element );\n *\n * @class\n * @extends OO.ui.TextInputWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {Object} [minusButton] Configuration options to pass to the\n *  {@link OO.ui.ButtonWidget decrementing button widget}.\n * @cfg {Object} [plusButton] Configuration options to pass to the\n *  {@link OO.ui.ButtonWidget incrementing button widget}.\n * @cfg {number} [min=-Infinity] Minimum allowed value\n * @cfg {number} [max=Infinity] Maximum allowed value\n * @cfg {number|null} [step] If specified, the field only accepts values that are multiples of this.\n * @cfg {number} [buttonStep=step||1] Delta when using the buttons or up/down arrow keys.\n *  Defaults to `step` if specified, otherwise `1`.\n * @cfg {number} [pageStep=10*buttonStep] Delta when using the page-up/page-down keys.\n *  Defaults to 10 times `buttonStep`.\n * @cfg {boolean} [showButtons=true] Whether to show the plus and minus buttons.\n */\nOO.ui.NumberInputWidget = function OoUiNumberInputWidget( config ) {\n\tvar $field = $( '<div>' )\n\t\t.addClass( 'oo-ui-numberInputWidget-field' );\n\n\t// Configuration initialization\n\tconfig = $.extend( {\n\t\tmin: -Infinity,\n\t\tmax: Infinity,\n\t\tshowButtons: true\n\t}, config );\n\n\t// For backward compatibility\n\t$.extend( config, config.input );\n\tthis.input = this;\n\n\t// Parent constructor\n\tOO.ui.NumberInputWidget.parent.call( this, $.extend( config, {\n\t\ttype: 'number'\n\t} ) );\n\n\tif ( config.showButtons ) {\n\t\tthis.minusButton = new OO.ui.ButtonWidget( $.extend(\n\t\t\t{\n\t\t\t\tdisabled: this.isDisabled(),\n\t\t\t\ttabIndex: -1,\n\t\t\t\tclasses: [ 'oo-ui-numberInputWidget-minusButton' ],\n\t\t\t\ticon: 'subtract'\n\t\t\t},\n\t\t\tconfig.minusButton\n\t\t) );\n\t\tthis.minusButton.$element.attr( 'aria-hidden', 'true' );\n\t\tthis.plusButton = new OO.ui.ButtonWidget( $.extend(\n\t\t\t{\n\t\t\t\tdisabled: this.isDisabled(),\n\t\t\t\ttabIndex: -1,\n\t\t\t\tclasses: [ 'oo-ui-numberInputWidget-plusButton' ],\n\t\t\t\ticon: 'add'\n\t\t\t},\n\t\t\tconfig.plusButton\n\t\t) );\n\t\tthis.plusButton.$element.attr( 'aria-hidden', 'true' );\n\t}\n\n\t// Events\n\tthis.$input.on( {\n\t\tkeydown: this.onKeyDown.bind( this ),\n\t\t'wheel mousewheel DOMMouseScroll': this.onWheel.bind( this )\n\t} );\n\tif ( config.showButtons ) {\n\t\tthis.plusButton.connect( this, {\n\t\t\tclick: [ 'onButtonClick', +1 ]\n\t\t} );\n\t\tthis.minusButton.connect( this, {\n\t\t\tclick: [ 'onButtonClick', -1 ]\n\t\t} );\n\t}\n\n\t// Build the field\n\t$field.append( this.$input );\n\tif ( config.showButtons ) {\n\t\t$field\n\t\t\t.prepend( this.minusButton.$element )\n\t\t\t.append( this.plusButton.$element );\n\t}\n\n\t// Initialization\n\tif ( config.allowInteger || config.isInteger ) {\n\t\t// Backward compatibility\n\t\tconfig.step = 1;\n\t}\n\tthis.setRange( config.min, config.max );\n\tthis.setStep( config.buttonStep, config.pageStep, config.step );\n\t// Set the validation method after we set step and range\n\t// so that it doesn't immediately call setValidityFlag\n\tthis.setValidation( this.validateNumber.bind( this ) );\n\n\tthis.$element\n\t\t.addClass( 'oo-ui-numberInputWidget' )\n\t\t.toggleClass( 'oo-ui-numberInputWidget-buttoned', config.showButtons )\n\t\t.append( $field );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.NumberInputWidget, OO.ui.TextInputWidget );\n\n/* Methods */\n\n// Backward compatibility\nOO.ui.NumberInputWidget.prototype.setAllowInteger = function ( flag ) {\n\tthis.setStep( flag ? 1 : null );\n};\n// Backward compatibility\nOO.ui.NumberInputWidget.prototype.setIsInteger = OO.ui.NumberInputWidget.prototype.setAllowInteger;\n\n// Backward compatibility\nOO.ui.NumberInputWidget.prototype.getAllowInteger = function () {\n\treturn this.step === 1;\n};\n// Backward compatibility\nOO.ui.NumberInputWidget.prototype.getIsInteger = OO.ui.NumberInputWidget.prototype.getAllowInteger;\n\n/**\n * Set the range of allowed values\n *\n * @param {number} min Minimum allowed value\n * @param {number} max Maximum allowed value\n */\nOO.ui.NumberInputWidget.prototype.setRange = function ( min, max ) {\n\tif ( min > max ) {\n\t\tthrow new Error( 'Minimum (' + min + ') must not be greater than maximum (' + max + ')' );\n\t}\n\tthis.min = min;\n\tthis.max = max;\n\tthis.$input.attr( 'min', this.min );\n\tthis.$input.attr( 'max', this.max );\n\tthis.setValidityFlag();\n};\n\n/**\n * Get the current range\n *\n * @return {number[]} Minimum and maximum values\n */\nOO.ui.NumberInputWidget.prototype.getRange = function () {\n\treturn [ this.min, this.max ];\n};\n\n/**\n * Set the stepping deltas\n *\n * @param {number} [buttonStep=step||1] Delta when using the buttons or up/down arrow keys.\n *  Defaults to `step` if specified, otherwise `1`.\n * @param {number} [pageStep=10*buttonStep] Delta when using the page-up/page-down keys.\n *  Defaults to 10 times `buttonStep`.\n * @param {number|null} [step] If specified, the field only accepts values that are multiples of this.\n */\nOO.ui.NumberInputWidget.prototype.setStep = function ( buttonStep, pageStep, step ) {\n\tif ( buttonStep === undefined ) {\n\t\tbuttonStep = step || 1;\n\t}\n\tif ( pageStep === undefined ) {\n\t\tpageStep = 10 * buttonStep;\n\t}\n\tif ( step !== null && step <= 0 ) {\n\t\tthrow new Error( 'Step value, if given, must be positive' );\n\t}\n\tif ( buttonStep <= 0 ) {\n\t\tthrow new Error( 'Button step value must be positive' );\n\t}\n\tif ( pageStep <= 0 ) {\n\t\tthrow new Error( 'Page step value must be positive' );\n\t}\n\tthis.step = step;\n\tthis.buttonStep = buttonStep;\n\tthis.pageStep = pageStep;\n\tthis.$input.attr( 'step', this.step || 'any' );\n\tthis.setValidityFlag();\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.NumberInputWidget.prototype.setValue = function ( value ) {\n\tif ( value === '' ) {\n\t\t// Some browsers allow a value in the input even if there isn't one reported by $input.val()\n\t\t// so here we make sure an 'empty' value is actually displayed as such.\n\t\tthis.$input.val( '' );\n\t}\n\treturn OO.ui.NumberInputWidget.parent.prototype.setValue.call( this, value );\n};\n\n/**\n * Get the current stepping values\n *\n * @return {number[]} Button step, page step, and validity step\n */\nOO.ui.NumberInputWidget.prototype.getStep = function () {\n\treturn [ this.buttonStep, this.pageStep, this.step ];\n};\n\n/**\n * Get the current value of the widget as a number\n *\n * @return {number} May be NaN, or an invalid number\n */\nOO.ui.NumberInputWidget.prototype.getNumericValue = function () {\n\treturn +this.getValue();\n};\n\n/**\n * Adjust the value of the widget\n *\n * @param {number} delta Adjustment amount\n */\nOO.ui.NumberInputWidget.prototype.adjustValue = function ( delta ) {\n\tvar n, v = this.getNumericValue();\n\n\tdelta = +delta;\n\tif ( isNaN( delta ) || !isFinite( delta ) ) {\n\t\tthrow new Error( 'Delta must be a finite number' );\n\t}\n\n\tif ( isNaN( v ) ) {\n\t\tn = 0;\n\t} else {\n\t\tn = v + delta;\n\t\tn = Math.max( Math.min( n, this.max ), this.min );\n\t\tif ( this.step ) {\n\t\t\tn = Math.round( n / this.step ) * this.step;\n\t\t}\n\t}\n\n\tif ( n !== v ) {\n\t\tthis.setValue( n );\n\t}\n};\n/**\n * Validate input\n *\n * @private\n * @param {string} value Field value\n * @return {boolean}\n */\nOO.ui.NumberInputWidget.prototype.validateNumber = function ( value ) {\n\tvar n = +value;\n\tif ( value === '' ) {\n\t\treturn !this.isRequired();\n\t}\n\n\tif ( isNaN( n ) || !isFinite( n ) ) {\n\t\treturn false;\n\t}\n\n\tif ( this.step && Math.floor( n / this.step ) !== n / this.step ) {\n\t\treturn false;\n\t}\n\n\tif ( n < this.min || n > this.max ) {\n\t\treturn false;\n\t}\n\n\treturn true;\n};\n\n/**\n * Handle mouse click events.\n *\n * @private\n * @param {number} dir +1 or -1\n */\nOO.ui.NumberInputWidget.prototype.onButtonClick = function ( dir ) {\n\tthis.adjustValue( dir * this.buttonStep );\n};\n\n/**\n * Handle mouse wheel events.\n *\n * @private\n * @param {jQuery.Event} event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.NumberInputWidget.prototype.onWheel = function ( event ) {\n\tvar delta = 0;\n\n\tif ( !this.isDisabled() && this.$input.is( ':focus' ) ) {\n\t\t// Standard 'wheel' event\n\t\tif ( event.originalEvent.deltaMode !== undefined ) {\n\t\t\tthis.sawWheelEvent = true;\n\t\t}\n\t\tif ( event.originalEvent.deltaY ) {\n\t\t\tdelta = -event.originalEvent.deltaY;\n\t\t} else if ( event.originalEvent.deltaX ) {\n\t\t\tdelta = event.originalEvent.deltaX;\n\t\t}\n\n\t\t// Non-standard events\n\t\tif ( !this.sawWheelEvent ) {\n\t\t\tif ( event.originalEvent.wheelDeltaX ) {\n\t\t\t\tdelta = -event.originalEvent.wheelDeltaX;\n\t\t\t} else if ( event.originalEvent.wheelDeltaY ) {\n\t\t\t\tdelta = event.originalEvent.wheelDeltaY;\n\t\t\t} else if ( event.originalEvent.wheelDelta ) {\n\t\t\t\tdelta = event.originalEvent.wheelDelta;\n\t\t\t} else if ( event.originalEvent.detail ) {\n\t\t\t\tdelta = -event.originalEvent.detail;\n\t\t\t}\n\t\t}\n\n\t\tif ( delta ) {\n\t\t\tdelta = delta < 0 ? -1 : 1;\n\t\t\tthis.adjustValue( delta * this.buttonStep );\n\t\t}\n\n\t\treturn false;\n\t}\n};\n\n/**\n * Handle key down events.\n *\n * @private\n * @param {jQuery.Event} e Key down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.NumberInputWidget.prototype.onKeyDown = function ( e ) {\n\tif ( !this.isDisabled() ) {\n\t\tswitch ( e.which ) {\n\t\t\tcase OO.ui.Keys.UP:\n\t\t\t\tthis.adjustValue( this.buttonStep );\n\t\t\t\treturn false;\n\t\t\tcase OO.ui.Keys.DOWN:\n\t\t\t\tthis.adjustValue( -this.buttonStep );\n\t\t\t\treturn false;\n\t\t\tcase OO.ui.Keys.PAGEUP:\n\t\t\t\tthis.adjustValue( this.pageStep );\n\t\t\t\treturn false;\n\t\t\tcase OO.ui.Keys.PAGEDOWN:\n\t\t\t\tthis.adjustValue( -this.pageStep );\n\t\t\t\treturn false;\n\t\t}\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.NumberInputWidget.prototype.setDisabled = function ( disabled ) {\n\t// Parent method\n\tOO.ui.NumberInputWidget.parent.prototype.setDisabled.call( this, disabled );\n\n\tif ( this.minusButton ) {\n\t\tthis.minusButton.setDisabled( this.isDisabled() );\n\t}\n\tif ( this.plusButton ) {\n\t\tthis.plusButton.setDisabled( this.isDisabled() );\n\t}\n\n\treturn this;\n};\n","}( OO ) );\n"]}
\ No newline at end of file
+{"version":3,"sources":["../src/intro.js.txt","../src/core.js","../src/mixin.js","../src/Element.js","../src/HtmlSnippet.js","../src/Layout.js","../src/Widget.js","../src/Theme.js","../src/mixins/TabIndexedElement.js","../src/mixins/ButtonElement.js","../src/mixins/GroupElement.js","../src/mixins/LabelElement.js","../src/mixins/IconElement.js","../src/mixins/IndicatorElement.js","../src/mixins/FlaggedElement.js","../src/mixins/TitledElement.js","../src/mixins/AccessKeyedElement.js","../src/widgets/ButtonWidget.js","../src/widgets/ButtonGroupWidget.js","../src/widgets/IconWidget.js","../src/widgets/IndicatorWidget.js","../src/widgets/LabelWidget.js","../src/mixins/PendingElement.js","../src/mixins/FloatableElement.js","../src/mixins/ClippableElement.js","../src/widgets/PopupWidget.js","../src/mixins/PopupElement.js","../src/widgets/PopupButtonWidget.js","../src/mixins/GroupWidget.js","../src/mixins/ItemWidget.js","../src/widgets/OptionWidget.js","../src/widgets/SelectWidget.js","../src/widgets/DecoratedOptionWidget.js","../src/widgets/MenuOptionWidget.js","../src/widgets/MenuSectionOptionWidget.js","../src/widgets/MenuSelectWidget.js","../src/widgets/DropdownWidget.js","../src/widgets/RadioOptionWidget.js","../src/widgets/RadioSelectWidget.js","../src/widgets/MultioptionWidget.js","../src/widgets/MultiselectWidget.js","../src/widgets/CheckboxMultioptionWidget.js","../src/widgets/CheckboxMultiselectWidget.js","../src/widgets/ProgressBarWidget.js","../src/widgets/InputWidget.js","../src/widgets/HiddenInputWidget.js","../src/widgets/ButtonInputWidget.js","../src/widgets/CheckboxInputWidget.js","../src/widgets/DropdownInputWidget.js","../src/widgets/RadioInputWidget.js","../src/widgets/RadioSelectInputWidget.js","../src/widgets/CheckboxMultiselectInputWidget.js","../src/widgets/TextInputWidget.js","../src/widgets/SearchInputWidget.js","../src/widgets/MultilineTextInputWidget.js","../src/widgets/ComboBoxInputWidget.js","../src/layouts/FieldLayout.js","../src/layouts/ActionFieldLayout.js","../src/layouts/FieldsetLayout.js","../src/layouts/FormLayout.js","../src/layouts/PanelLayout.js","../src/layouts/HorizontalLayout.js","../src/widgets/NumberInputWidget.js","../src/outro.js.txt"],"names":[],"mappings":"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","file":"oojs-ui-core.js","sourcesContent":["( function ( OO ) {\n\n'use strict';\n","/**\n * Namespace for all classes, static methods and static properties.\n *\n * @class\n * @singleton\n */\nOO.ui = {};\n\nOO.ui.bind = $.proxy;\n\n/**\n * @property {Object}\n */\nOO.ui.Keys = {\n\tUNDEFINED: 0,\n\tBACKSPACE: 8,\n\tDELETE: 46,\n\tLEFT: 37,\n\tRIGHT: 39,\n\tUP: 38,\n\tDOWN: 40,\n\tENTER: 13,\n\tEND: 35,\n\tHOME: 36,\n\tTAB: 9,\n\tPAGEUP: 33,\n\tPAGEDOWN: 34,\n\tESCAPE: 27,\n\tSHIFT: 16,\n\tSPACE: 32\n};\n\n/**\n * Constants for MouseEvent.which\n *\n * @property {Object}\n */\nOO.ui.MouseButtons = {\n\tLEFT: 1,\n\tMIDDLE: 2,\n\tRIGHT: 3\n};\n\n/**\n * @property {number}\n * @private\n */\nOO.ui.elementId = 0;\n\n/**\n * Generate a unique ID for element\n *\n * @return {string} ID\n */\nOO.ui.generateElementId = function () {\n\tOO.ui.elementId++;\n\treturn 'ooui-' + OO.ui.elementId;\n};\n\n/**\n * Check if an element is focusable.\n * Inspired by :focusable in jQueryUI v1.11.4 - 2015-04-14\n *\n * @param {jQuery} $element Element to test\n * @return {boolean} Element is focusable\n */\nOO.ui.isFocusableElement = function ( $element ) {\n\tvar nodeName,\n\t\telement = $element[ 0 ];\n\n\t// Anything disabled is not focusable\n\tif ( element.disabled ) {\n\t\treturn false;\n\t}\n\n\t// Check if the element is visible\n\tif ( !(\n\t\t// This is quicker than calling $element.is( ':visible' )\n\t\t$.expr.pseudos.visible( element ) &&\n\t\t// Check that all parents are visible\n\t\t!$element.parents().addBack().filter( function () {\n\t\t\treturn $.css( this, 'visibility' ) === 'hidden';\n\t\t} ).length\n\t) ) {\n\t\treturn false;\n\t}\n\n\t// Check if the element is ContentEditable, which is the string 'true'\n\tif ( element.contentEditable === 'true' ) {\n\t\treturn true;\n\t}\n\n\t// Anything with a non-negative numeric tabIndex is focusable.\n\t// Use .prop to avoid browser bugs\n\tif ( $element.prop( 'tabIndex' ) >= 0 ) {\n\t\treturn true;\n\t}\n\n\t// Some element types are naturally focusable\n\t// (indexOf is much faster than regex in Chrome and about the\n\t// same in FF: https://jsperf.com/regex-vs-indexof-array2)\n\tnodeName = element.nodeName.toLowerCase();\n\tif ( [ 'input', 'select', 'textarea', 'button', 'object' ].indexOf( nodeName ) !== -1 ) {\n\t\treturn true;\n\t}\n\n\t// Links and areas are focusable if they have an href\n\tif ( ( nodeName === 'a' || nodeName === 'area' ) && $element.attr( 'href' ) !== undefined ) {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n/**\n * Find a focusable child\n *\n * @param {jQuery} $container Container to search in\n * @param {boolean} [backwards] Search backwards\n * @return {jQuery} Focusable child, or an empty jQuery object if none found\n */\nOO.ui.findFocusable = function ( $container, backwards ) {\n\tvar $focusable = $( [] ),\n\t\t// $focusableCandidates is a superset of things that\n\t\t// could get matched by isFocusableElement\n\t\t$focusableCandidates = $container\n\t\t\t.find( 'input, select, textarea, button, object, a, area, [contenteditable], [tabindex]' );\n\n\tif ( backwards ) {\n\t\t$focusableCandidates = Array.prototype.reverse.call( $focusableCandidates );\n\t}\n\n\t$focusableCandidates.each( function () {\n\t\tvar $this = $( this );\n\t\tif ( OO.ui.isFocusableElement( $this ) ) {\n\t\t\t$focusable = $this;\n\t\t\treturn false;\n\t\t}\n\t} );\n\treturn $focusable;\n};\n\n/**\n * Get the user's language and any fallback languages.\n *\n * These language codes are used to localize user interface elements in the user's language.\n *\n * In environments that provide a localization system, this function should be overridden to\n * return the user's language(s). The default implementation returns English (en) only.\n *\n * @return {string[]} Language codes, in descending order of priority\n */\nOO.ui.getUserLanguages = function () {\n\treturn [ 'en' ];\n};\n\n/**\n * Get a value in an object keyed by language code.\n *\n * @param {Object.<string,Mixed>} obj Object keyed by language code\n * @param {string|null} [lang] Language code, if omitted or null defaults to any user language\n * @param {string} [fallback] Fallback code, used if no matching language can be found\n * @return {Mixed} Local value\n */\nOO.ui.getLocalValue = function ( obj, lang, fallback ) {\n\tvar i, len, langs;\n\n\t// Requested language\n\tif ( obj[ lang ] ) {\n\t\treturn obj[ lang ];\n\t}\n\t// Known user language\n\tlangs = OO.ui.getUserLanguages();\n\tfor ( i = 0, len = langs.length; i < len; i++ ) {\n\t\tlang = langs[ i ];\n\t\tif ( obj[ lang ] ) {\n\t\t\treturn obj[ lang ];\n\t\t}\n\t}\n\t// Fallback language\n\tif ( obj[ fallback ] ) {\n\t\treturn obj[ fallback ];\n\t}\n\t// First existing language\n\tfor ( lang in obj ) {\n\t\treturn obj[ lang ];\n\t}\n\n\treturn undefined;\n};\n\n/**\n * Check if a node is contained within another node\n *\n * Similar to jQuery#contains except a list of containers can be supplied\n * and a boolean argument allows you to include the container in the match list\n *\n * @param {HTMLElement|HTMLElement[]} containers Container node(s) to search in\n * @param {HTMLElement} contained Node to find\n * @param {boolean} [matchContainers] Include the container(s) in the list of nodes to match, otherwise only match descendants\n * @return {boolean} The node is in the list of target nodes\n */\nOO.ui.contains = function ( containers, contained, matchContainers ) {\n\tvar i;\n\tif ( !Array.isArray( containers ) ) {\n\t\tcontainers = [ containers ];\n\t}\n\tfor ( i = containers.length - 1; i >= 0; i-- ) {\n\t\tif ( ( matchContainers && contained === containers[ i ] ) || $.contains( containers[ i ], contained ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/**\n * Return a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing.\n *\n * Ported from: http://underscorejs.org/underscore.js\n *\n * @param {Function} func Function to debounce\n * @param {number} [wait=0] Wait period in milliseconds\n * @param {boolean} [immediate] Trigger on leading edge\n * @return {Function} Debounced function\n */\nOO.ui.debounce = function ( func, wait, immediate ) {\n\tvar timeout;\n\treturn function () {\n\t\tvar context = this,\n\t\t\targs = arguments,\n\t\t\tlater = function () {\n\t\t\t\ttimeout = null;\n\t\t\t\tif ( !immediate ) {\n\t\t\t\t\tfunc.apply( context, args );\n\t\t\t\t}\n\t\t\t};\n\t\tif ( immediate && !timeout ) {\n\t\t\tfunc.apply( context, args );\n\t\t}\n\t\tif ( !timeout || wait ) {\n\t\t\tclearTimeout( timeout );\n\t\t\ttimeout = setTimeout( later, wait );\n\t\t}\n\t};\n};\n\n/**\n * Puts a console warning with provided message.\n *\n * @param {string} message Message\n */\nOO.ui.warnDeprecation = function ( message ) {\n\tif ( OO.getProp( window, 'console', 'warn' ) !== undefined ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn( message );\n\t}\n};\n\n/**\n * Returns a function, that, when invoked, will only be triggered at most once\n * during a given window of time. If called again during that window, it will\n * wait until the window ends and then trigger itself again.\n *\n * As it's not knowable to the caller whether the function will actually run\n * when the wrapper is called, return values from the function are entirely\n * discarded.\n *\n * @param {Function} func Function to throttle\n * @param {number} wait Throttle window length, in milliseconds\n * @return {Function} Throttled function\n */\nOO.ui.throttle = function ( func, wait ) {\n\tvar context, args, timeout,\n\t\tprevious = 0,\n\t\trun = function () {\n\t\t\ttimeout = null;\n\t\t\tprevious = OO.ui.now();\n\t\t\tfunc.apply( context, args );\n\t\t};\n\treturn function () {\n\t\t// Check how long it's been since the last time the function was\n\t\t// called, and whether it's more or less than the requested throttle\n\t\t// period. If it's less, run the function immediately. If it's more,\n\t\t// set a timeout for the remaining time -- but don't replace an\n\t\t// existing timeout, since that'd indefinitely prolong the wait.\n\t\tvar remaining = wait - ( OO.ui.now() - previous );\n\t\tcontext = this;\n\t\targs = arguments;\n\t\tif ( remaining <= 0 ) {\n\t\t\t// Note: unless wait was ridiculously large, this means we'll\n\t\t\t// automatically run the first time the function was called in a\n\t\t\t// given period. (If you provide a wait period larger than the\n\t\t\t// current Unix timestamp, you *deserve* unexpected behavior.)\n\t\t\tclearTimeout( timeout );\n\t\t\trun();\n\t\t} else if ( !timeout ) {\n\t\t\ttimeout = setTimeout( run, remaining );\n\t\t}\n\t};\n};\n\n/**\n * A (possibly faster) way to get the current timestamp as an integer\n *\n * @return {number} Current timestamp, in milliseconds since the Unix epoch\n */\nOO.ui.now = Date.now || function () {\n\treturn new Date().getTime();\n};\n\n/**\n * Reconstitute a JavaScript object corresponding to a widget created by\n * the PHP implementation.\n *\n * This is an alias for `OO.ui.Element.static.infuse()`.\n *\n * @param {string|HTMLElement|jQuery} idOrNode\n *   A DOM id (if a string) or node for the widget to infuse.\n * @param {Object} [config] Configuration options\n * @return {OO.ui.Element}\n *   The `OO.ui.Element` corresponding to this (infusable) document node.\n */\nOO.ui.infuse = function ( idOrNode, config ) {\n\treturn OO.ui.Element.static.infuse( idOrNode, config );\n};\n\n( function () {\n\t/**\n\t * Message store for the default implementation of OO.ui.msg\n\t *\n\t * Environments that provide a localization system should not use this, but should override\n\t * OO.ui.msg altogether.\n\t *\n\t * @private\n\t */\n\tvar messages = {\n\t\t// Tool tip for a button that moves items in a list down one place\n\t\t'ooui-outline-control-move-down': 'Move item down',\n\t\t// Tool tip for a button that moves items in a list up one place\n\t\t'ooui-outline-control-move-up': 'Move item up',\n\t\t// Tool tip for a button that removes items from a list\n\t\t'ooui-outline-control-remove': 'Remove item',\n\t\t// Label for the toolbar group that contains a list of all other available tools\n\t\t'ooui-toolbar-more': 'More',\n\t\t// Label for the fake tool that expands the full list of tools in a toolbar group\n\t\t'ooui-toolgroup-expand': 'More',\n\t\t// Label for the fake tool that collapses the full list of tools in a toolbar group\n\t\t'ooui-toolgroup-collapse': 'Fewer',\n\t\t// Default label for the tooltip for the button that removes a tag item\n\t\t'ooui-item-remove': 'Remove',\n\t\t// Default label for the accept button of a confirmation dialog\n\t\t'ooui-dialog-message-accept': 'OK',\n\t\t// Default label for the reject button of a confirmation dialog\n\t\t'ooui-dialog-message-reject': 'Cancel',\n\t\t// Title for process dialog error description\n\t\t'ooui-dialog-process-error': 'Something went wrong',\n\t\t// Label for process dialog dismiss error button, visible when describing errors\n\t\t'ooui-dialog-process-dismiss': 'Dismiss',\n\t\t// Label for process dialog retry action button, visible when describing only recoverable errors\n\t\t'ooui-dialog-process-retry': 'Try again',\n\t\t// Label for process dialog retry action button, visible when describing only warnings\n\t\t'ooui-dialog-process-continue': 'Continue',\n\t\t// Label for button in combobox input that triggers its dropdown\n\t\t'ooui-combobox-button-label': 'Dropdown for combobox',\n\t\t// Label for the file selection widget's select file button\n\t\t'ooui-selectfile-button-select': 'Select a file',\n\t\t// Label for the file selection widget if file selection is not supported\n\t\t'ooui-selectfile-not-supported': 'File selection is not supported',\n\t\t// Label for the file selection widget when no file is currently selected\n\t\t'ooui-selectfile-placeholder': 'No file is selected',\n\t\t// Label for the file selection widget's drop target\n\t\t'ooui-selectfile-dragdrop-placeholder': 'Drop file here',\n\t\t// Label for the help icon attached to a form field\n\t\t'ooui-field-help': 'Help'\n\t};\n\n\t/**\n\t * Get a localized message.\n\t *\n\t * After the message key, message parameters may optionally be passed. In the default implementation,\n\t * any occurrences of $1 are replaced with the first parameter, $2 with the second parameter, etc.\n\t * Alternative implementations of OO.ui.msg may use any substitution system they like, as long as\n\t * they support unnamed, ordered message parameters.\n\t *\n\t * In environments that provide a localization system, this function should be overridden to\n\t * return the message translated in the user's language. The default implementation always returns\n\t * English messages. An example of doing this with [jQuery.i18n](https://github.com/wikimedia/jquery.i18n)\n\t * follows.\n\t *\n\t *     @example\n\t *     var i, iLen, button,\n\t *         messagePath = 'oojs-ui/dist/i18n/',\n\t *         languages = [ $.i18n().locale, 'ur', 'en' ],\n\t *         languageMap = {};\n\t *\n\t *     for ( i = 0, iLen = languages.length; i < iLen; i++ ) {\n\t *         languageMap[ languages[ i ] ] = messagePath + languages[ i ].toLowerCase() + '.json';\n\t *     }\n\t *\n\t *     $.i18n().load( languageMap ).done( function() {\n\t *         // Replace the built-in `msg` only once we've loaded the internationalization.\n\t *         // OOUI uses `OO.ui.deferMsg` for all initially-loaded messages. So long as\n\t *         // you put off creating any widgets until this promise is complete, no English\n\t *         // will be displayed.\n\t *         OO.ui.msg = $.i18n;\n\t *\n\t *         // A button displaying \"OK\" in the default locale\n\t *         button = new OO.ui.ButtonWidget( {\n\t *             label: OO.ui.msg( 'ooui-dialog-message-accept' ),\n\t *             icon: 'check'\n\t *         } );\n\t *         $( document.body ).append( button.$element );\n\t *\n\t *         // A button displaying \"OK\" in Urdu\n\t *         $.i18n().locale = 'ur';\n\t *         button = new OO.ui.ButtonWidget( {\n\t *             label: OO.ui.msg( 'ooui-dialog-message-accept' ),\n\t *             icon: 'check'\n\t *         } );\n\t *         $( document.body ).append( button.$element );\n\t *     } );\n\t *\n\t * @param {string} key Message key\n\t * @param {...Mixed} [params] Message parameters\n\t * @return {string} Translated message with parameters substituted\n\t */\n\tOO.ui.msg = function ( key ) {\n\t\tvar message = messages[ key ],\n\t\t\tparams = Array.prototype.slice.call( arguments, 1 );\n\t\tif ( typeof message === 'string' ) {\n\t\t\t// Perform $1 substitution\n\t\t\tmessage = message.replace( /\\$(\\d+)/g, function ( unused, n ) {\n\t\t\t\tvar i = parseInt( n, 10 );\n\t\t\t\treturn params[ i - 1 ] !== undefined ? params[ i - 1 ] : '$' + n;\n\t\t\t} );\n\t\t} else {\n\t\t\t// Return placeholder if message not found\n\t\t\tmessage = '[' + key + ']';\n\t\t}\n\t\treturn message;\n\t};\n}() );\n\n/**\n * Package a message and arguments for deferred resolution.\n *\n * Use this when you are statically specifying a message and the message may not yet be present.\n *\n * @param {string} key Message key\n * @param {...Mixed} [params] Message parameters\n * @return {Function} Function that returns the resolved message when executed\n */\nOO.ui.deferMsg = function () {\n\tvar args = arguments;\n\treturn function () {\n\t\treturn OO.ui.msg.apply( OO.ui, args );\n\t};\n};\n\n/**\n * Resolve a message.\n *\n * If the message is a function it will be executed, otherwise it will pass through directly.\n *\n * @param {Function|string} msg Deferred message, or message text\n * @return {string} Resolved message\n */\nOO.ui.resolveMsg = function ( msg ) {\n\tif ( typeof msg === 'function' ) {\n\t\treturn msg();\n\t}\n\treturn msg;\n};\n\n/**\n * @param {string} url\n * @return {boolean}\n */\nOO.ui.isSafeUrl = function ( url ) {\n\t// Keep this function in sync with php/Tag.php\n\tvar i, protocolWhitelist;\n\n\tfunction stringStartsWith( haystack, needle ) {\n\t\treturn haystack.substr( 0, needle.length ) === needle;\n\t}\n\n\tprotocolWhitelist = [\n\t\t'bitcoin', 'ftp', 'ftps', 'geo', 'git', 'gopher', 'http', 'https', 'irc', 'ircs',\n\t\t'magnet', 'mailto', 'mms', 'news', 'nntp', 'redis', 'sftp', 'sip', 'sips', 'sms', 'ssh',\n\t\t'svn', 'tel', 'telnet', 'urn', 'worldwind', 'xmpp'\n\t];\n\n\tif ( url === '' ) {\n\t\treturn true;\n\t}\n\n\tfor ( i = 0; i < protocolWhitelist.length; i++ ) {\n\t\tif ( stringStartsWith( url, protocolWhitelist[ i ] + ':' ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\t// This matches '//' too\n\tif ( stringStartsWith( url, '/' ) || stringStartsWith( url, './' ) ) {\n\t\treturn true;\n\t}\n\tif ( stringStartsWith( url, '?' ) || stringStartsWith( url, '#' ) ) {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n/**\n * Check if the user has a 'mobile' device.\n *\n * For our purposes this means the user is primarily using an\n * on-screen keyboard, touch input instead of a mouse and may\n * have a physically small display.\n *\n * It is left up to implementors to decide how to compute this\n * so the default implementation always returns false.\n *\n * @return {boolean} User is on a mobile device\n */\nOO.ui.isMobile = function () {\n\treturn false;\n};\n\n/**\n * Get the additional spacing that should be taken into account when displaying elements that are\n * clipped to the viewport, e.g. dropdown menus and popups. This is meant to be overridden to avoid\n * such menus overlapping any fixed headers/toolbars/navigation used by the site.\n *\n * @return {Object} Object with the properties 'top', 'right', 'bottom', 'left', each representing\n *     the extra spacing from that edge of viewport (in pixels)\n */\nOO.ui.getViewportSpacing = function () {\n\treturn {\n\t\ttop: 0,\n\t\tright: 0,\n\t\tbottom: 0,\n\t\tleft: 0\n\t};\n};\n\n/**\n * Get the default overlay, which is used by various widgets when they are passed `$overlay: true`.\n * See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n *\n * @return {jQuery} Default overlay node\n */\nOO.ui.getDefaultOverlay = function () {\n\tif ( !OO.ui.$defaultOverlay ) {\n\t\tOO.ui.$defaultOverlay = $( '<div>' ).addClass( 'oo-ui-defaultOverlay' );\n\t\t$( document.body ).append( OO.ui.$defaultOverlay );\n\t}\n\treturn OO.ui.$defaultOverlay;\n};\n","/*!\n * Mixin namespace.\n */\n\n/**\n * Namespace for OOUI mixins.\n *\n * Mixins are named according to the type of object they are intended to\n * be mixed in to.  For example, OO.ui.mixin.GroupElement is intended to be\n * mixed in to an instance of OO.ui.Element, and OO.ui.mixin.GroupWidget\n * is intended to be mixed in to an instance of OO.ui.Widget.\n *\n * @class\n * @singleton\n */\nOO.ui.mixin = {};\n","/**\n * Each Element represents a rendering in the DOM—a button or an icon, for example, or anything\n * that is visible to a user. Unlike {@link OO.ui.Widget widgets}, plain elements usually do not have events\n * connected to them and can't be interacted with.\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string[]} [classes] The names of the CSS classes to apply to the element. CSS styles are added\n *  to the top level (e.g., the outermost div) of the element. See the [OOUI documentation on MediaWiki][2]\n *  for an example.\n *  [2]: https://www.mediawiki.org/wiki/OOUI/Widgets/Buttons_and_Switches#cssExample\n * @cfg {string} [id] The HTML id attribute used in the rendered tag.\n * @cfg {string} [text] Text to insert\n * @cfg {Array} [content] An array of content elements to append (after #text).\n *  Strings will be html-escaped; use an OO.ui.HtmlSnippet to append raw HTML.\n *  Instances of OO.ui.Element will have their $element appended.\n * @cfg {jQuery} [$content] Content elements to append (after #text).\n * @cfg {jQuery} [$element] Wrapper element. Defaults to a new element with #getTagName.\n * @cfg {Mixed} [data] Custom data of any type or combination of types (e.g., string, number, array, object).\n *  Data can also be specified with the #setData method.\n */\nOO.ui.Element = function OoUiElement( config ) {\n\tif ( OO.ui.isDemo ) {\n\t\tthis.initialConfig = config;\n\t}\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$ = $;\n\tthis.elementId = null;\n\tthis.visible = true;\n\tthis.data = config.data;\n\tthis.$element = config.$element ||\n\t\t$( document.createElement( this.getTagName() ) );\n\tthis.elementGroup = null;\n\n\t// Initialization\n\tif ( Array.isArray( config.classes ) ) {\n\t\tthis.$element.addClass( config.classes );\n\t}\n\tif ( config.id ) {\n\t\tthis.setElementId( config.id );\n\t}\n\tif ( config.text ) {\n\t\tthis.$element.text( config.text );\n\t}\n\tif ( config.content ) {\n\t\t// The `content` property treats plain strings as text; use an\n\t\t// HtmlSnippet to append HTML content.  `OO.ui.Element`s get their\n\t\t// appropriate $element appended.\n\t\tthis.$element.append( config.content.map( function ( v ) {\n\t\t\tif ( typeof v === 'string' ) {\n\t\t\t\t// Escape string so it is properly represented in HTML.\n\t\t\t\treturn document.createTextNode( v );\n\t\t\t} else if ( v instanceof OO.ui.HtmlSnippet ) {\n\t\t\t\t// Bypass escaping.\n\t\t\t\treturn v.toString();\n\t\t\t} else if ( v instanceof OO.ui.Element ) {\n\t\t\t\treturn v.$element;\n\t\t\t}\n\t\t\treturn v;\n\t\t} ) );\n\t}\n\tif ( config.$content ) {\n\t\t// The `$content` property treats plain strings as HTML.\n\t\tthis.$element.append( config.$content );\n\t}\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.Element );\n\n/* Static Properties */\n\n/**\n * The name of the HTML tag used by the element.\n *\n * The static value may be ignored if the #getTagName method is overridden.\n *\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.Element.static.tagName = 'div';\n\n/* Static Methods */\n\n/**\n * Reconstitute a JavaScript object corresponding to a widget created\n * by the PHP implementation.\n *\n * @param {string|HTMLElement|jQuery} idOrNode\n *   A DOM id (if a string) or node for the widget to infuse.\n * @param {Object} [config] Configuration options\n * @return {OO.ui.Element}\n *   The `OO.ui.Element` corresponding to this (infusable) document node.\n *   For `Tag` objects emitted on the HTML side (used occasionally for content)\n *   the value returned is a newly-created Element wrapping around the existing\n *   DOM node.\n */\nOO.ui.Element.static.infuse = function ( idOrNode, config ) {\n\tvar obj = OO.ui.Element.static.unsafeInfuse( idOrNode, config, false );\n\n\tif ( typeof idOrNode === 'string' ) {\n\t\t// IDs deprecated since 0.29.7\n\t\tOO.ui.warnDeprecation(\n\t\t\t'Passing a string ID to infuse is deprecated. Use an HTMLElement or jQuery collection instead.'\n\t\t);\n\t}\n\t// Verify that the type matches up.\n\t// FIXME: uncomment after T89721 is fixed, see T90929.\n\t/*\n\tif ( !( obj instanceof this['class'] ) ) {\n\t\tthrow new Error( 'Infusion type mismatch!' );\n\t}\n\t*/\n\treturn obj;\n};\n\n/**\n * Implementation helper for `infuse`; skips the type check and has an\n * extra property so that only the top-level invocation touches the DOM.\n *\n * @private\n * @param {string|HTMLElement|jQuery} idOrNode\n * @param {Object} [config] Configuration options\n * @param {jQuery.Promise} [domPromise] A promise that will be resolved\n *     when the top-level widget of this infusion is inserted into DOM,\n *     replacing the original node; only used internally.\n * @return {OO.ui.Element}\n */\nOO.ui.Element.static.unsafeInfuse = function ( idOrNode, config, domPromise ) {\n\t// look for a cached result of a previous infusion.\n\tvar id, $elem, error, data, cls, parts, parent, obj, top, state, infusedChildren;\n\tif ( typeof idOrNode === 'string' ) {\n\t\tid = idOrNode;\n\t\t$elem = $( document.getElementById( id ) );\n\t} else {\n\t\t$elem = $( idOrNode );\n\t\tid = $elem.attr( 'id' );\n\t}\n\tif ( !$elem.length ) {\n\t\tif ( typeof idOrNode === 'string' ) {\n\t\t\terror = 'Widget not found: ' + idOrNode;\n\t\t} else if ( idOrNode && idOrNode.selector ) {\n\t\t\terror = 'Widget not found: ' + idOrNode.selector;\n\t\t} else {\n\t\t\terror = 'Widget not found';\n\t\t}\n\t\tthrow new Error( error );\n\t}\n\tif ( $elem[ 0 ].oouiInfused ) {\n\t\t$elem = $elem[ 0 ].oouiInfused;\n\t}\n\tdata = $elem.data( 'ooui-infused' );\n\tif ( data ) {\n\t\t// cached!\n\t\tif ( data === true ) {\n\t\t\tthrow new Error( 'Circular dependency! ' + id );\n\t\t}\n\t\tif ( domPromise ) {\n\t\t\t// pick up dynamic state, like focus, value of form inputs, scroll position, etc.\n\t\t\tstate = data.constructor.static.gatherPreInfuseState( $elem, data );\n\t\t\t// restore dynamic state after the new element is re-inserted into DOM under infused parent\n\t\t\tdomPromise.done( data.restorePreInfuseState.bind( data, state ) );\n\t\t\tinfusedChildren = $elem.data( 'ooui-infused-children' );\n\t\t\tif ( infusedChildren && infusedChildren.length ) {\n\t\t\t\tinfusedChildren.forEach( function ( data ) {\n\t\t\t\t\tvar state = data.constructor.static.gatherPreInfuseState( $elem, data );\n\t\t\t\t\tdomPromise.done( data.restorePreInfuseState.bind( data, state ) );\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t\treturn data;\n\t}\n\tdata = $elem.attr( 'data-ooui' );\n\tif ( !data ) {\n\t\tthrow new Error( 'No infusion data found: ' + id );\n\t}\n\ttry {\n\t\tdata = JSON.parse( data );\n\t} catch ( _ ) {\n\t\tdata = null;\n\t}\n\tif ( !( data && data._ ) ) {\n\t\tthrow new Error( 'No valid infusion data found: ' + id );\n\t}\n\tif ( data._ === 'Tag' ) {\n\t\t// Special case: this is a raw Tag; wrap existing node, don't rebuild.\n\t\treturn new OO.ui.Element( $.extend( {}, config, { $element: $elem } ) );\n\t}\n\tparts = data._.split( '.' );\n\tcls = OO.getProp.apply( OO, [ window ].concat( parts ) );\n\tif ( cls === undefined ) {\n\t\tthrow new Error( 'Unknown widget type: id: ' + id + ', class: ' + data._ );\n\t}\n\n\t// Verify that we're creating an OO.ui.Element instance\n\tparent = cls.parent;\n\n\twhile ( parent !== undefined ) {\n\t\tif ( parent === OO.ui.Element ) {\n\t\t\t// Safe\n\t\t\tbreak;\n\t\t}\n\n\t\tparent = parent.parent;\n\t}\n\n\tif ( parent !== OO.ui.Element ) {\n\t\tthrow new Error( 'Unknown widget type: id: ' + id + ', class: ' + data._ );\n\t}\n\n\tif ( !domPromise ) {\n\t\ttop = $.Deferred();\n\t\tdomPromise = top.promise();\n\t}\n\t$elem.data( 'ooui-infused', true ); // prevent loops\n\tdata.id = id; // implicit\n\tinfusedChildren = [];\n\tdata = OO.copy( data, null, function deserialize( value ) {\n\t\tvar infused;\n\t\tif ( OO.isPlainObject( value ) ) {\n\t\t\tif ( value.tag ) {\n\t\t\t\tinfused = OO.ui.Element.static.unsafeInfuse( value.tag, config, domPromise );\n\t\t\t\tinfusedChildren.push( infused );\n\t\t\t\t// Flatten the structure\n\t\t\t\tinfusedChildren.push.apply( infusedChildren, infused.$element.data( 'ooui-infused-children' ) || [] );\n\t\t\t\tinfused.$element.removeData( 'ooui-infused-children' );\n\t\t\t\treturn infused;\n\t\t\t}\n\t\t\tif ( value.html !== undefined ) {\n\t\t\t\treturn new OO.ui.HtmlSnippet( value.html );\n\t\t\t}\n\t\t}\n\t} );\n\t// allow widgets to reuse parts of the DOM\n\tdata = cls.static.reusePreInfuseDOM( $elem[ 0 ], data );\n\t// pick up dynamic state, like focus, value of form inputs, scroll position, etc.\n\tstate = cls.static.gatherPreInfuseState( $elem[ 0 ], data );\n\t// rebuild widget\n\t// eslint-disable-next-line new-cap\n\tobj = new cls( $.extend( {}, config, data ) );\n\t// If anyone is holding a reference to the old DOM element,\n\t// let's allow them to OO.ui.infuse() it and do what they expect, see T105828.\n\t// Do not use jQuery.data(), as using it on detached nodes leaks memory in 1.x line by design.\n\t$elem[ 0 ].oouiInfused = obj.$element;\n\t// now replace old DOM with this new DOM.\n\tif ( top ) {\n\t\t// An efficient constructor might be able to reuse the entire DOM tree of the original element,\n\t\t// so only mutate the DOM if we need to.\n\t\tif ( $elem[ 0 ] !== obj.$element[ 0 ] ) {\n\t\t\t$elem.replaceWith( obj.$element );\n\t\t}\n\t\ttop.resolve();\n\t}\n\tobj.$element.data( 'ooui-infused', obj );\n\tobj.$element.data( 'ooui-infused-children', infusedChildren );\n\t// set the 'data-ooui' attribute so we can identify infused widgets\n\tobj.$element.attr( 'data-ooui', '' );\n\t// restore dynamic state after the new element is inserted into DOM\n\tdomPromise.done( obj.restorePreInfuseState.bind( obj, state ) );\n\treturn obj;\n};\n\n/**\n * Pick out parts of `node`'s DOM to be reused when infusing a widget.\n *\n * This method **must not** make any changes to the DOM, only find interesting pieces and add them\n * to `config` (which should then be returned). Actual DOM juggling should then be done by the\n * constructor, which will be given the enhanced config.\n *\n * @protected\n * @param {HTMLElement} node\n * @param {Object} config\n * @return {Object}\n */\nOO.ui.Element.static.reusePreInfuseDOM = function ( node, config ) {\n\treturn config;\n};\n\n/**\n * Gather the dynamic state (focus, value of form inputs, scroll position, etc.) of an HTML DOM node\n * (and its children) that represent an Element of the same class and the given configuration,\n * generated by the PHP implementation.\n *\n * This method is called just before `node` is detached from the DOM. The return value of this\n * function will be passed to #restorePreInfuseState after the newly created widget's #$element\n * is inserted into DOM to replace `node`.\n *\n * @protected\n * @param {HTMLElement} node\n * @param {Object} config\n * @return {Object}\n */\nOO.ui.Element.static.gatherPreInfuseState = function () {\n\treturn {};\n};\n\n/**\n * Get a jQuery function within a specific document.\n *\n * @static\n * @param {jQuery|HTMLElement|HTMLDocument|Window} context Context to bind the function to\n * @param {jQuery} [$iframe] HTML iframe element that contains the document, omit if document is\n *   not in an iframe\n * @return {Function} Bound jQuery function\n */\nOO.ui.Element.static.getJQuery = function ( context, $iframe ) {\n\tfunction wrapper( selector ) {\n\t\treturn $( selector, wrapper.context );\n\t}\n\n\twrapper.context = this.getDocument( context );\n\n\tif ( $iframe ) {\n\t\twrapper.$iframe = $iframe;\n\t}\n\n\treturn wrapper;\n};\n\n/**\n * Get the document of an element.\n *\n * @static\n * @param {jQuery|HTMLElement|HTMLDocument|Window} obj Object to get the document for\n * @return {HTMLDocument|null} Document object\n */\nOO.ui.Element.static.getDocument = function ( obj ) {\n\t// jQuery - selections created \"offscreen\" won't have a context, so .context isn't reliable\n\treturn ( obj[ 0 ] && obj[ 0 ].ownerDocument ) ||\n\t\t// Empty jQuery selections might have a context\n\t\tobj.context ||\n\t\t// HTMLElement\n\t\tobj.ownerDocument ||\n\t\t// Window\n\t\tobj.document ||\n\t\t// HTMLDocument\n\t\t( obj.nodeType === Node.DOCUMENT_NODE && obj ) ||\n\t\tnull;\n};\n\n/**\n * Get the window of an element or document.\n *\n * @static\n * @param {jQuery|HTMLElement|HTMLDocument|Window} obj Context to get the window for\n * @return {Window} Window object\n */\nOO.ui.Element.static.getWindow = function ( obj ) {\n\tvar doc = this.getDocument( obj );\n\treturn doc.defaultView;\n};\n\n/**\n * Get the direction of an element or document.\n *\n * @static\n * @param {jQuery|HTMLElement|HTMLDocument|Window} obj Context to get the direction for\n * @return {string} Text direction, either 'ltr' or 'rtl'\n */\nOO.ui.Element.static.getDir = function ( obj ) {\n\tvar isDoc, isWin;\n\n\tif ( obj instanceof $ ) {\n\t\tobj = obj[ 0 ];\n\t}\n\tisDoc = obj.nodeType === Node.DOCUMENT_NODE;\n\tisWin = obj.document !== undefined;\n\tif ( isDoc || isWin ) {\n\t\tif ( isWin ) {\n\t\t\tobj = obj.document;\n\t\t}\n\t\tobj = obj.body;\n\t}\n\treturn $( obj ).css( 'direction' );\n};\n\n/**\n * Get the offset between two frames.\n *\n * TODO: Make this function not use recursion.\n *\n * @static\n * @param {Window} from Window of the child frame\n * @param {Window} [to=window] Window of the parent frame\n * @param {Object} [offset] Offset to start with, used internally\n * @return {Object} Offset object, containing left and top properties\n */\nOO.ui.Element.static.getFrameOffset = function ( from, to, offset ) {\n\tvar i, len, frames, frame, rect;\n\n\tif ( !to ) {\n\t\tto = window;\n\t}\n\tif ( !offset ) {\n\t\toffset = { top: 0, left: 0 };\n\t}\n\tif ( from.parent === from ) {\n\t\treturn offset;\n\t}\n\n\t// Get iframe element\n\tframes = from.parent.document.getElementsByTagName( 'iframe' );\n\tfor ( i = 0, len = frames.length; i < len; i++ ) {\n\t\tif ( frames[ i ].contentWindow === from ) {\n\t\t\tframe = frames[ i ];\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Recursively accumulate offset values\n\tif ( frame ) {\n\t\trect = frame.getBoundingClientRect();\n\t\toffset.left += rect.left;\n\t\toffset.top += rect.top;\n\t\tif ( from !== to ) {\n\t\t\tthis.getFrameOffset( from.parent, offset );\n\t\t}\n\t}\n\treturn offset;\n};\n\n/**\n * Get the offset between two elements.\n *\n * The two elements may be in a different frame, but in that case the frame $element is in must\n * be contained in the frame $anchor is in.\n *\n * @static\n * @param {jQuery} $element Element whose position to get\n * @param {jQuery} $anchor Element to get $element's position relative to\n * @return {Object} Translated position coordinates, containing top and left properties\n */\nOO.ui.Element.static.getRelativePosition = function ( $element, $anchor ) {\n\tvar iframe, iframePos,\n\t\tpos = $element.offset(),\n\t\tanchorPos = $anchor.offset(),\n\t\telementDocument = this.getDocument( $element ),\n\t\tanchorDocument = this.getDocument( $anchor );\n\n\t// If $element isn't in the same document as $anchor, traverse up\n\twhile ( elementDocument !== anchorDocument ) {\n\t\tiframe = elementDocument.defaultView.frameElement;\n\t\tif ( !iframe ) {\n\t\t\tthrow new Error( '$element frame is not contained in $anchor frame' );\n\t\t}\n\t\tiframePos = $( iframe ).offset();\n\t\tpos.left += iframePos.left;\n\t\tpos.top += iframePos.top;\n\t\telementDocument = iframe.ownerDocument;\n\t}\n\tpos.left -= anchorPos.left;\n\tpos.top -= anchorPos.top;\n\treturn pos;\n};\n\n/**\n * Get element border sizes.\n *\n * @static\n * @param {HTMLElement} el Element to measure\n * @return {Object} Dimensions object with `top`, `left`, `bottom` and `right` properties\n */\nOO.ui.Element.static.getBorders = function ( el ) {\n\tvar doc = el.ownerDocument,\n\t\twin = doc.defaultView,\n\t\tstyle = win.getComputedStyle( el, null ),\n\t\t$el = $( el ),\n\t\ttop = parseFloat( style ? style.borderTopWidth : $el.css( 'borderTopWidth' ) ) || 0,\n\t\tleft = parseFloat( style ? style.borderLeftWidth : $el.css( 'borderLeftWidth' ) ) || 0,\n\t\tbottom = parseFloat( style ? style.borderBottomWidth : $el.css( 'borderBottomWidth' ) ) || 0,\n\t\tright = parseFloat( style ? style.borderRightWidth : $el.css( 'borderRightWidth' ) ) || 0;\n\n\treturn {\n\t\ttop: top,\n\t\tleft: left,\n\t\tbottom: bottom,\n\t\tright: right\n\t};\n};\n\n/**\n * Get dimensions of an element or window.\n *\n * @static\n * @param {HTMLElement|Window} el Element to measure\n * @return {Object} Dimensions object with `borders`, `scroll`, `scrollbar` and `rect` properties\n */\nOO.ui.Element.static.getDimensions = function ( el ) {\n\tvar $el, $win,\n\t\tdoc = el.ownerDocument || el.document,\n\t\twin = doc.defaultView;\n\n\tif ( win === el || el === doc.documentElement ) {\n\t\t$win = $( win );\n\t\treturn {\n\t\t\tborders: { top: 0, left: 0, bottom: 0, right: 0 },\n\t\t\tscroll: {\n\t\t\t\ttop: $win.scrollTop(),\n\t\t\t\tleft: $win.scrollLeft()\n\t\t\t},\n\t\t\tscrollbar: { right: 0, bottom: 0 },\n\t\t\trect: {\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\tbottom: $win.innerHeight(),\n\t\t\t\tright: $win.innerWidth()\n\t\t\t}\n\t\t};\n\t} else {\n\t\t$el = $( el );\n\t\treturn {\n\t\t\tborders: this.getBorders( el ),\n\t\t\tscroll: {\n\t\t\t\ttop: $el.scrollTop(),\n\t\t\t\tleft: $el.scrollLeft()\n\t\t\t},\n\t\t\tscrollbar: {\n\t\t\t\tright: $el.innerWidth() - el.clientWidth,\n\t\t\t\tbottom: $el.innerHeight() - el.clientHeight\n\t\t\t},\n\t\t\trect: el.getBoundingClientRect()\n\t\t};\n\t}\n};\n\n/**\n * Get the number of pixels that an element's content is scrolled to the left.\n *\n * Adapted from <https://github.com/othree/jquery.rtl-scroll-type>.\n * Original code copyright 2012 Wei-Ko Kao, licensed under the MIT License.\n *\n * This function smooths out browser inconsistencies (nicely described in the README at\n * <https://github.com/othree/jquery.rtl-scroll-type>) and produces a result consistent\n * with Firefox's 'scrollLeft', which seems the sanest.\n *\n * @static\n * @method\n * @param {HTMLElement|Window} el Element to measure\n * @return {number} Scroll position from the left.\n *  If the element's direction is LTR, this is a positive number between `0` (initial scroll position)\n *  and `el.scrollWidth - el.clientWidth` (furthest possible scroll position).\n *  If the element's direction is RTL, this is a negative number between `0` (initial scroll position)\n *  and `-el.scrollWidth + el.clientWidth` (furthest possible scroll position).\n */\nOO.ui.Element.static.getScrollLeft = ( function () {\n\tvar rtlScrollType = null;\n\n\tfunction test() {\n\t\tvar $definer = $( '<div>' ).attr( {\n\t\t\t\tdir: 'rtl',\n\t\t\t\tstyle: 'font-size: 14px; width: 1px; height: 1px; position: absolute; top: -1000px; overflow: scroll;'\n\t\t\t} ).text( 'A' ),\n\t\t\tdefiner = $definer[ 0 ];\n\n\t\t$definer.appendTo( 'body' );\n\t\tif ( definer.scrollLeft > 0 ) {\n\t\t\t// Safari, Chrome\n\t\t\trtlScrollType = 'default';\n\t\t} else {\n\t\t\tdefiner.scrollLeft = 1;\n\t\t\tif ( definer.scrollLeft === 0 ) {\n\t\t\t\t// Firefox, old Opera\n\t\t\t\trtlScrollType = 'negative';\n\t\t\t} else {\n\t\t\t\t// Internet Explorer, Edge\n\t\t\t\trtlScrollType = 'reverse';\n\t\t\t}\n\t\t}\n\t\t$definer.remove();\n\t}\n\n\treturn function getScrollLeft( el ) {\n\t\tvar isRoot = el.window === el ||\n\t\t\t\tel === el.ownerDocument.body ||\n\t\t\t\tel === el.ownerDocument.documentElement,\n\t\t\tscrollLeft = isRoot ? $( window ).scrollLeft() : el.scrollLeft,\n\t\t\t// All browsers use the correct scroll type ('negative') on the root, so don't\n\t\t\t// do any fixups when looking at the root element\n\t\t\tdirection = isRoot ? 'ltr' : $( el ).css( 'direction' );\n\n\t\tif ( direction === 'rtl' ) {\n\t\t\tif ( rtlScrollType === null ) {\n\t\t\t\ttest();\n\t\t\t}\n\t\t\tif ( rtlScrollType === 'reverse' ) {\n\t\t\t\tscrollLeft = -scrollLeft;\n\t\t\t} else if ( rtlScrollType === 'default' ) {\n\t\t\t\tscrollLeft = scrollLeft - el.scrollWidth + el.clientWidth;\n\t\t\t}\n\t\t}\n\n\t\treturn scrollLeft;\n\t};\n}() );\n\n/**\n * Get the root scrollable element of given element's document.\n *\n * On Blink-based browsers (Chrome etc.), `document.documentElement` can't be used to get or set\n * the scrollTop property; instead we have to use `document.body`. Changing and testing the value\n * lets us use 'body' or 'documentElement' based on what is working.\n *\n * https://code.google.com/p/chromium/issues/detail?id=303131\n *\n * @static\n * @param {HTMLElement} el Element to find root scrollable parent for\n * @return {HTMLElement} Scrollable parent, `document.body` or `document.documentElement`\n *     depending on browser\n */\nOO.ui.Element.static.getRootScrollableElement = function ( el ) {\n\tvar scrollTop, body;\n\n\tif ( OO.ui.scrollableElement === undefined ) {\n\t\tbody = el.ownerDocument.body;\n\t\tscrollTop = body.scrollTop;\n\t\tbody.scrollTop = 1;\n\n\t\t// In some browsers (observed in Chrome 56 on Linux Mint 18.1),\n\t\t// body.scrollTop doesn't become exactly 1, but a fractional value like 0.76\n\t\tif ( Math.round( body.scrollTop ) === 1 ) {\n\t\t\tbody.scrollTop = scrollTop;\n\t\t\tOO.ui.scrollableElement = 'body';\n\t\t} else {\n\t\t\tOO.ui.scrollableElement = 'documentElement';\n\t\t}\n\t}\n\n\treturn el.ownerDocument[ OO.ui.scrollableElement ];\n};\n\n/**\n * Get closest scrollable container.\n *\n * Traverses up until either a scrollable element or the root is reached, in which case the root\n * scrollable element will be returned (see #getRootScrollableElement).\n *\n * @static\n * @param {HTMLElement} el Element to find scrollable container for\n * @param {string} [dimension] Dimension of scrolling to look for; `x`, `y` or omit for either\n * @return {HTMLElement} Closest scrollable container\n */\nOO.ui.Element.static.getClosestScrollableContainer = function ( el, dimension ) {\n\tvar i, val,\n\t\t// Browsers do not correctly return the computed value of 'overflow' when 'overflow-x' and\n\t\t// 'overflow-y' have different values, so we need to check the separate properties.\n\t\tprops = [ 'overflow-x', 'overflow-y' ],\n\t\t$parent = $( el ).parent();\n\n\tif ( dimension === 'x' || dimension === 'y' ) {\n\t\tprops = [ 'overflow-' + dimension ];\n\t}\n\n\t// Special case for the document root (which doesn't really have any scrollable container, since\n\t// it is the ultimate scrollable container, but this is probably saner than null or exception)\n\tif ( $( el ).is( 'html, body' ) ) {\n\t\treturn this.getRootScrollableElement( el );\n\t}\n\n\twhile ( $parent.length ) {\n\t\tif ( $parent[ 0 ] === this.getRootScrollableElement( el ) ) {\n\t\t\treturn $parent[ 0 ];\n\t\t}\n\t\ti = props.length;\n\t\twhile ( i-- ) {\n\t\t\tval = $parent.css( props[ i ] );\n\t\t\t// We assume that elements with 'overflow' (in any direction) set to 'hidden' will never be\n\t\t\t// scrolled in that direction, but they can actually be scrolled programatically. The user can\n\t\t\t// unintentionally perform a scroll in such case even if the application doesn't scroll\n\t\t\t// programatically, e.g. when jumping to an anchor, or when using built-in find functionality.\n\t\t\t// This could cause funny issues...\n\t\t\tif ( val === 'auto' || val === 'scroll' ) {\n\t\t\t\treturn $parent[ 0 ];\n\t\t\t}\n\t\t}\n\t\t$parent = $parent.parent();\n\t}\n\t// The element is unattached... return something mostly sane\n\treturn this.getRootScrollableElement( el );\n};\n\n/**\n * Scroll element into view.\n *\n * @static\n * @param {HTMLElement} el Element to scroll into view\n * @param {Object} [config] Configuration options\n * @param {string} [config.duration='fast'] jQuery animation duration value\n * @param {string} [config.direction] Scroll in only one direction, e.g. 'x' or 'y', omit\n *  to scroll in both directions\n * @return {jQuery.Promise} Promise which resolves when the scroll is complete\n */\nOO.ui.Element.static.scrollIntoView = function ( el, config ) {\n\tvar position, animations, container, $container, elementDimensions, containerDimensions, $window,\n\t\tdeferred = $.Deferred();\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\tanimations = {};\n\tcontainer = this.getClosestScrollableContainer( el, config.direction );\n\t$container = $( container );\n\telementDimensions = this.getDimensions( el );\n\tcontainerDimensions = this.getDimensions( container );\n\t$window = $( this.getWindow( el ) );\n\n\t// Compute the element's position relative to the container\n\tif ( $container.is( 'html, body' ) ) {\n\t\t// If the scrollable container is the root, this is easy\n\t\tposition = {\n\t\t\ttop: elementDimensions.rect.top,\n\t\t\tbottom: $window.innerHeight() - elementDimensions.rect.bottom,\n\t\t\tleft: elementDimensions.rect.left,\n\t\t\tright: $window.innerWidth() - elementDimensions.rect.right\n\t\t};\n\t} else {\n\t\t// Otherwise, we have to subtract el's coordinates from container's coordinates\n\t\tposition = {\n\t\t\ttop: elementDimensions.rect.top - ( containerDimensions.rect.top + containerDimensions.borders.top ),\n\t\t\tbottom: containerDimensions.rect.bottom - containerDimensions.borders.bottom - containerDimensions.scrollbar.bottom - elementDimensions.rect.bottom,\n\t\t\tleft: elementDimensions.rect.left - ( containerDimensions.rect.left + containerDimensions.borders.left ),\n\t\t\tright: containerDimensions.rect.right - containerDimensions.borders.right - containerDimensions.scrollbar.right - elementDimensions.rect.right\n\t\t};\n\t}\n\n\tif ( !config.direction || config.direction === 'y' ) {\n\t\tif ( position.top < 0 ) {\n\t\t\tanimations.scrollTop = containerDimensions.scroll.top + position.top;\n\t\t} else if ( position.top > 0 && position.bottom < 0 ) {\n\t\t\tanimations.scrollTop = containerDimensions.scroll.top + Math.min( position.top, -position.bottom );\n\t\t}\n\t}\n\tif ( !config.direction || config.direction === 'x' ) {\n\t\tif ( position.left < 0 ) {\n\t\t\tanimations.scrollLeft = containerDimensions.scroll.left + position.left;\n\t\t} else if ( position.left > 0 && position.right < 0 ) {\n\t\t\tanimations.scrollLeft = containerDimensions.scroll.left + Math.min( position.left, -position.right );\n\t\t}\n\t}\n\tif ( !$.isEmptyObject( animations ) ) {\n\t\t// eslint-disable-next-line jquery/no-animate\n\t\t$container.stop( true ).animate( animations, config.duration === undefined ? 'fast' : config.duration );\n\t\t$container.queue( function ( next ) {\n\t\t\tdeferred.resolve();\n\t\t\tnext();\n\t\t} );\n\t} else {\n\t\tdeferred.resolve();\n\t}\n\treturn deferred.promise();\n};\n\n/**\n * Force the browser to reconsider whether it really needs to render scrollbars inside the element\n * and reserve space for them, because it probably doesn't.\n *\n * Workaround primarily for <https://code.google.com/p/chromium/issues/detail?id=387290>, but also\n * similar bugs in other browsers. \"Just\" forcing a reflow is not sufficient in all cases, we need\n * to first actually detach (or hide, but detaching is simpler) all children, *then* force a reflow,\n * and then reattach (or show) them back.\n *\n * @static\n * @param {HTMLElement} el Element to reconsider the scrollbars on\n */\nOO.ui.Element.static.reconsiderScrollbars = function ( el ) {\n\tvar i, len, scrollLeft, scrollTop, nodes = [];\n\t// Save scroll position\n\tscrollLeft = el.scrollLeft;\n\tscrollTop = el.scrollTop;\n\t// Detach all children\n\twhile ( el.firstChild ) {\n\t\tnodes.push( el.firstChild );\n\t\tel.removeChild( el.firstChild );\n\t}\n\t// Force reflow\n\t// eslint-disable-next-line no-void\n\tvoid el.offsetHeight;\n\t// Reattach all children\n\tfor ( i = 0, len = nodes.length; i < len; i++ ) {\n\t\tel.appendChild( nodes[ i ] );\n\t}\n\t// Restore scroll position (no-op if scrollbars disappeared)\n\tel.scrollLeft = scrollLeft;\n\tel.scrollTop = scrollTop;\n};\n\n/* Methods */\n\n/**\n * Toggle visibility of an element.\n *\n * @param {boolean} [show] Make element visible, omit to toggle visibility\n * @fires visible\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.Element.prototype.toggle = function ( show ) {\n\tshow = show === undefined ? !this.visible : !!show;\n\n\tif ( show !== this.isVisible() ) {\n\t\tthis.visible = show;\n\t\tthis.$element.toggleClass( 'oo-ui-element-hidden', !this.visible );\n\t\tthis.emit( 'toggle', show );\n\t}\n\n\treturn this;\n};\n\n/**\n * Check if element is visible.\n *\n * @return {boolean} element is visible\n */\nOO.ui.Element.prototype.isVisible = function () {\n\treturn this.visible;\n};\n\n/**\n * Get element data.\n *\n * @return {Mixed} Element data\n */\nOO.ui.Element.prototype.getData = function () {\n\treturn this.data;\n};\n\n/**\n * Set element data.\n *\n * @param {Mixed} data Element data\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.Element.prototype.setData = function ( data ) {\n\tthis.data = data;\n\treturn this;\n};\n\n/**\n * Set the element has an 'id' attribute.\n *\n * @param {string} id\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.Element.prototype.setElementId = function ( id ) {\n\tthis.elementId = id;\n\tthis.$element.attr( 'id', id );\n\treturn this;\n};\n\n/**\n * Ensure that the element has an 'id' attribute, setting it to an unique value if it's missing,\n * and return its value.\n *\n * @return {string}\n */\nOO.ui.Element.prototype.getElementId = function () {\n\tif ( this.elementId === null ) {\n\t\tthis.setElementId( OO.ui.generateElementId() );\n\t}\n\treturn this.elementId;\n};\n\n/**\n * Check if element supports one or more methods.\n *\n * @param {string|string[]} methods Method or list of methods to check\n * @return {boolean} All methods are supported\n */\nOO.ui.Element.prototype.supports = function ( methods ) {\n\tvar i, len,\n\t\tsupport = 0;\n\n\tmethods = Array.isArray( methods ) ? methods : [ methods ];\n\tfor ( i = 0, len = methods.length; i < len; i++ ) {\n\t\tif ( typeof this[ methods[ i ] ] === 'function' ) {\n\t\t\tsupport++;\n\t\t}\n\t}\n\n\treturn methods.length === support;\n};\n\n/**\n * Update the theme-provided classes.\n *\n * @localdoc This is called in element mixins and widget classes any time state changes.\n *   Updating is debounced, minimizing overhead of changing multiple attributes and\n *   guaranteeing that theme updates do not occur within an element's constructor\n */\nOO.ui.Element.prototype.updateThemeClasses = function () {\n\tOO.ui.theme.queueUpdateElementClasses( this );\n};\n\n/**\n * Get the HTML tag name.\n *\n * Override this method to base the result on instance information.\n *\n * @return {string} HTML tag name\n */\nOO.ui.Element.prototype.getTagName = function () {\n\treturn this.constructor.static.tagName;\n};\n\n/**\n * Check if the element is attached to the DOM\n *\n * @return {boolean} The element is attached to the DOM\n */\nOO.ui.Element.prototype.isElementAttached = function () {\n\treturn $.contains( this.getElementDocument(), this.$element[ 0 ] );\n};\n\n/**\n * Get the DOM document.\n *\n * @return {HTMLDocument} Document object\n */\nOO.ui.Element.prototype.getElementDocument = function () {\n\t// Don't cache this in other ways either because subclasses could can change this.$element\n\treturn OO.ui.Element.static.getDocument( this.$element );\n};\n\n/**\n * Get the DOM window.\n *\n * @return {Window} Window object\n */\nOO.ui.Element.prototype.getElementWindow = function () {\n\treturn OO.ui.Element.static.getWindow( this.$element );\n};\n\n/**\n * Get closest scrollable container.\n *\n * @return {HTMLElement} Closest scrollable container\n */\nOO.ui.Element.prototype.getClosestScrollableElementContainer = function () {\n\treturn OO.ui.Element.static.getClosestScrollableContainer( this.$element[ 0 ] );\n};\n\n/**\n * Get group element is in.\n *\n * @return {OO.ui.mixin.GroupElement|null} Group element, null if none\n */\nOO.ui.Element.prototype.getElementGroup = function () {\n\treturn this.elementGroup;\n};\n\n/**\n * Set group element is in.\n *\n * @param {OO.ui.mixin.GroupElement|null} group Group element, null if none\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.Element.prototype.setElementGroup = function ( group ) {\n\tthis.elementGroup = group;\n\treturn this;\n};\n\n/**\n * Scroll element into view.\n *\n * @param {Object} [config] Configuration options\n * @return {jQuery.Promise} Promise which resolves when the scroll is complete\n */\nOO.ui.Element.prototype.scrollElementIntoView = function ( config ) {\n\tif (\n\t\t!this.isElementAttached() ||\n\t\t!this.isVisible() ||\n\t\t( this.getElementGroup() && !this.getElementGroup().isVisible() )\n\t) {\n\t\treturn $.Deferred().resolve();\n\t}\n\treturn OO.ui.Element.static.scrollIntoView( this.$element[ 0 ], config );\n};\n\n/**\n * Restore the pre-infusion dynamic state for this widget.\n *\n * This method is called after #$element has been inserted into DOM. The parameter is the return\n * value of #gatherPreInfuseState.\n *\n * @protected\n * @param {Object} state\n */\nOO.ui.Element.prototype.restorePreInfuseState = function () {\n};\n","/**\n * Wraps an HTML snippet for use with configuration values which default\n * to strings.  This bypasses the default html-escaping done to string\n * values.\n *\n * @class\n *\n * @constructor\n * @param {string} [content] HTML content\n */\nOO.ui.HtmlSnippet = function OoUiHtmlSnippet( content ) {\n\t// Properties\n\tthis.content = content;\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.HtmlSnippet );\n\n/* Methods */\n\n/**\n * Render into HTML.\n *\n * @return {string} Unchanged HTML snippet.\n */\nOO.ui.HtmlSnippet.prototype.toString = function () {\n\treturn this.content;\n};\n","/**\n * Layouts are containers for elements and are used to arrange other widgets of arbitrary type in a way\n * that is centrally controlled and can be updated dynamically. Layouts can be, and usually are, combined.\n * See {@link OO.ui.FieldsetLayout FieldsetLayout}, {@link OO.ui.FieldLayout FieldLayout}, {@link OO.ui.FormLayout FormLayout},\n * {@link OO.ui.PanelLayout PanelLayout}, {@link OO.ui.StackLayout StackLayout}, {@link OO.ui.PageLayout PageLayout},\n * {@link OO.ui.HorizontalLayout HorizontalLayout}, and {@link OO.ui.BookletLayout BookletLayout} for more information and examples.\n *\n * @abstract\n * @class\n * @extends OO.ui.Element\n * @mixins OO.EventEmitter\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.Layout = function OoUiLayout( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.Layout.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.EventEmitter.call( this );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-layout' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.Layout, OO.ui.Element );\nOO.mixinClass( OO.ui.Layout, OO.EventEmitter );\n\n/* Methods */\n\n/**\n * Reset scroll offsets\n *\n * @chainable\n * @return {OO.ui.Layout} The layout, for chaining\n */\nOO.ui.Layout.prototype.resetScroll = function () {\n\tthis.$element[ 0 ].scrollTop = 0;\n\t// TODO: Reset scrollLeft in an RTL-aware manner, see OO.ui.Element.static.getScrollLeft.\n\n\treturn this;\n};\n","/**\n * Widgets are compositions of one or more OOUI elements that users can both view\n * and interact with. All widgets can be configured and modified via a standard API,\n * and their state can change dynamically according to a model.\n *\n * @abstract\n * @class\n * @extends OO.ui.Element\n * @mixins OO.EventEmitter\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [disabled=false] Disable the widget. Disabled widgets cannot be used and their\n *  appearance reflects this state.\n */\nOO.ui.Widget = function OoUiWidget( config ) {\n\t// Initialize config\n\tconfig = $.extend( { disabled: false }, config );\n\n\t// Parent constructor\n\tOO.ui.Widget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.EventEmitter.call( this );\n\n\t// Properties\n\tthis.disabled = null;\n\tthis.wasDisabled = null;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-widget' );\n\tthis.setDisabled( !!config.disabled );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.Widget, OO.ui.Element );\nOO.mixinClass( OO.ui.Widget, OO.EventEmitter );\n\n/* Events */\n\n/**\n * @event disable\n *\n * A 'disable' event is emitted when the disabled state of the widget changes\n * (i.e. on disable **and** enable).\n *\n * @param {boolean} disabled Widget is disabled\n */\n\n/**\n * @event toggle\n *\n * A 'toggle' event is emitted when the visibility of the widget changes.\n *\n * @param {boolean} visible Widget is visible\n */\n\n/* Methods */\n\n/**\n * Check if the widget is disabled.\n *\n * @return {boolean} Widget is disabled\n */\nOO.ui.Widget.prototype.isDisabled = function () {\n\treturn this.disabled;\n};\n\n/**\n * Set the 'disabled' state of the widget.\n *\n * When a widget is disabled, it cannot be used and its appearance is updated to reflect this state.\n *\n * @param {boolean} disabled Disable widget\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.Widget.prototype.setDisabled = function ( disabled ) {\n\tvar isDisabled;\n\n\tthis.disabled = !!disabled;\n\tisDisabled = this.isDisabled();\n\tif ( isDisabled !== this.wasDisabled ) {\n\t\tthis.$element.toggleClass( 'oo-ui-widget-disabled', isDisabled );\n\t\tthis.$element.toggleClass( 'oo-ui-widget-enabled', !isDisabled );\n\t\tthis.$element.attr( 'aria-disabled', isDisabled.toString() );\n\t\tthis.emit( 'disable', isDisabled );\n\t\tthis.updateThemeClasses();\n\t}\n\tthis.wasDisabled = isDisabled;\n\n\treturn this;\n};\n\n/**\n * Update the disabled state, in case of changes in parent widget.\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.Widget.prototype.updateDisabled = function () {\n\tthis.setDisabled( this.disabled );\n\treturn this;\n};\n\n/**\n * Get an ID of a labelable node which is part of this widget, if any, to be used for `<label for>`\n * value.\n *\n * If this function returns null, the widget should have a meaningful #simulateLabelClick method\n * instead.\n *\n * @return {string|null} The ID of the labelable element\n */\nOO.ui.Widget.prototype.getInputId = function () {\n\treturn null;\n};\n\n/**\n * Simulate the behavior of clicking on a label (a HTML `<label>` element) bound to this input.\n * HTML only allows `<label>` to act on specific \"labelable\" elements; complex widgets might need to\n * override this method to provide intuitive, accessible behavior.\n *\n * By default, this does nothing. OO.ui.mixin.TabIndexedElement overrides it for focusable widgets.\n * Individual widgets may override it too.\n *\n * This method is called by OO.ui.LabelWidget and OO.ui.FieldLayout. It should not be called\n * directly.\n */\nOO.ui.Widget.prototype.simulateLabelClick = function () {\n};\n","/**\n * Theme logic.\n *\n * @abstract\n * @class\n *\n * @constructor\n */\nOO.ui.Theme = function OoUiTheme() {\n\tthis.elementClassesQueue = [];\n\tthis.debouncedUpdateQueuedElementClasses = OO.ui.debounce( this.updateQueuedElementClasses );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.Theme );\n\n/* Methods */\n\n/**\n * Get a list of classes to be applied to a widget.\n *\n * The 'on' and 'off' lists combined MUST contain keys for all classes the theme adds or removes,\n * otherwise state transitions will not work properly.\n *\n * @param {OO.ui.Element} element Element for which to get classes\n * @return {Object.<string,string[]>} Categorized class names with `on` and `off` lists\n */\nOO.ui.Theme.prototype.getElementClasses = function () {\n\treturn { on: [], off: [] };\n};\n\n/**\n * Update CSS classes provided by the theme.\n *\n * For elements with theme logic hooks, this should be called any time there's a state change.\n *\n * @param {OO.ui.Element} element Element for which to update classes\n */\nOO.ui.Theme.prototype.updateElementClasses = function ( element ) {\n\tvar $elements = $( [] ),\n\t\tclasses = this.getElementClasses( element );\n\n\tif ( element.$icon ) {\n\t\t$elements = $elements.add( element.$icon );\n\t}\n\tif ( element.$indicator ) {\n\t\t$elements = $elements.add( element.$indicator );\n\t}\n\n\t$elements\n\t\t.removeClass( classes.off )\n\t\t.addClass( classes.on );\n};\n\n/**\n * @private\n */\nOO.ui.Theme.prototype.updateQueuedElementClasses = function () {\n\tvar i;\n\tfor ( i = 0; i < this.elementClassesQueue.length; i++ ) {\n\t\tthis.updateElementClasses( this.elementClassesQueue[ i ] );\n\t}\n\t// Clear the queue\n\tthis.elementClassesQueue = [];\n};\n\n/**\n * Queue #updateElementClasses to be called for this element.\n *\n * @localdoc QUnit tests override this method to directly call #queueUpdateElementClasses,\n *   to make them synchronous.\n *\n * @param {OO.ui.Element} element Element for which to update classes\n */\nOO.ui.Theme.prototype.queueUpdateElementClasses = function ( element ) {\n\t// Keep items in the queue unique. Use lastIndexOf to start checking from the end because that's\n\t// the most common case (this method is often called repeatedly for the same element).\n\tif ( this.elementClassesQueue.lastIndexOf( element ) !== -1 ) {\n\t\treturn;\n\t}\n\tthis.elementClassesQueue.push( element );\n\tthis.debouncedUpdateQueuedElementClasses();\n};\n\n/**\n * Get the transition duration in milliseconds for dialogs opening/closing\n *\n * The dialog should be fully rendered this many milliseconds after the\n * ready process has executed.\n *\n * @return {number} Transition duration in milliseconds\n */\nOO.ui.Theme.prototype.getDialogTransitionDuration = function () {\n\treturn 0;\n};\n","/**\n * The TabIndexedElement class is an attribute mixin used to add additional functionality to an\n * element created by another class. The mixin provides a ‘tabIndex’ property, which specifies the\n * order in which users will navigate through the focusable elements via the “tab” key.\n *\n *     @example\n *     // TabIndexedElement is mixed into the ButtonWidget class\n *     // to provide a tabIndex property.\n *     var button1 = new OO.ui.ButtonWidget( {\n *             label: 'fourth',\n *             tabIndex: 4\n *         } ),\n *         button2 = new OO.ui.ButtonWidget( {\n *             label: 'second',\n *             tabIndex: 2\n *         } ),\n *         button3 = new OO.ui.ButtonWidget( {\n *             label: 'third',\n *             tabIndex: 3\n *         } ),\n *         button4 = new OO.ui.ButtonWidget( {\n *             label: 'first',\n *             tabIndex: 1\n *         } );\n *     $( document.body ).append( button1.$element, button2.$element, button3.$element, button4.$element );\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$tabIndexed] The element that should use the tabindex functionality. By default,\n *  the functionality is applied to the element created by the class ($element). If a different element is specified, the tabindex\n *  functionality will be applied to it instead.\n * @cfg {string|number|null} [tabIndex=0] Number that specifies the element’s position in the tab-navigation\n *  order (e.g., 1 for the first focusable element). Use 0 to use the default navigation order; use -1\n *  to remove the element from the tab-navigation flow.\n */\nOO.ui.mixin.TabIndexedElement = function OoUiMixinTabIndexedElement( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( { tabIndex: 0 }, config );\n\n\t// Properties\n\tthis.$tabIndexed = null;\n\tthis.tabIndex = null;\n\n\t// Events\n\tthis.connect( this, { disable: 'onTabIndexedElementDisable' } );\n\n\t// Initialization\n\tthis.setTabIndex( config.tabIndex );\n\tthis.setTabIndexedElement( config.$tabIndexed || this.$element );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.TabIndexedElement );\n\n/* Methods */\n\n/**\n * Set the element that should use the tabindex functionality.\n *\n * This method is used to retarget a tabindex mixin so that its functionality applies\n * to the specified element. If an element is currently using the functionality, the mixin’s\n * effect on that element is removed before the new element is set up.\n *\n * @param {jQuery} $tabIndexed Element that should use the tabindex functionality\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.TabIndexedElement.prototype.setTabIndexedElement = function ( $tabIndexed ) {\n\tvar tabIndex = this.tabIndex;\n\t// Remove attributes from old $tabIndexed\n\tthis.setTabIndex( null );\n\t// Force update of new $tabIndexed\n\tthis.$tabIndexed = $tabIndexed;\n\tthis.tabIndex = tabIndex;\n\treturn this.updateTabIndex();\n};\n\n/**\n * Set the value of the tabindex.\n *\n * @param {string|number|null} tabIndex Tabindex value, or `null` for no tabindex\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.TabIndexedElement.prototype.setTabIndex = function ( tabIndex ) {\n\ttabIndex = /^-?\\d+$/.test( tabIndex ) ? Number( tabIndex ) : null;\n\n\tif ( this.tabIndex !== tabIndex ) {\n\t\tthis.tabIndex = tabIndex;\n\t\tthis.updateTabIndex();\n\t}\n\n\treturn this;\n};\n\n/**\n * Update the `tabindex` attribute, in case of changes to tab index or\n * disabled state.\n *\n * @private\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.TabIndexedElement.prototype.updateTabIndex = function () {\n\tif ( this.$tabIndexed ) {\n\t\tif ( this.tabIndex !== null ) {\n\t\t\t// Do not index over disabled elements\n\t\t\tthis.$tabIndexed.attr( {\n\t\t\t\ttabindex: this.isDisabled() ? -1 : this.tabIndex,\n\t\t\t\t// Support: ChromeVox and NVDA\n\t\t\t\t// These do not seem to inherit aria-disabled from parent elements\n\t\t\t\t'aria-disabled': this.isDisabled().toString()\n\t\t\t} );\n\t\t} else {\n\t\t\tthis.$tabIndexed.removeAttr( 'tabindex aria-disabled' );\n\t\t}\n\t}\n\treturn this;\n};\n\n/**\n * Handle disable events.\n *\n * @private\n * @param {boolean} disabled Element is disabled\n */\nOO.ui.mixin.TabIndexedElement.prototype.onTabIndexedElementDisable = function () {\n\tthis.updateTabIndex();\n};\n\n/**\n * Get the value of the tabindex.\n *\n * @return {number|null} Tabindex value\n */\nOO.ui.mixin.TabIndexedElement.prototype.getTabIndex = function () {\n\treturn this.tabIndex;\n};\n\n/**\n * Get an ID of a focusable element of this widget, if any, to be used for `<label for>` value.\n *\n * If the element already has an ID then that is returned, otherwise unique ID is\n * generated, set on the element, and returned.\n *\n * @return {string|null} The ID of the focusable element\n */\nOO.ui.mixin.TabIndexedElement.prototype.getInputId = function () {\n\tvar id;\n\n\tif ( !this.$tabIndexed ) {\n\t\treturn null;\n\t}\n\tif ( !this.isLabelableNode( this.$tabIndexed ) ) {\n\t\treturn null;\n\t}\n\n\tid = this.$tabIndexed.attr( 'id' );\n\tif ( id === undefined ) {\n\t\tid = OO.ui.generateElementId();\n\t\tthis.$tabIndexed.attr( 'id', id );\n\t}\n\n\treturn id;\n};\n\n/**\n * Whether the node is 'labelable' according to the HTML spec\n * (i.e., whether it can be interacted with through a `<label for=\"…\">`).\n * See: <https://html.spec.whatwg.org/multipage/forms.html#category-label>.\n *\n * @private\n * @param {jQuery} $node\n * @return {boolean}\n */\nOO.ui.mixin.TabIndexedElement.prototype.isLabelableNode = function ( $node ) {\n\tvar\n\t\tlabelableTags = [ 'button', 'meter', 'output', 'progress', 'select', 'textarea' ],\n\t\ttagName = $node.prop( 'tagName' ).toLowerCase();\n\n\tif ( tagName === 'input' && $node.attr( 'type' ) !== 'hidden' ) {\n\t\treturn true;\n\t}\n\tif ( labelableTags.indexOf( tagName ) !== -1 ) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n/**\n * Focus this element.\n *\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.TabIndexedElement.prototype.focus = function () {\n\tif ( !this.isDisabled() ) {\n\t\tthis.$tabIndexed.focus();\n\t}\n\treturn this;\n};\n\n/**\n * Blur this element.\n *\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.TabIndexedElement.prototype.blur = function () {\n\tthis.$tabIndexed.blur();\n\treturn this;\n};\n\n/**\n * @inheritdoc OO.ui.Widget\n */\nOO.ui.mixin.TabIndexedElement.prototype.simulateLabelClick = function () {\n\tthis.focus();\n};\n","/**\n * ButtonElement is often mixed into other classes to generate a button, which is a clickable\n * interface element that can be configured with access keys for keyboard interaction.\n * See the [OOUI documentation on MediaWiki] [1] for examples.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Buttons_and_Switches#Buttons\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$button] The button element created by the class.\n *  If this configuration is omitted, the button element will use a generated `<a>`.\n * @cfg {boolean} [framed=true] Render the button with a frame\n */\nOO.ui.mixin.ButtonElement = function OoUiMixinButtonElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$button = null;\n\tthis.framed = null;\n\tthis.active = config.active !== undefined && config.active;\n\tthis.onDocumentMouseUpHandler = this.onDocumentMouseUp.bind( this );\n\tthis.onMouseDownHandler = this.onMouseDown.bind( this );\n\tthis.onDocumentKeyUpHandler = this.onDocumentKeyUp.bind( this );\n\tthis.onKeyDownHandler = this.onKeyDown.bind( this );\n\tthis.onClickHandler = this.onClick.bind( this );\n\tthis.onKeyPressHandler = this.onKeyPress.bind( this );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-buttonElement' );\n\tthis.toggleFramed( config.framed === undefined || config.framed );\n\tthis.setButtonElement( config.$button || $( '<a>' ) );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.ButtonElement );\n\n/* Static Properties */\n\n/**\n * Cancel mouse down events.\n *\n * This property is usually set to `true` to prevent the focus from changing when the button is clicked.\n * Classes such as {@link OO.ui.mixin.DraggableElement DraggableElement} and {@link OO.ui.ButtonOptionWidget ButtonOptionWidget}\n * use a value of `false` so that dragging behavior is possible and mousedown events can be handled by a\n * parent widget.\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.mixin.ButtonElement.static.cancelButtonMouseDownEvents = true;\n\n/* Events */\n\n/**\n * A 'click' event is emitted when the button element is clicked.\n *\n * @event click\n */\n\n/* Methods */\n\n/**\n * Set the button element.\n *\n * This method is used to retarget a button mixin so that its functionality applies to\n * the specified button element instead of the one created by the class. If a button element\n * is already set, the method will remove the mixin’s effect on that element.\n *\n * @param {jQuery} $button Element to use as button\n */\nOO.ui.mixin.ButtonElement.prototype.setButtonElement = function ( $button ) {\n\tif ( this.$button ) {\n\t\tthis.$button\n\t\t\t.removeClass( 'oo-ui-buttonElement-button' )\n\t\t\t.removeAttr( 'role accesskey' )\n\t\t\t.off( {\n\t\t\t\tmousedown: this.onMouseDownHandler,\n\t\t\t\tkeydown: this.onKeyDownHandler,\n\t\t\t\tclick: this.onClickHandler,\n\t\t\t\tkeypress: this.onKeyPressHandler\n\t\t\t} );\n\t}\n\n\tthis.$button = $button\n\t\t.addClass( 'oo-ui-buttonElement-button' )\n\t\t.on( {\n\t\t\tmousedown: this.onMouseDownHandler,\n\t\t\tkeydown: this.onKeyDownHandler,\n\t\t\tclick: this.onClickHandler,\n\t\t\tkeypress: this.onKeyPressHandler\n\t\t} );\n\n\t// Add `role=\"button\"` on `<a>` elements, where it's needed\n\t// `toUpperCase()` is added for XHTML documents\n\tif ( this.$button.prop( 'tagName' ).toUpperCase() === 'A' ) {\n\t\tthis.$button.attr( 'role', 'button' );\n\t}\n};\n\n/**\n * Handles mouse down events.\n *\n * @protected\n * @param {jQuery.Event} e Mouse down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.mixin.ButtonElement.prototype.onMouseDown = function ( e ) {\n\tif ( this.isDisabled() || e.which !== OO.ui.MouseButtons.LEFT ) {\n\t\treturn;\n\t}\n\tthis.$element.addClass( 'oo-ui-buttonElement-pressed' );\n\t// Run the mouseup handler no matter where the mouse is when the button is let go, so we can\n\t// reliably remove the pressed class\n\tthis.getElementDocument().addEventListener( 'mouseup', this.onDocumentMouseUpHandler, true );\n\t// Prevent change of focus unless specifically configured otherwise\n\tif ( this.constructor.static.cancelButtonMouseDownEvents ) {\n\t\treturn false;\n\t}\n};\n\n/**\n * Handles document mouse up events.\n *\n * @protected\n * @param {MouseEvent} e Mouse up event\n */\nOO.ui.mixin.ButtonElement.prototype.onDocumentMouseUp = function ( e ) {\n\tif ( this.isDisabled() || e.which !== OO.ui.MouseButtons.LEFT ) {\n\t\treturn;\n\t}\n\tthis.$element.removeClass( 'oo-ui-buttonElement-pressed' );\n\t// Stop listening for mouseup, since we only needed this once\n\tthis.getElementDocument().removeEventListener( 'mouseup', this.onDocumentMouseUpHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.mixin.ButtonElement.prototype.onMouseUp = function () {\n\tOO.ui.warnDeprecation( 'onMouseUp is deprecated, use onDocumentMouseUp instead' );\n\tthis.onDocumentMouseUp.apply( this, arguments );\n};\n\n/**\n * Handles mouse click events.\n *\n * @protected\n * @param {jQuery.Event} e Mouse click event\n * @fires click\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.mixin.ButtonElement.prototype.onClick = function ( e ) {\n\tif ( !this.isDisabled() && e.which === OO.ui.MouseButtons.LEFT ) {\n\t\tif ( this.emit( 'click' ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n};\n\n/**\n * Handles key down events.\n *\n * @protected\n * @param {jQuery.Event} e Key down event\n */\nOO.ui.mixin.ButtonElement.prototype.onKeyDown = function ( e ) {\n\tif ( this.isDisabled() || ( e.which !== OO.ui.Keys.SPACE && e.which !== OO.ui.Keys.ENTER ) ) {\n\t\treturn;\n\t}\n\tthis.$element.addClass( 'oo-ui-buttonElement-pressed' );\n\t// Run the keyup handler no matter where the key is when the button is let go, so we can\n\t// reliably remove the pressed class\n\tthis.getElementDocument().addEventListener( 'keyup', this.onDocumentKeyUpHandler, true );\n};\n\n/**\n * Handles document key up events.\n *\n * @protected\n * @param {KeyboardEvent} e Key up event\n */\nOO.ui.mixin.ButtonElement.prototype.onDocumentKeyUp = function ( e ) {\n\tif ( this.isDisabled() || ( e.which !== OO.ui.Keys.SPACE && e.which !== OO.ui.Keys.ENTER ) ) {\n\t\treturn;\n\t}\n\tthis.$element.removeClass( 'oo-ui-buttonElement-pressed' );\n\t// Stop listening for keyup, since we only needed this once\n\tthis.getElementDocument().removeEventListener( 'keyup', this.onDocumentKeyUpHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.mixin.ButtonElement.prototype.onKeyUp = function () {\n\tOO.ui.warnDeprecation( 'onKeyUp is deprecated, use onDocumentKeyUp instead' );\n\tthis.onDocumentKeyUp.apply( this, arguments );\n};\n\n/**\n * Handles key press events.\n *\n * @protected\n * @param {jQuery.Event} e Key press event\n * @fires click\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.mixin.ButtonElement.prototype.onKeyPress = function ( e ) {\n\tif ( !this.isDisabled() && ( e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER ) ) {\n\t\tif ( this.emit( 'click' ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n};\n\n/**\n * Check if button has a frame.\n *\n * @return {boolean} Button is framed\n */\nOO.ui.mixin.ButtonElement.prototype.isFramed = function () {\n\treturn this.framed;\n};\n\n/**\n * Render the button with or without a frame. Omit the `framed` parameter to toggle the button frame on and off.\n *\n * @param {boolean} [framed] Make button framed, omit to toggle\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.ButtonElement.prototype.toggleFramed = function ( framed ) {\n\tframed = framed === undefined ? !this.framed : !!framed;\n\tif ( framed !== this.framed ) {\n\t\tthis.framed = framed;\n\t\tthis.$element\n\t\t\t.toggleClass( 'oo-ui-buttonElement-frameless', !framed )\n\t\t\t.toggleClass( 'oo-ui-buttonElement-framed', framed );\n\t\tthis.updateThemeClasses();\n\t}\n\n\treturn this;\n};\n\n/**\n * Set the button's active state.\n *\n * The active state can be set on:\n *\n *  - {@link OO.ui.ButtonOptionWidget ButtonOptionWidget} when it is selected\n *  - {@link OO.ui.ToggleButtonWidget ToggleButtonWidget} when it is toggle on\n *  - {@link OO.ui.ButtonWidget ButtonWidget} when clicking the button would only refresh the page\n *\n * @protected\n * @param {boolean} value Make button active\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.ButtonElement.prototype.setActive = function ( value ) {\n\tthis.active = !!value;\n\tthis.$element.toggleClass( 'oo-ui-buttonElement-active', this.active );\n\tthis.updateThemeClasses();\n\treturn this;\n};\n\n/**\n * Check if the button is active\n *\n * @protected\n * @return {boolean} The button is active\n */\nOO.ui.mixin.ButtonElement.prototype.isActive = function () {\n\treturn this.active;\n};\n","/**\n * Any OOUI widget that contains other widgets (such as {@link OO.ui.ButtonWidget buttons} or\n * {@link OO.ui.OptionWidget options}) mixes in GroupElement. Adding, removing, and clearing\n * items from the group is done through the interface the class provides.\n * For more information, please see the [OOUI documentation on MediaWiki] [1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Elements/Groups\n *\n * @abstract\n * @mixins OO.EmitterList\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$group] The container element created by the class. If this configuration\n *  is omitted, the group element will use a generated `<div>`.\n */\nOO.ui.mixin.GroupElement = function OoUiMixinGroupElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Mixin constructors\n\tOO.EmitterList.call( this, config );\n\n\t// Properties\n\tthis.$group = null;\n\n\t// Initialization\n\tthis.setGroupElement( config.$group || $( '<div>' ) );\n};\n\n/* Setup */\n\nOO.mixinClass( OO.ui.mixin.GroupElement, OO.EmitterList );\n\n/* Events */\n\n/**\n * @event change\n *\n * A change event is emitted when the set of selected items changes.\n *\n * @param {OO.ui.Element[]} items Items currently in the group\n */\n\n/* Methods */\n\n/**\n * Set the group element.\n *\n * If an element is already set, items will be moved to the new element.\n *\n * @param {jQuery} $group Element to use as group\n */\nOO.ui.mixin.GroupElement.prototype.setGroupElement = function ( $group ) {\n\tvar i, len;\n\n\tthis.$group = $group;\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\tthis.$group.append( this.items[ i ].$element );\n\t}\n};\n\n/**\n * Find an item by its data.\n *\n * Only the first item with matching data will be returned. To return all matching items,\n * use the #findItemsFromData method.\n *\n * @param {Object} data Item data to search for\n * @return {OO.ui.Element|null} Item with equivalent data, `null` if none exists\n */\nOO.ui.mixin.GroupElement.prototype.findItemFromData = function ( data ) {\n\tvar i, len, item,\n\t\thash = OO.getHash( data );\n\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\titem = this.items[ i ];\n\t\tif ( hash === OO.getHash( item.getData() ) ) {\n\t\t\treturn item;\n\t\t}\n\t}\n\n\treturn null;\n};\n\n/**\n * Find items by their data.\n *\n * All items with matching data will be returned. To return only the first match, use the #findItemFromData method instead.\n *\n * @param {Object} data Item data to search for\n * @return {OO.ui.Element[]} Items with equivalent data\n */\nOO.ui.mixin.GroupElement.prototype.findItemsFromData = function ( data ) {\n\tvar i, len, item,\n\t\thash = OO.getHash( data ),\n\t\titems = [];\n\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\titem = this.items[ i ];\n\t\tif ( hash === OO.getHash( item.getData() ) ) {\n\t\t\titems.push( item );\n\t\t}\n\t}\n\n\treturn items;\n};\n\n/**\n * Add items to the group.\n *\n * Items will be added to the end of the group array unless the optional `index` parameter specifies\n * a different insertion point. Adding an existing item will move it to the end of the array or the point specified by the `index`.\n *\n * @param {OO.ui.Element[]} items An array of items to add to the group\n * @param {number} [index] Index of the insertion point\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.GroupElement.prototype.addItems = function ( items, index ) {\n\t// Mixin method\n\tOO.EmitterList.prototype.addItems.call( this, items, index );\n\n\tthis.emit( 'change', this.getItems() );\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.mixin.GroupElement.prototype.moveItem = function ( items, newIndex ) {\n\t// insertItemElements expects this.items to not have been modified yet, so call before the mixin\n\tthis.insertItemElements( items, newIndex );\n\n\t// Mixin method\n\tnewIndex = OO.EmitterList.prototype.moveItem.call( this, items, newIndex );\n\n\treturn newIndex;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.mixin.GroupElement.prototype.insertItem = function ( item, index ) {\n\titem.setElementGroup( this );\n\tthis.insertItemElements( item, index );\n\n\t// Mixin method\n\tindex = OO.EmitterList.prototype.insertItem.call( this, item, index );\n\n\treturn index;\n};\n\n/**\n * Insert elements into the group\n *\n * @private\n * @param {OO.ui.Element} itemWidget Item to insert\n * @param {number} index Insertion index\n */\nOO.ui.mixin.GroupElement.prototype.insertItemElements = function ( itemWidget, index ) {\n\tif ( index === undefined || index < 0 || index >= this.items.length ) {\n\t\tthis.$group.append( itemWidget.$element );\n\t} else if ( index === 0 ) {\n\t\tthis.$group.prepend( itemWidget.$element );\n\t} else {\n\t\tthis.items[ index ].$element.before( itemWidget.$element );\n\t}\n};\n\n/**\n * Remove the specified items from a group.\n *\n * Removed items are detached (not removed) from the DOM so that they may be reused.\n * To remove all items from a group, you may wish to use the #clearItems method instead.\n *\n * @param {OO.ui.Element[]} items An array of items to remove\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.GroupElement.prototype.removeItems = function ( items ) {\n\tvar i, len, item, index;\n\n\t// Remove specific items elements\n\tfor ( i = 0, len = items.length; i < len; i++ ) {\n\t\titem = items[ i ];\n\t\tindex = this.items.indexOf( item );\n\t\tif ( index !== -1 ) {\n\t\t\titem.setElementGroup( null );\n\t\t\titem.$element.detach();\n\t\t}\n\t}\n\n\t// Mixin method\n\tOO.EmitterList.prototype.removeItems.call( this, items );\n\n\tthis.emit( 'change', this.getItems() );\n\treturn this;\n};\n\n/**\n * Clear all items from the group.\n *\n * Cleared items are detached from the DOM, not removed, so that they may be reused.\n * To remove only a subset of items from a group, use the #removeItems method.\n *\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.GroupElement.prototype.clearItems = function () {\n\tvar i, len;\n\n\t// Remove all item elements\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\tthis.items[ i ].setElementGroup( null );\n\t\tthis.items[ i ].$element.detach();\n\t}\n\n\t// Mixin method\n\tOO.EmitterList.prototype.clearItems.call( this );\n\n\tthis.emit( 'change', this.getItems() );\n\treturn this;\n};\n","/**\n * LabelElement is often mixed into other classes to generate a label, which\n * helps identify the function of an interface element.\n * See the [OOUI documentation on MediaWiki] [1] for more information.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Labels\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$label] The label element created by the class. If this\n *  configuration is omitted, the label element will use a generated `<span>`.\n * @cfg {jQuery|string|Function|OO.ui.HtmlSnippet} [label] The label text. The label can be specified\n *  as a plaintext string, a jQuery selection of elements, or a function that will produce a string\n *  in the future. See the [OOUI documentation on MediaWiki] [2] for examples.\n *  [2]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Labels\n * @cfg {boolean} [invisibleLabel] Whether the label should be visually hidden (but still accessible\n *  to screen-readers).\n */\nOO.ui.mixin.LabelElement = function OoUiMixinLabelElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$label = null;\n\tthis.label = null;\n\tthis.invisibleLabel = null;\n\n\t// Initialization\n\tthis.setLabel( config.label || this.constructor.static.label );\n\tthis.setLabelElement( config.$label || $( '<span>' ) );\n\tthis.setInvisibleLabel( config.invisibleLabel );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.LabelElement );\n\n/* Events */\n\n/**\n * @event labelChange\n * @param {string} value\n */\n\n/* Static Properties */\n\n/**\n * The label text. The label can be specified as a plaintext string, a function that will\n * produce a string in the future, or `null` for no label. The static value will\n * be overridden if a label is specified with the #label config option.\n *\n * @static\n * @inheritable\n * @property {string|Function|null}\n */\nOO.ui.mixin.LabelElement.static.label = null;\n\n/* Static methods */\n\n/**\n * Highlight the first occurrence of the query in the given text\n *\n * @param {string} text Text\n * @param {string} query Query to find\n * @param {Function} [compare] Optional string comparator, e.g. Intl.Collator().compare\n * @return {jQuery} Text with the first match of the query\n *  sub-string wrapped in highlighted span\n */\nOO.ui.mixin.LabelElement.static.highlightQuery = function ( text, query, compare ) {\n\tvar i, tLen, qLen,\n\t\toffset = -1,\n\t\t$result = $( '<span>' );\n\n\tif ( compare ) {\n\t\ttLen = text.length;\n\t\tqLen = query.length;\n\t\tfor ( i = 0; offset === -1 && i <= tLen - qLen; i++ ) {\n\t\t\tif ( compare( query, text.slice( i, i + qLen ) ) === 0 ) {\n\t\t\t\toffset = i;\n\t\t\t}\n\t\t}\n\t} else {\n\t\toffset = text.toLowerCase().indexOf( query.toLowerCase() );\n\t}\n\n\tif ( !query.length || offset === -1 ) {\n\t\t$result.text( text );\n\t} else {\n\t\t$result.append(\n\t\t\tdocument.createTextNode( text.slice( 0, offset ) ),\n\t\t\t$( '<span>' )\n\t\t\t\t.addClass( 'oo-ui-labelElement-label-highlight' )\n\t\t\t\t.text( text.slice( offset, offset + query.length ) ),\n\t\t\tdocument.createTextNode( text.slice( offset + query.length ) )\n\t\t);\n\t}\n\treturn $result.contents();\n};\n\n/* Methods */\n\n/**\n * Set the label element.\n *\n * If an element is already set, it will be cleaned up before setting up the new element.\n *\n * @param {jQuery} $label Element to use as label\n */\nOO.ui.mixin.LabelElement.prototype.setLabelElement = function ( $label ) {\n\tif ( this.$label ) {\n\t\tthis.$label.removeClass( 'oo-ui-labelElement-label' ).empty();\n\t}\n\n\tthis.$label = $label.addClass( 'oo-ui-labelElement-label' );\n\tthis.setLabelContent( this.label );\n};\n\n/**\n * Set the label.\n *\n * An empty string will result in the label being hidden. A string containing only whitespace will\n * be converted to a single `&nbsp;`.\n *\n * @param {jQuery|string|OO.ui.HtmlSnippet|Function|null} label Label nodes; text; a function that returns nodes or\n *  text; or null for no label\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.LabelElement.prototype.setLabel = function ( label ) {\n\tlabel = typeof label === 'function' ? OO.ui.resolveMsg( label ) : label;\n\tlabel = ( ( typeof label === 'string' || label instanceof $ ) && label.length ) || ( label instanceof OO.ui.HtmlSnippet && label.toString().length ) ? label : null;\n\n\tif ( this.label !== label ) {\n\t\tif ( this.$label ) {\n\t\t\tthis.setLabelContent( label );\n\t\t}\n\t\tthis.label = label;\n\t\tthis.emit( 'labelChange' );\n\t}\n\n\tthis.$element.toggleClass( 'oo-ui-labelElement', !!this.label && !this.invisibleLabel );\n\n\treturn this;\n};\n\n/**\n * Set whether the label should be visually hidden (but still accessible to screen-readers).\n *\n * @param {boolean} invisibleLabel\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.LabelElement.prototype.setInvisibleLabel = function ( invisibleLabel ) {\n\tinvisibleLabel = !!invisibleLabel;\n\n\tif ( this.invisibleLabel !== invisibleLabel ) {\n\t\tthis.invisibleLabel = invisibleLabel;\n\t\tthis.emit( 'labelChange' );\n\t}\n\n\tthis.$label.toggleClass( 'oo-ui-labelElement-invisible', this.invisibleLabel );\n\t// Pretend that there is no label, a lot of CSS has been written with this assumption\n\tthis.$element.toggleClass( 'oo-ui-labelElement', !!this.label && !this.invisibleLabel );\n\n\treturn this;\n};\n\n/**\n * Set the label as plain text with a highlighted query\n *\n * @param {string} text Text label to set\n * @param {string} query Substring of text to highlight\n * @param {Function} [compare] Optional string comparator, e.g. Intl.Collator().compare\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.LabelElement.prototype.setHighlightedQuery = function ( text, query, compare ) {\n\treturn this.setLabel( this.constructor.static.highlightQuery( text, query, compare ) );\n};\n\n/**\n * Get the label.\n *\n * @return {jQuery|string|Function|null} Label nodes; text; a function that returns nodes or\n *  text; or null for no label\n */\nOO.ui.mixin.LabelElement.prototype.getLabel = function () {\n\treturn this.label;\n};\n\n/**\n * Set the content of the label.\n *\n * Do not call this method until after the label element has been set by #setLabelElement.\n *\n * @private\n * @param {jQuery|string|Function|null} label Label nodes; text; a function that returns nodes or\n *  text; or null for no label\n */\nOO.ui.mixin.LabelElement.prototype.setLabelContent = function ( label ) {\n\tif ( typeof label === 'string' ) {\n\t\tif ( label.match( /^\\s*$/ ) ) {\n\t\t\t// Convert whitespace only string to a single non-breaking space\n\t\t\tthis.$label.html( '&nbsp;' );\n\t\t} else {\n\t\t\tthis.$label.text( label );\n\t\t}\n\t} else if ( label instanceof OO.ui.HtmlSnippet ) {\n\t\tthis.$label.html( label.toString() );\n\t} else if ( label instanceof $ ) {\n\t\tthis.$label.empty().append( label );\n\t} else {\n\t\tthis.$label.empty();\n\t}\n};\n","/**\n * IconElement is often mixed into other classes to generate an icon.\n * Icons are graphics, about the size of normal text. They are used to aid the user\n * in locating a control or to convey information in a space-efficient way. See the\n * [OOUI documentation on MediaWiki] [1] for a list of icons\n * included in the library.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Icons\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$icon] The icon element created by the class. If this configuration is omitted,\n *  the icon element will use a generated `<span>`. To use a different HTML tag, or to specify that\n *  the icon element be set to an existing icon instead of the one generated by this class, set a\n *  value using a jQuery selection. For example:\n *\n *      // Use a <div> tag instead of a <span>\n *     $icon: $( '<div>' )\n *     // Use an existing icon element instead of the one generated by the class\n *     $icon: this.$element\n *     // Use an icon element from a child widget\n *     $icon: this.childwidget.$element\n * @cfg {Object|string} [icon=''] The symbolic name of the icon (e.g., ‘remove’ or ‘menu’), or a map of\n *  symbolic names.  A map is used for i18n purposes and contains a `default` icon\n *  name and additional names keyed by language code. The `default` name is used when no icon is keyed\n *  by the user's language.\n *\n *  Example of an i18n map:\n *\n *     { default: 'bold-a', en: 'bold-b', de: 'bold-f' }\n *  See the [OOUI documentation on MediaWiki] [2] for a list of icons included in the library.\n * [2]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Icons\n * @cfg {string|Function} [iconTitle] A text string used as the icon title, or a function that returns title\n *  text. The icon title is displayed when users move the mouse over the icon.\n */\nOO.ui.mixin.IconElement = function OoUiMixinIconElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$icon = null;\n\tthis.icon = null;\n\tthis.iconTitle = null;\n\n\t// `iconTitle`s are deprecated since 0.30.0\n\tif ( config.iconTitle !== undefined ) {\n\t\tOO.ui.warnDeprecation( 'IconElement: Widgets with iconTitle set are deprecated, use title instead. See T76638 for details.' );\n\t}\n\n\t// Initialization\n\tthis.setIcon( config.icon || this.constructor.static.icon );\n\tthis.setIconTitle( config.iconTitle || this.constructor.static.iconTitle );\n\tthis.setIconElement( config.$icon || $( '<span>' ) );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.IconElement );\n\n/* Static Properties */\n\n/**\n * The symbolic name of the icon (e.g., ‘remove’ or ‘menu’), or a map of symbolic names. A map is used\n * for i18n purposes and contains a `default` icon name and additional names keyed by\n * language code. The `default` name is used when no icon is keyed by the user's language.\n *\n * Example of an i18n map:\n *\n *     { default: 'bold-a', en: 'bold-b', de: 'bold-f' }\n *\n * Note: the static property will be overridden if the #icon configuration is used.\n *\n * @static\n * @inheritable\n * @property {Object|string}\n */\nOO.ui.mixin.IconElement.static.icon = null;\n\n/**\n * The icon title, displayed when users move the mouse over the icon. The value can be text, a\n * function that returns title text, or `null` for no title.\n *\n * The static property will be overridden if the #iconTitle configuration is used.\n *\n * @static\n * @inheritable\n * @property {string|Function|null}\n */\nOO.ui.mixin.IconElement.static.iconTitle = null;\n\n/* Methods */\n\n/**\n * Set the icon element. This method is used to retarget an icon mixin so that its functionality\n * applies to the specified icon element instead of the one created by the class. If an icon\n * element is already set, the mixin’s effect on that element is removed. Generated CSS classes\n * and mixin methods will no longer affect the element.\n *\n * @param {jQuery} $icon Element to use as icon\n */\nOO.ui.mixin.IconElement.prototype.setIconElement = function ( $icon ) {\n\tif ( this.$icon ) {\n\t\tthis.$icon\n\t\t\t.removeClass( 'oo-ui-iconElement-icon oo-ui-icon-' + this.icon )\n\t\t\t.removeAttr( 'title' );\n\t}\n\n\tthis.$icon = $icon\n\t\t.addClass( 'oo-ui-iconElement-icon' )\n\t\t.toggleClass( 'oo-ui-iconElement-noIcon', !this.icon )\n\t\t.toggleClass( 'oo-ui-icon-' + this.icon, !!this.icon );\n\tif ( this.iconTitle !== null ) {\n\t\tthis.$icon.attr( 'title', this.iconTitle );\n\t}\n\n\tthis.updateThemeClasses();\n};\n\n/**\n * Set icon by symbolic name (e.g., ‘remove’ or ‘menu’). Use `null` to remove an icon.\n * The icon parameter can also be set to a map of icon names. See the #icon config setting\n * for an example.\n *\n * @param {Object|string|null} icon A symbolic icon name, a {@link #icon map of icon names} keyed\n *  by language code, or `null` to remove the icon.\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.IconElement.prototype.setIcon = function ( icon ) {\n\ticon = OO.isPlainObject( icon ) ? OO.ui.getLocalValue( icon, null, 'default' ) : icon;\n\ticon = typeof icon === 'string' && icon.trim().length ? icon.trim() : null;\n\n\tif ( this.icon !== icon ) {\n\t\tif ( this.$icon ) {\n\t\t\tif ( this.icon !== null ) {\n\t\t\t\tthis.$icon.removeClass( 'oo-ui-icon-' + this.icon );\n\t\t\t}\n\t\t\tif ( icon !== null ) {\n\t\t\t\tthis.$icon.addClass( 'oo-ui-icon-' + icon );\n\t\t\t}\n\t\t}\n\t\tthis.icon = icon;\n\t}\n\n\tthis.$element.toggleClass( 'oo-ui-iconElement', !!this.icon );\n\tif ( this.$icon ) {\n\t\tthis.$icon.toggleClass( 'oo-ui-iconElement-noIcon', !this.icon );\n\t}\n\tthis.updateThemeClasses();\n\n\treturn this;\n};\n\n/**\n * Set the icon title. Use `null` to remove the title.\n *\n * @param {string|Function|null} iconTitle A text string used as the icon title,\n *  a function that returns title text, or `null` for no title.\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n * @deprecated\n */\nOO.ui.mixin.IconElement.prototype.setIconTitle = function ( iconTitle ) {\n\ticonTitle =\n\t\t( typeof iconTitle === 'function' || ( typeof iconTitle === 'string' && iconTitle.length ) ) ?\n\t\t\tOO.ui.resolveMsg( iconTitle ) : null;\n\n\tif ( this.iconTitle !== iconTitle ) {\n\t\tthis.iconTitle = iconTitle;\n\t\tif ( this.$icon ) {\n\t\t\tif ( this.iconTitle !== null ) {\n\t\t\t\tthis.$icon.attr( 'title', iconTitle );\n\t\t\t} else {\n\t\t\t\tthis.$icon.removeAttr( 'title' );\n\t\t\t}\n\t\t}\n\t}\n\n\t// `setIconTitle is deprecated since 0.30.0\n\tif ( iconTitle !== null ) {\n\t\t// Avoid a warning when this is called from the constructor with no iconTitle set\n\t\tOO.ui.warnDeprecation( 'IconElement: setIconTitle is deprecated, use setTitle of TitledElement instead. See T76638 for details.' );\n\t}\n\n\treturn this;\n};\n\n/**\n * Get the symbolic name of the icon.\n *\n * @return {string} Icon name\n */\nOO.ui.mixin.IconElement.prototype.getIcon = function () {\n\treturn this.icon;\n};\n\n/**\n * Get the icon title. The title text is displayed when a user moves the mouse over the icon.\n *\n * @return {string} Icon title text\n */\nOO.ui.mixin.IconElement.prototype.getIconTitle = function () {\n\treturn this.iconTitle;\n};\n","/**\n * IndicatorElement is often mixed into other classes to generate an indicator.\n * Indicators are small graphics that are generally used in two ways:\n *\n * - To draw attention to the status of an item. For example, an indicator might be\n *   used to show that an item in a list has errors that need to be resolved.\n * - To clarify the function of a control that acts in an exceptional way (a button\n *   that opens a menu instead of performing an action directly, for example).\n *\n * For a list of indicators included in the library, please see the\n * [OOUI documentation on MediaWiki] [1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Indicators\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$indicator] The indicator element created by the class. If this\n *  configuration is omitted, the indicator element will use a generated `<span>`.\n * @cfg {string} [indicator] Symbolic name of the indicator (e.g., ‘clear’ or ‘down’).\n *  See the [OOUI documentation on MediaWiki][2] for a list of indicators included\n *  in the library.\n * [2]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Indicators\n * @cfg {string|Function} [indicatorTitle] A text string used as the indicator title,\n *  or a function that returns title text. The indicator title is displayed when users move\n *  the mouse over the indicator.\n */\nOO.ui.mixin.IndicatorElement = function OoUiMixinIndicatorElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$indicator = null;\n\tthis.indicator = null;\n\tthis.indicatorTitle = null;\n\n\t// `indicatorTitle`s are deprecated since 0.30.0\n\tif ( config.indicatorTitle !== undefined ) {\n\t\tOO.ui.warnDeprecation( 'IndicatorElement: Widgets with indicatorTitle set are deprecated, use title instead. See T76638 for details.' );\n\t}\n\n\t// Initialization\n\tthis.setIndicator( config.indicator || this.constructor.static.indicator );\n\tthis.setIndicatorTitle( config.indicatorTitle || this.constructor.static.indicatorTitle );\n\tthis.setIndicatorElement( config.$indicator || $( '<span>' ) );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.IndicatorElement );\n\n/* Static Properties */\n\n/**\n * Symbolic name of the indicator (e.g., ‘clear’ or  ‘down’).\n * The static property will be overridden if the #indicator configuration is used.\n *\n * @static\n * @inheritable\n * @property {string|null}\n */\nOO.ui.mixin.IndicatorElement.static.indicator = null;\n\n/**\n * A text string used as the indicator title, a function that returns title text, or `null`\n * for no title. The static property will be overridden if the #indicatorTitle configuration is used.\n *\n * @static\n * @inheritable\n * @property {string|Function|null}\n */\nOO.ui.mixin.IndicatorElement.static.indicatorTitle = null;\n\n/* Methods */\n\n/**\n * Set the indicator element.\n *\n * If an element is already set, it will be cleaned up before setting up the new element.\n *\n * @param {jQuery} $indicator Element to use as indicator\n */\nOO.ui.mixin.IndicatorElement.prototype.setIndicatorElement = function ( $indicator ) {\n\tif ( this.$indicator ) {\n\t\tthis.$indicator\n\t\t\t.removeClass( 'oo-ui-indicatorElement-indicator oo-ui-indicator-' + this.indicator )\n\t\t\t.removeAttr( 'title' );\n\t}\n\n\tthis.$indicator = $indicator\n\t\t.addClass( 'oo-ui-indicatorElement-indicator' )\n\t\t.toggleClass( 'oo-ui-indicatorElement-noIndicator', !this.indicator )\n\t\t.toggleClass( 'oo-ui-indicator-' + this.indicator, !!this.indicator );\n\tif ( this.indicatorTitle !== null ) {\n\t\tthis.$indicator.attr( 'title', this.indicatorTitle );\n\t}\n\n\tthis.updateThemeClasses();\n};\n\n/**\n * Set the indicator by its symbolic name: ‘clear’, ‘down’, ‘required’, ‘search’, ‘up’. Use `null` to remove the indicator.\n *\n * @param {string|null} indicator Symbolic name of indicator, or `null` for no indicator\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.IndicatorElement.prototype.setIndicator = function ( indicator ) {\n\tindicator = typeof indicator === 'string' && indicator.length ? indicator.trim() : null;\n\n\tif ( this.indicator !== indicator ) {\n\t\tif ( this.$indicator ) {\n\t\t\tif ( this.indicator !== null ) {\n\t\t\t\tthis.$indicator.removeClass( 'oo-ui-indicator-' + this.indicator );\n\t\t\t}\n\t\t\tif ( indicator !== null ) {\n\t\t\t\tthis.$indicator.addClass( 'oo-ui-indicator-' + indicator );\n\t\t\t}\n\t\t}\n\t\tthis.indicator = indicator;\n\t}\n\n\tthis.$element.toggleClass( 'oo-ui-indicatorElement', !!this.indicator );\n\tif ( this.$indicator ) {\n\t\tthis.$indicator.toggleClass( 'oo-ui-indicatorElement-noIndicator', !this.indicator );\n\t}\n\tthis.updateThemeClasses();\n\n\treturn this;\n};\n\n/**\n * Set the indicator title.\n *\n * The title is displayed when a user moves the mouse over the indicator.\n *\n * @param {string|Function|null} indicatorTitle Indicator title text, a function that returns text, or\n *   `null` for no indicator title\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n * @deprecated\n */\nOO.ui.mixin.IndicatorElement.prototype.setIndicatorTitle = function ( indicatorTitle ) {\n\tindicatorTitle =\n\t\t( typeof indicatorTitle === 'function' || ( typeof indicatorTitle === 'string' && indicatorTitle.length ) ) ?\n\t\t\tOO.ui.resolveMsg( indicatorTitle ) : null;\n\n\tif ( this.indicatorTitle !== indicatorTitle ) {\n\t\tthis.indicatorTitle = indicatorTitle;\n\t\tif ( this.$indicator ) {\n\t\t\tif ( this.indicatorTitle !== null ) {\n\t\t\t\tthis.$indicator.attr( 'title', indicatorTitle );\n\t\t\t} else {\n\t\t\t\tthis.$indicator.removeAttr( 'title' );\n\t\t\t}\n\t\t}\n\t}\n\n\t// `setIndicatorTitle is deprecated since 0.30.0\n\tif ( indicatorTitle !== null ) {\n\t\t// Avoid a warning when this is called from the constructor with no indicatorTitle set\n\t\tOO.ui.warnDeprecation( 'IndicatorElement: setIndicatorTitle is deprecated, use setTitle of TitledElement instead. See T76638 for details.' );\n\t}\n\n\treturn this;\n};\n\n/**\n * Get the symbolic name of the indicator (e.g., ‘clear’ or  ‘down’).\n *\n * @return {string} Symbolic name of indicator\n */\nOO.ui.mixin.IndicatorElement.prototype.getIndicator = function () {\n\treturn this.indicator;\n};\n\n/**\n * Get the indicator title.\n *\n * The title is displayed when a user moves the mouse over the indicator.\n *\n * @return {string} Indicator title text\n */\nOO.ui.mixin.IndicatorElement.prototype.getIndicatorTitle = function () {\n\treturn this.indicatorTitle;\n};\n","/**\n * The FlaggedElement class is an attribute mixin, meaning that it is used to add\n * additional functionality to an element created by another class. The class provides\n * a ‘flags’ property assigned the name (or an array of names) of styling flags,\n * which are used to customize the look and feel of a widget to better describe its\n * importance and functionality.\n *\n * The library currently contains the following styling flags for general use:\n *\n * - **progressive**: Progressive styling is applied to convey that the widget will move the user forward in a process.\n * - **destructive**: Destructive styling is applied to convey that the widget will remove something.\n *\n * The flags affect the appearance of the buttons:\n *\n *     @example\n *     // FlaggedElement is mixed into ButtonWidget to provide styling flags\n *     var button1 = new OO.ui.ButtonWidget( {\n *             label: 'Progressive',\n *             flags: 'progressive'\n *         } ),\n *         button2 = new OO.ui.ButtonWidget( {\n *             label: 'Destructive',\n *             flags: 'destructive'\n *         } );\n *     $( document.body ).append( button1.$element, button2.$element );\n *\n * {@link OO.ui.ActionWidget ActionWidgets}, which are a special kind of button that execute an action, use these flags: **primary** and **safe**.\n * Please see the [OOUI documentation on MediaWiki] [1] for more information.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Elements/Flagged\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string|string[]} [flags] The name or names of the flags (e.g., 'progressive' or 'primary') to apply.\n *  Please see the [OOUI documentation on MediaWiki] [2] for more information about available flags.\n *  [2]: https://www.mediawiki.org/wiki/OOUI/Elements/Flagged\n * @cfg {jQuery} [$flagged] The flagged element. By default,\n *  the flagged functionality is applied to the element created by the class ($element).\n *  If a different element is specified, the flagged functionality will be applied to it instead.\n */\nOO.ui.mixin.FlaggedElement = function OoUiMixinFlaggedElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.flags = {};\n\tthis.$flagged = null;\n\n\t// Initialization\n\tthis.setFlags( config.flags );\n\tthis.setFlaggedElement( config.$flagged || this.$element );\n};\n\n/* Events */\n\n/**\n * @event flag\n * A flag event is emitted when the #clearFlags or #setFlags methods are used. The `changes`\n * parameter contains the name of each modified flag and indicates whether it was\n * added or removed.\n *\n * @param {Object.<string,boolean>} changes Object keyed by flag name. A Boolean `true` indicates\n * that the flag was added, `false` that the flag was removed.\n */\n\n/* Methods */\n\n/**\n * Set the flagged element.\n *\n * This method is used to retarget a flagged mixin so that its functionality applies to the specified element.\n * If an element is already set, the method will remove the mixin’s effect on that element.\n *\n * @param {jQuery} $flagged Element that should be flagged\n */\nOO.ui.mixin.FlaggedElement.prototype.setFlaggedElement = function ( $flagged ) {\n\tvar classNames = Object.keys( this.flags ).map( function ( flag ) {\n\t\treturn 'oo-ui-flaggedElement-' + flag;\n\t} );\n\n\tif ( this.$flagged ) {\n\t\tthis.$flagged.removeClass( classNames );\n\t}\n\n\tthis.$flagged = $flagged.addClass( classNames );\n};\n\n/**\n * Check if the specified flag is set.\n *\n * @param {string} flag Name of flag\n * @return {boolean} The flag is set\n */\nOO.ui.mixin.FlaggedElement.prototype.hasFlag = function ( flag ) {\n\t// This may be called before the constructor, thus before this.flags is set\n\treturn this.flags && ( flag in this.flags );\n};\n\n/**\n * Get the names of all flags set.\n *\n * @return {string[]} Flag names\n */\nOO.ui.mixin.FlaggedElement.prototype.getFlags = function () {\n\t// This may be called before the constructor, thus before this.flags is set\n\treturn Object.keys( this.flags || {} );\n};\n\n/**\n * Clear all flags.\n *\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n * @fires flag\n */\nOO.ui.mixin.FlaggedElement.prototype.clearFlags = function () {\n\tvar flag, className,\n\t\tchanges = {},\n\t\tremove = [],\n\t\tclassPrefix = 'oo-ui-flaggedElement-';\n\n\tfor ( flag in this.flags ) {\n\t\tclassName = classPrefix + flag;\n\t\tchanges[ flag ] = false;\n\t\tdelete this.flags[ flag ];\n\t\tremove.push( className );\n\t}\n\n\tif ( this.$flagged ) {\n\t\tthis.$flagged.removeClass( remove );\n\t}\n\n\tthis.updateThemeClasses();\n\tthis.emit( 'flag', changes );\n\n\treturn this;\n};\n\n/**\n * Add one or more flags.\n *\n * @param {string|string[]|Object.<string, boolean>} flags A flag name, an array of flag names,\n *  or an object keyed by flag name with a boolean value that indicates whether the flag should\n *  be added (`true`) or removed (`false`).\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n * @fires flag\n */\nOO.ui.mixin.FlaggedElement.prototype.setFlags = function ( flags ) {\n\tvar i, len, flag, className,\n\t\tchanges = {},\n\t\tadd = [],\n\t\tremove = [],\n\t\tclassPrefix = 'oo-ui-flaggedElement-';\n\n\tif ( typeof flags === 'string' ) {\n\t\tclassName = classPrefix + flags;\n\t\t// Set\n\t\tif ( !this.flags[ flags ] ) {\n\t\t\tthis.flags[ flags ] = true;\n\t\t\tadd.push( className );\n\t\t}\n\t} else if ( Array.isArray( flags ) ) {\n\t\tfor ( i = 0, len = flags.length; i < len; i++ ) {\n\t\t\tflag = flags[ i ];\n\t\t\tclassName = classPrefix + flag;\n\t\t\t// Set\n\t\t\tif ( !this.flags[ flag ] ) {\n\t\t\t\tchanges[ flag ] = true;\n\t\t\t\tthis.flags[ flag ] = true;\n\t\t\t\tadd.push( className );\n\t\t\t}\n\t\t}\n\t} else if ( OO.isPlainObject( flags ) ) {\n\t\tfor ( flag in flags ) {\n\t\t\tclassName = classPrefix + flag;\n\t\t\tif ( flags[ flag ] ) {\n\t\t\t\t// Set\n\t\t\t\tif ( !this.flags[ flag ] ) {\n\t\t\t\t\tchanges[ flag ] = true;\n\t\t\t\t\tthis.flags[ flag ] = true;\n\t\t\t\t\tadd.push( className );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Remove\n\t\t\t\tif ( this.flags[ flag ] ) {\n\t\t\t\t\tchanges[ flag ] = false;\n\t\t\t\t\tdelete this.flags[ flag ];\n\t\t\t\t\tremove.push( className );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( this.$flagged ) {\n\t\tthis.$flagged\n\t\t\t.addClass( add )\n\t\t\t.removeClass( remove );\n\t}\n\n\tthis.updateThemeClasses();\n\tthis.emit( 'flag', changes );\n\n\treturn this;\n};\n","/**\n * TitledElement is mixed into other classes to provide a `title` attribute.\n * Titles are rendered by the browser and are made visible when the user moves\n * the mouse over the element. Titles are not visible on touch devices.\n *\n *     @example\n *     // TitledElement provides a `title` attribute to the\n *     // ButtonWidget class.\n *     var button = new OO.ui.ButtonWidget( {\n *         label: 'Button with Title',\n *         title: 'I am a button'\n *     } );\n *     $( document.body ).append( button.$element );\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$titled] The element to which the `title` attribute is applied.\n *  If this config is omitted, the title functionality is applied to $element, the\n *  element created by the class.\n * @cfg {string|Function} [title] The title text or a function that returns text. If\n *  this config is omitted, the value of the {@link #static-title static title} property is used.\n */\nOO.ui.mixin.TitledElement = function OoUiMixinTitledElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$titled = null;\n\tthis.title = null;\n\n\t// Initialization\n\tthis.setTitle( config.title !== undefined ? config.title : this.constructor.static.title );\n\tthis.setTitledElement( config.$titled || this.$element );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.TitledElement );\n\n/* Static Properties */\n\n/**\n * The title text, a function that returns text, or `null` for no title. The value of the static property\n * is overridden if the #title config option is used.\n *\n * @static\n * @inheritable\n * @property {string|Function|null}\n */\nOO.ui.mixin.TitledElement.static.title = null;\n\n/* Methods */\n\n/**\n * Set the titled element.\n *\n * This method is used to retarget a TitledElement mixin so that its functionality applies to the specified element.\n * If an element is already set, the mixin’s effect on that element is removed before the new element is set up.\n *\n * @param {jQuery} $titled Element that should use the 'titled' functionality\n */\nOO.ui.mixin.TitledElement.prototype.setTitledElement = function ( $titled ) {\n\tif ( this.$titled ) {\n\t\tthis.$titled.removeAttr( 'title' );\n\t}\n\n\tthis.$titled = $titled;\n\tif ( this.title ) {\n\t\tthis.updateTitle();\n\t}\n};\n\n/**\n * Set title.\n *\n * @param {string|Function|null} title Title text, a function that returns text, or `null` for no title\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.TitledElement.prototype.setTitle = function ( title ) {\n\ttitle = typeof title === 'function' ? OO.ui.resolveMsg( title ) : title;\n\ttitle = ( typeof title === 'string' && title.length ) ? title : null;\n\n\tif ( this.title !== title ) {\n\t\tthis.title = title;\n\t\tthis.updateTitle();\n\t}\n\n\treturn this;\n};\n\n/**\n * Update the title attribute, in case of changes to title or accessKey.\n *\n * @protected\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.TitledElement.prototype.updateTitle = function () {\n\tvar title = this.getTitle();\n\tif ( this.$titled ) {\n\t\tif ( title !== null ) {\n\t\t\t// Only if this is an AccessKeyedElement\n\t\t\tif ( this.formatTitleWithAccessKey ) {\n\t\t\t\ttitle = this.formatTitleWithAccessKey( title );\n\t\t\t}\n\t\t\tthis.$titled.attr( 'title', title );\n\t\t} else {\n\t\t\tthis.$titled.removeAttr( 'title' );\n\t\t}\n\t}\n\treturn this;\n};\n\n/**\n * Get title.\n *\n * @return {string} Title string\n */\nOO.ui.mixin.TitledElement.prototype.getTitle = function () {\n\treturn this.title;\n};\n","/**\n * AccessKeyedElement is mixed into other classes to provide an `accesskey` HTML attribute.\n * Accesskeys allow an user to go to a specific element by using\n * a shortcut combination of a browser specific keys + the key\n * set to the field.\n *\n *     @example\n *     // AccessKeyedElement provides an `accesskey` attribute to the\n *     // ButtonWidget class.\n *     var button = new OO.ui.ButtonWidget( {\n *         label: 'Button with Accesskey',\n *         accessKey: 'k'\n *     } );\n *     $( document.body ).append( button.$element );\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$accessKeyed] The element to which the `accesskey` attribute is applied.\n *  If this config is omitted, the accesskey functionality is applied to $element, the\n *  element created by the class.\n * @cfg {string|Function} [accessKey] The key or a function that returns the key. If\n *  this config is omitted, no accesskey will be added.\n */\nOO.ui.mixin.AccessKeyedElement = function OoUiMixinAccessKeyedElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$accessKeyed = null;\n\tthis.accessKey = null;\n\n\t// Initialization\n\tthis.setAccessKey( config.accessKey || null );\n\tthis.setAccessKeyedElement( config.$accessKeyed || this.$element );\n\n\t// If this is also a TitledElement and it initialized before we did, we may have\n\t// to update the title with the access key\n\tif ( this.updateTitle ) {\n\t\tthis.updateTitle();\n\t}\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.AccessKeyedElement );\n\n/* Static Properties */\n\n/**\n * The access key, a function that returns a key, or `null` for no accesskey.\n *\n * @static\n * @inheritable\n * @property {string|Function|null}\n */\nOO.ui.mixin.AccessKeyedElement.static.accessKey = null;\n\n/* Methods */\n\n/**\n * Set the accesskeyed element.\n *\n * This method is used to retarget a AccessKeyedElement mixin so that its functionality applies to the specified element.\n * If an element is already set, the mixin's effect on that element is removed before the new element is set up.\n *\n * @param {jQuery} $accessKeyed Element that should use the 'accesskeyed' functionality\n */\nOO.ui.mixin.AccessKeyedElement.prototype.setAccessKeyedElement = function ( $accessKeyed ) {\n\tif ( this.$accessKeyed ) {\n\t\tthis.$accessKeyed.removeAttr( 'accesskey' );\n\t}\n\n\tthis.$accessKeyed = $accessKeyed;\n\tif ( this.accessKey ) {\n\t\tthis.$accessKeyed.attr( 'accesskey', this.accessKey );\n\t}\n};\n\n/**\n * Set accesskey.\n *\n * @param {string|Function|null} accessKey Key, a function that returns a key, or `null` for no accesskey\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.AccessKeyedElement.prototype.setAccessKey = function ( accessKey ) {\n\taccessKey = typeof accessKey === 'string' ? OO.ui.resolveMsg( accessKey ) : null;\n\n\tif ( this.accessKey !== accessKey ) {\n\t\tif ( this.$accessKeyed ) {\n\t\t\tif ( accessKey !== null ) {\n\t\t\t\tthis.$accessKeyed.attr( 'accesskey', accessKey );\n\t\t\t} else {\n\t\t\t\tthis.$accessKeyed.removeAttr( 'accesskey' );\n\t\t\t}\n\t\t}\n\t\tthis.accessKey = accessKey;\n\n\t\t// Only if this is a TitledElement\n\t\tif ( this.updateTitle ) {\n\t\t\tthis.updateTitle();\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Get accesskey.\n *\n * @return {string} accessKey string\n */\nOO.ui.mixin.AccessKeyedElement.prototype.getAccessKey = function () {\n\treturn this.accessKey;\n};\n\n/**\n * Add information about the access key to the element's tooltip label.\n * (This is only public for hacky usage in FieldLayout.)\n *\n * @param {string} title Tooltip label for `title` attribute\n * @return {string}\n */\nOO.ui.mixin.AccessKeyedElement.prototype.formatTitleWithAccessKey = function ( title ) {\n\tvar accessKey;\n\n\tif ( !this.$accessKeyed ) {\n\t\t// Not initialized yet; the constructor will call updateTitle() which will rerun this function\n\t\treturn title;\n\t}\n\t// Use jquery.accessKeyLabel if available to show modifiers, otherwise just display the single key\n\tif ( $.fn.updateTooltipAccessKeys && $.fn.updateTooltipAccessKeys.getAccessKeyLabel ) {\n\t\taccessKey = $.fn.updateTooltipAccessKeys.getAccessKeyLabel( this.$accessKeyed[ 0 ] );\n\t} else {\n\t\taccessKey = this.getAccessKey();\n\t}\n\tif ( accessKey ) {\n\t\ttitle += ' [' + accessKey + ']';\n\t}\n\treturn title;\n};\n","/**\n * ButtonWidget is a generic widget for buttons. A wide variety of looks,\n * feels, and functionality can be customized via the class’s configuration options\n * and methods. Please see the [OOUI documentation on MediaWiki] [1] for more information\n * and examples.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Buttons_and_Switches\n *\n *     @example\n *     // A button widget.\n *     var button = new OO.ui.ButtonWidget( {\n *         label: 'Button with Icon',\n *         icon: 'trash',\n *         title: 'Remove'\n *     } );\n *     $( document.body ).append( button.$element );\n *\n * NOTE: HTML form buttons should use the OO.ui.ButtonInputWidget class.\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.ButtonElement\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.TitledElement\n * @mixins OO.ui.mixin.FlaggedElement\n * @mixins OO.ui.mixin.TabIndexedElement\n * @mixins OO.ui.mixin.AccessKeyedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [active=false] Whether button should be shown as active\n * @cfg {string} [href] Hyperlink to visit when the button is clicked.\n * @cfg {string} [target] The frame or window in which to open the hyperlink.\n * @cfg {boolean} [noFollow] Search engine traversal hint (default: true)\n */\nOO.ui.ButtonWidget = function OoUiButtonWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.ButtonWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.ButtonElement.call( this, config );\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$button } ) );\n\tOO.ui.mixin.FlaggedElement.call( this, config );\n\tOO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$button } ) );\n\tOO.ui.mixin.AccessKeyedElement.call( this, $.extend( {}, config, { $accessKeyed: this.$button } ) );\n\n\t// Properties\n\tthis.href = null;\n\tthis.target = null;\n\tthis.noFollow = false;\n\n\t// Events\n\tthis.connect( this, { disable: 'onDisable' } );\n\n\t// Initialization\n\tthis.$button.append( this.$icon, this.$label, this.$indicator );\n\tthis.$element\n\t\t.addClass( 'oo-ui-buttonWidget' )\n\t\t.append( this.$button );\n\tthis.setActive( config.active );\n\tthis.setHref( config.href );\n\tthis.setTarget( config.target );\n\tthis.setNoFollow( config.noFollow );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ButtonWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.ButtonElement );\nOO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.TitledElement );\nOO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.FlaggedElement );\nOO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.TabIndexedElement );\nOO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.AccessKeyedElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.ButtonWidget.static.cancelButtonMouseDownEvents = false;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.ButtonWidget.static.tagName = 'span';\n\n/* Methods */\n\n/**\n * Get hyperlink location.\n *\n * @return {string} Hyperlink location\n */\nOO.ui.ButtonWidget.prototype.getHref = function () {\n\treturn this.href;\n};\n\n/**\n * Get hyperlink target.\n *\n * @return {string} Hyperlink target\n */\nOO.ui.ButtonWidget.prototype.getTarget = function () {\n\treturn this.target;\n};\n\n/**\n * Get search engine traversal hint.\n *\n * @return {boolean} Whether search engines should avoid traversing this hyperlink\n */\nOO.ui.ButtonWidget.prototype.getNoFollow = function () {\n\treturn this.noFollow;\n};\n\n/**\n * Set hyperlink location.\n *\n * @param {string|null} href Hyperlink location, null to remove\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ButtonWidget.prototype.setHref = function ( href ) {\n\thref = typeof href === 'string' ? href : null;\n\tif ( href !== null && !OO.ui.isSafeUrl( href ) ) {\n\t\thref = './' + href;\n\t}\n\n\tif ( href !== this.href ) {\n\t\tthis.href = href;\n\t\tthis.updateHref();\n\t}\n\n\treturn this;\n};\n\n/**\n * Update the `href` attribute, in case of changes to href or\n * disabled state.\n *\n * @private\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ButtonWidget.prototype.updateHref = function () {\n\tif ( this.href !== null && !this.isDisabled() ) {\n\t\tthis.$button.attr( 'href', this.href );\n\t} else {\n\t\tthis.$button.removeAttr( 'href' );\n\t}\n\n\treturn this;\n};\n\n/**\n * Handle disable events.\n *\n * @private\n * @param {boolean} disabled Element is disabled\n */\nOO.ui.ButtonWidget.prototype.onDisable = function () {\n\tthis.updateHref();\n};\n\n/**\n * Set hyperlink target.\n *\n * @param {string|null} target Hyperlink target, null to remove\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ButtonWidget.prototype.setTarget = function ( target ) {\n\ttarget = typeof target === 'string' ? target : null;\n\n\tif ( target !== this.target ) {\n\t\tthis.target = target;\n\t\tif ( target !== null ) {\n\t\t\tthis.$button.attr( 'target', target );\n\t\t} else {\n\t\t\tthis.$button.removeAttr( 'target' );\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Set search engine traversal hint.\n *\n * @param {boolean} noFollow True if search engines should avoid traversing this hyperlink\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ButtonWidget.prototype.setNoFollow = function ( noFollow ) {\n\tnoFollow = typeof noFollow === 'boolean' ? noFollow : true;\n\n\tif ( noFollow !== this.noFollow ) {\n\t\tthis.noFollow = noFollow;\n\t\tif ( noFollow ) {\n\t\t\tthis.$button.attr( 'rel', 'nofollow' );\n\t\t} else {\n\t\t\tthis.$button.removeAttr( 'rel' );\n\t\t}\n\t}\n\n\treturn this;\n};\n\n// Override method visibility hints from ButtonElement\n/**\n * @method setActive\n * @inheritdoc\n */\n/**\n * @method isActive\n * @inheritdoc\n */\n","/**\n * A ButtonGroupWidget groups related buttons and is used together with OO.ui.ButtonWidget and\n * its subclasses. Each button in a group is addressed by a unique reference. Buttons can be added,\n * removed, and cleared from the group.\n *\n *     @example\n *     // A ButtonGroupWidget with two buttons.\n *     var button1 = new OO.ui.PopupButtonWidget( {\n *             label: 'Select a category',\n *             icon: 'menu',\n *             popup: {\n *                 $content: $( '<p>List of categories…</p>' ),\n *                 padded: true,\n *                 align: 'left'\n *             }\n *         } ),\n *         button2 = new OO.ui.ButtonWidget( {\n *             label: 'Add item'\n *         } ),\n *         buttonGroup = new OO.ui.ButtonGroupWidget( {\n *             items: [ button1, button2 ]\n *         } );\n *     $( document.body ).append( buttonGroup.$element );\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.GroupElement\n * @mixins OO.ui.mixin.TitledElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.ui.ButtonWidget[]} [items] Buttons to add\n */\nOO.ui.ButtonGroupWidget = function OoUiButtonGroupWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.ButtonGroupWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );\n\tOO.ui.mixin.TitledElement.call( this, config );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-buttonGroupWidget' );\n\tif ( Array.isArray( config.items ) ) {\n\t\tthis.addItems( config.items );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ButtonGroupWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.ButtonGroupWidget, OO.ui.mixin.GroupElement );\nOO.mixinClass( OO.ui.ButtonGroupWidget, OO.ui.mixin.TitledElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.ButtonGroupWidget.static.tagName = 'span';\n\n/* Methods */\n\n/**\n * Focus the widget\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ButtonGroupWidget.prototype.focus = function () {\n\tif ( !this.isDisabled() ) {\n\t\tif ( this.items[ 0 ] ) {\n\t\t\tthis.items[ 0 ].focus();\n\t\t}\n\t}\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ButtonGroupWidget.prototype.simulateLabelClick = function () {\n\tthis.focus();\n};\n","/**\n * IconWidget is a generic widget for {@link OO.ui.mixin.IconElement icons}. In general, IconWidgets should be used with OO.ui.LabelWidget,\n * which creates a label that identifies the icon’s function. See the [OOUI documentation on MediaWiki] [1]\n * for a list of icons included in the library.\n *\n *     @example\n *     // An IconWidget with a label via LabelWidget.\n *     var myIcon = new OO.ui.IconWidget( {\n *             icon: 'help',\n *             title: 'Help'\n *          } ),\n *          // Create a label.\n *          iconLabel = new OO.ui.LabelWidget( {\n *              label: 'Help'\n *          } );\n *      $( document.body ).append( myIcon.$element, iconLabel.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Icons\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.TitledElement\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.FlaggedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.IconWidget = function OoUiIconWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.IconWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.IconElement.call( this, $.extend( {}, config, { $icon: this.$element } ) );\n\tOO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$element } ) );\n\tOO.ui.mixin.LabelElement.call( this, $.extend( {}, config, { $label: this.$element, invisibleLabel: true } ) );\n\tOO.ui.mixin.FlaggedElement.call( this, $.extend( {}, config, { $flagged: this.$element } ) );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-iconWidget' );\n\t// Remove class added by LabelElement initialization. It causes unexpected CSS to apply when\n\t// nested in other widgets, because this widget used to not mix in LabelElement.\n\tthis.$element.removeClass( 'oo-ui-labelElement-label' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.IconWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.IconWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.IconWidget, OO.ui.mixin.TitledElement );\nOO.mixinClass( OO.ui.IconWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.IconWidget, OO.ui.mixin.FlaggedElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.IconWidget.static.tagName = 'span';\n","/**\n * IndicatorWidgets create indicators, which are small graphics that are generally used to draw\n * attention to the status of an item or to clarify the function within a control. For a list of\n * indicators included in the library, please see the [OOUI documentation on MediaWiki][1].\n *\n *     @example\n *     // An indicator widget.\n *     var indicator1 = new OO.ui.IndicatorWidget( {\n *             indicator: 'required'\n *         } ),\n *         // Create a fieldset layout to add a label.\n *         fieldset = new OO.ui.FieldsetLayout();\n *     fieldset.addItems( [\n *         new OO.ui.FieldLayout( indicator1, {\n *             label: 'A required indicator:'\n *         } )\n *     ] );\n *     $( document.body ).append( fieldset.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Icons,_Indicators,_and_Labels#Indicators\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.TitledElement\n * @mixins OO.ui.mixin.LabelElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.IndicatorWidget = function OoUiIndicatorWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.IndicatorWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.IndicatorElement.call( this, $.extend( {}, config, { $indicator: this.$element } ) );\n\tOO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$element } ) );\n\tOO.ui.mixin.LabelElement.call( this, $.extend( {}, config, { $label: this.$element, invisibleLabel: true } ) );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-indicatorWidget' );\n\t// Remove class added by LabelElement initialization. It causes unexpected CSS to apply when\n\t// nested in other widgets, because this widget used to not mix in LabelElement.\n\tthis.$element.removeClass( 'oo-ui-labelElement-label' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.IndicatorWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.IndicatorWidget, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.IndicatorWidget, OO.ui.mixin.TitledElement );\nOO.mixinClass( OO.ui.IndicatorWidget, OO.ui.mixin.LabelElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.IndicatorWidget.static.tagName = 'span';\n","/**\n * LabelWidgets help identify the function of interface elements. Each LabelWidget can\n * be configured with a `label` option that is set to a string, a label node, or a function:\n *\n * - String: a plaintext string\n * - jQuery selection: a jQuery selection, used for anything other than a plaintext label, e.g., a\n *   label that includes a link or special styling, such as a gray color or additional graphical elements.\n * - Function: a function that will produce a string in the future. Functions are used\n *   in cases where the value of the label is not currently defined.\n *\n * In addition, the LabelWidget can be associated with an {@link OO.ui.InputWidget input widget}, which\n * will come into focus when the label is clicked.\n *\n *     @example\n *     // Two LabelWidgets.\n *     var label1 = new OO.ui.LabelWidget( {\n *             label: 'plaintext label'\n *         } ),\n *         label2 = new OO.ui.LabelWidget( {\n *             label: $( '<a>' ).attr( 'href', 'default.html' ).text( 'jQuery label' )\n *         } ),\n *         // Create a fieldset layout with fields for each example.\n *         fieldset = new OO.ui.FieldsetLayout();\n *     fieldset.addItems( [\n *         new OO.ui.FieldLayout( label1 ),\n *         new OO.ui.FieldLayout( label2 )\n *     ] );\n *     $( document.body ).append( fieldset.$element );\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.TitledElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.ui.InputWidget} [input] {@link OO.ui.InputWidget Input widget} that uses the label.\n *  Clicking the label will focus the specified input field.\n */\nOO.ui.LabelWidget = function OoUiLabelWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.LabelWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.LabelElement.call( this, $.extend( {}, config, { $label: this.$element } ) );\n\tOO.ui.mixin.TitledElement.call( this, config );\n\n\t// Properties\n\tthis.input = config.input;\n\n\t// Initialization\n\tif ( this.input ) {\n\t\tif ( this.input.getInputId() ) {\n\t\t\tthis.$element.attr( 'for', this.input.getInputId() );\n\t\t} else {\n\t\t\tthis.$label.on( 'click', function () {\n\t\t\t\tthis.input.simulateLabelClick();\n\t\t\t}.bind( this ) );\n\t\t}\n\t}\n\tthis.$element.addClass( 'oo-ui-labelWidget' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.LabelWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.LabelWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.LabelWidget, OO.ui.mixin.TitledElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.LabelWidget.static.tagName = 'label';\n","/**\n * PendingElement is a mixin that is used to create elements that notify users that something is happening\n * and that they should wait before proceeding. The pending state is visually represented with a pending\n * texture that appears in the head of a pending {@link OO.ui.ProcessDialog process dialog} or in the input\n * field of a {@link OO.ui.TextInputWidget text input widget}.\n *\n * Currently, {@link OO.ui.ActionWidget Action widgets}, which mix in this class, can also be marked as pending, but only when\n * used in {@link OO.ui.MessageDialog message dialogs}. The behavior is not currently supported for action widgets used\n * in process dialogs.\n *\n *     @example\n *     function MessageDialog( config ) {\n *         MessageDialog.parent.call( this, config );\n *     }\n *     OO.inheritClass( MessageDialog, OO.ui.MessageDialog );\n *\n *     MessageDialog.static.name = 'myMessageDialog';\n *     MessageDialog.static.actions = [\n *         { action: 'save', label: 'Done', flags: 'primary' },\n *         { label: 'Cancel', flags: 'safe' }\n *     ];\n *\n *     MessageDialog.prototype.initialize = function () {\n *         MessageDialog.parent.prototype.initialize.apply( this, arguments );\n *         this.content = new OO.ui.PanelLayout( { padded: true } );\n *         this.content.$element.append( '<p>Click the \\'Done\\' action widget to see its pending state. Note that action widgets can be marked pending in message dialogs but not process dialogs.</p>' );\n *         this.$body.append( this.content.$element );\n *     };\n *     MessageDialog.prototype.getBodyHeight = function () {\n *         return 100;\n *     }\n *     MessageDialog.prototype.getActionProcess = function ( action ) {\n *         var dialog = this;\n *         if ( action === 'save' ) {\n *             dialog.getActions().get({actions: 'save'})[0].pushPending();\n *             return new OO.ui.Process()\n *             .next( 1000 )\n *             .next( function () {\n *                 dialog.getActions().get({actions: 'save'})[0].popPending();\n *             } );\n *         }\n *         return MessageDialog.parent.prototype.getActionProcess.call( this, action );\n *     };\n *\n *     var windowManager = new OO.ui.WindowManager();\n *     $( document.body ).append( windowManager.$element );\n *\n *     var dialog = new MessageDialog();\n *     windowManager.addWindows( [ dialog ] );\n *     windowManager.openWindow( dialog );\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$pending] Element to mark as pending, defaults to this.$element\n */\nOO.ui.mixin.PendingElement = function OoUiMixinPendingElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.pending = 0;\n\tthis.$pending = null;\n\n\t// Initialisation\n\tthis.setPendingElement( config.$pending || this.$element );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.PendingElement );\n\n/* Methods */\n\n/**\n * Set the pending element (and clean up any existing one).\n *\n * @param {jQuery} $pending The element to set to pending.\n */\nOO.ui.mixin.PendingElement.prototype.setPendingElement = function ( $pending ) {\n\tif ( this.$pending ) {\n\t\tthis.$pending.removeClass( 'oo-ui-pendingElement-pending' );\n\t}\n\n\tthis.$pending = $pending;\n\tif ( this.pending > 0 ) {\n\t\tthis.$pending.addClass( 'oo-ui-pendingElement-pending' );\n\t}\n};\n\n/**\n * Check if an element is pending.\n *\n * @return {boolean} Element is pending\n */\nOO.ui.mixin.PendingElement.prototype.isPending = function () {\n\treturn !!this.pending;\n};\n\n/**\n * Increase the pending counter. The pending state will remain active until the counter is zero\n * (i.e., the number of calls to #pushPending and #popPending is the same).\n *\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.PendingElement.prototype.pushPending = function () {\n\tif ( this.pending === 0 ) {\n\t\tthis.$pending.addClass( 'oo-ui-pendingElement-pending' );\n\t\tthis.updateThemeClasses();\n\t}\n\tthis.pending++;\n\n\treturn this;\n};\n\n/**\n * Decrease the pending counter. The pending state will remain active until the counter is zero\n * (i.e., the number of calls to #pushPending and #popPending is the same).\n *\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.PendingElement.prototype.popPending = function () {\n\tif ( this.pending === 1 ) {\n\t\tthis.$pending.removeClass( 'oo-ui-pendingElement-pending' );\n\t\tthis.updateThemeClasses();\n\t}\n\tthis.pending = Math.max( 0, this.pending - 1 );\n\n\treturn this;\n};\n","/**\n * Element that will stick adjacent to a specified container, even when it is inserted elsewhere\n * in the document (for example, in an OO.ui.Window's $overlay).\n *\n * The elements's position is automatically calculated and maintained when window is resized or the\n * page is scrolled. If you reposition the container manually, you have to call #position to make\n * sure the element is still placed correctly.\n *\n * As positioning is only possible when both the element and the container are attached to the DOM\n * and visible, it's only done after you call #togglePositioning. You might want to do this inside\n * the #toggle method to display a floating popup, for example.\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$floatable] Node to position, assigned to #$floatable, omit to use #$element\n * @cfg {jQuery} [$floatableContainer] Node to position adjacent to\n * @cfg {string} [verticalPosition='below'] Where to position $floatable vertically:\n *  'below': Directly below $floatableContainer, aligning f's top edge with fC's bottom edge\n *  'above': Directly above $floatableContainer, aligning f's bottom edge with fC's top edge\n *  'top': Align the top edge with $floatableContainer's top edge\n *  'bottom': Align the bottom edge with $floatableContainer's bottom edge\n *  'center': Vertically align the center with $floatableContainer's center\n * @cfg {string} [horizontalPosition='start'] Where to position $floatable horizontally:\n *  'before': Directly before $floatableContainer, aligning f's end edge with fC's start edge\n *  'after': Directly after $floatableContainer, aligning f's start edge with fC's end edge\n *  'start': Align the start (left in LTR, right in RTL) edge with $floatableContainer's start edge\n *  'end': Align the end (right in LTR, left in RTL) edge with $floatableContainer's end edge\n *  'center': Horizontally align the center with $floatableContainer's center\n * @cfg {boolean} [hideWhenOutOfView=true] Whether to hide the floatable element if the container\n *  is out of view\n */\nOO.ui.mixin.FloatableElement = function OoUiMixinFloatableElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$floatable = null;\n\tthis.$floatableContainer = null;\n\tthis.$floatableWindow = null;\n\tthis.$floatableClosestScrollable = null;\n\tthis.floatableOutOfView = false;\n\tthis.onFloatableScrollHandler = this.position.bind( this );\n\tthis.onFloatableWindowResizeHandler = this.position.bind( this );\n\n\t// Initialization\n\tthis.setFloatableContainer( config.$floatableContainer );\n\tthis.setFloatableElement( config.$floatable || this.$element );\n\tthis.setVerticalPosition( config.verticalPosition || 'below' );\n\tthis.setHorizontalPosition( config.horizontalPosition || 'start' );\n\tthis.hideWhenOutOfView = config.hideWhenOutOfView === undefined ? true : !!config.hideWhenOutOfView;\n};\n\n/* Methods */\n\n/**\n * Set floatable element.\n *\n * If an element is already set, it will be cleaned up before setting up the new element.\n *\n * @param {jQuery} $floatable Element to make floatable\n */\nOO.ui.mixin.FloatableElement.prototype.setFloatableElement = function ( $floatable ) {\n\tif ( this.$floatable ) {\n\t\tthis.$floatable.removeClass( 'oo-ui-floatableElement-floatable' );\n\t\tthis.$floatable.css( { left: '', top: '' } );\n\t}\n\n\tthis.$floatable = $floatable.addClass( 'oo-ui-floatableElement-floatable' );\n\tthis.position();\n};\n\n/**\n * Set floatable container.\n *\n * The element will be positioned relative to the specified container.\n *\n * @param {jQuery|null} $floatableContainer Container to keep visible, or null to unset\n */\nOO.ui.mixin.FloatableElement.prototype.setFloatableContainer = function ( $floatableContainer ) {\n\tthis.$floatableContainer = $floatableContainer;\n\tif ( this.$floatable ) {\n\t\tthis.position();\n\t}\n};\n\n/**\n * Change how the element is positioned vertically.\n *\n * @param {string} position 'below', 'above', 'top', 'bottom' or 'center'\n */\nOO.ui.mixin.FloatableElement.prototype.setVerticalPosition = function ( position ) {\n\tif ( [ 'below', 'above', 'top', 'bottom', 'center' ].indexOf( position ) === -1 ) {\n\t\tthrow new Error( 'Invalid value for vertical position: ' + position );\n\t}\n\tif ( this.verticalPosition !== position ) {\n\t\tthis.verticalPosition = position;\n\t\tif ( this.$floatable ) {\n\t\t\tthis.position();\n\t\t}\n\t}\n};\n\n/**\n * Change how the element is positioned horizontally.\n *\n * @param {string} position 'before', 'after', 'start', 'end' or 'center'\n */\nOO.ui.mixin.FloatableElement.prototype.setHorizontalPosition = function ( position ) {\n\tif ( [ 'before', 'after', 'start', 'end', 'center' ].indexOf( position ) === -1 ) {\n\t\tthrow new Error( 'Invalid value for horizontal position: ' + position );\n\t}\n\tif ( this.horizontalPosition !== position ) {\n\t\tthis.horizontalPosition = position;\n\t\tif ( this.$floatable ) {\n\t\t\tthis.position();\n\t\t}\n\t}\n};\n\n/**\n * Toggle positioning.\n *\n * Do not turn positioning on until after the element is attached to the DOM and visible.\n *\n * @param {boolean} [positioning] Enable positioning, omit to toggle\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.FloatableElement.prototype.togglePositioning = function ( positioning ) {\n\tvar closestScrollableOfContainer;\n\n\tif ( !this.$floatable || !this.$floatableContainer ) {\n\t\treturn this;\n\t}\n\n\tpositioning = positioning === undefined ? !this.positioning : !!positioning;\n\n\tif ( positioning && !this.warnedUnattached && !this.isElementAttached() ) {\n\t\tOO.ui.warnDeprecation( 'FloatableElement#togglePositioning: Before calling this method, the element must be attached to the DOM.' );\n\t\tthis.warnedUnattached = true;\n\t}\n\n\tif ( this.positioning !== positioning ) {\n\t\tthis.positioning = positioning;\n\n\t\tclosestScrollableOfContainer = OO.ui.Element.static.getClosestScrollableContainer( this.$floatableContainer[ 0 ] );\n\t\t// If the scrollable is the root, we have to listen to scroll events\n\t\t// on the window because of browser inconsistencies.\n\t\tif ( $( closestScrollableOfContainer ).is( 'html, body' ) ) {\n\t\t\tclosestScrollableOfContainer = OO.ui.Element.static.getWindow( closestScrollableOfContainer );\n\t\t}\n\n\t\tif ( positioning ) {\n\t\t\tthis.$floatableWindow = $( this.getElementWindow() );\n\t\t\tthis.$floatableWindow.on( 'resize', this.onFloatableWindowResizeHandler );\n\n\t\t\tthis.$floatableClosestScrollable = $( closestScrollableOfContainer );\n\t\t\tthis.$floatableClosestScrollable.on( 'scroll', this.onFloatableScrollHandler );\n\n\t\t\t// Initial position after visible\n\t\t\tthis.position();\n\t\t} else {\n\t\t\tif ( this.$floatableWindow ) {\n\t\t\t\tthis.$floatableWindow.off( 'resize', this.onFloatableWindowResizeHandler );\n\t\t\t\tthis.$floatableWindow = null;\n\t\t\t}\n\n\t\t\tif ( this.$floatableClosestScrollable ) {\n\t\t\t\tthis.$floatableClosestScrollable.off( 'scroll', this.onFloatableScrollHandler );\n\t\t\t\tthis.$floatableClosestScrollable = null;\n\t\t\t}\n\n\t\t\tthis.$floatable.css( { left: '', right: '', top: '' } );\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Check whether the bottom edge of the given element is within the viewport of the given container.\n *\n * @private\n * @param {jQuery} $element\n * @param {jQuery} $container\n * @return {boolean}\n */\nOO.ui.mixin.FloatableElement.prototype.isElementInViewport = function ( $element, $container ) {\n\tvar elemRect, contRect, topEdgeInBounds, bottomEdgeInBounds, leftEdgeInBounds, rightEdgeInBounds,\n\t\tstartEdgeInBounds, endEdgeInBounds, viewportSpacing,\n\t\tdirection = $element.css( 'direction' );\n\n\telemRect = $element[ 0 ].getBoundingClientRect();\n\tif ( $container[ 0 ] === window ) {\n\t\tviewportSpacing = OO.ui.getViewportSpacing();\n\t\tcontRect = {\n\t\t\ttop: 0,\n\t\t\tleft: 0,\n\t\t\tright: document.documentElement.clientWidth,\n\t\t\tbottom: document.documentElement.clientHeight\n\t\t};\n\t\tcontRect.top += viewportSpacing.top;\n\t\tcontRect.left += viewportSpacing.left;\n\t\tcontRect.right -= viewportSpacing.right;\n\t\tcontRect.bottom -= viewportSpacing.bottom;\n\t} else {\n\t\tcontRect = $container[ 0 ].getBoundingClientRect();\n\t}\n\n\ttopEdgeInBounds = elemRect.top >= contRect.top && elemRect.top <= contRect.bottom;\n\tbottomEdgeInBounds = elemRect.bottom >= contRect.top && elemRect.bottom <= contRect.bottom;\n\tleftEdgeInBounds = elemRect.left >= contRect.left && elemRect.left <= contRect.right;\n\trightEdgeInBounds = elemRect.right >= contRect.left && elemRect.right <= contRect.right;\n\tif ( direction === 'rtl' ) {\n\t\tstartEdgeInBounds = rightEdgeInBounds;\n\t\tendEdgeInBounds = leftEdgeInBounds;\n\t} else {\n\t\tstartEdgeInBounds = leftEdgeInBounds;\n\t\tendEdgeInBounds = rightEdgeInBounds;\n\t}\n\n\tif ( this.verticalPosition === 'below' && !bottomEdgeInBounds ) {\n\t\treturn false;\n\t}\n\tif ( this.verticalPosition === 'above' && !topEdgeInBounds ) {\n\t\treturn false;\n\t}\n\tif ( this.horizontalPosition === 'before' && !startEdgeInBounds ) {\n\t\treturn false;\n\t}\n\tif ( this.horizontalPosition === 'after' && !endEdgeInBounds ) {\n\t\treturn false;\n\t}\n\n\t// The other positioning values are all about being inside the container,\n\t// so in those cases all we care about is that any part of the container is visible.\n\treturn elemRect.top <= contRect.bottom && elemRect.bottom >= contRect.top &&\n\t\telemRect.left <= contRect.right && elemRect.right >= contRect.left;\n};\n\n/**\n * Check if the floatable is hidden to the user because it was offscreen.\n *\n * @return {boolean} Floatable is out of view\n */\nOO.ui.mixin.FloatableElement.prototype.isFloatableOutOfView = function () {\n\treturn this.floatableOutOfView;\n};\n\n/**\n * Position the floatable below its container.\n *\n * This should only be done when both of them are attached to the DOM and visible.\n *\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.FloatableElement.prototype.position = function () {\n\tif ( !this.positioning ) {\n\t\treturn this;\n\t}\n\n\tif ( !(\n\t\t// To continue, some things need to be true:\n\t\t// The element must actually be in the DOM\n\t\tthis.isElementAttached() && (\n\t\t\t// The closest scrollable is the current window\n\t\t\tthis.$floatableClosestScrollable[ 0 ] === this.getElementWindow() ||\n\t\t\t// OR is an element in the element's DOM\n\t\t\t$.contains( this.getElementDocument(), this.$floatableClosestScrollable[ 0 ] )\n\t\t)\n\t) ) {\n\t\t// Abort early if important parts of the widget are no longer attached to the DOM\n\t\treturn this;\n\t}\n\n\tthis.floatableOutOfView = this.hideWhenOutOfView && !this.isElementInViewport( this.$floatableContainer, this.$floatableClosestScrollable );\n\tif ( this.floatableOutOfView ) {\n\t\tthis.$floatable.addClass( 'oo-ui-element-hidden' );\n\t\treturn this;\n\t} else {\n\t\tthis.$floatable.removeClass( 'oo-ui-element-hidden' );\n\t}\n\n\tthis.$floatable.css( this.computePosition() );\n\n\t// We updated the position, so re-evaluate the clipping state.\n\t// (ClippableElement does not listen to 'scroll' events on $floatableContainer's parent, and so\n\t// will not notice the need to update itself.)\n\t// TODO: This is terrible, we shouldn't need to know about ClippableElement at all here. Why does\n\t// it not listen to the right events in the right places?\n\tif ( this.clip ) {\n\t\tthis.clip();\n\t}\n\n\treturn this;\n};\n\n/**\n * Compute how #$floatable should be positioned based on the position of #$floatableContainer\n * and the positioning settings. This is a helper for #position that shouldn't be called directly,\n * but may be overridden by subclasses if they want to change or add to the positioning logic.\n *\n * @return {Object} New position to apply with .css(). Keys are 'top', 'left', 'bottom' and 'right'.\n */\nOO.ui.mixin.FloatableElement.prototype.computePosition = function () {\n\tvar isBody, scrollableX, scrollableY, containerPos,\n\t\thorizScrollbarHeight, vertScrollbarWidth, scrollTop, scrollLeft,\n\t\tnewPos = { top: '', left: '', bottom: '', right: '' },\n\t\tdirection = this.$floatableContainer.css( 'direction' ),\n\t\t$offsetParent = this.$floatable.offsetParent();\n\n\tif ( $offsetParent.is( 'html' ) ) {\n\t\t// The innerHeight/Width and clientHeight/Width calculations don't work well on the\n\t\t// <html> element, but they do work on the <body>\n\t\t$offsetParent = $( $offsetParent[ 0 ].ownerDocument.body );\n\t}\n\tisBody = $offsetParent.is( 'body' );\n\tscrollableX = $offsetParent.css( 'overflow-x' ) === 'scroll' || $offsetParent.css( 'overflow-x' ) === 'auto';\n\tscrollableY = $offsetParent.css( 'overflow-y' ) === 'scroll' || $offsetParent.css( 'overflow-y' ) === 'auto';\n\n\tvertScrollbarWidth = $offsetParent.innerWidth() - $offsetParent.prop( 'clientWidth' );\n\thorizScrollbarHeight = $offsetParent.innerHeight() - $offsetParent.prop( 'clientHeight' );\n\t// We don't need to compute and add scrollTop and scrollLeft if the scrollable container is the body,\n\t// or if it isn't scrollable\n\tscrollTop = scrollableY && !isBody ? $offsetParent.scrollTop() : 0;\n\tscrollLeft = scrollableX && !isBody ? OO.ui.Element.static.getScrollLeft( $offsetParent[ 0 ] ) : 0;\n\n\t// Avoid passing the <body> to getRelativePosition(), because it won't return what we expect\n\t// if the <body> has a margin\n\tcontainerPos = isBody ?\n\t\tthis.$floatableContainer.offset() :\n\t\tOO.ui.Element.static.getRelativePosition( this.$floatableContainer, $offsetParent );\n\tcontainerPos.bottom = containerPos.top + this.$floatableContainer.outerHeight();\n\tcontainerPos.right = containerPos.left + this.$floatableContainer.outerWidth();\n\tcontainerPos.start = direction === 'rtl' ? containerPos.right : containerPos.left;\n\tcontainerPos.end = direction === 'rtl' ? containerPos.left : containerPos.right;\n\n\tif ( this.verticalPosition === 'below' ) {\n\t\tnewPos.top = containerPos.bottom;\n\t} else if ( this.verticalPosition === 'above' ) {\n\t\tnewPos.bottom = $offsetParent.outerHeight() - containerPos.top;\n\t} else if ( this.verticalPosition === 'top' ) {\n\t\tnewPos.top = containerPos.top;\n\t} else if ( this.verticalPosition === 'bottom' ) {\n\t\tnewPos.bottom = $offsetParent.outerHeight() - containerPos.bottom;\n\t} else if ( this.verticalPosition === 'center' ) {\n\t\tnewPos.top = containerPos.top +\n\t\t\t( this.$floatableContainer.height() - this.$floatable.height() ) / 2;\n\t}\n\n\tif ( this.horizontalPosition === 'before' ) {\n\t\tnewPos.end = containerPos.start;\n\t} else if ( this.horizontalPosition === 'after' ) {\n\t\tnewPos.start = containerPos.end;\n\t} else if ( this.horizontalPosition === 'start' ) {\n\t\tnewPos.start = containerPos.start;\n\t} else if ( this.horizontalPosition === 'end' ) {\n\t\tnewPos.end = containerPos.end;\n\t} else if ( this.horizontalPosition === 'center' ) {\n\t\tnewPos.left = containerPos.left +\n\t\t\t( this.$floatableContainer.width() - this.$floatable.width() ) / 2;\n\t}\n\n\tif ( newPos.start !== undefined ) {\n\t\tif ( direction === 'rtl' ) {\n\t\t\tnewPos.right = ( isBody ? $( $offsetParent[ 0 ].ownerDocument.documentElement ) : $offsetParent ).outerWidth() - newPos.start;\n\t\t} else {\n\t\t\tnewPos.left = newPos.start;\n\t\t}\n\t\tdelete newPos.start;\n\t}\n\tif ( newPos.end !== undefined ) {\n\t\tif ( direction === 'rtl' ) {\n\t\t\tnewPos.left = newPos.end;\n\t\t} else {\n\t\t\tnewPos.right = ( isBody ? $( $offsetParent[ 0 ].ownerDocument.documentElement ) : $offsetParent ).outerWidth() - newPos.end;\n\t\t}\n\t\tdelete newPos.end;\n\t}\n\n\t// Account for scroll position\n\tif ( newPos.top !== '' ) {\n\t\tnewPos.top += scrollTop;\n\t}\n\tif ( newPos.bottom !== '' ) {\n\t\tnewPos.bottom -= scrollTop;\n\t}\n\tif ( newPos.left !== '' ) {\n\t\tnewPos.left += scrollLeft;\n\t}\n\tif ( newPos.right !== '' ) {\n\t\tnewPos.right -= scrollLeft;\n\t}\n\n\t// Account for scrollbar gutter\n\tif ( newPos.bottom !== '' ) {\n\t\tnewPos.bottom -= horizScrollbarHeight;\n\t}\n\tif ( direction === 'rtl' ) {\n\t\tif ( newPos.left !== '' ) {\n\t\t\tnewPos.left -= vertScrollbarWidth;\n\t\t}\n\t} else {\n\t\tif ( newPos.right !== '' ) {\n\t\t\tnewPos.right -= vertScrollbarWidth;\n\t\t}\n\t}\n\n\treturn newPos;\n};\n","/**\n * Element that can be automatically clipped to visible boundaries.\n *\n * Whenever the element's natural height changes, you have to call\n * {@link OO.ui.mixin.ClippableElement#clip} to make sure it's still\n * clipping correctly.\n *\n * The dimensions of #$clippableContainer will be compared to the boundaries of the\n * nearest scrollable container. If #$clippableContainer is too tall and/or too wide,\n * then #$clippable will be given a fixed reduced height and/or width and will be made\n * scrollable. By default, #$clippable and #$clippableContainer are the same element,\n * but you can build a static footer by setting #$clippableContainer to an element that contains\n * #$clippable and the footer.\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$clippable] Node to clip, assigned to #$clippable, omit to use #$element\n * @cfg {jQuery} [$clippableContainer] Node to keep visible, assigned to #$clippableContainer,\n *   omit to use #$clippable\n */\nOO.ui.mixin.ClippableElement = function OoUiMixinClippableElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.$clippable = null;\n\tthis.$clippableContainer = null;\n\tthis.clipping = false;\n\tthis.clippedHorizontally = false;\n\tthis.clippedVertically = false;\n\tthis.$clippableScrollableContainer = null;\n\tthis.$clippableScroller = null;\n\tthis.$clippableWindow = null;\n\tthis.idealWidth = null;\n\tthis.idealHeight = null;\n\tthis.onClippableScrollHandler = this.clip.bind( this );\n\tthis.onClippableWindowResizeHandler = this.clip.bind( this );\n\n\t// Initialization\n\tif ( config.$clippableContainer ) {\n\t\tthis.setClippableContainer( config.$clippableContainer );\n\t}\n\tthis.setClippableElement( config.$clippable || this.$element );\n};\n\n/* Methods */\n\n/**\n * Set clippable element.\n *\n * If an element is already set, it will be cleaned up before setting up the new element.\n *\n * @param {jQuery} $clippable Element to make clippable\n */\nOO.ui.mixin.ClippableElement.prototype.setClippableElement = function ( $clippable ) {\n\tif ( this.$clippable ) {\n\t\tthis.$clippable.removeClass( 'oo-ui-clippableElement-clippable' );\n\t\tthis.$clippable.css( { width: '', height: '', overflowX: '', overflowY: '' } );\n\t\tOO.ui.Element.static.reconsiderScrollbars( this.$clippable[ 0 ] );\n\t}\n\n\tthis.$clippable = $clippable.addClass( 'oo-ui-clippableElement-clippable' );\n\tthis.clip();\n};\n\n/**\n * Set clippable container.\n *\n * This is the container that will be measured when deciding whether to clip. When clipping,\n * #$clippable will be resized in order to keep the clippable container fully visible.\n *\n * If the clippable container is unset, #$clippable will be used.\n *\n * @param {jQuery|null} $clippableContainer Container to keep visible, or null to unset\n */\nOO.ui.mixin.ClippableElement.prototype.setClippableContainer = function ( $clippableContainer ) {\n\tthis.$clippableContainer = $clippableContainer;\n\tif ( this.$clippable ) {\n\t\tthis.clip();\n\t}\n};\n\n/**\n * Toggle clipping.\n *\n * Do not turn clipping on until after the element is attached to the DOM and visible.\n *\n * @param {boolean} [clipping] Enable clipping, omit to toggle\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.ClippableElement.prototype.toggleClipping = function ( clipping ) {\n\tclipping = clipping === undefined ? !this.clipping : !!clipping;\n\n\tif ( clipping && !this.warnedUnattached && !this.isElementAttached() ) {\n\t\tOO.ui.warnDeprecation( 'ClippableElement#toggleClipping: Before calling this method, the element must be attached to the DOM.' );\n\t\tthis.warnedUnattached = true;\n\t}\n\n\tif ( this.clipping !== clipping ) {\n\t\tthis.clipping = clipping;\n\t\tif ( clipping ) {\n\t\t\tthis.$clippableScrollableContainer = $( this.getClosestScrollableElementContainer() );\n\t\t\t// If the clippable container is the root, we have to listen to scroll events and check\n\t\t\t// jQuery.scrollTop on the window because of browser inconsistencies\n\t\t\tthis.$clippableScroller = this.$clippableScrollableContainer.is( 'html, body' ) ?\n\t\t\t\t$( OO.ui.Element.static.getWindow( this.$clippableScrollableContainer ) ) :\n\t\t\t\tthis.$clippableScrollableContainer;\n\t\t\tthis.$clippableScroller.on( 'scroll', this.onClippableScrollHandler );\n\t\t\tthis.$clippableWindow = $( this.getElementWindow() )\n\t\t\t\t.on( 'resize', this.onClippableWindowResizeHandler );\n\t\t\t// Initial clip after visible\n\t\t\tthis.clip();\n\t\t} else {\n\t\t\tthis.$clippable.css( {\n\t\t\t\twidth: '',\n\t\t\t\theight: '',\n\t\t\t\tmaxWidth: '',\n\t\t\t\tmaxHeight: '',\n\t\t\t\toverflowX: '',\n\t\t\t\toverflowY: ''\n\t\t\t} );\n\t\t\tOO.ui.Element.static.reconsiderScrollbars( this.$clippable[ 0 ] );\n\n\t\t\tthis.$clippableScrollableContainer = null;\n\t\t\tthis.$clippableScroller.off( 'scroll', this.onClippableScrollHandler );\n\t\t\tthis.$clippableScroller = null;\n\t\t\tthis.$clippableWindow.off( 'resize', this.onClippableWindowResizeHandler );\n\t\t\tthis.$clippableWindow = null;\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Check if the element will be clipped to fit the visible area of the nearest scrollable container.\n *\n * @return {boolean} Element will be clipped to the visible area\n */\nOO.ui.mixin.ClippableElement.prototype.isClipping = function () {\n\treturn this.clipping;\n};\n\n/**\n * Check if the bottom or right of the element is being clipped by the nearest scrollable container.\n *\n * @return {boolean} Part of the element is being clipped\n */\nOO.ui.mixin.ClippableElement.prototype.isClipped = function () {\n\treturn this.clippedHorizontally || this.clippedVertically;\n};\n\n/**\n * Check if the right of the element is being clipped by the nearest scrollable container.\n *\n * @return {boolean} Part of the element is being clipped\n */\nOO.ui.mixin.ClippableElement.prototype.isClippedHorizontally = function () {\n\treturn this.clippedHorizontally;\n};\n\n/**\n * Check if the bottom of the element is being clipped by the nearest scrollable container.\n *\n * @return {boolean} Part of the element is being clipped\n */\nOO.ui.mixin.ClippableElement.prototype.isClippedVertically = function () {\n\treturn this.clippedVertically;\n};\n\n/**\n * Set the ideal size. These are the dimensions #$clippable will have when it's not being clipped.\n *\n * @param {number|string} [width] Width as a number of pixels or CSS string with unit suffix\n * @param {number|string} [height] Height as a number of pixels or CSS string with unit suffix\n */\nOO.ui.mixin.ClippableElement.prototype.setIdealSize = function ( width, height ) {\n\tthis.idealWidth = width;\n\tthis.idealHeight = height;\n\n\tif ( !this.clipping ) {\n\t\t// Update dimensions\n\t\tthis.$clippable.css( { width: width, height: height } );\n\t}\n\t// While clipping, idealWidth and idealHeight are not considered\n};\n\n/**\n * Return the side of the clippable on which it is \"anchored\" (aligned to something else).\n * ClippableElement will clip the opposite side when reducing element's width.\n *\n * Classes that mix in ClippableElement should override this to return 'right' if their\n * clippable is absolutely positioned and using 'right: Npx' (and not using 'left').\n * If your class also mixes in FloatableElement, this is handled automatically.\n *\n * (This can't be guessed from the actual CSS because the computed values for 'left'/'right' are\n * always in pixels, even if they were unset or set to 'auto'.)\n *\n * When in doubt, 'left' (or 'right' in RTL) is a sane fallback.\n *\n * @return {string} 'left' or 'right'\n */\nOO.ui.mixin.ClippableElement.prototype.getHorizontalAnchorEdge = function () {\n\tif ( this.computePosition && this.positioning && this.computePosition().right !== '' ) {\n\t\treturn 'right';\n\t}\n\treturn 'left';\n};\n\n/**\n * Return the side of the clippable on which it is \"anchored\" (aligned to something else).\n * ClippableElement will clip the opposite side when reducing element's width.\n *\n * Classes that mix in ClippableElement should override this to return 'bottom' if their\n * clippable is absolutely positioned and using 'bottom: Npx' (and not using 'top').\n * If your class also mixes in FloatableElement, this is handled automatically.\n *\n * (This can't be guessed from the actual CSS because the computed values for 'left'/'right' are\n * always in pixels, even if they were unset or set to 'auto'.)\n *\n * When in doubt, 'top' is a sane fallback.\n *\n * @return {string} 'top' or 'bottom'\n */\nOO.ui.mixin.ClippableElement.prototype.getVerticalAnchorEdge = function () {\n\tif ( this.computePosition && this.positioning && this.computePosition().bottom !== '' ) {\n\t\treturn 'bottom';\n\t}\n\treturn 'top';\n};\n\n/**\n * Clip element to visible boundaries and allow scrolling when needed. You should call this method\n * when the element's natural height changes.\n *\n * Element will be clipped the bottom or right of the element is within 10px of the edge of, or\n * overlapped by, the visible area of the nearest scrollable container.\n *\n * Because calling clip() when the natural height changes isn't always possible, we also set\n * max-height when the element isn't being clipped. This means that if the element tries to grow\n * beyond the edge, something reasonable will happen before clip() is called.\n *\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.ClippableElement.prototype.clip = function () {\n\tvar extraHeight, extraWidth, viewportSpacing,\n\t\tdesiredWidth, desiredHeight, allotedWidth, allotedHeight,\n\t\tnaturalWidth, naturalHeight, clipWidth, clipHeight,\n\t\t$item, itemRect, $viewport, viewportRect, availableRect,\n\t\tdirection, vertScrollbarWidth, horizScrollbarHeight,\n\t\t// Extra tolerance so that the sloppy code below doesn't result in results that are off\n\t\t// by one or two pixels. (And also so that we have space to display drop shadows.)\n\t\t// Chosen by fair dice roll.\n\t\tbuffer = 7;\n\n\tif ( !this.clipping ) {\n\t\t// this.$clippableScrollableContainer and this.$clippableWindow are null, so the below will fail\n\t\treturn this;\n\t}\n\n\tfunction rectIntersection( a, b ) {\n\t\tvar out = {};\n\t\tout.top = Math.max( a.top, b.top );\n\t\tout.left = Math.max( a.left, b.left );\n\t\tout.bottom = Math.min( a.bottom, b.bottom );\n\t\tout.right = Math.min( a.right, b.right );\n\t\treturn out;\n\t}\n\n\tviewportSpacing = OO.ui.getViewportSpacing();\n\n\tif ( this.$clippableScrollableContainer.is( 'html, body' ) ) {\n\t\t$viewport = $( this.$clippableScrollableContainer[ 0 ].ownerDocument.body );\n\t\t// Dimensions of the browser window, rather than the element!\n\t\tviewportRect = {\n\t\t\ttop: 0,\n\t\t\tleft: 0,\n\t\t\tright: document.documentElement.clientWidth,\n\t\t\tbottom: document.documentElement.clientHeight\n\t\t};\n\t\tviewportRect.top += viewportSpacing.top;\n\t\tviewportRect.left += viewportSpacing.left;\n\t\tviewportRect.right -= viewportSpacing.right;\n\t\tviewportRect.bottom -= viewportSpacing.bottom;\n\t} else {\n\t\t$viewport = this.$clippableScrollableContainer;\n\t\tviewportRect = $viewport[ 0 ].getBoundingClientRect();\n\t\t// Convert into a plain object\n\t\tviewportRect = $.extend( {}, viewportRect );\n\t}\n\n\t// Account for scrollbar gutter\n\tdirection = $viewport.css( 'direction' );\n\tvertScrollbarWidth = $viewport.innerWidth() - $viewport.prop( 'clientWidth' );\n\thorizScrollbarHeight = $viewport.innerHeight() - $viewport.prop( 'clientHeight' );\n\tviewportRect.bottom -= horizScrollbarHeight;\n\tif ( direction === 'rtl' ) {\n\t\tviewportRect.left += vertScrollbarWidth;\n\t} else {\n\t\tviewportRect.right -= vertScrollbarWidth;\n\t}\n\n\t// Add arbitrary tolerance\n\tviewportRect.top += buffer;\n\tviewportRect.left += buffer;\n\tviewportRect.right -= buffer;\n\tviewportRect.bottom -= buffer;\n\n\t$item = this.$clippableContainer || this.$clippable;\n\n\textraHeight = $item.outerHeight() - this.$clippable.outerHeight();\n\textraWidth = $item.outerWidth() - this.$clippable.outerWidth();\n\n\titemRect = $item[ 0 ].getBoundingClientRect();\n\t// Convert into a plain object\n\titemRect = $.extend( {}, itemRect );\n\n\t// Item might already be clipped, so we can't just use its dimensions (in case we might need to\n\t// make it larger than before). Extend the rectangle to the maximum size we are allowed to take.\n\tif ( this.getHorizontalAnchorEdge() === 'right' ) {\n\t\titemRect.left = viewportRect.left;\n\t} else {\n\t\titemRect.right = viewportRect.right;\n\t}\n\tif ( this.getVerticalAnchorEdge() === 'bottom' ) {\n\t\titemRect.top = viewportRect.top;\n\t} else {\n\t\titemRect.bottom = viewportRect.bottom;\n\t}\n\n\tavailableRect = rectIntersection( viewportRect, itemRect );\n\n\tdesiredWidth = Math.max( 0, availableRect.right - availableRect.left );\n\tdesiredHeight = Math.max( 0, availableRect.bottom - availableRect.top );\n\t// It should never be desirable to exceed the dimensions of the browser viewport... right?\n\tdesiredWidth = Math.min( desiredWidth,\n\t\tdocument.documentElement.clientWidth - viewportSpacing.left - viewportSpacing.right );\n\tdesiredHeight = Math.min( desiredHeight,\n\t\tdocument.documentElement.clientHeight - viewportSpacing.top - viewportSpacing.right );\n\tallotedWidth = Math.ceil( desiredWidth - extraWidth );\n\tallotedHeight = Math.ceil( desiredHeight - extraHeight );\n\tnaturalWidth = this.$clippable.prop( 'scrollWidth' );\n\tnaturalHeight = this.$clippable.prop( 'scrollHeight' );\n\tclipWidth = allotedWidth < naturalWidth;\n\tclipHeight = allotedHeight < naturalHeight;\n\n\tif ( clipWidth ) {\n\t\t// The order matters here. If overflow is not set first, Chrome displays bogus scrollbars. See T157672.\n\t\t// Forcing a reflow is a smaller workaround than calling reconsiderScrollbars() for this case.\n\t\tthis.$clippable.css( 'overflowX', 'scroll' );\n\t\t// eslint-disable-next-line no-void\n\t\tvoid this.$clippable[ 0 ].offsetHeight; // Force reflow\n\t\tthis.$clippable.css( {\n\t\t\twidth: Math.max( 0, allotedWidth ),\n\t\t\tmaxWidth: ''\n\t\t} );\n\t} else {\n\t\tthis.$clippable.css( {\n\t\t\toverflowX: '',\n\t\t\twidth: this.idealWidth || '',\n\t\t\tmaxWidth: Math.max( 0, allotedWidth )\n\t\t} );\n\t}\n\tif ( clipHeight ) {\n\t\t// The order matters here. If overflow is not set first, Chrome displays bogus scrollbars. See T157672.\n\t\t// Forcing a reflow is a smaller workaround than calling reconsiderScrollbars() for this case.\n\t\tthis.$clippable.css( 'overflowY', 'scroll' );\n\t\t// eslint-disable-next-line no-void\n\t\tvoid this.$clippable[ 0 ].offsetHeight; // Force reflow\n\t\tthis.$clippable.css( {\n\t\t\theight: Math.max( 0, allotedHeight ),\n\t\t\tmaxHeight: ''\n\t\t} );\n\t} else {\n\t\tthis.$clippable.css( {\n\t\t\toverflowY: '',\n\t\t\theight: this.idealHeight || '',\n\t\t\tmaxHeight: Math.max( 0, allotedHeight )\n\t\t} );\n\t}\n\n\t// If we stopped clipping in at least one of the dimensions\n\tif ( ( this.clippedHorizontally && !clipWidth ) || ( this.clippedVertically && !clipHeight ) ) {\n\t\tOO.ui.Element.static.reconsiderScrollbars( this.$clippable[ 0 ] );\n\t}\n\n\tthis.clippedHorizontally = clipWidth;\n\tthis.clippedVertically = clipHeight;\n\n\treturn this;\n};\n","/**\n * PopupWidget is a container for content. The popup is overlaid and positioned absolutely.\n * By default, each popup has an anchor that points toward its origin.\n * Please see the [OOUI documentation on MediaWiki.org] [1] for more information and examples.\n *\n * Unlike most widgets, PopupWidget is initially hidden and must be shown by calling #toggle.\n *\n *     @example\n *     // A PopupWidget.\n *     var popup = new OO.ui.PopupWidget( {\n *         $content: $( '<p>Hi there!</p>' ),\n *         padded: true,\n *         width: 300\n *     } );\n *\n *     $( document.body ).append( popup.$element );\n *     // To display the popup, toggle the visibility to 'true'.\n *     popup.toggle( true );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Popups\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.ClippableElement\n * @mixins OO.ui.mixin.FloatableElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {number|null} [width=320] Width of popup in pixels. Pass `null` to use automatic width.\n * @cfg {number|null} [height=null] Height of popup in pixels. Pass `null` to use automatic height.\n * @cfg {boolean} [anchor=true] Show anchor pointing to origin of popup\n * @cfg {string} [position='below'] Where to position the popup relative to $floatableContainer\n *  'above': Put popup above $floatableContainer; anchor points down to the horizontal center\n *           of $floatableContainer\n *  'below': Put popup below $floatableContainer; anchor points up to the horizontal center\n *           of $floatableContainer\n *  'before': Put popup to the left (LTR) / right (RTL) of $floatableContainer; anchor points\n *            endwards (right/left) to the vertical center of $floatableContainer\n *  'after': Put popup to the right (LTR) / left (RTL) of $floatableContainer; anchor points\n *            startwards (left/right) to the vertical center of $floatableContainer\n * @cfg {string} [align='center'] How to align the popup to $floatableContainer\n *  'forwards': If position is above/below, move the popup as far endwards (right in LTR, left in RTL)\n *              as possible while still keeping the anchor within the popup;\n *              if position is before/after, move the popup as far downwards as possible.\n *  'backwards': If position is above/below, move the popup as far startwards (left in LTR, right in RTL)\n *               as possible while still keeping the anchor within the popup;\n *               if position in before/after, move the popup as far upwards as possible.\n *  'center': Horizontally (if position is above/below) or vertically (before/after) align the center\n *            of the popup with the center of $floatableContainer.\n * 'force-left': Alias for 'forwards' in LTR and 'backwards' in RTL\n * 'force-right': Alias for 'backwards' in RTL and 'forwards' in LTR\n * @cfg {boolean} [autoFlip=true] Whether to automatically switch the popup's position between\n *  'above' and 'below', or between 'before' and 'after', if there is not enough space in the\n *  desired direction to display the popup without clipping\n * @cfg {jQuery} [$container] Constrain the popup to the boundaries of the specified container.\n *  See the [OOUI docs on MediaWiki][3] for an example.\n *  [3]: https://www.mediawiki.org/wiki/OOUI/Widgets/Popups#containerExample\n * @cfg {number} [containerPadding=10] Padding between the popup and its container, specified as a number of pixels.\n * @cfg {jQuery} [$content] Content to append to the popup's body\n * @cfg {jQuery} [$footer] Content to append to the popup's footer\n * @cfg {boolean} [autoClose=false] Automatically close the popup when it loses focus.\n * @cfg {jQuery} [$autoCloseIgnore] Elements that will not close the popup when clicked.\n *  This config option is only relevant if #autoClose is set to `true`. See the [OOUI documentation on MediaWiki][2]\n *  for an example.\n *  [2]: https://www.mediawiki.org/wiki/OOUI/Widgets/Popups#autocloseExample\n * @cfg {boolean} [head=false] Show a popup header that contains a #label (if specified) and close\n *  button.\n * @cfg {boolean} [padded=false] Add padding to the popup's body\n */\nOO.ui.PopupWidget = function OoUiPopupWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.PopupWidget.parent.call( this, config );\n\n\t// Properties (must be set before ClippableElement constructor call)\n\tthis.$body = $( '<div>' );\n\tthis.$popup = $( '<div>' );\n\n\t// Mixin constructors\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.ClippableElement.call( this, $.extend( {}, config, {\n\t\t$clippable: this.$body,\n\t\t$clippableContainer: this.$popup\n\t} ) );\n\tOO.ui.mixin.FloatableElement.call( this, config );\n\n\t// Properties\n\tthis.$anchor = $( '<div>' );\n\t// If undefined, will be computed lazily in computePosition()\n\tthis.$container = config.$container;\n\tthis.containerPadding = config.containerPadding !== undefined ? config.containerPadding : 10;\n\tthis.autoClose = !!config.autoClose;\n\tthis.transitionTimeout = null;\n\tthis.anchored = false;\n\tthis.onDocumentMouseDownHandler = this.onDocumentMouseDown.bind( this );\n\tthis.onDocumentKeyDownHandler = this.onDocumentKeyDown.bind( this );\n\n\t// Initialization\n\tthis.setSize( config.width, config.height );\n\tthis.toggleAnchor( config.anchor === undefined || config.anchor );\n\tthis.setAlignment( config.align || 'center' );\n\tthis.setPosition( config.position || 'below' );\n\tthis.setAutoFlip( config.autoFlip === undefined || config.autoFlip );\n\tthis.setAutoCloseIgnore( config.$autoCloseIgnore );\n\tthis.$body.addClass( 'oo-ui-popupWidget-body' );\n\tthis.$anchor.addClass( 'oo-ui-popupWidget-anchor' );\n\tthis.$popup\n\t\t.addClass( 'oo-ui-popupWidget-popup' )\n\t\t.append( this.$body );\n\tthis.$element\n\t\t.addClass( 'oo-ui-popupWidget' )\n\t\t.append( this.$popup, this.$anchor );\n\t// Move content, which was added to #$element by OO.ui.Widget, to the body\n\t// FIXME This is gross, we should use '$body' or something for the config\n\tif ( config.$content instanceof $ ) {\n\t\tthis.$body.append( config.$content );\n\t}\n\n\tif ( config.padded ) {\n\t\tthis.$body.addClass( 'oo-ui-popupWidget-body-padded' );\n\t}\n\n\tif ( config.head ) {\n\t\tthis.closeButton = new OO.ui.ButtonWidget( { framed: false, icon: 'close' } );\n\t\tthis.closeButton.connect( this, { click: 'onCloseButtonClick' } );\n\t\tthis.$head = $( '<div>' )\n\t\t\t.addClass( 'oo-ui-popupWidget-head' )\n\t\t\t.append( this.$label, this.closeButton.$element );\n\t\tthis.$popup.prepend( this.$head );\n\t}\n\n\tif ( config.$footer ) {\n\t\tthis.$footer = $( '<div>' )\n\t\t\t.addClass( 'oo-ui-popupWidget-footer' )\n\t\t\t.append( config.$footer );\n\t\tthis.$popup.append( this.$footer );\n\t}\n\n\t// Initially hidden - using #toggle may cause errors if subclasses override toggle with methods\n\t// that reference properties not initialized at that time of parent class construction\n\t// TODO: Find a better way to handle post-constructor setup\n\tthis.visible = false;\n\tthis.$element.addClass( 'oo-ui-element-hidden' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.PopupWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.PopupWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.PopupWidget, OO.ui.mixin.ClippableElement );\nOO.mixinClass( OO.ui.PopupWidget, OO.ui.mixin.FloatableElement );\n\n/* Events */\n\n/**\n * @event ready\n *\n * The popup is ready: it is visible and has been positioned and clipped.\n */\n\n/* Methods */\n\n/**\n * Handles document mouse down events.\n *\n * @private\n * @param {MouseEvent} e Mouse down event\n */\nOO.ui.PopupWidget.prototype.onDocumentMouseDown = function ( e ) {\n\tif (\n\t\tthis.isVisible() &&\n\t\t!OO.ui.contains( this.$element.add( this.$autoCloseIgnore ).get(), e.target, true )\n\t) {\n\t\tthis.toggle( false );\n\t}\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.PopupWidget.prototype.onMouseDown = function () {\n\tOO.ui.warnDeprecation( 'onMouseDown is deprecated, use onDocumentMouseDown instead' );\n\tthis.onDocumentMouseDown.apply( this, arguments );\n};\n\n/**\n * Bind document mouse down listener.\n *\n * @private\n */\nOO.ui.PopupWidget.prototype.bindDocumentMouseDownListener = function () {\n\t// Capture clicks outside popup\n\tthis.getElementDocument().addEventListener( 'mousedown', this.onDocumentMouseDownHandler, true );\n\t// We add 'click' event because iOS safari needs to respond to this event.\n\t// We can't use 'touchstart' (as is usually the equivalent to 'mousedown') because\n\t// then it will trigger when scrolling. While iOS Safari has some reported behavior\n\t// of occasionally not emitting 'click' properly, that event seems to be the standard\n\t// that it should be emitting, so we add it to this and will operate the event handler\n\t// on whichever of these events was triggered first\n\tthis.getElementDocument().addEventListener( 'click', this.onDocumentMouseDownHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.PopupWidget.prototype.bindMouseDownListener = function () {\n\tOO.ui.warnDeprecation( 'bindMouseDownListener is deprecated, use bindDocumentMouseDownListener instead' );\n\tthis.bindDocumentMouseDownListener.apply( this, arguments );\n};\n\n/**\n * Handles close button click events.\n *\n * @private\n */\nOO.ui.PopupWidget.prototype.onCloseButtonClick = function () {\n\tif ( this.isVisible() ) {\n\t\tthis.toggle( false );\n\t}\n};\n\n/**\n * Unbind document mouse down listener.\n *\n * @private\n */\nOO.ui.PopupWidget.prototype.unbindDocumentMouseDownListener = function () {\n\tthis.getElementDocument().removeEventListener( 'mousedown', this.onDocumentMouseDownHandler, true );\n\tthis.getElementDocument().removeEventListener( 'click', this.onDocumentMouseDownHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.PopupWidget.prototype.unbindMouseDownListener = function () {\n\tOO.ui.warnDeprecation( 'unbindMouseDownListener is deprecated, use unbindDocumentMouseDownListener instead' );\n\tthis.unbindDocumentMouseDownListener.apply( this, arguments );\n};\n\n/**\n * Handles document key down events.\n *\n * @private\n * @param {KeyboardEvent} e Key down event\n */\nOO.ui.PopupWidget.prototype.onDocumentKeyDown = function ( e ) {\n\tif (\n\t\te.which === OO.ui.Keys.ESCAPE &&\n\t\tthis.isVisible()\n\t) {\n\t\tthis.toggle( false );\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t}\n};\n\n/**\n * Bind document key down listener.\n *\n * @private\n */\nOO.ui.PopupWidget.prototype.bindDocumentKeyDownListener = function () {\n\tthis.getElementDocument().addEventListener( 'keydown', this.onDocumentKeyDownHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.PopupWidget.prototype.bindKeyDownListener = function () {\n\tOO.ui.warnDeprecation( 'bindKeyDownListener is deprecated, use bindDocumentKeyDownListener instead' );\n\tthis.bindDocumentKeyDownListener.apply( this, arguments );\n};\n\n/**\n * Unbind document key down listener.\n *\n * @private\n */\nOO.ui.PopupWidget.prototype.unbindDocumentKeyDownListener = function () {\n\tthis.getElementDocument().removeEventListener( 'keydown', this.onDocumentKeyDownHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.PopupWidget.prototype.unbindKeyDownListener = function () {\n\tOO.ui.warnDeprecation( 'unbindKeyDownListener is deprecated, use unbindDocumentKeyDownListener instead' );\n\tthis.unbindDocumentKeyDownListener.apply( this, arguments );\n};\n\n/**\n * Show, hide, or toggle the visibility of the anchor.\n *\n * @param {boolean} [show] Show anchor, omit to toggle\n */\nOO.ui.PopupWidget.prototype.toggleAnchor = function ( show ) {\n\tshow = show === undefined ? !this.anchored : !!show;\n\n\tif ( this.anchored !== show ) {\n\t\tif ( show ) {\n\t\t\tthis.$element.addClass( 'oo-ui-popupWidget-anchored' );\n\t\t\tthis.$element.addClass( 'oo-ui-popupWidget-anchored-' + this.anchorEdge );\n\t\t} else {\n\t\t\tthis.$element.removeClass( 'oo-ui-popupWidget-anchored' );\n\t\t\tthis.$element.removeClass( 'oo-ui-popupWidget-anchored-' + this.anchorEdge );\n\t\t}\n\t\tthis.anchored = show;\n\t}\n};\n\n/**\n * Change which edge the anchor appears on.\n *\n * @param {string} edge 'top', 'bottom', 'start' or 'end'\n */\nOO.ui.PopupWidget.prototype.setAnchorEdge = function ( edge ) {\n\tif ( [ 'top', 'bottom', 'start', 'end' ].indexOf( edge ) === -1 ) {\n\t\tthrow new Error( 'Invalid value for edge: ' + edge );\n\t}\n\tif ( this.anchorEdge !== null ) {\n\t\tthis.$element.removeClass( 'oo-ui-popupWidget-anchored-' + this.anchorEdge );\n\t}\n\tthis.anchorEdge = edge;\n\tif ( this.anchored ) {\n\t\tthis.$element.addClass( 'oo-ui-popupWidget-anchored-' + edge );\n\t}\n};\n\n/**\n * Check if the anchor is visible.\n *\n * @return {boolean} Anchor is visible\n */\nOO.ui.PopupWidget.prototype.hasAnchor = function () {\n\treturn this.anchored;\n};\n\n/**\n * Toggle visibility of the popup. The popup is initially hidden and must be shown by calling\n * `.toggle( true )` after its #$element is attached to the DOM.\n *\n * Do not show the popup while it is not attached to the DOM. The calculations required to display\n * it in the right place and with the right dimensions only work correctly while it is attached.\n * Side-effects may include broken interface and exceptions being thrown. This wasn't always\n * strictly enforced, so currently it only generates a warning in the browser console.\n *\n * @fires ready\n * @inheritdoc\n */\nOO.ui.PopupWidget.prototype.toggle = function ( show ) {\n\tvar change, normalHeight, oppositeHeight, normalWidth, oppositeWidth;\n\tshow = show === undefined ? !this.isVisible() : !!show;\n\n\tchange = show !== this.isVisible();\n\n\tif ( show && !this.warnedUnattached && !this.isElementAttached() ) {\n\t\tOO.ui.warnDeprecation( 'PopupWidget#toggle: Before calling this method, the popup must be attached to the DOM.' );\n\t\tthis.warnedUnattached = true;\n\t}\n\tif ( show && !this.$floatableContainer && this.isElementAttached() ) {\n\t\t// Fall back to the parent node if the floatableContainer is not set\n\t\tthis.setFloatableContainer( this.$element.parent() );\n\t}\n\n\tif ( change && show && this.autoFlip ) {\n\t\t// Reset auto-flipping before showing the popup again. It's possible we no longer need to flip\n\t\t// (e.g. if the user scrolled).\n\t\tthis.isAutoFlipped = false;\n\t}\n\n\t// Parent method\n\tOO.ui.PopupWidget.parent.prototype.toggle.call( this, show );\n\n\tif ( change ) {\n\t\tthis.togglePositioning( show && !!this.$floatableContainer );\n\n\t\tif ( show ) {\n\t\t\tif ( this.autoClose ) {\n\t\t\t\tthis.bindDocumentMouseDownListener();\n\t\t\t\tthis.bindDocumentKeyDownListener();\n\t\t\t}\n\t\t\tthis.updateDimensions();\n\t\t\tthis.toggleClipping( true );\n\n\t\t\tif ( this.autoFlip ) {\n\t\t\t\tif ( this.popupPosition === 'above' || this.popupPosition === 'below' ) {\n\t\t\t\t\tif ( this.isClippedVertically() || this.isFloatableOutOfView() ) {\n\t\t\t\t\t\t// If opening the popup in the normal direction causes it to be clipped, open\n\t\t\t\t\t\t// in the opposite one instead\n\t\t\t\t\t\tnormalHeight = this.$element.height();\n\t\t\t\t\t\tthis.isAutoFlipped = !this.isAutoFlipped;\n\t\t\t\t\t\tthis.position();\n\t\t\t\t\t\tif ( this.isClippedVertically() || this.isFloatableOutOfView() ) {\n\t\t\t\t\t\t\t// If that also causes it to be clipped, open in whichever direction\n\t\t\t\t\t\t\t// we have more space\n\t\t\t\t\t\t\toppositeHeight = this.$element.height();\n\t\t\t\t\t\t\tif ( oppositeHeight < normalHeight ) {\n\t\t\t\t\t\t\t\tthis.isAutoFlipped = !this.isAutoFlipped;\n\t\t\t\t\t\t\t\tthis.position();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif ( this.popupPosition === 'before' || this.popupPosition === 'after' ) {\n\t\t\t\t\tif ( this.isClippedHorizontally() || this.isFloatableOutOfView() ) {\n\t\t\t\t\t\t// If opening the popup in the normal direction causes it to be clipped, open\n\t\t\t\t\t\t// in the opposite one instead\n\t\t\t\t\t\tnormalWidth = this.$element.width();\n\t\t\t\t\t\tthis.isAutoFlipped = !this.isAutoFlipped;\n\t\t\t\t\t\t// Due to T180173 horizontally clipped PopupWidgets have messed up dimensions,\n\t\t\t\t\t\t// which causes positioning to be off. Toggle clipping back and fort to work around.\n\t\t\t\t\t\tthis.toggleClipping( false );\n\t\t\t\t\t\tthis.position();\n\t\t\t\t\t\tthis.toggleClipping( true );\n\t\t\t\t\t\tif ( this.isClippedHorizontally() || this.isFloatableOutOfView() ) {\n\t\t\t\t\t\t\t// If that also causes it to be clipped, open in whichever direction\n\t\t\t\t\t\t\t// we have more space\n\t\t\t\t\t\t\toppositeWidth = this.$element.width();\n\t\t\t\t\t\t\tif ( oppositeWidth < normalWidth ) {\n\t\t\t\t\t\t\t\tthis.isAutoFlipped = !this.isAutoFlipped;\n\t\t\t\t\t\t\t\t// Due to T180173 horizontally clipped PopupWidgets have messed up dimensions,\n\t\t\t\t\t\t\t\t// which causes positioning to be off. Toggle clipping back and fort to work around.\n\t\t\t\t\t\t\t\tthis.toggleClipping( false );\n\t\t\t\t\t\t\t\tthis.position();\n\t\t\t\t\t\t\t\tthis.toggleClipping( true );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.emit( 'ready' );\n\t\t} else {\n\t\t\tthis.toggleClipping( false );\n\t\t\tif ( this.autoClose ) {\n\t\t\t\tthis.unbindDocumentMouseDownListener();\n\t\t\t\tthis.unbindDocumentKeyDownListener();\n\t\t\t}\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Set the size of the popup.\n *\n * Changing the size may also change the popup's position depending on the alignment.\n *\n * @param {number|null} [width=320] Width in pixels. Pass `null` to use automatic width.\n * @param {number|null} [height=null] Height in pixels. Pass `null` to use automatic height.\n * @param {boolean} [transition=false] Use a smooth transition\n * @chainable\n */\nOO.ui.PopupWidget.prototype.setSize = function ( width, height, transition ) {\n\tthis.width = width !== undefined ? width : 320;\n\tthis.height = height !== undefined ? height : null;\n\tif ( this.isVisible() ) {\n\t\tthis.updateDimensions( transition );\n\t}\n};\n\n/**\n * Update the size and position.\n *\n * Only use this to keep the popup properly anchored. Use #setSize to change the size, and this will\n * be called automatically.\n *\n * @param {boolean} [transition=false] Use a smooth transition\n * @chainable\n */\nOO.ui.PopupWidget.prototype.updateDimensions = function ( transition ) {\n\tvar widget = this;\n\n\t// Prevent transition from being interrupted\n\tclearTimeout( this.transitionTimeout );\n\tif ( transition ) {\n\t\t// Enable transition\n\t\tthis.$element.addClass( 'oo-ui-popupWidget-transitioning' );\n\t}\n\n\tthis.position();\n\n\tif ( transition ) {\n\t\t// Prevent transitioning after transition is complete\n\t\tthis.transitionTimeout = setTimeout( function () {\n\t\t\twidget.$element.removeClass( 'oo-ui-popupWidget-transitioning' );\n\t\t}, 200 );\n\t} else {\n\t\t// Prevent transitioning immediately\n\t\tthis.$element.removeClass( 'oo-ui-popupWidget-transitioning' );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.PopupWidget.prototype.computePosition = function () {\n\tvar direction, align, vertical, start, end, near, far, sizeProp, popupSize, anchorSize, anchorPos,\n\t\tanchorOffset, anchorMargin, parentPosition, positionProp, positionAdjustment, floatablePos,\n\t\toffsetParentPos, containerPos, popupPosition, viewportSpacing,\n\t\tpopupPos = {},\n\t\tanchorCss = { left: '', right: '', top: '', bottom: '' },\n\t\tpopupPositionOppositeMap = {\n\t\t\tabove: 'below',\n\t\t\tbelow: 'above',\n\t\t\tbefore: 'after',\n\t\t\tafter: 'before'\n\t\t},\n\t\talignMap = {\n\t\t\tltr: {\n\t\t\t\t'force-left': 'backwards',\n\t\t\t\t'force-right': 'forwards'\n\t\t\t},\n\t\t\trtl: {\n\t\t\t\t'force-left': 'forwards',\n\t\t\t\t'force-right': 'backwards'\n\t\t\t}\n\t\t},\n\t\tanchorEdgeMap = {\n\t\t\tabove: 'bottom',\n\t\t\tbelow: 'top',\n\t\t\tbefore: 'end',\n\t\t\tafter: 'start'\n\t\t},\n\t\thPosMap = {\n\t\t\tforwards: 'start',\n\t\t\tcenter: 'center',\n\t\t\tbackwards: this.anchored ? 'before' : 'end'\n\t\t},\n\t\tvPosMap = {\n\t\t\tforwards: 'top',\n\t\t\tcenter: 'center',\n\t\t\tbackwards: 'bottom'\n\t\t};\n\n\tif ( !this.$container ) {\n\t\t// Lazy-initialize $container if not specified in constructor\n\t\tthis.$container = $( this.getClosestScrollableElementContainer() );\n\t}\n\tdirection = this.$container.css( 'direction' );\n\n\t// Set height and width before we do anything else, since it might cause our measurements\n\t// to change (e.g. due to scrollbars appearing or disappearing), and it also affects centering\n\tthis.$popup.css( {\n\t\twidth: this.width !== null ? this.width : 'auto',\n\t\theight: this.height !== null ? this.height : 'auto'\n\t} );\n\n\talign = alignMap[ direction ][ this.align ] || this.align;\n\tpopupPosition = this.popupPosition;\n\tif ( this.isAutoFlipped ) {\n\t\tpopupPosition = popupPositionOppositeMap[ popupPosition ];\n\t}\n\n\t// If the popup is positioned before or after, then the anchor positioning is vertical, otherwise horizontal\n\tvertical = popupPosition === 'before' || popupPosition === 'after';\n\tstart = vertical ? 'top' : ( direction === 'rtl' ? 'right' : 'left' );\n\tend = vertical ? 'bottom' : ( direction === 'rtl' ? 'left' : 'right' );\n\tnear = vertical ? 'top' : 'left';\n\tfar = vertical ? 'bottom' : 'right';\n\tsizeProp = vertical ? 'Height' : 'Width';\n\tpopupSize = vertical ? ( this.height || this.$popup.height() ) : ( this.width || this.$popup.width() );\n\n\tthis.setAnchorEdge( anchorEdgeMap[ popupPosition ] );\n\tthis.horizontalPosition = vertical ? popupPosition : hPosMap[ align ];\n\tthis.verticalPosition = vertical ? vPosMap[ align ] : popupPosition;\n\n\t// Parent method\n\tparentPosition = OO.ui.mixin.FloatableElement.prototype.computePosition.call( this );\n\t// Find out which property FloatableElement used for positioning, and adjust that value\n\tpositionProp = vertical ?\n\t\t( parentPosition.top !== '' ? 'top' : 'bottom' ) :\n\t\t( parentPosition.left !== '' ? 'left' : 'right' );\n\n\t// Figure out where the near and far edges of the popup and $floatableContainer are\n\tfloatablePos = this.$floatableContainer.offset();\n\tfloatablePos[ far ] = floatablePos[ near ] + this.$floatableContainer[ 'outer' + sizeProp ]();\n\t// Measure where the offsetParent is and compute our position based on that and parentPosition\n\toffsetParentPos = this.$element.offsetParent()[ 0 ] === document.documentElement ?\n\t\t{ top: 0, left: 0 } :\n\t\tthis.$element.offsetParent().offset();\n\n\tif ( positionProp === near ) {\n\t\tpopupPos[ near ] = offsetParentPos[ near ] + parentPosition[ near ];\n\t\tpopupPos[ far ] = popupPos[ near ] + popupSize;\n\t} else {\n\t\tpopupPos[ far ] = offsetParentPos[ near ] +\n\t\t\tthis.$element.offsetParent()[ 'inner' + sizeProp ]() - parentPosition[ far ];\n\t\tpopupPos[ near ] = popupPos[ far ] - popupSize;\n\t}\n\n\tif ( this.anchored ) {\n\t\t// Position the anchor (which is positioned relative to the popup) to point to $floatableContainer\n\t\tanchorPos = ( floatablePos[ start ] + floatablePos[ end ] ) / 2;\n\t\tanchorOffset = ( start === far ? -1 : 1 ) * ( anchorPos - popupPos[ start ] );\n\n\t\t// If the anchor is less than 2*anchorSize from either edge, move the popup to make more space\n\t\t// this.$anchor.width()/height() returns 0 because of the CSS trickery we use, so use scrollWidth/Height\n\t\tanchorSize = this.$anchor[ 0 ][ 'scroll' + sizeProp ];\n\t\tanchorMargin = parseFloat( this.$anchor.css( 'margin-' + start ) );\n\t\tif ( anchorOffset + anchorMargin < 2 * anchorSize ) {\n\t\t\t// Not enough space for the anchor on the start side; pull the popup startwards\n\t\t\tpositionAdjustment = ( positionProp === start ? -1 : 1 ) *\n\t\t\t\t( 2 * anchorSize - ( anchorOffset + anchorMargin ) );\n\t\t} else if ( anchorOffset + anchorMargin > popupSize - 2 * anchorSize ) {\n\t\t\t// Not enough space for the anchor on the end side; pull the popup endwards\n\t\t\tpositionAdjustment = ( positionProp === end ? -1 : 1 ) *\n\t\t\t\t( anchorOffset + anchorMargin - ( popupSize - 2 * anchorSize ) );\n\t\t} else {\n\t\t\tpositionAdjustment = 0;\n\t\t}\n\t} else {\n\t\tpositionAdjustment = 0;\n\t}\n\n\t// Check if the popup will go beyond the edge of this.$container\n\tcontainerPos = this.$container[ 0 ] === document.documentElement ?\n\t\t{ top: 0, left: 0 } :\n\t\tthis.$container.offset();\n\tcontainerPos[ far ] = containerPos[ near ] + this.$container[ 'inner' + sizeProp ]();\n\tif ( this.$container[ 0 ] === document.documentElement ) {\n\t\tviewportSpacing = OO.ui.getViewportSpacing();\n\t\tcontainerPos[ near ] += viewportSpacing[ near ];\n\t\tcontainerPos[ far ] -= viewportSpacing[ far ];\n\t}\n\t// Take into account how much the popup will move because of the adjustments we're going to make\n\tpopupPos[ near ] += ( positionProp === near ? 1 : -1 ) * positionAdjustment;\n\tpopupPos[ far ] += ( positionProp === near ? 1 : -1 ) * positionAdjustment;\n\tif ( containerPos[ near ] + this.containerPadding > popupPos[ near ] ) {\n\t\t// Popup goes beyond the near (left/top) edge, move it to the right/bottom\n\t\tpositionAdjustment += ( positionProp === near ? 1 : -1 ) *\n\t\t\t( containerPos[ near ] + this.containerPadding - popupPos[ near ] );\n\t} else if ( containerPos[ far ] - this.containerPadding < popupPos[ far ] ) {\n\t\t// Popup goes beyond the far (right/bottom) edge, move it to the left/top\n\t\tpositionAdjustment += ( positionProp === far ? 1 : -1 ) *\n\t\t\t( popupPos[ far ] - ( containerPos[ far ] - this.containerPadding ) );\n\t}\n\n\tif ( this.anchored ) {\n\t\t// Adjust anchorOffset for positionAdjustment\n\t\tanchorOffset += ( positionProp === start ? -1 : 1 ) * positionAdjustment;\n\n\t\t// Position the anchor\n\t\tanchorCss[ start ] = anchorOffset;\n\t\tthis.$anchor.css( anchorCss );\n\t}\n\n\t// Move the popup if needed\n\tparentPosition[ positionProp ] += positionAdjustment;\n\n\treturn parentPosition;\n};\n\n/**\n * Set popup alignment\n *\n * @param {string} [align=center] Alignment of the popup, `center`, `force-left`, `force-right`,\n *  `backwards` or `forwards`.\n */\nOO.ui.PopupWidget.prototype.setAlignment = function ( align ) {\n\t// Validate alignment\n\tif ( [ 'force-left', 'force-right', 'backwards', 'forwards', 'center' ].indexOf( align ) > -1 ) {\n\t\tthis.align = align;\n\t} else {\n\t\tthis.align = 'center';\n\t}\n\tthis.position();\n};\n\n/**\n * Get popup alignment\n *\n * @return {string} Alignment of the popup, `center`, `force-left`, `force-right`,\n *  `backwards` or `forwards`.\n */\nOO.ui.PopupWidget.prototype.getAlignment = function () {\n\treturn this.align;\n};\n\n/**\n * Change the positioning of the popup.\n *\n * @param {string} position 'above', 'below', 'before' or 'after'\n */\nOO.ui.PopupWidget.prototype.setPosition = function ( position ) {\n\tif ( [ 'above', 'below', 'before', 'after' ].indexOf( position ) === -1 ) {\n\t\tposition = 'below';\n\t}\n\tthis.popupPosition = position;\n\tthis.position();\n};\n\n/**\n * Get popup positioning.\n *\n * @return {string} 'above', 'below', 'before' or 'after'\n */\nOO.ui.PopupWidget.prototype.getPosition = function () {\n\treturn this.popupPosition;\n};\n\n/**\n * Set popup auto-flipping.\n *\n * @param {boolean} autoFlip Whether to automatically switch the popup's position between\n *  'above' and 'below', or between 'before' and 'after', if there is not enough space in the\n *  desired direction to display the popup without clipping\n */\nOO.ui.PopupWidget.prototype.setAutoFlip = function ( autoFlip ) {\n\tautoFlip = !!autoFlip;\n\n\tif ( this.autoFlip !== autoFlip ) {\n\t\tthis.autoFlip = autoFlip;\n\t}\n};\n\n/**\n * Set which elements will not close the popup when clicked.\n *\n * For auto-closing popups, clicks on these elements will not cause the popup to auto-close.\n *\n * @param {jQuery} $autoCloseIgnore Elements to ignore for auto-closing\n */\nOO.ui.PopupWidget.prototype.setAutoCloseIgnore = function ( $autoCloseIgnore ) {\n\tthis.$autoCloseIgnore = $autoCloseIgnore;\n};\n\n/**\n * Get an ID of the body element, this can be used as the\n * `aria-describedby` attribute for an input field.\n *\n * @return {string} The ID of the body element\n */\nOO.ui.PopupWidget.prototype.getBodyId = function () {\n\tvar id = this.$body.attr( 'id' );\n\tif ( id === undefined ) {\n\t\tid = OO.ui.generateElementId();\n\t\tthis.$body.attr( 'id', id );\n\t}\n\treturn id;\n};\n","/**\n * PopupElement is mixed into other classes to generate a {@link OO.ui.PopupWidget popup widget}.\n * A popup is a container for content. It is overlaid and positioned absolutely. By default, each\n * popup has an anchor, which is an arrow-like protrusion that points toward the popup’s origin.\n * See {@link OO.ui.PopupWidget PopupWidget} for an example.\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {Object} [popup] Configuration to pass to popup\n * @cfg {boolean} [popup.autoClose=true] Popup auto-closes when it loses focus\n */\nOO.ui.mixin.PopupElement = function OoUiMixinPopupElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.popup = new OO.ui.PopupWidget( $.extend(\n\t\t{\n\t\t\tautoClose: true,\n\t\t\t$floatableContainer: this.$element\n\t\t},\n\t\tconfig.popup,\n\t\t{\n\t\t\t$autoCloseIgnore: this.$element.add( config.popup && config.popup.$autoCloseIgnore )\n\t\t}\n\t) );\n};\n\n/* Methods */\n\n/**\n * Get popup.\n *\n * @return {OO.ui.PopupWidget} Popup widget\n */\nOO.ui.mixin.PopupElement.prototype.getPopup = function () {\n\treturn this.popup;\n};\n","/**\n * PopupButtonWidgets toggle the visibility of a contained {@link OO.ui.PopupWidget PopupWidget},\n * which is used to display additional information or options.\n *\n *     @example\n *     // A PopupButtonWidget.\n *     var popupButton = new OO.ui.PopupButtonWidget( {\n *         label: 'Popup button with options',\n *         icon: 'menu',\n *         popup: {\n *             $content: $( '<p>Additional options here.</p>' ),\n *             padded: true,\n *             align: 'force-left'\n *         }\n *     } );\n *     // Append the button to the DOM.\n *     $( document.body ).append( popupButton.$element );\n *\n * @class\n * @extends OO.ui.ButtonWidget\n * @mixins OO.ui.mixin.PopupElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$overlay] Render the popup into a separate layer. This configuration is useful in cases where\n *  the expanded popup is larger than its containing `<div>`. The specified overlay layer is usually on top of the\n *  containing `<div>` and has a larger area. By default, the popup uses relative positioning.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n */\nOO.ui.PopupButtonWidget = function OoUiPopupButtonWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.PopupButtonWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.PopupElement.call( this, config );\n\n\t// Properties\n\tthis.$overlay = ( config.$overlay === true ? OO.ui.getDefaultOverlay() : config.$overlay ) || this.$element;\n\n\t// Events\n\tthis.connect( this, { click: 'onAction' } );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-popupButtonWidget' );\n\tthis.popup.$element\n\t\t.addClass( 'oo-ui-popupButtonWidget-popup' )\n\t\t.toggleClass( 'oo-ui-popupButtonWidget-framed-popup', this.isFramed() )\n\t\t.toggleClass( 'oo-ui-popupButtonWidget-frameless-popup', !this.isFramed() );\n\tthis.$overlay.append( this.popup.$element );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.PopupButtonWidget, OO.ui.ButtonWidget );\nOO.mixinClass( OO.ui.PopupButtonWidget, OO.ui.mixin.PopupElement );\n\n/* Methods */\n\n/**\n * Handle the button action being triggered.\n *\n * @private\n */\nOO.ui.PopupButtonWidget.prototype.onAction = function () {\n\tthis.popup.toggle();\n};\n","/**\n * Mixin for OO.ui.Widget subclasses to provide OO.ui.mixin.GroupElement.\n *\n * Use together with OO.ui.mixin.ItemWidget to make disabled state inheritable.\n *\n * @private\n * @abstract\n * @class\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.mixin.GroupWidget = function OoUiMixinGroupWidget( config ) {\n\t// Mixin constructors\n\tOO.ui.mixin.GroupElement.call( this, config );\n};\n\n/* Setup */\n\nOO.mixinClass( OO.ui.mixin.GroupWidget, OO.ui.mixin.GroupElement );\n\n/* Methods */\n\n/**\n * Set the disabled state of the widget.\n *\n * This will also update the disabled state of child widgets.\n *\n * @param {boolean} disabled Disable widget\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.mixin.GroupWidget.prototype.setDisabled = function ( disabled ) {\n\tvar i, len;\n\n\t// Parent method\n\t// Note: Calling #setDisabled this way assumes this is mixed into an OO.ui.Widget\n\tOO.ui.Widget.prototype.setDisabled.call( this, disabled );\n\n\t// During construction, #setDisabled is called before the OO.ui.mixin.GroupElement constructor\n\tif ( this.items ) {\n\t\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\t\tthis.items[ i ].updateDisabled();\n\t\t}\n\t}\n\n\treturn this;\n};\n","/**\n * Mixin for widgets used as items in widgets that mix in OO.ui.mixin.GroupWidget.\n *\n * Item widgets have a reference to a OO.ui.mixin.GroupWidget while they are attached to the group. This\n * allows bidirectional communication.\n *\n * Use together with OO.ui.mixin.GroupWidget to make disabled state inheritable.\n *\n * @private\n * @abstract\n * @class\n *\n * @constructor\n */\nOO.ui.mixin.ItemWidget = function OoUiMixinItemWidget() {\n\t//\n};\n\n/* Methods */\n\n/**\n * Check if widget is disabled.\n *\n * Checks parent if present, making disabled state inheritable.\n *\n * @return {boolean} Widget is disabled\n */\nOO.ui.mixin.ItemWidget.prototype.isDisabled = function () {\n\treturn this.disabled ||\n\t\t( this.elementGroup instanceof OO.ui.Widget && this.elementGroup.isDisabled() );\n};\n\n/**\n * Set group element is in.\n *\n * @param {OO.ui.mixin.GroupElement|null} group Group element, null if none\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.mixin.ItemWidget.prototype.setElementGroup = function ( group ) {\n\t// Parent method\n\t// Note: Calling #setElementGroup this way assumes this is mixed into an OO.ui.Element\n\tOO.ui.Element.prototype.setElementGroup.call( this, group );\n\n\t// Initialize item disabled states\n\tthis.updateDisabled();\n\n\treturn this;\n};\n","/**\n * OptionWidgets are special elements that can be selected and configured with data. The\n * data is often unique for each option, but it does not have to be. OptionWidgets are used\n * with OO.ui.SelectWidget to create a selection of mutually exclusive options. For more information\n * and examples, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.ItemWidget\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.FlaggedElement\n * @mixins OO.ui.mixin.AccessKeyedElement\n * @mixins OO.ui.mixin.TitledElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.OptionWidget = function OoUiOptionWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.OptionWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.ItemWidget.call( this );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.FlaggedElement.call( this, config );\n\tOO.ui.mixin.AccessKeyedElement.call( this, config );\n\tOO.ui.mixin.TitledElement.call( this, config );\n\n\t// Properties\n\tthis.selected = false;\n\tthis.highlighted = false;\n\tthis.pressed = false;\n\n\t// Initialization\n\tthis.$element\n\t\t.data( 'oo-ui-optionWidget', this )\n\t\t// Allow programmatic focussing (and by accesskey), but not tabbing\n\t\t.attr( 'tabindex', '-1' )\n\t\t.attr( 'role', 'option' )\n\t\t.attr( 'aria-selected', 'false' )\n\t\t.addClass( 'oo-ui-optionWidget' )\n\t\t.append( this.$label );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.OptionWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.ItemWidget );\nOO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.FlaggedElement );\nOO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.AccessKeyedElement );\nOO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.TitledElement );\n\n/* Static Properties */\n\n/**\n * Whether this option can be selected. See #setSelected.\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.OptionWidget.static.selectable = true;\n\n/**\n * Whether this option can be highlighted. See #setHighlighted.\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.OptionWidget.static.highlightable = true;\n\n/**\n * Whether this option can be pressed. See #setPressed.\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.OptionWidget.static.pressable = true;\n\n/**\n * Whether this option will be scrolled into view when it is selected.\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.OptionWidget.static.scrollIntoViewOnSelect = false;\n\n/* Methods */\n\n/**\n * Check if the option can be selected.\n *\n * @return {boolean} Item is selectable\n */\nOO.ui.OptionWidget.prototype.isSelectable = function () {\n\treturn this.constructor.static.selectable && !this.disabled && this.isVisible();\n};\n\n/**\n * Check if the option can be highlighted. A highlight indicates that the option\n * may be selected when a user presses enter or clicks. Disabled items cannot\n * be highlighted.\n *\n * @return {boolean} Item is highlightable\n */\nOO.ui.OptionWidget.prototype.isHighlightable = function () {\n\treturn this.constructor.static.highlightable && !this.disabled && this.isVisible();\n};\n\n/**\n * Check if the option can be pressed. The pressed state occurs when a user mouses\n * down on an item, but has not yet let go of the mouse.\n *\n * @return {boolean} Item is pressable\n */\nOO.ui.OptionWidget.prototype.isPressable = function () {\n\treturn this.constructor.static.pressable && !this.disabled && this.isVisible();\n};\n\n/**\n * Check if the option is selected.\n *\n * @return {boolean} Item is selected\n */\nOO.ui.OptionWidget.prototype.isSelected = function () {\n\treturn this.selected;\n};\n\n/**\n * Check if the option is highlighted. A highlight indicates that the\n * item may be selected when a user presses enter or clicks.\n *\n * @return {boolean} Item is highlighted\n */\nOO.ui.OptionWidget.prototype.isHighlighted = function () {\n\treturn this.highlighted;\n};\n\n/**\n * Check if the option is pressed. The pressed state occurs when a user mouses\n * down on an item, but has not yet let go of the mouse. The item may appear\n * selected, but it will not be selected until the user releases the mouse.\n *\n * @return {boolean} Item is pressed\n */\nOO.ui.OptionWidget.prototype.isPressed = function () {\n\treturn this.pressed;\n};\n\n/**\n * Set the option’s selected state. In general, all modifications to the selection\n * should be handled by the SelectWidget’s {@link OO.ui.SelectWidget#selectItem selectItem( [item] )}\n * method instead of this method.\n *\n * @param {boolean} [state=false] Select option\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.OptionWidget.prototype.setSelected = function ( state ) {\n\tif ( this.constructor.static.selectable ) {\n\t\tthis.selected = !!state;\n\t\tthis.$element\n\t\t\t.toggleClass( 'oo-ui-optionWidget-selected', state )\n\t\t\t.attr( 'aria-selected', state.toString() );\n\t\tif ( state && this.constructor.static.scrollIntoViewOnSelect ) {\n\t\t\tthis.scrollElementIntoView();\n\t\t}\n\t\tthis.updateThemeClasses();\n\t}\n\treturn this;\n};\n\n/**\n * Set the option’s highlighted state. In general, all programmatic\n * modifications to the highlight should be handled by the\n * SelectWidget’s {@link OO.ui.SelectWidget#highlightItem highlightItem( [item] )}\n * method instead of this method.\n *\n * @param {boolean} [state=false] Highlight option\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.OptionWidget.prototype.setHighlighted = function ( state ) {\n\tif ( this.constructor.static.highlightable ) {\n\t\tthis.highlighted = !!state;\n\t\tthis.$element.toggleClass( 'oo-ui-optionWidget-highlighted', state );\n\t\tthis.updateThemeClasses();\n\t}\n\treturn this;\n};\n\n/**\n * Set the option’s pressed state. In general, all\n * programmatic modifications to the pressed state should be handled by the\n * SelectWidget’s {@link OO.ui.SelectWidget#pressItem pressItem( [item] )}\n * method instead of this method.\n *\n * @param {boolean} [state=false] Press option\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.OptionWidget.prototype.setPressed = function ( state ) {\n\tif ( this.constructor.static.pressable ) {\n\t\tthis.pressed = !!state;\n\t\tthis.$element.toggleClass( 'oo-ui-optionWidget-pressed', state );\n\t\tthis.updateThemeClasses();\n\t}\n\treturn this;\n};\n\n/**\n * Get text to match search strings against.\n *\n * The default implementation returns the label text, but subclasses\n * can override this to provide more complex behavior.\n *\n * @return {string|boolean} String to match search string against\n */\nOO.ui.OptionWidget.prototype.getMatchText = function () {\n\tvar label = this.getLabel();\n\treturn typeof label === 'string' ? label : this.$label.text();\n};\n","/**\n * A SelectWidget is of a generic selection of options. The OOUI library contains several types of\n * select widgets, including {@link OO.ui.ButtonSelectWidget button selects},\n * {@link OO.ui.RadioSelectWidget radio selects}, and {@link OO.ui.MenuSelectWidget\n * menu selects}.\n *\n * This class should be used together with OO.ui.OptionWidget or OO.ui.DecoratedOptionWidget. For more\n * information, please see the [OOUI documentation on MediaWiki][1].\n *\n *     @example\n *     // A select widget with three options.\n *     var select = new OO.ui.SelectWidget( {\n *         items: [\n *             new OO.ui.OptionWidget( {\n *                 data: 'a',\n *                 label: 'Option One',\n *             } ),\n *             new OO.ui.OptionWidget( {\n *                 data: 'b',\n *                 label: 'Option Two',\n *             } ),\n *             new OO.ui.OptionWidget( {\n *                 data: 'c',\n *                 label: 'Option Three',\n *             } )\n *         ]\n *     } );\n *     $( document.body ).append( select.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options\n *\n * @abstract\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.GroupWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.ui.OptionWidget[]} [items] An array of options to add to the select.\n *  Options are created with {@link OO.ui.OptionWidget OptionWidget} classes. See\n *  the [OOUI documentation on MediaWiki] [2] for examples.\n *  [2]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options\n */\nOO.ui.SelectWidget = function OoUiSelectWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.SelectWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupWidget.call( this, $.extend( {}, config, { $group: this.$element } ) );\n\n\t// Properties\n\tthis.pressed = false;\n\tthis.selecting = null;\n\tthis.onDocumentMouseUpHandler = this.onDocumentMouseUp.bind( this );\n\tthis.onDocumentMouseMoveHandler = this.onDocumentMouseMove.bind( this );\n\tthis.onDocumentKeyDownHandler = this.onDocumentKeyDown.bind( this );\n\tthis.onDocumentKeyPressHandler = this.onDocumentKeyPress.bind( this );\n\tthis.keyPressBuffer = '';\n\tthis.keyPressBufferTimer = null;\n\tthis.blockMouseOverEvents = 0;\n\n\t// Events\n\tthis.connect( this, {\n\t\ttoggle: 'onToggle'\n\t} );\n\tthis.$element.on( {\n\t\tfocusin: this.onFocus.bind( this ),\n\t\tmousedown: this.onMouseDown.bind( this ),\n\t\tmouseover: this.onMouseOver.bind( this ),\n\t\tmouseleave: this.onMouseLeave.bind( this )\n\t} );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-selectWidget oo-ui-selectWidget-depressed' )\n\t\t.attr( 'role', 'listbox' );\n\tthis.setFocusOwner( this.$element );\n\tif ( Array.isArray( config.items ) ) {\n\t\tthis.addItems( config.items );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.SelectWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.SelectWidget, OO.ui.mixin.GroupWidget );\n\n/* Events */\n\n/**\n * @event highlight\n *\n * A `highlight` event is emitted when the highlight is changed with the #highlightItem method.\n *\n * @param {OO.ui.OptionWidget|null} item Highlighted item\n */\n\n/**\n * @event press\n *\n * A `press` event is emitted when the #pressItem method is used to programmatically modify the\n * pressed state of an option.\n *\n * @param {OO.ui.OptionWidget|null} item Pressed item\n */\n\n/**\n * @event select\n *\n * A `select` event is emitted when the selection is modified programmatically with the #selectItem method.\n *\n * @param {OO.ui.OptionWidget|null} item Selected item\n */\n\n/**\n * @event choose\n * A `choose` event is emitted when an item is chosen with the #chooseItem method.\n * @param {OO.ui.OptionWidget} item Chosen item\n */\n\n/**\n * @event add\n *\n * An `add` event is emitted when options are added to the select with the #addItems method.\n *\n * @param {OO.ui.OptionWidget[]} items Added items\n * @param {number} index Index of insertion point\n */\n\n/**\n * @event remove\n *\n * A `remove` event is emitted when options are removed from the select with the #clearItems\n * or #removeItems methods.\n *\n * @param {OO.ui.OptionWidget[]} items Removed items\n */\n\n/* Methods */\n\n/**\n * Handle focus events\n *\n * @private\n * @param {jQuery.Event} event\n */\nOO.ui.SelectWidget.prototype.onFocus = function ( event ) {\n\tvar item;\n\tif ( event.target === this.$element[ 0 ] ) {\n\t\t// This widget was focussed, e.g. by the user tabbing to it.\n\t\t// The styles for focus state depend on one of the items being selected.\n\t\tif ( !this.findSelectedItem() ) {\n\t\t\titem = this.findFirstSelectableItem();\n\t\t}\n\t} else {\n\t\tif ( event.target.tabIndex === -1 ) {\n\t\t\t// One of the options got focussed (and the event bubbled up here).\n\t\t\t// They can't be tabbed to, but they can be activated using accesskeys.\n\t\t\t// OptionWidgets and focusable UI elements inside them have tabindex=\"-1\" set.\n\t\t\titem = this.findTargetItem( event );\n\t\t} else {\n\t\t\t// There is something actually user-focusable in one of the labels of the options, and the\n\t\t\t// user focussed it (e.g. by tabbing to it). Do nothing (especially, don't change the focus).\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif ( item ) {\n\t\tif ( item.constructor.static.highlightable ) {\n\t\t\tthis.highlightItem( item );\n\t\t} else {\n\t\t\tthis.selectItem( item );\n\t\t}\n\t}\n\n\tif ( event.target !== this.$element[ 0 ] ) {\n\t\tthis.$focusOwner.focus();\n\t}\n};\n\n/**\n * Handle mouse down events.\n *\n * @private\n * @param {jQuery.Event} e Mouse down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectWidget.prototype.onMouseDown = function ( e ) {\n\tvar item;\n\n\tif ( !this.isDisabled() && e.which === OO.ui.MouseButtons.LEFT ) {\n\t\tthis.togglePressed( true );\n\t\titem = this.findTargetItem( e );\n\t\tif ( item && item.isSelectable() ) {\n\t\t\tthis.pressItem( item );\n\t\t\tthis.selecting = item;\n\t\t\tthis.getElementDocument().addEventListener( 'mouseup', this.onDocumentMouseUpHandler, true );\n\t\t\tthis.getElementDocument().addEventListener( 'mousemove', this.onDocumentMouseMoveHandler, true );\n\t\t}\n\t}\n\treturn false;\n};\n\n/**\n * Handle document mouse up events.\n *\n * @private\n * @param {MouseEvent} e Mouse up event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectWidget.prototype.onDocumentMouseUp = function ( e ) {\n\tvar item;\n\n\tthis.togglePressed( false );\n\tif ( !this.selecting ) {\n\t\titem = this.findTargetItem( e );\n\t\tif ( item && item.isSelectable() ) {\n\t\t\tthis.selecting = item;\n\t\t}\n\t}\n\tif ( !this.isDisabled() && e.which === OO.ui.MouseButtons.LEFT && this.selecting ) {\n\t\tthis.pressItem( null );\n\t\tthis.chooseItem( this.selecting );\n\t\tthis.selecting = null;\n\t}\n\n\tthis.getElementDocument().removeEventListener( 'mouseup', this.onDocumentMouseUpHandler, true );\n\tthis.getElementDocument().removeEventListener( 'mousemove', this.onDocumentMouseMoveHandler, true );\n\n\treturn false;\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.SelectWidget.prototype.onMouseUp = function () {\n\tOO.ui.warnDeprecation( 'onMouseUp is deprecated, use onDocumentMouseUp instead' );\n\tthis.onDocumentMouseUp.apply( this, arguments );\n};\n\n/**\n * Handle document mouse move events.\n *\n * @private\n * @param {MouseEvent} e Mouse move event\n */\nOO.ui.SelectWidget.prototype.onDocumentMouseMove = function ( e ) {\n\tvar item;\n\n\tif ( !this.isDisabled() && this.pressed ) {\n\t\titem = this.findTargetItem( e );\n\t\tif ( item && item !== this.selecting && item.isSelectable() ) {\n\t\t\tthis.pressItem( item );\n\t\t\tthis.selecting = item;\n\t\t}\n\t}\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.SelectWidget.prototype.onMouseMove = function () {\n\tOO.ui.warnDeprecation( 'onMouseMove is deprecated, use onDocumentMouseMove instead' );\n\tthis.onDocumentMouseMove.apply( this, arguments );\n};\n\n/**\n * Handle mouse over events.\n *\n * @private\n * @param {jQuery.Event} e Mouse over event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectWidget.prototype.onMouseOver = function ( e ) {\n\tvar item;\n\tif ( this.blockMouseOverEvents ) {\n\t\treturn;\n\t}\n\tif ( !this.isDisabled() ) {\n\t\titem = this.findTargetItem( e );\n\t\tthis.highlightItem( item && item.isHighlightable() ? item : null );\n\t}\n\treturn false;\n};\n\n/**\n * Handle mouse leave events.\n *\n * @private\n * @param {jQuery.Event} e Mouse over event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectWidget.prototype.onMouseLeave = function () {\n\tif ( !this.isDisabled() ) {\n\t\tthis.highlightItem( null );\n\t}\n\treturn false;\n};\n\n/**\n * Handle document key down events.\n *\n * @protected\n * @param {KeyboardEvent} e Key down event\n */\nOO.ui.SelectWidget.prototype.onDocumentKeyDown = function ( e ) {\n\tvar nextItem,\n\t\thandled = false,\n\t\tcurrentItem = this.findHighlightedItem() || this.findSelectedItem();\n\n\tif ( !this.isDisabled() && this.isVisible() ) {\n\t\tswitch ( e.keyCode ) {\n\t\t\tcase OO.ui.Keys.ENTER:\n\t\t\t\tif ( currentItem && currentItem.constructor.static.highlightable ) {\n\t\t\t\t\t// Was only highlighted, now let's select it. No-op if already selected.\n\t\t\t\t\tthis.chooseItem( currentItem );\n\t\t\t\t\thandled = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase OO.ui.Keys.UP:\n\t\t\tcase OO.ui.Keys.LEFT:\n\t\t\t\tthis.clearKeyPressBuffer();\n\t\t\t\tnextItem = this.findRelativeSelectableItem( currentItem, -1 );\n\t\t\t\thandled = true;\n\t\t\t\tbreak;\n\t\t\tcase OO.ui.Keys.DOWN:\n\t\t\tcase OO.ui.Keys.RIGHT:\n\t\t\t\tthis.clearKeyPressBuffer();\n\t\t\t\tnextItem = this.findRelativeSelectableItem( currentItem, 1 );\n\t\t\t\thandled = true;\n\t\t\t\tbreak;\n\t\t\tcase OO.ui.Keys.ESCAPE:\n\t\t\tcase OO.ui.Keys.TAB:\n\t\t\t\tif ( currentItem && currentItem.constructor.static.highlightable ) {\n\t\t\t\t\tcurrentItem.setHighlighted( false );\n\t\t\t\t}\n\t\t\t\tthis.unbindDocumentKeyDownListener();\n\t\t\t\tthis.unbindDocumentKeyPressListener();\n\t\t\t\t// Don't prevent tabbing away / defocusing\n\t\t\t\thandled = false;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( nextItem ) {\n\t\t\tif ( nextItem.constructor.static.highlightable ) {\n\t\t\t\tthis.highlightItem( nextItem );\n\t\t\t} else {\n\t\t\t\tthis.chooseItem( nextItem );\n\t\t\t}\n\t\t\tthis.scrollItemIntoView( nextItem );\n\t\t}\n\n\t\tif ( handled ) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.SelectWidget.prototype.onKeyDown = function () {\n\tOO.ui.warnDeprecation( 'onKeyDown is deprecated, use onDocumentKeyDown instead' );\n\tthis.onDocumentKeyDown.apply( this, arguments );\n};\n\n/**\n * Bind document key down listener.\n *\n * @protected\n */\nOO.ui.SelectWidget.prototype.bindDocumentKeyDownListener = function () {\n\tthis.getElementDocument().addEventListener( 'keydown', this.onDocumentKeyDownHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.SelectWidget.prototype.bindKeyDownListener = function () {\n\tOO.ui.warnDeprecation( 'bindKeyDownListener is deprecated, use bindDocumentKeyDownListener instead' );\n\tthis.bindDocumentKeyDownListener.apply( this, arguments );\n};\n\n/**\n * Unbind document key down listener.\n *\n * @protected\n */\nOO.ui.SelectWidget.prototype.unbindDocumentKeyDownListener = function () {\n\tthis.getElementDocument().removeEventListener( 'keydown', this.onDocumentKeyDownHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.SelectWidget.prototype.unbindKeyDownListener = function () {\n\tOO.ui.warnDeprecation( 'unbindKeyDownListener is deprecated, use unbindDocumentKeyDownListener instead' );\n\tthis.unbindDocumentKeyDownListener.apply( this, arguments );\n};\n\n/**\n * Scroll item into view, preventing spurious mouse highlight actions from happening.\n *\n * @param {OO.ui.OptionWidget} item Item to scroll into view\n */\nOO.ui.SelectWidget.prototype.scrollItemIntoView = function ( item ) {\n\tvar widget = this;\n\t// Chromium's Blink engine will generate spurious 'mouseover' events during programmatic scrolling\n\t// and around 100-150 ms after it is finished.\n\tthis.blockMouseOverEvents++;\n\titem.scrollElementIntoView().done( function () {\n\t\tsetTimeout( function () {\n\t\t\twidget.blockMouseOverEvents--;\n\t\t}, 200 );\n\t} );\n};\n\n/**\n * Clear the key-press buffer\n *\n * @protected\n */\nOO.ui.SelectWidget.prototype.clearKeyPressBuffer = function () {\n\tif ( this.keyPressBufferTimer ) {\n\t\tclearTimeout( this.keyPressBufferTimer );\n\t\tthis.keyPressBufferTimer = null;\n\t}\n\tthis.keyPressBuffer = '';\n};\n\n/**\n * Handle key press events.\n *\n * @protected\n * @param {KeyboardEvent} e Key press event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectWidget.prototype.onDocumentKeyPress = function ( e ) {\n\tvar c, filter, item;\n\n\tif ( !e.charCode ) {\n\t\tif ( e.keyCode === OO.ui.Keys.BACKSPACE && this.keyPressBuffer !== '' ) {\n\t\t\tthis.keyPressBuffer = this.keyPressBuffer.substr( 0, this.keyPressBuffer.length - 1 );\n\t\t\treturn false;\n\t\t}\n\t\treturn;\n\t}\n\t// eslint-disable-next-line no-restricted-properties\n\tif ( String.fromCodePoint ) {\n\t\t// eslint-disable-next-line no-restricted-properties\n\t\tc = String.fromCodePoint( e.charCode );\n\t} else {\n\t\tc = String.fromCharCode( e.charCode );\n\t}\n\n\tif ( this.keyPressBufferTimer ) {\n\t\tclearTimeout( this.keyPressBufferTimer );\n\t}\n\tthis.keyPressBufferTimer = setTimeout( this.clearKeyPressBuffer.bind( this ), 1500 );\n\n\titem = this.findHighlightedItem() || this.findSelectedItem();\n\n\tif ( this.keyPressBuffer === c ) {\n\t\t// Common (if weird) special case: typing \"xxxx\" will cycle through all\n\t\t// the items beginning with \"x\".\n\t\tif ( item ) {\n\t\t\titem = this.findRelativeSelectableItem( item, 1 );\n\t\t}\n\t} else {\n\t\tthis.keyPressBuffer += c;\n\t}\n\n\tfilter = this.getItemMatcher( this.keyPressBuffer, false );\n\tif ( !item || !filter( item ) ) {\n\t\titem = this.findRelativeSelectableItem( item, 1, filter );\n\t}\n\tif ( item ) {\n\t\tif ( this.isVisible() && item.constructor.static.highlightable ) {\n\t\t\tthis.highlightItem( item );\n\t\t} else {\n\t\t\tthis.chooseItem( item );\n\t\t}\n\t\tthis.scrollItemIntoView( item );\n\t}\n\n\te.preventDefault();\n\te.stopPropagation();\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.SelectWidget.prototype.onKeyPress = function () {\n\tOO.ui.warnDeprecation( 'onKeyPress is deprecated, use onDocumentKeyPress instead' );\n\tthis.onDocumentKeyPress.apply( this, arguments );\n};\n\n/**\n * Get a matcher for the specific string\n *\n * @protected\n * @param {string} s String to match against items\n * @param {boolean} [exact=false] Only accept exact matches\n * @return {Function} function ( OO.ui.OptionWidget ) => boolean\n */\nOO.ui.SelectWidget.prototype.getItemMatcher = function ( s, exact ) {\n\tvar re;\n\n\t// eslint-disable-next-line no-restricted-properties\n\tif ( s.normalize ) {\n\t\t// eslint-disable-next-line no-restricted-properties\n\t\ts = s.normalize();\n\t}\n\ts = exact ? s.trim() : s.replace( /^\\s+/, '' );\n\tre = '^\\\\s*' + s.replace( /([\\\\{}()|.?*+\\-^$[\\]])/g, '\\\\$1' ).replace( /\\s+/g, '\\\\s+' );\n\tif ( exact ) {\n\t\tre += '\\\\s*$';\n\t}\n\tre = new RegExp( re, 'i' );\n\treturn function ( item ) {\n\t\tvar matchText = item.getMatchText();\n\t\t// eslint-disable-next-line no-restricted-properties\n\t\tif ( matchText.normalize ) {\n\t\t\t// eslint-disable-next-line no-restricted-properties\n\t\t\tmatchText = matchText.normalize();\n\t\t}\n\t\treturn re.test( matchText );\n\t};\n};\n\n/**\n * Bind document key press listener.\n *\n * @protected\n */\nOO.ui.SelectWidget.prototype.bindDocumentKeyPressListener = function () {\n\tthis.getElementDocument().addEventListener( 'keypress', this.onDocumentKeyPressHandler, true );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.SelectWidget.prototype.bindKeyPressListener = function () {\n\tOO.ui.warnDeprecation( 'bindKeyPressListener is deprecated, use bindDocumentKeyPressListener instead' );\n\tthis.bindDocumentKeyPressListener.apply( this, arguments );\n};\n\n/**\n * Unbind document key down listener.\n *\n * If you override this, be sure to call this.clearKeyPressBuffer() from your\n * implementation.\n *\n * @protected\n */\nOO.ui.SelectWidget.prototype.unbindDocumentKeyPressListener = function () {\n\tthis.getElementDocument().removeEventListener( 'keypress', this.onDocumentKeyPressHandler, true );\n\tthis.clearKeyPressBuffer();\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.SelectWidget.prototype.unbindKeyPressListener = function () {\n\tOO.ui.warnDeprecation( 'unbindKeyPressListener is deprecated, use unbindDocumentKeyPressListener instead' );\n\tthis.unbindDocumentKeyPressListener.apply( this, arguments );\n};\n\n/**\n * Visibility change handler\n *\n * @protected\n * @param {boolean} visible\n */\nOO.ui.SelectWidget.prototype.onToggle = function ( visible ) {\n\tif ( !visible ) {\n\t\tthis.clearKeyPressBuffer();\n\t}\n};\n\n/**\n * Get the closest item to a jQuery.Event.\n *\n * @private\n * @param {jQuery.Event} e\n * @return {OO.ui.OptionWidget|null} Outline item widget, `null` if none was found\n */\nOO.ui.SelectWidget.prototype.findTargetItem = function ( e ) {\n\tvar $option = $( e.target ).closest( '.oo-ui-optionWidget' );\n\tif ( !$option.closest( '.oo-ui-selectWidget' ).is( this.$element ) ) {\n\t\treturn null;\n\t}\n\treturn $option.data( 'oo-ui-optionWidget' ) || null;\n};\n\n/**\n * Find selected item.\n *\n * @return {OO.ui.OptionWidget|null} Selected item, `null` if no item is selected\n */\nOO.ui.SelectWidget.prototype.findSelectedItem = function () {\n\tvar i, len;\n\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\tif ( this.items[ i ].isSelected() ) {\n\t\t\treturn this.items[ i ];\n\t\t}\n\t}\n\treturn null;\n};\n\n/**\n * Find highlighted item.\n *\n * @return {OO.ui.OptionWidget|null} Highlighted item, `null` if no item is highlighted\n */\nOO.ui.SelectWidget.prototype.findHighlightedItem = function () {\n\tvar i, len;\n\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\tif ( this.items[ i ].isHighlighted() ) {\n\t\t\treturn this.items[ i ];\n\t\t}\n\t}\n\treturn null;\n};\n\n/**\n * Toggle pressed state.\n *\n * Press is a state that occurs when a user mouses down on an item, but\n * has not yet let go of the mouse. The item may appear selected, but it will not be selected\n * until the user releases the mouse.\n *\n * @param {boolean} pressed An option is being pressed\n */\nOO.ui.SelectWidget.prototype.togglePressed = function ( pressed ) {\n\tif ( pressed === undefined ) {\n\t\tpressed = !this.pressed;\n\t}\n\tif ( pressed !== this.pressed ) {\n\t\tthis.$element\n\t\t\t.toggleClass( 'oo-ui-selectWidget-pressed', pressed )\n\t\t\t.toggleClass( 'oo-ui-selectWidget-depressed', !pressed );\n\t\tthis.pressed = pressed;\n\t}\n};\n\n/**\n * Highlight an option. If the `item` param is omitted, no options will be highlighted\n * and any existing highlight will be removed. The highlight is mutually exclusive.\n *\n * @param {OO.ui.OptionWidget} [item] Item to highlight, omit for no highlight\n * @fires highlight\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectWidget.prototype.highlightItem = function ( item ) {\n\tvar i, len, highlighted,\n\t\tchanged = false;\n\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\thighlighted = this.items[ i ] === item;\n\t\tif ( this.items[ i ].isHighlighted() !== highlighted ) {\n\t\t\tthis.items[ i ].setHighlighted( highlighted );\n\t\t\tchanged = true;\n\t\t}\n\t}\n\tif ( changed ) {\n\t\tif ( item ) {\n\t\t\tthis.$focusOwner.attr( 'aria-activedescendant', item.getElementId() );\n\t\t} else {\n\t\t\tthis.$focusOwner.removeAttr( 'aria-activedescendant' );\n\t\t}\n\t\tthis.emit( 'highlight', item );\n\t}\n\n\treturn this;\n};\n\n/**\n * Fetch an item by its label.\n *\n * @param {string} label Label of the item to select.\n * @param {boolean} [prefix=false] Allow a prefix match, if only a single item matches\n * @return {OO.ui.Element|null} Item with equivalent label, `null` if none exists\n */\nOO.ui.SelectWidget.prototype.getItemFromLabel = function ( label, prefix ) {\n\tvar i, item, found,\n\t\tlen = this.items.length,\n\t\tfilter = this.getItemMatcher( label, true );\n\n\tfor ( i = 0; i < len; i++ ) {\n\t\titem = this.items[ i ];\n\t\tif ( item instanceof OO.ui.OptionWidget && item.isSelectable() && filter( item ) ) {\n\t\t\treturn item;\n\t\t}\n\t}\n\n\tif ( prefix ) {\n\t\tfound = null;\n\t\tfilter = this.getItemMatcher( label, false );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\titem = this.items[ i ];\n\t\t\tif ( item instanceof OO.ui.OptionWidget && item.isSelectable() && filter( item ) ) {\n\t\t\t\tif ( found ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tfound = item;\n\t\t\t}\n\t\t}\n\t\tif ( found ) {\n\t\t\treturn found;\n\t\t}\n\t}\n\n\treturn null;\n};\n\n/**\n * Programmatically select an option by its label. If the item does not exist,\n * all options will be deselected.\n *\n * @param {string} [label] Label of the item to select.\n * @param {boolean} [prefix=false] Allow a prefix match, if only a single item matches\n * @fires select\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectWidget.prototype.selectItemByLabel = function ( label, prefix ) {\n\tvar itemFromLabel = this.getItemFromLabel( label, !!prefix );\n\tif ( label === undefined || !itemFromLabel ) {\n\t\treturn this.selectItem();\n\t}\n\treturn this.selectItem( itemFromLabel );\n};\n\n/**\n * Programmatically select an option by its data. If the `data` parameter is omitted,\n * or if the item does not exist, all options will be deselected.\n *\n * @param {Object|string} [data] Value of the item to select, omit to deselect all\n * @fires select\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectWidget.prototype.selectItemByData = function ( data ) {\n\tvar itemFromData = this.findItemFromData( data );\n\tif ( data === undefined || !itemFromData ) {\n\t\treturn this.selectItem();\n\t}\n\treturn this.selectItem( itemFromData );\n};\n\n/**\n * Programmatically select an option by its reference. If the `item` parameter is omitted,\n * all options will be deselected.\n *\n * @param {OO.ui.OptionWidget} [item] Item to select, omit to deselect all\n * @fires select\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n*/\nOO.ui.SelectWidget.prototype.selectItem = function ( item ) {\n\tvar i, len, selected,\n\t\tchanged = false;\n\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\tselected = this.items[ i ] === item;\n\t\tif ( this.items[ i ].isSelected() !== selected ) {\n\t\t\tthis.items[ i ].setSelected( selected );\n\t\t\tchanged = true;\n\t\t}\n\t}\n\tif ( changed ) {\n\t\tif ( item && !item.constructor.static.highlightable ) {\n\t\t\tif ( item ) {\n\t\t\t\tthis.$focusOwner.attr( 'aria-activedescendant', item.getElementId() );\n\t\t\t} else {\n\t\t\t\tthis.$focusOwner.removeAttr( 'aria-activedescendant' );\n\t\t\t}\n\t\t}\n\t\tthis.emit( 'select', item );\n\t}\n\n\treturn this;\n};\n\n/**\n * Press an item.\n *\n * Press is a state that occurs when a user mouses down on an item, but has not\n * yet let go of the mouse. The item may appear selected, but it will not be selected until the user\n * releases the mouse.\n *\n * @param {OO.ui.OptionWidget} [item] Item to press, omit to depress all\n * @fires press\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectWidget.prototype.pressItem = function ( item ) {\n\tvar i, len, pressed,\n\t\tchanged = false;\n\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\tpressed = this.items[ i ] === item;\n\t\tif ( this.items[ i ].isPressed() !== pressed ) {\n\t\t\tthis.items[ i ].setPressed( pressed );\n\t\t\tchanged = true;\n\t\t}\n\t}\n\tif ( changed ) {\n\t\tthis.emit( 'press', item );\n\t}\n\n\treturn this;\n};\n\n/**\n * Choose an item.\n *\n * Note that ‘choose’ should never be modified programmatically. A user can choose\n * an option with the keyboard or mouse and it becomes selected. To select an item programmatically,\n * use the #selectItem method.\n *\n * This method is identical to #selectItem, but may vary in subclasses that take additional action\n * when users choose an item with the keyboard or mouse.\n *\n * @param {OO.ui.OptionWidget} item Item to choose\n * @fires choose\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectWidget.prototype.chooseItem = function ( item ) {\n\tif ( item ) {\n\t\tthis.selectItem( item );\n\t\tthis.emit( 'choose', item );\n\t}\n\n\treturn this;\n};\n\n/**\n * Find an option by its position relative to the specified item (or to the start of the option array,\n * if item is `null`). The direction in which to search through the option array is specified with a\n * number: -1 for reverse (the default) or 1 for forward. The method will return an option, or\n * `null` if there are no options in the array.\n *\n * @param {OO.ui.OptionWidget|null} item Item to describe the start position, or `null` to start at the beginning of the array.\n * @param {number} direction Direction to move in: -1 to move backward, 1 to move forward\n * @param {Function} [filter] Only consider items for which this function returns\n *  true. Function takes an OO.ui.OptionWidget and returns a boolean.\n * @return {OO.ui.OptionWidget|null} Item at position, `null` if there are no items in the select\n */\nOO.ui.SelectWidget.prototype.findRelativeSelectableItem = function ( item, direction, filter ) {\n\tvar currentIndex, nextIndex, i,\n\t\tincrease = direction > 0 ? 1 : -1,\n\t\tlen = this.items.length;\n\n\tif ( item instanceof OO.ui.OptionWidget ) {\n\t\tcurrentIndex = this.items.indexOf( item );\n\t\tnextIndex = ( currentIndex + increase + len ) % len;\n\t} else {\n\t\t// If no item is selected and moving forward, start at the beginning.\n\t\t// If moving backward, start at the end.\n\t\tnextIndex = direction > 0 ? 0 : len - 1;\n\t}\n\n\tfor ( i = 0; i < len; i++ ) {\n\t\titem = this.items[ nextIndex ];\n\t\tif (\n\t\t\titem instanceof OO.ui.OptionWidget && item.isSelectable() &&\n\t\t\t( !filter || filter( item ) )\n\t\t) {\n\t\t\treturn item;\n\t\t}\n\t\tnextIndex = ( nextIndex + increase + len ) % len;\n\t}\n\treturn null;\n};\n\n/**\n * Find the next selectable item or `null` if there are no selectable items.\n * Disabled options and menu-section markers and breaks are not selectable.\n *\n * @return {OO.ui.OptionWidget|null} Item, `null` if there aren't any selectable items\n */\nOO.ui.SelectWidget.prototype.findFirstSelectableItem = function () {\n\treturn this.findRelativeSelectableItem( null, 1 );\n};\n\n/**\n * Add an array of options to the select. Optionally, an index number can be used to\n * specify an insertion point.\n *\n * @param {OO.ui.OptionWidget[]} items Items to add\n * @param {number} [index] Index to insert items after\n * @fires add\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectWidget.prototype.addItems = function ( items, index ) {\n\t// Mixin method\n\tOO.ui.mixin.GroupWidget.prototype.addItems.call( this, items, index );\n\n\t// Always provide an index, even if it was omitted\n\tthis.emit( 'add', items, index === undefined ? this.items.length - items.length - 1 : index );\n\n\treturn this;\n};\n\n/**\n * Remove the specified array of options from the select. Options will be detached\n * from the DOM, not removed, so they can be reused later. To remove all options from\n * the select, you may wish to use the #clearItems method instead.\n *\n * @param {OO.ui.OptionWidget[]} items Items to remove\n * @fires remove\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectWidget.prototype.removeItems = function ( items ) {\n\tvar i, len, item;\n\n\t// Deselect items being removed\n\tfor ( i = 0, len = items.length; i < len; i++ ) {\n\t\titem = items[ i ];\n\t\tif ( item.isSelected() ) {\n\t\t\tthis.selectItem( null );\n\t\t}\n\t}\n\n\t// Mixin method\n\tOO.ui.mixin.GroupWidget.prototype.removeItems.call( this, items );\n\n\tthis.emit( 'remove', items );\n\n\treturn this;\n};\n\n/**\n * Clear all options from the select. Options will be detached from the DOM, not removed,\n * so that they can be reused later. To remove a subset of options from the select, use\n * the #removeItems method.\n *\n * @fires remove\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectWidget.prototype.clearItems = function () {\n\tvar items = this.items.slice();\n\n\t// Mixin method\n\tOO.ui.mixin.GroupWidget.prototype.clearItems.call( this );\n\n\t// Clear selection\n\tthis.selectItem( null );\n\n\tthis.emit( 'remove', items );\n\n\treturn this;\n};\n\n/**\n * Set the DOM element which has focus while the user is interacting with this SelectWidget.\n *\n * This is used to set `aria-activedescendant` and `aria-expanded` on it.\n *\n * @protected\n * @param {jQuery} $focusOwner\n */\nOO.ui.SelectWidget.prototype.setFocusOwner = function ( $focusOwner ) {\n\tthis.$focusOwner = $focusOwner;\n};\n","/**\n * DecoratedOptionWidgets are {@link OO.ui.OptionWidget options} that can be configured\n * with an {@link OO.ui.mixin.IconElement icon} and/or {@link OO.ui.mixin.IndicatorElement indicator}.\n * This class is used with OO.ui.SelectWidget to create a selection of mutually exclusive\n * options. For more information about options and selects, please see the\n * [OOUI documentation on MediaWiki][1].\n *\n *     @example\n *     // Decorated options in a select widget.\n *     var select = new OO.ui.SelectWidget( {\n *         items: [\n *             new OO.ui.DecoratedOptionWidget( {\n *                 data: 'a',\n *                 label: 'Option with icon',\n *                 icon: 'help'\n *             } ),\n *             new OO.ui.DecoratedOptionWidget( {\n *                 data: 'b',\n *                 label: 'Option with indicator',\n *                 indicator: 'next'\n *             } )\n *         ]\n *     } );\n *     $( document.body ).append( select.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options\n *\n * @class\n * @extends OO.ui.OptionWidget\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.DecoratedOptionWidget = function OoUiDecoratedOptionWidget( config ) {\n\t// Parent constructor\n\tOO.ui.DecoratedOptionWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-decoratedOptionWidget' )\n\t\t.prepend( this.$icon )\n\t\t.append( this.$indicator );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.DecoratedOptionWidget, OO.ui.OptionWidget );\nOO.mixinClass( OO.ui.DecoratedOptionWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.DecoratedOptionWidget, OO.ui.mixin.IndicatorElement );\n","/**\n * MenuOptionWidget is an option widget that looks like a menu item. The class is used with\n * OO.ui.MenuSelectWidget to create a menu of mutually exclusive options. Please see\n * the [OOUI documentation on MediaWiki] [1] for more information.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options#Menu_selects_and_options\n *\n * @class\n * @extends OO.ui.DecoratedOptionWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.MenuOptionWidget = function OoUiMenuOptionWidget( config ) {\n\t// Parent constructor\n\tOO.ui.MenuOptionWidget.parent.call( this, config );\n\n\t// Properties\n\tthis.checkIcon = new OO.ui.IconWidget( {\n\t\ticon: 'check',\n\t\tclasses: [ 'oo-ui-menuOptionWidget-checkIcon' ]\n\t} );\n\n\t// Initialization\n\tthis.$element\n\t\t.prepend( this.checkIcon.$element )\n\t\t.addClass( 'oo-ui-menuOptionWidget' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MenuOptionWidget, OO.ui.DecoratedOptionWidget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.MenuOptionWidget.static.scrollIntoViewOnSelect = true;\n","/**\n * MenuSectionOptionWidgets are used inside {@link OO.ui.MenuSelectWidget menu select widgets} to group one or more related\n * {@link OO.ui.MenuOptionWidget menu options}. MenuSectionOptionWidgets cannot be highlighted or selected.\n *\n *     @example\n *     var dropdown = new OO.ui.DropdownWidget( {\n *         menu: {\n *             items: [\n *                 new OO.ui.MenuSectionOptionWidget( {\n *                     label: 'Dogs'\n *                 } ),\n *                 new OO.ui.MenuOptionWidget( {\n *                     data: 'corgi',\n *                     label: 'Welsh Corgi'\n *                 } ),\n *                 new OO.ui.MenuOptionWidget( {\n *                     data: 'poodle',\n *                     label: 'Standard Poodle'\n *                 } ),\n *                 new OO.ui.MenuSectionOptionWidget( {\n *                     label: 'Cats'\n *                 } ),\n *                 new OO.ui.MenuOptionWidget( {\n *                     data: 'lion',\n *                     label: 'Lion'\n *                 } )\n *             ]\n *         }\n *     } );\n *     $( document.body ).append( dropdown.$element );\n *\n * @class\n * @extends OO.ui.DecoratedOptionWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.MenuSectionOptionWidget = function OoUiMenuSectionOptionWidget( config ) {\n\t// Parent constructor\n\tOO.ui.MenuSectionOptionWidget.parent.call( this, config );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-menuSectionOptionWidget' )\n\t\t.removeAttr( 'role aria-selected' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MenuSectionOptionWidget, OO.ui.DecoratedOptionWidget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.MenuSectionOptionWidget.static.selectable = false;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.MenuSectionOptionWidget.static.highlightable = false;\n","/**\n * MenuSelectWidget is a {@link OO.ui.SelectWidget select widget} that contains options and\n * is used together with OO.ui.MenuOptionWidget. It is designed be used as part of another widget.\n * See {@link OO.ui.DropdownWidget DropdownWidget}, {@link OO.ui.ComboBoxInputWidget ComboBoxInputWidget},\n * and {@link OO.ui.mixin.LookupElement LookupElement} for examples of widgets that contain menus.\n * MenuSelectWidgets themselves are not instantiated directly, rather subclassed\n * and customized to be opened, closed, and displayed as needed.\n *\n * By default, menus are clipped to the visible viewport and are not visible when a user presses the\n * mouse outside the menu.\n *\n * Menus also have support for keyboard interaction:\n *\n * - Enter/Return key: choose and select a menu option\n * - Up-arrow key: highlight the previous menu option\n * - Down-arrow key: highlight the next menu option\n * - Esc key: hide the menu\n *\n * Unlike most widgets, MenuSelectWidget is initially hidden and must be shown by calling #toggle.\n *\n * Please see the [OOUI documentation on MediaWiki][1] for more information.\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options\n *\n * @class\n * @extends OO.ui.SelectWidget\n * @mixins OO.ui.mixin.ClippableElement\n * @mixins OO.ui.mixin.FloatableElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.ui.TextInputWidget} [input] Text input used to implement option highlighting for menu items that match\n *  the text the user types. This config is used by {@link OO.ui.ComboBoxInputWidget ComboBoxInputWidget}\n *  and {@link OO.ui.mixin.LookupElement LookupElement}\n * @cfg {jQuery} [$input] Text input used to implement option highlighting for menu items that match\n *  the text the user types. This config is used by {@link OO.ui.TagMultiselectWidget TagMultiselectWidget}\n * @cfg {OO.ui.Widget} [widget] Widget associated with the menu's active state. If the user clicks the mouse\n *  anywhere on the page outside of this widget, the menu is hidden. For example, if there is a button\n *  that toggles the menu's visibility on click, the menu will be hidden then re-shown when the user clicks\n *  that button, unless the button (or its parent widget) is passed in here.\n * @cfg {boolean} [autoHide=true] Hide the menu when the mouse is pressed outside the menu.\n * @cfg {jQuery} [$autoCloseIgnore] If these elements are clicked, don't auto-hide the menu.\n * @cfg {boolean} [hideOnChoose=true] Hide the menu when the user chooses an option.\n * @cfg {boolean} [filterFromInput=false] Filter the displayed options from the input\n * @cfg {boolean} [highlightOnFilter] Highlight the first result when filtering\n * @cfg {number} [width] Width of the menu\n */\nOO.ui.MenuSelectWidget = function OoUiMenuSelectWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.MenuSelectWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.ClippableElement.call( this, $.extend( {}, config, { $clippable: this.$group } ) );\n\tOO.ui.mixin.FloatableElement.call( this, config );\n\n\t// Initial vertical positions other than 'center' will result in\n\t// the menu being flipped if there is not enough space in the container.\n\t// Store the original position so we know what to reset to.\n\tthis.originalVerticalPosition = this.verticalPosition;\n\n\t// Properties\n\tthis.autoHide = config.autoHide === undefined || !!config.autoHide;\n\tthis.hideOnChoose = config.hideOnChoose === undefined || !!config.hideOnChoose;\n\tthis.filterFromInput = !!config.filterFromInput;\n\tthis.$input = config.$input ? config.$input : config.input ? config.input.$input : null;\n\tthis.$widget = config.widget ? config.widget.$element : null;\n\tthis.$autoCloseIgnore = config.$autoCloseIgnore || $( [] );\n\tthis.onDocumentMouseDownHandler = this.onDocumentMouseDown.bind( this );\n\tthis.onInputEditHandler = OO.ui.debounce( this.updateItemVisibility.bind( this ), 100 );\n\tthis.highlightOnFilter = !!config.highlightOnFilter;\n\tthis.width = config.width;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-menuSelectWidget' );\n\tif ( config.widget ) {\n\t\tthis.setFocusOwner( config.widget.$tabIndexed );\n\t}\n\n\t// Initially hidden - using #toggle may cause errors if subclasses override toggle with methods\n\t// that reference properties not initialized at that time of parent class construction\n\t// TODO: Find a better way to handle post-constructor setup\n\tthis.visible = false;\n\tthis.$element.addClass( 'oo-ui-element-hidden' );\n\tthis.$focusOwner.attr( 'aria-expanded', 'false' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MenuSelectWidget, OO.ui.SelectWidget );\nOO.mixinClass( OO.ui.MenuSelectWidget, OO.ui.mixin.ClippableElement );\nOO.mixinClass( OO.ui.MenuSelectWidget, OO.ui.mixin.FloatableElement );\n\n/* Events */\n\n/**\n * @event ready\n *\n * The menu is ready: it is visible and has been positioned and clipped.\n */\n\n/* Static properties */\n\n/**\n * Positions to flip to if there isn't room in the container for the\n * menu in a specific direction.\n *\n * @property {Object.<string,string>}\n */\nOO.ui.MenuSelectWidget.static.flippedPositions = {\n\tbelow: 'above',\n\tabove: 'below',\n\ttop: 'bottom',\n\tbottom: 'top'\n};\n\n/* Methods */\n\n/**\n * Handles document mouse down events.\n *\n * @protected\n * @param {MouseEvent} e Mouse down event\n */\nOO.ui.MenuSelectWidget.prototype.onDocumentMouseDown = function ( e ) {\n\tif (\n\t\tthis.isVisible() &&\n\t\t!OO.ui.contains(\n\t\t\tthis.$element.add( this.$widget ).add( this.$autoCloseIgnore ).get(),\n\t\t\te.target,\n\t\t\ttrue\n\t\t)\n\t) {\n\t\tthis.toggle( false );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.onDocumentKeyDown = function ( e ) {\n\tvar currentItem = this.findHighlightedItem() || this.findSelectedItem();\n\n\tif ( !this.isDisabled() && this.isVisible() ) {\n\t\tswitch ( e.keyCode ) {\n\t\t\tcase OO.ui.Keys.LEFT:\n\t\t\tcase OO.ui.Keys.RIGHT:\n\t\t\t\t// Do nothing if a text field is associated, arrow keys will be handled natively\n\t\t\t\tif ( !this.$input ) {\n\t\t\t\t\tOO.ui.MenuSelectWidget.parent.prototype.onDocumentKeyDown.call( this, e );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase OO.ui.Keys.ESCAPE:\n\t\t\tcase OO.ui.Keys.TAB:\n\t\t\t\tif ( currentItem ) {\n\t\t\t\t\tcurrentItem.setHighlighted( false );\n\t\t\t\t}\n\t\t\t\tthis.toggle( false );\n\t\t\t\t// Don't prevent tabbing away, prevent defocusing\n\t\t\t\tif ( e.keyCode === OO.ui.Keys.ESCAPE ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tOO.ui.MenuSelectWidget.parent.prototype.onDocumentKeyDown.call( this, e );\n\t\t\t\treturn;\n\t\t}\n\t}\n};\n\n/**\n * Update menu item visibility and clipping after input changes (if filterFromInput is enabled)\n * or after items were added/removed (always).\n *\n * @protected\n */\nOO.ui.MenuSelectWidget.prototype.updateItemVisibility = function () {\n\tvar i, item, items, visible, section, sectionEmpty, filter, exactFilter,\n\t\tanyVisible = false,\n\t\tlen = this.items.length,\n\t\tshowAll = !this.isVisible(),\n\t\texactMatch = false;\n\n\tif ( this.$input && this.filterFromInput ) {\n\t\tfilter = showAll ? null : this.getItemMatcher( this.$input.val() );\n\t\texactFilter = this.getItemMatcher( this.$input.val(), true );\n\t\t// Hide non-matching options, and also hide section headers if all options\n\t\t// in their section are hidden.\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\titem = this.items[ i ];\n\t\t\tif ( item instanceof OO.ui.MenuSectionOptionWidget ) {\n\t\t\t\tif ( section ) {\n\t\t\t\t\t// If the previous section was empty, hide its header\n\t\t\t\t\tsection.toggle( showAll || !sectionEmpty );\n\t\t\t\t}\n\t\t\t\tsection = item;\n\t\t\t\tsectionEmpty = true;\n\t\t\t} else if ( item instanceof OO.ui.OptionWidget ) {\n\t\t\t\tvisible = showAll || filter( item );\n\t\t\t\texactMatch = exactMatch || exactFilter( item );\n\t\t\t\tanyVisible = anyVisible || visible;\n\t\t\t\tsectionEmpty = sectionEmpty && !visible;\n\t\t\t\titem.toggle( visible );\n\t\t\t}\n\t\t}\n\t\t// Process the final section\n\t\tif ( section ) {\n\t\t\tsection.toggle( showAll || !sectionEmpty );\n\t\t}\n\n\t\tif ( anyVisible && this.items.length && !exactMatch ) {\n\t\t\tthis.scrollItemIntoView( this.items[ 0 ] );\n\t\t}\n\n\t\tif ( !anyVisible ) {\n\t\t\tthis.highlightItem( null );\n\t\t}\n\n\t\tthis.$element.toggleClass( 'oo-ui-menuSelectWidget-invisible', !anyVisible );\n\n\t\tif ( this.highlightOnFilter ) {\n\t\t\t// Highlight the first item on the list\n\t\t\titem = null;\n\t\t\titems = this.getItems();\n\t\t\tfor ( i = 0; i < items.length; i++ ) {\n\t\t\t\tif ( items[ i ].isVisible() ) {\n\t\t\t\t\titem = items[ i ];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.highlightItem( item );\n\t\t}\n\n\t}\n\n\t// Reevaluate clipping\n\tthis.clip();\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.bindDocumentKeyDownListener = function () {\n\tif ( this.$input ) {\n\t\tthis.$input.on( 'keydown', this.onDocumentKeyDownHandler );\n\t} else {\n\t\tOO.ui.MenuSelectWidget.parent.prototype.bindDocumentKeyDownListener.call( this );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.unbindDocumentKeyDownListener = function () {\n\tif ( this.$input ) {\n\t\tthis.$input.off( 'keydown', this.onDocumentKeyDownHandler );\n\t} else {\n\t\tOO.ui.MenuSelectWidget.parent.prototype.unbindDocumentKeyDownListener.call( this );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.bindDocumentKeyPressListener = function () {\n\tif ( this.$input ) {\n\t\tif ( this.filterFromInput ) {\n\t\t\tthis.$input.on( 'keydown mouseup cut paste change input select', this.onInputEditHandler );\n\t\t\tthis.updateItemVisibility();\n\t\t}\n\t} else {\n\t\tOO.ui.MenuSelectWidget.parent.prototype.bindDocumentKeyPressListener.call( this );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.unbindDocumentKeyPressListener = function () {\n\tif ( this.$input ) {\n\t\tif ( this.filterFromInput ) {\n\t\t\tthis.$input.off( 'keydown mouseup cut paste change input select', this.onInputEditHandler );\n\t\t\tthis.updateItemVisibility();\n\t\t}\n\t} else {\n\t\tOO.ui.MenuSelectWidget.parent.prototype.unbindDocumentKeyPressListener.call( this );\n\t}\n};\n\n/**\n * Choose an item.\n *\n * When a user chooses an item, the menu is closed, unless the hideOnChoose config option is set to false.\n *\n * Note that ‘choose’ should never be modified programmatically. A user can choose an option with the keyboard\n * or mouse and it becomes selected. To select an item programmatically, use the #selectItem method.\n *\n * @param {OO.ui.OptionWidget} item Item to choose\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.MenuSelectWidget.prototype.chooseItem = function ( item ) {\n\tOO.ui.MenuSelectWidget.parent.prototype.chooseItem.call( this, item );\n\tif ( this.hideOnChoose ) {\n\t\tthis.toggle( false );\n\t}\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.addItems = function ( items, index ) {\n\t// Parent method\n\tOO.ui.MenuSelectWidget.parent.prototype.addItems.call( this, items, index );\n\n\tthis.updateItemVisibility();\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.removeItems = function ( items ) {\n\t// Parent method\n\tOO.ui.MenuSelectWidget.parent.prototype.removeItems.call( this, items );\n\n\tthis.updateItemVisibility();\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.clearItems = function () {\n\t// Parent method\n\tOO.ui.MenuSelectWidget.parent.prototype.clearItems.call( this );\n\n\tthis.updateItemVisibility();\n\n\treturn this;\n};\n\n/**\n * Toggle visibility of the menu. The menu is initially hidden and must be shown by calling\n * `.toggle( true )` after its #$element is attached to the DOM.\n *\n * Do not show the menu while it is not attached to the DOM. The calculations required to display\n * it in the right place and with the right dimensions only work correctly while it is attached.\n * Side-effects may include broken interface and exceptions being thrown. This wasn't always\n * strictly enforced, so currently it only generates a warning in the browser console.\n *\n * @fires ready\n * @inheritdoc\n */\nOO.ui.MenuSelectWidget.prototype.toggle = function ( visible ) {\n\tvar change, originalHeight, flippedHeight;\n\n\tvisible = ( visible === undefined ? !this.visible : !!visible ) && !!this.items.length;\n\tchange = visible !== this.isVisible();\n\n\tif ( visible && !this.warnedUnattached && !this.isElementAttached() ) {\n\t\tOO.ui.warnDeprecation( 'MenuSelectWidget#toggle: Before calling this method, the menu must be attached to the DOM.' );\n\t\tthis.warnedUnattached = true;\n\t}\n\n\tif ( change && visible ) {\n\t\t// Reset position before showing the popup again. It's possible we no longer need to flip\n\t\t// (e.g. if the user scrolled).\n\t\tthis.setVerticalPosition( this.originalVerticalPosition );\n\t}\n\n\t// Parent method\n\tOO.ui.MenuSelectWidget.parent.prototype.toggle.call( this, visible );\n\n\tif ( change ) {\n\t\tif ( visible ) {\n\n\t\t\tif ( this.width ) {\n\t\t\t\tthis.setIdealSize( this.width );\n\t\t\t} else if ( this.$floatableContainer ) {\n\t\t\t\tthis.$clippable.css( 'width', 'auto' );\n\t\t\t\tthis.setIdealSize(\n\t\t\t\t\tthis.$floatableContainer[ 0 ].offsetWidth > this.$clippable[ 0 ].offsetWidth ?\n\t\t\t\t\t\t// Dropdown is smaller than handle so expand to width\n\t\t\t\t\t\tthis.$floatableContainer[ 0 ].offsetWidth :\n\t\t\t\t\t\t// Dropdown is larger than handle so auto size\n\t\t\t\t\t\t'auto'\n\t\t\t\t);\n\t\t\t\tthis.$clippable.css( 'width', '' );\n\t\t\t}\n\n\t\t\tthis.togglePositioning( !!this.$floatableContainer );\n\t\t\tthis.toggleClipping( true );\n\n\t\t\tthis.bindDocumentKeyDownListener();\n\t\t\tthis.bindDocumentKeyPressListener();\n\n\t\t\tif (\n\t\t\t\t( this.isClippedVertically() || this.isFloatableOutOfView() ) &&\n\t\t\t\tthis.originalVerticalPosition !== 'center'\n\t\t\t) {\n\t\t\t\t// If opening the menu in one direction causes it to be clipped, flip it\n\t\t\t\toriginalHeight = this.$element.height();\n\t\t\t\tthis.setVerticalPosition(\n\t\t\t\t\tthis.constructor.static.flippedPositions[ this.originalVerticalPosition ]\n\t\t\t\t);\n\t\t\t\tif ( this.isClippedVertically() || this.isFloatableOutOfView() ) {\n\t\t\t\t\t// If flipping also causes it to be clipped, open in whichever direction\n\t\t\t\t\t// we have more space\n\t\t\t\t\tflippedHeight = this.$element.height();\n\t\t\t\t\tif ( originalHeight > flippedHeight ) {\n\t\t\t\t\t\tthis.setVerticalPosition( this.originalVerticalPosition );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Note that we do not flip the menu's opening direction if the clipping changes\n\t\t\t// later (e.g. after the user scrolls), that seems like it would be annoying\n\n\t\t\tthis.$focusOwner.attr( 'aria-expanded', 'true' );\n\n\t\t\tif ( this.findSelectedItem() ) {\n\t\t\t\tthis.$focusOwner.attr( 'aria-activedescendant', this.findSelectedItem().getElementId() );\n\t\t\t\tthis.findSelectedItem().scrollElementIntoView( { duration: 0 } );\n\t\t\t}\n\n\t\t\t// Auto-hide\n\t\t\tif ( this.autoHide ) {\n\t\t\t\tthis.getElementDocument().addEventListener( 'mousedown', this.onDocumentMouseDownHandler, true );\n\t\t\t}\n\n\t\t\tthis.emit( 'ready' );\n\t\t} else {\n\t\t\tthis.$focusOwner.removeAttr( 'aria-activedescendant' );\n\t\t\tthis.unbindDocumentKeyDownListener();\n\t\t\tthis.unbindDocumentKeyPressListener();\n\t\t\tthis.$focusOwner.attr( 'aria-expanded', 'false' );\n\t\t\tthis.getElementDocument().removeEventListener( 'mousedown', this.onDocumentMouseDownHandler, true );\n\t\t\tthis.togglePositioning( false );\n\t\t\tthis.toggleClipping( false );\n\t\t}\n\t}\n\n\treturn this;\n};\n","/**\n * DropdownWidgets are not menus themselves, rather they contain a menu of options created with\n * OO.ui.MenuOptionWidget. The DropdownWidget takes care of opening and displaying the menu so that\n * users can interact with it.\n *\n * If you want to use this within an HTML form, such as a OO.ui.FormLayout, use\n * OO.ui.DropdownInputWidget instead.\n *\n *     @example\n *     // A DropdownWidget with a menu that contains three options.\n *     var dropDown = new OO.ui.DropdownWidget( {\n *         label: 'Dropdown menu: Select a menu option',\n *         menu: {\n *             items: [\n *                 new OO.ui.MenuOptionWidget( {\n *                     data: 'a',\n *                     label: 'First'\n *                 } ),\n *                 new OO.ui.MenuOptionWidget( {\n *                     data: 'b',\n *                     label: 'Second'\n *                 } ),\n *                 new OO.ui.MenuOptionWidget( {\n *                     data: 'c',\n *                     label: 'Third'\n *                 } )\n *             ]\n *         }\n *     } );\n *\n *     $( document.body ).append( dropDown.$element );\n *\n *     dropDown.getMenu().selectItemByData( 'b' );\n *\n *     dropDown.getMenu().findSelectedItem().getData(); // Returns 'b'.\n *\n * For more information, please see the [OOUI documentation on MediaWiki] [1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options#Menu_selects_and_options\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.TitledElement\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {Object} [menu] Configuration options to pass to {@link OO.ui.MenuSelectWidget menu select widget}\n * @cfg {jQuery} [$overlay] Render the menu into a separate layer. This configuration is useful in cases where\n *  the expanded menu is larger than its containing `<div>`. The specified overlay layer is usually on top of the\n *  containing `<div>` and has a larger area. By default, the menu uses relative positioning.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n */\nOO.ui.DropdownWidget = function OoUiDropdownWidget( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( { indicator: 'down' }, config );\n\n\t// Parent constructor\n\tOO.ui.DropdownWidget.parent.call( this, config );\n\n\t// Properties (must be set before TabIndexedElement constructor call)\n\tthis.$handle = $( '<button>' );\n\tthis.$overlay = ( config.$overlay === true ? OO.ui.getDefaultOverlay() : config.$overlay ) || this.$element;\n\n\t// Mixin constructors\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$label } ) );\n\tOO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$handle } ) );\n\n\t// Properties\n\tthis.menu = new OO.ui.MenuSelectWidget( $.extend( {\n\t\twidget: this,\n\t\t$floatableContainer: this.$element\n\t}, config.menu ) );\n\n\t// Events\n\tthis.$handle.on( {\n\t\tclick: this.onClick.bind( this ),\n\t\tkeydown: this.onKeyDown.bind( this ),\n\t\t// Hack? Handle type-to-search when menu is not expanded and not handling its own events\n\t\tkeypress: this.menu.onDocumentKeyPressHandler,\n\t\tblur: this.menu.clearKeyPressBuffer.bind( this.menu )\n\t} );\n\tthis.menu.connect( this, {\n\t\tselect: 'onMenuSelect',\n\t\ttoggle: 'onMenuToggle'\n\t} );\n\n\t// Initialization\n\tthis.$handle\n\t\t.addClass( 'oo-ui-dropdownWidget-handle' )\n\t\t.attr( {\n\t\t\t'aria-owns': this.menu.getElementId(),\n\t\t\t'aria-haspopup': 'listbox'\n\t\t} )\n\t\t.append( this.$icon, this.$label, this.$indicator );\n\tthis.$element\n\t\t.addClass( 'oo-ui-dropdownWidget' )\n\t\t.append( this.$handle );\n\tthis.$overlay.append( this.menu.$element );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.DropdownWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.DropdownWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.DropdownWidget, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.DropdownWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.DropdownWidget, OO.ui.mixin.TitledElement );\nOO.mixinClass( OO.ui.DropdownWidget, OO.ui.mixin.TabIndexedElement );\n\n/* Methods */\n\n/**\n * Get the menu.\n *\n * @return {OO.ui.MenuSelectWidget} Menu of widget\n */\nOO.ui.DropdownWidget.prototype.getMenu = function () {\n\treturn this.menu;\n};\n\n/**\n * Handles menu select events.\n *\n * @private\n * @param {OO.ui.MenuOptionWidget} item Selected menu item\n */\nOO.ui.DropdownWidget.prototype.onMenuSelect = function ( item ) {\n\tvar selectedLabel;\n\n\tif ( !item ) {\n\t\tthis.setLabel( null );\n\t\treturn;\n\t}\n\n\tselectedLabel = item.getLabel();\n\n\t// If the label is a DOM element, clone it, because setLabel will append() it\n\tif ( selectedLabel instanceof $ ) {\n\t\tselectedLabel = selectedLabel.clone();\n\t}\n\n\tthis.setLabel( selectedLabel );\n};\n\n/**\n * Handle menu toggle events.\n *\n * @private\n * @param {boolean} isVisible Open state of the menu\n */\nOO.ui.DropdownWidget.prototype.onMenuToggle = function ( isVisible ) {\n\tthis.$element.toggleClass( 'oo-ui-dropdownWidget-open', isVisible );\n};\n\n/**\n * Handle mouse click events.\n *\n * @private\n * @param {jQuery.Event} e Mouse click event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.DropdownWidget.prototype.onClick = function ( e ) {\n\tif ( !this.isDisabled() && e.which === OO.ui.MouseButtons.LEFT ) {\n\t\tthis.menu.toggle();\n\t}\n\treturn false;\n};\n\n/**\n * Handle key down events.\n *\n * @private\n * @param {jQuery.Event} e Key down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.DropdownWidget.prototype.onKeyDown = function ( e ) {\n\tif (\n\t\t!this.isDisabled() &&\n\t\t(\n\t\t\te.which === OO.ui.Keys.ENTER ||\n\t\t\t(\n\t\t\t\te.which === OO.ui.Keys.SPACE &&\n\t\t\t\t// Avoid conflicts with type-to-search, see SelectWidget#onKeyPress.\n\t\t\t\t// Space only closes the menu is the user is not typing to search.\n\t\t\t\tthis.menu.keyPressBuffer === ''\n\t\t\t) ||\n\t\t\t(\n\t\t\t\t!this.menu.isVisible() &&\n\t\t\t\t(\n\t\t\t\t\te.which === OO.ui.Keys.UP ||\n\t\t\t\t\te.which === OO.ui.Keys.DOWN\n\t\t\t\t)\n\t\t\t)\n\t\t)\n\t) {\n\t\tthis.menu.toggle();\n\t\treturn false;\n\t}\n};\n","/**\n * RadioOptionWidget is an option widget that looks like a radio button.\n * The class is used with OO.ui.RadioSelectWidget to create a selection of radio options.\n * Please see the [OOUI documentation on MediaWiki] [1] for more information.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options#Button_selects_and_option\n *\n * @class\n * @extends OO.ui.OptionWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.RadioOptionWidget = function OoUiRadioOptionWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties (must be done before parent constructor which calls #setDisabled)\n\tthis.radio = new OO.ui.RadioInputWidget( { value: config.data, tabIndex: -1 } );\n\n\t// Parent constructor\n\tOO.ui.RadioOptionWidget.parent.call( this, config );\n\n\t// Initialization\n\t// Remove implicit role, we're handling it ourselves\n\tthis.radio.$input.attr( 'role', 'presentation' );\n\tthis.$element\n\t\t.addClass( 'oo-ui-radioOptionWidget' )\n\t\t.attr( 'role', 'radio' )\n\t\t.attr( 'aria-checked', 'false' )\n\t\t.removeAttr( 'aria-selected' )\n\t\t.prepend( this.radio.$element );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.RadioOptionWidget, OO.ui.OptionWidget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.RadioOptionWidget.static.highlightable = false;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.RadioOptionWidget.static.scrollIntoViewOnSelect = true;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.RadioOptionWidget.static.pressable = false;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.RadioOptionWidget.static.tagName = 'label';\n\n/* Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioOptionWidget.prototype.setSelected = function ( state ) {\n\tOO.ui.RadioOptionWidget.parent.prototype.setSelected.call( this, state );\n\n\tthis.radio.setSelected( state );\n\tthis.$element\n\t\t.attr( 'aria-checked', state.toString() )\n\t\t.removeAttr( 'aria-selected' );\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioOptionWidget.prototype.setDisabled = function ( disabled ) {\n\tOO.ui.RadioOptionWidget.parent.prototype.setDisabled.call( this, disabled );\n\n\tthis.radio.setDisabled( this.isDisabled() );\n\n\treturn this;\n};\n","/**\n * RadioSelectWidget is a {@link OO.ui.SelectWidget select widget} that contains radio\n * options and is used together with OO.ui.RadioOptionWidget. The RadioSelectWidget provides\n * an interface for adding, removing and selecting options.\n * Please see the [OOUI documentation on MediaWiki][1] for more information.\n *\n * If you want to use this within an HTML form, such as a OO.ui.FormLayout, use\n * OO.ui.RadioSelectInputWidget instead.\n *\n *     @example\n *     // A RadioSelectWidget with RadioOptions.\n *     var option1 = new OO.ui.RadioOptionWidget( {\n *             data: 'a',\n *             label: 'Selected radio option'\n *         } ),\n *         option2 = new OO.ui.RadioOptionWidget( {\n *             data: 'b',\n *             label: 'Unselected radio option'\n *         } );\n *         radioSelect = new OO.ui.RadioSelectWidget( {\n *             items: [ option1, option2 ]\n *         } );\n *\n *     // Select 'option 1' using the RadioSelectWidget's selectItem() method.\n *     radioSelect.selectItem( option1 );\n *\n *     $( document.body ).append( radioSelect.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options\n\n *\n * @class\n * @extends OO.ui.SelectWidget\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.RadioSelectWidget = function OoUiRadioSelectWidget( config ) {\n\t// Parent constructor\n\tOO.ui.RadioSelectWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.TabIndexedElement.call( this, config );\n\n\t// Events\n\tthis.$element.on( {\n\t\tfocus: this.bindDocumentKeyDownListener.bind( this ),\n\t\tblur: this.unbindDocumentKeyDownListener.bind( this )\n\t} );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-radioSelectWidget' )\n\t\t.attr( 'role', 'radiogroup' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.RadioSelectWidget, OO.ui.SelectWidget );\nOO.mixinClass( OO.ui.RadioSelectWidget, OO.ui.mixin.TabIndexedElement );\n","/**\n * MultioptionWidgets are special elements that can be selected and configured with data. The\n * data is often unique for each option, but it does not have to be. MultioptionWidgets are used\n * with OO.ui.SelectWidget to create a selection of mutually exclusive options. For more information\n * and examples, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Multioptions\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.ItemWidget\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.TitledElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [selected=false] Whether the option is initially selected\n */\nOO.ui.MultioptionWidget = function OoUiMultioptionWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.MultioptionWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.ItemWidget.call( this );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.TitledElement.call( this, config );\n\n\t// Properties\n\tthis.selected = null;\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-multioptionWidget' )\n\t\t.append( this.$label );\n\tthis.setSelected( config.selected );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MultioptionWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.MultioptionWidget, OO.ui.mixin.ItemWidget );\nOO.mixinClass( OO.ui.MultioptionWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.MultioptionWidget, OO.ui.mixin.TitledElement );\n\n/* Events */\n\n/**\n * @event change\n *\n * A change event is emitted when the selected state of the option changes.\n *\n * @param {boolean} selected Whether the option is now selected\n */\n\n/* Methods */\n\n/**\n * Check if the option is selected.\n *\n * @return {boolean} Item is selected\n */\nOO.ui.MultioptionWidget.prototype.isSelected = function () {\n\treturn this.selected;\n};\n\n/**\n * Set the option’s selected state. In general, all modifications to the selection\n * should be handled by the SelectWidget’s {@link OO.ui.SelectWidget#selectItem selectItem( [item] )}\n * method instead of this method.\n *\n * @param {boolean} [state=false] Select option\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.MultioptionWidget.prototype.setSelected = function ( state ) {\n\tstate = !!state;\n\tif ( this.selected !== state ) {\n\t\tthis.selected = state;\n\t\tthis.emit( 'change', state );\n\t\tthis.$element.toggleClass( 'oo-ui-multioptionWidget-selected', state );\n\t}\n\treturn this;\n};\n","/**\n * MultiselectWidget allows selecting multiple options from a list.\n *\n * For more information about menus and options, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options#Menu_selects_and_options\n *\n * @class\n * @abstract\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.GroupWidget\n * @mixins OO.ui.mixin.TitledElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.ui.MultioptionWidget[]} [items] An array of options to add to the multiselect.\n */\nOO.ui.MultiselectWidget = function OoUiMultiselectWidget( config ) {\n\t// Parent constructor\n\tOO.ui.MultiselectWidget.parent.call( this, config );\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupWidget.call( this, config );\n\tOO.ui.mixin.TitledElement.call( this, config );\n\n\t// Events\n\tthis.aggregate( { change: 'select' } );\n\t// This is mostly for compatibility with TagMultiselectWidget... normally, 'change' is emitted\n\t// by GroupElement only when items are added/removed\n\tthis.connect( this, { select: [ 'emit', 'change' ] } );\n\n\t// Initialization\n\tif ( config.items ) {\n\t\tthis.addItems( config.items );\n\t}\n\tthis.$group.addClass( 'oo-ui-multiselectWidget-group' );\n\tthis.$element.addClass( 'oo-ui-multiselectWidget' )\n\t\t.append( this.$group );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MultiselectWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.MultiselectWidget, OO.ui.mixin.GroupWidget );\nOO.mixinClass( OO.ui.MultiselectWidget, OO.ui.mixin.TitledElement );\n\n/* Events */\n\n/**\n * @event change\n *\n * A change event is emitted when the set of items changes, or an item is selected or deselected.\n */\n\n/**\n * @event select\n *\n * A select event is emitted when an item is selected or deselected.\n */\n\n/* Methods */\n\n/**\n * Find options that are selected.\n *\n * @return {OO.ui.MultioptionWidget[]} Selected options\n */\nOO.ui.MultiselectWidget.prototype.findSelectedItems = function () {\n\treturn this.items.filter( function ( item ) {\n\t\treturn item.isSelected();\n\t} );\n};\n\n/**\n * Find the data of options that are selected.\n *\n * @return {Object[]|string[]} Values of selected options\n */\nOO.ui.MultiselectWidget.prototype.findSelectedItemsData = function () {\n\treturn this.findSelectedItems().map( function ( item ) {\n\t\treturn item.data;\n\t} );\n};\n\n/**\n * Select options by reference. Options not mentioned in the `items` array will be deselected.\n *\n * @param {OO.ui.MultioptionWidget[]} items Items to select\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.MultiselectWidget.prototype.selectItems = function ( items ) {\n\tthis.items.forEach( function ( item ) {\n\t\tvar selected = items.indexOf( item ) !== -1;\n\t\titem.setSelected( selected );\n\t} );\n\treturn this;\n};\n\n/**\n * Select items by their data. Options not mentioned in the `datas` array will be deselected.\n *\n * @param {Object[]|string[]} datas Values of items to select\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.MultiselectWidget.prototype.selectItemsByData = function ( datas ) {\n\tvar items,\n\t\twidget = this;\n\titems = datas.map( function ( data ) {\n\t\treturn widget.findItemFromData( data );\n\t} );\n\tthis.selectItems( items );\n\treturn this;\n};\n","/**\n * CheckboxMultioptionWidget is an option widget that looks like a checkbox.\n * The class is used with OO.ui.CheckboxMultiselectWidget to create a selection of checkbox options.\n * Please see the [OOUI documentation on MediaWiki] [1] for more information.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options#Button_selects_and_option\n *\n * @class\n * @extends OO.ui.MultioptionWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.CheckboxMultioptionWidget = function OoUiCheckboxMultioptionWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties (must be done before parent constructor which calls #setDisabled)\n\tthis.checkbox = new OO.ui.CheckboxInputWidget();\n\n\t// Parent constructor\n\tOO.ui.CheckboxMultioptionWidget.parent.call( this, config );\n\n\t// Events\n\tthis.checkbox.on( 'change', this.onCheckboxChange.bind( this ) );\n\tthis.$element.on( 'keydown', this.onKeyDown.bind( this ) );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-checkboxMultioptionWidget' )\n\t\t.prepend( this.checkbox.$element );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.CheckboxMultioptionWidget, OO.ui.MultioptionWidget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.CheckboxMultioptionWidget.static.tagName = 'label';\n\n/* Methods */\n\n/**\n * Handle checkbox selected state change.\n *\n * @private\n */\nOO.ui.CheckboxMultioptionWidget.prototype.onCheckboxChange = function () {\n\tthis.setSelected( this.checkbox.isSelected() );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultioptionWidget.prototype.setSelected = function ( state ) {\n\tOO.ui.CheckboxMultioptionWidget.parent.prototype.setSelected.call( this, state );\n\tthis.checkbox.setSelected( state );\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultioptionWidget.prototype.setDisabled = function ( disabled ) {\n\tOO.ui.CheckboxMultioptionWidget.parent.prototype.setDisabled.call( this, disabled );\n\tthis.checkbox.setDisabled( this.isDisabled() );\n\treturn this;\n};\n\n/**\n * Focus the widget.\n */\nOO.ui.CheckboxMultioptionWidget.prototype.focus = function () {\n\tthis.checkbox.focus();\n};\n\n/**\n * Handle key down events.\n *\n * @protected\n * @param {jQuery.Event} e\n */\nOO.ui.CheckboxMultioptionWidget.prototype.onKeyDown = function ( e ) {\n\tvar\n\t\telement = this.getElementGroup(),\n\t\tnextItem;\n\n\tif ( e.keyCode === OO.ui.Keys.LEFT || e.keyCode === OO.ui.Keys.UP ) {\n\t\tnextItem = element.getRelativeFocusableItem( this, -1 );\n\t} else if ( e.keyCode === OO.ui.Keys.RIGHT || e.keyCode === OO.ui.Keys.DOWN ) {\n\t\tnextItem = element.getRelativeFocusableItem( this, 1 );\n\t}\n\n\tif ( nextItem ) {\n\t\te.preventDefault();\n\t\tnextItem.focus();\n\t}\n};\n","/**\n * CheckboxMultiselectWidget is a {@link OO.ui.MultiselectWidget multiselect widget} that contains\n * checkboxes and is used together with OO.ui.CheckboxMultioptionWidget. The\n * CheckboxMultiselectWidget provides an interface for adding, removing and selecting options.\n * Please see the [OOUI documentation on MediaWiki][1] for more information.\n *\n * If you want to use this within an HTML form, such as a OO.ui.FormLayout, use\n * OO.ui.CheckboxMultiselectInputWidget instead.\n *\n *     @example\n *     // A CheckboxMultiselectWidget with CheckboxMultioptions.\n *     var option1 = new OO.ui.CheckboxMultioptionWidget( {\n *             data: 'a',\n *             selected: true,\n *             label: 'Selected checkbox'\n *         } ),\n *         option2 = new OO.ui.CheckboxMultioptionWidget( {\n *             data: 'b',\n *             label: 'Unselected checkbox'\n *         } ),\n *         multiselect = new OO.ui.CheckboxMultiselectWidget( {\n *             items: [ option1, option2 ]\n *         } );\n *     $( document.body ).append( multiselect.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options\n *\n * @class\n * @extends OO.ui.MultiselectWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.CheckboxMultiselectWidget = function OoUiCheckboxMultiselectWidget( config ) {\n\t// Parent constructor\n\tOO.ui.CheckboxMultiselectWidget.parent.call( this, config );\n\n\t// Properties\n\tthis.$lastClicked = null;\n\n\t// Events\n\tthis.$group.on( 'click', this.onClick.bind( this ) );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-checkboxMultiselectWidget' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.CheckboxMultiselectWidget, OO.ui.MultiselectWidget );\n\n/* Methods */\n\n/**\n * Get an option by its position relative to the specified item (or to the start of the option array,\n * if item is `null`). The direction in which to search through the option array is specified with a\n * number: -1 for reverse (the default) or 1 for forward. The method will return an option, or\n * `null` if there are no options in the array.\n *\n * @param {OO.ui.CheckboxMultioptionWidget|null} item Item to describe the start position, or `null` to start at the beginning of the array.\n * @param {number} direction Direction to move in: -1 to move backward, 1 to move forward\n * @return {OO.ui.CheckboxMultioptionWidget|null} Item at position, `null` if there are no items in the select\n */\nOO.ui.CheckboxMultiselectWidget.prototype.getRelativeFocusableItem = function ( item, direction ) {\n\tvar currentIndex, nextIndex, i,\n\t\tincrease = direction > 0 ? 1 : -1,\n\t\tlen = this.items.length;\n\n\tif ( item ) {\n\t\tcurrentIndex = this.items.indexOf( item );\n\t\tnextIndex = ( currentIndex + increase + len ) % len;\n\t} else {\n\t\t// If no item is selected and moving forward, start at the beginning.\n\t\t// If moving backward, start at the end.\n\t\tnextIndex = direction > 0 ? 0 : len - 1;\n\t}\n\n\tfor ( i = 0; i < len; i++ ) {\n\t\titem = this.items[ nextIndex ];\n\t\tif ( item && !item.isDisabled() ) {\n\t\t\treturn item;\n\t\t}\n\t\tnextIndex = ( nextIndex + increase + len ) % len;\n\t}\n\treturn null;\n};\n\n/**\n * Handle click events on checkboxes.\n *\n * @param {jQuery.Event} e\n */\nOO.ui.CheckboxMultiselectWidget.prototype.onClick = function ( e ) {\n\tvar $options, lastClickedIndex, nowClickedIndex, i, direction, wasSelected, items,\n\t\t$lastClicked = this.$lastClicked,\n\t\t$nowClicked = $( e.target ).closest( '.oo-ui-checkboxMultioptionWidget' )\n\t\t\t.not( '.oo-ui-widget-disabled' );\n\n\t// Allow selecting multiple options at once by Shift-clicking them\n\tif ( $lastClicked && $nowClicked.length && e.shiftKey ) {\n\t\t$options = this.$group.find( '.oo-ui-checkboxMultioptionWidget' );\n\t\tlastClickedIndex = $options.index( $lastClicked );\n\t\tnowClickedIndex = $options.index( $nowClicked );\n\t\t// If it's the same item, either the user is being silly, or it's a fake event generated by the\n\t\t// browser. In either case we don't need custom handling.\n\t\tif ( nowClickedIndex !== lastClickedIndex ) {\n\t\t\titems = this.items;\n\t\t\twasSelected = items[ nowClickedIndex ].isSelected();\n\t\t\tdirection = nowClickedIndex > lastClickedIndex ? 1 : -1;\n\n\t\t\t// This depends on the DOM order of the items and the order of the .items array being the same.\n\t\t\tfor ( i = lastClickedIndex; i !== nowClickedIndex; i += direction ) {\n\t\t\t\tif ( !items[ i ].isDisabled() ) {\n\t\t\t\t\titems[ i ].setSelected( !wasSelected );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// For the now-clicked element, use immediate timeout to allow the browser to do its own\n\t\t\t// handling first, then set our value. The order in which events happen is different for\n\t\t\t// clicks on the <input> and on the <label> and there are additional fake clicks fired for\n\t\t\t// non-click actions that change the checkboxes.\n\t\t\te.preventDefault();\n\t\t\tsetTimeout( function () {\n\t\t\t\tif ( !items[ nowClickedIndex ].isDisabled() ) {\n\t\t\t\t\titems[ nowClickedIndex ].setSelected( !wasSelected );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n\n\tif ( $nowClicked.length ) {\n\t\tthis.$lastClicked = $nowClicked;\n\t}\n};\n\n/**\n * Focus the widget\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.CheckboxMultiselectWidget.prototype.focus = function () {\n\tvar item;\n\tif ( !this.isDisabled() ) {\n\t\titem = this.getRelativeFocusableItem( null, 1 );\n\t\tif ( item ) {\n\t\t\titem.focus();\n\t\t}\n\t}\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultiselectWidget.prototype.simulateLabelClick = function () {\n\tthis.focus();\n};\n","/**\n * Progress bars visually display the status of an operation, such as a download,\n * and can be either determinate or indeterminate:\n *\n * - **determinate** process bars show the percent of an operation that is complete.\n *\n * - **indeterminate** process bars use a visual display of motion to indicate that an operation\n *   is taking place. Because the extent of an indeterminate operation is unknown, the bar does\n *   not use percentages.\n *\n * The value of the `progress` configuration determines whether the bar is determinate or indeterminate.\n *\n *     @example\n *     // Examples of determinate and indeterminate progress bars.\n *     var progressBar1 = new OO.ui.ProgressBarWidget( {\n *         progress: 33\n *     } );\n *     var progressBar2 = new OO.ui.ProgressBarWidget();\n *\n *     // Create a FieldsetLayout to layout progress bars.\n *     var fieldset = new OO.ui.FieldsetLayout;\n *     fieldset.addItems( [\n *         new OO.ui.FieldLayout( progressBar1, {\n *             label: 'Determinate',\n *             align: 'top'\n *         } ),\n *         new OO.ui.FieldLayout( progressBar2, {\n *             label: 'Indeterminate',\n *             align: 'top'\n *         } )\n *     ] );\n *     $( document.body ).append( fieldset.$element );\n *\n * @class\n * @extends OO.ui.Widget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {number|boolean} [progress=false] The type of progress bar (determinate or indeterminate).\n *  To create a determinate progress bar, specify a number that reflects the initial percent complete.\n *  By default, the progress bar is indeterminate.\n */\nOO.ui.ProgressBarWidget = function OoUiProgressBarWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.ProgressBarWidget.parent.call( this, config );\n\n\t// Properties\n\tthis.$bar = $( '<div>' );\n\tthis.progress = null;\n\n\t// Initialization\n\tthis.setProgress( config.progress !== undefined ? config.progress : false );\n\tthis.$bar.addClass( 'oo-ui-progressBarWidget-bar' );\n\tthis.$element\n\t\t.attr( {\n\t\t\trole: 'progressbar',\n\t\t\t'aria-valuemin': 0,\n\t\t\t'aria-valuemax': 100\n\t\t} )\n\t\t.addClass( 'oo-ui-progressBarWidget' )\n\t\t.append( this.$bar );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ProgressBarWidget, OO.ui.Widget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.ProgressBarWidget.static.tagName = 'div';\n\n/* Methods */\n\n/**\n * Get the percent of the progress that has been completed. Indeterminate progresses will return `false`.\n *\n * @return {number|boolean} Progress percent\n */\nOO.ui.ProgressBarWidget.prototype.getProgress = function () {\n\treturn this.progress;\n};\n\n/**\n * Set the percent of the process completed or `false` for an indeterminate process.\n *\n * @param {number|boolean} progress Progress percent or `false` for indeterminate\n */\nOO.ui.ProgressBarWidget.prototype.setProgress = function ( progress ) {\n\tthis.progress = progress;\n\n\tif ( progress !== false ) {\n\t\tthis.$bar.css( 'width', this.progress + '%' );\n\t\tthis.$element.attr( 'aria-valuenow', this.progress );\n\t} else {\n\t\tthis.$bar.css( 'width', '' );\n\t\tthis.$element.removeAttr( 'aria-valuenow' );\n\t}\n\tthis.$element.toggleClass( 'oo-ui-progressBarWidget-indeterminate', progress === false );\n};\n","/**\n * InputWidget is the base class for all input widgets, which\n * include {@link OO.ui.TextInputWidget text inputs}, {@link OO.ui.CheckboxInputWidget checkbox inputs},\n * {@link OO.ui.RadioInputWidget radio inputs}, and {@link OO.ui.ButtonInputWidget button inputs}.\n * See the [OOUI documentation on MediaWiki] [1] for more information and examples.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs\n *\n * @abstract\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.FlaggedElement\n * @mixins OO.ui.mixin.TabIndexedElement\n * @mixins OO.ui.mixin.TitledElement\n * @mixins OO.ui.mixin.AccessKeyedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string} [name=''] The value of the input’s HTML `name` attribute.\n * @cfg {string} [value=''] The value of the input.\n * @cfg {string} [dir] The directionality of the input (ltr/rtl).\n * @cfg {string} [inputId] The value of the input’s HTML `id` attribute.\n * @cfg {Function} [inputFilter] The name of an input filter function. Input filters modify the value of an input\n *  before it is accepted.\n */\nOO.ui.InputWidget = function OoUiInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.InputWidget.parent.call( this, config );\n\n\t// Properties\n\t// See #reusePreInfuseDOM about config.$input\n\tthis.$input = config.$input || this.getInputElement( config );\n\tthis.value = '';\n\tthis.inputFilter = config.inputFilter;\n\n\t// Mixin constructors\n\tOO.ui.mixin.FlaggedElement.call( this, config );\n\tOO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$input } ) );\n\tOO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$input } ) );\n\tOO.ui.mixin.AccessKeyedElement.call( this, $.extend( {}, config, { $accessKeyed: this.$input } ) );\n\n\t// Events\n\tthis.$input.on( 'keydown mouseup cut paste change input select', this.onEdit.bind( this ) );\n\n\t// Initialization\n\tthis.$input\n\t\t.addClass( 'oo-ui-inputWidget-input' )\n\t\t.attr( 'name', config.name )\n\t\t.prop( 'disabled', this.isDisabled() );\n\tthis.$element\n\t\t.addClass( 'oo-ui-inputWidget' )\n\t\t.append( this.$input );\n\tthis.setValue( config.value );\n\tif ( config.dir ) {\n\t\tthis.setDir( config.dir );\n\t}\n\tif ( config.inputId !== undefined ) {\n\t\tthis.setInputId( config.inputId );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.InputWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.InputWidget, OO.ui.mixin.FlaggedElement );\nOO.mixinClass( OO.ui.InputWidget, OO.ui.mixin.TabIndexedElement );\nOO.mixinClass( OO.ui.InputWidget, OO.ui.mixin.TitledElement );\nOO.mixinClass( OO.ui.InputWidget, OO.ui.mixin.AccessKeyedElement );\n\n/* Static Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.InputWidget.static.reusePreInfuseDOM = function ( node, config ) {\n\tconfig = OO.ui.InputWidget.parent.static.reusePreInfuseDOM( node, config );\n\t// Reusing `$input` lets browsers preserve inputted values across page reloads, see T114134.\n\tconfig.$input = $( node ).find( '.oo-ui-inputWidget-input' );\n\treturn config;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.InputWidget.static.gatherPreInfuseState = function ( node, config ) {\n\tvar state = OO.ui.InputWidget.parent.static.gatherPreInfuseState( node, config );\n\tif ( config.$input && config.$input.length ) {\n\t\tstate.value = config.$input.val();\n\t\t// Might be better in TabIndexedElement, but it's awkward to do there because mixins are awkward\n\t\tstate.focus = config.$input.is( ':focus' );\n\t}\n\treturn state;\n};\n\n/* Events */\n\n/**\n * @event change\n *\n * A change event is emitted when the value of the input changes.\n *\n * @param {string} value\n */\n\n/* Methods */\n\n/**\n * Get input element.\n *\n * Subclasses of OO.ui.InputWidget use the `config` parameter to produce different elements in\n * different circumstances. The element must have a `value` property (like form elements).\n *\n * @protected\n * @param {Object} config Configuration options\n * @return {jQuery} Input element\n */\nOO.ui.InputWidget.prototype.getInputElement = function () {\n\treturn $( '<input>' );\n};\n\n/**\n * Handle potentially value-changing events.\n *\n * @private\n * @param {jQuery.Event} e Key down, mouse up, cut, paste, change, input, or select event\n */\nOO.ui.InputWidget.prototype.onEdit = function () {\n\tvar widget = this;\n\tif ( !this.isDisabled() ) {\n\t\t// Allow the stack to clear so the value will be updated\n\t\tsetTimeout( function () {\n\t\t\twidget.setValue( widget.$input.val() );\n\t\t} );\n\t}\n};\n\n/**\n * Get the value of the input.\n *\n * @return {string} Input value\n */\nOO.ui.InputWidget.prototype.getValue = function () {\n\t// Resynchronize our internal data with DOM data. Other scripts executing on the page can modify\n\t// it, and we won't know unless they're kind enough to trigger a 'change' event.\n\tvar value = this.$input.val();\n\tif ( this.value !== value ) {\n\t\tthis.setValue( value );\n\t}\n\treturn this.value;\n};\n\n/**\n * Set the directionality of the input.\n *\n * @param {string} dir Text directionality: 'ltr', 'rtl' or 'auto'\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.InputWidget.prototype.setDir = function ( dir ) {\n\tthis.$input.prop( 'dir', dir );\n\treturn this;\n};\n\n/**\n * Set the value of the input.\n *\n * @param {string} value New value\n * @fires change\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.InputWidget.prototype.setValue = function ( value ) {\n\tvalue = this.cleanUpValue( value );\n\t// Update the DOM if it has changed. Note that with cleanUpValue, it\n\t// is possible for the DOM value to change without this.value changing.\n\tif ( this.$input.val() !== value ) {\n\t\tthis.$input.val( value );\n\t}\n\tif ( this.value !== value ) {\n\t\tthis.value = value;\n\t\tthis.emit( 'change', this.value );\n\t}\n\t// The first time that the value is set (probably while constructing the widget),\n\t// remember it in defaultValue. This property can be later used to check whether\n\t// the value of the input has been changed since it was created.\n\tif ( this.defaultValue === undefined ) {\n\t\tthis.defaultValue = this.value;\n\t\tthis.$input[ 0 ].defaultValue = this.defaultValue;\n\t}\n\treturn this;\n};\n\n/**\n * Clean up incoming value.\n *\n * Ensures value is a string, and converts undefined and null to empty string.\n *\n * @private\n * @param {string} value Original value\n * @return {string} Cleaned up value\n */\nOO.ui.InputWidget.prototype.cleanUpValue = function ( value ) {\n\tif ( value === undefined || value === null ) {\n\t\treturn '';\n\t} else if ( this.inputFilter ) {\n\t\treturn this.inputFilter( String( value ) );\n\t} else {\n\t\treturn String( value );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.InputWidget.prototype.setDisabled = function ( state ) {\n\tOO.ui.InputWidget.parent.prototype.setDisabled.call( this, state );\n\tif ( this.$input ) {\n\t\tthis.$input.prop( 'disabled', this.isDisabled() );\n\t}\n\treturn this;\n};\n\n/**\n * Set the 'id' attribute of the `<input>` element.\n *\n * @param {string} id\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.InputWidget.prototype.setInputId = function ( id ) {\n\tthis.$input.attr( 'id', id );\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.InputWidget.prototype.restorePreInfuseState = function ( state ) {\n\tOO.ui.InputWidget.parent.prototype.restorePreInfuseState.call( this, state );\n\tif ( state.value !== undefined && state.value !== this.getValue() ) {\n\t\tthis.setValue( state.value );\n\t}\n\tif ( state.focus ) {\n\t\tthis.focus();\n\t}\n};\n","/**\n * Data widget intended for creating `<input type=\"hidden\">` inputs.\n *\n * @class\n * @extends OO.ui.Widget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string} [value=''] The value of the input.\n * @cfg {string} [name=''] The value of the input’s HTML `name` attribute.\n */\nOO.ui.HiddenInputWidget = function OoUiHiddenInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( { value: '', name: '' }, config );\n\n\t// Parent constructor\n\tOO.ui.HiddenInputWidget.parent.call( this, config );\n\n\t// Initialization\n\tthis.$element.attr( {\n\t\ttype: 'hidden',\n\t\tvalue: config.value,\n\t\tname: config.name\n\t} );\n\tthis.$element.removeAttr( 'aria-disabled' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.HiddenInputWidget, OO.ui.Widget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.HiddenInputWidget.static.tagName = 'input';\n","/**\n * ButtonInputWidget is used to submit HTML forms and is intended to be used within\n * a OO.ui.FormLayout. If you do not need the button to work with HTML forms, you probably\n * want to use OO.ui.ButtonWidget instead. Button input widgets can be rendered as either an\n * HTML `<button>` (the default) or an HTML `<input>` tags. See the\n * [OOUI documentation on MediaWiki] [1] for more information.\n *\n *     @example\n *     // A ButtonInputWidget rendered as an HTML button, the default.\n *     var button = new OO.ui.ButtonInputWidget( {\n *         label: 'Input button',\n *         icon: 'check',\n *         value: 'check'\n *     } );\n *     $( document.body ).append( button.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs#Button_inputs\n *\n * @class\n * @extends OO.ui.InputWidget\n * @mixins OO.ui.mixin.ButtonElement\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.LabelElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string} [type='button'] The value of the HTML `'type'` attribute: 'button', 'submit' or 'reset'.\n * @cfg {boolean} [useInputTag=false] Use an `<input>` tag instead of a `<button>` tag, the default.\n *  Widgets configured to be an `<input>` do not support {@link #icon icons} and {@link #indicator indicators},\n *  non-plaintext {@link #label labels}, or {@link #value values}. In general, useInputTag should only\n *  be set to `true` when there’s need to support IE 6 in a form with multiple buttons.\n */\nOO.ui.ButtonInputWidget = function OoUiButtonInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( { type: 'button', useInputTag: false }, config );\n\n\t// See InputWidget#reusePreInfuseDOM about config.$input\n\tif ( config.$input ) {\n\t\tconfig.$input.empty();\n\t}\n\n\t// Properties (must be set before parent constructor, which calls #setValue)\n\tthis.useInputTag = config.useInputTag;\n\n\t// Parent constructor\n\tOO.ui.ButtonInputWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.ButtonElement.call( this, $.extend( {}, config, { $button: this.$input } ) );\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\n\t// Initialization\n\tif ( !config.useInputTag ) {\n\t\tthis.$input.append( this.$icon, this.$label, this.$indicator );\n\t}\n\tthis.$element.addClass( 'oo-ui-buttonInputWidget' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ButtonInputWidget, OO.ui.InputWidget );\nOO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.ButtonElement );\nOO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.LabelElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.ButtonInputWidget.static.tagName = 'span';\n\n/* Methods */\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.ButtonInputWidget.prototype.getInputElement = function ( config ) {\n\tvar type;\n\ttype = [ 'button', 'submit', 'reset' ].indexOf( config.type ) !== -1 ? config.type : 'button';\n\treturn $( '<' + ( config.useInputTag ? 'input' : 'button' ) + ' type=\"' + type + '\">' );\n};\n\n/**\n * Set label value.\n *\n * If #useInputTag is `true`, the label is set as the `value` of the `<input>` tag.\n *\n * @param {jQuery|string|Function|null} label Label nodes, text, a function that returns nodes or\n *  text, or `null` for no label\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ButtonInputWidget.prototype.setLabel = function ( label ) {\n\tif ( typeof label === 'function' ) {\n\t\tlabel = OO.ui.resolveMsg( label );\n\t}\n\n\tif ( this.useInputTag ) {\n\t\t// Discard non-plaintext labels\n\t\tif ( typeof label !== 'string' ) {\n\t\t\tlabel = '';\n\t\t}\n\n\t\tthis.$input.val( label );\n\t}\n\n\treturn OO.ui.mixin.LabelElement.prototype.setLabel.call( this, label );\n};\n\n/**\n * Set the value of the input.\n *\n * This method is disabled for button inputs configured as {@link #useInputTag <input> tags}, as\n * they do not support {@link #value values}.\n *\n * @param {string} value New value\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ButtonInputWidget.prototype.setValue = function ( value ) {\n\tif ( !this.useInputTag ) {\n\t\tOO.ui.ButtonInputWidget.parent.prototype.setValue.call( this, value );\n\t}\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ButtonInputWidget.prototype.getInputId = function () {\n\t// Disable generating `<label>` elements for buttons. One would very rarely need additional label\n\t// for a button, and it's already a big clickable target, and it causes unexpected rendering.\n\treturn null;\n};\n","/**\n * CheckboxInputWidgets, like HTML checkboxes, can be selected and/or configured with a value.\n * Note that these {@link OO.ui.InputWidget input widgets} are best laid out\n * in {@link OO.ui.FieldLayout field layouts} that use the {@link OO.ui.FieldLayout#align inline}\n * alignment. For more information, please see the [OOUI documentation on MediaWiki][1].\n *\n * This widget can be used inside an HTML form, such as a OO.ui.FormLayout.\n *\n *     @example\n *     // An example of selected, unselected, and disabled checkbox inputs.\n *     var checkbox1 = new OO.ui.CheckboxInputWidget( {\n *             value: 'a',\n *              selected: true\n *         } ),\n *         checkbox2 = new OO.ui.CheckboxInputWidget( {\n *             value: 'b'\n *         } ),\n *         checkbox3 = new OO.ui.CheckboxInputWidget( {\n *             value:'c',\n *             disabled: true\n *         } ),\n *         // Create a fieldset layout with fields for each checkbox.\n *         fieldset = new OO.ui.FieldsetLayout( {\n *             label: 'Checkboxes'\n *         } );\n *     fieldset.addItems( [\n *         new OO.ui.FieldLayout( checkbox1, { label: 'Selected checkbox', align: 'inline' } ),\n *         new OO.ui.FieldLayout( checkbox2, { label: 'Unselected checkbox', align: 'inline' } ),\n *         new OO.ui.FieldLayout( checkbox3, { label: 'Disabled checkbox', align: 'inline' } ),\n *     ] );\n *     $( document.body ).append( fieldset.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs\n *\n * @class\n * @extends OO.ui.InputWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [selected=false] Select the checkbox initially. By default, the checkbox is not selected.\n */\nOO.ui.CheckboxInputWidget = function OoUiCheckboxInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.CheckboxInputWidget.parent.call( this, config );\n\n\t// Properties\n\tthis.checkIcon = new OO.ui.IconWidget( {\n\t\ticon: 'check',\n\t\tclasses: [ 'oo-ui-checkboxInputWidget-checkIcon' ]\n\t} );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-checkboxInputWidget' )\n\t\t// Required for pretty styling in WikimediaUI theme\n\t\t.append( this.checkIcon.$element );\n\tthis.setSelected( config.selected !== undefined ? config.selected : false );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.CheckboxInputWidget, OO.ui.InputWidget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.CheckboxInputWidget.static.tagName = 'span';\n\n/* Static Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxInputWidget.static.gatherPreInfuseState = function ( node, config ) {\n\tvar state = OO.ui.CheckboxInputWidget.parent.static.gatherPreInfuseState( node, config );\n\tstate.checked = config.$input.prop( 'checked' );\n\treturn state;\n};\n\n/* Methods */\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.CheckboxInputWidget.prototype.getInputElement = function () {\n\treturn $( '<input>' ).attr( 'type', 'checkbox' );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxInputWidget.prototype.onEdit = function () {\n\tvar widget = this;\n\tif ( !this.isDisabled() ) {\n\t\t// Allow the stack to clear so the value will be updated\n\t\tsetTimeout( function () {\n\t\t\twidget.setSelected( widget.$input.prop( 'checked' ) );\n\t\t} );\n\t}\n};\n\n/**\n * Set selection state of this checkbox.\n *\n * @param {boolean} state `true` for selected\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.CheckboxInputWidget.prototype.setSelected = function ( state ) {\n\tstate = !!state;\n\tif ( this.selected !== state ) {\n\t\tthis.selected = state;\n\t\tthis.$input.prop( 'checked', this.selected );\n\t\tthis.emit( 'change', this.selected );\n\t}\n\t// The first time that the selection state is set (probably while constructing the widget),\n\t// remember it in defaultSelected. This property can be later used to check whether\n\t// the selection state of the input has been changed since it was created.\n\tif ( this.defaultSelected === undefined ) {\n\t\tthis.defaultSelected = this.selected;\n\t\tthis.$input[ 0 ].defaultChecked = this.defaultSelected;\n\t}\n\treturn this;\n};\n\n/**\n * Check if this checkbox is selected.\n *\n * @return {boolean} Checkbox is selected\n */\nOO.ui.CheckboxInputWidget.prototype.isSelected = function () {\n\t// Resynchronize our internal data with DOM data. Other scripts executing on the page can modify\n\t// it, and we won't know unless they're kind enough to trigger a 'change' event.\n\tvar selected = this.$input.prop( 'checked' );\n\tif ( this.selected !== selected ) {\n\t\tthis.setSelected( selected );\n\t}\n\treturn this.selected;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxInputWidget.prototype.simulateLabelClick = function () {\n\tif ( !this.isDisabled() ) {\n\t\tthis.$input.click();\n\t}\n\tthis.focus();\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxInputWidget.prototype.restorePreInfuseState = function ( state ) {\n\tOO.ui.CheckboxInputWidget.parent.prototype.restorePreInfuseState.call( this, state );\n\tif ( state.checked !== undefined && state.checked !== this.isSelected() ) {\n\t\tthis.setSelected( state.checked );\n\t}\n};\n","/**\n * DropdownInputWidget is a {@link OO.ui.DropdownWidget DropdownWidget} intended to be used\n * within an HTML form, such as a OO.ui.FormLayout. The selected value is synchronized with the value\n * of a hidden HTML `input` tag. Please see the [OOUI documentation on MediaWiki][1] for\n * more information about input widgets.\n *\n * A DropdownInputWidget always has a value (one of the options is always selected), unless there\n * are no options. If no `value` configuration option is provided, the first option is selected.\n * If you need a state representing no value (no option being selected), use a DropdownWidget.\n *\n * This and OO.ui.RadioSelectInputWidget support the same configuration options.\n *\n *     @example\n *     // A DropdownInputWidget with three options.\n *     var dropdownInput = new OO.ui.DropdownInputWidget( {\n *         options: [\n *             { data: 'a', label: 'First' },\n *             { data: 'b', label: 'Second'},\n *             { data: 'c', label: 'Third' }\n *         ]\n *     } );\n *     $( document.body ).append( dropdownInput.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs\n *\n * @class\n * @extends OO.ui.InputWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {Object[]} [options=[]] Array of menu options in the format `{ data: …, label: … }`\n * @cfg {Object} [dropdown] Configuration options for {@link OO.ui.DropdownWidget DropdownWidget}\n * @cfg {jQuery} [$overlay] Render the menu into a separate layer. This configuration is useful in cases where\n *  the expanded menu is larger than its containing `<div>`. The specified overlay layer is usually on top of the\n *  containing `<div>` and has a larger area. By default, the menu uses relative positioning.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n */\nOO.ui.DropdownInputWidget = function OoUiDropdownInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties (must be done before parent constructor which calls #setDisabled)\n\tthis.dropdownWidget = new OO.ui.DropdownWidget( $.extend(\n\t\t{\n\t\t\t$overlay: config.$overlay\n\t\t},\n\t\tconfig.dropdown\n\t) );\n\t// Set up the options before parent constructor, which uses them to validate config.value.\n\t// Use this instead of setOptions() because this.$input is not set up yet.\n\tthis.setOptionsData( config.options || [] );\n\n\t// Parent constructor\n\tOO.ui.DropdownInputWidget.parent.call( this, config );\n\n\t// Events\n\tthis.dropdownWidget.getMenu().connect( this, { select: 'onMenuSelect' } );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-dropdownInputWidget' )\n\t\t.append( this.dropdownWidget.$element );\n\tthis.setTabIndexedElement( this.dropdownWidget.$tabIndexed );\n\tthis.setTitledElement( this.dropdownWidget.$handle );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.DropdownInputWidget, OO.ui.InputWidget );\n\n/* Methods */\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.DropdownInputWidget.prototype.getInputElement = function () {\n\treturn $( '<select>' );\n};\n\n/**\n * Handles menu select events.\n *\n * @private\n * @param {OO.ui.MenuOptionWidget|null} item Selected menu item\n */\nOO.ui.DropdownInputWidget.prototype.onMenuSelect = function ( item ) {\n\tthis.setValue( item ? item.getData() : '' );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.DropdownInputWidget.prototype.setValue = function ( value ) {\n\tvar selected;\n\tvalue = this.cleanUpValue( value );\n\t// Only allow setting values that are actually present in the dropdown\n\tselected = this.dropdownWidget.getMenu().findItemFromData( value ) ||\n\t\tthis.dropdownWidget.getMenu().findFirstSelectableItem();\n\tthis.dropdownWidget.getMenu().selectItem( selected );\n\tvalue = selected ? selected.getData() : '';\n\tOO.ui.DropdownInputWidget.parent.prototype.setValue.call( this, value );\n\tif ( this.optionsDirty ) {\n\t\t// We reached this from the constructor or from #setOptions.\n\t\t// We have to update the <select> element.\n\t\tthis.updateOptionsInterface();\n\t}\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.DropdownInputWidget.prototype.setDisabled = function ( state ) {\n\tthis.dropdownWidget.setDisabled( state );\n\tOO.ui.DropdownInputWidget.parent.prototype.setDisabled.call( this, state );\n\treturn this;\n};\n\n/**\n * Set the options available for this input.\n *\n * @param {Object[]} options Array of menu options in the format `{ data: …, label: … }`\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.DropdownInputWidget.prototype.setOptions = function ( options ) {\n\tvar value = this.getValue();\n\n\tthis.setOptionsData( options );\n\n\t// Re-set the value to update the visible interface (DropdownWidget and <select>).\n\t// In case the previous value is no longer an available option, select the first valid one.\n\tthis.setValue( value );\n\n\treturn this;\n};\n\n/**\n * Set the internal list of options, used e.g. by setValue() to see which options are allowed.\n *\n * This method may be called before the parent constructor, so various properties may not be\n * intialized yet.\n *\n * @param {Object[]} options Array of menu options in the format `{ data: …, label: … }`\n * @private\n */\nOO.ui.DropdownInputWidget.prototype.setOptionsData = function ( options ) {\n\tvar\n\t\toptionWidgets,\n\t\twidget = this;\n\n\tthis.optionsDirty = true;\n\n\toptionWidgets = options.map( function ( opt ) {\n\t\tvar optValue;\n\n\t\tif ( opt.optgroup !== undefined ) {\n\t\t\treturn widget.createMenuSectionOptionWidget( opt.optgroup );\n\t\t}\n\n\t\toptValue = widget.cleanUpValue( opt.data );\n\t\treturn widget.createMenuOptionWidget(\n\t\t\toptValue,\n\t\t\topt.label !== undefined ? opt.label : optValue\n\t\t);\n\n\t} );\n\n\tthis.dropdownWidget.getMenu().clearItems().addItems( optionWidgets );\n};\n\n/**\n * Create a menu option widget.\n *\n * @protected\n * @param {string} data Item data\n * @param {string} label Item label\n * @return {OO.ui.MenuOptionWidget} Option widget\n */\nOO.ui.DropdownInputWidget.prototype.createMenuOptionWidget = function ( data, label ) {\n\treturn new OO.ui.MenuOptionWidget( {\n\t\tdata: data,\n\t\tlabel: label\n\t} );\n};\n\n/**\n * Create a menu section option widget.\n *\n * @protected\n * @param {string} label Section item label\n * @return {OO.ui.MenuSectionOptionWidget} Menu section option widget\n */\nOO.ui.DropdownInputWidget.prototype.createMenuSectionOptionWidget = function ( label ) {\n\treturn new OO.ui.MenuSectionOptionWidget( {\n\t\tlabel: label\n\t} );\n};\n\n/**\n * Update the user-visible interface to match the internal list of options and value.\n *\n * This method must only be called after the parent constructor.\n *\n * @private\n */\nOO.ui.DropdownInputWidget.prototype.updateOptionsInterface = function () {\n\tvar\n\t\t$optionsContainer = this.$input,\n\t\tdefaultValue = this.defaultValue,\n\t\twidget = this;\n\n\tthis.$input.empty();\n\n\tthis.dropdownWidget.getMenu().getItems().forEach( function ( optionWidget ) {\n\t\tvar $optionNode;\n\n\t\tif ( !( optionWidget instanceof OO.ui.MenuSectionOptionWidget ) ) {\n\t\t\t$optionNode = $( '<option>' )\n\t\t\t\t.attr( 'value', optionWidget.getData() )\n\t\t\t\t.text( optionWidget.getLabel() );\n\n\t\t\t// Remember original selection state. This property can be later used to check whether\n\t\t\t// the selection state of the input has been changed since it was created.\n\t\t\t$optionNode[ 0 ].defaultSelected = ( optionWidget.getData() === defaultValue );\n\n\t\t\t$optionsContainer.append( $optionNode );\n\t\t} else {\n\t\t\t$optionNode = $( '<optgroup>' )\n\t\t\t\t.attr( 'label', optionWidget.getLabel() );\n\t\t\twidget.$input.append( $optionNode );\n\t\t\t$optionsContainer = $optionNode;\n\t\t}\n\t} );\n\n\tthis.optionsDirty = false;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.DropdownInputWidget.prototype.focus = function () {\n\tthis.dropdownWidget.focus();\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.DropdownInputWidget.prototype.blur = function () {\n\tthis.dropdownWidget.blur();\n\treturn this;\n};\n","/**\n * RadioInputWidget creates a single radio button. Because radio buttons are usually used as a set,\n * in most cases you will want to use a {@link OO.ui.RadioSelectWidget radio select}\n * with {@link OO.ui.RadioOptionWidget radio options} instead of this class. For more information,\n * please see the [OOUI documentation on MediaWiki][1].\n *\n * This widget can be used inside an HTML form, such as a OO.ui.FormLayout.\n *\n *     @example\n *     // An example of selected, unselected, and disabled radio inputs\n *     var radio1 = new OO.ui.RadioInputWidget( {\n *         value: 'a',\n *         selected: true\n *     } );\n *     var radio2 = new OO.ui.RadioInputWidget( {\n *         value: 'b'\n *     } );\n *     var radio3 = new OO.ui.RadioInputWidget( {\n *         value: 'c',\n *         disabled: true\n *     } );\n *     // Create a fieldset layout with fields for each radio button.\n *     var fieldset = new OO.ui.FieldsetLayout( {\n *         label: 'Radio inputs'\n *     } );\n *     fieldset.addItems( [\n *         new OO.ui.FieldLayout( radio1, { label: 'Selected', align: 'inline' } ),\n *         new OO.ui.FieldLayout( radio2, { label: 'Unselected', align: 'inline' } ),\n *         new OO.ui.FieldLayout( radio3, { label: 'Disabled', align: 'inline' } ),\n *     ] );\n *     $( document.body ).append( fieldset.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs\n *\n * @class\n * @extends OO.ui.InputWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [selected=false] Select the radio button initially. By default, the radio button is not selected.\n */\nOO.ui.RadioInputWidget = function OoUiRadioInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.RadioInputWidget.parent.call( this, config );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-radioInputWidget' )\n\t\t// Required for pretty styling in WikimediaUI theme\n\t\t.append( $( '<span>' ) );\n\tthis.setSelected( config.selected !== undefined ? config.selected : false );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.RadioInputWidget, OO.ui.InputWidget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.RadioInputWidget.static.tagName = 'span';\n\n/* Static Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioInputWidget.static.gatherPreInfuseState = function ( node, config ) {\n\tvar state = OO.ui.RadioInputWidget.parent.static.gatherPreInfuseState( node, config );\n\tstate.checked = config.$input.prop( 'checked' );\n\treturn state;\n};\n\n/* Methods */\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.RadioInputWidget.prototype.getInputElement = function () {\n\treturn $( '<input>' ).attr( 'type', 'radio' );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioInputWidget.prototype.onEdit = function () {\n\t// RadioInputWidget doesn't track its state.\n};\n\n/**\n * Set selection state of this radio button.\n *\n * @param {boolean} state `true` for selected\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.RadioInputWidget.prototype.setSelected = function ( state ) {\n\t// RadioInputWidget doesn't track its state.\n\tthis.$input.prop( 'checked', state );\n\t// The first time that the selection state is set (probably while constructing the widget),\n\t// remember it in defaultSelected. This property can be later used to check whether\n\t// the selection state of the input has been changed since it was created.\n\tif ( this.defaultSelected === undefined ) {\n\t\tthis.defaultSelected = state;\n\t\tthis.$input[ 0 ].defaultChecked = this.defaultSelected;\n\t}\n\treturn this;\n};\n\n/**\n * Check if this radio button is selected.\n *\n * @return {boolean} Radio is selected\n */\nOO.ui.RadioInputWidget.prototype.isSelected = function () {\n\treturn this.$input.prop( 'checked' );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioInputWidget.prototype.simulateLabelClick = function () {\n\tif ( !this.isDisabled() ) {\n\t\tthis.$input.click();\n\t}\n\tthis.focus();\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioInputWidget.prototype.restorePreInfuseState = function ( state ) {\n\tOO.ui.RadioInputWidget.parent.prototype.restorePreInfuseState.call( this, state );\n\tif ( state.checked !== undefined && state.checked !== this.isSelected() ) {\n\t\tthis.setSelected( state.checked );\n\t}\n};\n","/**\n * RadioSelectInputWidget is a {@link OO.ui.RadioSelectWidget RadioSelectWidget} intended to be used\n * within an HTML form, such as a OO.ui.FormLayout. The selected value is synchronized with the value\n * of a hidden HTML `input` tag. Please see the [OOUI documentation on MediaWiki][1] for\n * more information about input widgets.\n *\n * This and OO.ui.DropdownInputWidget support the same configuration options.\n *\n *     @example\n *     // A RadioSelectInputWidget with three options\n *     var radioSelectInput = new OO.ui.RadioSelectInputWidget( {\n *         options: [\n *             { data: 'a', label: 'First' },\n *             { data: 'b', label: 'Second'},\n *             { data: 'c', label: 'Third' }\n *         ]\n *     } );\n *     $( document.body ).append( radioSelectInput.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs\n *\n * @class\n * @extends OO.ui.InputWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {Object[]} [options=[]] Array of menu options in the format `{ data: …, label: … }`\n */\nOO.ui.RadioSelectInputWidget = function OoUiRadioSelectInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties (must be done before parent constructor which calls #setDisabled)\n\tthis.radioSelectWidget = new OO.ui.RadioSelectWidget();\n\t// Set up the options before parent constructor, which uses them to validate config.value.\n\t// Use this instead of setOptions() because this.$input is not set up yet\n\tthis.setOptionsData( config.options || [] );\n\n\t// Parent constructor\n\tOO.ui.RadioSelectInputWidget.parent.call( this, config );\n\n\t// Events\n\tthis.radioSelectWidget.connect( this, { select: 'onMenuSelect' } );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-radioSelectInputWidget' )\n\t\t.append( this.radioSelectWidget.$element );\n\tthis.setTabIndexedElement( this.radioSelectWidget.$tabIndexed );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.RadioSelectInputWidget, OO.ui.InputWidget );\n\n/* Static Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioSelectInputWidget.static.gatherPreInfuseState = function ( node, config ) {\n\tvar state = OO.ui.RadioSelectInputWidget.parent.static.gatherPreInfuseState( node, config );\n\tstate.value = $( node ).find( '.oo-ui-radioInputWidget .oo-ui-inputWidget-input:checked' ).val();\n\treturn state;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioSelectInputWidget.static.reusePreInfuseDOM = function ( node, config ) {\n\tconfig = OO.ui.RadioSelectInputWidget.parent.static.reusePreInfuseDOM( node, config );\n\t// Cannot reuse the `<input type=radio>` set\n\tdelete config.$input;\n\treturn config;\n};\n\n/* Methods */\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.RadioSelectInputWidget.prototype.getInputElement = function () {\n\t// Use this instead of <input type=\"hidden\">, because hidden inputs do not have separate\n\t// 'value' and 'defaultValue' properties, and InputWidget wants to handle 'defaultValue'.\n\treturn $( '<input>' ).addClass( 'oo-ui-element-hidden' );\n};\n\n/**\n * Handles menu select events.\n *\n * @private\n * @param {OO.ui.RadioOptionWidget} item Selected menu item\n */\nOO.ui.RadioSelectInputWidget.prototype.onMenuSelect = function ( item ) {\n\tthis.setValue( item.getData() );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioSelectInputWidget.prototype.setValue = function ( value ) {\n\tvar selected;\n\tvalue = this.cleanUpValue( value );\n\t// Only allow setting values that are actually present in the dropdown\n\tselected = this.radioSelectWidget.findItemFromData( value ) ||\n\t\tthis.radioSelectWidget.findFirstSelectableItem();\n\tthis.radioSelectWidget.selectItem( selected );\n\tvalue = selected ? selected.getData() : '';\n\tOO.ui.RadioSelectInputWidget.parent.prototype.setValue.call( this, value );\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioSelectInputWidget.prototype.setDisabled = function ( state ) {\n\tthis.radioSelectWidget.setDisabled( state );\n\tOO.ui.RadioSelectInputWidget.parent.prototype.setDisabled.call( this, state );\n\treturn this;\n};\n\n/**\n * Set the options available for this input.\n *\n * @param {Object[]} options Array of menu options in the format `{ data: …, label: … }`\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.RadioSelectInputWidget.prototype.setOptions = function ( options ) {\n\tvar value = this.getValue();\n\n\tthis.setOptionsData( options );\n\n\t// Re-set the value to update the visible interface (RadioSelectWidget).\n\t// In case the previous value is no longer an available option, select the first valid one.\n\tthis.setValue( value );\n\n\treturn this;\n};\n\n/**\n * Set the internal list of options, used e.g. by setValue() to see which options are allowed.\n *\n * This method may be called before the parent constructor, so various properties may not be\n * intialized yet.\n *\n * @param {Object[]} options Array of menu options in the format `{ data: …, label: … }`\n * @private\n */\nOO.ui.RadioSelectInputWidget.prototype.setOptionsData = function ( options ) {\n\tvar widget = this;\n\n\tthis.radioSelectWidget\n\t\t.clearItems()\n\t\t.addItems( options.map( function ( opt ) {\n\t\t\tvar optValue = widget.cleanUpValue( opt.data );\n\t\t\treturn new OO.ui.RadioOptionWidget( {\n\t\t\t\tdata: optValue,\n\t\t\t\tlabel: opt.label !== undefined ? opt.label : optValue\n\t\t\t} );\n\t\t} ) );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioSelectInputWidget.prototype.focus = function () {\n\tthis.radioSelectWidget.focus();\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.RadioSelectInputWidget.prototype.blur = function () {\n\tthis.radioSelectWidget.blur();\n\treturn this;\n};\n","/**\n * CheckboxMultiselectInputWidget is a\n * {@link OO.ui.CheckboxMultiselectWidget CheckboxMultiselectWidget} intended to be used within a\n * HTML form, such as a OO.ui.FormLayout. The selected values are synchronized with the value of\n * HTML `<input type=checkbox>` tags. Please see the [OOUI documentation on MediaWiki][1] for\n * more information about input widgets.\n *\n *     @example\n *     // A CheckboxMultiselectInputWidget with three options.\n *     var multiselectInput = new OO.ui.CheckboxMultiselectInputWidget( {\n *         options: [\n *             { data: 'a', label: 'First' },\n *             { data: 'b', label: 'Second' },\n *             { data: 'c', label: 'Third' }\n *         ]\n *     } );\n *     $( document.body ).append( multiselectInput.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs\n *\n * @class\n * @extends OO.ui.InputWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {Object[]} [options=[]] Array of menu options in the format `{ data: …, label: …, disabled: … }`\n */\nOO.ui.CheckboxMultiselectInputWidget = function OoUiCheckboxMultiselectInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties (must be done before parent constructor which calls #setDisabled)\n\tthis.checkboxMultiselectWidget = new OO.ui.CheckboxMultiselectWidget();\n\t// Must be set before the #setOptionsData call below\n\tthis.inputName = config.name;\n\t// Set up the options before parent constructor, which uses them to validate config.value.\n\t// Use this instead of setOptions() because this.$input is not set up yet\n\tthis.setOptionsData( config.options || [] );\n\n\t// Parent constructor\n\tOO.ui.CheckboxMultiselectInputWidget.parent.call( this, config );\n\n\t// Events\n\tthis.checkboxMultiselectWidget.connect( this, { select: 'onCheckboxesSelect' } );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-checkboxMultiselectInputWidget' )\n\t\t.append( this.checkboxMultiselectWidget.$element );\n\t// We don't use this.$input, but rather the CheckboxInputWidgets inside each option\n\tthis.$input.detach();\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.CheckboxMultiselectInputWidget, OO.ui.InputWidget );\n\n/* Static Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultiselectInputWidget.static.gatherPreInfuseState = function ( node, config ) {\n\tvar state = OO.ui.CheckboxMultiselectInputWidget.parent.static.gatherPreInfuseState( node, config );\n\tstate.value = $( node ).find( '.oo-ui-checkboxInputWidget .oo-ui-inputWidget-input:checked' )\n\t\t.toArray().map( function ( el ) { return el.value; } );\n\treturn state;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultiselectInputWidget.static.reusePreInfuseDOM = function ( node, config ) {\n\tconfig = OO.ui.CheckboxMultiselectInputWidget.parent.static.reusePreInfuseDOM( node, config );\n\t// Cannot reuse the `<input type=checkbox>` set\n\tdelete config.$input;\n\treturn config;\n};\n\n/* Methods */\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.getInputElement = function () {\n\t// Actually unused\n\treturn $( '<unused>' );\n};\n\n/**\n * Handles CheckboxMultiselectWidget select events.\n *\n * @private\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.onCheckboxesSelect = function () {\n\tthis.setValue( this.checkboxMultiselectWidget.findSelectedItemsData() );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.getValue = function () {\n\tvar value = this.$element.find( '.oo-ui-checkboxInputWidget .oo-ui-inputWidget-input:checked' )\n\t\t.toArray().map( function ( el ) { return el.value; } );\n\tif ( this.value !== value ) {\n\t\tthis.setValue( value );\n\t}\n\treturn this.value;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.setValue = function ( value ) {\n\tvalue = this.cleanUpValue( value );\n\tthis.checkboxMultiselectWidget.selectItemsByData( value );\n\tOO.ui.CheckboxMultiselectInputWidget.parent.prototype.setValue.call( this, value );\n\tif ( this.optionsDirty ) {\n\t\t// We reached this from the constructor or from #setOptions.\n\t\t// We have to update the <select> element.\n\t\tthis.updateOptionsInterface();\n\t}\n\treturn this;\n};\n\n/**\n * Clean up incoming value.\n *\n * @param {string[]} value Original value\n * @return {string[]} Cleaned up value\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.cleanUpValue = function ( value ) {\n\tvar i, singleValue,\n\t\tcleanValue = [];\n\tif ( !Array.isArray( value ) ) {\n\t\treturn cleanValue;\n\t}\n\tfor ( i = 0; i < value.length; i++ ) {\n\t\tsingleValue =\n\t\t\tOO.ui.CheckboxMultiselectInputWidget.parent.prototype.cleanUpValue.call( this, value[ i ] );\n\t\t// Remove options that we don't have here\n\t\tif ( !this.checkboxMultiselectWidget.findItemFromData( singleValue ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tcleanValue.push( singleValue );\n\t}\n\treturn cleanValue;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.setDisabled = function ( state ) {\n\tthis.checkboxMultiselectWidget.setDisabled( state );\n\tOO.ui.CheckboxMultiselectInputWidget.parent.prototype.setDisabled.call( this, state );\n\treturn this;\n};\n\n/**\n * Set the options available for this input.\n *\n * @param {Object[]} options Array of menu options in the format `{ data: …, label: …, disabled: … }`\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.setOptions = function ( options ) {\n\tvar value = this.getValue();\n\n\tthis.setOptionsData( options );\n\n\t// Re-set the value to update the visible interface (CheckboxMultiselectWidget).\n\t// This will also get rid of any stale options that we just removed.\n\tthis.setValue( value );\n\n\treturn this;\n};\n\n/**\n * Set the internal list of options, used e.g. by setValue() to see which options are allowed.\n *\n * This method may be called before the parent constructor, so various properties may not be\n * intialized yet.\n *\n * @param {Object[]} options Array of menu options in the format `{ data: …, label: … }`\n * @private\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.setOptionsData = function ( options ) {\n\tvar widget = this;\n\n\tthis.optionsDirty = true;\n\n\tthis.checkboxMultiselectWidget\n\t\t.clearItems()\n\t\t.addItems( options.map( function ( opt ) {\n\t\t\tvar optValue, item, optDisabled;\n\t\t\toptValue =\n\t\t\t\tOO.ui.CheckboxMultiselectInputWidget.parent.prototype.cleanUpValue.call( widget, opt.data );\n\t\t\toptDisabled = opt.disabled !== undefined ? opt.disabled : false;\n\t\t\titem = new OO.ui.CheckboxMultioptionWidget( {\n\t\t\t\tdata: optValue,\n\t\t\t\tlabel: opt.label !== undefined ? opt.label : optValue,\n\t\t\t\tdisabled: optDisabled\n\t\t\t} );\n\t\t\t// Set the 'name' and 'value' for form submission\n\t\t\titem.checkbox.$input.attr( 'name', widget.inputName );\n\t\t\titem.checkbox.setValue( optValue );\n\t\t\treturn item;\n\t\t} ) );\n};\n\n/**\n * Update the user-visible interface to match the internal list of options and value.\n *\n * This method must only be called after the parent constructor.\n *\n * @private\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.updateOptionsInterface = function () {\n\tvar defaultValue = this.defaultValue;\n\n\tthis.checkboxMultiselectWidget.getItems().forEach( function ( item ) {\n\t\t// Remember original selection state. This property can be later used to check whether\n\t\t// the selection state of the input has been changed since it was created.\n\t\tvar isDefault = defaultValue.indexOf( item.getData() ) !== -1;\n\t\titem.checkbox.defaultSelected = isDefault;\n\t\titem.checkbox.$input[ 0 ].defaultChecked = isDefault;\n\t} );\n\n\tthis.optionsDirty = false;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.CheckboxMultiselectInputWidget.prototype.focus = function () {\n\tthis.checkboxMultiselectWidget.focus();\n\treturn this;\n};\n","/**\n * TextInputWidgets, like HTML text inputs, can be configured with options that customize the\n * size of the field as well as its presentation. In addition, these widgets can be configured\n * with {@link OO.ui.mixin.IconElement icons}, {@link OO.ui.mixin.IndicatorElement indicators}, an optional\n * validation-pattern (used to determine if an input value is valid or not) and an input filter,\n * which modifies incoming values rather than validating them.\n * Please see the [OOUI documentation on MediaWiki] [1] for more information and examples.\n *\n * This widget can be used inside an HTML form, such as a OO.ui.FormLayout.\n *\n *     @example\n *     // A TextInputWidget.\n *     var textInput = new OO.ui.TextInputWidget( {\n *         value: 'Text input'\n *     } )\n *     $( document.body ).append( textInput.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs\n *\n * @class\n * @extends OO.ui.InputWidget\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.PendingElement\n * @mixins OO.ui.mixin.LabelElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string} [type='text'] The value of the HTML `type` attribute: 'text', 'password'\n *  'email', 'url' or 'number'.\n * @cfg {string} [placeholder] Placeholder text\n * @cfg {boolean} [autofocus=false] Use an HTML `autofocus` attribute to\n *  instruct the browser to focus this widget.\n * @cfg {boolean} [readOnly=false] Prevent changes to the value of the text input.\n * @cfg {number} [maxLength] Maximum number of characters allowed in the input.\n *\n *  For unfortunate historical reasons, this counts the number of UTF-16 code units rather than\n *  Unicode codepoints, which means that codepoints outside the Basic Multilingual Plane (e.g.\n *  many emojis) count as 2 characters each.\n * @cfg {string} [labelPosition='after'] The position of the inline label relative to that of\n *  the value or placeholder text: `'before'` or `'after'`\n * @cfg {boolean} [required=false] Mark the field as required with `true`. Implies `indicator: 'required'`.\n *  Note that `false` & setting `indicator: 'required' will result in no indicator shown.\n * @cfg {boolean} [autocomplete=true] Should the browser support autocomplete for this field\n * @cfg {boolean} [spellcheck] Should the browser support spellcheck for this field (`undefined` means\n *  leaving it up to the browser).\n * @cfg {RegExp|Function|string} [validate] Validation pattern: when string, a symbolic name of a\n *  pattern defined by the class: 'non-empty' (the value cannot be an empty string) or 'integer'\n *  (the value must contain only numbers); when RegExp, a regular expression that must match the\n *  value for it to be considered valid; when Function, a function receiving the value as parameter\n *  that must return true, or promise resolving to true, for it to be considered valid.\n */\nOO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( {\n\t\ttype: 'text',\n\t\tlabelPosition: 'after'\n\t}, config );\n\n\t// Parent constructor\n\tOO.ui.TextInputWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\tOO.ui.mixin.PendingElement.call( this, $.extend( {}, config, { $pending: this.$input } ) );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\n\t// Properties\n\tthis.type = this.getSaneType( config );\n\tthis.readOnly = false;\n\tthis.required = false;\n\tthis.validate = null;\n\tthis.scrollWidth = null;\n\n\tthis.setValidation( config.validate );\n\tthis.setLabelPosition( config.labelPosition );\n\n\t// Events\n\tthis.$input.on( {\n\t\tkeypress: this.onKeyPress.bind( this ),\n\t\tblur: this.onBlur.bind( this ),\n\t\tfocus: this.onFocus.bind( this )\n\t} );\n\tthis.$icon.on( 'mousedown', this.onIconMouseDown.bind( this ) );\n\tthis.$indicator.on( 'mousedown', this.onIndicatorMouseDown.bind( this ) );\n\tthis.on( 'labelChange', this.updatePosition.bind( this ) );\n\tthis.on( 'change', OO.ui.debounce( this.onDebouncedChange.bind( this ), 250 ) );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-textInputWidget oo-ui-textInputWidget-type-' + this.type )\n\t\t.append( this.$icon, this.$indicator );\n\tthis.setReadOnly( !!config.readOnly );\n\tthis.setRequired( !!config.required );\n\tif ( config.placeholder !== undefined ) {\n\t\tthis.$input.attr( 'placeholder', config.placeholder );\n\t}\n\tif ( config.maxLength !== undefined ) {\n\t\tthis.$input.attr( 'maxlength', config.maxLength );\n\t}\n\tif ( config.autofocus ) {\n\t\tthis.$input.attr( 'autofocus', 'autofocus' );\n\t}\n\tif ( config.autocomplete === false ) {\n\t\tthis.$input.attr( 'autocomplete', 'off' );\n\t\t// Turning off autocompletion also disables \"form caching\" when the user navigates to a\n\t\t// different page and then clicks \"Back\". Re-enable it when leaving. Borrowed from jQuery UI.\n\t\t$( window ).on( {\n\t\t\tbeforeunload: function () {\n\t\t\t\tthis.$input.removeAttr( 'autocomplete' );\n\t\t\t}.bind( this ),\n\t\t\tpageshow: function () {\n\t\t\t\t// Browsers don't seem to actually fire this event on \"Back\", they instead just reload the\n\t\t\t\t// whole page... it shouldn't hurt, though.\n\t\t\t\tthis.$input.attr( 'autocomplete', 'off' );\n\t\t\t}.bind( this )\n\t\t} );\n\t}\n\tif ( config.spellcheck !== undefined ) {\n\t\tthis.$input.attr( 'spellcheck', config.spellcheck ? 'true' : 'false' );\n\t}\n\tif ( this.label ) {\n\t\tthis.isWaitingToBeAttached = true;\n\t\tthis.installParentChangeDetector();\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.TextInputWidget, OO.ui.InputWidget );\nOO.mixinClass( OO.ui.TextInputWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.TextInputWidget, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.TextInputWidget, OO.ui.mixin.PendingElement );\nOO.mixinClass( OO.ui.TextInputWidget, OO.ui.mixin.LabelElement );\n\n/* Static Properties */\n\nOO.ui.TextInputWidget.static.validationPatterns = {\n\t'non-empty': /.+/,\n\tinteger: /^\\d+$/\n};\n\n/* Events */\n\n/**\n * An `enter` event is emitted when the user presses 'enter' inside the text box.\n *\n * @event enter\n */\n\n/* Methods */\n\n/**\n * Handle icon mouse down events.\n *\n * @private\n * @param {jQuery.Event} e Mouse down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.TextInputWidget.prototype.onIconMouseDown = function ( e ) {\n\tif ( e.which === OO.ui.MouseButtons.LEFT ) {\n\t\tthis.focus();\n\t\treturn false;\n\t}\n};\n\n/**\n * Handle indicator mouse down events.\n *\n * @private\n * @param {jQuery.Event} e Mouse down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.TextInputWidget.prototype.onIndicatorMouseDown = function ( e ) {\n\tif ( e.which === OO.ui.MouseButtons.LEFT ) {\n\t\tthis.focus();\n\t\treturn false;\n\t}\n};\n\n/**\n * Handle key press events.\n *\n * @private\n * @param {jQuery.Event} e Key press event\n * @fires enter If enter key is pressed\n */\nOO.ui.TextInputWidget.prototype.onKeyPress = function ( e ) {\n\tif ( e.which === OO.ui.Keys.ENTER ) {\n\t\tthis.emit( 'enter', e );\n\t}\n};\n\n/**\n * Handle blur events.\n *\n * @private\n * @param {jQuery.Event} e Blur event\n */\nOO.ui.TextInputWidget.prototype.onBlur = function () {\n\tthis.setValidityFlag();\n};\n\n/**\n * Handle focus events.\n *\n * @private\n * @param {jQuery.Event} e Focus event\n */\nOO.ui.TextInputWidget.prototype.onFocus = function () {\n\tif ( this.isWaitingToBeAttached ) {\n\t\t// If we've received focus, then we must be attached to the document, and if\n\t\t// isWaitingToBeAttached is still true, that means the handler never fired. Fire it now.\n\t\tthis.onElementAttach();\n\t}\n\tthis.setValidityFlag( true );\n};\n\n/**\n * Handle element attach events.\n *\n * @private\n * @param {jQuery.Event} e Element attach event\n */\nOO.ui.TextInputWidget.prototype.onElementAttach = function () {\n\tthis.isWaitingToBeAttached = false;\n\t// Any previously calculated size is now probably invalid if we reattached elsewhere\n\tthis.valCache = null;\n\tthis.positionLabel();\n};\n\n/**\n * Handle debounced change events.\n *\n * @param {string} value\n * @private\n */\nOO.ui.TextInputWidget.prototype.onDebouncedChange = function () {\n\tthis.setValidityFlag();\n};\n\n/**\n * Check if the input is {@link #readOnly read-only}.\n *\n * @return {boolean}\n */\nOO.ui.TextInputWidget.prototype.isReadOnly = function () {\n\treturn this.readOnly;\n};\n\n/**\n * Set the {@link #readOnly read-only} state of the input.\n *\n * @param {boolean} state Make input read-only\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.setReadOnly = function ( state ) {\n\tthis.readOnly = !!state;\n\tthis.$input.prop( 'readOnly', this.readOnly );\n\treturn this;\n};\n\n/**\n * Check if the input is {@link #required required}.\n *\n * @return {boolean}\n */\nOO.ui.TextInputWidget.prototype.isRequired = function () {\n\treturn this.required;\n};\n\n/**\n * Set the {@link #required required} state of the input.\n *\n * @param {boolean} state Make input required\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.setRequired = function ( state ) {\n\tthis.required = !!state;\n\tif ( this.required ) {\n\t\tthis.$input\n\t\t\t.prop( 'required', true )\n\t\t\t.attr( 'aria-required', 'true' );\n\t\tif ( this.getIndicator() === null ) {\n\t\t\tthis.setIndicator( 'required' );\n\t\t}\n\t} else {\n\t\tthis.$input\n\t\t\t.prop( 'required', false )\n\t\t\t.removeAttr( 'aria-required' );\n\t\tif ( this.getIndicator() === 'required' ) {\n\t\t\tthis.setIndicator( null );\n\t\t}\n\t}\n\treturn this;\n};\n\n/**\n * Support function for making #onElementAttach work across browsers.\n *\n * This whole function could be replaced with one line of code using the DOMNodeInsertedIntoDocument\n * event, but it's not supported by Firefox and allegedly deprecated, so we only use it as fallback.\n *\n * Due to MutationObserver performance woes, #onElementAttach is only somewhat reliably called the\n * first time that the element gets attached to the documented.\n */\nOO.ui.TextInputWidget.prototype.installParentChangeDetector = function () {\n\tvar mutationObserver, onRemove, topmostNode, fakeParentNode,\n\t\tMutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,\n\t\twidget = this;\n\n\tif ( MutationObserver ) {\n\t\t// The new way. If only it wasn't so ugly.\n\n\t\tif ( this.isElementAttached() ) {\n\t\t\t// Widget is attached already, do nothing. This breaks the functionality of this function when\n\t\t\t// the widget is detached and reattached. Alas, doing this correctly with MutationObserver\n\t\t\t// would require observation of the whole document, which would hurt performance of other,\n\t\t\t// more important code.\n\t\t\treturn;\n\t\t}\n\n\t\t// Find topmost node in the tree\n\t\ttopmostNode = this.$element[ 0 ];\n\t\twhile ( topmostNode.parentNode ) {\n\t\t\ttopmostNode = topmostNode.parentNode;\n\t\t}\n\n\t\t// We have no way to detect the $element being attached somewhere without observing the entire\n\t\t// DOM with subtree modifications, which would hurt performance. So we cheat: we hook to the\n\t\t// parent node of $element, and instead detect when $element is removed from it (and thus\n\t\t// probably attached somewhere else). If there is no parent, we create a \"fake\" one. If it\n\t\t// doesn't get attached, we end up back here and create the parent.\n\n\t\tmutationObserver = new MutationObserver( function ( mutations ) {\n\t\t\tvar i, j, removedNodes;\n\t\t\tfor ( i = 0; i < mutations.length; i++ ) {\n\t\t\t\tremovedNodes = mutations[ i ].removedNodes;\n\t\t\t\tfor ( j = 0; j < removedNodes.length; j++ ) {\n\t\t\t\t\tif ( removedNodes[ j ] === topmostNode ) {\n\t\t\t\t\t\tsetTimeout( onRemove, 0 );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tonRemove = function () {\n\t\t\t// If the node was attached somewhere else, report it\n\t\t\tif ( widget.isElementAttached() ) {\n\t\t\t\twidget.onElementAttach();\n\t\t\t}\n\t\t\tmutationObserver.disconnect();\n\t\t\twidget.installParentChangeDetector();\n\t\t};\n\n\t\t// Create a fake parent and observe it\n\t\tfakeParentNode = $( '<div>' ).append( topmostNode )[ 0 ];\n\t\tmutationObserver.observe( fakeParentNode, { childList: true } );\n\t} else {\n\t\t// Using the DOMNodeInsertedIntoDocument event is much nicer and less magical, and works for\n\t\t// detachment and reattachment, but it's not supported by Firefox and allegedly deprecated.\n\t\tthis.$element.on( 'DOMNodeInsertedIntoDocument', this.onElementAttach.bind( this ) );\n\t}\n};\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.TextInputWidget.prototype.getInputElement = function ( config ) {\n\tif ( this.getSaneType( config ) === 'number' ) {\n\t\treturn $( '<input>' )\n\t\t\t.attr( 'step', 'any' )\n\t\t\t.attr( 'type', 'number' );\n\t} else {\n\t\treturn $( '<input>' ).attr( 'type', this.getSaneType( config ) );\n\t}\n};\n\n/**\n * Get sanitized value for 'type' for given config.\n *\n * @param {Object} config Configuration options\n * @return {string|null}\n * @protected\n */\nOO.ui.TextInputWidget.prototype.getSaneType = function ( config ) {\n\tvar allowedTypes = [\n\t\t'text',\n\t\t'password',\n\t\t'email',\n\t\t'url',\n\t\t'number'\n\t];\n\treturn allowedTypes.indexOf( config.type ) !== -1 ? config.type : 'text';\n};\n\n/**\n * Focus the input and select a specified range within the text.\n *\n * @param {number} from Select from offset\n * @param {number} [to] Select to offset, defaults to from\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.selectRange = function ( from, to ) {\n\tvar isBackwards, start, end,\n\t\tinput = this.$input[ 0 ];\n\n\tto = to || from;\n\n\tisBackwards = to < from;\n\tstart = isBackwards ? to : from;\n\tend = isBackwards ? from : to;\n\n\tthis.focus();\n\n\ttry {\n\t\tinput.setSelectionRange( start, end, isBackwards ? 'backward' : 'forward' );\n\t} catch ( e ) {\n\t\t// IE throws an exception if you call setSelectionRange on a unattached DOM node.\n\t\t// Rather than expensively check if the input is attached every time, just check\n\t\t// if it was the cause of an error being thrown. If not, rethrow the error.\n\t\tif ( this.getElementDocument().body.contains( input ) ) {\n\t\t\tthrow e;\n\t\t}\n\t}\n\treturn this;\n};\n\n/**\n * Get an object describing the current selection range in a directional manner\n *\n * @return {Object} Object containing 'from' and 'to' offsets\n */\nOO.ui.TextInputWidget.prototype.getRange = function () {\n\tvar input = this.$input[ 0 ],\n\t\tstart = input.selectionStart,\n\t\tend = input.selectionEnd,\n\t\tisBackwards = input.selectionDirection === 'backward';\n\n\treturn {\n\t\tfrom: isBackwards ? end : start,\n\t\tto: isBackwards ? start : end\n\t};\n};\n\n/**\n * Get the length of the text input value.\n *\n * This could differ from the length of #getValue if the\n * value gets filtered\n *\n * @return {number} Input length\n */\nOO.ui.TextInputWidget.prototype.getInputLength = function () {\n\treturn this.$input[ 0 ].value.length;\n};\n\n/**\n * Focus the input and select the entire text.\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.select = function () {\n\treturn this.selectRange( 0, this.getInputLength() );\n};\n\n/**\n * Focus the input and move the cursor to the start.\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.moveCursorToStart = function () {\n\treturn this.selectRange( 0 );\n};\n\n/**\n * Focus the input and move the cursor to the end.\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.moveCursorToEnd = function () {\n\treturn this.selectRange( this.getInputLength() );\n};\n\n/**\n * Insert new content into the input.\n *\n * @param {string} content Content to be inserted\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.insertContent = function ( content ) {\n\tvar start, end,\n\t\trange = this.getRange(),\n\t\tvalue = this.getValue();\n\n\tstart = Math.min( range.from, range.to );\n\tend = Math.max( range.from, range.to );\n\n\tthis.setValue( value.slice( 0, start ) + content + value.slice( end ) );\n\tthis.selectRange( start + content.length );\n\treturn this;\n};\n\n/**\n * Insert new content either side of a selection.\n *\n * @param {string} pre Content to be inserted before the selection\n * @param {string} post Content to be inserted after the selection\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.encapsulateContent = function ( pre, post ) {\n\tvar start, end,\n\t\trange = this.getRange(),\n\t\toffset = pre.length;\n\n\tstart = Math.min( range.from, range.to );\n\tend = Math.max( range.from, range.to );\n\n\tthis.selectRange( start ).insertContent( pre );\n\tthis.selectRange( offset + end ).insertContent( post );\n\n\tthis.selectRange( offset + start, offset + end );\n\treturn this;\n};\n\n/**\n * Set the validation pattern.\n *\n * The validation pattern is either a regular expression, a function, or the symbolic name of a\n * pattern defined by the class: 'non-empty' (the value cannot be an empty string) or 'integer' (the\n * value must contain only numbers).\n *\n * @param {RegExp|Function|string|null} validate Regular expression, function, or the symbolic name\n *  of a pattern (either ‘integer’ or ‘non-empty’) defined by the class.\n */\nOO.ui.TextInputWidget.prototype.setValidation = function ( validate ) {\n\tif ( validate instanceof RegExp || validate instanceof Function ) {\n\t\tthis.validate = validate;\n\t} else {\n\t\tthis.validate = this.constructor.static.validationPatterns[ validate ] || /.*/;\n\t}\n};\n\n/**\n * Sets the 'invalid' flag appropriately.\n *\n * @param {boolean} [isValid] Optionally override validation result\n */\nOO.ui.TextInputWidget.prototype.setValidityFlag = function ( isValid ) {\n\tvar widget = this,\n\t\tsetFlag = function ( valid ) {\n\t\t\tif ( !valid ) {\n\t\t\t\twidget.$input.attr( 'aria-invalid', 'true' );\n\t\t\t} else {\n\t\t\t\twidget.$input.removeAttr( 'aria-invalid' );\n\t\t\t}\n\t\t\twidget.setFlags( { invalid: !valid } );\n\t\t};\n\n\tif ( isValid !== undefined ) {\n\t\tsetFlag( isValid );\n\t} else {\n\t\tthis.getValidity().then( function () {\n\t\t\tsetFlag( true );\n\t\t}, function () {\n\t\t\tsetFlag( false );\n\t\t} );\n\t}\n};\n\n/**\n * Get the validity of current value.\n *\n * This method returns a promise that resolves if the value is valid and rejects if\n * it isn't. Uses the {@link #validate validation pattern}  to check for validity.\n *\n * @return {jQuery.Promise} A promise that resolves if the value is valid, rejects if not.\n */\nOO.ui.TextInputWidget.prototype.getValidity = function () {\n\tvar result;\n\n\tfunction rejectOrResolve( valid ) {\n\t\tif ( valid ) {\n\t\t\treturn $.Deferred().resolve().promise();\n\t\t} else {\n\t\t\treturn $.Deferred().reject().promise();\n\t\t}\n\t}\n\n\t// Check browser validity and reject if it is invalid\n\tif (\n\t\tthis.$input[ 0 ].checkValidity !== undefined &&\n\t\tthis.$input[ 0 ].checkValidity() === false\n\t) {\n\t\treturn rejectOrResolve( false );\n\t}\n\n\t// Run our checks if the browser thinks the field is valid\n\tif ( this.validate instanceof Function ) {\n\t\tresult = this.validate( this.getValue() );\n\t\tif ( result && typeof result.promise === 'function' ) {\n\t\t\treturn result.promise().then( function ( valid ) {\n\t\t\t\treturn rejectOrResolve( valid );\n\t\t\t} );\n\t\t} else {\n\t\t\treturn rejectOrResolve( result );\n\t\t}\n\t} else {\n\t\treturn rejectOrResolve( this.getValue().match( this.validate ) );\n\t}\n};\n\n/**\n * Set the position of the inline label relative to that of the value: `‘before’` or `‘after’`.\n *\n * @param {string} labelPosition Label position, 'before' or 'after'\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.setLabelPosition = function ( labelPosition ) {\n\tthis.labelPosition = labelPosition;\n\tif ( this.label ) {\n\t\t// If there is no label and we only change the position, #updatePosition is a no-op,\n\t\t// but it takes really a lot of work to do nothing.\n\t\tthis.updatePosition();\n\t}\n\treturn this;\n};\n\n/**\n * Update the position of the inline label.\n *\n * This method is called by #setLabelPosition, and can also be called on its own if\n * something causes the label to be mispositioned.\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.updatePosition = function () {\n\tvar after = this.labelPosition === 'after';\n\n\tthis.$element\n\t\t.toggleClass( 'oo-ui-textInputWidget-labelPosition-after', !!this.label && after )\n\t\t.toggleClass( 'oo-ui-textInputWidget-labelPosition-before', !!this.label && !after );\n\n\tthis.valCache = null;\n\tthis.scrollWidth = null;\n\tthis.positionLabel();\n\n\treturn this;\n};\n\n/**\n * Position the label by setting the correct padding on the input.\n *\n * @private\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TextInputWidget.prototype.positionLabel = function () {\n\tvar after, rtl, property, newCss;\n\n\tif ( this.isWaitingToBeAttached ) {\n\t\t// #onElementAttach will be called soon, which calls this method\n\t\treturn this;\n\t}\n\n\tnewCss = {\n\t\t'padding-right': '',\n\t\t'padding-left': ''\n\t};\n\n\tif ( this.label ) {\n\t\tthis.$element.append( this.$label );\n\t} else {\n\t\tthis.$label.detach();\n\t\t// Clear old values if present\n\t\tthis.$input.css( newCss );\n\t\treturn;\n\t}\n\n\tafter = this.labelPosition === 'after';\n\trtl = this.$element.css( 'direction' ) === 'rtl';\n\tproperty = after === rtl ? 'padding-left' : 'padding-right';\n\n\tnewCss[ property ] = this.$label.outerWidth( true ) + ( after ? this.scrollWidth : 0 );\n\t// We have to clear the padding on the other side, in case the element direction changed\n\tthis.$input.css( newCss );\n\n\treturn this;\n};\n","/**\n * SearchInputWidgets are TextInputWidgets with `type=\"search\"` assigned and feature a\n * {@link OO.ui.mixin.IconElement search icon} by default.\n * Please see the [OOUI documentation on MediaWiki] [1] for more information and examples.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs#SearchInputWidget\n *\n * @class\n * @extends OO.ui.TextInputWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.SearchInputWidget = function OoUiSearchInputWidget( config ) {\n\tconfig = $.extend( {\n\t\ticon: 'search'\n\t}, config );\n\n\t// Parent constructor\n\tOO.ui.SearchInputWidget.parent.call( this, config );\n\n\t// Events\n\tthis.connect( this, {\n\t\tchange: 'onChange'\n\t} );\n\n\t// Initialization\n\tthis.updateSearchIndicator();\n\tthis.connect( this, {\n\t\tdisable: 'onDisable'\n\t} );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.SearchInputWidget, OO.ui.TextInputWidget );\n\n/* Methods */\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.SearchInputWidget.prototype.getSaneType = function () {\n\treturn 'search';\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.SearchInputWidget.prototype.onIndicatorMouseDown = function ( e ) {\n\tif ( e.which === OO.ui.MouseButtons.LEFT ) {\n\t\t// Clear the text field\n\t\tthis.setValue( '' );\n\t\tthis.focus();\n\t\treturn false;\n\t}\n};\n\n/**\n * Update the 'clear' indicator displayed on type: 'search' text\n * fields, hiding it when the field is already empty or when it's not\n * editable.\n */\nOO.ui.SearchInputWidget.prototype.updateSearchIndicator = function () {\n\tif ( this.getValue() === '' || this.isDisabled() || this.isReadOnly() ) {\n\t\tthis.setIndicator( null );\n\t} else {\n\t\tthis.setIndicator( 'clear' );\n\t}\n};\n\n/**\n * Handle change events.\n *\n * @private\n */\nOO.ui.SearchInputWidget.prototype.onChange = function () {\n\tthis.updateSearchIndicator();\n};\n\n/**\n * Handle disable events.\n *\n * @param {boolean} disabled Element is disabled\n * @private\n */\nOO.ui.SearchInputWidget.prototype.onDisable = function () {\n\tthis.updateSearchIndicator();\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.SearchInputWidget.prototype.setReadOnly = function ( state ) {\n\tOO.ui.SearchInputWidget.parent.prototype.setReadOnly.call( this, state );\n\tthis.updateSearchIndicator();\n\treturn this;\n};\n","/**\n * MultilineTextInputWidgets, like HTML textareas, are featuring customization options to\n * configure number of rows visible. In addition, these widgets can be autosized to fit user\n * inputs and can show {@link OO.ui.mixin.IconElement icons} and\n * {@link OO.ui.mixin.IndicatorElement indicators}.\n * Please see the [OOUI documentation on MediaWiki] [1] for more information and examples.\n *\n * This widget can be used inside an HTML form, such as a OO.ui.FormLayout.\n *\n *     @example\n *     // A MultilineTextInputWidget.\n *     var multilineTextInput = new OO.ui.MultilineTextInputWidget( {\n *         value: 'Text input on multiple lines'\n *     } )\n *     $( 'body' ).append( multilineTextInput.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs#MultilineTextInputWidget\n *\n * @class\n * @extends OO.ui.TextInputWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {number} [rows] Number of visible lines in textarea. If used with `autosize`,\n *  specifies minimum number of rows to display.\n * @cfg {boolean} [autosize=false] Automatically resize the text input to fit its content.\n *  Use the #maxRows config to specify a maximum number of displayed rows.\n * @cfg {number} [maxRows] Maximum number of rows to display when #autosize is set to true.\n *  Defaults to the maximum of `10` and `2 * rows`, or `10` if `rows` isn't provided.\n */\nOO.ui.MultilineTextInputWidget = function OoUiMultilineTextInputWidget( config ) {\n\tconfig = $.extend( {\n\t\ttype: 'text'\n\t}, config );\n\t// Parent constructor\n\tOO.ui.MultilineTextInputWidget.parent.call( this, config );\n\n\t// Properties\n\tthis.autosize = !!config.autosize;\n\tthis.styleHeight = null;\n\tthis.minRows = config.rows !== undefined ? config.rows : '';\n\tthis.maxRows = config.maxRows || Math.max( 2 * ( this.minRows || 0 ), 10 );\n\n\t// Clone for resizing\n\tif ( this.autosize ) {\n\t\tthis.$clone = this.$input\n\t\t\t.clone()\n\t\t\t.removeAttr( 'id' )\n\t\t\t.removeAttr( 'name' )\n\t\t\t.insertAfter( this.$input )\n\t\t\t.attr( 'aria-hidden', 'true' )\n\t\t\t.addClass( 'oo-ui-element-hidden' );\n\t}\n\n\t// Events\n\tthis.connect( this, {\n\t\tchange: 'onChange'\n\t} );\n\n\t// Initialization\n\tif ( config.rows ) {\n\t\tthis.$input.attr( 'rows', config.rows );\n\t}\n\tif ( this.autosize ) {\n\t\tthis.$input.addClass( 'oo-ui-textInputWidget-autosized' );\n\t\tthis.isWaitingToBeAttached = true;\n\t\tthis.installParentChangeDetector();\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MultilineTextInputWidget, OO.ui.TextInputWidget );\n\n/* Static Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.MultilineTextInputWidget.static.gatherPreInfuseState = function ( node, config ) {\n\tvar state = OO.ui.MultilineTextInputWidget.parent.static.gatherPreInfuseState( node, config );\n\tstate.scrollTop = config.$input.scrollTop();\n\treturn state;\n};\n\n/* Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.MultilineTextInputWidget.prototype.onElementAttach = function () {\n\tOO.ui.MultilineTextInputWidget.parent.prototype.onElementAttach.call( this );\n\tthis.adjustSize();\n};\n\n/**\n * Handle change events.\n *\n * @private\n */\nOO.ui.MultilineTextInputWidget.prototype.onChange = function () {\n\tthis.adjustSize();\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MultilineTextInputWidget.prototype.updatePosition = function () {\n\tOO.ui.MultilineTextInputWidget.parent.prototype.updatePosition.call( this );\n\tthis.adjustSize();\n};\n\n/**\n * @inheritdoc\n *\n * Modify to emit 'enter' on Ctrl/Meta+Enter, instead of plain Enter\n */\nOO.ui.MultilineTextInputWidget.prototype.onKeyPress = function ( e ) {\n\tif (\n\t\t( e.which === OO.ui.Keys.ENTER && ( e.ctrlKey || e.metaKey ) ) ||\n\t\t// Some platforms emit keycode 10 for ctrl+enter in a textarea\n\t\te.which === 10\n\t) {\n\t\tthis.emit( 'enter', e );\n\t}\n};\n\n/**\n * Automatically adjust the size of the text input.\n *\n * This only affects multiline inputs that are {@link #autosize autosized}.\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n * @fires resize\n */\nOO.ui.MultilineTextInputWidget.prototype.adjustSize = function () {\n\tvar scrollHeight, innerHeight, outerHeight, maxInnerHeight, measurementError,\n\t\tidealHeight, newHeight, scrollWidth, property;\n\n\tif ( this.$input.val() !== this.valCache ) {\n\t\tif ( this.autosize ) {\n\t\t\tthis.$clone\n\t\t\t\t.val( this.$input.val() )\n\t\t\t\t.attr( 'rows', this.minRows )\n\t\t\t\t// Set inline height property to 0 to measure scroll height\n\t\t\t\t.css( 'height', 0 );\n\n\t\t\tthis.$clone.removeClass( 'oo-ui-element-hidden' );\n\n\t\t\tthis.valCache = this.$input.val();\n\n\t\t\tscrollHeight = this.$clone[ 0 ].scrollHeight;\n\n\t\t\t// Remove inline height property to measure natural heights\n\t\t\tthis.$clone.css( 'height', '' );\n\t\t\tinnerHeight = this.$clone.innerHeight();\n\t\t\touterHeight = this.$clone.outerHeight();\n\n\t\t\t// Measure max rows height\n\t\t\tthis.$clone\n\t\t\t\t.attr( 'rows', this.maxRows )\n\t\t\t\t.css( 'height', 'auto' )\n\t\t\t\t.val( '' );\n\t\t\tmaxInnerHeight = this.$clone.innerHeight();\n\n\t\t\t// Difference between reported innerHeight and scrollHeight with no scrollbars present.\n\t\t\t// This is sometimes non-zero on Blink-based browsers, depending on zoom level.\n\t\t\tmeasurementError = maxInnerHeight - this.$clone[ 0 ].scrollHeight;\n\t\t\tidealHeight = Math.min( maxInnerHeight, scrollHeight + measurementError );\n\n\t\t\tthis.$clone.addClass( 'oo-ui-element-hidden' );\n\n\t\t\t// Only apply inline height when expansion beyond natural height is needed\n\t\t\t// Use the difference between the inner and outer height as a buffer\n\t\t\tnewHeight = idealHeight > innerHeight ? idealHeight + ( outerHeight - innerHeight ) : '';\n\t\t\tif ( newHeight !== this.styleHeight ) {\n\t\t\t\tthis.$input.css( 'height', newHeight );\n\t\t\t\tthis.styleHeight = newHeight;\n\t\t\t\tthis.emit( 'resize' );\n\t\t\t}\n\t\t}\n\t\tscrollWidth = this.$input[ 0 ].offsetWidth - this.$input[ 0 ].clientWidth;\n\t\tif ( scrollWidth !== this.scrollWidth ) {\n\t\t\tproperty = this.$element.css( 'direction' ) === 'rtl' ? 'left' : 'right';\n\t\t\t// Reset\n\t\t\tthis.$label.css( { right: '', left: '' } );\n\t\t\tthis.$indicator.css( { right: '', left: '' } );\n\n\t\t\tif ( scrollWidth ) {\n\t\t\t\tthis.$indicator.css( property, scrollWidth );\n\t\t\t\tif ( this.labelPosition === 'after' ) {\n\t\t\t\t\tthis.$label.css( property, scrollWidth );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.scrollWidth = scrollWidth;\n\t\t\tthis.positionLabel();\n\t\t}\n\t}\n\treturn this;\n};\n\n/**\n * @inheritdoc\n * @protected\n */\nOO.ui.MultilineTextInputWidget.prototype.getInputElement = function () {\n\treturn $( '<textarea>' );\n};\n\n/**\n * Check if the input automatically adjusts its size.\n *\n * @return {boolean}\n */\nOO.ui.MultilineTextInputWidget.prototype.isAutosizing = function () {\n\treturn !!this.autosize;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MultilineTextInputWidget.prototype.restorePreInfuseState = function ( state ) {\n\tOO.ui.MultilineTextInputWidget.parent.prototype.restorePreInfuseState.call( this, state );\n\tif ( state.scrollTop !== undefined ) {\n\t\tthis.$input.scrollTop( state.scrollTop );\n\t}\n};\n","/**\n * ComboBoxInputWidgets combine a {@link OO.ui.TextInputWidget text input} (where a value\n * can be entered manually) and a {@link OO.ui.MenuSelectWidget menu of options} (from which\n * a value can be chosen instead). Users can choose options from the combo box in one of two ways:\n *\n * - by typing a value in the text input field. If the value exactly matches the value of a menu\n *   option, that option will appear to be selected.\n * - by choosing a value from the menu. The value of the chosen option will then appear in the text\n *   input field.\n *\n * After the user chooses an option, its `data` will be used as a new value for the widget.\n * A `label` also can be specified for each option: if given, it will be shown instead of the\n * `data` in the dropdown menu.\n *\n * This widget can be used inside an HTML form, such as a OO.ui.FormLayout.\n *\n * For more information about menus and options, please see the [OOUI documentation on MediaWiki][1].\n *\n *     @example\n *     // A ComboBoxInputWidget.\n *     var comboBox = new OO.ui.ComboBoxInputWidget( {\n *         value: 'Option 1',\n *         options: [\n *             { data: 'Option 1' },\n *             { data: 'Option 2' },\n *             { data: 'Option 3' }\n *         ]\n *     } );\n *     $( document.body ).append( comboBox.$element );\n *\n *     @example\n *     // Example: A ComboBoxInputWidget with additional option labels.\n *     var comboBox = new OO.ui.ComboBoxInputWidget( {\n *         value: 'Option 1',\n *         options: [\n *             {\n *                 data: 'Option 1',\n *                 label: 'Option One'\n *             },\n *             {\n *                 data: 'Option 2',\n *                 label: 'Option Two'\n *             },\n *             {\n *                 data: 'Option 3',\n *                 label: 'Option Three'\n *             }\n *         ]\n *     } );\n *     $( document.body ).append( comboBox.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options#Menu_selects_and_options\n *\n * @class\n * @extends OO.ui.TextInputWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {Object[]} [options=[]] Array of menu options in the format `{ data: …, label: … }`\n * @cfg {Object} [menu] Configuration options to pass to the {@link OO.ui.MenuSelectWidget menu select widget}.\n * @cfg {jQuery} [$overlay] Render the menu into a separate layer. This configuration is useful in cases where\n *  the expanded menu is larger than its containing `<div>`. The specified overlay layer is usually on top of the\n *  containing `<div>` and has a larger area. By default, the menu uses relative positioning.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n */\nOO.ui.ComboBoxInputWidget = function OoUiComboBoxInputWidget( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( {\n\t\tautocomplete: false\n\t}, config );\n\n\t// ComboBoxInputWidget shouldn't support `multiline`\n\tconfig.multiline = false;\n\n\t// See InputWidget#reusePreInfuseDOM about `config.$input`\n\tif ( config.$input ) {\n\t\tconfig.$input.removeAttr( 'list' );\n\t}\n\n\t// Parent constructor\n\tOO.ui.ComboBoxInputWidget.parent.call( this, config );\n\n\t// Properties\n\tthis.$overlay = ( config.$overlay === true ? OO.ui.getDefaultOverlay() : config.$overlay ) || this.$element;\n\tthis.dropdownButton = new OO.ui.ButtonWidget( {\n\t\tclasses: [ 'oo-ui-comboBoxInputWidget-dropdownButton' ],\n\t\tlabel: OO.ui.msg( 'ooui-combobox-button-label' ),\n\t\tindicator: 'down',\n\t\tinvisibleLabel: true,\n\t\tdisabled: this.disabled\n\t} );\n\tthis.menu = new OO.ui.MenuSelectWidget( $.extend(\n\t\t{\n\t\t\twidget: this,\n\t\t\tinput: this,\n\t\t\t$floatableContainer: this.$element,\n\t\t\tdisabled: this.isDisabled()\n\t\t},\n\t\tconfig.menu\n\t) );\n\n\t// Events\n\tthis.connect( this, {\n\t\tchange: 'onInputChange',\n\t\tenter: 'onInputEnter'\n\t} );\n\tthis.dropdownButton.connect( this, {\n\t\tclick: 'onDropdownButtonClick'\n\t} );\n\tthis.menu.connect( this, {\n\t\tchoose: 'onMenuChoose',\n\t\tadd: 'onMenuItemsChange',\n\t\tremove: 'onMenuItemsChange',\n\t\ttoggle: 'onMenuToggle'\n\t} );\n\n\t// Initialization\n\tthis.$input.attr( {\n\t\trole: 'combobox',\n\t\t'aria-owns': this.menu.getElementId(),\n\t\t'aria-autocomplete': 'list'\n\t} );\n\tthis.dropdownButton.$button.attr( {\n\t\t'aria-controls': this.menu.getElementId()\n\t} );\n\t// Do not override options set via config.menu.items\n\tif ( config.options !== undefined ) {\n\t\tthis.setOptions( config.options );\n\t}\n\tthis.$field = $( '<div>' )\n\t\t.addClass( 'oo-ui-comboBoxInputWidget-field' )\n\t\t.append( this.$input, this.dropdownButton.$element );\n\tthis.$element\n\t\t.addClass( 'oo-ui-comboBoxInputWidget' )\n\t\t.append( this.$field );\n\tthis.$overlay.append( this.menu.$element );\n\tthis.onMenuItemsChange();\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ComboBoxInputWidget, OO.ui.TextInputWidget );\n\n/* Methods */\n\n/**\n * Get the combobox's menu.\n *\n * @return {OO.ui.MenuSelectWidget} Menu widget\n */\nOO.ui.ComboBoxInputWidget.prototype.getMenu = function () {\n\treturn this.menu;\n};\n\n/**\n * Get the combobox's text input widget.\n *\n * @return {OO.ui.TextInputWidget} Text input widget\n */\nOO.ui.ComboBoxInputWidget.prototype.getInput = function () {\n\treturn this;\n};\n\n/**\n * Handle input change events.\n *\n * @private\n * @param {string} value New value\n */\nOO.ui.ComboBoxInputWidget.prototype.onInputChange = function ( value ) {\n\tvar match = this.menu.findItemFromData( value );\n\n\tthis.menu.selectItem( match );\n\tif ( this.menu.findHighlightedItem() ) {\n\t\tthis.menu.highlightItem( match );\n\t}\n\n\tif ( !this.isDisabled() ) {\n\t\tthis.menu.toggle( true );\n\t}\n};\n\n/**\n * Handle input enter events.\n *\n * @private\n */\nOO.ui.ComboBoxInputWidget.prototype.onInputEnter = function () {\n\tif ( !this.isDisabled() ) {\n\t\tthis.menu.toggle( false );\n\t}\n};\n\n/**\n * Handle button click events.\n *\n * @private\n */\nOO.ui.ComboBoxInputWidget.prototype.onDropdownButtonClick = function () {\n\tthis.menu.toggle();\n\tthis.focus();\n};\n\n/**\n * Handle menu choose events.\n *\n * @private\n * @param {OO.ui.OptionWidget} item Chosen item\n */\nOO.ui.ComboBoxInputWidget.prototype.onMenuChoose = function ( item ) {\n\tthis.setValue( item.getData() );\n};\n\n/**\n * Handle menu item change events.\n *\n * @private\n */\nOO.ui.ComboBoxInputWidget.prototype.onMenuItemsChange = function () {\n\tvar match = this.menu.findItemFromData( this.getValue() );\n\tthis.menu.selectItem( match );\n\tif ( this.menu.findHighlightedItem() ) {\n\t\tthis.menu.highlightItem( match );\n\t}\n\tthis.$element.toggleClass( 'oo-ui-comboBoxInputWidget-empty', this.menu.isEmpty() );\n};\n\n/**\n * Handle menu toggle events.\n *\n * @private\n * @param {boolean} isVisible Open state of the menu\n */\nOO.ui.ComboBoxInputWidget.prototype.onMenuToggle = function ( isVisible ) {\n\tthis.$element.toggleClass( 'oo-ui-comboBoxInputWidget-open', isVisible );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ComboBoxInputWidget.prototype.setDisabled = function ( disabled ) {\n\t// Parent method\n\tOO.ui.ComboBoxInputWidget.parent.prototype.setDisabled.call( this, disabled );\n\n\tif ( this.dropdownButton ) {\n\t\tthis.dropdownButton.setDisabled( this.isDisabled() );\n\t}\n\tif ( this.menu ) {\n\t\tthis.menu.setDisabled( this.isDisabled() );\n\t}\n\n\treturn this;\n};\n\n/**\n * Set the options available for this input.\n *\n * @param {Object[]} options Array of menu options in the format `{ data: …, label: … }`\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ComboBoxInputWidget.prototype.setOptions = function ( options ) {\n\tthis.getMenu()\n\t\t.clearItems()\n\t\t.addItems( options.map( function ( opt ) {\n\t\t\treturn new OO.ui.MenuOptionWidget( {\n\t\t\t\tdata: opt.data,\n\t\t\t\tlabel: opt.label !== undefined ? opt.label : opt.data\n\t\t\t} );\n\t\t} ) );\n\n\treturn this;\n};\n","/**\n * FieldLayouts are used with OO.ui.FieldsetLayout. Each FieldLayout requires a field-widget,\n * which is a widget that is specified by reference before any optional configuration settings.\n *\n * Field layouts can be configured with help text and/or labels. Labels are aligned in one of four ways:\n *\n * - **left**: The label is placed before the field-widget and aligned with the left margin.\n *   A left-alignment is used for forms with many fields.\n * - **right**: The label is placed before the field-widget and aligned to the right margin.\n *   A right-alignment is used for long but familiar forms which users tab through,\n *   verifying the current field with a quick glance at the label.\n * - **top**: The label is placed above the field-widget. A top-alignment is used for brief forms\n *   that users fill out from top to bottom.\n * - **inline**: The label is placed after the field-widget and aligned to the left.\n *   An inline-alignment is best used with checkboxes or radio buttons.\n *\n * Help text can either be:\n *\n * - accessed via a help icon that appears in the upper right corner of the rendered field layout, or\n * - shown as a subtle explanation below the label.\n *\n * If the help text is brief, or is essential to always expose it, set `helpInline` to `true`. If it\n * is long or not essential, leave `helpInline` to its default, `false`.\n *\n * Please see the [OOUI documentation on MediaWiki] [1] for examples and more information.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Layouts/Fields_and_Fieldsets\n *\n * @class\n * @extends OO.ui.Layout\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.TitledElement\n *\n * @constructor\n * @param {OO.ui.Widget} fieldWidget Field widget\n * @param {Object} [config] Configuration options\n * @cfg {string} [align='left'] Alignment of the label: 'left', 'right', 'top'\n *  or 'inline'\n * @cfg {Array} [errors] Error messages about the widget, which will be\n *  displayed below the widget.\n *  The array may contain strings or OO.ui.HtmlSnippet instances.\n * @cfg {Array} [notices] Notices about the widget, which will be displayed\n *  below the widget.\n *  The array may contain strings or OO.ui.HtmlSnippet instances.\n *  These are more visible than `help` messages when `helpInline` is set, and so\n *  might be good for transient messages.\n * @cfg {string|OO.ui.HtmlSnippet} [help] Help text. When help text is specified\n *  and `helpInline` is `false`, a \"help\" icon will appear in the upper-right\n *  corner of the rendered field; clicking it will display the text in a popup.\n *  If `helpInline` is `true`, then a subtle description will be shown after the\n *  label.\n * @cfg {boolean} [helpInline=false] Whether or not the help should be inline,\n *  or shown when the \"help\" icon is clicked.\n * @cfg {jQuery} [$overlay] Passed to OO.ui.PopupButtonWidget for help popup, if\n * `help` is given.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n *\n * @throws {Error} An error is thrown if no widget is specified\n */\nOO.ui.FieldLayout = function OoUiFieldLayout( fieldWidget, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( fieldWidget ) && config === undefined ) {\n\t\tconfig = fieldWidget;\n\t\tfieldWidget = config.fieldWidget;\n\t}\n\n\t// Make sure we have required constructor arguments\n\tif ( fieldWidget === undefined ) {\n\t\tthrow new Error( 'Widget not found' );\n\t}\n\n\t// Configuration initialization\n\tconfig = $.extend( { align: 'left', helpInline: false }, config );\n\n\t// Parent constructor\n\tOO.ui.FieldLayout.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.LabelElement.call( this, $.extend( {}, config, {\n\t\t$label: $( '<label>' )\n\t} ) );\n\tOO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$label } ) );\n\n\t// Properties\n\tthis.fieldWidget = fieldWidget;\n\tthis.errors = [];\n\tthis.notices = [];\n\tthis.$field = this.isFieldInline() ? $( '<span>' ) : $( '<div>' );\n\tthis.$messages = $( '<ul>' );\n\tthis.$header = $( '<span>' );\n\tthis.$body = $( '<div>' );\n\tthis.align = null;\n\tthis.helpInline = config.helpInline;\n\n\t// Events\n\tthis.fieldWidget.connect( this, { disable: 'onFieldDisable' } );\n\n\t// Initialization\n\tthis.$help = config.help ?\n\t\tthis.createHelpElement( config.help, config.$overlay ) :\n\t\t$( [] );\n\tif ( this.fieldWidget.getInputId() ) {\n\t\tthis.$label.attr( 'for', this.fieldWidget.getInputId() );\n\t\tif ( this.helpInline ) {\n\t\t\tthis.$help.attr( 'for', this.fieldWidget.getInputId() );\n\t\t}\n\t} else {\n\t\tthis.$label.on( 'click', function () {\n\t\t\tthis.fieldWidget.simulateLabelClick();\n\t\t}.bind( this ) );\n\t\tif ( this.helpInline ) {\n\t\t\tthis.$help.on( 'click', function () {\n\t\t\t\tthis.fieldWidget.simulateLabelClick();\n\t\t\t}.bind( this ) );\n\t\t}\n\t}\n\tthis.$element\n\t\t.addClass( 'oo-ui-fieldLayout' )\n\t\t.toggleClass( 'oo-ui-fieldLayout-disabled', this.fieldWidget.isDisabled() )\n\t\t.append( this.$body );\n\tthis.$body.addClass( 'oo-ui-fieldLayout-body' );\n\tthis.$header.addClass( 'oo-ui-fieldLayout-header' );\n\tthis.$messages.addClass( 'oo-ui-fieldLayout-messages' );\n\tthis.$field\n\t\t.addClass( 'oo-ui-fieldLayout-field' )\n\t\t.append( this.fieldWidget.$element );\n\n\tthis.setErrors( config.errors || [] );\n\tthis.setNotices( config.notices || [] );\n\tthis.setAlignment( config.align );\n\t// Call this again to take into account the widget's accessKey\n\tthis.updateTitle();\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.FieldLayout, OO.ui.Layout );\nOO.mixinClass( OO.ui.FieldLayout, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.FieldLayout, OO.ui.mixin.TitledElement );\n\n/* Methods */\n\n/**\n * Handle field disable events.\n *\n * @private\n * @param {boolean} value Field is disabled\n */\nOO.ui.FieldLayout.prototype.onFieldDisable = function ( value ) {\n\tthis.$element.toggleClass( 'oo-ui-fieldLayout-disabled', value );\n};\n\n/**\n * Get the widget contained by the field.\n *\n * @return {OO.ui.Widget} Field widget\n */\nOO.ui.FieldLayout.prototype.getField = function () {\n\treturn this.fieldWidget;\n};\n\n/**\n * Return `true` if the given field widget can be used with `'inline'` alignment (see\n * #setAlignment). Return `false` if it can't or if this can't be determined.\n *\n * @return {boolean}\n */\nOO.ui.FieldLayout.prototype.isFieldInline = function () {\n\t// This is very simplistic, but should be good enough.\n\treturn this.getField().$element.prop( 'tagName' ).toLowerCase() === 'span';\n};\n\n/**\n * @protected\n * @param {string} kind 'error' or 'notice'\n * @param {string|OO.ui.HtmlSnippet} text\n * @return {jQuery}\n */\nOO.ui.FieldLayout.prototype.makeMessage = function ( kind, text ) {\n\tvar $listItem, $icon, message;\n\t$listItem = $( '<li>' );\n\tif ( kind === 'error' ) {\n\t\t$icon = new OO.ui.IconWidget( { icon: 'alert', flags: [ 'warning' ] } ).$element;\n\t\t$listItem.attr( 'role', 'alert' );\n\t} else if ( kind === 'notice' ) {\n\t\t$icon = new OO.ui.IconWidget( { icon: 'notice' } ).$element;\n\t} else {\n\t\t$icon = '';\n\t}\n\tmessage = new OO.ui.LabelWidget( { label: text } );\n\t$listItem\n\t\t.append( $icon, message.$element )\n\t\t.addClass( 'oo-ui-fieldLayout-messages-' + kind );\n\treturn $listItem;\n};\n\n/**\n * Set the field alignment mode.\n *\n * @private\n * @param {string} value Alignment mode, either 'left', 'right', 'top' or 'inline'\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.FieldLayout.prototype.setAlignment = function ( value ) {\n\tif ( value !== this.align ) {\n\t\t// Default to 'left'\n\t\tif ( [ 'left', 'right', 'top', 'inline' ].indexOf( value ) === -1 ) {\n\t\t\tvalue = 'left';\n\t\t}\n\t\t// Validate\n\t\tif ( value === 'inline' && !this.isFieldInline() ) {\n\t\t\tvalue = 'top';\n\t\t}\n\t\t// Reorder elements\n\n\t\tif ( this.helpInline ) {\n\t\t\tif ( value === 'top' ) {\n\t\t\t\tthis.$header.append( this.$label );\n\t\t\t\tthis.$body.append( this.$header, this.$field, this.$help );\n\t\t\t} else if ( value === 'inline' ) {\n\t\t\t\tthis.$header.append( this.$label, this.$help );\n\t\t\t\tthis.$body.append( this.$field, this.$header );\n\t\t\t} else {\n\t\t\t\tthis.$header.append( this.$label, this.$help );\n\t\t\t\tthis.$body.append( this.$header, this.$field );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( value === 'top' ) {\n\t\t\t\tthis.$header.append( this.$help, this.$label );\n\t\t\t\tthis.$body.append( this.$header, this.$field );\n\t\t\t} else if ( value === 'inline' ) {\n\t\t\t\tthis.$header.append( this.$help, this.$label );\n\t\t\t\tthis.$body.append( this.$field, this.$header );\n\t\t\t} else {\n\t\t\t\tthis.$header.append( this.$label );\n\t\t\t\tthis.$body.append( this.$header, this.$help, this.$field );\n\t\t\t}\n\t\t}\n\t\t// Set classes. The following classes can be used here:\n\t\t// * oo-ui-fieldLayout-align-left\n\t\t// * oo-ui-fieldLayout-align-right\n\t\t// * oo-ui-fieldLayout-align-top\n\t\t// * oo-ui-fieldLayout-align-inline\n\t\tif ( this.align ) {\n\t\t\tthis.$element.removeClass( 'oo-ui-fieldLayout-align-' + this.align );\n\t\t}\n\t\tthis.$element.addClass( 'oo-ui-fieldLayout-align-' + value );\n\t\tthis.align = value;\n\t}\n\n\treturn this;\n};\n\n/**\n * Set the list of error messages.\n *\n * @param {Array} errors Error messages about the widget, which will be displayed below the widget.\n *  The array may contain strings or OO.ui.HtmlSnippet instances.\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.FieldLayout.prototype.setErrors = function ( errors ) {\n\tthis.errors = errors.slice();\n\tthis.updateMessages();\n\treturn this;\n};\n\n/**\n * Set the list of notice messages.\n *\n * @param {Array} notices Notices about the widget, which will be displayed below the widget.\n *  The array may contain strings or OO.ui.HtmlSnippet instances.\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.FieldLayout.prototype.setNotices = function ( notices ) {\n\tthis.notices = notices.slice();\n\tthis.updateMessages();\n\treturn this;\n};\n\n/**\n * Update the rendering of error and notice messages.\n *\n * @private\n */\nOO.ui.FieldLayout.prototype.updateMessages = function () {\n\tvar i;\n\tthis.$messages.empty();\n\n\tif ( this.errors.length || this.notices.length ) {\n\t\tthis.$body.after( this.$messages );\n\t} else {\n\t\tthis.$messages.remove();\n\t\treturn;\n\t}\n\n\tfor ( i = 0; i < this.notices.length; i++ ) {\n\t\tthis.$messages.append( this.makeMessage( 'notice', this.notices[ i ] ) );\n\t}\n\tfor ( i = 0; i < this.errors.length; i++ ) {\n\t\tthis.$messages.append( this.makeMessage( 'error', this.errors[ i ] ) );\n\t}\n};\n\n/**\n * Include information about the widget's accessKey in our title. TitledElement calls this method.\n * (This is a bit of a hack.)\n *\n * @protected\n * @param {string} title Tooltip label for 'title' attribute\n * @return {string}\n */\nOO.ui.FieldLayout.prototype.formatTitleWithAccessKey = function ( title ) {\n\tif ( this.fieldWidget && this.fieldWidget.formatTitleWithAccessKey ) {\n\t\treturn this.fieldWidget.formatTitleWithAccessKey( title );\n\t}\n\treturn title;\n};\n\n/**\n * Creates and returns the help element. Also sets the `aria-describedby`\n * attribute on the main element of the `fieldWidget`.\n *\n * @private\n * @param {string|OO.ui.HtmlSnippet} [help] Help text.\n * @param {jQuery} [$overlay] Passed to OO.ui.PopupButtonWidget for help popup.\n * @return {jQuery} The element that should become `this.$help`.\n */\nOO.ui.FieldLayout.prototype.createHelpElement = function ( help, $overlay ) {\n\tvar helpId, helpWidget;\n\n\tif ( this.helpInline ) {\n\t\thelpWidget = new OO.ui.LabelWidget( {\n\t\t\tlabel: help,\n\t\t\tclasses: [ 'oo-ui-inline-help' ]\n\t\t} );\n\n\t\thelpId = helpWidget.getElementId();\n\t} else {\n\t\thelpWidget = new OO.ui.PopupButtonWidget( {\n\t\t\t$overlay: $overlay,\n\t\t\tpopup: {\n\t\t\t\tpadded: true\n\t\t\t},\n\t\t\tclasses: [ 'oo-ui-fieldLayout-help' ],\n\t\t\tframed: false,\n\t\t\ticon: 'info',\n\t\t\tlabel: OO.ui.msg( 'ooui-field-help' ),\n\t\t\tinvisibleLabel: true\n\t\t} );\n\t\tif ( help instanceof OO.ui.HtmlSnippet ) {\n\t\t\thelpWidget.getPopup().$body.html( help.toString() );\n\t\t} else {\n\t\t\thelpWidget.getPopup().$body.text( help );\n\t\t}\n\n\t\thelpId = helpWidget.getPopup().getBodyId();\n\t}\n\n\t// Set the 'aria-describedby' attribute on the fieldWidget\n\t// Preference given to an input or a button\n\t(\n\t\tthis.fieldWidget.$input ||\n\t\tthis.fieldWidget.$button ||\n\t\tthis.fieldWidget.$element\n\t).attr( 'aria-describedby', helpId );\n\n\treturn helpWidget.$element;\n};\n","/**\n * ActionFieldLayouts are used with OO.ui.FieldsetLayout. The layout consists of a field-widget, a button,\n * and an optional label and/or help text. The field-widget (e.g., a {@link OO.ui.TextInputWidget TextInputWidget}),\n * is required and is specified before any optional configuration settings.\n *\n * Labels can be aligned in one of four ways:\n *\n * - **left**: The label is placed before the field-widget and aligned with the left margin.\n *   A left-alignment is used for forms with many fields.\n * - **right**: The label is placed before the field-widget and aligned to the right margin.\n *   A right-alignment is used for long but familiar forms which users tab through,\n *   verifying the current field with a quick glance at the label.\n * - **top**: The label is placed above the field-widget. A top-alignment is used for brief forms\n *   that users fill out from top to bottom.\n * - **inline**: The label is placed after the field-widget and aligned to the left.\n *   An inline-alignment is best used with checkboxes or radio buttons.\n *\n * Help text is accessed via a help icon that appears in the upper right corner of the rendered field layout when help\n * text is specified.\n *\n *     @example\n *     // Example of an ActionFieldLayout\n *     var actionFieldLayout = new OO.ui.ActionFieldLayout(\n *         new OO.ui.TextInputWidget( {\n *             placeholder: 'Field widget'\n *         } ),\n *         new OO.ui.ButtonWidget( {\n *             label: 'Button'\n *         } ),\n *         {\n *             label: 'An ActionFieldLayout. This label is aligned top',\n *             align: 'top',\n *             help: 'This is help text'\n *         }\n *     );\n *\n *     $( document.body ).append( actionFieldLayout.$element );\n *\n * @class\n * @extends OO.ui.FieldLayout\n *\n * @constructor\n * @param {OO.ui.Widget} fieldWidget Field widget\n * @param {OO.ui.ButtonWidget} buttonWidget Button widget\n * @param {Object} config\n */\nOO.ui.ActionFieldLayout = function OoUiActionFieldLayout( fieldWidget, buttonWidget, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( fieldWidget ) && config === undefined ) {\n\t\tconfig = fieldWidget;\n\t\tfieldWidget = config.fieldWidget;\n\t\tbuttonWidget = config.buttonWidget;\n\t}\n\n\t// Parent constructor\n\tOO.ui.ActionFieldLayout.parent.call( this, fieldWidget, config );\n\n\t// Properties\n\tthis.buttonWidget = buttonWidget;\n\tthis.$button = $( '<span>' );\n\tthis.$input = this.isFieldInline() ? $( '<span>' ) : $( '<div>' );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-actionFieldLayout' );\n\tthis.$button\n\t\t.addClass( 'oo-ui-actionFieldLayout-button' )\n\t\t.append( this.buttonWidget.$element );\n\tthis.$input\n\t\t.addClass( 'oo-ui-actionFieldLayout-input' )\n\t\t.append( this.fieldWidget.$element );\n\tthis.$field\n\t\t.append( this.$input, this.$button );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ActionFieldLayout, OO.ui.FieldLayout );\n","/**\n * FieldsetLayouts are composed of one or more {@link OO.ui.FieldLayout FieldLayouts},\n * which each contain an individual widget and, optionally, a label. Each Fieldset can be\n * configured with a label as well. For more information and examples,\n * please see the [OOUI documentation on MediaWiki][1].\n *\n *     @example\n *     // Example of a fieldset layout\n *     var input1 = new OO.ui.TextInputWidget( {\n *         placeholder: 'A text input field'\n *     } );\n *\n *     var input2 = new OO.ui.TextInputWidget( {\n *         placeholder: 'A text input field'\n *     } );\n *\n *     var fieldset = new OO.ui.FieldsetLayout( {\n *         label: 'Example of a fieldset layout'\n *     } );\n *\n *     fieldset.addItems( [\n *         new OO.ui.FieldLayout( input1, {\n *             label: 'Field One'\n *         } ),\n *         new OO.ui.FieldLayout( input2, {\n *             label: 'Field Two'\n *         } )\n *     ] );\n *     $( document.body ).append( fieldset.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Layouts/Fields_and_Fieldsets\n *\n * @class\n * @extends OO.ui.Layout\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.ui.FieldLayout[]} [items] An array of fields to add to the fieldset. See OO.ui.FieldLayout for more information about fields.\n * @cfg {string|OO.ui.HtmlSnippet} [help] Help text. When help text is specified, a \"help\" icon will appear\n *  in the upper-right corner of the rendered field; clicking it will display the text in a popup.\n *  For important messages, you are advised to use `notices`, as they are always shown.\n * @cfg {jQuery} [$overlay] Passed to OO.ui.PopupButtonWidget for help popup, if `help` is given.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n */\nOO.ui.FieldsetLayout = function OoUiFieldsetLayout( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.FieldsetLayout.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.GroupElement.call( this, config );\n\n\t// Properties\n\tthis.$header = $( '<legend>' );\n\tif ( config.help ) {\n\t\tthis.popupButtonWidget = new OO.ui.PopupButtonWidget( {\n\t\t\t$overlay: config.$overlay,\n\t\t\tpopup: {\n\t\t\t\tpadded: true\n\t\t\t},\n\t\t\tclasses: [ 'oo-ui-fieldsetLayout-help' ],\n\t\t\tframed: false,\n\t\t\ticon: 'info',\n\t\t\tlabel: OO.ui.msg( 'ooui-field-help' ),\n\t\t\tinvisibleLabel: true\n\t\t} );\n\t\tif ( config.help instanceof OO.ui.HtmlSnippet ) {\n\t\t\tthis.popupButtonWidget.getPopup().$body.html( config.help.toString() );\n\t\t} else {\n\t\t\tthis.popupButtonWidget.getPopup().$body.text( config.help );\n\t\t}\n\t\tthis.$help = this.popupButtonWidget.$element;\n\t} else {\n\t\tthis.$help = $( [] );\n\t}\n\n\t// Initialization\n\tthis.$header\n\t\t.addClass( 'oo-ui-fieldsetLayout-header' )\n\t\t.append( this.$icon, this.$label, this.$help );\n\tthis.$group.addClass( 'oo-ui-fieldsetLayout-group' );\n\tthis.$element\n\t\t.addClass( 'oo-ui-fieldsetLayout' )\n\t\t.prepend( this.$header, this.$group );\n\tif ( Array.isArray( config.items ) ) {\n\t\tthis.addItems( config.items );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.FieldsetLayout, OO.ui.Layout );\nOO.mixinClass( OO.ui.FieldsetLayout, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.FieldsetLayout, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.FieldsetLayout, OO.ui.mixin.GroupElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.FieldsetLayout.static.tagName = 'fieldset';\n","/**\n * FormLayouts are used to wrap {@link OO.ui.FieldsetLayout FieldsetLayouts} when you intend to use browser-based\n * form submission for the fields instead of handling them in JavaScript. Form layouts can be configured with an\n * HTML form action, an encoding type, and a method using the #action, #enctype, and #method configs, respectively.\n * See the [OOUI documentation on MediaWiki] [1] for more information and examples.\n *\n * Only widgets from the {@link OO.ui.InputWidget InputWidget} family support form submission. It\n * includes standard form elements like {@link OO.ui.CheckboxInputWidget checkboxes}, {@link\n * OO.ui.RadioInputWidget radio buttons} and {@link OO.ui.TextInputWidget text fields}, as well as\n * some fancier controls. Some controls have both regular and InputWidget variants, for example\n * OO.ui.DropdownWidget and OO.ui.DropdownInputWidget – only the latter support form submission and\n * often have simplified APIs to match the capabilities of HTML forms.\n * See the [OOUI documentation on MediaWiki] [2] for more information about InputWidgets.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Layouts/Forms\n * [2]: https://www.mediawiki.org/wiki/OOUI/Widgets/Inputs\n *\n *     @example\n *     // Example of a form layout that wraps a fieldset layout\n *     var input1 = new OO.ui.TextInputWidget( {\n *         placeholder: 'Username'\n *     } );\n *     var input2 = new OO.ui.TextInputWidget( {\n *         placeholder: 'Password',\n *         type: 'password'\n *     } );\n *     var submit = new OO.ui.ButtonInputWidget( {\n *         label: 'Submit'\n *     } );\n *\n *     var fieldset = new OO.ui.FieldsetLayout( {\n *         label: 'A form layout'\n *     } );\n *     fieldset.addItems( [\n *         new OO.ui.FieldLayout( input1, {\n *             label: 'Username',\n *             align: 'top'\n *         } ),\n *         new OO.ui.FieldLayout( input2, {\n *             label: 'Password',\n *             align: 'top'\n *         } ),\n *         new OO.ui.FieldLayout( submit )\n *     ] );\n *     var form = new OO.ui.FormLayout( {\n *         items: [ fieldset ],\n *         action: '/api/formhandler',\n *         method: 'get'\n *     } )\n *     $( document.body ).append( form.$element );\n *\n * @class\n * @extends OO.ui.Layout\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string} [method] HTML form `method` attribute\n * @cfg {string} [action] HTML form `action` attribute\n * @cfg {string} [enctype] HTML form `enctype` attribute\n * @cfg {OO.ui.FieldsetLayout[]} [items] Fieldset layouts to add to the form layout.\n */\nOO.ui.FormLayout = function OoUiFormLayout( config ) {\n\tvar action;\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.FormLayout.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );\n\n\t// Events\n\tthis.$element.on( 'submit', this.onFormSubmit.bind( this ) );\n\n\t// Make sure the action is safe\n\taction = config.action;\n\tif ( action !== undefined && !OO.ui.isSafeUrl( action ) ) {\n\t\taction = './' + action;\n\t}\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-formLayout' )\n\t\t.attr( {\n\t\t\tmethod: config.method,\n\t\t\taction: action,\n\t\t\tenctype: config.enctype\n\t\t} );\n\tif ( Array.isArray( config.items ) ) {\n\t\tthis.addItems( config.items );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.FormLayout, OO.ui.Layout );\nOO.mixinClass( OO.ui.FormLayout, OO.ui.mixin.GroupElement );\n\n/* Events */\n\n/**\n * A 'submit' event is emitted when the form is submitted.\n *\n * @event submit\n */\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.FormLayout.static.tagName = 'form';\n\n/* Methods */\n\n/**\n * Handle form submit events.\n *\n * @private\n * @param {jQuery.Event} e Submit event\n * @fires submit\n * @return {OO.ui.FormLayout} The layout, for chaining\n */\nOO.ui.FormLayout.prototype.onFormSubmit = function () {\n\tif ( this.emit( 'submit' ) ) {\n\t\treturn false;\n\t}\n};\n","/**\n * PanelLayouts expand to cover the entire area of their parent. They can be configured with scrolling, padding,\n * and a frame, and are often used together with {@link OO.ui.StackLayout StackLayouts}.\n *\n *     @example\n *     // Example of a panel layout\n *     var panel = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         framed: true,\n *         padded: true,\n *         $content: $( '<p>A panel layout with padding and a frame.</p>' )\n *     } );\n *     $( document.body ).append( panel.$element );\n *\n * @class\n * @extends OO.ui.Layout\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [scrollable=false] Allow vertical scrolling\n * @cfg {boolean} [padded=false] Add padding between the content and the edges of the panel.\n * @cfg {boolean} [expanded=true] Expand the panel to fill the entire parent element.\n * @cfg {boolean} [framed=false] Render the panel with a frame to visually separate it from outside content.\n */\nOO.ui.PanelLayout = function OoUiPanelLayout( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( {\n\t\tscrollable: false,\n\t\tpadded: false,\n\t\texpanded: true,\n\t\tframed: false\n\t}, config );\n\n\t// Parent constructor\n\tOO.ui.PanelLayout.parent.call( this, config );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-panelLayout' );\n\tif ( config.scrollable ) {\n\t\tthis.$element.addClass( 'oo-ui-panelLayout-scrollable' );\n\t}\n\tif ( config.padded ) {\n\t\tthis.$element.addClass( 'oo-ui-panelLayout-padded' );\n\t}\n\tif ( config.expanded ) {\n\t\tthis.$element.addClass( 'oo-ui-panelLayout-expanded' );\n\t}\n\tif ( config.framed ) {\n\t\tthis.$element.addClass( 'oo-ui-panelLayout-framed' );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.PanelLayout, OO.ui.Layout );\n\n/* Methods */\n\n/**\n * Focus the panel layout\n *\n * The default implementation just focuses the first focusable element in the panel\n */\nOO.ui.PanelLayout.prototype.focus = function () {\n\tOO.ui.findFocusable( this.$element ).focus();\n};\n","/**\n * HorizontalLayout arranges its contents in a single line (using `display: inline-block` for its\n * items), with small margins between them. Convenient when you need to put a number of block-level\n * widgets on a single line next to each other.\n *\n * Note that inline elements, such as OO.ui.ButtonWidgets, do not need this wrapper.\n *\n *     @example\n *     // HorizontalLayout with a text input and a label\n *     var layout = new OO.ui.HorizontalLayout( {\n *       items: [\n *         new OO.ui.LabelWidget( { label: 'Label' } ),\n *         new OO.ui.TextInputWidget( { value: 'Text' } )\n *       ]\n *     } );\n *     $( document.body ).append( layout.$element );\n *\n * @class\n * @extends OO.ui.Layout\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.ui.Widget[]|OO.ui.Layout[]} [items] Widgets or other layouts to add to the layout.\n */\nOO.ui.HorizontalLayout = function OoUiHorizontalLayout( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.HorizontalLayout.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-horizontalLayout' );\n\tif ( Array.isArray( config.items ) ) {\n\t\tthis.addItems( config.items );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.HorizontalLayout, OO.ui.Layout );\nOO.mixinClass( OO.ui.HorizontalLayout, OO.ui.mixin.GroupElement );\n","/**\n * NumberInputWidgets combine a {@link OO.ui.TextInputWidget text input} (where a value\n * can be entered manually) and two {@link OO.ui.ButtonWidget button widgets}\n * (to adjust the value in increments) to allow the user to enter a number.\n *\n *     @example\n *     // A NumberInputWidget.\n *     var numberInput = new OO.ui.NumberInputWidget( {\n *         label: 'NumberInputWidget',\n *         input: { value: 5 },\n *         min: 1,\n *         max: 10\n *     } );\n *     $( document.body ).append( numberInput.$element );\n *\n * @class\n * @extends OO.ui.TextInputWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {Object} [minusButton] Configuration options to pass to the\n *  {@link OO.ui.ButtonWidget decrementing button widget}.\n * @cfg {Object} [plusButton] Configuration options to pass to the\n *  {@link OO.ui.ButtonWidget incrementing button widget}.\n * @cfg {number} [min=-Infinity] Minimum allowed value\n * @cfg {number} [max=Infinity] Maximum allowed value\n * @cfg {number|null} [step] If specified, the field only accepts values that are multiples of this.\n * @cfg {number} [buttonStep=step||1] Delta when using the buttons or up/down arrow keys.\n *  Defaults to `step` if specified, otherwise `1`.\n * @cfg {number} [pageStep=10*buttonStep] Delta when using the page-up/page-down keys.\n *  Defaults to 10 times `buttonStep`.\n * @cfg {boolean} [showButtons=true] Whether to show the plus and minus buttons.\n */\nOO.ui.NumberInputWidget = function OoUiNumberInputWidget( config ) {\n\tvar $field = $( '<div>' )\n\t\t.addClass( 'oo-ui-numberInputWidget-field' );\n\n\t// Configuration initialization\n\tconfig = $.extend( {\n\t\tmin: -Infinity,\n\t\tmax: Infinity,\n\t\tshowButtons: true\n\t}, config );\n\n\t// For backward compatibility\n\t$.extend( config, config.input );\n\tthis.input = this;\n\n\t// Parent constructor\n\tOO.ui.NumberInputWidget.parent.call( this, $.extend( config, {\n\t\ttype: 'number'\n\t} ) );\n\n\tif ( config.showButtons ) {\n\t\tthis.minusButton = new OO.ui.ButtonWidget( $.extend(\n\t\t\t{\n\t\t\t\tdisabled: this.isDisabled(),\n\t\t\t\ttabIndex: -1,\n\t\t\t\tclasses: [ 'oo-ui-numberInputWidget-minusButton' ],\n\t\t\t\ticon: 'subtract'\n\t\t\t},\n\t\t\tconfig.minusButton\n\t\t) );\n\t\tthis.minusButton.$element.attr( 'aria-hidden', 'true' );\n\t\tthis.plusButton = new OO.ui.ButtonWidget( $.extend(\n\t\t\t{\n\t\t\t\tdisabled: this.isDisabled(),\n\t\t\t\ttabIndex: -1,\n\t\t\t\tclasses: [ 'oo-ui-numberInputWidget-plusButton' ],\n\t\t\t\ticon: 'add'\n\t\t\t},\n\t\t\tconfig.plusButton\n\t\t) );\n\t\tthis.plusButton.$element.attr( 'aria-hidden', 'true' );\n\t}\n\n\t// Events\n\tthis.$input.on( {\n\t\tkeydown: this.onKeyDown.bind( this ),\n\t\t'wheel mousewheel DOMMouseScroll': this.onWheel.bind( this )\n\t} );\n\tif ( config.showButtons ) {\n\t\tthis.plusButton.connect( this, {\n\t\t\tclick: [ 'onButtonClick', +1 ]\n\t\t} );\n\t\tthis.minusButton.connect( this, {\n\t\t\tclick: [ 'onButtonClick', -1 ]\n\t\t} );\n\t}\n\n\t// Build the field\n\t$field.append( this.$input );\n\tif ( config.showButtons ) {\n\t\t$field\n\t\t\t.prepend( this.minusButton.$element )\n\t\t\t.append( this.plusButton.$element );\n\t}\n\n\t// Initialization\n\tif ( config.allowInteger || config.isInteger ) {\n\t\t// Backward compatibility\n\t\tconfig.step = 1;\n\t}\n\tthis.setRange( config.min, config.max );\n\tthis.setStep( config.buttonStep, config.pageStep, config.step );\n\t// Set the validation method after we set step and range\n\t// so that it doesn't immediately call setValidityFlag\n\tthis.setValidation( this.validateNumber.bind( this ) );\n\n\tthis.$element\n\t\t.addClass( 'oo-ui-numberInputWidget' )\n\t\t.toggleClass( 'oo-ui-numberInputWidget-buttoned', config.showButtons )\n\t\t.append( $field );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.NumberInputWidget, OO.ui.TextInputWidget );\n\n/* Methods */\n\n// Backward compatibility\nOO.ui.NumberInputWidget.prototype.setAllowInteger = function ( flag ) {\n\tthis.setStep( flag ? 1 : null );\n};\n// Backward compatibility\nOO.ui.NumberInputWidget.prototype.setIsInteger = OO.ui.NumberInputWidget.prototype.setAllowInteger;\n\n// Backward compatibility\nOO.ui.NumberInputWidget.prototype.getAllowInteger = function () {\n\treturn this.step === 1;\n};\n// Backward compatibility\nOO.ui.NumberInputWidget.prototype.getIsInteger = OO.ui.NumberInputWidget.prototype.getAllowInteger;\n\n/**\n * Set the range of allowed values\n *\n * @param {number} min Minimum allowed value\n * @param {number} max Maximum allowed value\n */\nOO.ui.NumberInputWidget.prototype.setRange = function ( min, max ) {\n\tif ( min > max ) {\n\t\tthrow new Error( 'Minimum (' + min + ') must not be greater than maximum (' + max + ')' );\n\t}\n\tthis.min = min;\n\tthis.max = max;\n\tthis.$input.attr( 'min', this.min );\n\tthis.$input.attr( 'max', this.max );\n\tthis.setValidityFlag();\n};\n\n/**\n * Get the current range\n *\n * @return {number[]} Minimum and maximum values\n */\nOO.ui.NumberInputWidget.prototype.getRange = function () {\n\treturn [ this.min, this.max ];\n};\n\n/**\n * Set the stepping deltas\n *\n * @param {number} [buttonStep=step||1] Delta when using the buttons or up/down arrow keys.\n *  Defaults to `step` if specified, otherwise `1`.\n * @param {number} [pageStep=10*buttonStep] Delta when using the page-up/page-down keys.\n *  Defaults to 10 times `buttonStep`.\n * @param {number|null} [step] If specified, the field only accepts values that are multiples of this.\n */\nOO.ui.NumberInputWidget.prototype.setStep = function ( buttonStep, pageStep, step ) {\n\tif ( buttonStep === undefined ) {\n\t\tbuttonStep = step || 1;\n\t}\n\tif ( pageStep === undefined ) {\n\t\tpageStep = 10 * buttonStep;\n\t}\n\tif ( step !== null && step <= 0 ) {\n\t\tthrow new Error( 'Step value, if given, must be positive' );\n\t}\n\tif ( buttonStep <= 0 ) {\n\t\tthrow new Error( 'Button step value must be positive' );\n\t}\n\tif ( pageStep <= 0 ) {\n\t\tthrow new Error( 'Page step value must be positive' );\n\t}\n\tthis.step = step;\n\tthis.buttonStep = buttonStep;\n\tthis.pageStep = pageStep;\n\tthis.$input.attr( 'step', this.step || 'any' );\n\tthis.setValidityFlag();\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.NumberInputWidget.prototype.setValue = function ( value ) {\n\tif ( value === '' ) {\n\t\t// Some browsers allow a value in the input even if there isn't one reported by $input.val()\n\t\t// so here we make sure an 'empty' value is actually displayed as such.\n\t\tthis.$input.val( '' );\n\t}\n\treturn OO.ui.NumberInputWidget.parent.prototype.setValue.call( this, value );\n};\n\n/**\n * Get the current stepping values\n *\n * @return {number[]} Button step, page step, and validity step\n */\nOO.ui.NumberInputWidget.prototype.getStep = function () {\n\treturn [ this.buttonStep, this.pageStep, this.step ];\n};\n\n/**\n * Get the current value of the widget as a number\n *\n * @return {number} May be NaN, or an invalid number\n */\nOO.ui.NumberInputWidget.prototype.getNumericValue = function () {\n\treturn +this.getValue();\n};\n\n/**\n * Adjust the value of the widget\n *\n * @param {number} delta Adjustment amount\n */\nOO.ui.NumberInputWidget.prototype.adjustValue = function ( delta ) {\n\tvar n, v = this.getNumericValue();\n\n\tdelta = +delta;\n\tif ( isNaN( delta ) || !isFinite( delta ) ) {\n\t\tthrow new Error( 'Delta must be a finite number' );\n\t}\n\n\tif ( isNaN( v ) ) {\n\t\tn = 0;\n\t} else {\n\t\tn = v + delta;\n\t\tn = Math.max( Math.min( n, this.max ), this.min );\n\t\tif ( this.step ) {\n\t\t\tn = Math.round( n / this.step ) * this.step;\n\t\t}\n\t}\n\n\tif ( n !== v ) {\n\t\tthis.setValue( n );\n\t}\n};\n/**\n * Validate input\n *\n * @private\n * @param {string} value Field value\n * @return {boolean}\n */\nOO.ui.NumberInputWidget.prototype.validateNumber = function ( value ) {\n\tvar n = +value;\n\tif ( value === '' ) {\n\t\treturn !this.isRequired();\n\t}\n\n\tif ( isNaN( n ) || !isFinite( n ) ) {\n\t\treturn false;\n\t}\n\n\tif ( this.step && Math.floor( n / this.step ) !== n / this.step ) {\n\t\treturn false;\n\t}\n\n\tif ( n < this.min || n > this.max ) {\n\t\treturn false;\n\t}\n\n\treturn true;\n};\n\n/**\n * Handle mouse click events.\n *\n * @private\n * @param {number} dir +1 or -1\n */\nOO.ui.NumberInputWidget.prototype.onButtonClick = function ( dir ) {\n\tthis.adjustValue( dir * this.buttonStep );\n};\n\n/**\n * Handle mouse wheel events.\n *\n * @private\n * @param {jQuery.Event} event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.NumberInputWidget.prototype.onWheel = function ( event ) {\n\tvar delta = 0;\n\n\tif ( !this.isDisabled() && this.$input.is( ':focus' ) ) {\n\t\t// Standard 'wheel' event\n\t\tif ( event.originalEvent.deltaMode !== undefined ) {\n\t\t\tthis.sawWheelEvent = true;\n\t\t}\n\t\tif ( event.originalEvent.deltaY ) {\n\t\t\tdelta = -event.originalEvent.deltaY;\n\t\t} else if ( event.originalEvent.deltaX ) {\n\t\t\tdelta = event.originalEvent.deltaX;\n\t\t}\n\n\t\t// Non-standard events\n\t\tif ( !this.sawWheelEvent ) {\n\t\t\tif ( event.originalEvent.wheelDeltaX ) {\n\t\t\t\tdelta = -event.originalEvent.wheelDeltaX;\n\t\t\t} else if ( event.originalEvent.wheelDeltaY ) {\n\t\t\t\tdelta = event.originalEvent.wheelDeltaY;\n\t\t\t} else if ( event.originalEvent.wheelDelta ) {\n\t\t\t\tdelta = event.originalEvent.wheelDelta;\n\t\t\t} else if ( event.originalEvent.detail ) {\n\t\t\t\tdelta = -event.originalEvent.detail;\n\t\t\t}\n\t\t}\n\n\t\tif ( delta ) {\n\t\t\tdelta = delta < 0 ? -1 : 1;\n\t\t\tthis.adjustValue( delta * this.buttonStep );\n\t\t}\n\n\t\treturn false;\n\t}\n};\n\n/**\n * Handle key down events.\n *\n * @private\n * @param {jQuery.Event} e Key down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.NumberInputWidget.prototype.onKeyDown = function ( e ) {\n\tif ( !this.isDisabled() ) {\n\t\tswitch ( e.which ) {\n\t\t\tcase OO.ui.Keys.UP:\n\t\t\t\tthis.adjustValue( this.buttonStep );\n\t\t\t\treturn false;\n\t\t\tcase OO.ui.Keys.DOWN:\n\t\t\t\tthis.adjustValue( -this.buttonStep );\n\t\t\t\treturn false;\n\t\t\tcase OO.ui.Keys.PAGEUP:\n\t\t\t\tthis.adjustValue( this.pageStep );\n\t\t\t\treturn false;\n\t\t\tcase OO.ui.Keys.PAGEDOWN:\n\t\t\t\tthis.adjustValue( -this.pageStep );\n\t\t\t\treturn false;\n\t\t}\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.NumberInputWidget.prototype.setDisabled = function ( disabled ) {\n\t// Parent method\n\tOO.ui.NumberInputWidget.parent.prototype.setDisabled.call( this, disabled );\n\n\tif ( this.minusButton ) {\n\t\tthis.minusButton.setDisabled( this.isDisabled() );\n\t}\n\tif ( this.plusButton ) {\n\t\tthis.plusButton.setDisabled( this.isDisabled() );\n\t}\n\n\treturn this;\n};\n","}( OO ) );\n"]}
\ No newline at end of file
index a865a85..975a4b4 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOUI v0.30.0
+ * OOUI v0.30.1
  * https://www.mediawiki.org/wiki/OOUI
  *
- * Copyright 2011–2018 OOUI Team and other contributors.
+ * Copyright 2011–2019 OOUI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2018-12-20T06:10:36Z
+ * Date: 2019-01-10T07:00:17Z
  */
 .oo-ui-tool > .oo-ui-tool-link > .oo-ui-tool-checkIcon {
   display: none;
index 5cff066..ec762da 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOUI v0.30.0
+ * OOUI v0.30.1
  * https://www.mediawiki.org/wiki/OOUI
  *
- * Copyright 2011–2018 OOUI Team and other contributors.
+ * Copyright 2011–2019 OOUI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2018-12-20T06:10:36Z
+ * Date: 2019-01-10T07:00:17Z
  */
 .oo-ui-tool {
   -webkit-box-sizing: border-box;
index a3148af..06f5024 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOUI v0.30.0
+ * OOUI v0.30.1
  * https://www.mediawiki.org/wiki/OOUI
  *
- * Copyright 2011–2018 OOUI Team and other contributors.
+ * Copyright 2011–2019 OOUI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2018-12-20T06:10:28Z
+ * Date: 2019-01-10T07:00:09Z
  */
 ( function ( OO ) {
 
  *         toolbar.$element,
  *         contentFrame.$element.append( $area )
  *     );
- *     $( 'body' ).append( frame.$element );
+ *     $( document.body ).append( frame.$element );
  *
  *     // Here is where the toolbar is actually built. This must be done after inserting it into the
  *     // document.
  *         toolbar.$element,
  *         contentFrame.$element.append( $area )
  *     );
- *     $( 'body' ).append( frame.$element );
+ *     $( document.body ).append( frame.$element );
  *
  *     // Here is where the toolbar is actually built. This must be done after inserting it into the
  *     // document.
@@ -1810,7 +1810,7 @@ OO.ui.ToolGroupTool.prototype.createGroup = function ( group ) {
  *         toolbar.$element,
  *         contentFrame.$element.append( $area )
  *     );
- *     $( 'body' ).append( frame.$element );
+ *     $( document.body ).append( frame.$element );
  *
  *     // Here is where the toolbar is actually built. This must be done after inserting it into the
  *     // document.
@@ -2078,7 +2078,7 @@ OO.ui.PopupToolGroup.prototype.onHandleMouseKeyDown = function ( e ) {
                if ( e.which === OO.ui.Keys.TAB && !e.shiftKey ) {
                        $focusable = OO.ui.findFocusable( this.$group );
                        if ( $focusable.length ) {
-                               $focusable.focus();
+                               $focusable.trigger( 'focus' );
                                return false;
                        }
                }
@@ -2225,7 +2225,7 @@ OO.ui.PopupToolGroup.prototype.setActive = function ( value ) {
  *     frame.$element.append(
  *         toolbar.$element
  *     );
- *     $( 'body' ).append( frame.$element );
+ *     $( document.body ).append( frame.$element );
  *     // Build the toolbar. This must be done after the toolbar has been appended to the document.
  *     toolbar.initialize();
  *
@@ -2469,7 +2469,7 @@ OO.ui.ListToolGroup.prototype.updateCollapsibleState = function () {
  *         toolbar.$element,
  *         contentFrame.$element.append( $area )
  *     );
- *     $( 'body' ).append( frame.$element );
+ *     $( document.body ).append( frame.$element );
  *
  *     // Here is where the toolbar is actually built. This must be done after inserting it into the
  *     // document.
index 343a873..3b20c85 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["../src/intro.js.txt","../src/Toolbar.js","../src/Tool.js","../src/ToolGroup.js","../src/ToolFactory.js","../src/ToolGroupFactory.js","../src/tools/PopupTool.js","../src/tools/ToolGroupTool.js","../src/toolgroups/BarToolGroup.js","../src/toolgroups/PopupToolGroup.js","../src/toolgroups/ListToolGroup.js","../src/toolgroups/MenuToolGroup.js","../src/outro.js.txt"],"names":[],"mappings":"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","file":"oojs-ui-toolbars.js","sourcesContent":["( function ( OO ) {\n\n'use strict';\n","/**\n * Toolbars are complex interface components that permit users to easily access a variety\n * of {@link OO.ui.Tool tools} (e.g., formatting commands) and actions, which are additional commands that are\n * part of the toolbar, but not configured as tools.\n *\n * Individual tools are customized and then registered with a {@link OO.ui.ToolFactory tool factory}, which creates\n * the tools on demand. Each tool has a symbolic name (used when registering the tool), a title (e.g., ‘Insert\n * image’), and an icon.\n *\n * Individual tools are organized in {@link OO.ui.ToolGroup toolgroups}, which can be {@link OO.ui.MenuToolGroup menus}\n * of tools, {@link OO.ui.ListToolGroup lists} of tools, or a single {@link OO.ui.BarToolGroup bar} of tools.\n * The arrangement and order of the toolgroups is customized when the toolbar is set up. Tools can be presented in\n * any order, but each can only appear once in the toolbar.\n *\n * The toolbar can be synchronized with the state of the external \"application\", like a text\n * editor's editing area, marking tools as active/inactive (e.g. a 'bold' tool would be shown as\n * active when the text cursor was inside bolded text) or enabled/disabled (e.g. a table caption\n * tool would be disabled while the user is not editing a table). A state change is signalled by\n * emitting the {@link #event-updateState 'updateState' event}, which calls Tools'\n * {@link OO.ui.Tool#onUpdateState onUpdateState method}.\n *\n * The following is an example of a basic toolbar.\n *\n *     @example\n *     // Example of a toolbar\n *     // Create the toolbar\n *     var toolFactory = new OO.ui.ToolFactory();\n *     var toolGroupFactory = new OO.ui.ToolGroupFactory();\n *     var toolbar = new OO.ui.Toolbar( toolFactory, toolGroupFactory );\n *\n *     // We will be placing status text in this element when tools are used\n *     var $area = $( '<p>' ).text( 'Toolbar example' );\n *\n *     // Define the tools that we're going to place in our toolbar\n *\n *     // Create a class inheriting from OO.ui.Tool\n *     function SearchTool() {\n *         SearchTool.parent.apply( this, arguments );\n *     }\n *     OO.inheritClass( SearchTool, OO.ui.Tool );\n *     // Each tool must have a 'name' (used as an internal identifier, see later) and at least one\n *     // of 'icon' and 'title' (displayed icon and text).\n *     SearchTool.static.name = 'search';\n *     SearchTool.static.icon = 'search';\n *     SearchTool.static.title = 'Search...';\n *     // Defines the action that will happen when this tool is selected (clicked).\n *     SearchTool.prototype.onSelect = function () {\n *         $area.text( 'Search tool clicked!' );\n *         // Never display this tool as \"active\" (selected).\n *         this.setActive( false );\n *     };\n *     SearchTool.prototype.onUpdateState = function () {};\n *     // Make this tool available in our toolFactory and thus our toolbar\n *     toolFactory.register( SearchTool );\n *\n *     // Register two more tools, nothing interesting here\n *     function SettingsTool() {\n *         SettingsTool.parent.apply( this, arguments );\n *     }\n *     OO.inheritClass( SettingsTool, OO.ui.Tool );\n *     SettingsTool.static.name = 'settings';\n *     SettingsTool.static.icon = 'settings';\n *     SettingsTool.static.title = 'Change settings';\n *     SettingsTool.prototype.onSelect = function () {\n *         $area.text( 'Settings tool clicked!' );\n *         this.setActive( false );\n *     };\n *     SettingsTool.prototype.onUpdateState = function () {};\n *     toolFactory.register( SettingsTool );\n *\n *     // Register two more tools, nothing interesting here\n *     function StuffTool() {\n *         StuffTool.parent.apply( this, arguments );\n *     }\n *     OO.inheritClass( StuffTool, OO.ui.Tool );\n *     StuffTool.static.name = 'stuff';\n *     StuffTool.static.icon = 'ellipsis';\n *     StuffTool.static.title = 'More stuff';\n *     StuffTool.prototype.onSelect = function () {\n *         $area.text( 'More stuff tool clicked!' );\n *         this.setActive( false );\n *     };\n *     StuffTool.prototype.onUpdateState = function () {};\n *     toolFactory.register( StuffTool );\n *\n *     // This is a PopupTool. Rather than having a custom 'onSelect' action, it will display a\n *     // little popup window (a PopupWidget).\n *     function HelpTool( toolGroup, config ) {\n *         OO.ui.PopupTool.call( this, toolGroup, $.extend( { popup: {\n *             padded: true,\n *             label: 'Help',\n *             head: true\n *         } }, config ) );\n *         this.popup.$body.append( '<p>I am helpful!</p>' );\n *     }\n *     OO.inheritClass( HelpTool, OO.ui.PopupTool );\n *     HelpTool.static.name = 'help';\n *     HelpTool.static.icon = 'help';\n *     HelpTool.static.title = 'Help';\n *     toolFactory.register( HelpTool );\n *\n *     // Finally define which tools and in what order appear in the toolbar. Each tool may only be\n *     // used once (but not all defined tools must be used).\n *     toolbar.setup( [\n *         {\n *             // 'bar' tool groups display tools' icons only, side-by-side.\n *             type: 'bar',\n *             include: [ 'search', 'help' ]\n *         },\n *         {\n *             // 'list' tool groups display both the titles and icons, in a dropdown list.\n *             type: 'list',\n *             indicator: 'down',\n *             label: 'More',\n *             include: [ 'settings', 'stuff' ]\n *         }\n *         // Note how the tools themselves are toolgroup-agnostic - the same tool can be displayed\n *         // either in a 'list' or a 'bar'. There is a 'menu' tool group too, not showcased here,\n *         // since it's more complicated to use. (See the next example snippet on this page.)\n *     ] );\n *\n *     // Create some UI around the toolbar and place it in the document\n *     var frame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         framed: true\n *     } );\n *     var contentFrame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         padded: true\n *     } );\n *     frame.$element.append(\n *         toolbar.$element,\n *         contentFrame.$element.append( $area )\n *     );\n *     $( 'body' ).append( frame.$element );\n *\n *     // Here is where the toolbar is actually built. This must be done after inserting it into the\n *     // document.\n *     toolbar.initialize();\n *     toolbar.emit( 'updateState' );\n *\n * The following example extends the previous one to illustrate 'menu' toolgroups and the usage of\n * {@link #event-updateState 'updateState' event}.\n *\n *     @example\n *     // Create the toolbar\n *     var toolFactory = new OO.ui.ToolFactory();\n *     var toolGroupFactory = new OO.ui.ToolGroupFactory();\n *     var toolbar = new OO.ui.Toolbar( toolFactory, toolGroupFactory );\n *\n *     // We will be placing status text in this element when tools are used\n *     var $area = $( '<p>' ).text( 'Toolbar example' );\n *\n *     // Define the tools that we're going to place in our toolbar\n *\n *     // Create a class inheriting from OO.ui.Tool\n *     function SearchTool() {\n *         SearchTool.parent.apply( this, arguments );\n *     }\n *     OO.inheritClass( SearchTool, OO.ui.Tool );\n *     // Each tool must have a 'name' (used as an internal identifier, see later) and at least one\n *     // of 'icon' and 'title' (displayed icon and text).\n *     SearchTool.static.name = 'search';\n *     SearchTool.static.icon = 'search';\n *     SearchTool.static.title = 'Search...';\n *     // Defines the action that will happen when this tool is selected (clicked).\n *     SearchTool.prototype.onSelect = function () {\n *         $area.text( 'Search tool clicked!' );\n *         // Never display this tool as \"active\" (selected).\n *         this.setActive( false );\n *     };\n *     SearchTool.prototype.onUpdateState = function () {};\n *     // Make this tool available in our toolFactory and thus our toolbar\n *     toolFactory.register( SearchTool );\n *\n *     // Register two more tools, nothing interesting here\n *     function SettingsTool() {\n *         SettingsTool.parent.apply( this, arguments );\n *         this.reallyActive = false;\n *     }\n *     OO.inheritClass( SettingsTool, OO.ui.Tool );\n *     SettingsTool.static.name = 'settings';\n *     SettingsTool.static.icon = 'settings';\n *     SettingsTool.static.title = 'Change settings';\n *     SettingsTool.prototype.onSelect = function () {\n *         $area.text( 'Settings tool clicked!' );\n *         // Toggle the active state on each click\n *         this.reallyActive = !this.reallyActive;\n *         this.setActive( this.reallyActive );\n *         // To update the menu label\n *         this.toolbar.emit( 'updateState' );\n *     };\n *     SettingsTool.prototype.onUpdateState = function () {};\n *     toolFactory.register( SettingsTool );\n *\n *     // Register two more tools, nothing interesting here\n *     function StuffTool() {\n *         StuffTool.parent.apply( this, arguments );\n *         this.reallyActive = false;\n *     }\n *     OO.inheritClass( StuffTool, OO.ui.Tool );\n *     StuffTool.static.name = 'stuff';\n *     StuffTool.static.icon = 'ellipsis';\n *     StuffTool.static.title = 'More stuff';\n *     StuffTool.prototype.onSelect = function () {\n *         $area.text( 'More stuff tool clicked!' );\n *         // Toggle the active state on each click\n *         this.reallyActive = !this.reallyActive;\n *         this.setActive( this.reallyActive );\n *         // To update the menu label\n *         this.toolbar.emit( 'updateState' );\n *     };\n *     StuffTool.prototype.onUpdateState = function () {};\n *     toolFactory.register( StuffTool );\n *\n *     // This is a PopupTool. Rather than having a custom 'onSelect' action, it will display a\n *     // little popup window (a PopupWidget). 'onUpdateState' is also already implemented.\n *     function HelpTool( toolGroup, config ) {\n *         OO.ui.PopupTool.call( this, toolGroup, $.extend( { popup: {\n *             padded: true,\n *             label: 'Help',\n *             head: true\n *         } }, config ) );\n *         this.popup.$body.append( '<p>I am helpful!</p>' );\n *     }\n *     OO.inheritClass( HelpTool, OO.ui.PopupTool );\n *     HelpTool.static.name = 'help';\n *     HelpTool.static.icon = 'help';\n *     HelpTool.static.title = 'Help';\n *     toolFactory.register( HelpTool );\n *\n *     // Finally define which tools and in what order appear in the toolbar. Each tool may only be\n *     // used once (but not all defined tools must be used).\n *     toolbar.setup( [\n *         {\n *             // 'bar' tool groups display tools' icons only, side-by-side.\n *             type: 'bar',\n *             include: [ 'search', 'help' ]\n *         },\n *         {\n *             // 'menu' tool groups display both the titles and icons, in a dropdown menu.\n *             // Menu label indicates which items are selected.\n *             type: 'menu',\n *             indicator: 'down',\n *             include: [ 'settings', 'stuff' ]\n *         }\n *     ] );\n *\n *     // Create some UI around the toolbar and place it in the document\n *     var frame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         framed: true\n *     } );\n *     var contentFrame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         padded: true\n *     } );\n *     frame.$element.append(\n *         toolbar.$element,\n *         contentFrame.$element.append( $area )\n *     );\n *     $( 'body' ).append( frame.$element );\n *\n *     // Here is where the toolbar is actually built. This must be done after inserting it into the\n *     // document.\n *     toolbar.initialize();\n *     toolbar.emit( 'updateState' );\n *\n * @class\n * @extends OO.ui.Element\n * @mixins OO.EventEmitter\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {OO.ui.ToolFactory} toolFactory Factory for creating tools\n * @param {OO.ui.ToolGroupFactory} toolGroupFactory Factory for creating toolgroups\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [actions] Add an actions section to the toolbar. Actions are commands that are included\n *  in the toolbar, but are not configured as tools. By default, actions are displayed on the right side of\n *  the toolbar.\n * @cfg {string} [position='top'] Whether the toolbar is positioned above ('top') or below ('bottom') content.\n * @cfg {jQuery} [$overlay] An overlay for the popup.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n */\nOO.ui.Toolbar = function OoUiToolbar( toolFactory, toolGroupFactory, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolFactory ) && config === undefined ) {\n\t\tconfig = toolFactory;\n\t\ttoolFactory = config.toolFactory;\n\t\ttoolGroupFactory = config.toolGroupFactory;\n\t}\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.Toolbar.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.EventEmitter.call( this );\n\tOO.ui.mixin.GroupElement.call( this, config );\n\n\t// Properties\n\tthis.toolFactory = toolFactory;\n\tthis.toolGroupFactory = toolGroupFactory;\n\tthis.groupsByName = {};\n\tthis.activeToolGroups = 0;\n\tthis.tools = {};\n\tthis.position = config.position || 'top';\n\tthis.$bar = $( '<div>' );\n\tthis.$actions = $( '<div>' );\n\tthis.$popups = $( '<div>' );\n\tthis.initialized = false;\n\tthis.narrowThreshold = null;\n\tthis.onWindowResizeHandler = this.onWindowResize.bind( this );\n\tthis.$overlay = ( config.$overlay === true ? OO.ui.getDefaultOverlay() : config.$overlay ) || this.$element;\n\n\t// Events\n\tthis.$element\n\t\t.add( this.$bar ).add( this.$group ).add( this.$actions )\n\t\t.on( 'mousedown keydown', this.onPointerDown.bind( this ) );\n\n\t// Initialization\n\tthis.$group.addClass( 'oo-ui-toolbar-tools' );\n\tif ( config.actions ) {\n\t\tthis.$bar.append( this.$actions.addClass( 'oo-ui-toolbar-actions' ) );\n\t}\n\tthis.$popups.addClass( 'oo-ui-toolbar-popups' );\n\tthis.$bar\n\t\t.addClass( 'oo-ui-toolbar-bar' )\n\t\t.append( this.$group, '<div style=\"clear:both\"></div>' );\n\t// Possible classes: oo-ui-toolbar-position-top, oo-ui-toolbar-position-bottom\n\tthis.$element.addClass( 'oo-ui-toolbar oo-ui-toolbar-position-' + this.position ).append( this.$bar );\n\tthis.$overlay.append( this.$popups );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.Toolbar, OO.ui.Element );\nOO.mixinClass( OO.ui.Toolbar, OO.EventEmitter );\nOO.mixinClass( OO.ui.Toolbar, OO.ui.mixin.GroupElement );\n\n/* Events */\n\n/**\n * @event updateState\n *\n * An 'updateState' event must be emitted on the Toolbar (by calling `toolbar.emit( 'updateState' )`)\n * every time the state of the application using the toolbar changes, and an update to the state of\n * tools is required.\n *\n * @param {...Mixed} data Application-defined parameters\n */\n\n/**\n * @event active\n *\n * An 'active' event is emitted when the number of active toolgroups increases from 0, or\n * returns to 0.\n *\n * @param {boolean} There are active toolgroups in this toolbar\n */\n\n/* Methods */\n\n/**\n * Get the tool factory.\n *\n * @return {OO.ui.ToolFactory} Tool factory\n */\nOO.ui.Toolbar.prototype.getToolFactory = function () {\n\treturn this.toolFactory;\n};\n\n/**\n * Get the toolgroup factory.\n *\n * @return {OO.Factory} Toolgroup factory\n */\nOO.ui.Toolbar.prototype.getToolGroupFactory = function () {\n\treturn this.toolGroupFactory;\n};\n\n/**\n * Handles mouse down events.\n *\n * @private\n * @param {jQuery.Event} e Mouse down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.Toolbar.prototype.onPointerDown = function ( e ) {\n\tvar $closestWidgetToEvent = $( e.target ).closest( '.oo-ui-widget' ),\n\t\t$closestWidgetToToolbar = this.$element.closest( '.oo-ui-widget' );\n\tif ( !$closestWidgetToEvent.length || $closestWidgetToEvent[ 0 ] === $closestWidgetToToolbar[ 0 ] ) {\n\t\treturn false;\n\t}\n};\n\n/**\n * Handle window resize event.\n *\n * @private\n * @param {jQuery.Event} e Window resize event\n */\nOO.ui.Toolbar.prototype.onWindowResize = function () {\n\tthis.$element.add( this.$popups ).toggleClass(\n\t\t'oo-ui-toolbar-narrow',\n\t\tthis.$bar[ 0 ].clientWidth <= this.getNarrowThreshold()\n\t);\n};\n\n/**\n * Get the (lazily-computed) width threshold for applying the oo-ui-toolbar-narrow\n * class.\n *\n * @private\n * @return {number} Width threshold in pixels\n */\nOO.ui.Toolbar.prototype.getNarrowThreshold = function () {\n\tif ( this.narrowThreshold === null ) {\n\t\tthis.narrowThreshold = this.$group[ 0 ].offsetWidth + this.$actions[ 0 ].offsetWidth;\n\t}\n\treturn this.narrowThreshold;\n};\n\n/**\n * Sets up handles and preloads required information for the toolbar to work.\n * This must be called after it is attached to a visible document and before doing anything else.\n */\nOO.ui.Toolbar.prototype.initialize = function () {\n\tif ( !this.initialized ) {\n\t\tthis.initialized = true;\n\t\t$( this.getElementWindow() ).on( 'resize', this.onWindowResizeHandler );\n\t\tthis.onWindowResize();\n\t}\n};\n\n/**\n * Set up the toolbar.\n *\n * The toolbar is set up with a list of toolgroup configurations that specify the type of\n * toolgroup ({@link OO.ui.BarToolGroup bar}, {@link OO.ui.MenuToolGroup menu}, or {@link OO.ui.ListToolGroup list})\n * to add and which tools to include, exclude, promote, or demote within that toolgroup. Please\n * see {@link OO.ui.ToolGroup toolgroups} for more information about including tools in toolgroups.\n *\n * @param {Object.<string,Array>} groups List of toolgroup configurations\n * @param {string} [groups.name] Symbolic name for this toolgroup\n * @param {string} [groups.type] Toolgroup type, should exist in the toolgroup factory\n * @param {Array|string} [groups.include] Tools to include in the toolgroup\n * @param {Array|string} [groups.exclude] Tools to exclude from the toolgroup\n * @param {Array|string} [groups.promote] Tools to promote to the beginning of the toolgroup\n * @param {Array|string} [groups.demote] Tools to demote to the end of the toolgroup\n */\nOO.ui.Toolbar.prototype.setup = function ( groups ) {\n\tvar i, len, type, toolGroup, groupConfig,\n\t\titems = [],\n\t\tdefaultType = 'bar';\n\n\t// Cleanup previous groups\n\tthis.reset();\n\n\t// Build out new groups\n\tfor ( i = 0, len = groups.length; i < len; i++ ) {\n\t\tgroupConfig = groups[ i ];\n\t\tif ( groupConfig.include === '*' ) {\n\t\t\t// Apply defaults to catch-all groups\n\t\t\tif ( groupConfig.type === undefined ) {\n\t\t\t\tgroupConfig.type = 'list';\n\t\t\t}\n\t\t\tif ( groupConfig.label === undefined ) {\n\t\t\t\tgroupConfig.label = OO.ui.msg( 'ooui-toolbar-more' );\n\t\t\t}\n\t\t}\n\t\t// Check type has been registered\n\t\ttype = this.getToolGroupFactory().lookup( groupConfig.type ) ? groupConfig.type : defaultType;\n\t\ttoolGroup = this.getToolGroupFactory().create( type, this, groupConfig );\n\t\titems.push( toolGroup );\n\t\tif ( groupConfig.name ) {\n\t\t\tthis.groupsByName[ groupConfig.name ] = toolGroup;\n\t\t} else {\n\t\t\t// Groups without name are deprecated\n\t\t\tOO.ui.warnDeprecation( 'Toolgroups must have a \\'name\\' property' );\n\t\t}\n\t\ttoolGroup.connect( this, { active: 'onToolGroupActive' } );\n\t}\n\tthis.addItems( items );\n};\n\n/**\n * Handle active events from tool groups\n *\n * @param {boolean} active Tool group has become active, inactive if false\n * @fires active\n */\nOO.ui.Toolbar.prototype.onToolGroupActive = function ( active ) {\n\tif ( active ) {\n\t\tthis.activeToolGroups++;\n\t\tif ( this.activeToolGroups === 1 ) {\n\t\t\tthis.emit( 'active', true );\n\t\t}\n\t} else {\n\t\tthis.activeToolGroups--;\n\t\tif ( this.activeToolGroups === 0 ) {\n\t\t\tthis.emit( 'active', false );\n\t\t}\n\t}\n};\n\n/**\n * Get a toolgroup by name\n *\n * @param {string} name Group name\n * @return {OO.ui.ToolGroup|null} Tool group, or null if none found by that name\n */\nOO.ui.Toolbar.prototype.getToolGroupByName = function ( name ) {\n\treturn this.groupsByName[ name ] || null;\n};\n\n/**\n * Remove all tools and toolgroups from the toolbar.\n */\nOO.ui.Toolbar.prototype.reset = function () {\n\tvar i, len;\n\n\tthis.groupsByName = {};\n\tthis.tools = {};\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\tthis.items[ i ].destroy();\n\t}\n\tthis.clearItems();\n};\n\n/**\n * Destroy the toolbar.\n *\n * Destroying the toolbar removes all event handlers and DOM elements that constitute the toolbar. Call\n * this method whenever you are done using a toolbar.\n */\nOO.ui.Toolbar.prototype.destroy = function () {\n\t$( this.getElementWindow() ).off( 'resize', this.onWindowResizeHandler );\n\tthis.reset();\n\tthis.$element.remove();\n};\n\n/**\n * Check if the tool is available.\n *\n * Available tools are ones that have not yet been added to the toolbar.\n *\n * @param {string} name Symbolic name of tool\n * @return {boolean} Tool is available\n */\nOO.ui.Toolbar.prototype.isToolAvailable = function ( name ) {\n\treturn !this.tools[ name ];\n};\n\n/**\n * Prevent tool from being used again.\n *\n * @param {OO.ui.Tool} tool Tool to reserve\n */\nOO.ui.Toolbar.prototype.reserveTool = function ( tool ) {\n\tthis.tools[ tool.getName() ] = tool;\n};\n\n/**\n * Allow tool to be used again.\n *\n * @param {OO.ui.Tool} tool Tool to release\n */\nOO.ui.Toolbar.prototype.releaseTool = function ( tool ) {\n\tdelete this.tools[ tool.getName() ];\n};\n\n/**\n * Get accelerator label for tool.\n *\n * The OOUI library does not contain an accelerator system, but this is the hook for one. To\n * use an accelerator system, subclass the toolbar and override this method, which is meant to return a label\n * that describes the accelerator keys for the tool passed (by symbolic name) to the method.\n *\n * @param {string} name Symbolic name of tool\n * @return {string|undefined} Tool accelerator label if available\n */\nOO.ui.Toolbar.prototype.getToolAccelerator = function () {\n\treturn undefined;\n};\n","/**\n * Tools, together with {@link OO.ui.ToolGroup toolgroups}, constitute {@link OO.ui.Toolbar toolbars}.\n * Each tool is configured with a static name, title, and icon and is customized with the command to carry\n * out when the tool is selected. Tools must also be registered with a {@link OO.ui.ToolFactory tool factory},\n * which creates the tools on demand.\n *\n * Every Tool subclass must implement two methods:\n *\n * - {@link #onUpdateState}\n * - {@link #onSelect}\n *\n * Tools are added to toolgroups ({@link OO.ui.ListToolGroup ListToolGroup},\n * {@link OO.ui.BarToolGroup BarToolGroup}, or {@link OO.ui.MenuToolGroup MenuToolGroup}), which determine how\n * the tool is displayed in the toolbar. See {@link OO.ui.Toolbar toolbars} for an example.\n *\n * For more information, please see the [OOUI documentation on MediaWiki][1].\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars\n *\n * @abstract\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.FlaggedElement\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {OO.ui.ToolGroup} toolGroup\n * @param {Object} [config] Configuration options\n * @cfg {string|Function} [title] Title text or a function that returns text. If this config is omitted, the value of\n *  the {@link #static-title static title} property is used.\n *\n *  The title is used in different ways depending on the type of toolgroup that contains the tool. The\n *  title is used as a tooltip if the tool is part of a {@link OO.ui.BarToolGroup bar} toolgroup, or as the label text if the tool is\n *  part of a {@link OO.ui.ListToolGroup list} or {@link OO.ui.MenuToolGroup menu} toolgroup.\n *\n *  For bar toolgroups, a description of the accelerator key is appended to the title if an accelerator key\n *  is associated with an action by the same name as the tool and accelerator functionality has been added to the application.\n *  To add accelerator key functionality, you must subclass OO.ui.Toolbar and override the {@link OO.ui.Toolbar#getToolAccelerator getToolAccelerator} method.\n */\nOO.ui.Tool = function OoUiTool( toolGroup, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolGroup ) && config === undefined ) {\n\t\tconfig = toolGroup;\n\t\ttoolGroup = config.toolGroup;\n\t}\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.Tool.parent.call( this, config );\n\n\t// Properties\n\tthis.toolGroup = toolGroup;\n\tthis.toolbar = this.toolGroup.getToolbar();\n\tthis.active = false;\n\tthis.$title = $( '<span>' );\n\tthis.$accel = $( '<span>' );\n\tthis.$link = $( '<a>' );\n\tthis.title = null;\n\tthis.checkIcon = new OO.ui.IconWidget( {\n\t\ticon: 'check',\n\t\tclasses: [ 'oo-ui-tool-checkIcon' ]\n\t} );\n\n\t// Mixin constructors\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.FlaggedElement.call( this, config );\n\tOO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$link } ) );\n\n\t// Events\n\tthis.toolbar.connect( this, { updateState: 'onUpdateState' } );\n\n\t// Initialization\n\tthis.$title.addClass( 'oo-ui-tool-title' );\n\tthis.$accel\n\t\t.addClass( 'oo-ui-tool-accel' )\n\t\t.prop( {\n\t\t\t// This may need to be changed if the key names are ever localized,\n\t\t\t// but for now they are essentially written in English\n\t\t\tdir: 'ltr',\n\t\t\tlang: 'en'\n\t\t} );\n\tthis.$link\n\t\t.addClass( 'oo-ui-tool-link' )\n\t\t.append( this.checkIcon.$element, this.$icon, this.$title, this.$accel )\n\t\t.attr( 'role', 'button' );\n\tthis.$element\n\t\t.data( 'oo-ui-tool', this )\n\t\t.addClass( 'oo-ui-tool' )\n\t\t.addClass( 'oo-ui-tool-name-' + this.constructor.static.name.replace( /^([^/]+)\\/([^/]+).*$/, '$1-$2' ) )\n\t\t.toggleClass( 'oo-ui-tool-with-label', this.constructor.static.displayBothIconAndLabel )\n\t\t.append( this.$link );\n\tthis.setTitle( config.title || this.constructor.static.title );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.Tool, OO.ui.Widget );\nOO.mixinClass( OO.ui.Tool, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.Tool, OO.ui.mixin.FlaggedElement );\nOO.mixinClass( OO.ui.Tool, OO.ui.mixin.TabIndexedElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.Tool.static.tagName = 'span';\n\n/**\n * Symbolic name of tool.\n *\n * The symbolic name is used internally to register the tool with a {@link OO.ui.ToolFactory ToolFactory}. It can\n * also be used when adding tools to toolgroups.\n *\n * @abstract\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.Tool.static.name = '';\n\n/**\n * Symbolic name of the group.\n *\n * The group name is used to associate tools with each other so that they can be selected later by\n * a {@link OO.ui.ToolGroup toolgroup}.\n *\n * @abstract\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.Tool.static.group = '';\n\n/**\n * Tool title text or a function that returns title text. The value of the static property is overridden if the #title config option is used.\n *\n * @abstract\n * @static\n * @inheritable\n * @property {string|Function}\n */\nOO.ui.Tool.static.title = '';\n\n/**\n * Display both icon and label when the tool is used in a {@link OO.ui.BarToolGroup bar} toolgroup.\n * Normally only the icon is displayed, or only the label if no icon is given.\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.Tool.static.displayBothIconAndLabel = false;\n\n/**\n * Add tool to catch-all groups automatically.\n *\n * A catch-all group, which contains all tools that do not currently belong to a toolgroup,\n * can be included in a toolgroup using the wildcard selector, an asterisk (*).\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.Tool.static.autoAddToCatchall = true;\n\n/**\n * Add tool to named groups automatically.\n *\n * By default, tools that are configured with a static ‘group’ property are added\n * to that group and will be selected when the symbolic name of the group is specified (e.g., when\n * toolgroups include tools by group name).\n *\n * @static\n * @property {boolean}\n * @inheritable\n */\nOO.ui.Tool.static.autoAddToGroup = true;\n\n/**\n * Check if this tool is compatible with given data.\n *\n * This is a stub that can be overridden to provide support for filtering tools based on an\n * arbitrary piece of information  (e.g., where the cursor is in a document). The implementation\n * must also call this method so that the compatibility check can be performed.\n *\n * @static\n * @inheritable\n * @param {Mixed} data Data to check\n * @return {boolean} Tool can be used with data\n */\nOO.ui.Tool.static.isCompatibleWith = function () {\n\treturn false;\n};\n\n/* Methods */\n\n/**\n * Handle the toolbar state being updated. This method is called when the\n * {@link OO.ui.Toolbar#event-updateState 'updateState' event} is emitted on the\n * {@link OO.ui.Toolbar Toolbar} that uses this tool, and should set the state of this tool\n * depending on application state (usually by calling #setDisabled to enable or disable the tool,\n * or #setActive to mark is as currently in-use or not).\n *\n * This is an abstract method that must be overridden in a concrete subclass.\n *\n * @method\n * @protected\n * @abstract\n */\nOO.ui.Tool.prototype.onUpdateState = null;\n\n/**\n * Handle the tool being selected. This method is called when the user triggers this tool,\n * usually by clicking on its label/icon.\n *\n * This is an abstract method that must be overridden in a concrete subclass.\n *\n * @method\n * @protected\n * @abstract\n */\nOO.ui.Tool.prototype.onSelect = null;\n\n/**\n * Check if the tool is active.\n *\n * Tools become active when their #onSelect or #onUpdateState handlers change them to appear pressed\n * with the #setActive method. Additional CSS is applied to the tool to reflect the active state.\n *\n * @return {boolean} Tool is active\n */\nOO.ui.Tool.prototype.isActive = function () {\n\treturn this.active;\n};\n\n/**\n * Make the tool appear active or inactive.\n *\n * This method should be called within #onSelect or #onUpdateState event handlers to make the tool\n * appear pressed or not.\n *\n * @param {boolean} state Make tool appear active\n */\nOO.ui.Tool.prototype.setActive = function ( state ) {\n\tthis.active = !!state;\n\tthis.$element.toggleClass( 'oo-ui-tool-active', this.active );\n\tthis.updateThemeClasses();\n};\n\n/**\n * Set the tool #title.\n *\n * @param {string|Function} title Title text or a function that returns text\n * @chainable\n * @return {OO.ui.Tool} The tool, for chaining\n */\nOO.ui.Tool.prototype.setTitle = function ( title ) {\n\tthis.title = OO.ui.resolveMsg( title );\n\tthis.updateTitle();\n\treturn this;\n};\n\n/**\n * Get the tool #title.\n *\n * @return {string} Title text\n */\nOO.ui.Tool.prototype.getTitle = function () {\n\treturn this.title;\n};\n\n/**\n * Get the tool's symbolic name.\n *\n * @return {string} Symbolic name of tool\n */\nOO.ui.Tool.prototype.getName = function () {\n\treturn this.constructor.static.name;\n};\n\n/**\n * Update the title.\n */\nOO.ui.Tool.prototype.updateTitle = function () {\n\tvar titleTooltips = this.toolGroup.constructor.static.titleTooltips,\n\t\taccelTooltips = this.toolGroup.constructor.static.accelTooltips,\n\t\taccel = this.toolbar.getToolAccelerator( this.constructor.static.name ),\n\t\ttooltipParts = [];\n\n\tthis.$title.text( this.title );\n\tthis.$accel.text( accel );\n\n\tif ( titleTooltips && typeof this.title === 'string' && this.title.length ) {\n\t\ttooltipParts.push( this.title );\n\t}\n\tif ( accelTooltips && typeof accel === 'string' && accel.length ) {\n\t\ttooltipParts.push( accel );\n\t}\n\tif ( tooltipParts.length ) {\n\t\tthis.$link.attr( 'title', tooltipParts.join( ' ' ) );\n\t} else {\n\t\tthis.$link.removeAttr( 'title' );\n\t}\n};\n\n/**\n * Destroy tool.\n *\n * Destroying the tool removes all event handlers and the tool’s DOM elements.\n * Call this method whenever you are done using a tool.\n */\nOO.ui.Tool.prototype.destroy = function () {\n\tthis.toolbar.disconnect( this );\n\tthis.$element.remove();\n};\n","/**\n * ToolGroups are collections of {@link OO.ui.Tool tools} that are used in a {@link OO.ui.Toolbar toolbar}.\n * The type of toolgroup ({@link OO.ui.ListToolGroup list}, {@link OO.ui.BarToolGroup bar}, or {@link OO.ui.MenuToolGroup menu})\n * to which a tool belongs determines how the tool is arranged and displayed in the toolbar. Toolgroups\n * themselves are created on demand with a {@link OO.ui.ToolGroupFactory toolgroup factory}.\n *\n * Toolgroups can contain individual tools, groups of tools, or all available tools, as specified\n * using the `include` config option. See OO.ui.ToolFactory#extract on documentation of the format.\n * The options `exclude`, `promote`, and `demote` support the same formats.\n *\n * See {@link OO.ui.Toolbar toolbars} for a full example. For more information about toolbars in general,\n * please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars\n *\n * @abstract\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {OO.ui.Toolbar} toolbar\n * @param {Object} [config] Configuration options\n * @cfg {Array|string} [include] List of tools to include in the toolgroup, see above.\n * @cfg {Array|string} [exclude] List of tools to exclude from the toolgroup, see above.\n * @cfg {Array|string} [promote] List of tools to promote to the beginning of the toolgroup, see above.\n * @cfg {Array|string} [demote] List of tools to demote to the end of the toolgroup, see above.\n *  This setting is particularly useful when tools have been added to the toolgroup\n *  en masse (e.g., via the catch-all selector).\n */\nOO.ui.ToolGroup = function OoUiToolGroup( toolbar, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolbar ) && config === undefined ) {\n\t\tconfig = toolbar;\n\t\ttoolbar = config.toolbar;\n\t}\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.ToolGroup.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupElement.call( this, config );\n\n\t// Properties\n\tthis.toolbar = toolbar;\n\tthis.tools = {};\n\tthis.pressed = null;\n\tthis.autoDisabled = false;\n\tthis.include = config.include || [];\n\tthis.exclude = config.exclude || [];\n\tthis.promote = config.promote || [];\n\tthis.demote = config.demote || [];\n\tthis.onDocumentMouseKeyUpHandler = this.onDocumentMouseKeyUp.bind( this );\n\n\t// Events\n\tthis.$group.on( {\n\t\tmousedown: this.onMouseKeyDown.bind( this ),\n\t\tmouseup: this.onMouseKeyUp.bind( this ),\n\t\tkeydown: this.onMouseKeyDown.bind( this ),\n\t\tkeyup: this.onMouseKeyUp.bind( this ),\n\t\tfocus: this.onMouseOverFocus.bind( this ),\n\t\tblur: this.onMouseOutBlur.bind( this ),\n\t\tmouseover: this.onMouseOverFocus.bind( this ),\n\t\tmouseout: this.onMouseOutBlur.bind( this )\n\t} );\n\tthis.toolbar.getToolFactory().connect( this, { register: 'onToolFactoryRegister' } );\n\tthis.aggregate( { disable: 'itemDisable' } );\n\tthis.connect( this, {\n\t\titemDisable: 'updateDisabled',\n\t\tdisable: 'onDisable'\n\t} );\n\n\t// Initialization\n\tthis.$group.addClass( 'oo-ui-toolGroup-tools' );\n\tthis.$element\n\t\t.addClass( 'oo-ui-toolGroup' )\n\t\t.append( this.$group );\n\tthis.onDisable( this.isDisabled() );\n\tthis.populate();\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ToolGroup, OO.ui.Widget );\nOO.mixinClass( OO.ui.ToolGroup, OO.ui.mixin.GroupElement );\n\n/* Events */\n\n/**\n * @event update\n */\n\n/**\n * @event active\n *\n * An 'active' event is emitted when any popup is shown/hidden.\n *\n * @param {boolean} The popup is visible\n */\n\n/* Static Properties */\n\n/**\n * Show labels in tooltips.\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.ToolGroup.static.titleTooltips = false;\n\n/**\n * Show acceleration labels in tooltips.\n *\n * Note: The OOUI library does not include an accelerator system, but does contain\n * a hook for one. To use an accelerator system, subclass the {@link OO.ui.Toolbar toolbar} and\n * override the {@link OO.ui.Toolbar#getToolAccelerator getToolAccelerator} method, which is\n * meant to return a label that describes the accelerator keys for a given tool (e.g., 'Ctrl + M').\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.ToolGroup.static.accelTooltips = false;\n\n/**\n * Automatically disable the toolgroup when all tools are disabled\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.ToolGroup.static.autoDisable = true;\n\n/**\n * @abstract\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.ToolGroup.static.name = null;\n\n/* Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.ToolGroup.prototype.isDisabled = function () {\n\treturn this.autoDisabled || OO.ui.ToolGroup.parent.prototype.isDisabled.apply( this, arguments );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ToolGroup.prototype.updateDisabled = function () {\n\tvar i, item, allDisabled = true;\n\n\tif ( this.constructor.static.autoDisable ) {\n\t\tfor ( i = this.items.length - 1; i >= 0; i-- ) {\n\t\t\titem = this.items[ i ];\n\t\t\tif ( !item.isDisabled() ) {\n\t\t\t\tallDisabled = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis.autoDisabled = allDisabled;\n\t}\n\tOO.ui.ToolGroup.parent.prototype.updateDisabled.apply( this, arguments );\n};\n\n/**\n * Handle disable events.\n *\n * @protected\n * @param {boolean} isDisabled\n */\nOO.ui.ToolGroup.prototype.onDisable = function ( isDisabled ) {\n\tthis.$group.toggleClass( 'oo-ui-toolGroup-disabled-tools', isDisabled );\n\tthis.$group.toggleClass( 'oo-ui-toolGroup-enabled-tools', !isDisabled );\n};\n\n/**\n * Handle mouse down and key down events.\n *\n * @protected\n * @param {jQuery.Event} e Mouse down or key down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.ToolGroup.prototype.onMouseKeyDown = function ( e ) {\n\tif (\n\t\t!this.isDisabled() &&\n\t\t( e.which === OO.ui.MouseButtons.LEFT || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )\n\t) {\n\t\tthis.pressed = this.findTargetTool( e );\n\t\tif ( this.pressed ) {\n\t\t\tthis.pressed.setActive( true );\n\t\t\tthis.getElementDocument().addEventListener( 'mouseup', this.onDocumentMouseKeyUpHandler, true );\n\t\t\tthis.getElementDocument().addEventListener( 'keyup', this.onDocumentMouseKeyUpHandler, true );\n\t\t\treturn false;\n\t\t}\n\t}\n};\n\n/**\n * Handle document mouse up and key up events.\n *\n * @protected\n * @param {MouseEvent|KeyboardEvent} e Mouse up or key up event\n */\nOO.ui.ToolGroup.prototype.onDocumentMouseKeyUp = function ( e ) {\n\tthis.getElementDocument().removeEventListener( 'mouseup', this.onDocumentMouseKeyUpHandler, true );\n\tthis.getElementDocument().removeEventListener( 'keyup', this.onDocumentMouseKeyUpHandler, true );\n\t// onMouseKeyUp may be called a second time, depending on where the mouse is when the button is\n\t// released, but since `this.pressed` will no longer be true, the second call will be ignored.\n\tthis.onMouseKeyUp( e );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.ToolGroup.prototype.onCapturedMouseKeyUp = function () {\n\tOO.ui.warnDeprecation( 'onCapturedMouseKeyUp is deprecated, use onDocumentMouseKeyUp instead' );\n\tthis.onDocumentMouseKeyUp.apply( this, arguments );\n};\n\n/**\n * Handle mouse up and key up events.\n *\n * @protected\n * @param {MouseEvent|KeyboardEvent} e Mouse up or key up event\n */\nOO.ui.ToolGroup.prototype.onMouseKeyUp = function ( e ) {\n\tvar tool = this.findTargetTool( e );\n\n\tif (\n\t\t!this.isDisabled() && this.pressed && this.pressed === tool &&\n\t\t( e.which === OO.ui.MouseButtons.LEFT || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )\n\t) {\n\t\tthis.pressed.onSelect();\n\t\tthis.pressed = null;\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t}\n\n\tthis.pressed = null;\n};\n\n/**\n * Handle mouse over and focus events.\n *\n * @protected\n * @param {jQuery.Event} e Mouse over or focus event\n */\nOO.ui.ToolGroup.prototype.onMouseOverFocus = function ( e ) {\n\tvar tool = this.findTargetTool( e );\n\n\tif ( this.pressed && this.pressed === tool ) {\n\t\tthis.pressed.setActive( true );\n\t}\n};\n\n/**\n * Handle mouse out and blur events.\n *\n * @protected\n * @param {jQuery.Event} e Mouse out or blur event\n */\nOO.ui.ToolGroup.prototype.onMouseOutBlur = function ( e ) {\n\tvar tool = this.findTargetTool( e );\n\n\tif ( this.pressed && this.pressed === tool ) {\n\t\tthis.pressed.setActive( false );\n\t}\n};\n\n/**\n * Get the closest tool to a jQuery.Event.\n *\n * Only tool links are considered, which prevents other elements in the tool such as popups from\n * triggering tool group interactions.\n *\n * @private\n * @param {jQuery.Event} e\n * @return {OO.ui.Tool|null} Tool, `null` if none was found\n */\nOO.ui.ToolGroup.prototype.findTargetTool = function ( e ) {\n\tvar tool,\n\t\t$item = $( e.target ).closest( '.oo-ui-tool-link' );\n\n\tif ( $item.length ) {\n\t\ttool = $item.parent().data( 'oo-ui-tool' );\n\t}\n\n\treturn tool && !tool.isDisabled() ? tool : null;\n};\n\n/**\n * Handle tool registry register events.\n *\n * If a tool is registered after the group is created, we must repopulate the list to account for:\n *\n * - a tool being added that may be included\n * - a tool already included being overridden\n *\n * @protected\n * @param {string} name Symbolic name of tool\n */\nOO.ui.ToolGroup.prototype.onToolFactoryRegister = function () {\n\tthis.populate();\n};\n\n/**\n * Get the toolbar that contains the toolgroup.\n *\n * @return {OO.ui.Toolbar} Toolbar that contains the toolgroup\n */\nOO.ui.ToolGroup.prototype.getToolbar = function () {\n\treturn this.toolbar;\n};\n\n/**\n * Add and remove tools based on configuration.\n */\nOO.ui.ToolGroup.prototype.populate = function () {\n\tvar i, len, name, tool,\n\t\ttoolFactory = this.toolbar.getToolFactory(),\n\t\tnames = {},\n\t\tadd = [],\n\t\tremove = [],\n\t\tlist = this.toolbar.getToolFactory().getTools(\n\t\t\tthis.include, this.exclude, this.promote, this.demote\n\t\t);\n\n\t// Build a list of needed tools\n\tfor ( i = 0, len = list.length; i < len; i++ ) {\n\t\tname = list[ i ];\n\t\tif (\n\t\t\t// Tool exists\n\t\t\ttoolFactory.lookup( name ) &&\n\t\t\t// Tool is available or is already in this group\n\t\t\t( this.toolbar.isToolAvailable( name ) || this.tools[ name ] )\n\t\t) {\n\t\t\t// Hack to prevent infinite recursion via ToolGroupTool. We need to reserve the tool before\n\t\t\t// creating it, but we can't call reserveTool() yet because we haven't created the tool.\n\t\t\tthis.toolbar.tools[ name ] = true;\n\t\t\ttool = this.tools[ name ];\n\t\t\tif ( !tool ) {\n\t\t\t\t// Auto-initialize tools on first use\n\t\t\t\tthis.tools[ name ] = tool = toolFactory.create( name, this );\n\t\t\t\ttool.updateTitle();\n\t\t\t}\n\t\t\tthis.toolbar.reserveTool( tool );\n\t\t\tadd.push( tool );\n\t\t\tnames[ name ] = true;\n\t\t}\n\t}\n\t// Remove tools that are no longer needed\n\tfor ( name in this.tools ) {\n\t\tif ( !names[ name ] ) {\n\t\t\tthis.tools[ name ].destroy();\n\t\t\tthis.toolbar.releaseTool( this.tools[ name ] );\n\t\t\tremove.push( this.tools[ name ] );\n\t\t\tdelete this.tools[ name ];\n\t\t}\n\t}\n\tif ( remove.length ) {\n\t\tthis.removeItems( remove );\n\t}\n\t// Update emptiness state\n\tif ( add.length ) {\n\t\tthis.$element.removeClass( 'oo-ui-toolGroup-empty' );\n\t} else {\n\t\tthis.$element.addClass( 'oo-ui-toolGroup-empty' );\n\t}\n\t// Re-add tools (moving existing ones to new locations)\n\tthis.addItems( add );\n\t// Disabled state may depend on items\n\tthis.updateDisabled();\n};\n\n/**\n * Destroy toolgroup.\n */\nOO.ui.ToolGroup.prototype.destroy = function () {\n\tvar name;\n\n\tthis.clearItems();\n\tthis.toolbar.getToolFactory().disconnect( this );\n\tfor ( name in this.tools ) {\n\t\tthis.toolbar.releaseTool( this.tools[ name ] );\n\t\tthis.tools[ name ].disconnect( this ).destroy();\n\t\tdelete this.tools[ name ];\n\t}\n\tthis.$element.remove();\n};\n","/**\n * A ToolFactory creates tools on demand. All tools ({@link OO.ui.Tool Tools}, {@link OO.ui.PopupTool PopupTools},\n * and {@link OO.ui.ToolGroupTool ToolGroupTools}) must be registered with a tool factory. Tools are\n * registered by their symbolic name. See {@link OO.ui.Toolbar toolbars} for an example.\n *\n * For more information about toolbars in general, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars\n *\n * @class\n * @extends OO.Factory\n * @constructor\n */\nOO.ui.ToolFactory = function OoUiToolFactory() {\n\t// Parent constructor\n\tOO.ui.ToolFactory.parent.call( this );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ToolFactory, OO.Factory );\n\n/* Methods */\n\n/**\n * Get tools from the factory\n *\n * @param {Array|string} [include] Included tools, see #extract for format\n * @param {Array|string} [exclude] Excluded tools, see #extract for format\n * @param {Array|string} [promote] Promoted tools, see #extract for format\n * @param {Array|string} [demote] Demoted tools, see #extract for format\n * @return {string[]} List of tools\n */\nOO.ui.ToolFactory.prototype.getTools = function ( include, exclude, promote, demote ) {\n\tvar i, len, included, promoted, demoted,\n\t\tauto = [],\n\t\tused = {};\n\n\t// Collect included and not excluded tools\n\tincluded = OO.simpleArrayDifference( this.extract( include ), this.extract( exclude ) );\n\n\t// Promotion\n\tpromoted = this.extract( promote, used );\n\tdemoted = this.extract( demote, used );\n\n\t// Auto\n\tfor ( i = 0, len = included.length; i < len; i++ ) {\n\t\tif ( !used[ included[ i ] ] ) {\n\t\t\tauto.push( included[ i ] );\n\t\t}\n\t}\n\n\treturn promoted.concat( auto ).concat( demoted );\n};\n\n/**\n * Get a flat list of names from a list of names or groups.\n *\n * Normally, `collection` is an array of tool specifications. Tools can be specified in the\n * following ways:\n *\n * - To include an individual tool, use the symbolic name: `{ name: 'tool-name' }` or `'tool-name'`.\n * - To include all tools in a group, use the group name: `{ group: 'group-name' }`. (To assign the\n *   tool to a group, use OO.ui.Tool.static.group.)\n *\n * Alternatively, to include all tools that are not yet assigned to any other toolgroup, use the\n * catch-all selector `'*'`.\n *\n * If `used` is passed, tool names that appear as properties in this object will be considered\n * already assigned, and will not be returned even if specified otherwise. The tool names extracted\n * by this function call will be added as new properties in the object.\n *\n * @private\n * @param {Array|string} collection List of tools, see above\n * @param {Object} [used] Object containing information about used tools, see above\n * @return {string[]} List of extracted tool names\n */\nOO.ui.ToolFactory.prototype.extract = function ( collection, used ) {\n\tvar i, len, item, name, tool,\n\t\tnames = [];\n\n\tcollection = !Array.isArray( collection ) ? [ collection ] : collection;\n\n\tfor ( i = 0, len = collection.length; i < len; i++ ) {\n\t\titem = collection[ i ];\n\t\tif ( item === '*' ) {\n\t\t\tfor ( name in this.registry ) {\n\t\t\t\ttool = this.registry[ name ];\n\t\t\t\tif (\n\t\t\t\t\t// Only add tools by group name when auto-add is enabled\n\t\t\t\t\ttool.static.autoAddToCatchall &&\n\t\t\t\t\t// Exclude already used tools\n\t\t\t\t\t( !used || !used[ name ] )\n\t\t\t\t) {\n\t\t\t\t\tnames.push( name );\n\t\t\t\t\tif ( used ) {\n\t\t\t\t\t\tused[ name ] = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// Allow plain strings as shorthand for named tools\n\t\t\tif ( typeof item === 'string' ) {\n\t\t\t\titem = { name: item };\n\t\t\t}\n\t\t\tif ( OO.isPlainObject( item ) ) {\n\t\t\t\tif ( item.group ) {\n\t\t\t\t\tfor ( name in this.registry ) {\n\t\t\t\t\t\ttool = this.registry[ name ];\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t// Include tools with matching group\n\t\t\t\t\t\t\ttool.static.group === item.group &&\n\t\t\t\t\t\t\t// Only add tools by group name when auto-add is enabled\n\t\t\t\t\t\t\ttool.static.autoAddToGroup &&\n\t\t\t\t\t\t\t// Exclude already used tools\n\t\t\t\t\t\t\t( !used || !used[ name ] )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tnames.push( name );\n\t\t\t\t\t\t\tif ( used ) {\n\t\t\t\t\t\t\t\tused[ name ] = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t// Include tools with matching name and exclude already used tools\n\t\t\t\t} else if ( item.name && ( !used || !used[ item.name ] ) ) {\n\t\t\t\t\tnames.push( item.name );\n\t\t\t\t\tif ( used ) {\n\t\t\t\t\t\tused[ item.name ] = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn names;\n};\n","/**\n * ToolGroupFactories create {@link OO.ui.ToolGroup toolgroups} on demand. The toolgroup classes must\n * specify a symbolic name and be registered with the factory. The following classes are registered by\n * default:\n *\n * - {@link OO.ui.BarToolGroup BarToolGroups} (‘bar’)\n * - {@link OO.ui.MenuToolGroup MenuToolGroups} (‘menu’)\n * - {@link OO.ui.ListToolGroup ListToolGroups} (‘list’)\n *\n * See {@link OO.ui.Toolbar toolbars} for an example.\n *\n * For more information about toolbars in general, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars\n *\n * @class\n * @extends OO.Factory\n * @constructor\n */\nOO.ui.ToolGroupFactory = function OoUiToolGroupFactory() {\n\tvar i, l, defaultClasses;\n\t// Parent constructor\n\tOO.Factory.call( this );\n\n\tdefaultClasses = this.constructor.static.getDefaultClasses();\n\n\t// Register default toolgroups\n\tfor ( i = 0, l = defaultClasses.length; i < l; i++ ) {\n\t\tthis.register( defaultClasses[ i ] );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ToolGroupFactory, OO.Factory );\n\n/* Static Methods */\n\n/**\n * Get a default set of classes to be registered on construction.\n *\n * @return {Function[]} Default classes\n */\nOO.ui.ToolGroupFactory.static.getDefaultClasses = function () {\n\treturn [\n\t\tOO.ui.BarToolGroup,\n\t\tOO.ui.ListToolGroup,\n\t\tOO.ui.MenuToolGroup\n\t];\n};\n","/**\n * Popup tools open a popup window when they are selected from the {@link OO.ui.Toolbar toolbar}. Each popup tool is configured\n * with a static name, title, and icon, as well with as any popup configurations. Unlike other tools, popup tools do not require that developers specify\n * an #onSelect or #onUpdateState method, as these methods have been implemented already.\n *\n *     // Example of a popup tool. When selected, a popup tool displays\n *     // a popup window.\n *     function HelpTool( toolGroup, config ) {\n *        OO.ui.PopupTool.call( this, toolGroup, $.extend( { popup: {\n *            padded: true,\n *            label: 'Help',\n *            head: true\n *        } }, config ) );\n *        this.popup.$body.append( '<p>I am helpful!</p>' );\n *     };\n *     OO.inheritClass( HelpTool, OO.ui.PopupTool );\n *     HelpTool.static.name = 'help';\n *     HelpTool.static.icon = 'help';\n *     HelpTool.static.title = 'Help';\n *     toolFactory.register( HelpTool );\n *\n * For an example of a toolbar that contains a popup tool, see {@link OO.ui.Toolbar toolbars}. For more information about\n * toolbars in general, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars\n *\n * @abstract\n * @class\n * @extends OO.ui.Tool\n * @mixins OO.ui.mixin.PopupElement\n *\n * @constructor\n * @param {OO.ui.ToolGroup} toolGroup\n * @param {Object} [config] Configuration options\n */\nOO.ui.PopupTool = function OoUiPopupTool( toolGroup, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolGroup ) && config === undefined ) {\n\t\tconfig = toolGroup;\n\t\ttoolGroup = config.toolGroup;\n\t}\n\n\t// Parent constructor\n\tOO.ui.PopupTool.parent.call( this, toolGroup, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.PopupElement.call( this, config );\n\n\t// Events\n\tthis.popup.connect( this, { toggle: 'onPopupToggle' } );\n\n\t// Initialization\n\tthis.popup.setAutoFlip( false );\n\tthis.popup.setPosition( toolGroup.getToolbar().position === 'bottom' ? 'above' : 'below' );\n\tthis.$element.addClass( 'oo-ui-popupTool' );\n\tthis.popup.$element.addClass( 'oo-ui-popupTool-popup' );\n\tthis.toolbar.$popups.append( this.popup.$element );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.PopupTool, OO.ui.Tool );\nOO.mixinClass( OO.ui.PopupTool, OO.ui.mixin.PopupElement );\n\n/* Methods */\n\n/**\n * Handle the tool being selected.\n *\n * @inheritdoc\n */\nOO.ui.PopupTool.prototype.onSelect = function () {\n\tif ( !this.isDisabled() ) {\n\t\tthis.popup.toggle();\n\t}\n\treturn false;\n};\n\n/**\n * Handle the toolbar state being updated.\n *\n * @inheritdoc\n */\nOO.ui.PopupTool.prototype.onUpdateState = function () {\n};\n\n/**\n * Handle popup visibility being toggled.\n *\n * @param {boolean} isVisible\n */\nOO.ui.PopupTool.prototype.onPopupToggle = function ( isVisible ) {\n\tthis.setActive( isVisible );\n\tthis.toolGroup.emit( 'active', isVisible );\n};\n","/**\n * A ToolGroupTool is a special sort of tool that can contain other {@link OO.ui.Tool tools}\n * and {@link OO.ui.ToolGroup toolgroups}. The ToolGroupTool was specifically designed to be used\n * inside a {@link OO.ui.BarToolGroup bar} toolgroup to provide access to additional tools from\n * the bar item. Included tools will be displayed in a dropdown {@link OO.ui.ListToolGroup list}\n * when the ToolGroupTool is selected.\n *\n *     // Example: ToolGroupTool with two nested tools, 'setting1' and 'setting2', defined elsewhere.\n *\n *     function SettingsTool() {\n *         SettingsTool.parent.apply( this, arguments );\n *     };\n *     OO.inheritClass( SettingsTool, OO.ui.ToolGroupTool );\n *     SettingsTool.static.name = 'settings';\n *     SettingsTool.static.title = 'Change settings';\n *     SettingsTool.static.groupConfig = {\n *         icon: 'settings',\n *         label: 'ToolGroupTool',\n *         include: [  'setting1', 'setting2'  ]\n *     };\n *     toolFactory.register( SettingsTool );\n *\n * For more information, please see the [OOUI documentation on MediaWiki][1].\n *\n * Please note that this implementation is subject to change per [T74159] [2].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars#ToolGroupTool\n * [2]: https://phabricator.wikimedia.org/T74159\n *\n * @abstract\n * @class\n * @extends OO.ui.Tool\n *\n * @constructor\n * @param {OO.ui.ToolGroup} toolGroup\n * @param {Object} [config] Configuration options\n */\nOO.ui.ToolGroupTool = function OoUiToolGroupTool( toolGroup, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolGroup ) && config === undefined ) {\n\t\tconfig = toolGroup;\n\t\ttoolGroup = config.toolGroup;\n\t}\n\n\t// Parent constructor\n\tOO.ui.ToolGroupTool.parent.call( this, toolGroup, config );\n\n\t// Properties\n\tthis.innerToolGroup = this.createGroup( this.constructor.static.groupConfig );\n\n\t// Events\n\tthis.innerToolGroup.connect( this, {\n\t\tdisable: 'onToolGroupDisable',\n\t\t// Re-emit active events from the innerToolGroup on the parent toolGroup\n\t\tactive: this.toolGroup.emit.bind( this.toolGroup, 'active' )\n\t} );\n\n\t// Initialization\n\tthis.$link.remove();\n\tthis.$element\n\t\t.addClass( 'oo-ui-toolGroupTool' )\n\t\t.append( this.innerToolGroup.$element );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ToolGroupTool, OO.ui.Tool );\n\n/* Static Properties */\n\n/**\n * Toolgroup configuration.\n *\n * The toolgroup configuration consists of the tools to include, as well as an icon and label\n * to use for the bar item. Tools can be included by symbolic name, group, or with the\n * wildcard selector. Please see {@link OO.ui.ToolGroup toolgroup} for more information.\n *\n * @property {Object.<string,Array>}\n */\nOO.ui.ToolGroupTool.static.groupConfig = {};\n\n/* Methods */\n\n/**\n * Handle the tool being selected.\n *\n * @inheritdoc\n */\nOO.ui.ToolGroupTool.prototype.onSelect = function () {\n\tthis.innerToolGroup.setActive( !this.innerToolGroup.active );\n\treturn false;\n};\n\n/**\n * Synchronize disabledness state of the tool with the inner toolgroup.\n *\n * @private\n * @param {boolean} disabled Element is disabled\n */\nOO.ui.ToolGroupTool.prototype.onToolGroupDisable = function ( disabled ) {\n\tthis.setDisabled( disabled );\n};\n\n/**\n * Handle the toolbar state being updated.\n *\n * @inheritdoc\n */\nOO.ui.ToolGroupTool.prototype.onUpdateState = function () {\n\tthis.setActive( false );\n};\n\n/**\n * Build a {@link OO.ui.ToolGroup toolgroup} from the specified configuration.\n *\n * @param {Object.<string,Array>} group Toolgroup configuration. Please see {@link OO.ui.ToolGroup toolgroup} for\n *  more information.\n * @return {OO.ui.ListToolGroup}\n */\nOO.ui.ToolGroupTool.prototype.createGroup = function ( group ) {\n\tif ( group.include === '*' ) {\n\t\t// Apply defaults to catch-all groups\n\t\tif ( group.label === undefined ) {\n\t\t\tgroup.label = OO.ui.msg( 'ooui-toolbar-more' );\n\t\t}\n\t}\n\n\treturn this.toolbar.getToolGroupFactory().create( 'list', this.toolbar, group );\n};\n","/**\n * BarToolGroups are one of three types of {@link OO.ui.ToolGroup toolgroups} that are used to\n * create {@link OO.ui.Toolbar toolbars} (the other types of groups are {@link OO.ui.MenuToolGroup MenuToolGroup}\n * and {@link OO.ui.ListToolGroup ListToolGroup}). The {@link OO.ui.Tool tools} in a BarToolGroup are\n * displayed by icon in a single row. The title of the tool is displayed when users move the mouse over\n * the tool.\n *\n * BarToolGroups are created by a {@link OO.ui.ToolGroupFactory tool group factory} when the toolbar is\n * set up.\n *\n *     @example\n *     // Example of a BarToolGroup with two tools\n *     var toolFactory = new OO.ui.ToolFactory();\n *     var toolGroupFactory = new OO.ui.ToolGroupFactory();\n *     var toolbar = new OO.ui.Toolbar( toolFactory, toolGroupFactory );\n *\n *     // We will be placing status text in this element when tools are used\n *     var $area = $( '<p>' ).text( 'Example of a BarToolGroup with two tools.' );\n *\n *     // Define the tools that we're going to place in our toolbar\n *\n *     // Create a class inheriting from OO.ui.Tool\n *     function SearchTool() {\n *         SearchTool.parent.apply( this, arguments );\n *     }\n *     OO.inheritClass( SearchTool, OO.ui.Tool );\n *     // Each tool must have a 'name' (used as an internal identifier, see later) and at least one\n *     // of 'icon' and 'title' (displayed icon and text).\n *     SearchTool.static.name = 'search';\n *     SearchTool.static.icon = 'search';\n *     SearchTool.static.title = 'Search...';\n *     // Defines the action that will happen when this tool is selected (clicked).\n *     SearchTool.prototype.onSelect = function () {\n *         $area.text( 'Search tool clicked!' );\n *         // Never display this tool as \"active\" (selected).\n *         this.setActive( false );\n *     };\n *     SearchTool.prototype.onUpdateState = function () {};\n *     // Make this tool available in our toolFactory and thus our toolbar\n *     toolFactory.register( SearchTool );\n *\n *     // This is a PopupTool. Rather than having a custom 'onSelect' action, it will display a\n *     // little popup window (a PopupWidget).\n *     function HelpTool( toolGroup, config ) {\n *         OO.ui.PopupTool.call( this, toolGroup, $.extend( { popup: {\n *             padded: true,\n *             label: 'Help',\n *             head: true\n *         } }, config ) );\n *         this.popup.$body.append( '<p>I am helpful!</p>' );\n *     }\n *     OO.inheritClass( HelpTool, OO.ui.PopupTool );\n *     HelpTool.static.name = 'help';\n *     HelpTool.static.icon = 'help';\n *     HelpTool.static.title = 'Help';\n *     toolFactory.register( HelpTool );\n *\n *     // Finally define which tools and in what order appear in the toolbar. Each tool may only be\n *     // used once (but not all defined tools must be used).\n *     toolbar.setup( [\n *         {\n *             // 'bar' tool groups display tools by icon only\n *             type: 'bar',\n *             include: [ 'search', 'help' ]\n *         }\n *     ] );\n *\n *     // Create some UI around the toolbar and place it in the document\n *     var frame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         framed: true\n *     } );\n *     var contentFrame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         padded: true\n *     } );\n *     frame.$element.append(\n *         toolbar.$element,\n *         contentFrame.$element.append( $area )\n *     );\n *     $( 'body' ).append( frame.$element );\n *\n *     // Here is where the toolbar is actually built. This must be done after inserting it into the\n *     // document.\n *     toolbar.initialize();\n *\n * For more information about how to add tools to a bar tool group, please see {@link OO.ui.ToolGroup toolgroup}.\n * For more information about toolbars in general, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars\n *\n * @class\n * @extends OO.ui.ToolGroup\n *\n * @constructor\n * @param {OO.ui.Toolbar} toolbar\n * @param {Object} [config] Configuration options\n */\nOO.ui.BarToolGroup = function OoUiBarToolGroup( toolbar, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolbar ) && config === undefined ) {\n\t\tconfig = toolbar;\n\t\ttoolbar = config.toolbar;\n\t}\n\n\t// Parent constructor\n\tOO.ui.BarToolGroup.parent.call( this, toolbar, config );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-barToolGroup' );\n\tthis.$group.addClass( 'oo-ui-barToolGroup-tools' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.BarToolGroup, OO.ui.ToolGroup );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.BarToolGroup.static.titleTooltips = true;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.BarToolGroup.static.accelTooltips = true;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.BarToolGroup.static.name = 'bar';\n","/**\n * PopupToolGroup is an abstract base class used by both {@link OO.ui.MenuToolGroup MenuToolGroup}\n * and {@link OO.ui.ListToolGroup ListToolGroup} to provide a popup (an overlaid menu or list of tools with an\n * optional icon and label). This class can be used for other base classes that also use this functionality.\n *\n * @abstract\n * @class\n * @extends OO.ui.ToolGroup\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.TitledElement\n * @mixins OO.ui.mixin.FlaggedElement\n * @mixins OO.ui.mixin.ClippableElement\n * @mixins OO.ui.mixin.FloatableElement\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {OO.ui.Toolbar} toolbar\n * @param {Object} [config] Configuration options\n * @cfg {string} [header] Text to display at the top of the popup\n */\nOO.ui.PopupToolGroup = function OoUiPopupToolGroup( toolbar, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolbar ) && config === undefined ) {\n\t\tconfig = toolbar;\n\t\ttoolbar = config.toolbar;\n\t}\n\n\t// Configuration initialization\n\tconfig = $.extend( {\n\t\tindicator: config.indicator === undefined ? ( toolbar.position === 'bottom' ? 'up' : 'down' ) : config.indicator\n\t}, config );\n\n\t// Parent constructor\n\tOO.ui.PopupToolGroup.parent.call( this, toolbar, config );\n\n\t// Properties\n\tthis.active = false;\n\tthis.dragging = false;\n\t// Don't conflict with parent method of the same name\n\tthis.onPopupDocumentMouseKeyUpHandler = this.onPopupDocumentMouseKeyUp.bind( this );\n\tthis.$handle = $( '<span>' );\n\n\t// Mixin constructors\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.TitledElement.call( this, config );\n\tOO.ui.mixin.FlaggedElement.call( this, config );\n\tOO.ui.mixin.ClippableElement.call( this, $.extend( {}, config, { $clippable: this.$group } ) );\n\tOO.ui.mixin.FloatableElement.call( this, $.extend( {}, config, {\n\t\t$floatable: this.$group,\n\t\t$floatableContainer: this.$handle,\n\t\thideWhenOutOfView: false,\n\t\tverticalPosition: this.toolbar.position === 'bottom' ? 'above' : 'below'\n\t} ) );\n\tOO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$handle } ) );\n\n\t// Events\n\tthis.$handle.on( {\n\t\tkeydown: this.onHandleMouseKeyDown.bind( this ),\n\t\tkeyup: this.onHandleMouseKeyUp.bind( this ),\n\t\tmousedown: this.onHandleMouseKeyDown.bind( this ),\n\t\tmouseup: this.onHandleMouseKeyUp.bind( this )\n\t} );\n\n\t// Initialization\n\tthis.$handle\n\t\t.addClass( 'oo-ui-popupToolGroup-handle' )\n\t\t.attr( 'role', 'button' )\n\t\t.append( this.$icon, this.$label, this.$indicator );\n\t// If the pop-up should have a header, add it to the top of the toolGroup.\n\t// Note: If this feature is useful for other widgets, we could abstract it into an\n\t// OO.ui.HeaderedElement mixin constructor.\n\tif ( config.header !== undefined ) {\n\t\tthis.$group\n\t\t\t.prepend( $( '<span>' )\n\t\t\t\t.addClass( 'oo-ui-popupToolGroup-header' )\n\t\t\t\t.text( config.header )\n\t\t\t);\n\t}\n\tthis.$element\n\t\t.addClass( 'oo-ui-popupToolGroup' )\n\t\t.prepend( this.$handle );\n\tthis.$group.addClass( 'oo-ui-popupToolGroup-tools' );\n\tthis.toolbar.$popups.append( this.$group );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.PopupToolGroup, OO.ui.ToolGroup );\nOO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.TitledElement );\nOO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.FlaggedElement );\nOO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.ClippableElement );\nOO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.FloatableElement );\nOO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.TabIndexedElement );\n\n/* Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.PopupToolGroup.prototype.setDisabled = function () {\n\t// Parent method\n\tOO.ui.PopupToolGroup.parent.prototype.setDisabled.apply( this, arguments );\n\n\tif ( this.isDisabled() && this.isElementAttached() ) {\n\t\tthis.setActive( false );\n\t}\n};\n\n/**\n * Handle document mouse up and key up events.\n *\n * @protected\n * @param {MouseEvent|KeyboardEvent} e Mouse up or key up event\n */\nOO.ui.PopupToolGroup.prototype.onPopupDocumentMouseKeyUp = function ( e ) {\n\tvar $target = $( e.target );\n\t// Only deactivate when clicking outside the dropdown element\n\tif ( $target.closest( '.oo-ui-popupToolGroup' )[ 0 ] === this.$element[ 0 ] ) {\n\t\treturn;\n\t}\n\tif ( $target.closest( '.oo-ui-popupToolGroup-tools' )[ 0 ] === this.$group[ 0 ] ) {\n\t\treturn;\n\t}\n\tthis.setActive( false );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.PopupToolGroup.prototype.onBlur = function () {\n\tOO.ui.warnDeprecation( 'onBlur is deprecated, use onPopupDocumentMouseKeyUp instead' );\n\tthis.onPopupDocumentMouseKeyUp.apply( this, arguments );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.PopupToolGroup.prototype.onMouseKeyUp = function ( e ) {\n\t// Only close toolgroup when a tool was actually selected\n\tif (\n\t\t!this.isDisabled() && this.pressed && this.pressed === this.findTargetTool( e ) &&\n\t\t( e.which === OO.ui.MouseButtons.LEFT || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )\n\t) {\n\t\tthis.setActive( false );\n\t}\n\treturn OO.ui.PopupToolGroup.parent.prototype.onMouseKeyUp.call( this, e );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.PopupToolGroup.prototype.onMouseKeyDown = function ( e ) {\n\tvar $focused, $firstFocusable, $lastFocusable;\n\t// Shift-Tab on the first tool in the group jumps to the handle.\n\t// Tab on the last tool in the group jumps to the next group.\n\tif ( !this.isDisabled() && e.which === OO.ui.Keys.TAB ) {\n\t\t// (We can't use this.items because ListToolGroup inserts the extra fake expand/collapse tool.)\n\t\t$focused = $( document.activeElement );\n\t\t$firstFocusable = OO.ui.findFocusable( this.$group );\n\t\tif ( $focused[ 0 ] === $firstFocusable[ 0 ] && e.shiftKey ) {\n\t\t\tthis.$handle.focus();\n\t\t\treturn false;\n\t\t}\n\t\t$lastFocusable = OO.ui.findFocusable( this.$group, true );\n\t\tif ( $focused[ 0 ] === $lastFocusable[ 0 ] && !e.shiftKey ) {\n\t\t\t// Focus this group's handle and let the browser's tab handling happen (no 'return false').\n\t\t\t// This way we don't have to fiddle with other ToolGroups' business, or worry what to do\n\t\t\t// if the next group is not a PopupToolGroup or doesn't exist at all.\n\t\t\tthis.$handle.focus();\n\t\t\t// Close the popup so that we don't move back inside it (if this is the last group).\n\t\t\tthis.setActive( false );\n\t\t}\n\t}\n\treturn OO.ui.PopupToolGroup.parent.prototype.onMouseKeyDown.call( this, e );\n};\n\n/**\n * Handle mouse up and key up events.\n *\n * @protected\n * @param {jQuery.Event} e Mouse up or key up event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.PopupToolGroup.prototype.onHandleMouseKeyUp = function ( e ) {\n\tif (\n\t\t!this.isDisabled() &&\n\t\t( e.which === OO.ui.MouseButtons.LEFT || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )\n\t) {\n\t\treturn false;\n\t}\n};\n\n/**\n * Handle mouse down and key down events.\n *\n * @protected\n * @param {jQuery.Event} e Mouse down or key down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.PopupToolGroup.prototype.onHandleMouseKeyDown = function ( e ) {\n\tvar $focusable;\n\tif ( !this.isDisabled() ) {\n\t\t// Tab on the handle jumps to the first tool in the group (if the popup is open).\n\t\tif ( e.which === OO.ui.Keys.TAB && !e.shiftKey ) {\n\t\t\t$focusable = OO.ui.findFocusable( this.$group );\n\t\t\tif ( $focusable.length ) {\n\t\t\t\t$focusable.focus();\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif ( e.which === OO.ui.MouseButtons.LEFT || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER ) {\n\t\t\tthis.setActive( !this.active );\n\t\t\treturn false;\n\t\t}\n\t}\n};\n\n/**\n * Check if the tool group is active.\n *\n * @return {boolean} Tool group is active\n */\nOO.ui.PopupToolGroup.prototype.isActive = function () {\n\treturn this.active;\n};\n\n/**\n * Switch into 'active' mode.\n *\n * When active, the popup is visible. A mouseup event anywhere in the document will trigger\n * deactivation.\n *\n * @param {boolean} value The active state to set\n * @fires active\n */\nOO.ui.PopupToolGroup.prototype.setActive = function ( value ) {\n\tvar containerWidth, containerLeft;\n\tvalue = !!value;\n\tif ( this.active !== value ) {\n\t\tthis.active = value;\n\t\tif ( value ) {\n\t\t\tthis.getElementDocument().addEventListener( 'mouseup', this.onPopupDocumentMouseKeyUpHandler, true );\n\t\t\tthis.getElementDocument().addEventListener( 'keyup', this.onPopupDocumentMouseKeyUpHandler, true );\n\n\t\t\tthis.$clippable.css( 'left', '' );\n\t\t\tthis.$element.addClass( 'oo-ui-popupToolGroup-active' );\n\t\t\tthis.$group.addClass( 'oo-ui-popupToolGroup-active-tools' );\n\t\t\tthis.togglePositioning( true );\n\t\t\tthis.toggleClipping( true );\n\n\t\t\t// Try anchoring the popup to the left first\n\t\t\tthis.setHorizontalPosition( 'start' );\n\n\t\t\tif ( this.isClippedHorizontally() || this.isFloatableOutOfView() ) {\n\t\t\t\t// Anchoring to the left caused the popup to clip, so anchor it to the right instead\n\t\t\t\tthis.setHorizontalPosition( 'end' );\n\t\t\t}\n\t\t\tif ( this.isClippedHorizontally() || this.isFloatableOutOfView() ) {\n\t\t\t\t// Anchoring to the right also caused the popup to clip, so just make it fill the container\n\t\t\t\tcontainerWidth = this.$clippableScrollableContainer.width();\n\t\t\t\tcontainerLeft = this.$clippableScrollableContainer[ 0 ] === document.documentElement ?\n\t\t\t\t\t0 :\n\t\t\t\t\tthis.$clippableScrollableContainer.offset().left;\n\n\t\t\t\tthis.toggleClipping( false );\n\t\t\t\tthis.setHorizontalPosition( 'start' );\n\n\t\t\t\tthis.$clippable.css( {\n\t\t\t\t\t'margin-left': -( this.$element.offset().left - containerLeft ),\n\t\t\t\t\twidth: containerWidth\n\t\t\t\t} );\n\t\t\t}\n\t\t} else {\n\t\t\tthis.getElementDocument().removeEventListener( 'mouseup', this.onPopupDocumentMouseKeyUpHandler, true );\n\t\t\tthis.getElementDocument().removeEventListener( 'keyup', this.onPopupDocumentMouseKeyUpHandler, true );\n\t\t\tthis.$element.removeClass( 'oo-ui-popupToolGroup-active' );\n\t\t\tthis.$group.removeClass( 'oo-ui-popupToolGroup-active-tools' );\n\t\t\tthis.togglePositioning( false );\n\t\t\tthis.toggleClipping( false );\n\t\t}\n\t\tthis.emit( 'active', this.active );\n\t\tthis.updateThemeClasses();\n\t}\n};\n","/**\n * ListToolGroups are one of three types of {@link OO.ui.ToolGroup toolgroups} that are used to\n * create {@link OO.ui.Toolbar toolbars} (the other types of groups are {@link OO.ui.MenuToolGroup MenuToolGroup}\n * and {@link OO.ui.BarToolGroup BarToolGroup}). The {@link OO.ui.Tool tools} in a ListToolGroup are displayed\n * by label in a dropdown menu. The title of the tool is used as the label text. The menu itself can be configured\n * with a label, icon, indicator, header, and title.\n *\n * ListToolGroups can be configured to be expanded and collapsed. Collapsed lists will have a ‘More’ option that\n * users can select to see the full list of tools. If a collapsed toolgroup is expanded, a ‘Fewer’ option permits\n * users to collapse the list again.\n *\n * ListToolGroups are created by a {@link OO.ui.ToolGroupFactory toolgroup factory} when the toolbar is set up. The factory\n * requires the ListToolGroup's symbolic name, 'list', which is specified along with the other configurations. For more\n * information about how to add tools to a ListToolGroup, please see {@link OO.ui.ToolGroup toolgroup}.\n *\n *     @example\n *     // Example of a ListToolGroup\n *     var toolFactory = new OO.ui.ToolFactory();\n *     var toolGroupFactory = new OO.ui.ToolGroupFactory();\n *     var toolbar = new OO.ui.Toolbar( toolFactory, toolGroupFactory );\n *\n *     // Configure and register two tools\n *     function SettingsTool() {\n *         SettingsTool.parent.apply( this, arguments );\n *     }\n *     OO.inheritClass( SettingsTool, OO.ui.Tool );\n *     SettingsTool.static.name = 'settings';\n *     SettingsTool.static.icon = 'settings';\n *     SettingsTool.static.title = 'Change settings';\n *     SettingsTool.prototype.onSelect = function () {\n *         this.setActive( false );\n *     };\n *     SettingsTool.prototype.onUpdateState = function () {};\n *     toolFactory.register( SettingsTool );\n *     // Register two more tools, nothing interesting here\n *     function StuffTool() {\n *         StuffTool.parent.apply( this, arguments );\n *     }\n *     OO.inheritClass( StuffTool, OO.ui.Tool );\n *     StuffTool.static.name = 'stuff';\n *     StuffTool.static.icon = 'search';\n *     StuffTool.static.title = 'Change the world';\n *     StuffTool.prototype.onSelect = function () {\n *         this.setActive( false );\n *     };\n *     StuffTool.prototype.onUpdateState = function () {};\n *     toolFactory.register( StuffTool );\n *     toolbar.setup( [\n *         {\n *             // Configurations for list toolgroup.\n *             type: 'list',\n *             label: 'ListToolGroup',\n *             icon: 'ellipsis',\n *             title: 'This is the title, displayed when user moves the mouse over the list toolgroup',\n *             header: 'This is the header',\n *             include: [ 'settings', 'stuff' ],\n *             allowCollapse: ['stuff']\n *         }\n *     ] );\n *\n *     // Create some UI around the toolbar and place it in the document\n *     var frame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         framed: true\n *     } );\n *     frame.$element.append(\n *         toolbar.$element\n *     );\n *     $( 'body' ).append( frame.$element );\n *     // Build the toolbar. This must be done after the toolbar has been appended to the document.\n *     toolbar.initialize();\n *\n * For more information about toolbars in general, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars\n *\n * @class\n * @extends OO.ui.PopupToolGroup\n *\n * @constructor\n * @param {OO.ui.Toolbar} toolbar\n * @param {Object} [config] Configuration options\n * @cfg {Array} [allowCollapse] Allow the specified tools to be collapsed. By default, collapsible tools\n *  will only be displayed if users click the ‘More’ option displayed at the bottom of the list. If\n *  the list is expanded, a ‘Fewer’ option permits users to collapse the list again. Any tools that\n *  are included in the toolgroup, but are not designated as collapsible, will always be displayed.\n *  To open a collapsible list in its expanded state, set #expanded to 'true'.\n * @cfg {Array} [forceExpand] Expand the specified tools. All other tools will be designated as collapsible.\n *  Unless #expanded is set to true, the collapsible tools will be collapsed when the list is first opened.\n * @cfg {boolean} [expanded=false] Expand collapsible tools. This config is only relevant if tools have\n *  been designated as collapsible. When expanded is set to true, all tools in the group will be displayed\n *  when the list is first opened. Users can collapse the list with a ‘Fewer’ option at the bottom.\n */\nOO.ui.ListToolGroup = function OoUiListToolGroup( toolbar, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolbar ) && config === undefined ) {\n\t\tconfig = toolbar;\n\t\ttoolbar = config.toolbar;\n\t}\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties (must be set before parent constructor, which calls #populate)\n\tthis.allowCollapse = config.allowCollapse;\n\tthis.forceExpand = config.forceExpand;\n\tthis.expanded = config.expanded !== undefined ? config.expanded : false;\n\tthis.collapsibleTools = [];\n\n\t// Parent constructor\n\tOO.ui.ListToolGroup.parent.call( this, toolbar, config );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-listToolGroup' );\n\tthis.$group.addClass( 'oo-ui-listToolGroup-tools' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ListToolGroup, OO.ui.PopupToolGroup );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.ListToolGroup.static.name = 'list';\n\n/* Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.ListToolGroup.prototype.populate = function () {\n\tvar i, len, allowCollapse = [];\n\n\tOO.ui.ListToolGroup.parent.prototype.populate.call( this );\n\n\t// Update the list of collapsible tools\n\tif ( this.allowCollapse !== undefined ) {\n\t\tallowCollapse = this.allowCollapse;\n\t} else if ( this.forceExpand !== undefined ) {\n\t\tallowCollapse = OO.simpleArrayDifference( Object.keys( this.tools ), this.forceExpand );\n\t}\n\n\tthis.collapsibleTools = [];\n\tfor ( i = 0, len = allowCollapse.length; i < len; i++ ) {\n\t\tif ( this.tools[ allowCollapse[ i ] ] !== undefined ) {\n\t\t\tthis.collapsibleTools.push( this.tools[ allowCollapse[ i ] ] );\n\t\t}\n\t}\n\n\t// Keep at the end, even when tools are added\n\tthis.$group.append( this.getExpandCollapseTool().$element );\n\n\tthis.getExpandCollapseTool().toggle( this.collapsibleTools.length !== 0 );\n\tthis.updateCollapsibleState();\n};\n\n/**\n * Get the expand/collapse tool for this group\n *\n * @return {OO.ui.Tool} Expand collapse tool\n */\nOO.ui.ListToolGroup.prototype.getExpandCollapseTool = function () {\n\tvar ExpandCollapseTool;\n\tif ( this.expandCollapseTool === undefined ) {\n\t\tExpandCollapseTool = function () {\n\t\t\tExpandCollapseTool.parent.apply( this, arguments );\n\t\t};\n\n\t\tOO.inheritClass( ExpandCollapseTool, OO.ui.Tool );\n\n\t\tExpandCollapseTool.prototype.onSelect = function () {\n\t\t\tthis.toolGroup.expanded = !this.toolGroup.expanded;\n\t\t\tthis.toolGroup.updateCollapsibleState();\n\t\t\tthis.setActive( false );\n\t\t};\n\t\tExpandCollapseTool.prototype.onUpdateState = function () {\n\t\t\t// Do nothing. Tool interface requires an implementation of this function.\n\t\t};\n\n\t\tExpandCollapseTool.static.name = 'more-fewer';\n\n\t\tthis.expandCollapseTool = new ExpandCollapseTool( this );\n\t}\n\treturn this.expandCollapseTool;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ListToolGroup.prototype.onMouseKeyUp = function ( e ) {\n\t// Do not close the popup when the user wants to show more/fewer tools\n\tif (\n\t\t$( e.target ).closest( '.oo-ui-tool-name-more-fewer' ).length &&\n\t\t( e.which === OO.ui.MouseButtons.LEFT || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )\n\t) {\n\t\t// HACK: Prevent the popup list from being hidden. Skip the PopupToolGroup implementation (which\n\t\t// hides the popup list when a tool is selected) and call ToolGroup's implementation directly.\n\t\treturn OO.ui.ListToolGroup.parent.parent.prototype.onMouseKeyUp.call( this, e );\n\t} else {\n\t\treturn OO.ui.ListToolGroup.parent.prototype.onMouseKeyUp.call( this, e );\n\t}\n};\n\nOO.ui.ListToolGroup.prototype.updateCollapsibleState = function () {\n\tvar i, icon, len;\n\n\tif ( this.toolbar.position !== 'bottom' ) {\n\t\ticon = this.expanded ? 'collapse' : 'expand';\n\t} else {\n\t\ticon = this.expanded ? 'expand' : 'collapse';\n\t}\n\n\tthis.getExpandCollapseTool()\n\t\t.setIcon( icon )\n\t\t.setTitle( OO.ui.msg( this.expanded ? 'ooui-toolgroup-collapse' : 'ooui-toolgroup-expand' ) );\n\n\tfor ( i = 0, len = this.collapsibleTools.length; i < len; i++ ) {\n\t\tthis.collapsibleTools[ i ].toggle( this.expanded );\n\t}\n\n\t// Re-evaluate clipping, because our height has changed\n\tthis.clip();\n};\n","/**\n * MenuToolGroups are one of three types of {@link OO.ui.ToolGroup toolgroups} that are used to\n * create {@link OO.ui.Toolbar toolbars} (the other types of groups are {@link OO.ui.BarToolGroup BarToolGroup}\n * and {@link OO.ui.ListToolGroup ListToolGroup}). MenuToolGroups contain selectable {@link OO.ui.Tool tools},\n * which are displayed by label in a dropdown menu. The tool's title is used as the label text, and the\n * menu label is updated to reflect which tool or tools are currently selected. If no tools are selected,\n * the menu label is empty. The menu can be configured with an indicator, icon, title, and/or header.\n *\n * MenuToolGroups are created by a {@link OO.ui.ToolGroupFactory tool group factory} when the toolbar\n * is set up.\n *\n *     @example\n *     // Example of a MenuToolGroup\n *     var toolFactory = new OO.ui.ToolFactory();\n *     var toolGroupFactory = new OO.ui.ToolGroupFactory();\n *     var toolbar = new OO.ui.Toolbar( toolFactory, toolGroupFactory );\n *\n *     // We will be placing status text in this element when tools are used\n *     var $area = $( '<p>' ).text( 'An example of a MenuToolGroup. Select a tool from the dropdown menu.' );\n *\n *     // Define the tools that we're going to place in our toolbar\n *\n *     function SettingsTool() {\n *         SettingsTool.parent.apply( this, arguments );\n *         this.reallyActive = false;\n *     }\n *     OO.inheritClass( SettingsTool, OO.ui.Tool );\n *     SettingsTool.static.name = 'settings';\n *     SettingsTool.static.icon = 'settings';\n *     SettingsTool.static.title = 'Change settings';\n *     SettingsTool.prototype.onSelect = function () {\n *         $area.text( 'Settings tool clicked!' );\n *         // Toggle the active state on each click\n *         this.reallyActive = !this.reallyActive;\n *         this.setActive( this.reallyActive );\n *         // To update the menu label\n *         this.toolbar.emit( 'updateState' );\n *     };\n *     SettingsTool.prototype.onUpdateState = function () {};\n *     toolFactory.register( SettingsTool );\n *\n *     function StuffTool() {\n *         StuffTool.parent.apply( this, arguments );\n *         this.reallyActive = false;\n *     }\n *     OO.inheritClass( StuffTool, OO.ui.Tool );\n *     StuffTool.static.name = 'stuff';\n *     StuffTool.static.icon = 'ellipsis';\n *     StuffTool.static.title = 'More stuff';\n *     StuffTool.prototype.onSelect = function () {\n *         $area.text( 'More stuff tool clicked!' );\n *         // Toggle the active state on each click\n *         this.reallyActive = !this.reallyActive;\n *         this.setActive( this.reallyActive );\n *         // To update the menu label\n *         this.toolbar.emit( 'updateState' );\n *     };\n *     StuffTool.prototype.onUpdateState = function () {};\n *     toolFactory.register( StuffTool );\n *\n *     // Finally define which tools and in what order appear in the toolbar. Each tool may only be\n *     // used once (but not all defined tools must be used).\n *     toolbar.setup( [\n *         {\n *             type: 'menu',\n *             header: 'This is the (optional) header',\n *             title: 'This is the (optional) title',\n *             include: [ 'settings', 'stuff' ]\n *         }\n *     ] );\n *\n *     // Create some UI around the toolbar and place it in the document\n *     var frame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         framed: true\n *     } );\n *     var contentFrame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         padded: true\n *     } );\n *     frame.$element.append(\n *         toolbar.$element,\n *         contentFrame.$element.append( $area )\n *     );\n *     $( 'body' ).append( frame.$element );\n *\n *     // Here is where the toolbar is actually built. This must be done after inserting it into the\n *     // document.\n *     toolbar.initialize();\n *     toolbar.emit( 'updateState' );\n *\n * For more information about how to add tools to a MenuToolGroup, please see {@link OO.ui.ToolGroup toolgroup}.\n * For more information about toolbars in general, please see the [OOUI documentation on MediaWiki] [1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars\n *\n * @class\n * @extends OO.ui.PopupToolGroup\n *\n * @constructor\n * @param {OO.ui.Toolbar} toolbar\n * @param {Object} [config] Configuration options\n */\nOO.ui.MenuToolGroup = function OoUiMenuToolGroup( toolbar, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolbar ) && config === undefined ) {\n\t\tconfig = toolbar;\n\t\ttoolbar = config.toolbar;\n\t}\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.MenuToolGroup.parent.call( this, toolbar, config );\n\n\t// Events\n\tthis.toolbar.connect( this, { updateState: 'onUpdateState' } );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-menuToolGroup' );\n\tthis.$group.addClass( 'oo-ui-menuToolGroup-tools' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MenuToolGroup, OO.ui.PopupToolGroup );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.MenuToolGroup.static.name = 'menu';\n\n/* Methods */\n\n/**\n * Handle the toolbar state being updated.\n *\n * When the state changes, the title of each active item in the menu will be joined together and\n * used as a label for the group. The label will be empty if none of the items are active.\n *\n * @private\n */\nOO.ui.MenuToolGroup.prototype.onUpdateState = function () {\n\tvar name,\n\t\tlabelTexts = [];\n\n\tfor ( name in this.tools ) {\n\t\tif ( this.tools[ name ].isActive() ) {\n\t\t\tlabelTexts.push( this.tools[ name ].getTitle() );\n\t\t}\n\t}\n\n\tthis.setLabel( labelTexts.join( ', ' ) || ' ' );\n};\n","}( OO ) );\n"]}
\ No newline at end of file
+{"version":3,"sources":["../src/intro.js.txt","../src/Toolbar.js","../src/Tool.js","../src/ToolGroup.js","../src/ToolFactory.js","../src/ToolGroupFactory.js","../src/tools/PopupTool.js","../src/tools/ToolGroupTool.js","../src/toolgroups/BarToolGroup.js","../src/toolgroups/PopupToolGroup.js","../src/toolgroups/ListToolGroup.js","../src/toolgroups/MenuToolGroup.js","../src/outro.js.txt"],"names":[],"mappings":"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","file":"oojs-ui-toolbars.js","sourcesContent":["( function ( OO ) {\n\n'use strict';\n","/**\n * Toolbars are complex interface components that permit users to easily access a variety\n * of {@link OO.ui.Tool tools} (e.g., formatting commands) and actions, which are additional commands that are\n * part of the toolbar, but not configured as tools.\n *\n * Individual tools are customized and then registered with a {@link OO.ui.ToolFactory tool factory}, which creates\n * the tools on demand. Each tool has a symbolic name (used when registering the tool), a title (e.g., ‘Insert\n * image’), and an icon.\n *\n * Individual tools are organized in {@link OO.ui.ToolGroup toolgroups}, which can be {@link OO.ui.MenuToolGroup menus}\n * of tools, {@link OO.ui.ListToolGroup lists} of tools, or a single {@link OO.ui.BarToolGroup bar} of tools.\n * The arrangement and order of the toolgroups is customized when the toolbar is set up. Tools can be presented in\n * any order, but each can only appear once in the toolbar.\n *\n * The toolbar can be synchronized with the state of the external \"application\", like a text\n * editor's editing area, marking tools as active/inactive (e.g. a 'bold' tool would be shown as\n * active when the text cursor was inside bolded text) or enabled/disabled (e.g. a table caption\n * tool would be disabled while the user is not editing a table). A state change is signalled by\n * emitting the {@link #event-updateState 'updateState' event}, which calls Tools'\n * {@link OO.ui.Tool#onUpdateState onUpdateState method}.\n *\n * The following is an example of a basic toolbar.\n *\n *     @example\n *     // Example of a toolbar\n *     // Create the toolbar\n *     var toolFactory = new OO.ui.ToolFactory();\n *     var toolGroupFactory = new OO.ui.ToolGroupFactory();\n *     var toolbar = new OO.ui.Toolbar( toolFactory, toolGroupFactory );\n *\n *     // We will be placing status text in this element when tools are used\n *     var $area = $( '<p>' ).text( 'Toolbar example' );\n *\n *     // Define the tools that we're going to place in our toolbar\n *\n *     // Create a class inheriting from OO.ui.Tool\n *     function SearchTool() {\n *         SearchTool.parent.apply( this, arguments );\n *     }\n *     OO.inheritClass( SearchTool, OO.ui.Tool );\n *     // Each tool must have a 'name' (used as an internal identifier, see later) and at least one\n *     // of 'icon' and 'title' (displayed icon and text).\n *     SearchTool.static.name = 'search';\n *     SearchTool.static.icon = 'search';\n *     SearchTool.static.title = 'Search...';\n *     // Defines the action that will happen when this tool is selected (clicked).\n *     SearchTool.prototype.onSelect = function () {\n *         $area.text( 'Search tool clicked!' );\n *         // Never display this tool as \"active\" (selected).\n *         this.setActive( false );\n *     };\n *     SearchTool.prototype.onUpdateState = function () {};\n *     // Make this tool available in our toolFactory and thus our toolbar\n *     toolFactory.register( SearchTool );\n *\n *     // Register two more tools, nothing interesting here\n *     function SettingsTool() {\n *         SettingsTool.parent.apply( this, arguments );\n *     }\n *     OO.inheritClass( SettingsTool, OO.ui.Tool );\n *     SettingsTool.static.name = 'settings';\n *     SettingsTool.static.icon = 'settings';\n *     SettingsTool.static.title = 'Change settings';\n *     SettingsTool.prototype.onSelect = function () {\n *         $area.text( 'Settings tool clicked!' );\n *         this.setActive( false );\n *     };\n *     SettingsTool.prototype.onUpdateState = function () {};\n *     toolFactory.register( SettingsTool );\n *\n *     // Register two more tools, nothing interesting here\n *     function StuffTool() {\n *         StuffTool.parent.apply( this, arguments );\n *     }\n *     OO.inheritClass( StuffTool, OO.ui.Tool );\n *     StuffTool.static.name = 'stuff';\n *     StuffTool.static.icon = 'ellipsis';\n *     StuffTool.static.title = 'More stuff';\n *     StuffTool.prototype.onSelect = function () {\n *         $area.text( 'More stuff tool clicked!' );\n *         this.setActive( false );\n *     };\n *     StuffTool.prototype.onUpdateState = function () {};\n *     toolFactory.register( StuffTool );\n *\n *     // This is a PopupTool. Rather than having a custom 'onSelect' action, it will display a\n *     // little popup window (a PopupWidget).\n *     function HelpTool( toolGroup, config ) {\n *         OO.ui.PopupTool.call( this, toolGroup, $.extend( { popup: {\n *             padded: true,\n *             label: 'Help',\n *             head: true\n *         } }, config ) );\n *         this.popup.$body.append( '<p>I am helpful!</p>' );\n *     }\n *     OO.inheritClass( HelpTool, OO.ui.PopupTool );\n *     HelpTool.static.name = 'help';\n *     HelpTool.static.icon = 'help';\n *     HelpTool.static.title = 'Help';\n *     toolFactory.register( HelpTool );\n *\n *     // Finally define which tools and in what order appear in the toolbar. Each tool may only be\n *     // used once (but not all defined tools must be used).\n *     toolbar.setup( [\n *         {\n *             // 'bar' tool groups display tools' icons only, side-by-side.\n *             type: 'bar',\n *             include: [ 'search', 'help' ]\n *         },\n *         {\n *             // 'list' tool groups display both the titles and icons, in a dropdown list.\n *             type: 'list',\n *             indicator: 'down',\n *             label: 'More',\n *             include: [ 'settings', 'stuff' ]\n *         }\n *         // Note how the tools themselves are toolgroup-agnostic - the same tool can be displayed\n *         // either in a 'list' or a 'bar'. There is a 'menu' tool group too, not showcased here,\n *         // since it's more complicated to use. (See the next example snippet on this page.)\n *     ] );\n *\n *     // Create some UI around the toolbar and place it in the document\n *     var frame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         framed: true\n *     } );\n *     var contentFrame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         padded: true\n *     } );\n *     frame.$element.append(\n *         toolbar.$element,\n *         contentFrame.$element.append( $area )\n *     );\n *     $( document.body ).append( frame.$element );\n *\n *     // Here is where the toolbar is actually built. This must be done after inserting it into the\n *     // document.\n *     toolbar.initialize();\n *     toolbar.emit( 'updateState' );\n *\n * The following example extends the previous one to illustrate 'menu' toolgroups and the usage of\n * {@link #event-updateState 'updateState' event}.\n *\n *     @example\n *     // Create the toolbar\n *     var toolFactory = new OO.ui.ToolFactory();\n *     var toolGroupFactory = new OO.ui.ToolGroupFactory();\n *     var toolbar = new OO.ui.Toolbar( toolFactory, toolGroupFactory );\n *\n *     // We will be placing status text in this element when tools are used\n *     var $area = $( '<p>' ).text( 'Toolbar example' );\n *\n *     // Define the tools that we're going to place in our toolbar\n *\n *     // Create a class inheriting from OO.ui.Tool\n *     function SearchTool() {\n *         SearchTool.parent.apply( this, arguments );\n *     }\n *     OO.inheritClass( SearchTool, OO.ui.Tool );\n *     // Each tool must have a 'name' (used as an internal identifier, see later) and at least one\n *     // of 'icon' and 'title' (displayed icon and text).\n *     SearchTool.static.name = 'search';\n *     SearchTool.static.icon = 'search';\n *     SearchTool.static.title = 'Search...';\n *     // Defines the action that will happen when this tool is selected (clicked).\n *     SearchTool.prototype.onSelect = function () {\n *         $area.text( 'Search tool clicked!' );\n *         // Never display this tool as \"active\" (selected).\n *         this.setActive( false );\n *     };\n *     SearchTool.prototype.onUpdateState = function () {};\n *     // Make this tool available in our toolFactory and thus our toolbar\n *     toolFactory.register( SearchTool );\n *\n *     // Register two more tools, nothing interesting here\n *     function SettingsTool() {\n *         SettingsTool.parent.apply( this, arguments );\n *         this.reallyActive = false;\n *     }\n *     OO.inheritClass( SettingsTool, OO.ui.Tool );\n *     SettingsTool.static.name = 'settings';\n *     SettingsTool.static.icon = 'settings';\n *     SettingsTool.static.title = 'Change settings';\n *     SettingsTool.prototype.onSelect = function () {\n *         $area.text( 'Settings tool clicked!' );\n *         // Toggle the active state on each click\n *         this.reallyActive = !this.reallyActive;\n *         this.setActive( this.reallyActive );\n *         // To update the menu label\n *         this.toolbar.emit( 'updateState' );\n *     };\n *     SettingsTool.prototype.onUpdateState = function () {};\n *     toolFactory.register( SettingsTool );\n *\n *     // Register two more tools, nothing interesting here\n *     function StuffTool() {\n *         StuffTool.parent.apply( this, arguments );\n *         this.reallyActive = false;\n *     }\n *     OO.inheritClass( StuffTool, OO.ui.Tool );\n *     StuffTool.static.name = 'stuff';\n *     StuffTool.static.icon = 'ellipsis';\n *     StuffTool.static.title = 'More stuff';\n *     StuffTool.prototype.onSelect = function () {\n *         $area.text( 'More stuff tool clicked!' );\n *         // Toggle the active state on each click\n *         this.reallyActive = !this.reallyActive;\n *         this.setActive( this.reallyActive );\n *         // To update the menu label\n *         this.toolbar.emit( 'updateState' );\n *     };\n *     StuffTool.prototype.onUpdateState = function () {};\n *     toolFactory.register( StuffTool );\n *\n *     // This is a PopupTool. Rather than having a custom 'onSelect' action, it will display a\n *     // little popup window (a PopupWidget). 'onUpdateState' is also already implemented.\n *     function HelpTool( toolGroup, config ) {\n *         OO.ui.PopupTool.call( this, toolGroup, $.extend( { popup: {\n *             padded: true,\n *             label: 'Help',\n *             head: true\n *         } }, config ) );\n *         this.popup.$body.append( '<p>I am helpful!</p>' );\n *     }\n *     OO.inheritClass( HelpTool, OO.ui.PopupTool );\n *     HelpTool.static.name = 'help';\n *     HelpTool.static.icon = 'help';\n *     HelpTool.static.title = 'Help';\n *     toolFactory.register( HelpTool );\n *\n *     // Finally define which tools and in what order appear in the toolbar. Each tool may only be\n *     // used once (but not all defined tools must be used).\n *     toolbar.setup( [\n *         {\n *             // 'bar' tool groups display tools' icons only, side-by-side.\n *             type: 'bar',\n *             include: [ 'search', 'help' ]\n *         },\n *         {\n *             // 'menu' tool groups display both the titles and icons, in a dropdown menu.\n *             // Menu label indicates which items are selected.\n *             type: 'menu',\n *             indicator: 'down',\n *             include: [ 'settings', 'stuff' ]\n *         }\n *     ] );\n *\n *     // Create some UI around the toolbar and place it in the document\n *     var frame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         framed: true\n *     } );\n *     var contentFrame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         padded: true\n *     } );\n *     frame.$element.append(\n *         toolbar.$element,\n *         contentFrame.$element.append( $area )\n *     );\n *     $( document.body ).append( frame.$element );\n *\n *     // Here is where the toolbar is actually built. This must be done after inserting it into the\n *     // document.\n *     toolbar.initialize();\n *     toolbar.emit( 'updateState' );\n *\n * @class\n * @extends OO.ui.Element\n * @mixins OO.EventEmitter\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {OO.ui.ToolFactory} toolFactory Factory for creating tools\n * @param {OO.ui.ToolGroupFactory} toolGroupFactory Factory for creating toolgroups\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [actions] Add an actions section to the toolbar. Actions are commands that are included\n *  in the toolbar, but are not configured as tools. By default, actions are displayed on the right side of\n *  the toolbar.\n * @cfg {string} [position='top'] Whether the toolbar is positioned above ('top') or below ('bottom') content.\n * @cfg {jQuery} [$overlay] An overlay for the popup.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n */\nOO.ui.Toolbar = function OoUiToolbar( toolFactory, toolGroupFactory, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolFactory ) && config === undefined ) {\n\t\tconfig = toolFactory;\n\t\ttoolFactory = config.toolFactory;\n\t\ttoolGroupFactory = config.toolGroupFactory;\n\t}\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.Toolbar.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.EventEmitter.call( this );\n\tOO.ui.mixin.GroupElement.call( this, config );\n\n\t// Properties\n\tthis.toolFactory = toolFactory;\n\tthis.toolGroupFactory = toolGroupFactory;\n\tthis.groupsByName = {};\n\tthis.activeToolGroups = 0;\n\tthis.tools = {};\n\tthis.position = config.position || 'top';\n\tthis.$bar = $( '<div>' );\n\tthis.$actions = $( '<div>' );\n\tthis.$popups = $( '<div>' );\n\tthis.initialized = false;\n\tthis.narrowThreshold = null;\n\tthis.onWindowResizeHandler = this.onWindowResize.bind( this );\n\tthis.$overlay = ( config.$overlay === true ? OO.ui.getDefaultOverlay() : config.$overlay ) || this.$element;\n\n\t// Events\n\tthis.$element\n\t\t.add( this.$bar ).add( this.$group ).add( this.$actions )\n\t\t.on( 'mousedown keydown', this.onPointerDown.bind( this ) );\n\n\t// Initialization\n\tthis.$group.addClass( 'oo-ui-toolbar-tools' );\n\tif ( config.actions ) {\n\t\tthis.$bar.append( this.$actions.addClass( 'oo-ui-toolbar-actions' ) );\n\t}\n\tthis.$popups.addClass( 'oo-ui-toolbar-popups' );\n\tthis.$bar\n\t\t.addClass( 'oo-ui-toolbar-bar' )\n\t\t.append( this.$group, '<div style=\"clear:both\"></div>' );\n\t// Possible classes: oo-ui-toolbar-position-top, oo-ui-toolbar-position-bottom\n\tthis.$element.addClass( 'oo-ui-toolbar oo-ui-toolbar-position-' + this.position ).append( this.$bar );\n\tthis.$overlay.append( this.$popups );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.Toolbar, OO.ui.Element );\nOO.mixinClass( OO.ui.Toolbar, OO.EventEmitter );\nOO.mixinClass( OO.ui.Toolbar, OO.ui.mixin.GroupElement );\n\n/* Events */\n\n/**\n * @event updateState\n *\n * An 'updateState' event must be emitted on the Toolbar (by calling `toolbar.emit( 'updateState' )`)\n * every time the state of the application using the toolbar changes, and an update to the state of\n * tools is required.\n *\n * @param {...Mixed} data Application-defined parameters\n */\n\n/**\n * @event active\n *\n * An 'active' event is emitted when the number of active toolgroups increases from 0, or\n * returns to 0.\n *\n * @param {boolean} There are active toolgroups in this toolbar\n */\n\n/* Methods */\n\n/**\n * Get the tool factory.\n *\n * @return {OO.ui.ToolFactory} Tool factory\n */\nOO.ui.Toolbar.prototype.getToolFactory = function () {\n\treturn this.toolFactory;\n};\n\n/**\n * Get the toolgroup factory.\n *\n * @return {OO.Factory} Toolgroup factory\n */\nOO.ui.Toolbar.prototype.getToolGroupFactory = function () {\n\treturn this.toolGroupFactory;\n};\n\n/**\n * Handles mouse down events.\n *\n * @private\n * @param {jQuery.Event} e Mouse down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.Toolbar.prototype.onPointerDown = function ( e ) {\n\tvar $closestWidgetToEvent = $( e.target ).closest( '.oo-ui-widget' ),\n\t\t$closestWidgetToToolbar = this.$element.closest( '.oo-ui-widget' );\n\tif ( !$closestWidgetToEvent.length || $closestWidgetToEvent[ 0 ] === $closestWidgetToToolbar[ 0 ] ) {\n\t\treturn false;\n\t}\n};\n\n/**\n * Handle window resize event.\n *\n * @private\n * @param {jQuery.Event} e Window resize event\n */\nOO.ui.Toolbar.prototype.onWindowResize = function () {\n\tthis.$element.add( this.$popups ).toggleClass(\n\t\t'oo-ui-toolbar-narrow',\n\t\tthis.$bar[ 0 ].clientWidth <= this.getNarrowThreshold()\n\t);\n};\n\n/**\n * Get the (lazily-computed) width threshold for applying the oo-ui-toolbar-narrow\n * class.\n *\n * @private\n * @return {number} Width threshold in pixels\n */\nOO.ui.Toolbar.prototype.getNarrowThreshold = function () {\n\tif ( this.narrowThreshold === null ) {\n\t\tthis.narrowThreshold = this.$group[ 0 ].offsetWidth + this.$actions[ 0 ].offsetWidth;\n\t}\n\treturn this.narrowThreshold;\n};\n\n/**\n * Sets up handles and preloads required information for the toolbar to work.\n * This must be called after it is attached to a visible document and before doing anything else.\n */\nOO.ui.Toolbar.prototype.initialize = function () {\n\tif ( !this.initialized ) {\n\t\tthis.initialized = true;\n\t\t$( this.getElementWindow() ).on( 'resize', this.onWindowResizeHandler );\n\t\tthis.onWindowResize();\n\t}\n};\n\n/**\n * Set up the toolbar.\n *\n * The toolbar is set up with a list of toolgroup configurations that specify the type of\n * toolgroup ({@link OO.ui.BarToolGroup bar}, {@link OO.ui.MenuToolGroup menu}, or {@link OO.ui.ListToolGroup list})\n * to add and which tools to include, exclude, promote, or demote within that toolgroup. Please\n * see {@link OO.ui.ToolGroup toolgroups} for more information about including tools in toolgroups.\n *\n * @param {Object.<string,Array>} groups List of toolgroup configurations\n * @param {string} [groups.name] Symbolic name for this toolgroup\n * @param {string} [groups.type] Toolgroup type, should exist in the toolgroup factory\n * @param {Array|string} [groups.include] Tools to include in the toolgroup\n * @param {Array|string} [groups.exclude] Tools to exclude from the toolgroup\n * @param {Array|string} [groups.promote] Tools to promote to the beginning of the toolgroup\n * @param {Array|string} [groups.demote] Tools to demote to the end of the toolgroup\n */\nOO.ui.Toolbar.prototype.setup = function ( groups ) {\n\tvar i, len, type, toolGroup, groupConfig,\n\t\titems = [],\n\t\tdefaultType = 'bar';\n\n\t// Cleanup previous groups\n\tthis.reset();\n\n\t// Build out new groups\n\tfor ( i = 0, len = groups.length; i < len; i++ ) {\n\t\tgroupConfig = groups[ i ];\n\t\tif ( groupConfig.include === '*' ) {\n\t\t\t// Apply defaults to catch-all groups\n\t\t\tif ( groupConfig.type === undefined ) {\n\t\t\t\tgroupConfig.type = 'list';\n\t\t\t}\n\t\t\tif ( groupConfig.label === undefined ) {\n\t\t\t\tgroupConfig.label = OO.ui.msg( 'ooui-toolbar-more' );\n\t\t\t}\n\t\t}\n\t\t// Check type has been registered\n\t\ttype = this.getToolGroupFactory().lookup( groupConfig.type ) ? groupConfig.type : defaultType;\n\t\ttoolGroup = this.getToolGroupFactory().create( type, this, groupConfig );\n\t\titems.push( toolGroup );\n\t\tif ( groupConfig.name ) {\n\t\t\tthis.groupsByName[ groupConfig.name ] = toolGroup;\n\t\t} else {\n\t\t\t// Groups without name are deprecated\n\t\t\tOO.ui.warnDeprecation( 'Toolgroups must have a \\'name\\' property' );\n\t\t}\n\t\ttoolGroup.connect( this, { active: 'onToolGroupActive' } );\n\t}\n\tthis.addItems( items );\n};\n\n/**\n * Handle active events from tool groups\n *\n * @param {boolean} active Tool group has become active, inactive if false\n * @fires active\n */\nOO.ui.Toolbar.prototype.onToolGroupActive = function ( active ) {\n\tif ( active ) {\n\t\tthis.activeToolGroups++;\n\t\tif ( this.activeToolGroups === 1 ) {\n\t\t\tthis.emit( 'active', true );\n\t\t}\n\t} else {\n\t\tthis.activeToolGroups--;\n\t\tif ( this.activeToolGroups === 0 ) {\n\t\t\tthis.emit( 'active', false );\n\t\t}\n\t}\n};\n\n/**\n * Get a toolgroup by name\n *\n * @param {string} name Group name\n * @return {OO.ui.ToolGroup|null} Tool group, or null if none found by that name\n */\nOO.ui.Toolbar.prototype.getToolGroupByName = function ( name ) {\n\treturn this.groupsByName[ name ] || null;\n};\n\n/**\n * Remove all tools and toolgroups from the toolbar.\n */\nOO.ui.Toolbar.prototype.reset = function () {\n\tvar i, len;\n\n\tthis.groupsByName = {};\n\tthis.tools = {};\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\tthis.items[ i ].destroy();\n\t}\n\tthis.clearItems();\n};\n\n/**\n * Destroy the toolbar.\n *\n * Destroying the toolbar removes all event handlers and DOM elements that constitute the toolbar. Call\n * this method whenever you are done using a toolbar.\n */\nOO.ui.Toolbar.prototype.destroy = function () {\n\t$( this.getElementWindow() ).off( 'resize', this.onWindowResizeHandler );\n\tthis.reset();\n\tthis.$element.remove();\n};\n\n/**\n * Check if the tool is available.\n *\n * Available tools are ones that have not yet been added to the toolbar.\n *\n * @param {string} name Symbolic name of tool\n * @return {boolean} Tool is available\n */\nOO.ui.Toolbar.prototype.isToolAvailable = function ( name ) {\n\treturn !this.tools[ name ];\n};\n\n/**\n * Prevent tool from being used again.\n *\n * @param {OO.ui.Tool} tool Tool to reserve\n */\nOO.ui.Toolbar.prototype.reserveTool = function ( tool ) {\n\tthis.tools[ tool.getName() ] = tool;\n};\n\n/**\n * Allow tool to be used again.\n *\n * @param {OO.ui.Tool} tool Tool to release\n */\nOO.ui.Toolbar.prototype.releaseTool = function ( tool ) {\n\tdelete this.tools[ tool.getName() ];\n};\n\n/**\n * Get accelerator label for tool.\n *\n * The OOUI library does not contain an accelerator system, but this is the hook for one. To\n * use an accelerator system, subclass the toolbar and override this method, which is meant to return a label\n * that describes the accelerator keys for the tool passed (by symbolic name) to the method.\n *\n * @param {string} name Symbolic name of tool\n * @return {string|undefined} Tool accelerator label if available\n */\nOO.ui.Toolbar.prototype.getToolAccelerator = function () {\n\treturn undefined;\n};\n","/**\n * Tools, together with {@link OO.ui.ToolGroup toolgroups}, constitute {@link OO.ui.Toolbar toolbars}.\n * Each tool is configured with a static name, title, and icon and is customized with the command to carry\n * out when the tool is selected. Tools must also be registered with a {@link OO.ui.ToolFactory tool factory},\n * which creates the tools on demand.\n *\n * Every Tool subclass must implement two methods:\n *\n * - {@link #onUpdateState}\n * - {@link #onSelect}\n *\n * Tools are added to toolgroups ({@link OO.ui.ListToolGroup ListToolGroup},\n * {@link OO.ui.BarToolGroup BarToolGroup}, or {@link OO.ui.MenuToolGroup MenuToolGroup}), which determine how\n * the tool is displayed in the toolbar. See {@link OO.ui.Toolbar toolbars} for an example.\n *\n * For more information, please see the [OOUI documentation on MediaWiki][1].\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars\n *\n * @abstract\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.FlaggedElement\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {OO.ui.ToolGroup} toolGroup\n * @param {Object} [config] Configuration options\n * @cfg {string|Function} [title] Title text or a function that returns text. If this config is omitted, the value of\n *  the {@link #static-title static title} property is used.\n *\n *  The title is used in different ways depending on the type of toolgroup that contains the tool. The\n *  title is used as a tooltip if the tool is part of a {@link OO.ui.BarToolGroup bar} toolgroup, or as the label text if the tool is\n *  part of a {@link OO.ui.ListToolGroup list} or {@link OO.ui.MenuToolGroup menu} toolgroup.\n *\n *  For bar toolgroups, a description of the accelerator key is appended to the title if an accelerator key\n *  is associated with an action by the same name as the tool and accelerator functionality has been added to the application.\n *  To add accelerator key functionality, you must subclass OO.ui.Toolbar and override the {@link OO.ui.Toolbar#getToolAccelerator getToolAccelerator} method.\n */\nOO.ui.Tool = function OoUiTool( toolGroup, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolGroup ) && config === undefined ) {\n\t\tconfig = toolGroup;\n\t\ttoolGroup = config.toolGroup;\n\t}\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.Tool.parent.call( this, config );\n\n\t// Properties\n\tthis.toolGroup = toolGroup;\n\tthis.toolbar = this.toolGroup.getToolbar();\n\tthis.active = false;\n\tthis.$title = $( '<span>' );\n\tthis.$accel = $( '<span>' );\n\tthis.$link = $( '<a>' );\n\tthis.title = null;\n\tthis.checkIcon = new OO.ui.IconWidget( {\n\t\ticon: 'check',\n\t\tclasses: [ 'oo-ui-tool-checkIcon' ]\n\t} );\n\n\t// Mixin constructors\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.FlaggedElement.call( this, config );\n\tOO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$link } ) );\n\n\t// Events\n\tthis.toolbar.connect( this, { updateState: 'onUpdateState' } );\n\n\t// Initialization\n\tthis.$title.addClass( 'oo-ui-tool-title' );\n\tthis.$accel\n\t\t.addClass( 'oo-ui-tool-accel' )\n\t\t.prop( {\n\t\t\t// This may need to be changed if the key names are ever localized,\n\t\t\t// but for now they are essentially written in English\n\t\t\tdir: 'ltr',\n\t\t\tlang: 'en'\n\t\t} );\n\tthis.$link\n\t\t.addClass( 'oo-ui-tool-link' )\n\t\t.append( this.checkIcon.$element, this.$icon, this.$title, this.$accel )\n\t\t.attr( 'role', 'button' );\n\tthis.$element\n\t\t.data( 'oo-ui-tool', this )\n\t\t.addClass( 'oo-ui-tool' )\n\t\t.addClass( 'oo-ui-tool-name-' + this.constructor.static.name.replace( /^([^/]+)\\/([^/]+).*$/, '$1-$2' ) )\n\t\t.toggleClass( 'oo-ui-tool-with-label', this.constructor.static.displayBothIconAndLabel )\n\t\t.append( this.$link );\n\tthis.setTitle( config.title || this.constructor.static.title );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.Tool, OO.ui.Widget );\nOO.mixinClass( OO.ui.Tool, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.Tool, OO.ui.mixin.FlaggedElement );\nOO.mixinClass( OO.ui.Tool, OO.ui.mixin.TabIndexedElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.Tool.static.tagName = 'span';\n\n/**\n * Symbolic name of tool.\n *\n * The symbolic name is used internally to register the tool with a {@link OO.ui.ToolFactory ToolFactory}. It can\n * also be used when adding tools to toolgroups.\n *\n * @abstract\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.Tool.static.name = '';\n\n/**\n * Symbolic name of the group.\n *\n * The group name is used to associate tools with each other so that they can be selected later by\n * a {@link OO.ui.ToolGroup toolgroup}.\n *\n * @abstract\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.Tool.static.group = '';\n\n/**\n * Tool title text or a function that returns title text. The value of the static property is overridden if the #title config option is used.\n *\n * @abstract\n * @static\n * @inheritable\n * @property {string|Function}\n */\nOO.ui.Tool.static.title = '';\n\n/**\n * Display both icon and label when the tool is used in a {@link OO.ui.BarToolGroup bar} toolgroup.\n * Normally only the icon is displayed, or only the label if no icon is given.\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.Tool.static.displayBothIconAndLabel = false;\n\n/**\n * Add tool to catch-all groups automatically.\n *\n * A catch-all group, which contains all tools that do not currently belong to a toolgroup,\n * can be included in a toolgroup using the wildcard selector, an asterisk (*).\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.Tool.static.autoAddToCatchall = true;\n\n/**\n * Add tool to named groups automatically.\n *\n * By default, tools that are configured with a static ‘group’ property are added\n * to that group and will be selected when the symbolic name of the group is specified (e.g., when\n * toolgroups include tools by group name).\n *\n * @static\n * @property {boolean}\n * @inheritable\n */\nOO.ui.Tool.static.autoAddToGroup = true;\n\n/**\n * Check if this tool is compatible with given data.\n *\n * This is a stub that can be overridden to provide support for filtering tools based on an\n * arbitrary piece of information  (e.g., where the cursor is in a document). The implementation\n * must also call this method so that the compatibility check can be performed.\n *\n * @static\n * @inheritable\n * @param {Mixed} data Data to check\n * @return {boolean} Tool can be used with data\n */\nOO.ui.Tool.static.isCompatibleWith = function () {\n\treturn false;\n};\n\n/* Methods */\n\n/**\n * Handle the toolbar state being updated. This method is called when the\n * {@link OO.ui.Toolbar#event-updateState 'updateState' event} is emitted on the\n * {@link OO.ui.Toolbar Toolbar} that uses this tool, and should set the state of this tool\n * depending on application state (usually by calling #setDisabled to enable or disable the tool,\n * or #setActive to mark is as currently in-use or not).\n *\n * This is an abstract method that must be overridden in a concrete subclass.\n *\n * @method\n * @protected\n * @abstract\n */\nOO.ui.Tool.prototype.onUpdateState = null;\n\n/**\n * Handle the tool being selected. This method is called when the user triggers this tool,\n * usually by clicking on its label/icon.\n *\n * This is an abstract method that must be overridden in a concrete subclass.\n *\n * @method\n * @protected\n * @abstract\n */\nOO.ui.Tool.prototype.onSelect = null;\n\n/**\n * Check if the tool is active.\n *\n * Tools become active when their #onSelect or #onUpdateState handlers change them to appear pressed\n * with the #setActive method. Additional CSS is applied to the tool to reflect the active state.\n *\n * @return {boolean} Tool is active\n */\nOO.ui.Tool.prototype.isActive = function () {\n\treturn this.active;\n};\n\n/**\n * Make the tool appear active or inactive.\n *\n * This method should be called within #onSelect or #onUpdateState event handlers to make the tool\n * appear pressed or not.\n *\n * @param {boolean} state Make tool appear active\n */\nOO.ui.Tool.prototype.setActive = function ( state ) {\n\tthis.active = !!state;\n\tthis.$element.toggleClass( 'oo-ui-tool-active', this.active );\n\tthis.updateThemeClasses();\n};\n\n/**\n * Set the tool #title.\n *\n * @param {string|Function} title Title text or a function that returns text\n * @chainable\n * @return {OO.ui.Tool} The tool, for chaining\n */\nOO.ui.Tool.prototype.setTitle = function ( title ) {\n\tthis.title = OO.ui.resolveMsg( title );\n\tthis.updateTitle();\n\treturn this;\n};\n\n/**\n * Get the tool #title.\n *\n * @return {string} Title text\n */\nOO.ui.Tool.prototype.getTitle = function () {\n\treturn this.title;\n};\n\n/**\n * Get the tool's symbolic name.\n *\n * @return {string} Symbolic name of tool\n */\nOO.ui.Tool.prototype.getName = function () {\n\treturn this.constructor.static.name;\n};\n\n/**\n * Update the title.\n */\nOO.ui.Tool.prototype.updateTitle = function () {\n\tvar titleTooltips = this.toolGroup.constructor.static.titleTooltips,\n\t\taccelTooltips = this.toolGroup.constructor.static.accelTooltips,\n\t\taccel = this.toolbar.getToolAccelerator( this.constructor.static.name ),\n\t\ttooltipParts = [];\n\n\tthis.$title.text( this.title );\n\tthis.$accel.text( accel );\n\n\tif ( titleTooltips && typeof this.title === 'string' && this.title.length ) {\n\t\ttooltipParts.push( this.title );\n\t}\n\tif ( accelTooltips && typeof accel === 'string' && accel.length ) {\n\t\ttooltipParts.push( accel );\n\t}\n\tif ( tooltipParts.length ) {\n\t\tthis.$link.attr( 'title', tooltipParts.join( ' ' ) );\n\t} else {\n\t\tthis.$link.removeAttr( 'title' );\n\t}\n};\n\n/**\n * Destroy tool.\n *\n * Destroying the tool removes all event handlers and the tool’s DOM elements.\n * Call this method whenever you are done using a tool.\n */\nOO.ui.Tool.prototype.destroy = function () {\n\tthis.toolbar.disconnect( this );\n\tthis.$element.remove();\n};\n","/**\n * ToolGroups are collections of {@link OO.ui.Tool tools} that are used in a {@link OO.ui.Toolbar toolbar}.\n * The type of toolgroup ({@link OO.ui.ListToolGroup list}, {@link OO.ui.BarToolGroup bar}, or {@link OO.ui.MenuToolGroup menu})\n * to which a tool belongs determines how the tool is arranged and displayed in the toolbar. Toolgroups\n * themselves are created on demand with a {@link OO.ui.ToolGroupFactory toolgroup factory}.\n *\n * Toolgroups can contain individual tools, groups of tools, or all available tools, as specified\n * using the `include` config option. See OO.ui.ToolFactory#extract on documentation of the format.\n * The options `exclude`, `promote`, and `demote` support the same formats.\n *\n * See {@link OO.ui.Toolbar toolbars} for a full example. For more information about toolbars in general,\n * please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars\n *\n * @abstract\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {OO.ui.Toolbar} toolbar\n * @param {Object} [config] Configuration options\n * @cfg {Array|string} [include] List of tools to include in the toolgroup, see above.\n * @cfg {Array|string} [exclude] List of tools to exclude from the toolgroup, see above.\n * @cfg {Array|string} [promote] List of tools to promote to the beginning of the toolgroup, see above.\n * @cfg {Array|string} [demote] List of tools to demote to the end of the toolgroup, see above.\n *  This setting is particularly useful when tools have been added to the toolgroup\n *  en masse (e.g., via the catch-all selector).\n */\nOO.ui.ToolGroup = function OoUiToolGroup( toolbar, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolbar ) && config === undefined ) {\n\t\tconfig = toolbar;\n\t\ttoolbar = config.toolbar;\n\t}\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.ToolGroup.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupElement.call( this, config );\n\n\t// Properties\n\tthis.toolbar = toolbar;\n\tthis.tools = {};\n\tthis.pressed = null;\n\tthis.autoDisabled = false;\n\tthis.include = config.include || [];\n\tthis.exclude = config.exclude || [];\n\tthis.promote = config.promote || [];\n\tthis.demote = config.demote || [];\n\tthis.onDocumentMouseKeyUpHandler = this.onDocumentMouseKeyUp.bind( this );\n\n\t// Events\n\tthis.$group.on( {\n\t\tmousedown: this.onMouseKeyDown.bind( this ),\n\t\tmouseup: this.onMouseKeyUp.bind( this ),\n\t\tkeydown: this.onMouseKeyDown.bind( this ),\n\t\tkeyup: this.onMouseKeyUp.bind( this ),\n\t\tfocus: this.onMouseOverFocus.bind( this ),\n\t\tblur: this.onMouseOutBlur.bind( this ),\n\t\tmouseover: this.onMouseOverFocus.bind( this ),\n\t\tmouseout: this.onMouseOutBlur.bind( this )\n\t} );\n\tthis.toolbar.getToolFactory().connect( this, { register: 'onToolFactoryRegister' } );\n\tthis.aggregate( { disable: 'itemDisable' } );\n\tthis.connect( this, {\n\t\titemDisable: 'updateDisabled',\n\t\tdisable: 'onDisable'\n\t} );\n\n\t// Initialization\n\tthis.$group.addClass( 'oo-ui-toolGroup-tools' );\n\tthis.$element\n\t\t.addClass( 'oo-ui-toolGroup' )\n\t\t.append( this.$group );\n\tthis.onDisable( this.isDisabled() );\n\tthis.populate();\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ToolGroup, OO.ui.Widget );\nOO.mixinClass( OO.ui.ToolGroup, OO.ui.mixin.GroupElement );\n\n/* Events */\n\n/**\n * @event update\n */\n\n/**\n * @event active\n *\n * An 'active' event is emitted when any popup is shown/hidden.\n *\n * @param {boolean} The popup is visible\n */\n\n/* Static Properties */\n\n/**\n * Show labels in tooltips.\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.ToolGroup.static.titleTooltips = false;\n\n/**\n * Show acceleration labels in tooltips.\n *\n * Note: The OOUI library does not include an accelerator system, but does contain\n * a hook for one. To use an accelerator system, subclass the {@link OO.ui.Toolbar toolbar} and\n * override the {@link OO.ui.Toolbar#getToolAccelerator getToolAccelerator} method, which is\n * meant to return a label that describes the accelerator keys for a given tool (e.g., 'Ctrl + M').\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.ToolGroup.static.accelTooltips = false;\n\n/**\n * Automatically disable the toolgroup when all tools are disabled\n *\n * @static\n * @inheritable\n * @property {boolean}\n */\nOO.ui.ToolGroup.static.autoDisable = true;\n\n/**\n * @abstract\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.ToolGroup.static.name = null;\n\n/* Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.ToolGroup.prototype.isDisabled = function () {\n\treturn this.autoDisabled || OO.ui.ToolGroup.parent.prototype.isDisabled.apply( this, arguments );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ToolGroup.prototype.updateDisabled = function () {\n\tvar i, item, allDisabled = true;\n\n\tif ( this.constructor.static.autoDisable ) {\n\t\tfor ( i = this.items.length - 1; i >= 0; i-- ) {\n\t\t\titem = this.items[ i ];\n\t\t\tif ( !item.isDisabled() ) {\n\t\t\t\tallDisabled = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis.autoDisabled = allDisabled;\n\t}\n\tOO.ui.ToolGroup.parent.prototype.updateDisabled.apply( this, arguments );\n};\n\n/**\n * Handle disable events.\n *\n * @protected\n * @param {boolean} isDisabled\n */\nOO.ui.ToolGroup.prototype.onDisable = function ( isDisabled ) {\n\tthis.$group.toggleClass( 'oo-ui-toolGroup-disabled-tools', isDisabled );\n\tthis.$group.toggleClass( 'oo-ui-toolGroup-enabled-tools', !isDisabled );\n};\n\n/**\n * Handle mouse down and key down events.\n *\n * @protected\n * @param {jQuery.Event} e Mouse down or key down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.ToolGroup.prototype.onMouseKeyDown = function ( e ) {\n\tif (\n\t\t!this.isDisabled() &&\n\t\t( e.which === OO.ui.MouseButtons.LEFT || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )\n\t) {\n\t\tthis.pressed = this.findTargetTool( e );\n\t\tif ( this.pressed ) {\n\t\t\tthis.pressed.setActive( true );\n\t\t\tthis.getElementDocument().addEventListener( 'mouseup', this.onDocumentMouseKeyUpHandler, true );\n\t\t\tthis.getElementDocument().addEventListener( 'keyup', this.onDocumentMouseKeyUpHandler, true );\n\t\t\treturn false;\n\t\t}\n\t}\n};\n\n/**\n * Handle document mouse up and key up events.\n *\n * @protected\n * @param {MouseEvent|KeyboardEvent} e Mouse up or key up event\n */\nOO.ui.ToolGroup.prototype.onDocumentMouseKeyUp = function ( e ) {\n\tthis.getElementDocument().removeEventListener( 'mouseup', this.onDocumentMouseKeyUpHandler, true );\n\tthis.getElementDocument().removeEventListener( 'keyup', this.onDocumentMouseKeyUpHandler, true );\n\t// onMouseKeyUp may be called a second time, depending on where the mouse is when the button is\n\t// released, but since `this.pressed` will no longer be true, the second call will be ignored.\n\tthis.onMouseKeyUp( e );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.ToolGroup.prototype.onCapturedMouseKeyUp = function () {\n\tOO.ui.warnDeprecation( 'onCapturedMouseKeyUp is deprecated, use onDocumentMouseKeyUp instead' );\n\tthis.onDocumentMouseKeyUp.apply( this, arguments );\n};\n\n/**\n * Handle mouse up and key up events.\n *\n * @protected\n * @param {MouseEvent|KeyboardEvent} e Mouse up or key up event\n */\nOO.ui.ToolGroup.prototype.onMouseKeyUp = function ( e ) {\n\tvar tool = this.findTargetTool( e );\n\n\tif (\n\t\t!this.isDisabled() && this.pressed && this.pressed === tool &&\n\t\t( e.which === OO.ui.MouseButtons.LEFT || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )\n\t) {\n\t\tthis.pressed.onSelect();\n\t\tthis.pressed = null;\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t}\n\n\tthis.pressed = null;\n};\n\n/**\n * Handle mouse over and focus events.\n *\n * @protected\n * @param {jQuery.Event} e Mouse over or focus event\n */\nOO.ui.ToolGroup.prototype.onMouseOverFocus = function ( e ) {\n\tvar tool = this.findTargetTool( e );\n\n\tif ( this.pressed && this.pressed === tool ) {\n\t\tthis.pressed.setActive( true );\n\t}\n};\n\n/**\n * Handle mouse out and blur events.\n *\n * @protected\n * @param {jQuery.Event} e Mouse out or blur event\n */\nOO.ui.ToolGroup.prototype.onMouseOutBlur = function ( e ) {\n\tvar tool = this.findTargetTool( e );\n\n\tif ( this.pressed && this.pressed === tool ) {\n\t\tthis.pressed.setActive( false );\n\t}\n};\n\n/**\n * Get the closest tool to a jQuery.Event.\n *\n * Only tool links are considered, which prevents other elements in the tool such as popups from\n * triggering tool group interactions.\n *\n * @private\n * @param {jQuery.Event} e\n * @return {OO.ui.Tool|null} Tool, `null` if none was found\n */\nOO.ui.ToolGroup.prototype.findTargetTool = function ( e ) {\n\tvar tool,\n\t\t$item = $( e.target ).closest( '.oo-ui-tool-link' );\n\n\tif ( $item.length ) {\n\t\ttool = $item.parent().data( 'oo-ui-tool' );\n\t}\n\n\treturn tool && !tool.isDisabled() ? tool : null;\n};\n\n/**\n * Handle tool registry register events.\n *\n * If a tool is registered after the group is created, we must repopulate the list to account for:\n *\n * - a tool being added that may be included\n * - a tool already included being overridden\n *\n * @protected\n * @param {string} name Symbolic name of tool\n */\nOO.ui.ToolGroup.prototype.onToolFactoryRegister = function () {\n\tthis.populate();\n};\n\n/**\n * Get the toolbar that contains the toolgroup.\n *\n * @return {OO.ui.Toolbar} Toolbar that contains the toolgroup\n */\nOO.ui.ToolGroup.prototype.getToolbar = function () {\n\treturn this.toolbar;\n};\n\n/**\n * Add and remove tools based on configuration.\n */\nOO.ui.ToolGroup.prototype.populate = function () {\n\tvar i, len, name, tool,\n\t\ttoolFactory = this.toolbar.getToolFactory(),\n\t\tnames = {},\n\t\tadd = [],\n\t\tremove = [],\n\t\tlist = this.toolbar.getToolFactory().getTools(\n\t\t\tthis.include, this.exclude, this.promote, this.demote\n\t\t);\n\n\t// Build a list of needed tools\n\tfor ( i = 0, len = list.length; i < len; i++ ) {\n\t\tname = list[ i ];\n\t\tif (\n\t\t\t// Tool exists\n\t\t\ttoolFactory.lookup( name ) &&\n\t\t\t// Tool is available or is already in this group\n\t\t\t( this.toolbar.isToolAvailable( name ) || this.tools[ name ] )\n\t\t) {\n\t\t\t// Hack to prevent infinite recursion via ToolGroupTool. We need to reserve the tool before\n\t\t\t// creating it, but we can't call reserveTool() yet because we haven't created the tool.\n\t\t\tthis.toolbar.tools[ name ] = true;\n\t\t\ttool = this.tools[ name ];\n\t\t\tif ( !tool ) {\n\t\t\t\t// Auto-initialize tools on first use\n\t\t\t\tthis.tools[ name ] = tool = toolFactory.create( name, this );\n\t\t\t\ttool.updateTitle();\n\t\t\t}\n\t\t\tthis.toolbar.reserveTool( tool );\n\t\t\tadd.push( tool );\n\t\t\tnames[ name ] = true;\n\t\t}\n\t}\n\t// Remove tools that are no longer needed\n\tfor ( name in this.tools ) {\n\t\tif ( !names[ name ] ) {\n\t\t\tthis.tools[ name ].destroy();\n\t\t\tthis.toolbar.releaseTool( this.tools[ name ] );\n\t\t\tremove.push( this.tools[ name ] );\n\t\t\tdelete this.tools[ name ];\n\t\t}\n\t}\n\tif ( remove.length ) {\n\t\tthis.removeItems( remove );\n\t}\n\t// Update emptiness state\n\tif ( add.length ) {\n\t\tthis.$element.removeClass( 'oo-ui-toolGroup-empty' );\n\t} else {\n\t\tthis.$element.addClass( 'oo-ui-toolGroup-empty' );\n\t}\n\t// Re-add tools (moving existing ones to new locations)\n\tthis.addItems( add );\n\t// Disabled state may depend on items\n\tthis.updateDisabled();\n};\n\n/**\n * Destroy toolgroup.\n */\nOO.ui.ToolGroup.prototype.destroy = function () {\n\tvar name;\n\n\tthis.clearItems();\n\tthis.toolbar.getToolFactory().disconnect( this );\n\tfor ( name in this.tools ) {\n\t\tthis.toolbar.releaseTool( this.tools[ name ] );\n\t\tthis.tools[ name ].disconnect( this ).destroy();\n\t\tdelete this.tools[ name ];\n\t}\n\tthis.$element.remove();\n};\n","/**\n * A ToolFactory creates tools on demand. All tools ({@link OO.ui.Tool Tools}, {@link OO.ui.PopupTool PopupTools},\n * and {@link OO.ui.ToolGroupTool ToolGroupTools}) must be registered with a tool factory. Tools are\n * registered by their symbolic name. See {@link OO.ui.Toolbar toolbars} for an example.\n *\n * For more information about toolbars in general, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars\n *\n * @class\n * @extends OO.Factory\n * @constructor\n */\nOO.ui.ToolFactory = function OoUiToolFactory() {\n\t// Parent constructor\n\tOO.ui.ToolFactory.parent.call( this );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ToolFactory, OO.Factory );\n\n/* Methods */\n\n/**\n * Get tools from the factory\n *\n * @param {Array|string} [include] Included tools, see #extract for format\n * @param {Array|string} [exclude] Excluded tools, see #extract for format\n * @param {Array|string} [promote] Promoted tools, see #extract for format\n * @param {Array|string} [demote] Demoted tools, see #extract for format\n * @return {string[]} List of tools\n */\nOO.ui.ToolFactory.prototype.getTools = function ( include, exclude, promote, demote ) {\n\tvar i, len, included, promoted, demoted,\n\t\tauto = [],\n\t\tused = {};\n\n\t// Collect included and not excluded tools\n\tincluded = OO.simpleArrayDifference( this.extract( include ), this.extract( exclude ) );\n\n\t// Promotion\n\tpromoted = this.extract( promote, used );\n\tdemoted = this.extract( demote, used );\n\n\t// Auto\n\tfor ( i = 0, len = included.length; i < len; i++ ) {\n\t\tif ( !used[ included[ i ] ] ) {\n\t\t\tauto.push( included[ i ] );\n\t\t}\n\t}\n\n\treturn promoted.concat( auto ).concat( demoted );\n};\n\n/**\n * Get a flat list of names from a list of names or groups.\n *\n * Normally, `collection` is an array of tool specifications. Tools can be specified in the\n * following ways:\n *\n * - To include an individual tool, use the symbolic name: `{ name: 'tool-name' }` or `'tool-name'`.\n * - To include all tools in a group, use the group name: `{ group: 'group-name' }`. (To assign the\n *   tool to a group, use OO.ui.Tool.static.group.)\n *\n * Alternatively, to include all tools that are not yet assigned to any other toolgroup, use the\n * catch-all selector `'*'`.\n *\n * If `used` is passed, tool names that appear as properties in this object will be considered\n * already assigned, and will not be returned even if specified otherwise. The tool names extracted\n * by this function call will be added as new properties in the object.\n *\n * @private\n * @param {Array|string} collection List of tools, see above\n * @param {Object} [used] Object containing information about used tools, see above\n * @return {string[]} List of extracted tool names\n */\nOO.ui.ToolFactory.prototype.extract = function ( collection, used ) {\n\tvar i, len, item, name, tool,\n\t\tnames = [];\n\n\tcollection = !Array.isArray( collection ) ? [ collection ] : collection;\n\n\tfor ( i = 0, len = collection.length; i < len; i++ ) {\n\t\titem = collection[ i ];\n\t\tif ( item === '*' ) {\n\t\t\tfor ( name in this.registry ) {\n\t\t\t\ttool = this.registry[ name ];\n\t\t\t\tif (\n\t\t\t\t\t// Only add tools by group name when auto-add is enabled\n\t\t\t\t\ttool.static.autoAddToCatchall &&\n\t\t\t\t\t// Exclude already used tools\n\t\t\t\t\t( !used || !used[ name ] )\n\t\t\t\t) {\n\t\t\t\t\tnames.push( name );\n\t\t\t\t\tif ( used ) {\n\t\t\t\t\t\tused[ name ] = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// Allow plain strings as shorthand for named tools\n\t\t\tif ( typeof item === 'string' ) {\n\t\t\t\titem = { name: item };\n\t\t\t}\n\t\t\tif ( OO.isPlainObject( item ) ) {\n\t\t\t\tif ( item.group ) {\n\t\t\t\t\tfor ( name in this.registry ) {\n\t\t\t\t\t\ttool = this.registry[ name ];\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t// Include tools with matching group\n\t\t\t\t\t\t\ttool.static.group === item.group &&\n\t\t\t\t\t\t\t// Only add tools by group name when auto-add is enabled\n\t\t\t\t\t\t\ttool.static.autoAddToGroup &&\n\t\t\t\t\t\t\t// Exclude already used tools\n\t\t\t\t\t\t\t( !used || !used[ name ] )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tnames.push( name );\n\t\t\t\t\t\t\tif ( used ) {\n\t\t\t\t\t\t\t\tused[ name ] = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t// Include tools with matching name and exclude already used tools\n\t\t\t\t} else if ( item.name && ( !used || !used[ item.name ] ) ) {\n\t\t\t\t\tnames.push( item.name );\n\t\t\t\t\tif ( used ) {\n\t\t\t\t\t\tused[ item.name ] = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn names;\n};\n","/**\n * ToolGroupFactories create {@link OO.ui.ToolGroup toolgroups} on demand. The toolgroup classes must\n * specify a symbolic name and be registered with the factory. The following classes are registered by\n * default:\n *\n * - {@link OO.ui.BarToolGroup BarToolGroups} (‘bar’)\n * - {@link OO.ui.MenuToolGroup MenuToolGroups} (‘menu’)\n * - {@link OO.ui.ListToolGroup ListToolGroups} (‘list’)\n *\n * See {@link OO.ui.Toolbar toolbars} for an example.\n *\n * For more information about toolbars in general, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars\n *\n * @class\n * @extends OO.Factory\n * @constructor\n */\nOO.ui.ToolGroupFactory = function OoUiToolGroupFactory() {\n\tvar i, l, defaultClasses;\n\t// Parent constructor\n\tOO.Factory.call( this );\n\n\tdefaultClasses = this.constructor.static.getDefaultClasses();\n\n\t// Register default toolgroups\n\tfor ( i = 0, l = defaultClasses.length; i < l; i++ ) {\n\t\tthis.register( defaultClasses[ i ] );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ToolGroupFactory, OO.Factory );\n\n/* Static Methods */\n\n/**\n * Get a default set of classes to be registered on construction.\n *\n * @return {Function[]} Default classes\n */\nOO.ui.ToolGroupFactory.static.getDefaultClasses = function () {\n\treturn [\n\t\tOO.ui.BarToolGroup,\n\t\tOO.ui.ListToolGroup,\n\t\tOO.ui.MenuToolGroup\n\t];\n};\n","/**\n * Popup tools open a popup window when they are selected from the {@link OO.ui.Toolbar toolbar}. Each popup tool is configured\n * with a static name, title, and icon, as well with as any popup configurations. Unlike other tools, popup tools do not require that developers specify\n * an #onSelect or #onUpdateState method, as these methods have been implemented already.\n *\n *     // Example of a popup tool. When selected, a popup tool displays\n *     // a popup window.\n *     function HelpTool( toolGroup, config ) {\n *        OO.ui.PopupTool.call( this, toolGroup, $.extend( { popup: {\n *            padded: true,\n *            label: 'Help',\n *            head: true\n *        } }, config ) );\n *        this.popup.$body.append( '<p>I am helpful!</p>' );\n *     };\n *     OO.inheritClass( HelpTool, OO.ui.PopupTool );\n *     HelpTool.static.name = 'help';\n *     HelpTool.static.icon = 'help';\n *     HelpTool.static.title = 'Help';\n *     toolFactory.register( HelpTool );\n *\n * For an example of a toolbar that contains a popup tool, see {@link OO.ui.Toolbar toolbars}. For more information about\n * toolbars in general, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars\n *\n * @abstract\n * @class\n * @extends OO.ui.Tool\n * @mixins OO.ui.mixin.PopupElement\n *\n * @constructor\n * @param {OO.ui.ToolGroup} toolGroup\n * @param {Object} [config] Configuration options\n */\nOO.ui.PopupTool = function OoUiPopupTool( toolGroup, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolGroup ) && config === undefined ) {\n\t\tconfig = toolGroup;\n\t\ttoolGroup = config.toolGroup;\n\t}\n\n\t// Parent constructor\n\tOO.ui.PopupTool.parent.call( this, toolGroup, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.PopupElement.call( this, config );\n\n\t// Events\n\tthis.popup.connect( this, { toggle: 'onPopupToggle' } );\n\n\t// Initialization\n\tthis.popup.setAutoFlip( false );\n\tthis.popup.setPosition( toolGroup.getToolbar().position === 'bottom' ? 'above' : 'below' );\n\tthis.$element.addClass( 'oo-ui-popupTool' );\n\tthis.popup.$element.addClass( 'oo-ui-popupTool-popup' );\n\tthis.toolbar.$popups.append( this.popup.$element );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.PopupTool, OO.ui.Tool );\nOO.mixinClass( OO.ui.PopupTool, OO.ui.mixin.PopupElement );\n\n/* Methods */\n\n/**\n * Handle the tool being selected.\n *\n * @inheritdoc\n */\nOO.ui.PopupTool.prototype.onSelect = function () {\n\tif ( !this.isDisabled() ) {\n\t\tthis.popup.toggle();\n\t}\n\treturn false;\n};\n\n/**\n * Handle the toolbar state being updated.\n *\n * @inheritdoc\n */\nOO.ui.PopupTool.prototype.onUpdateState = function () {\n};\n\n/**\n * Handle popup visibility being toggled.\n *\n * @param {boolean} isVisible\n */\nOO.ui.PopupTool.prototype.onPopupToggle = function ( isVisible ) {\n\tthis.setActive( isVisible );\n\tthis.toolGroup.emit( 'active', isVisible );\n};\n","/**\n * A ToolGroupTool is a special sort of tool that can contain other {@link OO.ui.Tool tools}\n * and {@link OO.ui.ToolGroup toolgroups}. The ToolGroupTool was specifically designed to be used\n * inside a {@link OO.ui.BarToolGroup bar} toolgroup to provide access to additional tools from\n * the bar item. Included tools will be displayed in a dropdown {@link OO.ui.ListToolGroup list}\n * when the ToolGroupTool is selected.\n *\n *     // Example: ToolGroupTool with two nested tools, 'setting1' and 'setting2', defined elsewhere.\n *\n *     function SettingsTool() {\n *         SettingsTool.parent.apply( this, arguments );\n *     };\n *     OO.inheritClass( SettingsTool, OO.ui.ToolGroupTool );\n *     SettingsTool.static.name = 'settings';\n *     SettingsTool.static.title = 'Change settings';\n *     SettingsTool.static.groupConfig = {\n *         icon: 'settings',\n *         label: 'ToolGroupTool',\n *         include: [  'setting1', 'setting2'  ]\n *     };\n *     toolFactory.register( SettingsTool );\n *\n * For more information, please see the [OOUI documentation on MediaWiki][1].\n *\n * Please note that this implementation is subject to change per [T74159] [2].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars#ToolGroupTool\n * [2]: https://phabricator.wikimedia.org/T74159\n *\n * @abstract\n * @class\n * @extends OO.ui.Tool\n *\n * @constructor\n * @param {OO.ui.ToolGroup} toolGroup\n * @param {Object} [config] Configuration options\n */\nOO.ui.ToolGroupTool = function OoUiToolGroupTool( toolGroup, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolGroup ) && config === undefined ) {\n\t\tconfig = toolGroup;\n\t\ttoolGroup = config.toolGroup;\n\t}\n\n\t// Parent constructor\n\tOO.ui.ToolGroupTool.parent.call( this, toolGroup, config );\n\n\t// Properties\n\tthis.innerToolGroup = this.createGroup( this.constructor.static.groupConfig );\n\n\t// Events\n\tthis.innerToolGroup.connect( this, {\n\t\tdisable: 'onToolGroupDisable',\n\t\t// Re-emit active events from the innerToolGroup on the parent toolGroup\n\t\tactive: this.toolGroup.emit.bind( this.toolGroup, 'active' )\n\t} );\n\n\t// Initialization\n\tthis.$link.remove();\n\tthis.$element\n\t\t.addClass( 'oo-ui-toolGroupTool' )\n\t\t.append( this.innerToolGroup.$element );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ToolGroupTool, OO.ui.Tool );\n\n/* Static Properties */\n\n/**\n * Toolgroup configuration.\n *\n * The toolgroup configuration consists of the tools to include, as well as an icon and label\n * to use for the bar item. Tools can be included by symbolic name, group, or with the\n * wildcard selector. Please see {@link OO.ui.ToolGroup toolgroup} for more information.\n *\n * @property {Object.<string,Array>}\n */\nOO.ui.ToolGroupTool.static.groupConfig = {};\n\n/* Methods */\n\n/**\n * Handle the tool being selected.\n *\n * @inheritdoc\n */\nOO.ui.ToolGroupTool.prototype.onSelect = function () {\n\tthis.innerToolGroup.setActive( !this.innerToolGroup.active );\n\treturn false;\n};\n\n/**\n * Synchronize disabledness state of the tool with the inner toolgroup.\n *\n * @private\n * @param {boolean} disabled Element is disabled\n */\nOO.ui.ToolGroupTool.prototype.onToolGroupDisable = function ( disabled ) {\n\tthis.setDisabled( disabled );\n};\n\n/**\n * Handle the toolbar state being updated.\n *\n * @inheritdoc\n */\nOO.ui.ToolGroupTool.prototype.onUpdateState = function () {\n\tthis.setActive( false );\n};\n\n/**\n * Build a {@link OO.ui.ToolGroup toolgroup} from the specified configuration.\n *\n * @param {Object.<string,Array>} group Toolgroup configuration. Please see {@link OO.ui.ToolGroup toolgroup} for\n *  more information.\n * @return {OO.ui.ListToolGroup}\n */\nOO.ui.ToolGroupTool.prototype.createGroup = function ( group ) {\n\tif ( group.include === '*' ) {\n\t\t// Apply defaults to catch-all groups\n\t\tif ( group.label === undefined ) {\n\t\t\tgroup.label = OO.ui.msg( 'ooui-toolbar-more' );\n\t\t}\n\t}\n\n\treturn this.toolbar.getToolGroupFactory().create( 'list', this.toolbar, group );\n};\n","/**\n * BarToolGroups are one of three types of {@link OO.ui.ToolGroup toolgroups} that are used to\n * create {@link OO.ui.Toolbar toolbars} (the other types of groups are {@link OO.ui.MenuToolGroup MenuToolGroup}\n * and {@link OO.ui.ListToolGroup ListToolGroup}). The {@link OO.ui.Tool tools} in a BarToolGroup are\n * displayed by icon in a single row. The title of the tool is displayed when users move the mouse over\n * the tool.\n *\n * BarToolGroups are created by a {@link OO.ui.ToolGroupFactory tool group factory} when the toolbar is\n * set up.\n *\n *     @example\n *     // Example of a BarToolGroup with two tools\n *     var toolFactory = new OO.ui.ToolFactory();\n *     var toolGroupFactory = new OO.ui.ToolGroupFactory();\n *     var toolbar = new OO.ui.Toolbar( toolFactory, toolGroupFactory );\n *\n *     // We will be placing status text in this element when tools are used\n *     var $area = $( '<p>' ).text( 'Example of a BarToolGroup with two tools.' );\n *\n *     // Define the tools that we're going to place in our toolbar\n *\n *     // Create a class inheriting from OO.ui.Tool\n *     function SearchTool() {\n *         SearchTool.parent.apply( this, arguments );\n *     }\n *     OO.inheritClass( SearchTool, OO.ui.Tool );\n *     // Each tool must have a 'name' (used as an internal identifier, see later) and at least one\n *     // of 'icon' and 'title' (displayed icon and text).\n *     SearchTool.static.name = 'search';\n *     SearchTool.static.icon = 'search';\n *     SearchTool.static.title = 'Search...';\n *     // Defines the action that will happen when this tool is selected (clicked).\n *     SearchTool.prototype.onSelect = function () {\n *         $area.text( 'Search tool clicked!' );\n *         // Never display this tool as \"active\" (selected).\n *         this.setActive( false );\n *     };\n *     SearchTool.prototype.onUpdateState = function () {};\n *     // Make this tool available in our toolFactory and thus our toolbar\n *     toolFactory.register( SearchTool );\n *\n *     // This is a PopupTool. Rather than having a custom 'onSelect' action, it will display a\n *     // little popup window (a PopupWidget).\n *     function HelpTool( toolGroup, config ) {\n *         OO.ui.PopupTool.call( this, toolGroup, $.extend( { popup: {\n *             padded: true,\n *             label: 'Help',\n *             head: true\n *         } }, config ) );\n *         this.popup.$body.append( '<p>I am helpful!</p>' );\n *     }\n *     OO.inheritClass( HelpTool, OO.ui.PopupTool );\n *     HelpTool.static.name = 'help';\n *     HelpTool.static.icon = 'help';\n *     HelpTool.static.title = 'Help';\n *     toolFactory.register( HelpTool );\n *\n *     // Finally define which tools and in what order appear in the toolbar. Each tool may only be\n *     // used once (but not all defined tools must be used).\n *     toolbar.setup( [\n *         {\n *             // 'bar' tool groups display tools by icon only\n *             type: 'bar',\n *             include: [ 'search', 'help' ]\n *         }\n *     ] );\n *\n *     // Create some UI around the toolbar and place it in the document\n *     var frame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         framed: true\n *     } );\n *     var contentFrame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         padded: true\n *     } );\n *     frame.$element.append(\n *         toolbar.$element,\n *         contentFrame.$element.append( $area )\n *     );\n *     $( document.body ).append( frame.$element );\n *\n *     // Here is where the toolbar is actually built. This must be done after inserting it into the\n *     // document.\n *     toolbar.initialize();\n *\n * For more information about how to add tools to a bar tool group, please see {@link OO.ui.ToolGroup toolgroup}.\n * For more information about toolbars in general, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars\n *\n * @class\n * @extends OO.ui.ToolGroup\n *\n * @constructor\n * @param {OO.ui.Toolbar} toolbar\n * @param {Object} [config] Configuration options\n */\nOO.ui.BarToolGroup = function OoUiBarToolGroup( toolbar, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolbar ) && config === undefined ) {\n\t\tconfig = toolbar;\n\t\ttoolbar = config.toolbar;\n\t}\n\n\t// Parent constructor\n\tOO.ui.BarToolGroup.parent.call( this, toolbar, config );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-barToolGroup' );\n\tthis.$group.addClass( 'oo-ui-barToolGroup-tools' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.BarToolGroup, OO.ui.ToolGroup );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.BarToolGroup.static.titleTooltips = true;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.BarToolGroup.static.accelTooltips = true;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.BarToolGroup.static.name = 'bar';\n","/**\n * PopupToolGroup is an abstract base class used by both {@link OO.ui.MenuToolGroup MenuToolGroup}\n * and {@link OO.ui.ListToolGroup ListToolGroup} to provide a popup (an overlaid menu or list of tools with an\n * optional icon and label). This class can be used for other base classes that also use this functionality.\n *\n * @abstract\n * @class\n * @extends OO.ui.ToolGroup\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.TitledElement\n * @mixins OO.ui.mixin.FlaggedElement\n * @mixins OO.ui.mixin.ClippableElement\n * @mixins OO.ui.mixin.FloatableElement\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {OO.ui.Toolbar} toolbar\n * @param {Object} [config] Configuration options\n * @cfg {string} [header] Text to display at the top of the popup\n */\nOO.ui.PopupToolGroup = function OoUiPopupToolGroup( toolbar, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolbar ) && config === undefined ) {\n\t\tconfig = toolbar;\n\t\ttoolbar = config.toolbar;\n\t}\n\n\t// Configuration initialization\n\tconfig = $.extend( {\n\t\tindicator: config.indicator === undefined ? ( toolbar.position === 'bottom' ? 'up' : 'down' ) : config.indicator\n\t}, config );\n\n\t// Parent constructor\n\tOO.ui.PopupToolGroup.parent.call( this, toolbar, config );\n\n\t// Properties\n\tthis.active = false;\n\tthis.dragging = false;\n\t// Don't conflict with parent method of the same name\n\tthis.onPopupDocumentMouseKeyUpHandler = this.onPopupDocumentMouseKeyUp.bind( this );\n\tthis.$handle = $( '<span>' );\n\n\t// Mixin constructors\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.TitledElement.call( this, config );\n\tOO.ui.mixin.FlaggedElement.call( this, config );\n\tOO.ui.mixin.ClippableElement.call( this, $.extend( {}, config, { $clippable: this.$group } ) );\n\tOO.ui.mixin.FloatableElement.call( this, $.extend( {}, config, {\n\t\t$floatable: this.$group,\n\t\t$floatableContainer: this.$handle,\n\t\thideWhenOutOfView: false,\n\t\tverticalPosition: this.toolbar.position === 'bottom' ? 'above' : 'below'\n\t} ) );\n\tOO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$handle } ) );\n\n\t// Events\n\tthis.$handle.on( {\n\t\tkeydown: this.onHandleMouseKeyDown.bind( this ),\n\t\tkeyup: this.onHandleMouseKeyUp.bind( this ),\n\t\tmousedown: this.onHandleMouseKeyDown.bind( this ),\n\t\tmouseup: this.onHandleMouseKeyUp.bind( this )\n\t} );\n\n\t// Initialization\n\tthis.$handle\n\t\t.addClass( 'oo-ui-popupToolGroup-handle' )\n\t\t.attr( 'role', 'button' )\n\t\t.append( this.$icon, this.$label, this.$indicator );\n\t// If the pop-up should have a header, add it to the top of the toolGroup.\n\t// Note: If this feature is useful for other widgets, we could abstract it into an\n\t// OO.ui.HeaderedElement mixin constructor.\n\tif ( config.header !== undefined ) {\n\t\tthis.$group\n\t\t\t.prepend( $( '<span>' )\n\t\t\t\t.addClass( 'oo-ui-popupToolGroup-header' )\n\t\t\t\t.text( config.header )\n\t\t\t);\n\t}\n\tthis.$element\n\t\t.addClass( 'oo-ui-popupToolGroup' )\n\t\t.prepend( this.$handle );\n\tthis.$group.addClass( 'oo-ui-popupToolGroup-tools' );\n\tthis.toolbar.$popups.append( this.$group );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.PopupToolGroup, OO.ui.ToolGroup );\nOO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.TitledElement );\nOO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.FlaggedElement );\nOO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.ClippableElement );\nOO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.FloatableElement );\nOO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.TabIndexedElement );\n\n/* Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.PopupToolGroup.prototype.setDisabled = function () {\n\t// Parent method\n\tOO.ui.PopupToolGroup.parent.prototype.setDisabled.apply( this, arguments );\n\n\tif ( this.isDisabled() && this.isElementAttached() ) {\n\t\tthis.setActive( false );\n\t}\n};\n\n/**\n * Handle document mouse up and key up events.\n *\n * @protected\n * @param {MouseEvent|KeyboardEvent} e Mouse up or key up event\n */\nOO.ui.PopupToolGroup.prototype.onPopupDocumentMouseKeyUp = function ( e ) {\n\tvar $target = $( e.target );\n\t// Only deactivate when clicking outside the dropdown element\n\tif ( $target.closest( '.oo-ui-popupToolGroup' )[ 0 ] === this.$element[ 0 ] ) {\n\t\treturn;\n\t}\n\tif ( $target.closest( '.oo-ui-popupToolGroup-tools' )[ 0 ] === this.$group[ 0 ] ) {\n\t\treturn;\n\t}\n\tthis.setActive( false );\n};\n\n// Deprecated alias since 0.28.3\nOO.ui.PopupToolGroup.prototype.onBlur = function () {\n\tOO.ui.warnDeprecation( 'onBlur is deprecated, use onPopupDocumentMouseKeyUp instead' );\n\tthis.onPopupDocumentMouseKeyUp.apply( this, arguments );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.PopupToolGroup.prototype.onMouseKeyUp = function ( e ) {\n\t// Only close toolgroup when a tool was actually selected\n\tif (\n\t\t!this.isDisabled() && this.pressed && this.pressed === this.findTargetTool( e ) &&\n\t\t( e.which === OO.ui.MouseButtons.LEFT || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )\n\t) {\n\t\tthis.setActive( false );\n\t}\n\treturn OO.ui.PopupToolGroup.parent.prototype.onMouseKeyUp.call( this, e );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.PopupToolGroup.prototype.onMouseKeyDown = function ( e ) {\n\tvar $focused, $firstFocusable, $lastFocusable;\n\t// Shift-Tab on the first tool in the group jumps to the handle.\n\t// Tab on the last tool in the group jumps to the next group.\n\tif ( !this.isDisabled() && e.which === OO.ui.Keys.TAB ) {\n\t\t// (We can't use this.items because ListToolGroup inserts the extra fake expand/collapse tool.)\n\t\t$focused = $( document.activeElement );\n\t\t$firstFocusable = OO.ui.findFocusable( this.$group );\n\t\tif ( $focused[ 0 ] === $firstFocusable[ 0 ] && e.shiftKey ) {\n\t\t\tthis.$handle.focus();\n\t\t\treturn false;\n\t\t}\n\t\t$lastFocusable = OO.ui.findFocusable( this.$group, true );\n\t\tif ( $focused[ 0 ] === $lastFocusable[ 0 ] && !e.shiftKey ) {\n\t\t\t// Focus this group's handle and let the browser's tab handling happen (no 'return false').\n\t\t\t// This way we don't have to fiddle with other ToolGroups' business, or worry what to do\n\t\t\t// if the next group is not a PopupToolGroup or doesn't exist at all.\n\t\t\tthis.$handle.focus();\n\t\t\t// Close the popup so that we don't move back inside it (if this is the last group).\n\t\t\tthis.setActive( false );\n\t\t}\n\t}\n\treturn OO.ui.PopupToolGroup.parent.prototype.onMouseKeyDown.call( this, e );\n};\n\n/**\n * Handle mouse up and key up events.\n *\n * @protected\n * @param {jQuery.Event} e Mouse up or key up event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.PopupToolGroup.prototype.onHandleMouseKeyUp = function ( e ) {\n\tif (\n\t\t!this.isDisabled() &&\n\t\t( e.which === OO.ui.MouseButtons.LEFT || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )\n\t) {\n\t\treturn false;\n\t}\n};\n\n/**\n * Handle mouse down and key down events.\n *\n * @protected\n * @param {jQuery.Event} e Mouse down or key down event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.PopupToolGroup.prototype.onHandleMouseKeyDown = function ( e ) {\n\tvar $focusable;\n\tif ( !this.isDisabled() ) {\n\t\t// Tab on the handle jumps to the first tool in the group (if the popup is open).\n\t\tif ( e.which === OO.ui.Keys.TAB && !e.shiftKey ) {\n\t\t\t$focusable = OO.ui.findFocusable( this.$group );\n\t\t\tif ( $focusable.length ) {\n\t\t\t\t$focusable.trigger( 'focus' );\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif ( e.which === OO.ui.MouseButtons.LEFT || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER ) {\n\t\t\tthis.setActive( !this.active );\n\t\t\treturn false;\n\t\t}\n\t}\n};\n\n/**\n * Check if the tool group is active.\n *\n * @return {boolean} Tool group is active\n */\nOO.ui.PopupToolGroup.prototype.isActive = function () {\n\treturn this.active;\n};\n\n/**\n * Switch into 'active' mode.\n *\n * When active, the popup is visible. A mouseup event anywhere in the document will trigger\n * deactivation.\n *\n * @param {boolean} value The active state to set\n * @fires active\n */\nOO.ui.PopupToolGroup.prototype.setActive = function ( value ) {\n\tvar containerWidth, containerLeft;\n\tvalue = !!value;\n\tif ( this.active !== value ) {\n\t\tthis.active = value;\n\t\tif ( value ) {\n\t\t\tthis.getElementDocument().addEventListener( 'mouseup', this.onPopupDocumentMouseKeyUpHandler, true );\n\t\t\tthis.getElementDocument().addEventListener( 'keyup', this.onPopupDocumentMouseKeyUpHandler, true );\n\n\t\t\tthis.$clippable.css( 'left', '' );\n\t\t\tthis.$element.addClass( 'oo-ui-popupToolGroup-active' );\n\t\t\tthis.$group.addClass( 'oo-ui-popupToolGroup-active-tools' );\n\t\t\tthis.togglePositioning( true );\n\t\t\tthis.toggleClipping( true );\n\n\t\t\t// Try anchoring the popup to the left first\n\t\t\tthis.setHorizontalPosition( 'start' );\n\n\t\t\tif ( this.isClippedHorizontally() || this.isFloatableOutOfView() ) {\n\t\t\t\t// Anchoring to the left caused the popup to clip, so anchor it to the right instead\n\t\t\t\tthis.setHorizontalPosition( 'end' );\n\t\t\t}\n\t\t\tif ( this.isClippedHorizontally() || this.isFloatableOutOfView() ) {\n\t\t\t\t// Anchoring to the right also caused the popup to clip, so just make it fill the container\n\t\t\t\tcontainerWidth = this.$clippableScrollableContainer.width();\n\t\t\t\tcontainerLeft = this.$clippableScrollableContainer[ 0 ] === document.documentElement ?\n\t\t\t\t\t0 :\n\t\t\t\t\tthis.$clippableScrollableContainer.offset().left;\n\n\t\t\t\tthis.toggleClipping( false );\n\t\t\t\tthis.setHorizontalPosition( 'start' );\n\n\t\t\t\tthis.$clippable.css( {\n\t\t\t\t\t'margin-left': -( this.$element.offset().left - containerLeft ),\n\t\t\t\t\twidth: containerWidth\n\t\t\t\t} );\n\t\t\t}\n\t\t} else {\n\t\t\tthis.getElementDocument().removeEventListener( 'mouseup', this.onPopupDocumentMouseKeyUpHandler, true );\n\t\t\tthis.getElementDocument().removeEventListener( 'keyup', this.onPopupDocumentMouseKeyUpHandler, true );\n\t\t\tthis.$element.removeClass( 'oo-ui-popupToolGroup-active' );\n\t\t\tthis.$group.removeClass( 'oo-ui-popupToolGroup-active-tools' );\n\t\t\tthis.togglePositioning( false );\n\t\t\tthis.toggleClipping( false );\n\t\t}\n\t\tthis.emit( 'active', this.active );\n\t\tthis.updateThemeClasses();\n\t}\n};\n","/**\n * ListToolGroups are one of three types of {@link OO.ui.ToolGroup toolgroups} that are used to\n * create {@link OO.ui.Toolbar toolbars} (the other types of groups are {@link OO.ui.MenuToolGroup MenuToolGroup}\n * and {@link OO.ui.BarToolGroup BarToolGroup}). The {@link OO.ui.Tool tools} in a ListToolGroup are displayed\n * by label in a dropdown menu. The title of the tool is used as the label text. The menu itself can be configured\n * with a label, icon, indicator, header, and title.\n *\n * ListToolGroups can be configured to be expanded and collapsed. Collapsed lists will have a ‘More’ option that\n * users can select to see the full list of tools. If a collapsed toolgroup is expanded, a ‘Fewer’ option permits\n * users to collapse the list again.\n *\n * ListToolGroups are created by a {@link OO.ui.ToolGroupFactory toolgroup factory} when the toolbar is set up. The factory\n * requires the ListToolGroup's symbolic name, 'list', which is specified along with the other configurations. For more\n * information about how to add tools to a ListToolGroup, please see {@link OO.ui.ToolGroup toolgroup}.\n *\n *     @example\n *     // Example of a ListToolGroup\n *     var toolFactory = new OO.ui.ToolFactory();\n *     var toolGroupFactory = new OO.ui.ToolGroupFactory();\n *     var toolbar = new OO.ui.Toolbar( toolFactory, toolGroupFactory );\n *\n *     // Configure and register two tools\n *     function SettingsTool() {\n *         SettingsTool.parent.apply( this, arguments );\n *     }\n *     OO.inheritClass( SettingsTool, OO.ui.Tool );\n *     SettingsTool.static.name = 'settings';\n *     SettingsTool.static.icon = 'settings';\n *     SettingsTool.static.title = 'Change settings';\n *     SettingsTool.prototype.onSelect = function () {\n *         this.setActive( false );\n *     };\n *     SettingsTool.prototype.onUpdateState = function () {};\n *     toolFactory.register( SettingsTool );\n *     // Register two more tools, nothing interesting here\n *     function StuffTool() {\n *         StuffTool.parent.apply( this, arguments );\n *     }\n *     OO.inheritClass( StuffTool, OO.ui.Tool );\n *     StuffTool.static.name = 'stuff';\n *     StuffTool.static.icon = 'search';\n *     StuffTool.static.title = 'Change the world';\n *     StuffTool.prototype.onSelect = function () {\n *         this.setActive( false );\n *     };\n *     StuffTool.prototype.onUpdateState = function () {};\n *     toolFactory.register( StuffTool );\n *     toolbar.setup( [\n *         {\n *             // Configurations for list toolgroup.\n *             type: 'list',\n *             label: 'ListToolGroup',\n *             icon: 'ellipsis',\n *             title: 'This is the title, displayed when user moves the mouse over the list toolgroup',\n *             header: 'This is the header',\n *             include: [ 'settings', 'stuff' ],\n *             allowCollapse: ['stuff']\n *         }\n *     ] );\n *\n *     // Create some UI around the toolbar and place it in the document\n *     var frame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         framed: true\n *     } );\n *     frame.$element.append(\n *         toolbar.$element\n *     );\n *     $( document.body ).append( frame.$element );\n *     // Build the toolbar. This must be done after the toolbar has been appended to the document.\n *     toolbar.initialize();\n *\n * For more information about toolbars in general, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars\n *\n * @class\n * @extends OO.ui.PopupToolGroup\n *\n * @constructor\n * @param {OO.ui.Toolbar} toolbar\n * @param {Object} [config] Configuration options\n * @cfg {Array} [allowCollapse] Allow the specified tools to be collapsed. By default, collapsible tools\n *  will only be displayed if users click the ‘More’ option displayed at the bottom of the list. If\n *  the list is expanded, a ‘Fewer’ option permits users to collapse the list again. Any tools that\n *  are included in the toolgroup, but are not designated as collapsible, will always be displayed.\n *  To open a collapsible list in its expanded state, set #expanded to 'true'.\n * @cfg {Array} [forceExpand] Expand the specified tools. All other tools will be designated as collapsible.\n *  Unless #expanded is set to true, the collapsible tools will be collapsed when the list is first opened.\n * @cfg {boolean} [expanded=false] Expand collapsible tools. This config is only relevant if tools have\n *  been designated as collapsible. When expanded is set to true, all tools in the group will be displayed\n *  when the list is first opened. Users can collapse the list with a ‘Fewer’ option at the bottom.\n */\nOO.ui.ListToolGroup = function OoUiListToolGroup( toolbar, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolbar ) && config === undefined ) {\n\t\tconfig = toolbar;\n\t\ttoolbar = config.toolbar;\n\t}\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties (must be set before parent constructor, which calls #populate)\n\tthis.allowCollapse = config.allowCollapse;\n\tthis.forceExpand = config.forceExpand;\n\tthis.expanded = config.expanded !== undefined ? config.expanded : false;\n\tthis.collapsibleTools = [];\n\n\t// Parent constructor\n\tOO.ui.ListToolGroup.parent.call( this, toolbar, config );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-listToolGroup' );\n\tthis.$group.addClass( 'oo-ui-listToolGroup-tools' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ListToolGroup, OO.ui.PopupToolGroup );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.ListToolGroup.static.name = 'list';\n\n/* Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.ListToolGroup.prototype.populate = function () {\n\tvar i, len, allowCollapse = [];\n\n\tOO.ui.ListToolGroup.parent.prototype.populate.call( this );\n\n\t// Update the list of collapsible tools\n\tif ( this.allowCollapse !== undefined ) {\n\t\tallowCollapse = this.allowCollapse;\n\t} else if ( this.forceExpand !== undefined ) {\n\t\tallowCollapse = OO.simpleArrayDifference( Object.keys( this.tools ), this.forceExpand );\n\t}\n\n\tthis.collapsibleTools = [];\n\tfor ( i = 0, len = allowCollapse.length; i < len; i++ ) {\n\t\tif ( this.tools[ allowCollapse[ i ] ] !== undefined ) {\n\t\t\tthis.collapsibleTools.push( this.tools[ allowCollapse[ i ] ] );\n\t\t}\n\t}\n\n\t// Keep at the end, even when tools are added\n\tthis.$group.append( this.getExpandCollapseTool().$element );\n\n\tthis.getExpandCollapseTool().toggle( this.collapsibleTools.length !== 0 );\n\tthis.updateCollapsibleState();\n};\n\n/**\n * Get the expand/collapse tool for this group\n *\n * @return {OO.ui.Tool} Expand collapse tool\n */\nOO.ui.ListToolGroup.prototype.getExpandCollapseTool = function () {\n\tvar ExpandCollapseTool;\n\tif ( this.expandCollapseTool === undefined ) {\n\t\tExpandCollapseTool = function () {\n\t\t\tExpandCollapseTool.parent.apply( this, arguments );\n\t\t};\n\n\t\tOO.inheritClass( ExpandCollapseTool, OO.ui.Tool );\n\n\t\tExpandCollapseTool.prototype.onSelect = function () {\n\t\t\tthis.toolGroup.expanded = !this.toolGroup.expanded;\n\t\t\tthis.toolGroup.updateCollapsibleState();\n\t\t\tthis.setActive( false );\n\t\t};\n\t\tExpandCollapseTool.prototype.onUpdateState = function () {\n\t\t\t// Do nothing. Tool interface requires an implementation of this function.\n\t\t};\n\n\t\tExpandCollapseTool.static.name = 'more-fewer';\n\n\t\tthis.expandCollapseTool = new ExpandCollapseTool( this );\n\t}\n\treturn this.expandCollapseTool;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ListToolGroup.prototype.onMouseKeyUp = function ( e ) {\n\t// Do not close the popup when the user wants to show more/fewer tools\n\tif (\n\t\t$( e.target ).closest( '.oo-ui-tool-name-more-fewer' ).length &&\n\t\t( e.which === OO.ui.MouseButtons.LEFT || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )\n\t) {\n\t\t// HACK: Prevent the popup list from being hidden. Skip the PopupToolGroup implementation (which\n\t\t// hides the popup list when a tool is selected) and call ToolGroup's implementation directly.\n\t\treturn OO.ui.ListToolGroup.parent.parent.prototype.onMouseKeyUp.call( this, e );\n\t} else {\n\t\treturn OO.ui.ListToolGroup.parent.prototype.onMouseKeyUp.call( this, e );\n\t}\n};\n\nOO.ui.ListToolGroup.prototype.updateCollapsibleState = function () {\n\tvar i, icon, len;\n\n\tif ( this.toolbar.position !== 'bottom' ) {\n\t\ticon = this.expanded ? 'collapse' : 'expand';\n\t} else {\n\t\ticon = this.expanded ? 'expand' : 'collapse';\n\t}\n\n\tthis.getExpandCollapseTool()\n\t\t.setIcon( icon )\n\t\t.setTitle( OO.ui.msg( this.expanded ? 'ooui-toolgroup-collapse' : 'ooui-toolgroup-expand' ) );\n\n\tfor ( i = 0, len = this.collapsibleTools.length; i < len; i++ ) {\n\t\tthis.collapsibleTools[ i ].toggle( this.expanded );\n\t}\n\n\t// Re-evaluate clipping, because our height has changed\n\tthis.clip();\n};\n","/**\n * MenuToolGroups are one of three types of {@link OO.ui.ToolGroup toolgroups} that are used to\n * create {@link OO.ui.Toolbar toolbars} (the other types of groups are {@link OO.ui.BarToolGroup BarToolGroup}\n * and {@link OO.ui.ListToolGroup ListToolGroup}). MenuToolGroups contain selectable {@link OO.ui.Tool tools},\n * which are displayed by label in a dropdown menu. The tool's title is used as the label text, and the\n * menu label is updated to reflect which tool or tools are currently selected. If no tools are selected,\n * the menu label is empty. The menu can be configured with an indicator, icon, title, and/or header.\n *\n * MenuToolGroups are created by a {@link OO.ui.ToolGroupFactory tool group factory} when the toolbar\n * is set up.\n *\n *     @example\n *     // Example of a MenuToolGroup\n *     var toolFactory = new OO.ui.ToolFactory();\n *     var toolGroupFactory = new OO.ui.ToolGroupFactory();\n *     var toolbar = new OO.ui.Toolbar( toolFactory, toolGroupFactory );\n *\n *     // We will be placing status text in this element when tools are used\n *     var $area = $( '<p>' ).text( 'An example of a MenuToolGroup. Select a tool from the dropdown menu.' );\n *\n *     // Define the tools that we're going to place in our toolbar\n *\n *     function SettingsTool() {\n *         SettingsTool.parent.apply( this, arguments );\n *         this.reallyActive = false;\n *     }\n *     OO.inheritClass( SettingsTool, OO.ui.Tool );\n *     SettingsTool.static.name = 'settings';\n *     SettingsTool.static.icon = 'settings';\n *     SettingsTool.static.title = 'Change settings';\n *     SettingsTool.prototype.onSelect = function () {\n *         $area.text( 'Settings tool clicked!' );\n *         // Toggle the active state on each click\n *         this.reallyActive = !this.reallyActive;\n *         this.setActive( this.reallyActive );\n *         // To update the menu label\n *         this.toolbar.emit( 'updateState' );\n *     };\n *     SettingsTool.prototype.onUpdateState = function () {};\n *     toolFactory.register( SettingsTool );\n *\n *     function StuffTool() {\n *         StuffTool.parent.apply( this, arguments );\n *         this.reallyActive = false;\n *     }\n *     OO.inheritClass( StuffTool, OO.ui.Tool );\n *     StuffTool.static.name = 'stuff';\n *     StuffTool.static.icon = 'ellipsis';\n *     StuffTool.static.title = 'More stuff';\n *     StuffTool.prototype.onSelect = function () {\n *         $area.text( 'More stuff tool clicked!' );\n *         // Toggle the active state on each click\n *         this.reallyActive = !this.reallyActive;\n *         this.setActive( this.reallyActive );\n *         // To update the menu label\n *         this.toolbar.emit( 'updateState' );\n *     };\n *     StuffTool.prototype.onUpdateState = function () {};\n *     toolFactory.register( StuffTool );\n *\n *     // Finally define which tools and in what order appear in the toolbar. Each tool may only be\n *     // used once (but not all defined tools must be used).\n *     toolbar.setup( [\n *         {\n *             type: 'menu',\n *             header: 'This is the (optional) header',\n *             title: 'This is the (optional) title',\n *             include: [ 'settings', 'stuff' ]\n *         }\n *     ] );\n *\n *     // Create some UI around the toolbar and place it in the document\n *     var frame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         framed: true\n *     } );\n *     var contentFrame = new OO.ui.PanelLayout( {\n *         expanded: false,\n *         padded: true\n *     } );\n *     frame.$element.append(\n *         toolbar.$element,\n *         contentFrame.$element.append( $area )\n *     );\n *     $( document.body ).append( frame.$element );\n *\n *     // Here is where the toolbar is actually built. This must be done after inserting it into the\n *     // document.\n *     toolbar.initialize();\n *     toolbar.emit( 'updateState' );\n *\n * For more information about how to add tools to a MenuToolGroup, please see {@link OO.ui.ToolGroup toolgroup}.\n * For more information about toolbars in general, please see the [OOUI documentation on MediaWiki] [1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Toolbars\n *\n * @class\n * @extends OO.ui.PopupToolGroup\n *\n * @constructor\n * @param {OO.ui.Toolbar} toolbar\n * @param {Object} [config] Configuration options\n */\nOO.ui.MenuToolGroup = function OoUiMenuToolGroup( toolbar, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( toolbar ) && config === undefined ) {\n\t\tconfig = toolbar;\n\t\ttoolbar = config.toolbar;\n\t}\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.MenuToolGroup.parent.call( this, toolbar, config );\n\n\t// Events\n\tthis.toolbar.connect( this, { updateState: 'onUpdateState' } );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-menuToolGroup' );\n\tthis.$group.addClass( 'oo-ui-menuToolGroup-tools' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MenuToolGroup, OO.ui.PopupToolGroup );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.MenuToolGroup.static.name = 'menu';\n\n/* Methods */\n\n/**\n * Handle the toolbar state being updated.\n *\n * When the state changes, the title of each active item in the menu will be joined together and\n * used as a label for the group. The label will be empty if none of the items are active.\n *\n * @private\n */\nOO.ui.MenuToolGroup.prototype.onUpdateState = function () {\n\tvar name,\n\t\tlabelTexts = [];\n\n\tfor ( name in this.tools ) {\n\t\tif ( this.tools[ name ].isActive() ) {\n\t\t\tlabelTexts.push( this.tools[ name ].getTitle() );\n\t\t}\n\t}\n\n\tthis.setLabel( labelTexts.join( ', ' ) || ' ' );\n};\n","}( OO ) );\n"]}
\ No newline at end of file
index d0aa416..2057154 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOUI v0.30.0
+ * OOUI v0.30.1
  * https://www.mediawiki.org/wiki/OOUI
  *
- * Copyright 2011–2018 OOUI Team and other contributors.
+ * Copyright 2011–2019 OOUI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2018-12-20T06:10:36Z
+ * Date: 2019-01-10T07:00:17Z
  */
 .oo-ui-draggableElement-handle:not( .oo-ui-draggableElement-undraggable ).oo-ui-widget {
   cursor: move;
index 1cfef10..01f8e9f 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOUI v0.30.0
+ * OOUI v0.30.1
  * https://www.mediawiki.org/wiki/OOUI
  *
- * Copyright 2011–2018 OOUI Team and other contributors.
+ * Copyright 2011–2019 OOUI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2018-12-20T06:10:36Z
+ * Date: 2019-01-10T07:00:17Z
  */
 .oo-ui-draggableElement-handle:not( .oo-ui-draggableElement-undraggable ).oo-ui-widget {
   cursor: move;
 }
 .oo-ui-tagItemWidget.oo-ui-widget-enabled .oo-ui-buttonElement-button .oo-ui-icon-close {
   left: 0.28571429em;
-  min-width: 12px;
-  width: 0.85714286em;
+  min-width: 14px;
+  width: 1em;
 }
 .oo-ui-tagItemWidget.oo-ui-widget-enabled .oo-ui-buttonElement-button .oo-ui-labelElement-label,
 .oo-ui-tagItemWidget.oo-ui-widget-enabled .oo-ui-buttonElement-button .oo-ui-indicatorElement-indicator {
index 53f3fc1..30c2a62 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOUI v0.30.0
+ * OOUI v0.30.1
  * https://www.mediawiki.org/wiki/OOUI
  *
- * Copyright 2011–2018 OOUI Team and other contributors.
+ * Copyright 2011–2019 OOUI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2018-12-20T06:10:28Z
+ * Date: 2019-01-10T07:00:09Z
  */
 ( function ( OO ) {
 
@@ -674,7 +674,6 @@ OO.ui.mixin.LookupElement = function OoUiMixinLookupElement( config ) {
        // Initialization
        this.$input.attr( {
                role: 'combobox',
-               'aria-expanded': 'false',
                'aria-owns': this.lookupMenu.getElementId(),
                'aria-autocomplete': 'list'
        } );
@@ -1289,7 +1288,7 @@ OO.ui.PageLayout.prototype.setActive = function ( active ) {
  *         ],
  *         continuous: true
  *     } );
- *     $( 'body' ).append( myStack.$element );
+ *     $( document.body ).append( myStack.$element );
  *
  * @class
  * @extends OO.ui.PanelLayout
@@ -1615,7 +1614,7 @@ OO.ui.StackLayout.prototype.updateHiddenState = function ( items, selectedItem )
  *     menuLayout.$content.append(
  *         contentPanel.$element.append( '<b>Content panel</b>', '<p>Note that the menu is positioned relative to the content panel: top, bottom, after, before.</p>')
  *     );
- *     $( 'body' ).append( menuLayout.$element );
+ *     $( document.body ).append( menuLayout.$element );
  *
  * If menu size needs to be overridden, it can be accomplished using CSS similar to the snippet
  * below. MenuLayout's CSS will override the appropriate values with 'auto' or '0' to display the
@@ -1849,7 +1848,7 @@ OO.ui.MenuLayout.prototype.resetScroll = function () {
  *     } );
  *
  *     booklet.addPages( [ page1, page2 ] );
- *     $( 'body' ).append( booklet.$element );
+ *     $( document.body ).append( booklet.$element );
  *
  * @class
  * @extends OO.ui.MenuLayout
@@ -2360,6 +2359,7 @@ OO.ui.BookletLayout.prototype.setPage = function ( name ) {
                                ) {
                                        $focused = previousPage.$element.find( ':focus' );
                                        if ( $focused.length ) {
+                                               // eslint-disable-next-line jquery/no-event-shorthand
                                                $focused[ 0 ].blur();
                                        }
                                }
@@ -2372,6 +2372,7 @@ OO.ui.BookletLayout.prototype.setPage = function ( name ) {
                                // blurred when it was hidden, but browsers are not very consistent about this.
                                $focused = previousPage.$element.find( ':focus' );
                                if ( $focused.length ) {
+                                       // eslint-disable-next-line jquery/no-event-shorthand
                                        $focused[ 0 ].blur();
                                }
                        }
@@ -2440,7 +2441,7 @@ OO.ui.BookletLayout.prototype.selectFirstSelectablePage = function () {
  *     var index = new OO.ui.IndexLayout();
  *
  *     index.addTabPanels( [ tabPanel1, tabPanel2 ] );
- *     $( 'body' ).append( index.$element );
+ *     $( document.body ).append( index.$element );
  *
  * @class
  * @extends OO.ui.MenuLayout
@@ -2827,6 +2828,7 @@ OO.ui.IndexLayout.prototype.setTabPanel = function ( name ) {
                                ) {
                                        $focused = previousTabPanel.$element.find( ':focus' );
                                        if ( $focused.length ) {
+                                               // eslint-disable-next-line jquery/no-event-shorthand
                                                $focused[ 0 ].blur();
                                        }
                                }
@@ -2839,6 +2841,7 @@ OO.ui.IndexLayout.prototype.setTabPanel = function ( name ) {
                                // blurred when it was hidden, but browsers are not very consistent about this.
                                $focused = previousTabPanel.$element.find( ':focus' );
                                if ( $focused.length ) {
+                                       // eslint-disable-next-line jquery/no-event-shorthand
                                        $focused[ 0 ].blur();
                                }
                        }
@@ -2868,6 +2871,7 @@ OO.ui.IndexLayout.prototype.selectFirstSelectableTabPanel = function () {
  * @abstract
  * @class
  * @extends OO.ui.Widget
+ * @mixins OO.ui.mixin.TitledElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -2881,6 +2885,9 @@ OO.ui.ToggleWidget = function OoUiToggleWidget( config ) {
        // Parent constructor
        OO.ui.ToggleWidget.parent.call( this, config );
 
+       // Mixin constructor
+       OO.ui.mixin.TitledElement.call( this, config );
+
        // Properties
        this.value = null;
 
@@ -2892,6 +2899,7 @@ OO.ui.ToggleWidget = function OoUiToggleWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.ToggleWidget, OO.ui.Widget );
+OO.mixinClass( OO.ui.ToggleWidget, OO.ui.mixin.TitledElement );
 
 /* Events */
 
@@ -2944,14 +2952,14 @@ OO.ui.ToggleWidget.prototype.setValue = function ( value ) {
  *     @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
- *     } );
+ *             label: 'Toggle Button off'
+ *         } ),
+ *         toggleButton2 = new OO.ui.ToggleButtonWidget( {
+ *             label: 'Toggle Button on',
+ *             value: true
+ *         } );
  *     // Append the buttons to the DOM.
- *     $( 'body' ).append( toggleButton1.$element, toggleButton2.$element );
+ *     $( document.body ).append( toggleButton1.$element, toggleButton2.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Buttons_and_Switches#Toggle_buttons
  *
@@ -2961,7 +2969,6 @@ OO.ui.ToggleWidget.prototype.setValue = function ( value ) {
  * @mixins OO.ui.mixin.IconElement
  * @mixins OO.ui.mixin.IndicatorElement
  * @mixins OO.ui.mixin.LabelElement
- * @mixins OO.ui.mixin.TitledElement
  * @mixins OO.ui.mixin.FlaggedElement
  * @mixins OO.ui.mixin.TabIndexedElement
  *
@@ -2982,7 +2989,6 @@ OO.ui.ToggleButtonWidget = function OoUiToggleButtonWidget( config ) {
        OO.ui.mixin.IconElement.call( this, config );
        OO.ui.mixin.IndicatorElement.call( this, config );
        OO.ui.mixin.LabelElement.call( this, config );
-       OO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$button } ) );
        OO.ui.mixin.FlaggedElement.call( this, config );
        OO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$button } ) );
 
@@ -2994,6 +3000,7 @@ OO.ui.ToggleButtonWidget = function OoUiToggleButtonWidget( config ) {
        this.$element
                .addClass( 'oo-ui-toggleButtonWidget' )
                .append( this.$button );
+       this.setTitledElement( this.$button );
 };
 
 /* Setup */
@@ -3003,7 +3010,6 @@ OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.ButtonElement );
 OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.IconElement );
 OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.IndicatorElement );
 OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.LabelElement );
-OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.TitledElement );
 OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.FlaggedElement );
 OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.TabIndexedElement );
 
@@ -3063,20 +3069,25 @@ OO.ui.ToggleButtonWidget.prototype.setButtonElement = function ( $button ) {
  *
  *     @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'
- *     } );
+ *     var toggleSwitch1 = new OO.ui.ToggleSwitchWidget(),
+ *         toggleSwitch2 = new OO.ui.ToggleSwitchWidget( {
+ *             value: true
+ *         } );
+ *         // Create a FieldsetLayout to layout and label switches.
+ *         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' } )
+ *         new OO.ui.FieldLayout( toggleSwitch1, {
+ *             label: 'Off',
+ *             align: 'top'
+ *         } ),
+ *         new OO.ui.FieldLayout( toggleSwitch2, {
+ *             label: 'On',
+ *             align: 'top'
+ *         } )
  *     ] );
- *     $( 'body' ).append( fieldset.$element );
+ *     $( document.body ).append( fieldset.$element );
  *
  * @class
  * @extends OO.ui.ToggleWidget
@@ -3530,7 +3541,6 @@ OO.mixinClass( OO.ui.OutlineSelectWidget, OO.ui.mixin.TabIndexedElement );
  * @mixins OO.ui.mixin.ButtonElement
  * @mixins OO.ui.mixin.IconElement
  * @mixins OO.ui.mixin.IndicatorElement
- * @mixins OO.ui.mixin.TitledElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -3546,12 +3556,12 @@ OO.ui.ButtonOptionWidget = function OoUiButtonOptionWidget( config ) {
        OO.ui.mixin.ButtonElement.call( this, config );
        OO.ui.mixin.IconElement.call( this, config );
        OO.ui.mixin.IndicatorElement.call( this, config );
-       OO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$button } ) );
 
        // Initialization
        this.$element.addClass( 'oo-ui-buttonOptionWidget' );
        this.$button.append( this.$icon, this.$label, this.$indicator );
        this.$element.append( this.$button );
+       this.setTitledElement( this.$button );
 };
 
 /* Setup */
@@ -3560,7 +3570,6 @@ OO.inheritClass( OO.ui.ButtonOptionWidget, OO.ui.OptionWidget );
 OO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.ButtonElement );
 OO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.IconElement );
 OO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.IndicatorElement );
-OO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.TitledElement );
 
 /* Static Properties */
 
@@ -3601,29 +3610,26 @@ OO.ui.ButtonOptionWidget.prototype.setSelected = function ( state ) {
  * the [OOUI documentation on MediaWiki] [1] for more information.
  *
  *     @example
- *     // Example: A ButtonSelectWidget that contains three ButtonOptionWidgets
+ *     // A ButtonSelectWidget that contains three ButtonOptionWidgets.
  *     var option1 = new OO.ui.ButtonOptionWidget( {
- *         data: 1,
- *         label: 'Option 1',
- *         title: 'Button option 1'
- *     } );
- *
- *     var option2 = new OO.ui.ButtonOptionWidget( {
- *         data: 2,
- *         label: 'Option 2',
- *         title: 'Button option 2'
- *     } );
- *
- *     var option3 = new OO.ui.ButtonOptionWidget( {
- *         data: 3,
- *         label: 'Option 3',
- *         title: 'Button option 3'
- *     } );
- *
- *     var buttonSelect=new OO.ui.ButtonSelectWidget( {
- *         items: [ option1, option2, option3 ]
- *     } );
- *     $( 'body' ).append( buttonSelect.$element );
+ *             data: 1,
+ *             label: 'Option 1',
+ *             title: 'Button option 1'
+ *         } ),
+ *         option2 = new OO.ui.ButtonOptionWidget( {
+ *             data: 2,
+ *             label: 'Option 2',
+ *             title: 'Button option 2'
+ *         } ),
+ *         option3 = new OO.ui.ButtonOptionWidget( {
+ *             data: 3,
+ *             label: 'Option 3',
+ *             title: 'Button option 3'
+ *         } ),
+ *         buttonSelect = new OO.ui.ButtonSelectWidget( {
+ *             items: [ option1, option2, option3 ]
+ *         } );
+ *     $( document.body ).append( buttonSelect.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options
  *
@@ -4010,13 +4016,13 @@ OO.ui.TagItemWidget.prototype.isValid = function () {
  * a menu and a popup respectively.
  *
  *     @example
- *     // Example: A basic TagMultiselectWidget.
+ *     // A TagMultiselectWidget.
  *     var widget = new OO.ui.TagMultiselectWidget( {
  *         inputPosition: 'outline',
  *         allowedValues: [ 'Option 1', 'Option 2', 'Option 3' ],
  *         selected: [ 'Option 1' ]
  *     } );
- *     $( 'body' ).append( widget.$element );
+ *     $( document.body ).append( widget.$element );
  *
  * @class
  * @extends OO.ui.Widget
@@ -4026,6 +4032,7 @@ OO.ui.TagItemWidget.prototype.isValid = function () {
  * @mixins OO.ui.mixin.IconElement
  * @mixins OO.ui.mixin.TabIndexedElement
  * @mixins OO.ui.mixin.FlaggedElement
+ * @mixins OO.ui.mixin.TitledElement
  *
  * @constructor
  * @param {Object} config Configuration object
@@ -4076,6 +4083,7 @@ OO.ui.TagMultiselectWidget = function OoUiTagMultiselectWidget( config ) {
        OO.ui.mixin.TabIndexedElement.call( this, config );
        OO.ui.mixin.FlaggedElement.call( this, config );
        OO.ui.mixin.DraggableGroupElement.call( this, config );
+       OO.ui.mixin.TitledElement.call( this, config );
 
        this.toggleDraggable(
                config.allowReordering === undefined ?
@@ -4208,6 +4216,7 @@ OO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.IndicatorElement );
 OO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.IconElement );
 OO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.TabIndexedElement );
 OO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.FlaggedElement );
+OO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.TitledElement );
 
 /* Static properties */
 
@@ -4905,9 +4914,9 @@ OO.ui.TagMultiselectWidget.prototype.isValid = function () {
  * to use a popup. The popup can be configured to have a default input to insert values into the widget.
  *
  *     @example
- *     // Example: A basic PopupTagMultiselectWidget.
+ *     // A PopupTagMultiselectWidget.
  *     var widget = new OO.ui.PopupTagMultiselectWidget();
- *     $( 'body' ).append( widget.$element );
+ *     $( document.body ).append( widget.$element );
  *
  *     // Example: A PopupTagMultiselectWidget with an external popup.
  *     var popupInput = new OO.ui.TextInputWidget(),
@@ -4917,7 +4926,7 @@ OO.ui.TagMultiselectWidget.prototype.isValid = function () {
  *               $content: popupInput.$element
  *            }
  *         } );
- *     $( 'body' ).append( widget.$element );
+ *     $( document.body ).append( widget.$element );
  *
  * @class
  * @extends OO.ui.TagMultiselectWidget
@@ -5066,7 +5075,7 @@ OO.ui.PopupTagMultiselectWidget.prototype.addTagByPopupValue = function ( data,
  * to use a menu of selectable options.
  *
  *     @example
- *     // Example: A basic MenuTagMultiselectWidget.
+ *     // A basic MenuTagMultiselectWidget.
  *     var widget = new OO.ui.MenuTagMultiselectWidget( {
  *         inputPosition: 'outline',
  *         options: [
@@ -5076,7 +5085,7 @@ OO.ui.PopupTagMultiselectWidget.prototype.addTagByPopupValue = function ( data,
  *         ],
  *         selected: [ 'option1', 'option2' ]
  *     } );
- *     $( 'body' ).append( widget.$element );
+ *     $( document.body ).append( widget.$element );
  *
  * @class
  * @extends OO.ui.TagMultiselectWidget
@@ -5126,6 +5135,9 @@ OO.ui.MenuTagMultiselectWidget = function OoUiMenuTagMultiselectWidget( config )
                .append( this.menu.$element );
        this.$element
                .addClass( 'oo-ui-menuTagMultiselectWidget' );
+       // Remove MenuSelectWidget's generic focus owner ARIA attribute
+       // TODO: Should this widget have a `role` that is compatible with this attribute?
+       this.menu.$focusOwner.removeAttr( 'aria-expanded' );
        // TagMultiselectWidget already does this, but it doesn't work right because this.menu is not yet
        // set up while the parent constructor runs, and #getAllowedValues rejects everything.
        if ( config.selected ) {
@@ -5200,6 +5212,11 @@ OO.ui.MenuTagMultiselectWidget.prototype.onMenuToggle = function ( isVisible ) {
        } else {
                this.initializeMenuSelection();
        }
+       setTimeout( function () {
+               // Remove MenuSelectWidget's generic focus owner ARIA attribute
+               // TODO: Should this widget have a `role` that is compatible with this attribute?
+               this.menu.$focusOwner.removeAttr( 'aria-expanded' );
+       }.bind( this ) );
 };
 
 /**
@@ -5366,14 +5383,14 @@ OO.ui.MenuTagMultiselectWidget.prototype.getAllowedValues = function () {
 
 /**
  * SelectFileWidgets allow for selecting files, using the HTML5 File API. These
- * widgets can be configured with {@link OO.ui.mixin.IconElement icons} and {@link
- * OO.ui.mixin.IndicatorElement indicators}.
+ * widgets can be configured with {@link OO.ui.mixin.IconElement icons}, {@link
+ * OO.ui.mixin.IndicatorElement indicators} and {@link OO.ui.mixin.TitledElement titles}.
  * Please see the [OOUI documentation on MediaWiki] [1] for more information and examples.
  *
  *     @example
- *     // Example of a file select widget
+ *     // A file select widget.
  *     var selectFile = new OO.ui.SelectFileWidget();
- *     $( 'body' ).append( selectFile.$element );
+ *     $( document.body ).append( selectFile.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets
  *
@@ -5383,6 +5400,7 @@ OO.ui.MenuTagMultiselectWidget.prototype.getAllowedValues = function () {
  * @mixins OO.ui.mixin.IndicatorElement
  * @mixins OO.ui.mixin.PendingElement
  * @mixins OO.ui.mixin.LabelElement
+ * @mixins OO.ui.mixin.TitledElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -5415,6 +5433,7 @@ OO.ui.SelectFileWidget = function OoUiSelectFileWidget( config ) {
        OO.ui.mixin.IndicatorElement.call( this, config );
        OO.ui.mixin.PendingElement.call( this, $.extend( {}, config, { $pending: this.$info } ) );
        OO.ui.mixin.LabelElement.call( this, config );
+       OO.ui.mixin.TitledElement.call( this, config );
 
        // Properties
        this.$info = $( '<span>' );
@@ -5501,6 +5520,7 @@ OO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.IconElement );
 OO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.IndicatorElement );
 OO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.PendingElement );
 OO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.LabelElement );
+OO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.TitledElement );
 
 /* Static Properties */
 
index 31a78e9..08ee907 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["../src/intro.js.txt","../src/mixins/DraggableElement.js","../src/mixins/DraggableGroupElement.js","../src/mixins/RequestManager.js","../src/mixins/LookupElement.js","../src/layouts/TabPanelLayout.js","../src/layouts/PageLayout.js","../src/layouts/StackLayout.js","../src/layouts/MenuLayout.js","../src/layouts/BookletLayout.js","../src/layouts/IndexLayout.js","../src/widgets/ToggleWidget.js","../src/widgets/ToggleButtonWidget.js","../src/widgets/ToggleSwitchWidget.js","../src/widgets/OutlineControlsWidget.js","../src/widgets/OutlineOptionWidget.js","../src/widgets/OutlineSelectWidget.js","../src/widgets/ButtonOptionWidget.js","../src/widgets/ButtonSelectWidget.js","../src/widgets/TabOptionWidget.js","../src/widgets/TabSelectWidget.js","../src/widgets/TagItemWidget.js","../src/widgets/TagMultiselectWidget.js","../src/widgets/PopupTagMultiselectWidget.js","../src/widgets/MenuTagMultiselectWidget.js","../src/widgets/SelectFileWidget.js","../src/widgets/SearchWidget.js","../src/outro.js.txt"],"names":[],"mappings":";;;;;;;;;;AAAA,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnB;AACA,CAAC,GAAG,CAAC,MAAM,EAAE;;ACFb,GAAG;AACH,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO;AAChF,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;AACnF,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG;AACxF,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC1B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,QAAQ;AACZ,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO;AAChH,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe;AAC5F,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,OAAO;AAC1F,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK;AACnB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AACvB;AACA,CAAC,EAAE,CAAC,UAAU;AACd,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACnB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AAChD,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3B;AACA,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM;AACzB,CAAC,IAAI,EAAE,OAAO;AACd,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACvC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AAChD,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AAC5C,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AAC1C,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AACxC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACjC,EAAE,CAAC,CAAC,EAAE;AACN,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE;AAC1D,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE;AACpF,EAAE;AACF;AACA,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;AAC7C;AACA,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;AACnB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;AACjF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AAC3G,CAAC,EAAE;AACH;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;AACjB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AACjF,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AACvC,CAAC,EAAE;AACH;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;AACd,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;AACzF,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AACvB,CAAC,EAAE;AACH;AACA,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AACvB;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa;AACxC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC;AACxE;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;AACjE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU;AACpE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;AACnB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACnF,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3E;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;AAC/B;AACA,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACpF;AACA,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI;AACvE,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;AACzE,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;AAChC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACpD,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;AAC3C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU;AACzD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AACvB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;AAC9B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;AACrC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7B,EAAE,MAAM,CAAC;AACT,CAAC,CAAC;AACF;AACA,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACrB,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI;AACzE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7C,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM;AACnD,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE;AACtD,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;AAC9B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;AACrC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS;AACpD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;AACnB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC;AAC9C;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,EAAE,MAAM,CAAC,KAAK,CAAC;AACf,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM;AACtB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAClC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACrC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO;AACpB,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACnE,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC;AAC7C,CAAC,GAAG,CAAC,CAAC;AACN,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;AAC1E,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClB,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;AACxD,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;AACxE,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE;AAC1D,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK;AAClE,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC1B,EAAE,OAAO,EAAE,OAAO;AAClB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;AACjD,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,EAAE;AACrD,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK;AACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE;AAChC,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;AAC5B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;AACjB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,EAAE;AACnE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE;AACxB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACrB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;AACrC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC,cAAc,GAAG;AACpB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;AACxB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;AAC1D,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AACrC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;AACrC,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC,cAAc,GAAG;AACpB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AAClB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;AAClE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;AACnC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACrB,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE;AACvC,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;AACjB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK;AAC9B,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACnB,EAAE;;ACvNF,GAAG;AACH,CAAC,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AAC3E,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1F,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;AACvD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,QAAQ;AACZ,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACnC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,WAAW;AAC5F,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG;AACzE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACjG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;AAChF,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe;AAC5F,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc;AAChC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AACvB;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC/C;AACA,CAAC,EAAE,CAAC,UAAU;AACd,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;AACrD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACtB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;AACpB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACjB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;AAC7E;AACA,CAAC,EAAE,CAAC,MAAM;AACV,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAClB,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE;AAC7B,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE;AACzB,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClB,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,EAAE,aAAa,CAAC,CAAC,CAAC,eAAe,EAAE;AACnC,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAmB,EAAE;AAClC,EAAE,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC;AACpC,CAAC,CAAC,CAAC,EAAE;AACL;AACA,CAAC,EAAE,CAAC,UAAU;AACd,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAChC,CAAC,CAAC;AACF,CAAC,IAAI,EAAE,OAAO;AACd,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC5C,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE;AAC9F,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;AAC7E;AACA,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ;AACA,GAAG;AACH,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AACnE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;AACd,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;AAC1D,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;AACpD,CAAC,EAAE;AACH;AACA,GAAG;AACH,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC9C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;AACjB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI;AAC5D,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;AACpD,CAAC,EAAE;AACH;AACA,GAAG;AACH,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;AAC9C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;AACnB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS;AACnD,CAAC,EAAE;AACH;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;AACjE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU;AACpE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;AACnB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACxF,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3E;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;AAC/B;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO;AACjD,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9C,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AAC1C,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACnB;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK;AACf,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AAC3C,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;AAC3C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU;AACzD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AACvB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;AACnC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;AAC1D,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7B,EAAE,MAAM,CAAC;AACT,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ;AAC3E,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;AACzC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG;AACtC,CAAC,IAAI,CAAC,aAAa,GAAG;AACtB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AACrE,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;AACtD,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE;AAC9C,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE;AAC1B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AAC3C,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACZ;AACA,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;AAChC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5D,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;AACrC,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW;AAC7E,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;AAC1D,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ;AACpD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/E,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC;AAChC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG;AAC5B;AACA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS;AACnE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AACjD,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACd,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE;AAC7C,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;AACtF,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9E,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACxC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,WAAW,CAAC,EAAE;AACnD,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,WAAW,CAAC,EAAE;AAC3D,EAAE,CAAC;AACH,EAAE,IAAI,CAAC,aAAa,GAAG;AACvB,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,aAAa,GAAG;AACtB,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW;AACvC,CAAC,MAAM,CAAC,KAAK,CAAC;AACd,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK;AAC5B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;AACzC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;AACjB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC;AAC5B,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG;AAC5B,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG;AAClC;AACA,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;AAClD,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AAChF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAChE,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAClE;AACA,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,GAAG,IAAI,EAAE,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AACvE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACV,GAAG,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AACxC,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK;AAClC,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACvC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD,EAAE,EAAE;AACJ,EAAE,IAAI,CAAC,aAAa,GAAG;AACvB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE;AACzC,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO;AACnB,CAAC,CAAC,CAAC,cAAc,GAAG;AACpB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AACjC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI;AAC5D,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK;AACrC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACnF,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;AACrC,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;AACrB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;AAC1D,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAC/D,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,EAAE;AACnE,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;AACjC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE;AAClC,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,EAAE;AACtE,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;AAChD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO;AAChH,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtB,EAAE;;AC5PF,GAAG;AACH,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE;AACzG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE;AACzC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,QAAQ;AACZ,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,EAAE,CAAC,CAAC;AACjE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AACxB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;AAC3C;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;AAC7C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;AACtG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO;AAClG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACpE,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACnB,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG;AACjC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG;AAC1B,EAAE,UAAU,CAAC;AACb;AACA,CAAC,IAAI,CAAC,YAAY,GAAG;AACrB,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AACjD,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC3B,GAAG,IAAI,CAAC,WAAW,GAAG;AACtB,EAAE,CAAC;AACH,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5B,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG;AACvD,EAAE,UAAU;AACZ,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzB,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,SAAS;AACvE,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;AAC9C,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;AACjF,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE;AACvF,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE;AACpF,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACxB,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9B,KAAK,MAAM,CAAC,UAAU,GAAG;AACzB,IAAI,CAAC;AACL,GAAG,CAAC,CAAC,CAAC;AACN,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACjC,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE;AACtF,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU;AACpC,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AACjD,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,KAAK,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC,QAAQ,CAAC,EAAE;AACvF,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AACtD,IAAI,CAAC;AACL,GAAG,CAAC,CAAC,CAAC;AACN,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvB,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE;AACnF,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU;AACpC,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AACjD,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,KAAK,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,KAAK,QAAQ,CAAC,MAAM,GAAG;AACvB,IAAI,CAAC;AACL,GAAG,CAAC,CAAC,EAAE;AACP,CAAC,CAAC;AACF,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG;AAC3B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;AAC/C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACtC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM;AACpE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO;AAC1C,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3B,EAAE,UAAU,CAAC,KAAK,GAAG;AACrB,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;AAC5B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM;AACV,CAAC,CAAC,CAAC,CAAC,QAAQ;AACZ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI;AACpC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5D;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACvD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM;AACV,CAAC,CAAC,CAAC,CAAC,QAAQ;AACZ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM;AACzF,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;AAC7D,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK;AAChG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACrD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM;AACV,CAAC,CAAC,CAAC,CAAC,QAAQ;AACZ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM;AAC/C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;AACrC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC,CAAC,IAAI,CAAC;;AC5H5E,GAAG;AACH,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG;AACtG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;AACjH,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM;AAC5H,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;AACzE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AAC/G,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI;AAC/G,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;AACrB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC;AAC1C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO;AAC9F,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,QAAQ;AACZ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc;AACrC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC1F,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAChE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;AAC7H,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAC1G,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;AACnH,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;AAC7F,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG;AACpH,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC;AAClF,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc;AAChC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;AACvD;AACA,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACjD;AACA,CAAC,EAAE,CAAC,UAAU;AACd,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AAC7G,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1D,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC;AACf,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC;AACd,EAAE,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO;AACzD,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACpB;AACA,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,CAAC,KAAK,CAAC;AAC5E;AACA,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9B,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC;AACjC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;AACvD;AACA,CAAC,EAAE,CAAC,MAAM;AACV,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAClB,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AAC9C,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AAC5C,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,EAAE,MAAM,CAAC,CAAC,CAAC,kBAAkB,EAAE;AAC/B,EAAE,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC;AAClC,CAAC,CAAC,CAAC,EAAE;AACL;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACpB,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;AACnB,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE;AAC3B,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG;AAC9C,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC;AAC7B,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE;AACjD,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE;AACjE,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;AAClD,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;AACvE;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;AAC5C,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,CAAC,IAAI,CAAC,kBAAkB,GAAG;AAC3B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;AAC3C,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrE,CAAC,IAAI,CAAC,eAAe,GAAG;AACxB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC;AACjC,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACjC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;AACjD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;AACxD,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;AAC/E,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;AAC9E,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;AAC5D,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AACjE,EAAE,IAAI,CAAC,kBAAkB,GAAG;AAC5B,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAC7B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK;AACxC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AACjC,EAAE,IAAI,CAAC,kBAAkB,GAAG;AAC5B,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;AAC7C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;AACnE,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1E,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,eAAe,GAAG,CAAC,OAAO;AACvE,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AAClE,EAAE,IAAI,CAAC,kBAAkB,GAAG;AAC5B,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG;AAC/B,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;AACnG,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;AACrD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AACjC,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;AACnB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC;AACnC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AACxB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;AAChC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;AAC3E,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO;AAC5C,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;AACnC,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AACzE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ;AACpD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACpC,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE;AACjC,CAAC,CAAC;AACF,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;AAC3D,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ;AACpD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE;AACjC,CAAC,IAAI,CAAC,kBAAkB,GAAG;AAC3B,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG;AAC9B,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/E,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACxD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACtF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ;AACpD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACnB,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG;AAC1B;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AACnD,EAAE,MAAM,CAAC;AACT,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;AACrF,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzD,EAAE,IAAI,CAAC,eAAe,GAAG;AACzB,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK;AAC/E,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC3C,EAAE,IAAI,CAAC,kBAAkB,EAAE;AAC3B,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG;AACnC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACzB,KAAK,MAAM,CAAC,UAAU;AACtB,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;AACxB,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE;AACtB,KAAK,MAAM,CAAC,6BAA6B,GAAG;AAC5C,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACZ,KAAK,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,IAAI,CAAC;AACL,GAAG,CAAC,CAAC,CAAC;AACN,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvB,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG;AACnC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE;AACtC,GAAG,CAAC,CAAC,EAAE;AACP,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;AAClE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjF,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9E,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,EAAE;AAC7E,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;AACnG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO;AAClG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;AAC1D,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtE,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,EAAE,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,EAAE;AACnD,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAClB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;AACtD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtE,CAAC,IAAI,CAAC,YAAY,GAAG;AACrB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;AAC9D,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM;AACV,CAAC,CAAC,CAAC,CAAC,QAAQ;AACZ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM;AACzF,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5D;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC;AACnE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK;AAChG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACrD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM;AACV,CAAC,CAAC,CAAC,CAAC,QAAQ;AACZ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM;AAC/C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;AACrC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1E;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAChF,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC;AACnC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM;AACV,CAAC,CAAC,CAAC,CAAC,QAAQ;AACZ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK;AAC3D,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,KAAK;AAChD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC;AACxE;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;AACzC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;AAC3D,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;AACjD,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ;AACpD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM;AACjB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe;AAC3F,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE;AACpE;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW;AAChG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9C,EAAE,IAAI,CAAC,eAAe,GAAG;AACzB,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc;AACzC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG;AACxB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc;AACzC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC9D,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,GAAG;AAChC,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc;AACzC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,QAAQ,CAAC,EAAE;AACxD,EAAE;;ACzWF,GAAG;AACH,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI;AACpG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;AAC3F,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG;AAC9F,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AACtC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACpG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG;AAC5F,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC;AACxD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW;AAC7B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AACzD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AACpF,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;AAChE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1D,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAChB,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc;AAChC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;AACnD;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAClD;AACA,CAAC,EAAE,CAAC,UAAU;AACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAClB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AAC3B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACrB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AACrB;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,OAAO;AACd,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;AACrC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE;AAC9B,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE;AAC3D;AACA,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ;AACA,GAAG;AACH,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;AACzG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACtF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM;AAC9C,CAAC,EAAE;AACH;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AAC9C,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtD,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAClB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC;AAChC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;AACjH,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG;AAC7G,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AAChB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM;AACxC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvD,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AACpB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAChB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AACzE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC;AAChH,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;AACzD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACrB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;AAChE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AACjG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;AACpD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK;AAC/E,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AAC1D,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC;AAChC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjB,EAAE,IAAI,CAAC,YAAY,GAAG;AACtB,CAAC,CAAC;AACF,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK;AACjG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG;AACvF,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;AAClC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;AACrE,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AAC1D,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3D,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE;AACtE;AACA,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE;AACpE;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACtC,CAAC,CAAC;AACF,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;AAC3C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI;AACpG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AACpG,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM;AAC9C,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;AACnB;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AACvB,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC1E,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACrC,CAAC,CAAC;AACF,EAAE;;ACxJF,GAAG;AACH,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;AAC5H,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC;AACjI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AACrE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;AAClH,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG;AACjG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC;AAC5D,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW;AAC7B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;AACpD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;AAChE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1D,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAChB,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc;AAChC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;AACnD;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC9C;AACA,CAAC,EAAE,CAAC,UAAU;AACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAClB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AACrB;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE;AAC9C,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE;AACvD;AACA,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ;AACA,GAAG;AACH,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;AAC/F,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM;AACzC,CAAC,EAAE;AACH;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AACrC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;AACzC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAClB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;AAC3B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO;AACxH,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;AAC7G,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM;AACnC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnD,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AACpB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;AACpB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;AAC9E,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC;AACxH,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM;AACjE,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;AACzB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;AACjC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;AACzE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AAC7G,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;AACxD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK;AAC3F,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AACtD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC;AACxC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACrB,EAAE,IAAI,CAAC,gBAAgB,GAAG;AAC1B,CAAC,CAAC;AACF,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;AAC3B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK;AACzG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG;AACpG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC;AACtC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;AACjF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AACtD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3D,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;AACtC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU;AAChI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO;AAChG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5D,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM;AACzC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;AACnB;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AACvB,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE;AACjE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACrC,CAAC,CAAC;AACF,EAAE;;AC3IF,GAAG;AACH,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS;AACpH,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;AAC7G,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;AAC/C,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,CAAC,OAAO;AACf,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY;AACjF,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AACrD,CAAC,CAAC,iBAAiB,MAAM,CAAC,CAAC,IAAI,CAAC;AAChC,CAAC,CAAC,iBAAiB,MAAM,CAAC,CAAC,IAAI;AAC/B,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE;AACnB,CAAC,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AACrD,CAAC,CAAC,iBAAiB,MAAM,CAAC,CAAC,IAAI,CAAC;AAChC,CAAC,CAAC,iBAAiB,MAAM,CAAC,CAAC,IAAI;AAC/B,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,SAAS,EAAE;AACb,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,IAAI;AAC3B,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACX,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;AAC9C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW;AAC7B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACnC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3H,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AAC1E,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc;AAChC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI;AACjE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;AAC/C,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;AAChF;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC/C;AACA,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1F;AACA,CAAC,EAAE,CAAC,UAAU;AACd,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;AACvC;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;AAC/C,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACzB,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE;AAC3D,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAClF,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAChC,CAAC,CAAC;AACF,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE;AACxD,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;AAC7D;AACA,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE;AAClG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE;AAC7D,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;AACb,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK;AAC/E,CAAC,EAAE;AACH;AACA,GAAG;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;AACjF,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;AACzD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB;AAC3B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AACvE,CAAC,EAAE;AACH;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO;AAC/C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB;AAC3B,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACpD,CAAC,GAAG,CAAC,WAAW,CAAC;AACjB,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC1B,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AACxD,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;AAC1B,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,qBAAqB,GAAG;AAC7D;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AACpD,EAAE,MAAM,CAAC;AACT,CAAC,CAAC;AACF;AACA,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,qBAAqB,GAAG;AACpD,CAAC,CAAC;AACF;AACA,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE;AAC7B,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC;AAC5E,CAAC,CAAC;AACF;AACA,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC3C;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChD,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;AACpC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,IAAI,KAAK,CAAC;AACV,GAAG,CAAC;AACJ,EAAE,CAAC;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvD,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;AAClC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,IAAI,KAAK,CAAC;AACV,GAAG,CAAC;AACJ,EAAE,CAAC;AACH,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACnC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC3D,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;AACzB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;AAC9B,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC1D,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;AACzB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;AAC1B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,MAAM;AACpC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;AACb,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;AACjC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,EAAE,MAAM,CAAC;AACT,CAAC,CAAC;AACF;AACA,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;AAC1B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AACzC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;AACtH,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS;AAC3H,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;AAChB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AAC9C,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK;AACvD,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AACvD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU;AACzB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AACnD;AACA,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE;AACxE;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3C,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7B,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AACrD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3G,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;AACtD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM;AACjD,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AACvD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;AACb,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;AACpE;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5B,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACnC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACV,GAAG,IAAI,CAAC,gBAAgB,GAAG;AAC3B,EAAE,CAAC;AACH,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AAC1C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI;AACpG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;AACnD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AACvD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;AACb,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtD,CAAC,IAAI,CAAC,gBAAgB,GAAG;AACzB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AAC5D;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;AAC5B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;AAC9D,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;AAC3C,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AACvD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;AACb,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACnC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE;AAC7C;AACA,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3B,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;AAC5B,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACV,GAAG,IAAI,CAAC,gBAAgB,GAAG;AAC3B,EAAE,CAAC;AACH,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU;AACxE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvD,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACzB,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM;AAClB,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AACrE,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;AACpB,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9C,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE;AACjE,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AACnD,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE;AACvD,EAAE,KAAK,CAAC,WAAW,GAAG;AACtB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACjB,GAAG,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE;AACrD,EAAE,CAAC;AACH,CAAC,CAAC,CAAC,EAAE;AACL;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;AACrE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC3D,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC;AACzD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;AACvD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;AAC7D,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACZ;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnD,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE;AAC3D,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AACtD,GAAG,CAAC;AACJ,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACvB,GAAG,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE;AAC/D,GAAG,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;AACrD,EAAE,CAAC;AACH,CAAC,CAAC;AACF,EAAE;;AChTF,GAAG;AACH,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC;AAC3J,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;AACxG,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,CAAC,OAAO;AACf,CAAC,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC;AACtB,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACnG,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACtG,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC;AACvB,CAAC,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACtC,CAAC,CAAC,qBAAqB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AACtC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE;AACvB,CAAC,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;AACrC,CAAC,CAAC,qBAAqB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACrC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE;AACvB,CAAC,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AACnC,CAAC,CAAC,qBAAqB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE;AACvB,CAAC,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACtC,CAAC,CAAC,qBAAqB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AACtC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC,cAAc,CAAC;AACjB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC,YAAY,UAAU,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AAC3D,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE;AACf,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE;AAC3B,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,SAAS,CAAC;AAChC,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,YAAY;AACrC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACV,CAAC,CAAC,KAAK,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;AAC/B,CAAC,CAAC,SAAS,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5E,CAAC,CAAC,KAAK,EAAE;AACT,CAAC,CAAC,KAAK,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC;AAClC,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG;AACtK,CAAC,CAAC,KAAK,EAAE;AACT,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;AACjD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO;AAC/F,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG;AACjG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS;AACpG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC;AAClB,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,KAAK,CAAC;AACxB,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,KAAK,CAAC;AACzB,CAAC,CAAC,KAAK,CAAC;AACR,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;AACtB,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC;AACvB,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,KAAK,CAAC;AACxB,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,KAAK,CAAC;AACzB,CAAC,CAAC,KAAK,CAAC;AACR,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM;AACxB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK;AAClD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK;AACxD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;AACtF,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI;AAC3C,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;AAC/F,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc;AAChC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACrB,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC;AACjB,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC;AACjB,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;AACxB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;AACb;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC9C;AACA,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnC,CAAC,GAAG;AACJ,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;AACjB,EAAE,CAAC;AACH,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;AACtB,EAAE,EAAE;AACJ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;AAC3B,CAAC,GAAG;AACJ,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI;AACpB,EAAE,CAAC;AACH,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;AACtB,EAAE,EAAE;AACJ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;AAC9B;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,IAAI;AACX,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE;AACvC,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE;AACtD,CAAC,IAAI,EAAE,OAAO;AACd,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE;AAClC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzB,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;AACxD,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE;AACtD,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AACxC,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC7B,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;AAC9C,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;AAC7C,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AACpC,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;AAClD;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AACf,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM;AACtD,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AACtD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;AACjE;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3B,EAAE,IAAI,EAAE,OAAO;AACf,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7D,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC/D,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AACrE,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;AAC3B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;AACpC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxD,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AACrB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;AACzF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS;AACrD,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AACtD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACtE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9B,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AACpD,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;AACpD,CAAC,CAAC;AACF,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;AAC1D;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AACrB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ;AACjC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC1D,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;AAC1B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AACtB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK;AAClD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5B,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;AAC9C,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;AACzB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK;AACxD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;AAClC,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE;AACpD,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG;AACpB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;AAC3B,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,GAAG;AACvB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;AAClE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtD,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACxB,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG;AAC/B,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC3B,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG;AAClC,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;;AC5OF,GAAG;AACH,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AAC1E,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ;AACpF,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAClF,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AACtF,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG;AACtF,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI;AAC7E,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;AACvF,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,CAAC,OAAO;AACf,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;AACnE,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC3D,CAAC,CAAC,SAAS,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;AAClH,CAAC,CAAC,KAAK,CAAC;AACR,CAAC,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;AAC1D,CAAC,CAAC,KAAK,aAAa,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACnD,CAAC,CAAC,KAAK,EAAE;AACT,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC3D,CAAC,CAAC,SAAS,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;AACxD,CAAC,CAAC,KAAK,CAAC;AACR,CAAC,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;AAC1D,CAAC,CAAC,KAAK,aAAa,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACnD,CAAC,CAAC,KAAK,EAAE;AACT,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAC9C,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAC9C,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,IAAI;AACzB,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACX,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAC5C,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;AAC9C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU;AAC5B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO;AACtE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC;AACzH,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;AACtH,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK;AAC1F,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc;AAChC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AACvB;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACjD;AACA,CAAC,EAAE,CAAC,UAAU;AACd,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AACjB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5C,EAAE,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;AAClC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ;AACzB,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC1C,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;AACvE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACpC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,GAAG;AAC7D,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AAC9C,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC3B,GAAG,UAAU,CAAC,CAAC,IAAI;AACnB,EAAE,CAAC,CAAC,EAAE;AACN,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACzC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxB,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC;AAChE,IAAI,IAAI,CAAC,mBAAmB;AAC5B,GAAG,EAAE;AACL,EAAE,CAAC;AACH,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAClC;AACA,CAAC,EAAE,CAAC,MAAM;AACV,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACtF,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AACzB,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5F,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACxB,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI;AACtD,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAClF,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE;AACjD,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE;AACzE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO;AAC5B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;AAClD,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,EAAE;AAChD,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxB,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO;AAC7B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5D,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,EAAE;AACnD,EAAE,CAAC;AACH,CAAC,CAAC;AACF,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;AACzD;AACA,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;AACtG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;AACb,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;AAC9C,CAAC,EAAE;AACH;AACA,GAAG;AACH,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;AAC1F,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;AACb,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;AAC/C,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAClD,CAAC,EAAE;AACH;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE;AAC5E,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AACjD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK;AAClD,CAAC,EAAE;AACH;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAC7B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK;AACxC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AACnB;AACA,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM;AACpD,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE;AACxD,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7B,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;AACzE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAC7F,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE;AACxB,GAAG,KAAK,CAAC;AACT,EAAE,CAAC;AACH,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW;AACvD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE;AACnE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO;AACjB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AACrE,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACzE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5C,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,CAAC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AAC7D,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AACxB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AAClC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK;AACpF,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,OAAO;AAC3C,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACf,EAAE,MAAM,CAAC;AACT,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;AAC3E,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACxD,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,GAAG;AACzC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG;AACnC,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxD,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;AACjD,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAChE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7B,GAAG,MAAM,CAAC,KAAK,GAAG;AAClB,EAAE,CAAC,CAAC,EAAE;AACN,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;AAC7C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;AACtE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAClF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;AAC1D,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC,GAAG,CAAC,IAAI,CAAC;AACV,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG;AACtC;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE;AAC5B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,GAAG;AAC3C,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,yBAAyB,GAAG;AACnC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,GAAG;AAC3C,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACf,EAAE,MAAM,CAAC;AACT,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AAC/D,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9F,EAAE,IAAI,CAAC,KAAK,GAAG;AACf,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK;AACjE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACT,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG;AAC1D,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;AACvC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;AACtD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACd,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AACjC,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC;AACnC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO;AAC3C,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxD,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;AACzC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ;AACxC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxD,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;AAC1C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO;AACvC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC9D,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC;AAC7C,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AAC5B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;AACrE,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AACzD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AAC5D,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE;AAC1B,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI;AACnG,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AACzF,GAAG,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC5B,IAAI,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACpF,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC,EAAE;AAClD,EAAE,CAAC;AACH,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;AAC/C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK;AAClE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI;AACrE,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;AACvB,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG;AACtC,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE;AAChC;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5B,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5B,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;AAC5C,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxB,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,GAAG;AAClF,GAAG,EAAE,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,EAAE;AACX,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE;AACpF,GAAG,CAAC,CAAC,CAAC;AACN,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,GAAG,CAAC;AACJ,GAAG,EAAE,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,EAAE;AACX,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE;AACpF,GAAG,CAAC,CAAC,CAAC;AACN,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,GAAG,CAAC;AACJ,EAAE,CAAC;AACH,CAAC,CAAC;AACF,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;AAC7B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;AAC1B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;AACjE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ;AAClG,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxD,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACjC,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;AACnC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;AACjE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC1E,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACnC,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;AAC7C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK;AACtD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE;AAC3B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;AACxB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK;AAC9D,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;AAC7C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AAC1D,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;AAC7B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM;AAClC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACzF,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACxD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AACjD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK;AACrD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;AACb,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AACzD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;AAC5C,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG;AACjD,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG;AACd,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG;AACb;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;AAChC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACpB,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG;AACxB;AACA,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK;AACjC,GAAG,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACjE,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3D,IAAI,KAAK,GAAG;AACZ,GAAG,CAAC;AACJ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACrC,EAAE,CAAC;AACH,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAAE;AAC7B,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK;AACjB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACpB,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG;AACxB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxB,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAC1D,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE;AAC/B,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AACtB,EAAE,CAAC;AACH,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvC,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE;AACpD,EAAE,IAAI,CAAC,yBAAyB,GAAG;AACnC,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE;AAC3C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE;AAClC;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;AACtD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;AAC5F,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM;AAChE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AACzD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AACxB,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG;AACb;AACA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACpB,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG;AACxB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE;AAC5B,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACnE,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE;AAC/B,EAAE,CAAC;AACH,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvC,EAAE,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE;AAChD,EAAE,IAAI,CAAC,yBAAyB,GAAG;AACnC,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE;AAC9B;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;AAC3C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;AAClF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AACzD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxD,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACZ,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG;AACtC;AACA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AACjB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,IAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG;AACxC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnD,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE;AACrC,EAAE,CAAC;AACH,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG;AAC/B;AACA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE;AAC9B;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;AACzC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;AACb,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;AAC7C,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC,GAAG,CAAC,YAAY,CAAC;AAClB,EAAE,CAAC,OAAO,CAAC;AACX,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE;AAC5B,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;AAC5E;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AACvC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxB,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,GAAG;AAC9D,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3D,IAAI,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,EAAE;AACtD,GAAG,CAAC;AACJ,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACf,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE;AACpC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC9E,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO;AAC9F,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACvF,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACtF,IAAI,EAAE,CAAC,CAAC;AACR,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE;AACtB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE;AACzB,KAAK,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;AACnC,KAAK,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AACtD,IAAI,CAAC,CAAC,CAAC;AACP,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;AACvD,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG;AAC3B,KAAK,CAAC;AACN,IAAI,CAAC;AACL,GAAG,CAAC;AACJ,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE;AAC1B,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE;AACpC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACxD,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;AAC3F,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;AACnF,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;AACtD,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG;AAC1B,IAAI,CAAC;AACL,GAAG,CAAC;AACJ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;AAC5B,EAAE,CAAC;AACH,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;AAC1F,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM;AACjB,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AAC/D;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5G,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,EAAE,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,CAAC,EAAE;AAC5F,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AACzB,CAAC,CAAC;AACF,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;AACpC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AACzD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,EAAE,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,CAAC,EAAE;AAC5F,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;;ACtlBF,GAAG;AACH,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACjF,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG;AACpG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;AAClG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC;AACvG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;AACzC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AAC9F,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,CAAC,OAAO;AACf,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC;AACrE,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,QAAQ,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC,SAAS,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC/D,CAAC,CAAC,SAAS,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5D,CAAC,CAAC,KAAK,CAAC;AACR,CAAC,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE;AAClE,CAAC,CAAC,KAAK,iBAAiB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;AACpD,CAAC,CAAC,KAAK,EAAE;AACT,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACtD,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACrF,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE;AAC9D,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,GAAG;AAC3C,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;AACtD,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;AAC5C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU;AAC5B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO;AAC3E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC;AAC9H,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc;AAChC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC/C;AACA,CAAC,EAAE,CAAC,UAAU;AACd,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACrB;AACA,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5C,EAAE,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;AAClC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ;AACzB,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC1C,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;AACvE;AACA,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,GAAG;AACpD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AACzC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ;AACzB,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACpC;AACA,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE;AACzB;AACA,CAAC,EAAE,CAAC,MAAM;AACV,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7E,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACxB,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI;AACtD,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAClF,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;AAC/C,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE;AACvE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO;AACvB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3C,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE;AAC3C,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;AACvD;AACA,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AAC7G,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;AACb,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK;AAC3D,CAAC,EAAE;AACH;AACA,GAAG;AACH,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AACjG,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;AACb,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM;AAC5D,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACvD,CAAC,EAAE;AACH;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE;AACrF,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACnD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;AAC9D,CAAC,EAAE;AACH;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAC7B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;AACzC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AACnB;AACA,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM;AACzD,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE;AAC5D,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACjC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO;AACxF,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;AACrG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE;AAC5B,GAAG,KAAK,CAAC;AACT,EAAE,CAAC;AACH,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AAClC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK;AACvF,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,OAAO;AAC3C,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACnB,EAAE,MAAM,CAAC;AACT,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK;AACvD,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,KAAK,GAAG;AACf,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AAClD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;AAChF,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AACvF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;AAC1D,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC,GAAG,CAAC,QAAQ,CAAC;AACd,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG;AACtC;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE;AAChC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,GAAG;AAC/C,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACnB,EAAE,IAAI,CAAC,6BAA6B,GAAG;AACvC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,GAAG;AAC/C,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACnB,EAAE,MAAM,CAAC;AACT,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AAC/D,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG,EAAE,QAAQ,CAAC,KAAK,GAAG;AACnB,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK;AAC/D,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACT,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG;AAC1D,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;AACnC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;AACtD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACd,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AACrC,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACxD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK;AAC/E,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS;AACzE,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;AACvB,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG;AAC1C,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE;AACxC;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAChC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAChC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;AACjD,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,GAAG;AACjF,EAAE,EAAE,CAAC,CAAC;AACN,GAAG,IAAI,CAAC,EAAE;AACV,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE;AAC/E,EAAE,CAAC,CAAC,CAAC;AACL,GAAG,MAAM,CAAC,IAAI,CAAC;AACf,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,CAAC;AACN,GAAG,IAAI,CAAC,EAAE;AACV,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE;AAC/E,EAAE,CAAC,CAAC,CAAC;AACL,GAAG,MAAM,CAAC,IAAI,CAAC;AACf,EAAE,CAAC;AACH,CAAC,CAAC;AACF,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;AAC7B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AACvB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM;AAC9C,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnD,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;AAC7B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;AACxC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AAClD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/D,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE;AAC/B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK;AACvE,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC9D,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,GAAG;AAC1C,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AAClD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK;AAC/D,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACjC,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;AACrC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM;AAChG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACrE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AAC9D,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK;AACrD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;AACb,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AACzD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;AAChD,EAAE,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG;AACrD,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG;AACd,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG;AACb;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;AACrC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5B,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,GAAG;AAC5B;AACA,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK;AACjC,GAAG,YAAY,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACzE,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3D,IAAI,KAAK,GAAG;AACZ,GAAG,CAAC;AACJ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACzC,EAAE,CAAC;AACH,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,EAAE;AACjC,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM;AACtB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5B,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,GAAG;AAC5B,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClD,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACrD,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE;AAC9B,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AACrB,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE;AAChD,EAAE,IAAI,CAAC,6BAA6B,GAAG;AACvC,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE;AAC/C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE;AACtC;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AACzD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC;AACnG,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM;AAC7E,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AACzD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;AAC5B,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG;AACb;AACA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5B,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,GAAG;AAC5B,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE;AAChC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE;AAC9B,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE;AAC5C,EAAE,IAAI,CAAC,6BAA6B,GAAG;AACvC,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,EAAE;AAC3C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE;AAClC;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AAC9C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC;AACzF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AACzD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC1D,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACZ,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG;AAC1C;AACA,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACrB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG;AACnC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE;AACpC,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG;AAC/B;AACA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE;AAClC;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC9C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;AACb,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AAClD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC,GAAG,CAAC,YAAY,CAAC;AAClB,EAAE,CAAC,OAAO,CAAC;AACX,EAAE,gBAAgB,CAAC;AACnB,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE;AACpC;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAC3C,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG;AAC/C,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,GAAG;AACzD,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1D,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,EAAE;AACjD,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACnB,GAAG,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC5B,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE;AACxC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AACnF,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO;AACnG,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACvF,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3F,IAAI,EAAE,CAAC,CAAC;AACR,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE;AACtB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE;AACzB,KAAK,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;AACnC,KAAK,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,IAAI,CAAC,CAAC,CAAC;AACP,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;AAC3D,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG;AAC3B,KAAK,CAAC;AACN,IAAI,CAAC;AACL,GAAG,CAAC;AACJ,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;AACnC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE;AAC9B,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE;AACxC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC5D,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;AAChG,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;AACnF,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;AAC1D,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG;AAC1B,IAAI,CAAC;AACL,GAAG,CAAC;AACJ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE;AAChC,EAAE,CAAC;AACH,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AACzC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AACzD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,CAAC,EAAE;AACpF,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;;AChcF,GAAG;AACH,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1E,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC;AACjF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,QAAQ;AACZ,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM;AACxB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;AAClE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACjD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc;AAChC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AACvB;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAChD;AACA,CAAC,EAAE,CAAC,UAAU;AACd,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACnB;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE;AAChD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;AACjC,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;AACpD;AACA,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;AACzE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AACxE,CAAC,EAAE;AACH;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AACjD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AACnD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrD,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACnB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;AACnE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AACjD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AAClD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AACjB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACrB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE;AAC/B,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE;AAC9D,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;AAChE,CAAC,CAAC;AACF,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;;ACtEF,GAAG;AACH,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACvF,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACtF,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,EAAE;AAC1G,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE;AAC9F,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG;AAC1D,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AACjE,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,CAAC,OAAO;AACf,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;AACrD,CAAC,CAAC,KAAK,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AACrC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACX,CAAC,CAAC,KAAK,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;AACrC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,IAAI;AACtB,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACX,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;AACxC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE;AAC5E,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,cAAc;AACvF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY;AAC9B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa;AACpC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW;AAClC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB;AACvC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACnC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa;AACpC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc;AACrC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB;AACxC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG;AAClE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACxD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc;AAChC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AACvB;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACtD;AACA,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACzF,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC9C,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACnD,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC/C,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3F,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACjD,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACnG;AACA,CAAC,EAAE,CAAC,MAAM;AACV,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7C;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;AACjE,CAAC,IAAI,EAAE,OAAO;AACd,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACzC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;AAC1B,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE;AAChE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;AACrE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;AACnE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;AACxE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;AACpE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;AACrE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;AACtE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;AACzE;AACA,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AACvB;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,MAAM;AACV,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjD;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;AAC5C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3D,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC9B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AACjB,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW;AAC7E,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,GAAG,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE;AACzD,EAAE,CAAC;AACH,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE;AAC1B,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM;AACjB,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;AACxE;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE;AAC5C,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AAC5E,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE;AAC5D,EAAE;;ACzHF,GAAG;AACH,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO;AAC7F,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW;AAC9F,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACjD,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,CAAC,OAAO;AACf,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;AACzD,CAAC,CAAC,KAAK,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,GAAG;AAC1D,CAAC,CAAC,KAAK,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,IAAI;AACtB,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACX,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ;AAC9D,CAAC,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AAClC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACX,CAAC,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3B,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AAClF,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACX,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;AAC/C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY;AAC9B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB;AACxC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;AACzE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;AAC3D,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACtD;AACA,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACpD;AACA,CAAC,EAAE,CAAC,UAAU;AACd,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACvB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACtB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;AAC5B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;AAC5B;AACA,CAAC,EAAE,CAAC,MAAM;AACV,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACpB,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AACnC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC,EAAE;AACL;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE;AACxD,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE;AACxD,CAAC,IAAI,EAAE,OAAO;AACd,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACzC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7B,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;AACpC,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE;AAChE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;AACzE;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;AAC7B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;AAC5C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AAC3E,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC/B,CAAC,CAAC;AACF,CAAC,MAAM,CAAC,KAAK,CAAC;AACd,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AAC3B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK;AAC1C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AAC3E,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC/B,EAAE,MAAM,CAAC,KAAK,CAAC;AACf,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;AACxE,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE;AAC7D,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5B,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC/B,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,KAAK,GAAG;AACd,EAAE;;AChHF,GAAG;AACH,CAAC,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;AAC7G,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;AAClG,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,IAAI;AACzF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM;AACxB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACnC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO;AAChE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ;AAC7C,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;AAClE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK;AACxE,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;AAChE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7D,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACnB,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AAC3B,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc;AAChC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AACvB;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACzD;AACA,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC/C;AACA,CAAC,EAAE,CAAC,UAAU;AACd,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AACxB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;AAC7B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1C,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC;AAChB,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;AACnB,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5C,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC;AAChB,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACjB,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAC9C,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC;AAChB,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;AAChB,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE;AAC/C;AACA,CAAC,EAAE,CAAC,MAAM;AACV,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACzB,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE;AAC5B,EAAE,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE;AACzB,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC;AAC3B,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAClE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACnE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACpE;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,EAAE;AACzD,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE;AAC7D,CAAC,IAAI,EAAE,MAAM;AACb,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;AAC1F,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;AAC/D,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC7C,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;AAC7D,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;AACvE;AACA,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;AACd,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI;AAClD,CAAC,EAAE;AACH;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,EAAE;AACH;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;AACjB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ;AAC7C,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;AAC/D,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK;AACrE,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC,GAAG,CAAC,OAAO,CAAC;AACb;AACA,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACpC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7C,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE;AACtD,EAAE,CAAC;AACH,CAAC,CAAC;AACF;AACA,CAAC,IAAI,CAAC,eAAe,GAAG;AACxB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AAChC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC;AACvC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG;AAClC,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG;AACjD,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,GAAG;AAC5E,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,GAAG;AAClF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AACrB,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvB,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AAClC,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9B,IAAI,KAAK,CAAC;AACV,GAAG,CAAC;AACJ,EAAE,CAAC;AACH,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACV,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACjB,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AAClC,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7B,IAAI,KAAK,CAAC;AACV,GAAG,CAAC;AACJ,EAAE,CAAC;AACH,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AACxE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AACzE,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;AAC7C,EAAE;;AC9IF,GAAG;AACH,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,mBAAmB,EAAE;AAC9F,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO;AACnG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC;AACvF,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC;AAClB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB;AACvC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK;AAC1C,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE;AACzG,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc;AAChC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AACvB;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACvD;AACA,CAAC,EAAE,CAAC,UAAU;AACd,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;AACjC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;AACrC;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE;AACvD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAC/B,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,EAAE;AAC1E;AACA,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AACvB;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,MAAM;AACV,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,MAAM;AACV,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,MAAM;AACV,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;AACrB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,KAAK,GAAG;AACjF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,MAAM;AACV,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;AACrB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;AAC5B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC9E,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;AACpC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7D,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACrB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;AAC9B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE;AAChF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS;AACtC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AACvB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;AACzB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,KAAK;AACrC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACnB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;AAC3E,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;AAClB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC9E,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;AAC3C,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AAClD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AAC1B,CAAC,IAAI,CAAC,kBAAkB,GAAG;AAC3B,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;AACpB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE;AAChF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS;AAC/C,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AAClD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;AAC9B,CAAC,IAAI,CAAC,kBAAkB,GAAG;AAC3B,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;AAC5E,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;AACzB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;AAC7E,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AAClD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;AAC7C,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;AAClD,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACb;AACA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,GAAG,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5C,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACV,GAAG,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,CAAC;AACH,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,kBAAkB,GAAG;AAC3B;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;;ACtKF,GAAG;AACH,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC;AAC3G,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;AACzG,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,IAAI;AACzF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY;AAC9B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB;AACxC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACvD;AACA,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACpD;AACA,CAAC,EAAE,CAAC,MAAM;AACV,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACpB,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AACvD,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC,EAAE;AACL;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE;AACvD,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE;AACjE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;;ACjC1E,GAAG;AACH,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI;AAChG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACzD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;AAC7F,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AAC9D,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,0BAA0B;AAClG,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY;AAC9B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa;AACpC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW;AAClC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB;AACvC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa;AACpC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc;AAChC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AACvB;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACtD;AACA,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAChD,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC9C,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACnD,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3F;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE;AACtD,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;AACjE,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;AACtC,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE;AAChE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;AACrE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;AACnE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;AACxE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;AACrE;AACA,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AACvB;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;AACpG,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM;AACV,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC;AACpE;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,MAAM;AACV,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;AACtD;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;AAC3E;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC5C,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE;AAC1B,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;;AC1EF,GAAG;AACH,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ;AACjF,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;AAC3C,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG;AAC7E,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG;AAC/E,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AAClE,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,CAAC,OAAO;AACf,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAAmB;AAC/E,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;AAC7B,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACX,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;AAC7B,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACX,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;AAC7B,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACX,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACX,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE;AACnD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB;AACvE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY;AAC9B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB;AACxC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACtD;AACA,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACpD;AACA,CAAC,EAAE,CAAC,MAAM;AACV,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACpB,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AACvD,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC,EAAE;AACL;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE;AACtD,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE;AAChE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;;AC7DzE,GAAG;AACH,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,eAAe,EAAE;AACjF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO;AAC/F,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC;AAC5F,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC;AAClB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY;AAC9B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc;AAChC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AACvB;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACnD;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,OAAO;AACd,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;AACtC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACzB,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE;AAC7D;AACA,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AACvB;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,MAAM;AACV,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;;ACpCnD,GAAG;AACH,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC;AACpF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,IAAI;AACrF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY;AAC9B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB;AACxC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACnD;AACA,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACpD;AACA,CAAC,EAAE,CAAC,MAAM;AACV,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACpB,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AACvD,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC,EAAE;AACL;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,OAAO;AACd,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;AACtC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE;AAC7B,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE;AAC7D,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;;AClCtE,GAAG;AACH,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB;AACrE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;AACvD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM;AACxB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU;AACjC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACnC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc;AACrC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB;AACxC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB;AACvC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM;AAChD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK;AAC5C,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC/D,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC;AACxD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AACvB;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACjD;AACA,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AACrC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC/C,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACjD,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACpD,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACnD;AACA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;AACjE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;AAC7B;AACA,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAC7C,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC;AAChB,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;AAChB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACf,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE;AACnD;AACA,CAAC,EAAE,CAAC,MAAM;AACV,CAAC,IAAI,CAAC,WAAW;AACjB,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACxC,CAAC,IAAI,EAAE,OAAO;AACd,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1C,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/C,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG;AAClE,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AACjE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI;AACjE,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK;AACpE,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;AACnE,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE;AAC7E,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;AACnC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,EAAE;AAC9D;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,OAAO;AACd,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AACpC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE;AACpD,EAAE;AACF;AACA,EAAE,CAAC,cAAc,CAAC,EAAE;AACpB;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;AACrD,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;AAC7D,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;AAC/D,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;AACjE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;AACpE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;AACnE;AACA,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AAC5C,CAAC,EAAE;AACH;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ;AAClB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS;AAC5E,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AAC9C,CAAC,EAAE;AACH;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;AAC9D,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,CAAC,EAAE;AACH;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK;AACzC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO;AAC5B,CAAC,EAAE;AACH;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK;AACzC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO;AAC/B,CAAC,EAAE;AACH;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO;AACvD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK;AACxC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;AACf,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AAClD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AACrD;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACrB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC3B,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1C,EAAE,CAAC;AACH;AACA,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/E,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;AAC9C,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS;AAC/B,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACvC,EAAE,CAAC;AACH,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACvE;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AACvC,CAAC,CAAC;AACF,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK;AAClC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;AACpB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrD,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACnB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE;AAC/K,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM;AACjB,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;AACtE,CAAC,EAAE,CAAC,CAAC;AACL,EAAE,CAAC,KAAK,CAAC,EAAE;AACX,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK;AACzD,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AAC9C,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AACpB,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AAClC,CAAC,CAAC,CAAC,CAAC;AACJ,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;AACvD,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG;AACxD,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AACtB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACjC,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE;AACxC,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AAC7B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ;AAC/D,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI;AAC9D,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI;AAC1D,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC;AACtD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACpD,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;AACxB,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AACvC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ;AAClB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;AACzC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS;AAC1D,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC,GAAG,CAAC,QAAQ,CAAC;AACd;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5H,EAAE,IAAI,CAAC,MAAM,GAAG;AAChB,EAAE,MAAM,CAAC,KAAK,CAAC;AACf,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/C,EAAE,IAAI,CAAC,MAAM,GAAG;AAChB,EAAE,MAAM,CAAC,KAAK,CAAC;AACf,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAClC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK;AAChC,CAAC,CAAC,CAAC,CAAC;AACJ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACf,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;AACrB,IAAI,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACtB,GAAG,EAAE;AACL,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACV,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACf,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE;AACtB,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrB,GAAG,EAAE;AACL,EAAE,CAAC;AACH;AACA,EAAE,IAAI,CAAC,IAAI,CAAC;AACZ,GAAG,CAAC,QAAQ,EAAE;AACd,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;AAClC,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,KAAK,CAAC;AACf,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;AACnB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACpD,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5B,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;AACxB,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI;AACnC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK;AACzC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;AACf,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AACrD;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACrB;AACA,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAC5C;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACnC,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK;AAClC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK;AAClC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrD,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACnB,EAAE;;AC7QF,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3G,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAChF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,wBAAwB,CAAC,CAAC,GAAG;AACxG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,yBAAyB,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG;AACrG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;AACnC,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,CAAC,OAAO;AACf,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;AAChD,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE;AACpC,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACjE,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACX,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;AAC7C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM;AACxB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW;AAClC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB;AAC5C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB;AACvC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW;AAClC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB;AACxC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc;AACrC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM;AAC9C,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;AACnE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI;AACrF,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5E,CAAC,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AACzC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;AAC9E,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;AACxE,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AACrD,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACpD,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ;AAC7B,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI;AACjF,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC7E,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK;AAC1E,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;AACnB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK;AAC3E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACtE,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG;AACpE,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AACxE,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;AAChB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG;AAChF,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAClF,CAAC,CAAC,EAAE,KAAK,CAAC;AACV,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AACtE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;AACxE,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;AACxE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC5B,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC,GAAG,CAAC,WAAW,CAAC;AACjB,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC;AACnD,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAChB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,EAAE;AACvD;AACA,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AACvB;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACxD;AACA,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC9C,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACnD,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC9C,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACpD,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACjD,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACxD;AACA,CAAC,IAAI,CAAC,eAAe,CAAC;AACtB,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACxC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,eAAe;AAClC,CAAC,EAAE;AACH;AACA,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACrB,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACnC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC;AACzF,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;AAC/C,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC;AACjD,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG;AACjD,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC;AAC/D,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;AAC/C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AACjC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACnB;AACA,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7B,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,EAAE;AACpD,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5B,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,EAAE,CAAC,MAAM,CAAC;AACV,GAAG,IAAI,EAAE,SAAS,CAAC;AACnB,GAAG,IAAI,EAAE,IAAI,CAAC;AACd,GAAG,IAAI,EAAE,OAAO;AAChB,IAAI,CAAC,MAAM,CAAC;AACZ,KAAK,IAAI,EAAE,KAAK;AAChB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,IAAI,CAAC;AACL,EAAE,EAAE;AACJ;AACA,CAAC,EAAE,CAAC,MAAM;AACV,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAClB,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE;AACvB,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,EAAE;AAC3B,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE;AACvB,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACpB,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,EAAE,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE;AAC5B,EAAE,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE;AAC5B,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE;AAC1B,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,EAAE;AAChC,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;AACxB,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACnB,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC,EAAE;AACL;AACA,CAAC,EAAE,CAAC,UAAU;AACd,CAAC,IAAI,EAAE,OAAO;AACd,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAC3C,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;AAC1B;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC7B,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;AACnC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACV,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACtD,IAAI,WAAW,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;AACpC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AACvB,EAAE,CAAC;AACH,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE;AAC9C;AACA,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AACjB,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AACzC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AACvC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;AACpF,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACxD,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AAC7C,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9C,EAAE,EAAE;AACJ;AACA,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE;AACtC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE;AAClE;AACA,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;AAC9C,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG;AACjD,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI;AAC/C,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE;AACrD,GAAG,IAAI,EAAE,OAAO;AAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;AACnC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACV,GAAG,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,EAAE;AAClE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG;AACxD,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM;AAClD,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,SAAS;AACpD,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU;AACpD,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;AAChD,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACpD,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AAChD,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG;AACpD,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;AAChD,GAAG,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;AAC7C,EAAE,CAAC;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;AACpC,CAAC,CAAC;AACF;AACA,CAAC,IAAI,CAAC,oBAAoB,CAAC;AAC3B,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjB,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACtB,GAAG,CAAC,QAAQ;AACZ,CAAC,EAAE;AACH;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AACnC,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU;AAC5D,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ;AACpB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC1B,GAAG,MAAM,CAAC,eAAe,GAAG;AAC5B,EAAE,CAAC;AACH,CAAC,CAAC,CAAC,EAAE;AACL,EAAE;AACF;AACA,EAAE,CAAC,cAAc,CAAC,EAAE;AACpB;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;AAC5D,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;AACrE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE;AAC/E,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;AAC1E,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;AACrE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;AAC3E,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;AACxE;AACA,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AACvB;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;AAC3B,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;AAC7C,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;AAC7C,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK;AAC5B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;AACpB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AAC1F;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;AAC3C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ;AAC9C,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC,EAAE,CAAC,CAAC;AACL,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE;AACvB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI;AACrC,CAAC,CAAC,CAAC,CAAC;AACJ,EAAE,IAAI,CAAC,KAAK,GAAG;AACf,EAAE,MAAM,CAAC,KAAK,CAAC;AACf,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AAC3B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK;AAC1C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ;AAChD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC,GAAG,CAAC,cAAc,CAAC;AACpB,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AACvC;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5B,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvC,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;AACxD,EAAE,CAAC;AACH;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACrD,EAAE,MAAM,CAAC,cAAc,CAAC;AACxB,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;AACzC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;AACpB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;AACzB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAChB,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AACvC,EAAE,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAClD,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG;AAC5C,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG;AAC5D;AACA,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,IAAI,MAAM,CAAC,KAAK,CAAC;AACjB,GAAG,CAAC;AACJ;AACA,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,IAAI,MAAM,CAAC,KAAK,CAAC;AACjB,GAAG,CAAC;AACJ;AACA,GAAG,MAAM,CAAC,IAAI,CAAC;AACf,EAAE,EAAE;AACJ;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5B,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS;AACpD,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7C,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;AAClD,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACjD,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE;AAClC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACnC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK;AACjC,EAAE,CAAC,CAAC,CAAC;AACL,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChB,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;AACtB,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvB,IAAI,EAAE;AACN,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACX,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChB,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE;AACvB,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtB,IAAI,EAAE;AACN,GAAG,CAAC;AACJ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;AACnC;AACA,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE;AAC1D,GAAG,CAAC;AACJ,EAAE,CAAC;AACH,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;AAC/B,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,EAAE;AAC9D,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ;AAClB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE;AAC1B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;AAC9B,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,EAAE;AACjE;AACA,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AAC1D,CAAC,IAAI,CAAC,eAAe,GAAG;AACxB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;AAC1F,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AACrD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;AACrC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AACnE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AACzB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ;AAChD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC,IAAI,CAAC,eAAe,GAAG;AACxB,CAAC,MAAM,CAAC,KAAK,CAAC;AACd,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AAC7D,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;AACrC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AACnE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AACzB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ;AAChD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AACjB;AACA,CAAC,EAAE,CAAC,CAAC;AACL,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;AACpC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACjC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,CAAC,CAAC,CAAC,CAAC;AACJ,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;AACzB,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG;AAC1B,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACnC;AACA,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAChC,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACpD,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;AACvD,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AAC1C,GAAG,CAAC;AACJ,EAAE,CAAC;AACH;AACA,EAAE,MAAM,CAAC,KAAK,CAAC;AACf,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AACtD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;AACrC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,IAAI,CAAC,UAAU,GAAG;AACnB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ;AAC1E,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACvB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,eAAe;AACvB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;AACrC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS;AAC7E,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AACnE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AAC1B,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC,EAAE,CAAC,CAAC;AACL,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;AACpC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AACpB,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;AAC3B,CAAC,CAAC,CAAC,CAAC;AACJ,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;AACtB,EAAE,IAAI,CAAC,eAAe,GAAG,KAAK,GAAG;AACjC,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;AAC/B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;AAClD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAChE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;AAChC,GAAG,IAAI,CAAC,eAAe,GAAG;AAC1B,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK;AAC/C,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AACxC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;AACtB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAC/B,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK;AACvB,EAAE,IAAI,CAAC,KAAK,GAAG;AACf,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;AACrC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;AAClD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC,GAAG,CAAC,CAAC,CAAC;AACP,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG;AAC1B;AACA,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK;AAC5C,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACvC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACvD,GAAG,KAAK,CAAC;AACT,EAAE,CAAC;AACH,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1B,EAAE;AACF,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC;AACxE,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG;AACxC;AACA,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ;AAClB,CAAC,IAAI,CAAC,WAAW,CAAC;AAClB,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE;AACzB,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7C,CAAC,EAAE;AACH;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,IAAI,CAAC,eAAe,GAAG;AACzB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACxB,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK;AACrB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;AAC7B,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK;AAC7D,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK;AAC9D,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACtF,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE;AAC3C,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACV,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK;AACzB,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE;AAC1E,EAAE,CAAC;AACH,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,qBAAqB,GAAG;AAC9B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM;AACjB,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE;AAClF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACtB,GAAG,IAAI,CAAC,eAAe,GAAG;AAC1B,EAAE,CAAC;AACH,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE;AACjE,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9C,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE;AACpC,EAAE,CAAC,CAAC,EAAE;AACN,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK;AAC9B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG;AAChD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AACxC,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;AACvC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG;AAChD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC7E,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACnF,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE;AACtC;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG;AACnC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;AAC5E,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AAChB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG;AACvC,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;AAC3B,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACpE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG;AACjC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE;AACtC;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACd,EAAE,MAAM,CAAC;AACT,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;AACjD,EAAE,IAAI,CAAC,UAAU,GAAG;AACpB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE;AACrB,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK;AAClB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;AAC3B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ;AAC9D,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK;AAC9C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS;AACvC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,EAAE;AACxC,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK;AACrD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK;AAC9C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AACrC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC,EAAE,CAAC,CAAC;AACL,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;AAC1B,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC,CAAC;AACJ,EAAE,MAAM,CAAC,KAAK,CAAC;AACf,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAC7B,EAAE,MAAM,CAAC,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;AAC7B,CAAC,EAAE,CAAC,CAAC;AACL,EAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACzB,EAAE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC;AACJ,EAAE,MAAM,CAAC,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,KAAK,CAAC;AACd,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;AAC9B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM;AACzC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;AAC3B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;AACzC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;AAC3C,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;AACnC,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK;AAChD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK;AAChE,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7D,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;AACvB,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG;AACzB,EAAE,CAAC,CAAC,CAAC;AACL,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG;AACzB,EAAE,CAAC,CAAC,EAAE;AACN,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;AACzC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI;AACvF,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;AAClE,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;AACjE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;AACrC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AAC1D,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;AAC7D,CAAC,CAAC,EAAE,CAAC;AACL,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;AAC1C,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,EAAE,CAAC;AACL,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;AAC9D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;AAC1D,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;AAC5E;AACA,CAAC,IAAI,CAAC,UAAU,GAAG;AACnB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE;AACtB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACV,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACtC,EAAE,CAAC;AACH,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAClB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AAC9B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;AACvC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG;AAClE,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;AACzD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY;AAChD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC,GAAG,CAAC,aAAa,CAAC;AACnB,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE;AACvC;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;AAC1D,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE;AACvC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;AACrC,EAAE,MAAM,CAAC,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,KAAK,CAAC;AACd,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AAChE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACrE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;AAC5B,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACzB,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtC,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AACnC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;AACvC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,EAAE;AAC1C;AACA,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAC9B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACrF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;AACjC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;AACxC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC;AAChC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC;AACvB;AACA,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAChE,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG;AACvE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG;AACpE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI;AAC/C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AACpD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE;AAC5C;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACzB,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI;AAC1D,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACrB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACV,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;AACvB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1B,EAAE,CAAC;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACrC,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG;AACxE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG;AACrE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAClB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI;AAC/C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;AACxD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE;AAC5C;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7C,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACrB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACV,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;AAC1B,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C,EAAE,CAAC;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACrC,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;AACjF,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;AAC1E,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AAClF,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5E,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACpE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/D,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AACnD,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY;AAChE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/B,GAAG,MAAM,CAAC;AACV,EAAE,CAAC;AACH,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAC1C,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG;AAC5C,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;AAC1D;AACA,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AAC5D,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa;AAC9D,EAAE,EAAE,CAAC,CAAC;AACN,GAAG,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACpD,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AAClC,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS;AACxD,EAAE,CAAC,CAAC,CAAC;AACL,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;AAClE,GAAG,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;AACzE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;AAC7B;AACA,EAAE,CAAC;AACH;AACA,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI;AAC/D,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;AACtC,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;AACjD,GAAG,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACvD,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B;AACxC,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG;AAC3C;AACA,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACtC,GAAG,IAAI,CAAC,qBAAqB,GAAG;AAChC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY;AACvD,GAAG,MAAM,CAAC;AACV,EAAE,CAAC;AACH;AACA,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,GAAG;AAC1C,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACV,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,IAAI,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;AACrF,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,CAAC;AACH;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAChG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;AAC3C,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;AAClB,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACnC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;AACpE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/C,EAAE,CAAC;AACH,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;AACrD,EAAE,IAAI,CAAC,qBAAqB,GAAG;AAC/B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,IAAI,CAAC,qBAAqB,GAAG;AAC/B,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;AACjD,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM;AAClE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK;AACjE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;AACjE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACT,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG;AACrC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AACvB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;AACxB,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK;AAClD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK;AACpC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClD,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG;AACxB,CAAC,CAAC,CAAC,EAAE;AACL,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI;AACnC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK;AACzC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;AACf,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AACrD;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACrB;AACA,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAC5C;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACnC,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AAC5C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK;AACpC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACnB,EAAE;;ACj4BF,GAAG;AACH,CAAC,CAAC,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,QAAQ;AACxG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACxG,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,CAAC,OAAO;AACf,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC;AACrD,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,yBAAyB,GAAG;AAC1D,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;AAC7C,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;AACtE,CAAC,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,GAAG;AACpD,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC,YAAY,UAAU,CAAC,CAAC,UAAU,CAAC;AACrC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,OAAO;AAC9C,CAAC,CAAC,YAAY,CAAC;AACf,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE;AACf,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;AAC7C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB;AACtC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACnC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM;AAC9C,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;AACrD,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAChE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK;AAC5D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACtF,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG;AAC5E,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;AAChC,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC,GAAG,CAAC,YAAY,CAAC;AAClB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;AAChC;AACA,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AACvB;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,yBAAyB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;AACpG;AACA,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AAC7G;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;AACzD,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK;AAC5D,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG;AACvD,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ;AACtD,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,GAAG;AAC7C;AACA,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;AAC1C,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC;AACvD,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC;AACA,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC,EAAE;AAC3E,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe;AACpD,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC;AAC9C,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvD,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC;AAC3D;AACA,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AACpC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,EAAE;AAC5C;AACA,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC/C;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAC9E,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO;AACzB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;AACrC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACzB,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,GAAG,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC;AAC7B,EAAE,CAAC,CAAC,EAAE;AACN,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,MAAM;AACV,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AACrE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,CAAC,IAAI,EAAE,UAAU;AACjB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAC5C;AACA,CAAC,EAAE,CAAC,UAAU;AACd,CAAC,IAAI,EAAE,OAAO;AACd,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAChC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,EAAE;AACjD;AACA,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO;AACvB,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE;AAC7H,EAAE;AACF;AACA,EAAE,CAAC,cAAc,CAAC,EAAE;AACpB;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE;AAC/E,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;AAC3E;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,yBAAyB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE;AAC3B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;AAChC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AAC9C,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,yBAAyB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACtC,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG;AAC1B,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;AACrC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,yBAAyB,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3E,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACzB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE;AACxD,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;AACjC,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,yBAAyB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC/C,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AAC7C,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAC/B;AACA,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE;AAC5B,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG;AAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,EAAE,CAAC,MAAM;AACX,EAAE,EAAE,CAAC,EAAE,CAAC,yBAAyB,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AAClF,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;AAChC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;AACzE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACvE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACtB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;AACzC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;AAChF,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,yBAAyB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzF,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;AAC5B,EAAE;;AC/JF,GAAG;AACH,CAAC,CAAC,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,QAAQ;AACvG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;AACvC,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,CAAC,OAAO;AACf,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;AACpD,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC;AACzD,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE;AACpC,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAClE,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACrD,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACrD,CAAC,CAAC,SAAS,EAAE;AACb,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACX,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;AAC7C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB;AACtC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM;AAChD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM;AACnG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;AAChE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACpD,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAChE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3F,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AACvB;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC5D;AACA,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AAC7G,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,kBAAkB,CAAC;AAClG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/C,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC;AACf,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,EAAE,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;AACnC,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnC,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACjC,EAAE,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1E,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC;AACvC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC;AAC1B,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE;AAC7B,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACpB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzC;AACA,CAAC,EAAE,CAAC,MAAM;AACV,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3B,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,EAAE;AACzB,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;AACxB,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,OAAO;AACd,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAChC,CAAC,IAAI,EAAE,OAAO;AACd,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,EAAE;AAChD,CAAC,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;AAClG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC;AACvF,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AACnC,CAAC,CAAC;AACF,EAAE;AACF;AACA,EAAE,CAAC,cAAc,CAAC,EAAE;AACpB;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE;AAC9E;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK;AAC1B,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI;AACvB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG;AACtB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM;AACjB,CAAC,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AAC3E;AACA,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE;AAC1B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACpE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM;AACjB,CAAC,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AAC1E;AACA,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE;AAC3B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;AAChC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE;AAC1B,CAAC,IAAI,CAAC,uBAAuB,GAAG;AAChC,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;AAC/B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;AACxD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAClD,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;AAC5B,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;AACX,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE;AACxD,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC;AAC/D,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;AACjD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE;AAC/B,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE;AAClC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,IAAI,CAAC,uBAAuB,GAAG;AACjC,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE;AAChE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAC9B,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ;AAC5E,EAAE,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1E,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG;AACzE,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AACpC;AACA,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACxF,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AACrD,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;AAC7B,EAAE,CAAC;AACH;AACA,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;AACzB,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE;AACnC;AACA,EAAE,IAAI,CAAC,KAAK,GAAG;AACf,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO;AACpB,EAAE,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;AACpF,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM;AACjB,CAAC,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE;AACtF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW;AAC1E,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,EAAE;AACtC,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;AAClE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;AACvC,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1B,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,CAAC;AACV,IAAI,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;AACvC,EAAE,EAAE;AACJ,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG;AACjC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK;AACtC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;AACjD,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,EAAE;AAC9E,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AACrC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE;AACvC;AACA,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;AACtD,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK;AACvC;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACd,EAAE,MAAM,CAAC;AACT,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;AACjD,EAAE,IAAI,CAAC,UAAU,GAAG;AACpB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACf,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;AACxC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACV,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE;AACtB,EAAE,CAAC;AACH,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;AACrE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;AACjC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,GAAG,CAAC,OAAO,CAAC,OAAO;AACrD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC5E,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC5D,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG;AAC9B,CAAC,CAAC,CAAC,EAAE;AACL,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI;AACxE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI;AACzE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;AACpD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO;AACnD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,MAAM;AAC/C,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,EAAE;AACjD,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AAC1B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO;AACxD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACnB,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7C,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACzE,EAAE,CAAC,CAAC,EAAE;AACN;AACA,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE;AAC7B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAC/B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;AACjC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK;AACrC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI;AAC5C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,MAAM;AAC7C,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACrC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;AACb,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC;AACvB,EAAE,IAAI,CAAC,CAAC,IAAI;AACZ,CAAC,CAAC,CAAC,EAAE;AACL,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;AACf,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,IAAI;AACxC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAClB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;AAC9B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM;AACzC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACpB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3F,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/D,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG;AAC7B,EAAE,CAAC,CAAC,EAAE;AACN,CAAC,CAAC;AACF,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE;AAC/C,EAAE;;AC7SF,GAAG;AACH,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK;AAC/E,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI;AAClF,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,EAAE;AAC5C,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC1F,CAAC,CAAC;AACF,CAAC,CAAC,KAAK,CAAC,OAAO;AACf,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;AACzC,CAAC,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,GAAG;AACrD,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;AACjD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;AACnD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM;AACxB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW;AAClC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB;AACvC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc;AACrC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACnC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AACnF,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;AACxE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;AAC5F,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;AACtG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;AAC7B,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC,GAAG,CAAC,WAAW,CAAC;AACjB;AACA,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc;AAChC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACrB,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC;AACf,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE;AAC1D,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE;AAC7D,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC;AAClB,EAAE,cAAc,CAAC,CAAC,KAAK,CAAC;AACxB,EAAE,kBAAkB,CAAC,CAAC,EAAE;AACxB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;AACb;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACpD;AACA,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC9C,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACnD,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3F,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAC/C;AACA,CAAC,EAAE,CAAC,UAAU;AACd,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;AAC5B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;AAC7C,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC;AACrD,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,GAAG;AAC1D,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AAC9B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACrB,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;AACvC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;AACzC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AAC/D;AACA,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAC9C,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;AAC3B,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,EAAE;AACrD,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;AACtD,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW;AAC9C,CAAC,CAAC,CAAC,EAAE;AACL;AACA,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAC7C,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,EAAE;AACpD,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC;AAChB,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;AAChB,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ;AACzB,CAAC,CAAC,CAAC,EAAE;AACL;AACA,CAAC,EAAE,CAAC,MAAM;AACV,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;AACvB,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AACpD,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,GAAG,SAAS,CAAC,CAAC,WAAW,CAAC;AAC1B,GAAG,QAAQ,CAAC,CAAC,WAAW,CAAC;AACzB,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AAC5C,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACjC,EAAE,CAAC,CAAC,EAAE;AACN,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,CAAC,QAAQ,GAAG;AACjB,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE;AACxD,CAAC,IAAI,EAAE,IAAI;AACX,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;AACjF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AACnD,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;AACxC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE;AAChF,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;AAC5C,EAAE,IAAI,EAAE,OAAO;AACf,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC1E,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACT,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9C,GAAG,CAAC,CAAC,CAAC;AACN,GAAG,CAAC,MAAM,CAAC;AACX,IAAI,IAAI,EAAE,SAAS,CAAC;AACpB,IAAI,IAAI,EAAE,IAAI,CAAC;AACf,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC;AAC/B,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACjB,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;AACpD,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,GAAG,EAAE;AACL,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,IAAI,EAAE,OAAO;AACf,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACxC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE;AACrD,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,QAAQ,GAAG;AACjB,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;AACxD,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;AACjE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;AACtE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;AACpE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;AAClE;AACA,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AACvB;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS;AACpC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM;AACV,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;AACpB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AACjD,EAAE,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;AACnF,CAAC,CAAC;AACF,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC;AACvD,EAAE;AACF;AACA,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD;AACA,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AAChB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;AACzE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK;AACrC,CAAC,EAAE;AACH;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AACrC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACtB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;AACzB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AACrC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM;AACzC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,EAAE,IAAI,CAAC,QAAQ,GAAG;AAClB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC1C,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;AACpB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AACnC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AAClD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtD,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG;AAC3B,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACnB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ;AAClD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrD,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG;AAC1B,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnE,CAAC,IAAI,CAAC,KAAK,GAAG;AACd,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU;AAClE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,SAAS;AACb,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC3B,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,EAAE;AAClE,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE;AAC9D,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACrC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE;AAC/D,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC3B,GAAG,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE;AAC/D,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACpB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AACvB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACjB,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;AACnD,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACnC,GAAG,EAAE;AACL,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC3B;AACA,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,IAAI,CAAC,WAAW,GAAG;AACvB,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtD,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACrE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxC,KAAK,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;AAC5B,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE;AAC1B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,MAAM,CAAC,CAAC,GAAG,OAAO;AAClB,KAAK,EAAE;AACP,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC1C,KAAK,IAAI,CAAC,UAAU,GAAG;AACvB,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACrB,IAAI,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACjC,GAAG,CAAC;AACJ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACV,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACjC,IAAI,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/C,IAAI,CAAC,CAAC,EAAE;AACR,IAAI,IAAI,EAAE,SAAS;AACnB,KAAK,CAAC,KAAK,EAAE;AACb,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE;AACpC,GAAG,CAAC;AACJ,GAAG,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE;AAC5D,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AACrC,EAAE,CAAC;AACH,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AAC7D,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AACnF,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG;AAC7B,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;AAC1B,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG;AAC5B;AACA,CAAC,EAAE,CAAC,CAAC;AACL,EAAE,IAAI,CAAC,EAAE;AACT,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AACnE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;AACnD,CAAC,CAAC,CAAC,CAAC;AACJ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAC7C,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC9C,IAAI,EAAE,CAAC,CAAC;AACR,KAAK,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAC9B,KAAK,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAC/B,KAAK,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK;AAC3B,IAAI,CAAC,CAAC,CAAC;AACP,KAAK,QAAQ,CAAC,MAAM,GAAG;AACvB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACZ,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AAC7C,IAAI,CAAC;AACL,GAAG,CAAC,CAAC,EAAE;AACP,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AACjC,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE;AAC/B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,QAAQ,CAAC,MAAM,GAAG;AACpB,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG;AAC3B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AAC9B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACrB,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG;AACvB,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC3B,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACrB,EAAE,MAAM,CAAC;AACT,CAAC,CAAC;AACF;AACA,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AACrD,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE;AACxD,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;AACnD,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK;AAC1B,EAAE,CAAC,CAAC,eAAe,GAAG;AACtB,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACpB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACd,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,CAAC,CAAC;AACF,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AACjD,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;AAC1C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;AAC1C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;AACpB,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACjB;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACnC,EAAE,MAAM,CAAC,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9B,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChC,GAAG,MAAM,CAAC,IAAI,CAAC;AACf,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChD,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9D,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,GAAG,CAAC;AACJ,EAAE,CAAC;AACH,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,KAAK,CAAC;AACd,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK;AACvC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1B,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;AACvD;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE;AACvB,CAAC,IAAI,CAAC,QAAQ,GAAG;AACjB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;AACpC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AAC3E,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7D,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE;AACvB,CAAC,MAAM,CAAC,KAAK,CAAC;AACd,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AAC3B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK;AAC1C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AAC3E,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC9D,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC,CAAC,CAAC,CAAC;AACJ,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,GAAG;AACtB,EAAE,MAAM,CAAC,KAAK,CAAC;AACf,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;AACnC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK;AAC1C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AAC3E,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/D,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,GAAG;AACtB,EAAE,MAAM,CAAC,KAAK,CAAC;AACf,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;AACpC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;AACrC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AAC3E,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC,GAAG,CAAC,UAAU,CAAC;AAChB,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;AACxB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC;AACpC;AACA,CAAC,CAAC,CAAC,cAAc,GAAG;AACpB,CAAC,CAAC,CAAC,eAAe,GAAG;AACrB;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAChD,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE;AAChE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzB,EAAE,MAAM,CAAC,KAAK,CAAC;AACf,CAAC,CAAC;AACF;AACA,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK;AAC5E,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AACtC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC3E,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,EAAE,CAAC;AACH,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK;AAC5C,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;AAChF,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;AAC9B,EAAE,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM;AACxD,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,CAAC,CAAC;AACF;AACA,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE;AAC9E,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACxB,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzB,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,KAAK,CAAC;AACd,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;AAC3B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;AACrC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE;AAC/D,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM;AACrB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;AACrC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AAC3E,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACjB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC;AACpC;AACA,CAAC,CAAC,CAAC,cAAc,GAAG;AACpB,CAAC,CAAC,CAAC,eAAe,GAAG;AACrB,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE;AAC/D;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAChD,EAAE,MAAM,CAAC,KAAK,CAAC;AACf,CAAC,CAAC;AACF;AACA,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AACrC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACd,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACd,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE;AACxB,CAAC,CAAC;AACF;AACA,CAAC,MAAM,CAAC,KAAK,CAAC;AACd,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,UAAU;AACd,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE;AAC5E,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC3B,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE;AAC5C,CAAC,CAAC;AACF,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE;AAC3C,CAAC,CAAC;AACF,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,EAAE;;ACjhBF,GAAG;AACH,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/G,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK;AACrE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AACpH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AACnH,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AAC5F,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,GAAG;AAChG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC;AACtC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM;AACrF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK;AACT,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM;AACxB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,WAAW;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO;AACjD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK;AACtE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;AAC5C,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc;AAChC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AACvB;AACA,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AACtB,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAChD;AACA,CAAC,EAAE,CAAC,UAAU;AACd,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;AAC1C,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACjB,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;AAClC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK;AACrB,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,GAAG;AACzC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;AAC5B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;AAC9B;AACA,CAAC,EAAE,CAAC,MAAM;AACV,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE;AAC1B,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;AACvB,CAAC,CAAC,CAAC,EAAE;AACL,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACrE;AACA,CAAC,EAAE,CAAC,cAAc;AAClB,CAAC,IAAI,EAAE,KAAK;AACZ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;AACjC,CAAC,IAAI,EAAE,OAAO;AACd,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3C,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;AACnC,CAAC,IAAI,EAAE,OAAO;AACd,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AACnC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AACxC,EAAE;AACF;AACA,EAAE,CAAC,KAAK,CAAC,EAAE;AACX;AACA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;AACpD;AACA,EAAE,CAAC,OAAO,CAAC,EAAE;AACb;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAChC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;AACzC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC;AAC/B,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACjF;AACA,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACb,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,GAAG;AACvD,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAC3B,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG;AACrD,EAAE,CAAC;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE;AAC7E,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE;AACzC,EAAE,QAAQ,CAAC,qBAAqB,GAAG;AACnC,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;AACtC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;AACtF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK;AAClC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC1D,CAAC,EAAE,CAAC,KAAK;AACT,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG;AAC3B,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;AACzC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;AAC5B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO;AACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK;AAClC,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,GAAG;AAC1D,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AACzB,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,EAAE;AAC7C,CAAC,CAAC;AACF,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;AACvB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,KAAK;AAC9C,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrD,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACnB,EAAE;AACF;AACA,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;AAC/B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO;AACtD,CAAC,EAAE;AACH,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvD,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACrB,EAAE;;AC/HF,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE","file":"oojs-ui-widgets.js","sourcesContent":["( function ( OO ) {\n\n'use strict';\n","/**\n * DraggableElement is a mixin class used to create elements that can be clicked\n * and dragged by a mouse to a new position within a group. This class must be used\n * in conjunction with OO.ui.mixin.DraggableGroupElement, which provides a container for\n * the draggable elements.\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$handle] The part of the element which can be used for dragging, defaults to the whole element\n * @cfg {boolean} [draggable] The items are draggable. This can change with #toggleDraggable\n *  but the draggable state should be called from the DraggableGroupElement, which updates\n *  the whole group\n */\nOO.ui.mixin.DraggableElement = function OoUiMixinDraggableElement( config ) {\n\tconfig = config || {};\n\n\t// Properties\n\tthis.index = null;\n\tthis.$handle = config.$handle || this.$element;\n\tthis.wasHandleUsed = null;\n\n\t// Initialize and events\n\tthis.$element\n\t\t.addClass( 'oo-ui-draggableElement' )\n\t\t.on( {\n\t\t\tmousedown: this.onDragMouseDown.bind( this ),\n\t\t\tdragstart: this.onDragStart.bind( this ),\n\t\t\tdragover: this.onDragOver.bind( this ),\n\t\t\tdragend: this.onDragEnd.bind( this ),\n\t\t\tdrop: this.onDrop.bind( this )\n\t\t} );\n\tthis.$handle.addClass( 'oo-ui-draggableElement-handle' );\n\tthis.toggleDraggable( config.draggable === undefined ? true : !!config.draggable );\n};\n\nOO.initClass( OO.ui.mixin.DraggableElement );\n\n/* Events */\n\n/**\n * @event dragstart\n *\n * A dragstart event is emitted when the user clicks and begins dragging an item.\n * @param {OO.ui.mixin.DraggableElement} item The item the user has clicked and is dragging with the mouse.\n */\n\n/**\n * @event dragend\n * A dragend event is emitted when the user drags an item and releases the mouse,\n * thus terminating the drag operation.\n */\n\n/**\n * @event drop\n * A drop event is emitted when the user drags an item and then releases the mouse button\n * over a valid target.\n */\n\n/* Static Properties */\n\n/**\n * @inheritdoc OO.ui.mixin.ButtonElement\n */\nOO.ui.mixin.DraggableElement.static.cancelButtonMouseDownEvents = false;\n\n/* Methods */\n\n/**\n * Change the draggable state of this widget.\n * This allows users to temporarily halt the dragging operations.\n *\n * @param {boolean} isDraggable Widget supports draggable operations\n * @fires draggable\n */\nOO.ui.mixin.DraggableElement.prototype.toggleDraggable = function ( isDraggable ) {\n\tisDraggable = isDraggable !== undefined ? !!isDraggable : !this.draggable;\n\n\tif ( this.draggable !== isDraggable ) {\n\t\tthis.draggable = isDraggable;\n\n\t\tthis.$handle.toggleClass( 'oo-ui-draggableElement-undraggable', !this.draggable );\n\n\t\t// We make the entire element draggable, not just the handle, so that\n\t\t// the whole element appears to move. wasHandleUsed prevents drags from\n\t\t// starting outside the handle\n\t\tthis.$element.prop( 'draggable', this.draggable );\n\t}\n};\n\n/**\n * Check the draggable state of this widget\n *\n * @return {boolean} Widget supports draggable operations\n */\nOO.ui.mixin.DraggableElement.prototype.isDraggable = function () {\n\treturn this.draggable;\n};\n\n/**\n * Respond to mousedown event.\n *\n * @private\n * @param {jQuery.Event} e Drag event\n */\nOO.ui.mixin.DraggableElement.prototype.onDragMouseDown = function ( e ) {\n\tif ( !this.isDraggable() ) {\n\t\treturn;\n\t}\n\n\tthis.wasHandleUsed =\n\t\t// Optimization: if the handle is the whole element this is always true\n\t\tthis.$handle[ 0 ] === this.$element[ 0 ] ||\n\t\t// Check the mousedown occurred inside the handle\n\t\tOO.ui.contains( this.$handle[ 0 ], e.target, true );\n};\n\n/**\n * Respond to dragstart event.\n *\n * @private\n * @param {jQuery.Event} e Drag event\n * @return {boolean} False if the event is cancelled\n * @fires dragstart\n */\nOO.ui.mixin.DraggableElement.prototype.onDragStart = function ( e ) {\n\tvar element = this,\n\t\tdataTransfer = e.originalEvent.dataTransfer;\n\n\tif ( !this.wasHandleUsed || !this.isDraggable() ) {\n\t\treturn false;\n\t}\n\n\t// Define drop effect\n\tdataTransfer.dropEffect = 'none';\n\tdataTransfer.effectAllowed = 'move';\n\t// Support: Firefox\n\t// We must set up a dataTransfer data property or Firefox seems to\n\t// ignore the fact the element is draggable.\n\ttry {\n\t\tdataTransfer.setData( 'application-x/OOUI-draggable', this.getIndex() );\n\t} catch ( err ) {\n\t\t// The above is only for Firefox. Move on if it fails.\n\t}\n\t// Briefly add a 'clone' class to style the browser's native drag image\n\tthis.$element.addClass( 'oo-ui-draggableElement-clone' );\n\t// Add placeholder class after the browser has rendered the clone\n\tsetTimeout( function () {\n\t\telement.$element\n\t\t\t.removeClass( 'oo-ui-draggableElement-clone' )\n\t\t\t.addClass( 'oo-ui-draggableElement-placeholder' );\n\t} );\n\t// Emit event\n\tthis.emit( 'dragstart', this );\n\treturn true;\n};\n\n/**\n * Respond to dragend event.\n *\n * @private\n * @fires dragend\n */\nOO.ui.mixin.DraggableElement.prototype.onDragEnd = function () {\n\tthis.$element.removeClass( 'oo-ui-draggableElement-placeholder' );\n\tthis.emit( 'dragend' );\n};\n\n/**\n * Handle drop event.\n *\n * @private\n * @param {jQuery.Event} e Drop event\n * @fires drop\n */\nOO.ui.mixin.DraggableElement.prototype.onDrop = function ( e ) {\n\te.preventDefault();\n\tthis.emit( 'drop', e );\n};\n\n/**\n * In order for drag/drop to work, the dragover event must\n * return false and stop propogation.\n *\n * @param {jQuery.Event} e Drag event\n * @private\n */\nOO.ui.mixin.DraggableElement.prototype.onDragOver = function ( e ) {\n\te.preventDefault();\n};\n\n/**\n * Set item index.\n * Store it in the DOM so we can access from the widget drag event\n *\n * @private\n * @param {number} index Item index\n */\nOO.ui.mixin.DraggableElement.prototype.setIndex = function ( index ) {\n\tif ( this.index !== index ) {\n\t\tthis.index = index;\n\t\tthis.$element.data( 'index', index );\n\t}\n};\n\n/**\n * Get item index\n *\n * @private\n * @return {number} Item index\n */\nOO.ui.mixin.DraggableElement.prototype.getIndex = function () {\n\treturn this.index;\n};\n","/**\n * DraggableGroupElement is a mixin class used to create a group element to\n * contain draggable elements, which are items that can be clicked and dragged by a mouse.\n * The class is used with OO.ui.mixin.DraggableElement.\n *\n * @abstract\n * @class\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string} [orientation] Item orientation: 'horizontal' or 'vertical'. The orientation\n *  should match the layout of the items. Items displayed in a single row\n *  or in several rows should use horizontal orientation. The vertical orientation should only be\n *  used when the items are displayed in a single column. Defaults to 'vertical'\n * @cfg {boolean} [draggable] The items are draggable. This can change with #toggleDraggable\n */\nOO.ui.mixin.DraggableGroupElement = function OoUiMixinDraggableGroupElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.mixin.GroupElement.call( this, config );\n\n\t// Properties\n\tthis.orientation = config.orientation || 'vertical';\n\tthis.dragItem = null;\n\tthis.itemKeys = {};\n\tthis.dir = null;\n\tthis.itemsOrder = null;\n\tthis.draggable = config.draggable === undefined ? true : !!config.draggable;\n\n\t// Events\n\tthis.aggregate( {\n\t\tdragstart: 'itemDragStart',\n\t\tdragend: 'itemDragEnd',\n\t\tdrop: 'itemDrop'\n\t} );\n\tthis.connect( this, {\n\t\titemDragStart: 'onItemDragStart',\n\t\titemDrop: 'onItemDropOrDragEnd',\n\t\titemDragEnd: 'onItemDropOrDragEnd'\n\t} );\n\n\t// Initialize\n\tif ( Array.isArray( config.items ) ) {\n\t\tthis.addItems( config.items );\n\t}\n\tthis.$element\n\t\t.addClass( 'oo-ui-draggableGroupElement' )\n\t\t.toggleClass( 'oo-ui-draggableGroupElement-horizontal', this.orientation === 'horizontal' );\n};\n\n/* Setup */\nOO.mixinClass( OO.ui.mixin.DraggableGroupElement, OO.ui.mixin.GroupElement );\n\n/* Events */\n\n/**\n * An item has been dragged to a new position, but not yet dropped.\n *\n * @event drag\n * @param {OO.ui.mixin.DraggableElement} item Dragged item\n * @param {number} [newIndex] New index for the item\n */\n\n/**\n * An item has been dropped at a new position.\n *\n * @event reorder\n * @param {OO.ui.mixin.DraggableElement} item Reordered item\n * @param {number} [newIndex] New index for the item\n */\n\n/**\n * Draggable state of this widget has changed.\n *\n * @event draggable\n * @param {boolean} [draggable] Widget is draggable\n */\n\n/* Methods */\n\n/**\n * Change the draggable state of this widget.\n * This allows users to temporarily halt the dragging operations.\n *\n * @param {boolean} isDraggable Widget supports draggable operations\n * @fires draggable\n */\nOO.ui.mixin.DraggableGroupElement.prototype.toggleDraggable = function ( isDraggable ) {\n\tisDraggable = isDraggable !== undefined ? !!isDraggable : !this.draggable;\n\n\tif ( this.draggable !== isDraggable ) {\n\t\tthis.draggable = isDraggable;\n\n\t\t// Tell the items their draggable state changed\n\t\tthis.getItems().forEach( function ( item ) {\n\t\t\titem.toggleDraggable( this.draggable );\n\t\t}.bind( this ) );\n\n\t\t// Emit event\n\t\tthis.emit( 'draggable', this.draggable );\n\t}\n};\n\n/**\n * Check the draggable state of this widget\n *\n * @return {boolean} Widget supports draggable operations\n */\nOO.ui.mixin.DraggableGroupElement.prototype.isDraggable = function () {\n\treturn this.draggable;\n};\n\n/**\n * Respond to item drag start event\n *\n * @private\n * @param {OO.ui.mixin.DraggableElement} item Dragged item\n */\nOO.ui.mixin.DraggableGroupElement.prototype.onItemDragStart = function ( item ) {\n\tif ( !this.isDraggable() ) {\n\t\treturn;\n\t}\n\t// Make a shallow copy of this.items so we can re-order it during previews\n\t// without affecting the original array.\n\tthis.itemsOrder = this.items.slice();\n\tthis.updateIndexes();\n\tif ( this.orientation === 'horizontal' ) {\n\t\t// Calculate and cache directionality on drag start - it's a little\n\t\t// expensive and it shouldn't change while dragging.\n\t\tthis.dir = this.$element.css( 'direction' );\n\t}\n\tthis.setDragItem( item );\n};\n\n/**\n * Update the index properties of the items\n */\nOO.ui.mixin.DraggableGroupElement.prototype.updateIndexes = function () {\n\tvar i, len;\n\n\t// Map the index of each object\n\tfor ( i = 0, len = this.itemsOrder.length; i < len; i++ ) {\n\t\tthis.itemsOrder[ i ].setIndex( i );\n\t}\n};\n\n/**\n * Handle drop or dragend event and switch the order of the items accordingly\n *\n * @private\n * @param {OO.ui.mixin.DraggableElement} item Dropped item\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.DraggableGroupElement.prototype.onItemDropOrDragEnd = function () {\n\tvar targetIndex, originalIndex,\n\t\titem = this.getDragItem();\n\n\t// TODO: Figure out a way to configure a list of legally droppable\n\t// elements even if they are not yet in the list\n\tif ( item ) {\n\t\toriginalIndex = this.items.indexOf( item );\n\t\t// If the item has moved forward, add one to the index to account for the left shift\n\t\ttargetIndex = item.getIndex() + ( item.getIndex() > originalIndex ? 1 : 0 );\n\t\tif ( targetIndex !== originalIndex ) {\n\t\t\tthis.reorder( this.getDragItem(), targetIndex );\n\t\t\tthis.emit( 'reorder', this.getDragItem(), targetIndex );\n\t\t}\n\t\tthis.updateIndexes();\n\t}\n\tthis.unsetDragItem();\n\t// Return false to prevent propogation\n\treturn false;\n};\n\n/**\n * Respond to dragover event\n *\n * @private\n * @param {jQuery.Event} e Dragover event\n * @fires reorder\n */\nOO.ui.mixin.DraggableGroupElement.prototype.onDragOver = function ( e ) {\n\tvar overIndex, targetIndex,\n\t\titem = this.getDragItem(),\n\t\tdragItemIndex = item.getIndex();\n\n\t// Get the OptionWidget item we are dragging over\n\toverIndex = $( e.target ).closest( '.oo-ui-draggableElement' ).data( 'index' );\n\n\tif ( overIndex !== undefined && overIndex !== dragItemIndex ) {\n\t\ttargetIndex = overIndex + ( overIndex > dragItemIndex ? 1 : 0 );\n\n\t\tif ( targetIndex > 0 ) {\n\t\t\tthis.$group.children().eq( targetIndex - 1 ).after( item.$element );\n\t\t} else {\n\t\t\tthis.$group.prepend( item.$element );\n\t\t}\n\t\t// Move item in itemsOrder array\n\t\tthis.itemsOrder.splice( overIndex, 0,\n\t\t\tthis.itemsOrder.splice( dragItemIndex, 1 )[ 0 ]\n\t\t);\n\t\tthis.updateIndexes();\n\t\tthis.emit( 'drag', item, targetIndex );\n\t}\n\t// Prevent default\n\te.preventDefault();\n};\n\n/**\n * Reorder the items in the group\n *\n * @param {OO.ui.mixin.DraggableElement} item Reordered item\n * @param {number} newIndex New index\n */\nOO.ui.mixin.DraggableGroupElement.prototype.reorder = function ( item, newIndex ) {\n\tthis.addItems( [ item ], newIndex );\n};\n\n/**\n * Set a dragged item\n *\n * @param {OO.ui.mixin.DraggableElement} item Dragged item\n */\nOO.ui.mixin.DraggableGroupElement.prototype.setDragItem = function ( item ) {\n\tif ( this.dragItem !== item ) {\n\t\tthis.dragItem = item;\n\t\tthis.$element.on( 'dragover', this.onDragOver.bind( this ) );\n\t\tthis.$element.addClass( 'oo-ui-draggableGroupElement-dragging' );\n\t}\n};\n\n/**\n * Unset the current dragged item\n */\nOO.ui.mixin.DraggableGroupElement.prototype.unsetDragItem = function () {\n\tif ( this.dragItem ) {\n\t\tthis.dragItem = null;\n\t\tthis.$element.off( 'dragover' );\n\t\tthis.$element.removeClass( 'oo-ui-draggableGroupElement-dragging' );\n\t}\n};\n\n/**\n * Get the item that is currently being dragged.\n *\n * @return {OO.ui.mixin.DraggableElement|null} The currently dragged item, or `null` if no item is being dragged\n */\nOO.ui.mixin.DraggableGroupElement.prototype.getDragItem = function () {\n\treturn this.dragItem;\n};\n","/**\n * RequestManager is a mixin that manages the lifecycle of a promise-backed request for a widget, such as\n * the {@link OO.ui.mixin.LookupElement}.\n *\n * @class\n * @abstract\n *\n * @constructor\n */\nOO.ui.mixin.RequestManager = function OoUiMixinRequestManager() {\n\tthis.requestCache = {};\n\tthis.requestQuery = null;\n\tthis.requestRequest = null;\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.RequestManager );\n\n/**\n * Get request results for the current query.\n *\n * @return {jQuery.Promise} Promise object which will be passed response data as the first argument of\n *   the done event. If the request was aborted to make way for a subsequent request, this promise\n *   may not be rejected, depending on what jQuery feels like doing.\n */\nOO.ui.mixin.RequestManager.prototype.getRequestData = function () {\n\tvar widget = this,\n\t\tvalue = this.getRequestQuery(),\n\t\tdeferred = $.Deferred(),\n\t\tourRequest;\n\n\tthis.abortRequest();\n\tif ( Object.prototype.hasOwnProperty.call( this.requestCache, value ) ) {\n\t\tdeferred.resolve( this.requestCache[ value ] );\n\t} else {\n\t\tif ( this.pushPending ) {\n\t\t\tthis.pushPending();\n\t\t}\n\t\tthis.requestQuery = value;\n\t\tourRequest = this.requestRequest = this.getRequest();\n\t\tourRequest\n\t\t\t.always( function () {\n\t\t\t\t// We need to pop pending even if this is an old request, otherwise\n\t\t\t\t// the widget will remain pending forever.\n\t\t\t\t// TODO: this assumes that an aborted request will fail or succeed soon after\n\t\t\t\t// being aborted, or at least eventually. It would be nice if we could popPending()\n\t\t\t\t// at abort time, but only if we knew that we hadn't already called popPending()\n\t\t\t\t// for that request.\n\t\t\t\tif ( widget.popPending ) {\n\t\t\t\t\twidget.popPending();\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.done( function ( response ) {\n\t\t\t\t// If this is an old request (and aborting it somehow caused it to still succeed),\n\t\t\t\t// ignore its success completely\n\t\t\t\tif ( ourRequest === widget.requestRequest ) {\n\t\t\t\t\twidget.requestQuery = null;\n\t\t\t\t\twidget.requestRequest = null;\n\t\t\t\t\twidget.requestCache[ value ] = widget.getRequestCacheDataFromResponse( response );\n\t\t\t\t\tdeferred.resolve( widget.requestCache[ value ] );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.fail( function () {\n\t\t\t\t// If this is an old request (or a request failing because it's being aborted),\n\t\t\t\t// ignore its failure completely\n\t\t\t\tif ( ourRequest === widget.requestRequest ) {\n\t\t\t\t\twidget.requestQuery = null;\n\t\t\t\t\twidget.requestRequest = null;\n\t\t\t\t\tdeferred.reject();\n\t\t\t\t}\n\t\t\t} );\n\t}\n\treturn deferred.promise();\n};\n\n/**\n * Abort the currently pending request, if any.\n *\n * @private\n */\nOO.ui.mixin.RequestManager.prototype.abortRequest = function () {\n\tvar oldRequest = this.requestRequest;\n\tif ( oldRequest ) {\n\t\t// First unset this.requestRequest to the fail handler will notice\n\t\t// that the request is no longer current\n\t\tthis.requestRequest = null;\n\t\tthis.requestQuery = null;\n\t\toldRequest.abort();\n\t}\n};\n\n/**\n * Get the query to be made.\n *\n * @protected\n * @method\n * @abstract\n * @return {string} query to be used\n */\nOO.ui.mixin.RequestManager.prototype.getRequestQuery = null;\n\n/**\n * Get a new request object of the current query value.\n *\n * @protected\n * @method\n * @abstract\n * @return {jQuery.Promise} jQuery AJAX object, or promise object with an .abort() method\n */\nOO.ui.mixin.RequestManager.prototype.getRequest = null;\n\n/**\n * Pre-process data returned by the request from #getRequest.\n *\n * The return value of this function will be cached, and any further queries for the given value\n * will use the cache rather than doing API requests.\n *\n * @protected\n * @method\n * @abstract\n * @param {Mixed} response Response from server\n * @return {Mixed} Cached result data\n */\nOO.ui.mixin.RequestManager.prototype.getRequestCacheDataFromResponse = null;\n","/**\n * LookupElement is a mixin that creates a {@link OO.ui.MenuSelectWidget menu} of suggested values for\n * a {@link OO.ui.TextInputWidget text input widget}. Suggested values are based on the characters the user types\n * into the text input field and, in general, the menu is only displayed when the user types. If a suggested value is chosen\n * from the lookup menu, that value becomes the value of the input field.\n *\n * Note that a new menu of suggested items is displayed when a value is chosen from the lookup menu. If this is\n * not the desired behavior, disable lookup menus with the #setLookupsDisabled method, then set the value, then\n * re-enable lookups.\n *\n * See the [OOUI demos][1] for an example.\n *\n * [1]: https://doc.wikimedia.org/oojs-ui/master/demos/#LookupElement-try-inputting-an-integer\n *\n * @class\n * @abstract\n * @mixins OO.ui.mixin.RequestManager\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$overlay] Overlay for the lookup menu; defaults to relative positioning.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n * @cfg {jQuery} [$container=this.$element] The container element. The lookup menu is rendered beneath the specified element.\n * @cfg {Object} [menu] Configuration options to pass to {@link OO.ui.MenuSelectWidget menu select widget}\n * @cfg {boolean} [allowSuggestionsWhenEmpty=false] Request and display a lookup menu when the text input is empty.\n *  By default, the lookup menu is not generated and displayed until the user begins to type.\n * @cfg {boolean} [highlightFirst=true] Whether the first lookup result should be highlighted (so, that the user can\n *  take it over into the input with simply pressing return) automatically or not.\n */\nOO.ui.mixin.LookupElement = function OoUiMixinLookupElement( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( { highlightFirst: true }, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.RequestManager.call( this, config );\n\n\t// Properties\n\tthis.$overlay = ( config.$overlay === true ? OO.ui.getDefaultOverlay() : config.$overlay ) || this.$element;\n\tthis.lookupMenu = new OO.ui.MenuSelectWidget( $.extend( {\n\t\twidget: this,\n\t\tinput: this,\n\t\t$floatableContainer: config.$container || this.$element\n\t}, config.menu ) );\n\n\tthis.allowSuggestionsWhenEmpty = config.allowSuggestionsWhenEmpty || false;\n\n\tthis.lookupsDisabled = false;\n\tthis.lookupInputFocused = false;\n\tthis.lookupHighlightFirstItem = config.highlightFirst;\n\n\t// Events\n\tthis.$input.on( {\n\t\tfocus: this.onLookupInputFocus.bind( this ),\n\t\tblur: this.onLookupInputBlur.bind( this ),\n\t\tmousedown: this.onLookupInputMouseDown.bind( this )\n\t} );\n\tthis.connect( this, { change: 'onLookupInputChange' } );\n\tthis.lookupMenu.connect( this, {\n\t\ttoggle: 'onLookupMenuToggle',\n\t\tchoose: 'onLookupMenuItemChoose'\n\t} );\n\n\t// Initialization\n\tthis.$input.attr( {\n\t\trole: 'combobox',\n\t\t'aria-expanded': 'false',\n\t\t'aria-owns': this.lookupMenu.getElementId(),\n\t\t'aria-autocomplete': 'list'\n\t} );\n\tthis.$element.addClass( 'oo-ui-lookupElement' );\n\tthis.lookupMenu.$element.addClass( 'oo-ui-lookupElement-menu' );\n\tthis.$overlay.append( this.lookupMenu.$element );\n};\n\n/* Setup */\n\nOO.mixinClass( OO.ui.mixin.LookupElement, OO.ui.mixin.RequestManager );\n\n/* Methods */\n\n/**\n * Handle input focus event.\n *\n * @protected\n * @param {jQuery.Event} e Input focus event\n */\nOO.ui.mixin.LookupElement.prototype.onLookupInputFocus = function () {\n\tthis.lookupInputFocused = true;\n\tthis.populateLookupMenu();\n};\n\n/**\n * Handle input blur event.\n *\n * @protected\n * @param {jQuery.Event} e Input blur event\n */\nOO.ui.mixin.LookupElement.prototype.onLookupInputBlur = function () {\n\tthis.closeLookupMenu();\n\tthis.lookupInputFocused = false;\n};\n\n/**\n * Handle input mouse down event.\n *\n * @protected\n * @param {jQuery.Event} e Input mouse down event\n */\nOO.ui.mixin.LookupElement.prototype.onLookupInputMouseDown = function () {\n\t// Only open the menu if the input was already focused.\n\t// This way we allow the user to open the menu again after closing it with Esc\n\t// by clicking in the input. Opening (and populating) the menu when initially\n\t// clicking into the input is handled by the focus handler.\n\tif ( this.lookupInputFocused && !this.lookupMenu.isVisible() ) {\n\t\tthis.populateLookupMenu();\n\t}\n};\n\n/**\n * Handle input change event.\n *\n * @protected\n * @param {string} value New input value\n */\nOO.ui.mixin.LookupElement.prototype.onLookupInputChange = function () {\n\tif ( this.lookupInputFocused ) {\n\t\tthis.populateLookupMenu();\n\t}\n};\n\n/**\n * Handle the lookup menu being shown/hidden.\n *\n * @protected\n * @param {boolean} visible Whether the lookup menu is now visible.\n */\nOO.ui.mixin.LookupElement.prototype.onLookupMenuToggle = function ( visible ) {\n\tif ( !visible ) {\n\t\t// When the menu is hidden, abort any active request and clear the menu.\n\t\t// This has to be done here in addition to closeLookupMenu(), because\n\t\t// MenuSelectWidget will close itself when the user presses Esc.\n\t\tthis.abortLookupRequest();\n\t\tthis.lookupMenu.clearItems();\n\t}\n};\n\n/**\n * Handle menu item 'choose' event, updating the text input value to the value of the clicked item.\n *\n * @protected\n * @param {OO.ui.MenuOptionWidget} item Selected item\n */\nOO.ui.mixin.LookupElement.prototype.onLookupMenuItemChoose = function ( item ) {\n\tthis.setValue( item.getData() );\n};\n\n/**\n * Get lookup menu.\n *\n * @private\n * @return {OO.ui.MenuSelectWidget}\n */\nOO.ui.mixin.LookupElement.prototype.getLookupMenu = function () {\n\treturn this.lookupMenu;\n};\n\n/**\n * Disable or re-enable lookups.\n *\n * When lookups are disabled, calls to #populateLookupMenu will be ignored.\n *\n * @param {boolean} disabled Disable lookups\n */\nOO.ui.mixin.LookupElement.prototype.setLookupsDisabled = function ( disabled ) {\n\tthis.lookupsDisabled = !!disabled;\n};\n\n/**\n * Open the menu. If there are no entries in the menu, this does nothing.\n *\n * @private\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.LookupElement.prototype.openLookupMenu = function () {\n\tif ( !this.lookupMenu.isEmpty() ) {\n\t\tthis.lookupMenu.toggle( true );\n\t}\n\treturn this;\n};\n\n/**\n * Close the menu, empty it, and abort any pending request.\n *\n * @private\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.LookupElement.prototype.closeLookupMenu = function () {\n\tthis.lookupMenu.toggle( false );\n\tthis.abortLookupRequest();\n\tthis.lookupMenu.clearItems();\n\treturn this;\n};\n\n/**\n * Request menu items based on the input's current value, and when they arrive,\n * populate the menu with these items and show the menu.\n *\n * If lookups have been disabled with #setLookupsDisabled, this function does nothing.\n *\n * @private\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.LookupElement.prototype.populateLookupMenu = function () {\n\tvar widget = this,\n\t\tvalue = this.getValue();\n\n\tif ( this.lookupsDisabled || this.isReadOnly() ) {\n\t\treturn;\n\t}\n\n\t// If the input is empty, clear the menu, unless suggestions when empty are allowed.\n\tif ( !this.allowSuggestionsWhenEmpty && value === '' ) {\n\t\tthis.closeLookupMenu();\n\t// Skip population if there is already a request pending for the current value\n\t} else if ( value !== this.lookupQuery ) {\n\t\tthis.getLookupMenuItems()\n\t\t\t.done( function ( items ) {\n\t\t\t\twidget.lookupMenu.clearItems();\n\t\t\t\tif ( items.length ) {\n\t\t\t\t\twidget.lookupMenu\n\t\t\t\t\t\t.addItems( items )\n\t\t\t\t\t\t.toggle( true );\n\t\t\t\t\twidget.initializeLookupMenuSelection();\n\t\t\t\t} else {\n\t\t\t\t\twidget.lookupMenu.toggle( false );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.fail( function () {\n\t\t\t\twidget.lookupMenu.clearItems();\n\t\t\t\twidget.lookupMenu.toggle( false );\n\t\t\t} );\n\t}\n\n\treturn this;\n};\n\n/**\n * Highlight the first selectable item in the menu, if configured.\n *\n * @private\n * @chainable\n */\nOO.ui.mixin.LookupElement.prototype.initializeLookupMenuSelection = function () {\n\tif ( this.lookupHighlightFirstItem && !this.lookupMenu.findSelectedItem() ) {\n\t\tthis.lookupMenu.highlightItem( this.lookupMenu.findFirstSelectableItem() );\n\t}\n};\n\n/**\n * Get lookup menu items for the current query.\n *\n * @private\n * @return {jQuery.Promise} Promise object which will be passed menu items as the first argument of\n *   the done event. If the request was aborted to make way for a subsequent request, this promise\n *   will not be rejected: it will remain pending forever.\n */\nOO.ui.mixin.LookupElement.prototype.getLookupMenuItems = function () {\n\treturn this.getRequestData().then( function ( data ) {\n\t\treturn this.getLookupMenuOptionsFromData( data );\n\t}.bind( this ) );\n};\n\n/**\n * Abort the currently pending lookup request, if any.\n *\n * @private\n */\nOO.ui.mixin.LookupElement.prototype.abortLookupRequest = function () {\n\tthis.abortRequest();\n};\n\n/**\n * Get a new request object of the current lookup query value.\n *\n * @protected\n * @method\n * @abstract\n * @return {jQuery.Promise} jQuery AJAX object, or promise object with an .abort() method\n */\nOO.ui.mixin.LookupElement.prototype.getLookupRequest = null;\n\n/**\n * Pre-process data returned by the request from #getLookupRequest.\n *\n * The return value of this function will be cached, and any further queries for the given value\n * will use the cache rather than doing API requests.\n *\n * @protected\n * @method\n * @abstract\n * @param {Mixed} response Response from server\n * @return {Mixed} Cached result data\n */\nOO.ui.mixin.LookupElement.prototype.getLookupCacheDataFromResponse = null;\n\n/**\n * Get a list of menu option widgets from the (possibly cached) data returned by\n * #getLookupCacheDataFromResponse.\n *\n * @protected\n * @method\n * @abstract\n * @param {Mixed} data Cached result data, usually an array\n * @return {OO.ui.MenuOptionWidget[]} Menu items\n */\nOO.ui.mixin.LookupElement.prototype.getLookupMenuOptionsFromData = null;\n\n/**\n * Set the read-only state of the widget.\n *\n * This will also disable/enable the lookups functionality.\n *\n * @param {boolean} readOnly Make input read-only\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.LookupElement.prototype.setReadOnly = function ( readOnly ) {\n\t// Parent method\n\t// Note: Calling #setReadOnly this way assumes this is mixed into an OO.ui.TextInputWidget\n\tOO.ui.TextInputWidget.prototype.setReadOnly.call( this, readOnly );\n\n\t// During construction, #setReadOnly is called before the OO.ui.mixin.LookupElement constructor\n\tif ( this.isReadOnly() && this.lookupMenu ) {\n\t\tthis.closeLookupMenu();\n\t}\n\n\treturn this;\n};\n\n/**\n * @inheritdoc OO.ui.mixin.RequestManager\n */\nOO.ui.mixin.LookupElement.prototype.getRequestQuery = function () {\n\treturn this.getValue();\n};\n\n/**\n * @inheritdoc OO.ui.mixin.RequestManager\n */\nOO.ui.mixin.LookupElement.prototype.getRequest = function () {\n\treturn this.getLookupRequest();\n};\n\n/**\n * @inheritdoc OO.ui.mixin.RequestManager\n */\nOO.ui.mixin.LookupElement.prototype.getRequestCacheDataFromResponse = function ( response ) {\n\treturn this.getLookupCacheDataFromResponse( response );\n};\n","/**\n * TabPanelLayouts are used within {@link OO.ui.IndexLayout index layouts} to create tab panels that\n * users can select and display from the index's optional {@link OO.ui.TabSelectWidget tab}\n * navigation. TabPanels are usually not instantiated directly, rather extended to include the\n * required content and functionality.\n *\n * Each tab panel must have a unique symbolic name, which is passed to the constructor. In addition,\n * the tab panel's tab item is customized (with a label) using the #setupTabItem method. See\n * {@link OO.ui.IndexLayout IndexLayout} for an example.\n *\n * @class\n * @extends OO.ui.PanelLayout\n *\n * @constructor\n * @param {string} name Unique symbolic name of tab panel\n * @param {Object} [config] Configuration options\n * @cfg {jQuery|string|Function|OO.ui.HtmlSnippet} [label] Label for tab panel's tab\n */\nOO.ui.TabPanelLayout = function OoUiTabPanelLayout( name, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( name ) && config === undefined ) {\n\t\tconfig = name;\n\t\tname = config.name;\n\t}\n\n\t// Configuration initialization\n\tconfig = $.extend( { scrollable: true }, config );\n\n\t// Parent constructor\n\tOO.ui.TabPanelLayout.parent.call( this, config );\n\n\t// Properties\n\tthis.name = name;\n\tthis.label = config.label;\n\tthis.tabItem = null;\n\tthis.active = false;\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-tabPanelLayout' )\n\t\t.attr( 'role', 'tabpanel' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.TabPanelLayout, OO.ui.PanelLayout );\n\n/* Events */\n\n/**\n * An 'active' event is emitted when the tab panel becomes active. Tab panels become active when they are\n * shown in a index layout that is configured to display only one tab panel at a time.\n *\n * @event active\n * @param {boolean} active Tab panel is active\n */\n\n/* Methods */\n\n/**\n * Get the symbolic name of the tab panel.\n *\n * @return {string} Symbolic name of tab panel\n */\nOO.ui.TabPanelLayout.prototype.getName = function () {\n\treturn this.name;\n};\n\n/**\n * Check if tab panel is active.\n *\n * Tab panels become active when they are shown in a {@link OO.ui.IndexLayout index layout} that is configured to\n * display only one tab panel at a time. Additional CSS is applied to the tab panel's tab item to reflect the\n * active state.\n *\n * @return {boolean} Tab panel is active\n */\nOO.ui.TabPanelLayout.prototype.isActive = function () {\n\treturn this.active;\n};\n\n/**\n * Get tab item.\n *\n * The tab item allows users to access the tab panel from the index's tab\n * navigation. The tab item itself can be customized (with a label, level, etc.) using the #setupTabItem method.\n *\n * @return {OO.ui.TabOptionWidget|null} Tab option widget\n */\nOO.ui.TabPanelLayout.prototype.getTabItem = function () {\n\treturn this.tabItem;\n};\n\n/**\n * Set or unset the tab item.\n *\n * Specify a {@link OO.ui.TabOptionWidget tab option} to set it,\n * or `null` to clear the tab item. To customize the tab item itself (e.g., to set a label or tab\n * level), use #setupTabItem instead of this method.\n *\n * @param {OO.ui.TabOptionWidget|null} tabItem Tab option widget, null to clear\n * @chainable\n * @return {OO.ui.TabPanelLayout} The layout, for chaining\n */\nOO.ui.TabPanelLayout.prototype.setTabItem = function ( tabItem ) {\n\tthis.tabItem = tabItem || null;\n\tif ( tabItem ) {\n\t\tthis.setupTabItem();\n\t}\n\treturn this;\n};\n\n/**\n * Set up the tab item.\n *\n * Use this method to customize the tab item (e.g., to add a label or tab level). To set or unset\n * the tab item itself (with a {@link OO.ui.TabOptionWidget tab option} or `null`), use\n * the #setTabItem method instead.\n *\n * @param {OO.ui.TabOptionWidget} tabItem Tab option widget to set up\n * @chainable\n * @return {OO.ui.TabPanelLayout} The layout, for chaining\n */\nOO.ui.TabPanelLayout.prototype.setupTabItem = function () {\n\tthis.$element.attr( 'aria-labelledby', this.tabItem.getElementId() );\n\n\tthis.tabItem.$element.attr( 'aria-controls', this.getElementId() );\n\n\tif ( this.label ) {\n\t\tthis.tabItem.setLabel( this.label );\n\t}\n\treturn this;\n};\n\n/**\n * Set the tab panel to its 'active' state.\n *\n * Tab panels become active when they are shown in a index layout that is configured to display only\n * one tab panel at a time. Additional CSS is applied to the tab item to reflect the tab panel's\n * active state. Outside of the index context, setting the active state on a tab panel does nothing.\n *\n * @param {boolean} active Tab panel is active\n * @fires active\n */\nOO.ui.TabPanelLayout.prototype.setActive = function ( active ) {\n\tactive = !!active;\n\n\tif ( active !== this.active ) {\n\t\tthis.active = active;\n\t\tthis.$element.toggleClass( 'oo-ui-tabPanelLayout-active', this.active );\n\t\tthis.emit( 'active', this.active );\n\t}\n};\n","/**\n * PageLayouts are used within {@link OO.ui.BookletLayout booklet layouts} to create pages that users can select and display\n * from the booklet's optional {@link OO.ui.OutlineSelectWidget outline} navigation. Pages are usually not instantiated directly,\n * rather extended to include the required content and functionality.\n *\n * Each page must have a unique symbolic name, which is passed to the constructor. In addition, the page's outline\n * item is customized (with a label, outline level, etc.) using the #setupOutlineItem method. See\n * {@link OO.ui.BookletLayout BookletLayout} for an example.\n *\n * @class\n * @extends OO.ui.PanelLayout\n *\n * @constructor\n * @param {string} name Unique symbolic name of page\n * @param {Object} [config] Configuration options\n */\nOO.ui.PageLayout = function OoUiPageLayout( name, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( name ) && config === undefined ) {\n\t\tconfig = name;\n\t\tname = config.name;\n\t}\n\n\t// Configuration initialization\n\tconfig = $.extend( { scrollable: true }, config );\n\n\t// Parent constructor\n\tOO.ui.PageLayout.parent.call( this, config );\n\n\t// Properties\n\tthis.name = name;\n\tthis.outlineItem = null;\n\tthis.active = false;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-pageLayout' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.PageLayout, OO.ui.PanelLayout );\n\n/* Events */\n\n/**\n * An 'active' event is emitted when the page becomes active. Pages become active when they are\n * shown in a booklet layout that is configured to display only one page at a time.\n *\n * @event active\n * @param {boolean} active Page is active\n */\n\n/* Methods */\n\n/**\n * Get the symbolic name of the page.\n *\n * @return {string} Symbolic name of page\n */\nOO.ui.PageLayout.prototype.getName = function () {\n\treturn this.name;\n};\n\n/**\n * Check if page is active.\n *\n * Pages become active when they are shown in a {@link OO.ui.BookletLayout booklet layout} that is configured to display\n * only one page at a time. Additional CSS is applied to the page's outline item to reflect the active state.\n *\n * @return {boolean} Page is active\n */\nOO.ui.PageLayout.prototype.isActive = function () {\n\treturn this.active;\n};\n\n/**\n * Get outline item.\n *\n * The outline item allows users to access the page from the booklet's outline\n * navigation. The outline item itself can be customized (with a label, level, etc.) using the #setupOutlineItem method.\n *\n * @return {OO.ui.OutlineOptionWidget|null} Outline option widget\n */\nOO.ui.PageLayout.prototype.getOutlineItem = function () {\n\treturn this.outlineItem;\n};\n\n/**\n * Set or unset the outline item.\n *\n * Specify an {@link OO.ui.OutlineOptionWidget outline option} to set it,\n * or `null` to clear the outline item. To customize the outline item itself (e.g., to set a label or outline\n * level), use #setupOutlineItem instead of this method.\n *\n * @param {OO.ui.OutlineOptionWidget|null} outlineItem Outline option widget, null to clear\n * @chainable\n * @return {OO.ui.PageLayout} The layout, for chaining\n */\nOO.ui.PageLayout.prototype.setOutlineItem = function ( outlineItem ) {\n\tthis.outlineItem = outlineItem || null;\n\tif ( outlineItem ) {\n\t\tthis.setupOutlineItem();\n\t}\n\treturn this;\n};\n\n/**\n * Set up the outline item.\n *\n * Use this method to customize the outline item (e.g., to add a label or outline level). To set or unset\n * the outline item itself (with an {@link OO.ui.OutlineOptionWidget outline option} or `null`), use\n * the #setOutlineItem method instead.\n *\n * @param {OO.ui.OutlineOptionWidget} outlineItem Outline option widget to set up\n * @chainable\n * @return {OO.ui.PageLayout} The layout, for chaining\n */\nOO.ui.PageLayout.prototype.setupOutlineItem = function () {\n\treturn this;\n};\n\n/**\n * Set the page to its 'active' state.\n *\n * Pages become active when they are shown in a booklet layout that is configured to display only one page at a time. Additional\n * CSS is applied to the outline item to reflect the page's active state. Outside of the booklet\n * context, setting the active state on a page does nothing.\n *\n * @param {boolean} active Page is active\n * @fires active\n */\nOO.ui.PageLayout.prototype.setActive = function ( active ) {\n\tactive = !!active;\n\n\tif ( active !== this.active ) {\n\t\tthis.active = active;\n\t\tthis.$element.toggleClass( 'oo-ui-pageLayout-active', active );\n\t\tthis.emit( 'active', this.active );\n\t}\n};\n","/**\n * StackLayouts contain a series of {@link OO.ui.PanelLayout panel layouts}. By default, only one panel is displayed\n * at a time, though the stack layout can also be configured to show all contained panels, one after another,\n * by setting the #continuous option to 'true'.\n *\n *     @example\n *     // A stack layout with two panels, configured to be displayed continuously\n *     var myStack = new OO.ui.StackLayout( {\n *         items: [\n *             new OO.ui.PanelLayout( {\n *                 $content: $( '<p>Panel One</p>' ),\n *                 padded: true,\n *                 framed: true\n *             } ),\n *             new OO.ui.PanelLayout( {\n *                 $content: $( '<p>Panel Two</p>' ),\n *                 padded: true,\n *                 framed: true\n *             } )\n *         ],\n *         continuous: true\n *     } );\n *     $( 'body' ).append( myStack.$element );\n *\n * @class\n * @extends OO.ui.PanelLayout\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [continuous=false] Show all panels, one after another. By default, only one panel is displayed at a time.\n * @cfg {OO.ui.Layout[]} [items] Panel layouts to add to the stack layout.\n */\nOO.ui.StackLayout = function OoUiStackLayout( config ) {\n\t// Configuration initialization\n\t// Make the layout scrollable in continuous mode, otherwise each\n\t// panel is responsible for its own scrolling.\n\tconfig = $.extend( { scrollable: !!( config && config.continuous ) }, config );\n\n\t// Parent constructor\n\tOO.ui.StackLayout.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );\n\n\t// Properties\n\tthis.currentItem = null;\n\tthis.continuous = !!config.continuous;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-stackLayout' );\n\tif ( this.continuous ) {\n\t\tthis.$element.addClass( 'oo-ui-stackLayout-continuous' );\n\t\tthis.$element.on( 'scroll', OO.ui.debounce( this.onScroll.bind( this ), 250 ) );\n\t}\n\tif ( Array.isArray( config.items ) ) {\n\t\tthis.addItems( config.items );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.StackLayout, OO.ui.PanelLayout );\nOO.mixinClass( OO.ui.StackLayout, OO.ui.mixin.GroupElement );\n\n/* Events */\n\n/**\n * A 'set' event is emitted when panels are {@link #addItems added}, {@link #removeItems removed},\n * {@link #clearItems cleared} or {@link #setItem displayed}.\n *\n * @event set\n * @param {OO.ui.Layout|null} item Current panel or `null` if no panel is shown\n */\n\n/**\n * When used in continuous mode, this event is emitted when the user scrolls down\n * far enough such that currentItem is no longer visible.\n *\n * @event visibleItemChange\n * @param {OO.ui.PanelLayout} panel The next visible item in the layout\n */\n\n/* Methods */\n\n/**\n * Handle scroll events from the layout element\n *\n * @param {jQuery.Event} e\n * @fires visibleItemChange\n */\nOO.ui.StackLayout.prototype.onScroll = function () {\n\tvar currentRect,\n\t\tlen = this.items.length,\n\t\tcurrentIndex = this.items.indexOf( this.currentItem ),\n\t\tnewIndex = currentIndex,\n\t\tcontainerRect = this.$element[ 0 ].getBoundingClientRect();\n\n\tif ( !containerRect || ( !containerRect.top && !containerRect.bottom ) ) {\n\t\t// Can't get bounding rect, possibly not attached.\n\t\treturn;\n\t}\n\n\tfunction getRect( item ) {\n\t\treturn item.$element[ 0 ].getBoundingClientRect();\n\t}\n\n\tfunction isVisible( item ) {\n\t\tvar rect = getRect( item );\n\t\treturn rect.bottom > containerRect.top && rect.top < containerRect.bottom;\n\t}\n\n\tcurrentRect = getRect( this.currentItem );\n\n\tif ( currentRect.bottom < containerRect.top ) {\n\t\t// Scrolled down past current item\n\t\twhile ( ++newIndex < len ) {\n\t\t\tif ( isVisible( this.items[ newIndex ] ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else if ( currentRect.top > containerRect.bottom ) {\n\t\t// Scrolled up past current item\n\t\twhile ( --newIndex >= 0 ) {\n\t\t\tif ( isVisible( this.items[ newIndex ] ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( newIndex !== currentIndex ) {\n\t\tthis.emit( 'visibleItemChange', this.items[ newIndex ] );\n\t}\n};\n\n/**\n * Get the current panel.\n *\n * @return {OO.ui.Layout|null}\n */\nOO.ui.StackLayout.prototype.getCurrentItem = function () {\n\treturn this.currentItem;\n};\n\n/**\n * Unset the current item.\n *\n * @private\n * @param {OO.ui.StackLayout} layout\n * @fires set\n */\nOO.ui.StackLayout.prototype.unsetCurrentItem = function () {\n\tvar prevItem = this.currentItem;\n\tif ( prevItem === null ) {\n\t\treturn;\n\t}\n\n\tthis.currentItem = null;\n\tthis.emit( 'set', null );\n};\n\n/**\n * Add panel layouts to the stack layout.\n *\n * Panels will be added to the end of the stack layout array unless the optional index parameter specifies a different\n * insertion point. Adding a panel that is already in the stack will move it to the end of the array or the point specified\n * by the index.\n *\n * @param {OO.ui.Layout[]} items Panels to add\n * @param {number} [index] Index of the insertion point\n * @chainable\n * @return {OO.ui.StackLayout} The layout, for chaining\n */\nOO.ui.StackLayout.prototype.addItems = function ( items, index ) {\n\t// Update the visibility\n\tthis.updateHiddenState( items, this.currentItem );\n\n\t// Mixin method\n\tOO.ui.mixin.GroupElement.prototype.addItems.call( this, items, index );\n\n\tif ( !this.currentItem && items.length ) {\n\t\tthis.setItem( items[ 0 ] );\n\t}\n\n\treturn this;\n};\n\n/**\n * Remove the specified panels from the stack layout.\n *\n * Removed panels are detached from the DOM, not removed, so that they may be reused. To remove all panels,\n * you may wish to use the #clearItems method instead.\n *\n * @param {OO.ui.Layout[]} items Panels to remove\n * @chainable\n * @return {OO.ui.StackLayout} The layout, for chaining\n * @fires set\n */\nOO.ui.StackLayout.prototype.removeItems = function ( items ) {\n\t// Mixin method\n\tOO.ui.mixin.GroupElement.prototype.removeItems.call( this, items );\n\n\tif ( items.indexOf( this.currentItem ) !== -1 ) {\n\t\tif ( this.items.length ) {\n\t\t\tthis.setItem( this.items[ 0 ] );\n\t\t} else {\n\t\t\tthis.unsetCurrentItem();\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Clear all panels from the stack layout.\n *\n * Cleared panels are detached from the DOM, not removed, so that they may be reused. To remove only\n * a subset of panels, use the #removeItems method.\n *\n * @chainable\n * @return {OO.ui.StackLayout} The layout, for chaining\n * @fires set\n */\nOO.ui.StackLayout.prototype.clearItems = function () {\n\tthis.unsetCurrentItem();\n\tOO.ui.mixin.GroupElement.prototype.clearItems.call( this );\n\n\treturn this;\n};\n\n/**\n * Show the specified panel.\n *\n * If another panel is currently displayed, it will be hidden.\n *\n * @param {OO.ui.Layout} item Panel to show\n * @chainable\n * @return {OO.ui.StackLayout} The layout, for chaining\n * @fires set\n */\nOO.ui.StackLayout.prototype.setItem = function ( item ) {\n\tif ( item !== this.currentItem ) {\n\t\tthis.updateHiddenState( this.items, item );\n\n\t\tif ( this.items.indexOf( item ) !== -1 ) {\n\t\t\tthis.currentItem = item;\n\t\t\tthis.emit( 'set', item );\n\t\t} else {\n\t\t\tthis.unsetCurrentItem();\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Reset the scroll offset of all panels, or the container if continuous\n *\n * @inheritdoc\n */\nOO.ui.StackLayout.prototype.resetScroll = function () {\n\tif ( this.continuous ) {\n\t\t// Parent method\n\t\treturn OO.ui.StackLayout.parent.prototype.resetScroll.call( this );\n\t}\n\t// Reset each panel\n\tthis.getItems().forEach( function ( panel ) {\n\t\tvar hidden = panel.$element.hasClass( 'oo-ui-element-hidden' );\n\t\t// Scroll can only be reset when panel is visible\n\t\tpanel.$element.removeClass( 'oo-ui-element-hidden' );\n\t\tpanel.resetScroll();\n\t\tif ( hidden ) {\n\t\t\tpanel.$element.addClass( 'oo-ui-element-hidden' );\n\t\t}\n\t} );\n\n\treturn this;\n};\n\n/**\n * Update the visibility of all items in case of non-continuous view.\n *\n * Ensure all items are hidden except for the selected one.\n * This method does nothing when the stack is continuous.\n *\n * @private\n * @param {OO.ui.Layout[]} items Item list iterate over\n * @param {OO.ui.Layout} [selectedItem] Selected item to show\n */\nOO.ui.StackLayout.prototype.updateHiddenState = function ( items, selectedItem ) {\n\tvar i, len;\n\n\tif ( !this.continuous ) {\n\t\tfor ( i = 0, len = items.length; i < len; i++ ) {\n\t\t\tif ( !selectedItem || selectedItem !== items[ i ] ) {\n\t\t\t\titems[ i ].$element.addClass( 'oo-ui-element-hidden' );\n\t\t\t\titems[ i ].$element.attr( 'aria-hidden', 'true' );\n\t\t\t}\n\t\t}\n\t\tif ( selectedItem ) {\n\t\t\tselectedItem.$element.removeClass( 'oo-ui-element-hidden' );\n\t\t\tselectedItem.$element.removeAttr( 'aria-hidden' );\n\t\t}\n\t}\n};\n","/**\n * MenuLayouts combine a menu and a content {@link OO.ui.PanelLayout panel}. The menu is positioned relative to the content (after, before, top, or bottom)\n * and its size is customized with the #menuSize config. The content area will fill all remaining space.\n *\n *     @example\n *     var menuLayout,\n *         menuPanel = new OO.ui.PanelLayout( { padded: true, expanded: true, scrollable: true } ),\n *         contentPanel = new OO.ui.PanelLayout( { padded: true, expanded: true, scrollable: true } ),\n *         select = new OO.ui.SelectWidget( {\n *             items: [\n *                 new OO.ui.OptionWidget( {\n *                     data: 'before',\n *                     label: 'Before'\n *                 } ),\n *                 new OO.ui.OptionWidget( {\n *                     data: 'after',\n *                     label: 'After'\n *                 } ),\n *                 new OO.ui.OptionWidget( {\n *                     data: 'top',\n *                     label: 'Top'\n *                 } ),\n *                 new OO.ui.OptionWidget( {\n *                     data: 'bottom',\n *                     label: 'Bottom'\n *                 } )\n *              ]\n *         } ).on( 'select', function ( item ) {\n *            menuLayout.setMenuPosition( item.getData() );\n *         } );\n *\n *     menuLayout = new OO.ui.MenuLayout( {\n *         position: 'top',\n *         menuPanel: menuPanel,\n *         contentPanel: contentPanel\n *     } )\n *     menuLayout.$menu.append(\n *         menuPanel.$element.append( '<b>Menu panel</b>', select.$element )\n *     );\n *     menuLayout.$content.append(\n *         contentPanel.$element.append( '<b>Content panel</b>', '<p>Note that the menu is positioned relative to the content panel: top, bottom, after, before.</p>')\n *     );\n *     $( 'body' ).append( menuLayout.$element );\n *\n * If menu size needs to be overridden, it can be accomplished using CSS similar to the snippet\n * below. MenuLayout's CSS will override the appropriate values with 'auto' or '0' to display the\n * menu correctly. If `menuPosition` is known beforehand, CSS rules corresponding to other positions\n * may be omitted.\n *\n *     .oo-ui-menuLayout-menu {\n *         width: 200px;\n *         height: 200px;\n *     }\n *\n *     .oo-ui-menuLayout-content {\n *         top: 200px;\n *         left: 200px;\n *         right: 200px;\n *         bottom: 200px;\n *     }\n *\n * @class\n * @extends OO.ui.Layout\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.ui.PanelLayout} [menuPanel] Menu panel\n * @cfg {OO.ui.PanelLayout} [contentPanel] Content panel\n * @cfg {boolean} [expanded=true] Expand the layout to fill the entire parent element.\n * @cfg {boolean} [showMenu=true] Show menu\n * @cfg {string} [menuPosition='before'] Position of menu: `top`, `after`, `bottom` or `before`\n */\nOO.ui.MenuLayout = function OoUiMenuLayout( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( {\n\t\texpanded: true,\n\t\tshowMenu: true,\n\t\tmenuPosition: 'before'\n\t}, config );\n\n\t// Parent constructor\n\tOO.ui.MenuLayout.parent.call( this, config );\n\n\tthis.menuPanel = null;\n\tthis.contentPanel = null;\n\tthis.expanded = !!config.expanded;\n\t/**\n\t * Menu DOM node\n\t *\n\t * @property {jQuery}\n\t */\n\tthis.$menu = $( '<div>' );\n\t/**\n\t * Content DOM node\n\t *\n\t * @property {jQuery}\n\t */\n\tthis.$content = $( '<div>' );\n\n\t// Initialization\n\tthis.$menu\n\t\t.addClass( 'oo-ui-menuLayout-menu' );\n\tthis.$content.addClass( 'oo-ui-menuLayout-content' );\n\tthis.$element\n\t\t.addClass( 'oo-ui-menuLayout' );\n\tif ( config.expanded ) {\n\t\tthis.$element.addClass( 'oo-ui-menuLayout-expanded' );\n\t} else {\n\t\tthis.$element.addClass( 'oo-ui-menuLayout-static' );\n\t}\n\tif ( config.menuPanel ) {\n\t\tthis.setMenuPanel( config.menuPanel );\n\t}\n\tif ( config.contentPanel ) {\n\t\tthis.setContentPanel( config.contentPanel );\n\t}\n\tthis.setMenuPosition( config.menuPosition );\n\tthis.toggleMenu( config.showMenu );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MenuLayout, OO.ui.Layout );\n\n/* Methods */\n\n/**\n * Toggle menu.\n *\n * @param {boolean} showMenu Show menu, omit to toggle\n * @chainable\n * @return {OO.ui.MenuLayout} The layout, for chaining\n */\nOO.ui.MenuLayout.prototype.toggleMenu = function ( showMenu ) {\n\tshowMenu = showMenu === undefined ? !this.showMenu : !!showMenu;\n\n\tif ( this.showMenu !== showMenu ) {\n\t\tthis.showMenu = showMenu;\n\t\tthis.$element\n\t\t\t.toggleClass( 'oo-ui-menuLayout-showMenu', this.showMenu )\n\t\t\t.toggleClass( 'oo-ui-menuLayout-hideMenu', !this.showMenu );\n\t\tthis.$menu.attr( 'aria-hidden', this.showMenu ? 'false' : 'true' );\n\t}\n\n\treturn this;\n};\n\n/**\n * Check if menu is visible\n *\n * @return {boolean} Menu is visible\n */\nOO.ui.MenuLayout.prototype.isMenuVisible = function () {\n\treturn this.showMenu;\n};\n\n/**\n * Set menu position.\n *\n * @param {string} position Position of menu, either `top`, `after`, `bottom` or `before`\n * @throws {Error} If position value is not supported\n * @chainable\n * @return {OO.ui.MenuLayout} The layout, for chaining\n */\nOO.ui.MenuLayout.prototype.setMenuPosition = function ( position ) {\n\tthis.$element.removeClass( 'oo-ui-menuLayout-' + this.menuPosition );\n\tthis.menuPosition = position;\n\tif ( this.menuPosition === 'top' || this.menuPosition === 'before' ) {\n\t\tthis.$element.append( this.$menu, this.$content );\n\t} else {\n\t\tthis.$element.append( this.$content, this.$menu );\n\t}\n\tthis.$element.addClass( 'oo-ui-menuLayout-' + position );\n\n\treturn this;\n};\n\n/**\n * Get menu position.\n *\n * @return {string} Menu position\n */\nOO.ui.MenuLayout.prototype.getMenuPosition = function () {\n\treturn this.menuPosition;\n};\n\n/**\n * Set the menu panel.\n *\n * @param {OO.ui.PanelLayout} menuPanel Menu panel\n */\nOO.ui.MenuLayout.prototype.setMenuPanel = function ( menuPanel ) {\n\tthis.menuPanel = menuPanel;\n\tthis.$menu.append( this.menuPanel.$element );\n};\n\n/**\n * Set the content panel.\n *\n * @param {OO.ui.PanelLayout} contentPanel Content panel\n */\nOO.ui.MenuLayout.prototype.setContentPanel = function ( contentPanel ) {\n\tthis.contentPanel = contentPanel;\n\tthis.$content.append( this.contentPanel.$element );\n};\n\n/**\n * Clear the menu panel.\n */\nOO.ui.MenuLayout.prototype.clearMenuPanel = function () {\n\tthis.menuPanel = null;\n\tthis.$menu.empty();\n};\n\n/**\n * Clear the content panel.\n */\nOO.ui.MenuLayout.prototype.clearContentPanel = function () {\n\tthis.contentPanel = null;\n\tthis.$content.empty();\n};\n\n/**\n * Reset the scroll offset of all panels and the tab select widget\n *\n * @inheritdoc\n */\nOO.ui.MenuLayout.prototype.resetScroll = function () {\n\tif ( this.menuPanel ) {\n\t\tthis.menuPanel.resetScroll();\n\t}\n\tif ( this.contentPanel ) {\n\t\tthis.contentPanel.resetScroll();\n\t}\n\n\treturn this;\n};\n","/**\n * BookletLayouts contain {@link OO.ui.PageLayout page layouts} as well as\n * an {@link OO.ui.OutlineSelectWidget outline} that allows users to easily navigate\n * through the pages and select which one to display. By default, only one page is\n * displayed at a time and the outline is hidden. When a user navigates to a new page,\n * the booklet layout automatically focuses on the first focusable element, unless the\n * default setting is changed. Optionally, booklets can be configured to show\n * {@link OO.ui.OutlineControlsWidget controls} for adding, moving, and removing items.\n *\n *     @example\n *     // Example of a BookletLayout that contains two PageLayouts.\n *\n *     function PageOneLayout( name, config ) {\n *         PageOneLayout.parent.call( this, name, config );\n *         this.$element.append( '<p>First page</p><p>(This booklet has an outline, displayed on the left)</p>' );\n *     }\n *     OO.inheritClass( PageOneLayout, OO.ui.PageLayout );\n *     PageOneLayout.prototype.setupOutlineItem = function () {\n *         this.outlineItem.setLabel( 'Page One' );\n *     };\n *\n *     function PageTwoLayout( name, config ) {\n *         PageTwoLayout.parent.call( this, name, config );\n *         this.$element.append( '<p>Second page</p>' );\n *     }\n *     OO.inheritClass( PageTwoLayout, OO.ui.PageLayout );\n *     PageTwoLayout.prototype.setupOutlineItem = function () {\n *         this.outlineItem.setLabel( 'Page Two' );\n *     };\n *\n *     var page1 = new PageOneLayout( 'one' ),\n *         page2 = new PageTwoLayout( 'two' );\n *\n *     var booklet = new OO.ui.BookletLayout( {\n *         outlined: true\n *     } );\n *\n *     booklet.addPages( [ page1, page2 ] );\n *     $( 'body' ).append( booklet.$element );\n *\n * @class\n * @extends OO.ui.MenuLayout\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [continuous=false] Show all pages, one after another\n * @cfg {boolean} [autoFocus=true] Focus on the first focusable element when a new page is displayed. Disabled on mobile.\n * @cfg {boolean} [outlined=false] Show the outline. The outline is used to navigate through the pages of the booklet.\n * @cfg {boolean} [editable=false] Show controls for adding, removing and reordering pages\n */\nOO.ui.BookletLayout = function OoUiBookletLayout( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.BookletLayout.parent.call( this, config );\n\n\t// Properties\n\tthis.currentPageName = null;\n\tthis.pages = {};\n\tthis.ignoreFocus = false;\n\tthis.stackLayout = new OO.ui.StackLayout( {\n\t\tcontinuous: !!config.continuous,\n\t\texpanded: this.expanded\n\t} );\n\tthis.setContentPanel( this.stackLayout );\n\tthis.autoFocus = config.autoFocus === undefined || !!config.autoFocus;\n\tthis.outlineVisible = false;\n\tthis.outlined = !!config.outlined;\n\tif ( this.outlined ) {\n\t\tthis.editable = !!config.editable;\n\t\tthis.outlineControlsWidget = null;\n\t\tthis.outlineSelectWidget = new OO.ui.OutlineSelectWidget();\n\t\tthis.outlinePanel = new OO.ui.PanelLayout( {\n\t\t\texpanded: this.expanded,\n\t\t\tscrollable: true\n\t\t} );\n\t\tthis.setMenuPanel( this.outlinePanel );\n\t\tthis.outlineVisible = true;\n\t\tif ( this.editable ) {\n\t\t\tthis.outlineControlsWidget = new OO.ui.OutlineControlsWidget(\n\t\t\t\tthis.outlineSelectWidget\n\t\t\t);\n\t\t}\n\t}\n\tthis.toggleMenu( this.outlined );\n\n\t// Events\n\tthis.stackLayout.connect( this, { set: 'onStackLayoutSet' } );\n\tif ( this.outlined ) {\n\t\tthis.outlineSelectWidget.connect( this, { select: 'onOutlineSelectWidgetSelect' } );\n\t\tthis.scrolling = false;\n\t\tthis.stackLayout.connect( this, { visibleItemChange: 'onStackLayoutVisibleItemChange' } );\n\t}\n\tif ( this.autoFocus ) {\n\t\t// Event 'focus' does not bubble, but 'focusin' does\n\t\tthis.stackLayout.$element.on( 'focusin', this.onStackLayoutFocus.bind( this ) );\n\t}\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-bookletLayout' );\n\tthis.stackLayout.$element.addClass( 'oo-ui-bookletLayout-stackLayout' );\n\tif ( this.outlined ) {\n\t\tthis.outlinePanel.$element\n\t\t\t.addClass( 'oo-ui-bookletLayout-outlinePanel' )\n\t\t\t.append( this.outlineSelectWidget.$element );\n\t\tif ( this.editable ) {\n\t\t\tthis.outlinePanel.$element\n\t\t\t\t.addClass( 'oo-ui-bookletLayout-outlinePanel-editable' )\n\t\t\t\t.append( this.outlineControlsWidget.$element );\n\t\t}\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.BookletLayout, OO.ui.MenuLayout );\n\n/* Events */\n\n/**\n * A 'set' event is emitted when a page is {@link #setPage set} to be displayed by the booklet layout.\n * @event set\n * @param {OO.ui.PageLayout} page Current page\n */\n\n/**\n * An 'add' event is emitted when pages are {@link #addPages added} to the booklet layout.\n *\n * @event add\n * @param {OO.ui.PageLayout[]} page Added pages\n * @param {number} index Index pages were added at\n */\n\n/**\n * A 'remove' event is emitted when pages are {@link #clearPages cleared} or\n * {@link #removePages removed} from the booklet.\n *\n * @event remove\n * @param {OO.ui.PageLayout[]} pages Removed pages\n */\n\n/* Methods */\n\n/**\n * Handle stack layout focus.\n *\n * @private\n * @param {jQuery.Event} e Focusin event\n */\nOO.ui.BookletLayout.prototype.onStackLayoutFocus = function ( e ) {\n\tvar name, $target;\n\n\t// Find the page that an element was focused within\n\t$target = $( e.target ).closest( '.oo-ui-pageLayout' );\n\tfor ( name in this.pages ) {\n\t\t// Check for page match, exclude current page to find only page changes\n\t\tif ( this.pages[ name ].$element[ 0 ] === $target[ 0 ] && name !== this.currentPageName ) {\n\t\t\tthis.setPage( name );\n\t\t\tbreak;\n\t\t}\n\t}\n};\n\n/**\n * Handle visibleItemChange events from the stackLayout\n *\n * The next visible page is set as the current page by selecting it\n * in the outline\n *\n * @param {OO.ui.PageLayout} page The next visible page in the layout\n */\nOO.ui.BookletLayout.prototype.onStackLayoutVisibleItemChange = function ( page ) {\n\t// Set a flag to so that the resulting call to #onStackLayoutSet doesn't\n\t// try and scroll the item into view again.\n\tthis.scrolling = true;\n\tthis.outlineSelectWidget.selectItemByData( page.getName() );\n\tthis.scrolling = false;\n};\n\n/**\n * Handle stack layout set events.\n *\n * @private\n * @param {OO.ui.PanelLayout|null} page The page panel that is now the current panel\n */\nOO.ui.BookletLayout.prototype.onStackLayoutSet = function ( page ) {\n\tvar promise, layout = this;\n\t// If everything is unselected, do nothing\n\tif ( !page ) {\n\t\treturn;\n\t}\n\t// For continuous BookletLayouts, scroll the selected page into view first\n\tif ( this.stackLayout.continuous && !this.scrolling ) {\n\t\tpromise = page.scrollElementIntoView();\n\t} else {\n\t\tpromise = $.Deferred().resolve();\n\t}\n\t// Focus the first element on the newly selected panel.\n\t// Don't focus if the page was set by scrolling.\n\tif ( this.autoFocus && !OO.ui.isMobile() && !this.scrolling ) {\n\t\tpromise.done( function () {\n\t\t\tlayout.focus();\n\t\t} );\n\t}\n};\n\n/**\n * Focus the first input in the current page.\n *\n * If no page is selected, the first selectable page will be selected.\n * If the focus is already in an element on the current page, nothing will happen.\n *\n * @param {number} [itemIndex] A specific item to focus on\n */\nOO.ui.BookletLayout.prototype.focus = function ( itemIndex ) {\n\tvar page,\n\t\titems = this.stackLayout.getItems();\n\n\tif ( itemIndex !== undefined && items[ itemIndex ] ) {\n\t\tpage = items[ itemIndex ];\n\t} else {\n\t\tpage = this.stackLayout.getCurrentItem();\n\t}\n\n\tif ( !page && this.outlined ) {\n\t\tthis.selectFirstSelectablePage();\n\t\tpage = this.stackLayout.getCurrentItem();\n\t}\n\tif ( !page ) {\n\t\treturn;\n\t}\n\t// Only change the focus if is not already in the current page\n\tif ( !OO.ui.contains( page.$element[ 0 ], this.getElementDocument().activeElement, true ) ) {\n\t\tpage.focus();\n\t}\n};\n\n/**\n * Find the first focusable input in the booklet layout and focus\n * on it.\n */\nOO.ui.BookletLayout.prototype.focusFirstFocusable = function () {\n\tOO.ui.findFocusable( this.stackLayout.$element ).focus();\n};\n\n/**\n * Handle outline widget select events.\n *\n * @private\n * @param {OO.ui.OptionWidget|null} item Selected item\n */\nOO.ui.BookletLayout.prototype.onOutlineSelectWidgetSelect = function ( item ) {\n\tif ( item ) {\n\t\tthis.setPage( item.getData() );\n\t}\n};\n\n/**\n * Check if booklet has an outline.\n *\n * @return {boolean} Booklet has an outline\n */\nOO.ui.BookletLayout.prototype.isOutlined = function () {\n\treturn this.outlined;\n};\n\n/**\n * Check if booklet has editing controls.\n *\n * @return {boolean} Booklet is editable\n */\nOO.ui.BookletLayout.prototype.isEditable = function () {\n\treturn this.editable;\n};\n\n/**\n * Check if booklet has a visible outline.\n *\n * @return {boolean} Outline is visible\n */\nOO.ui.BookletLayout.prototype.isOutlineVisible = function () {\n\treturn this.outlined && this.outlineVisible;\n};\n\n/**\n * Hide or show the outline.\n *\n * @param {boolean} [show] Show outline, omit to invert current state\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.BookletLayout.prototype.toggleOutline = function ( show ) {\n\tvar booklet = this;\n\n\tif ( this.outlined ) {\n\t\tshow = show === undefined ? !this.outlineVisible : !!show;\n\t\tthis.outlineVisible = show;\n\t\tthis.toggleMenu( show );\n\t\tif ( show && this.editable ) {\n\t\t\t// HACK: Kill dumb scrollbars when the sidebar stops animating, see T161798. Only necessary when\n\t\t\t// outline controls are present, delay matches transition on `.oo-ui-menuLayout-menu`.\n\t\t\tsetTimeout( function () {\n\t\t\t\tOO.ui.Element.static.reconsiderScrollbars( booklet.outlinePanel.$element[ 0 ] );\n\t\t\t}, OO.ui.theme.getDialogTransitionDuration() );\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Find the page closest to the specified page.\n *\n * @param {OO.ui.PageLayout} page Page to use as a reference point\n * @return {OO.ui.PageLayout|null} Page closest to the specified page\n */\nOO.ui.BookletLayout.prototype.findClosestPage = function ( page ) {\n\tvar next, prev, level,\n\t\tpages = this.stackLayout.getItems(),\n\t\tindex = pages.indexOf( page );\n\n\tif ( index !== -1 ) {\n\t\tnext = pages[ index + 1 ];\n\t\tprev = pages[ index - 1 ];\n\t\t// Prefer adjacent pages at the same level\n\t\tif ( this.outlined ) {\n\t\t\tlevel = this.outlineSelectWidget.findItemFromData( page.getName() ).getLevel();\n\t\t\tif (\n\t\t\t\tprev &&\n\t\t\t\tlevel === this.outlineSelectWidget.findItemFromData( prev.getName() ).getLevel()\n\t\t\t) {\n\t\t\t\treturn prev;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tnext &&\n\t\t\t\tlevel === this.outlineSelectWidget.findItemFromData( next.getName() ).getLevel()\n\t\t\t) {\n\t\t\t\treturn next;\n\t\t\t}\n\t\t}\n\t}\n\treturn prev || next || null;\n};\n\n/**\n * Get the outline widget.\n *\n * If the booklet is not outlined, the method will return `null`.\n *\n * @return {OO.ui.OutlineSelectWidget|null} Outline widget, or null if the booklet is not outlined\n */\nOO.ui.BookletLayout.prototype.getOutline = function () {\n\treturn this.outlineSelectWidget;\n};\n\n/**\n * Get the outline controls widget.\n *\n * If the outline is not editable, the method will return `null`.\n *\n * @return {OO.ui.OutlineControlsWidget|null} The outline controls widget.\n */\nOO.ui.BookletLayout.prototype.getOutlineControls = function () {\n\treturn this.outlineControlsWidget;\n};\n\n/**\n * Get a page by its symbolic name.\n *\n * @param {string} name Symbolic name of page\n * @return {OO.ui.PageLayout|undefined} Page, if found\n */\nOO.ui.BookletLayout.prototype.getPage = function ( name ) {\n\treturn this.pages[ name ];\n};\n\n/**\n * Get the current page.\n *\n * @return {OO.ui.PageLayout|undefined} Current page, if found\n */\nOO.ui.BookletLayout.prototype.getCurrentPage = function () {\n\tvar name = this.getCurrentPageName();\n\treturn name ? this.getPage( name ) : undefined;\n};\n\n/**\n * Get the symbolic name of the current page.\n *\n * @return {string|null} Symbolic name of the current page\n */\nOO.ui.BookletLayout.prototype.getCurrentPageName = function () {\n\treturn this.currentPageName;\n};\n\n/**\n * Add pages to the booklet layout\n *\n * When pages are added with the same names as existing pages, the existing pages will be\n * automatically removed before the new pages are added.\n *\n * @param {OO.ui.PageLayout[]} pages Pages to add\n * @param {number} index Index of the insertion point\n * @fires add\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.BookletLayout.prototype.addPages = function ( pages, index ) {\n\tvar i, len, name, page, item, currentIndex,\n\t\tstackLayoutPages = this.stackLayout.getItems(),\n\t\tremove = [],\n\t\titems = [];\n\n\t// Remove pages with same names\n\tfor ( i = 0, len = pages.length; i < len; i++ ) {\n\t\tpage = pages[ i ];\n\t\tname = page.getName();\n\n\t\tif ( Object.prototype.hasOwnProperty.call( this.pages, name ) ) {\n\t\t\t// Correct the insertion index\n\t\t\tcurrentIndex = stackLayoutPages.indexOf( this.pages[ name ] );\n\t\t\tif ( currentIndex !== -1 && currentIndex + 1 < index ) {\n\t\t\t\tindex--;\n\t\t\t}\n\t\t\tremove.push( this.pages[ name ] );\n\t\t}\n\t}\n\tif ( remove.length ) {\n\t\tthis.removePages( remove );\n\t}\n\n\t// Add new pages\n\tfor ( i = 0, len = pages.length; i < len; i++ ) {\n\t\tpage = pages[ i ];\n\t\tname = page.getName();\n\t\tthis.pages[ page.getName() ] = page;\n\t\tif ( this.outlined ) {\n\t\t\titem = new OO.ui.OutlineOptionWidget( { data: name } );\n\t\t\tpage.setOutlineItem( item );\n\t\t\titems.push( item );\n\t\t}\n\t}\n\n\tif ( this.outlined && items.length ) {\n\t\tthis.outlineSelectWidget.addItems( items, index );\n\t\tthis.selectFirstSelectablePage();\n\t}\n\tthis.stackLayout.addItems( pages, index );\n\tthis.emit( 'add', pages, index );\n\n\treturn this;\n};\n\n/**\n * Remove the specified pages from the booklet layout.\n *\n * To remove all pages from the booklet, you may wish to use the #clearPages method instead.\n *\n * @param {OO.ui.PageLayout[]} pages An array of pages to remove\n * @fires remove\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.BookletLayout.prototype.removePages = function ( pages ) {\n\tvar i, len, name, page,\n\t\titems = [];\n\n\tfor ( i = 0, len = pages.length; i < len; i++ ) {\n\t\tpage = pages[ i ];\n\t\tname = page.getName();\n\t\tdelete this.pages[ name ];\n\t\tif ( this.outlined ) {\n\t\t\titems.push( this.outlineSelectWidget.findItemFromData( name ) );\n\t\t\tpage.setOutlineItem( null );\n\t\t}\n\t}\n\tif ( this.outlined && items.length ) {\n\t\tthis.outlineSelectWidget.removeItems( items );\n\t\tthis.selectFirstSelectablePage();\n\t}\n\tthis.stackLayout.removeItems( pages );\n\tthis.emit( 'remove', pages );\n\n\treturn this;\n};\n\n/**\n * Clear all pages from the booklet layout.\n *\n * To remove only a subset of pages from the booklet, use the #removePages method.\n *\n * @fires remove\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.BookletLayout.prototype.clearPages = function () {\n\tvar i, len,\n\t\tpages = this.stackLayout.getItems();\n\n\tthis.pages = {};\n\tthis.currentPageName = null;\n\tif ( this.outlined ) {\n\t\tthis.outlineSelectWidget.clearItems();\n\t\tfor ( i = 0, len = pages.length; i < len; i++ ) {\n\t\t\tpages[ i ].setOutlineItem( null );\n\t\t}\n\t}\n\tthis.stackLayout.clearItems();\n\n\tthis.emit( 'remove', pages );\n\n\treturn this;\n};\n\n/**\n * Set the current page by symbolic name.\n *\n * @fires set\n * @param {string} name Symbolic name of page\n */\nOO.ui.BookletLayout.prototype.setPage = function ( name ) {\n\tvar selectedItem,\n\t\t$focused,\n\t\tpage = this.pages[ name ],\n\t\tpreviousPage = this.currentPageName && this.pages[ this.currentPageName ];\n\n\tif ( name !== this.currentPageName ) {\n\t\tif ( this.outlined ) {\n\t\t\tselectedItem = this.outlineSelectWidget.findSelectedItem();\n\t\t\tif ( selectedItem && selectedItem.getData() !== name ) {\n\t\t\t\tthis.outlineSelectWidget.selectItemByData( name );\n\t\t\t}\n\t\t}\n\t\tif ( page ) {\n\t\t\tif ( previousPage ) {\n\t\t\t\tpreviousPage.setActive( false );\n\t\t\t\t// Blur anything focused if the next page doesn't have anything focusable.\n\t\t\t\t// This is not needed if the next page has something focusable (because once it is focused\n\t\t\t\t// this blur happens automatically). If the layout is non-continuous, this check is\n\t\t\t\t// meaningless because the next page is not visible yet and thus can't hold focus.\n\t\t\t\tif (\n\t\t\t\t\tthis.autoFocus &&\n\t\t\t\t\t!OO.ui.isMobile() &&\n\t\t\t\t\tthis.stackLayout.continuous &&\n\t\t\t\t\tOO.ui.findFocusable( page.$element ).length !== 0\n\t\t\t\t) {\n\t\t\t\t\t$focused = previousPage.$element.find( ':focus' );\n\t\t\t\t\tif ( $focused.length ) {\n\t\t\t\t\t\t$focused[ 0 ].blur();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.currentPageName = name;\n\t\t\tpage.setActive( true );\n\t\t\tthis.stackLayout.setItem( page );\n\t\t\tif ( !this.stackLayout.continuous && previousPage ) {\n\t\t\t\t// This should not be necessary, since any inputs on the previous page should have been\n\t\t\t\t// blurred when it was hidden, but browsers are not very consistent about this.\n\t\t\t\t$focused = previousPage.$element.find( ':focus' );\n\t\t\t\tif ( $focused.length ) {\n\t\t\t\t\t$focused[ 0 ].blur();\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.emit( 'set', page );\n\t\t}\n\t}\n};\n\n/**\n * For outlined-continuous booklets, also reset the outlineSelectWidget to the first item.\n *\n * @inheritdoc\n */\nOO.ui.BookletLayout.prototype.resetScroll = function () {\n\t// Parent method\n\tOO.ui.BookletLayout.parent.prototype.resetScroll.call( this );\n\n\tif ( this.outlined && this.stackLayout.continuous && this.outlineSelectWidget.findFirstSelectableItem() ) {\n\t\tthis.scrolling = true;\n\t\tthis.outlineSelectWidget.selectItem( this.outlineSelectWidget.findFirstSelectableItem() );\n\t\tthis.scrolling = false;\n\t}\n\treturn this;\n};\n\n/**\n * Select the first selectable page.\n *\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.BookletLayout.prototype.selectFirstSelectablePage = function () {\n\tif ( !this.outlineSelectWidget.findSelectedItem() ) {\n\t\tthis.outlineSelectWidget.selectItem( this.outlineSelectWidget.findFirstSelectableItem() );\n\t}\n\n\treturn this;\n};\n","/**\n * IndexLayouts contain {@link OO.ui.TabPanelLayout tab panel layouts} as well as\n * {@link OO.ui.TabSelectWidget tabs} that allow users to easily navigate through the tab panels and\n * select which one to display. By default, only one tab panel is displayed at a time. When a user\n * navigates to a new tab panel, the index layout automatically focuses on the first focusable element,\n * unless the default setting is changed.\n *\n * TODO: This class is similar to BookletLayout, we may want to refactor to reduce duplication\n *\n *     @example\n *     // Example of a IndexLayout that contains two TabPanelLayouts.\n *\n *     function TabPanelOneLayout( name, config ) {\n *         TabPanelOneLayout.parent.call( this, name, config );\n *         this.$element.append( '<p>First tab panel</p>' );\n *     }\n *     OO.inheritClass( TabPanelOneLayout, OO.ui.TabPanelLayout );\n *     TabPanelOneLayout.prototype.setupTabItem = function () {\n *         this.tabItem.setLabel( 'Tab panel one' );\n *     };\n *\n *     var tabPanel1 = new TabPanelOneLayout( 'one' ),\n *         tabPanel2 = new OO.ui.TabPanelLayout( 'two', { label: 'Tab panel two' } );\n *\n *     tabPanel2.$element.append( '<p>Second tab panel</p>' );\n *\n *     var index = new OO.ui.IndexLayout();\n *\n *     index.addTabPanels( [ tabPanel1, tabPanel2 ] );\n *     $( 'body' ).append( index.$element );\n *\n * @class\n * @extends OO.ui.MenuLayout\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [continuous=false] Show all tab panels, one after another\n * @cfg {boolean} [autoFocus=true] Focus on the first focusable element when a new tab panel is displayed. Disabled on mobile.\n */\nOO.ui.IndexLayout = function OoUiIndexLayout( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( {}, config, { menuPosition: 'top' } );\n\n\t// Parent constructor\n\tOO.ui.IndexLayout.parent.call( this, config );\n\n\t// Properties\n\tthis.currentTabPanelName = null;\n\tthis.tabPanels = {};\n\n\tthis.ignoreFocus = false;\n\tthis.stackLayout = new OO.ui.StackLayout( {\n\t\tcontinuous: !!config.continuous,\n\t\texpanded: this.expanded\n\t} );\n\tthis.setContentPanel( this.stackLayout );\n\tthis.autoFocus = config.autoFocus === undefined || !!config.autoFocus;\n\n\tthis.tabSelectWidget = new OO.ui.TabSelectWidget();\n\tthis.tabPanel = new OO.ui.PanelLayout( {\n\t\texpanded: this.expanded\n\t} );\n\tthis.setMenuPanel( this.tabPanel );\n\n\tthis.toggleMenu( true );\n\n\t// Events\n\tthis.stackLayout.connect( this, { set: 'onStackLayoutSet' } );\n\tthis.tabSelectWidget.connect( this, { select: 'onTabSelectWidgetSelect' } );\n\tif ( this.autoFocus ) {\n\t\t// Event 'focus' does not bubble, but 'focusin' does\n\t\tthis.stackLayout.$element.on( 'focusin', this.onStackLayoutFocus.bind( this ) );\n\t}\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-indexLayout' );\n\tthis.stackLayout.$element.addClass( 'oo-ui-indexLayout-stackLayout' );\n\tthis.tabPanel.$element\n\t\t.addClass( 'oo-ui-indexLayout-tabPanel' )\n\t\t.append( this.tabSelectWidget.$element );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.IndexLayout, OO.ui.MenuLayout );\n\n/* Events */\n\n/**\n * A 'set' event is emitted when a tab panel is {@link #setTabPanel set} to be displayed by the index layout.\n * @event set\n * @param {OO.ui.TabPanelLayout} tabPanel Current tab panel\n */\n\n/**\n * An 'add' event is emitted when tab panels are {@link #addTabPanels added} to the index layout.\n *\n * @event add\n * @param {OO.ui.TabPanelLayout[]} tabPanel Added tab panels\n * @param {number} index Index tab panels were added at\n */\n\n/**\n * A 'remove' event is emitted when tab panels are {@link #clearTabPanels cleared} or\n * {@link #removeTabPanels removed} from the index.\n *\n * @event remove\n * @param {OO.ui.TabPanelLayout[]} tabPanel Removed tab panels\n */\n\n/* Methods */\n\n/**\n * Handle stack layout focus.\n *\n * @private\n * @param {jQuery.Event} e Focusing event\n */\nOO.ui.IndexLayout.prototype.onStackLayoutFocus = function ( e ) {\n\tvar name, $target;\n\n\t// Find the tab panel that an element was focused within\n\t$target = $( e.target ).closest( '.oo-ui-tabPanelLayout' );\n\tfor ( name in this.tabPanels ) {\n\t\t// Check for tab panel match, exclude current tab panel to find only tab panel changes\n\t\tif ( this.tabPanels[ name ].$element[ 0 ] === $target[ 0 ] && name !== this.currentTabPanelName ) {\n\t\t\tthis.setTabPanel( name );\n\t\t\tbreak;\n\t\t}\n\t}\n};\n\n/**\n * Handle stack layout set events.\n *\n * @private\n * @param {OO.ui.PanelLayout|null} tabPanel The tab panel that is now the current panel\n */\nOO.ui.IndexLayout.prototype.onStackLayoutSet = function ( tabPanel ) {\n\t// If everything is unselected, do nothing\n\tif ( !tabPanel ) {\n\t\treturn;\n\t}\n\t// Focus the first element on the newly selected panel\n\tif ( this.autoFocus && !OO.ui.isMobile() ) {\n\t\tthis.focus();\n\t}\n};\n\n/**\n * Focus the first input in the current tab panel.\n *\n * If no tab panel is selected, the first selectable tab panel will be selected.\n * If the focus is already in an element on the current tab panel, nothing will happen.\n *\n * @param {number} [itemIndex] A specific item to focus on\n */\nOO.ui.IndexLayout.prototype.focus = function ( itemIndex ) {\n\tvar tabPanel,\n\t\titems = this.stackLayout.getItems();\n\n\tif ( itemIndex !== undefined && items[ itemIndex ] ) {\n\t\ttabPanel = items[ itemIndex ];\n\t} else {\n\t\ttabPanel = this.stackLayout.getCurrentItem();\n\t}\n\n\tif ( !tabPanel ) {\n\t\tthis.selectFirstSelectableTabPanel();\n\t\ttabPanel = this.stackLayout.getCurrentItem();\n\t}\n\tif ( !tabPanel ) {\n\t\treturn;\n\t}\n\t// Only change the focus if is not already in the current page\n\tif ( !OO.ui.contains( tabPanel.$element[ 0 ], this.getElementDocument().activeElement, true ) ) {\n\t\ttabPanel.focus();\n\t}\n};\n\n/**\n * Find the first focusable input in the index layout and focus\n * on it.\n */\nOO.ui.IndexLayout.prototype.focusFirstFocusable = function () {\n\tOO.ui.findFocusable( this.stackLayout.$element ).focus();\n};\n\n/**\n * Handle tab widget select events.\n *\n * @private\n * @param {OO.ui.OptionWidget|null} item Selected item\n */\nOO.ui.IndexLayout.prototype.onTabSelectWidgetSelect = function ( item ) {\n\tif ( item ) {\n\t\tthis.setTabPanel( item.getData() );\n\t}\n};\n\n/**\n * Get the tab panel closest to the specified tab panel.\n *\n * @param {OO.ui.TabPanelLayout} tabPanel Tab panel to use as a reference point\n * @return {OO.ui.TabPanelLayout|null} Tab panel closest to the specified\n */\nOO.ui.IndexLayout.prototype.getClosestTabPanel = function ( tabPanel ) {\n\tvar next, prev, level,\n\t\ttabPanels = this.stackLayout.getItems(),\n\t\tindex = tabPanels.indexOf( tabPanel );\n\n\tif ( index !== -1 ) {\n\t\tnext = tabPanels[ index + 1 ];\n\t\tprev = tabPanels[ index - 1 ];\n\t\t// Prefer adjacent tab panels at the same level\n\t\tlevel = this.tabSelectWidget.findItemFromData( tabPanel.getName() ).getLevel();\n\t\tif (\n\t\t\tprev &&\n\t\t\tlevel === this.tabSelectWidget.findItemFromData( prev.getName() ).getLevel()\n\t\t) {\n\t\t\treturn prev;\n\t\t}\n\t\tif (\n\t\t\tnext &&\n\t\t\tlevel === this.tabSelectWidget.findItemFromData( next.getName() ).getLevel()\n\t\t) {\n\t\t\treturn next;\n\t\t}\n\t}\n\treturn prev || next || null;\n};\n\n/**\n * Get the tabs widget.\n *\n * @return {OO.ui.TabSelectWidget} Tabs widget\n */\nOO.ui.IndexLayout.prototype.getTabs = function () {\n\treturn this.tabSelectWidget;\n};\n\n/**\n * Get a tab panel by its symbolic name.\n *\n * @param {string} name Symbolic name of tab panel\n * @return {OO.ui.TabPanelLayout|undefined} Tab panel, if found\n */\nOO.ui.IndexLayout.prototype.getTabPanel = function ( name ) {\n\treturn this.tabPanels[ name ];\n};\n\n/**\n * Get the current tab panel.\n *\n * @return {OO.ui.TabPanelLayout|undefined} Current tab panel, if found\n */\nOO.ui.IndexLayout.prototype.getCurrentTabPanel = function () {\n\tvar name = this.getCurrentTabPanelName();\n\treturn name ? this.getTabPanel( name ) : undefined;\n};\n\n/**\n * Get the symbolic name of the current tab panel.\n *\n * @return {string|null} Symbolic name of the current tab panel\n */\nOO.ui.IndexLayout.prototype.getCurrentTabPanelName = function () {\n\treturn this.currentTabPanelName;\n};\n\n/**\n * Add tab panels to the index layout\n *\n * When tab panels are added with the same names as existing tab panels, the existing tab panels\n * will be automatically removed before the new tab panels are added.\n *\n * @param {OO.ui.TabPanelLayout[]} tabPanels Tab panels to add\n * @param {number} index Index of the insertion point\n * @fires add\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.IndexLayout.prototype.addTabPanels = function ( tabPanels, index ) {\n\tvar i, len, name, tabPanel, item, currentIndex,\n\t\tstackLayoutTabPanels = this.stackLayout.getItems(),\n\t\tremove = [],\n\t\titems = [];\n\n\t// Remove tab panels with same names\n\tfor ( i = 0, len = tabPanels.length; i < len; i++ ) {\n\t\ttabPanel = tabPanels[ i ];\n\t\tname = tabPanel.getName();\n\n\t\tif ( Object.prototype.hasOwnProperty.call( this.tabPanels, name ) ) {\n\t\t\t// Correct the insertion index\n\t\t\tcurrentIndex = stackLayoutTabPanels.indexOf( this.tabPanels[ name ] );\n\t\t\tif ( currentIndex !== -1 && currentIndex + 1 < index ) {\n\t\t\t\tindex--;\n\t\t\t}\n\t\t\tremove.push( this.tabPanels[ name ] );\n\t\t}\n\t}\n\tif ( remove.length ) {\n\t\tthis.removeTabPanels( remove );\n\t}\n\n\t// Add new tab panels\n\tfor ( i = 0, len = tabPanels.length; i < len; i++ ) {\n\t\ttabPanel = tabPanels[ i ];\n\t\tname = tabPanel.getName();\n\t\tthis.tabPanels[ tabPanel.getName() ] = tabPanel;\n\t\titem = new OO.ui.TabOptionWidget( { data: name } );\n\t\ttabPanel.setTabItem( item );\n\t\titems.push( item );\n\t}\n\n\tif ( items.length ) {\n\t\tthis.tabSelectWidget.addItems( items, index );\n\t\tthis.selectFirstSelectableTabPanel();\n\t}\n\tthis.stackLayout.addItems( tabPanels, index );\n\tthis.emit( 'add', tabPanels, index );\n\n\treturn this;\n};\n\n/**\n * Remove the specified tab panels from the index layout.\n *\n * To remove all tab panels from the index, you may wish to use the #clearTabPanels method instead.\n *\n * @param {OO.ui.TabPanelLayout[]} tabPanels An array of tab panels to remove\n * @fires remove\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.IndexLayout.prototype.removeTabPanels = function ( tabPanels ) {\n\tvar i, len, name, tabPanel,\n\t\titems = [];\n\n\tfor ( i = 0, len = tabPanels.length; i < len; i++ ) {\n\t\ttabPanel = tabPanels[ i ];\n\t\tname = tabPanel.getName();\n\t\tdelete this.tabPanels[ name ];\n\t\titems.push( this.tabSelectWidget.findItemFromData( name ) );\n\t\ttabPanel.setTabItem( null );\n\t}\n\tif ( items.length ) {\n\t\tthis.tabSelectWidget.removeItems( items );\n\t\tthis.selectFirstSelectableTabPanel();\n\t}\n\tthis.stackLayout.removeItems( tabPanels );\n\tthis.emit( 'remove', tabPanels );\n\n\treturn this;\n};\n\n/**\n * Clear all tab panels from the index layout.\n *\n * To remove only a subset of tab panels from the index, use the #removeTabPanels method.\n *\n * @fires remove\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.IndexLayout.prototype.clearTabPanels = function () {\n\tvar i, len,\n\t\ttabPanels = this.stackLayout.getItems();\n\n\tthis.tabPanels = {};\n\tthis.currentTabPanelName = null;\n\tthis.tabSelectWidget.clearItems();\n\tfor ( i = 0, len = tabPanels.length; i < len; i++ ) {\n\t\ttabPanels[ i ].setTabItem( null );\n\t}\n\tthis.stackLayout.clearItems();\n\n\tthis.emit( 'remove', tabPanels );\n\n\treturn this;\n};\n\n/**\n * Set the current tab panel by symbolic name.\n *\n * @fires set\n * @param {string} name Symbolic name of tab panel\n */\nOO.ui.IndexLayout.prototype.setTabPanel = function ( name ) {\n\tvar selectedItem,\n\t\t$focused,\n\t\tpreviousTabPanel,\n\t\ttabPanel = this.tabPanels[ name ];\n\n\tif ( name !== this.currentTabPanelName ) {\n\t\tpreviousTabPanel = this.getCurrentTabPanel();\n\t\tselectedItem = this.tabSelectWidget.findSelectedItem();\n\t\tif ( selectedItem && selectedItem.getData() !== name ) {\n\t\t\tthis.tabSelectWidget.selectItemByData( name );\n\t\t}\n\t\tif ( tabPanel ) {\n\t\t\tif ( previousTabPanel ) {\n\t\t\t\tpreviousTabPanel.setActive( false );\n\t\t\t\t// Blur anything focused if the next tab panel doesn't have anything focusable.\n\t\t\t\t// This is not needed if the next tab panel has something focusable (because once it is focused\n\t\t\t\t// this blur happens automatically). If the layout is non-continuous, this check is\n\t\t\t\t// meaningless because the next tab panel is not visible yet and thus can't hold focus.\n\t\t\t\tif (\n\t\t\t\t\tthis.autoFocus &&\n\t\t\t\t\t!OO.ui.isMobile() &&\n\t\t\t\t\tthis.stackLayout.continuous &&\n\t\t\t\t\tOO.ui.findFocusable( tabPanel.$element ).length !== 0\n\t\t\t\t) {\n\t\t\t\t\t$focused = previousTabPanel.$element.find( ':focus' );\n\t\t\t\t\tif ( $focused.length ) {\n\t\t\t\t\t\t$focused[ 0 ].blur();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.currentTabPanelName = name;\n\t\t\ttabPanel.setActive( true );\n\t\t\tthis.stackLayout.setItem( tabPanel );\n\t\t\tif ( !this.stackLayout.continuous && previousTabPanel ) {\n\t\t\t\t// This should not be necessary, since any inputs on the previous tab panel should have been\n\t\t\t\t// blurred when it was hidden, but browsers are not very consistent about this.\n\t\t\t\t$focused = previousTabPanel.$element.find( ':focus' );\n\t\t\t\tif ( $focused.length ) {\n\t\t\t\t\t$focused[ 0 ].blur();\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.emit( 'set', tabPanel );\n\t\t}\n\t}\n};\n\n/**\n * Select the first selectable tab panel.\n *\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.IndexLayout.prototype.selectFirstSelectableTabPanel = function () {\n\tif ( !this.tabSelectWidget.findSelectedItem() ) {\n\t\tthis.tabSelectWidget.selectItem( this.tabSelectWidget.findFirstSelectableItem() );\n\t}\n\n\treturn this;\n};\n","/**\n * ToggleWidget implements basic behavior of widgets with an on/off state.\n * Please see OO.ui.ToggleButtonWidget and OO.ui.ToggleSwitchWidget for examples.\n *\n * @abstract\n * @class\n * @extends OO.ui.Widget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [value=false] The toggle’s initial on/off state.\n *  By default, the toggle is in the 'off' state.\n */\nOO.ui.ToggleWidget = function OoUiToggleWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.ToggleWidget.parent.call( this, config );\n\n\t// Properties\n\tthis.value = null;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-toggleWidget' );\n\tthis.setValue( !!config.value );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ToggleWidget, OO.ui.Widget );\n\n/* Events */\n\n/**\n * @event change\n *\n * A change event is emitted when the on/off state of the toggle changes.\n *\n * @param {boolean} value Value representing the new state of the toggle\n */\n\n/* Methods */\n\n/**\n * Get the value representing the toggle’s state.\n *\n * @return {boolean} The on/off state of the toggle\n */\nOO.ui.ToggleWidget.prototype.getValue = function () {\n\treturn this.value;\n};\n\n/**\n * Set the state of the toggle: `true` for 'on', `false` for 'off'.\n *\n * @param {boolean} value The state of the toggle\n * @fires change\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ToggleWidget.prototype.setValue = function ( value ) {\n\tvalue = !!value;\n\tif ( this.value !== value ) {\n\t\tthis.value = value;\n\t\tthis.emit( 'change', value );\n\t\tthis.$element.toggleClass( 'oo-ui-toggleWidget-on', value );\n\t\tthis.$element.toggleClass( 'oo-ui-toggleWidget-off', !value );\n\t}\n\treturn this;\n};\n","/**\n * ToggleButtons are buttons that have a state (‘on’ or ‘off’) that is represented by a\n * Boolean value. Like other {@link OO.ui.ButtonWidget buttons}, toggle buttons can be\n * configured with {@link OO.ui.mixin.IconElement icons}, {@link OO.ui.mixin.IndicatorElement indicators},\n * {@link OO.ui.mixin.TitledElement titles}, {@link OO.ui.mixin.FlaggedElement styling flags},\n * and {@link OO.ui.mixin.LabelElement labels}. Please see\n * the [OOUI documentation][1] on MediaWiki for more information.\n *\n *     @example\n *     // Toggle buttons in the 'off' and 'on' state.\n *     var toggleButton1 = new OO.ui.ToggleButtonWidget( {\n *         label: 'Toggle Button off'\n *     } );\n *     var toggleButton2 = new OO.ui.ToggleButtonWidget( {\n *         label: 'Toggle Button on',\n *         value: true\n *     } );\n *     // Append the buttons to the DOM.\n *     $( 'body' ).append( toggleButton1.$element, toggleButton2.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Buttons_and_Switches#Toggle_buttons\n *\n * @class\n * @extends OO.ui.ToggleWidget\n * @mixins OO.ui.mixin.ButtonElement\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.TitledElement\n * @mixins OO.ui.mixin.FlaggedElement\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [value=false] The toggle button’s initial on/off\n *  state. By default, the button is in the 'off' state.\n */\nOO.ui.ToggleButtonWidget = function OoUiToggleButtonWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.ToggleButtonWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.ButtonElement.call( this, $.extend( {}, config, { active: this.active } ) );\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$button } ) );\n\tOO.ui.mixin.FlaggedElement.call( this, config );\n\tOO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$button } ) );\n\n\t// Events\n\tthis.connect( this, { click: 'onAction' } );\n\n\t// Initialization\n\tthis.$button.append( this.$icon, this.$label, this.$indicator );\n\tthis.$element\n\t\t.addClass( 'oo-ui-toggleButtonWidget' )\n\t\t.append( this.$button );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ToggleButtonWidget, OO.ui.ToggleWidget );\nOO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.ButtonElement );\nOO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.TitledElement );\nOO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.FlaggedElement );\nOO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.TabIndexedElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.ToggleButtonWidget.static.tagName = 'span';\n\n/* Methods */\n\n/**\n * Handle the button action being triggered.\n *\n * @private\n */\nOO.ui.ToggleButtonWidget.prototype.onAction = function () {\n\tthis.setValue( !this.value );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ToggleButtonWidget.prototype.setValue = function ( value ) {\n\tvalue = !!value;\n\tif ( value !== this.value ) {\n\t\t// Might be called from parent constructor before ButtonElement constructor\n\t\tif ( this.$button ) {\n\t\t\tthis.$button.attr( 'aria-pressed', value.toString() );\n\t\t}\n\t\tthis.setActive( value );\n\t}\n\n\t// Parent method\n\tOO.ui.ToggleButtonWidget.parent.prototype.setValue.call( this, value );\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ToggleButtonWidget.prototype.setButtonElement = function ( $button ) {\n\tif ( this.$button ) {\n\t\tthis.$button.removeAttr( 'aria-pressed' );\n\t}\n\tOO.ui.mixin.ButtonElement.prototype.setButtonElement.call( this, $button );\n\tthis.$button.attr( 'aria-pressed', this.value.toString() );\n};\n","/**\n * ToggleSwitches are switches that slide on and off. Their state is represented by a Boolean\n * value (`true` for ‘on’, and `false` otherwise, the default). The ‘off’ state is represented\n * visually by a slider in the leftmost position.\n *\n *     @example\n *     // Toggle switches in the 'off' and 'on' position.\n *     var toggleSwitch1 = new OO.ui.ToggleSwitchWidget();\n *     var toggleSwitch2 = new OO.ui.ToggleSwitchWidget( {\n *         value: true\n *     } );\n *\n *     // Create a FieldsetLayout to layout and label switches\n *     var fieldset = new OO.ui.FieldsetLayout( {\n *        label: 'Toggle switches'\n *     } );\n *     fieldset.addItems( [\n *         new OO.ui.FieldLayout( toggleSwitch1, { label: 'Off', align: 'top' } ),\n *         new OO.ui.FieldLayout( toggleSwitch2, { label: 'On', align: 'top' } )\n *     ] );\n *     $( 'body' ).append( fieldset.$element );\n *\n * @class\n * @extends OO.ui.ToggleWidget\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [value=false] The toggle switch’s initial on/off state.\n *  By default, the toggle switch is in the 'off' position.\n */\nOO.ui.ToggleSwitchWidget = function OoUiToggleSwitchWidget( config ) {\n\t// Parent constructor\n\tOO.ui.ToggleSwitchWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.TabIndexedElement.call( this, config );\n\n\t// Properties\n\tthis.dragging = false;\n\tthis.dragStart = null;\n\tthis.sliding = false;\n\tthis.$glow = $( '<span>' );\n\tthis.$grip = $( '<span>' );\n\n\t// Events\n\tthis.$element.on( {\n\t\tclick: this.onClick.bind( this ),\n\t\tkeypress: this.onKeyPress.bind( this )\n\t} );\n\n\t// Initialization\n\tthis.$glow.addClass( 'oo-ui-toggleSwitchWidget-glow' );\n\tthis.$grip.addClass( 'oo-ui-toggleSwitchWidget-grip' );\n\tthis.$element\n\t\t.addClass( 'oo-ui-toggleSwitchWidget' )\n\t\t.attr( 'role', 'checkbox' )\n\t\t.append( this.$glow, this.$grip );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ToggleSwitchWidget, OO.ui.ToggleWidget );\nOO.mixinClass( OO.ui.ToggleSwitchWidget, OO.ui.mixin.TabIndexedElement );\n\n/* Methods */\n\n/**\n * Handle mouse click events.\n *\n * @private\n * @param {jQuery.Event} e Mouse click event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.ToggleSwitchWidget.prototype.onClick = function ( e ) {\n\tif ( !this.isDisabled() && e.which === OO.ui.MouseButtons.LEFT ) {\n\t\tthis.setValue( !this.value );\n\t}\n\treturn false;\n};\n\n/**\n * Handle key press events.\n *\n * @private\n * @param {jQuery.Event} e Key press event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.ToggleSwitchWidget.prototype.onKeyPress = function ( e ) {\n\tif ( !this.isDisabled() && ( e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER ) ) {\n\t\tthis.setValue( !this.value );\n\t\treturn false;\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ToggleSwitchWidget.prototype.setValue = function ( value ) {\n\tOO.ui.ToggleSwitchWidget.parent.prototype.setValue.call( this, value );\n\tthis.$element.attr( 'aria-checked', this.value.toString() );\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ToggleSwitchWidget.prototype.simulateLabelClick = function () {\n\tif ( !this.isDisabled() ) {\n\t\tthis.setValue( !this.value );\n\t}\n\tthis.focus();\n};\n","/**\n * OutlineControlsWidget is a set of controls for an {@link OO.ui.OutlineSelectWidget outline select widget}.\n * Controls include moving items up and down, removing items, and adding different kinds of items.\n *\n * **Currently, this class is only used by {@link OO.ui.BookletLayout booklet layouts}.**\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {OO.ui.OutlineSelectWidget} outline Outline to control\n * @param {Object} [config] Configuration options\n * @cfg {Object} [abilities] List of abilties\n * @cfg {boolean} [abilities.move=true] Allow moving movable items\n * @cfg {boolean} [abilities.remove=true] Allow removing removable items\n */\nOO.ui.OutlineControlsWidget = function OoUiOutlineControlsWidget( outline, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( outline ) && config === undefined ) {\n\t\tconfig = outline;\n\t\toutline = config.outline;\n\t}\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.OutlineControlsWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupElement.call( this, config );\n\n\t// Properties\n\tthis.outline = outline;\n\tthis.$movers = $( '<div>' );\n\tthis.upButton = new OO.ui.ButtonWidget( {\n\t\tframed: false,\n\t\ticon: 'collapse',\n\t\ttitle: OO.ui.msg( 'ooui-outline-control-move-up' )\n\t} );\n\tthis.downButton = new OO.ui.ButtonWidget( {\n\t\tframed: false,\n\t\ticon: 'expand',\n\t\ttitle: OO.ui.msg( 'ooui-outline-control-move-down' )\n\t} );\n\tthis.removeButton = new OO.ui.ButtonWidget( {\n\t\tframed: false,\n\t\ticon: 'trash',\n\t\ttitle: OO.ui.msg( 'ooui-outline-control-remove' )\n\t} );\n\tthis.abilities = { move: true, remove: true };\n\n\t// Events\n\toutline.connect( this, {\n\t\tselect: 'onOutlineChange',\n\t\tadd: 'onOutlineChange',\n\t\tremove: 'onOutlineChange'\n\t} );\n\tthis.upButton.connect( this, { click: [ 'emit', 'move', -1 ] } );\n\tthis.downButton.connect( this, { click: [ 'emit', 'move', 1 ] } );\n\tthis.removeButton.connect( this, { click: [ 'emit', 'remove' ] } );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-outlineControlsWidget' );\n\tthis.$group.addClass( 'oo-ui-outlineControlsWidget-items' );\n\tthis.$movers\n\t\t.addClass( 'oo-ui-outlineControlsWidget-movers' )\n\t\t.append( this.removeButton.$element, this.upButton.$element, this.downButton.$element );\n\tthis.$element.append( this.$icon, this.$group, this.$movers );\n\tthis.setAbilities( config.abilities || {} );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.OutlineControlsWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.OutlineControlsWidget, OO.ui.mixin.GroupElement );\n\n/* Events */\n\n/**\n * @event move\n * @param {number} places Number of places to move\n */\n\n/**\n * @event remove\n */\n\n/* Methods */\n\n/**\n * Set abilities.\n *\n * @param {Object} abilities List of abilties\n * @param {boolean} [abilities.move] Allow moving movable items\n * @param {boolean} [abilities.remove] Allow removing removable items\n */\nOO.ui.OutlineControlsWidget.prototype.setAbilities = function ( abilities ) {\n\tvar ability;\n\n\tfor ( ability in this.abilities ) {\n\t\tif ( abilities[ ability ] !== undefined ) {\n\t\t\tthis.abilities[ ability ] = !!abilities[ ability ];\n\t\t}\n\t}\n\n\tthis.onOutlineChange();\n};\n\n/**\n * Handle outline change events.\n *\n * @private\n */\nOO.ui.OutlineControlsWidget.prototype.onOutlineChange = function () {\n\tvar i, len, firstMovable, lastMovable,\n\t\titems = this.outline.getItems(),\n\t\tselectedItem = this.outline.findSelectedItem(),\n\t\tmovable = this.abilities.move && selectedItem && selectedItem.isMovable(),\n\t\tremovable = this.abilities.remove && selectedItem && selectedItem.isRemovable();\n\n\tif ( movable ) {\n\t\ti = -1;\n\t\tlen = items.length;\n\t\twhile ( ++i < len ) {\n\t\t\tif ( items[ i ].isMovable() ) {\n\t\t\t\tfirstMovable = items[ i ];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\ti = len;\n\t\twhile ( i-- ) {\n\t\t\tif ( items[ i ].isMovable() ) {\n\t\t\t\tlastMovable = items[ i ];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tthis.upButton.setDisabled( !movable || selectedItem === firstMovable );\n\tthis.downButton.setDisabled( !movable || selectedItem === lastMovable );\n\tthis.removeButton.setDisabled( !removable );\n};\n","/**\n * OutlineOptionWidget is an item in an {@link OO.ui.OutlineSelectWidget OutlineSelectWidget}.\n *\n * Currently, this class is only used by {@link OO.ui.BookletLayout booklet layouts}, which contain\n * {@link OO.ui.PageLayout page layouts}. See {@link OO.ui.BookletLayout BookletLayout}\n * for an example.\n *\n * @class\n * @extends OO.ui.DecoratedOptionWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {number} [level] Indentation level\n * @cfg {boolean} [movable] Allow modification from {@link OO.ui.OutlineControlsWidget outline controls}.\n */\nOO.ui.OutlineOptionWidget = function OoUiOutlineOptionWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.OutlineOptionWidget.parent.call( this, config );\n\n\t// Properties\n\tthis.level = 0;\n\tthis.movable = !!config.movable;\n\tthis.removable = !!config.removable;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-outlineOptionWidget' );\n\tthis.setLevel( config.level );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.OutlineOptionWidget, OO.ui.DecoratedOptionWidget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.OutlineOptionWidget.static.highlightable = true;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.OutlineOptionWidget.static.scrollIntoViewOnSelect = true;\n\n/**\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.OutlineOptionWidget.static.levelClass = 'oo-ui-outlineOptionWidget-level-';\n\n/**\n * @static\n * @inheritable\n * @property {number}\n */\nOO.ui.OutlineOptionWidget.static.levels = 3;\n\n/* Methods */\n\n/**\n * Check if item is movable.\n *\n * Movability is used by {@link OO.ui.OutlineControlsWidget outline controls}.\n *\n * @return {boolean} Item is movable\n */\nOO.ui.OutlineOptionWidget.prototype.isMovable = function () {\n\treturn this.movable;\n};\n\n/**\n * Check if item is removable.\n *\n * Removability is used by {@link OO.ui.OutlineControlsWidget outline controls}.\n *\n * @return {boolean} Item is removable\n */\nOO.ui.OutlineOptionWidget.prototype.isRemovable = function () {\n\treturn this.removable;\n};\n\n/**\n * Get indentation level.\n *\n * @return {number} Indentation level\n */\nOO.ui.OutlineOptionWidget.prototype.getLevel = function () {\n\treturn this.level;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.OutlineOptionWidget.prototype.setPressed = function ( state ) {\n\tOO.ui.OutlineOptionWidget.parent.prototype.setPressed.call( this, state );\n\treturn this;\n};\n\n/**\n * Set movability.\n *\n * Movability is used by {@link OO.ui.OutlineControlsWidget outline controls}.\n *\n * @param {boolean} movable Item is movable\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.OutlineOptionWidget.prototype.setMovable = function ( movable ) {\n\tthis.movable = !!movable;\n\tthis.updateThemeClasses();\n\treturn this;\n};\n\n/**\n * Set removability.\n *\n * Removability is used by {@link OO.ui.OutlineControlsWidget outline controls}.\n *\n * @param {boolean} removable Item is removable\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.OutlineOptionWidget.prototype.setRemovable = function ( removable ) {\n\tthis.removable = !!removable;\n\tthis.updateThemeClasses();\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.OutlineOptionWidget.prototype.setSelected = function ( state ) {\n\tOO.ui.OutlineOptionWidget.parent.prototype.setSelected.call( this, state );\n\treturn this;\n};\n\n/**\n * Set indentation level.\n *\n * @param {number} [level=0] Indentation level, in the range of [0,#maxLevel]\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.OutlineOptionWidget.prototype.setLevel = function ( level ) {\n\tvar levels = this.constructor.static.levels,\n\t\tlevelClass = this.constructor.static.levelClass,\n\t\ti = levels;\n\n\tthis.level = level ? Math.max( 0, Math.min( levels - 1, level ) ) : 0;\n\twhile ( i-- ) {\n\t\tif ( this.level === i ) {\n\t\t\tthis.$element.addClass( levelClass + i );\n\t\t} else {\n\t\t\tthis.$element.removeClass( levelClass + i );\n\t\t}\n\t}\n\tthis.updateThemeClasses();\n\n\treturn this;\n};\n","/**\n * OutlineSelectWidget is a structured list that contains {@link OO.ui.OutlineOptionWidget outline options}\n * A set of controls can be provided with an {@link OO.ui.OutlineControlsWidget outline controls} widget.\n *\n * **Currently, this class is only used by {@link OO.ui.BookletLayout booklet layouts}.**\n *\n * @class\n * @extends OO.ui.SelectWidget\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.OutlineSelectWidget = function OoUiOutlineSelectWidget( config ) {\n\t// Parent constructor\n\tOO.ui.OutlineSelectWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.TabIndexedElement.call( this, config );\n\n\t// Events\n\tthis.$element.on( {\n\t\tfocus: this.bindDocumentKeyDownListener.bind( this ),\n\t\tblur: this.unbindDocumentKeyDownListener.bind( this )\n\t} );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-outlineSelectWidget' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.OutlineSelectWidget, OO.ui.SelectWidget );\nOO.mixinClass( OO.ui.OutlineSelectWidget, OO.ui.mixin.TabIndexedElement );\n","/**\n * ButtonOptionWidget is a special type of {@link OO.ui.mixin.ButtonElement button element} that\n * can be selected and configured with data. The class is\n * used with OO.ui.ButtonSelectWidget to create a selection of button options. Please see the\n * [OOUI documentation on MediaWiki] [1] for more information.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options#Button_selects_and_options\n *\n * @class\n * @extends OO.ui.OptionWidget\n * @mixins OO.ui.mixin.ButtonElement\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.TitledElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.ButtonOptionWidget = function OoUiButtonOptionWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.ButtonOptionWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.ButtonElement.call( this, config );\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\tOO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$button } ) );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-buttonOptionWidget' );\n\tthis.$button.append( this.$icon, this.$label, this.$indicator );\n\tthis.$element.append( this.$button );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ButtonOptionWidget, OO.ui.OptionWidget );\nOO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.ButtonElement );\nOO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.TitledElement );\n\n/* Static Properties */\n\n/**\n * Allow button mouse down events to pass through so they can be handled by the parent select widget\n *\n * @static\n * @inheritdoc\n */\nOO.ui.ButtonOptionWidget.static.cancelButtonMouseDownEvents = false;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.ButtonOptionWidget.static.highlightable = false;\n\n/* Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.ButtonOptionWidget.prototype.setSelected = function ( state ) {\n\tOO.ui.ButtonOptionWidget.parent.prototype.setSelected.call( this, state );\n\n\tif ( this.constructor.static.selectable ) {\n\t\tthis.setActive( state );\n\t}\n\n\treturn this;\n};\n","/**\n * ButtonSelectWidget is a {@link OO.ui.SelectWidget select widget} that contains\n * button options and is used together with\n * OO.ui.ButtonOptionWidget. The ButtonSelectWidget provides an interface for\n * highlighting, choosing, and selecting mutually exclusive options. Please see\n * the [OOUI documentation on MediaWiki] [1] for more information.\n *\n *     @example\n *     // Example: A ButtonSelectWidget that contains three ButtonOptionWidgets\n *     var option1 = new OO.ui.ButtonOptionWidget( {\n *         data: 1,\n *         label: 'Option 1',\n *         title: 'Button option 1'\n *     } );\n *\n *     var option2 = new OO.ui.ButtonOptionWidget( {\n *         data: 2,\n *         label: 'Option 2',\n *         title: 'Button option 2'\n *     } );\n *\n *     var option3 = new OO.ui.ButtonOptionWidget( {\n *         data: 3,\n *         label: 'Option 3',\n *         title: 'Button option 3'\n *     } );\n *\n *     var buttonSelect=new OO.ui.ButtonSelectWidget( {\n *         items: [ option1, option2, option3 ]\n *     } );\n *     $( 'body' ).append( buttonSelect.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options\n *\n * @class\n * @extends OO.ui.SelectWidget\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.ButtonSelectWidget = function OoUiButtonSelectWidget( config ) {\n\t// Parent constructor\n\tOO.ui.ButtonSelectWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.TabIndexedElement.call( this, config );\n\n\t// Events\n\tthis.$element.on( {\n\t\tfocus: this.bindDocumentKeyDownListener.bind( this ),\n\t\tblur: this.unbindDocumentKeyDownListener.bind( this )\n\t} );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-buttonSelectWidget' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ButtonSelectWidget, OO.ui.SelectWidget );\nOO.mixinClass( OO.ui.ButtonSelectWidget, OO.ui.mixin.TabIndexedElement );\n","/**\n * TabOptionWidget is an item in a {@link OO.ui.TabSelectWidget TabSelectWidget}.\n *\n * Currently, this class is only used by {@link OO.ui.IndexLayout index layouts}, which contain\n * {@link OO.ui.TabPanelLayout tab panel layouts}. See {@link OO.ui.IndexLayout IndexLayout}\n * for an example.\n *\n * @class\n * @extends OO.ui.OptionWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.TabOptionWidget = function OoUiTabOptionWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.TabOptionWidget.parent.call( this, config );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-tabOptionWidget' )\n\t\t.attr( 'role', 'tab' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.TabOptionWidget, OO.ui.OptionWidget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.TabOptionWidget.static.highlightable = false;\n","/**\n * TabSelectWidget is a list that contains {@link OO.ui.TabOptionWidget tab options}\n *\n * **Currently, this class is only used by {@link OO.ui.IndexLayout index layouts}.**\n *\n * @class\n * @extends OO.ui.SelectWidget\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.TabSelectWidget = function OoUiTabSelectWidget( config ) {\n\t// Parent constructor\n\tOO.ui.TabSelectWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.TabIndexedElement.call( this, config );\n\n\t// Events\n\tthis.$element.on( {\n\t\tfocus: this.bindDocumentKeyDownListener.bind( this ),\n\t\tblur: this.unbindDocumentKeyDownListener.bind( this )\n\t} );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-tabSelectWidget' )\n\t\t.attr( 'role', 'tablist' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.TabSelectWidget, OO.ui.SelectWidget );\nOO.mixinClass( OO.ui.TabSelectWidget, OO.ui.mixin.TabIndexedElement );\n","/**\n * TagItemWidgets are used within a {@link OO.ui.TagMultiselectWidget\n * TagMultiselectWidget} to display the selected items.\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.ItemWidget\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.FlaggedElement\n * @mixins OO.ui.mixin.TabIndexedElement\n * @mixins OO.ui.mixin.DraggableElement\n *\n * @constructor\n * @param {Object} [config] Configuration object\n * @cfg {boolean} [valid=true] Item is valid\n * @cfg {boolean} [fixed] Item is fixed. This means the item is\n *  always included in the values and cannot be removed.\n */\nOO.ui.TagItemWidget = function OoUiTagItemWidget( config ) {\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.TagItemWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.ItemWidget.call( this );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.FlaggedElement.call( this, config );\n\tOO.ui.mixin.TabIndexedElement.call( this, config );\n\tOO.ui.mixin.DraggableElement.call( this, config );\n\n\tthis.valid = config.valid === undefined ? true : !!config.valid;\n\tthis.fixed = !!config.fixed;\n\n\tthis.closeButton = new OO.ui.ButtonWidget( {\n\t\tframed: false,\n\t\ticon: 'close',\n\t\ttabIndex: -1,\n\t\ttitle: OO.ui.msg( 'ooui-item-remove' )\n\t} );\n\tthis.closeButton.setDisabled( this.isDisabled() );\n\n\t// Events\n\tthis.closeButton\n\t\t.connect( this, { click: 'remove' } );\n\tthis.$element\n\t\t.on( 'click', this.select.bind( this ) )\n\t\t.on( 'keydown', this.onKeyDown.bind( this ) )\n\t\t// Prevent propagation of mousedown; the tag item \"lives\" in the\n\t\t// clickable area of the TagMultiselectWidget, which listens to\n\t\t// mousedown to open the menu or popup. We want to prevent that\n\t\t// for clicks specifically on the tag itself, so the actions taken\n\t\t// are more deliberate. When the tag is clicked, it will emit the\n\t\t// selection event (similar to how #OO.ui.MultioptionWidget emits 'change')\n\t\t// and can be handled separately.\n\t\t.on( 'mousedown', function ( e ) { e.stopPropagation(); } );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-tagItemWidget' )\n\t\t.append( this.$label, this.closeButton.$element );\n};\n\n/* Initialization */\n\nOO.inheritClass( OO.ui.TagItemWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.TagItemWidget, OO.ui.mixin.ItemWidget );\nOO.mixinClass( OO.ui.TagItemWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.TagItemWidget, OO.ui.mixin.FlaggedElement );\nOO.mixinClass( OO.ui.TagItemWidget, OO.ui.mixin.TabIndexedElement );\nOO.mixinClass( OO.ui.TagItemWidget, OO.ui.mixin.DraggableElement );\n\n/* Events */\n\n/**\n * @event remove\n *\n * A remove action was performed on the item\n */\n\n/**\n * @event navigate\n * @param {string} direction Direction of the movement, forward or backwards\n *\n * A navigate action was performed on the item\n */\n\n/**\n * @event select\n *\n * The tag widget was selected. This can occur when the widget\n * is either clicked or enter was pressed on it.\n */\n\n/**\n * @event valid\n * @param {boolean} isValid Item is valid\n *\n * Item validity has changed\n */\n\n/**\n * @event fixed\n * @param {boolean} isFixed Item is fixed\n *\n * Item fixed state has changed\n */\n\n/* Methods */\n\n/**\n * Set this item as fixed, meaning it cannot be removed\n *\n * @param {string} [state] Item is fixed\n * @fires fixed\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TagItemWidget.prototype.setFixed = function ( state ) {\n\tstate = state === undefined ? !this.fixed : !!state;\n\n\tif ( this.fixed !== state ) {\n\t\tthis.fixed = state;\n\t\tif ( this.closeButton ) {\n\t\t\tthis.closeButton.toggle( !this.fixed );\n\t\t}\n\n\t\tif ( !this.fixed && this.elementGroup && !this.elementGroup.isDraggable() ) {\n\t\t\t// Only enable the state of the item if the\n\t\t\t// entire group is draggable\n\t\t\tthis.toggleDraggable( !this.fixed );\n\t\t}\n\t\tthis.$element.toggleClass( 'oo-ui-tagItemWidget-fixed', this.fixed );\n\n\t\tthis.emit( 'fixed', this.isFixed() );\n\t}\n\treturn this;\n};\n\n/**\n * Check whether the item is fixed\n * @return {boolean}\n */\nOO.ui.TagItemWidget.prototype.isFixed = function () {\n\treturn this.fixed;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.TagItemWidget.prototype.setDisabled = function ( state ) {\n\tif ( state && this.elementGroup && !this.elementGroup.isDisabled() ) {\n\t\tOO.ui.warnDeprecation( 'TagItemWidget#setDisabled: Disabling individual items is deprecated and will result in inconsistent behavior. Use #setFixed instead. See T193571.' );\n\t}\n\t// Parent method\n\tOO.ui.TagItemWidget.parent.prototype.setDisabled.call( this, state );\n\tif (\n\t\t!state &&\n\t\t// Verify we have a group, and that the widget is ready\n\t\tthis.toggleDraggable && this.elementGroup &&\n\t\t!this.isFixed() &&\n\t\t!this.elementGroup.isDraggable()\n\t) {\n\t\t// Only enable the draggable state of the item if the\n\t\t// entire group is draggable to begin with, and if the\n\t\t// item is not fixed\n\t\tthis.toggleDraggable( !state );\n\t}\n\n\tif ( this.closeButton ) {\n\t\tthis.closeButton.setDisabled( state );\n\t}\n\n\treturn this;\n};\n\n/**\n * Handle removal of the item\n *\n * This is mainly for extensibility concerns, so other children\n * of this class can change the behavior if they need to. This\n * is called by both clicking the 'remove' button but also\n * on keypress, which is harder to override if needed.\n *\n * @fires remove\n */\nOO.ui.TagItemWidget.prototype.remove = function () {\n\tif ( !this.isDisabled() && !this.isFixed() ) {\n\t\tthis.emit( 'remove' );\n\t}\n};\n\n/**\n * Handle a keydown event on the widget\n *\n * @fires navigate\n * @fires remove\n * @param {jQuery.Event} e Key down event\n * @return {boolean|undefined} false to stop the operation\n */\nOO.ui.TagItemWidget.prototype.onKeyDown = function ( e ) {\n\tvar movement;\n\n\tif ( !this.isDisabled() && !this.isFixed() && ( e.keyCode === OO.ui.Keys.BACKSPACE || e.keyCode === OO.ui.Keys.DELETE ) ) {\n\t\tthis.remove();\n\t\treturn false;\n\t} else if ( e.keyCode === OO.ui.Keys.ENTER ) {\n\t\tthis.select();\n\t\treturn false;\n\t} else if (\n\t\te.keyCode === OO.ui.Keys.LEFT ||\n\t\te.keyCode === OO.ui.Keys.RIGHT\n\t) {\n\t\tif ( OO.ui.Element.static.getDir( this.$element ) === 'rtl' ) {\n\t\t\tmovement = {\n\t\t\t\tleft: 'forwards',\n\t\t\t\tright: 'backwards'\n\t\t\t};\n\t\t} else {\n\t\t\tmovement = {\n\t\t\t\tleft: 'backwards',\n\t\t\t\tright: 'forwards'\n\t\t\t};\n\t\t}\n\n\t\tthis.emit(\n\t\t\t'navigate',\n\t\t\te.keyCode === OO.ui.Keys.LEFT ?\n\t\t\t\tmovement.left : movement.right\n\t\t);\n\t\treturn false;\n\t}\n};\n\n/**\n * Select this item\n *\n * @fires select\n */\nOO.ui.TagItemWidget.prototype.select = function () {\n\tif ( !this.isDisabled() ) {\n\t\tthis.emit( 'select' );\n\t}\n};\n\n/**\n * Set the valid state of this item\n *\n * @param {boolean} [valid] Item is valid\n * @fires valid\n */\nOO.ui.TagItemWidget.prototype.toggleValid = function ( valid ) {\n\tvalid = valid === undefined ? !this.valid : !!valid;\n\n\tif ( this.valid !== valid ) {\n\t\tthis.valid = valid;\n\n\t\tthis.setFlags( { invalid: !this.valid } );\n\n\t\tthis.emit( 'valid', this.valid );\n\t}\n};\n\n/**\n * Check whether the item is valid\n *\n * @return {boolean} Item is valid\n */\nOO.ui.TagItemWidget.prototype.isValid = function () {\n\treturn this.valid;\n};\n","/**\n * A basic tag multiselect widget, similar in concept to {@link OO.ui.ComboBoxInputWidget combo box widget}\n * that allows the user to add multiple values that are displayed in a tag area.\n *\n * This widget is a base widget; see {@link OO.ui.MenuTagMultiselectWidget MenuTagMultiselectWidget} and\n * {@link OO.ui.PopupTagMultiselectWidget PopupTagMultiselectWidget} for the implementations that use\n * a menu and a popup respectively.\n *\n *     @example\n *     // Example: A basic TagMultiselectWidget.\n *     var widget = new OO.ui.TagMultiselectWidget( {\n *         inputPosition: 'outline',\n *         allowedValues: [ 'Option 1', 'Option 2', 'Option 3' ],\n *         selected: [ 'Option 1' ]\n *     } );\n *     $( 'body' ).append( widget.$element );\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.GroupWidget\n * @mixins OO.ui.mixin.DraggableGroupElement\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.TabIndexedElement\n * @mixins OO.ui.mixin.FlaggedElement\n *\n * @constructor\n * @param {Object} config Configuration object\n * @cfg {Object} [input] Configuration options for the input widget\n * @cfg {OO.ui.InputWidget} [inputWidget] An optional input widget. If given, it will\n *  replace the input widget used in the TagMultiselectWidget. If not given,\n *  TagMultiselectWidget creates its own.\n * @cfg {boolean} [inputPosition='inline'] Position of the input. Options are:\n *  - inline: The input is invisible, but exists inside the tag list, so\n *    the user types into the tag groups to add tags.\n *  - outline: The input is underneath the tag area.\n *  - none: No input supplied\n * @cfg {boolean} [allowEditTags=true] Allow editing of the tags by clicking them\n * @cfg {boolean} [allowArbitrary=false] Allow data items to be added even if\n *  not present in the menu.\n * @cfg {Object[]} [allowedValues] An array representing the allowed items\n *  by their datas.\n * @cfg {boolean} [allowDuplicates=false] Allow duplicate items to be added\n * @cfg {boolean} [allowDisplayInvalidTags=false] Allow the display of\n *  invalid tags. These tags will display with an invalid state, and\n *  the widget as a whole will have an invalid state if any invalid tags\n *  are present.\n * @cfg {number} [tagLimit] An optional limit on the number of selected options.\n *  If 'tagLimit' is set and is reached, the input is disabled, not allowing any\n *  additions. If 'tagLimit' is unset or is 0, an unlimited number of items can be\n *  added.\n * @cfg {boolean} [allowReordering=true] Allow reordering of the items\n * @cfg {Object[]|String[]} [selected] A set of selected tags. If given,\n *  these will appear in the tag list on initialization, as long as they\n *  pass the validity tests.\n */\nOO.ui.TagMultiselectWidget = function OoUiTagMultiselectWidget( config ) {\n\tvar inputEvents,\n\t\trAF = window.requestAnimationFrame || setTimeout,\n\t\twidget = this,\n\t\t$tabFocus = $( '<span>' )\n\t\t\t.addClass( 'oo-ui-tagMultiselectWidget-focusTrap' );\n\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.TagMultiselectWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupWidget.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.TabIndexedElement.call( this, config );\n\tOO.ui.mixin.FlaggedElement.call( this, config );\n\tOO.ui.mixin.DraggableGroupElement.call( this, config );\n\n\tthis.toggleDraggable(\n\t\tconfig.allowReordering === undefined ?\n\t\t\ttrue : !!config.allowReordering\n\t);\n\n\tthis.inputPosition =\n\t\tthis.constructor.static.allowedInputPositions.indexOf( config.inputPosition ) > -1 ?\n\t\t\tconfig.inputPosition : 'inline';\n\tthis.allowEditTags = config.allowEditTags === undefined ? true : !!config.allowEditTags;\n\tthis.allowArbitrary = !!config.allowArbitrary;\n\tthis.allowDuplicates = !!config.allowDuplicates;\n\tthis.allowedValues = config.allowedValues || [];\n\tthis.allowDisplayInvalidTags = config.allowDisplayInvalidTags;\n\tthis.hasInput = this.inputPosition !== 'none';\n\tthis.tagLimit = config.tagLimit;\n\tthis.height = null;\n\tthis.valid = true;\n\n\tthis.$content = $( '<div>' )\n\t\t.addClass( 'oo-ui-tagMultiselectWidget-content' );\n\tthis.$handle = $( '<div>' )\n\t\t.addClass( 'oo-ui-tagMultiselectWidget-handle' )\n\t\t.append(\n\t\t\tthis.$indicator,\n\t\t\tthis.$icon,\n\t\t\tthis.$content\n\t\t\t\t.append(\n\t\t\t\t\tthis.$group\n\t\t\t\t\t\t.addClass( 'oo-ui-tagMultiselectWidget-group' )\n\t\t\t\t)\n\t\t);\n\n\t// Events\n\tthis.aggregate( {\n\t\tremove: 'itemRemove',\n\t\tnavigate: 'itemNavigate',\n\t\tselect: 'itemSelect',\n\t\tfixed: 'itemFixed'\n\t} );\n\tthis.connect( this, {\n\t\titemRemove: 'onTagRemove',\n\t\titemSelect: 'onTagSelect',\n\t\titemFixed: 'onTagFixed',\n\t\titemNavigate: 'onTagNavigate',\n\t\tchange: 'onChangeTags'\n\t} );\n\tthis.$handle.on( {\n\t\tmousedown: this.onMouseDown.bind( this )\n\t} );\n\n\t// Initialize\n\tthis.$element\n\t\t.addClass( 'oo-ui-tagMultiselectWidget' )\n\t\t.append( this.$handle );\n\n\tif ( this.hasInput ) {\n\t\tif ( config.inputWidget ) {\n\t\t\tthis.input = config.inputWidget;\n\t\t} else {\n\t\t\tthis.input = new OO.ui.TextInputWidget( $.extend( {\n\t\t\t\tplaceholder: config.placeholder,\n\t\t\t\tclasses: [ 'oo-ui-tagMultiselectWidget-input' ]\n\t\t\t}, config.input ) );\n\t\t}\n\t\tthis.input.setDisabled( this.isDisabled() );\n\n\t\tinputEvents = {\n\t\t\tfocus: this.onInputFocus.bind( this ),\n\t\t\tblur: this.onInputBlur.bind( this ),\n\t\t\t'propertychange change click mouseup keydown keyup input cut paste select focus':\n\t\t\t\tOO.ui.debounce( this.updateInputSize.bind( this ) ),\n\t\t\tkeydown: this.onInputKeyDown.bind( this ),\n\t\t\tkeypress: this.onInputKeyPress.bind( this )\n\t\t};\n\n\t\tthis.input.$input.on( inputEvents );\n\t\tthis.inputPlaceholder = this.input.$input.attr( 'placeholder' );\n\n\t\tif ( this.inputPosition === 'outline' ) {\n\t\t\t// Override max-height for the input widget\n\t\t\t// in the case the widget is outline so it can\n\t\t\t// stretch all the way if the widget is wide\n\t\t\tthis.input.$element.css( 'max-width', 'inherit' );\n\t\t\tthis.$element\n\t\t\t\t.addClass( 'oo-ui-tagMultiselectWidget-outlined' )\n\t\t\t\t.append( this.input.$element );\n\t\t} else {\n\t\t\tthis.$element.addClass( 'oo-ui-tagMultiselectWidget-inlined' );\n\t\t\t// HACK: When the widget is using 'inline' input, the\n\t\t\t// behavior needs to only use the $input itself\n\t\t\t// so we style and size it accordingly (otherwise\n\t\t\t// the styling and sizing can get very convoluted\n\t\t\t// when the wrapping divs and other elements)\n\t\t\t// We are taking advantage of still being able to\n\t\t\t// call the widget itself for operations like\n\t\t\t// .getValue() and setDisabled() and .focus() but\n\t\t\t// having only the $input attached to the DOM\n\t\t\tthis.$content.append( this.input.$input );\n\t\t}\n\t} else {\n\t\tthis.$content.append( $tabFocus );\n\t}\n\n\tthis.setTabIndexedElement(\n\t\tthis.hasInput ?\n\t\t\tthis.input.$input :\n\t\t\t$tabFocus\n\t);\n\n\tif ( config.selected ) {\n\t\tthis.setValue( config.selected );\n\t}\n\n\t// HACK: Input size needs to be calculated after everything\n\t// else is rendered\n\trAF( function () {\n\t\tif ( widget.hasInput ) {\n\t\t\twidget.updateInputSize();\n\t\t}\n\t} );\n};\n\n/* Initialization */\n\nOO.inheritClass( OO.ui.TagMultiselectWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.GroupWidget );\nOO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.DraggableGroupElement );\nOO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.TabIndexedElement );\nOO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.FlaggedElement );\n\n/* Static properties */\n\n/**\n * Allowed input positions.\n * - inline: The input is inside the tag list\n * - outline: The input is under the tag list\n * - none: There is no input\n *\n * @property {Array}\n */\nOO.ui.TagMultiselectWidget.static.allowedInputPositions = [ 'inline', 'outline', 'none' ];\n\n/* Methods */\n\n/**\n * Handle mouse down events.\n *\n * @private\n * @param {jQuery.Event} e Mouse down event\n * @return {boolean} False to prevent defaults\n */\nOO.ui.TagMultiselectWidget.prototype.onMouseDown = function ( e ) {\n\tif (\n\t\t!this.isDisabled() &&\n\t\t( !this.hasInput || e.target !== this.input.$input[ 0 ] ) &&\n\t\te.which === OO.ui.MouseButtons.LEFT\n\t) {\n\t\tthis.focus();\n\t\treturn false;\n\t}\n};\n\n/**\n * Handle key press events.\n *\n * @private\n * @param {jQuery.Event} e Key press event\n * @return {boolean} Whether to prevent defaults\n */\nOO.ui.TagMultiselectWidget.prototype.onInputKeyPress = function ( e ) {\n\tvar stopOrContinue,\n\t\twithMetaKey = e.metaKey || e.ctrlKey;\n\n\tif ( !this.isDisabled() ) {\n\t\tif ( e.which === OO.ui.Keys.ENTER ) {\n\t\t\tstopOrContinue = this.doInputEnter( e, withMetaKey );\n\t\t}\n\n\t\t// Make sure the input gets resized.\n\t\tsetTimeout( this.updateInputSize.bind( this ), 0 );\n\t\treturn stopOrContinue;\n\t}\n};\n\n/**\n * Handle key down events.\n *\n * @private\n * @param {jQuery.Event} e Key down event\n * @return {boolean}\n */\nOO.ui.TagMultiselectWidget.prototype.onInputKeyDown = function ( e ) {\n\tvar movement, direction,\n\t\twidget = this,\n\t\twithMetaKey = e.metaKey || e.ctrlKey,\n\t\tisMovementInsideInput = function ( direction ) {\n\t\t\tvar inputRange = widget.input.getRange(),\n\t\t\t\tinputValue = widget.hasInput && widget.input.getValue();\n\n\t\t\tif ( direction === 'forwards' && inputRange.to > inputValue.length - 1 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif ( direction === 'backwards' && inputRange.from <= 0 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t};\n\n\tif ( !this.isDisabled() ) {\n\t\t// 'keypress' event is not triggered for Backspace\n\t\tif ( e.keyCode === OO.ui.Keys.BACKSPACE ) {\n\t\t\treturn this.doInputBackspace( e, withMetaKey );\n\t\t} else if ( e.keyCode === OO.ui.Keys.ESCAPE ) {\n\t\t\treturn this.doInputEscape( e );\n\t\t} else if (\n\t\t\te.keyCode === OO.ui.Keys.LEFT ||\n\t\t\te.keyCode === OO.ui.Keys.RIGHT\n\t\t) {\n\t\t\tif ( OO.ui.Element.static.getDir( this.$element ) === 'rtl' ) {\n\t\t\t\tmovement = {\n\t\t\t\t\tleft: 'forwards',\n\t\t\t\t\tright: 'backwards'\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tmovement = {\n\t\t\t\t\tleft: 'backwards',\n\t\t\t\t\tright: 'forwards'\n\t\t\t\t};\n\t\t\t}\n\t\t\tdirection = e.keyCode === OO.ui.Keys.LEFT ?\n\t\t\t\tmovement.left : movement.right;\n\n\t\t\tif ( !this.hasInput || !isMovementInsideInput( direction ) ) {\n\t\t\t\treturn this.doInputArrow( e, direction, withMetaKey );\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * Respond to input focus event\n */\nOO.ui.TagMultiselectWidget.prototype.onInputFocus = function () {\n\tthis.$element.addClass( 'oo-ui-tagMultiselectWidget-focus' );\n\t// Reset validity\n\tthis.toggleValid( true );\n};\n\n/**\n * Respond to input blur event\n */\nOO.ui.TagMultiselectWidget.prototype.onInputBlur = function () {\n\tthis.$element.removeClass( 'oo-ui-tagMultiselectWidget-focus' );\n\n\t// Set the widget as invalid if there's text in the input\n\tthis.addTagFromInput();\n\tthis.toggleValid( this.checkValidity() && ( !this.hasInput || !this.input.getValue() ) );\n};\n\n/**\n * Perform an action after the enter key on the input\n *\n * @param {jQuery.Event} e Event data\n * @param {boolean} [withMetaKey] Whether this key was pressed with\n * a meta key like 'ctrl'\n * @return {boolean} Whether to prevent defaults\n */\nOO.ui.TagMultiselectWidget.prototype.doInputEnter = function () {\n\tthis.addTagFromInput();\n\treturn false;\n};\n\n/**\n * Perform an action responding to the enter key on the input\n *\n * @param {jQuery.Event} e Event data\n * @param {boolean} [withMetaKey] Whether this key was pressed with\n * a meta key like 'ctrl'\n * @return {boolean} Whether to prevent defaults\n */\nOO.ui.TagMultiselectWidget.prototype.doInputBackspace = function ( e, withMetaKey ) {\n\tvar items, item;\n\n\tif (\n\t\tthis.inputPosition === 'inline' &&\n\t\tthis.input.getValue() === '' &&\n\t\t!this.isEmpty()\n\t) {\n\t\t// Delete the last item\n\t\titems = this.getItems();\n\t\titem = items[ items.length - 1 ];\n\n\t\tif ( !item.isDisabled() && !item.isFixed() ) {\n\t\t\tthis.removeItems( [ item ] );\n\t\t\t// If Ctrl/Cmd was pressed, delete item entirely.\n\t\t\t// Otherwise put it into the text field for editing.\n\t\t\tif ( !withMetaKey ) {\n\t\t\t\tthis.input.setValue( item.getData() );\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n};\n\n/**\n * Perform an action after the escape key on the input\n *\n * @param {jQuery.Event} e Event data\n */\nOO.ui.TagMultiselectWidget.prototype.doInputEscape = function () {\n\tthis.clearInput();\n};\n\n/**\n * Perform an action after the arrow key on the input, select the previous\n * item from the input.\n * See #getPreviousItem\n *\n * @param {jQuery.Event} e Event data\n * @param {string} direction Direction of the movement; forwards or backwards\n * @param {boolean} [withMetaKey] Whether this key was pressed with\n *  a meta key like 'ctrl'\n */\nOO.ui.TagMultiselectWidget.prototype.doInputArrow = function ( e, direction ) {\n\tif (\n\t\tthis.inputPosition === 'inline' &&\n\t\t!this.isEmpty() &&\n\t\tdirection === 'backwards'\n\t) {\n\t\t// Get previous item\n\t\tthis.getPreviousItem().focus();\n\t}\n};\n\n/**\n * Respond to item select event\n *\n * @param {OO.ui.TagItemWidget} item Selected item\n */\nOO.ui.TagMultiselectWidget.prototype.onTagSelect = function ( item ) {\n\tif ( this.hasInput && this.allowEditTags && !item.isFixed() ) {\n\t\tif ( this.input.getValue() ) {\n\t\t\tthis.addTagFromInput();\n\t\t}\n\t\t// 1. Get the label of the tag into the input\n\t\tthis.input.setValue( item.getData() );\n\t\t// 2. Remove the tag\n\t\tthis.removeItems( [ item ] );\n\t\t// 3. Focus the input\n\t\tthis.focus();\n\t}\n};\n\n/**\n * Respond to item fixed state change\n *\n * @param {OO.ui.TagItemWidget} item Selected item\n */\nOO.ui.TagMultiselectWidget.prototype.onTagFixed = function ( item ) {\n\tvar i,\n\t\titems = this.getItems();\n\n\t// Move item to the end of the static items\n\tfor ( i = 0; i < items.length; i++ ) {\n\t\tif ( items[ i ] !== item && !items[ i ].isFixed() ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\tthis.addItems( item, i );\n};\n/**\n * Respond to change event, where items were added, removed, or cleared.\n */\nOO.ui.TagMultiselectWidget.prototype.onChangeTags = function () {\n\tvar isUnderLimit = this.isUnderLimit();\n\n\t// Reset validity\n\tthis.toggleValid(\n\t\tthis.checkValidity() &&\n\t\t!( this.hasInput && this.input.getValue() )\n\t);\n\n\tif ( this.hasInput ) {\n\t\tthis.updateInputSize();\n\t\tif ( !isUnderLimit ) {\n\t\t\t// Clear the input\n\t\t\tthis.input.setValue( '' );\n\t\t}\n\t\tif ( this.inputPosition === 'outline' ) {\n\t\t\t// Show/clear the placeholder and enable/disable the input\n\t\t\t// based on whether we are/aren't under the specified limit\n\t\t\tthis.input.$input.attr( 'placeholder', isUnderLimit ? this.inputPlaceholder : '' );\n\t\t\tthis.input.setDisabled( !isUnderLimit );\n\t\t} else {\n\t\t\t// Show/hide the input\n\t\t\tthis.input.$input.toggleClass( 'oo-ui-element-hidden', !isUnderLimit );\n\t\t}\n\t}\n\tthis.updateIfHeightChanged();\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.TagMultiselectWidget.prototype.setDisabled = function ( isDisabled ) {\n\t// Parent method\n\tOO.ui.TagMultiselectWidget.parent.prototype.setDisabled.call( this, isDisabled );\n\n\tif ( this.hasInput && this.input ) {\n\t\tif ( !isDisabled ) {\n\t\t\tthis.updateInputSize();\n\t\t}\n\t\tthis.input.setDisabled( !!isDisabled && !this.isUnderLimit() );\n\t}\n\n\tif ( this.items ) {\n\t\tthis.getItems().forEach( function ( item ) {\n\t\t\titem.setDisabled( !!isDisabled );\n\t\t} );\n\t}\n};\n\n/**\n * Respond to tag remove event\n * @param {OO.ui.TagItemWidget} item Removed tag\n */\nOO.ui.TagMultiselectWidget.prototype.onTagRemove = function ( item ) {\n\tthis.removeTagByData( item.getData() );\n};\n\n/**\n * Respond to navigate event on the tag\n *\n * @param {OO.ui.TagItemWidget} item Removed tag\n * @param {string} direction Direction of movement; 'forwards' or 'backwards'\n */\nOO.ui.TagMultiselectWidget.prototype.onTagNavigate = function ( item, direction ) {\n\tvar firstItem = this.getItems()[ 0 ];\n\n\tif ( direction === 'forwards' ) {\n\t\tthis.getNextItem( item ).focus();\n\t} else if ( !this.inputPosition === 'inline' || item !== firstItem ) {\n\t\t// If the widget has an inline input, we want to stop at the starting edge\n\t\t// of the tags\n\t\tthis.getPreviousItem( item ).focus();\n\t}\n};\n\n/**\n * Add tag from input value\n */\nOO.ui.TagMultiselectWidget.prototype.addTagFromInput = function () {\n\tvar val = this.input.getValue(),\n\t\tisValid = this.isAllowedData( val );\n\n\tif ( !val ) {\n\t\treturn;\n\t}\n\n\tif ( isValid || this.allowDisplayInvalidTags ) {\n\t\tthis.clearInput();\n\t\tthis.addTag( val );\n\t}\n};\n\n/**\n * Clear the input\n */\nOO.ui.TagMultiselectWidget.prototype.clearInput = function () {\n\tthis.input.setValue( '' );\n};\n\n/**\n * Check whether the given value is a duplicate of an existing\n * tag already in the list.\n *\n * @param {string|Object} data Requested value\n * @return {boolean} Value is duplicate\n */\nOO.ui.TagMultiselectWidget.prototype.isDuplicateData = function ( data ) {\n\treturn !!this.findItemFromData( data );\n};\n\n/**\n * Check whether a given value is allowed to be added\n *\n * @param {string|Object} data Requested value\n * @return {boolean} Value is allowed\n */\nOO.ui.TagMultiselectWidget.prototype.isAllowedData = function ( data ) {\n\tif (\n\t\t!this.allowDuplicates &&\n\t\tthis.isDuplicateData( data )\n\t) {\n\t\treturn false;\n\t}\n\n\tif ( this.allowArbitrary ) {\n\t\treturn true;\n\t}\n\n\t// Check with allowed values\n\tif (\n\t\tthis.getAllowedValues().some( function ( value ) {\n\t\t\treturn data === value;\n\t\t} )\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n/**\n * Get the allowed values list\n *\n * @return {string[]} Allowed data values\n */\nOO.ui.TagMultiselectWidget.prototype.getAllowedValues = function () {\n\treturn this.allowedValues;\n};\n\n/**\n * Add a value to the allowed values list\n *\n * @param {string} value Allowed data value\n */\nOO.ui.TagMultiselectWidget.prototype.addAllowedValue = function ( value ) {\n\tif ( this.allowedValues.indexOf( value ) === -1 ) {\n\t\tthis.allowedValues.push( value );\n\t}\n};\n\n/**\n * Get the datas of the currently selected items\n *\n * @return {string[]|Object[]} Datas of currently selected items\n */\nOO.ui.TagMultiselectWidget.prototype.getValue = function () {\n\treturn this.getItems()\n\t\t.filter( function ( item ) {\n\t\t\treturn item.isValid();\n\t\t} )\n\t\t.map( function ( item ) {\n\t\t\treturn item.getData();\n\t\t} );\n};\n\n/**\n * Set the value of this widget by datas.\n *\n * @param {string|string[]|Object|Object[]} valueObject An object representing the data\n *  and label of the value. If the widget allows arbitrary values,\n *  the items will be added as-is. Otherwise, the data value will\n *  be checked against allowedValues.\n *  This object must contain at least a data key. Example:\n *  { data: 'foo', label: 'Foo item' }\n *  For multiple items, use an array of objects. For example:\n *  [\n *     { data: 'foo', label: 'Foo item' },\n *     { data: 'bar', label: 'Bar item' }\n *  ]\n *  Value can also be added with plaintext array, for example:\n *  [ 'foo', 'bar', 'bla' ] or a single string, like 'foo'\n */\nOO.ui.TagMultiselectWidget.prototype.setValue = function ( valueObject ) {\n\tvalueObject = Array.isArray( valueObject ) ? valueObject : [ valueObject ];\n\n\tthis.clearItems();\n\tvalueObject.forEach( function ( obj ) {\n\t\tif ( typeof obj === 'string' ) {\n\t\t\tthis.addTag( obj );\n\t\t} else {\n\t\t\tthis.addTag( obj.data, obj.label );\n\t\t}\n\t}.bind( this ) );\n};\n\n/**\n * Add tag to the display area\n *\n * @param {string|Object} data Tag data\n * @param {string} [label] Tag label. If no label is provided, the\n *  stringified version of the data will be used instead.\n * @return {boolean} Item was added successfully\n */\nOO.ui.TagMultiselectWidget.prototype.addTag = function ( data, label ) {\n\tvar newItemWidget,\n\t\tisValid = this.isAllowedData( data );\n\n\tif ( this.isUnderLimit() && ( isValid || this.allowDisplayInvalidTags ) ) {\n\t\tnewItemWidget = this.createTagItemWidget( data, label );\n\t\tnewItemWidget.toggleValid( isValid );\n\t\tthis.addItems( [ newItemWidget ] );\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n/**\n * Check whether the number of current tags is within the limit.\n *\n * @return {boolean} True if current tag count is within the limit or\n *  if 'tagLimit' is not set\n */\nOO.ui.TagMultiselectWidget.prototype.isUnderLimit = function () {\n\treturn !this.tagLimit ||\n\t\tthis.getItemCount() < this.tagLimit;\n};\n\n/**\n * Remove tag by its data property.\n *\n * @param {string|Object} data Tag data\n */\nOO.ui.TagMultiselectWidget.prototype.removeTagByData = function ( data ) {\n\tvar item = this.findItemFromData( data );\n\n\tthis.removeItems( [ item ] );\n};\n\n/**\n * Construct a OO.ui.TagItemWidget (or a subclass thereof) from given label and data.\n *\n * @protected\n * @param {string} data Item data\n * @param {string} label The label text.\n * @return {OO.ui.TagItemWidget}\n */\nOO.ui.TagMultiselectWidget.prototype.createTagItemWidget = function ( data, label ) {\n\tlabel = label || data;\n\n\treturn new OO.ui.TagItemWidget( { data: data, label: label } );\n};\n\n/**\n * Given an item, returns the item after it. If the item is already the\n * last item, return `this.input`. If no item is passed, returns the\n * very first item.\n *\n * @protected\n * @param {OO.ui.TagItemWidget} [item] Tag item\n * @return {OO.ui.Widget} The next widget available.\n */\nOO.ui.TagMultiselectWidget.prototype.getNextItem = function ( item ) {\n\tvar itemIndex = this.items.indexOf( item );\n\n\tif ( item === undefined || itemIndex === -1 ) {\n\t\treturn this.items[ 0 ];\n\t}\n\n\tif ( itemIndex === this.items.length - 1 ) { // Last item\n\t\tif ( this.hasInput ) {\n\t\t\treturn this.input;\n\t\t} else {\n\t\t\t// Return first item\n\t\t\treturn this.items[ 0 ];\n\t\t}\n\t} else {\n\t\treturn this.items[ itemIndex + 1 ];\n\t}\n};\n\n/**\n * Given an item, returns the item before it. If the item is already the\n * first item, return `this.input`. If no item is passed, returns the\n * very last item.\n *\n * @protected\n * @param {OO.ui.TagItemWidget} [item] Tag item\n * @return {OO.ui.Widget} The previous widget available.\n */\nOO.ui.TagMultiselectWidget.prototype.getPreviousItem = function ( item ) {\n\tvar itemIndex = this.items.indexOf( item );\n\n\tif ( item === undefined || itemIndex === -1 ) {\n\t\treturn this.items[ this.items.length - 1 ];\n\t}\n\n\tif ( itemIndex === 0 ) {\n\t\tif ( this.hasInput ) {\n\t\t\treturn this.input;\n\t\t} else {\n\t\t\t// Return the last item\n\t\t\treturn this.items[ this.items.length - 1 ];\n\t\t}\n\t} else {\n\t\treturn this.items[ itemIndex - 1 ];\n\t}\n};\n\n/**\n * Update the dimensions of the text input field to encompass all available area.\n * This is especially relevant for when the input is at the edge of a line\n * and should get smaller. The usual operation (as an inline-block with min-width)\n * does not work in that case, pushing the input downwards to the next line.\n *\n * @private\n */\nOO.ui.TagMultiselectWidget.prototype.updateInputSize = function () {\n\tvar $lastItem, direction, contentWidth, currentWidth, bestWidth;\n\tif ( this.inputPosition === 'inline' && !this.isDisabled() ) {\n\t\tif ( this.input.$input[ 0 ].scrollWidth === 0 ) {\n\t\t\t// Input appears to be attached but not visible.\n\t\t\t// Don't attempt to adjust its size, because our measurements\n\t\t\t// are going to fail anyway.\n\t\t\treturn;\n\t\t}\n\t\tthis.input.$input.css( 'width', '1em' );\n\t\t$lastItem = this.$group.children().last();\n\t\tdirection = OO.ui.Element.static.getDir( this.$handle );\n\n\t\t// Get the width of the input with the placeholder text as\n\t\t// the value and save it so that we don't keep recalculating\n\t\tif (\n\t\t\tthis.contentWidthWithPlaceholder === undefined &&\n\t\t\tthis.input.getValue() === '' &&\n\t\t\tthis.input.$input.attr( 'placeholder' ) !== undefined\n\t\t) {\n\t\t\tthis.input.setValue( this.input.$input.attr( 'placeholder' ) );\n\t\t\tthis.contentWidthWithPlaceholder = this.input.$input[ 0 ].scrollWidth;\n\t\t\tthis.input.setValue( '' );\n\n\t\t}\n\n\t\t// Always keep the input wide enough for the placeholder text\n\t\tcontentWidth = Math.max(\n\t\t\tthis.input.$input[ 0 ].scrollWidth,\n\t\t\t// undefined arguments in Math.max lead to NaN\n\t\t\t( this.contentWidthWithPlaceholder === undefined ) ?\n\t\t\t\t0 : this.contentWidthWithPlaceholder\n\t\t);\n\t\tcurrentWidth = this.input.$input.width();\n\n\t\tif ( contentWidth < currentWidth ) {\n\t\t\tthis.updateIfHeightChanged();\n\t\t\t// All is fine, don't perform expensive calculations\n\t\t\treturn;\n\t\t}\n\n\t\tif ( $lastItem.length === 0 ) {\n\t\t\tbestWidth = this.$content.innerWidth();\n\t\t} else {\n\t\t\tbestWidth = direction === 'ltr' ?\n\t\t\t\tthis.$content.innerWidth() - $lastItem.position().left - $lastItem.outerWidth() :\n\t\t\t\t$lastItem.position().left;\n\t\t}\n\n\t\t// Some safety margin for sanity, because I *really* don't feel like finding out where the few\n\t\t// pixels this is off by are coming from.\n\t\tbestWidth -= 13;\n\t\tif ( contentWidth > bestWidth ) {\n\t\t\t// This will result in the input getting shifted to the next line\n\t\t\tbestWidth = this.$content.innerWidth() - 13;\n\t\t}\n\t\tthis.input.$input.width( Math.floor( bestWidth ) );\n\t\tthis.updateIfHeightChanged();\n\t} else {\n\t\tthis.updateIfHeightChanged();\n\t}\n};\n\n/**\n * Determine if widget height changed, and if so,\n * emit the resize event. This is useful for when there are either\n * menus or popups attached to the bottom of the widget, to allow\n * them to change their positioning in case the widget moved down\n * or up.\n *\n * @private\n */\nOO.ui.TagMultiselectWidget.prototype.updateIfHeightChanged = function () {\n\tvar height = this.$element.height();\n\tif ( height !== this.height ) {\n\t\tthis.height = height;\n\t\tthis.emit( 'resize' );\n\t}\n};\n\n/**\n * Check whether all items in the widget are valid\n *\n * @return {boolean} Widget is valid\n */\nOO.ui.TagMultiselectWidget.prototype.checkValidity = function () {\n\treturn this.getItems().every( function ( item ) {\n\t\treturn item.isValid();\n\t} );\n};\n\n/**\n * Set the valid state of this item\n *\n * @param {boolean} [valid] Item is valid\n * @fires valid\n */\nOO.ui.TagMultiselectWidget.prototype.toggleValid = function ( valid ) {\n\tvalid = valid === undefined ? !this.valid : !!valid;\n\n\tif ( this.valid !== valid ) {\n\t\tthis.valid = valid;\n\n\t\tthis.setFlags( { invalid: !this.valid } );\n\n\t\tthis.emit( 'valid', this.valid );\n\t}\n};\n\n/**\n * Get the current valid state of the widget\n *\n * @return {boolean} Widget is valid\n */\nOO.ui.TagMultiselectWidget.prototype.isValid = function () {\n\treturn this.valid;\n};\n","/**\n * PopupTagMultiselectWidget is a {@link OO.ui.TagMultiselectWidget OO.ui.TagMultiselectWidget} intended\n * to use a popup. The popup can be configured to have a default input to insert values into the widget.\n *\n *     @example\n *     // Example: A basic PopupTagMultiselectWidget.\n *     var widget = new OO.ui.PopupTagMultiselectWidget();\n *     $( 'body' ).append( widget.$element );\n *\n *     // Example: A PopupTagMultiselectWidget with an external popup.\n *     var popupInput = new OO.ui.TextInputWidget(),\n *         widget = new OO.ui.PopupTagMultiselectWidget( {\n *            popupInput: popupInput,\n *            popup: {\n *               $content: popupInput.$element\n *            }\n *         } );\n *     $( 'body' ).append( widget.$element );\n *\n * @class\n * @extends OO.ui.TagMultiselectWidget\n * @mixins OO.ui.mixin.PopupElement\n *\n * @param {Object} config Configuration object\n * @cfg {jQuery} [$overlay] An overlay for the popup.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n * @cfg {Object} [popup] Configuration options for the popup\n * @cfg {OO.ui.InputWidget} [popupInput] An input widget inside the popup that will be\n *  focused when the popup is opened and will be used as replacement for the\n *  general input in the widget.\n * @deprecated\n */\nOO.ui.PopupTagMultiselectWidget = function OoUiPopupTagMultiselectWidget( config ) {\n\tvar defaultInput,\n\t\tdefaultConfig = { popup: {} };\n\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.PopupTagMultiselectWidget.parent.call( this, $.extend( { inputPosition: 'none' }, config ) );\n\n\tthis.$overlay = ( config.$overlay === true ? OO.ui.getDefaultOverlay() : config.$overlay ) || this.$element;\n\n\tif ( !config.popup ) {\n\t\t// For the default base implementation, we give a popup\n\t\t// with an input widget inside it. For any other use cases\n\t\t// the popup needs to be populated externally and the\n\t\t// event handled to add tags separately and manually\n\t\tdefaultInput = new OO.ui.TextInputWidget();\n\n\t\tdefaultConfig.popupInput = defaultInput;\n\t\tdefaultConfig.popup.$content = defaultInput.$element;\n\t\tdefaultConfig.popup.padded = true;\n\n\t\tthis.$element.addClass( 'oo-ui-popupTagMultiselectWidget-defaultPopup' );\n\t}\n\n\t// Add overlay, and add that to the autoCloseIgnore\n\tdefaultConfig.popup.$overlay = this.$overlay;\n\tdefaultConfig.popup.$autoCloseIgnore = this.hasInput ?\n\t\tthis.input.$element.add( this.$overlay ) : this.$overlay;\n\n\t// Allow extending any of the above\n\tconfig = $.extend( defaultConfig, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.PopupElement.call( this, config );\n\n\tif ( this.hasInput ) {\n\t\tthis.input.$input.on( 'focus', this.popup.toggle.bind( this.popup, true ) );\n\t}\n\n\t// Configuration options\n\tthis.popupInput = config.popupInput;\n\tif ( this.popupInput ) {\n\t\tthis.popupInput.connect( this, {\n\t\t\tenter: 'onPopupInputEnter'\n\t\t} );\n\t}\n\n\t// Events\n\tthis.on( 'resize', this.popup.updateDimensions.bind( this.popup ) );\n\tthis.popup.connect( this, { toggle: 'onPopupToggle' } );\n\tthis.$tabIndexed\n\t\t.on( 'focus', this.onFocus.bind( this ) );\n\n\t// Initialize\n\tthis.$element\n\t\t.append( this.popup.$element )\n\t\t.addClass( 'oo-ui-popupTagMultiselectWidget' );\n\n\t// Deprecation warning\n\tOO.ui.warnDeprecation( 'PopupTagMultiselectWidget: Deprecated widget. Use MenuTagMultiselectWidget instead. See T208821.' );\n};\n\n/* Initialization */\n\nOO.inheritClass( OO.ui.PopupTagMultiselectWidget, OO.ui.TagMultiselectWidget );\nOO.mixinClass( OO.ui.PopupTagMultiselectWidget, OO.ui.mixin.PopupElement );\n\n/* Methods */\n\n/**\n * Focus event handler.\n *\n * @private\n */\nOO.ui.PopupTagMultiselectWidget.prototype.onFocus = function () {\n\tthis.popup.toggle( true );\n};\n\n/**\n * Respond to popup toggle event\n *\n * @param {boolean} isVisible Popup is visible\n */\nOO.ui.PopupTagMultiselectWidget.prototype.onPopupToggle = function ( isVisible ) {\n\tif ( isVisible && this.popupInput ) {\n\t\tthis.popupInput.focus();\n\t}\n};\n\n/**\n * Respond to popup input enter event\n */\nOO.ui.PopupTagMultiselectWidget.prototype.onPopupInputEnter = function () {\n\tif ( this.popupInput ) {\n\t\tthis.addTagByPopupValue( this.popupInput.getValue() );\n\t\tthis.popupInput.setValue( '' );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.PopupTagMultiselectWidget.prototype.onTagSelect = function ( item ) {\n\tif ( this.popupInput && this.allowEditTags ) {\n\t\tthis.popupInput.setValue( item.getData() );\n\t\tthis.removeItems( [ item ] );\n\n\t\tthis.popup.toggle( true );\n\t\tthis.popupInput.focus();\n\t} else {\n\t\t// Parent\n\t\tOO.ui.PopupTagMultiselectWidget.parent.prototype.onTagSelect.call( this, item );\n\t}\n};\n\n/**\n * Add a tag by the popup value.\n * Whatever is responsible for setting the value in the popup should call\n * this method to add a tag, or use the regular methods like #addTag or\n * #setValue directly.\n *\n * @param {string} data The value of item\n * @param {string} [label] The label of the tag. If not given, the data is used.\n */\nOO.ui.PopupTagMultiselectWidget.prototype.addTagByPopupValue = function ( data, label ) {\n\tthis.addTag( data, label );\n};\n","/**\n * MenuTagMultiselectWidget is a {@link OO.ui.TagMultiselectWidget OO.ui.TagMultiselectWidget} intended\n * to use a menu of selectable options.\n *\n *     @example\n *     // Example: A basic MenuTagMultiselectWidget.\n *     var widget = new OO.ui.MenuTagMultiselectWidget( {\n *         inputPosition: 'outline',\n *         options: [\n *            { data: 'option1', label: 'Option 1', icon: 'tag' },\n *            { data: 'option2', label: 'Option 2' },\n *            { data: 'option3', label: 'Option 3' },\n *         ],\n *         selected: [ 'option1', 'option2' ]\n *     } );\n *     $( 'body' ).append( widget.$element );\n *\n * @class\n * @extends OO.ui.TagMultiselectWidget\n *\n * @constructor\n * @param {Object} [config] Configuration object\n * @cfg {boolean} [clearInputOnChoose=true] Clear the text input value when a menu option is chosen\n * @cfg {Object} [menu] Configuration object for the menu widget\n * @cfg {jQuery} [$overlay] An overlay for the menu.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n * @cfg {Object[]} [options=[]] Array of menu options in the format `{ data: …, label: … }`\n */\nOO.ui.MenuTagMultiselectWidget = function OoUiMenuTagMultiselectWidget( config ) {\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.MenuTagMultiselectWidget.parent.call( this, config );\n\n\tthis.$overlay = ( config.$overlay === true ? OO.ui.getDefaultOverlay() : config.$overlay ) || this.$element;\n\tthis.clearInputOnChoose = config.clearInputOnChoose === undefined || !!config.clearInputOnChoose;\n\tthis.menu = this.createMenuWidget( $.extend( {\n\t\twidget: this,\n\t\tinput: this.hasInput ? this.input : null,\n\t\t$input: this.hasInput ? this.input.$input : null,\n\t\tfilterFromInput: !!this.hasInput,\n\t\t$autoCloseIgnore: this.hasInput ?\n\t\t\tthis.input.$element : $( [] ),\n\t\t$floatableContainer: this.hasInput && this.inputPosition === 'outline' ?\n\t\t\tthis.input.$element : this.$element,\n\t\t$overlay: this.$overlay,\n\t\tdisabled: this.isDisabled()\n\t}, config.menu ) );\n\tthis.addOptions( config.options || [] );\n\n\t// Events\n\tthis.menu.connect( this, {\n\t\tchoose: 'onMenuChoose',\n\t\ttoggle: 'onMenuToggle'\n\t} );\n\tif ( this.hasInput ) {\n\t\tthis.input.connect( this, { change: 'onInputChange' } );\n\t}\n\tthis.connect( this, { resize: 'onResize' } );\n\n\t// Initialization\n\tthis.$overlay\n\t\t.append( this.menu.$element );\n\tthis.$element\n\t\t.addClass( 'oo-ui-menuTagMultiselectWidget' );\n\t// TagMultiselectWidget already does this, but it doesn't work right because this.menu is not yet\n\t// set up while the parent constructor runs, and #getAllowedValues rejects everything.\n\tif ( config.selected ) {\n\t\tthis.setValue( config.selected );\n\t}\n};\n\n/* Initialization */\n\nOO.inheritClass( OO.ui.MenuTagMultiselectWidget, OO.ui.TagMultiselectWidget );\n\n/* Methods */\n\n/**\n * Respond to resize event\n */\nOO.ui.MenuTagMultiselectWidget.prototype.onResize = function () {\n\t// Reposition the menu\n\tthis.menu.position();\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuTagMultiselectWidget.prototype.onInputFocus = function () {\n\t// Parent method\n\tOO.ui.MenuTagMultiselectWidget.parent.prototype.onInputFocus.call( this );\n\n\tthis.menu.toggle( true );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuTagMultiselectWidget.prototype.onInputBlur = function () {\n\t// Parent method\n\tOO.ui.MenuTagMultiselectWidget.parent.prototype.onInputBlur.call( this );\n\n\tthis.menu.toggle( false );\n};\n\n/**\n * Respond to input change event\n */\nOO.ui.MenuTagMultiselectWidget.prototype.onInputChange = function () {\n\tthis.menu.toggle( true );\n\tthis.initializeMenuSelection();\n};\n\n/**\n * Respond to menu choose event\n *\n * @param {OO.ui.OptionWidget} menuItem Chosen menu item\n */\nOO.ui.MenuTagMultiselectWidget.prototype.onMenuChoose = function ( menuItem ) {\n\tif ( this.hasInput && this.clearInputOnChoose ) {\n\t\tthis.input.setValue( '' );\n\t}\n\t// Add tag\n\tthis.addTag( menuItem.getData(), menuItem.getLabel() );\n};\n\n/**\n * Respond to menu toggle event. Reset item highlights on hide.\n *\n * @param {boolean} isVisible The menu is visible\n */\nOO.ui.MenuTagMultiselectWidget.prototype.onMenuToggle = function ( isVisible ) {\n\tif ( !isVisible ) {\n\t\tthis.menu.selectItem( null );\n\t\tthis.menu.highlightItem( null );\n\t} else {\n\t\tthis.initializeMenuSelection();\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuTagMultiselectWidget.prototype.onTagSelect = function ( tagItem ) {\n\tvar menuItem = this.menu.findItemFromData( tagItem.getData() );\n\tif ( !this.allowArbitrary ) {\n\t\t// Override the base behavior from TagMultiselectWidget; the base behavior\n\t\t// in TagMultiselectWidget is to remove the tag to edit it in the input,\n\t\t// but in our case, we want to utilize the menu selection behavior, and\n\t\t// definitely not remove the item.\n\n\t\t// If there is an input that is used for filtering, erase the value so we don't filter\n\t\tif ( this.hasInput && this.menu.filterFromInput ) {\n\t\t\tthis.input.setValue( '' );\n\t\t}\n\n\t\t// Select the menu item\n\t\tthis.menu.selectItem( menuItem );\n\n\t\tthis.focus();\n\t} else {\n\t\t// Use the default\n\t\tOO.ui.MenuTagMultiselectWidget.parent.prototype.onTagSelect.call( this, tagItem );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuTagMultiselectWidget.prototype.setDisabled = function ( isDisabled ) {\n\t// Parent method\n\tOO.ui.MenuTagMultiselectWidget.parent.prototype.setDisabled.call( this, isDisabled );\n\n\tif ( this.menu ) {\n\t\t// Protect against calling setDisabled() before the menu was initialized\n\t\tthis.menu.setDisabled( isDisabled );\n\t}\n};\n\n/**\n * Highlight the first selectable item in the menu, if configured.\n *\n * @private\n * @chainable\n */\nOO.ui.MenuTagMultiselectWidget.prototype.initializeMenuSelection = function () {\n\tif ( !this.menu.findSelectedItem() ) {\n\t\tthis.menu.highlightItem(\n\t\t\tthis.allowArbitrary ?\n\t\t\t\tnull :\n\t\t\t\tthis.menu.findFirstSelectableItem()\n\t\t);\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuTagMultiselectWidget.prototype.addTagFromInput = function () {\n\tvar val = this.input.getValue(),\n\t\t// Look for a highlighted item first\n\t\t// Then look for the element that fits the data\n\t\titem = this.menu.findHighlightedItem() || this.menu.findItemFromData( val ),\n\t\tdata = item ? item.getData() : val,\n\t\tisValid = this.isAllowedData( data );\n\n\t// Override the parent method so we add from the menu\n\t// rather than directly from the input\n\n\tif ( !val ) {\n\t\treturn;\n\t}\n\n\tif ( isValid || this.allowDisplayInvalidTags ) {\n\t\tthis.clearInput();\n\t\tif ( item ) {\n\t\t\tthis.addTag( data, item.getLabel() );\n\t\t} else {\n\t\t\tthis.addTag( val );\n\t\t}\n\t}\n};\n\n/**\n * Return the visible items in the menu. This is mainly used for when\n * the menu is filtering results.\n *\n * @return {OO.ui.MenuOptionWidget[]} Visible results\n */\nOO.ui.MenuTagMultiselectWidget.prototype.getMenuVisibleItems = function () {\n\treturn this.menu.getItems().filter( function ( menuItem ) {\n\t\treturn menuItem.isVisible();\n\t} );\n};\n\n/**\n * Create the menu for this widget. This is in a separate method so that\n * child classes can override this without polluting the constructor with\n * unnecessary extra objects that will be overidden.\n *\n * @param {Object} menuConfig Configuration options\n * @return {OO.ui.MenuSelectWidget} Menu widget\n */\nOO.ui.MenuTagMultiselectWidget.prototype.createMenuWidget = function ( menuConfig ) {\n\treturn new OO.ui.MenuSelectWidget( menuConfig );\n};\n\n/**\n * Add options to the menu\n *\n * @param {Object[]} menuOptions Object defining options\n */\nOO.ui.MenuTagMultiselectWidget.prototype.addOptions = function ( menuOptions ) {\n\tvar widget = this,\n\t\titems = menuOptions.map( function ( obj ) {\n\t\t\treturn widget.createMenuOptionWidget( obj.data, obj.label, obj.icon );\n\t\t} );\n\n\tthis.menu.addItems( items );\n};\n\n/**\n * Create a menu option widget.\n *\n * @param {string} data Item data\n * @param {string} [label] Item label\n * @param {string} [icon] Symbolic icon name\n * @return {OO.ui.OptionWidget} Option widget\n */\nOO.ui.MenuTagMultiselectWidget.prototype.createMenuOptionWidget = function ( data, label, icon ) {\n\treturn new OO.ui.MenuOptionWidget( {\n\t\tdata: data,\n\t\tlabel: label || data,\n\t\ticon: icon\n\t} );\n};\n\n/**\n * Get the menu\n *\n * @return {OO.ui.MenuSelectWidget} Menu\n */\nOO.ui.MenuTagMultiselectWidget.prototype.getMenu = function () {\n\treturn this.menu;\n};\n\n/**\n * Get the allowed values list\n *\n * @return {string[]} Allowed data values\n */\nOO.ui.MenuTagMultiselectWidget.prototype.getAllowedValues = function () {\n\tvar menuDatas = [];\n\tif ( this.menu ) {\n\t\t// If the parent constructor is calling us, we're not ready yet, this.menu is not set up.\n\t\tmenuDatas = this.menu.getItems().map( function ( menuItem ) {\n\t\t\treturn menuItem.getData();\n\t\t} );\n\t}\n\treturn this.allowedValues.concat( menuDatas );\n};\n","/**\n * SelectFileWidgets allow for selecting files, using the HTML5 File API. These\n * widgets can be configured with {@link OO.ui.mixin.IconElement icons} and {@link\n * OO.ui.mixin.IndicatorElement indicators}.\n * Please see the [OOUI documentation on MediaWiki] [1] for more information and examples.\n *\n *     @example\n *     // Example of a file select widget\n *     var selectFile = new OO.ui.SelectFileWidget();\n *     $( 'body' ).append( selectFile.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.PendingElement\n * @mixins OO.ui.mixin.LabelElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string[]|null} [accept=null] MIME types to accept. null accepts all types.\n * @cfg {string} [placeholder] Text to display when no file is selected.\n * @cfg {string} [notsupported] Text to display when file support is missing in the browser.\n * @cfg {boolean} [droppable=true] Whether to accept files by drag and drop.\n * @cfg {boolean} [showDropTarget=false] Whether to show a drop target. Requires droppable to be true.\n * @cfg {number} [thumbnailSizeLimit=20] File size limit in MiB above which to not try and show a\n *  preview (for performance)\n */\nOO.ui.SelectFileWidget = function OoUiSelectFileWidget( config ) {\n\tvar dragHandler;\n\n\t// Configuration initialization\n\tconfig = $.extend( {\n\t\taccept: null,\n\t\tplaceholder: OO.ui.msg( 'ooui-selectfile-placeholder' ),\n\t\tnotsupported: OO.ui.msg( 'ooui-selectfile-not-supported' ),\n\t\tdroppable: true,\n\t\tshowDropTarget: false,\n\t\tthumbnailSizeLimit: 20\n\t}, config );\n\n\t// Parent constructor\n\tOO.ui.SelectFileWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\tOO.ui.mixin.PendingElement.call( this, $.extend( {}, config, { $pending: this.$info } ) );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\n\t// Properties\n\tthis.$info = $( '<span>' );\n\tthis.showDropTarget = config.showDropTarget;\n\tthis.thumbnailSizeLimit = config.thumbnailSizeLimit;\n\tthis.isSupported = this.constructor.static.isSupported();\n\tthis.currentFile = null;\n\tif ( Array.isArray( config.accept ) ) {\n\t\tthis.accept = config.accept;\n\t} else {\n\t\tthis.accept = null;\n\t}\n\tthis.placeholder = config.placeholder;\n\tthis.notsupported = config.notsupported;\n\tthis.onFileSelectedHandler = this.onFileSelected.bind( this );\n\n\tthis.selectButton = new OO.ui.ButtonWidget( {\n\t\t$element: $( '<label>' ),\n\t\tclasses: [ 'oo-ui-selectFileWidget-selectButton' ],\n\t\tlabel: OO.ui.msg( 'ooui-selectfile-button-select' ),\n\t\tdisabled: this.disabled || !this.isSupported\n\t} );\n\n\tthis.clearButton = new OO.ui.ButtonWidget( {\n\t\tclasses: [ 'oo-ui-selectFileWidget-clearButton' ],\n\t\tframed: false,\n\t\ticon: 'close',\n\t\tdisabled: this.disabled\n\t} );\n\n\t// Events\n\tthis.selectButton.$button.on( {\n\t\tkeypress: this.onKeyPress.bind( this )\n\t} );\n\tthis.clearButton.connect( this, {\n\t\tclick: 'onClearClick'\n\t} );\n\tif ( config.droppable ) {\n\t\tdragHandler = this.onDragEnterOrOver.bind( this );\n\t\tthis.$element.on( {\n\t\t\tdragenter: dragHandler,\n\t\t\tdragover: dragHandler,\n\t\t\tdragleave: this.onDragLeave.bind( this ),\n\t\t\tdrop: this.onDrop.bind( this )\n\t\t} );\n\t}\n\n\t// Initialization\n\tthis.addInput();\n\tthis.$label.addClass( 'oo-ui-selectFileWidget-label' );\n\tthis.$info\n\t\t.addClass( 'oo-ui-selectFileWidget-info' )\n\t\t.append( this.$icon, this.$label, this.clearButton.$element, this.$indicator );\n\n\tif ( config.droppable && config.showDropTarget ) {\n\t\tthis.selectButton.setIcon( 'upload' );\n\t\tthis.$thumbnail = $( '<div>' ).addClass( 'oo-ui-selectFileWidget-thumbnail' );\n\t\tthis.setPendingElement( this.$thumbnail );\n\t\tthis.$element\n\t\t\t.addClass( 'oo-ui-selectFileWidget-dropTarget oo-ui-selectFileWidget' )\n\t\t\t.on( {\n\t\t\t\tclick: this.onDropTargetClick.bind( this )\n\t\t\t} )\n\t\t\t.append(\n\t\t\t\tthis.$thumbnail,\n\t\t\t\tthis.$info,\n\t\t\t\tthis.selectButton.$element,\n\t\t\t\t$( '<span>' )\n\t\t\t\t\t.addClass( 'oo-ui-selectFileWidget-dropLabel' )\n\t\t\t\t\t.text( OO.ui.msg( 'ooui-selectfile-dragdrop-placeholder' ) )\n\t\t\t);\n\t} else {\n\t\tthis.$element\n\t\t\t.addClass( 'oo-ui-selectFileWidget' )\n\t\t\t.append( this.$info, this.selectButton.$element );\n\t}\n\tthis.updateUI();\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.SelectFileWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.PendingElement );\nOO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.LabelElement );\n\n/* Static Properties */\n\n/**\n * Check if this widget is supported\n *\n * @static\n * @return {boolean}\n */\nOO.ui.SelectFileWidget.static.isSupported = function () {\n\tvar $input;\n\tif ( OO.ui.SelectFileWidget.static.isSupportedCache === null ) {\n\t\t$input = $( '<input>' ).attr( 'type', 'file' );\n\t\tOO.ui.SelectFileWidget.static.isSupportedCache = $input[ 0 ].files !== undefined;\n\t}\n\treturn OO.ui.SelectFileWidget.static.isSupportedCache;\n};\n\nOO.ui.SelectFileWidget.static.isSupportedCache = null;\n\n/* Events */\n\n/**\n * @event change\n *\n * A change event is emitted when the on/off state of the toggle changes.\n *\n * @param {File|null} value New value\n */\n\n/* Methods */\n\n/**\n * Get the current value of the field\n *\n * @return {File|null}\n */\nOO.ui.SelectFileWidget.prototype.getValue = function () {\n\treturn this.currentFile;\n};\n\n/**\n * Set the current value of the field\n *\n * @param {File|null} file File to select\n */\nOO.ui.SelectFileWidget.prototype.setValue = function ( file ) {\n\tif ( this.currentFile !== file ) {\n\t\tthis.currentFile = file;\n\t\tthis.updateUI();\n\t\tthis.emit( 'change', this.currentFile );\n\t}\n};\n\n/**\n * Focus the widget.\n *\n * Focusses the select file button.\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectFileWidget.prototype.focus = function () {\n\tthis.selectButton.focus();\n\treturn this;\n};\n\n/**\n * Blur the widget.\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectFileWidget.prototype.blur = function () {\n\tthis.selectButton.blur();\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.SelectFileWidget.prototype.simulateLabelClick = function () {\n\tthis.focus();\n};\n\n/**\n * Update the user interface when a file is selected or unselected\n *\n * @protected\n */\nOO.ui.SelectFileWidget.prototype.updateUI = function () {\n\tvar $label;\n\tif ( !this.isSupported ) {\n\t\tthis.$element.addClass( 'oo-ui-selectFileWidget-notsupported' );\n\t\tthis.$element.removeClass( 'oo-ui-selectFileWidget-empty' );\n\t\tthis.setLabel( this.notsupported );\n\t} else {\n\t\tthis.$element.addClass( 'oo-ui-selectFileWidget-supported' );\n\t\tif ( this.currentFile ) {\n\t\t\tthis.$element.removeClass( 'oo-ui-selectFileWidget-empty' );\n\t\t\t$label = $( [] );\n\t\t\t$label = $label.add(\n\t\t\t\t$( '<span>' )\n\t\t\t\t\t.addClass( 'oo-ui-selectFileWidget-fileName' )\n\t\t\t\t\t.text( this.currentFile.name )\n\t\t\t);\n\t\t\tthis.setLabel( $label );\n\n\t\t\tif ( this.showDropTarget ) {\n\t\t\t\tthis.pushPending();\n\t\t\t\tthis.loadAndGetImageUrl().done( function ( url ) {\n\t\t\t\t\tthis.$thumbnail.css( 'background-image', 'url( ' + url + ' )' );\n\t\t\t\t}.bind( this ) ).fail( function () {\n\t\t\t\t\tthis.$thumbnail.append(\n\t\t\t\t\t\tnew OO.ui.IconWidget( {\n\t\t\t\t\t\t\ticon: 'attachment',\n\t\t\t\t\t\t\tclasses: [ 'oo-ui-selectFileWidget-noThumbnail-icon' ]\n\t\t\t\t\t\t} ).$element\n\t\t\t\t\t);\n\t\t\t\t}.bind( this ) ).always( function () {\n\t\t\t\t\tthis.popPending();\n\t\t\t\t}.bind( this ) );\n\t\t\t\tthis.$element.off( 'click' );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( this.showDropTarget ) {\n\t\t\t\tthis.$element.off( 'click' );\n\t\t\t\tthis.$element.on( {\n\t\t\t\t\tclick: this.onDropTargetClick.bind( this )\n\t\t\t\t} );\n\t\t\t\tthis.$thumbnail\n\t\t\t\t\t.empty()\n\t\t\t\t\t.css( 'background-image', '' );\n\t\t\t}\n\t\t\tthis.$element.addClass( 'oo-ui-selectFileWidget-empty' );\n\t\t\tthis.setLabel( this.placeholder );\n\t\t}\n\t}\n};\n\n/**\n * If the selected file is an image, get its URL and load it.\n *\n * @return {jQuery.Promise} Promise resolves with the image URL after it has loaded\n */\nOO.ui.SelectFileWidget.prototype.loadAndGetImageUrl = function () {\n\tvar deferred = $.Deferred(),\n\t\tfile = this.currentFile,\n\t\treader = new FileReader();\n\n\tif (\n\t\tfile &&\n\t\t( OO.getProp( file, 'type' ) || '' ).indexOf( 'image/' ) === 0 &&\n\t\tfile.size < this.thumbnailSizeLimit * 1024 * 1024\n\t) {\n\t\treader.onload = function ( event ) {\n\t\t\tvar img = document.createElement( 'img' );\n\t\t\timg.addEventListener( 'load', function () {\n\t\t\t\tif (\n\t\t\t\t\timg.naturalWidth === 0 ||\n\t\t\t\t\timg.naturalHeight === 0 ||\n\t\t\t\t\timg.complete === false\n\t\t\t\t) {\n\t\t\t\t\tdeferred.reject();\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.resolve( event.target.result );\n\t\t\t\t}\n\t\t\t} );\n\t\t\timg.src = event.target.result;\n\t\t};\n\t\treader.readAsDataURL( file );\n\t} else {\n\t\tdeferred.reject();\n\t}\n\n\treturn deferred.promise();\n};\n\n/**\n * Add the input to the widget\n *\n * @private\n */\nOO.ui.SelectFileWidget.prototype.addInput = function () {\n\tif ( this.$input ) {\n\t\tthis.$input.remove();\n\t}\n\n\tif ( !this.isSupported ) {\n\t\tthis.$input = null;\n\t\treturn;\n\t}\n\n\tthis.$input = $( '<input>' ).attr( 'type', 'file' );\n\tthis.$input.on( 'change', this.onFileSelectedHandler );\n\tthis.$input.on( 'click', function ( e ) {\n\t\t// Prevents dropTarget to get clicked which calls\n\t\t// a click on this input\n\t\te.stopPropagation();\n\t} );\n\tthis.$input.attr( {\n\t\ttabindex: -1\n\t} );\n\tif ( this.accept ) {\n\t\tthis.$input.attr( 'accept', this.accept.join( ', ' ) );\n\t}\n\tthis.selectButton.$button.append( this.$input );\n};\n\n/**\n * Determine if we should accept this file\n *\n * @private\n * @param {string} mimeType File MIME type\n * @return {boolean}\n */\nOO.ui.SelectFileWidget.prototype.isAllowedType = function ( mimeType ) {\n\tvar i, mimeTest;\n\n\tif ( !this.accept || !mimeType ) {\n\t\treturn true;\n\t}\n\n\tfor ( i = 0; i < this.accept.length; i++ ) {\n\t\tmimeTest = this.accept[ i ];\n\t\tif ( mimeTest === mimeType ) {\n\t\t\treturn true;\n\t\t} else if ( mimeTest.substr( -2 ) === '/*' ) {\n\t\t\tmimeTest = mimeTest.substr( 0, mimeTest.length - 1 );\n\t\t\tif ( mimeType.substr( 0, mimeTest.length ) === mimeTest ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false;\n};\n\n/**\n * Handle file selection from the input\n *\n * @private\n * @param {jQuery.Event} e\n */\nOO.ui.SelectFileWidget.prototype.onFileSelected = function ( e ) {\n\tvar file = OO.getProp( e.target, 'files', 0 ) || null;\n\n\tif ( file && !this.isAllowedType( file.type ) ) {\n\t\tfile = null;\n\t}\n\n\tthis.setValue( file );\n\tthis.addInput();\n};\n\n/**\n * Handle clear button click events.\n *\n * @private\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectFileWidget.prototype.onClearClick = function () {\n\tthis.setValue( null );\n\treturn false;\n};\n\n/**\n * Handle key press events.\n *\n * @private\n * @param {jQuery.Event} e Key press event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectFileWidget.prototype.onKeyPress = function ( e ) {\n\tif ( this.isSupported && !this.isDisabled() && this.$input &&\n\t\t( e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )\n\t) {\n\t\tthis.$input.click();\n\t\treturn false;\n\t}\n};\n\n/**\n * Handle drop target click events.\n *\n * @private\n * @param {jQuery.Event} e Key press event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectFileWidget.prototype.onDropTargetClick = function () {\n\tif ( this.isSupported && !this.isDisabled() && this.$input ) {\n\t\tthis.$input.click();\n\t\treturn false;\n\t}\n};\n\n/**\n * Handle drag enter and over events\n *\n * @private\n * @param {jQuery.Event} e Drag event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectFileWidget.prototype.onDragEnterOrOver = function ( e ) {\n\tvar itemOrFile,\n\t\tdroppableFile = false,\n\t\tdt = e.originalEvent.dataTransfer;\n\n\te.preventDefault();\n\te.stopPropagation();\n\n\tif ( this.isDisabled() || !this.isSupported ) {\n\t\tthis.$element.removeClass( 'oo-ui-selectFileWidget-canDrop' );\n\t\tdt.dropEffect = 'none';\n\t\treturn false;\n\t}\n\n\t// DataTransferItem and File both have a type property, but in Chrome files\n\t// have no information at this point.\n\titemOrFile = OO.getProp( dt, 'items', 0 ) || OO.getProp( dt, 'files', 0 );\n\tif ( itemOrFile ) {\n\t\tif ( this.isAllowedType( itemOrFile.type ) ) {\n\t\t\tdroppableFile = true;\n\t\t}\n\t// dt.types is Array-like, but not an Array\n\t} else if ( Array.prototype.indexOf.call( OO.getProp( dt, 'types' ) || [], 'Files' ) !== -1 ) {\n\t\t// File information is not available at this point for security so just assume\n\t\t// it is acceptable for now.\n\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=640534\n\t\tdroppableFile = true;\n\t}\n\n\tthis.$element.toggleClass( 'oo-ui-selectFileWidget-canDrop', droppableFile );\n\tif ( !droppableFile ) {\n\t\tdt.dropEffect = 'none';\n\t}\n\n\treturn false;\n};\n\n/**\n * Handle drag leave events\n *\n * @private\n * @param {jQuery.Event} e Drag event\n */\nOO.ui.SelectFileWidget.prototype.onDragLeave = function () {\n\tthis.$element.removeClass( 'oo-ui-selectFileWidget-canDrop' );\n};\n\n/**\n * Handle drop events\n *\n * @private\n * @param {jQuery.Event} e Drop event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectFileWidget.prototype.onDrop = function ( e ) {\n\tvar file = null,\n\t\tdt = e.originalEvent.dataTransfer;\n\n\te.preventDefault();\n\te.stopPropagation();\n\tthis.$element.removeClass( 'oo-ui-selectFileWidget-canDrop' );\n\n\tif ( this.isDisabled() || !this.isSupported ) {\n\t\treturn false;\n\t}\n\n\tfile = OO.getProp( dt, 'files', 0 );\n\tif ( file && !this.isAllowedType( file.type ) ) {\n\t\tfile = null;\n\t}\n\tif ( file ) {\n\t\tthis.setValue( file );\n\t}\n\n\treturn false;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.SelectFileWidget.prototype.setDisabled = function ( disabled ) {\n\tOO.ui.SelectFileWidget.parent.prototype.setDisabled.call( this, disabled );\n\tif ( this.selectButton ) {\n\t\tthis.selectButton.setDisabled( disabled );\n\t}\n\tif ( this.clearButton ) {\n\t\tthis.clearButton.setDisabled( disabled );\n\t}\n\treturn this;\n};\n","/**\n * SearchWidgets combine a {@link OO.ui.TextInputWidget text input field}, where users can type a search query,\n * and a menu of search results, which is displayed beneath the query\n * field. Unlike {@link OO.ui.mixin.LookupElement lookup menus}, search result menus are always visible to the user.\n * Users can choose an item from the menu or type a query into the text field to search for a matching result item.\n * In general, search widgets are used inside a separate {@link OO.ui.Dialog dialog} window.\n *\n * Each time the query is changed, the search result menu is cleared and repopulated. Please see\n * the [OOUI demos][1] for an example.\n *\n * [1]: https://doc.wikimedia.org/oojs-ui/master/demos/#SearchInputWidget-type-search\n *\n * @class\n * @extends OO.ui.Widget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string|jQuery} [placeholder] Placeholder text for query input\n * @cfg {string} [value] Initial query value\n */\nOO.ui.SearchWidget = function OoUiSearchWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.SearchWidget.parent.call( this, config );\n\n\t// Properties\n\tthis.query = new OO.ui.TextInputWidget( {\n\t\ticon: 'search',\n\t\tplaceholder: config.placeholder,\n\t\tvalue: config.value\n\t} );\n\tthis.results = new OO.ui.SelectWidget();\n\tthis.$query = $( '<div>' );\n\tthis.$results = $( '<div>' );\n\n\t// Events\n\tthis.query.connect( this, {\n\t\tchange: 'onQueryChange',\n\t\tenter: 'onQueryEnter'\n\t} );\n\tthis.query.$input.on( 'keydown', this.onQueryKeydown.bind( this ) );\n\n\t// Initialization\n\tthis.$query\n\t\t.addClass( 'oo-ui-searchWidget-query' )\n\t\t.append( this.query.$element );\n\tthis.$results\n\t\t.addClass( 'oo-ui-searchWidget-results' )\n\t\t.append( this.results.$element );\n\tthis.$element\n\t\t.addClass( 'oo-ui-searchWidget' )\n\t\t.append( this.$results, this.$query );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.SearchWidget, OO.ui.Widget );\n\n/* Methods */\n\n/**\n * Handle query key down events.\n *\n * @private\n * @param {jQuery.Event} e Key down event\n */\nOO.ui.SearchWidget.prototype.onQueryKeydown = function ( e ) {\n\tvar highlightedItem, nextItem,\n\t\tdir = e.which === OO.ui.Keys.DOWN ? 1 : ( e.which === OO.ui.Keys.UP ? -1 : 0 );\n\n\tif ( dir ) {\n\t\thighlightedItem = this.results.findHighlightedItem();\n\t\tif ( !highlightedItem ) {\n\t\t\thighlightedItem = this.results.findSelectedItem();\n\t\t}\n\t\tnextItem = this.results.findRelativeSelectableItem( highlightedItem, dir );\n\t\tthis.results.highlightItem( nextItem );\n\t\tnextItem.scrollElementIntoView();\n\t}\n};\n\n/**\n * Handle select widget select events.\n *\n * Clears existing results. Subclasses should repopulate items according to new query.\n *\n * @private\n * @param {string} value New value\n */\nOO.ui.SearchWidget.prototype.onQueryChange = function () {\n\t// Reset\n\tthis.results.clearItems();\n};\n\n/**\n * Handle select widget enter key events.\n *\n * Chooses highlighted item.\n *\n * @private\n * @param {string} value New value\n */\nOO.ui.SearchWidget.prototype.onQueryEnter = function () {\n\tvar highlightedItem = this.results.findHighlightedItem();\n\tif ( highlightedItem ) {\n\t\tthis.results.chooseItem( highlightedItem );\n\t}\n};\n\n/**\n * Get the query input.\n *\n * @return {OO.ui.TextInputWidget} Query input\n */\nOO.ui.SearchWidget.prototype.getQuery = function () {\n\treturn this.query;\n};\n\n/**\n * Get the search results menu.\n *\n * @return {OO.ui.SelectWidget} Menu of search results\n */\nOO.ui.SearchWidget.prototype.getResults = function () {\n\treturn this.results;\n};\n","}( OO ) );\n"]}
\ No newline at end of file
+{"version":3,"sources":["../src/intro.js.txt","../src/mixins/DraggableElement.js","../src/mixins/DraggableGroupElement.js","../src/mixins/RequestManager.js","../src/mixins/LookupElement.js","../src/layouts/TabPanelLayout.js","../src/layouts/PageLayout.js","../src/layouts/StackLayout.js","../src/layouts/MenuLayout.js","../src/layouts/BookletLayout.js","../src/layouts/IndexLayout.js","../src/widgets/ToggleWidget.js","../src/widgets/ToggleButtonWidget.js","../src/widgets/ToggleSwitchWidget.js","../src/widgets/OutlineControlsWidget.js","../src/widgets/OutlineOptionWidget.js","../src/widgets/OutlineSelectWidget.js","../src/widgets/ButtonOptionWidget.js","../src/widgets/ButtonSelectWidget.js","../src/widgets/TabOptionWidget.js","../src/widgets/TabSelectWidget.js","../src/widgets/TagItemWidget.js","../src/widgets/TagMultiselectWidget.js","../src/widgets/PopupTagMultiselectWidget.js","../src/widgets/MenuTagMultiselectWidget.js","../src/widgets/SelectFileWidget.js","../src/widgets/SearchWidget.js","../src/outro.js.txt"],"names":[],"mappings":"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","file":"oojs-ui-widgets.js","sourcesContent":["( function ( OO ) {\n\n'use strict';\n","/**\n * DraggableElement is a mixin class used to create elements that can be clicked\n * and dragged by a mouse to a new position within a group. This class must be used\n * in conjunction with OO.ui.mixin.DraggableGroupElement, which provides a container for\n * the draggable elements.\n *\n * @abstract\n * @class\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$handle] The part of the element which can be used for dragging, defaults to the whole element\n * @cfg {boolean} [draggable] The items are draggable. This can change with #toggleDraggable\n *  but the draggable state should be called from the DraggableGroupElement, which updates\n *  the whole group\n */\nOO.ui.mixin.DraggableElement = function OoUiMixinDraggableElement( config ) {\n\tconfig = config || {};\n\n\t// Properties\n\tthis.index = null;\n\tthis.$handle = config.$handle || this.$element;\n\tthis.wasHandleUsed = null;\n\n\t// Initialize and events\n\tthis.$element\n\t\t.addClass( 'oo-ui-draggableElement' )\n\t\t.on( {\n\t\t\tmousedown: this.onDragMouseDown.bind( this ),\n\t\t\tdragstart: this.onDragStart.bind( this ),\n\t\t\tdragover: this.onDragOver.bind( this ),\n\t\t\tdragend: this.onDragEnd.bind( this ),\n\t\t\tdrop: this.onDrop.bind( this )\n\t\t} );\n\tthis.$handle.addClass( 'oo-ui-draggableElement-handle' );\n\tthis.toggleDraggable( config.draggable === undefined ? true : !!config.draggable );\n};\n\nOO.initClass( OO.ui.mixin.DraggableElement );\n\n/* Events */\n\n/**\n * @event dragstart\n *\n * A dragstart event is emitted when the user clicks and begins dragging an item.\n * @param {OO.ui.mixin.DraggableElement} item The item the user has clicked and is dragging with the mouse.\n */\n\n/**\n * @event dragend\n * A dragend event is emitted when the user drags an item and releases the mouse,\n * thus terminating the drag operation.\n */\n\n/**\n * @event drop\n * A drop event is emitted when the user drags an item and then releases the mouse button\n * over a valid target.\n */\n\n/* Static Properties */\n\n/**\n * @inheritdoc OO.ui.mixin.ButtonElement\n */\nOO.ui.mixin.DraggableElement.static.cancelButtonMouseDownEvents = false;\n\n/* Methods */\n\n/**\n * Change the draggable state of this widget.\n * This allows users to temporarily halt the dragging operations.\n *\n * @param {boolean} isDraggable Widget supports draggable operations\n * @fires draggable\n */\nOO.ui.mixin.DraggableElement.prototype.toggleDraggable = function ( isDraggable ) {\n\tisDraggable = isDraggable !== undefined ? !!isDraggable : !this.draggable;\n\n\tif ( this.draggable !== isDraggable ) {\n\t\tthis.draggable = isDraggable;\n\n\t\tthis.$handle.toggleClass( 'oo-ui-draggableElement-undraggable', !this.draggable );\n\n\t\t// We make the entire element draggable, not just the handle, so that\n\t\t// the whole element appears to move. wasHandleUsed prevents drags from\n\t\t// starting outside the handle\n\t\tthis.$element.prop( 'draggable', this.draggable );\n\t}\n};\n\n/**\n * Check the draggable state of this widget\n *\n * @return {boolean} Widget supports draggable operations\n */\nOO.ui.mixin.DraggableElement.prototype.isDraggable = function () {\n\treturn this.draggable;\n};\n\n/**\n * Respond to mousedown event.\n *\n * @private\n * @param {jQuery.Event} e Drag event\n */\nOO.ui.mixin.DraggableElement.prototype.onDragMouseDown = function ( e ) {\n\tif ( !this.isDraggable() ) {\n\t\treturn;\n\t}\n\n\tthis.wasHandleUsed =\n\t\t// Optimization: if the handle is the whole element this is always true\n\t\tthis.$handle[ 0 ] === this.$element[ 0 ] ||\n\t\t// Check the mousedown occurred inside the handle\n\t\tOO.ui.contains( this.$handle[ 0 ], e.target, true );\n};\n\n/**\n * Respond to dragstart event.\n *\n * @private\n * @param {jQuery.Event} e Drag event\n * @return {boolean} False if the event is cancelled\n * @fires dragstart\n */\nOO.ui.mixin.DraggableElement.prototype.onDragStart = function ( e ) {\n\tvar element = this,\n\t\tdataTransfer = e.originalEvent.dataTransfer;\n\n\tif ( !this.wasHandleUsed || !this.isDraggable() ) {\n\t\treturn false;\n\t}\n\n\t// Define drop effect\n\tdataTransfer.dropEffect = 'none';\n\tdataTransfer.effectAllowed = 'move';\n\t// Support: Firefox\n\t// We must set up a dataTransfer data property or Firefox seems to\n\t// ignore the fact the element is draggable.\n\ttry {\n\t\tdataTransfer.setData( 'application-x/OOUI-draggable', this.getIndex() );\n\t} catch ( err ) {\n\t\t// The above is only for Firefox. Move on if it fails.\n\t}\n\t// Briefly add a 'clone' class to style the browser's native drag image\n\tthis.$element.addClass( 'oo-ui-draggableElement-clone' );\n\t// Add placeholder class after the browser has rendered the clone\n\tsetTimeout( function () {\n\t\telement.$element\n\t\t\t.removeClass( 'oo-ui-draggableElement-clone' )\n\t\t\t.addClass( 'oo-ui-draggableElement-placeholder' );\n\t} );\n\t// Emit event\n\tthis.emit( 'dragstart', this );\n\treturn true;\n};\n\n/**\n * Respond to dragend event.\n *\n * @private\n * @fires dragend\n */\nOO.ui.mixin.DraggableElement.prototype.onDragEnd = function () {\n\tthis.$element.removeClass( 'oo-ui-draggableElement-placeholder' );\n\tthis.emit( 'dragend' );\n};\n\n/**\n * Handle drop event.\n *\n * @private\n * @param {jQuery.Event} e Drop event\n * @fires drop\n */\nOO.ui.mixin.DraggableElement.prototype.onDrop = function ( e ) {\n\te.preventDefault();\n\tthis.emit( 'drop', e );\n};\n\n/**\n * In order for drag/drop to work, the dragover event must\n * return false and stop propogation.\n *\n * @param {jQuery.Event} e Drag event\n * @private\n */\nOO.ui.mixin.DraggableElement.prototype.onDragOver = function ( e ) {\n\te.preventDefault();\n};\n\n/**\n * Set item index.\n * Store it in the DOM so we can access from the widget drag event\n *\n * @private\n * @param {number} index Item index\n */\nOO.ui.mixin.DraggableElement.prototype.setIndex = function ( index ) {\n\tif ( this.index !== index ) {\n\t\tthis.index = index;\n\t\tthis.$element.data( 'index', index );\n\t}\n};\n\n/**\n * Get item index\n *\n * @private\n * @return {number} Item index\n */\nOO.ui.mixin.DraggableElement.prototype.getIndex = function () {\n\treturn this.index;\n};\n","/**\n * DraggableGroupElement is a mixin class used to create a group element to\n * contain draggable elements, which are items that can be clicked and dragged by a mouse.\n * The class is used with OO.ui.mixin.DraggableElement.\n *\n * @abstract\n * @class\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string} [orientation] Item orientation: 'horizontal' or 'vertical'. The orientation\n *  should match the layout of the items. Items displayed in a single row\n *  or in several rows should use horizontal orientation. The vertical orientation should only be\n *  used when the items are displayed in a single column. Defaults to 'vertical'\n * @cfg {boolean} [draggable] The items are draggable. This can change with #toggleDraggable\n */\nOO.ui.mixin.DraggableGroupElement = function OoUiMixinDraggableGroupElement( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.mixin.GroupElement.call( this, config );\n\n\t// Properties\n\tthis.orientation = config.orientation || 'vertical';\n\tthis.dragItem = null;\n\tthis.itemKeys = {};\n\tthis.dir = null;\n\tthis.itemsOrder = null;\n\tthis.draggable = config.draggable === undefined ? true : !!config.draggable;\n\n\t// Events\n\tthis.aggregate( {\n\t\tdragstart: 'itemDragStart',\n\t\tdragend: 'itemDragEnd',\n\t\tdrop: 'itemDrop'\n\t} );\n\tthis.connect( this, {\n\t\titemDragStart: 'onItemDragStart',\n\t\titemDrop: 'onItemDropOrDragEnd',\n\t\titemDragEnd: 'onItemDropOrDragEnd'\n\t} );\n\n\t// Initialize\n\tif ( Array.isArray( config.items ) ) {\n\t\tthis.addItems( config.items );\n\t}\n\tthis.$element\n\t\t.addClass( 'oo-ui-draggableGroupElement' )\n\t\t.toggleClass( 'oo-ui-draggableGroupElement-horizontal', this.orientation === 'horizontal' );\n};\n\n/* Setup */\nOO.mixinClass( OO.ui.mixin.DraggableGroupElement, OO.ui.mixin.GroupElement );\n\n/* Events */\n\n/**\n * An item has been dragged to a new position, but not yet dropped.\n *\n * @event drag\n * @param {OO.ui.mixin.DraggableElement} item Dragged item\n * @param {number} [newIndex] New index for the item\n */\n\n/**\n * An item has been dropped at a new position.\n *\n * @event reorder\n * @param {OO.ui.mixin.DraggableElement} item Reordered item\n * @param {number} [newIndex] New index for the item\n */\n\n/**\n * Draggable state of this widget has changed.\n *\n * @event draggable\n * @param {boolean} [draggable] Widget is draggable\n */\n\n/* Methods */\n\n/**\n * Change the draggable state of this widget.\n * This allows users to temporarily halt the dragging operations.\n *\n * @param {boolean} isDraggable Widget supports draggable operations\n * @fires draggable\n */\nOO.ui.mixin.DraggableGroupElement.prototype.toggleDraggable = function ( isDraggable ) {\n\tisDraggable = isDraggable !== undefined ? !!isDraggable : !this.draggable;\n\n\tif ( this.draggable !== isDraggable ) {\n\t\tthis.draggable = isDraggable;\n\n\t\t// Tell the items their draggable state changed\n\t\tthis.getItems().forEach( function ( item ) {\n\t\t\titem.toggleDraggable( this.draggable );\n\t\t}.bind( this ) );\n\n\t\t// Emit event\n\t\tthis.emit( 'draggable', this.draggable );\n\t}\n};\n\n/**\n * Check the draggable state of this widget\n *\n * @return {boolean} Widget supports draggable operations\n */\nOO.ui.mixin.DraggableGroupElement.prototype.isDraggable = function () {\n\treturn this.draggable;\n};\n\n/**\n * Respond to item drag start event\n *\n * @private\n * @param {OO.ui.mixin.DraggableElement} item Dragged item\n */\nOO.ui.mixin.DraggableGroupElement.prototype.onItemDragStart = function ( item ) {\n\tif ( !this.isDraggable() ) {\n\t\treturn;\n\t}\n\t// Make a shallow copy of this.items so we can re-order it during previews\n\t// without affecting the original array.\n\tthis.itemsOrder = this.items.slice();\n\tthis.updateIndexes();\n\tif ( this.orientation === 'horizontal' ) {\n\t\t// Calculate and cache directionality on drag start - it's a little\n\t\t// expensive and it shouldn't change while dragging.\n\t\tthis.dir = this.$element.css( 'direction' );\n\t}\n\tthis.setDragItem( item );\n};\n\n/**\n * Update the index properties of the items\n */\nOO.ui.mixin.DraggableGroupElement.prototype.updateIndexes = function () {\n\tvar i, len;\n\n\t// Map the index of each object\n\tfor ( i = 0, len = this.itemsOrder.length; i < len; i++ ) {\n\t\tthis.itemsOrder[ i ].setIndex( i );\n\t}\n};\n\n/**\n * Handle drop or dragend event and switch the order of the items accordingly\n *\n * @private\n * @param {OO.ui.mixin.DraggableElement} item Dropped item\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.DraggableGroupElement.prototype.onItemDropOrDragEnd = function () {\n\tvar targetIndex, originalIndex,\n\t\titem = this.getDragItem();\n\n\t// TODO: Figure out a way to configure a list of legally droppable\n\t// elements even if they are not yet in the list\n\tif ( item ) {\n\t\toriginalIndex = this.items.indexOf( item );\n\t\t// If the item has moved forward, add one to the index to account for the left shift\n\t\ttargetIndex = item.getIndex() + ( item.getIndex() > originalIndex ? 1 : 0 );\n\t\tif ( targetIndex !== originalIndex ) {\n\t\t\tthis.reorder( this.getDragItem(), targetIndex );\n\t\t\tthis.emit( 'reorder', this.getDragItem(), targetIndex );\n\t\t}\n\t\tthis.updateIndexes();\n\t}\n\tthis.unsetDragItem();\n\t// Return false to prevent propogation\n\treturn false;\n};\n\n/**\n * Respond to dragover event\n *\n * @private\n * @param {jQuery.Event} e Dragover event\n * @fires reorder\n */\nOO.ui.mixin.DraggableGroupElement.prototype.onDragOver = function ( e ) {\n\tvar overIndex, targetIndex,\n\t\titem = this.getDragItem(),\n\t\tdragItemIndex = item.getIndex();\n\n\t// Get the OptionWidget item we are dragging over\n\toverIndex = $( e.target ).closest( '.oo-ui-draggableElement' ).data( 'index' );\n\n\tif ( overIndex !== undefined && overIndex !== dragItemIndex ) {\n\t\ttargetIndex = overIndex + ( overIndex > dragItemIndex ? 1 : 0 );\n\n\t\tif ( targetIndex > 0 ) {\n\t\t\tthis.$group.children().eq( targetIndex - 1 ).after( item.$element );\n\t\t} else {\n\t\t\tthis.$group.prepend( item.$element );\n\t\t}\n\t\t// Move item in itemsOrder array\n\t\tthis.itemsOrder.splice( overIndex, 0,\n\t\t\tthis.itemsOrder.splice( dragItemIndex, 1 )[ 0 ]\n\t\t);\n\t\tthis.updateIndexes();\n\t\tthis.emit( 'drag', item, targetIndex );\n\t}\n\t// Prevent default\n\te.preventDefault();\n};\n\n/**\n * Reorder the items in the group\n *\n * @param {OO.ui.mixin.DraggableElement} item Reordered item\n * @param {number} newIndex New index\n */\nOO.ui.mixin.DraggableGroupElement.prototype.reorder = function ( item, newIndex ) {\n\tthis.addItems( [ item ], newIndex );\n};\n\n/**\n * Set a dragged item\n *\n * @param {OO.ui.mixin.DraggableElement} item Dragged item\n */\nOO.ui.mixin.DraggableGroupElement.prototype.setDragItem = function ( item ) {\n\tif ( this.dragItem !== item ) {\n\t\tthis.dragItem = item;\n\t\tthis.$element.on( 'dragover', this.onDragOver.bind( this ) );\n\t\tthis.$element.addClass( 'oo-ui-draggableGroupElement-dragging' );\n\t}\n};\n\n/**\n * Unset the current dragged item\n */\nOO.ui.mixin.DraggableGroupElement.prototype.unsetDragItem = function () {\n\tif ( this.dragItem ) {\n\t\tthis.dragItem = null;\n\t\tthis.$element.off( 'dragover' );\n\t\tthis.$element.removeClass( 'oo-ui-draggableGroupElement-dragging' );\n\t}\n};\n\n/**\n * Get the item that is currently being dragged.\n *\n * @return {OO.ui.mixin.DraggableElement|null} The currently dragged item, or `null` if no item is being dragged\n */\nOO.ui.mixin.DraggableGroupElement.prototype.getDragItem = function () {\n\treturn this.dragItem;\n};\n","/**\n * RequestManager is a mixin that manages the lifecycle of a promise-backed request for a widget, such as\n * the {@link OO.ui.mixin.LookupElement}.\n *\n * @class\n * @abstract\n *\n * @constructor\n */\nOO.ui.mixin.RequestManager = function OoUiMixinRequestManager() {\n\tthis.requestCache = {};\n\tthis.requestQuery = null;\n\tthis.requestRequest = null;\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.mixin.RequestManager );\n\n/**\n * Get request results for the current query.\n *\n * @return {jQuery.Promise} Promise object which will be passed response data as the first argument of\n *   the done event. If the request was aborted to make way for a subsequent request, this promise\n *   may not be rejected, depending on what jQuery feels like doing.\n */\nOO.ui.mixin.RequestManager.prototype.getRequestData = function () {\n\tvar widget = this,\n\t\tvalue = this.getRequestQuery(),\n\t\tdeferred = $.Deferred(),\n\t\tourRequest;\n\n\tthis.abortRequest();\n\tif ( Object.prototype.hasOwnProperty.call( this.requestCache, value ) ) {\n\t\tdeferred.resolve( this.requestCache[ value ] );\n\t} else {\n\t\tif ( this.pushPending ) {\n\t\t\tthis.pushPending();\n\t\t}\n\t\tthis.requestQuery = value;\n\t\tourRequest = this.requestRequest = this.getRequest();\n\t\tourRequest\n\t\t\t.always( function () {\n\t\t\t\t// We need to pop pending even if this is an old request, otherwise\n\t\t\t\t// the widget will remain pending forever.\n\t\t\t\t// TODO: this assumes that an aborted request will fail or succeed soon after\n\t\t\t\t// being aborted, or at least eventually. It would be nice if we could popPending()\n\t\t\t\t// at abort time, but only if we knew that we hadn't already called popPending()\n\t\t\t\t// for that request.\n\t\t\t\tif ( widget.popPending ) {\n\t\t\t\t\twidget.popPending();\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.done( function ( response ) {\n\t\t\t\t// If this is an old request (and aborting it somehow caused it to still succeed),\n\t\t\t\t// ignore its success completely\n\t\t\t\tif ( ourRequest === widget.requestRequest ) {\n\t\t\t\t\twidget.requestQuery = null;\n\t\t\t\t\twidget.requestRequest = null;\n\t\t\t\t\twidget.requestCache[ value ] = widget.getRequestCacheDataFromResponse( response );\n\t\t\t\t\tdeferred.resolve( widget.requestCache[ value ] );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.fail( function () {\n\t\t\t\t// If this is an old request (or a request failing because it's being aborted),\n\t\t\t\t// ignore its failure completely\n\t\t\t\tif ( ourRequest === widget.requestRequest ) {\n\t\t\t\t\twidget.requestQuery = null;\n\t\t\t\t\twidget.requestRequest = null;\n\t\t\t\t\tdeferred.reject();\n\t\t\t\t}\n\t\t\t} );\n\t}\n\treturn deferred.promise();\n};\n\n/**\n * Abort the currently pending request, if any.\n *\n * @private\n */\nOO.ui.mixin.RequestManager.prototype.abortRequest = function () {\n\tvar oldRequest = this.requestRequest;\n\tif ( oldRequest ) {\n\t\t// First unset this.requestRequest to the fail handler will notice\n\t\t// that the request is no longer current\n\t\tthis.requestRequest = null;\n\t\tthis.requestQuery = null;\n\t\toldRequest.abort();\n\t}\n};\n\n/**\n * Get the query to be made.\n *\n * @protected\n * @method\n * @abstract\n * @return {string} query to be used\n */\nOO.ui.mixin.RequestManager.prototype.getRequestQuery = null;\n\n/**\n * Get a new request object of the current query value.\n *\n * @protected\n * @method\n * @abstract\n * @return {jQuery.Promise} jQuery AJAX object, or promise object with an .abort() method\n */\nOO.ui.mixin.RequestManager.prototype.getRequest = null;\n\n/**\n * Pre-process data returned by the request from #getRequest.\n *\n * The return value of this function will be cached, and any further queries for the given value\n * will use the cache rather than doing API requests.\n *\n * @protected\n * @method\n * @abstract\n * @param {Mixed} response Response from server\n * @return {Mixed} Cached result data\n */\nOO.ui.mixin.RequestManager.prototype.getRequestCacheDataFromResponse = null;\n","/**\n * LookupElement is a mixin that creates a {@link OO.ui.MenuSelectWidget menu} of suggested values for\n * a {@link OO.ui.TextInputWidget text input widget}. Suggested values are based on the characters the user types\n * into the text input field and, in general, the menu is only displayed when the user types. If a suggested value is chosen\n * from the lookup menu, that value becomes the value of the input field.\n *\n * Note that a new menu of suggested items is displayed when a value is chosen from the lookup menu. If this is\n * not the desired behavior, disable lookup menus with the #setLookupsDisabled method, then set the value, then\n * re-enable lookups.\n *\n * See the [OOUI demos][1] for an example.\n *\n * [1]: https://doc.wikimedia.org/oojs-ui/master/demos/#LookupElement-try-inputting-an-integer\n *\n * @class\n * @abstract\n * @mixins OO.ui.mixin.RequestManager\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {jQuery} [$overlay] Overlay for the lookup menu; defaults to relative positioning.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n * @cfg {jQuery} [$container=this.$element] The container element. The lookup menu is rendered beneath the specified element.\n * @cfg {Object} [menu] Configuration options to pass to {@link OO.ui.MenuSelectWidget menu select widget}\n * @cfg {boolean} [allowSuggestionsWhenEmpty=false] Request and display a lookup menu when the text input is empty.\n *  By default, the lookup menu is not generated and displayed until the user begins to type.\n * @cfg {boolean} [highlightFirst=true] Whether the first lookup result should be highlighted (so, that the user can\n *  take it over into the input with simply pressing return) automatically or not.\n */\nOO.ui.mixin.LookupElement = function OoUiMixinLookupElement( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( { highlightFirst: true }, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.RequestManager.call( this, config );\n\n\t// Properties\n\tthis.$overlay = ( config.$overlay === true ? OO.ui.getDefaultOverlay() : config.$overlay ) || this.$element;\n\tthis.lookupMenu = new OO.ui.MenuSelectWidget( $.extend( {\n\t\twidget: this,\n\t\tinput: this,\n\t\t$floatableContainer: config.$container || this.$element\n\t}, config.menu ) );\n\n\tthis.allowSuggestionsWhenEmpty = config.allowSuggestionsWhenEmpty || false;\n\n\tthis.lookupsDisabled = false;\n\tthis.lookupInputFocused = false;\n\tthis.lookupHighlightFirstItem = config.highlightFirst;\n\n\t// Events\n\tthis.$input.on( {\n\t\tfocus: this.onLookupInputFocus.bind( this ),\n\t\tblur: this.onLookupInputBlur.bind( this ),\n\t\tmousedown: this.onLookupInputMouseDown.bind( this )\n\t} );\n\tthis.connect( this, { change: 'onLookupInputChange' } );\n\tthis.lookupMenu.connect( this, {\n\t\ttoggle: 'onLookupMenuToggle',\n\t\tchoose: 'onLookupMenuItemChoose'\n\t} );\n\n\t// Initialization\n\tthis.$input.attr( {\n\t\trole: 'combobox',\n\t\t'aria-owns': this.lookupMenu.getElementId(),\n\t\t'aria-autocomplete': 'list'\n\t} );\n\tthis.$element.addClass( 'oo-ui-lookupElement' );\n\tthis.lookupMenu.$element.addClass( 'oo-ui-lookupElement-menu' );\n\tthis.$overlay.append( this.lookupMenu.$element );\n};\n\n/* Setup */\n\nOO.mixinClass( OO.ui.mixin.LookupElement, OO.ui.mixin.RequestManager );\n\n/* Methods */\n\n/**\n * Handle input focus event.\n *\n * @protected\n * @param {jQuery.Event} e Input focus event\n */\nOO.ui.mixin.LookupElement.prototype.onLookupInputFocus = function () {\n\tthis.lookupInputFocused = true;\n\tthis.populateLookupMenu();\n};\n\n/**\n * Handle input blur event.\n *\n * @protected\n * @param {jQuery.Event} e Input blur event\n */\nOO.ui.mixin.LookupElement.prototype.onLookupInputBlur = function () {\n\tthis.closeLookupMenu();\n\tthis.lookupInputFocused = false;\n};\n\n/**\n * Handle input mouse down event.\n *\n * @protected\n * @param {jQuery.Event} e Input mouse down event\n */\nOO.ui.mixin.LookupElement.prototype.onLookupInputMouseDown = function () {\n\t// Only open the menu if the input was already focused.\n\t// This way we allow the user to open the menu again after closing it with Esc\n\t// by clicking in the input. Opening (and populating) the menu when initially\n\t// clicking into the input is handled by the focus handler.\n\tif ( this.lookupInputFocused && !this.lookupMenu.isVisible() ) {\n\t\tthis.populateLookupMenu();\n\t}\n};\n\n/**\n * Handle input change event.\n *\n * @protected\n * @param {string} value New input value\n */\nOO.ui.mixin.LookupElement.prototype.onLookupInputChange = function () {\n\tif ( this.lookupInputFocused ) {\n\t\tthis.populateLookupMenu();\n\t}\n};\n\n/**\n * Handle the lookup menu being shown/hidden.\n *\n * @protected\n * @param {boolean} visible Whether the lookup menu is now visible.\n */\nOO.ui.mixin.LookupElement.prototype.onLookupMenuToggle = function ( visible ) {\n\tif ( !visible ) {\n\t\t// When the menu is hidden, abort any active request and clear the menu.\n\t\t// This has to be done here in addition to closeLookupMenu(), because\n\t\t// MenuSelectWidget will close itself when the user presses Esc.\n\t\tthis.abortLookupRequest();\n\t\tthis.lookupMenu.clearItems();\n\t}\n};\n\n/**\n * Handle menu item 'choose' event, updating the text input value to the value of the clicked item.\n *\n * @protected\n * @param {OO.ui.MenuOptionWidget} item Selected item\n */\nOO.ui.mixin.LookupElement.prototype.onLookupMenuItemChoose = function ( item ) {\n\tthis.setValue( item.getData() );\n};\n\n/**\n * Get lookup menu.\n *\n * @private\n * @return {OO.ui.MenuSelectWidget}\n */\nOO.ui.mixin.LookupElement.prototype.getLookupMenu = function () {\n\treturn this.lookupMenu;\n};\n\n/**\n * Disable or re-enable lookups.\n *\n * When lookups are disabled, calls to #populateLookupMenu will be ignored.\n *\n * @param {boolean} disabled Disable lookups\n */\nOO.ui.mixin.LookupElement.prototype.setLookupsDisabled = function ( disabled ) {\n\tthis.lookupsDisabled = !!disabled;\n};\n\n/**\n * Open the menu. If there are no entries in the menu, this does nothing.\n *\n * @private\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.LookupElement.prototype.openLookupMenu = function () {\n\tif ( !this.lookupMenu.isEmpty() ) {\n\t\tthis.lookupMenu.toggle( true );\n\t}\n\treturn this;\n};\n\n/**\n * Close the menu, empty it, and abort any pending request.\n *\n * @private\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.LookupElement.prototype.closeLookupMenu = function () {\n\tthis.lookupMenu.toggle( false );\n\tthis.abortLookupRequest();\n\tthis.lookupMenu.clearItems();\n\treturn this;\n};\n\n/**\n * Request menu items based on the input's current value, and when they arrive,\n * populate the menu with these items and show the menu.\n *\n * If lookups have been disabled with #setLookupsDisabled, this function does nothing.\n *\n * @private\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.LookupElement.prototype.populateLookupMenu = function () {\n\tvar widget = this,\n\t\tvalue = this.getValue();\n\n\tif ( this.lookupsDisabled || this.isReadOnly() ) {\n\t\treturn;\n\t}\n\n\t// If the input is empty, clear the menu, unless suggestions when empty are allowed.\n\tif ( !this.allowSuggestionsWhenEmpty && value === '' ) {\n\t\tthis.closeLookupMenu();\n\t// Skip population if there is already a request pending for the current value\n\t} else if ( value !== this.lookupQuery ) {\n\t\tthis.getLookupMenuItems()\n\t\t\t.done( function ( items ) {\n\t\t\t\twidget.lookupMenu.clearItems();\n\t\t\t\tif ( items.length ) {\n\t\t\t\t\twidget.lookupMenu\n\t\t\t\t\t\t.addItems( items )\n\t\t\t\t\t\t.toggle( true );\n\t\t\t\t\twidget.initializeLookupMenuSelection();\n\t\t\t\t} else {\n\t\t\t\t\twidget.lookupMenu.toggle( false );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.fail( function () {\n\t\t\t\twidget.lookupMenu.clearItems();\n\t\t\t\twidget.lookupMenu.toggle( false );\n\t\t\t} );\n\t}\n\n\treturn this;\n};\n\n/**\n * Highlight the first selectable item in the menu, if configured.\n *\n * @private\n * @chainable\n */\nOO.ui.mixin.LookupElement.prototype.initializeLookupMenuSelection = function () {\n\tif ( this.lookupHighlightFirstItem && !this.lookupMenu.findSelectedItem() ) {\n\t\tthis.lookupMenu.highlightItem( this.lookupMenu.findFirstSelectableItem() );\n\t}\n};\n\n/**\n * Get lookup menu items for the current query.\n *\n * @private\n * @return {jQuery.Promise} Promise object which will be passed menu items as the first argument of\n *   the done event. If the request was aborted to make way for a subsequent request, this promise\n *   will not be rejected: it will remain pending forever.\n */\nOO.ui.mixin.LookupElement.prototype.getLookupMenuItems = function () {\n\treturn this.getRequestData().then( function ( data ) {\n\t\treturn this.getLookupMenuOptionsFromData( data );\n\t}.bind( this ) );\n};\n\n/**\n * Abort the currently pending lookup request, if any.\n *\n * @private\n */\nOO.ui.mixin.LookupElement.prototype.abortLookupRequest = function () {\n\tthis.abortRequest();\n};\n\n/**\n * Get a new request object of the current lookup query value.\n *\n * @protected\n * @method\n * @abstract\n * @return {jQuery.Promise} jQuery AJAX object, or promise object with an .abort() method\n */\nOO.ui.mixin.LookupElement.prototype.getLookupRequest = null;\n\n/**\n * Pre-process data returned by the request from #getLookupRequest.\n *\n * The return value of this function will be cached, and any further queries for the given value\n * will use the cache rather than doing API requests.\n *\n * @protected\n * @method\n * @abstract\n * @param {Mixed} response Response from server\n * @return {Mixed} Cached result data\n */\nOO.ui.mixin.LookupElement.prototype.getLookupCacheDataFromResponse = null;\n\n/**\n * Get a list of menu option widgets from the (possibly cached) data returned by\n * #getLookupCacheDataFromResponse.\n *\n * @protected\n * @method\n * @abstract\n * @param {Mixed} data Cached result data, usually an array\n * @return {OO.ui.MenuOptionWidget[]} Menu items\n */\nOO.ui.mixin.LookupElement.prototype.getLookupMenuOptionsFromData = null;\n\n/**\n * Set the read-only state of the widget.\n *\n * This will also disable/enable the lookups functionality.\n *\n * @param {boolean} readOnly Make input read-only\n * @chainable\n * @return {OO.ui.Element} The element, for chaining\n */\nOO.ui.mixin.LookupElement.prototype.setReadOnly = function ( readOnly ) {\n\t// Parent method\n\t// Note: Calling #setReadOnly this way assumes this is mixed into an OO.ui.TextInputWidget\n\tOO.ui.TextInputWidget.prototype.setReadOnly.call( this, readOnly );\n\n\t// During construction, #setReadOnly is called before the OO.ui.mixin.LookupElement constructor\n\tif ( this.isReadOnly() && this.lookupMenu ) {\n\t\tthis.closeLookupMenu();\n\t}\n\n\treturn this;\n};\n\n/**\n * @inheritdoc OO.ui.mixin.RequestManager\n */\nOO.ui.mixin.LookupElement.prototype.getRequestQuery = function () {\n\treturn this.getValue();\n};\n\n/**\n * @inheritdoc OO.ui.mixin.RequestManager\n */\nOO.ui.mixin.LookupElement.prototype.getRequest = function () {\n\treturn this.getLookupRequest();\n};\n\n/**\n * @inheritdoc OO.ui.mixin.RequestManager\n */\nOO.ui.mixin.LookupElement.prototype.getRequestCacheDataFromResponse = function ( response ) {\n\treturn this.getLookupCacheDataFromResponse( response );\n};\n","/**\n * TabPanelLayouts are used within {@link OO.ui.IndexLayout index layouts} to create tab panels that\n * users can select and display from the index's optional {@link OO.ui.TabSelectWidget tab}\n * navigation. TabPanels are usually not instantiated directly, rather extended to include the\n * required content and functionality.\n *\n * Each tab panel must have a unique symbolic name, which is passed to the constructor. In addition,\n * the tab panel's tab item is customized (with a label) using the #setupTabItem method. See\n * {@link OO.ui.IndexLayout IndexLayout} for an example.\n *\n * @class\n * @extends OO.ui.PanelLayout\n *\n * @constructor\n * @param {string} name Unique symbolic name of tab panel\n * @param {Object} [config] Configuration options\n * @cfg {jQuery|string|Function|OO.ui.HtmlSnippet} [label] Label for tab panel's tab\n */\nOO.ui.TabPanelLayout = function OoUiTabPanelLayout( name, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( name ) && config === undefined ) {\n\t\tconfig = name;\n\t\tname = config.name;\n\t}\n\n\t// Configuration initialization\n\tconfig = $.extend( { scrollable: true }, config );\n\n\t// Parent constructor\n\tOO.ui.TabPanelLayout.parent.call( this, config );\n\n\t// Properties\n\tthis.name = name;\n\tthis.label = config.label;\n\tthis.tabItem = null;\n\tthis.active = false;\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-tabPanelLayout' )\n\t\t.attr( 'role', 'tabpanel' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.TabPanelLayout, OO.ui.PanelLayout );\n\n/* Events */\n\n/**\n * An 'active' event is emitted when the tab panel becomes active. Tab panels become active when they are\n * shown in a index layout that is configured to display only one tab panel at a time.\n *\n * @event active\n * @param {boolean} active Tab panel is active\n */\n\n/* Methods */\n\n/**\n * Get the symbolic name of the tab panel.\n *\n * @return {string} Symbolic name of tab panel\n */\nOO.ui.TabPanelLayout.prototype.getName = function () {\n\treturn this.name;\n};\n\n/**\n * Check if tab panel is active.\n *\n * Tab panels become active when they are shown in a {@link OO.ui.IndexLayout index layout} that is configured to\n * display only one tab panel at a time. Additional CSS is applied to the tab panel's tab item to reflect the\n * active state.\n *\n * @return {boolean} Tab panel is active\n */\nOO.ui.TabPanelLayout.prototype.isActive = function () {\n\treturn this.active;\n};\n\n/**\n * Get tab item.\n *\n * The tab item allows users to access the tab panel from the index's tab\n * navigation. The tab item itself can be customized (with a label, level, etc.) using the #setupTabItem method.\n *\n * @return {OO.ui.TabOptionWidget|null} Tab option widget\n */\nOO.ui.TabPanelLayout.prototype.getTabItem = function () {\n\treturn this.tabItem;\n};\n\n/**\n * Set or unset the tab item.\n *\n * Specify a {@link OO.ui.TabOptionWidget tab option} to set it,\n * or `null` to clear the tab item. To customize the tab item itself (e.g., to set a label or tab\n * level), use #setupTabItem instead of this method.\n *\n * @param {OO.ui.TabOptionWidget|null} tabItem Tab option widget, null to clear\n * @chainable\n * @return {OO.ui.TabPanelLayout} The layout, for chaining\n */\nOO.ui.TabPanelLayout.prototype.setTabItem = function ( tabItem ) {\n\tthis.tabItem = tabItem || null;\n\tif ( tabItem ) {\n\t\tthis.setupTabItem();\n\t}\n\treturn this;\n};\n\n/**\n * Set up the tab item.\n *\n * Use this method to customize the tab item (e.g., to add a label or tab level). To set or unset\n * the tab item itself (with a {@link OO.ui.TabOptionWidget tab option} or `null`), use\n * the #setTabItem method instead.\n *\n * @param {OO.ui.TabOptionWidget} tabItem Tab option widget to set up\n * @chainable\n * @return {OO.ui.TabPanelLayout} The layout, for chaining\n */\nOO.ui.TabPanelLayout.prototype.setupTabItem = function () {\n\tthis.$element.attr( 'aria-labelledby', this.tabItem.getElementId() );\n\n\tthis.tabItem.$element.attr( 'aria-controls', this.getElementId() );\n\n\tif ( this.label ) {\n\t\tthis.tabItem.setLabel( this.label );\n\t}\n\treturn this;\n};\n\n/**\n * Set the tab panel to its 'active' state.\n *\n * Tab panels become active when they are shown in a index layout that is configured to display only\n * one tab panel at a time. Additional CSS is applied to the tab item to reflect the tab panel's\n * active state. Outside of the index context, setting the active state on a tab panel does nothing.\n *\n * @param {boolean} active Tab panel is active\n * @fires active\n */\nOO.ui.TabPanelLayout.prototype.setActive = function ( active ) {\n\tactive = !!active;\n\n\tif ( active !== this.active ) {\n\t\tthis.active = active;\n\t\tthis.$element.toggleClass( 'oo-ui-tabPanelLayout-active', this.active );\n\t\tthis.emit( 'active', this.active );\n\t}\n};\n","/**\n * PageLayouts are used within {@link OO.ui.BookletLayout booklet layouts} to create pages that users can select and display\n * from the booklet's optional {@link OO.ui.OutlineSelectWidget outline} navigation. Pages are usually not instantiated directly,\n * rather extended to include the required content and functionality.\n *\n * Each page must have a unique symbolic name, which is passed to the constructor. In addition, the page's outline\n * item is customized (with a label, outline level, etc.) using the #setupOutlineItem method. See\n * {@link OO.ui.BookletLayout BookletLayout} for an example.\n *\n * @class\n * @extends OO.ui.PanelLayout\n *\n * @constructor\n * @param {string} name Unique symbolic name of page\n * @param {Object} [config] Configuration options\n */\nOO.ui.PageLayout = function OoUiPageLayout( name, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( name ) && config === undefined ) {\n\t\tconfig = name;\n\t\tname = config.name;\n\t}\n\n\t// Configuration initialization\n\tconfig = $.extend( { scrollable: true }, config );\n\n\t// Parent constructor\n\tOO.ui.PageLayout.parent.call( this, config );\n\n\t// Properties\n\tthis.name = name;\n\tthis.outlineItem = null;\n\tthis.active = false;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-pageLayout' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.PageLayout, OO.ui.PanelLayout );\n\n/* Events */\n\n/**\n * An 'active' event is emitted when the page becomes active. Pages become active when they are\n * shown in a booklet layout that is configured to display only one page at a time.\n *\n * @event active\n * @param {boolean} active Page is active\n */\n\n/* Methods */\n\n/**\n * Get the symbolic name of the page.\n *\n * @return {string} Symbolic name of page\n */\nOO.ui.PageLayout.prototype.getName = function () {\n\treturn this.name;\n};\n\n/**\n * Check if page is active.\n *\n * Pages become active when they are shown in a {@link OO.ui.BookletLayout booklet layout} that is configured to display\n * only one page at a time. Additional CSS is applied to the page's outline item to reflect the active state.\n *\n * @return {boolean} Page is active\n */\nOO.ui.PageLayout.prototype.isActive = function () {\n\treturn this.active;\n};\n\n/**\n * Get outline item.\n *\n * The outline item allows users to access the page from the booklet's outline\n * navigation. The outline item itself can be customized (with a label, level, etc.) using the #setupOutlineItem method.\n *\n * @return {OO.ui.OutlineOptionWidget|null} Outline option widget\n */\nOO.ui.PageLayout.prototype.getOutlineItem = function () {\n\treturn this.outlineItem;\n};\n\n/**\n * Set or unset the outline item.\n *\n * Specify an {@link OO.ui.OutlineOptionWidget outline option} to set it,\n * or `null` to clear the outline item. To customize the outline item itself (e.g., to set a label or outline\n * level), use #setupOutlineItem instead of this method.\n *\n * @param {OO.ui.OutlineOptionWidget|null} outlineItem Outline option widget, null to clear\n * @chainable\n * @return {OO.ui.PageLayout} The layout, for chaining\n */\nOO.ui.PageLayout.prototype.setOutlineItem = function ( outlineItem ) {\n\tthis.outlineItem = outlineItem || null;\n\tif ( outlineItem ) {\n\t\tthis.setupOutlineItem();\n\t}\n\treturn this;\n};\n\n/**\n * Set up the outline item.\n *\n * Use this method to customize the outline item (e.g., to add a label or outline level). To set or unset\n * the outline item itself (with an {@link OO.ui.OutlineOptionWidget outline option} or `null`), use\n * the #setOutlineItem method instead.\n *\n * @param {OO.ui.OutlineOptionWidget} outlineItem Outline option widget to set up\n * @chainable\n * @return {OO.ui.PageLayout} The layout, for chaining\n */\nOO.ui.PageLayout.prototype.setupOutlineItem = function () {\n\treturn this;\n};\n\n/**\n * Set the page to its 'active' state.\n *\n * Pages become active when they are shown in a booklet layout that is configured to display only one page at a time. Additional\n * CSS is applied to the outline item to reflect the page's active state. Outside of the booklet\n * context, setting the active state on a page does nothing.\n *\n * @param {boolean} active Page is active\n * @fires active\n */\nOO.ui.PageLayout.prototype.setActive = function ( active ) {\n\tactive = !!active;\n\n\tif ( active !== this.active ) {\n\t\tthis.active = active;\n\t\tthis.$element.toggleClass( 'oo-ui-pageLayout-active', active );\n\t\tthis.emit( 'active', this.active );\n\t}\n};\n","/**\n * StackLayouts contain a series of {@link OO.ui.PanelLayout panel layouts}. By default, only one panel is displayed\n * at a time, though the stack layout can also be configured to show all contained panels, one after another,\n * by setting the #continuous option to 'true'.\n *\n *     @example\n *     // A stack layout with two panels, configured to be displayed continuously\n *     var myStack = new OO.ui.StackLayout( {\n *         items: [\n *             new OO.ui.PanelLayout( {\n *                 $content: $( '<p>Panel One</p>' ),\n *                 padded: true,\n *                 framed: true\n *             } ),\n *             new OO.ui.PanelLayout( {\n *                 $content: $( '<p>Panel Two</p>' ),\n *                 padded: true,\n *                 framed: true\n *             } )\n *         ],\n *         continuous: true\n *     } );\n *     $( document.body ).append( myStack.$element );\n *\n * @class\n * @extends OO.ui.PanelLayout\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [continuous=false] Show all panels, one after another. By default, only one panel is displayed at a time.\n * @cfg {OO.ui.Layout[]} [items] Panel layouts to add to the stack layout.\n */\nOO.ui.StackLayout = function OoUiStackLayout( config ) {\n\t// Configuration initialization\n\t// Make the layout scrollable in continuous mode, otherwise each\n\t// panel is responsible for its own scrolling.\n\tconfig = $.extend( { scrollable: !!( config && config.continuous ) }, config );\n\n\t// Parent constructor\n\tOO.ui.StackLayout.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );\n\n\t// Properties\n\tthis.currentItem = null;\n\tthis.continuous = !!config.continuous;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-stackLayout' );\n\tif ( this.continuous ) {\n\t\tthis.$element.addClass( 'oo-ui-stackLayout-continuous' );\n\t\tthis.$element.on( 'scroll', OO.ui.debounce( this.onScroll.bind( this ), 250 ) );\n\t}\n\tif ( Array.isArray( config.items ) ) {\n\t\tthis.addItems( config.items );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.StackLayout, OO.ui.PanelLayout );\nOO.mixinClass( OO.ui.StackLayout, OO.ui.mixin.GroupElement );\n\n/* Events */\n\n/**\n * A 'set' event is emitted when panels are {@link #addItems added}, {@link #removeItems removed},\n * {@link #clearItems cleared} or {@link #setItem displayed}.\n *\n * @event set\n * @param {OO.ui.Layout|null} item Current panel or `null` if no panel is shown\n */\n\n/**\n * When used in continuous mode, this event is emitted when the user scrolls down\n * far enough such that currentItem is no longer visible.\n *\n * @event visibleItemChange\n * @param {OO.ui.PanelLayout} panel The next visible item in the layout\n */\n\n/* Methods */\n\n/**\n * Handle scroll events from the layout element\n *\n * @param {jQuery.Event} e\n * @fires visibleItemChange\n */\nOO.ui.StackLayout.prototype.onScroll = function () {\n\tvar currentRect,\n\t\tlen = this.items.length,\n\t\tcurrentIndex = this.items.indexOf( this.currentItem ),\n\t\tnewIndex = currentIndex,\n\t\tcontainerRect = this.$element[ 0 ].getBoundingClientRect();\n\n\tif ( !containerRect || ( !containerRect.top && !containerRect.bottom ) ) {\n\t\t// Can't get bounding rect, possibly not attached.\n\t\treturn;\n\t}\n\n\tfunction getRect( item ) {\n\t\treturn item.$element[ 0 ].getBoundingClientRect();\n\t}\n\n\tfunction isVisible( item ) {\n\t\tvar rect = getRect( item );\n\t\treturn rect.bottom > containerRect.top && rect.top < containerRect.bottom;\n\t}\n\n\tcurrentRect = getRect( this.currentItem );\n\n\tif ( currentRect.bottom < containerRect.top ) {\n\t\t// Scrolled down past current item\n\t\twhile ( ++newIndex < len ) {\n\t\t\tif ( isVisible( this.items[ newIndex ] ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else if ( currentRect.top > containerRect.bottom ) {\n\t\t// Scrolled up past current item\n\t\twhile ( --newIndex >= 0 ) {\n\t\t\tif ( isVisible( this.items[ newIndex ] ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( newIndex !== currentIndex ) {\n\t\tthis.emit( 'visibleItemChange', this.items[ newIndex ] );\n\t}\n};\n\n/**\n * Get the current panel.\n *\n * @return {OO.ui.Layout|null}\n */\nOO.ui.StackLayout.prototype.getCurrentItem = function () {\n\treturn this.currentItem;\n};\n\n/**\n * Unset the current item.\n *\n * @private\n * @param {OO.ui.StackLayout} layout\n * @fires set\n */\nOO.ui.StackLayout.prototype.unsetCurrentItem = function () {\n\tvar prevItem = this.currentItem;\n\tif ( prevItem === null ) {\n\t\treturn;\n\t}\n\n\tthis.currentItem = null;\n\tthis.emit( 'set', null );\n};\n\n/**\n * Add panel layouts to the stack layout.\n *\n * Panels will be added to the end of the stack layout array unless the optional index parameter specifies a different\n * insertion point. Adding a panel that is already in the stack will move it to the end of the array or the point specified\n * by the index.\n *\n * @param {OO.ui.Layout[]} items Panels to add\n * @param {number} [index] Index of the insertion point\n * @chainable\n * @return {OO.ui.StackLayout} The layout, for chaining\n */\nOO.ui.StackLayout.prototype.addItems = function ( items, index ) {\n\t// Update the visibility\n\tthis.updateHiddenState( items, this.currentItem );\n\n\t// Mixin method\n\tOO.ui.mixin.GroupElement.prototype.addItems.call( this, items, index );\n\n\tif ( !this.currentItem && items.length ) {\n\t\tthis.setItem( items[ 0 ] );\n\t}\n\n\treturn this;\n};\n\n/**\n * Remove the specified panels from the stack layout.\n *\n * Removed panels are detached from the DOM, not removed, so that they may be reused. To remove all panels,\n * you may wish to use the #clearItems method instead.\n *\n * @param {OO.ui.Layout[]} items Panels to remove\n * @chainable\n * @return {OO.ui.StackLayout} The layout, for chaining\n * @fires set\n */\nOO.ui.StackLayout.prototype.removeItems = function ( items ) {\n\t// Mixin method\n\tOO.ui.mixin.GroupElement.prototype.removeItems.call( this, items );\n\n\tif ( items.indexOf( this.currentItem ) !== -1 ) {\n\t\tif ( this.items.length ) {\n\t\t\tthis.setItem( this.items[ 0 ] );\n\t\t} else {\n\t\t\tthis.unsetCurrentItem();\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Clear all panels from the stack layout.\n *\n * Cleared panels are detached from the DOM, not removed, so that they may be reused. To remove only\n * a subset of panels, use the #removeItems method.\n *\n * @chainable\n * @return {OO.ui.StackLayout} The layout, for chaining\n * @fires set\n */\nOO.ui.StackLayout.prototype.clearItems = function () {\n\tthis.unsetCurrentItem();\n\tOO.ui.mixin.GroupElement.prototype.clearItems.call( this );\n\n\treturn this;\n};\n\n/**\n * Show the specified panel.\n *\n * If another panel is currently displayed, it will be hidden.\n *\n * @param {OO.ui.Layout} item Panel to show\n * @chainable\n * @return {OO.ui.StackLayout} The layout, for chaining\n * @fires set\n */\nOO.ui.StackLayout.prototype.setItem = function ( item ) {\n\tif ( item !== this.currentItem ) {\n\t\tthis.updateHiddenState( this.items, item );\n\n\t\tif ( this.items.indexOf( item ) !== -1 ) {\n\t\t\tthis.currentItem = item;\n\t\t\tthis.emit( 'set', item );\n\t\t} else {\n\t\t\tthis.unsetCurrentItem();\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Reset the scroll offset of all panels, or the container if continuous\n *\n * @inheritdoc\n */\nOO.ui.StackLayout.prototype.resetScroll = function () {\n\tif ( this.continuous ) {\n\t\t// Parent method\n\t\treturn OO.ui.StackLayout.parent.prototype.resetScroll.call( this );\n\t}\n\t// Reset each panel\n\tthis.getItems().forEach( function ( panel ) {\n\t\tvar hidden = panel.$element.hasClass( 'oo-ui-element-hidden' );\n\t\t// Scroll can only be reset when panel is visible\n\t\tpanel.$element.removeClass( 'oo-ui-element-hidden' );\n\t\tpanel.resetScroll();\n\t\tif ( hidden ) {\n\t\t\tpanel.$element.addClass( 'oo-ui-element-hidden' );\n\t\t}\n\t} );\n\n\treturn this;\n};\n\n/**\n * Update the visibility of all items in case of non-continuous view.\n *\n * Ensure all items are hidden except for the selected one.\n * This method does nothing when the stack is continuous.\n *\n * @private\n * @param {OO.ui.Layout[]} items Item list iterate over\n * @param {OO.ui.Layout} [selectedItem] Selected item to show\n */\nOO.ui.StackLayout.prototype.updateHiddenState = function ( items, selectedItem ) {\n\tvar i, len;\n\n\tif ( !this.continuous ) {\n\t\tfor ( i = 0, len = items.length; i < len; i++ ) {\n\t\t\tif ( !selectedItem || selectedItem !== items[ i ] ) {\n\t\t\t\titems[ i ].$element.addClass( 'oo-ui-element-hidden' );\n\t\t\t\titems[ i ].$element.attr( 'aria-hidden', 'true' );\n\t\t\t}\n\t\t}\n\t\tif ( selectedItem ) {\n\t\t\tselectedItem.$element.removeClass( 'oo-ui-element-hidden' );\n\t\t\tselectedItem.$element.removeAttr( 'aria-hidden' );\n\t\t}\n\t}\n};\n","/**\n * MenuLayouts combine a menu and a content {@link OO.ui.PanelLayout panel}. The menu is positioned relative to the content (after, before, top, or bottom)\n * and its size is customized with the #menuSize config. The content area will fill all remaining space.\n *\n *     @example\n *     var menuLayout,\n *         menuPanel = new OO.ui.PanelLayout( { padded: true, expanded: true, scrollable: true } ),\n *         contentPanel = new OO.ui.PanelLayout( { padded: true, expanded: true, scrollable: true } ),\n *         select = new OO.ui.SelectWidget( {\n *             items: [\n *                 new OO.ui.OptionWidget( {\n *                     data: 'before',\n *                     label: 'Before'\n *                 } ),\n *                 new OO.ui.OptionWidget( {\n *                     data: 'after',\n *                     label: 'After'\n *                 } ),\n *                 new OO.ui.OptionWidget( {\n *                     data: 'top',\n *                     label: 'Top'\n *                 } ),\n *                 new OO.ui.OptionWidget( {\n *                     data: 'bottom',\n *                     label: 'Bottom'\n *                 } )\n *              ]\n *         } ).on( 'select', function ( item ) {\n *            menuLayout.setMenuPosition( item.getData() );\n *         } );\n *\n *     menuLayout = new OO.ui.MenuLayout( {\n *         position: 'top',\n *         menuPanel: menuPanel,\n *         contentPanel: contentPanel\n *     } )\n *     menuLayout.$menu.append(\n *         menuPanel.$element.append( '<b>Menu panel</b>', select.$element )\n *     );\n *     menuLayout.$content.append(\n *         contentPanel.$element.append( '<b>Content panel</b>', '<p>Note that the menu is positioned relative to the content panel: top, bottom, after, before.</p>')\n *     );\n *     $( document.body ).append( menuLayout.$element );\n *\n * If menu size needs to be overridden, it can be accomplished using CSS similar to the snippet\n * below. MenuLayout's CSS will override the appropriate values with 'auto' or '0' to display the\n * menu correctly. If `menuPosition` is known beforehand, CSS rules corresponding to other positions\n * may be omitted.\n *\n *     .oo-ui-menuLayout-menu {\n *         width: 200px;\n *         height: 200px;\n *     }\n *\n *     .oo-ui-menuLayout-content {\n *         top: 200px;\n *         left: 200px;\n *         right: 200px;\n *         bottom: 200px;\n *     }\n *\n * @class\n * @extends OO.ui.Layout\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.ui.PanelLayout} [menuPanel] Menu panel\n * @cfg {OO.ui.PanelLayout} [contentPanel] Content panel\n * @cfg {boolean} [expanded=true] Expand the layout to fill the entire parent element.\n * @cfg {boolean} [showMenu=true] Show menu\n * @cfg {string} [menuPosition='before'] Position of menu: `top`, `after`, `bottom` or `before`\n */\nOO.ui.MenuLayout = function OoUiMenuLayout( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( {\n\t\texpanded: true,\n\t\tshowMenu: true,\n\t\tmenuPosition: 'before'\n\t}, config );\n\n\t// Parent constructor\n\tOO.ui.MenuLayout.parent.call( this, config );\n\n\tthis.menuPanel = null;\n\tthis.contentPanel = null;\n\tthis.expanded = !!config.expanded;\n\t/**\n\t * Menu DOM node\n\t *\n\t * @property {jQuery}\n\t */\n\tthis.$menu = $( '<div>' );\n\t/**\n\t * Content DOM node\n\t *\n\t * @property {jQuery}\n\t */\n\tthis.$content = $( '<div>' );\n\n\t// Initialization\n\tthis.$menu\n\t\t.addClass( 'oo-ui-menuLayout-menu' );\n\tthis.$content.addClass( 'oo-ui-menuLayout-content' );\n\tthis.$element\n\t\t.addClass( 'oo-ui-menuLayout' );\n\tif ( config.expanded ) {\n\t\tthis.$element.addClass( 'oo-ui-menuLayout-expanded' );\n\t} else {\n\t\tthis.$element.addClass( 'oo-ui-menuLayout-static' );\n\t}\n\tif ( config.menuPanel ) {\n\t\tthis.setMenuPanel( config.menuPanel );\n\t}\n\tif ( config.contentPanel ) {\n\t\tthis.setContentPanel( config.contentPanel );\n\t}\n\tthis.setMenuPosition( config.menuPosition );\n\tthis.toggleMenu( config.showMenu );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MenuLayout, OO.ui.Layout );\n\n/* Methods */\n\n/**\n * Toggle menu.\n *\n * @param {boolean} showMenu Show menu, omit to toggle\n * @chainable\n * @return {OO.ui.MenuLayout} The layout, for chaining\n */\nOO.ui.MenuLayout.prototype.toggleMenu = function ( showMenu ) {\n\tshowMenu = showMenu === undefined ? !this.showMenu : !!showMenu;\n\n\tif ( this.showMenu !== showMenu ) {\n\t\tthis.showMenu = showMenu;\n\t\tthis.$element\n\t\t\t.toggleClass( 'oo-ui-menuLayout-showMenu', this.showMenu )\n\t\t\t.toggleClass( 'oo-ui-menuLayout-hideMenu', !this.showMenu );\n\t\tthis.$menu.attr( 'aria-hidden', this.showMenu ? 'false' : 'true' );\n\t}\n\n\treturn this;\n};\n\n/**\n * Check if menu is visible\n *\n * @return {boolean} Menu is visible\n */\nOO.ui.MenuLayout.prototype.isMenuVisible = function () {\n\treturn this.showMenu;\n};\n\n/**\n * Set menu position.\n *\n * @param {string} position Position of menu, either `top`, `after`, `bottom` or `before`\n * @throws {Error} If position value is not supported\n * @chainable\n * @return {OO.ui.MenuLayout} The layout, for chaining\n */\nOO.ui.MenuLayout.prototype.setMenuPosition = function ( position ) {\n\tthis.$element.removeClass( 'oo-ui-menuLayout-' + this.menuPosition );\n\tthis.menuPosition = position;\n\tif ( this.menuPosition === 'top' || this.menuPosition === 'before' ) {\n\t\tthis.$element.append( this.$menu, this.$content );\n\t} else {\n\t\tthis.$element.append( this.$content, this.$menu );\n\t}\n\tthis.$element.addClass( 'oo-ui-menuLayout-' + position );\n\n\treturn this;\n};\n\n/**\n * Get menu position.\n *\n * @return {string} Menu position\n */\nOO.ui.MenuLayout.prototype.getMenuPosition = function () {\n\treturn this.menuPosition;\n};\n\n/**\n * Set the menu panel.\n *\n * @param {OO.ui.PanelLayout} menuPanel Menu panel\n */\nOO.ui.MenuLayout.prototype.setMenuPanel = function ( menuPanel ) {\n\tthis.menuPanel = menuPanel;\n\tthis.$menu.append( this.menuPanel.$element );\n};\n\n/**\n * Set the content panel.\n *\n * @param {OO.ui.PanelLayout} contentPanel Content panel\n */\nOO.ui.MenuLayout.prototype.setContentPanel = function ( contentPanel ) {\n\tthis.contentPanel = contentPanel;\n\tthis.$content.append( this.contentPanel.$element );\n};\n\n/**\n * Clear the menu panel.\n */\nOO.ui.MenuLayout.prototype.clearMenuPanel = function () {\n\tthis.menuPanel = null;\n\tthis.$menu.empty();\n};\n\n/**\n * Clear the content panel.\n */\nOO.ui.MenuLayout.prototype.clearContentPanel = function () {\n\tthis.contentPanel = null;\n\tthis.$content.empty();\n};\n\n/**\n * Reset the scroll offset of all panels and the tab select widget\n *\n * @inheritdoc\n */\nOO.ui.MenuLayout.prototype.resetScroll = function () {\n\tif ( this.menuPanel ) {\n\t\tthis.menuPanel.resetScroll();\n\t}\n\tif ( this.contentPanel ) {\n\t\tthis.contentPanel.resetScroll();\n\t}\n\n\treturn this;\n};\n","/**\n * BookletLayouts contain {@link OO.ui.PageLayout page layouts} as well as\n * an {@link OO.ui.OutlineSelectWidget outline} that allows users to easily navigate\n * through the pages and select which one to display. By default, only one page is\n * displayed at a time and the outline is hidden. When a user navigates to a new page,\n * the booklet layout automatically focuses on the first focusable element, unless the\n * default setting is changed. Optionally, booklets can be configured to show\n * {@link OO.ui.OutlineControlsWidget controls} for adding, moving, and removing items.\n *\n *     @example\n *     // Example of a BookletLayout that contains two PageLayouts.\n *\n *     function PageOneLayout( name, config ) {\n *         PageOneLayout.parent.call( this, name, config );\n *         this.$element.append( '<p>First page</p><p>(This booklet has an outline, displayed on the left)</p>' );\n *     }\n *     OO.inheritClass( PageOneLayout, OO.ui.PageLayout );\n *     PageOneLayout.prototype.setupOutlineItem = function () {\n *         this.outlineItem.setLabel( 'Page One' );\n *     };\n *\n *     function PageTwoLayout( name, config ) {\n *         PageTwoLayout.parent.call( this, name, config );\n *         this.$element.append( '<p>Second page</p>' );\n *     }\n *     OO.inheritClass( PageTwoLayout, OO.ui.PageLayout );\n *     PageTwoLayout.prototype.setupOutlineItem = function () {\n *         this.outlineItem.setLabel( 'Page Two' );\n *     };\n *\n *     var page1 = new PageOneLayout( 'one' ),\n *         page2 = new PageTwoLayout( 'two' );\n *\n *     var booklet = new OO.ui.BookletLayout( {\n *         outlined: true\n *     } );\n *\n *     booklet.addPages( [ page1, page2 ] );\n *     $( document.body ).append( booklet.$element );\n *\n * @class\n * @extends OO.ui.MenuLayout\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [continuous=false] Show all pages, one after another\n * @cfg {boolean} [autoFocus=true] Focus on the first focusable element when a new page is displayed. Disabled on mobile.\n * @cfg {boolean} [outlined=false] Show the outline. The outline is used to navigate through the pages of the booklet.\n * @cfg {boolean} [editable=false] Show controls for adding, removing and reordering pages\n */\nOO.ui.BookletLayout = function OoUiBookletLayout( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.BookletLayout.parent.call( this, config );\n\n\t// Properties\n\tthis.currentPageName = null;\n\tthis.pages = {};\n\tthis.ignoreFocus = false;\n\tthis.stackLayout = new OO.ui.StackLayout( {\n\t\tcontinuous: !!config.continuous,\n\t\texpanded: this.expanded\n\t} );\n\tthis.setContentPanel( this.stackLayout );\n\tthis.autoFocus = config.autoFocus === undefined || !!config.autoFocus;\n\tthis.outlineVisible = false;\n\tthis.outlined = !!config.outlined;\n\tif ( this.outlined ) {\n\t\tthis.editable = !!config.editable;\n\t\tthis.outlineControlsWidget = null;\n\t\tthis.outlineSelectWidget = new OO.ui.OutlineSelectWidget();\n\t\tthis.outlinePanel = new OO.ui.PanelLayout( {\n\t\t\texpanded: this.expanded,\n\t\t\tscrollable: true\n\t\t} );\n\t\tthis.setMenuPanel( this.outlinePanel );\n\t\tthis.outlineVisible = true;\n\t\tif ( this.editable ) {\n\t\t\tthis.outlineControlsWidget = new OO.ui.OutlineControlsWidget(\n\t\t\t\tthis.outlineSelectWidget\n\t\t\t);\n\t\t}\n\t}\n\tthis.toggleMenu( this.outlined );\n\n\t// Events\n\tthis.stackLayout.connect( this, { set: 'onStackLayoutSet' } );\n\tif ( this.outlined ) {\n\t\tthis.outlineSelectWidget.connect( this, { select: 'onOutlineSelectWidgetSelect' } );\n\t\tthis.scrolling = false;\n\t\tthis.stackLayout.connect( this, { visibleItemChange: 'onStackLayoutVisibleItemChange' } );\n\t}\n\tif ( this.autoFocus ) {\n\t\t// Event 'focus' does not bubble, but 'focusin' does\n\t\tthis.stackLayout.$element.on( 'focusin', this.onStackLayoutFocus.bind( this ) );\n\t}\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-bookletLayout' );\n\tthis.stackLayout.$element.addClass( 'oo-ui-bookletLayout-stackLayout' );\n\tif ( this.outlined ) {\n\t\tthis.outlinePanel.$element\n\t\t\t.addClass( 'oo-ui-bookletLayout-outlinePanel' )\n\t\t\t.append( this.outlineSelectWidget.$element );\n\t\tif ( this.editable ) {\n\t\t\tthis.outlinePanel.$element\n\t\t\t\t.addClass( 'oo-ui-bookletLayout-outlinePanel-editable' )\n\t\t\t\t.append( this.outlineControlsWidget.$element );\n\t\t}\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.BookletLayout, OO.ui.MenuLayout );\n\n/* Events */\n\n/**\n * A 'set' event is emitted when a page is {@link #setPage set} to be displayed by the booklet layout.\n * @event set\n * @param {OO.ui.PageLayout} page Current page\n */\n\n/**\n * An 'add' event is emitted when pages are {@link #addPages added} to the booklet layout.\n *\n * @event add\n * @param {OO.ui.PageLayout[]} page Added pages\n * @param {number} index Index pages were added at\n */\n\n/**\n * A 'remove' event is emitted when pages are {@link #clearPages cleared} or\n * {@link #removePages removed} from the booklet.\n *\n * @event remove\n * @param {OO.ui.PageLayout[]} pages Removed pages\n */\n\n/* Methods */\n\n/**\n * Handle stack layout focus.\n *\n * @private\n * @param {jQuery.Event} e Focusin event\n */\nOO.ui.BookletLayout.prototype.onStackLayoutFocus = function ( e ) {\n\tvar name, $target;\n\n\t// Find the page that an element was focused within\n\t$target = $( e.target ).closest( '.oo-ui-pageLayout' );\n\tfor ( name in this.pages ) {\n\t\t// Check for page match, exclude current page to find only page changes\n\t\tif ( this.pages[ name ].$element[ 0 ] === $target[ 0 ] && name !== this.currentPageName ) {\n\t\t\tthis.setPage( name );\n\t\t\tbreak;\n\t\t}\n\t}\n};\n\n/**\n * Handle visibleItemChange events from the stackLayout\n *\n * The next visible page is set as the current page by selecting it\n * in the outline\n *\n * @param {OO.ui.PageLayout} page The next visible page in the layout\n */\nOO.ui.BookletLayout.prototype.onStackLayoutVisibleItemChange = function ( page ) {\n\t// Set a flag to so that the resulting call to #onStackLayoutSet doesn't\n\t// try and scroll the item into view again.\n\tthis.scrolling = true;\n\tthis.outlineSelectWidget.selectItemByData( page.getName() );\n\tthis.scrolling = false;\n};\n\n/**\n * Handle stack layout set events.\n *\n * @private\n * @param {OO.ui.PanelLayout|null} page The page panel that is now the current panel\n */\nOO.ui.BookletLayout.prototype.onStackLayoutSet = function ( page ) {\n\tvar promise, layout = this;\n\t// If everything is unselected, do nothing\n\tif ( !page ) {\n\t\treturn;\n\t}\n\t// For continuous BookletLayouts, scroll the selected page into view first\n\tif ( this.stackLayout.continuous && !this.scrolling ) {\n\t\tpromise = page.scrollElementIntoView();\n\t} else {\n\t\tpromise = $.Deferred().resolve();\n\t}\n\t// Focus the first element on the newly selected panel.\n\t// Don't focus if the page was set by scrolling.\n\tif ( this.autoFocus && !OO.ui.isMobile() && !this.scrolling ) {\n\t\tpromise.done( function () {\n\t\t\tlayout.focus();\n\t\t} );\n\t}\n};\n\n/**\n * Focus the first input in the current page.\n *\n * If no page is selected, the first selectable page will be selected.\n * If the focus is already in an element on the current page, nothing will happen.\n *\n * @param {number} [itemIndex] A specific item to focus on\n */\nOO.ui.BookletLayout.prototype.focus = function ( itemIndex ) {\n\tvar page,\n\t\titems = this.stackLayout.getItems();\n\n\tif ( itemIndex !== undefined && items[ itemIndex ] ) {\n\t\tpage = items[ itemIndex ];\n\t} else {\n\t\tpage = this.stackLayout.getCurrentItem();\n\t}\n\n\tif ( !page && this.outlined ) {\n\t\tthis.selectFirstSelectablePage();\n\t\tpage = this.stackLayout.getCurrentItem();\n\t}\n\tif ( !page ) {\n\t\treturn;\n\t}\n\t// Only change the focus if is not already in the current page\n\tif ( !OO.ui.contains( page.$element[ 0 ], this.getElementDocument().activeElement, true ) ) {\n\t\tpage.focus();\n\t}\n};\n\n/**\n * Find the first focusable input in the booklet layout and focus\n * on it.\n */\nOO.ui.BookletLayout.prototype.focusFirstFocusable = function () {\n\tOO.ui.findFocusable( this.stackLayout.$element ).focus();\n};\n\n/**\n * Handle outline widget select events.\n *\n * @private\n * @param {OO.ui.OptionWidget|null} item Selected item\n */\nOO.ui.BookletLayout.prototype.onOutlineSelectWidgetSelect = function ( item ) {\n\tif ( item ) {\n\t\tthis.setPage( item.getData() );\n\t}\n};\n\n/**\n * Check if booklet has an outline.\n *\n * @return {boolean} Booklet has an outline\n */\nOO.ui.BookletLayout.prototype.isOutlined = function () {\n\treturn this.outlined;\n};\n\n/**\n * Check if booklet has editing controls.\n *\n * @return {boolean} Booklet is editable\n */\nOO.ui.BookletLayout.prototype.isEditable = function () {\n\treturn this.editable;\n};\n\n/**\n * Check if booklet has a visible outline.\n *\n * @return {boolean} Outline is visible\n */\nOO.ui.BookletLayout.prototype.isOutlineVisible = function () {\n\treturn this.outlined && this.outlineVisible;\n};\n\n/**\n * Hide or show the outline.\n *\n * @param {boolean} [show] Show outline, omit to invert current state\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.BookletLayout.prototype.toggleOutline = function ( show ) {\n\tvar booklet = this;\n\n\tif ( this.outlined ) {\n\t\tshow = show === undefined ? !this.outlineVisible : !!show;\n\t\tthis.outlineVisible = show;\n\t\tthis.toggleMenu( show );\n\t\tif ( show && this.editable ) {\n\t\t\t// HACK: Kill dumb scrollbars when the sidebar stops animating, see T161798. Only necessary when\n\t\t\t// outline controls are present, delay matches transition on `.oo-ui-menuLayout-menu`.\n\t\t\tsetTimeout( function () {\n\t\t\t\tOO.ui.Element.static.reconsiderScrollbars( booklet.outlinePanel.$element[ 0 ] );\n\t\t\t}, OO.ui.theme.getDialogTransitionDuration() );\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Find the page closest to the specified page.\n *\n * @param {OO.ui.PageLayout} page Page to use as a reference point\n * @return {OO.ui.PageLayout|null} Page closest to the specified page\n */\nOO.ui.BookletLayout.prototype.findClosestPage = function ( page ) {\n\tvar next, prev, level,\n\t\tpages = this.stackLayout.getItems(),\n\t\tindex = pages.indexOf( page );\n\n\tif ( index !== -1 ) {\n\t\tnext = pages[ index + 1 ];\n\t\tprev = pages[ index - 1 ];\n\t\t// Prefer adjacent pages at the same level\n\t\tif ( this.outlined ) {\n\t\t\tlevel = this.outlineSelectWidget.findItemFromData( page.getName() ).getLevel();\n\t\t\tif (\n\t\t\t\tprev &&\n\t\t\t\tlevel === this.outlineSelectWidget.findItemFromData( prev.getName() ).getLevel()\n\t\t\t) {\n\t\t\t\treturn prev;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tnext &&\n\t\t\t\tlevel === this.outlineSelectWidget.findItemFromData( next.getName() ).getLevel()\n\t\t\t) {\n\t\t\t\treturn next;\n\t\t\t}\n\t\t}\n\t}\n\treturn prev || next || null;\n};\n\n/**\n * Get the outline widget.\n *\n * If the booklet is not outlined, the method will return `null`.\n *\n * @return {OO.ui.OutlineSelectWidget|null} Outline widget, or null if the booklet is not outlined\n */\nOO.ui.BookletLayout.prototype.getOutline = function () {\n\treturn this.outlineSelectWidget;\n};\n\n/**\n * Get the outline controls widget.\n *\n * If the outline is not editable, the method will return `null`.\n *\n * @return {OO.ui.OutlineControlsWidget|null} The outline controls widget.\n */\nOO.ui.BookletLayout.prototype.getOutlineControls = function () {\n\treturn this.outlineControlsWidget;\n};\n\n/**\n * Get a page by its symbolic name.\n *\n * @param {string} name Symbolic name of page\n * @return {OO.ui.PageLayout|undefined} Page, if found\n */\nOO.ui.BookletLayout.prototype.getPage = function ( name ) {\n\treturn this.pages[ name ];\n};\n\n/**\n * Get the current page.\n *\n * @return {OO.ui.PageLayout|undefined} Current page, if found\n */\nOO.ui.BookletLayout.prototype.getCurrentPage = function () {\n\tvar name = this.getCurrentPageName();\n\treturn name ? this.getPage( name ) : undefined;\n};\n\n/**\n * Get the symbolic name of the current page.\n *\n * @return {string|null} Symbolic name of the current page\n */\nOO.ui.BookletLayout.prototype.getCurrentPageName = function () {\n\treturn this.currentPageName;\n};\n\n/**\n * Add pages to the booklet layout\n *\n * When pages are added with the same names as existing pages, the existing pages will be\n * automatically removed before the new pages are added.\n *\n * @param {OO.ui.PageLayout[]} pages Pages to add\n * @param {number} index Index of the insertion point\n * @fires add\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.BookletLayout.prototype.addPages = function ( pages, index ) {\n\tvar i, len, name, page, item, currentIndex,\n\t\tstackLayoutPages = this.stackLayout.getItems(),\n\t\tremove = [],\n\t\titems = [];\n\n\t// Remove pages with same names\n\tfor ( i = 0, len = pages.length; i < len; i++ ) {\n\t\tpage = pages[ i ];\n\t\tname = page.getName();\n\n\t\tif ( Object.prototype.hasOwnProperty.call( this.pages, name ) ) {\n\t\t\t// Correct the insertion index\n\t\t\tcurrentIndex = stackLayoutPages.indexOf( this.pages[ name ] );\n\t\t\tif ( currentIndex !== -1 && currentIndex + 1 < index ) {\n\t\t\t\tindex--;\n\t\t\t}\n\t\t\tremove.push( this.pages[ name ] );\n\t\t}\n\t}\n\tif ( remove.length ) {\n\t\tthis.removePages( remove );\n\t}\n\n\t// Add new pages\n\tfor ( i = 0, len = pages.length; i < len; i++ ) {\n\t\tpage = pages[ i ];\n\t\tname = page.getName();\n\t\tthis.pages[ page.getName() ] = page;\n\t\tif ( this.outlined ) {\n\t\t\titem = new OO.ui.OutlineOptionWidget( { data: name } );\n\t\t\tpage.setOutlineItem( item );\n\t\t\titems.push( item );\n\t\t}\n\t}\n\n\tif ( this.outlined && items.length ) {\n\t\tthis.outlineSelectWidget.addItems( items, index );\n\t\tthis.selectFirstSelectablePage();\n\t}\n\tthis.stackLayout.addItems( pages, index );\n\tthis.emit( 'add', pages, index );\n\n\treturn this;\n};\n\n/**\n * Remove the specified pages from the booklet layout.\n *\n * To remove all pages from the booklet, you may wish to use the #clearPages method instead.\n *\n * @param {OO.ui.PageLayout[]} pages An array of pages to remove\n * @fires remove\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.BookletLayout.prototype.removePages = function ( pages ) {\n\tvar i, len, name, page,\n\t\titems = [];\n\n\tfor ( i = 0, len = pages.length; i < len; i++ ) {\n\t\tpage = pages[ i ];\n\t\tname = page.getName();\n\t\tdelete this.pages[ name ];\n\t\tif ( this.outlined ) {\n\t\t\titems.push( this.outlineSelectWidget.findItemFromData( name ) );\n\t\t\tpage.setOutlineItem( null );\n\t\t}\n\t}\n\tif ( this.outlined && items.length ) {\n\t\tthis.outlineSelectWidget.removeItems( items );\n\t\tthis.selectFirstSelectablePage();\n\t}\n\tthis.stackLayout.removeItems( pages );\n\tthis.emit( 'remove', pages );\n\n\treturn this;\n};\n\n/**\n * Clear all pages from the booklet layout.\n *\n * To remove only a subset of pages from the booklet, use the #removePages method.\n *\n * @fires remove\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.BookletLayout.prototype.clearPages = function () {\n\tvar i, len,\n\t\tpages = this.stackLayout.getItems();\n\n\tthis.pages = {};\n\tthis.currentPageName = null;\n\tif ( this.outlined ) {\n\t\tthis.outlineSelectWidget.clearItems();\n\t\tfor ( i = 0, len = pages.length; i < len; i++ ) {\n\t\t\tpages[ i ].setOutlineItem( null );\n\t\t}\n\t}\n\tthis.stackLayout.clearItems();\n\n\tthis.emit( 'remove', pages );\n\n\treturn this;\n};\n\n/**\n * Set the current page by symbolic name.\n *\n * @fires set\n * @param {string} name Symbolic name of page\n */\nOO.ui.BookletLayout.prototype.setPage = function ( name ) {\n\tvar selectedItem,\n\t\t$focused,\n\t\tpage = this.pages[ name ],\n\t\tpreviousPage = this.currentPageName && this.pages[ this.currentPageName ];\n\n\tif ( name !== this.currentPageName ) {\n\t\tif ( this.outlined ) {\n\t\t\tselectedItem = this.outlineSelectWidget.findSelectedItem();\n\t\t\tif ( selectedItem && selectedItem.getData() !== name ) {\n\t\t\t\tthis.outlineSelectWidget.selectItemByData( name );\n\t\t\t}\n\t\t}\n\t\tif ( page ) {\n\t\t\tif ( previousPage ) {\n\t\t\t\tpreviousPage.setActive( false );\n\t\t\t\t// Blur anything focused if the next page doesn't have anything focusable.\n\t\t\t\t// This is not needed if the next page has something focusable (because once it is focused\n\t\t\t\t// this blur happens automatically). If the layout is non-continuous, this check is\n\t\t\t\t// meaningless because the next page is not visible yet and thus can't hold focus.\n\t\t\t\tif (\n\t\t\t\t\tthis.autoFocus &&\n\t\t\t\t\t!OO.ui.isMobile() &&\n\t\t\t\t\tthis.stackLayout.continuous &&\n\t\t\t\t\tOO.ui.findFocusable( page.$element ).length !== 0\n\t\t\t\t) {\n\t\t\t\t\t$focused = previousPage.$element.find( ':focus' );\n\t\t\t\t\tif ( $focused.length ) {\n\t\t\t\t\t\t// eslint-disable-next-line jquery/no-event-shorthand\n\t\t\t\t\t\t$focused[ 0 ].blur();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.currentPageName = name;\n\t\t\tpage.setActive( true );\n\t\t\tthis.stackLayout.setItem( page );\n\t\t\tif ( !this.stackLayout.continuous && previousPage ) {\n\t\t\t\t// This should not be necessary, since any inputs on the previous page should have been\n\t\t\t\t// blurred when it was hidden, but browsers are not very consistent about this.\n\t\t\t\t$focused = previousPage.$element.find( ':focus' );\n\t\t\t\tif ( $focused.length ) {\n\t\t\t\t\t// eslint-disable-next-line jquery/no-event-shorthand\n\t\t\t\t\t$focused[ 0 ].blur();\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.emit( 'set', page );\n\t\t}\n\t}\n};\n\n/**\n * For outlined-continuous booklets, also reset the outlineSelectWidget to the first item.\n *\n * @inheritdoc\n */\nOO.ui.BookletLayout.prototype.resetScroll = function () {\n\t// Parent method\n\tOO.ui.BookletLayout.parent.prototype.resetScroll.call( this );\n\n\tif ( this.outlined && this.stackLayout.continuous && this.outlineSelectWidget.findFirstSelectableItem() ) {\n\t\tthis.scrolling = true;\n\t\tthis.outlineSelectWidget.selectItem( this.outlineSelectWidget.findFirstSelectableItem() );\n\t\tthis.scrolling = false;\n\t}\n\treturn this;\n};\n\n/**\n * Select the first selectable page.\n *\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.BookletLayout.prototype.selectFirstSelectablePage = function () {\n\tif ( !this.outlineSelectWidget.findSelectedItem() ) {\n\t\tthis.outlineSelectWidget.selectItem( this.outlineSelectWidget.findFirstSelectableItem() );\n\t}\n\n\treturn this;\n};\n","/**\n * IndexLayouts contain {@link OO.ui.TabPanelLayout tab panel layouts} as well as\n * {@link OO.ui.TabSelectWidget tabs} that allow users to easily navigate through the tab panels and\n * select which one to display. By default, only one tab panel is displayed at a time. When a user\n * navigates to a new tab panel, the index layout automatically focuses on the first focusable element,\n * unless the default setting is changed.\n *\n * TODO: This class is similar to BookletLayout, we may want to refactor to reduce duplication\n *\n *     @example\n *     // Example of a IndexLayout that contains two TabPanelLayouts.\n *\n *     function TabPanelOneLayout( name, config ) {\n *         TabPanelOneLayout.parent.call( this, name, config );\n *         this.$element.append( '<p>First tab panel</p>' );\n *     }\n *     OO.inheritClass( TabPanelOneLayout, OO.ui.TabPanelLayout );\n *     TabPanelOneLayout.prototype.setupTabItem = function () {\n *         this.tabItem.setLabel( 'Tab panel one' );\n *     };\n *\n *     var tabPanel1 = new TabPanelOneLayout( 'one' ),\n *         tabPanel2 = new OO.ui.TabPanelLayout( 'two', { label: 'Tab panel two' } );\n *\n *     tabPanel2.$element.append( '<p>Second tab panel</p>' );\n *\n *     var index = new OO.ui.IndexLayout();\n *\n *     index.addTabPanels( [ tabPanel1, tabPanel2 ] );\n *     $( document.body ).append( index.$element );\n *\n * @class\n * @extends OO.ui.MenuLayout\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [continuous=false] Show all tab panels, one after another\n * @cfg {boolean} [autoFocus=true] Focus on the first focusable element when a new tab panel is displayed. Disabled on mobile.\n */\nOO.ui.IndexLayout = function OoUiIndexLayout( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( {}, config, { menuPosition: 'top' } );\n\n\t// Parent constructor\n\tOO.ui.IndexLayout.parent.call( this, config );\n\n\t// Properties\n\tthis.currentTabPanelName = null;\n\tthis.tabPanels = {};\n\n\tthis.ignoreFocus = false;\n\tthis.stackLayout = new OO.ui.StackLayout( {\n\t\tcontinuous: !!config.continuous,\n\t\texpanded: this.expanded\n\t} );\n\tthis.setContentPanel( this.stackLayout );\n\tthis.autoFocus = config.autoFocus === undefined || !!config.autoFocus;\n\n\tthis.tabSelectWidget = new OO.ui.TabSelectWidget();\n\tthis.tabPanel = new OO.ui.PanelLayout( {\n\t\texpanded: this.expanded\n\t} );\n\tthis.setMenuPanel( this.tabPanel );\n\n\tthis.toggleMenu( true );\n\n\t// Events\n\tthis.stackLayout.connect( this, { set: 'onStackLayoutSet' } );\n\tthis.tabSelectWidget.connect( this, { select: 'onTabSelectWidgetSelect' } );\n\tif ( this.autoFocus ) {\n\t\t// Event 'focus' does not bubble, but 'focusin' does\n\t\tthis.stackLayout.$element.on( 'focusin', this.onStackLayoutFocus.bind( this ) );\n\t}\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-indexLayout' );\n\tthis.stackLayout.$element.addClass( 'oo-ui-indexLayout-stackLayout' );\n\tthis.tabPanel.$element\n\t\t.addClass( 'oo-ui-indexLayout-tabPanel' )\n\t\t.append( this.tabSelectWidget.$element );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.IndexLayout, OO.ui.MenuLayout );\n\n/* Events */\n\n/**\n * A 'set' event is emitted when a tab panel is {@link #setTabPanel set} to be displayed by the index layout.\n * @event set\n * @param {OO.ui.TabPanelLayout} tabPanel Current tab panel\n */\n\n/**\n * An 'add' event is emitted when tab panels are {@link #addTabPanels added} to the index layout.\n *\n * @event add\n * @param {OO.ui.TabPanelLayout[]} tabPanel Added tab panels\n * @param {number} index Index tab panels were added at\n */\n\n/**\n * A 'remove' event is emitted when tab panels are {@link #clearTabPanels cleared} or\n * {@link #removeTabPanels removed} from the index.\n *\n * @event remove\n * @param {OO.ui.TabPanelLayout[]} tabPanel Removed tab panels\n */\n\n/* Methods */\n\n/**\n * Handle stack layout focus.\n *\n * @private\n * @param {jQuery.Event} e Focusing event\n */\nOO.ui.IndexLayout.prototype.onStackLayoutFocus = function ( e ) {\n\tvar name, $target;\n\n\t// Find the tab panel that an element was focused within\n\t$target = $( e.target ).closest( '.oo-ui-tabPanelLayout' );\n\tfor ( name in this.tabPanels ) {\n\t\t// Check for tab panel match, exclude current tab panel to find only tab panel changes\n\t\tif ( this.tabPanels[ name ].$element[ 0 ] === $target[ 0 ] && name !== this.currentTabPanelName ) {\n\t\t\tthis.setTabPanel( name );\n\t\t\tbreak;\n\t\t}\n\t}\n};\n\n/**\n * Handle stack layout set events.\n *\n * @private\n * @param {OO.ui.PanelLayout|null} tabPanel The tab panel that is now the current panel\n */\nOO.ui.IndexLayout.prototype.onStackLayoutSet = function ( tabPanel ) {\n\t// If everything is unselected, do nothing\n\tif ( !tabPanel ) {\n\t\treturn;\n\t}\n\t// Focus the first element on the newly selected panel\n\tif ( this.autoFocus && !OO.ui.isMobile() ) {\n\t\tthis.focus();\n\t}\n};\n\n/**\n * Focus the first input in the current tab panel.\n *\n * If no tab panel is selected, the first selectable tab panel will be selected.\n * If the focus is already in an element on the current tab panel, nothing will happen.\n *\n * @param {number} [itemIndex] A specific item to focus on\n */\nOO.ui.IndexLayout.prototype.focus = function ( itemIndex ) {\n\tvar tabPanel,\n\t\titems = this.stackLayout.getItems();\n\n\tif ( itemIndex !== undefined && items[ itemIndex ] ) {\n\t\ttabPanel = items[ itemIndex ];\n\t} else {\n\t\ttabPanel = this.stackLayout.getCurrentItem();\n\t}\n\n\tif ( !tabPanel ) {\n\t\tthis.selectFirstSelectableTabPanel();\n\t\ttabPanel = this.stackLayout.getCurrentItem();\n\t}\n\tif ( !tabPanel ) {\n\t\treturn;\n\t}\n\t// Only change the focus if is not already in the current page\n\tif ( !OO.ui.contains( tabPanel.$element[ 0 ], this.getElementDocument().activeElement, true ) ) {\n\t\ttabPanel.focus();\n\t}\n};\n\n/**\n * Find the first focusable input in the index layout and focus\n * on it.\n */\nOO.ui.IndexLayout.prototype.focusFirstFocusable = function () {\n\tOO.ui.findFocusable( this.stackLayout.$element ).focus();\n};\n\n/**\n * Handle tab widget select events.\n *\n * @private\n * @param {OO.ui.OptionWidget|null} item Selected item\n */\nOO.ui.IndexLayout.prototype.onTabSelectWidgetSelect = function ( item ) {\n\tif ( item ) {\n\t\tthis.setTabPanel( item.getData() );\n\t}\n};\n\n/**\n * Get the tab panel closest to the specified tab panel.\n *\n * @param {OO.ui.TabPanelLayout} tabPanel Tab panel to use as a reference point\n * @return {OO.ui.TabPanelLayout|null} Tab panel closest to the specified\n */\nOO.ui.IndexLayout.prototype.getClosestTabPanel = function ( tabPanel ) {\n\tvar next, prev, level,\n\t\ttabPanels = this.stackLayout.getItems(),\n\t\tindex = tabPanels.indexOf( tabPanel );\n\n\tif ( index !== -1 ) {\n\t\tnext = tabPanels[ index + 1 ];\n\t\tprev = tabPanels[ index - 1 ];\n\t\t// Prefer adjacent tab panels at the same level\n\t\tlevel = this.tabSelectWidget.findItemFromData( tabPanel.getName() ).getLevel();\n\t\tif (\n\t\t\tprev &&\n\t\t\tlevel === this.tabSelectWidget.findItemFromData( prev.getName() ).getLevel()\n\t\t) {\n\t\t\treturn prev;\n\t\t}\n\t\tif (\n\t\t\tnext &&\n\t\t\tlevel === this.tabSelectWidget.findItemFromData( next.getName() ).getLevel()\n\t\t) {\n\t\t\treturn next;\n\t\t}\n\t}\n\treturn prev || next || null;\n};\n\n/**\n * Get the tabs widget.\n *\n * @return {OO.ui.TabSelectWidget} Tabs widget\n */\nOO.ui.IndexLayout.prototype.getTabs = function () {\n\treturn this.tabSelectWidget;\n};\n\n/**\n * Get a tab panel by its symbolic name.\n *\n * @param {string} name Symbolic name of tab panel\n * @return {OO.ui.TabPanelLayout|undefined} Tab panel, if found\n */\nOO.ui.IndexLayout.prototype.getTabPanel = function ( name ) {\n\treturn this.tabPanels[ name ];\n};\n\n/**\n * Get the current tab panel.\n *\n * @return {OO.ui.TabPanelLayout|undefined} Current tab panel, if found\n */\nOO.ui.IndexLayout.prototype.getCurrentTabPanel = function () {\n\tvar name = this.getCurrentTabPanelName();\n\treturn name ? this.getTabPanel( name ) : undefined;\n};\n\n/**\n * Get the symbolic name of the current tab panel.\n *\n * @return {string|null} Symbolic name of the current tab panel\n */\nOO.ui.IndexLayout.prototype.getCurrentTabPanelName = function () {\n\treturn this.currentTabPanelName;\n};\n\n/**\n * Add tab panels to the index layout\n *\n * When tab panels are added with the same names as existing tab panels, the existing tab panels\n * will be automatically removed before the new tab panels are added.\n *\n * @param {OO.ui.TabPanelLayout[]} tabPanels Tab panels to add\n * @param {number} index Index of the insertion point\n * @fires add\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.IndexLayout.prototype.addTabPanels = function ( tabPanels, index ) {\n\tvar i, len, name, tabPanel, item, currentIndex,\n\t\tstackLayoutTabPanels = this.stackLayout.getItems(),\n\t\tremove = [],\n\t\titems = [];\n\n\t// Remove tab panels with same names\n\tfor ( i = 0, len = tabPanels.length; i < len; i++ ) {\n\t\ttabPanel = tabPanels[ i ];\n\t\tname = tabPanel.getName();\n\n\t\tif ( Object.prototype.hasOwnProperty.call( this.tabPanels, name ) ) {\n\t\t\t// Correct the insertion index\n\t\t\tcurrentIndex = stackLayoutTabPanels.indexOf( this.tabPanels[ name ] );\n\t\t\tif ( currentIndex !== -1 && currentIndex + 1 < index ) {\n\t\t\t\tindex--;\n\t\t\t}\n\t\t\tremove.push( this.tabPanels[ name ] );\n\t\t}\n\t}\n\tif ( remove.length ) {\n\t\tthis.removeTabPanels( remove );\n\t}\n\n\t// Add new tab panels\n\tfor ( i = 0, len = tabPanels.length; i < len; i++ ) {\n\t\ttabPanel = tabPanels[ i ];\n\t\tname = tabPanel.getName();\n\t\tthis.tabPanels[ tabPanel.getName() ] = tabPanel;\n\t\titem = new OO.ui.TabOptionWidget( { data: name } );\n\t\ttabPanel.setTabItem( item );\n\t\titems.push( item );\n\t}\n\n\tif ( items.length ) {\n\t\tthis.tabSelectWidget.addItems( items, index );\n\t\tthis.selectFirstSelectableTabPanel();\n\t}\n\tthis.stackLayout.addItems( tabPanels, index );\n\tthis.emit( 'add', tabPanels, index );\n\n\treturn this;\n};\n\n/**\n * Remove the specified tab panels from the index layout.\n *\n * To remove all tab panels from the index, you may wish to use the #clearTabPanels method instead.\n *\n * @param {OO.ui.TabPanelLayout[]} tabPanels An array of tab panels to remove\n * @fires remove\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.IndexLayout.prototype.removeTabPanels = function ( tabPanels ) {\n\tvar i, len, name, tabPanel,\n\t\titems = [];\n\n\tfor ( i = 0, len = tabPanels.length; i < len; i++ ) {\n\t\ttabPanel = tabPanels[ i ];\n\t\tname = tabPanel.getName();\n\t\tdelete this.tabPanels[ name ];\n\t\titems.push( this.tabSelectWidget.findItemFromData( name ) );\n\t\ttabPanel.setTabItem( null );\n\t}\n\tif ( items.length ) {\n\t\tthis.tabSelectWidget.removeItems( items );\n\t\tthis.selectFirstSelectableTabPanel();\n\t}\n\tthis.stackLayout.removeItems( tabPanels );\n\tthis.emit( 'remove', tabPanels );\n\n\treturn this;\n};\n\n/**\n * Clear all tab panels from the index layout.\n *\n * To remove only a subset of tab panels from the index, use the #removeTabPanels method.\n *\n * @fires remove\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.IndexLayout.prototype.clearTabPanels = function () {\n\tvar i, len,\n\t\ttabPanels = this.stackLayout.getItems();\n\n\tthis.tabPanels = {};\n\tthis.currentTabPanelName = null;\n\tthis.tabSelectWidget.clearItems();\n\tfor ( i = 0, len = tabPanels.length; i < len; i++ ) {\n\t\ttabPanels[ i ].setTabItem( null );\n\t}\n\tthis.stackLayout.clearItems();\n\n\tthis.emit( 'remove', tabPanels );\n\n\treturn this;\n};\n\n/**\n * Set the current tab panel by symbolic name.\n *\n * @fires set\n * @param {string} name Symbolic name of tab panel\n */\nOO.ui.IndexLayout.prototype.setTabPanel = function ( name ) {\n\tvar selectedItem,\n\t\t$focused,\n\t\tpreviousTabPanel,\n\t\ttabPanel = this.tabPanels[ name ];\n\n\tif ( name !== this.currentTabPanelName ) {\n\t\tpreviousTabPanel = this.getCurrentTabPanel();\n\t\tselectedItem = this.tabSelectWidget.findSelectedItem();\n\t\tif ( selectedItem && selectedItem.getData() !== name ) {\n\t\t\tthis.tabSelectWidget.selectItemByData( name );\n\t\t}\n\t\tif ( tabPanel ) {\n\t\t\tif ( previousTabPanel ) {\n\t\t\t\tpreviousTabPanel.setActive( false );\n\t\t\t\t// Blur anything focused if the next tab panel doesn't have anything focusable.\n\t\t\t\t// This is not needed if the next tab panel has something focusable (because once it is focused\n\t\t\t\t// this blur happens automatically). If the layout is non-continuous, this check is\n\t\t\t\t// meaningless because the next tab panel is not visible yet and thus can't hold focus.\n\t\t\t\tif (\n\t\t\t\t\tthis.autoFocus &&\n\t\t\t\t\t!OO.ui.isMobile() &&\n\t\t\t\t\tthis.stackLayout.continuous &&\n\t\t\t\t\tOO.ui.findFocusable( tabPanel.$element ).length !== 0\n\t\t\t\t) {\n\t\t\t\t\t$focused = previousTabPanel.$element.find( ':focus' );\n\t\t\t\t\tif ( $focused.length ) {\n\t\t\t\t\t\t// eslint-disable-next-line jquery/no-event-shorthand\n\t\t\t\t\t\t$focused[ 0 ].blur();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.currentTabPanelName = name;\n\t\t\ttabPanel.setActive( true );\n\t\t\tthis.stackLayout.setItem( tabPanel );\n\t\t\tif ( !this.stackLayout.continuous && previousTabPanel ) {\n\t\t\t\t// This should not be necessary, since any inputs on the previous tab panel should have been\n\t\t\t\t// blurred when it was hidden, but browsers are not very consistent about this.\n\t\t\t\t$focused = previousTabPanel.$element.find( ':focus' );\n\t\t\t\tif ( $focused.length ) {\n\t\t\t\t\t// eslint-disable-next-line jquery/no-event-shorthand\n\t\t\t\t\t$focused[ 0 ].blur();\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.emit( 'set', tabPanel );\n\t\t}\n\t}\n};\n\n/**\n * Select the first selectable tab panel.\n *\n * @chainable\n * @return {OO.ui.BookletLayout} The layout, for chaining\n */\nOO.ui.IndexLayout.prototype.selectFirstSelectableTabPanel = function () {\n\tif ( !this.tabSelectWidget.findSelectedItem() ) {\n\t\tthis.tabSelectWidget.selectItem( this.tabSelectWidget.findFirstSelectableItem() );\n\t}\n\n\treturn this;\n};\n","/**\n * ToggleWidget implements basic behavior of widgets with an on/off state.\n * Please see OO.ui.ToggleButtonWidget and OO.ui.ToggleSwitchWidget for examples.\n *\n * @abstract\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.TitledElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [value=false] The toggle’s initial on/off state.\n *  By default, the toggle is in the 'off' state.\n */\nOO.ui.ToggleWidget = function OoUiToggleWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.ToggleWidget.parent.call( this, config );\n\n\t// Mixin constructor\n\tOO.ui.mixin.TitledElement.call( this, config );\n\n\t// Properties\n\tthis.value = null;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-toggleWidget' );\n\tthis.setValue( !!config.value );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ToggleWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.ToggleWidget, OO.ui.mixin.TitledElement );\n\n/* Events */\n\n/**\n * @event change\n *\n * A change event is emitted when the on/off state of the toggle changes.\n *\n * @param {boolean} value Value representing the new state of the toggle\n */\n\n/* Methods */\n\n/**\n * Get the value representing the toggle’s state.\n *\n * @return {boolean} The on/off state of the toggle\n */\nOO.ui.ToggleWidget.prototype.getValue = function () {\n\treturn this.value;\n};\n\n/**\n * Set the state of the toggle: `true` for 'on', `false` for 'off'.\n *\n * @param {boolean} value The state of the toggle\n * @fires change\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.ToggleWidget.prototype.setValue = function ( value ) {\n\tvalue = !!value;\n\tif ( this.value !== value ) {\n\t\tthis.value = value;\n\t\tthis.emit( 'change', value );\n\t\tthis.$element.toggleClass( 'oo-ui-toggleWidget-on', value );\n\t\tthis.$element.toggleClass( 'oo-ui-toggleWidget-off', !value );\n\t}\n\treturn this;\n};\n","/**\n * ToggleButtons are buttons that have a state (‘on’ or ‘off’) that is represented by a\n * Boolean value. Like other {@link OO.ui.ButtonWidget buttons}, toggle buttons can be\n * configured with {@link OO.ui.mixin.IconElement icons}, {@link OO.ui.mixin.IndicatorElement indicators},\n * {@link OO.ui.mixin.TitledElement titles}, {@link OO.ui.mixin.FlaggedElement styling flags},\n * and {@link OO.ui.mixin.LabelElement labels}. Please see\n * the [OOUI documentation][1] on MediaWiki for more information.\n *\n *     @example\n *     // Toggle buttons in the 'off' and 'on' state.\n *     var toggleButton1 = new OO.ui.ToggleButtonWidget( {\n *             label: 'Toggle Button off'\n *         } ),\n *         toggleButton2 = new OO.ui.ToggleButtonWidget( {\n *             label: 'Toggle Button on',\n *             value: true\n *         } );\n *     // Append the buttons to the DOM.\n *     $( document.body ).append( toggleButton1.$element, toggleButton2.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Buttons_and_Switches#Toggle_buttons\n *\n * @class\n * @extends OO.ui.ToggleWidget\n * @mixins OO.ui.mixin.ButtonElement\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.FlaggedElement\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [value=false] The toggle button’s initial on/off\n *  state. By default, the button is in the 'off' state.\n */\nOO.ui.ToggleButtonWidget = function OoUiToggleButtonWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.ToggleButtonWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.ButtonElement.call( this, $.extend( {}, config, { active: this.active } ) );\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.FlaggedElement.call( this, config );\n\tOO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$button } ) );\n\n\t// Events\n\tthis.connect( this, { click: 'onAction' } );\n\n\t// Initialization\n\tthis.$button.append( this.$icon, this.$label, this.$indicator );\n\tthis.$element\n\t\t.addClass( 'oo-ui-toggleButtonWidget' )\n\t\t.append( this.$button );\n\tthis.setTitledElement( this.$button );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ToggleButtonWidget, OO.ui.ToggleWidget );\nOO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.ButtonElement );\nOO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.FlaggedElement );\nOO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.TabIndexedElement );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.ToggleButtonWidget.static.tagName = 'span';\n\n/* Methods */\n\n/**\n * Handle the button action being triggered.\n *\n * @private\n */\nOO.ui.ToggleButtonWidget.prototype.onAction = function () {\n\tthis.setValue( !this.value );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ToggleButtonWidget.prototype.setValue = function ( value ) {\n\tvalue = !!value;\n\tif ( value !== this.value ) {\n\t\t// Might be called from parent constructor before ButtonElement constructor\n\t\tif ( this.$button ) {\n\t\t\tthis.$button.attr( 'aria-pressed', value.toString() );\n\t\t}\n\t\tthis.setActive( value );\n\t}\n\n\t// Parent method\n\tOO.ui.ToggleButtonWidget.parent.prototype.setValue.call( this, value );\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ToggleButtonWidget.prototype.setButtonElement = function ( $button ) {\n\tif ( this.$button ) {\n\t\tthis.$button.removeAttr( 'aria-pressed' );\n\t}\n\tOO.ui.mixin.ButtonElement.prototype.setButtonElement.call( this, $button );\n\tthis.$button.attr( 'aria-pressed', this.value.toString() );\n};\n","/**\n * ToggleSwitches are switches that slide on and off. Their state is represented by a Boolean\n * value (`true` for ‘on’, and `false` otherwise, the default). The ‘off’ state is represented\n * visually by a slider in the leftmost position.\n *\n *     @example\n *     // Toggle switches in the 'off' and 'on' position.\n *     var toggleSwitch1 = new OO.ui.ToggleSwitchWidget(),\n *         toggleSwitch2 = new OO.ui.ToggleSwitchWidget( {\n *             value: true\n *         } );\n *         // Create a FieldsetLayout to layout and label switches.\n *         fieldset = new OO.ui.FieldsetLayout( {\n *             label: 'Toggle switches'\n *         } );\n *     fieldset.addItems( [\n *         new OO.ui.FieldLayout( toggleSwitch1, {\n *             label: 'Off',\n *             align: 'top'\n *         } ),\n *         new OO.ui.FieldLayout( toggleSwitch2, {\n *             label: 'On',\n *             align: 'top'\n *         } )\n *     ] );\n *     $( document.body ).append( fieldset.$element );\n *\n * @class\n * @extends OO.ui.ToggleWidget\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [value=false] The toggle switch’s initial on/off state.\n *  By default, the toggle switch is in the 'off' position.\n */\nOO.ui.ToggleSwitchWidget = function OoUiToggleSwitchWidget( config ) {\n\t// Parent constructor\n\tOO.ui.ToggleSwitchWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.TabIndexedElement.call( this, config );\n\n\t// Properties\n\tthis.dragging = false;\n\tthis.dragStart = null;\n\tthis.sliding = false;\n\tthis.$glow = $( '<span>' );\n\tthis.$grip = $( '<span>' );\n\n\t// Events\n\tthis.$element.on( {\n\t\tclick: this.onClick.bind( this ),\n\t\tkeypress: this.onKeyPress.bind( this )\n\t} );\n\n\t// Initialization\n\tthis.$glow.addClass( 'oo-ui-toggleSwitchWidget-glow' );\n\tthis.$grip.addClass( 'oo-ui-toggleSwitchWidget-grip' );\n\tthis.$element\n\t\t.addClass( 'oo-ui-toggleSwitchWidget' )\n\t\t.attr( 'role', 'checkbox' )\n\t\t.append( this.$glow, this.$grip );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ToggleSwitchWidget, OO.ui.ToggleWidget );\nOO.mixinClass( OO.ui.ToggleSwitchWidget, OO.ui.mixin.TabIndexedElement );\n\n/* Methods */\n\n/**\n * Handle mouse click events.\n *\n * @private\n * @param {jQuery.Event} e Mouse click event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.ToggleSwitchWidget.prototype.onClick = function ( e ) {\n\tif ( !this.isDisabled() && e.which === OO.ui.MouseButtons.LEFT ) {\n\t\tthis.setValue( !this.value );\n\t}\n\treturn false;\n};\n\n/**\n * Handle key press events.\n *\n * @private\n * @param {jQuery.Event} e Key press event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.ToggleSwitchWidget.prototype.onKeyPress = function ( e ) {\n\tif ( !this.isDisabled() && ( e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER ) ) {\n\t\tthis.setValue( !this.value );\n\t\treturn false;\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ToggleSwitchWidget.prototype.setValue = function ( value ) {\n\tOO.ui.ToggleSwitchWidget.parent.prototype.setValue.call( this, value );\n\tthis.$element.attr( 'aria-checked', this.value.toString() );\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ToggleSwitchWidget.prototype.simulateLabelClick = function () {\n\tif ( !this.isDisabled() ) {\n\t\tthis.setValue( !this.value );\n\t}\n\tthis.focus();\n};\n","/**\n * OutlineControlsWidget is a set of controls for an {@link OO.ui.OutlineSelectWidget outline select widget}.\n * Controls include moving items up and down, removing items, and adding different kinds of items.\n *\n * **Currently, this class is only used by {@link OO.ui.BookletLayout booklet layouts}.**\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.GroupElement\n *\n * @constructor\n * @param {OO.ui.OutlineSelectWidget} outline Outline to control\n * @param {Object} [config] Configuration options\n * @cfg {Object} [abilities] List of abilties\n * @cfg {boolean} [abilities.move=true] Allow moving movable items\n * @cfg {boolean} [abilities.remove=true] Allow removing removable items\n */\nOO.ui.OutlineControlsWidget = function OoUiOutlineControlsWidget( outline, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( outline ) && config === undefined ) {\n\t\tconfig = outline;\n\t\toutline = config.outline;\n\t}\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.OutlineControlsWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupElement.call( this, config );\n\n\t// Properties\n\tthis.outline = outline;\n\tthis.$movers = $( '<div>' );\n\tthis.upButton = new OO.ui.ButtonWidget( {\n\t\tframed: false,\n\t\ticon: 'collapse',\n\t\ttitle: OO.ui.msg( 'ooui-outline-control-move-up' )\n\t} );\n\tthis.downButton = new OO.ui.ButtonWidget( {\n\t\tframed: false,\n\t\ticon: 'expand',\n\t\ttitle: OO.ui.msg( 'ooui-outline-control-move-down' )\n\t} );\n\tthis.removeButton = new OO.ui.ButtonWidget( {\n\t\tframed: false,\n\t\ticon: 'trash',\n\t\ttitle: OO.ui.msg( 'ooui-outline-control-remove' )\n\t} );\n\tthis.abilities = { move: true, remove: true };\n\n\t// Events\n\toutline.connect( this, {\n\t\tselect: 'onOutlineChange',\n\t\tadd: 'onOutlineChange',\n\t\tremove: 'onOutlineChange'\n\t} );\n\tthis.upButton.connect( this, { click: [ 'emit', 'move', -1 ] } );\n\tthis.downButton.connect( this, { click: [ 'emit', 'move', 1 ] } );\n\tthis.removeButton.connect( this, { click: [ 'emit', 'remove' ] } );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-outlineControlsWidget' );\n\tthis.$group.addClass( 'oo-ui-outlineControlsWidget-items' );\n\tthis.$movers\n\t\t.addClass( 'oo-ui-outlineControlsWidget-movers' )\n\t\t.append( this.removeButton.$element, this.upButton.$element, this.downButton.$element );\n\tthis.$element.append( this.$icon, this.$group, this.$movers );\n\tthis.setAbilities( config.abilities || {} );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.OutlineControlsWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.OutlineControlsWidget, OO.ui.mixin.GroupElement );\n\n/* Events */\n\n/**\n * @event move\n * @param {number} places Number of places to move\n */\n\n/**\n * @event remove\n */\n\n/* Methods */\n\n/**\n * Set abilities.\n *\n * @param {Object} abilities List of abilties\n * @param {boolean} [abilities.move] Allow moving movable items\n * @param {boolean} [abilities.remove] Allow removing removable items\n */\nOO.ui.OutlineControlsWidget.prototype.setAbilities = function ( abilities ) {\n\tvar ability;\n\n\tfor ( ability in this.abilities ) {\n\t\tif ( abilities[ ability ] !== undefined ) {\n\t\t\tthis.abilities[ ability ] = !!abilities[ ability ];\n\t\t}\n\t}\n\n\tthis.onOutlineChange();\n};\n\n/**\n * Handle outline change events.\n *\n * @private\n */\nOO.ui.OutlineControlsWidget.prototype.onOutlineChange = function () {\n\tvar i, len, firstMovable, lastMovable,\n\t\titems = this.outline.getItems(),\n\t\tselectedItem = this.outline.findSelectedItem(),\n\t\tmovable = this.abilities.move && selectedItem && selectedItem.isMovable(),\n\t\tremovable = this.abilities.remove && selectedItem && selectedItem.isRemovable();\n\n\tif ( movable ) {\n\t\ti = -1;\n\t\tlen = items.length;\n\t\twhile ( ++i < len ) {\n\t\t\tif ( items[ i ].isMovable() ) {\n\t\t\t\tfirstMovable = items[ i ];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\ti = len;\n\t\twhile ( i-- ) {\n\t\t\tif ( items[ i ].isMovable() ) {\n\t\t\t\tlastMovable = items[ i ];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tthis.upButton.setDisabled( !movable || selectedItem === firstMovable );\n\tthis.downButton.setDisabled( !movable || selectedItem === lastMovable );\n\tthis.removeButton.setDisabled( !removable );\n};\n","/**\n * OutlineOptionWidget is an item in an {@link OO.ui.OutlineSelectWidget OutlineSelectWidget}.\n *\n * Currently, this class is only used by {@link OO.ui.BookletLayout booklet layouts}, which contain\n * {@link OO.ui.PageLayout page layouts}. See {@link OO.ui.BookletLayout BookletLayout}\n * for an example.\n *\n * @class\n * @extends OO.ui.DecoratedOptionWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {number} [level] Indentation level\n * @cfg {boolean} [movable] Allow modification from {@link OO.ui.OutlineControlsWidget outline controls}.\n */\nOO.ui.OutlineOptionWidget = function OoUiOutlineOptionWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.OutlineOptionWidget.parent.call( this, config );\n\n\t// Properties\n\tthis.level = 0;\n\tthis.movable = !!config.movable;\n\tthis.removable = !!config.removable;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-outlineOptionWidget' );\n\tthis.setLevel( config.level );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.OutlineOptionWidget, OO.ui.DecoratedOptionWidget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.OutlineOptionWidget.static.highlightable = true;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.OutlineOptionWidget.static.scrollIntoViewOnSelect = true;\n\n/**\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.OutlineOptionWidget.static.levelClass = 'oo-ui-outlineOptionWidget-level-';\n\n/**\n * @static\n * @inheritable\n * @property {number}\n */\nOO.ui.OutlineOptionWidget.static.levels = 3;\n\n/* Methods */\n\n/**\n * Check if item is movable.\n *\n * Movability is used by {@link OO.ui.OutlineControlsWidget outline controls}.\n *\n * @return {boolean} Item is movable\n */\nOO.ui.OutlineOptionWidget.prototype.isMovable = function () {\n\treturn this.movable;\n};\n\n/**\n * Check if item is removable.\n *\n * Removability is used by {@link OO.ui.OutlineControlsWidget outline controls}.\n *\n * @return {boolean} Item is removable\n */\nOO.ui.OutlineOptionWidget.prototype.isRemovable = function () {\n\treturn this.removable;\n};\n\n/**\n * Get indentation level.\n *\n * @return {number} Indentation level\n */\nOO.ui.OutlineOptionWidget.prototype.getLevel = function () {\n\treturn this.level;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.OutlineOptionWidget.prototype.setPressed = function ( state ) {\n\tOO.ui.OutlineOptionWidget.parent.prototype.setPressed.call( this, state );\n\treturn this;\n};\n\n/**\n * Set movability.\n *\n * Movability is used by {@link OO.ui.OutlineControlsWidget outline controls}.\n *\n * @param {boolean} movable Item is movable\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.OutlineOptionWidget.prototype.setMovable = function ( movable ) {\n\tthis.movable = !!movable;\n\tthis.updateThemeClasses();\n\treturn this;\n};\n\n/**\n * Set removability.\n *\n * Removability is used by {@link OO.ui.OutlineControlsWidget outline controls}.\n *\n * @param {boolean} removable Item is removable\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.OutlineOptionWidget.prototype.setRemovable = function ( removable ) {\n\tthis.removable = !!removable;\n\tthis.updateThemeClasses();\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.OutlineOptionWidget.prototype.setSelected = function ( state ) {\n\tOO.ui.OutlineOptionWidget.parent.prototype.setSelected.call( this, state );\n\treturn this;\n};\n\n/**\n * Set indentation level.\n *\n * @param {number} [level=0] Indentation level, in the range of [0,#maxLevel]\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.OutlineOptionWidget.prototype.setLevel = function ( level ) {\n\tvar levels = this.constructor.static.levels,\n\t\tlevelClass = this.constructor.static.levelClass,\n\t\ti = levels;\n\n\tthis.level = level ? Math.max( 0, Math.min( levels - 1, level ) ) : 0;\n\twhile ( i-- ) {\n\t\tif ( this.level === i ) {\n\t\t\tthis.$element.addClass( levelClass + i );\n\t\t} else {\n\t\t\tthis.$element.removeClass( levelClass + i );\n\t\t}\n\t}\n\tthis.updateThemeClasses();\n\n\treturn this;\n};\n","/**\n * OutlineSelectWidget is a structured list that contains {@link OO.ui.OutlineOptionWidget outline options}\n * A set of controls can be provided with an {@link OO.ui.OutlineControlsWidget outline controls} widget.\n *\n * **Currently, this class is only used by {@link OO.ui.BookletLayout booklet layouts}.**\n *\n * @class\n * @extends OO.ui.SelectWidget\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.OutlineSelectWidget = function OoUiOutlineSelectWidget( config ) {\n\t// Parent constructor\n\tOO.ui.OutlineSelectWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.TabIndexedElement.call( this, config );\n\n\t// Events\n\tthis.$element.on( {\n\t\tfocus: this.bindDocumentKeyDownListener.bind( this ),\n\t\tblur: this.unbindDocumentKeyDownListener.bind( this )\n\t} );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-outlineSelectWidget' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.OutlineSelectWidget, OO.ui.SelectWidget );\nOO.mixinClass( OO.ui.OutlineSelectWidget, OO.ui.mixin.TabIndexedElement );\n","/**\n * ButtonOptionWidget is a special type of {@link OO.ui.mixin.ButtonElement button element} that\n * can be selected and configured with data. The class is\n * used with OO.ui.ButtonSelectWidget to create a selection of button options. Please see the\n * [OOUI documentation on MediaWiki] [1] for more information.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options#Button_selects_and_options\n *\n * @class\n * @extends OO.ui.OptionWidget\n * @mixins OO.ui.mixin.ButtonElement\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.ButtonOptionWidget = function OoUiButtonOptionWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.ButtonOptionWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.ButtonElement.call( this, config );\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-buttonOptionWidget' );\n\tthis.$button.append( this.$icon, this.$label, this.$indicator );\n\tthis.$element.append( this.$button );\n\tthis.setTitledElement( this.$button );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ButtonOptionWidget, OO.ui.OptionWidget );\nOO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.ButtonElement );\nOO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.IndicatorElement );\n\n/* Static Properties */\n\n/**\n * Allow button mouse down events to pass through so they can be handled by the parent select widget\n *\n * @static\n * @inheritdoc\n */\nOO.ui.ButtonOptionWidget.static.cancelButtonMouseDownEvents = false;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.ButtonOptionWidget.static.highlightable = false;\n\n/* Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.ButtonOptionWidget.prototype.setSelected = function ( state ) {\n\tOO.ui.ButtonOptionWidget.parent.prototype.setSelected.call( this, state );\n\n\tif ( this.constructor.static.selectable ) {\n\t\tthis.setActive( state );\n\t}\n\n\treturn this;\n};\n","/**\n * ButtonSelectWidget is a {@link OO.ui.SelectWidget select widget} that contains\n * button options and is used together with\n * OO.ui.ButtonOptionWidget. The ButtonSelectWidget provides an interface for\n * highlighting, choosing, and selecting mutually exclusive options. Please see\n * the [OOUI documentation on MediaWiki] [1] for more information.\n *\n *     @example\n *     // A ButtonSelectWidget that contains three ButtonOptionWidgets.\n *     var option1 = new OO.ui.ButtonOptionWidget( {\n *             data: 1,\n *             label: 'Option 1',\n *             title: 'Button option 1'\n *         } ),\n *         option2 = new OO.ui.ButtonOptionWidget( {\n *             data: 2,\n *             label: 'Option 2',\n *             title: 'Button option 2'\n *         } ),\n *         option3 = new OO.ui.ButtonOptionWidget( {\n *             data: 3,\n *             label: 'Option 3',\n *             title: 'Button option 3'\n *         } ),\n *         buttonSelect = new OO.ui.ButtonSelectWidget( {\n *             items: [ option1, option2, option3 ]\n *         } );\n *     $( document.body ).append( buttonSelect.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options\n *\n * @class\n * @extends OO.ui.SelectWidget\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.ButtonSelectWidget = function OoUiButtonSelectWidget( config ) {\n\t// Parent constructor\n\tOO.ui.ButtonSelectWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.TabIndexedElement.call( this, config );\n\n\t// Events\n\tthis.$element.on( {\n\t\tfocus: this.bindDocumentKeyDownListener.bind( this ),\n\t\tblur: this.unbindDocumentKeyDownListener.bind( this )\n\t} );\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-buttonSelectWidget' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ButtonSelectWidget, OO.ui.SelectWidget );\nOO.mixinClass( OO.ui.ButtonSelectWidget, OO.ui.mixin.TabIndexedElement );\n","/**\n * TabOptionWidget is an item in a {@link OO.ui.TabSelectWidget TabSelectWidget}.\n *\n * Currently, this class is only used by {@link OO.ui.IndexLayout index layouts}, which contain\n * {@link OO.ui.TabPanelLayout tab panel layouts}. See {@link OO.ui.IndexLayout IndexLayout}\n * for an example.\n *\n * @class\n * @extends OO.ui.OptionWidget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.TabOptionWidget = function OoUiTabOptionWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.TabOptionWidget.parent.call( this, config );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-tabOptionWidget' )\n\t\t.attr( 'role', 'tab' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.TabOptionWidget, OO.ui.OptionWidget );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.TabOptionWidget.static.highlightable = false;\n","/**\n * TabSelectWidget is a list that contains {@link OO.ui.TabOptionWidget tab options}\n *\n * **Currently, this class is only used by {@link OO.ui.IndexLayout index layouts}.**\n *\n * @class\n * @extends OO.ui.SelectWidget\n * @mixins OO.ui.mixin.TabIndexedElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.TabSelectWidget = function OoUiTabSelectWidget( config ) {\n\t// Parent constructor\n\tOO.ui.TabSelectWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.TabIndexedElement.call( this, config );\n\n\t// Events\n\tthis.$element.on( {\n\t\tfocus: this.bindDocumentKeyDownListener.bind( this ),\n\t\tblur: this.unbindDocumentKeyDownListener.bind( this )\n\t} );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-tabSelectWidget' )\n\t\t.attr( 'role', 'tablist' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.TabSelectWidget, OO.ui.SelectWidget );\nOO.mixinClass( OO.ui.TabSelectWidget, OO.ui.mixin.TabIndexedElement );\n","/**\n * TagItemWidgets are used within a {@link OO.ui.TagMultiselectWidget\n * TagMultiselectWidget} to display the selected items.\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.ItemWidget\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.FlaggedElement\n * @mixins OO.ui.mixin.TabIndexedElement\n * @mixins OO.ui.mixin.DraggableElement\n *\n * @constructor\n * @param {Object} [config] Configuration object\n * @cfg {boolean} [valid=true] Item is valid\n * @cfg {boolean} [fixed] Item is fixed. This means the item is\n *  always included in the values and cannot be removed.\n */\nOO.ui.TagItemWidget = function OoUiTagItemWidget( config ) {\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.TagItemWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.ItemWidget.call( this );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.FlaggedElement.call( this, config );\n\tOO.ui.mixin.TabIndexedElement.call( this, config );\n\tOO.ui.mixin.DraggableElement.call( this, config );\n\n\tthis.valid = config.valid === undefined ? true : !!config.valid;\n\tthis.fixed = !!config.fixed;\n\n\tthis.closeButton = new OO.ui.ButtonWidget( {\n\t\tframed: false,\n\t\ticon: 'close',\n\t\ttabIndex: -1,\n\t\ttitle: OO.ui.msg( 'ooui-item-remove' )\n\t} );\n\tthis.closeButton.setDisabled( this.isDisabled() );\n\n\t// Events\n\tthis.closeButton\n\t\t.connect( this, { click: 'remove' } );\n\tthis.$element\n\t\t.on( 'click', this.select.bind( this ) )\n\t\t.on( 'keydown', this.onKeyDown.bind( this ) )\n\t\t// Prevent propagation of mousedown; the tag item \"lives\" in the\n\t\t// clickable area of the TagMultiselectWidget, which listens to\n\t\t// mousedown to open the menu or popup. We want to prevent that\n\t\t// for clicks specifically on the tag itself, so the actions taken\n\t\t// are more deliberate. When the tag is clicked, it will emit the\n\t\t// selection event (similar to how #OO.ui.MultioptionWidget emits 'change')\n\t\t// and can be handled separately.\n\t\t.on( 'mousedown', function ( e ) { e.stopPropagation(); } );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-tagItemWidget' )\n\t\t.append( this.$label, this.closeButton.$element );\n};\n\n/* Initialization */\n\nOO.inheritClass( OO.ui.TagItemWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.TagItemWidget, OO.ui.mixin.ItemWidget );\nOO.mixinClass( OO.ui.TagItemWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.TagItemWidget, OO.ui.mixin.FlaggedElement );\nOO.mixinClass( OO.ui.TagItemWidget, OO.ui.mixin.TabIndexedElement );\nOO.mixinClass( OO.ui.TagItemWidget, OO.ui.mixin.DraggableElement );\n\n/* Events */\n\n/**\n * @event remove\n *\n * A remove action was performed on the item\n */\n\n/**\n * @event navigate\n * @param {string} direction Direction of the movement, forward or backwards\n *\n * A navigate action was performed on the item\n */\n\n/**\n * @event select\n *\n * The tag widget was selected. This can occur when the widget\n * is either clicked or enter was pressed on it.\n */\n\n/**\n * @event valid\n * @param {boolean} isValid Item is valid\n *\n * Item validity has changed\n */\n\n/**\n * @event fixed\n * @param {boolean} isFixed Item is fixed\n *\n * Item fixed state has changed\n */\n\n/* Methods */\n\n/**\n * Set this item as fixed, meaning it cannot be removed\n *\n * @param {string} [state] Item is fixed\n * @fires fixed\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.TagItemWidget.prototype.setFixed = function ( state ) {\n\tstate = state === undefined ? !this.fixed : !!state;\n\n\tif ( this.fixed !== state ) {\n\t\tthis.fixed = state;\n\t\tif ( this.closeButton ) {\n\t\t\tthis.closeButton.toggle( !this.fixed );\n\t\t}\n\n\t\tif ( !this.fixed && this.elementGroup && !this.elementGroup.isDraggable() ) {\n\t\t\t// Only enable the state of the item if the\n\t\t\t// entire group is draggable\n\t\t\tthis.toggleDraggable( !this.fixed );\n\t\t}\n\t\tthis.$element.toggleClass( 'oo-ui-tagItemWidget-fixed', this.fixed );\n\n\t\tthis.emit( 'fixed', this.isFixed() );\n\t}\n\treturn this;\n};\n\n/**\n * Check whether the item is fixed\n * @return {boolean}\n */\nOO.ui.TagItemWidget.prototype.isFixed = function () {\n\treturn this.fixed;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.TagItemWidget.prototype.setDisabled = function ( state ) {\n\tif ( state && this.elementGroup && !this.elementGroup.isDisabled() ) {\n\t\tOO.ui.warnDeprecation( 'TagItemWidget#setDisabled: Disabling individual items is deprecated and will result in inconsistent behavior. Use #setFixed instead. See T193571.' );\n\t}\n\t// Parent method\n\tOO.ui.TagItemWidget.parent.prototype.setDisabled.call( this, state );\n\tif (\n\t\t!state &&\n\t\t// Verify we have a group, and that the widget is ready\n\t\tthis.toggleDraggable && this.elementGroup &&\n\t\t!this.isFixed() &&\n\t\t!this.elementGroup.isDraggable()\n\t) {\n\t\t// Only enable the draggable state of the item if the\n\t\t// entire group is draggable to begin with, and if the\n\t\t// item is not fixed\n\t\tthis.toggleDraggable( !state );\n\t}\n\n\tif ( this.closeButton ) {\n\t\tthis.closeButton.setDisabled( state );\n\t}\n\n\treturn this;\n};\n\n/**\n * Handle removal of the item\n *\n * This is mainly for extensibility concerns, so other children\n * of this class can change the behavior if they need to. This\n * is called by both clicking the 'remove' button but also\n * on keypress, which is harder to override if needed.\n *\n * @fires remove\n */\nOO.ui.TagItemWidget.prototype.remove = function () {\n\tif ( !this.isDisabled() && !this.isFixed() ) {\n\t\tthis.emit( 'remove' );\n\t}\n};\n\n/**\n * Handle a keydown event on the widget\n *\n * @fires navigate\n * @fires remove\n * @param {jQuery.Event} e Key down event\n * @return {boolean|undefined} false to stop the operation\n */\nOO.ui.TagItemWidget.prototype.onKeyDown = function ( e ) {\n\tvar movement;\n\n\tif ( !this.isDisabled() && !this.isFixed() && ( e.keyCode === OO.ui.Keys.BACKSPACE || e.keyCode === OO.ui.Keys.DELETE ) ) {\n\t\tthis.remove();\n\t\treturn false;\n\t} else if ( e.keyCode === OO.ui.Keys.ENTER ) {\n\t\tthis.select();\n\t\treturn false;\n\t} else if (\n\t\te.keyCode === OO.ui.Keys.LEFT ||\n\t\te.keyCode === OO.ui.Keys.RIGHT\n\t) {\n\t\tif ( OO.ui.Element.static.getDir( this.$element ) === 'rtl' ) {\n\t\t\tmovement = {\n\t\t\t\tleft: 'forwards',\n\t\t\t\tright: 'backwards'\n\t\t\t};\n\t\t} else {\n\t\t\tmovement = {\n\t\t\t\tleft: 'backwards',\n\t\t\t\tright: 'forwards'\n\t\t\t};\n\t\t}\n\n\t\tthis.emit(\n\t\t\t'navigate',\n\t\t\te.keyCode === OO.ui.Keys.LEFT ?\n\t\t\t\tmovement.left : movement.right\n\t\t);\n\t\treturn false;\n\t}\n};\n\n/**\n * Select this item\n *\n * @fires select\n */\nOO.ui.TagItemWidget.prototype.select = function () {\n\tif ( !this.isDisabled() ) {\n\t\tthis.emit( 'select' );\n\t}\n};\n\n/**\n * Set the valid state of this item\n *\n * @param {boolean} [valid] Item is valid\n * @fires valid\n */\nOO.ui.TagItemWidget.prototype.toggleValid = function ( valid ) {\n\tvalid = valid === undefined ? !this.valid : !!valid;\n\n\tif ( this.valid !== valid ) {\n\t\tthis.valid = valid;\n\n\t\tthis.setFlags( { invalid: !this.valid } );\n\n\t\tthis.emit( 'valid', this.valid );\n\t}\n};\n\n/**\n * Check whether the item is valid\n *\n * @return {boolean} Item is valid\n */\nOO.ui.TagItemWidget.prototype.isValid = function () {\n\treturn this.valid;\n};\n","/**\n * A basic tag multiselect widget, similar in concept to {@link OO.ui.ComboBoxInputWidget combo box widget}\n * that allows the user to add multiple values that are displayed in a tag area.\n *\n * This widget is a base widget; see {@link OO.ui.MenuTagMultiselectWidget MenuTagMultiselectWidget} and\n * {@link OO.ui.PopupTagMultiselectWidget PopupTagMultiselectWidget} for the implementations that use\n * a menu and a popup respectively.\n *\n *     @example\n *     // A TagMultiselectWidget.\n *     var widget = new OO.ui.TagMultiselectWidget( {\n *         inputPosition: 'outline',\n *         allowedValues: [ 'Option 1', 'Option 2', 'Option 3' ],\n *         selected: [ 'Option 1' ]\n *     } );\n *     $( document.body ).append( widget.$element );\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.GroupWidget\n * @mixins OO.ui.mixin.DraggableGroupElement\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.TabIndexedElement\n * @mixins OO.ui.mixin.FlaggedElement\n * @mixins OO.ui.mixin.TitledElement\n *\n * @constructor\n * @param {Object} config Configuration object\n * @cfg {Object} [input] Configuration options for the input widget\n * @cfg {OO.ui.InputWidget} [inputWidget] An optional input widget. If given, it will\n *  replace the input widget used in the TagMultiselectWidget. If not given,\n *  TagMultiselectWidget creates its own.\n * @cfg {boolean} [inputPosition='inline'] Position of the input. Options are:\n *  - inline: The input is invisible, but exists inside the tag list, so\n *    the user types into the tag groups to add tags.\n *  - outline: The input is underneath the tag area.\n *  - none: No input supplied\n * @cfg {boolean} [allowEditTags=true] Allow editing of the tags by clicking them\n * @cfg {boolean} [allowArbitrary=false] Allow data items to be added even if\n *  not present in the menu.\n * @cfg {Object[]} [allowedValues] An array representing the allowed items\n *  by their datas.\n * @cfg {boolean} [allowDuplicates=false] Allow duplicate items to be added\n * @cfg {boolean} [allowDisplayInvalidTags=false] Allow the display of\n *  invalid tags. These tags will display with an invalid state, and\n *  the widget as a whole will have an invalid state if any invalid tags\n *  are present.\n * @cfg {number} [tagLimit] An optional limit on the number of selected options.\n *  If 'tagLimit' is set and is reached, the input is disabled, not allowing any\n *  additions. If 'tagLimit' is unset or is 0, an unlimited number of items can be\n *  added.\n * @cfg {boolean} [allowReordering=true] Allow reordering of the items\n * @cfg {Object[]|String[]} [selected] A set of selected tags. If given,\n *  these will appear in the tag list on initialization, as long as they\n *  pass the validity tests.\n */\nOO.ui.TagMultiselectWidget = function OoUiTagMultiselectWidget( config ) {\n\tvar inputEvents,\n\t\trAF = window.requestAnimationFrame || setTimeout,\n\t\twidget = this,\n\t\t$tabFocus = $( '<span>' )\n\t\t\t.addClass( 'oo-ui-tagMultiselectWidget-focusTrap' );\n\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.TagMultiselectWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.GroupWidget.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.TabIndexedElement.call( this, config );\n\tOO.ui.mixin.FlaggedElement.call( this, config );\n\tOO.ui.mixin.DraggableGroupElement.call( this, config );\n\tOO.ui.mixin.TitledElement.call( this, config );\n\n\tthis.toggleDraggable(\n\t\tconfig.allowReordering === undefined ?\n\t\t\ttrue : !!config.allowReordering\n\t);\n\n\tthis.inputPosition =\n\t\tthis.constructor.static.allowedInputPositions.indexOf( config.inputPosition ) > -1 ?\n\t\t\tconfig.inputPosition : 'inline';\n\tthis.allowEditTags = config.allowEditTags === undefined ? true : !!config.allowEditTags;\n\tthis.allowArbitrary = !!config.allowArbitrary;\n\tthis.allowDuplicates = !!config.allowDuplicates;\n\tthis.allowedValues = config.allowedValues || [];\n\tthis.allowDisplayInvalidTags = config.allowDisplayInvalidTags;\n\tthis.hasInput = this.inputPosition !== 'none';\n\tthis.tagLimit = config.tagLimit;\n\tthis.height = null;\n\tthis.valid = true;\n\n\tthis.$content = $( '<div>' )\n\t\t.addClass( 'oo-ui-tagMultiselectWidget-content' );\n\tthis.$handle = $( '<div>' )\n\t\t.addClass( 'oo-ui-tagMultiselectWidget-handle' )\n\t\t.append(\n\t\t\tthis.$indicator,\n\t\t\tthis.$icon,\n\t\t\tthis.$content\n\t\t\t\t.append(\n\t\t\t\t\tthis.$group\n\t\t\t\t\t\t.addClass( 'oo-ui-tagMultiselectWidget-group' )\n\t\t\t\t)\n\t\t);\n\n\t// Events\n\tthis.aggregate( {\n\t\tremove: 'itemRemove',\n\t\tnavigate: 'itemNavigate',\n\t\tselect: 'itemSelect',\n\t\tfixed: 'itemFixed'\n\t} );\n\tthis.connect( this, {\n\t\titemRemove: 'onTagRemove',\n\t\titemSelect: 'onTagSelect',\n\t\titemFixed: 'onTagFixed',\n\t\titemNavigate: 'onTagNavigate',\n\t\tchange: 'onChangeTags'\n\t} );\n\tthis.$handle.on( {\n\t\tmousedown: this.onMouseDown.bind( this )\n\t} );\n\n\t// Initialize\n\tthis.$element\n\t\t.addClass( 'oo-ui-tagMultiselectWidget' )\n\t\t.append( this.$handle );\n\n\tif ( this.hasInput ) {\n\t\tif ( config.inputWidget ) {\n\t\t\tthis.input = config.inputWidget;\n\t\t} else {\n\t\t\tthis.input = new OO.ui.TextInputWidget( $.extend( {\n\t\t\t\tplaceholder: config.placeholder,\n\t\t\t\tclasses: [ 'oo-ui-tagMultiselectWidget-input' ]\n\t\t\t}, config.input ) );\n\t\t}\n\t\tthis.input.setDisabled( this.isDisabled() );\n\n\t\tinputEvents = {\n\t\t\tfocus: this.onInputFocus.bind( this ),\n\t\t\tblur: this.onInputBlur.bind( this ),\n\t\t\t'propertychange change click mouseup keydown keyup input cut paste select focus':\n\t\t\t\tOO.ui.debounce( this.updateInputSize.bind( this ) ),\n\t\t\tkeydown: this.onInputKeyDown.bind( this ),\n\t\t\tkeypress: this.onInputKeyPress.bind( this )\n\t\t};\n\n\t\tthis.input.$input.on( inputEvents );\n\t\tthis.inputPlaceholder = this.input.$input.attr( 'placeholder' );\n\n\t\tif ( this.inputPosition === 'outline' ) {\n\t\t\t// Override max-height for the input widget\n\t\t\t// in the case the widget is outline so it can\n\t\t\t// stretch all the way if the widget is wide\n\t\t\tthis.input.$element.css( 'max-width', 'inherit' );\n\t\t\tthis.$element\n\t\t\t\t.addClass( 'oo-ui-tagMultiselectWidget-outlined' )\n\t\t\t\t.append( this.input.$element );\n\t\t} else {\n\t\t\tthis.$element.addClass( 'oo-ui-tagMultiselectWidget-inlined' );\n\t\t\t// HACK: When the widget is using 'inline' input, the\n\t\t\t// behavior needs to only use the $input itself\n\t\t\t// so we style and size it accordingly (otherwise\n\t\t\t// the styling and sizing can get very convoluted\n\t\t\t// when the wrapping divs and other elements)\n\t\t\t// We are taking advantage of still being able to\n\t\t\t// call the widget itself for operations like\n\t\t\t// .getValue() and setDisabled() and .focus() but\n\t\t\t// having only the $input attached to the DOM\n\t\t\tthis.$content.append( this.input.$input );\n\t\t}\n\t} else {\n\t\tthis.$content.append( $tabFocus );\n\t}\n\n\tthis.setTabIndexedElement(\n\t\tthis.hasInput ?\n\t\t\tthis.input.$input :\n\t\t\t$tabFocus\n\t);\n\n\tif ( config.selected ) {\n\t\tthis.setValue( config.selected );\n\t}\n\n\t// HACK: Input size needs to be calculated after everything\n\t// else is rendered\n\trAF( function () {\n\t\tif ( widget.hasInput ) {\n\t\t\twidget.updateInputSize();\n\t\t}\n\t} );\n};\n\n/* Initialization */\n\nOO.inheritClass( OO.ui.TagMultiselectWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.GroupWidget );\nOO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.DraggableGroupElement );\nOO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.TabIndexedElement );\nOO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.FlaggedElement );\nOO.mixinClass( OO.ui.TagMultiselectWidget, OO.ui.mixin.TitledElement );\n\n/* Static properties */\n\n/**\n * Allowed input positions.\n * - inline: The input is inside the tag list\n * - outline: The input is under the tag list\n * - none: There is no input\n *\n * @property {Array}\n */\nOO.ui.TagMultiselectWidget.static.allowedInputPositions = [ 'inline', 'outline', 'none' ];\n\n/* Methods */\n\n/**\n * Handle mouse down events.\n *\n * @private\n * @param {jQuery.Event} e Mouse down event\n * @return {boolean} False to prevent defaults\n */\nOO.ui.TagMultiselectWidget.prototype.onMouseDown = function ( e ) {\n\tif (\n\t\t!this.isDisabled() &&\n\t\t( !this.hasInput || e.target !== this.input.$input[ 0 ] ) &&\n\t\te.which === OO.ui.MouseButtons.LEFT\n\t) {\n\t\tthis.focus();\n\t\treturn false;\n\t}\n};\n\n/**\n * Handle key press events.\n *\n * @private\n * @param {jQuery.Event} e Key press event\n * @return {boolean} Whether to prevent defaults\n */\nOO.ui.TagMultiselectWidget.prototype.onInputKeyPress = function ( e ) {\n\tvar stopOrContinue,\n\t\twithMetaKey = e.metaKey || e.ctrlKey;\n\n\tif ( !this.isDisabled() ) {\n\t\tif ( e.which === OO.ui.Keys.ENTER ) {\n\t\t\tstopOrContinue = this.doInputEnter( e, withMetaKey );\n\t\t}\n\n\t\t// Make sure the input gets resized.\n\t\tsetTimeout( this.updateInputSize.bind( this ), 0 );\n\t\treturn stopOrContinue;\n\t}\n};\n\n/**\n * Handle key down events.\n *\n * @private\n * @param {jQuery.Event} e Key down event\n * @return {boolean}\n */\nOO.ui.TagMultiselectWidget.prototype.onInputKeyDown = function ( e ) {\n\tvar movement, direction,\n\t\twidget = this,\n\t\twithMetaKey = e.metaKey || e.ctrlKey,\n\t\tisMovementInsideInput = function ( direction ) {\n\t\t\tvar inputRange = widget.input.getRange(),\n\t\t\t\tinputValue = widget.hasInput && widget.input.getValue();\n\n\t\t\tif ( direction === 'forwards' && inputRange.to > inputValue.length - 1 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif ( direction === 'backwards' && inputRange.from <= 0 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t};\n\n\tif ( !this.isDisabled() ) {\n\t\t// 'keypress' event is not triggered for Backspace\n\t\tif ( e.keyCode === OO.ui.Keys.BACKSPACE ) {\n\t\t\treturn this.doInputBackspace( e, withMetaKey );\n\t\t} else if ( e.keyCode === OO.ui.Keys.ESCAPE ) {\n\t\t\treturn this.doInputEscape( e );\n\t\t} else if (\n\t\t\te.keyCode === OO.ui.Keys.LEFT ||\n\t\t\te.keyCode === OO.ui.Keys.RIGHT\n\t\t) {\n\t\t\tif ( OO.ui.Element.static.getDir( this.$element ) === 'rtl' ) {\n\t\t\t\tmovement = {\n\t\t\t\t\tleft: 'forwards',\n\t\t\t\t\tright: 'backwards'\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tmovement = {\n\t\t\t\t\tleft: 'backwards',\n\t\t\t\t\tright: 'forwards'\n\t\t\t\t};\n\t\t\t}\n\t\t\tdirection = e.keyCode === OO.ui.Keys.LEFT ?\n\t\t\t\tmovement.left : movement.right;\n\n\t\t\tif ( !this.hasInput || !isMovementInsideInput( direction ) ) {\n\t\t\t\treturn this.doInputArrow( e, direction, withMetaKey );\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * Respond to input focus event\n */\nOO.ui.TagMultiselectWidget.prototype.onInputFocus = function () {\n\tthis.$element.addClass( 'oo-ui-tagMultiselectWidget-focus' );\n\t// Reset validity\n\tthis.toggleValid( true );\n};\n\n/**\n * Respond to input blur event\n */\nOO.ui.TagMultiselectWidget.prototype.onInputBlur = function () {\n\tthis.$element.removeClass( 'oo-ui-tagMultiselectWidget-focus' );\n\n\t// Set the widget as invalid if there's text in the input\n\tthis.addTagFromInput();\n\tthis.toggleValid( this.checkValidity() && ( !this.hasInput || !this.input.getValue() ) );\n};\n\n/**\n * Perform an action after the enter key on the input\n *\n * @param {jQuery.Event} e Event data\n * @param {boolean} [withMetaKey] Whether this key was pressed with\n * a meta key like 'ctrl'\n * @return {boolean} Whether to prevent defaults\n */\nOO.ui.TagMultiselectWidget.prototype.doInputEnter = function () {\n\tthis.addTagFromInput();\n\treturn false;\n};\n\n/**\n * Perform an action responding to the enter key on the input\n *\n * @param {jQuery.Event} e Event data\n * @param {boolean} [withMetaKey] Whether this key was pressed with\n * a meta key like 'ctrl'\n * @return {boolean} Whether to prevent defaults\n */\nOO.ui.TagMultiselectWidget.prototype.doInputBackspace = function ( e, withMetaKey ) {\n\tvar items, item;\n\n\tif (\n\t\tthis.inputPosition === 'inline' &&\n\t\tthis.input.getValue() === '' &&\n\t\t!this.isEmpty()\n\t) {\n\t\t// Delete the last item\n\t\titems = this.getItems();\n\t\titem = items[ items.length - 1 ];\n\n\t\tif ( !item.isDisabled() && !item.isFixed() ) {\n\t\t\tthis.removeItems( [ item ] );\n\t\t\t// If Ctrl/Cmd was pressed, delete item entirely.\n\t\t\t// Otherwise put it into the text field for editing.\n\t\t\tif ( !withMetaKey ) {\n\t\t\t\tthis.input.setValue( item.getData() );\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n};\n\n/**\n * Perform an action after the escape key on the input\n *\n * @param {jQuery.Event} e Event data\n */\nOO.ui.TagMultiselectWidget.prototype.doInputEscape = function () {\n\tthis.clearInput();\n};\n\n/**\n * Perform an action after the arrow key on the input, select the previous\n * item from the input.\n * See #getPreviousItem\n *\n * @param {jQuery.Event} e Event data\n * @param {string} direction Direction of the movement; forwards or backwards\n * @param {boolean} [withMetaKey] Whether this key was pressed with\n *  a meta key like 'ctrl'\n */\nOO.ui.TagMultiselectWidget.prototype.doInputArrow = function ( e, direction ) {\n\tif (\n\t\tthis.inputPosition === 'inline' &&\n\t\t!this.isEmpty() &&\n\t\tdirection === 'backwards'\n\t) {\n\t\t// Get previous item\n\t\tthis.getPreviousItem().focus();\n\t}\n};\n\n/**\n * Respond to item select event\n *\n * @param {OO.ui.TagItemWidget} item Selected item\n */\nOO.ui.TagMultiselectWidget.prototype.onTagSelect = function ( item ) {\n\tif ( this.hasInput && this.allowEditTags && !item.isFixed() ) {\n\t\tif ( this.input.getValue() ) {\n\t\t\tthis.addTagFromInput();\n\t\t}\n\t\t// 1. Get the label of the tag into the input\n\t\tthis.input.setValue( item.getData() );\n\t\t// 2. Remove the tag\n\t\tthis.removeItems( [ item ] );\n\t\t// 3. Focus the input\n\t\tthis.focus();\n\t}\n};\n\n/**\n * Respond to item fixed state change\n *\n * @param {OO.ui.TagItemWidget} item Selected item\n */\nOO.ui.TagMultiselectWidget.prototype.onTagFixed = function ( item ) {\n\tvar i,\n\t\titems = this.getItems();\n\n\t// Move item to the end of the static items\n\tfor ( i = 0; i < items.length; i++ ) {\n\t\tif ( items[ i ] !== item && !items[ i ].isFixed() ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\tthis.addItems( item, i );\n};\n/**\n * Respond to change event, where items were added, removed, or cleared.\n */\nOO.ui.TagMultiselectWidget.prototype.onChangeTags = function () {\n\tvar isUnderLimit = this.isUnderLimit();\n\n\t// Reset validity\n\tthis.toggleValid(\n\t\tthis.checkValidity() &&\n\t\t!( this.hasInput && this.input.getValue() )\n\t);\n\n\tif ( this.hasInput ) {\n\t\tthis.updateInputSize();\n\t\tif ( !isUnderLimit ) {\n\t\t\t// Clear the input\n\t\t\tthis.input.setValue( '' );\n\t\t}\n\t\tif ( this.inputPosition === 'outline' ) {\n\t\t\t// Show/clear the placeholder and enable/disable the input\n\t\t\t// based on whether we are/aren't under the specified limit\n\t\t\tthis.input.$input.attr( 'placeholder', isUnderLimit ? this.inputPlaceholder : '' );\n\t\t\tthis.input.setDisabled( !isUnderLimit );\n\t\t} else {\n\t\t\t// Show/hide the input\n\t\t\tthis.input.$input.toggleClass( 'oo-ui-element-hidden', !isUnderLimit );\n\t\t}\n\t}\n\tthis.updateIfHeightChanged();\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.TagMultiselectWidget.prototype.setDisabled = function ( isDisabled ) {\n\t// Parent method\n\tOO.ui.TagMultiselectWidget.parent.prototype.setDisabled.call( this, isDisabled );\n\n\tif ( this.hasInput && this.input ) {\n\t\tif ( !isDisabled ) {\n\t\t\tthis.updateInputSize();\n\t\t}\n\t\tthis.input.setDisabled( !!isDisabled && !this.isUnderLimit() );\n\t}\n\n\tif ( this.items ) {\n\t\tthis.getItems().forEach( function ( item ) {\n\t\t\titem.setDisabled( !!isDisabled );\n\t\t} );\n\t}\n};\n\n/**\n * Respond to tag remove event\n * @param {OO.ui.TagItemWidget} item Removed tag\n */\nOO.ui.TagMultiselectWidget.prototype.onTagRemove = function ( item ) {\n\tthis.removeTagByData( item.getData() );\n};\n\n/**\n * Respond to navigate event on the tag\n *\n * @param {OO.ui.TagItemWidget} item Removed tag\n * @param {string} direction Direction of movement; 'forwards' or 'backwards'\n */\nOO.ui.TagMultiselectWidget.prototype.onTagNavigate = function ( item, direction ) {\n\tvar firstItem = this.getItems()[ 0 ];\n\n\tif ( direction === 'forwards' ) {\n\t\tthis.getNextItem( item ).focus();\n\t} else if ( !this.inputPosition === 'inline' || item !== firstItem ) {\n\t\t// If the widget has an inline input, we want to stop at the starting edge\n\t\t// of the tags\n\t\tthis.getPreviousItem( item ).focus();\n\t}\n};\n\n/**\n * Add tag from input value\n */\nOO.ui.TagMultiselectWidget.prototype.addTagFromInput = function () {\n\tvar val = this.input.getValue(),\n\t\tisValid = this.isAllowedData( val );\n\n\tif ( !val ) {\n\t\treturn;\n\t}\n\n\tif ( isValid || this.allowDisplayInvalidTags ) {\n\t\tthis.clearInput();\n\t\tthis.addTag( val );\n\t}\n};\n\n/**\n * Clear the input\n */\nOO.ui.TagMultiselectWidget.prototype.clearInput = function () {\n\tthis.input.setValue( '' );\n};\n\n/**\n * Check whether the given value is a duplicate of an existing\n * tag already in the list.\n *\n * @param {string|Object} data Requested value\n * @return {boolean} Value is duplicate\n */\nOO.ui.TagMultiselectWidget.prototype.isDuplicateData = function ( data ) {\n\treturn !!this.findItemFromData( data );\n};\n\n/**\n * Check whether a given value is allowed to be added\n *\n * @param {string|Object} data Requested value\n * @return {boolean} Value is allowed\n */\nOO.ui.TagMultiselectWidget.prototype.isAllowedData = function ( data ) {\n\tif (\n\t\t!this.allowDuplicates &&\n\t\tthis.isDuplicateData( data )\n\t) {\n\t\treturn false;\n\t}\n\n\tif ( this.allowArbitrary ) {\n\t\treturn true;\n\t}\n\n\t// Check with allowed values\n\tif (\n\t\tthis.getAllowedValues().some( function ( value ) {\n\t\t\treturn data === value;\n\t\t} )\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n/**\n * Get the allowed values list\n *\n * @return {string[]} Allowed data values\n */\nOO.ui.TagMultiselectWidget.prototype.getAllowedValues = function () {\n\treturn this.allowedValues;\n};\n\n/**\n * Add a value to the allowed values list\n *\n * @param {string} value Allowed data value\n */\nOO.ui.TagMultiselectWidget.prototype.addAllowedValue = function ( value ) {\n\tif ( this.allowedValues.indexOf( value ) === -1 ) {\n\t\tthis.allowedValues.push( value );\n\t}\n};\n\n/**\n * Get the datas of the currently selected items\n *\n * @return {string[]|Object[]} Datas of currently selected items\n */\nOO.ui.TagMultiselectWidget.prototype.getValue = function () {\n\treturn this.getItems()\n\t\t.filter( function ( item ) {\n\t\t\treturn item.isValid();\n\t\t} )\n\t\t.map( function ( item ) {\n\t\t\treturn item.getData();\n\t\t} );\n};\n\n/**\n * Set the value of this widget by datas.\n *\n * @param {string|string[]|Object|Object[]} valueObject An object representing the data\n *  and label of the value. If the widget allows arbitrary values,\n *  the items will be added as-is. Otherwise, the data value will\n *  be checked against allowedValues.\n *  This object must contain at least a data key. Example:\n *  { data: 'foo', label: 'Foo item' }\n *  For multiple items, use an array of objects. For example:\n *  [\n *     { data: 'foo', label: 'Foo item' },\n *     { data: 'bar', label: 'Bar item' }\n *  ]\n *  Value can also be added with plaintext array, for example:\n *  [ 'foo', 'bar', 'bla' ] or a single string, like 'foo'\n */\nOO.ui.TagMultiselectWidget.prototype.setValue = function ( valueObject ) {\n\tvalueObject = Array.isArray( valueObject ) ? valueObject : [ valueObject ];\n\n\tthis.clearItems();\n\tvalueObject.forEach( function ( obj ) {\n\t\tif ( typeof obj === 'string' ) {\n\t\t\tthis.addTag( obj );\n\t\t} else {\n\t\t\tthis.addTag( obj.data, obj.label );\n\t\t}\n\t}.bind( this ) );\n};\n\n/**\n * Add tag to the display area\n *\n * @param {string|Object} data Tag data\n * @param {string} [label] Tag label. If no label is provided, the\n *  stringified version of the data will be used instead.\n * @return {boolean} Item was added successfully\n */\nOO.ui.TagMultiselectWidget.prototype.addTag = function ( data, label ) {\n\tvar newItemWidget,\n\t\tisValid = this.isAllowedData( data );\n\n\tif ( this.isUnderLimit() && ( isValid || this.allowDisplayInvalidTags ) ) {\n\t\tnewItemWidget = this.createTagItemWidget( data, label );\n\t\tnewItemWidget.toggleValid( isValid );\n\t\tthis.addItems( [ newItemWidget ] );\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n/**\n * Check whether the number of current tags is within the limit.\n *\n * @return {boolean} True if current tag count is within the limit or\n *  if 'tagLimit' is not set\n */\nOO.ui.TagMultiselectWidget.prototype.isUnderLimit = function () {\n\treturn !this.tagLimit ||\n\t\tthis.getItemCount() < this.tagLimit;\n};\n\n/**\n * Remove tag by its data property.\n *\n * @param {string|Object} data Tag data\n */\nOO.ui.TagMultiselectWidget.prototype.removeTagByData = function ( data ) {\n\tvar item = this.findItemFromData( data );\n\n\tthis.removeItems( [ item ] );\n};\n\n/**\n * Construct a OO.ui.TagItemWidget (or a subclass thereof) from given label and data.\n *\n * @protected\n * @param {string} data Item data\n * @param {string} label The label text.\n * @return {OO.ui.TagItemWidget}\n */\nOO.ui.TagMultiselectWidget.prototype.createTagItemWidget = function ( data, label ) {\n\tlabel = label || data;\n\n\treturn new OO.ui.TagItemWidget( { data: data, label: label } );\n};\n\n/**\n * Given an item, returns the item after it. If the item is already the\n * last item, return `this.input`. If no item is passed, returns the\n * very first item.\n *\n * @protected\n * @param {OO.ui.TagItemWidget} [item] Tag item\n * @return {OO.ui.Widget} The next widget available.\n */\nOO.ui.TagMultiselectWidget.prototype.getNextItem = function ( item ) {\n\tvar itemIndex = this.items.indexOf( item );\n\n\tif ( item === undefined || itemIndex === -1 ) {\n\t\treturn this.items[ 0 ];\n\t}\n\n\tif ( itemIndex === this.items.length - 1 ) { // Last item\n\t\tif ( this.hasInput ) {\n\t\t\treturn this.input;\n\t\t} else {\n\t\t\t// Return first item\n\t\t\treturn this.items[ 0 ];\n\t\t}\n\t} else {\n\t\treturn this.items[ itemIndex + 1 ];\n\t}\n};\n\n/**\n * Given an item, returns the item before it. If the item is already the\n * first item, return `this.input`. If no item is passed, returns the\n * very last item.\n *\n * @protected\n * @param {OO.ui.TagItemWidget} [item] Tag item\n * @return {OO.ui.Widget} The previous widget available.\n */\nOO.ui.TagMultiselectWidget.prototype.getPreviousItem = function ( item ) {\n\tvar itemIndex = this.items.indexOf( item );\n\n\tif ( item === undefined || itemIndex === -1 ) {\n\t\treturn this.items[ this.items.length - 1 ];\n\t}\n\n\tif ( itemIndex === 0 ) {\n\t\tif ( this.hasInput ) {\n\t\t\treturn this.input;\n\t\t} else {\n\t\t\t// Return the last item\n\t\t\treturn this.items[ this.items.length - 1 ];\n\t\t}\n\t} else {\n\t\treturn this.items[ itemIndex - 1 ];\n\t}\n};\n\n/**\n * Update the dimensions of the text input field to encompass all available area.\n * This is especially relevant for when the input is at the edge of a line\n * and should get smaller. The usual operation (as an inline-block with min-width)\n * does not work in that case, pushing the input downwards to the next line.\n *\n * @private\n */\nOO.ui.TagMultiselectWidget.prototype.updateInputSize = function () {\n\tvar $lastItem, direction, contentWidth, currentWidth, bestWidth;\n\tif ( this.inputPosition === 'inline' && !this.isDisabled() ) {\n\t\tif ( this.input.$input[ 0 ].scrollWidth === 0 ) {\n\t\t\t// Input appears to be attached but not visible.\n\t\t\t// Don't attempt to adjust its size, because our measurements\n\t\t\t// are going to fail anyway.\n\t\t\treturn;\n\t\t}\n\t\tthis.input.$input.css( 'width', '1em' );\n\t\t$lastItem = this.$group.children().last();\n\t\tdirection = OO.ui.Element.static.getDir( this.$handle );\n\n\t\t// Get the width of the input with the placeholder text as\n\t\t// the value and save it so that we don't keep recalculating\n\t\tif (\n\t\t\tthis.contentWidthWithPlaceholder === undefined &&\n\t\t\tthis.input.getValue() === '' &&\n\t\t\tthis.input.$input.attr( 'placeholder' ) !== undefined\n\t\t) {\n\t\t\tthis.input.setValue( this.input.$input.attr( 'placeholder' ) );\n\t\t\tthis.contentWidthWithPlaceholder = this.input.$input[ 0 ].scrollWidth;\n\t\t\tthis.input.setValue( '' );\n\n\t\t}\n\n\t\t// Always keep the input wide enough for the placeholder text\n\t\tcontentWidth = Math.max(\n\t\t\tthis.input.$input[ 0 ].scrollWidth,\n\t\t\t// undefined arguments in Math.max lead to NaN\n\t\t\t( this.contentWidthWithPlaceholder === undefined ) ?\n\t\t\t\t0 : this.contentWidthWithPlaceholder\n\t\t);\n\t\tcurrentWidth = this.input.$input.width();\n\n\t\tif ( contentWidth < currentWidth ) {\n\t\t\tthis.updateIfHeightChanged();\n\t\t\t// All is fine, don't perform expensive calculations\n\t\t\treturn;\n\t\t}\n\n\t\tif ( $lastItem.length === 0 ) {\n\t\t\tbestWidth = this.$content.innerWidth();\n\t\t} else {\n\t\t\tbestWidth = direction === 'ltr' ?\n\t\t\t\tthis.$content.innerWidth() - $lastItem.position().left - $lastItem.outerWidth() :\n\t\t\t\t$lastItem.position().left;\n\t\t}\n\n\t\t// Some safety margin for sanity, because I *really* don't feel like finding out where the few\n\t\t// pixels this is off by are coming from.\n\t\tbestWidth -= 13;\n\t\tif ( contentWidth > bestWidth ) {\n\t\t\t// This will result in the input getting shifted to the next line\n\t\t\tbestWidth = this.$content.innerWidth() - 13;\n\t\t}\n\t\tthis.input.$input.width( Math.floor( bestWidth ) );\n\t\tthis.updateIfHeightChanged();\n\t} else {\n\t\tthis.updateIfHeightChanged();\n\t}\n};\n\n/**\n * Determine if widget height changed, and if so,\n * emit the resize event. This is useful for when there are either\n * menus or popups attached to the bottom of the widget, to allow\n * them to change their positioning in case the widget moved down\n * or up.\n *\n * @private\n */\nOO.ui.TagMultiselectWidget.prototype.updateIfHeightChanged = function () {\n\tvar height = this.$element.height();\n\tif ( height !== this.height ) {\n\t\tthis.height = height;\n\t\tthis.emit( 'resize' );\n\t}\n};\n\n/**\n * Check whether all items in the widget are valid\n *\n * @return {boolean} Widget is valid\n */\nOO.ui.TagMultiselectWidget.prototype.checkValidity = function () {\n\treturn this.getItems().every( function ( item ) {\n\t\treturn item.isValid();\n\t} );\n};\n\n/**\n * Set the valid state of this item\n *\n * @param {boolean} [valid] Item is valid\n * @fires valid\n */\nOO.ui.TagMultiselectWidget.prototype.toggleValid = function ( valid ) {\n\tvalid = valid === undefined ? !this.valid : !!valid;\n\n\tif ( this.valid !== valid ) {\n\t\tthis.valid = valid;\n\n\t\tthis.setFlags( { invalid: !this.valid } );\n\n\t\tthis.emit( 'valid', this.valid );\n\t}\n};\n\n/**\n * Get the current valid state of the widget\n *\n * @return {boolean} Widget is valid\n */\nOO.ui.TagMultiselectWidget.prototype.isValid = function () {\n\treturn this.valid;\n};\n","/**\n * PopupTagMultiselectWidget is a {@link OO.ui.TagMultiselectWidget OO.ui.TagMultiselectWidget} intended\n * to use a popup. The popup can be configured to have a default input to insert values into the widget.\n *\n *     @example\n *     // A PopupTagMultiselectWidget.\n *     var widget = new OO.ui.PopupTagMultiselectWidget();\n *     $( document.body ).append( widget.$element );\n *\n *     // Example: A PopupTagMultiselectWidget with an external popup.\n *     var popupInput = new OO.ui.TextInputWidget(),\n *         widget = new OO.ui.PopupTagMultiselectWidget( {\n *            popupInput: popupInput,\n *            popup: {\n *               $content: popupInput.$element\n *            }\n *         } );\n *     $( document.body ).append( widget.$element );\n *\n * @class\n * @extends OO.ui.TagMultiselectWidget\n * @mixins OO.ui.mixin.PopupElement\n *\n * @param {Object} config Configuration object\n * @cfg {jQuery} [$overlay] An overlay for the popup.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n * @cfg {Object} [popup] Configuration options for the popup\n * @cfg {OO.ui.InputWidget} [popupInput] An input widget inside the popup that will be\n *  focused when the popup is opened and will be used as replacement for the\n *  general input in the widget.\n * @deprecated\n */\nOO.ui.PopupTagMultiselectWidget = function OoUiPopupTagMultiselectWidget( config ) {\n\tvar defaultInput,\n\t\tdefaultConfig = { popup: {} };\n\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.PopupTagMultiselectWidget.parent.call( this, $.extend( { inputPosition: 'none' }, config ) );\n\n\tthis.$overlay = ( config.$overlay === true ? OO.ui.getDefaultOverlay() : config.$overlay ) || this.$element;\n\n\tif ( !config.popup ) {\n\t\t// For the default base implementation, we give a popup\n\t\t// with an input widget inside it. For any other use cases\n\t\t// the popup needs to be populated externally and the\n\t\t// event handled to add tags separately and manually\n\t\tdefaultInput = new OO.ui.TextInputWidget();\n\n\t\tdefaultConfig.popupInput = defaultInput;\n\t\tdefaultConfig.popup.$content = defaultInput.$element;\n\t\tdefaultConfig.popup.padded = true;\n\n\t\tthis.$element.addClass( 'oo-ui-popupTagMultiselectWidget-defaultPopup' );\n\t}\n\n\t// Add overlay, and add that to the autoCloseIgnore\n\tdefaultConfig.popup.$overlay = this.$overlay;\n\tdefaultConfig.popup.$autoCloseIgnore = this.hasInput ?\n\t\tthis.input.$element.add( this.$overlay ) : this.$overlay;\n\n\t// Allow extending any of the above\n\tconfig = $.extend( defaultConfig, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.PopupElement.call( this, config );\n\n\tif ( this.hasInput ) {\n\t\tthis.input.$input.on( 'focus', this.popup.toggle.bind( this.popup, true ) );\n\t}\n\n\t// Configuration options\n\tthis.popupInput = config.popupInput;\n\tif ( this.popupInput ) {\n\t\tthis.popupInput.connect( this, {\n\t\t\tenter: 'onPopupInputEnter'\n\t\t} );\n\t}\n\n\t// Events\n\tthis.on( 'resize', this.popup.updateDimensions.bind( this.popup ) );\n\tthis.popup.connect( this, { toggle: 'onPopupToggle' } );\n\tthis.$tabIndexed\n\t\t.on( 'focus', this.onFocus.bind( this ) );\n\n\t// Initialize\n\tthis.$element\n\t\t.append( this.popup.$element )\n\t\t.addClass( 'oo-ui-popupTagMultiselectWidget' );\n\n\t// Deprecation warning\n\tOO.ui.warnDeprecation( 'PopupTagMultiselectWidget: Deprecated widget. Use MenuTagMultiselectWidget instead. See T208821.' );\n};\n\n/* Initialization */\n\nOO.inheritClass( OO.ui.PopupTagMultiselectWidget, OO.ui.TagMultiselectWidget );\nOO.mixinClass( OO.ui.PopupTagMultiselectWidget, OO.ui.mixin.PopupElement );\n\n/* Methods */\n\n/**\n * Focus event handler.\n *\n * @private\n */\nOO.ui.PopupTagMultiselectWidget.prototype.onFocus = function () {\n\tthis.popup.toggle( true );\n};\n\n/**\n * Respond to popup toggle event\n *\n * @param {boolean} isVisible Popup is visible\n */\nOO.ui.PopupTagMultiselectWidget.prototype.onPopupToggle = function ( isVisible ) {\n\tif ( isVisible && this.popupInput ) {\n\t\tthis.popupInput.focus();\n\t}\n};\n\n/**\n * Respond to popup input enter event\n */\nOO.ui.PopupTagMultiselectWidget.prototype.onPopupInputEnter = function () {\n\tif ( this.popupInput ) {\n\t\tthis.addTagByPopupValue( this.popupInput.getValue() );\n\t\tthis.popupInput.setValue( '' );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.PopupTagMultiselectWidget.prototype.onTagSelect = function ( item ) {\n\tif ( this.popupInput && this.allowEditTags ) {\n\t\tthis.popupInput.setValue( item.getData() );\n\t\tthis.removeItems( [ item ] );\n\n\t\tthis.popup.toggle( true );\n\t\tthis.popupInput.focus();\n\t} else {\n\t\t// Parent\n\t\tOO.ui.PopupTagMultiselectWidget.parent.prototype.onTagSelect.call( this, item );\n\t}\n};\n\n/**\n * Add a tag by the popup value.\n * Whatever is responsible for setting the value in the popup should call\n * this method to add a tag, or use the regular methods like #addTag or\n * #setValue directly.\n *\n * @param {string} data The value of item\n * @param {string} [label] The label of the tag. If not given, the data is used.\n */\nOO.ui.PopupTagMultiselectWidget.prototype.addTagByPopupValue = function ( data, label ) {\n\tthis.addTag( data, label );\n};\n","/**\n * MenuTagMultiselectWidget is a {@link OO.ui.TagMultiselectWidget OO.ui.TagMultiselectWidget} intended\n * to use a menu of selectable options.\n *\n *     @example\n *     // A basic MenuTagMultiselectWidget.\n *     var widget = new OO.ui.MenuTagMultiselectWidget( {\n *         inputPosition: 'outline',\n *         options: [\n *            { data: 'option1', label: 'Option 1', icon: 'tag' },\n *            { data: 'option2', label: 'Option 2' },\n *            { data: 'option3', label: 'Option 3' },\n *         ],\n *         selected: [ 'option1', 'option2' ]\n *     } );\n *     $( document.body ).append( widget.$element );\n *\n * @class\n * @extends OO.ui.TagMultiselectWidget\n *\n * @constructor\n * @param {Object} [config] Configuration object\n * @cfg {boolean} [clearInputOnChoose=true] Clear the text input value when a menu option is chosen\n * @cfg {Object} [menu] Configuration object for the menu widget\n * @cfg {jQuery} [$overlay] An overlay for the menu.\n *  See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n * @cfg {Object[]} [options=[]] Array of menu options in the format `{ data: …, label: … }`\n */\nOO.ui.MenuTagMultiselectWidget = function OoUiMenuTagMultiselectWidget( config ) {\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.MenuTagMultiselectWidget.parent.call( this, config );\n\n\tthis.$overlay = ( config.$overlay === true ? OO.ui.getDefaultOverlay() : config.$overlay ) || this.$element;\n\tthis.clearInputOnChoose = config.clearInputOnChoose === undefined || !!config.clearInputOnChoose;\n\tthis.menu = this.createMenuWidget( $.extend( {\n\t\twidget: this,\n\t\tinput: this.hasInput ? this.input : null,\n\t\t$input: this.hasInput ? this.input.$input : null,\n\t\tfilterFromInput: !!this.hasInput,\n\t\t$autoCloseIgnore: this.hasInput ?\n\t\t\tthis.input.$element : $( [] ),\n\t\t$floatableContainer: this.hasInput && this.inputPosition === 'outline' ?\n\t\t\tthis.input.$element : this.$element,\n\t\t$overlay: this.$overlay,\n\t\tdisabled: this.isDisabled()\n\t}, config.menu ) );\n\tthis.addOptions( config.options || [] );\n\n\t// Events\n\tthis.menu.connect( this, {\n\t\tchoose: 'onMenuChoose',\n\t\ttoggle: 'onMenuToggle'\n\t} );\n\tif ( this.hasInput ) {\n\t\tthis.input.connect( this, { change: 'onInputChange' } );\n\t}\n\tthis.connect( this, { resize: 'onResize' } );\n\n\t// Initialization\n\tthis.$overlay\n\t\t.append( this.menu.$element );\n\tthis.$element\n\t\t.addClass( 'oo-ui-menuTagMultiselectWidget' );\n\t// Remove MenuSelectWidget's generic focus owner ARIA attribute\n\t// TODO: Should this widget have a `role` that is compatible with this attribute?\n\tthis.menu.$focusOwner.removeAttr( 'aria-expanded' );\n\t// TagMultiselectWidget already does this, but it doesn't work right because this.menu is not yet\n\t// set up while the parent constructor runs, and #getAllowedValues rejects everything.\n\tif ( config.selected ) {\n\t\tthis.setValue( config.selected );\n\t}\n};\n\n/* Initialization */\n\nOO.inheritClass( OO.ui.MenuTagMultiselectWidget, OO.ui.TagMultiselectWidget );\n\n/* Methods */\n\n/**\n * Respond to resize event\n */\nOO.ui.MenuTagMultiselectWidget.prototype.onResize = function () {\n\t// Reposition the menu\n\tthis.menu.position();\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuTagMultiselectWidget.prototype.onInputFocus = function () {\n\t// Parent method\n\tOO.ui.MenuTagMultiselectWidget.parent.prototype.onInputFocus.call( this );\n\n\tthis.menu.toggle( true );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuTagMultiselectWidget.prototype.onInputBlur = function () {\n\t// Parent method\n\tOO.ui.MenuTagMultiselectWidget.parent.prototype.onInputBlur.call( this );\n\n\tthis.menu.toggle( false );\n};\n\n/**\n * Respond to input change event\n */\nOO.ui.MenuTagMultiselectWidget.prototype.onInputChange = function () {\n\tthis.menu.toggle( true );\n\tthis.initializeMenuSelection();\n};\n\n/**\n * Respond to menu choose event\n *\n * @param {OO.ui.OptionWidget} menuItem Chosen menu item\n */\nOO.ui.MenuTagMultiselectWidget.prototype.onMenuChoose = function ( menuItem ) {\n\tif ( this.hasInput && this.clearInputOnChoose ) {\n\t\tthis.input.setValue( '' );\n\t}\n\t// Add tag\n\tthis.addTag( menuItem.getData(), menuItem.getLabel() );\n};\n\n/**\n * Respond to menu toggle event. Reset item highlights on hide.\n *\n * @param {boolean} isVisible The menu is visible\n */\nOO.ui.MenuTagMultiselectWidget.prototype.onMenuToggle = function ( isVisible ) {\n\tif ( !isVisible ) {\n\t\tthis.menu.selectItem( null );\n\t\tthis.menu.highlightItem( null );\n\t} else {\n\t\tthis.initializeMenuSelection();\n\t}\n\tsetTimeout( function () {\n\t\t// Remove MenuSelectWidget's generic focus owner ARIA attribute\n\t\t// TODO: Should this widget have a `role` that is compatible with this attribute?\n\t\tthis.menu.$focusOwner.removeAttr( 'aria-expanded' );\n\t}.bind( this ) );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuTagMultiselectWidget.prototype.onTagSelect = function ( tagItem ) {\n\tvar menuItem = this.menu.findItemFromData( tagItem.getData() );\n\tif ( !this.allowArbitrary ) {\n\t\t// Override the base behavior from TagMultiselectWidget; the base behavior\n\t\t// in TagMultiselectWidget is to remove the tag to edit it in the input,\n\t\t// but in our case, we want to utilize the menu selection behavior, and\n\t\t// definitely not remove the item.\n\n\t\t// If there is an input that is used for filtering, erase the value so we don't filter\n\t\tif ( this.hasInput && this.menu.filterFromInput ) {\n\t\t\tthis.input.setValue( '' );\n\t\t}\n\n\t\t// Select the menu item\n\t\tthis.menu.selectItem( menuItem );\n\n\t\tthis.focus();\n\t} else {\n\t\t// Use the default\n\t\tOO.ui.MenuTagMultiselectWidget.parent.prototype.onTagSelect.call( this, tagItem );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuTagMultiselectWidget.prototype.setDisabled = function ( isDisabled ) {\n\t// Parent method\n\tOO.ui.MenuTagMultiselectWidget.parent.prototype.setDisabled.call( this, isDisabled );\n\n\tif ( this.menu ) {\n\t\t// Protect against calling setDisabled() before the menu was initialized\n\t\tthis.menu.setDisabled( isDisabled );\n\t}\n};\n\n/**\n * Highlight the first selectable item in the menu, if configured.\n *\n * @private\n * @chainable\n */\nOO.ui.MenuTagMultiselectWidget.prototype.initializeMenuSelection = function () {\n\tif ( !this.menu.findSelectedItem() ) {\n\t\tthis.menu.highlightItem(\n\t\t\tthis.allowArbitrary ?\n\t\t\t\tnull :\n\t\t\t\tthis.menu.findFirstSelectableItem()\n\t\t);\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MenuTagMultiselectWidget.prototype.addTagFromInput = function () {\n\tvar val = this.input.getValue(),\n\t\t// Look for a highlighted item first\n\t\t// Then look for the element that fits the data\n\t\titem = this.menu.findHighlightedItem() || this.menu.findItemFromData( val ),\n\t\tdata = item ? item.getData() : val,\n\t\tisValid = this.isAllowedData( data );\n\n\t// Override the parent method so we add from the menu\n\t// rather than directly from the input\n\n\tif ( !val ) {\n\t\treturn;\n\t}\n\n\tif ( isValid || this.allowDisplayInvalidTags ) {\n\t\tthis.clearInput();\n\t\tif ( item ) {\n\t\t\tthis.addTag( data, item.getLabel() );\n\t\t} else {\n\t\t\tthis.addTag( val );\n\t\t}\n\t}\n};\n\n/**\n * Return the visible items in the menu. This is mainly used for when\n * the menu is filtering results.\n *\n * @return {OO.ui.MenuOptionWidget[]} Visible results\n */\nOO.ui.MenuTagMultiselectWidget.prototype.getMenuVisibleItems = function () {\n\treturn this.menu.getItems().filter( function ( menuItem ) {\n\t\treturn menuItem.isVisible();\n\t} );\n};\n\n/**\n * Create the menu for this widget. This is in a separate method so that\n * child classes can override this without polluting the constructor with\n * unnecessary extra objects that will be overidden.\n *\n * @param {Object} menuConfig Configuration options\n * @return {OO.ui.MenuSelectWidget} Menu widget\n */\nOO.ui.MenuTagMultiselectWidget.prototype.createMenuWidget = function ( menuConfig ) {\n\treturn new OO.ui.MenuSelectWidget( menuConfig );\n};\n\n/**\n * Add options to the menu\n *\n * @param {Object[]} menuOptions Object defining options\n */\nOO.ui.MenuTagMultiselectWidget.prototype.addOptions = function ( menuOptions ) {\n\tvar widget = this,\n\t\titems = menuOptions.map( function ( obj ) {\n\t\t\treturn widget.createMenuOptionWidget( obj.data, obj.label, obj.icon );\n\t\t} );\n\n\tthis.menu.addItems( items );\n};\n\n/**\n * Create a menu option widget.\n *\n * @param {string} data Item data\n * @param {string} [label] Item label\n * @param {string} [icon] Symbolic icon name\n * @return {OO.ui.OptionWidget} Option widget\n */\nOO.ui.MenuTagMultiselectWidget.prototype.createMenuOptionWidget = function ( data, label, icon ) {\n\treturn new OO.ui.MenuOptionWidget( {\n\t\tdata: data,\n\t\tlabel: label || data,\n\t\ticon: icon\n\t} );\n};\n\n/**\n * Get the menu\n *\n * @return {OO.ui.MenuSelectWidget} Menu\n */\nOO.ui.MenuTagMultiselectWidget.prototype.getMenu = function () {\n\treturn this.menu;\n};\n\n/**\n * Get the allowed values list\n *\n * @return {string[]} Allowed data values\n */\nOO.ui.MenuTagMultiselectWidget.prototype.getAllowedValues = function () {\n\tvar menuDatas = [];\n\tif ( this.menu ) {\n\t\t// If the parent constructor is calling us, we're not ready yet, this.menu is not set up.\n\t\tmenuDatas = this.menu.getItems().map( function ( menuItem ) {\n\t\t\treturn menuItem.getData();\n\t\t} );\n\t}\n\treturn this.allowedValues.concat( menuDatas );\n};\n","/**\n * SelectFileWidgets allow for selecting files, using the HTML5 File API. These\n * widgets can be configured with {@link OO.ui.mixin.IconElement icons}, {@link\n * OO.ui.mixin.IndicatorElement indicators} and {@link OO.ui.mixin.TitledElement titles}.\n * Please see the [OOUI documentation on MediaWiki] [1] for more information and examples.\n *\n *     @example\n *     // A file select widget.\n *     var selectFile = new OO.ui.SelectFileWidget();\n *     $( document.body ).append( selectFile.$element );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Widgets\n *\n * @class\n * @extends OO.ui.Widget\n * @mixins OO.ui.mixin.IconElement\n * @mixins OO.ui.mixin.IndicatorElement\n * @mixins OO.ui.mixin.PendingElement\n * @mixins OO.ui.mixin.LabelElement\n * @mixins OO.ui.mixin.TitledElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string[]|null} [accept=null] MIME types to accept. null accepts all types.\n * @cfg {string} [placeholder] Text to display when no file is selected.\n * @cfg {string} [notsupported] Text to display when file support is missing in the browser.\n * @cfg {boolean} [droppable=true] Whether to accept files by drag and drop.\n * @cfg {boolean} [showDropTarget=false] Whether to show a drop target. Requires droppable to be true.\n * @cfg {number} [thumbnailSizeLimit=20] File size limit in MiB above which to not try and show a\n *  preview (for performance)\n */\nOO.ui.SelectFileWidget = function OoUiSelectFileWidget( config ) {\n\tvar dragHandler;\n\n\t// Configuration initialization\n\tconfig = $.extend( {\n\t\taccept: null,\n\t\tplaceholder: OO.ui.msg( 'ooui-selectfile-placeholder' ),\n\t\tnotsupported: OO.ui.msg( 'ooui-selectfile-not-supported' ),\n\t\tdroppable: true,\n\t\tshowDropTarget: false,\n\t\tthumbnailSizeLimit: 20\n\t}, config );\n\n\t// Parent constructor\n\tOO.ui.SelectFileWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.IconElement.call( this, config );\n\tOO.ui.mixin.IndicatorElement.call( this, config );\n\tOO.ui.mixin.PendingElement.call( this, $.extend( {}, config, { $pending: this.$info } ) );\n\tOO.ui.mixin.LabelElement.call( this, config );\n\tOO.ui.mixin.TitledElement.call( this, config );\n\n\t// Properties\n\tthis.$info = $( '<span>' );\n\tthis.showDropTarget = config.showDropTarget;\n\tthis.thumbnailSizeLimit = config.thumbnailSizeLimit;\n\tthis.isSupported = this.constructor.static.isSupported();\n\tthis.currentFile = null;\n\tif ( Array.isArray( config.accept ) ) {\n\t\tthis.accept = config.accept;\n\t} else {\n\t\tthis.accept = null;\n\t}\n\tthis.placeholder = config.placeholder;\n\tthis.notsupported = config.notsupported;\n\tthis.onFileSelectedHandler = this.onFileSelected.bind( this );\n\n\tthis.selectButton = new OO.ui.ButtonWidget( {\n\t\t$element: $( '<label>' ),\n\t\tclasses: [ 'oo-ui-selectFileWidget-selectButton' ],\n\t\tlabel: OO.ui.msg( 'ooui-selectfile-button-select' ),\n\t\tdisabled: this.disabled || !this.isSupported\n\t} );\n\n\tthis.clearButton = new OO.ui.ButtonWidget( {\n\t\tclasses: [ 'oo-ui-selectFileWidget-clearButton' ],\n\t\tframed: false,\n\t\ticon: 'close',\n\t\tdisabled: this.disabled\n\t} );\n\n\t// Events\n\tthis.selectButton.$button.on( {\n\t\tkeypress: this.onKeyPress.bind( this )\n\t} );\n\tthis.clearButton.connect( this, {\n\t\tclick: 'onClearClick'\n\t} );\n\tif ( config.droppable ) {\n\t\tdragHandler = this.onDragEnterOrOver.bind( this );\n\t\tthis.$element.on( {\n\t\t\tdragenter: dragHandler,\n\t\t\tdragover: dragHandler,\n\t\t\tdragleave: this.onDragLeave.bind( this ),\n\t\t\tdrop: this.onDrop.bind( this )\n\t\t} );\n\t}\n\n\t// Initialization\n\tthis.addInput();\n\tthis.$label.addClass( 'oo-ui-selectFileWidget-label' );\n\tthis.$info\n\t\t.addClass( 'oo-ui-selectFileWidget-info' )\n\t\t.append( this.$icon, this.$label, this.clearButton.$element, this.$indicator );\n\n\tif ( config.droppable && config.showDropTarget ) {\n\t\tthis.selectButton.setIcon( 'upload' );\n\t\tthis.$thumbnail = $( '<div>' ).addClass( 'oo-ui-selectFileWidget-thumbnail' );\n\t\tthis.setPendingElement( this.$thumbnail );\n\t\tthis.$element\n\t\t\t.addClass( 'oo-ui-selectFileWidget-dropTarget oo-ui-selectFileWidget' )\n\t\t\t.on( {\n\t\t\t\tclick: this.onDropTargetClick.bind( this )\n\t\t\t} )\n\t\t\t.append(\n\t\t\t\tthis.$thumbnail,\n\t\t\t\tthis.$info,\n\t\t\t\tthis.selectButton.$element,\n\t\t\t\t$( '<span>' )\n\t\t\t\t\t.addClass( 'oo-ui-selectFileWidget-dropLabel' )\n\t\t\t\t\t.text( OO.ui.msg( 'ooui-selectfile-dragdrop-placeholder' ) )\n\t\t\t);\n\t} else {\n\t\tthis.$element\n\t\t\t.addClass( 'oo-ui-selectFileWidget' )\n\t\t\t.append( this.$info, this.selectButton.$element );\n\t}\n\tthis.updateUI();\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.SelectFileWidget, OO.ui.Widget );\nOO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.IconElement );\nOO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.IndicatorElement );\nOO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.PendingElement );\nOO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.LabelElement );\nOO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.TitledElement );\n\n/* Static Properties */\n\n/**\n * Check if this widget is supported\n *\n * @static\n * @return {boolean}\n */\nOO.ui.SelectFileWidget.static.isSupported = function () {\n\tvar $input;\n\tif ( OO.ui.SelectFileWidget.static.isSupportedCache === null ) {\n\t\t$input = $( '<input>' ).attr( 'type', 'file' );\n\t\tOO.ui.SelectFileWidget.static.isSupportedCache = $input[ 0 ].files !== undefined;\n\t}\n\treturn OO.ui.SelectFileWidget.static.isSupportedCache;\n};\n\nOO.ui.SelectFileWidget.static.isSupportedCache = null;\n\n/* Events */\n\n/**\n * @event change\n *\n * A change event is emitted when the on/off state of the toggle changes.\n *\n * @param {File|null} value New value\n */\n\n/* Methods */\n\n/**\n * Get the current value of the field\n *\n * @return {File|null}\n */\nOO.ui.SelectFileWidget.prototype.getValue = function () {\n\treturn this.currentFile;\n};\n\n/**\n * Set the current value of the field\n *\n * @param {File|null} file File to select\n */\nOO.ui.SelectFileWidget.prototype.setValue = function ( file ) {\n\tif ( this.currentFile !== file ) {\n\t\tthis.currentFile = file;\n\t\tthis.updateUI();\n\t\tthis.emit( 'change', this.currentFile );\n\t}\n};\n\n/**\n * Focus the widget.\n *\n * Focusses the select file button.\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectFileWidget.prototype.focus = function () {\n\tthis.selectButton.focus();\n\treturn this;\n};\n\n/**\n * Blur the widget.\n *\n * @chainable\n * @return {OO.ui.Widget} The widget, for chaining\n */\nOO.ui.SelectFileWidget.prototype.blur = function () {\n\tthis.selectButton.blur();\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.SelectFileWidget.prototype.simulateLabelClick = function () {\n\tthis.focus();\n};\n\n/**\n * Update the user interface when a file is selected or unselected\n *\n * @protected\n */\nOO.ui.SelectFileWidget.prototype.updateUI = function () {\n\tvar $label;\n\tif ( !this.isSupported ) {\n\t\tthis.$element.addClass( 'oo-ui-selectFileWidget-notsupported' );\n\t\tthis.$element.removeClass( 'oo-ui-selectFileWidget-empty' );\n\t\tthis.setLabel( this.notsupported );\n\t} else {\n\t\tthis.$element.addClass( 'oo-ui-selectFileWidget-supported' );\n\t\tif ( this.currentFile ) {\n\t\t\tthis.$element.removeClass( 'oo-ui-selectFileWidget-empty' );\n\t\t\t$label = $( [] );\n\t\t\t$label = $label.add(\n\t\t\t\t$( '<span>' )\n\t\t\t\t\t.addClass( 'oo-ui-selectFileWidget-fileName' )\n\t\t\t\t\t.text( this.currentFile.name )\n\t\t\t);\n\t\t\tthis.setLabel( $label );\n\n\t\t\tif ( this.showDropTarget ) {\n\t\t\t\tthis.pushPending();\n\t\t\t\tthis.loadAndGetImageUrl().done( function ( url ) {\n\t\t\t\t\tthis.$thumbnail.css( 'background-image', 'url( ' + url + ' )' );\n\t\t\t\t}.bind( this ) ).fail( function () {\n\t\t\t\t\tthis.$thumbnail.append(\n\t\t\t\t\t\tnew OO.ui.IconWidget( {\n\t\t\t\t\t\t\ticon: 'attachment',\n\t\t\t\t\t\t\tclasses: [ 'oo-ui-selectFileWidget-noThumbnail-icon' ]\n\t\t\t\t\t\t} ).$element\n\t\t\t\t\t);\n\t\t\t\t}.bind( this ) ).always( function () {\n\t\t\t\t\tthis.popPending();\n\t\t\t\t}.bind( this ) );\n\t\t\t\tthis.$element.off( 'click' );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( this.showDropTarget ) {\n\t\t\t\tthis.$element.off( 'click' );\n\t\t\t\tthis.$element.on( {\n\t\t\t\t\tclick: this.onDropTargetClick.bind( this )\n\t\t\t\t} );\n\t\t\t\tthis.$thumbnail\n\t\t\t\t\t.empty()\n\t\t\t\t\t.css( 'background-image', '' );\n\t\t\t}\n\t\t\tthis.$element.addClass( 'oo-ui-selectFileWidget-empty' );\n\t\t\tthis.setLabel( this.placeholder );\n\t\t}\n\t}\n};\n\n/**\n * If the selected file is an image, get its URL and load it.\n *\n * @return {jQuery.Promise} Promise resolves with the image URL after it has loaded\n */\nOO.ui.SelectFileWidget.prototype.loadAndGetImageUrl = function () {\n\tvar deferred = $.Deferred(),\n\t\tfile = this.currentFile,\n\t\treader = new FileReader();\n\n\tif (\n\t\tfile &&\n\t\t( OO.getProp( file, 'type' ) || '' ).indexOf( 'image/' ) === 0 &&\n\t\tfile.size < this.thumbnailSizeLimit * 1024 * 1024\n\t) {\n\t\treader.onload = function ( event ) {\n\t\t\tvar img = document.createElement( 'img' );\n\t\t\timg.addEventListener( 'load', function () {\n\t\t\t\tif (\n\t\t\t\t\timg.naturalWidth === 0 ||\n\t\t\t\t\timg.naturalHeight === 0 ||\n\t\t\t\t\timg.complete === false\n\t\t\t\t) {\n\t\t\t\t\tdeferred.reject();\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.resolve( event.target.result );\n\t\t\t\t}\n\t\t\t} );\n\t\t\timg.src = event.target.result;\n\t\t};\n\t\treader.readAsDataURL( file );\n\t} else {\n\t\tdeferred.reject();\n\t}\n\n\treturn deferred.promise();\n};\n\n/**\n * Add the input to the widget\n *\n * @private\n */\nOO.ui.SelectFileWidget.prototype.addInput = function () {\n\tif ( this.$input ) {\n\t\tthis.$input.remove();\n\t}\n\n\tif ( !this.isSupported ) {\n\t\tthis.$input = null;\n\t\treturn;\n\t}\n\n\tthis.$input = $( '<input>' ).attr( 'type', 'file' );\n\tthis.$input.on( 'change', this.onFileSelectedHandler );\n\tthis.$input.on( 'click', function ( e ) {\n\t\t// Prevents dropTarget to get clicked which calls\n\t\t// a click on this input\n\t\te.stopPropagation();\n\t} );\n\tthis.$input.attr( {\n\t\ttabindex: -1\n\t} );\n\tif ( this.accept ) {\n\t\tthis.$input.attr( 'accept', this.accept.join( ', ' ) );\n\t}\n\tthis.selectButton.$button.append( this.$input );\n};\n\n/**\n * Determine if we should accept this file\n *\n * @private\n * @param {string} mimeType File MIME type\n * @return {boolean}\n */\nOO.ui.SelectFileWidget.prototype.isAllowedType = function ( mimeType ) {\n\tvar i, mimeTest;\n\n\tif ( !this.accept || !mimeType ) {\n\t\treturn true;\n\t}\n\n\tfor ( i = 0; i < this.accept.length; i++ ) {\n\t\tmimeTest = this.accept[ i ];\n\t\tif ( mimeTest === mimeType ) {\n\t\t\treturn true;\n\t\t} else if ( mimeTest.substr( -2 ) === '/*' ) {\n\t\t\tmimeTest = mimeTest.substr( 0, mimeTest.length - 1 );\n\t\t\tif ( mimeType.substr( 0, mimeTest.length ) === mimeTest ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false;\n};\n\n/**\n * Handle file selection from the input\n *\n * @private\n * @param {jQuery.Event} e\n */\nOO.ui.SelectFileWidget.prototype.onFileSelected = function ( e ) {\n\tvar file = OO.getProp( e.target, 'files', 0 ) || null;\n\n\tif ( file && !this.isAllowedType( file.type ) ) {\n\t\tfile = null;\n\t}\n\n\tthis.setValue( file );\n\tthis.addInput();\n};\n\n/**\n * Handle clear button click events.\n *\n * @private\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectFileWidget.prototype.onClearClick = function () {\n\tthis.setValue( null );\n\treturn false;\n};\n\n/**\n * Handle key press events.\n *\n * @private\n * @param {jQuery.Event} e Key press event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectFileWidget.prototype.onKeyPress = function ( e ) {\n\tif ( this.isSupported && !this.isDisabled() && this.$input &&\n\t\t( e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )\n\t) {\n\t\tthis.$input.click();\n\t\treturn false;\n\t}\n};\n\n/**\n * Handle drop target click events.\n *\n * @private\n * @param {jQuery.Event} e Key press event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectFileWidget.prototype.onDropTargetClick = function () {\n\tif ( this.isSupported && !this.isDisabled() && this.$input ) {\n\t\tthis.$input.click();\n\t\treturn false;\n\t}\n};\n\n/**\n * Handle drag enter and over events\n *\n * @private\n * @param {jQuery.Event} e Drag event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectFileWidget.prototype.onDragEnterOrOver = function ( e ) {\n\tvar itemOrFile,\n\t\tdroppableFile = false,\n\t\tdt = e.originalEvent.dataTransfer;\n\n\te.preventDefault();\n\te.stopPropagation();\n\n\tif ( this.isDisabled() || !this.isSupported ) {\n\t\tthis.$element.removeClass( 'oo-ui-selectFileWidget-canDrop' );\n\t\tdt.dropEffect = 'none';\n\t\treturn false;\n\t}\n\n\t// DataTransferItem and File both have a type property, but in Chrome files\n\t// have no information at this point.\n\titemOrFile = OO.getProp( dt, 'items', 0 ) || OO.getProp( dt, 'files', 0 );\n\tif ( itemOrFile ) {\n\t\tif ( this.isAllowedType( itemOrFile.type ) ) {\n\t\t\tdroppableFile = true;\n\t\t}\n\t// dt.types is Array-like, but not an Array\n\t} else if ( Array.prototype.indexOf.call( OO.getProp( dt, 'types' ) || [], 'Files' ) !== -1 ) {\n\t\t// File information is not available at this point for security so just assume\n\t\t// it is acceptable for now.\n\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=640534\n\t\tdroppableFile = true;\n\t}\n\n\tthis.$element.toggleClass( 'oo-ui-selectFileWidget-canDrop', droppableFile );\n\tif ( !droppableFile ) {\n\t\tdt.dropEffect = 'none';\n\t}\n\n\treturn false;\n};\n\n/**\n * Handle drag leave events\n *\n * @private\n * @param {jQuery.Event} e Drag event\n */\nOO.ui.SelectFileWidget.prototype.onDragLeave = function () {\n\tthis.$element.removeClass( 'oo-ui-selectFileWidget-canDrop' );\n};\n\n/**\n * Handle drop events\n *\n * @private\n * @param {jQuery.Event} e Drop event\n * @return {undefined/boolean} False to prevent default if event is handled\n */\nOO.ui.SelectFileWidget.prototype.onDrop = function ( e ) {\n\tvar file = null,\n\t\tdt = e.originalEvent.dataTransfer;\n\n\te.preventDefault();\n\te.stopPropagation();\n\tthis.$element.removeClass( 'oo-ui-selectFileWidget-canDrop' );\n\n\tif ( this.isDisabled() || !this.isSupported ) {\n\t\treturn false;\n\t}\n\n\tfile = OO.getProp( dt, 'files', 0 );\n\tif ( file && !this.isAllowedType( file.type ) ) {\n\t\tfile = null;\n\t}\n\tif ( file ) {\n\t\tthis.setValue( file );\n\t}\n\n\treturn false;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.SelectFileWidget.prototype.setDisabled = function ( disabled ) {\n\tOO.ui.SelectFileWidget.parent.prototype.setDisabled.call( this, disabled );\n\tif ( this.selectButton ) {\n\t\tthis.selectButton.setDisabled( disabled );\n\t}\n\tif ( this.clearButton ) {\n\t\tthis.clearButton.setDisabled( disabled );\n\t}\n\treturn this;\n};\n","/**\n * SearchWidgets combine a {@link OO.ui.TextInputWidget text input field}, where users can type a search query,\n * and a menu of search results, which is displayed beneath the query\n * field. Unlike {@link OO.ui.mixin.LookupElement lookup menus}, search result menus are always visible to the user.\n * Users can choose an item from the menu or type a query into the text field to search for a matching result item.\n * In general, search widgets are used inside a separate {@link OO.ui.Dialog dialog} window.\n *\n * Each time the query is changed, the search result menu is cleared and repopulated. Please see\n * the [OOUI demos][1] for an example.\n *\n * [1]: https://doc.wikimedia.org/oojs-ui/master/demos/#SearchInputWidget-type-search\n *\n * @class\n * @extends OO.ui.Widget\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string|jQuery} [placeholder] Placeholder text for query input\n * @cfg {string} [value] Initial query value\n */\nOO.ui.SearchWidget = function OoUiSearchWidget( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.SearchWidget.parent.call( this, config );\n\n\t// Properties\n\tthis.query = new OO.ui.TextInputWidget( {\n\t\ticon: 'search',\n\t\tplaceholder: config.placeholder,\n\t\tvalue: config.value\n\t} );\n\tthis.results = new OO.ui.SelectWidget();\n\tthis.$query = $( '<div>' );\n\tthis.$results = $( '<div>' );\n\n\t// Events\n\tthis.query.connect( this, {\n\t\tchange: 'onQueryChange',\n\t\tenter: 'onQueryEnter'\n\t} );\n\tthis.query.$input.on( 'keydown', this.onQueryKeydown.bind( this ) );\n\n\t// Initialization\n\tthis.$query\n\t\t.addClass( 'oo-ui-searchWidget-query' )\n\t\t.append( this.query.$element );\n\tthis.$results\n\t\t.addClass( 'oo-ui-searchWidget-results' )\n\t\t.append( this.results.$element );\n\tthis.$element\n\t\t.addClass( 'oo-ui-searchWidget' )\n\t\t.append( this.$results, this.$query );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.SearchWidget, OO.ui.Widget );\n\n/* Methods */\n\n/**\n * Handle query key down events.\n *\n * @private\n * @param {jQuery.Event} e Key down event\n */\nOO.ui.SearchWidget.prototype.onQueryKeydown = function ( e ) {\n\tvar highlightedItem, nextItem,\n\t\tdir = e.which === OO.ui.Keys.DOWN ? 1 : ( e.which === OO.ui.Keys.UP ? -1 : 0 );\n\n\tif ( dir ) {\n\t\thighlightedItem = this.results.findHighlightedItem();\n\t\tif ( !highlightedItem ) {\n\t\t\thighlightedItem = this.results.findSelectedItem();\n\t\t}\n\t\tnextItem = this.results.findRelativeSelectableItem( highlightedItem, dir );\n\t\tthis.results.highlightItem( nextItem );\n\t\tnextItem.scrollElementIntoView();\n\t}\n};\n\n/**\n * Handle select widget select events.\n *\n * Clears existing results. Subclasses should repopulate items according to new query.\n *\n * @private\n * @param {string} value New value\n */\nOO.ui.SearchWidget.prototype.onQueryChange = function () {\n\t// Reset\n\tthis.results.clearItems();\n};\n\n/**\n * Handle select widget enter key events.\n *\n * Chooses highlighted item.\n *\n * @private\n * @param {string} value New value\n */\nOO.ui.SearchWidget.prototype.onQueryEnter = function () {\n\tvar highlightedItem = this.results.findHighlightedItem();\n\tif ( highlightedItem ) {\n\t\tthis.results.chooseItem( highlightedItem );\n\t}\n};\n\n/**\n * Get the query input.\n *\n * @return {OO.ui.TextInputWidget} Query input\n */\nOO.ui.SearchWidget.prototype.getQuery = function () {\n\treturn this.query;\n};\n\n/**\n * Get the search results menu.\n *\n * @return {OO.ui.SelectWidget} Menu of search results\n */\nOO.ui.SearchWidget.prototype.getResults = function () {\n\treturn this.results;\n};\n","}( OO ) );\n"]}
\ No newline at end of file
index e1d797f..5423e6b 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOUI v0.30.0
+ * OOUI v0.30.1
  * https://www.mediawiki.org/wiki/OOUI
  *
- * Copyright 2011–2018 OOUI Team and other contributors.
+ * Copyright 2011–2019 OOUI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2018-12-20T06:10:28Z
+ * Date: 2019-01-10T07:00:09Z
  */
 ( function ( OO ) {
 
index e5bec0b..bbe994b 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOUI v0.30.0
+ * OOUI v0.30.1
  * https://www.mediawiki.org/wiki/OOUI
  *
- * Copyright 2011–2018 OOUI Team and other contributors.
+ * Copyright 2011–2019 OOUI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2018-12-20T06:10:36Z
+ * Date: 2019-01-10T07:00:17Z
  */
 .oo-ui-actionWidget.oo-ui-pendingElement-pending {
   background-image: /* @embed */ url(themes/wikimediaui/images/textures/pending.gif);
index f01e4fe..f799987 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOUI v0.30.0
+ * OOUI v0.30.1
  * https://www.mediawiki.org/wiki/OOUI
  *
- * Copyright 2011–2018 OOUI Team and other contributors.
+ * Copyright 2011–2019 OOUI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2018-12-20T06:10:36Z
+ * Date: 2019-01-10T07:00:17Z
  */
 
 .oo-ui-window {
index df057a6..fc59451 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOUI v0.30.0
+ * OOUI v0.30.1
  * https://www.mediawiki.org/wiki/OOUI
  *
- * Copyright 2011–2018 OOUI Team and other contributors.
+ * Copyright 2011–2019 OOUI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2018-12-20T06:10:28Z
+ * Date: 2019-01-10T07:00:09Z
  */
 ( function ( OO ) {
 
@@ -159,7 +159,7 @@ OO.ui.ActionWidget.prototype.getModes = function () {
  *         return this.panel1.$element.outerHeight( true );
  *     };
  *     var windowManager = new OO.ui.WindowManager();
- *     $( 'body' ).append( windowManager.$element );
+ *     $( document.body ).append( windowManager.$element );
  *     var dialog = new MyProcessDialog( {
  *         size: 'medium'
  *     } );
@@ -1536,7 +1536,7 @@ OO.ui.WindowManager.prototype.closeWindow = function ( win, data ) {
  * Example:
  *
  *     var windowManager = new OO.ui.WindowManager();
- *     $( 'body' ).append( windowManager.$element );
+ *     $( document.body ).append( windowManager.$element );
  *
  *     // Add a window under the default name: see OO.ui.MessageDialog.static.name
  *     windowManager.addWindows( [ new OO.ui.MessageDialog() ] );
@@ -1726,7 +1726,7 @@ OO.ui.WindowManager.prototype.toggleAriaIsolation = function ( isolate ) {
                        this.$element.removeAttr( 'aria-hidden' );
 
                        // Hide everything other than the window manager from screen readers
-                       this.$ariaHidden = $( 'body' )
+                       this.$ariaHidden = $( document.body )
                                .children()
                                .not( 'script' )
                                .not( $topLevelElement )
@@ -2421,6 +2421,7 @@ OO.ui.Window.prototype.hold = function ( data ) {
 
                // Blur the focused element
                if ( $focus.length ) {
+                       // eslint-disable-next-line jquery/no-event-shorthand
                        $focus[ 0 ].blur();
                }
 
@@ -2479,7 +2480,7 @@ OO.ui.Window.prototype.teardown = function ( data ) {
  *     } );
  *     // Create and append a window manager, which opens and closes the window.
  *     var windowManager = new OO.ui.WindowManager();
- *     $( 'body' ).append( windowManager.$element );
+ *     $( document.body ).append( windowManager.$element );
  *     windowManager.addWindows( [ myDialog ] );
  *     // Open the window!
  *     windowManager.openWindow( myDialog );
@@ -2822,7 +2823,7 @@ OO.ui.Dialog.prototype.executeAction = function ( action ) {
  *
  *     // Create and append a window manager.
  *     var windowManager = new OO.ui.WindowManager();
- *     $( 'body' ).append( windowManager.$element );
+ *     $( document.body ).append( windowManager.$element );
  *     windowManager.addWindows( [ messageDialog ] );
  *     // Open the window.
  *     windowManager.openWindow( messageDialog, {
@@ -3177,7 +3178,7 @@ OO.ui.MessageDialog.prototype.fitActions = function () {
  *     };
  *
  *     var windowManager = new OO.ui.WindowManager();
- *     $( 'body' ).append( windowManager.$element );
+ *     $( document.body ).append( windowManager.$element );
  *
  *     var dialog = new MyProcessDialog();
  *     windowManager.addWindows( [ dialog ] );
@@ -3506,7 +3507,7 @@ OO.ui.ProcessDialog.prototype.getTeardownProcess = function ( data ) {
 OO.ui.getWindowManager = function () {
        if ( !OO.ui.windowManager ) {
                OO.ui.windowManager = new OO.ui.WindowManager();
-               $( 'body' ).append( OO.ui.windowManager.$element );
+               $( document.body ).append( OO.ui.windowManager.$element );
                OO.ui.windowManager.addWindows( [ new OO.ui.MessageDialog() ] );
        }
        return OO.ui.windowManager;
index ed3c8fa..9a0378f 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["../src/intro.js.txt","../src/widgets/ActionWidget.js","../src/ActionSet.js","../src/Error.js","../src/Process.js","../src/WindowInstance.js","../src/WindowManager.js","../src/Window.js","../src/Dialog.js","../src/dialogs/MessageDialog.js","../src/dialogs/ProcessDialog.js","../src/windows.js","../src/outro.js.txt"],"names":[],"mappings":"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","file":"oojs-ui-windows.js","sourcesContent":["( function ( OO ) {\n\n'use strict';\n","/**\n * An ActionWidget is a {@link OO.ui.ButtonWidget button widget} that executes an action.\n * Action widgets are used with OO.ui.ActionSet, which manages the behavior and availability\n * of the actions.\n *\n * Both actions and action sets are primarily used with {@link OO.ui.Dialog Dialogs}.\n * Please see the [OOUI documentation on MediaWiki] [1] for more information\n * and examples.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs#Action_sets\n *\n * @class\n * @extends OO.ui.ButtonWidget\n * @mixins OO.ui.mixin.PendingElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string} [action] Symbolic name of the action (e.g., ‘continue’ or ‘cancel’).\n * @cfg {string[]} [modes] Symbolic names of the modes (e.g., ‘edit’ or ‘read’) in which the action\n *  should be made available. See the action set's {@link OO.ui.ActionSet#setMode setMode} method\n *  for more information about setting modes.\n * @cfg {boolean} [framed=false] Render the action button with a frame\n */\nOO.ui.ActionWidget = function OoUiActionWidget( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( { framed: false }, config );\n\n\t// Parent constructor\n\tOO.ui.ActionWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.PendingElement.call( this, config );\n\n\t// Properties\n\tthis.action = config.action || '';\n\tthis.modes = config.modes || [];\n\tthis.width = 0;\n\tthis.height = 0;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-actionWidget' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ActionWidget, OO.ui.ButtonWidget );\nOO.mixinClass( OO.ui.ActionWidget, OO.ui.mixin.PendingElement );\n\n/* Methods */\n\n/**\n * Check if the action is configured to be available in the specified `mode`.\n *\n * @param {string} mode Name of mode\n * @return {boolean} The action is configured with the mode\n */\nOO.ui.ActionWidget.prototype.hasMode = function ( mode ) {\n\treturn this.modes.indexOf( mode ) !== -1;\n};\n\n/**\n * Get the symbolic name of the action (e.g., ‘continue’ or ‘cancel’).\n *\n * @return {string}\n */\nOO.ui.ActionWidget.prototype.getAction = function () {\n\treturn this.action;\n};\n\n/**\n * Get the symbolic name of the mode or modes for which the action is configured to be available.\n *\n * The current mode is set with the action set's {@link OO.ui.ActionSet#setMode setMode} method.\n * Only actions that are configured to be available in the current mode will be visible. All other actions\n * are hidden.\n *\n * @return {string[]}\n */\nOO.ui.ActionWidget.prototype.getModes = function () {\n\treturn this.modes.slice();\n};\n","/* eslint-disable no-unused-vars */\n/**\n * ActionSets manage the behavior of the {@link OO.ui.ActionWidget action widgets} that comprise them.\n * Actions can be made available for specific contexts (modes) and circumstances\n * (abilities). Action sets are primarily used with {@link OO.ui.Dialog Dialogs}.\n *\n * ActionSets contain two types of actions:\n *\n * - 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.\n * - Other: Other actions include all non-special visible actions.\n *\n * See the [OOUI documentation on MediaWiki][1] for more information.\n *\n *     @example\n *     // Example: An action set used in a process dialog\n *     function MyProcessDialog( config ) {\n *         MyProcessDialog.parent.call( this, config );\n *     }\n *     OO.inheritClass( MyProcessDialog, OO.ui.ProcessDialog );\n *     MyProcessDialog.static.title = 'An action set in a process dialog';\n *     MyProcessDialog.static.name = 'myProcessDialog';\n *     // An action set that uses modes ('edit' and 'help' mode, in this example).\n *     MyProcessDialog.static.actions = [\n *         { action: 'continue', modes: 'edit', label: 'Continue', flags: [ 'primary', 'progressive' ] },\n *         { action: 'help', modes: 'edit', label: 'Help' },\n *         { modes: 'edit', label: 'Cancel', flags: 'safe' },\n *         { action: 'back', modes: 'help', label: 'Back', flags: 'safe' }\n *     ];\n *\n *     MyProcessDialog.prototype.initialize = function () {\n *         MyProcessDialog.parent.prototype.initialize.apply( this, arguments );\n *         this.panel1 = new OO.ui.PanelLayout( { padded: true, expanded: false } );\n *         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>' );\n *         this.panel2 = new OO.ui.PanelLayout( { padded: true, expanded: false } );\n *         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>' );\n *         this.stackLayout = new OO.ui.StackLayout( {\n *             items: [ this.panel1, this.panel2 ]\n *         } );\n *         this.$body.append( this.stackLayout.$element );\n *     };\n *     MyProcessDialog.prototype.getSetupProcess = function ( data ) {\n *         return MyProcessDialog.parent.prototype.getSetupProcess.call( this, data )\n *             .next( function () {\n *                 this.actions.setMode( 'edit' );\n *             }, this );\n *     };\n *     MyProcessDialog.prototype.getActionProcess = function ( action ) {\n *         if ( action === 'help' ) {\n *             this.actions.setMode( 'help' );\n *             this.stackLayout.setItem( this.panel2 );\n *         } else if ( action === 'back' ) {\n *             this.actions.setMode( 'edit' );\n *             this.stackLayout.setItem( this.panel1 );\n *         } else if ( action === 'continue' ) {\n *             var dialog = this;\n *             return new OO.ui.Process( function () {\n *                 dialog.close();\n *             } );\n *         }\n *         return MyProcessDialog.parent.prototype.getActionProcess.call( this, action );\n *     };\n *     MyProcessDialog.prototype.getBodyHeight = function () {\n *         return this.panel1.$element.outerHeight( true );\n *     };\n *     var windowManager = new OO.ui.WindowManager();\n *     $( 'body' ).append( windowManager.$element );\n *     var dialog = new MyProcessDialog( {\n *         size: 'medium'\n *     } );\n *     windowManager.addWindows( [ dialog ] );\n *     windowManager.openWindow( dialog );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs#Action_sets\n *\n * @abstract\n * @class\n * @mixins OO.EventEmitter\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.ActionSet = function OoUiActionSet( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Mixin constructors\n\tOO.EventEmitter.call( this );\n\n\t// Properties\n\tthis.list = [];\n\tthis.categories = {\n\t\tactions: 'getAction',\n\t\tflags: 'getFlags',\n\t\tmodes: 'getModes'\n\t};\n\tthis.categorized = {};\n\tthis.special = {};\n\tthis.others = [];\n\tthis.organized = false;\n\tthis.changing = false;\n\tthis.changed = false;\n};\n/* eslint-enable no-unused-vars */\n\n/* Setup */\n\nOO.mixinClass( OO.ui.ActionSet, OO.EventEmitter );\n\n/* Static Properties */\n\n/**\n * Symbolic name of the flags used to identify special actions. Special actions are displayed in the\n *  header of a {@link OO.ui.ProcessDialog process dialog}.\n *  See the [OOUI documentation on MediaWiki][2] for more information and examples.\n *\n *  [2]:https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs\n *\n * @abstract\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.ActionSet.static.specialFlags = [ 'safe', 'primary' ];\n\n/* Events */\n\n/**\n * @event click\n *\n * A 'click' event is emitted when an action is clicked.\n *\n * @param {OO.ui.ActionWidget} action Action that was clicked\n */\n\n/**\n * @event add\n *\n * An 'add' event is emitted when actions are {@link #method-add added} to the action set.\n *\n * @param {OO.ui.ActionWidget[]} added Actions added\n */\n\n/**\n * @event remove\n *\n * A 'remove' event is emitted when actions are {@link #method-remove removed}\n *  or {@link #clear cleared}.\n *\n * @param {OO.ui.ActionWidget[]} added Actions removed\n */\n\n/**\n * @event change\n *\n * A 'change' event is emitted when actions are {@link #method-add added}, {@link #clear cleared},\n * or {@link #method-remove removed} from the action set or when the {@link #setMode mode} is changed.\n *\n */\n\n/* Methods */\n\n/**\n * Handle action change events.\n *\n * @private\n * @fires change\n */\nOO.ui.ActionSet.prototype.onActionChange = function () {\n\tthis.organized = false;\n\tif ( this.changing ) {\n\t\tthis.changed = true;\n\t} else {\n\t\tthis.emit( 'change' );\n\t}\n};\n\n/**\n * Check if an action is one of the special actions.\n *\n * @param {OO.ui.ActionWidget} action Action to check\n * @return {boolean} Action is special\n */\nOO.ui.ActionSet.prototype.isSpecial = function ( action ) {\n\tvar flag;\n\n\tfor ( flag in this.special ) {\n\t\tif ( action === this.special[ flag ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n};\n\n/**\n * Get action widgets based on the specified filter: ‘actions’, ‘flags’, ‘modes’, ‘visible’,\n *  or ‘disabled’.\n *\n * @param {Object} [filters] Filters to use, omit to get all actions\n * @param {string|string[]} [filters.actions] Actions that action widgets must have\n * @param {string|string[]} [filters.flags] Flags that action widgets must have (e.g., 'safe')\n * @param {string|string[]} [filters.modes] Modes that action widgets must have\n * @param {boolean} [filters.visible] Action widgets must be visible\n * @param {boolean} [filters.disabled] Action widgets must be disabled\n * @return {OO.ui.ActionWidget[]} Action widgets matching all criteria\n */\nOO.ui.ActionSet.prototype.get = function ( filters ) {\n\tvar i, len, list, category, actions, index, match, matches;\n\n\tif ( filters ) {\n\t\tthis.organize();\n\n\t\t// Collect category candidates\n\t\tmatches = [];\n\t\tfor ( category in this.categorized ) {\n\t\t\tlist = filters[ category ];\n\t\t\tif ( list ) {\n\t\t\t\tif ( !Array.isArray( list ) ) {\n\t\t\t\t\tlist = [ list ];\n\t\t\t\t}\n\t\t\t\tfor ( i = 0, len = list.length; i < len; i++ ) {\n\t\t\t\t\tactions = this.categorized[ category ][ list[ i ] ];\n\t\t\t\t\tif ( Array.isArray( actions ) ) {\n\t\t\t\t\t\tmatches.push.apply( matches, actions );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Remove by boolean filters\n\t\tfor ( i = 0, len = matches.length; i < len; i++ ) {\n\t\t\tmatch = matches[ i ];\n\t\t\tif (\n\t\t\t\t( filters.visible !== undefined && match.isVisible() !== filters.visible ) ||\n\t\t\t\t( filters.disabled !== undefined && match.isDisabled() !== filters.disabled )\n\t\t\t) {\n\t\t\t\tmatches.splice( i, 1 );\n\t\t\t\tlen--;\n\t\t\t\ti--;\n\t\t\t}\n\t\t}\n\t\t// Remove duplicates\n\t\tfor ( i = 0, len = matches.length; i < len; i++ ) {\n\t\t\tmatch = matches[ i ];\n\t\t\tindex = matches.lastIndexOf( match );\n\t\t\twhile ( index !== i ) {\n\t\t\t\tmatches.splice( index, 1 );\n\t\t\t\tlen--;\n\t\t\t\tindex = matches.lastIndexOf( match );\n\t\t\t}\n\t\t}\n\t\treturn matches;\n\t}\n\treturn this.list.slice();\n};\n\n/**\n * Get 'special' actions.\n *\n * Special actions are the first visible action widgets with special flags, such as 'safe' and 'primary'.\n * Special flags can be configured in subclasses by changing the static #specialFlags property.\n *\n * @return {OO.ui.ActionWidget[]|null} 'Special' action widgets.\n */\nOO.ui.ActionSet.prototype.getSpecial = function () {\n\tthis.organize();\n\treturn $.extend( {}, this.special );\n};\n\n/**\n * Get 'other' actions.\n *\n * Other actions include all non-special visible action widgets.\n *\n * @return {OO.ui.ActionWidget[]} 'Other' action widgets\n */\nOO.ui.ActionSet.prototype.getOthers = function () {\n\tthis.organize();\n\treturn this.others.slice();\n};\n\n/**\n * Set the mode  (e.g., ‘edit’ or ‘view’). Only {@link OO.ui.ActionWidget#modes actions} configured\n * to be available in the specified mode will be made visible. All other actions will be hidden.\n *\n * @param {string} mode The mode. Only actions configured to be available in the specified\n *  mode will be made visible.\n * @chainable\n * @return {OO.ui.ActionSet} The widget, for chaining\n * @fires toggle\n * @fires change\n */\nOO.ui.ActionSet.prototype.setMode = function ( mode ) {\n\tvar i, len, action;\n\n\tthis.changing = true;\n\tfor ( i = 0, len = this.list.length; i < len; i++ ) {\n\t\taction = this.list[ i ];\n\t\taction.toggle( action.hasMode( mode ) );\n\t}\n\n\tthis.organized = false;\n\tthis.changing = false;\n\tthis.emit( 'change' );\n\n\treturn this;\n};\n\n/**\n * Set the abilities of the specified actions.\n *\n * Action widgets that are configured with the specified actions will be enabled\n * or disabled based on the boolean values specified in the `actions`\n * parameter.\n *\n * @param {Object.<string,boolean>} actions A list keyed by action name with boolean\n *  values that indicate whether or not the action should be enabled.\n * @chainable\n * @return {OO.ui.ActionSet} The widget, for chaining\n */\nOO.ui.ActionSet.prototype.setAbilities = function ( actions ) {\n\tvar i, len, action, item;\n\n\tfor ( i = 0, len = this.list.length; i < len; i++ ) {\n\t\titem = this.list[ i ];\n\t\taction = item.getAction();\n\t\tif ( actions[ action ] !== undefined ) {\n\t\t\titem.setDisabled( !actions[ action ] );\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Executes a function once per action.\n *\n * When making changes to multiple actions, use this method instead of iterating over the actions\n * manually to defer emitting a #change event until after all actions have been changed.\n *\n * @param {Object|null} filter Filters to use to determine which actions to iterate over; see #get\n * @param {Function} callback Callback to run for each action; callback is invoked with three\n *   arguments: the action, the action's index, the list of actions being iterated over\n * @chainable\n * @return {OO.ui.ActionSet} The widget, for chaining\n */\nOO.ui.ActionSet.prototype.forEach = function ( filter, callback ) {\n\tthis.changed = false;\n\tthis.changing = true;\n\tthis.get( filter ).forEach( callback );\n\tthis.changing = false;\n\tif ( this.changed ) {\n\t\tthis.emit( 'change' );\n\t}\n\n\treturn this;\n};\n\n/**\n * Add action widgets to the action set.\n *\n * @param {OO.ui.ActionWidget[]} actions Action widgets to add\n * @chainable\n * @return {OO.ui.ActionSet} The widget, for chaining\n * @fires add\n * @fires change\n */\nOO.ui.ActionSet.prototype.add = function ( actions ) {\n\tvar i, len, action;\n\n\tthis.changing = true;\n\tfor ( i = 0, len = actions.length; i < len; i++ ) {\n\t\taction = actions[ i ];\n\t\taction.connect( this, {\n\t\t\tclick: [ 'emit', 'click', action ],\n\t\t\ttoggle: [ 'onActionChange' ]\n\t\t} );\n\t\tthis.list.push( action );\n\t}\n\tthis.organized = false;\n\tthis.emit( 'add', actions );\n\tthis.changing = false;\n\tthis.emit( 'change' );\n\n\treturn this;\n};\n\n/**\n * Remove action widgets from the set.\n *\n * To remove all actions, you may wish to use the #clear method instead.\n *\n * @param {OO.ui.ActionWidget[]} actions Action widgets to remove\n * @chainable\n * @return {OO.ui.ActionSet} The widget, for chaining\n * @fires remove\n * @fires change\n */\nOO.ui.ActionSet.prototype.remove = function ( actions ) {\n\tvar i, len, index, action;\n\n\tthis.changing = true;\n\tfor ( i = 0, len = actions.length; i < len; i++ ) {\n\t\taction = actions[ i ];\n\t\tindex = this.list.indexOf( action );\n\t\tif ( index !== -1 ) {\n\t\t\taction.disconnect( this );\n\t\t\tthis.list.splice( index, 1 );\n\t\t}\n\t}\n\tthis.organized = false;\n\tthis.emit( 'remove', actions );\n\tthis.changing = false;\n\tthis.emit( 'change' );\n\n\treturn this;\n};\n\n/**\n * Remove all action widgets from the set.\n *\n * To remove only specified actions, use the {@link #method-remove remove} method instead.\n *\n * @chainable\n * @return {OO.ui.ActionSet} The widget, for chaining\n * @fires remove\n * @fires change\n */\nOO.ui.ActionSet.prototype.clear = function () {\n\tvar i, len, action,\n\t\tremoved = this.list.slice();\n\n\tthis.changing = true;\n\tfor ( i = 0, len = this.list.length; i < len; i++ ) {\n\t\taction = this.list[ i ];\n\t\taction.disconnect( this );\n\t}\n\n\tthis.list = [];\n\n\tthis.organized = false;\n\tthis.emit( 'remove', removed );\n\tthis.changing = false;\n\tthis.emit( 'change' );\n\n\treturn this;\n};\n\n/**\n * Organize actions.\n *\n * This is called whenever organized information is requested. It will only reorganize the actions\n * if something has changed since the last time it ran.\n *\n * @private\n * @chainable\n * @return {OO.ui.ActionSet} The widget, for chaining\n */\nOO.ui.ActionSet.prototype.organize = function () {\n\tvar i, iLen, j, jLen, flag, action, category, list, item, special,\n\t\tspecialFlags = this.constructor.static.specialFlags;\n\n\tif ( !this.organized ) {\n\t\tthis.categorized = {};\n\t\tthis.special = {};\n\t\tthis.others = [];\n\t\tfor ( i = 0, iLen = this.list.length; i < iLen; i++ ) {\n\t\t\taction = this.list[ i ];\n\t\t\tif ( action.isVisible() ) {\n\t\t\t\t// Populate categories\n\t\t\t\tfor ( category in this.categories ) {\n\t\t\t\t\tif ( !this.categorized[ category ] ) {\n\t\t\t\t\t\tthis.categorized[ category ] = {};\n\t\t\t\t\t}\n\t\t\t\t\tlist = action[ this.categories[ category ] ]();\n\t\t\t\t\tif ( !Array.isArray( list ) ) {\n\t\t\t\t\t\tlist = [ list ];\n\t\t\t\t\t}\n\t\t\t\t\tfor ( j = 0, jLen = list.length; j < jLen; j++ ) {\n\t\t\t\t\t\titem = list[ j ];\n\t\t\t\t\t\tif ( !this.categorized[ category ][ item ] ) {\n\t\t\t\t\t\t\tthis.categorized[ category ][ item ] = [];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.categorized[ category ][ item ].push( action );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Populate special/others\n\t\t\t\tspecial = false;\n\t\t\t\tfor ( j = 0, jLen = specialFlags.length; j < jLen; j++ ) {\n\t\t\t\t\tflag = specialFlags[ j ];\n\t\t\t\t\tif ( !this.special[ flag ] && action.hasFlag( flag ) ) {\n\t\t\t\t\t\tthis.special[ flag ] = action;\n\t\t\t\t\t\tspecial = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif ( !special ) {\n\t\t\t\t\tthis.others.push( action );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.organized = true;\n\t}\n\n\treturn this;\n};\n","/**\n * Errors contain a required message (either a string or jQuery selection) that is used to describe what went wrong\n * in a {@link OO.ui.Process process}. The error's #recoverable and #warning configurations are used to customize the\n * appearance and functionality of the error interface.\n *\n * The basic error interface contains a formatted error message as well as two buttons: 'Dismiss' and 'Try again' (i.e., the error\n * is 'recoverable' by default). If the error is not recoverable, the 'Try again' button will not be rendered and the widget\n * that initiated the failed process will be disabled.\n *\n * If the error is a warning, the error interface will include a 'Dismiss' and a 'Continue' button, which will try the\n * process again.\n *\n * For an example of error interfaces, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs#Processes_and_errors\n *\n * @class\n *\n * @constructor\n * @param {string|jQuery} message Description of error\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [recoverable=true] Error is recoverable.\n *  By default, errors are recoverable, and users can try the process again.\n * @cfg {boolean} [warning=false] Error is a warning.\n *  If the error is a warning, the error interface will include a\n *  'Dismiss' and a 'Continue' button. It is the responsibility of the developer to ensure that the warning\n *  is not triggered a second time if the user chooses to continue.\n */\nOO.ui.Error = function OoUiError( message, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( message ) && config === undefined ) {\n\t\tconfig = message;\n\t\tmessage = config.message;\n\t}\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.message = message instanceof $ ? message : String( message );\n\tthis.recoverable = config.recoverable === undefined || !!config.recoverable;\n\tthis.warning = !!config.warning;\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.Error );\n\n/* Methods */\n\n/**\n * Check if the error is recoverable.\n *\n * If the error is recoverable, users are able to try the process again.\n *\n * @return {boolean} Error is recoverable\n */\nOO.ui.Error.prototype.isRecoverable = function () {\n\treturn this.recoverable;\n};\n\n/**\n * Check if the error is a warning.\n *\n * If the error is a warning, the error interface will include a 'Dismiss' and a 'Continue' button.\n *\n * @return {boolean} Error is warning\n */\nOO.ui.Error.prototype.isWarning = function () {\n\treturn this.warning;\n};\n\n/**\n * Get error message as DOM nodes.\n *\n * @return {jQuery} Error message in DOM nodes\n */\nOO.ui.Error.prototype.getMessage = function () {\n\treturn this.message instanceof $ ?\n\t\tthis.message.clone() :\n\t\t$( '<div>' ).text( this.message ).contents();\n};\n\n/**\n * Get the error message text.\n *\n * @return {string} Error message\n */\nOO.ui.Error.prototype.getMessageText = function () {\n\treturn this.message instanceof $ ? this.message.text() : this.message;\n};\n","/**\n * A Process is a list of steps that are called in sequence. The step can be a number, a jQuery promise,\n * or a function:\n *\n * - **number**: the process will wait for the specified number of milliseconds before proceeding.\n * - **promise**: the process will continue to the next step when the promise is successfully resolved\n *  or stop if the promise is rejected.\n * - **function**: the process will execute the function. The process will stop if the function returns\n *  either a boolean `false` or a promise that is rejected; if the function returns a number, the process\n *  will wait for that number of milliseconds before proceeding.\n *\n * If the process fails, an {@link OO.ui.Error error} is generated. Depending on how the error is\n * configured, users can dismiss the error and try the process again, or not. If a process is stopped,\n * its remaining steps will not be performed.\n *\n * @class\n *\n * @constructor\n * @param {number|jQuery.Promise|Function} step Number of milliseconds to wait before proceeding, promise\n *  that must be resolved before proceeding, or a function to execute. See #createStep for more information. see #createStep for more information\n * @param {Object} [context=null] Execution context of the function. The context is ignored if the step is\n *  a number or promise.\n */\nOO.ui.Process = function ( step, context ) {\n\t// Properties\n\tthis.steps = [];\n\n\t// Initialization\n\tif ( step !== undefined ) {\n\t\tthis.next( step, context );\n\t}\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.Process );\n\n/* Methods */\n\n/**\n * Start the process.\n *\n * @return {jQuery.Promise} Promise that is resolved when all steps have successfully completed.\n *  If any of the steps return a promise that is rejected or a boolean false, this promise is rejected\n *  and any remaining steps are not performed.\n */\nOO.ui.Process.prototype.execute = function () {\n\tvar i, len, promise;\n\n\t/**\n\t * Continue execution.\n\t *\n\t * @ignore\n\t * @param {Array} step A function and the context it should be called in\n\t * @return {Function} Function that continues the process\n\t */\n\tfunction proceed( step ) {\n\t\treturn function () {\n\t\t\t// Execute step in the correct context\n\t\t\tvar deferred,\n\t\t\t\tresult = step.callback.call( step.context );\n\n\t\t\tif ( result === false ) {\n\t\t\t\t// Use rejected promise for boolean false results\n\t\t\t\treturn $.Deferred().reject( [] ).promise();\n\t\t\t}\n\t\t\tif ( typeof result === 'number' ) {\n\t\t\t\tif ( result < 0 ) {\n\t\t\t\t\tthrow new Error( 'Cannot go back in time: flux capacitor is out of service' );\n\t\t\t\t}\n\t\t\t\t// Use a delayed promise for numbers, expecting them to be in milliseconds\n\t\t\t\tdeferred = $.Deferred();\n\t\t\t\tsetTimeout( deferred.resolve, result );\n\t\t\t\treturn deferred.promise();\n\t\t\t}\n\t\t\tif ( result instanceof OO.ui.Error ) {\n\t\t\t\t// Use rejected promise for error\n\t\t\t\treturn $.Deferred().reject( [ result ] ).promise();\n\t\t\t}\n\t\t\tif ( Array.isArray( result ) && result.length && result[ 0 ] instanceof OO.ui.Error ) {\n\t\t\t\t// Use rejected promise for list of errors\n\t\t\t\treturn $.Deferred().reject( result ).promise();\n\t\t\t}\n\t\t\t// Duck-type the object to see if it can produce a promise\n\t\t\tif ( result && typeof result.promise === 'function' ) {\n\t\t\t\t// Use a promise generated from the result\n\t\t\t\treturn result.promise();\n\t\t\t}\n\t\t\t// Use resolved promise for other results\n\t\t\treturn $.Deferred().resolve().promise();\n\t\t};\n\t}\n\n\tif ( this.steps.length ) {\n\t\t// Generate a chain reaction of promises\n\t\tpromise = proceed( this.steps[ 0 ] )();\n\t\tfor ( i = 1, len = this.steps.length; i < len; i++ ) {\n\t\t\tpromise = promise.then( proceed( this.steps[ i ] ) );\n\t\t}\n\t} else {\n\t\tpromise = $.Deferred().resolve().promise();\n\t}\n\n\treturn promise;\n};\n\n/**\n * Create a process step.\n *\n * @private\n * @param {number|jQuery.Promise|Function} step\n *\n * - Number of milliseconds to wait before proceeding\n * - Promise that must be resolved before proceeding\n * - Function to execute\n *   - If the function returns a boolean false the process will stop\n *   - If the function returns a promise, the process will continue to the next\n *     step when the promise is resolved or stop if the promise is rejected\n *   - If the function returns a number, the process will wait for that number of\n *     milliseconds before proceeding\n * @param {Object} [context=null] Execution context of the function. The context is\n *  ignored if the step is a number or promise.\n * @return {Object} Step object, with `callback` and `context` properties\n */\nOO.ui.Process.prototype.createStep = function ( step, context ) {\n\tif ( typeof step === 'number' || typeof step.promise === 'function' ) {\n\t\treturn {\n\t\t\tcallback: function () {\n\t\t\t\treturn step;\n\t\t\t},\n\t\t\tcontext: null\n\t\t};\n\t}\n\tif ( typeof step === 'function' ) {\n\t\treturn {\n\t\t\tcallback: step,\n\t\t\tcontext: context\n\t\t};\n\t}\n\tthrow new Error( 'Cannot create process step: number, promise or function expected' );\n};\n\n/**\n * Add step to the beginning of the process.\n *\n * @inheritdoc #createStep\n * @return {OO.ui.Process} this\n * @chainable\n */\nOO.ui.Process.prototype.first = function ( step, context ) {\n\tthis.steps.unshift( this.createStep( step, context ) );\n\treturn this;\n};\n\n/**\n * Add step to the end of the process.\n *\n * @inheritdoc #createStep\n * @return {OO.ui.Process} this\n * @chainable\n */\nOO.ui.Process.prototype.next = function ( step, context ) {\n\tthis.steps.push( this.createStep( step, context ) );\n\treturn this;\n};\n","/**\n * A window instance represents the life cycle for one single opening of a window\n * until its closing.\n *\n * While OO.ui.WindowManager will reuse OO.ui.Window objects, each time a window is\n * opened, a new lifecycle starts.\n *\n * For more information, please see the [OOUI documentation on MediaWiki] [1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows\n *\n * @class\n *\n * @constructor\n */\nOO.ui.WindowInstance = function OoUiWindowInstance() {\n\tvar deferreds = {\n\t\topening: $.Deferred(),\n\t\topened: $.Deferred(),\n\t\tclosing: $.Deferred(),\n\t\tclosed: $.Deferred()\n\t};\n\n\t/**\n\t * @private\n\t * @property {Object}\n\t */\n\tthis.deferreds = deferreds;\n\n\t// Set these up as chained promises so that rejecting of\n\t// an earlier stage automatically rejects the subsequent\n\t// would-be stages as well.\n\n\t/**\n\t * @property {jQuery.Promise}\n\t */\n\tthis.opening = deferreds.opening.promise();\n\t/**\n\t * @property {jQuery.Promise}\n\t */\n\tthis.opened = this.opening.then( function () {\n\t\treturn deferreds.opened;\n\t} );\n\t/**\n\t * @property {jQuery.Promise}\n\t */\n\tthis.closing = this.opened.then( function () {\n\t\treturn deferreds.closing;\n\t} );\n\t/**\n\t * @property {jQuery.Promise}\n\t */\n\tthis.closed = this.closing.then( function () {\n\t\treturn deferreds.closed;\n\t} );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.WindowInstance );\n\n/**\n * Check if window is opening.\n *\n * @return {boolean} Window is opening\n */\nOO.ui.WindowInstance.prototype.isOpening = function () {\n\treturn this.deferreds.opened.state() === 'pending';\n};\n\n/**\n * Check if window is opened.\n *\n * @return {boolean} Window is opened\n */\nOO.ui.WindowInstance.prototype.isOpened = function () {\n\treturn this.deferreds.opened.state() === 'resolved' &&\n\t\tthis.deferreds.closing.state() === 'pending';\n};\n\n/**\n * Check if window is closing.\n *\n * @return {boolean} Window is closing\n */\nOO.ui.WindowInstance.prototype.isClosing = function () {\n\treturn this.deferreds.closing.state() === 'resolved' &&\n\t\tthis.deferreds.closed.state() === 'pending';\n};\n\n/**\n * Check if window is closed.\n *\n * @return {boolean} Window is closed\n */\nOO.ui.WindowInstance.prototype.isClosed = function () {\n\treturn this.deferreds.closed.state() === 'resolved';\n};\n","/**\n * Window managers are used to open and close {@link OO.ui.Window windows} and control their presentation.\n * Managed windows are mutually exclusive. If a new window is opened while a current window is opening\n * or is opened, the current window will be closed and any ongoing {@link OO.ui.Process process} will be cancelled. Windows\n * themselves are persistent and—rather than being torn down when closed—can be repopulated with the\n * pertinent data and reused.\n *\n * Over the lifecycle of a window, the window manager makes available three promises: `opening`,\n * `opened`, and `closing`, which represent the primary stages of the cycle:\n *\n * **Opening**: the opening stage begins when the window manager’s #openWindow or a window’s\n * {@link OO.ui.Window#open open} method is used, and the window manager begins to open the window.\n *\n * - an `opening` event is emitted with an `opening` promise\n * - the #getSetupDelay method is called and the returned value is used to time a pause in execution before the\n *   window’s {@link OO.ui.Window#method-setup setup} method is called which executes OO.ui.Window#getSetupProcess.\n * - a `setup` progress notification is emitted from the `opening` promise\n * - the #getReadyDelay method is called the returned value is used to time a pause in execution before the\n *   window’s {@link OO.ui.Window#method-ready ready} method is called which executes OO.ui.Window#getReadyProcess.\n * - a `ready` progress notification is emitted from the `opening` promise\n * - the `opening` promise is resolved with an `opened` promise\n *\n * **Opened**: the window is now open.\n *\n * **Closing**: the closing stage begins when the window manager's #closeWindow or the\n * window's {@link OO.ui.Window#close close} methods is used, and the window manager begins\n * to close the window.\n *\n * - the `opened` promise is resolved with `closing` promise and a `closing` event is emitted\n * - the #getHoldDelay method is called and the returned value is used to time a pause in execution before\n *   the window's {@link OO.ui.Window#getHoldProcess getHoldProcess} method is called on the\n *   window and its result executed\n * - a `hold` progress notification is emitted from the `closing` promise\n * - the #getTeardownDelay() method is called and the returned value is used to time a pause in execution before\n *   the window's {@link OO.ui.Window#getTeardownProcess getTeardownProcess} method is called on the\n *   window and its result executed\n * - a `teardown` progress notification is emitted from the `closing` promise\n * - the `closing` promise is resolved. The window is now closed\n *\n * See the [OOUI documentation on MediaWiki][1] for more information.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows/Window_managers\n *\n * @class\n * @extends OO.ui.Element\n * @mixins OO.EventEmitter\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.Factory} [factory] Window factory to use for automatic instantiation\n *  Note that window classes that are instantiated with a factory must have\n *  a {@link OO.ui.Dialog#static-name static name} property that specifies a symbolic name.\n * @cfg {boolean} [modal=true] Prevent interaction outside the dialog\n */\nOO.ui.WindowManager = function OoUiWindowManager( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.WindowManager.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.EventEmitter.call( this );\n\n\t// Properties\n\tthis.factory = config.factory;\n\tthis.modal = config.modal === undefined || !!config.modal;\n\tthis.windows = {};\n\t// Deprecated placeholder promise given to compatOpening in openWindow()\n\t// that is resolved in closeWindow().\n\tthis.compatOpened = null;\n\tthis.preparingToOpen = null;\n\tthis.preparingToClose = null;\n\tthis.currentWindow = null;\n\tthis.globalEvents = false;\n\tthis.$returnFocusTo = null;\n\tthis.$ariaHidden = null;\n\tthis.onWindowResizeTimeout = null;\n\tthis.onWindowResizeHandler = this.onWindowResize.bind( this );\n\tthis.afterWindowResizeHandler = this.afterWindowResize.bind( this );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-windowManager' )\n\t\t.toggleClass( 'oo-ui-windowManager-modal', this.modal );\n\tif ( this.modal ) {\n\t\tthis.$element.attr( 'aria-hidden', true );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.WindowManager, OO.ui.Element );\nOO.mixinClass( OO.ui.WindowManager, OO.EventEmitter );\n\n/* Events */\n\n/**\n * An 'opening' event is emitted when the window begins to be opened.\n *\n * @event opening\n * @param {OO.ui.Window} win Window that's being opened\n * @param {jQuery.Promise} opened A promise resolved with a value when the window is opened successfully.\n *  This promise also emits `setup` and `ready` notifications. When this promise is resolved, the first\n *  argument of the value is an 'closed' promise, the second argument is the opening data.\n * @param {Object} data Window opening data\n */\n\n/**\n * A 'closing' event is emitted when the window begins to be closed.\n *\n * @event closing\n * @param {OO.ui.Window} win Window that's being closed\n * @param {jQuery.Promise} closed A promise resolved with a value when the window is closed successfully.\n *  This promise also emits `hold` and `teardown` notifications. When this promise is resolved, the first\n *  argument of its value is the closing data.\n * @param {Object} data Window closing data\n */\n\n/**\n * A 'resize' event is emitted when a window is resized.\n *\n * @event resize\n * @param {OO.ui.Window} win Window that was resized\n */\n\n/* Static Properties */\n\n/**\n * Map of the symbolic name of each window size and its CSS properties.\n *\n * @static\n * @inheritable\n * @property {Object}\n */\nOO.ui.WindowManager.static.sizes = {\n\tsmall: {\n\t\twidth: 300\n\t},\n\tmedium: {\n\t\twidth: 500\n\t},\n\tlarge: {\n\t\twidth: 700\n\t},\n\tlarger: {\n\t\twidth: 900\n\t},\n\tfull: {\n\t\t// These can be non-numeric because they are never used in calculations\n\t\twidth: '100%',\n\t\theight: '100%'\n\t}\n};\n\n/**\n * Symbolic name of the default window size.\n *\n * The default size is used if the window's requested size is not recognized.\n *\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.WindowManager.static.defaultSize = 'medium';\n\n/* Methods */\n\n/**\n * Handle window resize events.\n *\n * @private\n * @param {jQuery.Event} e Window resize event\n */\nOO.ui.WindowManager.prototype.onWindowResize = function () {\n\tclearTimeout( this.onWindowResizeTimeout );\n\tthis.onWindowResizeTimeout = setTimeout( this.afterWindowResizeHandler, 200 );\n};\n\n/**\n * Handle window resize events.\n *\n * @private\n * @param {jQuery.Event} e Window resize event\n */\nOO.ui.WindowManager.prototype.afterWindowResize = function () {\n\tvar currentFocusedElement = document.activeElement;\n\tif ( this.currentWindow ) {\n\t\tthis.updateWindowSize( this.currentWindow );\n\n\t\t// Restore focus to the original element if it has changed.\n\t\t// When a layout change is made on resize inputs lose focus\n\t\t// on Android (Chrome and Firefox). See T162127.\n\t\tif ( currentFocusedElement !== document.activeElement ) {\n\t\t\tcurrentFocusedElement.focus();\n\t\t}\n\t}\n};\n\n/**\n * Check if window is opening.\n *\n * @param {OO.ui.Window} win Window to check\n * @return {boolean} Window is opening\n */\nOO.ui.WindowManager.prototype.isOpening = function ( win ) {\n\treturn win === this.currentWindow && !!this.lifecycle &&\n\t\tthis.lifecycle.isOpening();\n};\n\n/**\n * Check if window is closing.\n *\n * @param {OO.ui.Window} win Window to check\n * @return {boolean} Window is closing\n */\nOO.ui.WindowManager.prototype.isClosing = function ( win ) {\n\treturn win === this.currentWindow && !!this.lifecycle &&\n\t\tthis.lifecycle.isClosing();\n};\n\n/**\n * Check if window is opened.\n *\n * @param {OO.ui.Window} win Window to check\n * @return {boolean} Window is opened\n */\nOO.ui.WindowManager.prototype.isOpened = function ( win ) {\n\treturn win === this.currentWindow && !!this.lifecycle &&\n\t\tthis.lifecycle.isOpened();\n};\n\n/**\n * Check if a window is being managed.\n *\n * @param {OO.ui.Window} win Window to check\n * @return {boolean} Window is being managed\n */\nOO.ui.WindowManager.prototype.hasWindow = function ( win ) {\n\tvar name;\n\n\tfor ( name in this.windows ) {\n\t\tif ( this.windows[ name ] === win ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n};\n\n/**\n * Get the number of milliseconds to wait after opening begins before executing the ‘setup’ process.\n *\n * @param {OO.ui.Window} win Window being opened\n * @param {Object} [data] Window opening data\n * @return {number} Milliseconds to wait\n */\nOO.ui.WindowManager.prototype.getSetupDelay = function () {\n\treturn 0;\n};\n\n/**\n * Get the number of milliseconds to wait after setup has finished before executing the ‘ready’ process.\n *\n * @param {OO.ui.Window} win Window being opened\n * @param {Object} [data] Window opening data\n * @return {number} Milliseconds to wait\n */\nOO.ui.WindowManager.prototype.getReadyDelay = function () {\n\treturn this.modal ? OO.ui.theme.getDialogTransitionDuration() : 0;\n};\n\n/**\n * Get the number of milliseconds to wait after closing has begun before executing the 'hold' process.\n *\n * @param {OO.ui.Window} win Window being closed\n * @param {Object} [data] Window closing data\n * @return {number} Milliseconds to wait\n */\nOO.ui.WindowManager.prototype.getHoldDelay = function () {\n\treturn 0;\n};\n\n/**\n * Get the number of milliseconds to wait after the ‘hold’ process has finished before\n * executing the ‘teardown’ process.\n *\n * @param {OO.ui.Window} win Window being closed\n * @param {Object} [data] Window closing data\n * @return {number} Milliseconds to wait\n */\nOO.ui.WindowManager.prototype.getTeardownDelay = function () {\n\treturn this.modal ? OO.ui.theme.getDialogTransitionDuration() : 0;\n};\n\n/**\n * Get a window by its symbolic name.\n *\n * If the window is not yet instantiated and its symbolic name is recognized by a factory, it will be\n * instantiated and added to the window manager automatically. Please see the [OOUI documentation on MediaWiki][3]\n * for more information about using factories.\n * [3]: https://www.mediawiki.org/wiki/OOUI/Windows/Window_managers\n *\n * @param {string} name Symbolic name of the window\n * @return {jQuery.Promise} Promise resolved with matching window, or rejected with an OO.ui.Error\n * @throws {Error} An error is thrown if the symbolic name is not recognized by the factory.\n * @throws {Error} An error is thrown if the named window is not recognized as a managed window.\n */\nOO.ui.WindowManager.prototype.getWindow = function ( name ) {\n\tvar deferred = $.Deferred(),\n\t\twin = this.windows[ name ];\n\n\tif ( !( win instanceof OO.ui.Window ) ) {\n\t\tif ( this.factory ) {\n\t\t\tif ( !this.factory.lookup( name ) ) {\n\t\t\t\tdeferred.reject( new OO.ui.Error(\n\t\t\t\t\t'Cannot auto-instantiate window: symbolic name is unrecognized by the factory'\n\t\t\t\t) );\n\t\t\t} else {\n\t\t\t\twin = this.factory.create( name );\n\t\t\t\tthis.addWindows( [ win ] );\n\t\t\t\tdeferred.resolve( win );\n\t\t\t}\n\t\t} else {\n\t\t\tdeferred.reject( new OO.ui.Error(\n\t\t\t\t'Cannot get unmanaged window: symbolic name unrecognized as a managed window'\n\t\t\t) );\n\t\t}\n\t} else {\n\t\tdeferred.resolve( win );\n\t}\n\n\treturn deferred.promise();\n};\n\n/**\n * Get current window.\n *\n * @return {OO.ui.Window|null} Currently opening/opened/closing window\n */\nOO.ui.WindowManager.prototype.getCurrentWindow = function () {\n\treturn this.currentWindow;\n};\n\n/* eslint-disable valid-jsdoc */\n/**\n * Open a window.\n *\n * @param {OO.ui.Window|string} win Window object or symbolic name of window to open\n * @param {Object} [data] Window opening data\n * @param {jQuery|null} [data.$returnFocusTo] Element to which the window will return focus when closed.\n *  Defaults the current activeElement. If set to null, focus isn't changed on close.\n * @return {OO.ui.WindowInstance} A lifecycle object representing this particular\n *  opening of the window. For backwards-compatibility, then object is also a Thenable that is resolved\n *  when the window is done opening, with nested promise for when closing starts. This behaviour\n *  is deprecated and is not compatible with jQuery 3. See T163510.\n * @fires opening\n */\nOO.ui.WindowManager.prototype.openWindow = function ( win, data, lifecycle, compatOpening ) {\n\t/* eslint-enable valid-jsdoc */\n\tvar error,\n\t\tmanager = this;\n\tdata = data || {};\n\n\t// Internal parameter 'lifecycle' allows this method to always return\n\t// a lifecycle even if the window still needs to be created\n\t// asynchronously when 'win' is a string.\n\tlifecycle = lifecycle || new OO.ui.WindowInstance();\n\tcompatOpening = compatOpening || $.Deferred();\n\n\t// Turn lifecycle into a Thenable for backwards-compatibility with\n\t// the deprecated nested-promise behaviour, see T163510.\n\t[ 'state', 'always', 'catch', 'pipe', 'then', 'promise', 'progress', 'done', 'fail' ]\n\t\t.forEach( function ( method ) {\n\t\t\tlifecycle[ method ] = function () {\n\t\t\t\tOO.ui.warnDeprecation(\n\t\t\t\t\t'Using the return value of openWindow as a promise is deprecated. ' +\n\t\t\t\t\t'Use .openWindow( ... ).opening.' + method + '( ... ) instead.'\n\t\t\t\t);\n\t\t\t\treturn compatOpening[ method ].apply( this, arguments );\n\t\t\t};\n\t\t} );\n\n\t// Argument handling\n\tif ( typeof win === 'string' ) {\n\t\tthis.getWindow( win ).then(\n\t\t\tfunction ( win ) {\n\t\t\t\tmanager.openWindow( win, data, lifecycle, compatOpening );\n\t\t\t},\n\t\t\tfunction ( err ) {\n\t\t\t\tlifecycle.deferreds.opening.reject( err );\n\t\t\t}\n\t\t);\n\t\treturn lifecycle;\n\t}\n\n\t// Error handling\n\tif ( !this.hasWindow( win ) ) {\n\t\terror = 'Cannot open window: window is not attached to manager';\n\t} else if ( this.lifecycle && this.lifecycle.isOpened() ) {\n\t\terror = 'Cannot open window: another window is open';\n\t} else if ( this.preparingToOpen || ( this.lifecycle && this.lifecycle.isOpening() ) ) {\n\t\terror = 'Cannot open window: another window is opening';\n\t}\n\n\tif ( error ) {\n\t\tcompatOpening.reject( new OO.ui.Error( error ) );\n\t\tlifecycle.deferreds.opening.reject( new OO.ui.Error( error ) );\n\t\treturn lifecycle;\n\t}\n\n\t// If a window is currently closing, wait for it to complete\n\tthis.preparingToOpen = $.when( this.lifecycle && this.lifecycle.closed );\n\t// Ensure handlers get called after preparingToOpen is set\n\tthis.preparingToOpen.done( function () {\n\t\tif ( manager.modal ) {\n\t\t\tmanager.toggleGlobalEvents( true );\n\t\t\tmanager.toggleAriaIsolation( true );\n\t\t}\n\t\tmanager.$returnFocusTo = data.$returnFocusTo !== undefined ? data.$returnFocusTo : $( document.activeElement );\n\t\tmanager.currentWindow = win;\n\t\tmanager.lifecycle = lifecycle;\n\t\tmanager.preparingToOpen = null;\n\t\tmanager.emit( 'opening', win, compatOpening, data );\n\t\tlifecycle.deferreds.opening.resolve( data );\n\t\tsetTimeout( function () {\n\t\t\tmanager.compatOpened = $.Deferred();\n\t\t\twin.setup( data ).then( function () {\n\t\t\t\tcompatOpening.notify( { state: 'setup' } );\n\t\t\t\tsetTimeout( function () {\n\t\t\t\t\twin.ready( data ).then( function () {\n\t\t\t\t\t\tcompatOpening.notify( { state: 'ready' } );\n\t\t\t\t\t\tlifecycle.deferreds.opened.resolve( data );\n\t\t\t\t\t\tcompatOpening.resolve( manager.compatOpened.promise(), data );\n\t\t\t\t\t}, function () {\n\t\t\t\t\t\tlifecycle.deferreds.opened.reject();\n\t\t\t\t\t\tcompatOpening.reject();\n\t\t\t\t\t\tmanager.closeWindow( win );\n\t\t\t\t\t} );\n\t\t\t\t}, manager.getReadyDelay() );\n\t\t\t}, function () {\n\t\t\t\tlifecycle.deferreds.opened.reject();\n\t\t\t\tcompatOpening.reject();\n\t\t\t\tmanager.closeWindow( win );\n\t\t\t} );\n\t\t}, manager.getSetupDelay() );\n\t} );\n\n\treturn lifecycle;\n};\n\n/**\n * Close a window.\n *\n * @param {OO.ui.Window|string} win Window object or symbolic name of window to close\n * @param {Object} [data] Window closing data\n * @return {OO.ui.WindowInstance} A lifecycle object representing this particular\n *  opening of the window. For backwards-compatibility, the object is also a Thenable that is resolved\n *  when the window is done closing, see T163510.\n * @fires closing\n */\nOO.ui.WindowManager.prototype.closeWindow = function ( win, data ) {\n\tvar error,\n\t\tmanager = this,\n\t\tcompatClosing = $.Deferred(),\n\t\tlifecycle = this.lifecycle,\n\t\tcompatOpened;\n\n\t// Argument handling\n\tif ( typeof win === 'string' ) {\n\t\twin = this.windows[ win ];\n\t} else if ( !this.hasWindow( win ) ) {\n\t\twin = null;\n\t}\n\n\t// Error handling\n\tif ( !lifecycle ) {\n\t\terror = 'Cannot close window: no window is currently open';\n\t} else if ( !win ) {\n\t\terror = 'Cannot close window: window is not attached to manager';\n\t} else if ( win !== this.currentWindow || this.lifecycle.isClosed() ) {\n\t\terror = 'Cannot close window: window already closed with different data';\n\t} else if ( this.preparingToClose || this.lifecycle.isClosing() ) {\n\t\terror = 'Cannot close window: window already closing with different data';\n\t}\n\n\tif ( error ) {\n\t\t// This function was called for the wrong window and we don't want to mess with the current\n\t\t// window's state.\n\t\tlifecycle = new OO.ui.WindowInstance();\n\t\t// Pretend the window has been opened, so that we can pretend to fail to close it.\n\t\tlifecycle.deferreds.opening.resolve( {} );\n\t\tlifecycle.deferreds.opened.resolve( {} );\n\t}\n\n\t// Turn lifecycle into a Thenable for backwards-compatibility with\n\t// the deprecated nested-promise behaviour, see T163510.\n\t[ 'state', 'always', 'catch', 'pipe', 'then', 'promise', 'progress', 'done', 'fail' ]\n\t\t.forEach( function ( method ) {\n\t\t\tlifecycle[ method ] = function () {\n\t\t\t\tOO.ui.warnDeprecation(\n\t\t\t\t\t'Using the return value of closeWindow as a promise is deprecated. ' +\n\t\t\t\t\t'Use .closeWindow( ... ).closed.' + method + '( ... ) instead.'\n\t\t\t\t);\n\t\t\t\treturn compatClosing[ method ].apply( this, arguments );\n\t\t\t};\n\t\t} );\n\n\tif ( error ) {\n\t\tcompatClosing.reject( new OO.ui.Error( error ) );\n\t\tlifecycle.deferreds.closing.reject( new OO.ui.Error( error ) );\n\t\treturn lifecycle;\n\t}\n\n\t// If the window is currently opening, close it when it's done\n\tthis.preparingToClose = $.when( this.lifecycle.opened );\n\t// Ensure handlers get called after preparingToClose is set\n\tthis.preparingToClose.always( function () {\n\t\tmanager.preparingToClose = null;\n\t\tmanager.emit( 'closing', win, compatClosing, data );\n\t\tlifecycle.deferreds.closing.resolve( data );\n\t\tcompatOpened = manager.compatOpened;\n\t\tmanager.compatOpened = null;\n\t\tcompatOpened.resolve( compatClosing.promise(), data );\n\t\tsetTimeout( function () {\n\t\t\twin.hold( data ).then( function () {\n\t\t\t\tcompatClosing.notify( { state: 'hold' } );\n\t\t\t\tsetTimeout( function () {\n\t\t\t\t\twin.teardown( data ).then( function () {\n\t\t\t\t\t\tcompatClosing.notify( { state: 'teardown' } );\n\t\t\t\t\t\tif ( manager.modal ) {\n\t\t\t\t\t\t\tmanager.toggleGlobalEvents( false );\n\t\t\t\t\t\t\tmanager.toggleAriaIsolation( false );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( manager.$returnFocusTo && manager.$returnFocusTo.length ) {\n\t\t\t\t\t\t\tmanager.$returnFocusTo[ 0 ].focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmanager.currentWindow = null;\n\t\t\t\t\t\tmanager.lifecycle = null;\n\t\t\t\t\t\tlifecycle.deferreds.closed.resolve( data );\n\t\t\t\t\t\tcompatClosing.resolve( data );\n\t\t\t\t\t} );\n\t\t\t\t}, manager.getTeardownDelay() );\n\t\t\t} );\n\t\t}, manager.getHoldDelay() );\n\t} );\n\n\treturn lifecycle;\n};\n\n/**\n * Add windows to the window manager.\n *\n * Windows can be added by reference, symbolic name, or explicitly defined symbolic names.\n * See the [OOUI documentation on MediaWiki] [2] for examples.\n * [2]: https://www.mediawiki.org/wiki/OOUI/Windows/Window_managers\n *\n * This function can be called in two manners:\n *\n * 1. `.addWindows( [ windowA, windowB, ... ] )` (where `windowA`, `windowB` are OO.ui.Window objects)\n *\n *    This syntax registers windows under the symbolic names defined in their `.static.name`\n *    properties. For example, if `windowA.constructor.static.name` is `'nameA'`, calling\n *    `.openWindow( 'nameA' )` afterwards will open the window `windowA`. This syntax requires the\n *    static name to be set, otherwise an exception will be thrown.\n *\n *    This is the recommended way, as it allows for an easier switch to using a window factory.\n *\n * 2. `.addWindows( { nameA: windowA, nameB: windowB, ... } )`\n *\n *    This syntax registers windows under the explicitly given symbolic names. In this example,\n *    calling `.openWindow( 'nameA' )` afterwards will open the window `windowA`, regardless of what\n *    its `.static.name` is set to. The static name is not required to be set.\n *\n *    This should only be used if you need to override the default symbolic names.\n *\n * Example:\n *\n *     var windowManager = new OO.ui.WindowManager();\n *     $( 'body' ).append( windowManager.$element );\n *\n *     // Add a window under the default name: see OO.ui.MessageDialog.static.name\n *     windowManager.addWindows( [ new OO.ui.MessageDialog() ] );\n *     // Add a window under an explicit name\n *     windowManager.addWindows( { myMessageDialog: new OO.ui.MessageDialog() } );\n *\n *     // Open window by default name\n *     windowManager.openWindow( 'message' );\n *     // Open window by explicitly given name\n *     windowManager.openWindow( 'myMessageDialog' );\n *\n *\n * @param {Object.<string,OO.ui.Window>|OO.ui.Window[]} windows An array of window objects specified\n *  by reference, symbolic name, or explicitly defined symbolic names.\n * @throws {Error} An error is thrown if a window is added by symbolic name, but has neither an\n *  explicit nor a statically configured symbolic name.\n */\nOO.ui.WindowManager.prototype.addWindows = function ( windows ) {\n\tvar i, len, win, name, list;\n\n\tif ( Array.isArray( windows ) ) {\n\t\t// Convert to map of windows by looking up symbolic names from static configuration\n\t\tlist = {};\n\t\tfor ( i = 0, len = windows.length; i < len; i++ ) {\n\t\t\tname = windows[ i ].constructor.static.name;\n\t\t\tif ( !name ) {\n\t\t\t\tthrow new Error( 'Windows must have a `name` static property defined.' );\n\t\t\t}\n\t\t\tlist[ name ] = windows[ i ];\n\t\t}\n\t} else if ( OO.isPlainObject( windows ) ) {\n\t\tlist = windows;\n\t}\n\n\t// Add windows\n\tfor ( name in list ) {\n\t\twin = list[ name ];\n\t\tthis.windows[ name ] = win.toggle( false );\n\t\tthis.$element.append( win.$element );\n\t\twin.setManager( this );\n\t}\n};\n\n/**\n * Remove the specified windows from the windows manager.\n *\n * Windows will be closed before they are removed. If you wish to remove all windows, you may wish to use\n * the #clearWindows method instead. If you no longer need the window manager and want to ensure that it no\n * longer listens to events, use the #destroy method.\n *\n * @param {string[]} names Symbolic names of windows to remove\n * @return {jQuery.Promise} Promise resolved when window is closed and removed\n * @throws {Error} An error is thrown if the named windows are not managed by the window manager.\n */\nOO.ui.WindowManager.prototype.removeWindows = function ( names ) {\n\tvar i, len, win, name, cleanupWindow,\n\t\tmanager = this,\n\t\tpromises = [],\n\t\tcleanup = function ( name, win ) {\n\t\t\tdelete manager.windows[ name ];\n\t\t\twin.$element.detach();\n\t\t};\n\n\tfor ( i = 0, len = names.length; i < len; i++ ) {\n\t\tname = names[ i ];\n\t\twin = this.windows[ name ];\n\t\tif ( !win ) {\n\t\t\tthrow new Error( 'Cannot remove window' );\n\t\t}\n\t\tcleanupWindow = cleanup.bind( null, name, win );\n\t\tpromises.push( this.closeWindow( name ).closed.then( cleanupWindow, cleanupWindow ) );\n\t}\n\n\treturn $.when.apply( $, promises );\n};\n\n/**\n * Remove all windows from the window manager.\n *\n * Windows will be closed before they are removed. Note that the window manager, though not in use, will still\n * listen to events. If the window manager will not be used again, you may wish to use the #destroy method instead.\n * To remove just a subset of windows, use the #removeWindows method.\n *\n * @return {jQuery.Promise} Promise resolved when all windows are closed and removed\n */\nOO.ui.WindowManager.prototype.clearWindows = function () {\n\treturn this.removeWindows( Object.keys( this.windows ) );\n};\n\n/**\n * Set dialog size. In general, this method should not be called directly.\n *\n * Fullscreen mode will be used if the dialog is too wide to fit in the screen.\n *\n * @param {OO.ui.Window} win Window to update, should be the current window\n * @chainable\n * @return {OO.ui.WindowManager} The manager, for chaining\n */\nOO.ui.WindowManager.prototype.updateWindowSize = function ( win ) {\n\tvar isFullscreen;\n\n\t// Bypass for non-current, and thus invisible, windows\n\tif ( win !== this.currentWindow ) {\n\t\treturn;\n\t}\n\n\tisFullscreen = win.getSize() === 'full';\n\n\tthis.$element.toggleClass( 'oo-ui-windowManager-fullscreen', isFullscreen );\n\tthis.$element.toggleClass( 'oo-ui-windowManager-floating', !isFullscreen );\n\twin.setDimensions( win.getSizeProperties() );\n\n\tthis.emit( 'resize', win );\n\n\treturn this;\n};\n\n/**\n * Bind or unbind global events for scrolling.\n *\n * @private\n * @param {boolean} [on] Bind global events\n * @chainable\n * @return {OO.ui.WindowManager} The manager, for chaining\n */\nOO.ui.WindowManager.prototype.toggleGlobalEvents = function ( on ) {\n\tvar scrollWidth, bodyMargin,\n\t\t$body = $( this.getElementDocument().body ),\n\t\t// We could have multiple window managers open so only modify\n\t\t// the body css at the bottom of the stack\n\t\tstackDepth = $body.data( 'windowManagerGlobalEvents' ) || 0;\n\n\ton = on === undefined ? !!this.globalEvents : !!on;\n\n\tif ( on ) {\n\t\tif ( !this.globalEvents ) {\n\t\t\t$( this.getElementWindow() ).on( {\n\t\t\t\t// Start listening for top-level window dimension changes\n\t\t\t\t'orientationchange resize': this.onWindowResizeHandler\n\t\t\t} );\n\t\t\tif ( stackDepth === 0 ) {\n\t\t\t\tscrollWidth = window.innerWidth - document.documentElement.clientWidth;\n\t\t\t\tbodyMargin = parseFloat( $body.css( 'margin-right' ) ) || 0;\n\t\t\t\t$body.addClass( 'oo-ui-windowManager-modal-active' );\n\t\t\t\t$body.css( 'margin-right', bodyMargin + scrollWidth );\n\t\t\t}\n\t\t\tstackDepth++;\n\t\t\tthis.globalEvents = true;\n\t\t}\n\t} else if ( this.globalEvents ) {\n\t\t$( this.getElementWindow() ).off( {\n\t\t\t// Stop listening for top-level window dimension changes\n\t\t\t'orientationchange resize': this.onWindowResizeHandler\n\t\t} );\n\t\tstackDepth--;\n\t\tif ( stackDepth === 0 ) {\n\t\t\t$body.removeClass( 'oo-ui-windowManager-modal-active' );\n\t\t\t$body.css( 'margin-right', '' );\n\t\t}\n\t\tthis.globalEvents = false;\n\t}\n\t$body.data( 'windowManagerGlobalEvents', stackDepth );\n\n\treturn this;\n};\n\n/**\n * Toggle screen reader visibility of content other than the window manager.\n *\n * @private\n * @param {boolean} [isolate] Make only the window manager visible to screen readers\n * @chainable\n * @return {OO.ui.WindowManager} The manager, for chaining\n */\nOO.ui.WindowManager.prototype.toggleAriaIsolation = function ( isolate ) {\n\tvar $topLevelElement;\n\tisolate = isolate === undefined ? !this.$ariaHidden : !!isolate;\n\n\tif ( isolate ) {\n\t\tif ( !this.$ariaHidden ) {\n\t\t\t// Find the top level element containing the window manager or the\n\t\t\t// window manager's element itself in case its a direct child of body\n\t\t\t$topLevelElement = this.$element.parentsUntil( 'body' ).last();\n\t\t\t$topLevelElement = $topLevelElement.length === 0 ? this.$element : $topLevelElement;\n\n\t\t\t// In case previously set by another window manager\n\t\t\tthis.$element.removeAttr( 'aria-hidden' );\n\n\t\t\t// Hide everything other than the window manager from screen readers\n\t\t\tthis.$ariaHidden = $( 'body' )\n\t\t\t\t.children()\n\t\t\t\t.not( 'script' )\n\t\t\t\t.not( $topLevelElement )\n\t\t\t\t.attr( 'aria-hidden', true );\n\t\t}\n\t} else if ( this.$ariaHidden ) {\n\t\t// Restore screen reader visibility\n\t\tthis.$ariaHidden.removeAttr( 'aria-hidden' );\n\t\tthis.$ariaHidden = null;\n\n\t\t// and hide the window manager\n\t\tthis.$element.attr( 'aria-hidden', true );\n\t}\n\n\treturn this;\n};\n\n/**\n * Destroy the window manager.\n *\n * Destroying the window manager ensures that it will no longer listen to events. If you would like to\n * continue using the window manager, but wish to remove all windows from it, use the #clearWindows method\n * instead.\n */\nOO.ui.WindowManager.prototype.destroy = function () {\n\tthis.toggleGlobalEvents( false );\n\tthis.toggleAriaIsolation( false );\n\tthis.clearWindows();\n\tthis.$element.remove();\n};\n","/**\n * A window is a container for elements that are in a child frame. They are used with\n * a window manager (OO.ui.WindowManager), which is used to open and close the window and control\n * its presentation. The size of a window is specified using a symbolic name (e.g., ‘small’, ‘medium’,\n * ‘large’), which is interpreted by the window manager. If the requested size is not recognized,\n * the window manager will choose a sensible fallback.\n *\n * The lifecycle of a window has three primary stages (opening, opened, and closing) in which\n * different processes are executed:\n *\n * **opening**: The opening stage begins when the window manager's {@link OO.ui.WindowManager#openWindow\n * openWindow} or the window's {@link #open open} methods are used, and the window manager begins to open\n * the window.\n *\n * - {@link #getSetupProcess} method is called and its result executed\n * - {@link #getReadyProcess} method is called and its result executed\n *\n * **opened**: The window is now open\n *\n * **closing**: The closing stage begins when the window manager's\n * {@link OO.ui.WindowManager#closeWindow closeWindow}\n * or the window's {@link #close} methods are used, and the window manager begins to close the window.\n *\n * - {@link #getHoldProcess} method is called and its result executed\n * - {@link #getTeardownProcess} method is called and its result executed. The window is now closed\n *\n * Each of the window's processes (setup, ready, hold, and teardown) can be extended in subclasses\n * by overriding the window's #getSetupProcess, #getReadyProcess, #getHoldProcess and #getTeardownProcess\n * methods. Note that each {@link OO.ui.Process process} is executed in series, so asynchronous\n * processing can complete. Always assume window processes are executed asynchronously.\n *\n * For more information, please see the [OOUI documentation on MediaWiki] [1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows\n *\n * @abstract\n * @class\n * @extends OO.ui.Element\n * @mixins OO.EventEmitter\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string} [size] Symbolic name of the dialog size: `small`, `medium`, `large`, `larger` or\n *  `full`.  If omitted, the value of the {@link #static-size static size} property will be used.\n */\nOO.ui.Window = function OoUiWindow( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.Window.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.EventEmitter.call( this );\n\n\t// Properties\n\tthis.manager = null;\n\tthis.size = config.size || this.constructor.static.size;\n\tthis.$frame = $( '<div>' );\n\t/**\n\t * Overlay element to use for the `$overlay` configuration option of widgets that support it.\n\t * Things put inside of it are overlaid on top of the window and are not bound to its dimensions.\n\t * See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n\t *\n\t *     MyDialog.prototype.initialize = function () {\n\t *       ...\n\t *       var popupButton = new OO.ui.PopupButtonWidget( {\n\t *         $overlay: this.$overlay,\n\t *         label: 'Popup button',\n\t *         popup: {\n\t *           $content: $( '<p>Popup contents.</p><p>Popup contents.</p><p>Popup contents.</p>' ),\n\t *           padded: true\n\t *         }\n\t *       } );\n\t *       ...\n\t *     };\n\t *\n\t * @property {jQuery}\n\t */\n\tthis.$overlay = $( '<div>' );\n\tthis.$content = $( '<div>' );\n\n\tthis.$focusTrapBefore = $( '<div>' ).prop( 'tabIndex', 0 );\n\tthis.$focusTrapAfter = $( '<div>' ).prop( 'tabIndex', 0 );\n\tthis.$focusTraps = this.$focusTrapBefore.add( this.$focusTrapAfter );\n\n\t// Initialization\n\tthis.$overlay.addClass( 'oo-ui-window-overlay' );\n\tthis.$content\n\t\t.addClass( 'oo-ui-window-content' )\n\t\t.attr( 'tabindex', 0 );\n\tthis.$frame\n\t\t.addClass( 'oo-ui-window-frame' )\n\t\t.append( this.$focusTrapBefore, this.$content, this.$focusTrapAfter );\n\n\tthis.$element\n\t\t.addClass( 'oo-ui-window' )\n\t\t.append( this.$frame, this.$overlay );\n\n\t// Initially hidden - using #toggle may cause errors if subclasses override toggle with methods\n\t// that reference properties not initialized at that time of parent class construction\n\t// TODO: Find a better way to handle post-constructor setup\n\tthis.visible = false;\n\tthis.$element.addClass( 'oo-ui-element-hidden' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.Window, OO.ui.Element );\nOO.mixinClass( OO.ui.Window, OO.EventEmitter );\n\n/* Static Properties */\n\n/**\n * Symbolic name of the window size: `small`, `medium`, `large`, `larger` or `full`.\n *\n * The static size is used if no #size is configured during construction.\n *\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.Window.static.size = 'medium';\n\n/* Methods */\n\n/**\n * Handle mouse down events.\n *\n * @private\n * @param {jQuery.Event} e Mouse down event\n * @return {OO.ui.Window} The window, for chaining\n */\nOO.ui.Window.prototype.onMouseDown = function ( e ) {\n\t// Prevent clicking on the click-block from stealing focus\n\tif ( e.target === this.$element[ 0 ] ) {\n\t\treturn false;\n\t}\n};\n\n/**\n * Check if the window has been initialized.\n *\n * Initialization occurs when a window is added to a manager.\n *\n * @return {boolean} Window has been initialized\n */\nOO.ui.Window.prototype.isInitialized = function () {\n\treturn !!this.manager;\n};\n\n/**\n * Check if the window is visible.\n *\n * @return {boolean} Window is visible\n */\nOO.ui.Window.prototype.isVisible = function () {\n\treturn this.visible;\n};\n\n/**\n * Check if the window is opening.\n *\n * This method is a wrapper around the window manager's {@link OO.ui.WindowManager#isOpening isOpening}\n * method.\n *\n * @return {boolean} Window is opening\n */\nOO.ui.Window.prototype.isOpening = function () {\n\treturn this.manager.isOpening( this );\n};\n\n/**\n * Check if the window is closing.\n *\n * This method is a wrapper around the window manager's {@link OO.ui.WindowManager#isClosing isClosing} method.\n *\n * @return {boolean} Window is closing\n */\nOO.ui.Window.prototype.isClosing = function () {\n\treturn this.manager.isClosing( this );\n};\n\n/**\n * Check if the window is opened.\n *\n * This method is a wrapper around the window manager's {@link OO.ui.WindowManager#isOpened isOpened} method.\n *\n * @return {boolean} Window is opened\n */\nOO.ui.Window.prototype.isOpened = function () {\n\treturn this.manager.isOpened( this );\n};\n\n/**\n * Get the window manager.\n *\n * All windows must be attached to a window manager, which is used to open\n * and close the window and control its presentation.\n *\n * @return {OO.ui.WindowManager} Manager of window\n */\nOO.ui.Window.prototype.getManager = function () {\n\treturn this.manager;\n};\n\n/**\n * Get the symbolic name of the window size (e.g., `small` or `medium`).\n *\n * @return {string} Symbolic name of the size: `small`, `medium`, `large`, `larger`, `full`\n */\nOO.ui.Window.prototype.getSize = function () {\n\tvar viewport = OO.ui.Element.static.getDimensions( this.getElementWindow() ),\n\t\tsizes = this.manager.constructor.static.sizes,\n\t\tsize = this.size;\n\n\tif ( !sizes[ size ] ) {\n\t\tsize = this.manager.constructor.static.defaultSize;\n\t}\n\tif ( size !== 'full' && viewport.rect.right - viewport.rect.left < sizes[ size ].width ) {\n\t\tsize = 'full';\n\t}\n\n\treturn size;\n};\n\n/**\n * Get the size properties associated with the current window size\n *\n * @return {Object} Size properties\n */\nOO.ui.Window.prototype.getSizeProperties = function () {\n\treturn this.manager.constructor.static.sizes[ this.getSize() ];\n};\n\n/**\n * Disable transitions on window's frame for the duration of the callback function, then enable them\n * back.\n *\n * @private\n * @param {Function} callback Function to call while transitions are disabled\n */\nOO.ui.Window.prototype.withoutSizeTransitions = function ( callback ) {\n\t// Temporarily resize the frame so getBodyHeight() can use scrollHeight measurements.\n\t// Disable transitions first, otherwise we'll get values from when the window was animating.\n\t// We need to build the transition CSS properties using these specific properties since\n\t// Firefox doesn't return anything useful when asked just for 'transition'.\n\tvar oldTransition = this.$frame.css( 'transition-property' ) + ' ' +\n\t\tthis.$frame.css( 'transition-duration' ) + ' ' +\n\t\tthis.$frame.css( 'transition-timing-function' ) + ' ' +\n\t\tthis.$frame.css( 'transition-delay' );\n\n\tthis.$frame.css( 'transition', 'none' );\n\tcallback();\n\n\t// Force reflow to make sure the style changes done inside callback\n\t// really are not transitioned\n\tthis.$frame.height();\n\tthis.$frame.css( 'transition', oldTransition );\n};\n\n/**\n * Get the height of the full window contents (i.e., the window head, body and foot together).\n *\n * What constitutes the head, body, and foot varies depending on the window type.\n * A {@link OO.ui.MessageDialog message dialog} displays a title and message in its body,\n * and any actions in the foot. A {@link OO.ui.ProcessDialog process dialog} displays a title\n * and special actions in the head, and dialog content in the body.\n *\n * To get just the height of the dialog body, use the #getBodyHeight method.\n *\n * @return {number} The height of the window contents (the dialog head, body and foot) in pixels\n */\nOO.ui.Window.prototype.getContentHeight = function () {\n\tvar bodyHeight,\n\t\twin = this,\n\t\tbodyStyleObj = this.$body[ 0 ].style,\n\t\tframeStyleObj = this.$frame[ 0 ].style;\n\n\t// Temporarily resize the frame so getBodyHeight() can use scrollHeight measurements.\n\t// Disable transitions first, otherwise we'll get values from when the window was animating.\n\tthis.withoutSizeTransitions( function () {\n\t\tvar oldHeight = frameStyleObj.height,\n\t\t\toldPosition = bodyStyleObj.position;\n\t\tframeStyleObj.height = '1px';\n\t\t// Force body to resize to new width\n\t\tbodyStyleObj.position = 'relative';\n\t\tbodyHeight = win.getBodyHeight();\n\t\tframeStyleObj.height = oldHeight;\n\t\tbodyStyleObj.position = oldPosition;\n\t} );\n\n\treturn (\n\t\t// Add buffer for border\n\t\t( this.$frame.outerHeight() - this.$frame.innerHeight() ) +\n\t\t// Use combined heights of children\n\t\t( this.$head.outerHeight( true ) + bodyHeight + this.$foot.outerHeight( true ) )\n\t);\n};\n\n/**\n * Get the height of the window body.\n *\n * To get the height of the full window contents (the window body, head, and foot together),\n * use #getContentHeight.\n *\n * When this function is called, the window will temporarily have been resized\n * to height=1px, so .scrollHeight measurements can be taken accurately.\n *\n * @return {number} Height of the window body in pixels\n */\nOO.ui.Window.prototype.getBodyHeight = function () {\n\treturn this.$body[ 0 ].scrollHeight;\n};\n\n/**\n * Get the directionality of the frame (right-to-left or left-to-right).\n *\n * @return {string} Directionality: `'ltr'` or `'rtl'`\n */\nOO.ui.Window.prototype.getDir = function () {\n\treturn OO.ui.Element.static.getDir( this.$content ) || 'ltr';\n};\n\n/**\n * Get the 'setup' process.\n *\n * The setup process is used to set up a window for use in a particular context, based on the `data`\n * argument. This method is called during the opening phase of the window’s lifecycle (before the\n * opening animation). You can add elements to the window in this process or set their default\n * values.\n *\n * Override this method to add additional steps to the ‘setup’ process the parent method provides\n * using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next} methods\n * of OO.ui.Process.\n *\n * To add window content that persists between openings, you may wish to use the #initialize method\n * instead.\n *\n * @param {Object} [data] Window opening data\n * @return {OO.ui.Process} Setup process\n */\nOO.ui.Window.prototype.getSetupProcess = function () {\n\treturn new OO.ui.Process();\n};\n\n/**\n * Get the ‘ready’ process.\n *\n * The ready process is used to ready a window for use in a particular context, based on the `data`\n * argument. This method is called during the opening phase of the window’s lifecycle, after the\n * window has been {@link #getSetupProcess setup} (after the opening animation). You can focus\n * elements in the window in this process, or open their dropdowns.\n *\n * Override this method to add additional steps to the ‘ready’ process the parent method\n * provides using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next}\n * methods of OO.ui.Process.\n *\n * @param {Object} [data] Window opening data\n * @return {OO.ui.Process} Ready process\n */\nOO.ui.Window.prototype.getReadyProcess = function () {\n\treturn new OO.ui.Process();\n};\n\n/**\n * Get the 'hold' process.\n *\n * The hold process is used to keep a window from being used in a particular context, based on the\n * `data` argument. This method is called during the closing phase of the window’s lifecycle (before\n * the closing animation). You can close dropdowns of elements in the window in this process, if\n * they do not get closed automatically.\n *\n * Override this method to add additional steps to the 'hold' process the parent method provides\n * using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next} methods\n * of OO.ui.Process.\n *\n * @param {Object} [data] Window closing data\n * @return {OO.ui.Process} Hold process\n */\nOO.ui.Window.prototype.getHoldProcess = function () {\n\treturn new OO.ui.Process();\n};\n\n/**\n * Get the ‘teardown’ process.\n *\n * The teardown process is used to teardown a window after use. During teardown, user interactions\n * within the window are conveyed and the window is closed, based on the `data` argument. This\n * method is called during the closing phase of the window’s lifecycle (after the closing\n * animation). You can remove elements in the window in this process or clear their values.\n *\n * Override this method to add additional steps to the ‘teardown’ process the parent method provides\n * using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next} methods\n * of OO.ui.Process.\n *\n * @param {Object} [data] Window closing data\n * @return {OO.ui.Process} Teardown process\n */\nOO.ui.Window.prototype.getTeardownProcess = function () {\n\treturn new OO.ui.Process();\n};\n\n/**\n * Set the window manager.\n *\n * This will cause the window to initialize. Calling it more than once will cause an error.\n *\n * @param {OO.ui.WindowManager} manager Manager for this window\n * @throws {Error} An error is thrown if the method is called more than once\n * @chainable\n * @return {OO.ui.Window} The window, for chaining\n */\nOO.ui.Window.prototype.setManager = function ( manager ) {\n\tif ( this.manager ) {\n\t\tthrow new Error( 'Cannot set window manager, window already has a manager' );\n\t}\n\n\tthis.manager = manager;\n\tthis.initialize();\n\n\treturn this;\n};\n\n/**\n * Set the window size by symbolic name (e.g., 'small' or 'medium')\n *\n * @param {string} size Symbolic name of size: `small`, `medium`, `large`, `larger` or\n *  `full`\n * @chainable\n * @return {OO.ui.Window} The window, for chaining\n */\nOO.ui.Window.prototype.setSize = function ( size ) {\n\tthis.size = size;\n\tthis.updateSize();\n\treturn this;\n};\n\n/**\n * Update the window size.\n *\n * @throws {Error} An error is thrown if the window is not attached to a window manager\n * @chainable\n * @return {OO.ui.Window} The window, for chaining\n */\nOO.ui.Window.prototype.updateSize = function () {\n\tif ( !this.manager ) {\n\t\tthrow new Error( 'Cannot update window size, must be attached to a manager' );\n\t}\n\n\tthis.manager.updateWindowSize( this );\n\n\treturn this;\n};\n\n/**\n * Set window dimensions. This method is called by the {@link OO.ui.WindowManager window manager}\n * when the window is opening. In general, setDimensions should not be called directly.\n *\n * To set the size of the window, use the #setSize method.\n *\n * @param {Object} dim CSS dimension properties\n * @param {string|number} [dim.width] Width\n * @param {string|number} [dim.minWidth] Minimum width\n * @param {string|number} [dim.maxWidth] Maximum width\n * @param {string|number} [dim.height] Height, omit to set based on height of contents\n * @param {string|number} [dim.minHeight] Minimum height\n * @param {string|number} [dim.maxHeight] Maximum height\n * @chainable\n * @return {OO.ui.Window} The window, for chaining\n */\nOO.ui.Window.prototype.setDimensions = function ( dim ) {\n\tvar height,\n\t\twin = this,\n\t\tstyleObj = this.$frame[ 0 ].style;\n\n\t// Calculate the height we need to set using the correct width\n\tif ( dim.height === undefined ) {\n\t\tthis.withoutSizeTransitions( function () {\n\t\t\tvar oldWidth = styleObj.width;\n\t\t\twin.$frame.css( 'width', dim.width || '' );\n\t\t\theight = win.getContentHeight();\n\t\t\tstyleObj.width = oldWidth;\n\t\t} );\n\t} else {\n\t\theight = dim.height;\n\t}\n\n\tthis.$frame.css( {\n\t\twidth: dim.width || '',\n\t\tminWidth: dim.minWidth || '',\n\t\tmaxWidth: dim.maxWidth || '',\n\t\theight: height || '',\n\t\tminHeight: dim.minHeight || '',\n\t\tmaxHeight: dim.maxHeight || ''\n\t} );\n\n\treturn this;\n};\n\n/**\n * Initialize window contents.\n *\n * Before the window is opened for the first time, #initialize is called so that content that\n * persists between openings can be added to the window.\n *\n * To set up a window with new content each time the window opens, use #getSetupProcess.\n *\n * @throws {Error} An error is thrown if the window is not attached to a window manager\n * @chainable\n * @return {OO.ui.Window} The window, for chaining\n */\nOO.ui.Window.prototype.initialize = function () {\n\tif ( !this.manager ) {\n\t\tthrow new Error( 'Cannot initialize window, must be attached to a manager' );\n\t}\n\n\t// Properties\n\tthis.$head = $( '<div>' );\n\tthis.$body = $( '<div>' );\n\tthis.$foot = $( '<div>' );\n\tthis.$document = $( this.getElementDocument() );\n\n\t// Events\n\tthis.$element.on( 'mousedown', this.onMouseDown.bind( this ) );\n\n\t// Initialization\n\tthis.$head.addClass( 'oo-ui-window-head' );\n\tthis.$body.addClass( 'oo-ui-window-body' );\n\tthis.$foot.addClass( 'oo-ui-window-foot' );\n\tthis.$content.append( this.$head, this.$body, this.$foot );\n\n\treturn this;\n};\n\n/**\n * Called when someone tries to focus the hidden element at the end of the dialog.\n * Sends focus back to the start of the dialog.\n *\n * @param {jQuery.Event} event Focus event\n */\nOO.ui.Window.prototype.onFocusTrapFocused = function ( event ) {\n\tvar backwards = this.$focusTrapBefore.is( event.target ),\n\t\telement = OO.ui.findFocusable( this.$content, backwards );\n\tif ( element ) {\n\t\t// There's a focusable element inside the content, at the front or\n\t\t// back depending on which focus trap we hit; select it.\n\t\telement.focus();\n\t} else {\n\t\t// There's nothing focusable inside the content. As a fallback,\n\t\t// this.$content is focusable, and focusing it will keep our focus\n\t\t// properly trapped. It's not a *meaningful* focus, since it's just\n\t\t// the content-div for the Window, but it's better than letting focus\n\t\t// escape into the page.\n\t\tthis.$content.focus();\n\t}\n};\n\n/**\n * Open the window.\n *\n * This method is a wrapper around a call to the window\n * manager’s {@link OO.ui.WindowManager#openWindow openWindow} method.\n *\n * To customize the window each time it opens, use #getSetupProcess or #getReadyProcess.\n *\n * @param {Object} [data] Window opening data\n * @return {OO.ui.WindowInstance} See OO.ui.WindowManager#openWindow\n * @throws {Error} An error is thrown if the window is not attached to a window manager\n */\nOO.ui.Window.prototype.open = function ( data ) {\n\tif ( !this.manager ) {\n\t\tthrow new Error( 'Cannot open window, must be attached to a manager' );\n\t}\n\n\treturn this.manager.openWindow( this, data );\n};\n\n/**\n * Close the window.\n *\n * This method is a wrapper around a call to the window\n * manager’s {@link OO.ui.WindowManager#closeWindow closeWindow} method.\n *\n * The window's #getHoldProcess and #getTeardownProcess methods are called during the closing\n * phase of the window’s lifecycle and can be used to specify closing behavior each time\n * the window closes.\n *\n * @param {Object} [data] Window closing data\n * @return {OO.ui.WindowInstance} See OO.ui.WindowManager#closeWindow\n * @throws {Error} An error is thrown if the window is not attached to a window manager\n */\nOO.ui.Window.prototype.close = function ( data ) {\n\tif ( !this.manager ) {\n\t\tthrow new Error( 'Cannot close window, must be attached to a manager' );\n\t}\n\n\treturn this.manager.closeWindow( this, data );\n};\n\n/**\n * Setup window.\n *\n * This is called by OO.ui.WindowManager during window opening (before the animation), and should\n * not be called directly by other systems.\n *\n * @param {Object} [data] Window opening data\n * @return {jQuery.Promise} Promise resolved when window is setup\n */\nOO.ui.Window.prototype.setup = function ( data ) {\n\tvar win = this;\n\n\tthis.toggle( true );\n\n\tthis.focusTrapHandler = OO.ui.bind( this.onFocusTrapFocused, this );\n\tthis.$focusTraps.on( 'focus', this.focusTrapHandler );\n\n\treturn this.getSetupProcess( data ).execute().then( function () {\n\t\twin.updateSize();\n\t\t// Force redraw by asking the browser to measure the elements' widths\n\t\twin.$element.addClass( 'oo-ui-window-active oo-ui-window-setup' ).width();\n\t\twin.$content.addClass( 'oo-ui-window-content-setup' ).width();\n\t} );\n};\n\n/**\n * Ready window.\n *\n * This is called by OO.ui.WindowManager during window opening (after the animation), and should not\n * be called directly by other systems.\n *\n * @param {Object} [data] Window opening data\n * @return {jQuery.Promise} Promise resolved when window is ready\n */\nOO.ui.Window.prototype.ready = function ( data ) {\n\tvar win = this;\n\n\tthis.$content.focus();\n\treturn this.getReadyProcess( data ).execute().then( function () {\n\t\t// Force redraw by asking the browser to measure the elements' widths\n\t\twin.$element.addClass( 'oo-ui-window-ready' ).width();\n\t\twin.$content.addClass( 'oo-ui-window-content-ready' ).width();\n\t} );\n};\n\n/**\n * Hold window.\n *\n * This is called by OO.ui.WindowManager during window closing (before the animation), and should\n * not be called directly by other systems.\n *\n * @param {Object} [data] Window closing data\n * @return {jQuery.Promise} Promise resolved when window is held\n */\nOO.ui.Window.prototype.hold = function ( data ) {\n\tvar win = this;\n\n\treturn this.getHoldProcess( data ).execute().then( function () {\n\t\t// Get the focused element within the window's content\n\t\tvar $focus = win.$content.find( OO.ui.Element.static.getDocument( win.$content ).activeElement );\n\n\t\t// Blur the focused element\n\t\tif ( $focus.length ) {\n\t\t\t$focus[ 0 ].blur();\n\t\t}\n\n\t\t// Force redraw by asking the browser to measure the elements' widths\n\t\twin.$element.removeClass( 'oo-ui-window-ready oo-ui-window-setup' ).width();\n\t\twin.$content.removeClass( 'oo-ui-window-content-ready oo-ui-window-content-setup' ).width();\n\t} );\n};\n\n/**\n * Teardown window.\n *\n * This is called by OO.ui.WindowManager during window closing (after the animation), and should not be called directly\n * by other systems.\n *\n * @param {Object} [data] Window closing data\n * @return {jQuery.Promise} Promise resolved when window is torn down\n */\nOO.ui.Window.prototype.teardown = function ( data ) {\n\tvar win = this;\n\n\treturn this.getTeardownProcess( data ).execute().then( function () {\n\t\t// Force redraw by asking the browser to measure the elements' widths\n\t\twin.$element.removeClass( 'oo-ui-window-active' ).width();\n\n\t\twin.$focusTraps.off( 'focus', win.focusTrapHandler );\n\t\twin.toggle( false );\n\t} );\n};\n","/**\n * The Dialog class serves as the base class for the other types of dialogs.\n * Unless extended to include controls, the rendered dialog box is a simple window\n * that users can close by hitting the ‘Esc’ key. Dialog windows are used with OO.ui.WindowManager,\n * which opens, closes, and controls the presentation of the window. See the\n * [OOUI documentation on MediaWiki] [1] for more information.\n *\n *     @example\n *     // A simple dialog window.\n *     function MyDialog( config ) {\n *         MyDialog.parent.call( this, config );\n *     }\n *     OO.inheritClass( MyDialog, OO.ui.Dialog );\n *     MyDialog.static.name = 'myDialog';\n *     MyDialog.prototype.initialize = function () {\n *         MyDialog.parent.prototype.initialize.call( this );\n *         this.content = new OO.ui.PanelLayout( { padded: true, expanded: false } );\n *         this.content.$element.append( '<p>A simple dialog window. Press \\'Esc\\' to close.</p>' );\n *         this.$body.append( this.content.$element );\n *     };\n *     MyDialog.prototype.getBodyHeight = function () {\n *         return this.content.$element.outerHeight( true );\n *     };\n *     var myDialog = new MyDialog( {\n *         size: 'medium'\n *     } );\n *     // Create and append a window manager, which opens and closes the window.\n *     var windowManager = new OO.ui.WindowManager();\n *     $( 'body' ).append( windowManager.$element );\n *     windowManager.addWindows( [ myDialog ] );\n *     // Open the window!\n *     windowManager.openWindow( myDialog );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows/Dialogs\n *\n * @abstract\n * @class\n * @extends OO.ui.Window\n * @mixins OO.ui.mixin.PendingElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.Dialog = function OoUiDialog( config ) {\n\t// Parent constructor\n\tOO.ui.Dialog.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.PendingElement.call( this );\n\n\t// Properties\n\tthis.actions = new OO.ui.ActionSet();\n\tthis.attachedActions = [];\n\tthis.currentAction = null;\n\tthis.onDialogKeyDownHandler = this.onDialogKeyDown.bind( this );\n\n\t// Events\n\tthis.actions.connect( this, {\n\t\tclick: 'onActionClick',\n\t\tchange: 'onActionsChange'\n\t} );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-dialog' )\n\t\t.attr( 'role', 'dialog' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.Dialog, OO.ui.Window );\nOO.mixinClass( OO.ui.Dialog, OO.ui.mixin.PendingElement );\n\n/* Static Properties */\n\n/**\n * Symbolic name of dialog.\n *\n * The dialog class must have a symbolic name in order to be registered with OO.Factory.\n * Please see the [OOUI documentation on MediaWiki] [3] for more information.\n *\n * [3]: https://www.mediawiki.org/wiki/OOUI/Windows/Window_managers\n *\n * @abstract\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.Dialog.static.name = '';\n\n/**\n * The dialog title.\n *\n * The title can be specified as a plaintext string, a {@link OO.ui.mixin.LabelElement Label} node, or a function\n * that will produce a Label node or string. The title can also be specified with data passed to the\n * constructor (see #getSetupProcess). In this case, the static value will be overridden.\n *\n * @abstract\n * @static\n * @inheritable\n * @property {jQuery|string|Function}\n */\nOO.ui.Dialog.static.title = '';\n\n/**\n * An array of configured {@link OO.ui.ActionWidget action widgets}.\n *\n * Actions can also be specified with data passed to the constructor (see #getSetupProcess). In this case, the static\n * value will be overridden.\n *\n * [2]: https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs#Action_sets\n *\n * @static\n * @inheritable\n * @property {Object[]}\n */\nOO.ui.Dialog.static.actions = [];\n\n/**\n * Close the dialog when the 'Esc' key is pressed.\n *\n * @static\n * @abstract\n * @inheritable\n * @property {boolean}\n */\nOO.ui.Dialog.static.escapable = true;\n\n/* Methods */\n\n/**\n * Handle frame document key down events.\n *\n * @private\n * @param {jQuery.Event} e Key down event\n */\nOO.ui.Dialog.prototype.onDialogKeyDown = function ( e ) {\n\tvar actions;\n\tif ( e.which === OO.ui.Keys.ESCAPE && this.constructor.static.escapable ) {\n\t\tthis.executeAction( '' );\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t} else if ( e.which === OO.ui.Keys.ENTER && ( e.ctrlKey || e.metaKey ) ) {\n\t\tactions = this.actions.get( { flags: 'primary', visible: true, disabled: false } );\n\t\tif ( actions.length > 0 ) {\n\t\t\tthis.executeAction( actions[ 0 ].getAction() );\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n};\n\n/**\n * Handle action click events.\n *\n * @private\n * @param {OO.ui.ActionWidget} action Action that was clicked\n */\nOO.ui.Dialog.prototype.onActionClick = function ( action ) {\n\tif ( !this.isPending() ) {\n\t\tthis.executeAction( action.getAction() );\n\t}\n};\n\n/**\n * Handle actions change event.\n *\n * @private\n */\nOO.ui.Dialog.prototype.onActionsChange = function () {\n\tthis.detachActions();\n\tif ( !this.isClosing() ) {\n\t\tthis.attachActions();\n\t\tif ( !this.isOpening() ) {\n\t\t\t// If the dialog is currently opening, this will be called automatically soon.\n\t\t\tthis.updateSize();\n\t\t}\n\t}\n};\n\n/**\n * Get the set of actions used by the dialog.\n *\n * @return {OO.ui.ActionSet}\n */\nOO.ui.Dialog.prototype.getActions = function () {\n\treturn this.actions;\n};\n\n/**\n * Get a process for taking action.\n *\n * When you override this method, you can create a new OO.ui.Process and return it, or add additional\n * accept steps to the process the parent method provides using the {@link OO.ui.Process#first 'first'}\n * and {@link OO.ui.Process#next 'next'} methods of OO.ui.Process.\n *\n * @param {string} [action] Symbolic name of action\n * @return {OO.ui.Process} Action process\n */\nOO.ui.Dialog.prototype.getActionProcess = function ( action ) {\n\treturn new OO.ui.Process()\n\t\t.next( function () {\n\t\t\tif ( !action ) {\n\t\t\t\t// An empty action always closes the dialog without data, which should always be\n\t\t\t\t// safe and make no changes\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t}, this );\n};\n\n/**\n * @inheritdoc\n *\n * @param {Object} [data] Dialog opening data\n * @param {jQuery|string|Function|null} [data.title] Dialog title, omit to use\n *  the {@link #static-title static title}\n * @param {Object[]} [data.actions] List of configuration options for each\n *   {@link OO.ui.ActionWidget action widget}, omit to use {@link #static-actions static actions}.\n */\nOO.ui.Dialog.prototype.getSetupProcess = function ( data ) {\n\tdata = data || {};\n\n\t// Parent method\n\treturn OO.ui.Dialog.parent.prototype.getSetupProcess.call( this, data )\n\t\t.next( function () {\n\t\t\tvar config = this.constructor.static,\n\t\t\t\tactions = data.actions !== undefined ? data.actions : config.actions,\n\t\t\t\ttitle = data.title !== undefined ? data.title : config.title;\n\n\t\t\tthis.title.setLabel( title ).setTitle( title );\n\t\t\tthis.actions.add( this.getActionWidgets( actions ) );\n\n\t\t\tthis.$element.on( 'keydown', this.onDialogKeyDownHandler );\n\t\t}, this );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.Dialog.prototype.getTeardownProcess = function ( data ) {\n\t// Parent method\n\treturn OO.ui.Dialog.parent.prototype.getTeardownProcess.call( this, data )\n\t\t.first( function () {\n\t\t\tthis.$element.off( 'keydown', this.onDialogKeyDownHandler );\n\n\t\t\tthis.actions.clear();\n\t\t\tthis.currentAction = null;\n\t\t}, this );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.Dialog.prototype.initialize = function () {\n\t// Parent method\n\tOO.ui.Dialog.parent.prototype.initialize.call( this );\n\n\t// Properties\n\tthis.title = new OO.ui.LabelWidget();\n\n\t// Initialization\n\tthis.$content.addClass( 'oo-ui-dialog-content' );\n\tthis.$element.attr( 'aria-labelledby', this.title.getElementId() );\n\tthis.setPendingElement( this.$head );\n};\n\n/**\n * Get action widgets from a list of configs\n *\n * @param {Object[]} actions Action widget configs\n * @return {OO.ui.ActionWidget[]} Action widgets\n */\nOO.ui.Dialog.prototype.getActionWidgets = function ( actions ) {\n\tvar i, len, widgets = [];\n\tfor ( i = 0, len = actions.length; i < len; i++ ) {\n\t\twidgets.push( this.getActionWidget( actions[ i ] ) );\n\t}\n\treturn widgets;\n};\n\n/**\n * Get action widget from config\n *\n * Override this method to change the action widget class used.\n *\n * @param {Object} config Action widget config\n * @return {OO.ui.ActionWidget} Action widget\n */\nOO.ui.Dialog.prototype.getActionWidget = function ( config ) {\n\treturn new OO.ui.ActionWidget( this.getActionWidgetConfig( config ) );\n};\n\n/**\n * Get action widget config\n *\n * Override this method to modify the action widget config\n *\n * @param {Object} config Initial action widget config\n * @return {Object} Action widget config\n */\nOO.ui.Dialog.prototype.getActionWidgetConfig = function ( config ) {\n\treturn config;\n};\n\n/**\n * Attach action actions.\n *\n * @protected\n */\nOO.ui.Dialog.prototype.attachActions = function () {\n\t// Remember the list of potentially attached actions\n\tthis.attachedActions = this.actions.get();\n};\n\n/**\n * Detach action actions.\n *\n * @protected\n * @chainable\n * @return {OO.ui.Dialog} The dialog, for chaining\n */\nOO.ui.Dialog.prototype.detachActions = function () {\n\tvar i, len;\n\n\t// Detach all actions that may have been previously attached\n\tfor ( i = 0, len = this.attachedActions.length; i < len; i++ ) {\n\t\tthis.attachedActions[ i ].$element.detach();\n\t}\n\tthis.attachedActions = [];\n\n\treturn this;\n};\n\n/**\n * Execute an action.\n *\n * @param {string} action Symbolic name of action to execute\n * @return {jQuery.Promise} Promise resolved when action completes, rejected if it fails\n */\nOO.ui.Dialog.prototype.executeAction = function ( action ) {\n\tthis.pushPending();\n\tthis.currentAction = action;\n\treturn this.getActionProcess( action ).execute()\n\t\t.always( this.popPending.bind( this ) );\n};\n","/**\n * MessageDialogs display a confirmation or alert message. By default, the rendered dialog box\n * consists of a header that contains the dialog title, a body with the message, and a footer that\n * contains any {@link OO.ui.ActionWidget action widgets}. The MessageDialog class is the only type\n * of {@link OO.ui.Dialog dialog} that is usually instantiated directly.\n *\n * There are two basic types of message dialogs, confirmation and alert:\n *\n * - **confirmation**: the dialog title describes what a progressive action will do and the message provides\n *  more details about the consequences.\n * - **alert**: the dialog title describes which event occurred and the message provides more information\n *  about why the event occurred.\n *\n * The MessageDialog class specifies two actions: ‘accept’, the primary\n * action (e.g., ‘ok’) and ‘reject,’ the safe action (e.g., ‘cancel’). Both will close the window,\n * passing along the selected action.\n *\n * For more information and examples, please see the [OOUI documentation on MediaWiki][1].\n *\n *     @example\n *     // Example: Creating and opening a message dialog window.\n *     var messageDialog = new OO.ui.MessageDialog();\n *\n *     // Create and append a window manager.\n *     var windowManager = new OO.ui.WindowManager();\n *     $( 'body' ).append( windowManager.$element );\n *     windowManager.addWindows( [ messageDialog ] );\n *     // Open the window.\n *     windowManager.openWindow( messageDialog, {\n *         title: 'Basic message dialog',\n *         message: 'This is the message'\n *     } );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows/Message_Dialogs\n *\n * @class\n * @extends OO.ui.Dialog\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.MessageDialog = function OoUiMessageDialog( config ) {\n\t// Parent constructor\n\tOO.ui.MessageDialog.parent.call( this, config );\n\n\t// Properties\n\tthis.verticalActionLayout = null;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-messageDialog' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MessageDialog, OO.ui.Dialog );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.MessageDialog.static.name = 'message';\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.MessageDialog.static.size = 'small';\n\n/**\n * Dialog title.\n *\n * The title of a confirmation dialog describes what a progressive action will do. The\n * title of an alert dialog describes which event occurred.\n *\n * @static\n * @inheritable\n * @property {jQuery|string|Function|null}\n */\nOO.ui.MessageDialog.static.title = null;\n\n/**\n * The message displayed in the dialog body.\n *\n * A confirmation message describes the consequences of a progressive action. An alert\n * message describes why an event occurred.\n *\n * @static\n * @inheritable\n * @property {jQuery|string|Function|null}\n */\nOO.ui.MessageDialog.static.message = null;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.MessageDialog.static.actions = [\n\t// Note that OO.ui.alert() and OO.ui.confirm() rely on these.\n\t{ action: 'accept', label: OO.ui.deferMsg( 'ooui-dialog-message-accept' ), flags: 'primary' },\n\t{ action: 'reject', label: OO.ui.deferMsg( 'ooui-dialog-message-reject' ), flags: 'safe' }\n];\n\n/* Methods */\n\n/**\n * Toggle action layout between vertical and horizontal.\n *\n * @private\n * @param {boolean} [value] Layout actions vertically, omit to toggle\n * @chainable\n * @return {OO.ui.MessageDialog} The dialog, for chaining\n */\nOO.ui.MessageDialog.prototype.toggleVerticalActionLayout = function ( value ) {\n\tvalue = value === undefined ? !this.verticalActionLayout : !!value;\n\n\tif ( value !== this.verticalActionLayout ) {\n\t\tthis.verticalActionLayout = value;\n\t\tthis.$actions\n\t\t\t.toggleClass( 'oo-ui-messageDialog-actions-vertical', value )\n\t\t\t.toggleClass( 'oo-ui-messageDialog-actions-horizontal', !value );\n\t}\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.getActionProcess = function ( action ) {\n\tif ( action ) {\n\t\treturn new OO.ui.Process( function () {\n\t\t\tthis.close( { action: action } );\n\t\t}, this );\n\t}\n\treturn OO.ui.MessageDialog.parent.prototype.getActionProcess.call( this, action );\n};\n\n/**\n * @inheritdoc\n *\n * @param {Object} [data] Dialog opening data\n * @param {jQuery|string|Function|null} [data.title] Description of the action being confirmed\n * @param {jQuery|string|Function|null} [data.message] Description of the action's consequence\n * @param {string} [data.size] Symbolic name of the dialog size, see OO.ui.Window\n * @param {Object[]} [data.actions] List of OO.ui.ActionOptionWidget configuration options for each\n *   action item\n */\nOO.ui.MessageDialog.prototype.getSetupProcess = function ( data ) {\n\tdata = data || {};\n\n\t// Parent method\n\treturn OO.ui.MessageDialog.parent.prototype.getSetupProcess.call( this, data )\n\t\t.next( function () {\n\t\t\tthis.title.setLabel(\n\t\t\t\tdata.title !== undefined ? data.title : this.constructor.static.title\n\t\t\t);\n\t\t\tthis.message.setLabel(\n\t\t\t\tdata.message !== undefined ? data.message : this.constructor.static.message\n\t\t\t);\n\t\t\tthis.size = data.size !== undefined ? data.size : this.constructor.static.size;\n\t\t}, this );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.getReadyProcess = function ( data ) {\n\tdata = data || {};\n\n\t// Parent method\n\treturn OO.ui.MessageDialog.parent.prototype.getReadyProcess.call( this, data )\n\t\t.next( function () {\n\t\t\t// Focus the primary action button\n\t\t\tvar actions = this.actions.get();\n\t\t\tactions = actions.filter( function ( action ) {\n\t\t\t\treturn action.getFlags().indexOf( 'primary' ) > -1;\n\t\t\t} );\n\t\t\tif ( actions.length > 0 ) {\n\t\t\t\tactions[ 0 ].focus();\n\t\t\t}\n\t\t}, this );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.getBodyHeight = function () {\n\tvar bodyHeight, oldOverflow,\n\t\t$scrollable = this.container.$element;\n\n\toldOverflow = $scrollable[ 0 ].style.overflow;\n\t$scrollable[ 0 ].style.overflow = 'hidden';\n\n\tOO.ui.Element.static.reconsiderScrollbars( $scrollable[ 0 ] );\n\n\tbodyHeight = this.text.$element.outerHeight( true );\n\t$scrollable[ 0 ].style.overflow = oldOverflow;\n\n\treturn bodyHeight;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.setDimensions = function ( dim ) {\n\tvar\n\t\tdialog = this,\n\t\t$scrollable = this.container.$element;\n\tOO.ui.MessageDialog.parent.prototype.setDimensions.call( this, dim );\n\n\t// Twiddle the overflow property, otherwise an unnecessary scrollbar will be produced.\n\t// Need to do it after transition completes (250ms), add 50ms just in case.\n\tsetTimeout( function () {\n\t\tvar oldOverflow = $scrollable[ 0 ].style.overflow,\n\t\t\tactiveElement = document.activeElement;\n\n\t\t$scrollable[ 0 ].style.overflow = 'hidden';\n\n\t\tOO.ui.Element.static.reconsiderScrollbars( $scrollable[ 0 ] );\n\n\t\t// Check reconsiderScrollbars didn't destroy our focus, as we\n\t\t// are doing this after the ready process.\n\t\tif ( activeElement && activeElement !== document.activeElement && activeElement.focus ) {\n\t\t\tactiveElement.focus();\n\t\t}\n\n\t\t$scrollable[ 0 ].style.overflow = oldOverflow;\n\t}, 300 );\n\n\tdialog.fitActions();\n\t// Wait for CSS transition to finish and do it again :(\n\tsetTimeout( function () {\n\t\tdialog.fitActions();\n\t}, 300 );\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.initialize = function () {\n\t// Parent method\n\tOO.ui.MessageDialog.parent.prototype.initialize.call( this );\n\n\t// Properties\n\tthis.$actions = $( '<div>' );\n\tthis.container = new OO.ui.PanelLayout( {\n\t\tscrollable: true, classes: [ 'oo-ui-messageDialog-container' ]\n\t} );\n\tthis.text = new OO.ui.PanelLayout( {\n\t\tpadded: true, expanded: false, classes: [ 'oo-ui-messageDialog-text' ]\n\t} );\n\tthis.message = new OO.ui.LabelWidget( {\n\t\tclasses: [ 'oo-ui-messageDialog-message' ]\n\t} );\n\n\t// Initialization\n\tthis.title.$element.addClass( 'oo-ui-messageDialog-title' );\n\tthis.$content.addClass( 'oo-ui-messageDialog-content' );\n\tthis.container.$element.append( this.text.$element );\n\tthis.text.$element.append( this.title.$element, this.message.$element );\n\tthis.$body.append( this.container.$element );\n\tthis.$actions.addClass( 'oo-ui-messageDialog-actions' );\n\tthis.$foot.append( this.$actions );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.getActionWidgetConfig = function ( config ) {\n\t// Force unframed\n\treturn $.extend( {}, config, { framed: false } );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.attachActions = function () {\n\tvar i, len, special, others;\n\n\t// Parent method\n\tOO.ui.MessageDialog.parent.prototype.attachActions.call( this );\n\n\tspecial = this.actions.getSpecial();\n\tothers = this.actions.getOthers();\n\n\tif ( special.safe ) {\n\t\tthis.$actions.append( special.safe.$element );\n\t\tspecial.safe.toggleFramed( true );\n\t}\n\tfor ( i = 0, len = others.length; i < len; i++ ) {\n\t\tthis.$actions.append( others[ i ].$element );\n\t\tothers[ i ].toggleFramed( true );\n\t}\n\tif ( special.primary ) {\n\t\tthis.$actions.append( special.primary.$element );\n\t\tspecial.primary.toggleFramed( true );\n\t}\n};\n\n/**\n * Fit action actions into columns or rows.\n *\n * Columns will be used if all labels can fit without overflow, otherwise rows will be used.\n *\n * @private\n */\nOO.ui.MessageDialog.prototype.fitActions = function () {\n\tvar i, len, action,\n\t\tprevious = this.verticalActionLayout,\n\t\tactions = this.actions.get();\n\n\t// Detect clipping\n\tthis.toggleVerticalActionLayout( false );\n\tfor ( i = 0, len = actions.length; i < len; i++ ) {\n\t\taction = actions[ i ];\n\t\tif ( action.$element[ 0 ].scrollWidth > action.$element[ 0 ].clientWidth ) {\n\t\t\tthis.toggleVerticalActionLayout( true );\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Move the body out of the way of the foot\n\tthis.$body.css( 'bottom', this.$foot.outerHeight( true ) );\n\n\tif ( this.verticalActionLayout !== previous ) {\n\t\t// We changed the layout, window height might need to be updated.\n\t\tthis.updateSize();\n\t}\n};\n","/**\n * ProcessDialog windows encapsulate a {@link OO.ui.Process process} and all of the code necessary\n * to complete it. If the process terminates with an error, a customizable {@link OO.ui.Error error\n * interface} alerts users to the trouble, permitting the user to dismiss the error and try again when\n * relevant. The ProcessDialog class is always extended and customized with the actions and content\n * required for each process.\n *\n * The process dialog box consists of a header that visually represents the ‘working’ state of long\n * processes with an animation. The header contains the dialog title as well as\n * two {@link OO.ui.ActionWidget action widgets}:  a ‘safe’ action on the left (e.g., ‘Cancel’) and\n * a ‘primary’ action on the right (e.g., ‘Done’).\n *\n * Like other windows, the process dialog is managed by a {@link OO.ui.WindowManager window manager}.\n * Please see the [OOUI documentation on MediaWiki][1] for more information and examples.\n *\n *     @example\n *     // Example: Creating and opening a process dialog window.\n *     function MyProcessDialog( config ) {\n *         MyProcessDialog.parent.call( this, config );\n *     }\n *     OO.inheritClass( MyProcessDialog, OO.ui.ProcessDialog );\n *\n *     MyProcessDialog.static.name = 'myProcessDialog';\n *     MyProcessDialog.static.title = 'Process dialog';\n *     MyProcessDialog.static.actions = [\n *         { action: 'save', label: 'Done', flags: 'primary' },\n *         { label: 'Cancel', flags: 'safe' }\n *     ];\n *\n *     MyProcessDialog.prototype.initialize = function () {\n *         MyProcessDialog.parent.prototype.initialize.apply( this, arguments );\n *         this.content = new OO.ui.PanelLayout( { padded: true, expanded: false } );\n *         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>' );\n *         this.$body.append( this.content.$element );\n *     };\n *     MyProcessDialog.prototype.getActionProcess = function ( action ) {\n *         var dialog = this;\n *         if ( action ) {\n *             return new OO.ui.Process( function () {\n *                 dialog.close( { action: action } );\n *             } );\n *         }\n *         return MyProcessDialog.parent.prototype.getActionProcess.call( this, action );\n *     };\n *\n *     var windowManager = new OO.ui.WindowManager();\n *     $( 'body' ).append( windowManager.$element );\n *\n *     var dialog = new MyProcessDialog();\n *     windowManager.addWindows( [ dialog ] );\n *     windowManager.openWindow( dialog );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs\n *\n * @abstract\n * @class\n * @extends OO.ui.Dialog\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.ProcessDialog = function OoUiProcessDialog( config ) {\n\t// Parent constructor\n\tOO.ui.ProcessDialog.parent.call( this, config );\n\n\t// Properties\n\tthis.fitOnOpen = false;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-processDialog' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ProcessDialog, OO.ui.Dialog );\n\n/* Methods */\n\n/**\n * Handle dismiss button click events.\n *\n * Hides errors.\n *\n * @private\n */\nOO.ui.ProcessDialog.prototype.onDismissErrorButtonClick = function () {\n\tthis.hideErrors();\n};\n\n/**\n * Handle retry button click events.\n *\n * Hides errors and then tries again.\n *\n * @private\n */\nOO.ui.ProcessDialog.prototype.onRetryButtonClick = function () {\n\tthis.hideErrors();\n\tthis.executeAction( this.currentAction );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ProcessDialog.prototype.initialize = function () {\n\t// Parent method\n\tOO.ui.ProcessDialog.parent.prototype.initialize.call( this );\n\n\t// Properties\n\tthis.$navigation = $( '<div>' );\n\tthis.$location = $( '<div>' );\n\tthis.$safeActions = $( '<div>' );\n\tthis.$primaryActions = $( '<div>' );\n\tthis.$otherActions = $( '<div>' );\n\tthis.dismissButton = new OO.ui.ButtonWidget( {\n\t\tlabel: OO.ui.msg( 'ooui-dialog-process-dismiss' )\n\t} );\n\tthis.retryButton = new OO.ui.ButtonWidget();\n\tthis.$errors = $( '<div>' );\n\tthis.$errorsTitle = $( '<div>' );\n\n\t// Events\n\tthis.dismissButton.connect( this, { click: 'onDismissErrorButtonClick' } );\n\tthis.retryButton.connect( this, { click: 'onRetryButtonClick' } );\n\tthis.title.connect( this, { labelChange: 'fitLabel' } );\n\n\t// Initialization\n\tthis.title.$element.addClass( 'oo-ui-processDialog-title' );\n\tthis.$location\n\t\t.append( this.title.$element )\n\t\t.addClass( 'oo-ui-processDialog-location' );\n\tthis.$safeActions.addClass( 'oo-ui-processDialog-actions-safe' );\n\tthis.$primaryActions.addClass( 'oo-ui-processDialog-actions-primary' );\n\tthis.$otherActions.addClass( 'oo-ui-processDialog-actions-other' );\n\tthis.$errorsTitle\n\t\t.addClass( 'oo-ui-processDialog-errors-title' )\n\t\t.text( OO.ui.msg( 'ooui-dialog-process-error' ) );\n\tthis.$errors\n\t\t.addClass( 'oo-ui-processDialog-errors oo-ui-element-hidden' )\n\t\t.append( this.$errorsTitle, this.dismissButton.$element, this.retryButton.$element );\n\tthis.$content\n\t\t.addClass( 'oo-ui-processDialog-content' )\n\t\t.append( this.$errors );\n\tthis.$navigation\n\t\t.addClass( 'oo-ui-processDialog-navigation' )\n\t\t// Note: Order of appends below is important. These are in the order\n\t\t// we want tab to go through them. Display-order is handled entirely\n\t\t// by CSS absolute-positioning. As such, primary actions like \"done\"\n\t\t// should go first.\n\t\t.append( this.$primaryActions, this.$location, this.$safeActions );\n\tthis.$head.append( this.$navigation );\n\tthis.$foot.append( this.$otherActions );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ProcessDialog.prototype.getActionWidgetConfig = function ( config ) {\n\tvar isMobile = OO.ui.isMobile();\n\n\t// Default to unframed on mobile\n\tconfig = $.extend( { framed: !isMobile }, config );\n\t// Change back buttons to icon only on mobile\n\tif (\n\t\tisMobile &&\n\t\t( config.flags === 'back' || ( Array.isArray( config.flags ) && config.flags.indexOf( 'back' ) !== -1 ) )\n\t) {\n\t\t$.extend( config, {\n\t\t\ticon: 'previous',\n\t\t\tlabel: ''\n\t\t} );\n\t}\n\n\treturn config;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ProcessDialog.prototype.attachActions = function () {\n\tvar i, len, other, special, others;\n\n\t// Parent method\n\tOO.ui.ProcessDialog.parent.prototype.attachActions.call( this );\n\n\tspecial = this.actions.getSpecial();\n\tothers = this.actions.getOthers();\n\tif ( special.primary ) {\n\t\tthis.$primaryActions.append( special.primary.$element );\n\t}\n\tfor ( i = 0, len = others.length; i < len; i++ ) {\n\t\tother = others[ i ];\n\t\tthis.$otherActions.append( other.$element );\n\t}\n\tif ( special.safe ) {\n\t\tthis.$safeActions.append( special.safe.$element );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ProcessDialog.prototype.executeAction = function ( action ) {\n\tvar process = this;\n\treturn OO.ui.ProcessDialog.parent.prototype.executeAction.call( this, action )\n\t\t.fail( function ( errors ) {\n\t\t\tprocess.showErrors( errors || [] );\n\t\t} );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ProcessDialog.prototype.setDimensions = function () {\n\tvar dialog = this;\n\n\t// Parent method\n\tOO.ui.ProcessDialog.parent.prototype.setDimensions.apply( this, arguments );\n\n\tthis.fitLabel();\n\n\t// If there are many actions, they might be shown on multiple lines. Their layout can change when\n\t// resizing the dialog and when changing the actions. Adjust the height of the footer to fit them.\n\tdialog.$body.css( 'bottom', dialog.$foot.outerHeight( true ) );\n\t// Wait for CSS transition to finish and do it again :(\n\tsetTimeout( function () {\n\t\tdialog.$body.css( 'bottom', dialog.$foot.outerHeight( true ) );\n\t}, 300 );\n};\n\n/**\n * Fit label between actions.\n *\n * @private\n * @chainable\n * @return {OO.ui.MessageDialog} The dialog, for chaining\n */\nOO.ui.ProcessDialog.prototype.fitLabel = function () {\n\tvar safeWidth, primaryWidth, biggerWidth, labelWidth, navigationWidth, leftWidth, rightWidth,\n\t\tsize = this.getSizeProperties();\n\n\tif ( typeof size.width !== 'number' ) {\n\t\tif ( this.isOpened() ) {\n\t\t\tnavigationWidth = this.$head.width() - 20;\n\t\t} else if ( this.isOpening() ) {\n\t\t\tif ( !this.fitOnOpen ) {\n\t\t\t\t// Size is relative and the dialog isn't open yet, so wait.\n\t\t\t\t// FIXME: This should ideally be handled by setup somehow.\n\t\t\t\tthis.manager.lifecycle.opened.done( this.fitLabel.bind( this ) );\n\t\t\t\tthis.fitOnOpen = true;\n\t\t\t}\n\t\t\treturn;\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\t} else {\n\t\tnavigationWidth = size.width - 20;\n\t}\n\n\tsafeWidth = this.$safeActions.is( ':visible' ) ? this.$safeActions.width() : 0;\n\tprimaryWidth = this.$primaryActions.is( ':visible' ) ? this.$primaryActions.width() : 0;\n\tbiggerWidth = Math.max( safeWidth, primaryWidth );\n\n\tlabelWidth = this.title.$element.width();\n\n\tif ( 2 * biggerWidth + labelWidth < navigationWidth ) {\n\t\t// We have enough space to center the label\n\t\tleftWidth = rightWidth = biggerWidth;\n\t} else {\n\t\t// Let's hope we at least have enough space not to overlap, because we can't wrap the label…\n\t\tif ( this.getDir() === 'ltr' ) {\n\t\t\tleftWidth = safeWidth;\n\t\t\trightWidth = primaryWidth;\n\t\t} else {\n\t\t\tleftWidth = primaryWidth;\n\t\t\trightWidth = safeWidth;\n\t\t}\n\t}\n\n\tthis.$location.css( { paddingLeft: leftWidth, paddingRight: rightWidth } );\n\n\treturn this;\n};\n\n/**\n * Handle errors that occurred during accept or reject processes.\n *\n * @private\n * @param {OO.ui.Error[]|OO.ui.Error} errors Errors to be handled\n */\nOO.ui.ProcessDialog.prototype.showErrors = function ( errors ) {\n\tvar i, len, $item, actions,\n\t\titems = [],\n\t\tabilities = {},\n\t\trecoverable = true,\n\t\twarning = false;\n\n\tif ( errors instanceof OO.ui.Error ) {\n\t\terrors = [ errors ];\n\t}\n\n\tfor ( i = 0, len = errors.length; i < len; i++ ) {\n\t\tif ( !errors[ i ].isRecoverable() ) {\n\t\t\trecoverable = false;\n\t\t}\n\t\tif ( errors[ i ].isWarning() ) {\n\t\t\twarning = true;\n\t\t}\n\t\t$item = $( '<div>' )\n\t\t\t.addClass( 'oo-ui-processDialog-error' )\n\t\t\t.append( errors[ i ].getMessage() );\n\t\titems.push( $item[ 0 ] );\n\t}\n\tthis.$errorItems = $( items );\n\tif ( recoverable ) {\n\t\tabilities[ this.currentAction ] = true;\n\t\t// Copy the flags from the first matching action\n\t\tactions = this.actions.get( { actions: this.currentAction } );\n\t\tif ( actions.length ) {\n\t\t\tthis.retryButton.clearFlags().setFlags( actions[ 0 ].getFlags() );\n\t\t}\n\t} else {\n\t\tabilities[ this.currentAction ] = false;\n\t\tthis.actions.setAbilities( abilities );\n\t}\n\tif ( warning ) {\n\t\tthis.retryButton.setLabel( OO.ui.msg( 'ooui-dialog-process-continue' ) );\n\t} else {\n\t\tthis.retryButton.setLabel( OO.ui.msg( 'ooui-dialog-process-retry' ) );\n\t}\n\tthis.retryButton.toggle( recoverable );\n\tthis.$errorsTitle.after( this.$errorItems );\n\tthis.$errors.removeClass( 'oo-ui-element-hidden' ).scrollTop( 0 );\n};\n\n/**\n * Hide errors.\n *\n * @private\n */\nOO.ui.ProcessDialog.prototype.hideErrors = function () {\n\tthis.$errors.addClass( 'oo-ui-element-hidden' );\n\tif ( this.$errorItems ) {\n\t\tthis.$errorItems.remove();\n\t\tthis.$errorItems = null;\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ProcessDialog.prototype.getTeardownProcess = function ( data ) {\n\t// Parent method\n\treturn OO.ui.ProcessDialog.parent.prototype.getTeardownProcess.call( this, data )\n\t\t.first( function () {\n\t\t\t// Make sure to hide errors\n\t\t\tthis.hideErrors();\n\t\t\tthis.fitOnOpen = false;\n\t\t}, this );\n};\n","/**\n * @class OO.ui\n */\n\n/**\n * Lazy-initialize and return a global OO.ui.WindowManager instance, used by OO.ui.alert and\n * OO.ui.confirm.\n *\n * @private\n * @return {OO.ui.WindowManager}\n */\nOO.ui.getWindowManager = function () {\n\tif ( !OO.ui.windowManager ) {\n\t\tOO.ui.windowManager = new OO.ui.WindowManager();\n\t\t$( 'body' ).append( OO.ui.windowManager.$element );\n\t\tOO.ui.windowManager.addWindows( [ new OO.ui.MessageDialog() ] );\n\t}\n\treturn OO.ui.windowManager;\n};\n\n/**\n * Display a quick modal alert dialog, using a OO.ui.MessageDialog. While the dialog is open, the\n * rest of the page will be dimmed out and the user won't be able to interact with it. The dialog\n * has only one action button, labelled \"OK\", clicking it will simply close the dialog.\n *\n * A window manager is created automatically when this function is called for the first time.\n *\n *     @example\n *     OO.ui.alert( 'Something happened!' ).done( function () {\n *         console.log( 'User closed the dialog.' );\n *     } );\n *\n *     OO.ui.alert( 'Something larger happened!', { size: 'large' } );\n *\n * @param {jQuery|string} text Message text to display\n * @param {Object} [options] Additional options, see OO.ui.MessageDialog#getSetupProcess\n * @return {jQuery.Promise} Promise resolved when the user closes the dialog\n */\nOO.ui.alert = function ( text, options ) {\n\treturn OO.ui.getWindowManager().openWindow( 'message', $.extend( {\n\t\tmessage: text,\n\t\tactions: [ OO.ui.MessageDialog.static.actions[ 0 ] ]\n\t}, options ) ).closed.then( function () {\n\t\treturn undefined;\n\t} );\n};\n\n/**\n * Display a quick modal confirmation dialog, using a OO.ui.MessageDialog. While the dialog is open,\n * the rest of the page will be dimmed out and the user won't be able to interact with it. The\n * dialog has two action buttons, one to confirm an operation (labelled \"OK\") and one to cancel it\n * (labelled \"Cancel\").\n *\n * A window manager is created automatically when this function is called for the first time.\n *\n *     @example\n *     OO.ui.confirm( 'Are you sure?' ).done( function ( confirmed ) {\n *         if ( confirmed ) {\n *             console.log( 'User clicked \"OK\"!' );\n *         } else {\n *             console.log( 'User clicked \"Cancel\" or closed the dialog.' );\n *         }\n *     } );\n *\n * @param {jQuery|string} text Message text to display\n * @param {Object} [options] Additional options, see OO.ui.MessageDialog#getSetupProcess\n * @return {jQuery.Promise} Promise resolved when the user closes the dialog. If the user chose to\n *  confirm, the promise will resolve to boolean `true`; otherwise, it will resolve to boolean\n *  `false`.\n */\nOO.ui.confirm = function ( text, options ) {\n\treturn OO.ui.getWindowManager().openWindow( 'message', $.extend( {\n\t\tmessage: text\n\t}, options ) ).closed.then( function ( data ) {\n\t\treturn !!( data && data.action === 'accept' );\n\t} );\n};\n\n/**\n * Display a quick modal prompt dialog, using a OO.ui.MessageDialog. While the dialog is open,\n * the rest of the page will be dimmed out and the user won't be able to interact with it. The\n * dialog has a text input widget and two action buttons, one to confirm an operation (labelled \"OK\")\n * and one to cancel it (labelled \"Cancel\").\n *\n * A window manager is created automatically when this function is called for the first time.\n *\n *     @example\n *     OO.ui.prompt( 'Choose a line to go to', { textInput: { placeholder: 'Line number' } } ).done( function ( result ) {\n *         if ( result !== null ) {\n *             console.log( 'User typed \"' + result + '\" then clicked \"OK\".' );\n *         } else {\n *             console.log( 'User clicked \"Cancel\" or closed the dialog.' );\n *         }\n *     } );\n *\n * @param {jQuery|string} text Message text to display\n * @param {Object} [options] Additional options, see OO.ui.MessageDialog#getSetupProcess\n * @param {Object} [options.textInput] Additional options for text input widget, see OO.ui.TextInputWidget\n * @return {jQuery.Promise} Promise resolved when the user closes the dialog. If the user chose to\n *  confirm, the promise will resolve with the value of the text input widget; otherwise, it will\n *  resolve to `null`.\n */\nOO.ui.prompt = function ( text, options ) {\n\tvar instance,\n\t\tmanager = OO.ui.getWindowManager(),\n\t\ttextInput = new OO.ui.TextInputWidget( ( options && options.textInput ) || {} ),\n\t\ttextField = new OO.ui.FieldLayout( textInput, {\n\t\t\talign: 'top',\n\t\t\tlabel: text\n\t\t} );\n\n\tinstance = manager.openWindow( 'message', $.extend( {\n\t\tmessage: textField.$element\n\t}, options ) );\n\n\t// TODO: This is a little hacky, and could be done by extending MessageDialog instead.\n\tinstance.opened.then( function () {\n\t\ttextInput.on( 'enter', function () {\n\t\t\tmanager.getCurrentWindow().close( { action: 'accept' } );\n\t\t} );\n\t\ttextInput.focus();\n\t} );\n\n\treturn instance.closed.then( function ( data ) {\n\t\treturn data && data.action === 'accept' ? textInput.getValue() : null;\n\t} );\n};\n","}( OO ) );\n"]}
\ No newline at end of file
+{"version":3,"sources":["../src/intro.js.txt","../src/widgets/ActionWidget.js","../src/ActionSet.js","../src/Error.js","../src/Process.js","../src/WindowInstance.js","../src/WindowManager.js","../src/Window.js","../src/Dialog.js","../src/dialogs/MessageDialog.js","../src/dialogs/ProcessDialog.js","../src/windows.js","../src/outro.js.txt"],"names":[],"mappings":"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","file":"oojs-ui-windows.js","sourcesContent":["( function ( OO ) {\n\n'use strict';\n","/**\n * An ActionWidget is a {@link OO.ui.ButtonWidget button widget} that executes an action.\n * Action widgets are used with OO.ui.ActionSet, which manages the behavior and availability\n * of the actions.\n *\n * Both actions and action sets are primarily used with {@link OO.ui.Dialog Dialogs}.\n * Please see the [OOUI documentation on MediaWiki] [1] for more information\n * and examples.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs#Action_sets\n *\n * @class\n * @extends OO.ui.ButtonWidget\n * @mixins OO.ui.mixin.PendingElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string} [action] Symbolic name of the action (e.g., ‘continue’ or ‘cancel’).\n * @cfg {string[]} [modes] Symbolic names of the modes (e.g., ‘edit’ or ‘read’) in which the action\n *  should be made available. See the action set's {@link OO.ui.ActionSet#setMode setMode} method\n *  for more information about setting modes.\n * @cfg {boolean} [framed=false] Render the action button with a frame\n */\nOO.ui.ActionWidget = function OoUiActionWidget( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( { framed: false }, config );\n\n\t// Parent constructor\n\tOO.ui.ActionWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.PendingElement.call( this, config );\n\n\t// Properties\n\tthis.action = config.action || '';\n\tthis.modes = config.modes || [];\n\tthis.width = 0;\n\tthis.height = 0;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-actionWidget' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ActionWidget, OO.ui.ButtonWidget );\nOO.mixinClass( OO.ui.ActionWidget, OO.ui.mixin.PendingElement );\n\n/* Methods */\n\n/**\n * Check if the action is configured to be available in the specified `mode`.\n *\n * @param {string} mode Name of mode\n * @return {boolean} The action is configured with the mode\n */\nOO.ui.ActionWidget.prototype.hasMode = function ( mode ) {\n\treturn this.modes.indexOf( mode ) !== -1;\n};\n\n/**\n * Get the symbolic name of the action (e.g., ‘continue’ or ‘cancel’).\n *\n * @return {string}\n */\nOO.ui.ActionWidget.prototype.getAction = function () {\n\treturn this.action;\n};\n\n/**\n * Get the symbolic name of the mode or modes for which the action is configured to be available.\n *\n * The current mode is set with the action set's {@link OO.ui.ActionSet#setMode setMode} method.\n * Only actions that are configured to be available in the current mode will be visible. All other actions\n * are hidden.\n *\n * @return {string[]}\n */\nOO.ui.ActionWidget.prototype.getModes = function () {\n\treturn this.modes.slice();\n};\n","/* eslint-disable no-unused-vars */\n/**\n * ActionSets manage the behavior of the {@link OO.ui.ActionWidget action widgets} that comprise them.\n * Actions can be made available for specific contexts (modes) and circumstances\n * (abilities). Action sets are primarily used with {@link OO.ui.Dialog Dialogs}.\n *\n * ActionSets contain two types of actions:\n *\n * - 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.\n * - Other: Other actions include all non-special visible actions.\n *\n * See the [OOUI documentation on MediaWiki][1] for more information.\n *\n *     @example\n *     // Example: An action set used in a process dialog\n *     function MyProcessDialog( config ) {\n *         MyProcessDialog.parent.call( this, config );\n *     }\n *     OO.inheritClass( MyProcessDialog, OO.ui.ProcessDialog );\n *     MyProcessDialog.static.title = 'An action set in a process dialog';\n *     MyProcessDialog.static.name = 'myProcessDialog';\n *     // An action set that uses modes ('edit' and 'help' mode, in this example).\n *     MyProcessDialog.static.actions = [\n *         { action: 'continue', modes: 'edit', label: 'Continue', flags: [ 'primary', 'progressive' ] },\n *         { action: 'help', modes: 'edit', label: 'Help' },\n *         { modes: 'edit', label: 'Cancel', flags: 'safe' },\n *         { action: 'back', modes: 'help', label: 'Back', flags: 'safe' }\n *     ];\n *\n *     MyProcessDialog.prototype.initialize = function () {\n *         MyProcessDialog.parent.prototype.initialize.apply( this, arguments );\n *         this.panel1 = new OO.ui.PanelLayout( { padded: true, expanded: false } );\n *         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>' );\n *         this.panel2 = new OO.ui.PanelLayout( { padded: true, expanded: false } );\n *         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>' );\n *         this.stackLayout = new OO.ui.StackLayout( {\n *             items: [ this.panel1, this.panel2 ]\n *         } );\n *         this.$body.append( this.stackLayout.$element );\n *     };\n *     MyProcessDialog.prototype.getSetupProcess = function ( data ) {\n *         return MyProcessDialog.parent.prototype.getSetupProcess.call( this, data )\n *             .next( function () {\n *                 this.actions.setMode( 'edit' );\n *             }, this );\n *     };\n *     MyProcessDialog.prototype.getActionProcess = function ( action ) {\n *         if ( action === 'help' ) {\n *             this.actions.setMode( 'help' );\n *             this.stackLayout.setItem( this.panel2 );\n *         } else if ( action === 'back' ) {\n *             this.actions.setMode( 'edit' );\n *             this.stackLayout.setItem( this.panel1 );\n *         } else if ( action === 'continue' ) {\n *             var dialog = this;\n *             return new OO.ui.Process( function () {\n *                 dialog.close();\n *             } );\n *         }\n *         return MyProcessDialog.parent.prototype.getActionProcess.call( this, action );\n *     };\n *     MyProcessDialog.prototype.getBodyHeight = function () {\n *         return this.panel1.$element.outerHeight( true );\n *     };\n *     var windowManager = new OO.ui.WindowManager();\n *     $( document.body ).append( windowManager.$element );\n *     var dialog = new MyProcessDialog( {\n *         size: 'medium'\n *     } );\n *     windowManager.addWindows( [ dialog ] );\n *     windowManager.openWindow( dialog );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs#Action_sets\n *\n * @abstract\n * @class\n * @mixins OO.EventEmitter\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.ActionSet = function OoUiActionSet( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Mixin constructors\n\tOO.EventEmitter.call( this );\n\n\t// Properties\n\tthis.list = [];\n\tthis.categories = {\n\t\tactions: 'getAction',\n\t\tflags: 'getFlags',\n\t\tmodes: 'getModes'\n\t};\n\tthis.categorized = {};\n\tthis.special = {};\n\tthis.others = [];\n\tthis.organized = false;\n\tthis.changing = false;\n\tthis.changed = false;\n};\n/* eslint-enable no-unused-vars */\n\n/* Setup */\n\nOO.mixinClass( OO.ui.ActionSet, OO.EventEmitter );\n\n/* Static Properties */\n\n/**\n * Symbolic name of the flags used to identify special actions. Special actions are displayed in the\n *  header of a {@link OO.ui.ProcessDialog process dialog}.\n *  See the [OOUI documentation on MediaWiki][2] for more information and examples.\n *\n *  [2]:https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs\n *\n * @abstract\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.ActionSet.static.specialFlags = [ 'safe', 'primary' ];\n\n/* Events */\n\n/**\n * @event click\n *\n * A 'click' event is emitted when an action is clicked.\n *\n * @param {OO.ui.ActionWidget} action Action that was clicked\n */\n\n/**\n * @event add\n *\n * An 'add' event is emitted when actions are {@link #method-add added} to the action set.\n *\n * @param {OO.ui.ActionWidget[]} added Actions added\n */\n\n/**\n * @event remove\n *\n * A 'remove' event is emitted when actions are {@link #method-remove removed}\n *  or {@link #clear cleared}.\n *\n * @param {OO.ui.ActionWidget[]} added Actions removed\n */\n\n/**\n * @event change\n *\n * A 'change' event is emitted when actions are {@link #method-add added}, {@link #clear cleared},\n * or {@link #method-remove removed} from the action set or when the {@link #setMode mode} is changed.\n *\n */\n\n/* Methods */\n\n/**\n * Handle action change events.\n *\n * @private\n * @fires change\n */\nOO.ui.ActionSet.prototype.onActionChange = function () {\n\tthis.organized = false;\n\tif ( this.changing ) {\n\t\tthis.changed = true;\n\t} else {\n\t\tthis.emit( 'change' );\n\t}\n};\n\n/**\n * Check if an action is one of the special actions.\n *\n * @param {OO.ui.ActionWidget} action Action to check\n * @return {boolean} Action is special\n */\nOO.ui.ActionSet.prototype.isSpecial = function ( action ) {\n\tvar flag;\n\n\tfor ( flag in this.special ) {\n\t\tif ( action === this.special[ flag ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n};\n\n/**\n * Get action widgets based on the specified filter: ‘actions’, ‘flags’, ‘modes’, ‘visible’,\n *  or ‘disabled’.\n *\n * @param {Object} [filters] Filters to use, omit to get all actions\n * @param {string|string[]} [filters.actions] Actions that action widgets must have\n * @param {string|string[]} [filters.flags] Flags that action widgets must have (e.g., 'safe')\n * @param {string|string[]} [filters.modes] Modes that action widgets must have\n * @param {boolean} [filters.visible] Action widgets must be visible\n * @param {boolean} [filters.disabled] Action widgets must be disabled\n * @return {OO.ui.ActionWidget[]} Action widgets matching all criteria\n */\nOO.ui.ActionSet.prototype.get = function ( filters ) {\n\tvar i, len, list, category, actions, index, match, matches;\n\n\tif ( filters ) {\n\t\tthis.organize();\n\n\t\t// Collect category candidates\n\t\tmatches = [];\n\t\tfor ( category in this.categorized ) {\n\t\t\tlist = filters[ category ];\n\t\t\tif ( list ) {\n\t\t\t\tif ( !Array.isArray( list ) ) {\n\t\t\t\t\tlist = [ list ];\n\t\t\t\t}\n\t\t\t\tfor ( i = 0, len = list.length; i < len; i++ ) {\n\t\t\t\t\tactions = this.categorized[ category ][ list[ i ] ];\n\t\t\t\t\tif ( Array.isArray( actions ) ) {\n\t\t\t\t\t\tmatches.push.apply( matches, actions );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Remove by boolean filters\n\t\tfor ( i = 0, len = matches.length; i < len; i++ ) {\n\t\t\tmatch = matches[ i ];\n\t\t\tif (\n\t\t\t\t( filters.visible !== undefined && match.isVisible() !== filters.visible ) ||\n\t\t\t\t( filters.disabled !== undefined && match.isDisabled() !== filters.disabled )\n\t\t\t) {\n\t\t\t\tmatches.splice( i, 1 );\n\t\t\t\tlen--;\n\t\t\t\ti--;\n\t\t\t}\n\t\t}\n\t\t// Remove duplicates\n\t\tfor ( i = 0, len = matches.length; i < len; i++ ) {\n\t\t\tmatch = matches[ i ];\n\t\t\tindex = matches.lastIndexOf( match );\n\t\t\twhile ( index !== i ) {\n\t\t\t\tmatches.splice( index, 1 );\n\t\t\t\tlen--;\n\t\t\t\tindex = matches.lastIndexOf( match );\n\t\t\t}\n\t\t}\n\t\treturn matches;\n\t}\n\treturn this.list.slice();\n};\n\n/**\n * Get 'special' actions.\n *\n * Special actions are the first visible action widgets with special flags, such as 'safe' and 'primary'.\n * Special flags can be configured in subclasses by changing the static #specialFlags property.\n *\n * @return {OO.ui.ActionWidget[]|null} 'Special' action widgets.\n */\nOO.ui.ActionSet.prototype.getSpecial = function () {\n\tthis.organize();\n\treturn $.extend( {}, this.special );\n};\n\n/**\n * Get 'other' actions.\n *\n * Other actions include all non-special visible action widgets.\n *\n * @return {OO.ui.ActionWidget[]} 'Other' action widgets\n */\nOO.ui.ActionSet.prototype.getOthers = function () {\n\tthis.organize();\n\treturn this.others.slice();\n};\n\n/**\n * Set the mode  (e.g., ‘edit’ or ‘view’). Only {@link OO.ui.ActionWidget#modes actions} configured\n * to be available in the specified mode will be made visible. All other actions will be hidden.\n *\n * @param {string} mode The mode. Only actions configured to be available in the specified\n *  mode will be made visible.\n * @chainable\n * @return {OO.ui.ActionSet} The widget, for chaining\n * @fires toggle\n * @fires change\n */\nOO.ui.ActionSet.prototype.setMode = function ( mode ) {\n\tvar i, len, action;\n\n\tthis.changing = true;\n\tfor ( i = 0, len = this.list.length; i < len; i++ ) {\n\t\taction = this.list[ i ];\n\t\taction.toggle( action.hasMode( mode ) );\n\t}\n\n\tthis.organized = false;\n\tthis.changing = false;\n\tthis.emit( 'change' );\n\n\treturn this;\n};\n\n/**\n * Set the abilities of the specified actions.\n *\n * Action widgets that are configured with the specified actions will be enabled\n * or disabled based on the boolean values specified in the `actions`\n * parameter.\n *\n * @param {Object.<string,boolean>} actions A list keyed by action name with boolean\n *  values that indicate whether or not the action should be enabled.\n * @chainable\n * @return {OO.ui.ActionSet} The widget, for chaining\n */\nOO.ui.ActionSet.prototype.setAbilities = function ( actions ) {\n\tvar i, len, action, item;\n\n\tfor ( i = 0, len = this.list.length; i < len; i++ ) {\n\t\titem = this.list[ i ];\n\t\taction = item.getAction();\n\t\tif ( actions[ action ] !== undefined ) {\n\t\t\titem.setDisabled( !actions[ action ] );\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * Executes a function once per action.\n *\n * When making changes to multiple actions, use this method instead of iterating over the actions\n * manually to defer emitting a #change event until after all actions have been changed.\n *\n * @param {Object|null} filter Filters to use to determine which actions to iterate over; see #get\n * @param {Function} callback Callback to run for each action; callback is invoked with three\n *   arguments: the action, the action's index, the list of actions being iterated over\n * @chainable\n * @return {OO.ui.ActionSet} The widget, for chaining\n */\nOO.ui.ActionSet.prototype.forEach = function ( filter, callback ) {\n\tthis.changed = false;\n\tthis.changing = true;\n\tthis.get( filter ).forEach( callback );\n\tthis.changing = false;\n\tif ( this.changed ) {\n\t\tthis.emit( 'change' );\n\t}\n\n\treturn this;\n};\n\n/**\n * Add action widgets to the action set.\n *\n * @param {OO.ui.ActionWidget[]} actions Action widgets to add\n * @chainable\n * @return {OO.ui.ActionSet} The widget, for chaining\n * @fires add\n * @fires change\n */\nOO.ui.ActionSet.prototype.add = function ( actions ) {\n\tvar i, len, action;\n\n\tthis.changing = true;\n\tfor ( i = 0, len = actions.length; i < len; i++ ) {\n\t\taction = actions[ i ];\n\t\taction.connect( this, {\n\t\t\tclick: [ 'emit', 'click', action ],\n\t\t\ttoggle: [ 'onActionChange' ]\n\t\t} );\n\t\tthis.list.push( action );\n\t}\n\tthis.organized = false;\n\tthis.emit( 'add', actions );\n\tthis.changing = false;\n\tthis.emit( 'change' );\n\n\treturn this;\n};\n\n/**\n * Remove action widgets from the set.\n *\n * To remove all actions, you may wish to use the #clear method instead.\n *\n * @param {OO.ui.ActionWidget[]} actions Action widgets to remove\n * @chainable\n * @return {OO.ui.ActionSet} The widget, for chaining\n * @fires remove\n * @fires change\n */\nOO.ui.ActionSet.prototype.remove = function ( actions ) {\n\tvar i, len, index, action;\n\n\tthis.changing = true;\n\tfor ( i = 0, len = actions.length; i < len; i++ ) {\n\t\taction = actions[ i ];\n\t\tindex = this.list.indexOf( action );\n\t\tif ( index !== -1 ) {\n\t\t\taction.disconnect( this );\n\t\t\tthis.list.splice( index, 1 );\n\t\t}\n\t}\n\tthis.organized = false;\n\tthis.emit( 'remove', actions );\n\tthis.changing = false;\n\tthis.emit( 'change' );\n\n\treturn this;\n};\n\n/**\n * Remove all action widgets from the set.\n *\n * To remove only specified actions, use the {@link #method-remove remove} method instead.\n *\n * @chainable\n * @return {OO.ui.ActionSet} The widget, for chaining\n * @fires remove\n * @fires change\n */\nOO.ui.ActionSet.prototype.clear = function () {\n\tvar i, len, action,\n\t\tremoved = this.list.slice();\n\n\tthis.changing = true;\n\tfor ( i = 0, len = this.list.length; i < len; i++ ) {\n\t\taction = this.list[ i ];\n\t\taction.disconnect( this );\n\t}\n\n\tthis.list = [];\n\n\tthis.organized = false;\n\tthis.emit( 'remove', removed );\n\tthis.changing = false;\n\tthis.emit( 'change' );\n\n\treturn this;\n};\n\n/**\n * Organize actions.\n *\n * This is called whenever organized information is requested. It will only reorganize the actions\n * if something has changed since the last time it ran.\n *\n * @private\n * @chainable\n * @return {OO.ui.ActionSet} The widget, for chaining\n */\nOO.ui.ActionSet.prototype.organize = function () {\n\tvar i, iLen, j, jLen, flag, action, category, list, item, special,\n\t\tspecialFlags = this.constructor.static.specialFlags;\n\n\tif ( !this.organized ) {\n\t\tthis.categorized = {};\n\t\tthis.special = {};\n\t\tthis.others = [];\n\t\tfor ( i = 0, iLen = this.list.length; i < iLen; i++ ) {\n\t\t\taction = this.list[ i ];\n\t\t\tif ( action.isVisible() ) {\n\t\t\t\t// Populate categories\n\t\t\t\tfor ( category in this.categories ) {\n\t\t\t\t\tif ( !this.categorized[ category ] ) {\n\t\t\t\t\t\tthis.categorized[ category ] = {};\n\t\t\t\t\t}\n\t\t\t\t\tlist = action[ this.categories[ category ] ]();\n\t\t\t\t\tif ( !Array.isArray( list ) ) {\n\t\t\t\t\t\tlist = [ list ];\n\t\t\t\t\t}\n\t\t\t\t\tfor ( j = 0, jLen = list.length; j < jLen; j++ ) {\n\t\t\t\t\t\titem = list[ j ];\n\t\t\t\t\t\tif ( !this.categorized[ category ][ item ] ) {\n\t\t\t\t\t\t\tthis.categorized[ category ][ item ] = [];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.categorized[ category ][ item ].push( action );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Populate special/others\n\t\t\t\tspecial = false;\n\t\t\t\tfor ( j = 0, jLen = specialFlags.length; j < jLen; j++ ) {\n\t\t\t\t\tflag = specialFlags[ j ];\n\t\t\t\t\tif ( !this.special[ flag ] && action.hasFlag( flag ) ) {\n\t\t\t\t\t\tthis.special[ flag ] = action;\n\t\t\t\t\t\tspecial = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif ( !special ) {\n\t\t\t\t\tthis.others.push( action );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.organized = true;\n\t}\n\n\treturn this;\n};\n","/**\n * Errors contain a required message (either a string or jQuery selection) that is used to describe what went wrong\n * in a {@link OO.ui.Process process}. The error's #recoverable and #warning configurations are used to customize the\n * appearance and functionality of the error interface.\n *\n * The basic error interface contains a formatted error message as well as two buttons: 'Dismiss' and 'Try again' (i.e., the error\n * is 'recoverable' by default). If the error is not recoverable, the 'Try again' button will not be rendered and the widget\n * that initiated the failed process will be disabled.\n *\n * If the error is a warning, the error interface will include a 'Dismiss' and a 'Continue' button, which will try the\n * process again.\n *\n * For an example of error interfaces, please see the [OOUI documentation on MediaWiki][1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs#Processes_and_errors\n *\n * @class\n *\n * @constructor\n * @param {string|jQuery} message Description of error\n * @param {Object} [config] Configuration options\n * @cfg {boolean} [recoverable=true] Error is recoverable.\n *  By default, errors are recoverable, and users can try the process again.\n * @cfg {boolean} [warning=false] Error is a warning.\n *  If the error is a warning, the error interface will include a\n *  'Dismiss' and a 'Continue' button. It is the responsibility of the developer to ensure that the warning\n *  is not triggered a second time if the user chooses to continue.\n */\nOO.ui.Error = function OoUiError( message, config ) {\n\t// Allow passing positional parameters inside the config object\n\tif ( OO.isPlainObject( message ) && config === undefined ) {\n\t\tconfig = message;\n\t\tmessage = config.message;\n\t}\n\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Properties\n\tthis.message = message instanceof $ ? message : String( message );\n\tthis.recoverable = config.recoverable === undefined || !!config.recoverable;\n\tthis.warning = !!config.warning;\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.Error );\n\n/* Methods */\n\n/**\n * Check if the error is recoverable.\n *\n * If the error is recoverable, users are able to try the process again.\n *\n * @return {boolean} Error is recoverable\n */\nOO.ui.Error.prototype.isRecoverable = function () {\n\treturn this.recoverable;\n};\n\n/**\n * Check if the error is a warning.\n *\n * If the error is a warning, the error interface will include a 'Dismiss' and a 'Continue' button.\n *\n * @return {boolean} Error is warning\n */\nOO.ui.Error.prototype.isWarning = function () {\n\treturn this.warning;\n};\n\n/**\n * Get error message as DOM nodes.\n *\n * @return {jQuery} Error message in DOM nodes\n */\nOO.ui.Error.prototype.getMessage = function () {\n\treturn this.message instanceof $ ?\n\t\tthis.message.clone() :\n\t\t$( '<div>' ).text( this.message ).contents();\n};\n\n/**\n * Get the error message text.\n *\n * @return {string} Error message\n */\nOO.ui.Error.prototype.getMessageText = function () {\n\treturn this.message instanceof $ ? this.message.text() : this.message;\n};\n","/**\n * A Process is a list of steps that are called in sequence. The step can be a number, a jQuery promise,\n * or a function:\n *\n * - **number**: the process will wait for the specified number of milliseconds before proceeding.\n * - **promise**: the process will continue to the next step when the promise is successfully resolved\n *  or stop if the promise is rejected.\n * - **function**: the process will execute the function. The process will stop if the function returns\n *  either a boolean `false` or a promise that is rejected; if the function returns a number, the process\n *  will wait for that number of milliseconds before proceeding.\n *\n * If the process fails, an {@link OO.ui.Error error} is generated. Depending on how the error is\n * configured, users can dismiss the error and try the process again, or not. If a process is stopped,\n * its remaining steps will not be performed.\n *\n * @class\n *\n * @constructor\n * @param {number|jQuery.Promise|Function} step Number of milliseconds to wait before proceeding, promise\n *  that must be resolved before proceeding, or a function to execute. See #createStep for more information. see #createStep for more information\n * @param {Object} [context=null] Execution context of the function. The context is ignored if the step is\n *  a number or promise.\n */\nOO.ui.Process = function ( step, context ) {\n\t// Properties\n\tthis.steps = [];\n\n\t// Initialization\n\tif ( step !== undefined ) {\n\t\tthis.next( step, context );\n\t}\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.Process );\n\n/* Methods */\n\n/**\n * Start the process.\n *\n * @return {jQuery.Promise} Promise that is resolved when all steps have successfully completed.\n *  If any of the steps return a promise that is rejected or a boolean false, this promise is rejected\n *  and any remaining steps are not performed.\n */\nOO.ui.Process.prototype.execute = function () {\n\tvar i, len, promise;\n\n\t/**\n\t * Continue execution.\n\t *\n\t * @ignore\n\t * @param {Array} step A function and the context it should be called in\n\t * @return {Function} Function that continues the process\n\t */\n\tfunction proceed( step ) {\n\t\treturn function () {\n\t\t\t// Execute step in the correct context\n\t\t\tvar deferred,\n\t\t\t\tresult = step.callback.call( step.context );\n\n\t\t\tif ( result === false ) {\n\t\t\t\t// Use rejected promise for boolean false results\n\t\t\t\treturn $.Deferred().reject( [] ).promise();\n\t\t\t}\n\t\t\tif ( typeof result === 'number' ) {\n\t\t\t\tif ( result < 0 ) {\n\t\t\t\t\tthrow new Error( 'Cannot go back in time: flux capacitor is out of service' );\n\t\t\t\t}\n\t\t\t\t// Use a delayed promise for numbers, expecting them to be in milliseconds\n\t\t\t\tdeferred = $.Deferred();\n\t\t\t\tsetTimeout( deferred.resolve, result );\n\t\t\t\treturn deferred.promise();\n\t\t\t}\n\t\t\tif ( result instanceof OO.ui.Error ) {\n\t\t\t\t// Use rejected promise for error\n\t\t\t\treturn $.Deferred().reject( [ result ] ).promise();\n\t\t\t}\n\t\t\tif ( Array.isArray( result ) && result.length && result[ 0 ] instanceof OO.ui.Error ) {\n\t\t\t\t// Use rejected promise for list of errors\n\t\t\t\treturn $.Deferred().reject( result ).promise();\n\t\t\t}\n\t\t\t// Duck-type the object to see if it can produce a promise\n\t\t\tif ( result && typeof result.promise === 'function' ) {\n\t\t\t\t// Use a promise generated from the result\n\t\t\t\treturn result.promise();\n\t\t\t}\n\t\t\t// Use resolved promise for other results\n\t\t\treturn $.Deferred().resolve().promise();\n\t\t};\n\t}\n\n\tif ( this.steps.length ) {\n\t\t// Generate a chain reaction of promises\n\t\tpromise = proceed( this.steps[ 0 ] )();\n\t\tfor ( i = 1, len = this.steps.length; i < len; i++ ) {\n\t\t\tpromise = promise.then( proceed( this.steps[ i ] ) );\n\t\t}\n\t} else {\n\t\tpromise = $.Deferred().resolve().promise();\n\t}\n\n\treturn promise;\n};\n\n/**\n * Create a process step.\n *\n * @private\n * @param {number|jQuery.Promise|Function} step\n *\n * - Number of milliseconds to wait before proceeding\n * - Promise that must be resolved before proceeding\n * - Function to execute\n *   - If the function returns a boolean false the process will stop\n *   - If the function returns a promise, the process will continue to the next\n *     step when the promise is resolved or stop if the promise is rejected\n *   - If the function returns a number, the process will wait for that number of\n *     milliseconds before proceeding\n * @param {Object} [context=null] Execution context of the function. The context is\n *  ignored if the step is a number or promise.\n * @return {Object} Step object, with `callback` and `context` properties\n */\nOO.ui.Process.prototype.createStep = function ( step, context ) {\n\tif ( typeof step === 'number' || typeof step.promise === 'function' ) {\n\t\treturn {\n\t\t\tcallback: function () {\n\t\t\t\treturn step;\n\t\t\t},\n\t\t\tcontext: null\n\t\t};\n\t}\n\tif ( typeof step === 'function' ) {\n\t\treturn {\n\t\t\tcallback: step,\n\t\t\tcontext: context\n\t\t};\n\t}\n\tthrow new Error( 'Cannot create process step: number, promise or function expected' );\n};\n\n/**\n * Add step to the beginning of the process.\n *\n * @inheritdoc #createStep\n * @return {OO.ui.Process} this\n * @chainable\n */\nOO.ui.Process.prototype.first = function ( step, context ) {\n\tthis.steps.unshift( this.createStep( step, context ) );\n\treturn this;\n};\n\n/**\n * Add step to the end of the process.\n *\n * @inheritdoc #createStep\n * @return {OO.ui.Process} this\n * @chainable\n */\nOO.ui.Process.prototype.next = function ( step, context ) {\n\tthis.steps.push( this.createStep( step, context ) );\n\treturn this;\n};\n","/**\n * A window instance represents the life cycle for one single opening of a window\n * until its closing.\n *\n * While OO.ui.WindowManager will reuse OO.ui.Window objects, each time a window is\n * opened, a new lifecycle starts.\n *\n * For more information, please see the [OOUI documentation on MediaWiki] [1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows\n *\n * @class\n *\n * @constructor\n */\nOO.ui.WindowInstance = function OoUiWindowInstance() {\n\tvar deferreds = {\n\t\topening: $.Deferred(),\n\t\topened: $.Deferred(),\n\t\tclosing: $.Deferred(),\n\t\tclosed: $.Deferred()\n\t};\n\n\t/**\n\t * @private\n\t * @property {Object}\n\t */\n\tthis.deferreds = deferreds;\n\n\t// Set these up as chained promises so that rejecting of\n\t// an earlier stage automatically rejects the subsequent\n\t// would-be stages as well.\n\n\t/**\n\t * @property {jQuery.Promise}\n\t */\n\tthis.opening = deferreds.opening.promise();\n\t/**\n\t * @property {jQuery.Promise}\n\t */\n\tthis.opened = this.opening.then( function () {\n\t\treturn deferreds.opened;\n\t} );\n\t/**\n\t * @property {jQuery.Promise}\n\t */\n\tthis.closing = this.opened.then( function () {\n\t\treturn deferreds.closing;\n\t} );\n\t/**\n\t * @property {jQuery.Promise}\n\t */\n\tthis.closed = this.closing.then( function () {\n\t\treturn deferreds.closed;\n\t} );\n};\n\n/* Setup */\n\nOO.initClass( OO.ui.WindowInstance );\n\n/**\n * Check if window is opening.\n *\n * @return {boolean} Window is opening\n */\nOO.ui.WindowInstance.prototype.isOpening = function () {\n\treturn this.deferreds.opened.state() === 'pending';\n};\n\n/**\n * Check if window is opened.\n *\n * @return {boolean} Window is opened\n */\nOO.ui.WindowInstance.prototype.isOpened = function () {\n\treturn this.deferreds.opened.state() === 'resolved' &&\n\t\tthis.deferreds.closing.state() === 'pending';\n};\n\n/**\n * Check if window is closing.\n *\n * @return {boolean} Window is closing\n */\nOO.ui.WindowInstance.prototype.isClosing = function () {\n\treturn this.deferreds.closing.state() === 'resolved' &&\n\t\tthis.deferreds.closed.state() === 'pending';\n};\n\n/**\n * Check if window is closed.\n *\n * @return {boolean} Window is closed\n */\nOO.ui.WindowInstance.prototype.isClosed = function () {\n\treturn this.deferreds.closed.state() === 'resolved';\n};\n","/**\n * Window managers are used to open and close {@link OO.ui.Window windows} and control their presentation.\n * Managed windows are mutually exclusive. If a new window is opened while a current window is opening\n * or is opened, the current window will be closed and any ongoing {@link OO.ui.Process process} will be cancelled. Windows\n * themselves are persistent and—rather than being torn down when closed—can be repopulated with the\n * pertinent data and reused.\n *\n * Over the lifecycle of a window, the window manager makes available three promises: `opening`,\n * `opened`, and `closing`, which represent the primary stages of the cycle:\n *\n * **Opening**: the opening stage begins when the window manager’s #openWindow or a window’s\n * {@link OO.ui.Window#open open} method is used, and the window manager begins to open the window.\n *\n * - an `opening` event is emitted with an `opening` promise\n * - the #getSetupDelay method is called and the returned value is used to time a pause in execution before the\n *   window’s {@link OO.ui.Window#method-setup setup} method is called which executes OO.ui.Window#getSetupProcess.\n * - a `setup` progress notification is emitted from the `opening` promise\n * - the #getReadyDelay method is called the returned value is used to time a pause in execution before the\n *   window’s {@link OO.ui.Window#method-ready ready} method is called which executes OO.ui.Window#getReadyProcess.\n * - a `ready` progress notification is emitted from the `opening` promise\n * - the `opening` promise is resolved with an `opened` promise\n *\n * **Opened**: the window is now open.\n *\n * **Closing**: the closing stage begins when the window manager's #closeWindow or the\n * window's {@link OO.ui.Window#close close} methods is used, and the window manager begins\n * to close the window.\n *\n * - the `opened` promise is resolved with `closing` promise and a `closing` event is emitted\n * - the #getHoldDelay method is called and the returned value is used to time a pause in execution before\n *   the window's {@link OO.ui.Window#getHoldProcess getHoldProcess} method is called on the\n *   window and its result executed\n * - a `hold` progress notification is emitted from the `closing` promise\n * - the #getTeardownDelay() method is called and the returned value is used to time a pause in execution before\n *   the window's {@link OO.ui.Window#getTeardownProcess getTeardownProcess} method is called on the\n *   window and its result executed\n * - a `teardown` progress notification is emitted from the `closing` promise\n * - the `closing` promise is resolved. The window is now closed\n *\n * See the [OOUI documentation on MediaWiki][1] for more information.\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows/Window_managers\n *\n * @class\n * @extends OO.ui.Element\n * @mixins OO.EventEmitter\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {OO.Factory} [factory] Window factory to use for automatic instantiation\n *  Note that window classes that are instantiated with a factory must have\n *  a {@link OO.ui.Dialog#static-name static name} property that specifies a symbolic name.\n * @cfg {boolean} [modal=true] Prevent interaction outside the dialog\n */\nOO.ui.WindowManager = function OoUiWindowManager( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.WindowManager.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.EventEmitter.call( this );\n\n\t// Properties\n\tthis.factory = config.factory;\n\tthis.modal = config.modal === undefined || !!config.modal;\n\tthis.windows = {};\n\t// Deprecated placeholder promise given to compatOpening in openWindow()\n\t// that is resolved in closeWindow().\n\tthis.compatOpened = null;\n\tthis.preparingToOpen = null;\n\tthis.preparingToClose = null;\n\tthis.currentWindow = null;\n\tthis.globalEvents = false;\n\tthis.$returnFocusTo = null;\n\tthis.$ariaHidden = null;\n\tthis.onWindowResizeTimeout = null;\n\tthis.onWindowResizeHandler = this.onWindowResize.bind( this );\n\tthis.afterWindowResizeHandler = this.afterWindowResize.bind( this );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-windowManager' )\n\t\t.toggleClass( 'oo-ui-windowManager-modal', this.modal );\n\tif ( this.modal ) {\n\t\tthis.$element.attr( 'aria-hidden', true );\n\t}\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.WindowManager, OO.ui.Element );\nOO.mixinClass( OO.ui.WindowManager, OO.EventEmitter );\n\n/* Events */\n\n/**\n * An 'opening' event is emitted when the window begins to be opened.\n *\n * @event opening\n * @param {OO.ui.Window} win Window that's being opened\n * @param {jQuery.Promise} opened A promise resolved with a value when the window is opened successfully.\n *  This promise also emits `setup` and `ready` notifications. When this promise is resolved, the first\n *  argument of the value is an 'closed' promise, the second argument is the opening data.\n * @param {Object} data Window opening data\n */\n\n/**\n * A 'closing' event is emitted when the window begins to be closed.\n *\n * @event closing\n * @param {OO.ui.Window} win Window that's being closed\n * @param {jQuery.Promise} closed A promise resolved with a value when the window is closed successfully.\n *  This promise also emits `hold` and `teardown` notifications. When this promise is resolved, the first\n *  argument of its value is the closing data.\n * @param {Object} data Window closing data\n */\n\n/**\n * A 'resize' event is emitted when a window is resized.\n *\n * @event resize\n * @param {OO.ui.Window} win Window that was resized\n */\n\n/* Static Properties */\n\n/**\n * Map of the symbolic name of each window size and its CSS properties.\n *\n * @static\n * @inheritable\n * @property {Object}\n */\nOO.ui.WindowManager.static.sizes = {\n\tsmall: {\n\t\twidth: 300\n\t},\n\tmedium: {\n\t\twidth: 500\n\t},\n\tlarge: {\n\t\twidth: 700\n\t},\n\tlarger: {\n\t\twidth: 900\n\t},\n\tfull: {\n\t\t// These can be non-numeric because they are never used in calculations\n\t\twidth: '100%',\n\t\theight: '100%'\n\t}\n};\n\n/**\n * Symbolic name of the default window size.\n *\n * The default size is used if the window's requested size is not recognized.\n *\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.WindowManager.static.defaultSize = 'medium';\n\n/* Methods */\n\n/**\n * Handle window resize events.\n *\n * @private\n * @param {jQuery.Event} e Window resize event\n */\nOO.ui.WindowManager.prototype.onWindowResize = function () {\n\tclearTimeout( this.onWindowResizeTimeout );\n\tthis.onWindowResizeTimeout = setTimeout( this.afterWindowResizeHandler, 200 );\n};\n\n/**\n * Handle window resize events.\n *\n * @private\n * @param {jQuery.Event} e Window resize event\n */\nOO.ui.WindowManager.prototype.afterWindowResize = function () {\n\tvar currentFocusedElement = document.activeElement;\n\tif ( this.currentWindow ) {\n\t\tthis.updateWindowSize( this.currentWindow );\n\n\t\t// Restore focus to the original element if it has changed.\n\t\t// When a layout change is made on resize inputs lose focus\n\t\t// on Android (Chrome and Firefox). See T162127.\n\t\tif ( currentFocusedElement !== document.activeElement ) {\n\t\t\tcurrentFocusedElement.focus();\n\t\t}\n\t}\n};\n\n/**\n * Check if window is opening.\n *\n * @param {OO.ui.Window} win Window to check\n * @return {boolean} Window is opening\n */\nOO.ui.WindowManager.prototype.isOpening = function ( win ) {\n\treturn win === this.currentWindow && !!this.lifecycle &&\n\t\tthis.lifecycle.isOpening();\n};\n\n/**\n * Check if window is closing.\n *\n * @param {OO.ui.Window} win Window to check\n * @return {boolean} Window is closing\n */\nOO.ui.WindowManager.prototype.isClosing = function ( win ) {\n\treturn win === this.currentWindow && !!this.lifecycle &&\n\t\tthis.lifecycle.isClosing();\n};\n\n/**\n * Check if window is opened.\n *\n * @param {OO.ui.Window} win Window to check\n * @return {boolean} Window is opened\n */\nOO.ui.WindowManager.prototype.isOpened = function ( win ) {\n\treturn win === this.currentWindow && !!this.lifecycle &&\n\t\tthis.lifecycle.isOpened();\n};\n\n/**\n * Check if a window is being managed.\n *\n * @param {OO.ui.Window} win Window to check\n * @return {boolean} Window is being managed\n */\nOO.ui.WindowManager.prototype.hasWindow = function ( win ) {\n\tvar name;\n\n\tfor ( name in this.windows ) {\n\t\tif ( this.windows[ name ] === win ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n};\n\n/**\n * Get the number of milliseconds to wait after opening begins before executing the ‘setup’ process.\n *\n * @param {OO.ui.Window} win Window being opened\n * @param {Object} [data] Window opening data\n * @return {number} Milliseconds to wait\n */\nOO.ui.WindowManager.prototype.getSetupDelay = function () {\n\treturn 0;\n};\n\n/**\n * Get the number of milliseconds to wait after setup has finished before executing the ‘ready’ process.\n *\n * @param {OO.ui.Window} win Window being opened\n * @param {Object} [data] Window opening data\n * @return {number} Milliseconds to wait\n */\nOO.ui.WindowManager.prototype.getReadyDelay = function () {\n\treturn this.modal ? OO.ui.theme.getDialogTransitionDuration() : 0;\n};\n\n/**\n * Get the number of milliseconds to wait after closing has begun before executing the 'hold' process.\n *\n * @param {OO.ui.Window} win Window being closed\n * @param {Object} [data] Window closing data\n * @return {number} Milliseconds to wait\n */\nOO.ui.WindowManager.prototype.getHoldDelay = function () {\n\treturn 0;\n};\n\n/**\n * Get the number of milliseconds to wait after the ‘hold’ process has finished before\n * executing the ‘teardown’ process.\n *\n * @param {OO.ui.Window} win Window being closed\n * @param {Object} [data] Window closing data\n * @return {number} Milliseconds to wait\n */\nOO.ui.WindowManager.prototype.getTeardownDelay = function () {\n\treturn this.modal ? OO.ui.theme.getDialogTransitionDuration() : 0;\n};\n\n/**\n * Get a window by its symbolic name.\n *\n * If the window is not yet instantiated and its symbolic name is recognized by a factory, it will be\n * instantiated and added to the window manager automatically. Please see the [OOUI documentation on MediaWiki][3]\n * for more information about using factories.\n * [3]: https://www.mediawiki.org/wiki/OOUI/Windows/Window_managers\n *\n * @param {string} name Symbolic name of the window\n * @return {jQuery.Promise} Promise resolved with matching window, or rejected with an OO.ui.Error\n * @throws {Error} An error is thrown if the symbolic name is not recognized by the factory.\n * @throws {Error} An error is thrown if the named window is not recognized as a managed window.\n */\nOO.ui.WindowManager.prototype.getWindow = function ( name ) {\n\tvar deferred = $.Deferred(),\n\t\twin = this.windows[ name ];\n\n\tif ( !( win instanceof OO.ui.Window ) ) {\n\t\tif ( this.factory ) {\n\t\t\tif ( !this.factory.lookup( name ) ) {\n\t\t\t\tdeferred.reject( new OO.ui.Error(\n\t\t\t\t\t'Cannot auto-instantiate window: symbolic name is unrecognized by the factory'\n\t\t\t\t) );\n\t\t\t} else {\n\t\t\t\twin = this.factory.create( name );\n\t\t\t\tthis.addWindows( [ win ] );\n\t\t\t\tdeferred.resolve( win );\n\t\t\t}\n\t\t} else {\n\t\t\tdeferred.reject( new OO.ui.Error(\n\t\t\t\t'Cannot get unmanaged window: symbolic name unrecognized as a managed window'\n\t\t\t) );\n\t\t}\n\t} else {\n\t\tdeferred.resolve( win );\n\t}\n\n\treturn deferred.promise();\n};\n\n/**\n * Get current window.\n *\n * @return {OO.ui.Window|null} Currently opening/opened/closing window\n */\nOO.ui.WindowManager.prototype.getCurrentWindow = function () {\n\treturn this.currentWindow;\n};\n\n/* eslint-disable valid-jsdoc */\n/**\n * Open a window.\n *\n * @param {OO.ui.Window|string} win Window object or symbolic name of window to open\n * @param {Object} [data] Window opening data\n * @param {jQuery|null} [data.$returnFocusTo] Element to which the window will return focus when closed.\n *  Defaults the current activeElement. If set to null, focus isn't changed on close.\n * @return {OO.ui.WindowInstance} A lifecycle object representing this particular\n *  opening of the window. For backwards-compatibility, then object is also a Thenable that is resolved\n *  when the window is done opening, with nested promise for when closing starts. This behaviour\n *  is deprecated and is not compatible with jQuery 3. See T163510.\n * @fires opening\n */\nOO.ui.WindowManager.prototype.openWindow = function ( win, data, lifecycle, compatOpening ) {\n\t/* eslint-enable valid-jsdoc */\n\tvar error,\n\t\tmanager = this;\n\tdata = data || {};\n\n\t// Internal parameter 'lifecycle' allows this method to always return\n\t// a lifecycle even if the window still needs to be created\n\t// asynchronously when 'win' is a string.\n\tlifecycle = lifecycle || new OO.ui.WindowInstance();\n\tcompatOpening = compatOpening || $.Deferred();\n\n\t// Turn lifecycle into a Thenable for backwards-compatibility with\n\t// the deprecated nested-promise behaviour, see T163510.\n\t[ 'state', 'always', 'catch', 'pipe', 'then', 'promise', 'progress', 'done', 'fail' ]\n\t\t.forEach( function ( method ) {\n\t\t\tlifecycle[ method ] = function () {\n\t\t\t\tOO.ui.warnDeprecation(\n\t\t\t\t\t'Using the return value of openWindow as a promise is deprecated. ' +\n\t\t\t\t\t'Use .openWindow( ... ).opening.' + method + '( ... ) instead.'\n\t\t\t\t);\n\t\t\t\treturn compatOpening[ method ].apply( this, arguments );\n\t\t\t};\n\t\t} );\n\n\t// Argument handling\n\tif ( typeof win === 'string' ) {\n\t\tthis.getWindow( win ).then(\n\t\t\tfunction ( win ) {\n\t\t\t\tmanager.openWindow( win, data, lifecycle, compatOpening );\n\t\t\t},\n\t\t\tfunction ( err ) {\n\t\t\t\tlifecycle.deferreds.opening.reject( err );\n\t\t\t}\n\t\t);\n\t\treturn lifecycle;\n\t}\n\n\t// Error handling\n\tif ( !this.hasWindow( win ) ) {\n\t\terror = 'Cannot open window: window is not attached to manager';\n\t} else if ( this.lifecycle && this.lifecycle.isOpened() ) {\n\t\terror = 'Cannot open window: another window is open';\n\t} else if ( this.preparingToOpen || ( this.lifecycle && this.lifecycle.isOpening() ) ) {\n\t\terror = 'Cannot open window: another window is opening';\n\t}\n\n\tif ( error ) {\n\t\tcompatOpening.reject( new OO.ui.Error( error ) );\n\t\tlifecycle.deferreds.opening.reject( new OO.ui.Error( error ) );\n\t\treturn lifecycle;\n\t}\n\n\t// If a window is currently closing, wait for it to complete\n\tthis.preparingToOpen = $.when( this.lifecycle && this.lifecycle.closed );\n\t// Ensure handlers get called after preparingToOpen is set\n\tthis.preparingToOpen.done( function () {\n\t\tif ( manager.modal ) {\n\t\t\tmanager.toggleGlobalEvents( true );\n\t\t\tmanager.toggleAriaIsolation( true );\n\t\t}\n\t\tmanager.$returnFocusTo = data.$returnFocusTo !== undefined ? data.$returnFocusTo : $( document.activeElement );\n\t\tmanager.currentWindow = win;\n\t\tmanager.lifecycle = lifecycle;\n\t\tmanager.preparingToOpen = null;\n\t\tmanager.emit( 'opening', win, compatOpening, data );\n\t\tlifecycle.deferreds.opening.resolve( data );\n\t\tsetTimeout( function () {\n\t\t\tmanager.compatOpened = $.Deferred();\n\t\t\twin.setup( data ).then( function () {\n\t\t\t\tcompatOpening.notify( { state: 'setup' } );\n\t\t\t\tsetTimeout( function () {\n\t\t\t\t\twin.ready( data ).then( function () {\n\t\t\t\t\t\tcompatOpening.notify( { state: 'ready' } );\n\t\t\t\t\t\tlifecycle.deferreds.opened.resolve( data );\n\t\t\t\t\t\tcompatOpening.resolve( manager.compatOpened.promise(), data );\n\t\t\t\t\t}, function () {\n\t\t\t\t\t\tlifecycle.deferreds.opened.reject();\n\t\t\t\t\t\tcompatOpening.reject();\n\t\t\t\t\t\tmanager.closeWindow( win );\n\t\t\t\t\t} );\n\t\t\t\t}, manager.getReadyDelay() );\n\t\t\t}, function () {\n\t\t\t\tlifecycle.deferreds.opened.reject();\n\t\t\t\tcompatOpening.reject();\n\t\t\t\tmanager.closeWindow( win );\n\t\t\t} );\n\t\t}, manager.getSetupDelay() );\n\t} );\n\n\treturn lifecycle;\n};\n\n/**\n * Close a window.\n *\n * @param {OO.ui.Window|string} win Window object or symbolic name of window to close\n * @param {Object} [data] Window closing data\n * @return {OO.ui.WindowInstance} A lifecycle object representing this particular\n *  opening of the window. For backwards-compatibility, the object is also a Thenable that is resolved\n *  when the window is done closing, see T163510.\n * @fires closing\n */\nOO.ui.WindowManager.prototype.closeWindow = function ( win, data ) {\n\tvar error,\n\t\tmanager = this,\n\t\tcompatClosing = $.Deferred(),\n\t\tlifecycle = this.lifecycle,\n\t\tcompatOpened;\n\n\t// Argument handling\n\tif ( typeof win === 'string' ) {\n\t\twin = this.windows[ win ];\n\t} else if ( !this.hasWindow( win ) ) {\n\t\twin = null;\n\t}\n\n\t// Error handling\n\tif ( !lifecycle ) {\n\t\terror = 'Cannot close window: no window is currently open';\n\t} else if ( !win ) {\n\t\terror = 'Cannot close window: window is not attached to manager';\n\t} else if ( win !== this.currentWindow || this.lifecycle.isClosed() ) {\n\t\terror = 'Cannot close window: window already closed with different data';\n\t} else if ( this.preparingToClose || this.lifecycle.isClosing() ) {\n\t\terror = 'Cannot close window: window already closing with different data';\n\t}\n\n\tif ( error ) {\n\t\t// This function was called for the wrong window and we don't want to mess with the current\n\t\t// window's state.\n\t\tlifecycle = new OO.ui.WindowInstance();\n\t\t// Pretend the window has been opened, so that we can pretend to fail to close it.\n\t\tlifecycle.deferreds.opening.resolve( {} );\n\t\tlifecycle.deferreds.opened.resolve( {} );\n\t}\n\n\t// Turn lifecycle into a Thenable for backwards-compatibility with\n\t// the deprecated nested-promise behaviour, see T163510.\n\t[ 'state', 'always', 'catch', 'pipe', 'then', 'promise', 'progress', 'done', 'fail' ]\n\t\t.forEach( function ( method ) {\n\t\t\tlifecycle[ method ] = function () {\n\t\t\t\tOO.ui.warnDeprecation(\n\t\t\t\t\t'Using the return value of closeWindow as a promise is deprecated. ' +\n\t\t\t\t\t'Use .closeWindow( ... ).closed.' + method + '( ... ) instead.'\n\t\t\t\t);\n\t\t\t\treturn compatClosing[ method ].apply( this, arguments );\n\t\t\t};\n\t\t} );\n\n\tif ( error ) {\n\t\tcompatClosing.reject( new OO.ui.Error( error ) );\n\t\tlifecycle.deferreds.closing.reject( new OO.ui.Error( error ) );\n\t\treturn lifecycle;\n\t}\n\n\t// If the window is currently opening, close it when it's done\n\tthis.preparingToClose = $.when( this.lifecycle.opened );\n\t// Ensure handlers get called after preparingToClose is set\n\tthis.preparingToClose.always( function () {\n\t\tmanager.preparingToClose = null;\n\t\tmanager.emit( 'closing', win, compatClosing, data );\n\t\tlifecycle.deferreds.closing.resolve( data );\n\t\tcompatOpened = manager.compatOpened;\n\t\tmanager.compatOpened = null;\n\t\tcompatOpened.resolve( compatClosing.promise(), data );\n\t\tsetTimeout( function () {\n\t\t\twin.hold( data ).then( function () {\n\t\t\t\tcompatClosing.notify( { state: 'hold' } );\n\t\t\t\tsetTimeout( function () {\n\t\t\t\t\twin.teardown( data ).then( function () {\n\t\t\t\t\t\tcompatClosing.notify( { state: 'teardown' } );\n\t\t\t\t\t\tif ( manager.modal ) {\n\t\t\t\t\t\t\tmanager.toggleGlobalEvents( false );\n\t\t\t\t\t\t\tmanager.toggleAriaIsolation( false );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( manager.$returnFocusTo && manager.$returnFocusTo.length ) {\n\t\t\t\t\t\t\tmanager.$returnFocusTo[ 0 ].focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmanager.currentWindow = null;\n\t\t\t\t\t\tmanager.lifecycle = null;\n\t\t\t\t\t\tlifecycle.deferreds.closed.resolve( data );\n\t\t\t\t\t\tcompatClosing.resolve( data );\n\t\t\t\t\t} );\n\t\t\t\t}, manager.getTeardownDelay() );\n\t\t\t} );\n\t\t}, manager.getHoldDelay() );\n\t} );\n\n\treturn lifecycle;\n};\n\n/**\n * Add windows to the window manager.\n *\n * Windows can be added by reference, symbolic name, or explicitly defined symbolic names.\n * See the [OOUI documentation on MediaWiki] [2] for examples.\n * [2]: https://www.mediawiki.org/wiki/OOUI/Windows/Window_managers\n *\n * This function can be called in two manners:\n *\n * 1. `.addWindows( [ windowA, windowB, ... ] )` (where `windowA`, `windowB` are OO.ui.Window objects)\n *\n *    This syntax registers windows under the symbolic names defined in their `.static.name`\n *    properties. For example, if `windowA.constructor.static.name` is `'nameA'`, calling\n *    `.openWindow( 'nameA' )` afterwards will open the window `windowA`. This syntax requires the\n *    static name to be set, otherwise an exception will be thrown.\n *\n *    This is the recommended way, as it allows for an easier switch to using a window factory.\n *\n * 2. `.addWindows( { nameA: windowA, nameB: windowB, ... } )`\n *\n *    This syntax registers windows under the explicitly given symbolic names. In this example,\n *    calling `.openWindow( 'nameA' )` afterwards will open the window `windowA`, regardless of what\n *    its `.static.name` is set to. The static name is not required to be set.\n *\n *    This should only be used if you need to override the default symbolic names.\n *\n * Example:\n *\n *     var windowManager = new OO.ui.WindowManager();\n *     $( document.body ).append( windowManager.$element );\n *\n *     // Add a window under the default name: see OO.ui.MessageDialog.static.name\n *     windowManager.addWindows( [ new OO.ui.MessageDialog() ] );\n *     // Add a window under an explicit name\n *     windowManager.addWindows( { myMessageDialog: new OO.ui.MessageDialog() } );\n *\n *     // Open window by default name\n *     windowManager.openWindow( 'message' );\n *     // Open window by explicitly given name\n *     windowManager.openWindow( 'myMessageDialog' );\n *\n *\n * @param {Object.<string,OO.ui.Window>|OO.ui.Window[]} windows An array of window objects specified\n *  by reference, symbolic name, or explicitly defined symbolic names.\n * @throws {Error} An error is thrown if a window is added by symbolic name, but has neither an\n *  explicit nor a statically configured symbolic name.\n */\nOO.ui.WindowManager.prototype.addWindows = function ( windows ) {\n\tvar i, len, win, name, list;\n\n\tif ( Array.isArray( windows ) ) {\n\t\t// Convert to map of windows by looking up symbolic names from static configuration\n\t\tlist = {};\n\t\tfor ( i = 0, len = windows.length; i < len; i++ ) {\n\t\t\tname = windows[ i ].constructor.static.name;\n\t\t\tif ( !name ) {\n\t\t\t\tthrow new Error( 'Windows must have a `name` static property defined.' );\n\t\t\t}\n\t\t\tlist[ name ] = windows[ i ];\n\t\t}\n\t} else if ( OO.isPlainObject( windows ) ) {\n\t\tlist = windows;\n\t}\n\n\t// Add windows\n\tfor ( name in list ) {\n\t\twin = list[ name ];\n\t\tthis.windows[ name ] = win.toggle( false );\n\t\tthis.$element.append( win.$element );\n\t\twin.setManager( this );\n\t}\n};\n\n/**\n * Remove the specified windows from the windows manager.\n *\n * Windows will be closed before they are removed. If you wish to remove all windows, you may wish to use\n * the #clearWindows method instead. If you no longer need the window manager and want to ensure that it no\n * longer listens to events, use the #destroy method.\n *\n * @param {string[]} names Symbolic names of windows to remove\n * @return {jQuery.Promise} Promise resolved when window is closed and removed\n * @throws {Error} An error is thrown if the named windows are not managed by the window manager.\n */\nOO.ui.WindowManager.prototype.removeWindows = function ( names ) {\n\tvar i, len, win, name, cleanupWindow,\n\t\tmanager = this,\n\t\tpromises = [],\n\t\tcleanup = function ( name, win ) {\n\t\t\tdelete manager.windows[ name ];\n\t\t\twin.$element.detach();\n\t\t};\n\n\tfor ( i = 0, len = names.length; i < len; i++ ) {\n\t\tname = names[ i ];\n\t\twin = this.windows[ name ];\n\t\tif ( !win ) {\n\t\t\tthrow new Error( 'Cannot remove window' );\n\t\t}\n\t\tcleanupWindow = cleanup.bind( null, name, win );\n\t\tpromises.push( this.closeWindow( name ).closed.then( cleanupWindow, cleanupWindow ) );\n\t}\n\n\treturn $.when.apply( $, promises );\n};\n\n/**\n * Remove all windows from the window manager.\n *\n * Windows will be closed before they are removed. Note that the window manager, though not in use, will still\n * listen to events. If the window manager will not be used again, you may wish to use the #destroy method instead.\n * To remove just a subset of windows, use the #removeWindows method.\n *\n * @return {jQuery.Promise} Promise resolved when all windows are closed and removed\n */\nOO.ui.WindowManager.prototype.clearWindows = function () {\n\treturn this.removeWindows( Object.keys( this.windows ) );\n};\n\n/**\n * Set dialog size. In general, this method should not be called directly.\n *\n * Fullscreen mode will be used if the dialog is too wide to fit in the screen.\n *\n * @param {OO.ui.Window} win Window to update, should be the current window\n * @chainable\n * @return {OO.ui.WindowManager} The manager, for chaining\n */\nOO.ui.WindowManager.prototype.updateWindowSize = function ( win ) {\n\tvar isFullscreen;\n\n\t// Bypass for non-current, and thus invisible, windows\n\tif ( win !== this.currentWindow ) {\n\t\treturn;\n\t}\n\n\tisFullscreen = win.getSize() === 'full';\n\n\tthis.$element.toggleClass( 'oo-ui-windowManager-fullscreen', isFullscreen );\n\tthis.$element.toggleClass( 'oo-ui-windowManager-floating', !isFullscreen );\n\twin.setDimensions( win.getSizeProperties() );\n\n\tthis.emit( 'resize', win );\n\n\treturn this;\n};\n\n/**\n * Bind or unbind global events for scrolling.\n *\n * @private\n * @param {boolean} [on] Bind global events\n * @chainable\n * @return {OO.ui.WindowManager} The manager, for chaining\n */\nOO.ui.WindowManager.prototype.toggleGlobalEvents = function ( on ) {\n\tvar scrollWidth, bodyMargin,\n\t\t$body = $( this.getElementDocument().body ),\n\t\t// We could have multiple window managers open so only modify\n\t\t// the body css at the bottom of the stack\n\t\tstackDepth = $body.data( 'windowManagerGlobalEvents' ) || 0;\n\n\ton = on === undefined ? !!this.globalEvents : !!on;\n\n\tif ( on ) {\n\t\tif ( !this.globalEvents ) {\n\t\t\t$( this.getElementWindow() ).on( {\n\t\t\t\t// Start listening for top-level window dimension changes\n\t\t\t\t'orientationchange resize': this.onWindowResizeHandler\n\t\t\t} );\n\t\t\tif ( stackDepth === 0 ) {\n\t\t\t\tscrollWidth = window.innerWidth - document.documentElement.clientWidth;\n\t\t\t\tbodyMargin = parseFloat( $body.css( 'margin-right' ) ) || 0;\n\t\t\t\t$body.addClass( 'oo-ui-windowManager-modal-active' );\n\t\t\t\t$body.css( 'margin-right', bodyMargin + scrollWidth );\n\t\t\t}\n\t\t\tstackDepth++;\n\t\t\tthis.globalEvents = true;\n\t\t}\n\t} else if ( this.globalEvents ) {\n\t\t$( this.getElementWindow() ).off( {\n\t\t\t// Stop listening for top-level window dimension changes\n\t\t\t'orientationchange resize': this.onWindowResizeHandler\n\t\t} );\n\t\tstackDepth--;\n\t\tif ( stackDepth === 0 ) {\n\t\t\t$body.removeClass( 'oo-ui-windowManager-modal-active' );\n\t\t\t$body.css( 'margin-right', '' );\n\t\t}\n\t\tthis.globalEvents = false;\n\t}\n\t$body.data( 'windowManagerGlobalEvents', stackDepth );\n\n\treturn this;\n};\n\n/**\n * Toggle screen reader visibility of content other than the window manager.\n *\n * @private\n * @param {boolean} [isolate] Make only the window manager visible to screen readers\n * @chainable\n * @return {OO.ui.WindowManager} The manager, for chaining\n */\nOO.ui.WindowManager.prototype.toggleAriaIsolation = function ( isolate ) {\n\tvar $topLevelElement;\n\tisolate = isolate === undefined ? !this.$ariaHidden : !!isolate;\n\n\tif ( isolate ) {\n\t\tif ( !this.$ariaHidden ) {\n\t\t\t// Find the top level element containing the window manager or the\n\t\t\t// window manager's element itself in case its a direct child of body\n\t\t\t$topLevelElement = this.$element.parentsUntil( 'body' ).last();\n\t\t\t$topLevelElement = $topLevelElement.length === 0 ? this.$element : $topLevelElement;\n\n\t\t\t// In case previously set by another window manager\n\t\t\tthis.$element.removeAttr( 'aria-hidden' );\n\n\t\t\t// Hide everything other than the window manager from screen readers\n\t\t\tthis.$ariaHidden = $( document.body )\n\t\t\t\t.children()\n\t\t\t\t.not( 'script' )\n\t\t\t\t.not( $topLevelElement )\n\t\t\t\t.attr( 'aria-hidden', true );\n\t\t}\n\t} else if ( this.$ariaHidden ) {\n\t\t// Restore screen reader visibility\n\t\tthis.$ariaHidden.removeAttr( 'aria-hidden' );\n\t\tthis.$ariaHidden = null;\n\n\t\t// and hide the window manager\n\t\tthis.$element.attr( 'aria-hidden', true );\n\t}\n\n\treturn this;\n};\n\n/**\n * Destroy the window manager.\n *\n * Destroying the window manager ensures that it will no longer listen to events. If you would like to\n * continue using the window manager, but wish to remove all windows from it, use the #clearWindows method\n * instead.\n */\nOO.ui.WindowManager.prototype.destroy = function () {\n\tthis.toggleGlobalEvents( false );\n\tthis.toggleAriaIsolation( false );\n\tthis.clearWindows();\n\tthis.$element.remove();\n};\n","/**\n * A window is a container for elements that are in a child frame. They are used with\n * a window manager (OO.ui.WindowManager), which is used to open and close the window and control\n * its presentation. The size of a window is specified using a symbolic name (e.g., ‘small’, ‘medium’,\n * ‘large’), which is interpreted by the window manager. If the requested size is not recognized,\n * the window manager will choose a sensible fallback.\n *\n * The lifecycle of a window has three primary stages (opening, opened, and closing) in which\n * different processes are executed:\n *\n * **opening**: The opening stage begins when the window manager's {@link OO.ui.WindowManager#openWindow\n * openWindow} or the window's {@link #open open} methods are used, and the window manager begins to open\n * the window.\n *\n * - {@link #getSetupProcess} method is called and its result executed\n * - {@link #getReadyProcess} method is called and its result executed\n *\n * **opened**: The window is now open\n *\n * **closing**: The closing stage begins when the window manager's\n * {@link OO.ui.WindowManager#closeWindow closeWindow}\n * or the window's {@link #close} methods are used, and the window manager begins to close the window.\n *\n * - {@link #getHoldProcess} method is called and its result executed\n * - {@link #getTeardownProcess} method is called and its result executed. The window is now closed\n *\n * Each of the window's processes (setup, ready, hold, and teardown) can be extended in subclasses\n * by overriding the window's #getSetupProcess, #getReadyProcess, #getHoldProcess and #getTeardownProcess\n * methods. Note that each {@link OO.ui.Process process} is executed in series, so asynchronous\n * processing can complete. Always assume window processes are executed asynchronously.\n *\n * For more information, please see the [OOUI documentation on MediaWiki] [1].\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows\n *\n * @abstract\n * @class\n * @extends OO.ui.Element\n * @mixins OO.EventEmitter\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string} [size] Symbolic name of the dialog size: `small`, `medium`, `large`, `larger` or\n *  `full`.  If omitted, the value of the {@link #static-size static size} property will be used.\n */\nOO.ui.Window = function OoUiWindow( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Parent constructor\n\tOO.ui.Window.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.EventEmitter.call( this );\n\n\t// Properties\n\tthis.manager = null;\n\tthis.size = config.size || this.constructor.static.size;\n\tthis.$frame = $( '<div>' );\n\t/**\n\t * Overlay element to use for the `$overlay` configuration option of widgets that support it.\n\t * Things put inside of it are overlaid on top of the window and are not bound to its dimensions.\n\t * See <https://www.mediawiki.org/wiki/OOUI/Concepts#Overlays>.\n\t *\n\t *     MyDialog.prototype.initialize = function () {\n\t *       ...\n\t *       var popupButton = new OO.ui.PopupButtonWidget( {\n\t *         $overlay: this.$overlay,\n\t *         label: 'Popup button',\n\t *         popup: {\n\t *           $content: $( '<p>Popup contents.</p><p>Popup contents.</p><p>Popup contents.</p>' ),\n\t *           padded: true\n\t *         }\n\t *       } );\n\t *       ...\n\t *     };\n\t *\n\t * @property {jQuery}\n\t */\n\tthis.$overlay = $( '<div>' );\n\tthis.$content = $( '<div>' );\n\n\tthis.$focusTrapBefore = $( '<div>' ).prop( 'tabIndex', 0 );\n\tthis.$focusTrapAfter = $( '<div>' ).prop( 'tabIndex', 0 );\n\tthis.$focusTraps = this.$focusTrapBefore.add( this.$focusTrapAfter );\n\n\t// Initialization\n\tthis.$overlay.addClass( 'oo-ui-window-overlay' );\n\tthis.$content\n\t\t.addClass( 'oo-ui-window-content' )\n\t\t.attr( 'tabindex', 0 );\n\tthis.$frame\n\t\t.addClass( 'oo-ui-window-frame' )\n\t\t.append( this.$focusTrapBefore, this.$content, this.$focusTrapAfter );\n\n\tthis.$element\n\t\t.addClass( 'oo-ui-window' )\n\t\t.append( this.$frame, this.$overlay );\n\n\t// Initially hidden - using #toggle may cause errors if subclasses override toggle with methods\n\t// that reference properties not initialized at that time of parent class construction\n\t// TODO: Find a better way to handle post-constructor setup\n\tthis.visible = false;\n\tthis.$element.addClass( 'oo-ui-element-hidden' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.Window, OO.ui.Element );\nOO.mixinClass( OO.ui.Window, OO.EventEmitter );\n\n/* Static Properties */\n\n/**\n * Symbolic name of the window size: `small`, `medium`, `large`, `larger` or `full`.\n *\n * The static size is used if no #size is configured during construction.\n *\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.Window.static.size = 'medium';\n\n/* Methods */\n\n/**\n * Handle mouse down events.\n *\n * @private\n * @param {jQuery.Event} e Mouse down event\n * @return {OO.ui.Window} The window, for chaining\n */\nOO.ui.Window.prototype.onMouseDown = function ( e ) {\n\t// Prevent clicking on the click-block from stealing focus\n\tif ( e.target === this.$element[ 0 ] ) {\n\t\treturn false;\n\t}\n};\n\n/**\n * Check if the window has been initialized.\n *\n * Initialization occurs when a window is added to a manager.\n *\n * @return {boolean} Window has been initialized\n */\nOO.ui.Window.prototype.isInitialized = function () {\n\treturn !!this.manager;\n};\n\n/**\n * Check if the window is visible.\n *\n * @return {boolean} Window is visible\n */\nOO.ui.Window.prototype.isVisible = function () {\n\treturn this.visible;\n};\n\n/**\n * Check if the window is opening.\n *\n * This method is a wrapper around the window manager's {@link OO.ui.WindowManager#isOpening isOpening}\n * method.\n *\n * @return {boolean} Window is opening\n */\nOO.ui.Window.prototype.isOpening = function () {\n\treturn this.manager.isOpening( this );\n};\n\n/**\n * Check if the window is closing.\n *\n * This method is a wrapper around the window manager's {@link OO.ui.WindowManager#isClosing isClosing} method.\n *\n * @return {boolean} Window is closing\n */\nOO.ui.Window.prototype.isClosing = function () {\n\treturn this.manager.isClosing( this );\n};\n\n/**\n * Check if the window is opened.\n *\n * This method is a wrapper around the window manager's {@link OO.ui.WindowManager#isOpened isOpened} method.\n *\n * @return {boolean} Window is opened\n */\nOO.ui.Window.prototype.isOpened = function () {\n\treturn this.manager.isOpened( this );\n};\n\n/**\n * Get the window manager.\n *\n * All windows must be attached to a window manager, which is used to open\n * and close the window and control its presentation.\n *\n * @return {OO.ui.WindowManager} Manager of window\n */\nOO.ui.Window.prototype.getManager = function () {\n\treturn this.manager;\n};\n\n/**\n * Get the symbolic name of the window size (e.g., `small` or `medium`).\n *\n * @return {string} Symbolic name of the size: `small`, `medium`, `large`, `larger`, `full`\n */\nOO.ui.Window.prototype.getSize = function () {\n\tvar viewport = OO.ui.Element.static.getDimensions( this.getElementWindow() ),\n\t\tsizes = this.manager.constructor.static.sizes,\n\t\tsize = this.size;\n\n\tif ( !sizes[ size ] ) {\n\t\tsize = this.manager.constructor.static.defaultSize;\n\t}\n\tif ( size !== 'full' && viewport.rect.right - viewport.rect.left < sizes[ size ].width ) {\n\t\tsize = 'full';\n\t}\n\n\treturn size;\n};\n\n/**\n * Get the size properties associated with the current window size\n *\n * @return {Object} Size properties\n */\nOO.ui.Window.prototype.getSizeProperties = function () {\n\treturn this.manager.constructor.static.sizes[ this.getSize() ];\n};\n\n/**\n * Disable transitions on window's frame for the duration of the callback function, then enable them\n * back.\n *\n * @private\n * @param {Function} callback Function to call while transitions are disabled\n */\nOO.ui.Window.prototype.withoutSizeTransitions = function ( callback ) {\n\t// Temporarily resize the frame so getBodyHeight() can use scrollHeight measurements.\n\t// Disable transitions first, otherwise we'll get values from when the window was animating.\n\t// We need to build the transition CSS properties using these specific properties since\n\t// Firefox doesn't return anything useful when asked just for 'transition'.\n\tvar oldTransition = this.$frame.css( 'transition-property' ) + ' ' +\n\t\tthis.$frame.css( 'transition-duration' ) + ' ' +\n\t\tthis.$frame.css( 'transition-timing-function' ) + ' ' +\n\t\tthis.$frame.css( 'transition-delay' );\n\n\tthis.$frame.css( 'transition', 'none' );\n\tcallback();\n\n\t// Force reflow to make sure the style changes done inside callback\n\t// really are not transitioned\n\tthis.$frame.height();\n\tthis.$frame.css( 'transition', oldTransition );\n};\n\n/**\n * Get the height of the full window contents (i.e., the window head, body and foot together).\n *\n * What constitutes the head, body, and foot varies depending on the window type.\n * A {@link OO.ui.MessageDialog message dialog} displays a title and message in its body,\n * and any actions in the foot. A {@link OO.ui.ProcessDialog process dialog} displays a title\n * and special actions in the head, and dialog content in the body.\n *\n * To get just the height of the dialog body, use the #getBodyHeight method.\n *\n * @return {number} The height of the window contents (the dialog head, body and foot) in pixels\n */\nOO.ui.Window.prototype.getContentHeight = function () {\n\tvar bodyHeight,\n\t\twin = this,\n\t\tbodyStyleObj = this.$body[ 0 ].style,\n\t\tframeStyleObj = this.$frame[ 0 ].style;\n\n\t// Temporarily resize the frame so getBodyHeight() can use scrollHeight measurements.\n\t// Disable transitions first, otherwise we'll get values from when the window was animating.\n\tthis.withoutSizeTransitions( function () {\n\t\tvar oldHeight = frameStyleObj.height,\n\t\t\toldPosition = bodyStyleObj.position;\n\t\tframeStyleObj.height = '1px';\n\t\t// Force body to resize to new width\n\t\tbodyStyleObj.position = 'relative';\n\t\tbodyHeight = win.getBodyHeight();\n\t\tframeStyleObj.height = oldHeight;\n\t\tbodyStyleObj.position = oldPosition;\n\t} );\n\n\treturn (\n\t\t// Add buffer for border\n\t\t( this.$frame.outerHeight() - this.$frame.innerHeight() ) +\n\t\t// Use combined heights of children\n\t\t( this.$head.outerHeight( true ) + bodyHeight + this.$foot.outerHeight( true ) )\n\t);\n};\n\n/**\n * Get the height of the window body.\n *\n * To get the height of the full window contents (the window body, head, and foot together),\n * use #getContentHeight.\n *\n * When this function is called, the window will temporarily have been resized\n * to height=1px, so .scrollHeight measurements can be taken accurately.\n *\n * @return {number} Height of the window body in pixels\n */\nOO.ui.Window.prototype.getBodyHeight = function () {\n\treturn this.$body[ 0 ].scrollHeight;\n};\n\n/**\n * Get the directionality of the frame (right-to-left or left-to-right).\n *\n * @return {string} Directionality: `'ltr'` or `'rtl'`\n */\nOO.ui.Window.prototype.getDir = function () {\n\treturn OO.ui.Element.static.getDir( this.$content ) || 'ltr';\n};\n\n/**\n * Get the 'setup' process.\n *\n * The setup process is used to set up a window for use in a particular context, based on the `data`\n * argument. This method is called during the opening phase of the window’s lifecycle (before the\n * opening animation). You can add elements to the window in this process or set their default\n * values.\n *\n * Override this method to add additional steps to the ‘setup’ process the parent method provides\n * using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next} methods\n * of OO.ui.Process.\n *\n * To add window content that persists between openings, you may wish to use the #initialize method\n * instead.\n *\n * @param {Object} [data] Window opening data\n * @return {OO.ui.Process} Setup process\n */\nOO.ui.Window.prototype.getSetupProcess = function () {\n\treturn new OO.ui.Process();\n};\n\n/**\n * Get the ‘ready’ process.\n *\n * The ready process is used to ready a window for use in a particular context, based on the `data`\n * argument. This method is called during the opening phase of the window’s lifecycle, after the\n * window has been {@link #getSetupProcess setup} (after the opening animation). You can focus\n * elements in the window in this process, or open their dropdowns.\n *\n * Override this method to add additional steps to the ‘ready’ process the parent method\n * provides using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next}\n * methods of OO.ui.Process.\n *\n * @param {Object} [data] Window opening data\n * @return {OO.ui.Process} Ready process\n */\nOO.ui.Window.prototype.getReadyProcess = function () {\n\treturn new OO.ui.Process();\n};\n\n/**\n * Get the 'hold' process.\n *\n * The hold process is used to keep a window from being used in a particular context, based on the\n * `data` argument. This method is called during the closing phase of the window’s lifecycle (before\n * the closing animation). You can close dropdowns of elements in the window in this process, if\n * they do not get closed automatically.\n *\n * Override this method to add additional steps to the 'hold' process the parent method provides\n * using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next} methods\n * of OO.ui.Process.\n *\n * @param {Object} [data] Window closing data\n * @return {OO.ui.Process} Hold process\n */\nOO.ui.Window.prototype.getHoldProcess = function () {\n\treturn new OO.ui.Process();\n};\n\n/**\n * Get the ‘teardown’ process.\n *\n * The teardown process is used to teardown a window after use. During teardown, user interactions\n * within the window are conveyed and the window is closed, based on the `data` argument. This\n * method is called during the closing phase of the window’s lifecycle (after the closing\n * animation). You can remove elements in the window in this process or clear their values.\n *\n * Override this method to add additional steps to the ‘teardown’ process the parent method provides\n * using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next} methods\n * of OO.ui.Process.\n *\n * @param {Object} [data] Window closing data\n * @return {OO.ui.Process} Teardown process\n */\nOO.ui.Window.prototype.getTeardownProcess = function () {\n\treturn new OO.ui.Process();\n};\n\n/**\n * Set the window manager.\n *\n * This will cause the window to initialize. Calling it more than once will cause an error.\n *\n * @param {OO.ui.WindowManager} manager Manager for this window\n * @throws {Error} An error is thrown if the method is called more than once\n * @chainable\n * @return {OO.ui.Window} The window, for chaining\n */\nOO.ui.Window.prototype.setManager = function ( manager ) {\n\tif ( this.manager ) {\n\t\tthrow new Error( 'Cannot set window manager, window already has a manager' );\n\t}\n\n\tthis.manager = manager;\n\tthis.initialize();\n\n\treturn this;\n};\n\n/**\n * Set the window size by symbolic name (e.g., 'small' or 'medium')\n *\n * @param {string} size Symbolic name of size: `small`, `medium`, `large`, `larger` or\n *  `full`\n * @chainable\n * @return {OO.ui.Window} The window, for chaining\n */\nOO.ui.Window.prototype.setSize = function ( size ) {\n\tthis.size = size;\n\tthis.updateSize();\n\treturn this;\n};\n\n/**\n * Update the window size.\n *\n * @throws {Error} An error is thrown if the window is not attached to a window manager\n * @chainable\n * @return {OO.ui.Window} The window, for chaining\n */\nOO.ui.Window.prototype.updateSize = function () {\n\tif ( !this.manager ) {\n\t\tthrow new Error( 'Cannot update window size, must be attached to a manager' );\n\t}\n\n\tthis.manager.updateWindowSize( this );\n\n\treturn this;\n};\n\n/**\n * Set window dimensions. This method is called by the {@link OO.ui.WindowManager window manager}\n * when the window is opening. In general, setDimensions should not be called directly.\n *\n * To set the size of the window, use the #setSize method.\n *\n * @param {Object} dim CSS dimension properties\n * @param {string|number} [dim.width] Width\n * @param {string|number} [dim.minWidth] Minimum width\n * @param {string|number} [dim.maxWidth] Maximum width\n * @param {string|number} [dim.height] Height, omit to set based on height of contents\n * @param {string|number} [dim.minHeight] Minimum height\n * @param {string|number} [dim.maxHeight] Maximum height\n * @chainable\n * @return {OO.ui.Window} The window, for chaining\n */\nOO.ui.Window.prototype.setDimensions = function ( dim ) {\n\tvar height,\n\t\twin = this,\n\t\tstyleObj = this.$frame[ 0 ].style;\n\n\t// Calculate the height we need to set using the correct width\n\tif ( dim.height === undefined ) {\n\t\tthis.withoutSizeTransitions( function () {\n\t\t\tvar oldWidth = styleObj.width;\n\t\t\twin.$frame.css( 'width', dim.width || '' );\n\t\t\theight = win.getContentHeight();\n\t\t\tstyleObj.width = oldWidth;\n\t\t} );\n\t} else {\n\t\theight = dim.height;\n\t}\n\n\tthis.$frame.css( {\n\t\twidth: dim.width || '',\n\t\tminWidth: dim.minWidth || '',\n\t\tmaxWidth: dim.maxWidth || '',\n\t\theight: height || '',\n\t\tminHeight: dim.minHeight || '',\n\t\tmaxHeight: dim.maxHeight || ''\n\t} );\n\n\treturn this;\n};\n\n/**\n * Initialize window contents.\n *\n * Before the window is opened for the first time, #initialize is called so that content that\n * persists between openings can be added to the window.\n *\n * To set up a window with new content each time the window opens, use #getSetupProcess.\n *\n * @throws {Error} An error is thrown if the window is not attached to a window manager\n * @chainable\n * @return {OO.ui.Window} The window, for chaining\n */\nOO.ui.Window.prototype.initialize = function () {\n\tif ( !this.manager ) {\n\t\tthrow new Error( 'Cannot initialize window, must be attached to a manager' );\n\t}\n\n\t// Properties\n\tthis.$head = $( '<div>' );\n\tthis.$body = $( '<div>' );\n\tthis.$foot = $( '<div>' );\n\tthis.$document = $( this.getElementDocument() );\n\n\t// Events\n\tthis.$element.on( 'mousedown', this.onMouseDown.bind( this ) );\n\n\t// Initialization\n\tthis.$head.addClass( 'oo-ui-window-head' );\n\tthis.$body.addClass( 'oo-ui-window-body' );\n\tthis.$foot.addClass( 'oo-ui-window-foot' );\n\tthis.$content.append( this.$head, this.$body, this.$foot );\n\n\treturn this;\n};\n\n/**\n * Called when someone tries to focus the hidden element at the end of the dialog.\n * Sends focus back to the start of the dialog.\n *\n * @param {jQuery.Event} event Focus event\n */\nOO.ui.Window.prototype.onFocusTrapFocused = function ( event ) {\n\tvar backwards = this.$focusTrapBefore.is( event.target ),\n\t\telement = OO.ui.findFocusable( this.$content, backwards );\n\tif ( element ) {\n\t\t// There's a focusable element inside the content, at the front or\n\t\t// back depending on which focus trap we hit; select it.\n\t\telement.focus();\n\t} else {\n\t\t// There's nothing focusable inside the content. As a fallback,\n\t\t// this.$content is focusable, and focusing it will keep our focus\n\t\t// properly trapped. It's not a *meaningful* focus, since it's just\n\t\t// the content-div for the Window, but it's better than letting focus\n\t\t// escape into the page.\n\t\tthis.$content.focus();\n\t}\n};\n\n/**\n * Open the window.\n *\n * This method is a wrapper around a call to the window\n * manager’s {@link OO.ui.WindowManager#openWindow openWindow} method.\n *\n * To customize the window each time it opens, use #getSetupProcess or #getReadyProcess.\n *\n * @param {Object} [data] Window opening data\n * @return {OO.ui.WindowInstance} See OO.ui.WindowManager#openWindow\n * @throws {Error} An error is thrown if the window is not attached to a window manager\n */\nOO.ui.Window.prototype.open = function ( data ) {\n\tif ( !this.manager ) {\n\t\tthrow new Error( 'Cannot open window, must be attached to a manager' );\n\t}\n\n\treturn this.manager.openWindow( this, data );\n};\n\n/**\n * Close the window.\n *\n * This method is a wrapper around a call to the window\n * manager’s {@link OO.ui.WindowManager#closeWindow closeWindow} method.\n *\n * The window's #getHoldProcess and #getTeardownProcess methods are called during the closing\n * phase of the window’s lifecycle and can be used to specify closing behavior each time\n * the window closes.\n *\n * @param {Object} [data] Window closing data\n * @return {OO.ui.WindowInstance} See OO.ui.WindowManager#closeWindow\n * @throws {Error} An error is thrown if the window is not attached to a window manager\n */\nOO.ui.Window.prototype.close = function ( data ) {\n\tif ( !this.manager ) {\n\t\tthrow new Error( 'Cannot close window, must be attached to a manager' );\n\t}\n\n\treturn this.manager.closeWindow( this, data );\n};\n\n/**\n * Setup window.\n *\n * This is called by OO.ui.WindowManager during window opening (before the animation), and should\n * not be called directly by other systems.\n *\n * @param {Object} [data] Window opening data\n * @return {jQuery.Promise} Promise resolved when window is setup\n */\nOO.ui.Window.prototype.setup = function ( data ) {\n\tvar win = this;\n\n\tthis.toggle( true );\n\n\tthis.focusTrapHandler = OO.ui.bind( this.onFocusTrapFocused, this );\n\tthis.$focusTraps.on( 'focus', this.focusTrapHandler );\n\n\treturn this.getSetupProcess( data ).execute().then( function () {\n\t\twin.updateSize();\n\t\t// Force redraw by asking the browser to measure the elements' widths\n\t\twin.$element.addClass( 'oo-ui-window-active oo-ui-window-setup' ).width();\n\t\twin.$content.addClass( 'oo-ui-window-content-setup' ).width();\n\t} );\n};\n\n/**\n * Ready window.\n *\n * This is called by OO.ui.WindowManager during window opening (after the animation), and should not\n * be called directly by other systems.\n *\n * @param {Object} [data] Window opening data\n * @return {jQuery.Promise} Promise resolved when window is ready\n */\nOO.ui.Window.prototype.ready = function ( data ) {\n\tvar win = this;\n\n\tthis.$content.focus();\n\treturn this.getReadyProcess( data ).execute().then( function () {\n\t\t// Force redraw by asking the browser to measure the elements' widths\n\t\twin.$element.addClass( 'oo-ui-window-ready' ).width();\n\t\twin.$content.addClass( 'oo-ui-window-content-ready' ).width();\n\t} );\n};\n\n/**\n * Hold window.\n *\n * This is called by OO.ui.WindowManager during window closing (before the animation), and should\n * not be called directly by other systems.\n *\n * @param {Object} [data] Window closing data\n * @return {jQuery.Promise} Promise resolved when window is held\n */\nOO.ui.Window.prototype.hold = function ( data ) {\n\tvar win = this;\n\n\treturn this.getHoldProcess( data ).execute().then( function () {\n\t\t// Get the focused element within the window's content\n\t\tvar $focus = win.$content.find( OO.ui.Element.static.getDocument( win.$content ).activeElement );\n\n\t\t// Blur the focused element\n\t\tif ( $focus.length ) {\n\t\t\t// eslint-disable-next-line jquery/no-event-shorthand\n\t\t\t$focus[ 0 ].blur();\n\t\t}\n\n\t\t// Force redraw by asking the browser to measure the elements' widths\n\t\twin.$element.removeClass( 'oo-ui-window-ready oo-ui-window-setup' ).width();\n\t\twin.$content.removeClass( 'oo-ui-window-content-ready oo-ui-window-content-setup' ).width();\n\t} );\n};\n\n/**\n * Teardown window.\n *\n * This is called by OO.ui.WindowManager during window closing (after the animation), and should not be called directly\n * by other systems.\n *\n * @param {Object} [data] Window closing data\n * @return {jQuery.Promise} Promise resolved when window is torn down\n */\nOO.ui.Window.prototype.teardown = function ( data ) {\n\tvar win = this;\n\n\treturn this.getTeardownProcess( data ).execute().then( function () {\n\t\t// Force redraw by asking the browser to measure the elements' widths\n\t\twin.$element.removeClass( 'oo-ui-window-active' ).width();\n\n\t\twin.$focusTraps.off( 'focus', win.focusTrapHandler );\n\t\twin.toggle( false );\n\t} );\n};\n","/**\n * The Dialog class serves as the base class for the other types of dialogs.\n * Unless extended to include controls, the rendered dialog box is a simple window\n * that users can close by hitting the ‘Esc’ key. Dialog windows are used with OO.ui.WindowManager,\n * which opens, closes, and controls the presentation of the window. See the\n * [OOUI documentation on MediaWiki] [1] for more information.\n *\n *     @example\n *     // A simple dialog window.\n *     function MyDialog( config ) {\n *         MyDialog.parent.call( this, config );\n *     }\n *     OO.inheritClass( MyDialog, OO.ui.Dialog );\n *     MyDialog.static.name = 'myDialog';\n *     MyDialog.prototype.initialize = function () {\n *         MyDialog.parent.prototype.initialize.call( this );\n *         this.content = new OO.ui.PanelLayout( { padded: true, expanded: false } );\n *         this.content.$element.append( '<p>A simple dialog window. Press \\'Esc\\' to close.</p>' );\n *         this.$body.append( this.content.$element );\n *     };\n *     MyDialog.prototype.getBodyHeight = function () {\n *         return this.content.$element.outerHeight( true );\n *     };\n *     var myDialog = new MyDialog( {\n *         size: 'medium'\n *     } );\n *     // Create and append a window manager, which opens and closes the window.\n *     var windowManager = new OO.ui.WindowManager();\n *     $( document.body ).append( windowManager.$element );\n *     windowManager.addWindows( [ myDialog ] );\n *     // Open the window!\n *     windowManager.openWindow( myDialog );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows/Dialogs\n *\n * @abstract\n * @class\n * @extends OO.ui.Window\n * @mixins OO.ui.mixin.PendingElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.Dialog = function OoUiDialog( config ) {\n\t// Parent constructor\n\tOO.ui.Dialog.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.PendingElement.call( this );\n\n\t// Properties\n\tthis.actions = new OO.ui.ActionSet();\n\tthis.attachedActions = [];\n\tthis.currentAction = null;\n\tthis.onDialogKeyDownHandler = this.onDialogKeyDown.bind( this );\n\n\t// Events\n\tthis.actions.connect( this, {\n\t\tclick: 'onActionClick',\n\t\tchange: 'onActionsChange'\n\t} );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-dialog' )\n\t\t.attr( 'role', 'dialog' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.Dialog, OO.ui.Window );\nOO.mixinClass( OO.ui.Dialog, OO.ui.mixin.PendingElement );\n\n/* Static Properties */\n\n/**\n * Symbolic name of dialog.\n *\n * The dialog class must have a symbolic name in order to be registered with OO.Factory.\n * Please see the [OOUI documentation on MediaWiki] [3] for more information.\n *\n * [3]: https://www.mediawiki.org/wiki/OOUI/Windows/Window_managers\n *\n * @abstract\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.Dialog.static.name = '';\n\n/**\n * The dialog title.\n *\n * The title can be specified as a plaintext string, a {@link OO.ui.mixin.LabelElement Label} node, or a function\n * that will produce a Label node or string. The title can also be specified with data passed to the\n * constructor (see #getSetupProcess). In this case, the static value will be overridden.\n *\n * @abstract\n * @static\n * @inheritable\n * @property {jQuery|string|Function}\n */\nOO.ui.Dialog.static.title = '';\n\n/**\n * An array of configured {@link OO.ui.ActionWidget action widgets}.\n *\n * Actions can also be specified with data passed to the constructor (see #getSetupProcess). In this case, the static\n * value will be overridden.\n *\n * [2]: https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs#Action_sets\n *\n * @static\n * @inheritable\n * @property {Object[]}\n */\nOO.ui.Dialog.static.actions = [];\n\n/**\n * Close the dialog when the 'Esc' key is pressed.\n *\n * @static\n * @abstract\n * @inheritable\n * @property {boolean}\n */\nOO.ui.Dialog.static.escapable = true;\n\n/* Methods */\n\n/**\n * Handle frame document key down events.\n *\n * @private\n * @param {jQuery.Event} e Key down event\n */\nOO.ui.Dialog.prototype.onDialogKeyDown = function ( e ) {\n\tvar actions;\n\tif ( e.which === OO.ui.Keys.ESCAPE && this.constructor.static.escapable ) {\n\t\tthis.executeAction( '' );\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t} else if ( e.which === OO.ui.Keys.ENTER && ( e.ctrlKey || e.metaKey ) ) {\n\t\tactions = this.actions.get( { flags: 'primary', visible: true, disabled: false } );\n\t\tif ( actions.length > 0 ) {\n\t\t\tthis.executeAction( actions[ 0 ].getAction() );\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n};\n\n/**\n * Handle action click events.\n *\n * @private\n * @param {OO.ui.ActionWidget} action Action that was clicked\n */\nOO.ui.Dialog.prototype.onActionClick = function ( action ) {\n\tif ( !this.isPending() ) {\n\t\tthis.executeAction( action.getAction() );\n\t}\n};\n\n/**\n * Handle actions change event.\n *\n * @private\n */\nOO.ui.Dialog.prototype.onActionsChange = function () {\n\tthis.detachActions();\n\tif ( !this.isClosing() ) {\n\t\tthis.attachActions();\n\t\tif ( !this.isOpening() ) {\n\t\t\t// If the dialog is currently opening, this will be called automatically soon.\n\t\t\tthis.updateSize();\n\t\t}\n\t}\n};\n\n/**\n * Get the set of actions used by the dialog.\n *\n * @return {OO.ui.ActionSet}\n */\nOO.ui.Dialog.prototype.getActions = function () {\n\treturn this.actions;\n};\n\n/**\n * Get a process for taking action.\n *\n * When you override this method, you can create a new OO.ui.Process and return it, or add additional\n * accept steps to the process the parent method provides using the {@link OO.ui.Process#first 'first'}\n * and {@link OO.ui.Process#next 'next'} methods of OO.ui.Process.\n *\n * @param {string} [action] Symbolic name of action\n * @return {OO.ui.Process} Action process\n */\nOO.ui.Dialog.prototype.getActionProcess = function ( action ) {\n\treturn new OO.ui.Process()\n\t\t.next( function () {\n\t\t\tif ( !action ) {\n\t\t\t\t// An empty action always closes the dialog without data, which should always be\n\t\t\t\t// safe and make no changes\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t}, this );\n};\n\n/**\n * @inheritdoc\n *\n * @param {Object} [data] Dialog opening data\n * @param {jQuery|string|Function|null} [data.title] Dialog title, omit to use\n *  the {@link #static-title static title}\n * @param {Object[]} [data.actions] List of configuration options for each\n *   {@link OO.ui.ActionWidget action widget}, omit to use {@link #static-actions static actions}.\n */\nOO.ui.Dialog.prototype.getSetupProcess = function ( data ) {\n\tdata = data || {};\n\n\t// Parent method\n\treturn OO.ui.Dialog.parent.prototype.getSetupProcess.call( this, data )\n\t\t.next( function () {\n\t\t\tvar config = this.constructor.static,\n\t\t\t\tactions = data.actions !== undefined ? data.actions : config.actions,\n\t\t\t\ttitle = data.title !== undefined ? data.title : config.title;\n\n\t\t\tthis.title.setLabel( title ).setTitle( title );\n\t\t\tthis.actions.add( this.getActionWidgets( actions ) );\n\n\t\t\tthis.$element.on( 'keydown', this.onDialogKeyDownHandler );\n\t\t}, this );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.Dialog.prototype.getTeardownProcess = function ( data ) {\n\t// Parent method\n\treturn OO.ui.Dialog.parent.prototype.getTeardownProcess.call( this, data )\n\t\t.first( function () {\n\t\t\tthis.$element.off( 'keydown', this.onDialogKeyDownHandler );\n\n\t\t\tthis.actions.clear();\n\t\t\tthis.currentAction = null;\n\t\t}, this );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.Dialog.prototype.initialize = function () {\n\t// Parent method\n\tOO.ui.Dialog.parent.prototype.initialize.call( this );\n\n\t// Properties\n\tthis.title = new OO.ui.LabelWidget();\n\n\t// Initialization\n\tthis.$content.addClass( 'oo-ui-dialog-content' );\n\tthis.$element.attr( 'aria-labelledby', this.title.getElementId() );\n\tthis.setPendingElement( this.$head );\n};\n\n/**\n * Get action widgets from a list of configs\n *\n * @param {Object[]} actions Action widget configs\n * @return {OO.ui.ActionWidget[]} Action widgets\n */\nOO.ui.Dialog.prototype.getActionWidgets = function ( actions ) {\n\tvar i, len, widgets = [];\n\tfor ( i = 0, len = actions.length; i < len; i++ ) {\n\t\twidgets.push( this.getActionWidget( actions[ i ] ) );\n\t}\n\treturn widgets;\n};\n\n/**\n * Get action widget from config\n *\n * Override this method to change the action widget class used.\n *\n * @param {Object} config Action widget config\n * @return {OO.ui.ActionWidget} Action widget\n */\nOO.ui.Dialog.prototype.getActionWidget = function ( config ) {\n\treturn new OO.ui.ActionWidget( this.getActionWidgetConfig( config ) );\n};\n\n/**\n * Get action widget config\n *\n * Override this method to modify the action widget config\n *\n * @param {Object} config Initial action widget config\n * @return {Object} Action widget config\n */\nOO.ui.Dialog.prototype.getActionWidgetConfig = function ( config ) {\n\treturn config;\n};\n\n/**\n * Attach action actions.\n *\n * @protected\n */\nOO.ui.Dialog.prototype.attachActions = function () {\n\t// Remember the list of potentially attached actions\n\tthis.attachedActions = this.actions.get();\n};\n\n/**\n * Detach action actions.\n *\n * @protected\n * @chainable\n * @return {OO.ui.Dialog} The dialog, for chaining\n */\nOO.ui.Dialog.prototype.detachActions = function () {\n\tvar i, len;\n\n\t// Detach all actions that may have been previously attached\n\tfor ( i = 0, len = this.attachedActions.length; i < len; i++ ) {\n\t\tthis.attachedActions[ i ].$element.detach();\n\t}\n\tthis.attachedActions = [];\n\n\treturn this;\n};\n\n/**\n * Execute an action.\n *\n * @param {string} action Symbolic name of action to execute\n * @return {jQuery.Promise} Promise resolved when action completes, rejected if it fails\n */\nOO.ui.Dialog.prototype.executeAction = function ( action ) {\n\tthis.pushPending();\n\tthis.currentAction = action;\n\treturn this.getActionProcess( action ).execute()\n\t\t.always( this.popPending.bind( this ) );\n};\n","/**\n * MessageDialogs display a confirmation or alert message. By default, the rendered dialog box\n * consists of a header that contains the dialog title, a body with the message, and a footer that\n * contains any {@link OO.ui.ActionWidget action widgets}. The MessageDialog class is the only type\n * of {@link OO.ui.Dialog dialog} that is usually instantiated directly.\n *\n * There are two basic types of message dialogs, confirmation and alert:\n *\n * - **confirmation**: the dialog title describes what a progressive action will do and the message provides\n *  more details about the consequences.\n * - **alert**: the dialog title describes which event occurred and the message provides more information\n *  about why the event occurred.\n *\n * The MessageDialog class specifies two actions: ‘accept’, the primary\n * action (e.g., ‘ok’) and ‘reject,’ the safe action (e.g., ‘cancel’). Both will close the window,\n * passing along the selected action.\n *\n * For more information and examples, please see the [OOUI documentation on MediaWiki][1].\n *\n *     @example\n *     // Example: Creating and opening a message dialog window.\n *     var messageDialog = new OO.ui.MessageDialog();\n *\n *     // Create and append a window manager.\n *     var windowManager = new OO.ui.WindowManager();\n *     $( document.body ).append( windowManager.$element );\n *     windowManager.addWindows( [ messageDialog ] );\n *     // Open the window.\n *     windowManager.openWindow( messageDialog, {\n *         title: 'Basic message dialog',\n *         message: 'This is the message'\n *     } );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows/Message_Dialogs\n *\n * @class\n * @extends OO.ui.Dialog\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.MessageDialog = function OoUiMessageDialog( config ) {\n\t// Parent constructor\n\tOO.ui.MessageDialog.parent.call( this, config );\n\n\t// Properties\n\tthis.verticalActionLayout = null;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-messageDialog' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MessageDialog, OO.ui.Dialog );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.MessageDialog.static.name = 'message';\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.MessageDialog.static.size = 'small';\n\n/**\n * Dialog title.\n *\n * The title of a confirmation dialog describes what a progressive action will do. The\n * title of an alert dialog describes which event occurred.\n *\n * @static\n * @inheritable\n * @property {jQuery|string|Function|null}\n */\nOO.ui.MessageDialog.static.title = null;\n\n/**\n * The message displayed in the dialog body.\n *\n * A confirmation message describes the consequences of a progressive action. An alert\n * message describes why an event occurred.\n *\n * @static\n * @inheritable\n * @property {jQuery|string|Function|null}\n */\nOO.ui.MessageDialog.static.message = null;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.MessageDialog.static.actions = [\n\t// Note that OO.ui.alert() and OO.ui.confirm() rely on these.\n\t{ action: 'accept', label: OO.ui.deferMsg( 'ooui-dialog-message-accept' ), flags: 'primary' },\n\t{ action: 'reject', label: OO.ui.deferMsg( 'ooui-dialog-message-reject' ), flags: 'safe' }\n];\n\n/* Methods */\n\n/**\n * Toggle action layout between vertical and horizontal.\n *\n * @private\n * @param {boolean} [value] Layout actions vertically, omit to toggle\n * @chainable\n * @return {OO.ui.MessageDialog} The dialog, for chaining\n */\nOO.ui.MessageDialog.prototype.toggleVerticalActionLayout = function ( value ) {\n\tvalue = value === undefined ? !this.verticalActionLayout : !!value;\n\n\tif ( value !== this.verticalActionLayout ) {\n\t\tthis.verticalActionLayout = value;\n\t\tthis.$actions\n\t\t\t.toggleClass( 'oo-ui-messageDialog-actions-vertical', value )\n\t\t\t.toggleClass( 'oo-ui-messageDialog-actions-horizontal', !value );\n\t}\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.getActionProcess = function ( action ) {\n\tif ( action ) {\n\t\treturn new OO.ui.Process( function () {\n\t\t\tthis.close( { action: action } );\n\t\t}, this );\n\t}\n\treturn OO.ui.MessageDialog.parent.prototype.getActionProcess.call( this, action );\n};\n\n/**\n * @inheritdoc\n *\n * @param {Object} [data] Dialog opening data\n * @param {jQuery|string|Function|null} [data.title] Description of the action being confirmed\n * @param {jQuery|string|Function|null} [data.message] Description of the action's consequence\n * @param {string} [data.size] Symbolic name of the dialog size, see OO.ui.Window\n * @param {Object[]} [data.actions] List of OO.ui.ActionOptionWidget configuration options for each\n *   action item\n */\nOO.ui.MessageDialog.prototype.getSetupProcess = function ( data ) {\n\tdata = data || {};\n\n\t// Parent method\n\treturn OO.ui.MessageDialog.parent.prototype.getSetupProcess.call( this, data )\n\t\t.next( function () {\n\t\t\tthis.title.setLabel(\n\t\t\t\tdata.title !== undefined ? data.title : this.constructor.static.title\n\t\t\t);\n\t\t\tthis.message.setLabel(\n\t\t\t\tdata.message !== undefined ? data.message : this.constructor.static.message\n\t\t\t);\n\t\t\tthis.size = data.size !== undefined ? data.size : this.constructor.static.size;\n\t\t}, this );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.getReadyProcess = function ( data ) {\n\tdata = data || {};\n\n\t// Parent method\n\treturn OO.ui.MessageDialog.parent.prototype.getReadyProcess.call( this, data )\n\t\t.next( function () {\n\t\t\t// Focus the primary action button\n\t\t\tvar actions = this.actions.get();\n\t\t\tactions = actions.filter( function ( action ) {\n\t\t\t\treturn action.getFlags().indexOf( 'primary' ) > -1;\n\t\t\t} );\n\t\t\tif ( actions.length > 0 ) {\n\t\t\t\tactions[ 0 ].focus();\n\t\t\t}\n\t\t}, this );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.getBodyHeight = function () {\n\tvar bodyHeight, oldOverflow,\n\t\t$scrollable = this.container.$element;\n\n\toldOverflow = $scrollable[ 0 ].style.overflow;\n\t$scrollable[ 0 ].style.overflow = 'hidden';\n\n\tOO.ui.Element.static.reconsiderScrollbars( $scrollable[ 0 ] );\n\n\tbodyHeight = this.text.$element.outerHeight( true );\n\t$scrollable[ 0 ].style.overflow = oldOverflow;\n\n\treturn bodyHeight;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.setDimensions = function ( dim ) {\n\tvar\n\t\tdialog = this,\n\t\t$scrollable = this.container.$element;\n\tOO.ui.MessageDialog.parent.prototype.setDimensions.call( this, dim );\n\n\t// Twiddle the overflow property, otherwise an unnecessary scrollbar will be produced.\n\t// Need to do it after transition completes (250ms), add 50ms just in case.\n\tsetTimeout( function () {\n\t\tvar oldOverflow = $scrollable[ 0 ].style.overflow,\n\t\t\tactiveElement = document.activeElement;\n\n\t\t$scrollable[ 0 ].style.overflow = 'hidden';\n\n\t\tOO.ui.Element.static.reconsiderScrollbars( $scrollable[ 0 ] );\n\n\t\t// Check reconsiderScrollbars didn't destroy our focus, as we\n\t\t// are doing this after the ready process.\n\t\tif ( activeElement && activeElement !== document.activeElement && activeElement.focus ) {\n\t\t\tactiveElement.focus();\n\t\t}\n\n\t\t$scrollable[ 0 ].style.overflow = oldOverflow;\n\t}, 300 );\n\n\tdialog.fitActions();\n\t// Wait for CSS transition to finish and do it again :(\n\tsetTimeout( function () {\n\t\tdialog.fitActions();\n\t}, 300 );\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.initialize = function () {\n\t// Parent method\n\tOO.ui.MessageDialog.parent.prototype.initialize.call( this );\n\n\t// Properties\n\tthis.$actions = $( '<div>' );\n\tthis.container = new OO.ui.PanelLayout( {\n\t\tscrollable: true, classes: [ 'oo-ui-messageDialog-container' ]\n\t} );\n\tthis.text = new OO.ui.PanelLayout( {\n\t\tpadded: true, expanded: false, classes: [ 'oo-ui-messageDialog-text' ]\n\t} );\n\tthis.message = new OO.ui.LabelWidget( {\n\t\tclasses: [ 'oo-ui-messageDialog-message' ]\n\t} );\n\n\t// Initialization\n\tthis.title.$element.addClass( 'oo-ui-messageDialog-title' );\n\tthis.$content.addClass( 'oo-ui-messageDialog-content' );\n\tthis.container.$element.append( this.text.$element );\n\tthis.text.$element.append( this.title.$element, this.message.$element );\n\tthis.$body.append( this.container.$element );\n\tthis.$actions.addClass( 'oo-ui-messageDialog-actions' );\n\tthis.$foot.append( this.$actions );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.getActionWidgetConfig = function ( config ) {\n\t// Force unframed\n\treturn $.extend( {}, config, { framed: false } );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.attachActions = function () {\n\tvar i, len, special, others;\n\n\t// Parent method\n\tOO.ui.MessageDialog.parent.prototype.attachActions.call( this );\n\n\tspecial = this.actions.getSpecial();\n\tothers = this.actions.getOthers();\n\n\tif ( special.safe ) {\n\t\tthis.$actions.append( special.safe.$element );\n\t\tspecial.safe.toggleFramed( true );\n\t}\n\tfor ( i = 0, len = others.length; i < len; i++ ) {\n\t\tthis.$actions.append( others[ i ].$element );\n\t\tothers[ i ].toggleFramed( true );\n\t}\n\tif ( special.primary ) {\n\t\tthis.$actions.append( special.primary.$element );\n\t\tspecial.primary.toggleFramed( true );\n\t}\n};\n\n/**\n * Fit action actions into columns or rows.\n *\n * Columns will be used if all labels can fit without overflow, otherwise rows will be used.\n *\n * @private\n */\nOO.ui.MessageDialog.prototype.fitActions = function () {\n\tvar i, len, action,\n\t\tprevious = this.verticalActionLayout,\n\t\tactions = this.actions.get();\n\n\t// Detect clipping\n\tthis.toggleVerticalActionLayout( false );\n\tfor ( i = 0, len = actions.length; i < len; i++ ) {\n\t\taction = actions[ i ];\n\t\tif ( action.$element[ 0 ].scrollWidth > action.$element[ 0 ].clientWidth ) {\n\t\t\tthis.toggleVerticalActionLayout( true );\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Move the body out of the way of the foot\n\tthis.$body.css( 'bottom', this.$foot.outerHeight( true ) );\n\n\tif ( this.verticalActionLayout !== previous ) {\n\t\t// We changed the layout, window height might need to be updated.\n\t\tthis.updateSize();\n\t}\n};\n","/**\n * ProcessDialog windows encapsulate a {@link OO.ui.Process process} and all of the code necessary\n * to complete it. If the process terminates with an error, a customizable {@link OO.ui.Error error\n * interface} alerts users to the trouble, permitting the user to dismiss the error and try again when\n * relevant. The ProcessDialog class is always extended and customized with the actions and content\n * required for each process.\n *\n * The process dialog box consists of a header that visually represents the ‘working’ state of long\n * processes with an animation. The header contains the dialog title as well as\n * two {@link OO.ui.ActionWidget action widgets}:  a ‘safe’ action on the left (e.g., ‘Cancel’) and\n * a ‘primary’ action on the right (e.g., ‘Done’).\n *\n * Like other windows, the process dialog is managed by a {@link OO.ui.WindowManager window manager}.\n * Please see the [OOUI documentation on MediaWiki][1] for more information and examples.\n *\n *     @example\n *     // Example: Creating and opening a process dialog window.\n *     function MyProcessDialog( config ) {\n *         MyProcessDialog.parent.call( this, config );\n *     }\n *     OO.inheritClass( MyProcessDialog, OO.ui.ProcessDialog );\n *\n *     MyProcessDialog.static.name = 'myProcessDialog';\n *     MyProcessDialog.static.title = 'Process dialog';\n *     MyProcessDialog.static.actions = [\n *         { action: 'save', label: 'Done', flags: 'primary' },\n *         { label: 'Cancel', flags: 'safe' }\n *     ];\n *\n *     MyProcessDialog.prototype.initialize = function () {\n *         MyProcessDialog.parent.prototype.initialize.apply( this, arguments );\n *         this.content = new OO.ui.PanelLayout( { padded: true, expanded: false } );\n *         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>' );\n *         this.$body.append( this.content.$element );\n *     };\n *     MyProcessDialog.prototype.getActionProcess = function ( action ) {\n *         var dialog = this;\n *         if ( action ) {\n *             return new OO.ui.Process( function () {\n *                 dialog.close( { action: action } );\n *             } );\n *         }\n *         return MyProcessDialog.parent.prototype.getActionProcess.call( this, action );\n *     };\n *\n *     var windowManager = new OO.ui.WindowManager();\n *     $( document.body ).append( windowManager.$element );\n *\n *     var dialog = new MyProcessDialog();\n *     windowManager.addWindows( [ dialog ] );\n *     windowManager.openWindow( dialog );\n *\n * [1]: https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs\n *\n * @abstract\n * @class\n * @extends OO.ui.Dialog\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.ProcessDialog = function OoUiProcessDialog( config ) {\n\t// Parent constructor\n\tOO.ui.ProcessDialog.parent.call( this, config );\n\n\t// Properties\n\tthis.fitOnOpen = false;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-processDialog' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ProcessDialog, OO.ui.Dialog );\n\n/* Methods */\n\n/**\n * Handle dismiss button click events.\n *\n * Hides errors.\n *\n * @private\n */\nOO.ui.ProcessDialog.prototype.onDismissErrorButtonClick = function () {\n\tthis.hideErrors();\n};\n\n/**\n * Handle retry button click events.\n *\n * Hides errors and then tries again.\n *\n * @private\n */\nOO.ui.ProcessDialog.prototype.onRetryButtonClick = function () {\n\tthis.hideErrors();\n\tthis.executeAction( this.currentAction );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ProcessDialog.prototype.initialize = function () {\n\t// Parent method\n\tOO.ui.ProcessDialog.parent.prototype.initialize.call( this );\n\n\t// Properties\n\tthis.$navigation = $( '<div>' );\n\tthis.$location = $( '<div>' );\n\tthis.$safeActions = $( '<div>' );\n\tthis.$primaryActions = $( '<div>' );\n\tthis.$otherActions = $( '<div>' );\n\tthis.dismissButton = new OO.ui.ButtonWidget( {\n\t\tlabel: OO.ui.msg( 'ooui-dialog-process-dismiss' )\n\t} );\n\tthis.retryButton = new OO.ui.ButtonWidget();\n\tthis.$errors = $( '<div>' );\n\tthis.$errorsTitle = $( '<div>' );\n\n\t// Events\n\tthis.dismissButton.connect( this, { click: 'onDismissErrorButtonClick' } );\n\tthis.retryButton.connect( this, { click: 'onRetryButtonClick' } );\n\tthis.title.connect( this, { labelChange: 'fitLabel' } );\n\n\t// Initialization\n\tthis.title.$element.addClass( 'oo-ui-processDialog-title' );\n\tthis.$location\n\t\t.append( this.title.$element )\n\t\t.addClass( 'oo-ui-processDialog-location' );\n\tthis.$safeActions.addClass( 'oo-ui-processDialog-actions-safe' );\n\tthis.$primaryActions.addClass( 'oo-ui-processDialog-actions-primary' );\n\tthis.$otherActions.addClass( 'oo-ui-processDialog-actions-other' );\n\tthis.$errorsTitle\n\t\t.addClass( 'oo-ui-processDialog-errors-title' )\n\t\t.text( OO.ui.msg( 'ooui-dialog-process-error' ) );\n\tthis.$errors\n\t\t.addClass( 'oo-ui-processDialog-errors oo-ui-element-hidden' )\n\t\t.append( this.$errorsTitle, this.dismissButton.$element, this.retryButton.$element );\n\tthis.$content\n\t\t.addClass( 'oo-ui-processDialog-content' )\n\t\t.append( this.$errors );\n\tthis.$navigation\n\t\t.addClass( 'oo-ui-processDialog-navigation' )\n\t\t// Note: Order of appends below is important. These are in the order\n\t\t// we want tab to go through them. Display-order is handled entirely\n\t\t// by CSS absolute-positioning. As such, primary actions like \"done\"\n\t\t// should go first.\n\t\t.append( this.$primaryActions, this.$location, this.$safeActions );\n\tthis.$head.append( this.$navigation );\n\tthis.$foot.append( this.$otherActions );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ProcessDialog.prototype.getActionWidgetConfig = function ( config ) {\n\tvar isMobile = OO.ui.isMobile();\n\n\t// Default to unframed on mobile\n\tconfig = $.extend( { framed: !isMobile }, config );\n\t// Change back buttons to icon only on mobile\n\tif (\n\t\tisMobile &&\n\t\t( config.flags === 'back' || ( Array.isArray( config.flags ) && config.flags.indexOf( 'back' ) !== -1 ) )\n\t) {\n\t\t$.extend( config, {\n\t\t\ticon: 'previous',\n\t\t\tlabel: ''\n\t\t} );\n\t}\n\n\treturn config;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ProcessDialog.prototype.attachActions = function () {\n\tvar i, len, other, special, others;\n\n\t// Parent method\n\tOO.ui.ProcessDialog.parent.prototype.attachActions.call( this );\n\n\tspecial = this.actions.getSpecial();\n\tothers = this.actions.getOthers();\n\tif ( special.primary ) {\n\t\tthis.$primaryActions.append( special.primary.$element );\n\t}\n\tfor ( i = 0, len = others.length; i < len; i++ ) {\n\t\tother = others[ i ];\n\t\tthis.$otherActions.append( other.$element );\n\t}\n\tif ( special.safe ) {\n\t\tthis.$safeActions.append( special.safe.$element );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ProcessDialog.prototype.executeAction = function ( action ) {\n\tvar process = this;\n\treturn OO.ui.ProcessDialog.parent.prototype.executeAction.call( this, action )\n\t\t.fail( function ( errors ) {\n\t\t\tprocess.showErrors( errors || [] );\n\t\t} );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ProcessDialog.prototype.setDimensions = function () {\n\tvar dialog = this;\n\n\t// Parent method\n\tOO.ui.ProcessDialog.parent.prototype.setDimensions.apply( this, arguments );\n\n\tthis.fitLabel();\n\n\t// If there are many actions, they might be shown on multiple lines. Their layout can change when\n\t// resizing the dialog and when changing the actions. Adjust the height of the footer to fit them.\n\tdialog.$body.css( 'bottom', dialog.$foot.outerHeight( true ) );\n\t// Wait for CSS transition to finish and do it again :(\n\tsetTimeout( function () {\n\t\tdialog.$body.css( 'bottom', dialog.$foot.outerHeight( true ) );\n\t}, 300 );\n};\n\n/**\n * Fit label between actions.\n *\n * @private\n * @chainable\n * @return {OO.ui.MessageDialog} The dialog, for chaining\n */\nOO.ui.ProcessDialog.prototype.fitLabel = function () {\n\tvar safeWidth, primaryWidth, biggerWidth, labelWidth, navigationWidth, leftWidth, rightWidth,\n\t\tsize = this.getSizeProperties();\n\n\tif ( typeof size.width !== 'number' ) {\n\t\tif ( this.isOpened() ) {\n\t\t\tnavigationWidth = this.$head.width() - 20;\n\t\t} else if ( this.isOpening() ) {\n\t\t\tif ( !this.fitOnOpen ) {\n\t\t\t\t// Size is relative and the dialog isn't open yet, so wait.\n\t\t\t\t// FIXME: This should ideally be handled by setup somehow.\n\t\t\t\tthis.manager.lifecycle.opened.done( this.fitLabel.bind( this ) );\n\t\t\t\tthis.fitOnOpen = true;\n\t\t\t}\n\t\t\treturn;\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\t} else {\n\t\tnavigationWidth = size.width - 20;\n\t}\n\n\tsafeWidth = this.$safeActions.is( ':visible' ) ? this.$safeActions.width() : 0;\n\tprimaryWidth = this.$primaryActions.is( ':visible' ) ? this.$primaryActions.width() : 0;\n\tbiggerWidth = Math.max( safeWidth, primaryWidth );\n\n\tlabelWidth = this.title.$element.width();\n\n\tif ( 2 * biggerWidth + labelWidth < navigationWidth ) {\n\t\t// We have enough space to center the label\n\t\tleftWidth = rightWidth = biggerWidth;\n\t} else {\n\t\t// Let's hope we at least have enough space not to overlap, because we can't wrap the label…\n\t\tif ( this.getDir() === 'ltr' ) {\n\t\t\tleftWidth = safeWidth;\n\t\t\trightWidth = primaryWidth;\n\t\t} else {\n\t\t\tleftWidth = primaryWidth;\n\t\t\trightWidth = safeWidth;\n\t\t}\n\t}\n\n\tthis.$location.css( { paddingLeft: leftWidth, paddingRight: rightWidth } );\n\n\treturn this;\n};\n\n/**\n * Handle errors that occurred during accept or reject processes.\n *\n * @private\n * @param {OO.ui.Error[]|OO.ui.Error} errors Errors to be handled\n */\nOO.ui.ProcessDialog.prototype.showErrors = function ( errors ) {\n\tvar i, len, $item, actions,\n\t\titems = [],\n\t\tabilities = {},\n\t\trecoverable = true,\n\t\twarning = false;\n\n\tif ( errors instanceof OO.ui.Error ) {\n\t\terrors = [ errors ];\n\t}\n\n\tfor ( i = 0, len = errors.length; i < len; i++ ) {\n\t\tif ( !errors[ i ].isRecoverable() ) {\n\t\t\trecoverable = false;\n\t\t}\n\t\tif ( errors[ i ].isWarning() ) {\n\t\t\twarning = true;\n\t\t}\n\t\t$item = $( '<div>' )\n\t\t\t.addClass( 'oo-ui-processDialog-error' )\n\t\t\t.append( errors[ i ].getMessage() );\n\t\titems.push( $item[ 0 ] );\n\t}\n\tthis.$errorItems = $( items );\n\tif ( recoverable ) {\n\t\tabilities[ this.currentAction ] = true;\n\t\t// Copy the flags from the first matching action\n\t\tactions = this.actions.get( { actions: this.currentAction } );\n\t\tif ( actions.length ) {\n\t\t\tthis.retryButton.clearFlags().setFlags( actions[ 0 ].getFlags() );\n\t\t}\n\t} else {\n\t\tabilities[ this.currentAction ] = false;\n\t\tthis.actions.setAbilities( abilities );\n\t}\n\tif ( warning ) {\n\t\tthis.retryButton.setLabel( OO.ui.msg( 'ooui-dialog-process-continue' ) );\n\t} else {\n\t\tthis.retryButton.setLabel( OO.ui.msg( 'ooui-dialog-process-retry' ) );\n\t}\n\tthis.retryButton.toggle( recoverable );\n\tthis.$errorsTitle.after( this.$errorItems );\n\tthis.$errors.removeClass( 'oo-ui-element-hidden' ).scrollTop( 0 );\n};\n\n/**\n * Hide errors.\n *\n * @private\n */\nOO.ui.ProcessDialog.prototype.hideErrors = function () {\n\tthis.$errors.addClass( 'oo-ui-element-hidden' );\n\tif ( this.$errorItems ) {\n\t\tthis.$errorItems.remove();\n\t\tthis.$errorItems = null;\n\t}\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ProcessDialog.prototype.getTeardownProcess = function ( data ) {\n\t// Parent method\n\treturn OO.ui.ProcessDialog.parent.prototype.getTeardownProcess.call( this, data )\n\t\t.first( function () {\n\t\t\t// Make sure to hide errors\n\t\t\tthis.hideErrors();\n\t\t\tthis.fitOnOpen = false;\n\t\t}, this );\n};\n","/**\n * @class OO.ui\n */\n\n/**\n * Lazy-initialize and return a global OO.ui.WindowManager instance, used by OO.ui.alert and\n * OO.ui.confirm.\n *\n * @private\n * @return {OO.ui.WindowManager}\n */\nOO.ui.getWindowManager = function () {\n\tif ( !OO.ui.windowManager ) {\n\t\tOO.ui.windowManager = new OO.ui.WindowManager();\n\t\t$( document.body ).append( OO.ui.windowManager.$element );\n\t\tOO.ui.windowManager.addWindows( [ new OO.ui.MessageDialog() ] );\n\t}\n\treturn OO.ui.windowManager;\n};\n\n/**\n * Display a quick modal alert dialog, using a OO.ui.MessageDialog. While the dialog is open, the\n * rest of the page will be dimmed out and the user won't be able to interact with it. The dialog\n * has only one action button, labelled \"OK\", clicking it will simply close the dialog.\n *\n * A window manager is created automatically when this function is called for the first time.\n *\n *     @example\n *     OO.ui.alert( 'Something happened!' ).done( function () {\n *         console.log( 'User closed the dialog.' );\n *     } );\n *\n *     OO.ui.alert( 'Something larger happened!', { size: 'large' } );\n *\n * @param {jQuery|string} text Message text to display\n * @param {Object} [options] Additional options, see OO.ui.MessageDialog#getSetupProcess\n * @return {jQuery.Promise} Promise resolved when the user closes the dialog\n */\nOO.ui.alert = function ( text, options ) {\n\treturn OO.ui.getWindowManager().openWindow( 'message', $.extend( {\n\t\tmessage: text,\n\t\tactions: [ OO.ui.MessageDialog.static.actions[ 0 ] ]\n\t}, options ) ).closed.then( function () {\n\t\treturn undefined;\n\t} );\n};\n\n/**\n * Display a quick modal confirmation dialog, using a OO.ui.MessageDialog. While the dialog is open,\n * the rest of the page will be dimmed out and the user won't be able to interact with it. The\n * dialog has two action buttons, one to confirm an operation (labelled \"OK\") and one to cancel it\n * (labelled \"Cancel\").\n *\n * A window manager is created automatically when this function is called for the first time.\n *\n *     @example\n *     OO.ui.confirm( 'Are you sure?' ).done( function ( confirmed ) {\n *         if ( confirmed ) {\n *             console.log( 'User clicked \"OK\"!' );\n *         } else {\n *             console.log( 'User clicked \"Cancel\" or closed the dialog.' );\n *         }\n *     } );\n *\n * @param {jQuery|string} text Message text to display\n * @param {Object} [options] Additional options, see OO.ui.MessageDialog#getSetupProcess\n * @return {jQuery.Promise} Promise resolved when the user closes the dialog. If the user chose to\n *  confirm, the promise will resolve to boolean `true`; otherwise, it will resolve to boolean\n *  `false`.\n */\nOO.ui.confirm = function ( text, options ) {\n\treturn OO.ui.getWindowManager().openWindow( 'message', $.extend( {\n\t\tmessage: text\n\t}, options ) ).closed.then( function ( data ) {\n\t\treturn !!( data && data.action === 'accept' );\n\t} );\n};\n\n/**\n * Display a quick modal prompt dialog, using a OO.ui.MessageDialog. While the dialog is open,\n * the rest of the page will be dimmed out and the user won't be able to interact with it. The\n * dialog has a text input widget and two action buttons, one to confirm an operation (labelled \"OK\")\n * and one to cancel it (labelled \"Cancel\").\n *\n * A window manager is created automatically when this function is called for the first time.\n *\n *     @example\n *     OO.ui.prompt( 'Choose a line to go to', { textInput: { placeholder: 'Line number' } } ).done( function ( result ) {\n *         if ( result !== null ) {\n *             console.log( 'User typed \"' + result + '\" then clicked \"OK\".' );\n *         } else {\n *             console.log( 'User clicked \"Cancel\" or closed the dialog.' );\n *         }\n *     } );\n *\n * @param {jQuery|string} text Message text to display\n * @param {Object} [options] Additional options, see OO.ui.MessageDialog#getSetupProcess\n * @param {Object} [options.textInput] Additional options for text input widget, see OO.ui.TextInputWidget\n * @return {jQuery.Promise} Promise resolved when the user closes the dialog. If the user chose to\n *  confirm, the promise will resolve with the value of the text input widget; otherwise, it will\n *  resolve to `null`.\n */\nOO.ui.prompt = function ( text, options ) {\n\tvar instance,\n\t\tmanager = OO.ui.getWindowManager(),\n\t\ttextInput = new OO.ui.TextInputWidget( ( options && options.textInput ) || {} ),\n\t\ttextField = new OO.ui.FieldLayout( textInput, {\n\t\t\talign: 'top',\n\t\t\tlabel: text\n\t\t} );\n\n\tinstance = manager.openWindow( 'message', $.extend( {\n\t\tmessage: textField.$element\n\t}, options ) );\n\n\t// TODO: This is a little hacky, and could be done by extending MessageDialog instead.\n\tinstance.opened.then( function () {\n\t\ttextInput.on( 'enter', function () {\n\t\t\tmanager.getCurrentWindow().close( { action: 'accept' } );\n\t\t} );\n\t\ttextInput.focus();\n\t} );\n\n\treturn instance.closed.then( function ( data ) {\n\t\treturn data && data.action === 'accept' ? textInput.getValue() : null;\n\t} );\n};\n","}( OO ) );\n"]}
\ No newline at end of file
index c76724a..786cd2a 100644 (file)
Binary files a/resources/lib/ooui/themes/wikimediaui/images/icons/close-invert.png and b/resources/lib/ooui/themes/wikimediaui/images/icons/close-invert.png differ
index 2725f72..2bd2cec 100644 (file)
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><g fill="#fff"><title>close</title><path d="M3.636 2.224l14.142 14.142-1.414 1.414L2.222 3.638z"/><path d="M17.776 3.636L3.634 17.778 2.22 16.364 16.362 2.222z"/></g></svg>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><g fill="#fff"><title>close</title><path d="M4.34 2.93l12.73 12.73-1.41 1.41L2.93 4.35z"/><path d="M17.07 4.34L4.34 17.07l-1.41-1.41L15.66 2.93z"/></g></svg>
\ No newline at end of file
index 3cc2a53..edcc6ac 100644 (file)
Binary files a/resources/lib/ooui/themes/wikimediaui/images/icons/close-progressive.png and b/resources/lib/ooui/themes/wikimediaui/images/icons/close-progressive.png differ
index cad2394..76a22bb 100644 (file)
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><g fill="#36c"><title>close</title><path d="M3.636 2.224l14.142 14.142-1.414 1.414L2.222 3.638z"/><path d="M17.776 3.636L3.634 17.778 2.22 16.364 16.362 2.222z"/></g></svg>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><g fill="#36c"><title>close</title><path d="M4.34 2.93l12.73 12.73-1.41 1.41L2.93 4.35z"/><path d="M17.07 4.34L4.34 17.07l-1.41-1.41L15.66 2.93z"/></g></svg>
\ No newline at end of file
index a3708f3..4518e84 100644 (file)
Binary files a/resources/lib/ooui/themes/wikimediaui/images/icons/close.png and b/resources/lib/ooui/themes/wikimediaui/images/icons/close.png differ
index cf11b70..a0d9bf2 100644 (file)
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><title>close</title><path d="M3.636 2.224l14.142 14.142-1.414 1.414L2.222 3.638z"/><path d="M17.776 3.636L3.634 17.778 2.22 16.364 16.362 2.222z"/></svg>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><title>close</title><path d="M4.34 2.93l12.73 12.73-1.41 1.41L2.93 4.35z"/><path d="M17.07 4.34L4.34 17.07l-1.41-1.41L15.66 2.93z"/></svg>
\ No newline at end of file
index a7002a0..4e99a39 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * QUnit 2.6.2
+ * QUnit 2.9.1
  * https://qunitjs.com/
  *
  * Copyright jQuery Foundation and other contributors
  * Released under the MIT license
  * https://jquery.org/license
  *
- * Date: 2018-08-19T19:37Z
+ * Date: 2019-01-07T16:37Z
  */
 
 /** Font Family and Sizes */
index aea68ba..99f80dc 100644 (file)
@@ -1,26 +1,26 @@
 /*!
- * QUnit 2.6.2
+ * QUnit 2.9.1
  * https://qunitjs.com/
  *
  * Copyright jQuery Foundation and other contributors
  * Released under the MIT license
  * https://jquery.org/license
  *
- * Date: 2018-08-19T19:37Z
+ * Date: 2019-01-07T16:37Z
  */
 (function (global$1) {
   'use strict';
 
   global$1 = global$1 && global$1.hasOwnProperty('default') ? global$1['default'] : global$1;
 
-  var window = global$1.window;
+  var window$1 = global$1.window;
   var self$1 = global$1.self;
   var console = global$1.console;
-  var setTimeout = global$1.setTimeout;
+  var setTimeout$1 = global$1.setTimeout;
   var clearTimeout = global$1.clearTimeout;
 
-  var document = window && window.document;
-  var navigator = window && window.navigator;
+  var document$1 = window$1 && window$1.document;
+  var navigator = window$1 && window$1.navigator;
 
   var localSessionStorage = function () {
        var x = "qunit-test-string";
        }
   }();
 
+  /**
+   * Returns a function that proxies to the given method name on the globals
+   * console object. The proxy will also detect if the console doesn't exist and
+   * will appropriately no-op. This allows support for IE9, which doesn't have a
+   * console if the developer tools are not open.
+   */
+  function consoleProxy(method) {
+       return function () {
+               if (console) {
+                       console[method].apply(console, arguments);
+               }
+       };
+  }
+
+  var Logger = {
+       warn: consoleProxy("warn")
+  };
+
   var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
     return typeof obj;
   } : function (obj) {
        return new Date().getTime();
   };
 
+  var hasPerformanceApi = detectPerformanceApi();
+  var performance = hasPerformanceApi ? window$1.performance : undefined;
+  var performanceNow = hasPerformanceApi ? performance.now.bind(performance) : now;
+
+  function detectPerformanceApi() {
+       return window$1 && typeof window$1.performance !== "undefined" && typeof window$1.performance.mark === "function" && typeof window$1.performance.measure === "function";
+  }
+
+  function measure(comment, startMark, endMark) {
+
+       // `performance.measure` may fail if the mark could not be found.
+       // reasons a specific mark could not be found include: outside code invoking `performance.clearMarks()`
+       try {
+               performance.measure(comment, startMark, endMark);
+       } catch (ex) {
+               Logger.warn("performance.measure could not be executed because of ", ex.message);
+       }
+  }
+
   var defined = {
-       document: window && window.document !== undefined,
-       setTimeout: setTimeout !== undefined
+       document: window$1 && window$1.document !== undefined,
+       setTimeout: setTimeout$1 !== undefined
   };
 
   // Returns a new Array with the elements that are in a but not in b
   };
 
   // take a predefined QUnit.config and extend the defaults
-  var globalConfig = window && window.QUnit && window.QUnit.config;
+  var globalConfig = window$1 && window$1.QUnit && window$1.QUnit.config;
 
   // only extend the global config if there is no QUnit overload
-  if (window && window.QUnit && !window.QUnit.version) {
+  if (window$1 && window$1.QUnit && !window$1.QUnit.version) {
        extend(config, globalConfig);
   }
 
                key: "start",
                value: function start(recordTime) {
                        if (recordTime) {
-                               this._startTime = Date.now();
+                               this._startTime = performanceNow();
+
+                               if (performance) {
+                                       var suiteLevel = this.fullName.length;
+                                       performance.mark("qunit_suite_" + suiteLevel + "_start");
+                               }
                        }
 
                        return {
                key: "end",
                value: function end(recordTime) {
                        if (recordTime) {
-                               this._endTime = Date.now();
+                               this._endTime = performanceNow();
+
+                               if (performance) {
+                                       var suiteLevel = this.fullName.length;
+                                       performance.mark("qunit_suite_" + suiteLevel + "_end");
+
+                                       var suiteName = this.fullName.join(" – ");
+
+                                       measure(suiteLevel === 0 ? "QUnit Test Run" : "QUnit Test Suite: " + suiteName, "qunit_suite_" + suiteLevel + "_start", "qunit_suite_" + suiteLevel + "_end");
+                               }
                        }
 
                        return {
        }
   }
 
+  function objectOrFunction(x) {
+    var type = typeof x === 'undefined' ? 'undefined' : _typeof(x);
+    return x !== null && (type === 'object' || type === 'function');
+  }
+
+  function isFunction(x) {
+    return typeof x === 'function';
+  }
+
+
+
+  var _isArray = void 0;
+  if (Array.isArray) {
+    _isArray = Array.isArray;
+  } else {
+    _isArray = function _isArray(x) {
+      return Object.prototype.toString.call(x) === '[object Array]';
+    };
+  }
+
+  var isArray = _isArray;
+
+  var len = 0;
+  var vertxNext = void 0;
+  var customSchedulerFn = void 0;
+
+  var asap = function asap(callback, arg) {
+    queue[len] = callback;
+    queue[len + 1] = arg;
+    len += 2;
+    if (len === 2) {
+      // If len is 2, that means that we need to schedule an async flush.
+      // If additional callbacks are queued before the queue is flushed, they
+      // will be processed by this flush that we are scheduling.
+      if (customSchedulerFn) {
+        customSchedulerFn(flush);
+      } else {
+        scheduleFlush();
+      }
+    }
+  };
+
+  function setScheduler(scheduleFn) {
+    customSchedulerFn = scheduleFn;
+  }
+
+  function setAsap(asapFn) {
+    asap = asapFn;
+  }
+
+  var browserWindow = typeof window !== 'undefined' ? window : undefined;
+  var browserGlobal = browserWindow || {};
+  var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
+  var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
+
+  // test for web worker but not in IE10
+  var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
+
+  // node
+  function useNextTick() {
+    // node version 0.10.x displays a deprecation warning when nextTick is used recursively
+    // see https://github.com/cujojs/when/issues/410 for details
+    return function () {
+      return process.nextTick(flush);
+    };
+  }
+
+  // vertx
+  function useVertxTimer() {
+    if (typeof vertxNext !== 'undefined') {
+      return function () {
+        vertxNext(flush);
+      };
+    }
+
+    return useSetTimeout();
+  }
+
+  function useMutationObserver() {
+    var iterations = 0;
+    var observer = new BrowserMutationObserver(flush);
+    var node = document.createTextNode('');
+    observer.observe(node, { characterData: true });
+
+    return function () {
+      node.data = iterations = ++iterations % 2;
+    };
+  }
+
+  // web worker
+  function useMessageChannel() {
+    var channel = new MessageChannel();
+    channel.port1.onmessage = flush;
+    return function () {
+      return channel.port2.postMessage(0);
+    };
+  }
+
+  function useSetTimeout() {
+    // Store setTimeout reference so es6-promise will be unaffected by
+    // other code modifying setTimeout (like sinon.useFakeTimers())
+    var globalSetTimeout = setTimeout;
+    return function () {
+      return globalSetTimeout(flush, 1);
+    };
+  }
+
+  var queue = new Array(1000);
+  function flush() {
+    for (var i = 0; i < len; i += 2) {
+      var callback = queue[i];
+      var arg = queue[i + 1];
+
+      callback(arg);
+
+      queue[i] = undefined;
+      queue[i + 1] = undefined;
+    }
+
+    len = 0;
+  }
+
+  function attemptVertx() {
+    try {
+      var vertx = Function('return this')().require('vertx');
+      vertxNext = vertx.runOnLoop || vertx.runOnContext;
+      return useVertxTimer();
+    } catch (e) {
+      return useSetTimeout();
+    }
+  }
+
+  var scheduleFlush = void 0;
+  // Decide what async method to use to triggering processing of queued callbacks:
+  if (isNode) {
+    scheduleFlush = useNextTick();
+  } else if (BrowserMutationObserver) {
+    scheduleFlush = useMutationObserver();
+  } else if (isWorker) {
+    scheduleFlush = useMessageChannel();
+  } else if (browserWindow === undefined && typeof require === 'function') {
+    scheduleFlush = attemptVertx();
+  } else {
+    scheduleFlush = useSetTimeout();
+  }
+
+  function then(onFulfillment, onRejection) {
+    var parent = this;
+
+    var child = new this.constructor(noop);
+
+    if (child[PROMISE_ID] === undefined) {
+      makePromise(child);
+    }
+
+    var _state = parent._state;
+
+
+    if (_state) {
+      var callback = arguments[_state - 1];
+      asap(function () {
+        return invokeCallback(_state, child, callback, parent._result);
+      });
+    } else {
+      subscribe(parent, child, onFulfillment, onRejection);
+    }
+
+    return child;
+  }
+
+  /**
+    `Promise.resolve` returns a promise that will become resolved with the
+    passed `value`. It is shorthand for the following:
+
+    ```javascript
+    let promise = new Promise(function(resolve, reject){
+      resolve(1);
+    });
+
+    promise.then(function(value){
+      // value === 1
+    });
+    ```
+
+    Instead of writing the above, your code now simply becomes the following:
+
+    ```javascript
+    let promise = Promise.resolve(1);
+
+    promise.then(function(value){
+      // value === 1
+    });
+    ```
+
+    @method resolve
+    @static
+    @param {Any} value value that the returned promise will be resolved with
+    Useful for tooling.
+    @return {Promise} a promise that will become fulfilled with the given
+    `value`
+  */
+  function resolve$1(object) {
+    /*jshint validthis:true */
+    var Constructor = this;
+
+    if (object && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && object.constructor === Constructor) {
+      return object;
+    }
+
+    var promise = new Constructor(noop);
+    resolve(promise, object);
+    return promise;
+  }
+
+  var PROMISE_ID = Math.random().toString(36).substring(2);
+
+  function noop() {}
+
+  var PENDING = void 0;
+  var FULFILLED = 1;
+  var REJECTED = 2;
+
+  var TRY_CATCH_ERROR = { error: null };
+
+  function selfFulfillment() {
+    return new TypeError("You cannot resolve a promise with itself");
+  }
+
+  function cannotReturnOwn() {
+    return new TypeError('A promises callback cannot return that same promise.');
+  }
+
+  function getThen(promise) {
+    try {
+      return promise.then;
+    } catch (error) {
+      TRY_CATCH_ERROR.error = error;
+      return TRY_CATCH_ERROR;
+    }
+  }
+
+  function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
+    try {
+      then$$1.call(value, fulfillmentHandler, rejectionHandler);
+    } catch (e) {
+      return e;
+    }
+  }
+
+  function handleForeignThenable(promise, thenable, then$$1) {
+    asap(function (promise) {
+      var sealed = false;
+      var error = tryThen(then$$1, thenable, function (value) {
+        if (sealed) {
+          return;
+        }
+        sealed = true;
+        if (thenable !== value) {
+          resolve(promise, value);
+        } else {
+          fulfill(promise, value);
+        }
+      }, function (reason) {
+        if (sealed) {
+          return;
+        }
+        sealed = true;
+
+        reject(promise, reason);
+      }, 'Settle: ' + (promise._label || ' unknown promise'));
+
+      if (!sealed && error) {
+        sealed = true;
+        reject(promise, error);
+      }
+    }, promise);
+  }
+
+  function handleOwnThenable(promise, thenable) {
+    if (thenable._state === FULFILLED) {
+      fulfill(promise, thenable._result);
+    } else if (thenable._state === REJECTED) {
+      reject(promise, thenable._result);
+    } else {
+      subscribe(thenable, undefined, function (value) {
+        return resolve(promise, value);
+      }, function (reason) {
+        return reject(promise, reason);
+      });
+    }
+  }
+
+  function handleMaybeThenable(promise, maybeThenable, then$$1) {
+    if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
+      handleOwnThenable(promise, maybeThenable);
+    } else {
+      if (then$$1 === TRY_CATCH_ERROR) {
+        reject(promise, TRY_CATCH_ERROR.error);
+        TRY_CATCH_ERROR.error = null;
+      } else if (then$$1 === undefined) {
+        fulfill(promise, maybeThenable);
+      } else if (isFunction(then$$1)) {
+        handleForeignThenable(promise, maybeThenable, then$$1);
+      } else {
+        fulfill(promise, maybeThenable);
+      }
+    }
+  }
+
+  function resolve(promise, value) {
+    if (promise === value) {
+      reject(promise, selfFulfillment());
+    } else if (objectOrFunction(value)) {
+      handleMaybeThenable(promise, value, getThen(value));
+    } else {
+      fulfill(promise, value);
+    }
+  }
+
+  function publishRejection(promise) {
+    if (promise._onerror) {
+      promise._onerror(promise._result);
+    }
+
+    publish(promise);
+  }
+
+  function fulfill(promise, value) {
+    if (promise._state !== PENDING) {
+      return;
+    }
+
+    promise._result = value;
+    promise._state = FULFILLED;
+
+    if (promise._subscribers.length !== 0) {
+      asap(publish, promise);
+    }
+  }
+
+  function reject(promise, reason) {
+    if (promise._state !== PENDING) {
+      return;
+    }
+    promise._state = REJECTED;
+    promise._result = reason;
+
+    asap(publishRejection, promise);
+  }
+
+  function subscribe(parent, child, onFulfillment, onRejection) {
+    var _subscribers = parent._subscribers;
+    var length = _subscribers.length;
+
+
+    parent._onerror = null;
+
+    _subscribers[length] = child;
+    _subscribers[length + FULFILLED] = onFulfillment;
+    _subscribers[length + REJECTED] = onRejection;
+
+    if (length === 0 && parent._state) {
+      asap(publish, parent);
+    }
+  }
+
+  function publish(promise) {
+    var subscribers = promise._subscribers;
+    var settled = promise._state;
+
+    if (subscribers.length === 0) {
+      return;
+    }
+
+    var child = void 0,
+        callback = void 0,
+        detail = promise._result;
+
+    for (var i = 0; i < subscribers.length; i += 3) {
+      child = subscribers[i];
+      callback = subscribers[i + settled];
+
+      if (child) {
+        invokeCallback(settled, child, callback, detail);
+      } else {
+        callback(detail);
+      }
+    }
+
+    promise._subscribers.length = 0;
+  }
+
+  function tryCatch(callback, detail) {
+    try {
+      return callback(detail);
+    } catch (e) {
+      TRY_CATCH_ERROR.error = e;
+      return TRY_CATCH_ERROR;
+    }
+  }
+
+  function invokeCallback(settled, promise, callback, detail) {
+    var hasCallback = isFunction(callback),
+        value = void 0,
+        error = void 0,
+        succeeded = void 0,
+        failed = void 0;
+
+    if (hasCallback) {
+      value = tryCatch(callback, detail);
+
+      if (value === TRY_CATCH_ERROR) {
+        failed = true;
+        error = value.error;
+        value.error = null;
+      } else {
+        succeeded = true;
+      }
+
+      if (promise === value) {
+        reject(promise, cannotReturnOwn());
+        return;
+      }
+    } else {
+      value = detail;
+      succeeded = true;
+    }
+
+    if (promise._state !== PENDING) {
+      // noop
+    } else if (hasCallback && succeeded) {
+      resolve(promise, value);
+    } else if (failed) {
+      reject(promise, error);
+    } else if (settled === FULFILLED) {
+      fulfill(promise, value);
+    } else if (settled === REJECTED) {
+      reject(promise, value);
+    }
+  }
+
+  function initializePromise(promise, resolver) {
+    try {
+      resolver(function resolvePromise(value) {
+        resolve(promise, value);
+      }, function rejectPromise(reason) {
+        reject(promise, reason);
+      });
+    } catch (e) {
+      reject(promise, e);
+    }
+  }
+
+  var id = 0;
+  function nextId() {
+    return id++;
+  }
+
+  function makePromise(promise) {
+    promise[PROMISE_ID] = id++;
+    promise._state = undefined;
+    promise._result = undefined;
+    promise._subscribers = [];
+  }
+
+  function validationError() {
+    return new Error('Array Methods must be provided an Array');
+  }
+
+  var Enumerator = function () {
+    function Enumerator(Constructor, input) {
+      classCallCheck(this, Enumerator);
+
+      this._instanceConstructor = Constructor;
+      this.promise = new Constructor(noop);
+
+      if (!this.promise[PROMISE_ID]) {
+        makePromise(this.promise);
+      }
+
+      if (isArray(input)) {
+        this.length = input.length;
+        this._remaining = input.length;
+
+        this._result = new Array(this.length);
+
+        if (this.length === 0) {
+          fulfill(this.promise, this._result);
+        } else {
+          this.length = this.length || 0;
+          this._enumerate(input);
+          if (this._remaining === 0) {
+            fulfill(this.promise, this._result);
+          }
+        }
+      } else {
+        reject(this.promise, validationError());
+      }
+    }
+
+    createClass(Enumerator, [{
+      key: '_enumerate',
+      value: function _enumerate(input) {
+        for (var i = 0; this._state === PENDING && i < input.length; i++) {
+          this._eachEntry(input[i], i);
+        }
+      }
+    }, {
+      key: '_eachEntry',
+      value: function _eachEntry(entry, i) {
+        var c = this._instanceConstructor;
+        var resolve$$1 = c.resolve;
+
+
+        if (resolve$$1 === resolve$1) {
+          var _then = getThen(entry);
+
+          if (_then === then && entry._state !== PENDING) {
+            this._settledAt(entry._state, i, entry._result);
+          } else if (typeof _then !== 'function') {
+            this._remaining--;
+            this._result[i] = entry;
+          } else if (c === Promise$2) {
+            var promise = new c(noop);
+            handleMaybeThenable(promise, entry, _then);
+            this._willSettleAt(promise, i);
+          } else {
+            this._willSettleAt(new c(function (resolve$$1) {
+              return resolve$$1(entry);
+            }), i);
+          }
+        } else {
+          this._willSettleAt(resolve$$1(entry), i);
+        }
+      }
+    }, {
+      key: '_settledAt',
+      value: function _settledAt(state, i, value) {
+        var promise = this.promise;
+
+
+        if (promise._state === PENDING) {
+          this._remaining--;
+
+          if (state === REJECTED) {
+            reject(promise, value);
+          } else {
+            this._result[i] = value;
+          }
+        }
+
+        if (this._remaining === 0) {
+          fulfill(promise, this._result);
+        }
+      }
+    }, {
+      key: '_willSettleAt',
+      value: function _willSettleAt(promise, i) {
+        var enumerator = this;
+
+        subscribe(promise, undefined, function (value) {
+          return enumerator._settledAt(FULFILLED, i, value);
+        }, function (reason) {
+          return enumerator._settledAt(REJECTED, i, reason);
+        });
+      }
+    }]);
+    return Enumerator;
+  }();
+
+  /**
+    `Promise.all` accepts an array of promises, and returns a new promise which
+    is fulfilled with an array of fulfillment values for the passed promises, or
+    rejected with the reason of the first passed promise to be rejected. It casts all
+    elements of the passed iterable to promises as it runs this algorithm.
+
+    Example:
+
+    ```javascript
+    let promise1 = resolve(1);
+    let promise2 = resolve(2);
+    let promise3 = resolve(3);
+    let promises = [ promise1, promise2, promise3 ];
+
+    Promise.all(promises).then(function(array){
+      // The array here would be [ 1, 2, 3 ];
+    });
+    ```
+
+    If any of the `promises` given to `all` are rejected, the first promise
+    that is rejected will be given as an argument to the returned promises's
+    rejection handler. For example:
+
+    Example:
+
+    ```javascript
+    let promise1 = resolve(1);
+    let promise2 = reject(new Error("2"));
+    let promise3 = reject(new Error("3"));
+    let promises = [ promise1, promise2, promise3 ];
+
+    Promise.all(promises).then(function(array){
+      // Code here never runs because there are rejected promises!
+    }, function(error) {
+      // error.message === "2"
+    });
+    ```
+
+    @method all
+    @static
+    @param {Array} entries array of promises
+    @param {String} label optional string for labeling the promise.
+    Useful for tooling.
+    @return {Promise} promise that is fulfilled when all `promises` have been
+    fulfilled, or rejected if any of them become rejected.
+    @static
+  */
+  function all(entries) {
+    return new Enumerator(this, entries).promise;
+  }
+
+  /**
+    `Promise.race` returns a new promise which is settled in the same way as the
+    first passed promise to settle.
+
+    Example:
+
+    ```javascript
+    let promise1 = new Promise(function(resolve, reject){
+      setTimeout(function(){
+        resolve('promise 1');
+      }, 200);
+    });
+
+    let promise2 = new Promise(function(resolve, reject){
+      setTimeout(function(){
+        resolve('promise 2');
+      }, 100);
+    });
+
+    Promise.race([promise1, promise2]).then(function(result){
+      // result === 'promise 2' because it was resolved before promise1
+      // was resolved.
+    });
+    ```
+
+    `Promise.race` is deterministic in that only the state of the first
+    settled promise matters. For example, even if other promises given to the
+    `promises` array argument are resolved, but the first settled promise has
+    become rejected before the other promises became fulfilled, the returned
+    promise will become rejected:
+
+    ```javascript
+    let promise1 = new Promise(function(resolve, reject){
+      setTimeout(function(){
+        resolve('promise 1');
+      }, 200);
+    });
+
+    let promise2 = new Promise(function(resolve, reject){
+      setTimeout(function(){
+        reject(new Error('promise 2'));
+      }, 100);
+    });
+
+    Promise.race([promise1, promise2]).then(function(result){
+      // Code here never runs
+    }, function(reason){
+      // reason.message === 'promise 2' because promise 2 became rejected before
+      // promise 1 became fulfilled
+    });
+    ```
+
+    An example real-world use case is implementing timeouts:
+
+    ```javascript
+    Promise.race([ajax('foo.json'), timeout(5000)])
+    ```
+
+    @method race
+    @static
+    @param {Array} promises array of promises to observe
+    Useful for tooling.
+    @return {Promise} a promise which settles in the same way as the first passed
+    promise to settle.
+  */
+  function race(entries) {
+    /*jshint validthis:true */
+    var Constructor = this;
+
+    if (!isArray(entries)) {
+      return new Constructor(function (_, reject) {
+        return reject(new TypeError('You must pass an array to race.'));
+      });
+    } else {
+      return new Constructor(function (resolve, reject) {
+        var length = entries.length;
+        for (var i = 0; i < length; i++) {
+          Constructor.resolve(entries[i]).then(resolve, reject);
+        }
+      });
+    }
+  }
+
+  /**
+    `Promise.reject` returns a promise rejected with the passed `reason`.
+    It is shorthand for the following:
+
+    ```javascript
+    let promise = new Promise(function(resolve, reject){
+      reject(new Error('WHOOPS'));
+    });
+
+    promise.then(function(value){
+      // Code here doesn't run because the promise is rejected!
+    }, function(reason){
+      // reason.message === 'WHOOPS'
+    });
+    ```
+
+    Instead of writing the above, your code now simply becomes the following:
+
+    ```javascript
+    let promise = Promise.reject(new Error('WHOOPS'));
+
+    promise.then(function(value){
+      // Code here doesn't run because the promise is rejected!
+    }, function(reason){
+      // reason.message === 'WHOOPS'
+    });
+    ```
+
+    @method reject
+    @static
+    @param {Any} reason value that the returned promise will be rejected with.
+    Useful for tooling.
+    @return {Promise} a promise rejected with the given `reason`.
+  */
+  function reject$1(reason) {
+    /*jshint validthis:true */
+    var Constructor = this;
+    var promise = new Constructor(noop);
+    reject(promise, reason);
+    return promise;
+  }
+
+  function needsResolver() {
+    throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
+  }
+
+  function needsNew() {
+    throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
+  }
+
+  /**
+    Promise objects represent the eventual result of an asynchronous operation. The
+    primary way of interacting with a promise is through its `then` method, which
+    registers callbacks to receive either a promise's eventual value or the reason
+    why the promise cannot be fulfilled.
+
+    Terminology
+    -----------
+
+    - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
+    - `thenable` is an object or function that defines a `then` method.
+    - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
+    - `exception` is a value that is thrown using the throw statement.
+    - `reason` is a value that indicates why a promise was rejected.
+    - `settled` the final resting state of a promise, fulfilled or rejected.
+
+    A promise can be in one of three states: pending, fulfilled, or rejected.
+
+    Promises that are fulfilled have a fulfillment value and are in the fulfilled
+    state.  Promises that are rejected have a rejection reason and are in the
+    rejected state.  A fulfillment value is never a thenable.
+
+    Promises can also be said to *resolve* a value.  If this value is also a
+    promise, then the original promise's settled state will match the value's
+    settled state.  So a promise that *resolves* a promise that rejects will
+    itself reject, and a promise that *resolves* a promise that fulfills will
+    itself fulfill.
+
+
+    Basic Usage:
+    ------------
+
+    ```js
+    let promise = new Promise(function(resolve, reject) {
+      // on success
+      resolve(value);
+
+      // on failure
+      reject(reason);
+    });
+
+    promise.then(function(value) {
+      // on fulfillment
+    }, function(reason) {
+      // on rejection
+    });
+    ```
+
+    Advanced Usage:
+    ---------------
+
+    Promises shine when abstracting away asynchronous interactions such as
+    `XMLHttpRequest`s.
+
+    ```js
+    function getJSON(url) {
+      return new Promise(function(resolve, reject){
+        let xhr = new XMLHttpRequest();
+
+        xhr.open('GET', url);
+        xhr.onreadystatechange = handler;
+        xhr.responseType = 'json';
+        xhr.setRequestHeader('Accept', 'application/json');
+        xhr.send();
+
+        function handler() {
+          if (this.readyState === this.DONE) {
+            if (this.status === 200) {
+              resolve(this.response);
+            } else {
+              reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
+            }
+          }
+        };
+      });
+    }
+
+    getJSON('/posts.json').then(function(json) {
+      // on fulfillment
+    }, function(reason) {
+      // on rejection
+    });
+    ```
+
+    Unlike callbacks, promises are great composable primitives.
+
+    ```js
+    Promise.all([
+      getJSON('/posts'),
+      getJSON('/comments')
+    ]).then(function(values){
+      values[0] // => postsJSON
+      values[1] // => commentsJSON
+
+      return values;
+    });
+    ```
+
+    @class Promise
+    @param {Function} resolver
+    Useful for tooling.
+    @constructor
+  */
+
+  var Promise$2 = function () {
+    function Promise(resolver) {
+      classCallCheck(this, Promise);
+
+      this[PROMISE_ID] = nextId();
+      this._result = this._state = undefined;
+      this._subscribers = [];
+
+      if (noop !== resolver) {
+        typeof resolver !== 'function' && needsResolver();
+        this instanceof Promise ? initializePromise(this, resolver) : needsNew();
+      }
+    }
+
+    /**
+    The primary way of interacting with a promise is through its `then` method,
+    which registers callbacks to receive either a promise's eventual value or the
+    reason why the promise cannot be fulfilled.
+     ```js
+    findUser().then(function(user){
+      // user is available
+    }, function(reason){
+      // user is unavailable, and you are given the reason why
+    });
+    ```
+     Chaining
+    --------
+     The return value of `then` is itself a promise.  This second, 'downstream'
+    promise is resolved with the return value of the first promise's fulfillment
+    or rejection handler, or rejected if the handler throws an exception.
+     ```js
+    findUser().then(function (user) {
+      return user.name;
+    }, function (reason) {
+      return 'default name';
+    }).then(function (userName) {
+      // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
+      // will be `'default name'`
+    });
+     findUser().then(function (user) {
+      throw new Error('Found user, but still unhappy');
+    }, function (reason) {
+      throw new Error('`findUser` rejected and we're unhappy');
+    }).then(function (value) {
+      // never reached
+    }, function (reason) {
+      // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
+      // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
+    });
+    ```
+    If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
+     ```js
+    findUser().then(function (user) {
+      throw new PedagogicalException('Upstream error');
+    }).then(function (value) {
+      // never reached
+    }).then(function (value) {
+      // never reached
+    }, function (reason) {
+      // The `PedgagocialException` is propagated all the way down to here
+    });
+    ```
+     Assimilation
+    ------------
+     Sometimes the value you want to propagate to a downstream promise can only be
+    retrieved asynchronously. This can be achieved by returning a promise in the
+    fulfillment or rejection handler. The downstream promise will then be pending
+    until the returned promise is settled. This is called *assimilation*.
+     ```js
+    findUser().then(function (user) {
+      return findCommentsByAuthor(user);
+    }).then(function (comments) {
+      // The user's comments are now available
+    });
+    ```
+     If the assimliated promise rejects, then the downstream promise will also reject.
+     ```js
+    findUser().then(function (user) {
+      return findCommentsByAuthor(user);
+    }).then(function (comments) {
+      // If `findCommentsByAuthor` fulfills, we'll have the value here
+    }, function (reason) {
+      // If `findCommentsByAuthor` rejects, we'll have the reason here
+    });
+    ```
+     Simple Example
+    --------------
+     Synchronous Example
+     ```javascript
+    let result;
+     try {
+      result = findResult();
+      // success
+    } catch(reason) {
+      // failure
+    }
+    ```
+     Errback Example
+     ```js
+    findResult(function(result, err){
+      if (err) {
+        // failure
+      } else {
+        // success
+      }
+    });
+    ```
+     Promise Example;
+     ```javascript
+    findResult().then(function(result){
+      // success
+    }, function(reason){
+      // failure
+    });
+    ```
+     Advanced Example
+    --------------
+     Synchronous Example
+     ```javascript
+    let author, books;
+     try {
+      author = findAuthor();
+      books  = findBooksByAuthor(author);
+      // success
+    } catch(reason) {
+      // failure
+    }
+    ```
+     Errback Example
+     ```js
+     function foundBooks(books) {
+     }
+     function failure(reason) {
+     }
+     findAuthor(function(author, err){
+      if (err) {
+        failure(err);
+        // failure
+      } else {
+        try {
+          findBoooksByAuthor(author, function(books, err) {
+            if (err) {
+              failure(err);
+            } else {
+              try {
+                foundBooks(books);
+              } catch(reason) {
+                failure(reason);
+              }
+            }
+          });
+        } catch(error) {
+          failure(err);
+        }
+        // success
+      }
+    });
+    ```
+     Promise Example;
+     ```javascript
+    findAuthor().
+      then(findBooksByAuthor).
+      then(function(books){
+        // found books
+    }).catch(function(reason){
+      // something went wrong
+    });
+    ```
+     @method then
+    @param {Function} onFulfilled
+    @param {Function} onRejected
+    Useful for tooling.
+    @return {Promise}
+    */
+
+    /**
+    `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
+    as the catch block of a try/catch statement.
+    ```js
+    function findAuthor(){
+    throw new Error('couldn't find that author');
+    }
+    // synchronous
+    try {
+    findAuthor();
+    } catch(reason) {
+    // something went wrong
+    }
+    // async with promises
+    findAuthor().catch(function(reason){
+    // something went wrong
+    });
+    ```
+    @method catch
+    @param {Function} onRejection
+    Useful for tooling.
+    @return {Promise}
+    */
+
+
+    createClass(Promise, [{
+      key: 'catch',
+      value: function _catch(onRejection) {
+        return this.then(null, onRejection);
+      }
+
+      /**
+        `finally` will be invoked regardless of the promise's fate just as native
+        try/catch/finally behaves
+      
+        Synchronous example:
+      
+        ```js
+        findAuthor() {
+          if (Math.random() > 0.5) {
+            throw new Error();
+          }
+          return new Author();
+        }
+      
+        try {
+          return findAuthor(); // succeed or fail
+        } catch(error) {
+          return findOtherAuther();
+        } finally {
+          // always runs
+          // doesn't affect the return value
+        }
+        ```
+      
+        Asynchronous example:
+      
+        ```js
+        findAuthor().catch(function(reason){
+          return findOtherAuther();
+        }).finally(function(){
+          // author was either found, or not
+        });
+        ```
+      
+        @method finally
+        @param {Function} callback
+        @return {Promise}
+      */
+
+    }, {
+      key: 'finally',
+      value: function _finally(callback) {
+        var promise = this;
+        var constructor = promise.constructor;
+
+        if (isFunction(callback)) {
+          return promise.then(function (value) {
+            return constructor.resolve(callback()).then(function () {
+              return value;
+            });
+          }, function (reason) {
+            return constructor.resolve(callback()).then(function () {
+              throw reason;
+            });
+          });
+        }
+
+        return promise.then(callback, callback);
+      }
+    }]);
+    return Promise;
+  }();
+
+  Promise$2.prototype.then = then;
+  Promise$2.all = all;
+  Promise$2.race = race;
+  Promise$2.resolve = resolve$1;
+  Promise$2.reject = reject$1;
+  Promise$2._setScheduler = setScheduler;
+  Promise$2._setAsap = setAsap;
+  Promise$2._asap = asap;
+
+  /*global self*/
+  function polyfill() {
+    var local = void 0;
+
+    if (typeof global !== 'undefined') {
+      local = global;
+    } else if (typeof self !== 'undefined') {
+      local = self;
+    } else {
+      try {
+        local = Function('return this')();
+      } catch (e) {
+        throw new Error('polyfill failed because global object is unavailable in this environment');
+      }
+    }
+
+    var P = local.Promise;
+
+    if (P) {
+      var promiseToString = null;
+      try {
+        promiseToString = Object.prototype.toString.call(P.resolve());
+      } catch (e) {
+        // silently ignored
+      }
+
+      if (promiseToString === '[object Promise]' && !P.cast) {
+        return;
+      }
+    }
+
+    local.Promise = Promise$2;
+  }
+
+  // Strange compat..
+  Promise$2.polyfill = polyfill;
+  Promise$2.Promise = Promise$2;
+
+  var Promise$1 = typeof Promise !== "undefined" ? Promise : Promise$2;
+
   // Register logging callbacks
   function registerLoggingCallbacks(obj) {
        var i,
   }
 
   function runLoggingCallbacks(key, args) {
-       var i, l, callbacks;
-
-       callbacks = config.callbacks[key];
-       for (i = 0, l = callbacks.length; i < l; i++) {
-               callbacks[i](args);
+       var callbacks = config.callbacks[key];
+
+       // Handling 'log' callbacks separately. Unlike the other callbacks,
+       // the log callback is not controlled by the processing queue,
+       // but rather used by asserts. Hence to promisfy the 'log' callback
+       // would mean promisfying each step of a test
+       if (key === "log") {
+               callbacks.map(function (callback) {
+                       return callback(args);
+               });
+               return;
        }
+
+       // ensure that each callback is executed serially
+       return callbacks.reduce(function (promiseChain, callback) {
+               return promiseChain.then(function () {
+                       return Promise$1.resolve(callback(args));
+               });
+       }, Promise$1.resolve([]));
   }
 
   // Doesn't support IE9, it will return undefined on these browsers
   function advance() {
        advanceTaskQueue();
 
-       if (!taskQueue.length) {
+       if (!taskQueue.length && !config.blocking && !config.current) {
                advanceTestQueue();
        }
   }
 
   /**
-   * Advances the taskQueue to the next task if it is ready and not empty.
+   * Advances the taskQueue with an increased depth
    */
   function advanceTaskQueue() {
        var start = now();
        config.depth = (config.depth || 0) + 1;
 
-       while (taskQueue.length && !config.blocking) {
+       processTaskQueue(start);
+
+       config.depth--;
+  }
+
+  /**
+   * Process the first task on the taskQueue as a promise.
+   * Each task is a function returned by https://github.com/qunitjs/qunit/blob/master/src/test.js#L381
+   */
+  function processTaskQueue(start) {
+       if (taskQueue.length && !config.blocking) {
                var elapsedTime = now() - start;
 
                if (!defined.setTimeout || config.updateRate <= 0 || elapsedTime < config.updateRate) {
                        var task = taskQueue.shift();
-                       task();
+                       Promise$1.resolve(task()).then(function () {
+                               if (!taskQueue.length) {
+                                       advance();
+                               } else {
+                                       processTaskQueue(start);
+                               }
+                       });
                } else {
-                       setTimeout(advance);
-                       break;
+                       setTimeout$1(advance);
                }
        }
-
-       config.depth--;
   }
 
   /**
                failed: config.stats.bad,
                total: config.stats.all,
                runtime: runtime
-       });
+       }).then(function () {
 
-       // Clear own storage items if all tests passed
-       if (storage && config.stats.bad === 0) {
-               for (var i = storage.length - 1; i >= 0; i--) {
-                       var key = storage.key(i);
+               // Clear own storage items if all tests passed
+               if (storage && config.stats.bad === 0) {
+                       for (var i = storage.length - 1; i >= 0; i--) {
+                               var key = storage.key(i);
 
-                       if (key.indexOf("qunit-test-") === 0) {
-                               storage.removeItem(key);
+                               if (key.indexOf("qunit-test-") === 0) {
+                                       storage.removeItem(key);
+                               }
                        }
                }
-       }
+       });
   }
 
   var ProcessingQueue = {
                key: "start",
                value: function start(recordTime) {
                        if (recordTime) {
-                               this._startTime = Date.now();
+                               this._startTime = performanceNow();
+                               if (performance) {
+                                       performance.mark("qunit_test_start");
+                               }
                        }
 
                        return {
                key: "end",
                value: function end(recordTime) {
                        if (recordTime) {
-                               this._endTime = Date.now();
+                               this._endTime = performanceNow();
+                               if (performance) {
+                                       performance.mark("qunit_test_end");
+
+                                       var testName = this.fullName.join(" – ");
+
+                                       measure("QUnit Test: " + testName, "qunit_test_start", "qunit_test_end");
+                               }
                        }
 
                        return extend(this.start(), {
                module = module.parentModule;
        }
 
-       return modules;
+       // The above push modules from the child to the parent
+       // return a reversed order with the top being the top most parent module
+       return modules.reverse();
   }
 
   Test.prototype = {
        before: function before() {
-               var i,
-                   startModule,
-                   module = this.module,
+               var _this = this;
+
+               var module = this.module,
                    notStartedModules = getNotStartedModules(module);
 
-               for (i = notStartedModules.length - 1; i >= 0; i--) {
-                       startModule = notStartedModules[i];
-                       startModule.stats = { all: 0, bad: 0, started: now() };
-                       emit("suiteStart", startModule.suiteReport.start(true));
-                       runLoggingCallbacks("moduleStart", {
-                               name: startModule.name,
-                               tests: startModule.tests
+               // ensure the callbacks are executed serially for each module
+               var callbackPromises = notStartedModules.reduce(function (promiseChain, startModule) {
+                       return promiseChain.then(function () {
+                               startModule.stats = { all: 0, bad: 0, started: now() };
+                               emit("suiteStart", startModule.suiteReport.start(true));
+                               return runLoggingCallbacks("moduleStart", {
+                                       name: startModule.name,
+                                       tests: startModule.tests
+                               });
                        });
-               }
+               }, Promise$1.resolve([]));
 
-               config.current = this;
-
-               this.testEnvironment = extend({}, module.testEnvironment);
+               return callbackPromises.then(function () {
+                       config.current = _this;
 
-               this.started = now();
-               emit("testStart", this.testReport.start(true));
-               runLoggingCallbacks("testStart", {
-                       name: this.testName,
-                       module: module.name,
-                       testId: this.testId,
-                       previousFailure: this.previousFailure
+                       _this.testEnvironment = extend({}, module.testEnvironment);
+
+                       _this.started = now();
+                       emit("testStart", _this.testReport.start(true));
+                       return runLoggingCallbacks("testStart", {
+                               name: _this.testName,
+                               module: module.name,
+                               testId: _this.testId,
+                               previousFailure: _this.previousFailure
+                       }).then(function () {
+                               if (!config.pollution) {
+                                       saveGlobal();
+                               }
+                       });
                });
-
-               if (!config.pollution) {
-                       saveGlobal();
-               }
        },
 
        run: function run() {
        },
 
        queueHook: function queueHook(hook, hookName, hookOwner) {
-               var _this = this;
+               var _this2 = this;
 
                var callHook = function callHook() {
-                       var promise = hook.call(_this.testEnvironment, _this.assert);
-                       _this.resolvePromise(promise, hookName);
+                       var promise = hook.call(_this2.testEnvironment, _this2.assert);
+                       _this2.resolvePromise(promise, hookName);
                };
 
                var runHook = function runHook() {
                                        return;
                                }
 
-                               _this.preserveEnvironment = true;
+                               _this2.preserveEnvironment = true;
                        }
 
                        // The 'after' hook should only execute when there are not tests left and
                                return;
                        }
 
-                       config.current = _this;
+                       config.current = _this2;
                        if (config.notrycatch) {
                                callHook();
                                return;
                        try {
                                callHook();
                        } catch (error) {
-                               _this.pushFailure(hookName + " failed on " + _this.testName + ": " + (error.message || error), extractStacktrace(error, 0));
+                               _this2.pushFailure(hookName + " failed on " + _this2.testName + ": " + (error.message || error), extractStacktrace(error, 0));
                        }
                };
 
                emit("testEnd", this.testReport.end(true));
                this.testReport.slimAssertions();
 
-               runLoggingCallbacks("testDone", {
+               return runLoggingCallbacks("testDone", {
                        name: testName,
                        module: moduleName,
                        skipped: skipped,
 
                        // Source of Test
                        source: this.stack
-               });
-
-               if (module.testsRun === numberOfTests(module)) {
-                       logSuiteEnd(module);
+               }).then(function () {
+                       if (module.testsRun === numberOfTests(module)) {
+                               var completedModules = [module];
+
+                               // Check if the parent modules, iteratively, are done. If that the case,
+                               // we emit the `suiteEnd` event and trigger `moduleDone` callback.
+                               var parent = module.parentModule;
+                               while (parent && parent.testsRun === numberOfTests(parent)) {
+                                       completedModules.push(parent);
+                                       parent = parent.parentModule;
+                               }
 
-                       // Check if the parent modules, iteratively, are done. If that the case,
-                       // we emit the `suiteEnd` event and trigger `moduleDone` callback.
-                       var parent = module.parentModule;
-                       while (parent && parent.testsRun === numberOfTests(parent)) {
-                               logSuiteEnd(parent);
-                               parent = parent.parentModule;
+                               return completedModules.reduce(function (promiseChain, completedModule) {
+                                       return promiseChain.then(function () {
+                                               return logSuiteEnd(completedModule);
+                                       });
+                               }, Promise$1.resolve([]));
                        }
-               }
-
-               config.current = undefined;
+               }).then(function () {
+                       config.current = undefined;
+               });
 
                function logSuiteEnd(module) {
 
                        module.hooks = {};
 
                        emit("suiteEnd", module.suiteReport.end(true));
-                       runLoggingCallbacks("moduleDone", {
+                       return runLoggingCallbacks("moduleDone", {
                                name: module.name,
                                tests: module.tests,
                                failed: module.stats.bad,
 
                function runTest() {
                        return [function () {
-                               test.before();
+                               return test.before();
                        }].concat(toConsumableArray(test.hooks("before")), [function () {
                                test.preserveTestEnvironment();
                        }], toConsumableArray(test.hooks("beforeEach")), [function () {
                        }], toConsumableArray(test.hooks("afterEach").reverse()), toConsumableArray(test.hooks("after").reverse()), [function () {
                                test.after();
                        }, function () {
-                               test.finish();
+                               return test.finish();
                        }]);
                }
 
 
                if (typeof timeoutDuration === "number" && timeoutDuration > 0) {
                        clearTimeout(config.timeout);
-                       config.timeout = setTimeout(function () {
+                       config.timeout = setTimeout$1(function () {
                                pushFailure("Test took longer than " + timeoutDuration + "ms; test timed out.", sourceFromStacktrace(2));
                                internalRecover(test);
                        }, timeoutDuration);
                if (config.timeout) {
                        clearTimeout(config.timeout);
                }
-               config.timeout = setTimeout(function () {
+               config.timeout = setTimeout$1(function () {
                        if (test.semaphore > 0) {
                                return;
                        }
        }
   }
 
-  /**
-   * Returns a function that proxies to the given method name on the globals
-   * console object. The proxy will also detect if the console doesn't exist and
-   * will appropriately no-op. This allows support for IE9, which doesn't have a
-   * console if the developer tools are not open.
-   */
-  function consoleProxy(method) {
-       return function () {
-               if (console) {
-                       console[method].apply(console, arguments);
-               }
-       };
-  }
-
-  var Logger = {
-       warn: consoleProxy("warn")
-  };
-
   var Assert = function () {
        function Assert(testContext) {
                classCallCheck(this, Assert);
                                // We don't want to validate thrown error
                                if (!expected) {
                                        result = true;
-                                       expected = null;
 
                                        // Expected is a regexp
                                } else if (expectedType === "regexp") {
                                        result = expected.test(errorString(actual));
 
+                                       // Log the string form of the regexp
+                                       expected = String(expected);
+
                                        // Expected is a constructor, maybe an Error constructor
                                } else if (expectedType === "function" && actual instanceof expected) {
                                        result = true;
                                } else if (expectedType === "object") {
                                        result = actual instanceof expected.constructor && actual.name === expected.name && actual.message === expected.message;
 
+                                       // Log the string form of the Error object
+                                       expected = errorString(expected);
+
                                        // Expected is a validation function which returns true if validation passed
                                } else if (expectedType === "function" && expected.call({}, actual) === true) {
                                        expected = null;
 
                        currentTest.assert.pushResult({
                                result: result,
-                               actual: actual,
+
+                               // undefined if it didn't throw
+                               actual: actual && errorString(actual),
                                expected: expected,
                                message: message
                        });
                                // We don't want to validate
                                if (expected === undefined) {
                                        result = true;
-                                       expected = actual;
 
                                        // Expected is a regexp
                                } else if (expectedType === "regexp") {
                                        result = expected.test(errorString(actual));
 
+                                       // Log the string form of the regexp
+                                       expected = String(expected);
+
                                        // Expected is a constructor, maybe an Error constructor
                                } else if (expectedType === "function" && actual instanceof expected) {
                                        result = true;
                                } else if (expectedType === "object") {
                                        result = actual instanceof expected.constructor && actual.name === expected.name && actual.message === expected.message;
 
+                                       // Log the string form of the Error object
+                                       expected = errorString(expected);
+
                                        // Expected is a validation function which returns true if validation passed
                                } else {
                                        if (expectedType === "function") {
 
                                currentTest.assert.pushResult({
                                        result: result,
-                                       actual: actual,
+
+                                       // leave rejection value of undefined as-is
+                                       actual: actual && errorString(actual),
                                        expected: expected,
                                        message: message
                                });
   /**
    * Converts an error into a simple string for comparisons.
    *
-   * @param {Error} error
+   * @param {Error|Object} error
    * @return {String}
    */
   function errorString(error) {
        var resultErrorString = error.toString();
 
+       // If the error wasn't a subclass of Error but something like
+       // an object literal with name and message properties...
        if (resultErrorString.substring(0, 7) === "[object") {
                var name = error.name ? error.name.toString() : "Error";
                var message = error.message ? error.message.toString() : "";
        if (defined.document) {
 
                // QUnit may be defined when it is preconfigured but then only QUnit and QUnit.config may be defined.
-               if (window.QUnit && window.QUnit.version) {
+               if (window$1.QUnit && window$1.QUnit.version) {
                        throw new Error("QUnit has already been defined.");
                }
 
-               window.QUnit = QUnit;
+               window$1.QUnit = QUnit;
        }
 
        // For nodejs
                if (config.current.ignoreGlobalErrors) {
                        return true;
                }
-               pushFailure.apply(undefined, [error.message, error.fileName + ":" + error.lineNumber].concat(args));
+               pushFailure.apply(undefined, [error.message, error.stacktrace || error.fileName + ":" + error.lineNumber].concat(args));
        } else {
                test("global failure", extend(function () {
-                       pushFailure.apply(undefined, [error.message, error.fileName + ":" + error.lineNumber].concat(args));
+                       pushFailure.apply(undefined, [error.message, error.stacktrace || error.fileName + ":" + error.lineNumber].concat(args));
                }, { validTest: true }));
        }
 
   var runStarted = false;
 
   // Figure out if we're running the tests from a server or not
-  QUnit.isLocal = !(defined.document && window.location.protocol !== "file:");
+  QUnit.isLocal = !(defined.document && window$1.location.protocol !== "file:");
 
   // Expose the current QUnit version
-  QUnit.version = "2.6.2";
+  QUnit.version = "2.9.1";
 
   extend(QUnit, {
        on: on,
 
        // Add a slight delay to allow definition of more modules and tests.
        if (defined.setTimeout) {
-               setTimeout(function () {
+               setTimeout$1(function () {
                        begin();
                });
        } else {
        }
   }
 
+  function unblockAndAdvanceQueue() {
+       config.blocking = false;
+       ProcessingQueue.advance();
+  }
+
   function begin() {
        var i,
            l,
                runLoggingCallbacks("begin", {
                        totalTests: Test.count,
                        modules: modulesLog
-               });
+               }).then(unblockAndAdvanceQueue);
+       } else {
+               unblockAndAdvanceQueue();
        }
-
-       config.blocking = false;
-       ProcessingQueue.advance();
   }
 
   exportQUnit(QUnit);
 
   (function () {
 
-       if (typeof window === "undefined" || typeof document === "undefined") {
+       if (typeof window$1 === "undefined" || typeof document$1 === "undefined") {
                return;
        }
 
                        return;
                }
 
-               var fixture = document.getElementById("qunit-fixture");
+               var fixture = document$1.getElementById("qunit-fixture");
                if (fixture) {
                        config.fixture = fixture.cloneNode(true);
                }
                        return;
                }
 
-               var fixture = document.getElementById("qunit-fixture");
+               var fixture = document$1.getElementById("qunit-fixture");
                var resetFixtureType = _typeof(config.fixture);
                if (resetFixtureType === "string") {
 
                        // support user defined values for `config.fixture`
-                       var newFixture = document.createElement("div");
+                       var newFixture = document$1.createElement("div");
                        newFixture.setAttribute("id", "qunit-fixture");
                        newFixture.innerHTML = config.fixture;
                        fixture.parentNode.replaceChild(newFixture, fixture);
   (function () {
 
        // Only interact with URLs via window.location
-       var location = typeof window !== "undefined" && window.location;
+       var location = typeof window$1 !== "undefined" && window$1.location;
        if (!location) {
                return;
        }
   (function () {
 
        // Don't load the HTML Reporter on non-browser environments
-       if (typeof window === "undefined" || !window.document) {
+       if (typeof window$1 === "undefined" || !window$1.document) {
                return;
        }
 
        var config = QUnit.config,
-           document$$1 = window.document,
+           hiddenTests = [],
+           document = window$1.document,
            collapseNext = false,
            hasOwn = Object.prototype.hasOwnProperty,
            unfilteredUrl = setUrl({ filter: undefined, module: undefined,
        }
 
        function id(name) {
-               return document$$1.getElementById && document$$1.getElementById(name);
+               return document.getElementById && document.getElementById(name);
        }
 
        function abortTests() {
                updatedUrl = setUrl(params);
 
                // Check if we can apply the change without a page refresh
-               if ("hidepassed" === field.name && "replaceState" in window.history) {
+               if ("hidepassed" === field.name && "replaceState" in window$1.history) {
                        QUnit.urlParams[field.name] = value;
                        config[field.name] = value || false;
                        tests = id("qunit-tests");
                        if (tests) {
-                               toggleClass(tests, "hidepass", value || false);
+                               var length = tests.children.length;
+                               var children = tests.children;
+
+                               if (field.checked) {
+                                       for (var i = 0; i < length; i++) {
+                                               var test = children[i];
+
+                                               if (test && test.className.indexOf("pass") > -1) {
+                                                       hiddenTests.push(test);
+                                               }
+                                       }
+
+                                       var _iteratorNormalCompletion = true;
+                                       var _didIteratorError = false;
+                                       var _iteratorError = undefined;
+
+                                       try {
+                                               for (var _iterator = hiddenTests[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
+                                                       var hiddenTest = _step.value;
+
+                                                       tests.removeChild(hiddenTest);
+                                               }
+                                       } catch (err) {
+                                               _didIteratorError = true;
+                                               _iteratorError = err;
+                                       } finally {
+                                               try {
+                                                       if (!_iteratorNormalCompletion && _iterator.return) {
+                                                               _iterator.return();
+                                                       }
+                                               } finally {
+                                                       if (_didIteratorError) {
+                                                               throw _iteratorError;
+                                                       }
+                                               }
+                                       }
+                               } else {
+                                       while ((test = hiddenTests.pop()) != null) {
+                                               tests.appendChild(test);
+                                       }
+                               }
                        }
-                       window.history.replaceState(null, "", updatedUrl);
+                       window$1.history.replaceState(null, "", updatedUrl);
                } else {
-                       window.location = updatedUrl;
+                       window$1.location = updatedUrl;
                }
        }
 
                    arrValue,
                    i,
                    querystring = "?",
-                   location = window.location;
+                   location = window$1.location;
 
                params = QUnit.extend(QUnit.extend({}, QUnit.urlParams), params);
 
                        }
                }
 
-               window.location = setUrl({
+               window$1.location = setUrl({
                        filter: filter === "" ? undefined : filter,
                        moduleId: selectedModules.length === 0 ? undefined : selectedModules,
 
        }
 
        function toolbarUrlConfigContainer() {
-               var urlConfigContainer = document$$1.createElement("span");
+               var urlConfigContainer = document.createElement("span");
 
                urlConfigContainer.innerHTML = getUrlConfigHtml();
                addClass(urlConfigContainer, "qunit-url-config");
        }
 
        function abortTestsButton() {
-               var button = document$$1.createElement("button");
+               var button = document.createElement("button");
                button.id = "qunit-abort-tests-button";
                button.innerHTML = "Abort";
                addEvent(button, "click", abortTests);
        }
 
        function toolbarLooseFilter() {
-               var filter = document$$1.createElement("form"),
-                   label = document$$1.createElement("label"),
-                   input = document$$1.createElement("input"),
-                   button = document$$1.createElement("button");
+               var filter = document.createElement("form"),
+                   label = document.createElement("label"),
+                   input = document.createElement("input"),
+                   button = document.createElement("button");
 
                addClass(filter, "qunit-filter");
 
                label.appendChild(input);
 
                filter.appendChild(label);
-               filter.appendChild(document$$1.createTextNode(" "));
+               filter.appendChild(document.createTextNode(" "));
                filter.appendChild(button);
                addEvent(filter, "submit", interceptNavigation);
 
                var allCheckbox,
                    commit,
                    reset,
-                   moduleFilter = document$$1.createElement("form"),
-                   label = document$$1.createElement("label"),
-                   moduleSearch = document$$1.createElement("input"),
-                   dropDown = document$$1.createElement("div"),
-                   actions = document$$1.createElement("span"),
-                   dropDownList = document$$1.createElement("ul"),
+                   moduleFilter = document.createElement("form"),
+                   label = document.createElement("label"),
+                   moduleSearch = document.createElement("input"),
+                   dropDown = document.createElement("div"),
+                   actions = document.createElement("span"),
+                   dropDownList = document.createElement("ul"),
                    dirty = false;
 
                moduleSearch.id = "qunit-modulefilter-search";
                label.appendChild(moduleSearch);
 
                actions.id = "qunit-modulefilter-actions";
-               actions.innerHTML = "<button style='display:none'>Apply</button>" + "<button type='reset' style='display:none'>Reset</button>" + "<label class='clickable" + (config.moduleId.length ? "" : " checked") + "'><input type='checkbox'" + (config.moduleId.length ? "" : " checked='checked'") + ">All modules</label>";
+               actions.innerHTML = "<button style='display:none'>Apply</button>" + "<button type='reset' style='display:none'>Reset</button>" + "<label class='clickable" + (config.moduleId.length ? "" : " checked") + "'><input type='checkbox'" + (config.moduleId.length ? "" : " checked='checked'") + " />All modules</label>";
                allCheckbox = actions.lastChild.firstChild;
                commit = actions.firstChild;
                reset = commit.nextSibling;
                addEvent(moduleFilter, "reset", function () {
 
                        // Let the reset happen, then update styles
-                       window.setTimeout(selectionChange);
+                       window$1.setTimeout(selectionChange);
                });
 
                // Enables show/hide for the dropdown
                        }
 
                        dropDown.style.display = "block";
-                       addEvent(document$$1, "click", hideHandler);
-                       addEvent(document$$1, "keydown", hideHandler);
+                       addEvent(document, "click", hideHandler);
+                       addEvent(document, "keydown", hideHandler);
 
                        // Hide on Escape keydown or outside-container click
                        function hideHandler(e) {
                                                moduleSearch.focus();
                                        }
                                        dropDown.style.display = "none";
-                                       removeEvent(document$$1, "click", hideHandler);
-                                       removeEvent(document$$1, "keydown", hideHandler);
+                                       removeEvent(document, "click", hideHandler);
+                                       removeEvent(document, "keydown", hideHandler);
                                        moduleSearch.value = "";
                                        searchInput();
                                }
                        toolbar.appendChild(toolbarUrlConfigContainer());
                        toolbar.appendChild(toolbarModuleFilter());
                        toolbar.appendChild(toolbarLooseFilter());
-                       toolbar.appendChild(document$$1.createElement("div")).className = "clearfix";
+                       toolbar.appendChild(document.createElement("div")).className = "clearfix";
                }
        }
 
 
                if (tests) {
                        tests.innerHTML = "";
-                       result = document$$1.createElement("p");
+                       result = document.createElement("p");
                        result.id = "qunit-testresult";
                        result.className = "result";
                        tests.parentNode.insertBefore(result, tests);
 
                if (userAgent) {
                        userAgent.innerHTML = "";
-                       userAgent.appendChild(document$$1.createTextNode("QUnit " + QUnit.version + "; " + navigator.userAgent));
+                       userAgent.appendChild(document.createTextNode("QUnit " + QUnit.version + "; " + navigator.userAgent));
                }
        }
 
                var qunit = id("qunit");
 
                if (qunit) {
-                       qunit.innerHTML = "<h1 id='qunit-header'>" + escapeText(document$$1.title) + "</h1>" + "<h2 id='qunit-banner'></h2>" + "<div id='qunit-testrunner-toolbar'></div>" + appendFilteredTest() + "<h2 id='qunit-userAgent'></h2>" + "<ol id='qunit-tests'></ol>";
+                       qunit.innerHTML = "<h1 id='qunit-header'>" + escapeText(document.title) + "</h1>" + "<h2 id='qunit-banner'></h2>" + "<div id='qunit-testrunner-toolbar'></div>" + appendFilteredTest() + "<h2 id='qunit-userAgent'></h2>" + "<ol id='qunit-tests'></ol>";
                }
 
                appendHeader();
                appendToolbar();
        }
 
-       function appendTestsList(modules) {
-               var i, l, x, z, test, moduleObj;
-
-               for (i = 0, l = modules.length; i < l; i++) {
-                       moduleObj = modules[i];
-
-                       for (x = 0, z = moduleObj.tests.length; x < z; x++) {
-                               test = moduleObj.tests[x];
-
-                               appendTest(test.name, test.testId, moduleObj.name);
-                       }
-               }
-       }
-
        function appendTest(name, testId, moduleName) {
                var title,
                    rerunTrigger,
                        return;
                }
 
-               title = document$$1.createElement("strong");
+               title = document.createElement("strong");
                title.innerHTML = getNameHtml(name, moduleName);
 
-               rerunTrigger = document$$1.createElement("a");
+               rerunTrigger = document.createElement("a");
                rerunTrigger.innerHTML = "Rerun";
                rerunTrigger.href = setUrl({ testId: testId });
 
-               testBlock = document$$1.createElement("li");
+               testBlock = document.createElement("li");
                testBlock.appendChild(title);
                testBlock.appendChild(rerunTrigger);
                testBlock.id = "qunit-test-output-" + testId;
 
-               assertList = document$$1.createElement("ol");
+               assertList = document.createElement("ol");
                assertList.className = "qunit-assert-list";
 
                testBlock.appendChild(assertList);
 
        // HTML Reporter initialization and load
        QUnit.begin(function (details) {
-               var i, moduleObj, tests;
+               var i, moduleObj;
 
                // Sort modules by name for the picker
                for (i = 0; i < details.modules.length; i++) {
 
                // Initialize QUnit elements
                appendInterface();
-               appendTestsList(details.modules);
-               tests = id("qunit-tests");
-               if (tests && config.hidepassed) {
-                       addClass(tests, "hidepass");
-               }
        });
 
        QUnit.done(function (details) {
                                if (test.className === "" || test.className === "running") {
                                        test.className = "aborted";
                                        assertList = test.getElementsByTagName("ol")[0];
-                                       assertLi = document$$1.createElement("li");
+                                       assertLi = document.createElement("li");
                                        assertLi.className = "fail";
                                        assertLi.innerHTML = "Test aborted.";
                                        assertList.appendChild(assertLi);
                        id("qunit-testresult-display").innerHTML = html;
                }
 
-               if (config.altertitle && document$$1.title) {
+               if (config.altertitle && document.title) {
 
                        // Show ✖ for good, ✔ for bad suite result in title
                        // use escape sequences in case file gets loaded with non-utf-8
                        // charset
-                       document$$1.title = [stats.failedTests ? "\u2716" : "\u2714", document$$1.title.replace(/^[\u2714\u2716] /i, "")].join(" ");
+                       document.title = [stats.failedTests ? "\u2716" : "\u2714", document.title.replace(/^[\u2714\u2716] /i, "")].join(" ");
                }
 
                // Scroll back to top to show results
-               if (config.scrolltop && window.scrollTo) {
-                       window.scrollTo(0, 0);
+               if (config.scrolltop && window$1.scrollTo) {
+                       window$1.scrollTo(0, 0);
                }
        });
 
        }
 
        QUnit.testStart(function (details) {
-               var running, testBlock, bad;
+               var running, bad;
 
-               testBlock = id("qunit-test-output-" + details.testId);
-               if (testBlock) {
-                       testBlock.className = "running";
-               } else {
-
-                       // Report later registered tests
-                       appendTest(details.name, details.testId, details.module);
-               }
+               appendTest(details.name, details.testId, details.module);
 
                running = id("qunit-testresult-display");
+
                if (running) {
+                       addClass(running, "running");
+
                        bad = QUnit.config.reorder && details.previousFailure;
 
                        running.innerHTML = [bad ? "Rerunning previously failed test: <br />" : "Running: <br />", getNameHtml(details.name, details.module)].join("");
 
                assertList = testItem.getElementsByTagName("ol")[0];
 
-               assertLi = document$$1.createElement("li");
+               assertLi = document.createElement("li");
                assertLi.className = details.result ? "pass" : "fail";
                assertLi.innerHTML = message;
                assertList.appendChild(assertLi);
                    time,
                    testItem,
                    assertList,
+                   status,
                    good,
                    bad,
                    testCounts,
 
                testItem = id("qunit-test-output-" + details.testId);
 
+               removeClass(testItem, "running");
+
+               if (details.failed > 0) {
+                       status = "failed";
+               } else if (details.todo) {
+                       status = "todo";
+               } else {
+                       status = details.skipped ? "skipped" : "passed";
+               }
+
                assertList = testItem.getElementsByTagName("ol")[0];
 
                good = details.passed;
                        stats.skippedTests++;
 
                        testItem.className = "skipped";
-                       skipped = document$$1.createElement("em");
+                       skipped = document.createElement("em");
                        skipped.className = "qunit-skipped-label";
                        skipped.innerHTML = "skipped";
                        testItem.insertBefore(skipped, testTitle);
                        testItem.className = testPassed ? "pass" : "fail";
 
                        if (details.todo) {
-                               var todoLabel = document$$1.createElement("em");
+                               var todoLabel = document.createElement("em");
                                todoLabel.className = "qunit-todo-label";
                                todoLabel.innerHTML = "todo";
                                testItem.className += " todo";
                                testItem.insertBefore(todoLabel, testTitle);
                        }
 
-                       time = document$$1.createElement("span");
+                       time = document.createElement("span");
                        time.className = "runtime";
                        time.innerHTML = details.runtime + " ms";
                        testItem.insertBefore(time, assertList);
 
                // Show the source of the test when showing assertions
                if (details.source) {
-                       sourceName = document$$1.createElement("p");
-                       sourceName.innerHTML = "<strong>Source: </strong>" + details.source;
+                       sourceName = document.createElement("p");
+                       sourceName.innerHTML = "<strong>Source: </strong>" + escapeText(details.source);
                        addClass(sourceName, "qunit-source");
                        if (testPassed) {
                                addClass(sourceName, "qunit-collapsed");
                        });
                        testItem.appendChild(sourceName);
                }
+
+               if (config.hidepassed && status === "passed") {
+
+                       // use removeChild instead of remove because of support
+                       hiddenTests.push(testItem);
+
+                       tests.removeChild(testItem);
+               }
        });
 
        // Avoid readyState issue with phantomjs
        // Ref: #818
        var notPhantom = function (p) {
                return !(p && p.version && p.version.major > 0);
-       }(window.phantom);
+       }(window$1.phantom);
 
-       if (notPhantom && document$$1.readyState === "complete") {
+       if (notPhantom && document.readyState === "complete") {
                QUnit.load();
        } else {
-               addEvent(window, "load", QUnit.load);
+               addEvent(window$1, "load", QUnit.load);
        }
 
        // Wrap window.onerror. We will call the original window.onerror to see if
        // the existing handler fully handles the error; if not, we will call the
        // QUnit.onError function.
-       var originalWindowOnError = window.onerror;
+       var originalWindowOnError = window$1.onerror;
 
        // Cover uncaught exceptions
        // Returning true will suppress the default browser handler,
        // returning false will let it run.
-       window.onerror = function (message, fileName, lineNumber) {
+       window$1.onerror = function (message, fileName, lineNumber, columnNumber, errorObj) {
                var ret = false;
                if (originalWindowOnError) {
-                       for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
-                               args[_key - 3] = arguments[_key];
+                       for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {
+                               args[_key - 5] = arguments[_key];
                        }
 
-                       ret = originalWindowOnError.call.apply(originalWindowOnError, [this, message, fileName, lineNumber].concat(args));
+                       ret = originalWindowOnError.call.apply(originalWindowOnError, [this, message, fileName, lineNumber, columnNumber, errorObj].concat(args));
                }
 
                // Treat return value as window.onerror itself does,
                                lineNumber: lineNumber
                        };
 
+                       // According to
+                       // https://blog.sentry.io/2016/01/04/client-javascript-reporting-window-onerror,
+                       // most modern browsers support an errorObj argument; use that to
+                       // get a full stack trace if it's available.
+                       if (errorObj && errorObj.stack) {
+                               error.stacktrace = extractStacktrace(errorObj, 0);
+                       }
+
                        ret = QUnit.onError(error);
                }
 
        };
 
        // Listen for unhandled rejections, and call QUnit.onUnhandledRejection
-       window.addEventListener("unhandledrejection", function (event) {
+       window$1.addEventListener("unhandledrejection", function (event) {
                QUnit.onUnhandledRejection(event.reason);
        });
   })();
index 2b67568..4882e9e 100644 (file)
                                        }
 
                                // Cancel selection
-                               } ).mousedown( function () {
+                               } ).on( 'mousedown', function () {
                                        if ( config.cancelSelection ) {
                                                this.onselectstart = function () {
                                                        return false;
index 63cf28c..435e23f 100644 (file)
@@ -14,7 +14,7 @@
                var prevCheckbox = null,
                        $box = this;
                // When our boxes are clicked..
-               $box.click( function ( e ) {
+               $box.on( 'click', function ( e ) {
                        // And one has been clicked before...
                        if ( prevCheckbox !== null && e.shiftKey ) {
                                // Check or uncheck this one and all in-between checkboxes,
index 09306f6..f5f0475 100644 (file)
@@ -82,6 +82,7 @@
                        }
                }
 
+               // eslint-disable-next-line jquery/no-animate-toggle
                $containers.toggle( action === 'expand' );
                hookCallback();
        }
index 1016e72..f2251f5 100644 (file)
                                // Only fetch if the value in the textbox changed and is not empty, or if the results were hidden
                                // if the textbox is empty then clear the result div, but leave other settings intouched
                                if ( val.length === 0 ) {
+                                       // eslint-disable-next-line jquery/no-animate-toggle
                                        $.suggestions.hide( context );
                                        context.data.prevText = '';
                                } else if (
                                        if ( context.data !== undefined ) {
                                                if ( context.data.$textbox.val().length === 0 ) {
                                                        // Hide the div when no suggestion exist
+                                                       // eslint-disable-next-line jquery/no-animate-toggle
                                                        $.suggestions.hide( context );
                                                } else {
                                                        // Rebuild the suggestions list
                                                                        .addClass( 'suggestions-result' )
                                                                        .attr( 'rel', i )
                                                                        .data( 'text', context.config.suggestions[ i ] )
-                                                                       .mousemove( function () {
+                                                                       .on( 'mousemove', function () {
                                                                                context.data.selectedWithMouse = true;
                                                                                $.suggestions.highlight(
                                                                                        context,
                                        break;
                                // Escape
                                case 27:
+                                       // eslint-disable-next-line jquery/no-animate-toggle
                                        $.suggestions.hide( context );
                                        $.suggestions.restore( context );
                                        $.suggestions.cancel( context );
                                case 13:
                                        preventDefault = wasVisible;
                                        selected = context.data.$container.find( '.suggestions-result-current' );
+                                       // eslint-disable-next-line jquery/no-animate-toggle
                                        $.suggestions.hide( context );
                                        if ( selected.length === 0 || context.data.selectedWithMouse ) {
                                                // If nothing is selected or if something was selected with the mouse
                                                        // Can't use click() because the container div is hidden when the
                                                        // textbox loses focus. Instead, listen for a mousedown followed
                                                        // by a mouseup on the same div.
-                                                       .mousedown( function ( e ) {
+                                                       .on( 'mousedown', function ( e ) {
                                                                context.data.mouseDownOn = $( e.target ).closest( '.suggestions-results .suggestions-result' );
                                                        } )
-                                                       .mouseup( function ( e ) {
+                                                       .on( 'mouseup', function ( e ) {
                                                                var $result = $( e.target ).closest( '.suggestions-results .suggestions-result' ),
                                                                        $other = context.data.mouseDownOn;
 
                                                                        // This will hide the link we're just clicking on, which causes problems
                                                                        // when done synchronously in at least Firefox 3.6 (T64858).
                                                                        setTimeout( function () {
+                                                                               // eslint-disable-next-line jquery/no-animate-toggle
                                                                                $.suggestions.hide( context );
-                                                                       }, 0 );
+                                                                       } );
                                                                }
                                                                // Always bring focus to the textbox, as that's probably where the user expects it
                                                                // if they were just typing.
                                                        // Can't use click() because the container div is hidden when the
                                                        // textbox loses focus. Instead, listen for a mousedown followed
                                                        // by a mouseup on the same div.
-                                                       .mousedown( function ( e ) {
+                                                       .on( 'mousedown', function ( e ) {
                                                                context.data.mouseDownOn = $( e.target ).closest( '.suggestions-special' );
                                                        } )
-                                                       .mouseup( function ( e ) {
+                                                       .on( 'mouseup', function ( e ) {
                                                                var $special = $( e.target ).closest( '.suggestions-special' ),
                                                                        $other = context.data.mouseDownOn;
 
                                                                        // This will hide the link we're just clicking on, which causes problems
                                                                        // when done synchronously in at least Firefox 3.6 (T64858).
                                                                        setTimeout( function () {
+                                                                               // eslint-disable-next-line jquery/no-animate-toggle
                                                                                $.suggestions.hide( context );
-                                                                       }, 0 );
+                                                                       } );
                                                                }
                                                                // Always bring focus to the textbox, as that's probably where the user expects it
                                                                // if they were just typing.
                                                                context.data.$textbox.focus();
                                                        } )
-                                                       .mousemove( function ( e ) {
+                                                       .on( 'mousemove', function ( e ) {
                                                                context.data.selectedWithMouse = true;
                                                                $.suggestions.highlight(
                                                                        context, $( e.target ).closest( '.suggestions-special' ), false
                                $( this )
                                        // Stop browser autocomplete from interfering
                                        .attr( 'autocomplete', 'off' )
-                                       .keydown( function ( e ) {
+                                       .on( 'keydown', function ( e ) {
                                                // Store key pressed to handle later
                                                context.data.keypressed = e.which;
                                                context.data.keypressedCount = 0;
                                        } )
-                                       .keypress( function ( e ) {
+                                       .on( 'keypress', function ( e ) {
                                                context.data.keypressedCount++;
+                                               // eslint-disable-next-line jquery/no-event-shorthand
                                                $.suggestions.keypress( e, context, context.data.keypressed );
                                        } )
-                                       .keyup( function ( e ) {
+                                       .on( 'keyup', function ( e ) {
                                                // The keypress event is fired when a key is pressed down and that key normally
                                                // produces a character value. We also want to handle some keys that don't
                                                // produce a character value so we also attach to the keydown/keyup events.
                                                        e.which === context.data.keypressed &&
                                                        allowed.indexOf( e.which ) !== -1
                                                ) {
+                                                       // eslint-disable-next-line jquery/no-event-shorthand
                                                        $.suggestions.keypress( e, context, context.data.keypressed );
                                                }
                                        } )
-                                       .blur( function () {
+                                       .on( 'blur', function () {
                                                // When losing focus because of a mousedown
                                                // on a suggestion, don't hide the suggestions
                                                if ( context.data.mouseDownOn.length > 0 ) {
                                                        return;
                                                }
+                                               // eslint-disable-next-line jquery/no-animate-toggle
                                                $.suggestions.hide( context );
                                                $.suggestions.cancel( context );
                                        } );
index 6b4ab97..82aa24f 100644 (file)
                                        }
 
                                        isSample = false;
-                                       $( this ).focus();
+                                       $( this ).trigger( 'focus' );
                                        if ( options.selectionStart !== undefined ) {
                                                $( this ).textSelection( 'setSelection', { start: options.selectionStart, end: options.selectionEnd } );
                                        }
index 4c4f5eb..cbfaf62 100644 (file)
@@ -34,7 +34,7 @@
                } );
 
                // Add form submission handler
-               $( '#editform' ).submit( function () {
+               $( '#editform' ).on( 'submit', function () {
                        allowCloseWindow.release();
                } );
        } );
index 966b5bc..a26da1d 100644 (file)
@@ -43,7 +43,7 @@
                        if ( scrollTop.value ) {
                                editBox.scrollTop = scrollTop.value;
                        }
-                       $editForm.submit( function () {
+                       $editForm.on( 'submit', function () {
                                scrollTop.value = editBox.scrollTop;
                        } );
                }
index 363b494..e907a98 100644 (file)
@@ -73,6 +73,8 @@
 
                // Can't use fadeTo because it calls show(), and we might want to keep some elements hidden
                // (e.g. empty #catlinks)
+               // FIXME: Use CSS transition
+               // eslint-disable-next-line jquery/no-animate
                $copyElements.animate( { opacity: 0.4 }, 'fast' );
 
                api = new mw.Api();
                                                        .append( $( '<a>' )
                                                                .attr( {
                                                                        href: mw.util.getUrl( template.title ),
-                                                                       'class': ( template.exists ? '' : 'new' )
+                                                                       class: ( template.exists ? '' : 'new' )
                                                                } )
                                                                .text( template.title )
                                                        );
                        mw.hook( 'wikipage.editform' ).fire( $editform );
                } ).always( function () {
                        $spinner.hide();
+                       // FIXME: Use CSS transition
+                       // eslint-disable-next-line jquery/no-animate
                        $copyElements.animate( {
                                opacity: 1
                        }, 'fast' );
                if ( !document.getElementById( 'p-lang' ) && document.getElementById( 'p-tb' ) && mw.config.get( 'skin' ) === 'vector' ) {
                        $( '.portal:last' ).after(
                                $( '<div>' ).attr( {
-                                       'class': 'portal',
+                                       class: 'portal',
                                        id: 'p-lang',
                                        role: 'navigation',
                                        'aria-labelledby': 'p-lang-label'
index a0bba6f..e638108 100644 (file)
@@ -51,7 +51,7 @@ $( function () {
                return true;
        }
 
-       $lis.find( 'input[name="diff"], input[name="oldid"]' ).click( updateDiffRadios );
+       $lis.find( 'input[name="diff"], input[name="oldid"]' ).on( 'click', updateDiffRadios );
 
        // Set initial state
        updateDiffRadios();
@@ -61,7 +61,7 @@ $( function () {
 
        // Ideally we'd use e.target instead of $historySubmitter, but e.target points
        // to the form element for submit actions, so.
-       $historyCompareForm.find( '.historysubmit' ).click( function () {
+       $historyCompareForm.find( '.historysubmit' ).on( 'click', function () {
                $historySubmitter = $( this );
        } );
 
@@ -71,7 +71,7 @@ $( function () {
        // Without the cloning we'd be changing the real form, which is slower, could make
        // the page look broken for a second in slow browsers and might show the form broken
        // again when coming back from a "next" page.
-       $historyCompareForm.submit( function ( e ) {
+       $historyCompareForm.on( 'submit', function ( e ) {
                var $copyForm, $copyRadios, $copyAction;
 
                if ( $historySubmitter ) {
@@ -92,14 +92,14 @@ $( function () {
                                $copyForm.find( ':submit' ).remove();
                        }
 
-                       // IE7 doesn't do submission from an off-DOM clone, so insert hidden into document first
+                       // Firefox requires the form to be attached, so insert hidden into document first
                        // Also remove potentially conflicting id attributes that we don't need anyway
                        $copyForm
                                .css( 'display', 'none' )
                                .find( '[id]' ).removeAttr( 'id' )
                                .end()
                                .insertAfter( $historyCompareForm )
-                               .submit();
+                               .trigger( 'submit' );
 
                        e.preventDefault();
                        return false; // Because the submit is special, return false as well.
index 4b0e49b..e359416 100644 (file)
@@ -12,6 +12,7 @@
                                $a = $( '#ca-edit a' );
                                // Not every page has an edit link (T59713)
                                if ( $a.length ) {
+                                       // eslint-disable-next-line jquery/no-event-shorthand
                                        $a.get( 0 ).click();
                                }
                        }
index 68b5214..c5dcd36 100644 (file)
@@ -54,7 +54,7 @@
                }
 
                $popup = $( '<div>' ).addClass( 'postedit mw-notification' ).append( $content )
-                       .click( function () {
+                       .on( 'click', function () {
                                clearTimeout( timeoutId );
                                fadeOutConfirmation();
                        } );
index 59d1d4f..e3f96b1 100644 (file)
@@ -21,6 +21,7 @@
                if ( e.target.nodeName.toLowerCase() !== 'a' ) {
                        // Trigger native HTMLElement click instead of opening URL (T45052)
                        e.preventDefault();
+                       // eslint-disable-next-line jquery/no-event-shorthand
                        $edit.get( 0 ).click();
                }
        } );
index 8d4b2bc..e5d0574 100644 (file)
                                        }
                                } );
                                tokenPromise.done( function () {
-                                       $form.submit();
+                                       $form.trigger( 'submit' );
                                } );
                        } );
 
index a89293d..f0fbdb6 100644 (file)
                        $checkboxes.prop( 'checked', check );
                }
 
-               $( '.mw-checkbox-all' ).click( function () {
+               $( '.mw-checkbox-all' ).on( 'click', function () {
                        selectAll( true );
                } );
-               $( '.mw-checkbox-none' ).click( function () {
+               $( '.mw-checkbox-none' ).on( 'click', function () {
                        selectAll( false );
                } );
-               $( '.mw-checkbox-invert' ).click( function () {
+               $( '.mw-checkbox-invert' ).on( 'click', function () {
                        $checkboxes.prop( 'checked', function ( i, val ) {
                                return !val;
                        } );
index 32dbdc1..189363f 100644 (file)
@@ -55,7 +55,7 @@
                        hovzer.$.append( this.$container );
                        hovzer.update();
 
-                       $( '.mw-debug-panelink' ).click( this.switchPane );
+                       $( '.mw-debug-panelink' ).on( 'click', this.switchPane );
                },
 
                /**
@@ -90,6 +90,8 @@
 
                        // Hide the current pane
                        if ( requestedPaneId === currentPaneId ) {
+                               // FIXME: Use CSS transition
+                               // eslint-disable-next-line jquery/no-slide
                                $currentPane.slideUp( updateHov );
                                debug.$container.data( 'currentPane', null );
                                return;
                        debug.$container.data( 'currentPane', requestedPaneId );
 
                        if ( currentPaneId === undefined || currentPaneId === null ) {
+                               // FIXME: Use CSS transition
+                               // eslint-disable-next-line jquery/no-slide
                                $requestedPane.slideDown( updateHov );
                        } else {
                                $currentPane.hide();
index 572d830..81bf1dd 100644 (file)
@@ -62,6 +62,6 @@
 
                // 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;
+               dialog.getPopup().toggle = function () {};
        }
 }() );
index beecfea..661a1c4 100644 (file)
                        $errorBox = this.$errorBox;
 
                if ( errors.length === 0 ) {
+                       // FIXME: Use CSS transition
+                       // eslint-disable-next-line jquery/no-slide
                        $errorBox.slideUp( function () {
                                $errorBox
                                        .removeAttr( 'class' )
                                                .removeAttr( 'class' )
                                                .detach();
                                }
+                               // FIXME: Use CSS transition
+                               // eslint-disable-next-line jquery/no-slide
                                $errorBox
                                        .attr( 'class', 'error' )
                                        .empty()
                                        .slideDown();
                        };
                        if ( $oldErrorBox !== $errorBox && $oldErrorBox.hasClass( 'error' ) ) {
+                               // eslint-disable-next-line jquery/no-slide
                                $oldErrorBox.slideUp( showFunc );
                        } else {
                                showFunc();
index 6e33856..8ead7a4 100644 (file)
@@ -43,8 +43,8 @@
                                        deleteButton.$element.closest( 'li.mw-htmlform-cloner-li' ).remove();
                                } );
                        } else {
-                               $element.filter( ':input' ).click( function ( ev ) {
-                                       ev.preventDefault();
+                               $element.filter( ':input' ).on( 'click', function ( e ) {
+                                       e.preventDefault();
                                        $( this ).closest( 'li.mw-htmlform-cloner-li' ).remove();
                                } );
                        }
@@ -56,8 +56,8 @@
                                appendToCloner( createButton.$element );
                        } );
                } else {
-                       $createElement.filter( ':input' ).click( function ( ev ) {
-                               ev.preventDefault();
+                       $createElement.filter( ':input' ).on( 'click', function ( e ) {
+                               e.preventDefault();
 
                                appendToCloner( $( this ) );
                        } );
index ab11f85..a778902 100644 (file)
@@ -14,7 +14,7 @@
                        name: name,
                        multiple: 'multiple',
                        'data-placeholder': dataPlaceholder.plain(),
-                       'class': 'htmlform-chzn-select mw-input ' + oldClass
+                       class: 'htmlform-chzn-select mw-input ' + oldClass
                } );
                $oldContainer.find( 'input' ).each( function () {
                        var $oldInput = $( this ),
index 7a643a5..da90c14 100644 (file)
@@ -41,7 +41,7 @@
                                        // cache the current selection to avoid expensive lookup
                                        currentValReasonList = $reasonList.val();
 
-                                       $reasonList.change( function () {
+                                       $reasonList.on( 'change', function () {
                                                currentValReasonList = $reasonList.val();
                                        } );
 
index 540de23..fdc988b 100644 (file)
                 * @param {Array} nodes List of nodes
                 * @return {string} Other message
                 */
-               'int': function ( nodes ) {
+               int: function ( nodes ) {
                        var msg = textify( nodes[ 0 ] );
                        return mw.jqueryMsg.getMessageFunction()( msg.charAt( 0 ).toLowerCase() + msg.slice( 1 ) );
                },
index 2da5122..73978d9 100644 (file)
                        }
 
                        if ( mw.config.get( 'wgCascadeableLevels' ) !== undefined ) {
-                               $( 'form#mw-Protect-Form' ).submit( this.toggleUnchainedInputs.bind( ProtectionForm, true ) );
+                               $( 'form#mw-Protect-Form' ).on( 'submit', this.toggleUnchainedInputs.bind( ProtectionForm, true ) );
                        }
                        this.getExpirySelectors().each( function () {
-                               $( this ).change( ProtectionForm.updateExpiryList.bind( ProtectionForm, this ) );
+                               $( this ).on( 'change', ProtectionForm.updateExpiryList.bind( ProtectionForm, this ) );
                        } );
                        this.getExpiryInputs().each( function () {
                                $( this ).on( 'keyup change', ProtectionForm.updateExpiry.bind( ProtectionForm, this ) );
                        } );
                        this.getLevelSelectors().each( function () {
-                               $( this ).change( ProtectionForm.updateLevels.bind( ProtectionForm, this ) );
+                               $( this ).on( 'change', ProtectionForm.updateLevels.bind( ProtectionForm, this ) );
                        } );
 
                        $( '#mwProtectSet > tbody > tr:first' ).after( $row );
@@ -38,7 +38,7 @@
                                $cell.append(
                                        $( '<input>' )
                                                .attr( { id: 'mwProtectUnchained', type: 'checkbox' } )
-                                               .click( this.onChainClick.bind( this ) )
+                                               .on( 'click', this.onChainClick.bind( this ) )
                                                .prop( 'checked', !this.areAllTypesMatching() ),
                                        document.createTextNode( ' ' ),
                                        $( '<label>' )
index f72fc92..2765d07 100644 (file)
                 * @property {Object}
                 */
                autoHideSeconds: {
-                       'short': 5,
-                       'long': 30
+                       short: 5,
+                       long: 30
                },
 
                /**
index 3f35c4b..0ffc867 100644 (file)
                        if ( !bound ) {
                                bound = true;
                                $( window )
-                                       .resize( $.debounce( 300, true, handleResizeStart ) )
-                                       .resize( $.debounce( 300, handleResizeEnd ) );
+                                       .on( 'resize', $.debounce( 300, true, handleResizeStart ) )
+                                       .on( 'resize', $.debounce( 300, handleResizeEnd ) );
                        }
                } );
        } );
index 71e7f80..12009d1 100644 (file)
@@ -49,7 +49,7 @@
                        mw.hook( 'wikipage.categories' ).fire( $nodes );
                }
 
-               $( '#t-print a' ).click( function ( e ) {
+               $( '#t-print a' ).on( 'click', function ( e ) {
                        window.print();
                        e.preventDefault();
                } );
index f7fbeef..c56aada 100644 (file)
                        $links = $links.filter( ':not( #bodyContent *, #content * )' );
                }
 
-               $links.click( function ( e ) {
+               $links.on( 'click', function ( e ) {
                        var mwTitle, action, api, $link;
 
                        mwTitle = mw.Title.newFromText( title );
index 36575f7..5d51d10 100644 (file)
 
                // Collect views
                allViews = $.extend( true, {
-                       'default': {
+                       default: {
                                title: mw.msg( 'rcfilters-filterlist-title' ),
                                groups: filterGroups
                        }
index b01aa7a..adf3fbb 100644 (file)
                                                id,
                                                obj.label,
                                                normalizedData,
-                                               { 'default': isDefault }
+                                               { default: isDefault }
                                        )
                                ] );
 
                                randomID,
                                label,
                                normalizedData,
-                               { 'default': isDefault }
+                               { default: isDefault }
                        )
                ] );
 
index 7565a0d..1651432 100644 (file)
@@ -90,7 +90,7 @@
                                        name: 'namespace', // parameter name is singular
                                        type: 'string_options',
                                        title: mw.msg( 'namespaces' ),
-                                       labelPrefixKey: { 'default': 'rcfilters-tag-prefix-namespace', inverted: 'rcfilters-tag-prefix-namespace-inverted' },
+                                       labelPrefixKey: { default: 'rcfilters-tag-prefix-namespace', inverted: 'rcfilters-tag-prefix-namespace-inverted' },
                                        separator: ';',
                                        fullCoverage: true,
                                        filters: items
                                                hidden: true,
                                                filters: [ {
                                                        name: 'invert',
-                                                       'default': '0'
+                                                       default: '0'
                                                } ]
                                        } ]
                        };
                                                max: 1000
                                        },
                                        sortFunc: function ( a, b ) { return Number( a.name ) - Number( b.name ); },
-                                       'default': mw.user.options.get( this.limitPreferenceName, displayConfig.limitDefault ),
+                                       default: mw.user.options.get( this.limitPreferenceName, displayConfig.limitDefault ),
                                        sticky: true,
                                        filters: displayConfig.limitArray.map( function ( num ) {
                                                return controller._createFilterDataFromNumber( num, num );
                                                        ( Number( i ) * 24 ).toFixed( 2 ) :
                                                        Number( i );
                                        },
-                                       'default': mw.user.options.get( this.daysPreferenceName, displayConfig.daysDefault ),
+                                       default: mw.user.options.get( this.daysPreferenceName, displayConfig.daysDefault ),
                                        sticky: true,
                                        filters: [
                                                // Hours (1, 2, 6, 12)
                                        filters: [
                                                {
                                                        name: 'enhanced',
-                                                       'default': String( mw.user.options.get( 'usenewrc', 0 ) )
+                                                       default: String( mw.user.options.get( 'usenewrc', 0 ) )
                                                }
                                        ]
                                }
index 2adfa7d..f866aa4 100644 (file)
@@ -52,7 +52,7 @@
                                                        filters: [
                                                                {
                                                                        name: 'target',
-                                                                       'default': ''
+                                                                       default: ''
                                                                }
                                                        ]
                                                },
@@ -65,7 +65,7 @@
                                                        filters: [
                                                                {
                                                                        name: 'showlinkedto',
-                                                                       'default': false
+                                                                       default: false
                                                                }
                                                        ]
                                                }
index 3c3f261..b76078e 100644 (file)
                        $firstNew.after( $indicator );
                }
 
+               // FIXME: Use CSS transition
+               // eslint-disable-next-line jquery/no-fade
                $newChanges
                        .hide()
                        .fadeIn( 1000 );
index 5e5cd6e..d0cc117 100644 (file)
                        this.queriesModel.connect( this, {
                                itemUpdate: 'onSavedQueriesItemUpdate',
                                initialize: 'onSavedQueriesInitialize',
-                               'default': 'reevaluateResetRestoreState'
+                               default: 'reevaluateResetRestoreState'
                        } );
                }
 
                                )
                        )
                ) {
+                       // eslint-disable-next-line jquery/no-animate
                        $( container ).animate( {
                                scrollTop: newScrollTop
                        } );
index 034a1c9..b4ec781 100644 (file)
@@ -40,8 +40,8 @@
                this.menu = new mw.rcfilters.ui.GroupWidget( {
                        events: {
                                click: 'menuItemClick',
-                               'delete': 'menuItemDelete',
-                               'default': 'menuItemDefault',
+                               delete: 'menuItemDelete',
+                               default: 'menuItemDefault',
                                edit: 'menuItemEdit'
                        },
                        classes: [ 'mw-rcfilters-ui-savedLinksListWidget-menu' ],
index 3762ae7..83a39d4 100644 (file)
                        // OO.ui.ButtonWidget doesn't take focus itself (T128054)
                        $focus = $( '#mw-apisandbox-ui' ).find( document.activeElement );
                        if ( $focus.length ) {
+                               // eslint-disable-next-line jquery/no-event-shorthand
                                $focus[ 0 ].blur();
                        }
 
                // it makes it too hard to read and our "disabled"
                // isn't really disabled.
                widgetField.onFieldDisable( false );
-               widgetField.onFieldDisable = $.noop;
+               widgetField.onFieldDisable = function () {};
 
                widgetField.apiParamIndex = ppi.index;
 
                                widget = Util.createWidgetForParameter( {
                                        name: name,
                                        type: 'string',
-                                       'default': ''
+                                       default: ''
                                }, {
                                        nooptional: true
                                } );
                                }
 
                                that.deprecatedItemsFieldset = new OO.ui.FieldsetLayout().addItems( deprecatedItems ).toggle( false );
+                               // eslint-disable-next-line jquery/no-animate-toggle
                                tmp = $( '<fieldset>' )
                                        .toggle( !that.deprecatedItemsFieldset.isEmpty() )
                                        .append(
index 255b878..b6d9b48 100644 (file)
@@ -19,6 +19,7 @@
                        hideUserField = infuseIfExists( $( '#mw-input-wpHideUser' ).closest( '.oo-ui-fieldLayout' ) ),
                        watchUserField = infuseIfExists( $( '#mw-input-wpWatch' ).closest( '.oo-ui-fieldLayout' ) ),
                        expiryWidget = infuseIfExists( $( '#mw-input-wpExpiry' ) ),
+                       editingWidget = infuseIfExists( $( '#mw-input-wpEditing' ) ),
                        editingRestrictionWidget = infuseIfExists( $( '#mw-input-wpEditingRestriction' ) ),
                        preventTalkPageEdit = infuseIfExists( $( '#mw-input-wpDisableUTEdit' ) ),
                        pageRestrictionsWidget = infuseIfExists( $( '#mw-input-wpPageRestrictions' ) );
                                isIpRange = isIp && blocktarget.match( /\/\d+$/ ),
                                isNonEmptyIp = isIp && !isEmpty,
                                expiryValue = expiryWidget.getValue(),
-                               // infinityValues  are the values the SpecialBlock class accepts as infinity (sf. wfIsInfinity)
+                               // infinityValues are the values the SpecialBlock class accepts as infinity (sf. wfIsInfinity)
                                infinityValues = [ 'infinite', 'indefinite', 'infinity', 'never' ],
                                isIndefinite = infinityValues.indexOf( expiryValue ) !== -1,
-                               editingRestrictionValue = editingRestrictionWidget ? editingRestrictionWidget.getValue() : undefined;
+                               editingRestrictionValue = editingRestrictionWidget ? editingRestrictionWidget.getValue() : undefined,
+                               editingIsSelected = editingWidget ? editingWidget.isSelected() : false;
 
                        if ( enableAutoblockField ) {
-                               enableAutoblockField.toggle( !( isNonEmptyIp ) );
+                               enableAutoblockField.toggle( !isNonEmptyIp );
                        }
                        if ( hideUserField ) {
-                               hideUserField.toggle( !( isNonEmptyIp || !isIndefinite ) );
+                               hideUserField.toggle( !isNonEmptyIp && isIndefinite );
                        }
                        if ( anonOnlyField ) {
-                               anonOnlyField.toggle( !( !isIp && !isEmpty ) );
+                               anonOnlyField.toggle( isIp || isEmpty );
                        }
                        if ( watchUserField ) {
-                               watchUserField.toggle( !( isIpRange && !isEmpty ) );
+                               watchUserField.toggle( !isIpRange || isEmpty );
                        }
                        if ( pageRestrictionsWidget ) {
-                               pageRestrictionsWidget.setDisabled( editingRestrictionValue === 'sitewide' );
+                               editingRestrictionWidget.setDisabled( !editingIsSelected );
+                               pageRestrictionsWidget.setDisabled( !editingIsSelected || editingRestrictionValue === 'sitewide' );
                        }
                        if ( preventTalkPageEdit ) {
                                // TODO: (T210475) this option is disabled for partial blocks unless
                                // a namespace restriction for User_talk namespace is in place.
                                // This needs to be updated once Namespace restrictions is available
-                               if ( editingRestrictionValue === 'partial' ) {
-                                       preventTalkPageEdit.setDisabled( true );
-                               } else {
-                                       preventTalkPageEdit.setDisabled( false );
-                               }
+                               preventTalkPageEdit.setDisabled( editingRestrictionValue === 'partial' && editingIsSelected );
                        }
 
                }
                        // Bind functions so they're checked whenever stuff changes
                        blockTargetWidget.on( 'change', updateBlockOptions );
                        expiryWidget.on( 'change', updateBlockOptions );
-                       editingRestrictionWidget.on( 'change', updateBlockOptions );
+                       if ( editingRestrictionWidget ) {
+                               editingRestrictionWidget.on( 'change', updateBlockOptions );
+                       }
+                       if ( editingWidget ) {
+                               editingWidget.on( 'change', updateBlockOptions );
+                       }
 
                        // Call them now to set initial state (ie. Special:Block/Foobar?wpBlockExpiry=2+hours)
                        updateBlockOptions();
diff --git a/resources/src/mediawiki.special.block.less b/resources/src/mediawiki.special.block.less
deleted file mode 100644 (file)
index c319294..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-.mw-block-page-restrictions {
-       margin-left: 2em;
-
-       .oo-ui-widget {
-               max-width: 48em;
-       }
-}
index ba34eb3..bc8ca37 100644 (file)
@@ -30,7 +30,7 @@
        $( function () {
                var $projectField = $( '#mw-import-table-interwiki #interwiki' );
                if ( $projectField.length ) {
-                       $projectField.change( updateImportSubprojectList );
+                       $projectField.on( 'change', updateImportSubprojectList );
                        updateImportSubprojectList();
                }
        } );
index d8f73b2..8885883 100644 (file)
@@ -27,7 +27,7 @@
 
                        // Bind to change event, and trigger once to set the initial state of the checkboxes.
                        rc.updateCheckboxes();
-                       $select.change( rc.updateCheckboxes );
+                       $select.on( 'change', rc.updateCheckboxes );
                }
        };
 
index 8e6d160..ae4cd55 100644 (file)
 
                for ( i = 0; i < results.length; i++ ) {
                        result = results[ i ];
-                       imageCaption = mw.html.element( 'span', { 'class': 'iw-result__mini-gallery__caption' }, result.title );
+                       imageCaption = mw.html.element( 'span', { class: 'iw-result__mini-gallery__caption' }, result.title );
                        imageThumbnailSrc = ( result.thumbnail ) ? result.thumbnail.source : '';
                        resultOutput += '<div class="iw-result__mini-gallery">' +
                                                /* escaping response content */
                                                mw.html.element( 'a', {
                                                        href: '/wiki/' + result.title,
-                                                       'class': 'iw-result__mini-gallery__image',
+                                                       class: 'iw-result__mini-gallery__image',
                                                        style: 'background-image: url(' + imageThumbnailSrc + ');'
                                                }, new mw.html.Raw( imageCaption ) ) +
                                        '</div>';
index d5760b2..02ac862 100644 (file)
@@ -7,15 +7,15 @@
 
                // Emulate HTML5 autofocus behavior in non HTML5 compliant browsers
                if ( !( 'autofocus' in document.createElement( 'input' ) ) ) {
-                       $( 'input[autofocus]' ).eq( 0 ).focus();
+                       $( 'input[autofocus]' ).eq( 0 ).trigger( 'focus' );
                }
 
                // Attach handler for check all/none buttons
                $checkboxes = $( '#powersearch input[id^=mw-search-ns]' );
-               $( '#mw-search-toggleall' ).click( function () {
+               $( '#mw-search-toggleall' ).on( 'click', function () {
                        $checkboxes.prop( 'checked', true );
                } );
-               $( '#mw-search-togglenone' ).click( function () {
+               $( '#mw-search-togglenone' ).on( 'click', function () {
                        $checkboxes.prop( 'checked', false );
                } );
 
@@ -39,7 +39,7 @@
                updateHeaderLinks( searchWidget.getValue() );
 
                // When saving settings, use the proper request method (POST instead of GET).
-               $( '#mw-search-powersearch-remember' ).change( function () {
+               $( '#mw-search-powersearch-remember' ).on( 'change', function () {
                        this.form.method = this.checked ? 'post' : 'get';
                } ).trigger( 'change' );
 
index e8eb870..92a5987 100644 (file)
@@ -7,7 +7,7 @@
                        summaryByteLimit = mw.config.get( 'wgCommentByteLimit' ),
                        wpComment = OO.ui.infuse( $( '#wpComment' ).closest( '.oo-ui-widget' ) );
 
-               $( '#mw-undelete-invert' ).click( function () {
+               $( '#mw-undelete-invert' ).on( 'click', function () {
                        $( '.mw-undelete-revlist input[type="checkbox"]' ).prop( 'checked', function ( i, val ) {
                                return !val;
                        } );
index 7783ff7..53617ca 100644 (file)
@@ -3,7 +3,7 @@
  */
 ( function () {
        $( function () {
-               $( 'a.mw-watch-link' ).click( function ( e ) {
+               $( 'a.mw-watch-link' ).on( 'click', function ( e ) {
                        var promise,
                                api = new mw.Api(),
                                $link = $( this ),
index bfb4c5e..8abb8f2 100644 (file)
                if ( ajaxUploadDestCheck ) {
                        // Insert an event handler that fetches upload warnings when wpDestFile
                        // has been changed
-                       $( '#wpDestFile' ).change( function () {
+                       $( '#wpDestFile' ).on( 'change', function () {
                                uploadWarning.checkNow( $( this ).val() );
                        } );
                        // Insert a row where the warnings will be displayed just below the
 
                if ( mw.config.get( 'wgAjaxLicensePreview' ) && $license.length ) {
                        // License selector check
-                       $license.change( function () {
+                       $license.on( 'change', function () {
                                // We might show a preview
                                uploadTemplatePreview.getPreview( $license, $( '#mw-license-preview' ) );
                        } );
 
                // fillDestFile setup
                mw.config.get( 'wgUploadSourceIds' ).forEach( function ( sourceId ) {
-                       $( '#' + sourceId ).change( function () {
+                       $( '#' + sourceId ).on( 'change', function () {
                                var path, slash, backslash, fname;
                                if ( !mw.config.get( 'wgUploadAutoFill' ) ) {
                                        return;
                /* Initialization */
                if ( hasFileAPI() ) {
                        // Update thumbnail when the file selection control is updated.
-                       $( '#wpUploadFile' ).change( function () {
+                       $( '#wpUploadFile' ).on( 'change', function () {
                                var file;
                                clearPreview();
                                if ( this.files && this.files.length ) {
                        namespace: 'uploadwarning'
                } );
 
-               $uploadForm.submit( function () {
+               $uploadForm.on( 'submit', function () {
                        allowCloseWindow.release();
                } );
        } );
 
                        // Change tabindex only when main div has focus
                        if ( $( this ).is( ':focus' ) ) {
-                               $( this ).find( 'a' ).first().focus();
+                               $( this ).find( 'a' ).first().trigger( 'focus' );
                                setEditTabindex( '0' );
                        }
                } );
index a4f5d1a..63d9623 100644 (file)
@@ -12,6 +12,7 @@
 
        // Dynamically show/hide the "other time" input under each dropdown
        $( '.mw-userrights-nested select' ).on( 'change', function ( e ) {
+               // eslint-disable-next-line jquery/no-animate-toggle
                $( e.target.parentNode ).find( 'input' ).toggle( $( e.target ).val() === 'other' );
        } );
 
index b9be51f..2d60b1d 100644 (file)
@@ -8,7 +8,7 @@
                // If the user wants to reset their watchlist, use an API call to do so (no reload required)
                // Adapted from a user script by User:NQ of English Wikipedia
                // (User:NQ/WatchlistResetConfirm.js)
-               $resetForm.submit( function ( event ) {
+               $resetForm.on( 'submit', function ( event ) {
                        var $button = $resetForm.find( 'input[name=mw-watchlist-reset-submit]' );
 
                        event.preventDefault();
@@ -41,7 +41,7 @@
                        } ).fail( function () {
                                // On error, fall back to server-side reset
                                // First remove this submit listener and then re-submit the form
-                               $resetForm.off( 'submit' ).submit();
+                               $resetForm.off( 'submit' ).trigger( 'submit' );
                        } );
                } );
 
@@ -50,7 +50,7 @@
                        // add a listener on all form elements in the header form
                        $( '#mw-watchlist-form input, #mw-watchlist-form select' ).on( 'change', function () {
                                // submit the form when one of the input fields is modified
-                               $( '#mw-watchlist-form' ).submit();
+                               $( '#mw-watchlist-form' ).trigger( 'submit' );
                        } );
                }
 
 
                                event.preventDefault();
                                event.stopPropagation();
-                               $unwatchLink.blur();
+                               $unwatchLink.trigger( 'blur' );
                        } );
                }
        } );
diff --git a/resources/src/mediawiki.special/block.less b/resources/src/mediawiki.special/block.less
new file mode 100644 (file)
index 0000000..30cafe5
--- /dev/null
@@ -0,0 +1,29 @@
+/* Special:Block styles */
+
+// OOUIHTMLForm styles
+@ooui-font-size-browser: 16; // Assumed browser default of `16px`
+@ooui-font-size-base: 0.875em; // Equals `14px` at browser default of `16px`
+
+@ooui-spacing-radio-label: 26 / @ooui-font-size-browser / @ooui-font-size-base; // Equals `1.85714286em`≈`26px`
+
+body.mw-special-Block {
+       .mw-block-editing-restriction.oo-ui-fieldLayout {
+               margin-left: @ooui-spacing-radio-label;
+       }
+
+       .mw-block-page-restrictions.oo-ui-fieldLayout {
+               margin-left: 2 * @ooui-spacing-radio-label;
+
+               .oo-ui-widget {
+                       max-width: 50em - 2 * @ooui-spacing-radio-label;
+               }
+       }
+
+       .oo-ui-panelLayout-framed {
+               border: 0;
+       }
+
+       .oo-ui-panelLayout-padded {
+               padding: 0;
+       }
+}
index de81d6a..85dbf97 100644 (file)
                        // Hide/show the table of contents element
                        function toggleToc() {
                                if ( $tocList.is( ':hidden' ) ) {
+                                       // FIXME: Use CSS transitions
+                                       // eslint-disable-next-line jquery/no-slide
                                        $tocList.slideDown( 'fast' );
                                        $tocToggleLink.text( mw.msg( 'hidetoc' ) );
                                        $this.removeClass( 'tochidden' );
                                        mw.cookie.set( 'hidetoc', null );
                                } else {
+                                       // eslint-disable-next-line jquery/no-slide
                                        $tocList.slideUp( 'fast' );
                                        $tocToggleLink.text( mw.msg( 'showtoc' ) );
                                        $this.addClass( 'tochidden' );
index 545bf40..f4ad578 100644 (file)
                                                );
                                        }
                                        if ( $field.is( ':input' ) ) {
-                                               $field.select();
+                                               $field.trigger( 'select' );
                                        }
                                        return false;
                        }
                                this.setValue( this.formatter.getDefaultDate() );
                        }
                        if ( $field.is( ':input' ) ) {
-                               $field.select();
+                               $field.trigger( 'select' );
                        }
 
                        if ( this.calendar ) {
index 86103d1..58646a9 100644 (file)
@@ -48,7 +48,7 @@
         *  are set up. Note: The promise must have an .abort() functionality.
         */
        mw.widgets.APIResultsQueue.prototype.setup = function () {
-               return $.Deferred().resolve().promise( { abort: $.noop } );
+               return $.Deferred().resolve().promise( { abort: function () {} } );
        };
 
        /**
index 23ee2c0..3002d45 100644 (file)
                        provider = this;
 
                if ( !this.isValid() ) {
-                       return $.Deferred().reject().promise( { abort: $.noop } );
+                       return $.Deferred().reject().promise( { abort: function () {} } );
                }
 
                api = this.isLocal ? new mw.Api() : new mw.ForeignApi( this.getAPIurl(), { anonymous: true } );
index c7502da..4d58f18 100644 (file)
                                if ( e.which === OO.ui.Keys.TAB ) {
                                        if ( e.shiftKey ) {
                                                // Tabbing backward from text input: normal browser behavior
-                                               $.noop();
                                        } else {
                                                // Tabbing forward from text input: just focus the calendar
                                                this.calendar.$element.focus();
index 76c6718..f1c0c6f 100644 (file)
                        self = this;
 
                // reuse the searchSuggest function from mw.searchSuggest
-               promise = mw.searchSuggest.request( api, this.getQueryValue(), $.noop, this.limit, this.getNamespace() );
+               promise = mw.searchSuggest.request( api, this.getQueryValue(), function () {}, this.limit, this.getNamespace() );
 
                // tracking purposes
                promise.done( function ( data, jqXHR ) {
index 6ad7917..cedb19d 100644 (file)
@@ -1,5 +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">
+    <title>remove</title>
     <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>
index bcbe871..641bb78 100644 (file)
@@ -1,6 +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 fill="red">
-    <g xmlns:default="http://www.w3.org/2000/svg" id="remove">
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><title>remove</title><g fill="red">
+    
+    <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>
 </g></svg>
index ab9a472..1cd40ed 100644 (file)
@@ -1,9 +1,9 @@
 <?php
 
 use MediaWiki\MediaWikiServices;
-use MediaWiki\Services\DestructibleService;
-use MediaWiki\Services\SalvageableService;
-use MediaWiki\Services\ServiceDisabledException;
+use Wikimedia\Services\DestructibleService;
+use Wikimedia\Services\SalvageableService;
+use Wikimedia\Services\ServiceDisabledException;
 
 /**
  * @covers MediaWiki\MediaWikiServices
@@ -219,7 +219,7 @@ class MediaWikiServicesTest extends MediaWikiTestCase {
                        'Test',
                        function () use ( &$serviceCounter ) {
                                $serviceCounter++;
-                               $service = $this->createMock( MediaWiki\Services\DestructibleService::class );
+                               $service = $this->createMock( Wikimedia\Services\DestructibleService::class );
                                $service->expects( $this->once() )->method( 'destroy' );
                                return $service;
                        }
@@ -248,7 +248,7 @@ class MediaWikiServicesTest extends MediaWikiTestCase {
                $services->defineService(
                        'Test',
                        function () {
-                               $service = $this->createMock( MediaWiki\Services\DestructibleService::class );
+                               $service = $this->createMock( Wikimedia\Services\DestructibleService::class );
                                $service->expects( $this->never() )->method( 'destroy' );
                                return $service;
                        }
index cf5e808..68632f3 100644 (file)
@@ -102,6 +102,7 @@ abstract class RevisionStoreDbTestBase extends MediaWikiTestCase {
                $this->testPageTitle = Title::newFromText( 'UTPage-' . __CLASS__ );
                return $this->testPageTitle;
        }
+
        /**
         * @return WikiPage
         */
index 11b9c01..cb5e1f8 100644 (file)
@@ -1,5 +1,6 @@
 <?php
 
+use MediaWiki\Block\Restriction\PageRestriction;
 use MediaWiki\MediaWikiServices;
 
 /**
@@ -892,7 +893,7 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
                        'wgEmailAuthentication' => true,
                ] );
 
-               $this->setUserPerm( [ "createpage", "move" ] );
+               $this->setUserPerm( [ 'createpage', 'edit', 'move', 'rollback', 'patrol', 'upload', 'purge' ] );
                $this->setTitle( NS_HELP, "test page" );
 
                # $wgEmailConfirmToEdit only applies to 'edit' action
@@ -964,11 +965,24 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
                        'expiry' => 10,
                        'systemBlock' => 'test',
                ] );
-               $this->assertEquals( [ [ 'systemblockedtext',
+
+               $errors = [ [ 'systemblockedtext',
                                '[[User:Useruser|Useruser]]', 'no reason given', '127.0.0.1',
                                'Useruser', 'test', '23:00, 31 December 1969', '127.0.8.1',
-                               $wgLang->timeanddate( wfTimestamp( TS_MW, $now ), true ) ] ],
+                               $wgLang->timeanddate( wfTimestamp( TS_MW, $now ), true ) ] ];
+
+               $this->assertEquals( $errors,
+                       $this->title->getUserPermissionsErrors( 'edit', $this->user ) );
+               $this->assertEquals( $errors,
                        $this->title->getUserPermissionsErrors( 'move-target', $this->user ) );
+               $this->assertEquals( $errors,
+                       $this->title->getUserPermissionsErrors( 'rollback', $this->user ) );
+               $this->assertEquals( $errors,
+                       $this->title->getUserPermissionsErrors( 'patrol', $this->user ) );
+               $this->assertEquals( $errors,
+                       $this->title->getUserPermissionsErrors( 'upload', $this->user ) );
+               $this->assertEquals( [],
+                       $this->title->getUserPermissionsErrors( 'purge', $this->user ) );
 
                // partial block message test
                $this->user->mBlockedby = $this->user->getName();
@@ -981,10 +995,39 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
                        'expiry' => 10,
                ] );
 
-               $this->assertEquals( [ [ 'blockedtext-partial',
+               $this->assertEquals( [],
+                       $this->title->getUserPermissionsErrors( 'edit', $this->user ) );
+               $this->assertEquals( [],
+                       $this->title->getUserPermissionsErrors( 'move-target', $this->user ) );
+               $this->assertEquals( [],
+                       $this->title->getUserPermissionsErrors( 'rollback', $this->user ) );
+               $this->assertEquals( [],
+                       $this->title->getUserPermissionsErrors( 'patrol', $this->user ) );
+               $this->assertEquals( [],
+                       $this->title->getUserPermissionsErrors( 'upload', $this->user ) );
+               $this->assertEquals( [],
+                       $this->title->getUserPermissionsErrors( 'purge', $this->user ) );
+
+               $this->user->mBlock->setRestrictions( [
+                               ( new PageRestriction( 0, $this->title->getArticleID() ) )->setTitle( $this->title ),
+               ] );
+
+               $errors = [ [ 'blockedtext-partial',
                                '[[User:Useruser|Useruser]]', 'no reason given', '127.0.0.1',
                                'Useruser', null, '23:00, 31 December 1969', '127.0.8.1',
-                               $wgLang->timeanddate( wfTimestamp( TS_MW, $now ), true ) ] ],
+                               $wgLang->timeanddate( wfTimestamp( TS_MW, $now ), true ) ] ];
+
+               $this->assertEquals( $errors,
+                       $this->title->getUserPermissionsErrors( 'edit', $this->user ) );
+               $this->assertEquals( $errors,
                        $this->title->getUserPermissionsErrors( 'move-target', $this->user ) );
+               $this->assertEquals( $errors,
+                       $this->title->getUserPermissionsErrors( 'rollback', $this->user ) );
+               $this->assertEquals( $errors,
+                       $this->title->getUserPermissionsErrors( 'patrol', $this->user ) );
+               $this->assertEquals( [],
+                       $this->title->getUserPermissionsErrors( 'upload', $this->user ) );
+               $this->assertEquals( [],
+                       $this->title->getUserPermissionsErrors( 'purge', $this->user ) );
        }
 }
index 5f1b9fe..e67d405 100644 (file)
@@ -88,7 +88,7 @@ class AbstractPasswordPrimaryAuthenticationProviderTest extends \MediaWikiTestCa
 
        public function testCheckPasswordValidity() {
                $uppCalled = 0;
-               $uppStatus = \Status::newGood();
+               $uppStatus = \Status::newGood( [] );
                $this->setMwGlobals( [
                        'wgPasswordPolicy' => [
                                'policies' => [
index b7e86c8..e1b25a1 100644 (file)
@@ -174,6 +174,16 @@ class LocalPasswordPrimaryAuthenticationProviderTest extends \MediaWikiTestCase
                $this->assertNotNull( $ret );
                $this->assertSame( 'resetpass-validity-soft', $ret->msg->getKey() );
                $this->assertFalse( $ret->hard );
+
+               $this->manager->removeAuthenticationSessionData( null );
+               $row->user_password_expires = null;
+               $status = \Status::newGood( [ 'forceChange' => true ] );
+               $status->error( 'testing' );
+               $providerPriv->setPasswordResetFlag( $userName, $status, $row );
+               $ret = $this->manager->getAuthenticationSessionData( 'reset-pass' );
+               $this->assertNotNull( $ret );
+               $this->assertSame( 'resetpass-validity', $ret->msg->getKey() );
+               $this->assertTrue( $ret->hard );
        }
 
        public function testAuthentication() {
index f1ee99f..e9058b6 100644 (file)
@@ -338,7 +338,8 @@ class ChangeTagsTest extends MediaWikiTestCase {
                $dbw->delete( 'change_tag_def', '*' );
 
                $rcId = 123;
-               ChangeTags::updateTags( [ 'tag1', 'tag2' ], [], $rcId );
+               $revId = 341;
+               ChangeTags::updateTags( [ 'tag1', 'tag2' ], [], $rcId, $revId );
 
                $dbr = wfGetDB( DB_REPLICA );
 
@@ -360,20 +361,22 @@ class ChangeTagsTest extends MediaWikiTestCase {
                $expected2 = [
                        (object)[
                                'ct_tag_id' => 1,
-                               'ct_rc_id' => 123
+                               'ct_rc_id' => 123,
+                               'ct_rev_id' => 341
                        ],
                        (object)[
                                'ct_tag_id' => 2,
-                               'ct_rc_id' => 123
+                               'ct_rc_id' => 123,
+                               'ct_rev_id' => 341
                        ],
                ];
-               $res2 = $dbr->select( 'change_tag', [ 'ct_tag_id', 'ct_rc_id' ], '' );
+               $res2 = $dbr->select( 'change_tag', [ 'ct_tag_id', 'ct_rc_id', 'ct_rev_id' ], '' );
                $this->assertEquals( $expected2, iterator_to_array( $res2, false ) );
 
                $rcId = 124;
-               ChangeTags::updateTags( [ 'tag1' ], [], $rcId );
-
-               ChangeTags::updateTags( [ 'tag3' ], [], $rcId );
+               $revId = 342;
+               ChangeTags::updateTags( [ 'tag1' ], [], $rcId, $revId );
+               ChangeTags::updateTags( [ 'tag3' ], [], $rcId, $revId );
 
                $dbr = wfGetDB( DB_REPLICA );
 
@@ -400,22 +403,26 @@ class ChangeTagsTest extends MediaWikiTestCase {
                $expected2 = [
                        (object)[
                                'ct_tag_id' => 1,
-                               'ct_rc_id' => 123
+                               'ct_rc_id' => 123,
+                               'ct_rev_id' => 341
                        ],
                        (object)[
-                               'ct_tag_id' => 2,
-                               'ct_rc_id' => 123
+                               'ct_tag_id' => 1,
+                               'ct_rc_id' => 124,
+                               'ct_rev_id' => 342
                        ],
                        (object)[
-                               'ct_tag_id' => 1,
-                               'ct_rc_id' => 124
+                               'ct_tag_id' => 2,
+                               'ct_rc_id' => 123,
+                               'ct_rev_id' => 341
                        ],
                        (object)[
                                'ct_tag_id' => 3,
-                               'ct_rc_id' => 124
+                               'ct_rc_id' => 124,
+                               'ct_rev_id' => 342
                        ],
                ];
-               $res2 = $dbr->select( 'change_tag', [ 'ct_tag_id', 'ct_rc_id' ], '' );
+               $res2 = $dbr->select( 'change_tag', [ 'ct_tag_id', 'ct_rc_id', 'ct_rev_id' ], '' );
                $this->assertEquals( $expected2, iterator_to_array( $res2, false ) );
        }
 
index 43edf60..a8ea3f0 100644 (file)
@@ -200,7 +200,7 @@ class ContentHandlerTest extends MediaWikiTestCase {
                $content = new WikitextContent( "hello world" );
 
                $text = ContentHandler::getContentText( $content );
-               $this->assertEquals( $content->getNativeData(), $text );
+               $this->assertEquals( $content->getText(), $text );
        }
 
        /**
@@ -242,9 +242,9 @@ class ContentHandlerTest extends MediaWikiTestCase {
 
        public static function dataMakeContent() {
                return [
-                       [ 'hallo', 'Help:Test', null, null, CONTENT_MODEL_WIKITEXT, 'hallo', false ],
-                       [ 'hallo', 'MediaWiki:Test.js', null, null, CONTENT_MODEL_JAVASCRIPT, 'hallo', false ],
-                       [ serialize( 'hallo' ), 'Dummy:Test', null, null, "testing", 'hallo', false ],
+                       [ 'hallo', 'Help:Test', null, null, CONTENT_MODEL_WIKITEXT, false ],
+                       [ 'hallo', 'MediaWiki:Test.js', null, null, CONTENT_MODEL_JAVASCRIPT, false ],
+                       [ serialize( 'hallo' ), 'Dummy:Test', null, null, "testing", false ],
 
                        [
                                'hallo',
@@ -252,7 +252,6 @@ class ContentHandlerTest extends MediaWikiTestCase {
                                null,
                                CONTENT_FORMAT_WIKITEXT,
                                CONTENT_MODEL_WIKITEXT,
-                               'hallo',
                                false
                        ],
                        [
@@ -261,19 +260,17 @@ class ContentHandlerTest extends MediaWikiTestCase {
                                null,
                                CONTENT_FORMAT_JAVASCRIPT,
                                CONTENT_MODEL_JAVASCRIPT,
-                               'hallo',
                                false
                        ],
-                       [ serialize( 'hallo' ), 'Dummy:Test', null, "testing", "testing", 'hallo', false ],
+                       [ serialize( 'hallo' ), 'Dummy:Test', null, "testing", "testing", false ],
 
-                       [ 'hallo', 'Help:Test', CONTENT_MODEL_CSS, null, CONTENT_MODEL_CSS, 'hallo', false ],
+                       [ 'hallo', 'Help:Test', CONTENT_MODEL_CSS, null, CONTENT_MODEL_CSS, false ],
                        [
                                'hallo',
                                'MediaWiki:Test.js',
                                CONTENT_MODEL_CSS,
                                null,
                                CONTENT_MODEL_CSS,
-                               'hallo',
                                false
                        ],
                        [
@@ -282,13 +279,12 @@ class ContentHandlerTest extends MediaWikiTestCase {
                                CONTENT_MODEL_CSS,
                                null,
                                CONTENT_MODEL_CSS,
-                               serialize( 'hallo' ),
                                false
                        ],
 
-                       [ 'hallo', 'Help:Test', CONTENT_MODEL_WIKITEXT, "testing", null, null, true ],
-                       [ 'hallo', 'MediaWiki:Test.js', CONTENT_MODEL_CSS, "testing", null, null, true ],
-                       [ 'hallo', 'Dummy:Test', CONTENT_MODEL_JAVASCRIPT, "testing", null, null, true ],
+                       [ 'hallo', 'Help:Test', CONTENT_MODEL_WIKITEXT, "testing", null, true ],
+                       [ 'hallo', 'MediaWiki:Test.js', CONTENT_MODEL_CSS, "testing", null, true ],
+                       [ 'hallo', 'Dummy:Test', CONTENT_MODEL_JAVASCRIPT, "testing", null, true ],
                ];
        }
 
@@ -297,7 +293,7 @@ class ContentHandlerTest extends MediaWikiTestCase {
         * @covers ContentHandler::makeContent
         */
        public function testMakeContent( $data, $title, $modelId, $format,
-               $expectedModelId, $expectedNativeData, $shouldFail
+               $expectedModelId, $shouldFail
        ) {
                $title = Title::newFromText( $title );
                MediaWikiServices::getInstance()->getLinkCache()->addBadLinkObj( $title );
@@ -309,7 +305,7 @@ class ContentHandlerTest extends MediaWikiTestCase {
                        }
 
                        $this->assertEquals( $expectedModelId, $content->getModel(), 'bad model id' );
-                       $this->assertEquals( $expectedNativeData, $content->getNativeData(), 'bads native data' );
+                       $this->assertEquals( $data, $content->serialize(), 'bad serialized data' );
                } catch ( MWException $ex ) {
                        if ( !$shouldFail ) {
                                $this->fail( "ContentHandler::makeContent failed unexpectedly: " . $ex->getMessage() );
index 2c61b7d..a4dd1fc 100644 (file)
@@ -234,7 +234,7 @@ class JavaScriptContentTest extends TextContentTest {
                $content = new JavaScriptContent( $oldText );
                $newContent = $content->updateRedirect( $target );
 
-               $this->assertEquals( $expectedText, $newContent->getNativeData() );
+               $this->assertEquals( $expectedText, $newContent->getText() );
        }
 
        public static function provideUpdateRedirect() {
diff --git a/tests/phpunit/includes/content/MessageContentTest.php b/tests/phpunit/includes/content/MessageContentTest.php
new file mode 100644 (file)
index 0000000..60f68e7
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+
+/**
+ * @group ContentHandler
+ */
+class MessageContentTest extends MediaWikiLangTestCase {
+
+       public function testGetHtml() {
+               $msg = new Message( 'about' );
+               $cnt = new MessageContent( $msg );
+
+               $this->assertSame( $msg->parse(), $cnt->getHtml() );
+       }
+
+       public function testGetWikitext() {
+               $msg = new Message( 'about' );
+               $cnt = new MessageContent( $msg );
+
+               $this->assertSame( $msg->text(), $cnt->getWikitext() );
+       }
+
+       public function testGetMessage() {
+               $msg = new Message( 'about' );
+               $cnt = new MessageContent( $msg );
+
+               $this->assertEquals( $msg, $cnt->getMessage() );
+       }
+
+       public function testGetParserOutput() {
+               $msg = new Message( 'about' );
+               $cnt = new MessageContent( $msg );
+
+               $title = Title::makeTitle( NS_MEDIAWIKI, 'about' );
+
+               $this->assertSame( $msg->parse(), $cnt->getParserOutput( $title )->getText() );
+       }
+
+       public function testSerialize() {
+               $msg = new Message( 'about' );
+               $cnt = new MessageContent( $msg );
+
+               $this->assertSame( $msg->plain(), $cnt->serialize() );
+       }
+
+       public function testEquals() {
+               $msg1 = new Message( 'about' );
+               $cnt1 = new MessageContent( $msg1 );
+
+               $msg2 = new Message( 'about' );
+               $cnt2 = new MessageContent( $msg2 );
+
+               $msg3 = new Message( 'faq' );
+               $cnt3 = new MessageContent( $msg3 );
+               $cnt4 = new WikitextContent( $msg3->plain() );
+
+               $this->assertTrue( $cnt1->equals( $cnt2 ) );
+               $this->assertFalse( $cnt1->equals( $cnt3 ) );
+               $this->assertFalse( $cnt1->equals( $cnt4 ) );
+       }
+}
index 4f04e64..8e537d6 100644 (file)
@@ -45,6 +45,10 @@ class TextContentTest extends MediaWikiLangTestCase {
                parent::tearDown();
        }
 
+       /**
+        * @param string $text
+        * @return TextContent
+        */
        public function newContent( $text ) {
                return new TextContent( $text );
        }
@@ -131,7 +135,7 @@ class TextContentTest extends MediaWikiLangTestCase {
                        $options
                );
 
-               $this->assertEquals( $expected, $content->getNativeData() );
+               $this->assertEquals( $expected, $content->getText() );
        }
 
        public static function dataPreloadTransform() {
@@ -154,7 +158,7 @@ class TextContentTest extends MediaWikiLangTestCase {
                $content = $this->newContent( $text );
                $content = $content->preloadTransform( $this->context->getTitle(), $options );
 
-               $this->assertEquals( $expected, $content->getNativeData() );
+               $this->assertEquals( $expected, $content->getText() );
        }
 
        public static function dataGetRedirectTarget() {
@@ -269,7 +273,7 @@ class TextContentTest extends MediaWikiLangTestCase {
                $copy = $content->copy();
 
                $this->assertTrue( $content->equals( $copy ), 'copy must be equal to original' );
-               $this->assertEquals( 'hello world.', $copy->getNativeData() );
+               $this->assertEquals( 'hello world.', $copy->getText() );
        }
 
        /**
@@ -281,13 +285,22 @@ class TextContentTest extends MediaWikiLangTestCase {
                $this->assertEquals( 12, $content->getSize() );
        }
 
+       /**
+        * @covers TextContent::getText
+        */
+       public function testGetText() {
+               $content = $this->newContent( 'hello world.' );
+
+               $this->assertEquals( 'hello world.', $content->getText() );
+       }
+
        /**
         * @covers TextContent::getNativeData
         */
        public function testGetNativeData() {
                $content = $this->newContent( 'hello world.' );
 
-               $this->assertEquals( 'hello world.', $content->getNativeData() );
+               $this->assertEquals( 'hello world.', $content->getText() );
        }
 
        /**
@@ -438,13 +451,14 @@ class TextContentTest extends MediaWikiLangTestCase {
        public function testConvert( $text, $model, $lossy, $expectedNative ) {
                $content = $this->newContent( $text );
 
+               /** @var TextContent $converted */
                $converted = $content->convert( $model, $lossy );
 
                if ( $expectedNative === false ) {
                        $this->assertFalse( $converted, "conversion to $model was expected to fail!" );
                } else {
                        $this->assertInstanceOf( Content::class, $converted );
-                       $this->assertEquals( $expectedNative, $converted->getNativeData() );
+                       $this->assertEquals( $expectedNative, $converted->getText() );
                }
        }
 
@@ -473,4 +487,10 @@ class TextContentTest extends MediaWikiLangTestCase {
                ];
        }
 
+       public function testSerialize() {
+               $cnt = $this->newContent( 'testing text' );
+
+               $this->assertSame( 'testing text', $cnt->serialize() );
+       }
+
 }
index 31d90cb..5f78a5c 100644 (file)
@@ -44,10 +44,10 @@ class WikitextContentHandlerTest extends MediaWikiLangTestCase {
         */
        public function testUnserializeContent() {
                $content = $this->handler->unserializeContent( 'hello world' );
-               $this->assertEquals( 'hello world', $content->getNativeData() );
+               $this->assertEquals( 'hello world', $content->getText() );
 
                $content = $this->handler->unserializeContent( 'hello world', CONTENT_FORMAT_WIKITEXT );
-               $this->assertEquals( 'hello world', $content->getNativeData() );
+               $this->assertEquals( 'hello world', $content->getText() );
 
                try {
                        $this->handler->unserializeContent( 'hello world', 'dummy/foo' );
@@ -64,7 +64,7 @@ class WikitextContentHandlerTest extends MediaWikiLangTestCase {
                $content = $this->handler->makeEmptyContent();
 
                $this->assertTrue( $content->isEmpty() );
-               $this->assertEquals( '', $content->getNativeData() );
+               $this->assertEquals( '', $content->getText() );
        }
 
        public static function dataIsSupportedFormat() {
@@ -172,7 +172,7 @@ class WikitextContentHandlerTest extends MediaWikiLangTestCase {
 
                $merged = $this->handler->merge3( $oldContent, $myContent, $yourContent );
 
-               $this->assertEquals( $expected, $merged ? $merged->getNativeData() : $merged );
+               $this->assertEquals( $expected, $merged ? $merged->getText() : $merged );
        }
 
        public static function dataGetAutosummary() {
index be93563..f689cae 100644 (file)
@@ -130,7 +130,7 @@ just a test"
 
                $sectionContent = $content->getSection( $sectionId );
                if ( is_object( $sectionContent ) ) {
-                       $sectionText = $sectionContent->getNativeData();
+                       $sectionText = $sectionContent->getText();
                } else {
                        $sectionText = $sectionContent;
                }
@@ -184,7 +184,7 @@ just a test"
                $content = $this->newContent( $text );
                $c = $content->replaceSection( $section, $this->newContent( $with ), $sectionTitle );
 
-               $this->assertEquals( $expected, is_null( $c ) ? null : $c->getNativeData() );
+               $this->assertEquals( $expected, is_null( $c ) ? null : $c->getText() );
        }
 
        /**
@@ -194,7 +194,7 @@ just a test"
                $content = $this->newContent( 'hello world' );
                $content = $content->addSectionHeader( 'test' );
 
-               $this->assertEquals( "== test ==\n\nhello world", $content->getNativeData() );
+               $this->assertEquals( "== test ==\n\nhello world", $content->getText() );
        }
 
        public static function dataPreSaveTransform() {
diff --git a/tests/phpunit/includes/libs/services/ServiceContainerTest.php b/tests/phpunit/includes/libs/services/ServiceContainerTest.php
new file mode 100644 (file)
index 0000000..6674a15
--- /dev/null
@@ -0,0 +1,496 @@
+<?php
+use Wikimedia\Services\ServiceContainer;
+
+/**
+ * @covers Wikimedia\Services\ServiceContainer
+ */
+class ServiceContainerTest extends PHPUnit\Framework\TestCase {
+
+       use MediaWikiCoversValidator; // TODO this library is supposed to be independent of MediaWiki
+       use PHPUnit4And6Compat;
+
+       private function newServiceContainer( $extraArgs = [] ) {
+               return new ServiceContainer( $extraArgs );
+       }
+
+       public function testGetServiceNames() {
+               $services = $this->newServiceContainer();
+               $names = $services->getServiceNames();
+
+               $this->assertInternalType( 'array', $names );
+               $this->assertEmpty( $names );
+
+               $name = 'TestService92834576';
+               $services->defineService( $name, function () {
+                       return null;
+               } );
+
+               $names = $services->getServiceNames();
+               $this->assertContains( $name, $names );
+       }
+
+       public function testHasService() {
+               $services = $this->newServiceContainer();
+
+               $name = 'TestService92834576';
+               $this->assertFalse( $services->hasService( $name ) );
+
+               $services->defineService( $name, function () {
+                       return null;
+               } );
+
+               $this->assertTrue( $services->hasService( $name ) );
+       }
+
+       public function testGetService() {
+               $services = $this->newServiceContainer( [ 'Foo' ] );
+
+               $theService = new stdClass();
+               $name = 'TestService92834576';
+               $count = 0;
+
+               $services->defineService(
+                       $name,
+                       function ( $actualLocator, $extra ) use ( $services, $theService, &$count ) {
+                               $count++;
+                               PHPUnit_Framework_Assert::assertSame( $services, $actualLocator );
+                               PHPUnit_Framework_Assert::assertSame( $extra, 'Foo' );
+                               return $theService;
+                       }
+               );
+
+               $this->assertSame( $theService, $services->getService( $name ) );
+
+               $services->getService( $name );
+               $this->assertSame( 1, $count, 'instantiator should be called exactly once!' );
+       }
+
+       public function testGetService_fail_unknown() {
+               $services = $this->newServiceContainer();
+
+               $name = 'TestService92834576';
+
+               $this->setExpectedException( Wikimedia\Services\NoSuchServiceException::class );
+
+               $services->getService( $name );
+       }
+
+       public function testPeekService() {
+               $services = $this->newServiceContainer();
+
+               $services->defineService(
+                       'Foo',
+                       function () {
+                               return new stdClass();
+                       }
+               );
+
+               $services->defineService(
+                       'Bar',
+                       function () {
+                               return new stdClass();
+                       }
+               );
+
+               // trigger instantiation of Foo
+               $services->getService( 'Foo' );
+
+               $this->assertInternalType(
+                       'object',
+                       $services->peekService( 'Foo' ),
+                       'Peek should return the service object if it had been accessed before.'
+               );
+
+               $this->assertNull(
+                       $services->peekService( 'Bar' ),
+                       'Peek should return null if the service was never accessed.'
+               );
+       }
+
+       public function testPeekService_fail_unknown() {
+               $services = $this->newServiceContainer();
+
+               $name = 'TestService92834576';
+
+               $this->setExpectedException( Wikimedia\Services\NoSuchServiceException::class );
+
+               $services->peekService( $name );
+       }
+
+       public function testDefineService() {
+               $services = $this->newServiceContainer();
+
+               $theService = new stdClass();
+               $name = 'TestService92834576';
+
+               $services->defineService( $name, function ( $actualLocator ) use ( $services, $theService ) {
+                       PHPUnit_Framework_Assert::assertSame( $services, $actualLocator );
+                       return $theService;
+               } );
+
+               $this->assertTrue( $services->hasService( $name ) );
+               $this->assertSame( $theService, $services->getService( $name ) );
+       }
+
+       public function testDefineService_fail_duplicate() {
+               $services = $this->newServiceContainer();
+
+               $theService = new stdClass();
+               $name = 'TestService92834576';
+
+               $services->defineService( $name, function () use ( $theService ) {
+                       return $theService;
+               } );
+
+               $this->setExpectedException( Wikimedia\Services\ServiceAlreadyDefinedException::class );
+
+               $services->defineService( $name, function () use ( $theService ) {
+                       return $theService;
+               } );
+       }
+
+       public function testApplyWiring() {
+               $services = $this->newServiceContainer();
+
+               $wiring = [
+                       'Foo' => function () {
+                               return 'Foo!';
+                       },
+                       'Bar' => function () {
+                               return 'Bar!';
+                       },
+               ];
+
+               $services->applyWiring( $wiring );
+
+               $this->assertSame( 'Foo!', $services->getService( 'Foo' ) );
+               $this->assertSame( 'Bar!', $services->getService( 'Bar' ) );
+       }
+
+       public function testImportWiring() {
+               $services = $this->newServiceContainer();
+
+               $wiring = [
+                       'Foo' => function () {
+                               return 'Foo!';
+                       },
+                       'Bar' => function () {
+                               return 'Bar!';
+                       },
+                       'Car' => function () {
+                               return 'FUBAR!';
+                       },
+               ];
+
+               $services->applyWiring( $wiring );
+
+               $services->addServiceManipulator( 'Foo', function ( $service ) {
+                       return $service . '+X';
+               } );
+
+               $services->addServiceManipulator( 'Car', function ( $service ) {
+                       return $service . '+X';
+               } );
+
+               $newServices = $this->newServiceContainer();
+
+               // create a service with manipulator
+               $newServices->defineService( 'Foo', function () {
+                       return 'Foo!';
+               } );
+
+               $newServices->addServiceManipulator( 'Foo', function ( $service ) {
+                       return $service . '+Y';
+               } );
+
+               // create a service before importing, so we can later check that
+               // existing service instances survive importWiring()
+               $newServices->defineService( 'Car', function () {
+                       return 'Car!';
+               } );
+
+               // force instantiation
+               $newServices->getService( 'Car' );
+
+               // Define another service, so we can later check that extra wiring
+               // is not lost.
+               $newServices->defineService( 'Xar', function () {
+                       return 'Xar!';
+               } );
+
+               // import wiring, but skip `Bar`
+               $newServices->importWiring( $services, [ 'Bar' ] );
+
+               $this->assertNotContains( 'Bar', $newServices->getServiceNames(), 'Skip `Bar` service' );
+               $this->assertSame( 'Foo!+Y+X', $newServices->getService( 'Foo' ) );
+
+               // import all wiring, but preserve existing service instance
+               $newServices->importWiring( $services );
+
+               $this->assertContains( 'Bar', $newServices->getServiceNames(), 'Import all services' );
+               $this->assertSame( 'Bar!', $newServices->getService( 'Bar' ) );
+               $this->assertSame( 'Car!', $newServices->getService( 'Car' ), 'Use existing service instance' );
+               $this->assertSame( 'Xar!', $newServices->getService( 'Xar' ), 'Predefined services are kept' );
+       }
+
+       public function testLoadWiringFiles() {
+               $services = $this->newServiceContainer();
+
+               $wiringFiles = [
+                       __DIR__ . '/TestWiring1.php',
+                       __DIR__ . '/TestWiring2.php',
+               ];
+
+               $services->loadWiringFiles( $wiringFiles );
+
+               $this->assertSame( 'Foo!', $services->getService( 'Foo' ) );
+               $this->assertSame( 'Bar!', $services->getService( 'Bar' ) );
+       }
+
+       public function testLoadWiringFiles_fail_duplicate() {
+               $services = $this->newServiceContainer();
+
+               $wiringFiles = [
+                       __DIR__ . '/TestWiring1.php',
+                       __DIR__ . '/./TestWiring1.php',
+               ];
+
+               // loading the same file twice should fail, because
+               $this->setExpectedException( Wikimedia\Services\ServiceAlreadyDefinedException::class );
+
+               $services->loadWiringFiles( $wiringFiles );
+       }
+
+       public function testRedefineService() {
+               $services = $this->newServiceContainer( [ 'Foo' ] );
+
+               $theService1 = new stdClass();
+               $name = 'TestService92834576';
+
+               $services->defineService( $name, function () {
+                       PHPUnit_Framework_Assert::fail(
+                               'The original instantiator function should not get called'
+                       );
+               } );
+
+               // redefine before instantiation
+               $services->redefineService(
+                       $name,
+                       function ( $actualLocator, $extra ) use ( $services, $theService1 ) {
+                               PHPUnit_Framework_Assert::assertSame( $services, $actualLocator );
+                               PHPUnit_Framework_Assert::assertSame( 'Foo', $extra );
+                               return $theService1;
+                       }
+               );
+
+               // force instantiation, check result
+               $this->assertSame( $theService1, $services->getService( $name ) );
+       }
+
+       public function testRedefineService_disabled() {
+               $services = $this->newServiceContainer( [ 'Foo' ] );
+
+               $theService1 = new stdClass();
+               $name = 'TestService92834576';
+
+               $services->defineService( $name, function () {
+                       return 'Foo';
+               } );
+
+               // disable the service. we should be able to redefine it anyway.
+               $services->disableService( $name );
+
+               $services->redefineService( $name, function () use ( $theService1 ) {
+                       return $theService1;
+               } );
+
+               // force instantiation, check result
+               $this->assertSame( $theService1, $services->getService( $name ) );
+       }
+
+       public function testRedefineService_fail_undefined() {
+               $services = $this->newServiceContainer();
+
+               $theService = new stdClass();
+               $name = 'TestService92834576';
+
+               $this->setExpectedException( Wikimedia\Services\NoSuchServiceException::class );
+
+               $services->redefineService( $name, function () use ( $theService ) {
+                       return $theService;
+               } );
+       }
+
+       public function testRedefineService_fail_in_use() {
+               $services = $this->newServiceContainer( [ 'Foo' ] );
+
+               $theService = new stdClass();
+               $name = 'TestService92834576';
+
+               $services->defineService( $name, function () {
+                       return 'Foo';
+               } );
+
+               // create the service, so it can no longer be redefined
+               $services->getService( $name );
+
+               $this->setExpectedException( Wikimedia\Services\CannotReplaceActiveServiceException::class );
+
+               $services->redefineService( $name, function () use ( $theService ) {
+                       return $theService;
+               } );
+       }
+
+       public function testAddServiceManipulator() {
+               $services = $this->newServiceContainer( [ 'Foo' ] );
+
+               $theService1 = new stdClass();
+               $theService2 = new stdClass();
+               $name = 'TestService92834576';
+
+               $services->defineService(
+                       $name,
+                       function ( $actualLocator, $extra ) use ( $services, $theService1 ) {
+                               PHPUnit_Framework_Assert::assertSame( $services, $actualLocator );
+                               PHPUnit_Framework_Assert::assertSame( 'Foo', $extra );
+                               return $theService1;
+                       }
+               );
+
+               $services->addServiceManipulator(
+                       $name,
+                       function (
+                               $theService, $actualLocator, $extra
+                       ) use (
+                               $services, $theService1, $theService2
+                       ) {
+                               PHPUnit_Framework_Assert::assertSame( $theService1, $theService );
+                               PHPUnit_Framework_Assert::assertSame( $services, $actualLocator );
+                               PHPUnit_Framework_Assert::assertSame( 'Foo', $extra );
+                               return $theService2;
+                       }
+               );
+
+               // force instantiation, check result
+               $this->assertSame( $theService2, $services->getService( $name ) );
+       }
+
+       public function testAddServiceManipulator_fail_undefined() {
+               $services = $this->newServiceContainer();
+
+               $theService = new stdClass();
+               $name = 'TestService92834576';
+
+               $this->setExpectedException( Wikimedia\Services\NoSuchServiceException::class );
+
+               $services->addServiceManipulator( $name, function () use ( $theService ) {
+                       return $theService;
+               } );
+       }
+
+       public function testAddServiceManipulator_fail_in_use() {
+               $services = $this->newServiceContainer( [ 'Foo' ] );
+
+               $theService = new stdClass();
+               $name = 'TestService92834576';
+
+               $services->defineService( $name, function () use ( $theService ) {
+                       return $theService;
+               } );
+
+               // create the service, so it can no longer be redefined
+               $services->getService( $name );
+
+               $this->setExpectedException( Wikimedia\Services\CannotReplaceActiveServiceException::class );
+
+               $services->addServiceManipulator( $name, function () {
+                       return 'Foo';
+               } );
+       }
+
+       public function testDisableService() {
+               $services = $this->newServiceContainer( [ 'Foo' ] );
+
+               $destructible = $this->getMockBuilder( Wikimedia\Services\DestructibleService::class )
+                       ->getMock();
+               $destructible->expects( $this->once() )
+                       ->method( 'destroy' );
+
+               $services->defineService( 'Foo', function () use ( $destructible ) {
+                       return $destructible;
+               } );
+               $services->defineService( 'Bar', function () {
+                       return new stdClass();
+               } );
+               $services->defineService( 'Qux', function () {
+                       return new stdClass();
+               } );
+
+               // instantiate Foo and Bar services
+               $services->getService( 'Foo' );
+               $services->getService( 'Bar' );
+
+               // disable service, should call destroy() once.
+               $services->disableService( 'Foo' );
+
+               // disabled service should still be listed
+               $this->assertContains( 'Foo', $services->getServiceNames() );
+
+               // getting other services should still work
+               $services->getService( 'Bar' );
+
+               // disable non-destructible service, and not-yet-instantiated service
+               $services->disableService( 'Bar' );
+               $services->disableService( 'Qux' );
+
+               $this->assertNull( $services->peekService( 'Bar' ) );
+               $this->assertNull( $services->peekService( 'Qux' ) );
+
+               // disabled service should still be listed
+               $this->assertContains( 'Bar', $services->getServiceNames() );
+               $this->assertContains( 'Qux', $services->getServiceNames() );
+
+               $this->setExpectedException( Wikimedia\Services\ServiceDisabledException::class );
+               $services->getService( 'Qux' );
+       }
+
+       public function testDisableService_fail_undefined() {
+               $services = $this->newServiceContainer();
+
+               $theService = new stdClass();
+               $name = 'TestService92834576';
+
+               $this->setExpectedException( Wikimedia\Services\NoSuchServiceException::class );
+
+               $services->redefineService( $name, function () use ( $theService ) {
+                       return $theService;
+               } );
+       }
+
+       public function testDestroy() {
+               $services = $this->newServiceContainer();
+
+               $destructible = $this->getMockBuilder( Wikimedia\Services\DestructibleService::class )
+                       ->getMock();
+               $destructible->expects( $this->once() )
+                       ->method( 'destroy' );
+
+               $services->defineService( 'Foo', function () use ( $destructible ) {
+                       return $destructible;
+               } );
+
+               $services->defineService( 'Bar', function () {
+                       return new stdClass();
+               } );
+
+               // create the service
+               $services->getService( 'Foo' );
+
+               // destroy the container
+               $services->destroy();
+
+               $this->setExpectedException( Wikimedia\Services\ContainerDisabledException::class );
+               $services->getService( 'Bar' );
+       }
+
+}
diff --git a/tests/phpunit/includes/libs/services/TestWiring1.php b/tests/phpunit/includes/libs/services/TestWiring1.php
new file mode 100644 (file)
index 0000000..b6ff4eb
--- /dev/null
@@ -0,0 +1,10 @@
+<?php
+/**
+ * Test file for testing ServiceContainer::loadWiringFiles
+ */
+
+return [
+       'Foo' => function () {
+               return 'Foo!';
+       },
+];
diff --git a/tests/phpunit/includes/libs/services/TestWiring2.php b/tests/phpunit/includes/libs/services/TestWiring2.php
new file mode 100644 (file)
index 0000000..dfff64f
--- /dev/null
@@ -0,0 +1,10 @@
+<?php
+/**
+ * Test file for testing ServiceContainer::loadWiringFiles
+ */
+
+return [
+       'Bar' => function () {
+               return 'Bar!';
+       },
+];
index a0a99cc..ac0ad98 100644 (file)
@@ -9,10 +9,12 @@ class WebPHandlerTest extends MediaWikiTestCase {
                // Allocated file for testing
                $this->tempFileName = tempnam( wfTempDir(), 'WEBP' );
        }
+
        public function tearDown() {
                parent::tearDown();
                unlink( $this->tempFileName );
        }
+
        /**
         * @dataProvider provideTestExtractMetaData
         */
@@ -22,6 +24,7 @@ class WebPHandlerTest extends MediaWikiTestCase {
 
                $this->assertEquals( $expectedResult, WebPHandler::extractMetadata( $this->tempFileName ) );
        }
+
        public function provideTestExtractMetaData() {
                // phpcs:disable Generic.Files.LineLength
                return [
@@ -80,6 +83,7 @@ class WebPHandlerTest extends MediaWikiTestCase {
        public function testWithFileExtractMetaData( $filename, $expectedResult ) {
                $this->assertEquals( $expectedResult, WebPHandler::extractMetadata( $filename ) );
        }
+
        public function provideTestWithFileExtractMetaData() {
                return [
                        [ __DIR__ . '/../../data/media/2_webp_ll.webp',
@@ -108,6 +112,7 @@ class WebPHandlerTest extends MediaWikiTestCase {
                $handler = new WebPHandler();
                $this->assertEquals( $expectedResult, $handler->getImageSize( null, $path ) );
        }
+
        public function provideTestGetImageSize() {
                return [
                        // Public domain files from https://developers.google.com/speed/webp/gallery2
@@ -130,6 +135,7 @@ class WebPHandlerTest extends MediaWikiTestCase {
                $mime = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                $this->assertEquals( 'image/webp', $mime->guessMimeType( $path, false ) );
        }
+
        public function provideTestGetMimeType() {
                return [
                                // Public domain files from https://developers.google.com/speed/webp/gallery2
index f7e5bd1..298dc52 100644 (file)
@@ -2048,7 +2048,7 @@ more stuff
                        wfTimestamp( TS_UNIX, $initialRevision->getTimestamp() ) - 1
                );
 
-               $olderRevison = new Revision(
+               $olderRevision = new Revision(
                        [
                                'id' => 9989,
                                'page' => $page->getId(),
@@ -2065,7 +2065,7 @@ more stuff
                        ]
                );
 
-               $result = $page->updateIfNewerOn( $this->db, $olderRevison );
+               $result = $page->updateIfNewerOn( $this->db, $olderRevision );
                $this->assertFalse( $result );
        }
 
index 78175fa..80881ad 100644 (file)
@@ -30,7 +30,7 @@ class UserPasswordPolicyTest extends MediaWikiTestCase {
 
        protected $policies = [
                'checkuser' => [
-                       'MinimalPasswordLength' => 10,
+                       'MinimalPasswordLength' => [ 'value' => 10, 'forceChange' => true ],
                        'MinimumPasswordLengthToLogin' => 6,
                        'PasswordCannotMatchUsername' => true,
                ],
@@ -44,6 +44,8 @@ class UserPasswordPolicyTest extends MediaWikiTestCase {
                        'MinimumPasswordLengthToLogin' => 1,
                        'PasswordCannotMatchBlacklist' => true,
                        'MaximalPasswordLength' => 4096,
+                       // test null handling
+                       'PasswordCannotMatchUsername' => null,
                ],
        ];
 
@@ -62,15 +64,24 @@ class UserPasswordPolicyTest extends MediaWikiTestCase {
        public function testGetPoliciesForUser() {
                $upp = $this->getUserPasswordPolicy();
 
-               $user = User::newFromName( 'TestUserPolicy' );
-               $user->addToDatabase();
-               $user->addGroup( 'sysop' );
-
+               $user = $this->getTestUser( [ 'sysop' ] )->getUser();
                $this->assertArrayEquals(
                        [
                                'MinimalPasswordLength' => 8,
                                'MinimumPasswordLengthToLogin' => 1,
-                               'PasswordCannotMatchUsername' => 1,
+                               'PasswordCannotMatchUsername' => true,
+                               'PasswordCannotMatchBlacklist' => true,
+                               'MaximalPasswordLength' => 4096,
+                       ],
+                       $upp->getPoliciesForUser( $user )
+               );
+
+               $user = $this->getTestUser( [ 'sysop', 'checkuser' ] )->getUser();
+               $this->assertArrayEquals(
+                       [
+                               'MinimalPasswordLength' => [ 'value' => 10, 'forceChange' => true ],
+                               'MinimumPasswordLengthToLogin' => 6,
+                               'PasswordCannotMatchUsername' => true,
                                'PasswordCannotMatchBlacklist' => true,
                                'MaximalPasswordLength' => 4096,
                        ],
@@ -87,7 +98,7 @@ class UserPasswordPolicyTest extends MediaWikiTestCase {
 
                $this->assertArrayEquals(
                        [
-                               'MinimalPasswordLength' => 10,
+                               'MinimalPasswordLength' => [ 'value' => 10, 'forceChange' => true ],
                                'MinimumPasswordLengthToLogin' => 6,
                                'PasswordCannotMatchUsername' => true,
                                'PasswordCannotMatchBlacklist' => true,
@@ -100,108 +111,96 @@ class UserPasswordPolicyTest extends MediaWikiTestCase {
        /**
         * @dataProvider provideCheckUserPassword
         */
-       public function testCheckUserPassword( $username, $groups, $password, $valid, $ok, $msg ) {
+       public function testCheckUserPassword( $groups, $password, StatusValue $expectedStatus ) {
                $upp = $this->getUserPasswordPolicy();
-
-               $user = User::newFromName( $username );
-               $user->addToDatabase();
-               foreach ( $groups as $group ) {
-                       $user->addGroup( $group );
-               }
+               $user = $this->getTestUser( $groups )->getUser();
 
                $status = $upp->checkUserPassword( $user, $password );
-               $this->assertSame( $valid, $status->isGood(), $msg . ' - password valid' );
-               $this->assertSame( $ok, $status->isOK(), $msg . ' - can login' );
+               $this->assertSame( $expectedStatus->isGood(), $status->isGood(), 'password valid' );
+               $this->assertSame( $expectedStatus->isOK(), $status->isOK(), 'can login' );
+               $this->assertSame( $expectedStatus->getValue(), $status->getValue(), 'flags' );
        }
 
        public function provideCheckUserPassword() {
+               $success = Status::newGood( [] );
+               $warning = Status::newGood( [] );
+               $forceChange = Status::newGood( [ 'forceChange' => true ] );
+               $fatal = Status::newGood( [] );
+               // the message does not matter, we only test for state and value
+               $warning->warning( 'invalid-password' );
+               $forceChange->warning( 'invalid-password' );
+               $warning->warning( 'invalid-password' );
+               $fatal->fatal( 'invalid-password' );
                return [
-                       [
-                               'PassPolicyUser',
+                       'No groups, default policy, password too short to login' => [
                                [],
                                '',
-                               false,
-                               false,
-                               'No groups, default policy, password too short to login'
+                               $fatal,
                        ],
-                       [
-                               'PassPolicyUser',
+                       'Default policy, short password' => [
                                [ 'user' ],
                                'aaa',
-                               false,
-                               true,
-                               'Default policy, short password'
+                               $warning,
                        ],
-                       [
-                               'PassPolicyUser',
+                       'Sysop with good password' => [
                                [ 'sysop' ],
                                'abcdabcdabcd',
-                               true,
-                               true,
-                               'Sysop with good password'
+                               $success,
                        ],
-                       [
-                               'PassPolicyUser',
+                       'Sysop with short password' => [
                                [ 'sysop' ],
                                'abcd',
-                               false,
-                               true,
-                               'Sysop with short password'
+                               $warning,
                        ],
-                       [
-                               'PassPolicyUser',
+                       'Checkuser with short password' => [
                                [ 'sysop', 'checkuser' ],
                                'abcdabcd',
-                               false,
-                               true,
-                               'Checkuser with short password'
+                               $forceChange,
                        ],
-                       [
-                               'PassPolicyUser',
+                       'Checkuser with too short password to login' => [
                                [ 'sysop', 'checkuser' ],
                                'abcd',
-                               false,
-                               false,
-                               'Checkuser with too short password to login'
-                       ],
-                       [
-                               'Useruser',
-                               [ 'user' ],
-                               'Passpass',
-                               false,
-                               true,
-                               'Username & password on blacklist'
+                               $fatal,
                        ],
                ];
        }
 
+       public function testCheckUserPassword_blacklist() {
+               $upp = $this->getUserPasswordPolicy();
+               $user = User::newFromName( 'Useruser' );
+               $user->addToDatabase();
+
+               $status = $upp->checkUserPassword( $user, 'Passpass' );
+               $this->assertFalse( $status->isGood(), 'password invalid' );
+               $this->assertTrue( $status->isOK(), 'can login' );
+       }
+
        /**
         * @dataProvider provideMaxOfPolicies
         */
-       public function testMaxOfPolicies( $p1, $p2, $max, $msg ) {
+       public function testMaxOfPolicies( $p1, $p2, $max ) {
                $this->assertArrayEquals(
                        $max,
-                       UserPasswordPolicy::maxOfPolicies( $p1, $p2 ),
-                       $msg
+                       UserPasswordPolicy::maxOfPolicies( $p1, $p2 )
                );
        }
 
        public function provideMaxOfPolicies() {
                return [
-                       [
+                       'Basic max in p1' => [
                                [ 'MinimalPasswordLength' => 8 ], // p1
                                [ 'MinimalPasswordLength' => 2 ], // p2
                                [ 'MinimalPasswordLength' => 8 ], // max
-                               'Basic max in p1'
                        ],
-                       [
+                       'Basic max in p2' => [
                                [ 'MinimalPasswordLength' => 2 ], // p1
                                [ 'MinimalPasswordLength' => 8 ], // p2
                                [ 'MinimalPasswordLength' => 8 ], // max
-                               'Basic max in p2'
                        ],
-                       [
-                               [ 'MinimalPasswordLength' => 8 ], // p1
+                       'Missing items in p1' => [
+                               [
+                                       'MinimalPasswordLength' => 8,
+                               ], // p1
                                [
                                        'MinimalPasswordLength' => 2,
                                        'PasswordCannotMatchUsername' => 1,
@@ -210,9 +209,8 @@ class UserPasswordPolicyTest extends MediaWikiTestCase {
                                        'MinimalPasswordLength' => 8,
                                        'PasswordCannotMatchUsername' => 1,
                                ], // max
-                               'Missing items in p1'
                        ],
-                       [
+                       'Missing items in p2' => [
                                [
                                        'MinimalPasswordLength' => 8,
                                        'PasswordCannotMatchUsername' => 1,
@@ -224,7 +222,64 @@ class UserPasswordPolicyTest extends MediaWikiTestCase {
                                        'MinimalPasswordLength' => 8,
                                        'PasswordCannotMatchUsername' => 1,
                                ], // max
-                               'Missing items in p2'
+                       ],
+                       'complex value in p1' => [
+                               [
+                                       'MinimalPasswordLength' => [
+                                               'value' => 8,
+                                               'foo' => 1,
+                                       ],
+                               ], // p1
+                               [
+                                       'MinimalPasswordLength' => 2,
+                               ], // p2
+                               [
+                                       'MinimalPasswordLength' => [
+                                               'value' => 8,
+                                               'foo' => 1,
+                                       ],
+                               ], // max
+                       ],
+                       'complex value in p2' => [
+                               [
+                                       'MinimalPasswordLength' => 8,
+                               ], // p1
+                               [
+                                       'MinimalPasswordLength' => [
+                                               'value' => 2,
+                                               'foo' => 1,
+                                       ],
+                               ], // p2
+                               [
+                                       'MinimalPasswordLength' => [
+                                               'value' => 8,
+                                               'foo' => 1,
+                                       ],
+                               ], // max
+                       ],
+                       'complex value in both p1 and p2' => [
+                               [
+                                       'MinimalPasswordLength' => [
+                                               'value' => 8,
+                                               'foo' => 1,
+                                               'baz' => false,
+                                       ],
+                               ], // p1
+                               [
+                                       'MinimalPasswordLength' => [
+                                               'value' => 2,
+                                               'bar' => 2,
+                                               'baz' => true,
+                                       ],
+                               ], // p2
+                               [
+                                       'MinimalPasswordLength' => [
+                                               'value' => 8,
+                                               'foo' => 1,
+                                               'bar' => 2,
+                                               'baz' => true,
+                                       ],
+                               ], // max
                        ],
                ];
        }
index 19774f0..016a9a0 100644 (file)
@@ -118,6 +118,7 @@ class PoolWorkArticleViewTest extends MediaWikiTestCase {
                        }
                ];
        }
+
        /**
         * @dataProvider provideMagicWords
         */
index 1baa79c..5de1b0c 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 
+use Wikimedia\ScopedCallback;
+
 /**
  * @covers ExtensionRegistry
  */
@@ -399,4 +401,28 @@ class ExtensionRegistryTest extends MediaWikiTestCase {
                        ],
                ];
        }
+
+       public function testSetAttributeForTest() {
+               $registry = new ExtensionRegistry();
+               $registry->queue( "{$this->dataDir}/good.json" );
+               $registry->loadFromQueue();
+               // Sanity check that it worked
+               $this->assertSame( [ 'test' ], $registry->getAttribute( 'FooBarAttr' ) );
+               $reset = $registry->setAttributeForTest( 'FooBarAttr', [ 'override' ] );
+               // overridden properly
+               $this->assertSame( [ 'override' ], $registry->getAttribute( 'FooBarAttr' ) );
+               ScopedCallback::consume( $reset );
+               // reset properly
+               $this->assertSame( [ 'test' ], $registry->getAttribute( 'FooBarAttr' ) );
+       }
+
+       /**
+        * @expectedException Exception
+        * @expectedExceptionMessage The attribute 'foo' has already been overridden
+        */
+       public function testSetAttributeForTestDuplicate() {
+               $registry = new ExtensionRegistry();
+               $reset1 = $registry->setAttributeForTest( 'foo', [ 'val1' ] );
+               $reset2 = $registry->setAttributeForTest( 'foo', [ 'val2' ] );
+       }
 }
index bb51de0..318dce8 100644 (file)
@@ -31,6 +31,7 @@ class ResourceLoaderLessVarFileModuleTest extends ResourceLoaderTestCase {
                        ]
                ];
        }
+
        /**
         * @dataProvider providerWrapAndEscapeMessage
         * @covers ResourceLoaderLessVarFileModule::wrapAndEscapeMessage
index aa3f820..2ee85b5 100644 (file)
@@ -499,6 +499,7 @@ mw.loader.register( [
                        ] ]
                ];
        }
+
        /**
         * @covers ResourceLoaderStartUpModule::getModuleRegistrations
         * @dataProvider provideRegistrations
index 171f2a6..32afd75 100644 (file)
@@ -837,6 +837,7 @@ mw.example();
                        $response
                );
        }
+
        /**
         * Verify that when building the startup module response,
         * an exception from one module class will not break the entire
diff --git a/tests/phpunit/includes/services/ServiceContainerTest.php b/tests/phpunit/includes/services/ServiceContainerTest.php
deleted file mode 100644 (file)
index aca88aa..0000000
+++ /dev/null
@@ -1,498 +0,0 @@
-<?php
-use MediaWiki\Services\ServiceContainer;
-
-/**
- * @covers MediaWiki\Services\ServiceContainer
- *
- * @group MediaWiki
- */
-class ServiceContainerTest extends PHPUnit\Framework\TestCase {
-
-       use MediaWikiCoversValidator;
-       use PHPUnit4And6Compat;
-
-       private function newServiceContainer( $extraArgs = [] ) {
-               return new ServiceContainer( $extraArgs );
-       }
-
-       public function testGetServiceNames() {
-               $services = $this->newServiceContainer();
-               $names = $services->getServiceNames();
-
-               $this->assertInternalType( 'array', $names );
-               $this->assertEmpty( $names );
-
-               $name = 'TestService92834576';
-               $services->defineService( $name, function () {
-                       return null;
-               } );
-
-               $names = $services->getServiceNames();
-               $this->assertContains( $name, $names );
-       }
-
-       public function testHasService() {
-               $services = $this->newServiceContainer();
-
-               $name = 'TestService92834576';
-               $this->assertFalse( $services->hasService( $name ) );
-
-               $services->defineService( $name, function () {
-                       return null;
-               } );
-
-               $this->assertTrue( $services->hasService( $name ) );
-       }
-
-       public function testGetService() {
-               $services = $this->newServiceContainer( [ 'Foo' ] );
-
-               $theService = new stdClass();
-               $name = 'TestService92834576';
-               $count = 0;
-
-               $services->defineService(
-                       $name,
-                       function ( $actualLocator, $extra ) use ( $services, $theService, &$count ) {
-                               $count++;
-                               PHPUnit_Framework_Assert::assertSame( $services, $actualLocator );
-                               PHPUnit_Framework_Assert::assertSame( $extra, 'Foo' );
-                               return $theService;
-                       }
-               );
-
-               $this->assertSame( $theService, $services->getService( $name ) );
-
-               $services->getService( $name );
-               $this->assertSame( 1, $count, 'instantiator should be called exactly once!' );
-       }
-
-       public function testGetService_fail_unknown() {
-               $services = $this->newServiceContainer();
-
-               $name = 'TestService92834576';
-
-               $this->setExpectedException( MediaWiki\Services\NoSuchServiceException::class );
-
-               $services->getService( $name );
-       }
-
-       public function testPeekService() {
-               $services = $this->newServiceContainer();
-
-               $services->defineService(
-                       'Foo',
-                       function () {
-                               return new stdClass();
-                       }
-               );
-
-               $services->defineService(
-                       'Bar',
-                       function () {
-                               return new stdClass();
-                       }
-               );
-
-               // trigger instantiation of Foo
-               $services->getService( 'Foo' );
-
-               $this->assertInternalType(
-                       'object',
-                       $services->peekService( 'Foo' ),
-                       'Peek should return the service object if it had been accessed before.'
-               );
-
-               $this->assertNull(
-                       $services->peekService( 'Bar' ),
-                       'Peek should return null if the service was never accessed.'
-               );
-       }
-
-       public function testPeekService_fail_unknown() {
-               $services = $this->newServiceContainer();
-
-               $name = 'TestService92834576';
-
-               $this->setExpectedException( MediaWiki\Services\NoSuchServiceException::class );
-
-               $services->peekService( $name );
-       }
-
-       public function testDefineService() {
-               $services = $this->newServiceContainer();
-
-               $theService = new stdClass();
-               $name = 'TestService92834576';
-
-               $services->defineService( $name, function ( $actualLocator ) use ( $services, $theService ) {
-                       PHPUnit_Framework_Assert::assertSame( $services, $actualLocator );
-                       return $theService;
-               } );
-
-               $this->assertTrue( $services->hasService( $name ) );
-               $this->assertSame( $theService, $services->getService( $name ) );
-       }
-
-       public function testDefineService_fail_duplicate() {
-               $services = $this->newServiceContainer();
-
-               $theService = new stdClass();
-               $name = 'TestService92834576';
-
-               $services->defineService( $name, function () use ( $theService ) {
-                       return $theService;
-               } );
-
-               $this->setExpectedException( MediaWiki\Services\ServiceAlreadyDefinedException::class );
-
-               $services->defineService( $name, function () use ( $theService ) {
-                       return $theService;
-               } );
-       }
-
-       public function testApplyWiring() {
-               $services = $this->newServiceContainer();
-
-               $wiring = [
-                       'Foo' => function () {
-                               return 'Foo!';
-                       },
-                       'Bar' => function () {
-                               return 'Bar!';
-                       },
-               ];
-
-               $services->applyWiring( $wiring );
-
-               $this->assertSame( 'Foo!', $services->getService( 'Foo' ) );
-               $this->assertSame( 'Bar!', $services->getService( 'Bar' ) );
-       }
-
-       public function testImportWiring() {
-               $services = $this->newServiceContainer();
-
-               $wiring = [
-                       'Foo' => function () {
-                               return 'Foo!';
-                       },
-                       'Bar' => function () {
-                               return 'Bar!';
-                       },
-                       'Car' => function () {
-                               return 'FUBAR!';
-                       },
-               ];
-
-               $services->applyWiring( $wiring );
-
-               $services->addServiceManipulator( 'Foo', function ( $service ) {
-                       return $service . '+X';
-               } );
-
-               $services->addServiceManipulator( 'Car', function ( $service ) {
-                       return $service . '+X';
-               } );
-
-               $newServices = $this->newServiceContainer();
-
-               // create a service with manipulator
-               $newServices->defineService( 'Foo', function () {
-                       return 'Foo!';
-               } );
-
-               $newServices->addServiceManipulator( 'Foo', function ( $service ) {
-                       return $service . '+Y';
-               } );
-
-               // create a service before importing, so we can later check that
-               // existing service instances survive importWiring()
-               $newServices->defineService( 'Car', function () {
-                       return 'Car!';
-               } );
-
-               // force instantiation
-               $newServices->getService( 'Car' );
-
-               // Define another service, so we can later check that extra wiring
-               // is not lost.
-               $newServices->defineService( 'Xar', function () {
-                       return 'Xar!';
-               } );
-
-               // import wiring, but skip `Bar`
-               $newServices->importWiring( $services, [ 'Bar' ] );
-
-               $this->assertNotContains( 'Bar', $newServices->getServiceNames(), 'Skip `Bar` service' );
-               $this->assertSame( 'Foo!+Y+X', $newServices->getService( 'Foo' ) );
-
-               // import all wiring, but preserve existing service instance
-               $newServices->importWiring( $services );
-
-               $this->assertContains( 'Bar', $newServices->getServiceNames(), 'Import all services' );
-               $this->assertSame( 'Bar!', $newServices->getService( 'Bar' ) );
-               $this->assertSame( 'Car!', $newServices->getService( 'Car' ), 'Use existing service instance' );
-               $this->assertSame( 'Xar!', $newServices->getService( 'Xar' ), 'Predefined services are kept' );
-       }
-
-       public function testLoadWiringFiles() {
-               $services = $this->newServiceContainer();
-
-               $wiringFiles = [
-                       __DIR__ . '/TestWiring1.php',
-                       __DIR__ . '/TestWiring2.php',
-               ];
-
-               $services->loadWiringFiles( $wiringFiles );
-
-               $this->assertSame( 'Foo!', $services->getService( 'Foo' ) );
-               $this->assertSame( 'Bar!', $services->getService( 'Bar' ) );
-       }
-
-       public function testLoadWiringFiles_fail_duplicate() {
-               $services = $this->newServiceContainer();
-
-               $wiringFiles = [
-                       __DIR__ . '/TestWiring1.php',
-                       __DIR__ . '/./TestWiring1.php',
-               ];
-
-               // loading the same file twice should fail, because
-               $this->setExpectedException( MediaWiki\Services\ServiceAlreadyDefinedException::class );
-
-               $services->loadWiringFiles( $wiringFiles );
-       }
-
-       public function testRedefineService() {
-               $services = $this->newServiceContainer( [ 'Foo' ] );
-
-               $theService1 = new stdClass();
-               $name = 'TestService92834576';
-
-               $services->defineService( $name, function () {
-                       PHPUnit_Framework_Assert::fail(
-                               'The original instantiator function should not get called'
-                       );
-               } );
-
-               // redefine before instantiation
-               $services->redefineService(
-                       $name,
-                       function ( $actualLocator, $extra ) use ( $services, $theService1 ) {
-                               PHPUnit_Framework_Assert::assertSame( $services, $actualLocator );
-                               PHPUnit_Framework_Assert::assertSame( 'Foo', $extra );
-                               return $theService1;
-                       }
-               );
-
-               // force instantiation, check result
-               $this->assertSame( $theService1, $services->getService( $name ) );
-       }
-
-       public function testRedefineService_disabled() {
-               $services = $this->newServiceContainer( [ 'Foo' ] );
-
-               $theService1 = new stdClass();
-               $name = 'TestService92834576';
-
-               $services->defineService( $name, function () {
-                       return 'Foo';
-               } );
-
-               // disable the service. we should be able to redefine it anyway.
-               $services->disableService( $name );
-
-               $services->redefineService( $name, function () use ( $theService1 ) {
-                       return $theService1;
-               } );
-
-               // force instantiation, check result
-               $this->assertSame( $theService1, $services->getService( $name ) );
-       }
-
-       public function testRedefineService_fail_undefined() {
-               $services = $this->newServiceContainer();
-
-               $theService = new stdClass();
-               $name = 'TestService92834576';
-
-               $this->setExpectedException( MediaWiki\Services\NoSuchServiceException::class );
-
-               $services->redefineService( $name, function () use ( $theService ) {
-                       return $theService;
-               } );
-       }
-
-       public function testRedefineService_fail_in_use() {
-               $services = $this->newServiceContainer( [ 'Foo' ] );
-
-               $theService = new stdClass();
-               $name = 'TestService92834576';
-
-               $services->defineService( $name, function () {
-                       return 'Foo';
-               } );
-
-               // create the service, so it can no longer be redefined
-               $services->getService( $name );
-
-               $this->setExpectedException( MediaWiki\Services\CannotReplaceActiveServiceException::class );
-
-               $services->redefineService( $name, function () use ( $theService ) {
-                       return $theService;
-               } );
-       }
-
-       public function testAddServiceManipulator() {
-               $services = $this->newServiceContainer( [ 'Foo' ] );
-
-               $theService1 = new stdClass();
-               $theService2 = new stdClass();
-               $name = 'TestService92834576';
-
-               $services->defineService(
-                       $name,
-                       function ( $actualLocator, $extra ) use ( $services, $theService1 ) {
-                               PHPUnit_Framework_Assert::assertSame( $services, $actualLocator );
-                               PHPUnit_Framework_Assert::assertSame( 'Foo', $extra );
-                               return $theService1;
-                       }
-               );
-
-               $services->addServiceManipulator(
-                       $name,
-                       function (
-                               $theService, $actualLocator, $extra
-                       ) use (
-                               $services, $theService1, $theService2
-                       ) {
-                               PHPUnit_Framework_Assert::assertSame( $theService1, $theService );
-                               PHPUnit_Framework_Assert::assertSame( $services, $actualLocator );
-                               PHPUnit_Framework_Assert::assertSame( 'Foo', $extra );
-                               return $theService2;
-                       }
-               );
-
-               // force instantiation, check result
-               $this->assertSame( $theService2, $services->getService( $name ) );
-       }
-
-       public function testAddServiceManipulator_fail_undefined() {
-               $services = $this->newServiceContainer();
-
-               $theService = new stdClass();
-               $name = 'TestService92834576';
-
-               $this->setExpectedException( MediaWiki\Services\NoSuchServiceException::class );
-
-               $services->addServiceManipulator( $name, function () use ( $theService ) {
-                       return $theService;
-               } );
-       }
-
-       public function testAddServiceManipulator_fail_in_use() {
-               $services = $this->newServiceContainer( [ 'Foo' ] );
-
-               $theService = new stdClass();
-               $name = 'TestService92834576';
-
-               $services->defineService( $name, function () use ( $theService ) {
-                       return $theService;
-               } );
-
-               // create the service, so it can no longer be redefined
-               $services->getService( $name );
-
-               $this->setExpectedException( MediaWiki\Services\CannotReplaceActiveServiceException::class );
-
-               $services->addServiceManipulator( $name, function () {
-                       return 'Foo';
-               } );
-       }
-
-       public function testDisableService() {
-               $services = $this->newServiceContainer( [ 'Foo' ] );
-
-               $destructible = $this->getMockBuilder( MediaWiki\Services\DestructibleService::class )
-                       ->getMock();
-               $destructible->expects( $this->once() )
-                       ->method( 'destroy' );
-
-               $services->defineService( 'Foo', function () use ( $destructible ) {
-                       return $destructible;
-               } );
-               $services->defineService( 'Bar', function () {
-                       return new stdClass();
-               } );
-               $services->defineService( 'Qux', function () {
-                       return new stdClass();
-               } );
-
-               // instantiate Foo and Bar services
-               $services->getService( 'Foo' );
-               $services->getService( 'Bar' );
-
-               // disable service, should call destroy() once.
-               $services->disableService( 'Foo' );
-
-               // disabled service should still be listed
-               $this->assertContains( 'Foo', $services->getServiceNames() );
-
-               // getting other services should still work
-               $services->getService( 'Bar' );
-
-               // disable non-destructible service, and not-yet-instantiated service
-               $services->disableService( 'Bar' );
-               $services->disableService( 'Qux' );
-
-               $this->assertNull( $services->peekService( 'Bar' ) );
-               $this->assertNull( $services->peekService( 'Qux' ) );
-
-               // disabled service should still be listed
-               $this->assertContains( 'Bar', $services->getServiceNames() );
-               $this->assertContains( 'Qux', $services->getServiceNames() );
-
-               $this->setExpectedException( MediaWiki\Services\ServiceDisabledException::class );
-               $services->getService( 'Qux' );
-       }
-
-       public function testDisableService_fail_undefined() {
-               $services = $this->newServiceContainer();
-
-               $theService = new stdClass();
-               $name = 'TestService92834576';
-
-               $this->setExpectedException( MediaWiki\Services\NoSuchServiceException::class );
-
-               $services->redefineService( $name, function () use ( $theService ) {
-                       return $theService;
-               } );
-       }
-
-       public function testDestroy() {
-               $services = $this->newServiceContainer();
-
-               $destructible = $this->getMockBuilder( MediaWiki\Services\DestructibleService::class )
-                       ->getMock();
-               $destructible->expects( $this->once() )
-                       ->method( 'destroy' );
-
-               $services->defineService( 'Foo', function () use ( $destructible ) {
-                       return $destructible;
-               } );
-
-               $services->defineService( 'Bar', function () {
-                       return new stdClass();
-               } );
-
-               // create the service
-               $services->getService( 'Foo' );
-
-               // destroy the container
-               $services->destroy();
-
-               $this->setExpectedException( MediaWiki\Services\ContainerDisabledException::class );
-               $services->getService( 'Bar' );
-       }
-
-}
diff --git a/tests/phpunit/includes/services/TestWiring1.php b/tests/phpunit/includes/services/TestWiring1.php
deleted file mode 100644 (file)
index b6ff4eb..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-/**
- * Test file for testing ServiceContainer::loadWiringFiles
- */
-
-return [
-       'Foo' => function () {
-               return 'Foo!';
-       },
-];
diff --git a/tests/phpunit/includes/services/TestWiring2.php b/tests/phpunit/includes/services/TestWiring2.php
deleted file mode 100644 (file)
index dfff64f..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-/**
- * Test file for testing ServiceContainer::loadWiringFiles
- */
-
-return [
-       'Bar' => function () {
-               return 'Bar!';
-       },
-];
index 40fe1e3..e2c0084 100644 (file)
@@ -38,7 +38,6 @@ class SpecialBlockTest extends SpecialPageTestBase {
                $this->assertArrayHasKey( 'Reason', $fields );
                $this->assertArrayHasKey( 'CreateAccount', $fields );
                $this->assertArrayHasKey( 'DisableUTEdit', $fields );
-               $this->assertArrayHasKey( 'DisableUTEdit', $fields );
                $this->assertArrayHasKey( 'AutoBlock', $fields );
                $this->assertArrayHasKey( 'HardBlock', $fields );
                $this->assertArrayHasKey( 'PreviousTarget', $fields );
index a80262e..58c69e3 100644 (file)
@@ -143,8 +143,8 @@ class UploadBaseTest extends MediaWikiTestCase {
                        // html5sec SVG vectors
                        [
                                '<svg xmlns="http://www.w3.org/2000/svg"><script>alert(1)</script></svg>',
-                               true,
-                               true,
+                               true, /* SVG is well formed */
+                               true, /* Evil SVG detected */
                                'Script tag in svg (http://html5sec.org/#47)'
                        ],
                        [
@@ -509,7 +509,20 @@ class UploadBaseTest extends MediaWikiTestCase {
                                true,
                                false,
                                'DTD with aliased entities apos (Should be allowed)'
-                       ]
+                       ],
+                       [
+                               '<svg xmlns="http://www.w3.org/2000/svg"><g filter="url( \'#foo\' )"></g></svg>',
+                               true,
+                               false,
+                               'SVG with local filter (T69044)'
+                       ],
+                       [
+                               '<svg xmlns="http://www.w3.org/2000/svg"><g filter="url( http://example.com/#foo )"></g></svg>',
+                               true,
+                               true,
+                               'SVG with non-local filter (T69044)'
+                       ],
+
                ];
                // phpcs:enable
        }
index e796065..26088a3 100644 (file)
@@ -84,6 +84,7 @@ class UploadStashTest extends MediaWikiTestCase {
                                ] ) ],
                ];
        }
+
        /**
         * @dataProvider provideValidRequests
         */
index 47f04b2..03b02ba 100644 (file)
@@ -7,10 +7,11 @@
                "sinon": false
        },
        "rules": {
-               "operator-linebreak": 0,
+               "operator-linebreak": "off",
                "quote-props": [ "error", "as-needed" ],
-               "valid-jsdoc": 0,
-               "qunit/require-expect": 0,
-               "qunit/resolve-async": 0
+               "valid-jsdoc": "off",
+               "qunit/require-expect": "off",
+               "qunit/resolve-async": "off",
+               "jquery/no-parse-html-literal": "off"
        }
 }
index 743660a..df3d61b 100644 (file)
                        if ( warn === undefined ) {
                                warn = mw.log.warn;
                                error = mw.log.error;
-                               mw.log.warn = mw.log.error = $.noop;
+                               mw.log.warn = mw.log.error = function () {};
                        }
                }
 
index d207260..2e35420 100644 (file)
@@ -5,6 +5,7 @@
                var done = assert.async(),
                        $canvas = $( '<div>' ).css( 'background-color', '#fff' ).appendTo( '#qunit-fixture' );
 
+               // eslint-disable-next-line jquery/no-animate
                $canvas.animate( { 'background-color': '#000' }, 3 ).promise()
                        .done( function () {
                                var endColors = $.colorUtil.getRGB( $canvas.css( 'background-color' ) );
index 360ef01..bd6ee16 100644 (file)
                                callback( $table );
                        } else {
                                $table.tablesorter();
-                               $table.find( '#sortme' ).click();
+                               $table.find( '#sortme' ).trigger( 'click' );
                        }
 
                        // Table sorting is done synchronously; if it ever needs to change back
                planetsAscName,
                function ( $table ) {
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
        tableTest(
                planetsAscName,
                function ( $table ) {
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
        tableTest(
                planetsAscName,
                function ( $table ) {
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
-                       $table.find( '.headerSort:eq(1)' ).click();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
+                       $table.find( '.headerSort:eq(1)' ).trigger( 'click' );
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
        tableTest(
                reversed( planetsAscName ),
                function ( $table ) {
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click().click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' ).trigger( 'click' );
                }
        );
        tableTest(
                planetsAscRadius,
                function ( $table ) {
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(1)' ).click();
+                       $table.find( '.headerSort:eq(1)' ).trigger( 'click' );
                }
        );
        tableTest(
                reversed( planetsAscRadius ),
                function ( $table ) {
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(1)' ).click().click();
+                       $table.find( '.headerSort:eq(1)' ).trigger( 'click' ).trigger( 'click' );
                }
        );
        tableTest(
                        $table.tablesorter(
                                { sortList: [ { 0: 'asc' }, { 1: 'asc' } ] }
                        );
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
        tableTest(
                        $table.tablesorter(
                                { sortList: [ { 0: 'desc' }, { 1: 'desc' } ] }
                        );
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
 
                        // Pretend to click while pressing the multi-sort key
                        event = $.Event( 'click' );
                        $table.find( 'tr:eq(0) th:eq(0)' ).attr( 'colspan', '3' );
 
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
        tableTest( 'Sorting with colspanned headers: sort spanned column twice',
                        $table.find( 'tr:eq(0) th:eq(0)' ).attr( 'colspan', '3' );
 
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
        tableTest( 'Sorting with colspanned headers: subsequent column',
                        $table.find( 'tr:eq(0) th:eq(0)' ).attr( 'colspan', '3' );
 
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(1)' ).click();
+                       $table.find( '.headerSort:eq(1)' ).trigger( 'click' );
                }
        );
        tableTest( 'Sorting with colspanned headers: sort subsequent column twice',
                        $table.find( 'tr:eq(0) th:eq(0)' ).attr( 'colspan', '3' );
 
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(1)' ).click();
-                       $table.find( '.headerSort:eq(1)' ).click();
+                       $table.find( '.headerSort:eq(1)' ).trigger( 'click' );
+                       $table.find( '.headerSort:eq(1)' ).trigger( 'click' );
                }
        );
 
                $table.find( 'tr:eq(0) > th:eq(0)' ).addClass( 'unsortable' );
 
                $table.tablesorter();
-               $table.find( 'tr:eq(0) > th:eq(0)' ).click();
+               $table.find( 'tr:eq(0) > th:eq(0)' ).trigger( 'click' );
 
                assert.deepEqual(
                        tableExtract( $table ),
                );
 
                $cell = $table.find( 'tr:eq(0) > th:eq(0)' );
-               $table.find( 'tr:eq(0) > th:eq(1)' ).click();
+               $table.find( 'tr:eq(0) > th:eq(1)' ).trigger( 'click' );
 
                assert.strictEqual(
                        $cell.hasClass( 'headerSortUp' ) || $cell.hasClass( 'headerSortDown' ),
                        mw.config.set( 'wgPageContentLanguage', 'de' );
 
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
 
                        mw.config.set( 'wgDefaultDateFormat', 'mdy' );
 
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
 
                ipv4Sorted,
                function ( $table ) {
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
        tableTest(
                reversed( ipv4Sorted ),
                function ( $table ) {
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click().click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' ).trigger( 'click' );
                }
        );
 
                        } );
 
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
 
                        } );
 
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
 
                        $table.find( 'tr:eq(2) td:eq(1)' ).attr( 'rowspan', '3' );
 
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
        tableTest(
                        $table.find( 'tr:eq(2) td:eq(0)' ).attr( 'rowspan', '3' );
 
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
 
                        mw.config.set( 'wgDefaultDateFormat', 'mdy' );
 
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
 
                currencySorted,
                function ( $table ) {
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
 
                function ( $table ) {
                        $table.find( 'tr:last' ).addClass( 'sortbottom' );
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
 
                                '</table>'
                );
                $table.tablesorter();
-               $table.find( '.headerSort:eq(0)' ).click();
+               $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
 
                assert.strictEqual(
                        $table.data( 'tablesorter' ).config.parsers[ 0 ].id,
                                '<tr><td data-sort-value="Cherry">Dolphin</td></tr>' +
                                '</tbody></table>'
                );
-               $table.tablesorter().find( '.headerSort:eq(0)' ).click();
+               $table.tablesorter().find( '.headerSort:eq(0)' ).trigger( 'click' );
 
                data = [];
                $table.find( 'tbody > tr' ).each( function ( i, tr ) {
                                '<tr><td><span data-sort-value="D">H</span></td></tr>' +
                                '</tbody></table>'
                );
-               $table.tablesorter().find( '.headerSort:eq(0)' ).click();
+               $table.tablesorter().find( '.headerSort:eq(0)' ).trigger( 'click' );
 
                data = [];
                $table.find( 'tbody > tr' ).each( function ( i, tr ) {
                // initialize table sorter and sort once
                $table
                        .tablesorter()
-                       .find( '.headerSort:eq(0)' ).click();
+                       .find( '.headerSort:eq(0)' ).trigger( 'click' );
 
                // Change the sortValue data properties (T40152)
                // - change data
                $table.find( 'td:contains(G)' ).removeData( 'sortValue' );
 
                // Now sort again (twice, so it is back at Ascending)
-               $table.find( '.headerSort:eq(0)' ).click();
-               $table.find( '.headerSort:eq(0)' ).click();
+               $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
+               $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
 
                data = [];
                $table.find( 'tbody > tr' ).each( function ( i, tr ) {
                [ 'Numbers' ], numbers, numbersAsc,
                function ( $table ) {
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
 
                [ 'Numbers' ], numbers, reversed( numbersAsc ),
                function ( $table ) {
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click().click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' ).trigger( 'click' );
                }
        );
        // TODO add numbers sorting tests for T10115 with a different language
                        mw.config.set( 'wgDefaultDateFormat', 'mdy' );
 
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
 
                        mw.config.set( 'wgDefaultDateFormat', 'dmy' );
 
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
 
                        mw.config.set( 'wgDefaultDateFormat', 'dmy' );
 
                        $table.tablesorter();
-                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                }
        );
 
                                '<tr><td>1</td></tr>' +
                                '</table>'
                );
-               $table.tablesorter().find( '.headerSort:eq(0)' ).click();
+               $table.tablesorter().find( '.headerSort:eq(0)' ).trigger( 'click' );
 
                assert.strictEqual(
                        $table.find( 'td' ).first().text(),
                                '<tr><td><img alt="A" />C</tr>' +
                                '</table>'
                );
-               $table.tablesorter().find( '.headerSort:eq(0)' ).click();
+               $table.tablesorter().find( '.headerSort:eq(0)' ).trigger( 'click' );
 
                assert.strictEqual(
                        $table.find( 'td' ).text(),
                                '<tr><td>4</td></tr>' +
                                '</table>'
                );
-               $table.tablesorter().find( '.headerSort:eq(0)' ).click();
+               $table.tablesorter().find( '.headerSort:eq(0)' ).trigger( 'click' );
 
                assert.strictEqual(
                        $table.find( 'td' ).text(),
                                '</table>'
                );
                $table.tablesorter();
-               $table.find( '.headerSort:eq(0)' ).click();
+               $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
                // now the first row have 2 columns
-               $table.find( '.headerSort:eq(1)' ).click();
+               $table.find( '.headerSort:eq(1)' ).trigger( 'click' );
 
                parsers = $table.data( 'tablesorter' ).config.parsers;
 
                                '</table>'
                );
                $table.tablesorter();
-               $table.find( '.headerSort:eq(0)' ).click();
+               $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
 
                assert.deepEqual(
                        tableExtract( $table ),
                                '</table>'
                );
                $table.tablesorter();
-               $table.find( '.headerSort:eq(0)' ).click();
+               $table.find( '.headerSort:eq(0)' ).trigger( 'click' );
 
                assert.deepEqual(
                        tableExtract( $table ),
index 54fdffc..458df92 100644 (file)
@@ -43,7 +43,7 @@
                $options = $( '#namespace' ).find( 'option' );
                $options.eq( 0 ).removeProp( 'selected' );
                $options.eq( 1 ).prop( 'selected', true );
-               $( '#namespace' ).change();
+               $( '#namespace' ).trigger( 'change' );
 
                // ... and checkboxes should be enabled again
                assert.strictEqual( $( '#nsinvert' ).prop( 'disabled' ), false );
@@ -52,7 +52,7 @@
                // select first option ( 'all' namespace)...
                $options.eq( 1 ).removeProp( 'selected' );
                $options.eq( 0 ).prop( 'selected', true );
-               $( '#namespace' ).change();
+               $( '#namespace' ).trigger( 'change' );
 
                // ... and checkboxes should now be disabled
                assert.strictEqual( $( '#nsinvert' ).prop( 'disabled' ), true );
index b9a64b5..74fd743 100644 (file)
 
                assert.strictEqual( $tocList.is( ':hidden' ), false, 'The table of contents is now visible' );
 
-               $toggleLink.click();
+               $toggleLink.trigger( 'click' );
                return $tocList.promise().then( function () {
                        assert.strictEqual( $tocList.is( ':hidden' ), true, 'The table of contents is now hidden' );
 
-                       $toggleLink.click();
+                       $toggleLink.trigger( 'click' );
                        return $tocList.promise();
                } );
        } );