summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/Cite
diff options
context:
space:
mode:
authorYaco <franco@reevo.org>2020-06-04 11:01:00 -0300
committerYaco <franco@reevo.org>2020-06-04 11:01:00 -0300
commitfc7369835258467bf97eb64f184b93691f9a9fd5 (patch)
treedaabd60089d2dd76d9f5fb416b005fbe159c799d /www/wiki/extensions/Cite
first commit
Diffstat (limited to 'www/wiki/extensions/Cite')
-rw-r--r--www/wiki/extensions/Cite/AUTHORS.txt77
-rw-r--r--www/wiki/extensions/Cite/ApiQueryReferences.php108
-rw-r--r--www/wiki/extensions/Cite/CODE_OF_CONDUCT.md1
-rw-r--r--www/wiki/extensions/Cite/COPYING.txt339
-rw-r--r--www/wiki/extensions/Cite/Cite.php14
-rw-r--r--www/wiki/extensions/Cite/CiteCSSFileModule.php34
-rw-r--r--www/wiki/extensions/Cite/CiteDataModule.php63
-rw-r--r--www/wiki/extensions/Cite/CiteHooks.php245
-rw-r--r--www/wiki/extensions/Cite/Cite_body.php1433
-rw-r--r--www/wiki/extensions/Cite/Gruntfile.js83
-rw-r--r--www/wiki/extensions/Cite/MIT-LICENSE.txt25
-rw-r--r--www/wiki/extensions/Cite/README.md14
-rw-r--r--www/wiki/extensions/Cite/SpecialCite.php7
-rw-r--r--www/wiki/extensions/Cite/citeParserTests.txt603
-rw-r--r--www/wiki/extensions/Cite/composer.json23
-rw-r--r--www/wiki/extensions/Cite/extension.json116
-rw-r--r--www/wiki/extensions/Cite/i18n/ace.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/ady-cyrl.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/af.json15
-rw-r--r--www/wiki/extensions/Cite/i18n/ais.json31
-rw-r--r--www/wiki/extensions/Cite/i18n/an.json24
-rw-r--r--www/wiki/extensions/Cite/i18n/anp.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/ar.json43
-rw-r--r--www/wiki/extensions/Cite/i18n/arc.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/arq.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/arz.json21
-rw-r--r--www/wiki/extensions/Cite/i18n/as.json32
-rw-r--r--www/wiki/extensions/Cite/i18n/ast.json37
-rw-r--r--www/wiki/extensions/Cite/i18n/atj.json9
-rw-r--r--www/wiki/extensions/Cite/i18n/av.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/awa.json10
-rw-r--r--www/wiki/extensions/Cite/i18n/az.json18
-rw-r--r--www/wiki/extensions/Cite/i18n/azb.json9
-rw-r--r--www/wiki/extensions/Cite/i18n/ba.json38
-rw-r--r--www/wiki/extensions/Cite/i18n/bcc.json21
-rw-r--r--www/wiki/extensions/Cite/i18n/bcl.json26
-rw-r--r--www/wiki/extensions/Cite/i18n/be-tarask.json39
-rw-r--r--www/wiki/extensions/Cite/i18n/be.json13
-rw-r--r--www/wiki/extensions/Cite/i18n/bg.json24
-rw-r--r--www/wiki/extensions/Cite/i18n/bgn.json9
-rw-r--r--www/wiki/extensions/Cite/i18n/bho.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/bn.json37
-rw-r--r--www/wiki/extensions/Cite/i18n/bqi.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/br.json29
-rw-r--r--www/wiki/extensions/Cite/i18n/bs.json33
-rw-r--r--www/wiki/extensions/Cite/i18n/bto.json9
-rw-r--r--www/wiki/extensions/Cite/i18n/ca.json30
-rw-r--r--www/wiki/extensions/Cite/i18n/ce.json33
-rw-r--r--www/wiki/extensions/Cite/i18n/ckb.json16
-rw-r--r--www/wiki/extensions/Cite/i18n/cs.json38
-rw-r--r--www/wiki/extensions/Cite/i18n/csb.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/cu.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/cy.json31
-rw-r--r--www/wiki/extensions/Cite/i18n/da.json35
-rw-r--r--www/wiki/extensions/Cite/i18n/de-ch.json12
-rw-r--r--www/wiki/extensions/Cite/i18n/de-formal.json11
-rw-r--r--www/wiki/extensions/Cite/i18n/de.json43
-rw-r--r--www/wiki/extensions/Cite/i18n/din.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/diq.json50
-rw-r--r--www/wiki/extensions/Cite/i18n/dsb.json26
-rw-r--r--www/wiki/extensions/Cite/i18n/dty.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/el.json35
-rw-r--r--www/wiki/extensions/Cite/i18n/en.json60
-rw-r--r--www/wiki/extensions/Cite/i18n/eo.json34
-rw-r--r--www/wiki/extensions/Cite/i18n/es.json55
-rw-r--r--www/wiki/extensions/Cite/i18n/et.json31
-rw-r--r--www/wiki/extensions/Cite/i18n/eu.json13
-rw-r--r--www/wiki/extensions/Cite/i18n/fa.json44
-rw-r--r--www/wiki/extensions/Cite/i18n/fi.json42
-rw-r--r--www/wiki/extensions/Cite/i18n/fo.json10
-rw-r--r--www/wiki/extensions/Cite/i18n/fr.json55
-rw-r--r--www/wiki/extensions/Cite/i18n/frc.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/frp.json26
-rw-r--r--www/wiki/extensions/Cite/i18n/frr.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/fur.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/fy.json9
-rw-r--r--www/wiki/extensions/Cite/i18n/ga.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/gag.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/gcr.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/gd.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/gl.json40
-rw-r--r--www/wiki/extensions/Cite/i18n/glk.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/gom-deva.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/gom-latn.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/gor.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/grc.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/gsw.json25
-rw-r--r--www/wiki/extensions/Cite/i18n/gu.json29
-rw-r--r--www/wiki/extensions/Cite/i18n/hak.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/he.json40
-rw-r--r--www/wiki/extensions/Cite/i18n/hi.json41
-rw-r--r--www/wiki/extensions/Cite/i18n/hif-latn.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/hr.json35
-rw-r--r--www/wiki/extensions/Cite/i18n/hsb.json26
-rw-r--r--www/wiki/extensions/Cite/i18n/ht.json17
-rw-r--r--www/wiki/extensions/Cite/i18n/hu.json37
-rw-r--r--www/wiki/extensions/Cite/i18n/hy.json10
-rw-r--r--www/wiki/extensions/Cite/i18n/ia.json36
-rw-r--r--www/wiki/extensions/Cite/i18n/id.json42
-rw-r--r--www/wiki/extensions/Cite/i18n/ig.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/ilo.json29
-rw-r--r--www/wiki/extensions/Cite/i18n/inh.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/io.json19
-rw-r--r--www/wiki/extensions/Cite/i18n/is.json28
-rw-r--r--www/wiki/extensions/Cite/i18n/it.json41
-rw-r--r--www/wiki/extensions/Cite/i18n/ja.json44
-rw-r--r--www/wiki/extensions/Cite/i18n/jam.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/jbo.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/jut.json16
-rw-r--r--www/wiki/extensions/Cite/i18n/jv.json47
-rw-r--r--www/wiki/extensions/Cite/i18n/ka.json38
-rw-r--r--www/wiki/extensions/Cite/i18n/kab.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/kbp.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/khw.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/kk-arab.json10
-rw-r--r--www/wiki/extensions/Cite/i18n/kk-cyrl.json26
-rw-r--r--www/wiki/extensions/Cite/i18n/kk-latn.json10
-rw-r--r--www/wiki/extensions/Cite/i18n/km.json9
-rw-r--r--www/wiki/extensions/Cite/i18n/ko.json42
-rw-r--r--www/wiki/extensions/Cite/i18n/krc.json9
-rw-r--r--www/wiki/extensions/Cite/i18n/krl.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/ksh.json39
-rw-r--r--www/wiki/extensions/Cite/i18n/ku-latn.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/kum.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/kw.json10
-rw-r--r--www/wiki/extensions/Cite/i18n/la.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/lb.json32
-rw-r--r--www/wiki/extensions/Cite/i18n/lez.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/lfn.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/li.json33
-rw-r--r--www/wiki/extensions/Cite/i18n/lij.json34
-rw-r--r--www/wiki/extensions/Cite/i18n/lki.json25
-rw-r--r--www/wiki/extensions/Cite/i18n/lrc.json19
-rw-r--r--www/wiki/extensions/Cite/i18n/lt.json39
-rw-r--r--www/wiki/extensions/Cite/i18n/luz.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/lv.json23
-rw-r--r--www/wiki/extensions/Cite/i18n/lzh.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/mai.json9
-rw-r--r--www/wiki/extensions/Cite/i18n/mg.json9
-rw-r--r--www/wiki/extensions/Cite/i18n/min.json33
-rw-r--r--www/wiki/extensions/Cite/i18n/mk.json38
-rw-r--r--www/wiki/extensions/Cite/i18n/ml.json35
-rw-r--r--www/wiki/extensions/Cite/i18n/mn.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/mr.json41
-rw-r--r--www/wiki/extensions/Cite/i18n/ms.json28
-rw-r--r--www/wiki/extensions/Cite/i18n/mt.json22
-rw-r--r--www/wiki/extensions/Cite/i18n/mwl.json11
-rw-r--r--www/wiki/extensions/Cite/i18n/my.json9
-rw-r--r--www/wiki/extensions/Cite/i18n/mzn.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/nan.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/nap.json34
-rw-r--r--www/wiki/extensions/Cite/i18n/nb.json42
-rw-r--r--www/wiki/extensions/Cite/i18n/nds-nl.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/nds.json18
-rw-r--r--www/wiki/extensions/Cite/i18n/ne.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/nl.json36
-rw-r--r--www/wiki/extensions/Cite/i18n/nn.json25
-rw-r--r--www/wiki/extensions/Cite/i18n/nys.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/oc.json26
-rw-r--r--www/wiki/extensions/Cite/i18n/olo.json10
-rw-r--r--www/wiki/extensions/Cite/i18n/om.json9
-rw-r--r--www/wiki/extensions/Cite/i18n/or.json26
-rw-r--r--www/wiki/extensions/Cite/i18n/pa.json9
-rw-r--r--www/wiki/extensions/Cite/i18n/pag.json4
-rw-r--r--www/wiki/extensions/Cite/i18n/pfl.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/pl.json40
-rw-r--r--www/wiki/extensions/Cite/i18n/pms.json27
-rw-r--r--www/wiki/extensions/Cite/i18n/pnb.json24
-rw-r--r--www/wiki/extensions/Cite/i18n/ps.json11
-rw-r--r--www/wiki/extensions/Cite/i18n/pt-br.json50
-rw-r--r--www/wiki/extensions/Cite/i18n/pt.json44
-rw-r--r--www/wiki/extensions/Cite/i18n/qqq.json61
-rw-r--r--www/wiki/extensions/Cite/i18n/qu.json20
-rw-r--r--www/wiki/extensions/Cite/i18n/ro.json40
-rw-r--r--www/wiki/extensions/Cite/i18n/roa-tara.json36
-rw-r--r--www/wiki/extensions/Cite/i18n/ru.json57
-rw-r--r--www/wiki/extensions/Cite/i18n/rue.json24
-rw-r--r--www/wiki/extensions/Cite/i18n/sa.json25
-rw-r--r--www/wiki/extensions/Cite/i18n/sah.json25
-rw-r--r--www/wiki/extensions/Cite/i18n/sat.json9
-rw-r--r--www/wiki/extensions/Cite/i18n/scn.json36
-rw-r--r--www/wiki/extensions/Cite/i18n/sco.json11
-rw-r--r--www/wiki/extensions/Cite/i18n/sd.json11
-rw-r--r--www/wiki/extensions/Cite/i18n/sgs.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/sh.json9
-rw-r--r--www/wiki/extensions/Cite/i18n/shn.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/si.json29
-rw-r--r--www/wiki/extensions/Cite/i18n/sk.json33
-rw-r--r--www/wiki/extensions/Cite/i18n/skr-arab.json11
-rw-r--r--www/wiki/extensions/Cite/i18n/sl.json38
-rw-r--r--www/wiki/extensions/Cite/i18n/sq.json25
-rw-r--r--www/wiki/extensions/Cite/i18n/sr-ec.json49
-rw-r--r--www/wiki/extensions/Cite/i18n/sr-el.json29
-rw-r--r--www/wiki/extensions/Cite/i18n/stq.json23
-rw-r--r--www/wiki/extensions/Cite/i18n/sty.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/su.json9
-rw-r--r--www/wiki/extensions/Cite/i18n/sv.json46
-rw-r--r--www/wiki/extensions/Cite/i18n/szl.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/ta.json12
-rw-r--r--www/wiki/extensions/Cite/i18n/tay.json11
-rw-r--r--www/wiki/extensions/Cite/i18n/tcy.json10
-rw-r--r--www/wiki/extensions/Cite/i18n/te.json20
-rw-r--r--www/wiki/extensions/Cite/i18n/tg-cyrl.json18
-rw-r--r--www/wiki/extensions/Cite/i18n/tg-latn.json16
-rw-r--r--www/wiki/extensions/Cite/i18n/th.json28
-rw-r--r--www/wiki/extensions/Cite/i18n/tk.json21
-rw-r--r--www/wiki/extensions/Cite/i18n/tl.json33
-rw-r--r--www/wiki/extensions/Cite/i18n/tly.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/tr.json41
-rw-r--r--www/wiki/extensions/Cite/i18n/tt-cyrl.json11
-rw-r--r--www/wiki/extensions/Cite/i18n/ttt.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/tzm.json10
-rw-r--r--www/wiki/extensions/Cite/i18n/udm.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/ug-arab.json10
-rw-r--r--www/wiki/extensions/Cite/i18n/uk.json53
-rw-r--r--www/wiki/extensions/Cite/i18n/ur.json24
-rw-r--r--www/wiki/extensions/Cite/i18n/vec.json24
-rw-r--r--www/wiki/extensions/Cite/i18n/vep.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/vi.json34
-rw-r--r--www/wiki/extensions/Cite/i18n/vo.json14
-rw-r--r--www/wiki/extensions/Cite/i18n/vro.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/war.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/wo.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/wuu.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/xmf.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/yi.json29
-rw-r--r--www/wiki/extensions/Cite/i18n/yo.json9
-rw-r--r--www/wiki/extensions/Cite/i18n/yue.json19
-rw-r--r--www/wiki/extensions/Cite/i18n/zgh.json8
-rw-r--r--www/wiki/extensions/Cite/i18n/zh-hans.json45
-rw-r--r--www/wiki/extensions/Cite/i18n/zh-hant.json45
-rw-r--r--www/wiki/extensions/Cite/includes/ApiQueryReferences.php117
-rw-r--r--www/wiki/extensions/Cite/includes/Cite.php1475
-rw-r--r--www/wiki/extensions/Cite/includes/CiteCSSFileModule.php34
-rw-r--r--www/wiki/extensions/Cite/includes/CiteDataModule.php68
-rw-r--r--www/wiki/extensions/Cite/includes/CiteHooks.php344
-rw-r--r--www/wiki/extensions/Cite/modules/ext.cite.a11y.css18
-rw-r--r--www/wiki/extensions/Cite/modules/ext.cite.a11y.js38
-rw-r--r--www/wiki/extensions/Cite/modules/ext.cite.print.css3
-rw-r--r--www/wiki/extensions/Cite/modules/ext.cite.style.css91
-rw-r--r--www/wiki/extensions/Cite/modules/ext.cite.style.fa.css19
-rw-r--r--www/wiki/extensions/Cite/modules/ext.cite.styles.css44
-rw-r--r--www/wiki/extensions/Cite/modules/ext.cite.styles.minerva.less7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ab.json8
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ace.json16
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ady-cyrl.json12
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/aeb-latn.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/aeb.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/af.json37
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ais.json37
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/am.json10
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ang.json8
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/anp.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ar.json69
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/arc.json9
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/arq.json14
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/arz.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/as.json39
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ase.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ast.json55
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/av.json8
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/awa.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ay.json24
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/az.json25
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/azb.json10
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ba.json40
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/bar.json8
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/bcc.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/bcl.json20
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/be-tarask.json31
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/be.json24
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/bg.json41
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/bgn.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/bho.json10
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/bn.json54
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/bo.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/br.json24
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/brh.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/brx.json9
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/bs.json41
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ca.json53
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/cdo.json18
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ce.json29
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ckb.json29
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/co.json17
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/crh-cyrl.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/crh-latn.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/cs.json68
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/cu.json13
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/cv.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/cy.json29
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/da.json35
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/de-ch.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/de-formal.json8
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/de.json64
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/din.json8
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/diq.json37
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/dsb.json24
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/dty.json17
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ee.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/egl.json24
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/el.json51
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/eml.json26
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/en-gb.json11
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/en.json64
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/eo.json33
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/es.json75
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/et.json54
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/eu.json52
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/fa.json72
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/fi.json56
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/fo.json23
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/fr.json97
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/frc.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/frp.json8
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/frr.json25
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/fur.json24
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/fy.json12
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ga.json12
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/gd.json22
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/gl.json58
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/glk.json14
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/gom-deva.json11
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/gom-latn.json8
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/gom.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/gsw.json15
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/gu.json37
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/he.json66
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/hi.json50
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/hil.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/hr.json42
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/hrx.json9
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/hsb.json25
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ht.json8
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/hu-formal.json18
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/hu.json53
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/hy.json39
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ia.json46
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/id.json66
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ie.json19
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ilo.json32
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/io.json35
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/is.json38
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/it.json66
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ja.json65
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/jbo.json9
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/jut.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/jv.json43
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ka.json43
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/kab.json14
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/khw.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/kk-cyrl.json33
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/km.json32
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/kn.json30
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ko.json71
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/krc.json33
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/kri.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/krl.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ksh.json25
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ku-latn.json32
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/kw.json16
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ky.json18
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/la.json22
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/lb.json49
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/lez.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/lg.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/li.json9
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/lki.json31
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/lmo.json21
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ln.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/lrc.json9
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/lt.json50
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/luz.json11
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/lv.json52
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/lzh.json12
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/mai.json8
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/mg.json30
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/mhr.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/min.json14
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/mk.json54
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ml.json38
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/mn.json11
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/mr.json60
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ms.json53
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/mt.json15
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/mwl.json9
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/my.json9
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/myv.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/mzn.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/nah.json9
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/nan.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/nap.json38
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/nb.json63
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/nds-nl.json20
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/nds.json15
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ne.json21
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/nl-informal.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/nl.json70
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/nn.json30
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/oc.json33
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/olo.json33
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/om.json35
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/or.json18
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/os.json11
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/pa.json37
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/pam.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/pfl.json21
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/pl.json61
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/pms.json23
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/pnb.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/prs.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ps.json30
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/pt-br.json77
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/pt.json70
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/qqq.json76
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/qu.json21
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/rm.json15
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ro.json61
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/roa-tara.json48
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ru.json80
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/rue.json8
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/sa.json20
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/sah.json32
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/sc.json12
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/scn.json27
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/sco.json33
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/sd.json25
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/sdc.json8
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/sgs.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/sh.json35
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/shn.json9
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/shy-latn.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/si.json19
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/sk.json51
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/skr-arab.json21
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/sl.json40
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/so.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/sq.json47
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/sr-ec.json58
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/sr-el.json51
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ss.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/su.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/sv.json66
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/sw.json21
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/szl.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ta.json22
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/tay.json23
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/tcy.json10
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/te.json33
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/tg-cyrl.json13
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/th.json51
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/tl.json31
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/tr.json51
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/tt-cyrl.json39
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/tt.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/tyv.json8
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/tzm.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/udm.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ug-arab.json11
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/uk.json67
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/ur.json37
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/uz.json19
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/vec.json27
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/vi.json52
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/vo.json14
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/vro.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/wa.json8
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/war.json15
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/wo.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/wuu.json9
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/xmf.json29
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/yi.json44
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/yo.json7
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/yue.json35
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/zh-hans.json74
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/i18n/zh-hant.json71
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-book.svg4
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-journal-ltr.svg6
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-journal-rtl.svg6
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-news-ltr.svg9
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-news-rtl.svg9
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-web.svg5
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/icons/reference-existing-ltr.svg5
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/icons/reference-existing-rtl.svg5
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/icons/reference-ltr.svg4
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/icons/reference-rtl.svg4
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/icons/references-ltr.svg4
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/icons/references-rtl.svg4
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/tests/ve.dm.Converter.test.js36
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/tests/ve.dm.InternalList.test.js237
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/tests/ve.dm.Transaction.test.js97
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/tests/ve.dm.citeExample.js754
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/tests/ve.ui.DiffElement.test.js67
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/tests/ve.ui.MWWikitextStringTransferHandler.test.js95
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ce.MWReferenceNode.css24
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ce.MWReferenceNode.js130
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ce.MWReferencesListNode.css15
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ce.MWReferencesListNode.js321
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.dm.MWReferenceModel.js283
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.dm.MWReferenceNode.js461
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.dm.MWReferencesListNode.js243
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWCitationAction.js58
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWCitationContextItem.js49
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWCitationDialog.js241
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWCitationDialogTool.js64
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReference.init.js165
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceContextItem.css19
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceContextItem.js113
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceDialog.js434
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceDialogTool.js114
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceGroupInputWidget.css10
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceGroupInputWidget.js60
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceIcons.css116
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceResultWidget.css28
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceResultWidget.js31
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceSearchWidget.css18
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceSearchWidget.js232
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferencesListCommand.js61
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferencesListContextItem.js75
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferencesListDialog.js178
-rw-r--r--www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWUseExistingReferenceCommand.js53
-rw-r--r--www/wiki/extensions/Cite/phpcs.xml17
-rw-r--r--www/wiki/extensions/Cite/tests/parser/citeParserTests.txt1464
-rw-r--r--www/wiki/extensions/Cite/tests/phan/config.php7
524 files changed, 22869 insertions, 0 deletions
diff --git a/www/wiki/extensions/Cite/AUTHORS.txt b/www/wiki/extensions/Cite/AUTHORS.txt
new file mode 100644
index 00000000..73c7cf31
--- /dev/null
+++ b/www/wiki/extensions/Cite/AUTHORS.txt
@@ -0,0 +1,77 @@
+Principal Authors (major contributors, alphabetically)
+
+Ævar Arnfjörð Bjarmason
+Andrew Garrett
+Brion Vibber
+Ed Sanders
+Marius Hoch
+Steve Sanbeg
+Trevor Parscal
+Yair rand
+
+Patch Contributors (minor contributors, alphabetically)
+
+Aaron Schulz
+Alex Monk
+Alex Z.
+Alexandre Emsenhuber
+Amir E. Aharoni
+Antoine Musso
+Aryeh Gregor
+Bartosz Dziewoński
+Brad Jorsch
+Chad Horohoe
+Daniel Cannon
+Danny B.
+David Chan
+Derk-Jan Hartman
+Erick Guan
+Fomafix
+Gabriel Wicke
+Happy-melon
+Ivan Lanin
+Jackmcbarn
+James D. Forrester
+Jan Paul Posma
+Jens Frank
+Jon Robson
+Kaity Hammerstein
+Kevin Brown
+Kevin Israel
+Kunal Mehta
+Marc Ordinas i Llopis
+Mark A. Hershberger
+Max Semenik
+Meno25
+Moriel Schottlender
+Nemo bis
+Nick Jenkins
+Nik Everett
+Niklas Laxström
+Ori.livneh
+OverlordQ
+Peter Gehres
+Philip Tzou
+Platonides
+Purodha B Blissenbach
+Raimond Spekking
+Remember the dot
+Roan Kattouw
+Rob Church
+Rob Moen
+Robert Rohde
+Robin Pepermans
+Ryan Kaldari
+Sam Reed
+Shinjiman
+Siebrand Mazeland
+Thalia Chan
+Thomas Dalton
+ThomasV
+Tim Starling
+Tim Weyer
+Timo Tijhof
+Tobias
+eranroz
+kghbln
+mrbluesky
diff --git a/www/wiki/extensions/Cite/ApiQueryReferences.php b/www/wiki/extensions/Cite/ApiQueryReferences.php
new file mode 100644
index 00000000..96ad7f40
--- /dev/null
+++ b/www/wiki/extensions/Cite/ApiQueryReferences.php
@@ -0,0 +1,108 @@
+<?php
+/**
+ * Expose reference information for a page via prop=references API.
+ *
+ * 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
+ * @see https://www.mediawiki.org/wiki/Extension:Cite#API
+ */
+
+class ApiQueryReferences extends ApiQueryBase {
+
+ public function __construct( $query, $moduleName ) {
+ parent::__construct( $query, $moduleName, 'rf' );
+ }
+
+ public function getAllowedParams() {
+ return [
+ 'continue' => [
+ ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+ ],
+ ];
+ }
+
+ public function execute() {
+ $config = ConfigFactory::getDefaultInstance()->makeConfig( 'cite' );
+ if ( !$config->get( 'CiteStoreReferencesData' ) ) {
+ $this->dieUsage( 'Cite extension reference storage is not enabled', 'citestoragedisabled' );
+ }
+ $params = $this->extractRequestParams();
+ $titles = $this->getPageSet()->getGoodTitles();
+ ksort( $titles );
+ if ( !is_null( $params['continue'] ) ) {
+ $startId = (int)$params['continue'];
+ // check it is definitely an int
+ $this->dieContinueUsageIf( strval( $startId ) !== $params['continue'] );
+ } else {
+ $startId = false;
+ }
+
+ foreach ( $titles as $pageId => $title ) {
+ // Skip until you have the correct starting point
+ if ( $startId !== false && $startId !== $pageId ) {
+ continue;
+ } else {
+ $startId = false;
+ }
+ $storedRefs = Cite::getStoredReferences( $title );
+ $allReferences = array();
+ // some pages may not have references stored
+ if ( $storedRefs !== false ) {
+ // a page can have multiple <references> tags but they all have unique keys
+ foreach ( $storedRefs['refs'] as $index => $grouping ) {
+ foreach ( $grouping as $group => $members ) {
+ foreach ( $members as $name => $ref ) {
+ $ref['name'] = $name;
+ $key = $ref['key'];
+ if ( is_string( $name ) ) {
+ $id = Cite::getReferencesKey( $name . '-' . $key );
+ } else {
+ $id = Cite::getReferencesKey( $key );
+ }
+ $ref['group'] = $group;
+ $ref['reflist'] = $index;
+ $allReferences[$id] = $ref;
+ }
+ }
+ }
+ }
+ // set some metadata since its an assoc data structure
+ ApiResult::setArrayType( $allReferences, 'kvp', 'id' );
+ // Ship a data representation of the combined references.
+ $fit = $this->addPageSubItems( $pageId, $allReferences );
+ if ( !$fit ) {
+ $this->setContinueEnumParameter( 'continue', $pageId );
+ break;
+ }
+ }
+ }
+
+ public function getCacheMode( $params ) {
+ return 'public';
+ }
+
+ /**
+ * @see ApiBase::getExamplesMessages()
+ */
+ protected function getExamplesMessages() {
+ return array(
+ 'action=query&prop=references&titles=Albert%20Einstein' =>
+ 'apihelp-query+references-example-1',
+ );
+ }
+
+}
diff --git a/www/wiki/extensions/Cite/CODE_OF_CONDUCT.md b/www/wiki/extensions/Cite/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..d8e5d087
--- /dev/null
+++ b/www/wiki/extensions/Cite/CODE_OF_CONDUCT.md
@@ -0,0 +1 @@
+The development of this software is covered by a [Code of Conduct](https://www.mediawiki.org/wiki/Code_of_Conduct).
diff --git a/www/wiki/extensions/Cite/COPYING.txt b/www/wiki/extensions/Cite/COPYING.txt
new file mode 100644
index 00000000..d159169d
--- /dev/null
+++ b/www/wiki/extensions/Cite/COPYING.txt
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ 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.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/www/wiki/extensions/Cite/Cite.php b/www/wiki/extensions/Cite/Cite.php
new file mode 100644
index 00000000..bbf26e46
--- /dev/null
+++ b/www/wiki/extensions/Cite/Cite.php
@@ -0,0 +1,14 @@
+<?php
+
+if ( function_exists( 'wfLoadExtension' ) ) {
+ wfLoadExtension( 'Cite' );
+ // Keep i18n globals so mergeMessageFileList.php doesn't break
+ $wgMessagesDirs['Cite'] = __DIR__ . '/i18n';
+ /* wfWarn(
+ 'Deprecated PHP entry point used for Cite extension. Please use wfLoadExtension instead, ' .
+ 'see https://www.mediawiki.org/wiki/Extension_registration for more details.'
+ ); */
+ return true;
+} else {
+ die( 'This version of the Cite extension requires MediaWiki 1.25+' );
+}
diff --git a/www/wiki/extensions/Cite/CiteCSSFileModule.php b/www/wiki/extensions/Cite/CiteCSSFileModule.php
new file mode 100644
index 00000000..0819a399
--- /dev/null
+++ b/www/wiki/extensions/Cite/CiteCSSFileModule.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * ResourceLoaderFileModule for adding the content language Cite CSS
+ *
+ * @file
+ * @ingroup Extensions
+ * @copyright 2011-2016 Cite VisualEditor Team and others; see AUTHORS.txt
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ */
+
+class CiteCSSFileModule extends ResourceLoaderFileModule {
+ public function __construct(
+ $options = array(),
+ $localBasePath = null,
+ $remoteBasePath = null
+ ) {
+ global $wgContLang;
+
+ parent::__construct( $options, $localBasePath, $remoteBasePath );
+
+ // Get the content language code, and all the fallbacks. The first that
+ // has a ext.cite.style.<lang code>.css file present will be used.
+ $langCodes = array_merge( array( $wgContLang->getCode() ),
+ $wgContLang->getFallbackLanguages() );
+ foreach ( $langCodes as $lang ) {
+ $langStyleFile = 'ext.cite.style.' . $lang . '.css';
+ $localPath = $this->getLocalPath( $langStyleFile );
+ if ( file_exists( $localPath ) ) {
+ $this->styles[] = $langStyleFile;
+ break;
+ }
+ }
+ }
+}
diff --git a/www/wiki/extensions/Cite/CiteDataModule.php b/www/wiki/extensions/Cite/CiteDataModule.php
new file mode 100644
index 00000000..2aa0ce4e
--- /dev/null
+++ b/www/wiki/extensions/Cite/CiteDataModule.php
@@ -0,0 +1,63 @@
+<?php
+/**
+ * Resource loader module providing extra data from the server to Cite.
+ *
+ * Temporary hack for T93800
+ *
+ * @file
+ * @ingroup Extensions
+ * @copyright 2011-2016 Cite VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see MIT-LICENSE.txt
+ */
+
+class CiteDataModule extends ResourceLoaderModule {
+
+ /* Protected Members */
+
+ protected $origin = self::ORIGIN_USER_SITEWIDE;
+ protected $targets = array( 'desktop', 'mobile' );
+
+ /* Methods */
+
+ public function getScript( ResourceLoaderContext $context ) {
+ $citationDefinition = json_decode(
+ $context->msg( 'visualeditor-cite-tool-definition.json' )
+ ->inContentLanguage()
+ ->plain()
+ );
+
+ $citationTools = array();
+ if ( is_array( $citationDefinition ) ) {
+ foreach ( $citationDefinition as $tool ) {
+ if ( !isset( $tool->title ) ) {
+ $tool->title = $context->msg( 'visualeditor-cite-tool-name-' . $tool->name )
+ ->text();
+ }
+ $citationTools[] = $tool;
+ }
+ }
+
+ return
+ 've.init.platform.addMessages(' . FormatJson::encode(
+ array(
+ 'visualeditor-cite-tool-definition.json' => json_encode( $citationTools )
+ ),
+ ResourceLoader::inDebugMode()
+ ) . ');';
+ }
+
+ public function getDependencies( ResourceLoaderContext $context = null ) {
+ return array(
+ 'ext.visualEditor.base',
+ 'ext.visualEditor.mediawiki',
+ );
+ }
+
+ public function getDefinitionSummary( ResourceLoaderContext $context ) {
+ $summary = parent::getDefinitionSummary( $context );
+ $summary[] = array(
+ 'script' => $this->getScript( $context ),
+ );
+ return $summary;
+ }
+}
diff --git a/www/wiki/extensions/Cite/CiteHooks.php b/www/wiki/extensions/Cite/CiteHooks.php
new file mode 100644
index 00000000..91f0eb33
--- /dev/null
+++ b/www/wiki/extensions/Cite/CiteHooks.php
@@ -0,0 +1,245 @@
+<?php
+/**
+ * Cite extension hooks
+ *
+ * @file
+ * @ingroup Extensions
+ * @copyright 2011-2016 Cite VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see MIT-LICENSE.txt
+ */
+
+class CiteHooks {
+ /**
+ * Convert the content model of a message that is actually JSON to JSON. This
+ * only affects validation and UI when saving and editing, not loading the
+ * content.
+ *
+ * @param Title $title
+ * @param string $model
+ * @return bool
+ */
+ public static function onContentHandlerDefaultModelFor( Title $title, &$model ) {
+ if (
+ $title->inNamespace( NS_MEDIAWIKI ) &&
+ $title->getText() == 'Visualeditor-cite-tool-definition.json'
+ ) {
+ $model = CONTENT_MODEL_JSON;
+ }
+
+ return true;
+ }
+
+ /**
+ * Conditionally register the unit testing module for the ext.cite.visualEditor module
+ * only if that module is loaded
+ *
+ * @param array $testModules The array of registered test modules
+ * @param ResourceLoader $resourceLoader The reference to the resource loader
+ * @return true
+ */
+ public static function onResourceLoaderTestModules(
+ array &$testModules,
+ ResourceLoader &$resourceLoader
+ ) {
+ $resourceModules = $resourceLoader->getConfig()->get( 'ResourceModules' );
+
+ if (
+ isset( $resourceModules[ 'ext.visualEditor.mediawiki' ] ) ||
+ $resourceLoader->isModuleRegistered( 'ext.visualEditor.mediawiki' )
+ ) {
+ $testModules['qunit']['ext.cite.visualEditor.test'] = array(
+ 'scripts' => array(
+ 'modules/ve-cite/tests/ve.dm.citeExample.js',
+ 'modules/ve-cite/tests/ve.dm.Converter.test.js',
+ 'modules/ve-cite/tests/ve.dm.InternalList.test.js',
+ 'modules/ve-cite/tests/ve.dm.Transaction.test.js',
+ ),
+ 'dependencies' => array(
+ 'ext.cite.visualEditor',
+ 'ext.visualEditor.test'
+ ),
+ 'localBasePath' => __DIR__,
+ 'remoteExtPath' => 'Cite',
+ );
+ }
+
+ return true;
+ }
+
+ /**
+ * Conditionally register resource loader modules that depends on the
+ * VisualEditor MediaWiki extension.
+ *
+ * @param $resourceLoader
+ * @return true
+ */
+ public static function onResourceLoaderRegisterModules( &$resourceLoader ) {
+
+ if ( ! class_exists( 'VisualEditorHooks' ) ) {
+ return true;
+ }
+
+ $dir = __DIR__ . DIRECTORY_SEPARATOR;
+
+ $resourceLoader->register( "ext.cite.visualEditor.core", [
+ 'localBasePath' => $dir . 'modules',
+ 'remoteExtPath' => 'Cite/modules',
+ "scripts" => [
+ "ve-cite/ve.dm.MWReferenceModel.js",
+ "ve-cite/ve.dm.MWReferencesListNode.js",
+ "ve-cite/ve.dm.MWReferenceNode.js",
+ "ve-cite/ve.ce.MWReferencesListNode.js",
+ "ve-cite/ve.ce.MWReferenceNode.js",
+ "ve-cite/ve.ui.MWReferencesListCommand.js"
+ ],
+ "styles" => [
+ "ve-cite/ve.ce.MWReferencesListNode.css",
+ "ve-cite/ve.ce.MWReferenceNode.css"
+ ],
+ "dependencies" => [
+ "ext.visualEditor.mwcore"
+ ],
+ "messages" => [
+ "cite-ve-referenceslist-isempty",
+ "cite-ve-referenceslist-isempty-default",
+ "cite-ve-referenceslist-missingref"
+ ],
+ "targets" => [
+ "desktop",
+ "mobile"
+ ]
+ ] );
+
+ $resourceLoader->register( "ext.cite.visualEditor.data",
+ [ "class" => "CiteDataModule" ] );
+
+ $resourceLoader->register( "ext.cite.visualEditor", [
+ 'localBasePath' => $dir . 'modules',
+ 'remoteExtPath' => 'Cite/modules',
+ "scripts" => [
+ "ve-cite/ve.ui.MWReferenceGroupInputWidget.js",
+ "ve-cite/ve.ui.MWReferenceSearchWidget.js",
+ "ve-cite/ve.ui.MWReferenceResultWidget.js",
+ "ve-cite/ve.ui.MWUseExistingReferenceCommand.js",
+ "ve-cite/ve.ui.MWCitationDialog.js",
+ "ve-cite/ve.ui.MWReferencesListDialog.js",
+ "ve-cite/ve.ui.MWReferenceDialog.js",
+ "ve-cite/ve.ui.MWReferenceDialogTool.js",
+ "ve-cite/ve.ui.MWCitationDialogTool.js",
+ "ve-cite/ve.ui.MWReferenceContextItem.js",
+ "ve-cite/ve.ui.MWReferencesListContextItem.js",
+ "ve-cite/ve.ui.MWCitationContextItem.js",
+ "ve-cite/ve.ui.MWCitationAction.js",
+ "ve-cite/ve.ui.MWReference.init.js"
+ ],
+ "styles" => [
+ "ve-cite/ve.ui.MWReferenceContextItem.css",
+ "ve-cite/ve.ui.MWReferenceGroupInputWidget.css",
+ "ve-cite/ve.ui.MWReferenceIcons.css",
+ "ve-cite/ve.ui.MWReferenceResultWidget.css",
+ "ve-cite/ve.ui.MWReferenceSearchWidget.css"
+ ],
+ "dependencies" => [
+ "ext.cite.visualEditor.core",
+ "ext.cite.visualEditor.data",
+ "ext.cite.style",
+ "ext.visualEditor.mwtransclusion",
+ "ext.visualEditor.mediawiki"
+ ],
+ "messages" => [
+ "cite-ve-dialog-reference-editing-reused",
+ "cite-ve-dialog-reference-options-group-label",
+ "cite-ve-dialog-reference-options-group-placeholder",
+ "cite-ve-dialog-reference-options-name-label",
+ "cite-ve-dialog-reference-options-section",
+ "cite-ve-dialog-reference-title",
+ "cite-ve-dialog-reference-useexisting-full-label",
+ "cite-ve-dialog-reference-useexisting-label",
+ "cite-ve-dialog-reference-useexisting-tool",
+ "cite-ve-dialog-referenceslist-contextitem-description-general",
+ "cite-ve-dialog-referenceslist-contextitem-description-named",
+ "cite-ve-dialog-referenceslist-title",
+ "cite-ve-dialogbutton-citation-educationpopup-title",
+ "cite-ve-dialogbutton-citation-educationpopup-text",
+ "cite-ve-dialogbutton-reference-full-label",
+ "cite-ve-dialogbutton-reference-tooltip",
+ "cite-ve-dialogbutton-reference-title",
+ "cite-ve-dialogbutton-referenceslist-tooltip",
+ "cite-ve-reference-input-placeholder",
+ "cite-ve-toolbar-group-label"
+ ],
+ "targets" => [
+ "desktop",
+ "mobile"
+ ]
+ ] );
+ return true;
+ }
+
+ /**
+ * Callback for LinksUpdate hook
+ * Post-output processing of references property, for proper db storage
+ * Deferred to avoid performance overhead when outputting the page
+ *
+ * @param LinksUpdate $linksUpdate
+ */
+ public static function onLinksUpdate( LinksUpdate &$linksUpdate ) {
+ global $wgCiteStoreReferencesData, $wgCiteCacheRawReferencesOnParse;
+ if ( !$wgCiteStoreReferencesData ) {
+ return;
+ }
+ $refData = $linksUpdate->getParserOutput()->getExtensionData( Cite::EXT_DATA_KEY );
+ if ( $refData === null ) {
+ return;
+ }
+ if ( $wgCiteCacheRawReferencesOnParse ) {
+ // caching
+ $cache = ObjectCache::getMainWANInstance();
+ $articleID = $linksUpdate->getTitle()->getArticleID();
+ $key = $cache->makeKey( Cite::EXT_DATA_KEY, $articleID );
+ $cache->set( $key, $refData, Cite::CACHE_DURATION_ONPARSE );
+ }
+ // JSON encode
+ $ppValue = FormatJson::encode( $refData, false, FormatJson::ALL_OK );
+ // GZIP encode references data at maximum compression
+ $ppValue = gzencode( $ppValue, 9 );
+ // split the string in smaller parts that can fit into a db blob
+ $ppValues = str_split( $ppValue, Cite::MAX_STORAGE_LENGTH );
+ foreach ( $ppValues as $num => $ppValue ) {
+ $key = 'references-' . intval( $num + 1 );
+ $linksUpdate->mProperties[$key] = $ppValue;
+ }
+ $linksUpdate->getParserOutput()->setExtensionData( Cite::EXT_DATA_KEY, null );
+ }
+
+ /**
+ * Callback for LinksUpdateComplete hook
+ * If $wgCiteCacheRawReferencesOnParse is set to false, purges the cache
+ * when references are modified
+ *
+ * @param LinksUpdate $linksUpdate
+ */
+ public static function onLinksUpdateComplete( LinksUpdate &$linksUpdate ) {
+ global $wgCiteStoreReferencesData, $wgCiteCacheRawReferencesOnParse;
+ if ( !$wgCiteStoreReferencesData || $wgCiteCacheRawReferencesOnParse ) {
+ return;
+ }
+ // if we can, avoid clearing the cache when references were not changed
+ if ( method_exists( $linksUpdate, 'getAddedProperties' )
+ && method_exists( $linksUpdate, 'getRemovedProperties' )
+ ) {
+ $addedProps = $linksUpdate->getAddedProperties();
+ $removedProps = $linksUpdate->getRemovedProperties();
+ if ( !isset( $addedProps['references-1'] )
+ && !isset( $removedProps['references-1'] )
+ ) {
+ return;
+ }
+ }
+ $cache = ObjectCache::getMainWANInstance();
+ $articleID = $linksUpdate->getTitle()->getArticleID();
+ $key = $cache->makeKey( Cite::EXT_DATA_KEY, $articleID );
+ // delete with reduced hold off period (LinksUpdate uses a master connection)
+ $cache->delete( $key, WANObjectCache::MAX_COMMIT_DELAY );
+ }
+}
diff --git a/www/wiki/extensions/Cite/Cite_body.php b/www/wiki/extensions/Cite/Cite_body.php
new file mode 100644
index 00000000..a36cae20
--- /dev/null
+++ b/www/wiki/extensions/Cite/Cite_body.php
@@ -0,0 +1,1433 @@
+<?php
+
+// @codingStandardsIgnoreStart
+/**#@+
+ * A parser extension that adds two tags, <ref> and <references> for adding
+ * citations to pages
+ *
+ * @ingroup Extensions
+ *
+ * @link http://www.mediawiki.org/wiki/Extension:Cite/Cite.php Documentation
+ * @link http://www.w3.org/TR/html4/struct/text.html#edef-CITE <cite> definition in HTML
+ * @link http://www.w3.org/TR/2005/WD-xhtml2-20050527/mod-text.html#edef_text_cite <cite> definition in XHTML 2.0
+ *
+ * @bug 4579
+ *
+ * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
+ * @copyright Copyright © 2005, Ævar Arnfjörð Bjarmason
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ */
+// @codingStandardsIgnoreEnd
+
+/**
+ * WARNING: MediaWiki core hardcodes this class name to check if the
+ * Cite extension is installed. See T89151.
+ */
+class Cite {
+
+ /**
+ * @todo document
+ */
+ const DEFAULT_GROUP = '';
+
+ /**
+ * Maximum storage capacity for pp_value field of page_props table
+ * @todo Find a way to retrieve this information from the DBAL
+ */
+ const MAX_STORAGE_LENGTH = 65535; // Size of MySQL 'blob' field
+
+ /**
+ * Key used for storage in parser output's ExtensionData and ObjectCache
+ */
+ const EXT_DATA_KEY = 'Cite:References';
+
+ /**
+ * Version number in case we change the data structure in the future
+ */
+ const DATA_VERSION_NUMBER = 1;
+
+ /**
+ * Cache duration set when parsing a page with references
+ */
+ const CACHE_DURATION_ONPARSE = 3600; // 1 hour
+
+ /**
+ * Cache duration set when fetching references from db
+ */
+ const CACHE_DURATION_ONFETCH = 18000; // 5 hours
+
+ /**#@+
+ * @access private
+ */
+
+ /**
+ * Datastructure representing <ref> input, in the format of:
+ * <code>
+ * array(
+ * 'user supplied' => array(
+ * 'text' => 'user supplied reference & key',
+ * 'count' => 1, // occurs twice
+ * 'number' => 1, // The first reference, we want
+ * // all occourances of it to
+ * // use the same number
+ * ),
+ * 0 => 'Anonymous reference',
+ * 1 => 'Another anonymous reference',
+ * 'some key' => array(
+ * 'text' => 'this one occurs once'
+ * 'count' => 0,
+ * 'number' => 4
+ * ),
+ * 3 => 'more stuff'
+ * );
+ * </code>
+ *
+ * This works because:
+ * * PHP's datastructures are guaranteed to be returned in the
+ * order that things are inserted into them (unless you mess
+ * with that)
+ * * User supplied keys can't be integers, therefore avoiding
+ * conflict with anonymous keys
+ *
+ * @var array
+ **/
+ public $mRefs = array();
+
+ /**
+ * Count for user displayed output (ref[1], ref[2], ...)
+ *
+ * @var int
+ */
+ public $mOutCnt = 0;
+ public $mGroupCnt = array();
+
+ /**
+ * Counter to track the total number of (useful) calls to either the
+ * ref or references tag hook
+ */
+ public $mCallCnt = 0;
+
+ /**
+ * The backlinks, in order, to pass as $3 to
+ * 'cite_references_link_many_format', defined in
+ * 'cite_references_link_many_format_backlink_labels
+ *
+ * @var array
+ */
+ public $mBacklinkLabels;
+
+ /**
+ * The links to use per group, in order.
+ *
+ * @var array
+ */
+ public $mLinkLabels = array();
+
+ /**
+ * @var Parser
+ */
+ public $mParser;
+
+ /**
+ * True when the ParserAfterParse hook has been called.
+ * Used to avoid doing anything in ParserBeforeTidy.
+ *
+ * @var boolean
+ */
+ public $mHaveAfterParse = false;
+
+ /**
+ * True when a <ref> tag is being processed.
+ * Used to avoid infinite recursion
+ *
+ * @var boolean
+ */
+ public $mInCite = false;
+
+ /**
+ * True when a <references> tag is being processed.
+ * Used to detect the use of <references> to define refs
+ *
+ * @var boolean
+ */
+ public $mInReferences = false;
+
+ /**
+ * Error stack used when defining refs in <references>
+ *
+ * @var array
+ */
+ public $mReferencesErrors = array();
+
+ /**
+ * Group used when in <references> block
+ *
+ * @var string
+ */
+ public $mReferencesGroup = '';
+
+ /**
+ * <ref> call stack
+ * Used to cleanup out of sequence ref calls created by #tag
+ * See description of function rollbackRef.
+ *
+ * @var array
+ */
+ public $mRefCallStack = array();
+
+ /**
+ * @var bool
+ */
+ private $mBumpRefData = false;
+
+ /**
+ * Did we install us into $wgHooks yet?
+ * @var Boolean
+ */
+ static protected $hooksInstalled = false;
+
+ /**#@+ @access private */
+
+ /**
+ * Callback function for <ref>
+ *
+ * @param string|null $str Raw content of the <ref> tag.
+ * @param string[] $argv Arguments
+ * @param Parser $parser
+ * @param PPFrame $frame
+ *
+ * @return string
+ */
+ function ref( $str, array $argv, Parser $parser, PPFrame $frame ) {
+ if ( $this->mInCite ) {
+ return htmlspecialchars( "<ref>$str</ref>" );
+ }
+
+ $this->mCallCnt++;
+ $this->mInCite = true;
+
+ $ret = $this->guardedRef( $str, $argv, $parser );
+
+ $this->mInCite = false;
+
+ $parserOutput = $parser->getOutput();
+ $parserOutput->addModules( 'ext.cite.a11y' );
+ $parserOutput->addModuleStyles( 'ext.cite.styles' );
+
+ if ( is_callable( array( $frame, 'setVolatile' ) ) ) {
+ $frame->setVolatile();
+ }
+
+ // new <ref> tag, we may need to bump the ref data counter
+ // to avoid overwriting a previous group
+ $this->mBumpRefData = true;
+
+ return $ret;
+ }
+
+ /**
+ * @param string|null $str Raw content of the <ref> tag.
+ * @param string[] $argv Arguments
+ * @param Parser $parser
+ * @param string $default_group
+ *
+ * @throws Exception
+ * @return string
+ */
+ function guardedRef( $str, array $argv, Parser $parser, $default_group = self::DEFAULT_GROUP ) {
+ $this->mParser = $parser;
+
+ # The key here is the "name" attribute.
+ list( $key, $group, $follow ) = $this->refArg( $argv );
+
+ # Split these into groups.
+ if ( $group === null ) {
+ if ( $this->mInReferences ) {
+ $group = $this->mReferencesGroup;
+ } else {
+ $group = $default_group;
+ }
+ }
+
+ /*
+ * This section deals with constructions of the form
+ *
+ * <references>
+ * <ref name="foo"> BAR </ref>
+ * </references>
+ */
+ if ( $this->mInReferences ) {
+ $isSectionPreview = $parser->getOptions()->getIsSectionPreview();
+ if ( $group != $this->mReferencesGroup ) {
+ # <ref> and <references> have conflicting group attributes.
+ $this->mReferencesErrors[] =
+ $this->error( 'cite_error_references_group_mismatch', htmlspecialchars( $group ) );
+ } elseif ( $str !== '' ) {
+ if ( !$isSectionPreview && !isset( $this->mRefs[$group] ) ) {
+ # Called with group attribute not defined in text.
+ $this->mReferencesErrors[] =
+ $this->error( 'cite_error_references_missing_group', htmlspecialchars( $group ) );
+ } elseif ( $key === null || $key === '' ) {
+ # <ref> calls inside <references> must be named
+ $this->mReferencesErrors[] =
+ $this->error( 'cite_error_references_no_key' );
+ } elseif ( !$isSectionPreview && !isset( $this->mRefs[$group][$key] ) ) {
+ # Called with name attribute not defined in text.
+ $this->mReferencesErrors[] =
+ $this->error( 'cite_error_references_missing_key', $key );
+ } else {
+ if (
+ isset( $this->mRefs[$group][$key]['text'] ) &&
+ $str !== $this->mRefs[$group][$key]['text']
+ ) {
+ // two refs with same key and different content
+ // add error message to the original ref
+ $this->mRefs[$group][$key]['text'] .= ' ' . $this->error(
+ 'cite_error_references_duplicate_key', $key, 'noparse'
+ );
+ } else {
+ # Assign the text to corresponding ref
+ $this->mRefs[$group][$key]['text'] = $str;
+ }
+ }
+ } else {
+ # <ref> called in <references> has no content.
+ $this->mReferencesErrors[] =
+ $this->error( 'cite_error_empty_references_define', $key );
+ }
+ return '';
+ }
+
+ if ( $str === '' ) {
+ # <ref ...></ref>. This construct is invalid if
+ # it's a contentful ref, but OK if it's a named duplicate and should
+ # be equivalent <ref ... />, for compatability with #tag.
+ if ( is_string( $key ) && $key !== '' ) {
+ $str = null;
+ } else {
+ $this->mRefCallStack[] = false;
+
+ return $this->error( 'cite_error_ref_no_input' );
+ }
+ }
+
+ if ( $key === false ) {
+ # TODO: Comment this case; what does this condition mean?
+ $this->mRefCallStack[] = false;
+ return $this->error( 'cite_error_ref_too_many_keys' );
+ }
+
+ if ( $str === null && $key === null ) {
+ # Something like <ref />; this makes no sense.
+ $this->mRefCallStack[] = false;
+ return $this->error( 'cite_error_ref_no_key' );
+ }
+
+ if ( preg_match( '/^[0-9]+$/', $key ) || preg_match( '/^[0-9]+$/', $follow ) ) {
+ # Numeric names mess up the resulting id's, potentially produ-
+ # cing duplicate id's in the XHTML. The Right Thing To Do
+ # would be to mangle them, but it's not really high-priority
+ # (and would produce weird id's anyway).
+
+ $this->mRefCallStack[] = false;
+ return $this->error( 'cite_error_ref_numeric_key' );
+ }
+
+ if ( preg_match(
+ '/<ref\b[^<]*?>/',
+ preg_replace( '#<([^ ]+?).*?>.*?</\\1 *>|<!--.*?-->#', '', $str )
+ ) ) {
+ # (bug T8199) This most likely implies that someone left off the
+ # closing </ref> tag, which will cause the entire article to be
+ # eaten up until the next <ref>. So we bail out early instead.
+ # The fancy regex above first tries chopping out anything that
+ # looks like a comment or SGML tag, which is a crude way to avoid
+ # false alarms for <nowiki>, <pre>, etc.
+
+ # Possible improvement: print the warning, followed by the contents
+ # of the <ref> tag. This way no part of the article will be eaten
+ # even temporarily.
+
+ $this->mRefCallStack[] = false;
+ return $this->error( 'cite_error_included_ref' );
+ }
+
+ if ( is_string( $key ) || is_string( $str ) ) {
+ # We don't care about the content: if the key exists, the ref
+ # is presumptively valid. Either it stores a new ref, or re-
+ # fers to an existing one. If it refers to a nonexistent ref,
+ # we'll figure that out later. Likewise it's definitely valid
+ # if there's any content, regardless of key.
+
+ return $this->stack( $str, $key, $group, $follow, $argv );
+ }
+
+ # Not clear how we could get here, but something is probably
+ # wrong with the types. Let's fail fast.
+ throw new Exception( 'Invalid $str and/or $key: ' . serialize( array( $str, $key ) ) );
+ }
+
+ /**
+ * Parse the arguments to the <ref> tag
+ *
+ * "name" : Key of the reference.
+ * "group" : Group to which it belongs. Needs to be passed to <references /> too.
+ * "follow" : If the current reference is the continuation of another, key of that reference.
+ *
+ *
+ * @param string[] $argv The argument vector
+ * @return mixed false on invalid input, a string on valid
+ * input and null on no input
+ */
+ function refArg( array $argv ) {
+ global $wgAllowCiteGroups;
+ $cnt = count( $argv );
+ $group = null;
+ $key = null;
+ $follow = null;
+
+ if ( $cnt > 2 ) {
+ // There should only be one key or follow parameter, and one group parameter
+ // FIXME : this looks inconsistent, it should probably return a tuple
+ return false;
+ } elseif ( $cnt >= 1 ) {
+ if ( isset( $argv['name'] ) && isset( $argv['follow'] ) ) {
+ return array( false, false, false );
+ }
+ if ( isset( $argv['name'] ) ) {
+ // Key given.
+ $key = Sanitizer::escapeId( $argv['name'], 'noninitial' );
+ unset( $argv['name'] );
+ --$cnt;
+ }
+ if ( isset( $argv['follow'] ) ) {
+ // Follow given.
+ $follow = Sanitizer::escapeId( $argv['follow'], 'noninitial' );
+ unset( $argv['follow'] );
+ --$cnt;
+ }
+ if ( isset( $argv['group'] ) ) {
+ if ( !$wgAllowCiteGroups ) {
+ // remove when groups are fully tested.
+ return array( false );
+ }
+ // Group given.
+ $group = $argv['group'];
+ unset( $argv['group'] );
+ --$cnt;
+ }
+
+ if ( $cnt === 0 ) {
+ return array( $key, $group, $follow );
+ } else {
+ // Invalid key
+ return array( false, false, false );
+ }
+ } else {
+ // No key
+ return array( null, $group, false );
+ }
+ }
+
+ /**
+ * Populate $this->mRefs based on input and arguments to <ref>
+ *
+ * @param string $str Input from the <ref> tag
+ * @param string|null $key Argument to the <ref> tag as returned by $this->refArg()
+ * @param string $group
+ * @param string|null $follow
+ * @param string[] $call
+ *
+ * @throws Exception
+ * @return string
+ */
+ function stack( $str, $key = null, $group, $follow, array $call ) {
+ if ( !isset( $this->mRefs[$group] ) ) {
+ $this->mRefs[$group] = array();
+ }
+ if ( !isset( $this->mGroupCnt[$group] ) ) {
+ $this->mGroupCnt[$group] = 0;
+ }
+ if ( $follow != null ) {
+ if ( isset( $this->mRefs[$group][$follow] ) && is_array( $this->mRefs[$group][$follow] ) ) {
+ // add text to the note that is being followed
+ $this->mRefs[$group][$follow]['text'] .= ' ' . $str;
+ } else {
+ // insert part of note at the beginning of the group
+ $groupsCount = count( $this->mRefs[$group] );
+ for ( $k = 0; $k < $groupsCount; $k++ ) {
+ if ( !isset( $this->mRefs[$group][$k]['follow'] ) ) {
+ break;
+ }
+ }
+ array_splice( $this->mRefs[$group], $k, 0, array( array(
+ 'count' => -1,
+ 'text' => $str,
+ 'key' => ++$this->mOutCnt,
+ 'follow' => $follow
+ ) ) );
+ array_splice( $this->mRefCallStack, $k, 0,
+ array( array( 'new', $call, $str, $key, $group, $this->mOutCnt ) ) );
+ }
+ // return an empty string : this is not a reference
+ return '';
+ }
+
+ if ( $key === null ) {
+ // No key
+ // $this->mRefs[$group][] = $str;
+ $this->mRefs[$group][] = array(
+ 'count' => -1,
+ 'text' => $str,
+ 'key' => ++$this->mOutCnt
+ );
+ $this->mRefCallStack[] = array( 'new', $call, $str, $key, $group, $this->mOutCnt );
+
+ return $this->linkRef( $group, $this->mOutCnt );
+ }
+ if ( !is_string( $key ) ) {
+ throw new Exception( 'Invalid stack key: ' . serialize( $key ) );
+ }
+
+ // Valid key
+ if ( !isset( $this->mRefs[$group][$key] ) || !is_array( $this->mRefs[$group][$key] ) ) {
+ // First occurrence
+ $this->mRefs[$group][$key] = array(
+ 'text' => $str,
+ 'count' => 0,
+ 'key' => ++$this->mOutCnt,
+ 'number' => ++$this->mGroupCnt[$group]
+ );
+ $this->mRefCallStack[] = array( 'new', $call, $str, $key, $group, $this->mOutCnt );
+
+ return $this->linkRef(
+ $group,
+ $key,
+ $this->mRefs[$group][$key]['key'] . "-" . $this->mRefs[$group][$key]['count'],
+ $this->mRefs[$group][$key]['number'],
+ "-" . $this->mRefs[$group][$key]['key']
+ );
+ }
+
+ // We've been here before
+ if ( $this->mRefs[$group][$key]['text'] === null && $str !== '' ) {
+ // If no text found before, use this text
+ $this->mRefs[$group][$key]['text'] = $str;
+ $this->mRefCallStack[] = array( 'assign', $call, $str, $key, $group,
+ $this->mRefs[$group][$key]['key'] );
+ } else {
+ if ( $str != null && $str !== '' && $str !== $this->mRefs[$group][$key]['text'] ) {
+ // two refs with same key and different content
+ // add error message to the original ref
+ $this->mRefs[$group][$key]['text'] .= ' ' . $this->error(
+ 'cite_error_references_duplicate_key', $key, 'noparse'
+ );
+ }
+ $this->mRefCallStack[] = array( 'increment', $call, $str, $key, $group,
+ $this->mRefs[$group][$key]['key'] );
+ }
+ return $this->linkRef(
+ $group,
+ $key,
+ $this->mRefs[$group][$key]['key'] . "-" . ++$this->mRefs[$group][$key]['count'],
+ $this->mRefs[$group][$key]['number'],
+ "-" . $this->mRefs[$group][$key]['key']
+ );
+ }
+
+ /**
+ * Partially undoes the effect of calls to stack()
+ *
+ * Called by guardedReferences()
+ *
+ * The option to define <ref> within <references> makes the
+ * behavior of <ref> context dependent. This is normally fine
+ * but certain operations (especially #tag) lead to out-of-order
+ * parser evaluation with the <ref> tags being processed before
+ * their containing <reference> element is read. This leads to
+ * stack corruption that this function works to fix.
+ *
+ * This function is not a total rollback since some internal
+ * counters remain incremented. Doing so prevents accidentally
+ * corrupting certain links.
+ *
+ * @param string $type
+ * @param string|null $key
+ * @param string $group
+ * @param int $index
+ */
+ function rollbackRef( $type, $key, $group, $index ) {
+ if ( !isset( $this->mRefs[$group] ) ) {
+ return;
+ }
+
+ if ( $key === null ) {
+ foreach ( $this->mRefs[$group] as $k => $v ) {
+ if ( $this->mRefs[$group][$k]['key'] === $index ) {
+ $key = $k;
+ break;
+ }
+ }
+ }
+
+ // Sanity checks that specified element exists.
+ if ( $key === null ) {
+ return;
+ }
+ if ( !isset( $this->mRefs[$group][$key] ) ) {
+ return;
+ }
+ if ( $this->mRefs[$group][$key]['key'] != $index ) {
+ return;
+ }
+
+ switch ( $type ) {
+ case 'new':
+ # Rollback the addition of new elements to the stack.
+ unset( $this->mRefs[$group][$key] );
+ if ( $this->mRefs[$group] === array() ) {
+ unset( $this->mRefs[$group] );
+ unset( $this->mGroupCnt[$group] );
+ }
+ break;
+ case 'assign':
+ # Rollback assignment of text to pre-existing elements.
+ $this->mRefs[$group][$key]['text'] = null;
+ # continue without break
+ case 'increment':
+ # Rollback increase in named ref occurrences.
+ $this->mRefs[$group][$key]['count']--;
+ break;
+ }
+ }
+
+ /**
+ * Callback function for <references>
+ *
+ * @param string|null $str Raw content of the <references> tag.
+ * @param string[] $argv Arguments
+ * @param Parser $parser
+ * @param PPFrame $frame
+ *
+ * @return string
+ */
+ function references( $str, array $argv, Parser $parser, PPFrame $frame ) {
+ if ( $this->mInCite || $this->mInReferences ) {
+ if ( is_null( $str ) ) {
+ return htmlspecialchars( "<references/>" );
+ }
+ return htmlspecialchars( "<references>$str</references>" );
+ }
+ $this->mCallCnt++;
+ $this->mInReferences = true;
+ $ret = $this->guardedReferences( $str, $argv, $parser );
+ $this->mInReferences = false;
+ if ( is_callable( array( $frame, 'setVolatile' ) ) ) {
+ $frame->setVolatile();
+ }
+ return $ret;
+ }
+
+ /**
+ * @param string|null $str Raw content of the <references> tag.
+ * @param string[] $argv
+ * @param Parser $parser
+ * @param string $group
+ *
+ * @return string
+ */
+ function guardedReferences( $str, array $argv, Parser $parser, $group = self::DEFAULT_GROUP ) {
+ global $wgAllowCiteGroups;
+
+ $this->mParser = $parser;
+
+ if ( isset( $argv['group'] ) && $wgAllowCiteGroups ) {
+ $group = $argv['group'];
+ unset( $argv['group'] );
+ }
+
+ if ( strval( $str ) !== '' ) {
+ $this->mReferencesGroup = $group;
+
+ # Detect whether we were sent already rendered <ref>s.
+ # Mostly a side effect of using #tag to call references.
+ # The following assumes that the parsed <ref>s sent within
+ # the <references> block were the most recent calls to
+ # <ref>. This assumption is true for all known use cases,
+ # but not strictly enforced by the parser. It is possible
+ # that some unusual combination of #tag, <references> and
+ # conditional parser functions could be created that would
+ # lead to malformed references here.
+ $count = substr_count( $str, Parser::MARKER_PREFIX . "-ref-" );
+ $redoStack = array();
+
+ # Undo effects of calling <ref> while unaware of containing <references>
+ for ( $i = 1; $i <= $count; $i++ ) {
+ if ( !$this->mRefCallStack ) {
+ break;
+ }
+
+ $call = array_pop( $this->mRefCallStack );
+ $redoStack[] = $call;
+ if ( $call !== false ) {
+ list( $type, $ref_argv, $ref_str,
+ $ref_key, $ref_group, $ref_index ) = $call;
+ $this->rollbackRef( $type, $ref_key, $ref_group, $ref_index );
+ }
+ }
+
+ # Rerun <ref> call now that mInReferences is set.
+ for ( $i = count( $redoStack ) - 1; $i >= 0; $i-- ) {
+ $call = $redoStack[$i];
+ if ( $call !== false ) {
+ list( $type, $ref_argv, $ref_str,
+ $ref_key, $ref_group, $ref_index ) = $call;
+ $this->guardedRef( $ref_str, $ref_argv, $parser );
+ }
+ }
+
+ # Parse $str to process any unparsed <ref> tags.
+ $parser->recursiveTagParse( $str );
+
+ # Reset call stack
+ $this->mRefCallStack = array();
+ }
+
+ if ( $argv && $wgAllowCiteGroups ) {
+ return $this->error( 'cite_error_references_invalid_parameters_group' );
+ }
+ if ( $argv ) {
+ return $this->error( 'cite_error_references_invalid_parameters' );
+ }
+
+ $s = $this->referencesFormat( $group );
+
+ # Append errors generated while processing <references>
+ if ( $this->mReferencesErrors ) {
+ $s .= "\n" . implode( "<br />\n", $this->mReferencesErrors );
+ $this->mReferencesErrors = array();
+ }
+ return $s;
+ }
+
+ /**
+ * Make output to be returned from the references() function
+ *
+ * @param string $group
+ *
+ * @return string XHTML ready for output
+ */
+ function referencesFormat( $group ) {
+ if ( !$this->mRefs || !isset( $this->mRefs[$group] ) ) {
+ return '';
+ }
+
+ wfProfileIn( __METHOD__ . '-entries' );
+ $ent = array();
+ foreach ( $this->mRefs[$group] as $k => $v ) {
+ $ent[] = $this->referencesFormatEntry( $k, $v );
+ }
+
+ $prefix = wfMessage( 'cite_references_prefix' )->inContentLanguage()->plain();
+ $suffix = wfMessage( 'cite_references_suffix' )->inContentLanguage()->plain();
+ $content = implode( "\n", $ent );
+
+ // Prepare the parser input.
+ // We add new lines between the pieces to avoid a confused tidy (bug 13073).
+ $parserInput = $prefix . "\n" . $content . "\n" . $suffix;
+
+ wfProfileOut( __METHOD__ . '-entries' );
+
+ // Let's try to cache it.
+ global $wgCiteCacheReferences, $wgMemc;
+ $data = false;
+ if ( $wgCiteCacheReferences ) {
+ $cacheKey = wfMemcKey(
+ 'citeref',
+ md5( $parserInput ),
+ $this->mParser->Title()->getArticleID()
+ );
+ wfProfileIn( __METHOD__ . '-cache-get' );
+ $data = $wgMemc->get( $cacheKey );
+ wfProfileOut( __METHOD__ . '-cache-get' );
+ }
+
+ if ( !$data || !$this->mParser->isValidHalfParsedText( $data ) ) {
+ wfProfileIn( __METHOD__ . '-parse' );
+
+ // Live hack: parse() adds two newlines on WM, can't reproduce it locally -ævar
+ $ret = rtrim( $this->mParser->recursiveTagParse( $parserInput ), "\n" );
+
+ if ( $wgCiteCacheReferences ) {
+ $serData = $this->mParser->serializeHalfParsedText( $ret );
+ $wgMemc->set( $cacheKey, $serData, 86400 );
+ }
+
+ wfProfileOut( __METHOD__ . '-parse' );
+ } else {
+ $ret = $this->mParser->unserializeHalfParsedText( $data );
+ }
+
+ if ( !$this->mParser->getOptions()->getIsPreview() ) {
+ // save references data for later use by LinksUpdate hooks
+ $this->saveReferencesData( $group );
+ }
+
+ // done, clean up so we can reuse the group
+ unset( $this->mRefs[$group] );
+ unset( $this->mGroupCnt[$group] );
+
+ return $ret;
+ }
+
+ /**
+ * Format a single entry for the referencesFormat() function
+ *
+ * @param string $key The key of the reference
+ * @param mixed $val The value of the reference, string for anonymous
+ * references, array for user-suppplied
+ * @return string Wikitext
+ */
+ function referencesFormatEntry( $key, $val ) {
+ // Anonymous reference
+ if ( !is_array( $val ) ) {
+ return wfMessage(
+ 'cite_references_link_one',
+ self::getReferencesKey( $key ),
+ $this->refKey( $key ),
+ $this->referenceText( $key, $val )
+ )->inContentLanguage()->plain();
+ }
+ $text = $this->referenceText( $key, $val['text'] );
+ if ( isset( $val['follow'] ) ) {
+ return wfMessage(
+ 'cite_references_no_link',
+ self::getReferencesKey( $val['follow'] ),
+ $text
+ )->inContentLanguage()->plain();
+ }
+
+ if ( $val['count'] < 0 ) {
+ return wfMessage(
+ 'cite_references_link_one',
+ self::getReferencesKey( $val['key'] ),
+ # $this->refKey( $val['key'], $val['count'] ),
+ $this->refKey( $val['key'] ),
+ $text
+ )->inContentLanguage()->plain();
+ // Standalone named reference, I want to format this like an
+ // anonymous reference because displaying "1. 1.1 Ref text" is
+ // overkill and users frequently use named references when they
+ // don't need them for convenience
+ }
+ if ( $val['count'] === 0 ) {
+ return wfMessage(
+ 'cite_references_link_one',
+ self::getReferencesKey( $key . "-" . $val['key'] ),
+ # $this->refKey( $key, $val['count'] ),
+ $this->refKey( $key, $val['key'] . "-" . $val['count'] ),
+ $text
+ )->inContentLanguage()->plain();
+ // Named references with >1 occurrences
+ }
+ if ( !isset( $val['count'] ) ) {
+ // this handles the case of section preview for list-defined references
+ return wfMessage( 'cite_references_link_many',
+ self::getReferencesKey( $key . "-" . $val['key'] ),
+ '',
+ $text
+ )->inContentLanguage()->plain();
+ }
+ $links = array();
+ // for group handling, we have an extra key here.
+ for ( $i = 0; $i <= $val['count']; ++$i ) {
+ $links[] = wfMessage(
+ 'cite_references_link_many_format',
+ $this->refKey( $key, $val['key'] . "-$i" ),
+ $this->referencesFormatEntryNumericBacklinkLabel( $val['number'], $i, $val['count'] ),
+ $this->referencesFormatEntryAlternateBacklinkLabel( $i )
+ )->inContentLanguage()->plain();
+ }
+
+ $list = $this->listToText( $links );
+
+ return wfMessage( 'cite_references_link_many',
+ self::getReferencesKey( $key . "-" . $val['key'] ),
+ $list,
+ $text
+ )->inContentLanguage()->plain();
+ }
+
+ /**
+ * Returns formatted reference text
+ * @param String $key
+ * @param String $text
+ * @return String
+ */
+ function referenceText( $key, $text ) {
+ if ( !isset( $text ) || $text === '' ) {
+ if ( $this->mParser->getOptions()->getIsSectionPreview() ) {
+ return $this->warning( 'cite_warning_sectionpreview_no_text', $key, 'noparse' );
+ }
+ return $this->error( 'cite_error_references_no_text', $key, 'noparse' );
+ }
+ return '<span class="reference-text">' . rtrim( $text, "\n" ) . "</span>\n";
+ }
+
+ /**
+ * Generate a numeric backlink given a base number and an
+ * offset, e.g. $base = 1, $offset = 2; = 1.2
+ * Since bug #5525, it correctly does 1.9 -> 1.10 as well as 1.099 -> 1.100
+ *
+ * @static
+ *
+ * @param int $base The base
+ * @param int $offset The offset
+ * @param int $max Maximum value expected.
+ * @return string
+ */
+ function referencesFormatEntryNumericBacklinkLabel( $base, $offset, $max ) {
+ global $wgContLang;
+ $scope = strlen( $max );
+ $ret = $wgContLang->formatNum(
+ sprintf( "%s.%0{$scope}s", $base, $offset )
+ );
+ return $ret;
+ }
+
+ /**
+ * Generate a custom format backlink given an offset, e.g.
+ * $offset = 2; = c if $this->mBacklinkLabels = array( 'a',
+ * 'b', 'c', ...). Return an error if the offset > the # of
+ * array items
+ *
+ * @param int $offset The offset
+ *
+ * @return string
+ */
+ function referencesFormatEntryAlternateBacklinkLabel( $offset ) {
+ if ( !isset( $this->mBacklinkLabels ) ) {
+ $this->genBacklinkLabels();
+ }
+ if ( isset( $this->mBacklinkLabels[$offset] ) ) {
+ return $this->mBacklinkLabels[$offset];
+ } else {
+ // Feed me!
+ return $this->error( 'cite_error_references_no_backlink_label', null, 'noparse' );
+ }
+ }
+
+ /**
+ * Generate a custom format link for a group given an offset, e.g.
+ * the second <ref group="foo"> is b if $this->mLinkLabels["foo"] =
+ * array( 'a', 'b', 'c', ...).
+ * Return an error if the offset > the # of array items
+ *
+ * @param int $offset The offset
+ * @param string $group The group name
+ * @param string $label The text to use if there's no message for them.
+ *
+ * @return string
+ */
+ function getLinkLabel( $offset, $group, $label ) {
+ $message = "cite_link_label_group-$group";
+ if ( !isset( $this->mLinkLabels[$group] ) ) {
+ $this->genLinkLabels( $group, $message );
+ }
+ if ( $this->mLinkLabels[$group] === false ) {
+ // Use normal representation, ie. "$group 1", "$group 2"...
+ return $label;
+ }
+
+ if ( isset( $this->mLinkLabels[$group][$offset - 1] ) ) {
+ return $this->mLinkLabels[$group][$offset - 1];
+ } else {
+ // Feed me!
+ return $this->error( 'cite_error_no_link_label_group', array( $group, $message ), 'noparse' );
+ }
+ }
+
+ /**
+ * Return an id for use in wikitext output based on a key and
+ * optionally the number of it, used in <references>, not <ref>
+ * (since otherwise it would link to itself)
+ *
+ * @static
+ *
+ * @param string $key The key
+ * @param int $num The number of the key
+ * @return string A key for use in wikitext
+ */
+ function refKey( $key, $num = null ) {
+ $prefix = wfMessage( 'cite_reference_link_prefix' )->inContentLanguage()->text();
+ $suffix = wfMessage( 'cite_reference_link_suffix' )->inContentLanguage()->text();
+ if ( isset( $num ) ) {
+ $key = wfMessage( 'cite_reference_link_key_with_num', $key, $num )
+ ->inContentLanguage()->plain();
+ }
+
+ return "$prefix$key$suffix";
+ }
+
+ /**
+ * Return an id for use in wikitext output based on a key and
+ * optionally the number of it, used in <ref>, not <references>
+ * (since otherwise it would link to itself)
+ *
+ * @static
+ *
+ * @param string $key The key
+ * @return string A key for use in wikitext
+ */
+ public static function getReferencesKey( $key ) {
+ $prefix = wfMessage( 'cite_references_link_prefix' )->inContentLanguage()->text();
+ $suffix = wfMessage( 'cite_references_link_suffix' )->inContentLanguage()->text();
+
+ return "$prefix$key$suffix";
+ }
+
+ /**
+ * Generate a link (<sup ...) for the <ref> element from a key
+ * and return XHTML ready for output
+ *
+ * @param string $group
+ * @param string $key The key for the link
+ * @param int $count The index of the key, used for distinguishing
+ * multiple occurrences of the same key
+ * @param int $label The label to use for the link, I want to
+ * use the same label for all occourances of
+ * the same named reference.
+ * @param string $subkey
+ *
+ * @return string
+ */
+ function linkRef( $group, $key, $count = null, $label = null, $subkey = '' ) {
+ global $wgContLang;
+ $label = is_null( $label ) ? ++$this->mGroupCnt[$group] : $label;
+
+ return
+ $this->mParser->recursiveTagParse(
+ wfMessage(
+ 'cite_reference_link',
+ $this->refKey( $key, $count ),
+ self::getReferencesKey( $key . $subkey ),
+ $this->getLinkLabel( $label, $group,
+ ( ( $group === self::DEFAULT_GROUP ) ? '' : "$group " ) . $wgContLang->formatNum( $label ) )
+ )->inContentLanguage()->plain()
+ );
+ }
+
+ /**
+ * This does approximately the same thing as
+ * Language::listToText() but due to this being used for a
+ * slightly different purpose (people might not want , as the
+ * first separator and not 'and' as the second, and this has to
+ * use messages from the content language) I'm rolling my own.
+ *
+ * @static
+ *
+ * @param array $arr The array to format
+ * @return string
+ */
+ function listToText( $arr ) {
+ $cnt = count( $arr );
+
+ $sep = wfMessage( 'cite_references_link_many_sep' )->inContentLanguage()->plain();
+ $and = wfMessage( 'cite_references_link_many_and' )->inContentLanguage()->plain();
+
+ if ( $cnt === 1 ) {
+ // Enforce always returning a string
+ return (string)$arr[0];
+ } else {
+ $t = array_slice( $arr, 0, $cnt - 1 );
+ return implode( $sep, $t ) . $and . $arr[$cnt - 1];
+ }
+ }
+
+ /**
+ * Generate the labels to pass to the
+ * 'cite_references_link_many_format' message, the format is an
+ * arbitrary number of tokens separated by [\t\n ]
+ */
+ function genBacklinkLabels() {
+ $text = wfMessage( 'cite_references_link_many_format_backlink_labels' )
+ ->inContentLanguage()->plain();
+ $this->mBacklinkLabels = preg_split( '#[\n\t ]#', $text );
+ }
+
+ /**
+ * Generate the labels to pass to the
+ * 'cite_reference_link' message instead of numbers, the format is an
+ * arbitrary number of tokens separated by [\t\n ]
+ *
+ * @param string $group
+ * @param string $message
+ */
+ function genLinkLabels( $group, $message ) {
+ $text = false;
+ $msg = wfMessage( $message )->inContentLanguage();
+ if ( $msg->exists() ) {
+ $text = $msg->plain();
+ }
+ $this->mLinkLabels[$group] = ( !$text ) ? false : preg_split( '#[\n\t ]#', $text );
+ }
+
+ /**
+ * Gets run when Parser::clearState() gets run, since we don't
+ * want the counts to transcend pages and other instances
+ *
+ * @param Parser $parser
+ *
+ * @return bool
+ */
+ function clearState( Parser &$parser ) {
+ if ( $parser->extCite !== $this ) {
+ return $parser->extCite->clearState( $parser );
+ }
+
+ # Don't clear state when we're in the middle of parsing
+ # a <ref> tag
+ if ( $this->mInCite || $this->mInReferences ) {
+ return true;
+ }
+
+ $this->mGroupCnt = array();
+ $this->mOutCnt = 0;
+ $this->mCallCnt = 0;
+ $this->mRefs = array();
+ $this->mReferencesErrors = array();
+ $this->mRefCallStack = array();
+
+ return true;
+ }
+
+ /**
+ * Gets run when the parser is cloned.
+ *
+ * @param Parser $parser
+ *
+ * @return bool
+ */
+ function cloneState( Parser $parser ) {
+ if ( $parser->extCite !== $this ) {
+ return $parser->extCite->cloneState( $parser );
+ }
+
+ $parser->extCite = clone $this;
+ $parser->setHook( 'ref', array( $parser->extCite, 'ref' ) );
+ $parser->setHook( 'references', array( $parser->extCite, 'references' ) );
+
+ // Clear the state, making sure it will actually work.
+ $parser->extCite->mInCite = false;
+ $parser->extCite->mInReferences = false;
+ $parser->extCite->clearState( $parser );
+
+ return true;
+ }
+
+ /**
+ * Called at the end of page processing to append a default references
+ * section, if refs were used without a main references tag. If there are references
+ * in a custom group, and there is no references tag for it, show an error
+ * message for that group.
+ * If we are processing a section preview, this adds the missing
+ * references tags and does not add the errors.
+ *
+ * @param bool $afterParse True if called from the ParserAfterParse hook
+ * @param Parser $parser
+ * @param string $text
+ *
+ * @return bool
+ */
+ function checkRefsNoReferences( $afterParse, &$parser, &$text ) {
+ if ( is_null( $parser->extCite ) ) {
+ return true;
+ }
+ if ( $parser->extCite !== $this ) {
+ return $parser->extCite->checkRefsNoReferences( $afterParse, $parser, $text );
+ }
+
+ if ( $afterParse ) {
+ $this->mHaveAfterParse = true;
+ } elseif ( $this->mHaveAfterParse ) {
+ return true;
+ }
+
+ if ( !$parser->getOptions()->getIsPreview() ) {
+ // save references data for later use by LinksUpdate hooks
+ if ( $this->mRefs && isset( $this->mRefs[self::DEFAULT_GROUP] ) ) {
+ $this->saveReferencesData();
+ }
+ $isSectionPreview = false;
+ } else {
+ $isSectionPreview = $parser->getOptions()->getIsSectionPreview();
+ }
+
+ $s = '';
+ foreach ( $this->mRefs as $group => $refs ) {
+ if ( !$refs ) {
+ continue;
+ }
+ if ( $group === self::DEFAULT_GROUP || $isSectionPreview ) {
+ $s .= $this->referencesFormat( $group );
+ } else {
+ $s .= "\n<br />" .
+ $this->error( 'cite_error_group_refs_without_references', htmlspecialchars( $group ) );
+ }
+ }
+ if ( $isSectionPreview && $s !== '' ) {
+ // provide a preview of references in its own section
+ $text .= "\n" . '<div class="mw-ext-cite-cite_section_preview_references" >';
+ $headerMsg = wfMessage( 'cite_section_preview_references' );
+ if ( !$headerMsg->isDisabled() ) {
+ $text .= '<h2 id="mw-ext-cite-cite_section_preview_references_header" >'
+ . $headerMsg->escaped()
+ . '</h2>';
+ }
+ $text .= $s . '</div>';
+ } else {
+ $text .= $s;
+ }
+ return true;
+ }
+
+ /**
+ * Saves references in parser extension data
+ * This is called by each <references/> tag, and by checkRefsNoReferences
+ * Assumes $this->mRefs[$group] is set
+ *
+ * @param $group
+ */
+ private function saveReferencesData( $group = self::DEFAULT_GROUP ) {
+ global $wgCiteStoreReferencesData;
+ if ( !$wgCiteStoreReferencesData ) {
+ return;
+ }
+ $savedRefs = $this->mParser->getOutput()->getExtensionData( self::EXT_DATA_KEY );
+ if ( $savedRefs === null ) {
+ // Initialize array structure
+ $savedRefs = array(
+ 'refs' => array(),
+ 'version' => self::DATA_VERSION_NUMBER,
+ );
+ }
+ if ( $this->mBumpRefData ) {
+ // This handles pages with multiple <references/> tags with <ref> tags in between.
+ // On those, a group can appear several times, so we need to avoid overwriting
+ // a previous appearance.
+ $savedRefs['refs'][] = array();
+ $this->mBumpRefData = false;
+ }
+ $n = count( $savedRefs['refs'] ) - 1;
+ // save group
+ $savedRefs['refs'][$n][$group] = $this->mRefs[$group];
+
+ $this->mParser->getOutput()->setExtensionData( self::EXT_DATA_KEY, $savedRefs );
+ }
+
+ /**
+ * Hook for the InlineEditor extension.
+ * If any ref or reference reference tag is in the text,
+ * the entire page should be reparsed, so we return false in that case.
+ *
+ * @param $output
+ *
+ * @return bool
+ */
+ function checkAnyCalls( &$output ) {
+ global $wgParser;
+ /* InlineEditor always uses $wgParser */
+ return ( $wgParser->extCite->mCallCnt <= 0 );
+ }
+
+ /**
+ * Initialize the parser hooks
+ *
+ * @param Parser $parser
+ *
+ * @return bool
+ */
+ static function setHooks( Parser $parser ) {
+ global $wgHooks;
+
+ $parser->extCite = new self();
+
+ if ( !Cite::$hooksInstalled ) {
+ $wgHooks['ParserClearState'][] = array( $parser->extCite, 'clearState' );
+ $wgHooks['ParserCloned'][] = array( $parser->extCite, 'cloneState' );
+ $wgHooks['ParserAfterParse'][] = array( $parser->extCite, 'checkRefsNoReferences', true );
+ $wgHooks['ParserBeforeTidy'][] = array( $parser->extCite, 'checkRefsNoReferences', false );
+ $wgHooks['InlineEditorPartialAfterParse'][] = array( $parser->extCite, 'checkAnyCalls' );
+ Cite::$hooksInstalled = true;
+ }
+ $parser->setHook( 'ref', array( $parser->extCite, 'ref' ) );
+ $parser->setHook( 'references', array( $parser->extCite, 'references' ) );
+
+ return true;
+ }
+
+ /**
+ * Return an error message based on an error ID
+ *
+ * @param string $key Message name for the error
+ * @param string|null $param Parameter to pass to the message
+ * @param string $parse Whether to parse the message ('parse') or not ('noparse')
+ * @return string XHTML or wikitext ready for output
+ */
+ function error( $key, $param = null, $parse = 'parse' ) {
+ # For ease of debugging and because errors are rare, we
+ # use the user language and split the parser cache.
+ $lang = $this->mParser->getOptions()->getUserLangObj();
+ $dir = $lang->getDir();
+
+ # We rely on the fact that PHP is okay with passing unused argu-
+ # ments to functions. If $1 is not used in the message, wfMessage will
+ # just ignore the extra parameter.
+ $msg = wfMessage(
+ 'cite_error',
+ wfMessage( $key, $param )->inLanguage( $lang )->plain()
+ )
+ ->inLanguage( $lang )
+ ->plain();
+
+ $this->mParser->addTrackingCategory( 'cite-tracking-category-cite-error' );
+
+ $ret = Html::rawElement(
+ 'span',
+ array(
+ 'class' => 'error mw-ext-cite-error',
+ 'lang' => $lang->getHtmlCode(),
+ 'dir' => $dir,
+ ),
+ $msg
+ );
+
+ if ( $parse === 'parse' ) {
+ $ret = $this->mParser->recursiveTagParse( $ret );
+ }
+
+ return $ret;
+ }
+
+ /**
+ * Return a warning message based on a warning ID
+ *
+ * @param string $key Message name for the warning. Name should start with cite_warning_
+ * @param string|null $param Parameter to pass to the message
+ * @param string $parse Whether to parse the message ('parse') or not ('noparse')
+ * @return string XHTML or wikitext ready for output
+ */
+ function warning( $key, $param = null, $parse = 'parse' ) {
+ # For ease of debugging and because errors are rare, we
+ # use the user language and split the parser cache.
+ $lang = $this->mParser->getOptions()->getUserLangObj();
+ $dir = $lang->getDir();
+
+ # We rely on the fact that PHP is okay with passing unused argu-
+ # ments to functions. If $1 is not used in the message, wfMessage will
+ # just ignore the extra parameter.
+ $msg = wfMessage(
+ 'cite_warning',
+ wfMessage( $key, $param )->inLanguage( $lang )->plain()
+ )
+ ->inLanguage( $lang )
+ ->plain();
+
+ $key = preg_replace( '/^cite_warning_/', '', $key ) . '';
+ $ret = Html::rawElement(
+ 'span',
+ array(
+ 'class' => 'warning mw-ext-cite-warning mw-ext-cite-warning-' .
+ Sanitizer::escapeClass( $key ),
+ 'lang' => $lang->getHtmlCode(),
+ 'dir' => $dir,
+ ),
+ $msg
+ );
+
+ if ( $parse === 'parse' ) {
+ $ret = $this->mParser->recursiveTagParse( $ret );
+ }
+
+ return $ret;
+ }
+
+ /**
+ * Fetch references stored for the given title in page_props
+ * For performance, results are cached
+ *
+ * @param Title $title
+ * @return array|false
+ */
+ public static function getStoredReferences( Title $title ) {
+ global $wgCiteStoreReferencesData;
+ if ( !$wgCiteStoreReferencesData ) {
+ return false;
+ }
+ $cache = ObjectCache::getMainWANInstance();
+ $key = $cache->makeKey( self::EXT_DATA_KEY, $title->getArticleID() );
+ return $cache->getWithSetCallback(
+ $key,
+ self::CACHE_DURATION_ONFETCH,
+ function ( $oldValue, &$ttl, array &$setOpts ) use ( $title ) {
+ $dbr = wfGetDB( DB_SLAVE );
+ $setOpts += Database::getCacheSetOptions( $dbr );
+ return self::recursiveFetchRefsFromDB( $title, $dbr );
+ },
+ array(
+ 'checkKeys' => array( $key ),
+ 'lockTSE' => 30,
+ )
+ );
+ }
+
+ /**
+ * Reconstructs compressed json by successively retrieving the properties references-1, -2, etc
+ * It attempts the next step when a decoding error occurs.
+ * Returns json_decoded uncompressed string, with validation of json
+ *
+ * @param Title $title
+ * @param DatabaseBase $dbr
+ * @param string $string
+ * @param int $i
+ * @return array|false
+ */
+ private static function recursiveFetchRefsFromDB( Title $title, DatabaseBase $dbr,
+ $string = '', $i = 1 ) {
+ $id = $title->getArticleID();
+ $result = $dbr->selectField(
+ 'page_props',
+ 'pp_value',
+ array(
+ 'pp_page' => $id,
+ 'pp_propname' => 'references-' . $i
+ ),
+ __METHOD__
+ );
+ if ( $result !== false ) {
+ $string .= $result;
+ $decodedString = gzdecode( $string );
+ if ( $decodedString !== false ) {
+ $json = json_decode( $decodedString, true );
+ if ( json_last_error() === JSON_ERROR_NONE ) {
+ return $json;
+ }
+ // corrupted json ?
+ // shouldn't happen since when string is truncated, gzdecode should fail
+ wfDebug( "Corrupted json detected when retrieving stored references for title id $id" );
+ }
+ // if gzdecode fails, try to fetch next references- property value
+ return self::recursiveFetchRefsFromDB( $title, $dbr, $string, ++$i );
+
+ } else {
+ // no refs stored in page_props at this index
+ if ( $i > 1 ) {
+ // shouldn't happen
+ wfDebug( "Failed to retrieve stored references for title id $id" );
+ }
+ return false;
+ }
+ }
+
+ /**#@-*/
+}
diff --git a/www/wiki/extensions/Cite/Gruntfile.js b/www/wiki/extensions/Cite/Gruntfile.js
new file mode 100644
index 00000000..4082717e
--- /dev/null
+++ b/www/wiki/extensions/Cite/Gruntfile.js
@@ -0,0 +1,83 @@
+/*!
+ * Grunt file
+ *
+ * @package Cite
+ */
+
+/* eslint-env node, es6 */
+
+module.exports = function ( grunt ) {
+ var conf = grunt.file.readJSON( 'extension.json' );
+
+ grunt.loadNpmTasks( 'grunt-banana-checker' );
+ grunt.loadNpmTasks( 'grunt-eslint' );
+ grunt.loadNpmTasks( 'grunt-jsonlint' );
+ grunt.loadNpmTasks( 'grunt-stylelint' );
+ grunt.loadNpmTasks( 'grunt-svgmin' );
+
+ grunt.initConfig( {
+ eslint: {
+ all: [
+ '**/*.js',
+ '{.jsduck,build}/**/*.js',
+ 'modules/**/*.js',
+ '!node_modules/**',
+ '!vendor/**'
+ ]
+ },
+ banana: conf.MessagesDirs,
+ stylelint: {
+ all: [
+ '**/*.css',
+ '**/*.less',
+ '!node_modules/**',
+ '!vendor/**'
+ ]
+ },
+ jsonlint: {
+ all: [
+ '**/*.json',
+ '!node_modules/**',
+ '!vendor/**'
+ ]
+ },
+ // SVG Optimization
+ svgmin: {
+ options: {
+ js2svg: {
+ pretty: true,
+ multipass: true
+ },
+ plugins: [ {
+ cleanupIDs: false
+ }, {
+ removeDesc: false
+ }, {
+ removeRasterImages: true
+ }, {
+ removeTitle: false
+ }, {
+ removeViewBox: false
+ }, {
+ removeXMLProcInst: false
+ }, {
+ sortAttrs: true
+ } ]
+ },
+ all: {
+ files: [ {
+ expand: true,
+ cwd: 'modules/ve-cite/icons',
+ src: [
+ '**/*.svg'
+ ],
+ dest: 'modules/ve-cite/icons/',
+ ext: '.svg'
+ } ]
+ }
+ }
+ } );
+
+ grunt.registerTask( 'test', [ 'eslint', 'stylelint', 'jsonlint', 'banana', 'svgmin' ] );
+ grunt.registerTask( 'default', 'test' );
+};
diff --git a/www/wiki/extensions/Cite/MIT-LICENSE.txt b/www/wiki/extensions/Cite/MIT-LICENSE.txt
new file mode 100644
index 00000000..ece90ddb
--- /dev/null
+++ b/www/wiki/extensions/Cite/MIT-LICENSE.txt
@@ -0,0 +1,25 @@
+Copyright (c) 2011-2018 VisualEditor Team's Cite sub-team and others
+under the terms of The MIT License (MIT), as follows:
+
+This software consists of voluntary contributions made by many
+individuals (AUTHORS.txt) For exact contribution history, see the
+revision history and logs, available at https://gerrit.wikimedia.org
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/www/wiki/extensions/Cite/README.md b/www/wiki/extensions/Cite/README.md
new file mode 100644
index 00000000..47a6345b
--- /dev/null
+++ b/www/wiki/extensions/Cite/README.md
@@ -0,0 +1,14 @@
+Cite
+=============
+
+The Cite extension provides a way for users to create references as footnotes to articles.
+
+See https://www.mediawiki.org/wiki/Extension:Cite for detailed documentation.
+
+Configuration
+-------------
+* `$wgCiteStoreReferencesData`: If set to true, references are saved in the database so that
+other extensions can retrieve them independently of the main article content.
+* `$wgCiteCacheReferencesDataOnParse`: (`$wgCiteStoreReferencesData` required) By default,
+references are cached only on database access. If set to true, references are also cached
+whenever pages are parsed.
diff --git a/www/wiki/extensions/Cite/SpecialCite.php b/www/wiki/extensions/Cite/SpecialCite.php
new file mode 100644
index 00000000..dc530259
--- /dev/null
+++ b/www/wiki/extensions/Cite/SpecialCite.php
@@ -0,0 +1,7 @@
+<?php
+
+trigger_error(
+ 'Special:Cite was moved to a separate CiteThisPage extension, ' .
+ 'see <https://www.mediawiki.org/wiki/Extension:CiteThisPage> for information on how to install it',
+ E_USER_WARNING
+);
diff --git a/www/wiki/extensions/Cite/citeParserTests.txt b/www/wiki/extensions/Cite/citeParserTests.txt
new file mode 100644
index 00000000..e1d66d40
--- /dev/null
+++ b/www/wiki/extensions/Cite/citeParserTests.txt
@@ -0,0 +1,603 @@
+# Force the test runner to ensure the extension is loaded
+!! hooks
+ref
+references
+!! endhooks
+
+!! test
+Simple <ref>, no <references/>
+!! input
+Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref>
+!! result
+Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
+</li>
+</ol>
+
+!! end
+
+!! test
+Simple <ref>, with <references/>
+!! input
+Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref>
+
+<references/>
+!! result
+<p>Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
+</li>
+</ol>
+
+!! end
+
+
+!! article
+Template:Simple template
+!! text
+A ''simple'' template.
+!! endarticle
+
+
+!! test
+<ref> with a simple template
+!! input
+Templating<ref>{{simple template}}</ref>
+
+<references/>
+!! result
+<p>Templating<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">A <i>simple</i> template.</span>
+</li>
+</ol>
+
+!! end
+
+!! test
+<ref> with a <nowiki>
+!! input
+Templating<ref><nowiki>{{simple template}}</nowiki></ref>
+
+<references/>
+!! result
+<p>Templating<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">{{simple template}}</span>
+</li>
+</ol>
+
+!! end
+
+
+!! test
+<ref> in a <nowiki>
+!! input
+Templating<nowiki><ref>{{simple template}}</ref></nowiki>
+
+<references/>
+!! result
+<p>Templating&lt;ref&gt;{{simple template}}&lt;/ref&gt;
+</p><p><br />
+</p>
+!! end
+
+!! test
+<ref> in a <!--comment-->
+!! input
+Templating<!--<ref>{{simple template}}</ref>-->
+
+<references/>
+!! result
+<p>Templating
+</p><p><br />
+</p>
+!! end
+
+!! test
+<!--comment--> in a <ref> (bug 5384)
+!! input
+Templating<ref>Text<!--comment--></ref>
+
+<references/>
+!! result
+<p>Templating<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Text</span>
+</li>
+</ol>
+
+!! end
+
+!! test
+<references> after <gallery> (bug 6164)
+!! input
+<ref>one</ref>
+
+<gallery>Image:Foobar.jpg</gallery>
+
+<references/>
+!! result
+<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+</p>
+<ul class="gallery mw-gallery-traditional">
+ <li class="gallerybox" style="width: 155px"><div style="width: 155px">
+ <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
+ <div class="gallerytext">
+ </div>
+ </div></li>
+</ul>
+<ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">one</span>
+</li>
+</ol>
+
+!! end
+
+!! test
+{{REVISIONID}} on page with <ref> (bug 6299)
+!! input
+{{REVISIONID}}<ref>elite</ref>
+!! result
+1337<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">elite</span>
+</li>
+</ol>
+
+!! end
+
+!! test
+{{REVISIONID}} on page without <ref> (bug 6299 sanity check)
+!! input
+{{REVISIONID}}
+!! result
+<p>1337
+</p>
+!! end
+
+!! test
+Ref with content followed by blank ref
+!! input
+<ref name="blank">content</ref>
+
+<ref name="blank"/>
+
+<references/>
+!! result
+<p><sup id="cite_ref-blank_1-0" class="reference"><a href="#cite_note-blank-1">&#91;1&#93;</a></sup>
+</p><p><sup id="cite_ref-blank_1-1" class="reference"><a href="#cite_note-blank-1">&#91;1&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-blank-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-blank_1-0">1.0</a></sup> <sup><a href="#cite_ref-blank_1-1">1.1</a></sup></span> <span class="reference-text">content</span>
+</li>
+</ol>
+
+!! end
+
+!! test
+Blank ref followed by ref with content
+!! input
+<ref name="blank"/>
+
+<ref name="blank">content</ref>
+
+<references/>
+!! result
+<p><sup id="cite_ref-blank_1-0" class="reference"><a href="#cite_note-blank-1">&#91;1&#93;</a></sup>
+</p><p><sup id="cite_ref-blank_1-1" class="reference"><a href="#cite_note-blank-1">&#91;1&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-blank-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-blank_1-0">1.0</a></sup> <sup><a href="#cite_ref-blank_1-1">1.1</a></sup></span> <span class="reference-text">content</span>
+</li>
+</ol>
+
+!! end
+
+!! test
+Regression: non-blank ref "0" followed by ref with content
+!! input
+<ref name="blank">0</ref>
+
+<ref name="blank">content</ref>
+
+<references/>
+!! result
+<p><sup id="cite_ref-blank_1-0" class="reference"><a href="#cite_note-blank-1">&#91;1&#93;</a></sup>
+</p><p><sup id="cite_ref-blank_1-1" class="reference"><a href="#cite_note-blank-1">&#91;1&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-blank-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-blank_1-0">1.0</a></sup> <sup><a href="#cite_ref-blank_1-1">1.1</a></sup></span> <span class="reference-text">0 <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag; name "blank" defined multiple times with different content</span></span>
+</li>
+</ol>
+
+!! end
+
+!! test
+Regression sanity check: non-blank ref "1" followed by ref with content
+!! input
+<ref name="blank">1</ref>
+
+<ref name="blank">content</ref>
+
+<references/>
+!! result
+<p><sup id="cite_ref-blank_1-0" class="reference"><a href="#cite_note-blank-1">&#91;1&#93;</a></sup>
+</p><p><sup id="cite_ref-blank_1-1" class="reference"><a href="#cite_note-blank-1">&#91;1&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-blank-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-blank_1-0">1.0</a></sup> <sup><a href="#cite_ref-blank_1-1">1.1</a></sup></span> <span class="reference-text">1 <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag; name "blank" defined multiple times with different content</span></span>
+</li>
+</ol>
+
+!! end
+
+!! test
+Ref names containing a number
+!! input
+<ref name="test123test">One</ref>
+<ref name="123test">Two</ref>
+<ref name="test123">Three</ref>
+
+<references />
+!! result
+<p><sup id="cite_ref-test123test_1-0" class="reference"><a href="#cite_note-test123test-1">&#91;1&#93;</a></sup>
+<sup id="cite_ref-123test_2-0" class="reference"><a href="#cite_note-123test-2">&#91;2&#93;</a></sup>
+<sup id="cite_ref-test123_3-0" class="reference"><a href="#cite_note-test123-3">&#91;3&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-test123test-1"><span class="mw-cite-backlink"><a href="#cite_ref-test123test_1-0">↑</a></span> <span class="reference-text">One</span>
+</li>
+<li id="cite_note-123test-2"><span class="mw-cite-backlink"><a href="#cite_ref-123test_2-0">↑</a></span> <span class="reference-text">Two</span>
+</li>
+<li id="cite_note-test123-3"><span class="mw-cite-backlink"><a href="#cite_ref-test123_3-0">↑</a></span> <span class="reference-text">Three</span>
+</li>
+</ol>
+
+!! end
+
+!! test
+Erroneous refs
+!! input
+<ref name="0">Zero</ref>
+
+<ref>Also zero, but differently! (Normal ref)</ref>
+
+<ref />
+
+<ref name="foo" name="bar" />
+
+<ref name="blankwithnoreference" />
+
+<references name="quasit" />
+
+<references />
+!! result
+<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+name cannot be a simple integer. Use a descriptive title</span>
+</p><p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+</p><p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: The opening <code>&lt;ref&gt;</code> tag is malformed or has a bad name</span>
+</p><p><sup id="cite_ref-bar_2-0" class="reference"><a href="#cite_note-bar-2">&#91;2&#93;</a></sup>
+</p><p><sup id="cite_ref-blankwithnoreference_3-0" class="reference"><a href="#cite_note-blankwithnoreference-3">&#91;3&#93;</a></sup>
+</p><p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;references&gt;</code> tag;
+parameter "group" is allowed only.
+Use <code>&lt;references /&gt;</code>, or <code>&lt;references group="..." /&gt;</code></span>
+</p>
+<ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Also zero, but differently! (Normal ref)</span>
+</li>
+<li id="cite_note-bar-2"><span class="mw-cite-backlink"><a href="#cite_ref-bar_2-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+no text was provided for refs named <code>bar</code></span></li>
+<li id="cite_note-blankwithnoreference-3"><span class="mw-cite-backlink"><a href="#cite_ref-blankwithnoreference_3-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+no text was provided for refs named <code>blankwithnoreference</code></span></li>
+</ol>
+
+!! end
+
+
+!! test
+Simple <ref>, with <references/> in group
+!! input
+Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref>
+Wikipedia rocks!<ref group=note>Proceeds of Rockology, vol. XXI</ref>
+
+<references/>
+<references group=note/>
+!! result
+<p>Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+Wikipedia rocks!<sup id="cite_ref-2" class="reference"><a href="#cite_note-2">&#91;note 1&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
+</li>
+</ol>
+<ol class="references">
+<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
+</li>
+</ol>
+
+!! end
+
+!! test
+Simple <ref>, with <references/> in group, with groupname in Chinese
+!! input
+AAA<ref group="参">ref a</ref>BBB<ref group="注">note b</ref>CCC<ref group="参">ref c</ref>
+
+;refs
+<references group="参" />
+;notes
+<references group="注" />
+!! result
+<p>AAA<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;参 1&#93;</a></sup>BBB<sup id="cite_ref-2" class="reference"><a href="#cite_note-2">&#91;注 1&#93;</a></sup>CCC<sup id="cite_ref-3" class="reference"><a href="#cite_note-3">&#91;参 2&#93;</a></sup>
+</p>
+<dl><dt>refs</dt></dl>
+<ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">ref a</span>
+</li>
+<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text">ref c</span>
+</li>
+</ol>
+<dl><dt>notes</dt></dl>
+<ol class="references">
+<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">note b</span>
+</li>
+</ol>
+
+!! end
+
+!! test
+<ref> defined in <references>
+!! input
+<ref name="foo"/>
+
+<references>
+<ref name="foo">BAR</ref>
+</references>
+!! result
+<p><sup id="cite_ref-foo_1-0" class="reference"><a href="#cite_note-foo-1">&#91;1&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-foo-1"><span class="mw-cite-backlink"><a href="#cite_ref-foo_1-0">↑</a></span> <span class="reference-text">BAR</span>
+</li>
+</ol>
+
+!! end
+
+!! test
+<ref> defined in <references> called with #tag
+!! input
+<ref name="foo"/>
+
+{{#tag:references|
+<ref name="foo">BAR</ref>
+}}
+!! result
+<p><sup id="cite_ref-foo_1-0" class="reference"><a href="#cite_note-foo-1">&#91;1&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-foo-1"><span class="mw-cite-backlink"><a href="#cite_ref-foo_1-0">↑</a></span> <span class="reference-text">BAR</span>
+</li>
+</ol>
+
+!! end
+
+!! test
+<ref> defined in <references> error conditions
+!! input
+<ref name="foo" group="2"/>
+
+<references group="2">
+<ref name="foo"/>
+<ref name="unused">BAR</ref>
+<ref name="foo" group="1">bad group</ref>
+<ref>BAR BAR</ref>
+</references>
+!! result
+<p><sup id="cite_ref-foo_1-0" class="reference"><a href="#cite_note-foo-1">&#91;2 1&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-foo-1"><span class="mw-cite-backlink"><a href="#cite_ref-foo_1-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+no text was provided for refs named <code>foo</code></span></li>
+</ol>
+<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code>&lt;ref&gt;</code> tag with name "unused" defined in <code>&lt;references&gt;</code> is not used in prior text.</span><br />
+<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code>&lt;ref&gt;</code> tag in <code>&lt;references&gt;</code> has conflicting group attribute "1".</span><br />
+<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code>&lt;ref&gt;</code> tag defined in <code>&lt;references&gt;</code> has no name attribute.</span>
+</p>
+!! end
+
+!! article
+MediaWiki:cite_link_label_group-klingon
+!! text
+wa' cha' wej loS vagh jav Soch chorgh Hut wa'maH
+!! endarticle
+
+!! test
+<ref> with custom group link with number names in Klingon
+!! input
+Wikipedia rocks!<ref group="klingon">Proceeds of Rockology, vol. XXI</ref>
+
+<references group="klingon"/>
+!! result
+<p>Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;wa'&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
+</li>
+</ol>
+
+!! end
+
+!! test
+Bug 31374 regression check: nested strip items
+!! input
+{{#tag:ref|note<ref>reference</ref>|group=Note}}
+<references group=Note />
+<references />
+!! result
+<p><sup id="cite_ref-2" class="reference"><a href="#cite_note-2">&#91;Note 1&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">note<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup></span>
+</li>
+</ol>
+<ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">reference</span>
+</li>
+</ol>
+
+!! end
+
+!! test
+Bug 13073 regression check: wrapped <references>
+!! input
+<ref>
+foo
+</ref>
+<div><references /></div>
+!! result
+<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+</p>
+<div><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">
+foo</span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+<ref> with no name and no content.
+!! input
+Bla.<ref></ref>
+!! result
+<p>Bla.<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+refs with no name must have content</span>
+</p>
+!! end
+
+!! test
+<ref> with an empty-string name parameter and no content.
+!! input
+Bla.<ref name=""></ref>
+!! result
+<p>Bla.<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+refs with no name must have content</span>
+</p>
+!! end
+
+!! test
+<ref> with a non-empty name parameter and no content.
+!! input
+Bla.<ref name="void"></ref>
+!! result
+Bla.<sup id="cite_ref-void_1-0" class="reference"><a href="#cite_note-void-1">&#91;1&#93;</a></sup><ol class="references">
+<li id="cite_note-void-1"><span class="mw-cite-backlink"><a href="#cite_ref-void_1-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+no text was provided for refs named <code>void</code></span></li>
+</ol>
+
+!! end
+
+!! test
+<ref>s with the follow parameter
+!! input
+Page one.<ref name="beginning">First page footnote text.</ref>
+
+Page two.<ref follow="beginning">Second page footnote text.</ref>
+
+== References ==
+<references />
+!! result
+<p>Page one.<sup id="cite_ref-beginning_1-0" class="reference"><a href="#cite_note-beginning-1">&#91;1&#93;</a></sup>
+</p><p>Page two.
+</p>
+<h2><span class="mw-headline" id="References">References</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: References">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<ol class="references">
+<li id="cite_note-beginning-1"><span class="mw-cite-backlink"><a href="#cite_ref-beginning_1-0">↑</a></span> <span class="reference-text">First page footnote text. Second page footnote text.</span>
+</li>
+</ol>
+
+!! end
+
+!! test
+<ref> with both name and follow parameters - invalid
+!! input
+Page one.<ref name="the-name" follow="the-name">This ref is invalid.</ref>
+<references />
+!! result
+<p>Page one.<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+invalid names, e.g. too many</span>
+</p>
+!! end
+
+!! test
+Multiple definition (outside <references/>)
+!! input
+<ref name=a>abc</ref>
+<ref name=a>def</ref>
+<references />
+!! result
+<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">&#91;1&#93;</a></sup>
+<sup id="cite_ref-a_1-1" class="reference"><a href="#cite_note-a-1">&#91;1&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-a-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-a_1-0">1.0</a></sup> <sup><a href="#cite_ref-a_1-1">1.1</a></sup></span> <span class="reference-text">abc <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag; name "a" defined multiple times with different content</span></span>
+</li>
+</ol>
+
+!! end
+
+!! test
+Multiple definition (inside <references/>)
+!! input
+<ref name=a />
+<references>
+<ref name=a>abc</ref>
+<ref name=a>def</ref>
+</references>
+!! result
+<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">&#91;1&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-a-1"><span class="mw-cite-backlink"><a href="#cite_ref-a_1-0">↑</a></span> <span class="reference-text">abc <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag; name "a" defined multiple times with different content</span></span>
+</li>
+</ol>
+
+!! end
+
+!! test
+Multiple definition (mixed outside/inside)
+!! input
+<ref name=a>abc</ref>
+<references>
+<ref name=a>def</ref>
+</references>
+!! result
+<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">&#91;1&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-a-1"><span class="mw-cite-backlink"><a href="#cite_ref-a_1-0">↑</a></span> <span class="reference-text">abc <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag; name "a" defined multiple times with different content</span></span>
+</li>
+</ol>
+
+!! end
+
+!! test
+Multiple definition (inside {{#tag:references}})
+!! input
+<ref name=a />
+{{#tag:references|
+<ref name=a>abc</ref>
+<ref name=a>def</ref>
+}}
+!! result
+<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">&#91;1&#93;</a></sup>
+</p>
+<ol class="references">
+<li id="cite_note-a-1"><span class="mw-cite-backlink"><a href="#cite_ref-a_1-0">↑</a></span> <span class="reference-text">abc <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag; name "a" defined multiple times with different content</span></span>
+</li>
+</ol>
+
+!! end
diff --git a/www/wiki/extensions/Cite/composer.json b/www/wiki/extensions/Cite/composer.json
new file mode 100644
index 00000000..fea33bfd
--- /dev/null
+++ b/www/wiki/extensions/Cite/composer.json
@@ -0,0 +1,23 @@
+{
+ "require-dev": {
+ "jakub-onderka/php-parallel-lint": "1.0.0",
+ "mediawiki/mediawiki-codesniffer": "18.0.0",
+ "jakub-onderka/php-console-highlighter": "0.3.2",
+ "mediawiki/minus-x": "0.3.1",
+ "mediawiki/mediawiki-phan-config": "0.2.0"
+ },
+ "scripts": {
+ "test": [
+ "parallel-lint . --exclude node_modules --exclude vendor",
+ "phpcs -p -s",
+ "minus-x check ."
+ ],
+ "fix": [
+ "phpcbf",
+ "minus-x fix ."
+ ]
+ },
+ "extra": {
+ "phan-taint-check-plugin": "1.1.0"
+ }
+}
diff --git a/www/wiki/extensions/Cite/extension.json b/www/wiki/extensions/Cite/extension.json
new file mode 100644
index 00000000..092f9dc0
--- /dev/null
+++ b/www/wiki/extensions/Cite/extension.json
@@ -0,0 +1,116 @@
+{
+ "name": "Cite",
+ "author": [
+ "Ævar Arnfjörð Bjarmason",
+ "Andrew Garrett",
+ "Brion Vibber",
+ "Ed Sanders",
+ "Marius Hoch",
+ "Steve Sanbeg",
+ "Trevor Parscal",
+ "..."
+ ],
+ "url": "https://www.mediawiki.org/wiki/Extension:Cite",
+ "descriptionmsg": "cite-desc",
+ "license-name": "GPL-2.0-or-later",
+ "type": "parserhook",
+ "requires": {
+ "MediaWiki": ">= 1.30.0"
+ },
+ "MessagesDirs": {
+ "cite": "i18n",
+ "ve-cite": "modules/ve-cite/i18n"
+ },
+ "APIPropModules": {
+ "references": {
+ "class": "ApiQueryReferences"
+ }
+ },
+ "Hooks": {
+ "ParserFirstCallInit": [
+ "Cite::setHooks"
+ ],
+ "ContentHandlerDefaultModelFor": [
+ "CiteHooks::onContentHandlerDefaultModelFor"
+ ],
+ "ResourceLoaderTestModules": [
+ "CiteHooks::onResourceLoaderTestModules"
+ ],
+ "ResourceLoaderRegisterModules": [
+ "CiteHooks::onResourceLoaderRegisterModules"
+ ],
+ "LinksUpdate": [
+ "CiteHooks::onLinksUpdate"
+ ],
+ "LinksUpdateComplete": [
+ "CiteHooks::onLinksUpdateComplete"
+ ],
+ "ResourceLoaderGetConfigVars": [
+ "CiteHooks::onResourceLoaderGetConfigVars"
+ ],
+ "APIQuerySiteInfoGeneralInfo": "CiteHooks::onAPIQuerySiteInfoGeneralInfo"
+ },
+ "ResourceModules": {
+ "ext.cite.styles": {
+ "styles": {
+ "ext.cite.styles.css": {},
+ "ext.cite.print.css": {
+ "media": "print"
+ }
+ },
+ "skinStyles": {
+ "minerva": "ext.cite.styles.minerva.less"
+ },
+ "targets": [
+ "desktop",
+ "mobile"
+ ]
+ },
+ "ext.cite.a11y": {
+ "scripts": "ext.cite.a11y.js",
+ "styles": "ext.cite.a11y.css",
+ "messages": [
+ "cite_references_link_accessibility_label",
+ "cite_references_link_many_accessibility_label"
+ ]
+ },
+ "ext.cite.style": {
+ "class": "CiteCSSFileModule",
+ "styles": "ext.cite.style.css",
+ "targets": [
+ "desktop",
+ "mobile"
+ ]
+ }
+ },
+ "ResourceFileModulePaths": {
+ "localBasePath": "modules",
+ "remoteExtPath": "Cite/modules"
+ },
+ "VisualEditorPluginModules": [
+ "ext.cite.visualEditor"
+ ],
+ "ConfigRegistry": {
+ "cite": "GlobalVarConfig::newInstance"
+ },
+ "config": {
+ "CiteStoreReferencesData": false,
+ "CiteCacheReferencesDataOnParse": false,
+ "CiteVisualEditorOtherGroup": false,
+ "CiteResponsiveReferences": true
+ },
+ "AutoloadClasses": {
+ "ApiQueryReferences": "includes/ApiQueryReferences.php",
+ "Cite": "includes/Cite.php",
+ "CiteHooks": "includes/CiteHooks.php",
+ "CiteDataModule": "includes/CiteDataModule.php",
+ "CiteCSSFileModule": "includes/CiteCSSFileModule.php"
+ },
+ "TrackingCategories": [
+ "cite-tracking-category-cite-error"
+ ],
+ "CodeMirrorTagModes": {
+ "ref": "text/mediawiki"
+ },
+ "manifest_version": 1
+}
diff --git a/www/wiki/extensions/Cite/i18n/ace.json b/www/wiki/extensions/Cite/i18n/ace.json
new file mode 100644
index 00000000..e446c923
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ace.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Si Gam Acèh"
+ ]
+ },
+ "cite_error": "Salah kutip: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ady-cyrl.json b/www/wiki/extensions/Cite/i18n/ady-cyrl.json
new file mode 100644
index 00000000..23dba394
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ady-cyrl.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "SmartNart12"
+ ]
+ },
+ "cite_error": "Цитэ къуанч: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/af.json b/www/wiki/extensions/Cite/i18n/af.json
new file mode 100644
index 00000000..473b93e8
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/af.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Naudefj",
+ "Arnobarnard",
+ "Fwolff"
+ ]
+ },
+ "cite-desc": "Maak <nowiki><ref[ name=id]></nowiki> en <nowiki><references/></nowiki> etikette beskikbaar vir sitasie.",
+ "cite_error": "Verwysingfout: $1",
+ "cite_error_ref_numeric_key": "Ongeldige etiket <code>&lt;ref&gt;</code>;\ndie naam kan nie 'n eenvoudige heelgetal wees nie.\nGebruik 'n beskrywende titel",
+ "cite_error_ref_no_key": "Ongeldige etiket <code>&lt;ref&gt;</code>;\n\"refs\" sonder inhoud moet 'n naam hê",
+ "cite_error_ref_too_many_keys": "Ongeldig <code>&lt;ref&gt;</code>-etiket;\nongeldige name, byvoorbeeld te veel",
+ "cite_section_preview_references": "Voorskou van verwysings"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ais.json b/www/wiki/extensions/Cite/i18n/ais.json
new file mode 100644
index 00000000..389099eb
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ais.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bunukwiki",
+ "Benel",
+ "Tokoabibi"
+ ]
+ },
+ "cite-desc": "midama <nowiki><ref[ name=id]></nowiki> atu <nowiki><references/></nowiki> aazihen-paya, kapah pabacuen miazih tu tatenga’ay nasulitan",
+ "cite_error": "nicaliwan mungangaw: $1",
+ "cite_error_ref_numeric_key": "la’cus <code>&lt;ref&gt;</code> aazihen-paya, kya susin amama pisaungay asip-bacu, pisaungay taneng misapuelac lacul a satangahan",
+ "cite_error_ref_no_key": "<code>&lt;ref&gt;</code> aazihen-paya angangan a kese mungangaw saca kalungangan caay kalucek.",
+ "cite_error_ref_too_many_keys": "la’cusay <code>&lt;ref&gt;</code> aazihen-paya, la’cusay name susin sulyang, hakay kalungangan tadatanayu’.",
+ "cite_error_ref_no_input": "la’cusay <code>&lt;ref&gt;</code> aazihen-paya, inayi’ ku name susin sa kanca izaway aazihen-paya lacul",
+ "cite_error_references_no_backlink_label": "pakuniza misanga’ mabelih masasiket aazihen-paya tatebanan nu nisulitan mahmintu.\ni <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> satetek yadahay a aazihen-paya tatebanan nu nisulitan.",
+ "cite_error_no_link_label_group": "luyaluy \"$1\" a pakuniza misanga’ masasiket aazihen-paya tatebanan nu nisulitan mahemintu.\npisatetek i <nowiki>[[MediaWiki:$2]]</nowiki> yadahay a aazihen-paya tatebanan nu nisulitan.",
+ "cite_error_references_no_text": "la’cusay <code>&lt;ref&gt;</code> aazihen-paya,\ncaay satetek kalungangan ku <code>$1</code> a miazih tu tatenga’ay nasulitan lacul sulit.",
+ "cite_error_included_ref": "caay kataneng <code>&lt;ref&gt;</code>aazihen-paya a pahezek aazihen-paya <code>&lt;/ref&gt;</code>",
+ "cite_error_group_refs_without_references": "pisaungay luyaluy kalungangan \"$1\" a <code>&lt;ref&gt;</code> aazihen-paya mamueneng tu, caykatepa patatapalen a <code>&lt;references group=\"$1\"/&gt;</code> aazihen-paya,saca caay kataneng <code>&lt;/ref&gt;</code> pahezek aazihen-paya.",
+ "cite_error_references_group_mismatch": "i <code>&lt;references&gt;</code> a <code>&lt;ref&gt;</code> aazihen-paya group susin sasula’cus \"$1\"",
+ "cite_error_references_missing_group": "ihekal nu <code>&lt;ref&gt;</code> satetekay a<code>&lt;references&gt;</code> aazihen-paya izaw ku setin group susin ku \"$1\", uyzasa iayaway a sulit caay misaungay.",
+ "cite_error_references_missing_key": "i <code>&lt;references&gt;</code> satetekay a <code>&lt;ref&gt;</code> aazihen-paya misetin name susin ku \"$1\", uyzasa iayaway a sulit caay henay misaungay.",
+ "cite_error_references_no_key": "<code>&lt;references&gt;</code> satetekay <code>&lt;ref&gt;</code> inayi’ misetin name susin",
+ "cite_error_empty_references_define": "<code>&lt;references&gt;</code> misatetekay a <code>&lt;ref&gt;</code> a name susin \"$1\" inayi’ amahicahica a lacul",
+ "cite-tracking-category-cite-error": "miazih tu tatenga’ay a saangangan mungangaw a kasabelih",
+ "cite-tracking-category-cite-error-desc": "ilabu tina kakuniza a kasabelih miazih tu tatenga’ay saangangan saungay izaw ku mungangaw.",
+ "cite_references_link_accessibility_label": "palimad i",
+ "cite_references_link_many_accessibility_label": "milimad ta:",
+ "cite_section_preview_references": "pataayaway miazih miazih tu tatenga’ay nasulitan",
+ "cite_warning": "nicaliwan patalaw:$1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/an.json b/www/wiki/extensions/Cite/i18n/an.json
new file mode 100644
index 00000000..653b155c
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/an.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Juanpabl"
+ ]
+ },
+ "cite-desc": "Adibe as etiquetas <nowiki><ref[ name=id]></nowiki> y <nowiki><references/></nowiki> ta fer citas",
+ "cite_error": "Error en a cita: $1",
+ "cite_error_ref_numeric_key": "Etiqueta <code>&lt;ref&gt;</code> incorreuta; o nombre d'a etiqueta no puede estar un numero entero, faiga servir un títol descriptivo",
+ "cite_error_ref_no_key": "Etiqueta <code>&lt;ref&gt;</code> incorreuta; as referencias sin de conteniu han de tener un nombre",
+ "cite_error_ref_too_many_keys": "Etiqueta <code>&lt;ref&gt;</code> incorreuta; nombres de parametros incorreutos.",
+ "cite_error_ref_no_input": "Etiqueta <code>&lt;ref&gt;</code> incorreuta; as referencias sin nombre no han de tener conteniu",
+ "cite_error_references_invalid_parameters": "Etiqueta <code>&lt;references&gt;</code> incorreuta; no se premiten parametros, faiga servir <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Ya no quedan etiquetas backlink presonalizatas, defina más en o mensache <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "S'han acorau as etiquetas de vinclos personalizaus ta o grupo \"$1\".\nDefina-ne mas en o mensache <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Etiqueta <code>&lt;ref&gt;</code> incorreuta; no ha escrito garra testo t'as referencias nombratas <code>$1</code>",
+ "cite_error_included_ref": "Zarrando <code>&lt;/ref&gt;</code> falta una etiqueta <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Existen etiquetas <code>&lt;ref&gt;</code> ta un grupo clamau \"$1\", pero no se trobó garra etiqueta <code>&lt;references group=\"$1\"/&gt;</code>",
+ "cite_error_references_group_mismatch": "O tag <code>&lt;ref&gt;</code> en <code>&lt;references&gt;</code> presienta l'atributo de grupo en conflicto \"$1\".",
+ "cite_error_references_missing_group": "O tag <code>&lt;ref&gt;</code> definiu en <code>&lt;references&gt;</code> incluye l'atributo \"$1\" no declarau en o texto precedente.",
+ "cite_error_references_missing_key": "O tag <code>&lt;ref&gt;</code> con nombre \"$1\" definiu en <code>&lt;references&gt;</code> no s'emplega en o texto precedente.",
+ "cite_error_references_no_key": "O tag <code>&lt;ref&gt;</code> definiu en <code>&lt;references&gt;</code> no tiene garra atributo de nombre.",
+ "cite_error_empty_references_define": "O tag <code>&lt;ref&gt;</code> definiu en <code>&lt;references&gt;</code> con nombre \"$1\" no tiene garra conteniu."
+}
diff --git a/www/wiki/extensions/Cite/i18n/anp.json b/www/wiki/extensions/Cite/i18n/anp.json
new file mode 100644
index 00000000..09f0f008
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/anp.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Angpradesh"
+ ]
+ },
+ "cite_error": "सन्दर्भ त्रुटि: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ar.json b/www/wiki/extensions/Cite/i18n/ar.json
new file mode 100644
index 00000000..676a9cef
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ar.json
@@ -0,0 +1,43 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aiman titi",
+ "Asaifm",
+ "Meno25",
+ "OsamaK",
+ "زكريا",
+ "محمد أحمد عبد الفتاح"
+ ]
+ },
+ "apihelp-query+references-description": "يرجع تمثيل لبيانات المراجع المرتبطة مع الصفحات المعطاة.",
+ "apihelp-query+references-summary": "يرجع تمثيل بيانات للمراجع المصاحبة للصفحات المعطاة.",
+ "apihelp-query+references-example-1": "المراجع المرتبطة ب<kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "تخزين مراجع امتداد Cite غير مفعل.",
+ "cite-desc": "يضيف وسوم <nowiki><ref[ name=id]></nowiki> و <nowiki><references/></nowiki> ، للاستشهادات",
+ "cite_error": "خطأ استشهاد: $1",
+ "cite_error_ref_numeric_key": "وسم <code>&lt;ref&gt;</code> غير صحيح؛\nالاسم لا يمكن أن يكون عددا صحيحا بسيطا. استخدم عنوانا وصفيا",
+ "cite_error_ref_no_key": "وسم الفتح <code>&lt;ref&gt;</code> غير صحيح أو له اسم سييء.",
+ "cite_error_ref_too_many_keys": "وسم <code>&lt;ref&gt;</code> غير صحيح؛\nأسماء غير صحيحة، على سبيل المثال كثيرة جدا",
+ "cite_error_ref_no_input": "وسم <code>&lt;ref&gt;</code> غير صحيح؛\nالمراجع غير ذات الاسم يجب أن تمتلك محتوى",
+ "cite_error_references_duplicate_key": "وسم <code>&lt;ref&gt;</code> غير صالح؛ الاسم \"$1\" معرف أكثر من مرة بمحتويات مختلفة.",
+ "cite_error_references_invalid_parameters": "محدد غير صحيح في وسم <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "نفدت علامات الوصلات الراجعة المخصصة.\nعرف المزيد في رسالة <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "تم الإنتهاء من تسمية الارتباطات المخصصة لمجموعة \"$1\".\n\nللحصول على تعريف أكثر أنظر هذه <nowiki>[[MediaWiki:$2]]</nowiki> الرسالة.",
+ "cite_error_references_no_text": "وسم <code>&lt;ref&gt;</code> غير صحيح؛\nلا نص تم توفيره للمراجع المسماة <code>$1</code>",
+ "cite_error_included_ref": "إغلاق <code>&lt;/ref&gt;</code> مفقود لوسم <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "وسوم <code>&lt;ref&gt;</code> موجودة لمجموعة اسمها \"$1\"، ولكن لم يتم العثور على وسم <code>&lt;references group=\"$1\"/&gt;</code> أو هناك وسم <code>&lt;/ref&gt;</code> ناقص",
+ "cite_error_references_group_mismatch": "الوسم <code>&lt;ref&gt;</code> في <code>&lt;references&gt;</code> فيه خاصية group متضاربة \"$1\".",
+ "cite_error_references_missing_group": "الوسم <code>&lt;ref&gt;</code> المُعرّف في <code>&lt;references&gt;</code> فيه خاصية group \"$1\" التي لا تظهر في النص السابق.",
+ "cite_error_references_missing_key": "الوسم <code>&lt;ref&gt;</code> ذو الاسم \"$1\" المُعرّف في <code>&lt;references&gt;</code> غير مستخدم في النص السابق.",
+ "cite_error_references_no_key": "الوسم <code>&lt;ref&gt;</code> المعرف في <code>&lt;references&gt;</code> ليس له خاصة اسم.",
+ "cite_error_empty_references_define": "الوسم <code>&lt;ref&gt;</code> المُعرّف في <code>&lt;references&gt;</code> بالاسم \"$1\" ليس له محتوى.",
+ "cite-tracking-category-cite-error": "صفحات بأخطاء في المراجع",
+ "cite-tracking-category-cite-error-desc": "الصفحات في هذا التصنيف بها أخطاء في استخدام وسوم المراجع.",
+ "cite_references_link_many": "<li id=\"$1\"><span class=\"mw-cite-backlink\"><b>^</b> $2</span> $3</li>",
+ "cite_references_link_many_format_backlink_labels": "أ ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي أأ أب أت أث أج أح أخ أد أذ أر أز أس أش أص أض أط أظ أع أغ أف أق أك أل أم أن أه أو أي بأ بب بت بث بج بح بخ بد بذ بر بز بس بش بص بض بط بظ بع بغ بف بق بك بل بم بن به بو بي تأ تب تت تث تج تح تخ تد تذ تر تز تس تش تص تض تط تظ تع تغ تف تق تك تل تم تن ته تو تي ثأ ثب ثت ثث ثج ثح ثخ ثد ثذ ثر ثز ثس ثش ثص ثض ثط ثظ ثع ثغ ثف ثق ثك ثل ثم ثن ثه ثو ثي جأ جب جت جث جج جح جخ جد جذ جر جز جس جش جص جض جط جظ جع جغ جف جق جك جل جم جن جه جو جي حأ حب حت حث حج حح حخ حد حذ حر حز حس حش حص حض حط حظ حع حغ حف حق حك حل حم حن حه حو حي خأ خب خت خث خج خح خخ خد خذ خر خز خس خش خص خض خط خظ خع خغ خف خق خك خل خم خن خه خو خي دأ دب دت دث دج دح دخ دد دذ در دز دس دش دص دض دط دظ دع دغ دف دق دك دل دم دن ده دو دي ذأ ذب ذت ذث ذج ذح ذخ ذد ذذ ذر ذز ذس ذش ذص ذض ذط ذظ ذع ذغ ذف ذق ذك ذل ذم ذن ذه ذو ذي رأ رب رت رث رج رح رخ رد رذ رر رز رس رش رص رض رط رظ رع رغ رف رق رك رل رم رن ره رو ري زأ زب زت زث زج زح زخ زد زذ زر زز زس زش زص زض زط زظ زع زغ زف زق زك زل زم زن زه زو زي سأ سب ست سث سج سح سخ سد سذ سر سز سس سش سص سض سط سظ سع سغ سف سق سك سل سم سن سه سو سي شأ شب شت شث شج شح شخ شد شذ شر شز شس شش شص شض شط شظ شع شغ شف شق شك شل شم شن شه شو شي صأ صب صت صث صج صح صخ صد صذ صر صز صس صش صص صض صط صظ صع صغ صف صق صك صل صم صن صه صو صي ضأ ضب ضت ضث ضج ضح ضخ ضد ضذ ضر ضز ضس ضش ضص ضض ضط ضظ ضع ضغ ضف ضق ضك ضل ضم ضن ضه ضو ضي طأ طب طت طث طج طح طخ طد طذ طر طز طس طش طص طض طط طظ طع طغ طف طق طك طل طم طن طه طو طي ظأ ظب ظت ظث ظج ظح ظخ ظد ظذ ظر ظز ظس ظش ظص ظض ظط ظظ ظع ظغ ظف ظق ظك ظل ظم ظن ظه ظو ظي عأ عب عت عث عج عح عخ عد عذ عر عز عس عش عص عض عط عظ عع عغ عف عق عك عل عم عن عه عو عي غأ غب غت غث غج غح غخ غد غذ غر غز غس غش غص غض غط غظ غع غغ غف غق غك غل غم غن غه غو غي فأ فب فت فث فج فح فخ فد فذ فر فز فس فش فص فض فط فظ فع فغ فف فق فك فل فم فن فه فو في قأ قب قت قث قج قح قخ قد قذ قر قز قس قش قص قض قط قظ قع قغ قف قق قك قل قم قن قه قو قي كأ كب كت كث كج كح كخ كد كذ كر كز كس كش كص كض كط كظ كع كغ كف كق كك كل كم كن كه كو كي لأ لب لت لث لج لح لخ لد لذ لر لز لس لش لص لض لط لظ لع لغ لف لق لك لل لم لن له لو لي مأ مب مت مث مج مح مخ مد مذ مر مز مس مش مص مض مط مظ مع مغ مف مق مك مل مم من مه مو مي نأ نب نت نث نج نح نخ ند نذ نر نز نس نش نص نض نط نظ نع نغ نف نق نك نل نم نن نه نو ني هأ هب هت هث هج هح هخ هد هذ هر هز هس هش هص هض هط هظ هع هغ هف هق هك هل هم هن هه هو هي وأ وب وت وث وج وح وخ ود وذ ور وز وس وش وص وض وط وظ وع وغ وف وق وك ول وم ون وه وو وي يأ يب يت يث يج يح يخ يد يذ ير يز يس يش يص يض يط يظ يع يغ يف يق يك يل يم ين يه يو يي",
+ "cite_references_link_accessibility_label": "تعدى المحتوى الحالي إلى أعلى الصفحة",
+ "cite_references_link_many_accessibility_label": "تعدى إلى الأعلى ل:",
+ "cite_section_preview_references": "معاينة المراجع",
+ "cite_warning": "تحذير استشهاد: $1",
+ "cite_warning_sectionpreview_no_text": "لا يمكن معاينة الوسم <code>&lt;ref&gt;</code> الذي يحمل اسم <code>$1</code> لأنه معرف خارج القسم الحالي أو غير معرف على الإطلاق."
+}
diff --git a/www/wiki/extensions/Cite/i18n/arc.json b/www/wiki/extensions/Cite/i18n/arc.json
new file mode 100644
index 00000000..783d13c7
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/arc.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Basharh"
+ ]
+ },
+ "cite_error": "ܦܘܕܐ ܒܡܣܗܕܢܘܬܐ: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/arq.json b/www/wiki/extensions/Cite/i18n/arq.json
new file mode 100644
index 00000000..4c747fc7
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/arq.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Oldstoneage"
+ ]
+ },
+ "cite_error": "غلطة فل قوالات المنسوبة: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/arz.json b/www/wiki/extensions/Cite/i18n/arz.json
new file mode 100644
index 00000000..34cfa640
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/arz.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ghaly",
+ "Meno25",
+ "Ramsis II"
+ ]
+ },
+ "cite-desc": "بيضيف التاجز <nowiki><ref[ name=id]></nowiki> و <nowiki><references/></nowiki> ، للاستشهاد",
+ "cite_error": "المرجع غلط: $1",
+ "cite_error_ref_numeric_key": "التاج <code>&lt;ref&gt;</code> مش صحيح؛\nالاسم ماينفعش يكون عدد صحيح بسيط. استخدم عنوان بيوصف",
+ "cite_error_ref_no_key": "التاج <code>&lt;ref&gt;</code> مش صحيح؛\nالمراجع اللى من غير محتوى لازميكون ليها اسم",
+ "cite_error_ref_too_many_keys": "التاج <code>&lt;ref&gt;</code> مش صحيح؛\nأسامى مش صحيحة، يعنى مثلا: كتير قوي",
+ "cite_error_ref_no_input": "تاج <code>&lt;ref&gt;</code> مش صحيح؛\nالمراجع اللى من غير اسم لازم يكون ليها محتوى",
+ "cite_error_references_invalid_parameters": "مش صحيح <code>&lt;references&gt;</code> تاج;\nمافيش محددات مسموح بيها.\nاستخدم <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "علامات الوصلات الراجعة المخصصة خلصت.\nعرف اكتر فى رسالة <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_references_no_text": "مش صحيح <code>&lt;ref&gt;</code> تاج;\nمافيش نص متوافر فى المراجع اللى اسمها<code>$1</code>",
+ "cite_error_included_ref": "إغلاق <code>&lt;/ref&gt;</code> مفقود لوسم <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code> فى تاجز موجوده لمجموعه اسمها \"$1\", بس مافيش مقابلها تاجز <code>&lt;references group=\"$1\"/&gt;</code> اتلقت",
+ "cite_references_link_many_format_backlink_labels": "أ ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ى أأ أب أت أث أج أح أخ أد أذ أر أز أس أش أص أض أط أظ أع أغ أف أق أك أل أم أن أه أو أى بأ بب بت بث بج بح بخ بد بذ بر بز بس بش بص بض بط بظ بع بغ بف بق بك بل بم بن به بو بى تأ تب تت تث تج تح تخ تد تذ تر تز تس تش تص تض تط تظ تع تغ تف تق تك تل تم تن ته تو تى ثأ ثب ثت ثث ثج ثح ثخ ثد ثذ ثر ثز ثس ثش ثص ثض ثط ثظ ثع ثغ ثف ثق ثك ثل ثم ثن ثه ثو ثى جأ جب جت جث جج جح جخ جد جذ جر جز جس جش جص جض جط جظ جع جغ جف جق جك جل جم جن جه جو جى حأ حب حت حث حج حح حخ حد حذ حر حز حس حش حص حض حط حظ حع حغ حف حق حك حل حم حن حه حو حى خأ خب خت خث خج خح خخ خد خذ خر خز خس خش خص خض خط خظ خع خغ خف خق خك خل خم خن خه خو خى دأ دب دت دث دج دح دخ دد دذ در دز دس دش دص دض دط دظ دع دغ دف دق دك دل دم دن ده دو دى ذأ ذب ذت ذث ذج ذح ذخ ذد ذذ ذر ذز ذس ذش ذص ذض ذط ذظ ذع ذغ ذف ذق ذك ذل ذم ذن ذه ذو ذى رأ رب رت رث رج رح رخ رد رذ رر رز رس رش رص رض رط رظ رع رغ رف رق رك رل رم رن ره رو رى زأ زب زت زث زج زح زخ زد زذ زر زز زس زش زص زض زط زظ زع زغ زف زق زك زل زم زن زه زو زى سأ سب ست سث سج سح سخ سد سذ سر سز سس سش سص سض سط سظ سع سغ سف سق سك سل سم سن سه سو سى شأ شب شت شث شج شح شخ شد شذ شر شز شس شش شص شض شط شظ شع شغ شف شق شك شل شم شن شه شو شى صأ صب صت صث صج صح صخ صد صذ صر صز صس صش صص صض صط صظ صع صغ صف صق صك صل صم صن صه صو صى ضأ ضب ضت ضث ضج ضح ضخ ضد ضذ ضر ضز ضس ضش ضص ضض ضط ضظ ضع ضغ ضف ضق ضك ضل ضم ضن ضه ضو ضى طأ طب طت طث طج طح طخ طد طذ طر طز طس طش طص طض طط طظ طع طغ طف طق طك طل طم طن طه طو طى ظأ ظب ظت ظث ظج ظح ظخ ظد ظذ ظر ظز ظس ظش ظص ظض ظط ظظ ظع ظغ ظف ظق ظك ظل ظم ظن ظه ظو ظى عأ عب عت عث عج عح عخ عد عذ عر عز عس عش عص عض عط عظ عع عغ عف عق عك عل عم عن عه عو عى غأ غب غت غث غج غح غخ غد غذ غر غز غس غش غص غض غط غظ غع غغ غف غق غك غل غم غن غه غو غى فأ فب فت فث فج فح فخ فد فذ فر فز فس فش فص فض فط فظ فع فغ فف فق فك فل فم فن فه فو فى قأ قب قت قث قج قح قخ قد قذ قر قز قس قش قص قض قط قظ قع قغ قف قق قك قل قم قن قه قو قى كأ كب كت كث كج كح كخ كد كذ كر كز كس كش كص كض كط كظ كع كغ كف كق كك كل كم كن كه كو كى لأ لب لت لث لج لح لخ لد لذ لر لز لس لش لص لض لط لظ لع لغ لف لق لك لل لم لن له لو لى مأ مب مت مث مج مح مخ مد مذ مر مز مس مش مص مض مط مظ مع مغ مف مق مك مل مم من مه مو مى نأ نب نت نث نج نح نخ ند نذ نر نز نس نش نص نض نط نظ نع نغ نف نق نك نل نم نن نه نو نى هأ هب هت هث هج هح هخ هد هذ هر هز هس هش هص هض هط هظ هع هغ هف هق هك هل هم هن هه هو هى وأ وب وت وث وج وح وخ ود وذ ور وز وس وش وص وض وط وظ وع وغ وف وق وك ول وم ون وه وو وى يأ يب يت يث يج يح يخ يد يذ ير يز يس يش يص يض يط يظ يع يغ يف يق يك يل يم ين يه يو يى"
+}
diff --git a/www/wiki/extensions/Cite/i18n/as.json b/www/wiki/extensions/Cite/i18n/as.json
new file mode 100644
index 00000000..fe4fc366
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/as.json
@@ -0,0 +1,32 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bishnu Saikia",
+ "Gitartha.bordoloi",
+ "Reedy",
+ "Dibya Dutta"
+ ]
+ },
+ "cite-desc": "উদ্ধৃতিৰ বাবে <nowiki><ref[ name=id]></nowiki> আৰু <nowiki><references/></nowiki> টেগ্‌সমূহ যোগ কৰে",
+ "cite_error": "উদ্ধৃতি ত্ৰুটি: $1",
+ "cite_error_ref_numeric_key": "অবৈধ <code>&lt;ref&gt;</code> টেগ;\nনাম কোনো সৰল পূৰ্ণসংখ্যা হ'ব নোৱাৰে। এটা বৰ্ণনামূলক শিৰোনাম ব্যৱহাৰ কৰক।",
+ "cite_error_ref_no_key": "অবৈধ <code>&lt;ref&gt;</code> টেগ;\nসমলবিহীন refসমূহৰ অৱশ্যেই এটা নাম থাকিব লাগিব।",
+ "cite_error_ref_too_many_keys": "অবৈধ <code>&lt;ref&gt;</code> টেগ;\nঅবৈধ নাম, যেনে- বহুসংখ্যক",
+ "cite_error_ref_no_input": "অবৈধ <code>&lt;ref&gt;</code> টেগ;\nনামবিহীন refসমূহৰ অৱশ্যেই সমল থাকিব লাগিব।",
+ "cite_error_references_invalid_parameters": "অবৈধ <code>&lt;references&gt;</code> টেগ;\nকোনো পেৰামিটাৰ অনুমোদন কৰা হোৱা নাই।\n<code>&lt;references /&gt;</code> ব্যৱহাৰ কৰক।",
+ "cite_error_references_no_backlink_label": "কাষ্টম বেকলিংক লেবেল শেষ হৈছে।\n<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> বাৰ্তাত আৰু সংজ্ঞা দিয়ক।",
+ "cite_error_no_link_label_group": "\"$1\" গোটৰ বাবে কাষ্টম লিংক লেবেল উকলিছে।\n<nowiki>[[MediaWiki:$2]]</nowiki> বাৰ্তাত আৰু সংজ্ঞা দিয়ক।",
+ "cite_error_references_no_text": "অবৈধ <code>&lt;ref&gt;</code> টেগ;\n<code>$1</code> নামৰ refৰ বাবে কোনো পাঠ্য প্ৰদান কৰা হোৱা নাই",
+ "cite_error_included_ref": "<code>&lt;/ref&gt;</code> বন্ধ কৰা হৈছে; <code>&lt;ref&gt;</code> টেগৰ বাবে পোৱা নাই",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code> টেগ্‌সমূহ \"$1\" নামৰ এটা গোটৰ বাবে আছে, কিন্তু তাৰ <code>&lt;references group=\"$1\"/&gt;</code> টেগ্‌ পোৱা নগ'ল",
+ "cite_error_references_group_mismatch": "\"$1\" গোটৰ ক্ষেত্ৰত <code>&lt;references&gt;</code>ৰ <code>&lt;ref&gt;</code> টেগ্‌ ব্যৱহাৰত সমস্যা হৈছে।",
+ "cite_error_references_missing_group": "<code>&lt;references&gt;</code>ত দিয়া <code>&lt;ref&gt;</code> টেগৰ \"$1\" গোট এট্ট্ৰিবিউট আছে, যিটো পূৰ্বৰ পাঠ্যত ওলোৱা নাই।",
+ "cite_error_references_missing_key": "<code>&lt;references&gt;</code>ত দিয়া \"$1\" নামৰ <code>&lt;ref&gt;</code> টেগ্‌টো পূৰ্বৰ পাঠ্যত ব্যৱহাৰ কৰা নাই।",
+ "cite_error_references_no_key": "<code>&lt;references&gt;</code>ত দিয়া <code>&lt;ref&gt;</code> টেগৰ কোনো নাম আবণ্টন নাই।",
+ "cite_error_empty_references_define": "<code>&lt;references&gt;</code>ত দিয়া \"$1\" নামৰ <code>&lt;ref&gt;</code> টেগৰ কোনো সমল নাই।",
+ "cite-tracking-category-cite-error": "তথ্যসূত্ৰৰ ত্ৰুটি থকা পৃষ্ঠা",
+ "cite_references_link_accessibility_label": "যাওক",
+ "cite_references_link_many_accessibility_label": "ইয়ালৈ যাওক:",
+ "cite_section_preview_references": "তথ্যসূত্ৰৰ প্ৰাক্‌দৰ্শন",
+ "cite_warning": "তথ্যসূত্ৰ সতৰ্কবাণী: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ast.json b/www/wiki/extensions/Cite/i18n/ast.json
new file mode 100644
index 00000000..31fa663c
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ast.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Esbardu",
+ "Xuacu"
+ ]
+ },
+ "apihelp-query+references-description": "Devolver una representación de datos de les referencies asociaes coles páxines indicaes.",
+ "apihelp-query+references-summary": "Devolver una representación de datos de les referencies asociaes coles páxines indicaes.",
+ "apihelp-query+references-example-1": "Referencies asociaes con <kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "L'almacenamientu de referencies de la estensión Cite nun ta activáu.",
+ "cite-desc": "Añade les etiquetes <nowiki><ref[ name=id]></nowiki> y <nowiki><references/></nowiki> pa les cites",
+ "cite_error": "Error de cita: $1",
+ "cite_error_ref_numeric_key": "Etiqueta <code>&lt;ref&gt;</code> non válida; el nome nun pue ser un enteru simple, usa un títulu descriptivu",
+ "cite_error_ref_no_key": "La etiqueta d'apertura <code>&lt;ref&gt;</code> ta mal formada o tien un mal nome",
+ "cite_error_ref_too_many_keys": "Etiqueta <code>&lt;ref&gt;</code> non válida; nomes non válidos (p.ex. demasiaos)",
+ "cite_error_ref_no_input": "Etiqueta <code>&lt;ref&gt;</code> non válida; les referencies ensin nome han tener conteníu",
+ "cite_error_references_duplicate_key": "La etiqueta <code>&lt;ref&gt;</code> ye inválida; el nome «$1» ta definíu delles vegaes con distintu conteníu",
+ "cite_error_references_invalid_parameters": "Parámetru inválidu na etiqueta <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Etiquetes personalizaes agotaes.\nDefini más nel mensaxe <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Nun queden más etiquetes d'enllaz personalizáu pal grupu \"$1\".\nDefine más nel mensaxe <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Etiqueta <code>&lt;ref&gt;</code> non válida; nun se conseñó testu pa les referencies nomaes <code>$1</code>",
+ "cite_error_included_ref": "Falta <code>&lt;/ref&gt;</code> pa la etiqueta <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Les etiquetes <code>&lt;ref&gt;</code> esisten pa un grupu llamáu \"$1\", pero nun s'alcontró la etiqueta <code>&lt;references group=\"$1\"/&gt;</code> correspondiente, o falta un cierre <code>&lt;/ref&gt;</code>",
+ "cite_error_references_group_mismatch": "La etiqueta <code>&lt;ref&gt;</code> en <code>&lt;references&gt;</code> tien un conflictu col atributu de grupu \"$1\".",
+ "cite_error_references_missing_group": "La etiqueta <code>&lt;ref&gt;</code> definida en <code>&lt;references&gt;</code> tien l'atributu de grupu \"$1\" que nun apaez nel testu anterior.",
+ "cite_error_references_missing_key": "La etiqueta <code>&lt;ref&gt;</code> col nome \"$1\" definida en <code>&lt;references&gt;</code> nun s'utiliza nel testu anterior.",
+ "cite_error_references_no_key": "La etiqueta <code>&lt;ref&gt;</code> definida en <code>&lt;references&gt;</code> nun tien dengún atributu de nome.",
+ "cite_error_empty_references_define": "La etiqueta <code>&lt;ref&gt;</code> definida en <code>&lt;references&gt;</code> col nome \"$1\" nun tien conteníu.",
+ "cite-tracking-category-cite-error": "Páxines con errores de referencies",
+ "cite-tracking-category-cite-error-desc": "Les páxines d'esta categoría tienen errores nel usu de les etiquetes de referencies.",
+ "cite_references_link_accessibility_label": "Saltar arriba",
+ "cite_references_link_many_accessibility_label": "Saltar a:",
+ "cite_section_preview_references": "Vista previa de les referencies",
+ "cite_warning": "Alvertencia de cita: $1",
+ "cite_warning_sectionpreview_no_text": "La etiqueta <code>&lt;ref&gt;</code> con nome <code>$1</code> nun puede entevese porque ta definida fora de la sección actual o nun ta definida n'absoluto."
+}
diff --git a/www/wiki/extensions/Cite/i18n/atj.json b/www/wiki/extensions/Cite/i18n/atj.json
new file mode 100644
index 00000000..1c9ba091
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/atj.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ninmeka",
+ "Benoit Rochon"
+ ]
+ },
+ "cite_error": "Arotc itactew ka ki otinikatek:$1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/av.json b/www/wiki/extensions/Cite/i18n/av.json
new file mode 100644
index 00000000..9a27177d
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/av.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gazimagomedov"
+ ]
+ },
+ "cite_error": "Цитированиялъул гъалатӀ: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/awa.json b/www/wiki/extensions/Cite/i18n/awa.json
new file mode 100644
index 00000000..0b6c8ff2
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/awa.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "1AnuraagPandey"
+ ]
+ },
+ "cite_error": "सन्दर्भ त्रुटि: $1",
+ "cite_references_link_accessibility_label": "ऊपर जावा जाए",
+ "cite_references_link_many_accessibility_label": "इस तक ऊपर जायें:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/az.json b/www/wiki/extensions/Cite/i18n/az.json
new file mode 100644
index 00000000..e816afbf
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/az.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Vago",
+ "Wertuose",
+ "Serkanland"
+ ]
+ },
+ "cite_error": "Sitat səhvi: $1",
+ "cite-tracking-category-cite-error": "İstinad xətası olan səhifələr",
+ "cite_reference_link_key_with_num": "$1_$2",
+ "cite_reference_link_prefix": "sitat_istinad-",
+ "cite_references_link_prefix": "sitat_qeyd-",
+ "cite_references_link_many_format": "<sup>[[#$1|$2]]</sup>",
+ "cite_references_link_many_sep": "&#32;",
+ "cite_references_link_many_and": "&#32;",
+ "cite_section_preview_references": "İstinadların sınaq göstərişi"
+}
diff --git a/www/wiki/extensions/Cite/i18n/azb.json b/www/wiki/extensions/Cite/i18n/azb.json
new file mode 100644
index 00000000..ddbdd3e8
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/azb.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amir a57"
+ ]
+ },
+ "cite-desc": "گؤتورمه‌لر اوچون، <nowiki><ref[ name=id]></nowiki> ve <nowiki><references/></nowiki> ائلئمئنت‌لری‌نین علاوه‌لر",
+ "cite_error": "قایناق خطاسی $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ba.json b/www/wiki/extensions/Cite/i18n/ba.json
new file mode 100644
index 00000000..83836dae
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ba.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Assele",
+ "Вильданова Гюзель",
+ "Янмурза Баки",
+ "Лилиә",
+ "Ләйсән"
+ ]
+ },
+ "apihelp-query+references-description": "Был бит менән бәйле һылтанмаларҙың мәғлүмәттәрен сағылдыра.",
+ "apihelp-query+references-example-1": "<kbd>Albert Einstein</kbd> менән бәйле һылтанмалар.",
+ "cite-desc": "Төшөрмәләр өсөн <nowiki><ref[ name=id]></nowiki> һәм <nowiki><references/></nowiki> билдәләрен өҫтәй",
+ "cite_error": "Өҙөмтә хатаһы: $1",
+ "cite_error_ref_numeric_key": "<code>&lt;ref&gt;</code> билдәһе дөрөҫ түгел;\nисем бөтөн һан була алмай. Тасуирларлыҡ исем ҡулланығыҙ.",
+ "cite_error_ref_no_key": "Асыусы тег <code>&lt;ref&gt;</code> билдәһе- дөрөҫ түгел йәки мәғәнәһеҙ исем йөрөтә.",
+ "cite_error_ref_too_many_keys": "<code>&lt;ref&gt;</code> билдәһе дөрөҫ түгел;\nисемдәр дөрөҫ түгел, бәлки, бигерәк күп",
+ "cite_error_ref_no_input": "<code>&lt;ref&gt;</code> билдәһе дөрөҫ түгел;\nисемһеҙ төшөрмәнең эстәлеге булырға тейеш.",
+ "cite_error_references_duplicate_key": "<code>&lt;ref&gt;</code> тег дөрөҫ түгел: «$1» исеме бер нисә тапҡыр, икенсе йөкмәткегә билдәләнгән",
+ "cite_error_references_invalid_parameters": "Тегта <code>&lt;references&gt;</code> рөхсәт ителмәгән күрһәткес бар",
+ "cite_error_references_no_backlink_label": "Кире ҡайтарыу һылтанмалары өсөн хәрефтәр етмәй.\n<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> система хәбәрен киңәйтергә кәрәк.",
+ "cite_error_no_link_label_group": "\"$1\" төркөмө өсөн ҡулланыусы һылтанмалары етмәй.\n[[MediaWiki:$2]] система хәбәрендә күберәк билдәләгеҙ.",
+ "cite_error_references_no_text": "<code>&lt;ref&gt;</code> билдәһе дөрөҫ түгел;\n<code>$1</code> төшөрмәләре өсөн текст юҡ",
+ "cite_error_included_ref": "<code>&lt;ref&gt;</code> билдәһе өсөн <code>&lt;/ref&gt;</code> ябыу билдәһе юҡ",
+ "cite_error_group_refs_without_references": "\"$1\" төркөмө өсөн <code>&lt;ref&gt;</code> билдәһе бар, әммә <code>&lt;references group=\"$1\"/&gt;</code> билдәһе юҡ",
+ "cite_error_references_group_mismatch": "<code>&lt;references&gt;</code> билдәһенең <code>&lt;ref&gt;</code> билдәһендә \"$1\" төркөмө атрибуты ҡаршылыҡтар тыуҙыра.",
+ "cite_error_references_missing_group": "<code>&lt;references&gt;</code> билдәһенең <code>&lt;ref&gt;</code> билдәһендә \"$1\" төркөмө атрибуты үрҙәге текста осрамай.",
+ "cite_error_references_missing_key": "<code>&lt;references&gt;</code> билдәһенең \"$1\" исемле <code>&lt;ref&gt;</code> билдәһе үрҙәге текста ҡулланылмай.",
+ "cite_error_references_no_key": "<code>&lt;references&gt;</code> билдәһенең <code>&lt;ref&gt;</code> билдәһендә исем атрибуты юҡ.",
+ "cite_error_empty_references_define": "<code>&lt;references&gt;</code> билдәһенең \"$1\" исемле <code>&lt;ref&gt;</code> билдәһенең эстәлеге юҡ.",
+ "cite-tracking-category-cite-error": "Иҫкәрмәләрендә хаталы биттәр",
+ "cite-tracking-category-cite-error-desc": "Страницы в данной категории содержат ошибки в использовании тегов примечаний.\nБыл категориялағы биттәрҙә иҫкәрмәләр тегын файҙаланғанда хата ебәрелгән.",
+ "cite_references_link_accessibility_label": "Өҫкә һикереү",
+ "cite_references_link_many_accessibility_label": "Шунда өҫкә күсергә",
+ "cite_section_preview_references": "Иҫкәрмәләрҙе алдан тикшереү",
+ "cite_warning": "Өҙөмтә яҙғанды иҫкәртергә: $1",
+ "cite_warning_sectionpreview_no_text": "<code>$1</code> исемле <code>&lt;ref&gt;</code> теген алдан ҡарап булмай, сөнки ул икенсе бүлектә билдәләнгән йәки бөтөнләй билдәләнмәгән."
+}
diff --git a/www/wiki/extensions/Cite/i18n/bcc.json b/www/wiki/extensions/Cite/i18n/bcc.json
new file mode 100644
index 00000000..6af0cd9c
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/bcc.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mostafadaneshvar"
+ ]
+ },
+ "cite-desc": "اضفافه کنت<nowiki><ref[ name=id]></nowiki> و <nowiki><references/></nowiki> تگ, په ارجاع دهگ",
+ "cite_error": "حطا ارجاع: $1",
+ "cite_error_ref_numeric_key": "نامعتبر <code>&lt;ref&gt;</code>تگ;\nنام یک سادگین هوری نه نه بیت. یک توضیحی عنوانی استفاده کنیت",
+ "cite_error_ref_no_key": "نامعتبر<code>&lt;ref&gt;</code>تگ;\nمراجع بی محتوا بایدن نامی داشته بنت",
+ "cite_error_ref_too_many_keys": "نامعتبر<code>&lt;ref&gt;</code>تگ;\nنامعتبر نامان, په داب بازین",
+ "cite_error_ref_no_input": "نامعتبر <code>&lt;ref&gt;</code> تگ;\nمراجع بی نام بایدن محتوا داشته بنت",
+ "cite_error_references_invalid_parameters": "نامعتبر <code>&lt;references&gt;</code>تگ;\nهچ پارامتری مجاز نهنت.\nاستفاده کن چه <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "هلگ برجسپان لینک عقب رسمی.\nگیشتر تعریف کن ته <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> کوله",
+ "cite_error_references_no_text": "نامعتبر<code>&lt;ref&gt;</code>تگ;\nپه نام ارجاع هچ متنی دهگ نه بیته <code>$1</code>",
+ "cite_reference_link_prefix": "هل_مرج-",
+ "cite_references_link_prefix": "ذکرـیادداشت-",
+ "cite_references_link_many_format_backlink_labels": "ا ب پ ت ج چ خ د ر ز س ش غ ف ک ل م ن و ه ی",
+ "cite_references_link_many_sep": "س",
+ "cite_references_link_many_and": "و"
+}
diff --git a/www/wiki/extensions/Cite/i18n/bcl.json b/www/wiki/extensions/Cite/i18n/bcl.json
new file mode 100644
index 00000000..ed2f0011
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/bcl.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Geopoet"
+ ]
+ },
+ "cite-desc": "Minadugang nin <nowiki><ref[ name=id]></nowiki> asin <nowiki><references/></nowiki> na mga tatak, para sa mga toltolan",
+ "cite_error": "Sambiton an kasalaan: $1",
+ "cite_error_ref_numeric_key": "Imbalido an <code>&lt;ref&gt;</code> tatak; an pangaran dae puwede na magin sarong simplehon na bilog na numero. Maggamit nin sarong deskriptibong titulo",
+ "cite_error_ref_no_key": "Imbalido an <code>&lt;ref&gt;</code> tatak; an mga toltolan na mayong kalamnan dapat magkaigwa nin pangaran",
+ "cite_error_ref_too_many_keys": "Imbalido an <code>&lt;ref&gt;</code> tatak; imbalidong mga pangaran, e.g. grabe kadakol",
+ "cite_error_ref_no_input": "Imbalido an <code>&lt;ref&gt;</code> tatak; an mga toltolan na mayong pangaran dapat magkaigwa nin kalamnan",
+ "cite_error_references_invalid_parameters": "Imbalido an <code>&lt;references&gt;</code> tatak; mayong mga parametro an pinagtutugot. Maggamit nin <code>&lt;mga toltolan /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Naubusan nin pankostumbreng sugpon-panlikod na kamarkahan.\nPakahulugan nin dagdag tabi an <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> mensahe.",
+ "cite_error_no_link_label_group": "Naubusan nin pankostumbreng sugpon nin mga kamarkahan para sa grupo \"$1\".\nPakahulugan nin dagdag tabi an <nowiki>[[MediaWiki:$2]]</nowiki> mensahe.",
+ "cite_error_references_no_text": "Imbalidong <code>&lt;ref&gt;</code> tatak; mayong teksto na ipinagtao para sa reperensiya na pinagngaranan na <code>$1</code>",
+ "cite_error_included_ref": "Ipinagsasara <code>&lt;/ref&gt;</code> nawawara para sa <code>&lt;ref&gt;</code> na tatak",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code> mga tatak na eksistido para sa sarong grupo na pinagngaranan na \"$1\", alagad mayong kinasungkoan na <code>&lt;mga pinapanungdanan na grupo=\"$1\"/&gt;</code>na tatak an nanagboan, o sarong panarado <code>&lt;/ref&gt;</code> an nawawara",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code> tatak sa laog na <code>&lt;references&gt;</code> igwa nin pangrupong kumplikto sa hitsurahon na \"$1\".",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code> tatak na pinagkahulugan sa <code>&lt;references&gt;</code> igwa nin pangrupong hitsurahon na \"$1\" na dae ipinapahiling sa nakaaging teksto.",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code> tatak na igwang pangaran na \"$1\" na pinagkahulugan sa <code>&lt;references&gt;</code> na dae pinaggagamit sa nakaaging teksto.",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code> tatak na pinagkahulugan sa <code>&lt;references&gt;</code> na mayo nin hitsurahon sa pangaran.",
+ "cite_error_empty_references_define": "<code>&lt;ref&gt;</code> tatak na pinagkahulugan sa <code>&lt;references&gt;</code> na igwang pangaran na \"$1\" na mayo tabing kalamnan.",
+ "cite_references_link_accessibility_label": "Lukso paitaas",
+ "cite_references_link_many_accessibility_label": "Lukso paitaas paduman sa:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/be-tarask.json b/www/wiki/extensions/Cite/i18n/be-tarask.json
new file mode 100644
index 00000000..6faa3a6d
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/be-tarask.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "EugeneZelenko",
+ "Jim-by",
+ "Red Winged Duck",
+ "Wizardist"
+ ]
+ },
+ "apihelp-query+references-description": "Вяртае прадстаўленьне зьвестак крыніц, злучаных з пададзенымі старонкамі.",
+ "apihelp-query+references-summary": "Вяртае прадстаўленьне зьвестак крыніц, злучаных з пададзенымі старонкамі.",
+ "apihelp-query+references-example-1": "Крыніцы, зьвязаныя з старонкай <kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "Сховішча зносак пашырэньня цытаваньня ня ўключанае.",
+ "cite-desc": "Дадае тэгі <nowiki><ref[ name=id]></nowiki> і <nowiki><references/></nowiki> для зносак",
+ "cite_error": "Памылка цытаваньня: $1",
+ "cite_error_ref_numeric_key": "Няслушны тэг <code>&lt;ref&gt;</code>;\nназва ня можа быць проста лікам, ужывайце апісальную назву",
+ "cite_error_ref_no_key": "Пачатковы тэг <code>&lt;ref&gt;</code> зьяўляецца няслушным або мае кепскую назву",
+ "cite_error_ref_too_many_keys": "Няслушны тэг <code>&lt;ref&gt;</code>;\nняслушныя назвы, ці іх было зашмат",
+ "cite_error_ref_no_input": "Няслушны тэг <code>&lt;ref&gt;</code>;\nкрыніцы бяз назваў мусяць мець зьмест",
+ "cite_error_references_duplicate_key": "Няслушны тэг <code>&lt;ref&gt;</code>; назва «$1» вызначаная некалькі разоў з розным зьместам",
+ "cite_error_references_invalid_parameters": "Няслушны парамэтар у тэгу <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Не хапае сымбаляў для адваротных спасылак.\nНеабходна пашырыць сыстэмнае паведамленьне <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Скончыліся нестандартныя меткі спасылак для групы «$1».\nВызначыце болей у паведамленьні <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Няслушны тэг <code>&lt;ref&gt;</code>;\nняма тэксту ў назьве зносак <code>$1</code>",
+ "cite_error_included_ref": "Няма закрываючага тэга <code>&lt;/ref&gt;</code> пасьля адкрытага тэга <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Тэг <code>&lt;ref&gt;</code> існуе для групы «$1», але адпаведнага тэга <code>&lt;references group=\"$1\"/&gt;</code> ня знойдзена. Магчыма, адсутнічае фінальны тэг <code>&lt;/ref&gt;</code>",
+ "cite_error_references_group_mismatch": "Тэг <code>&lt;ref&gt;</code> у <code>&lt;references&gt;</code> утрымлівае канфліктуючы атрыбут групы «$1».",
+ "cite_error_references_missing_group": "Тэг <code>&lt;ref&gt;</code> вызначаны ў <code>&lt;references&gt;</code> утрымлівае атрыбут групы «$1», які раней не выкарыстоўваўся ў тэксьце.",
+ "cite_error_references_missing_key": "Тэг <code>&lt;ref&gt;</code> з назвай «$1» вызначаны ў <code>&lt;references&gt;</code> не выкарыстоўваўся ў папярэднім тэксьце.",
+ "cite_error_references_no_key": "Тэг <code>&lt;ref&gt;</code> вызначаны ў <code>&lt;references&gt;</code> ня мае атрыбуту назвы.",
+ "cite_error_empty_references_define": "Тэг <code>&lt;ref&gt;</code> вызначаны ў <code>&lt;references&gt;</code> з назвай «$1» ня мае зьместу.",
+ "cite-tracking-category-cite-error": "Старонкі з памылкамі ў крыніцах",
+ "cite-tracking-category-cite-error-desc": "Старонкі ў гэтай катэгорыі маюць памылкі ў спасылках на крыніцы.",
+ "cite_references_link_accessibility_label": "Угару",
+ "cite_references_link_many_accessibility_label": "Угару да:",
+ "cite_section_preview_references": "Папярэдні прагляд спасылак на крыніцы",
+ "cite_warning": "Папярэджаньне ў крыніцах: $1",
+ "cite_warning_sectionpreview_no_text": "Тэг <code>&lt;ref&gt;</code> з назвай <code>$1</code> ня можа быць паказаны ў папярэднім праглядзе, бо ён вызначаны па-за межамі гэтага разьдзелу або ня вызначаны наогул."
+}
diff --git a/www/wiki/extensions/Cite/i18n/be.json b/www/wiki/extensions/Cite/i18n/be.json
new file mode 100644
index 00000000..e71e1005
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/be.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Чаховіч Уладзіслаў",
+ "Artsiom91"
+ ]
+ },
+ "cite_error": "Памылка цытавання $1",
+ "cite_error_references_duplicate_key": "памылковы тэг <code>&lt;ref&gt;</code>; імя \"$1\" вызначана некалькі разоў з розным зместам",
+ "cite_error_references_missing_key": "тэг <code>&lt;ref&gt;</code> з імем \"$1\", вызначаны ў <code>&lt;references&gt;</code>, не згадваецца ў папярэднім тэксце.",
+ "cite-tracking-category-cite-error": "Старонкі з памылкамі ў зносках",
+ "cite-tracking-category-cite-error-desc": "Старонка мае памылкі ў выкарыстанні тэгаў зносак"
+}
diff --git a/www/wiki/extensions/Cite/i18n/bg.json b/www/wiki/extensions/Cite/i18n/bg.json
new file mode 100644
index 00000000..e218d1be
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/bg.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Borislav",
+ "DCLXVI",
+ "Spiritia",
+ "Termininja",
+ "StanProg"
+ ]
+ },
+ "cite-desc": "Добавя етикетите <nowiki><ref[ name=id]></nowiki> и <nowiki><references/></nowiki>, подходящи за цитиране",
+ "cite_error": "Грешка при цитиране: $1",
+ "cite_error_ref_numeric_key": "Грешка в етикет <code>&lt;ref&gt;</code>;\nимето не може да бъде число. Използвайте описателно име",
+ "cite_error_ref_no_key": "Отварящият таг <code>&lt;ref&gt;</code> е неправилен или съдържа некоректно име.",
+ "cite_error_ref_too_many_keys": "Грешка в етикет <code>&lt;ref&gt;</code>;\nневалидно име, например повече от едно име на етикета",
+ "cite_error_ref_no_input": "Грешка в етикет <code>&lt;ref&gt;</code>;\nетикетите без име трябва да имат съдържание",
+ "cite_error_references_invalid_parameters": "Невалиден параметър на таг <code>&lt;references&gt;</code>.",
+ "cite_error_references_no_backlink_label": "Изчерпани са специалните етикети за обратна референция.\nОще етикети могат да се дефинират в системното съобщение <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_references_no_text": "Грешка в етикет <code>&lt;ref&gt;</code>;\nне е подаден текст за бележките на име <code>$1</code>",
+ "cite_error_included_ref": "Липсва затварящ етикет <code>&lt;/ref&gt;</code> след отварящия етикет <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Тагове <code>&lt;ref&gt;</code> съществуват за група „$1“, но липсва таг <code>&lt;references group=\"$1\"/&gt;</code> или затварящ таг <code>&lt;/ref&gt;</code>",
+ "cite-tracking-category-cite-error": "Страници с грешка в източник",
+ "cite_section_preview_references": "Преглед на бележките"
+}
diff --git a/www/wiki/extensions/Cite/i18n/bgn.json b/www/wiki/extensions/Cite/i18n/bgn.json
new file mode 100644
index 00000000..04814ee0
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/bgn.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Baloch Afghanistan",
+ "Ibrahim khashrowdi"
+ ]
+ },
+ "cite_error": "$1: یات کورت‌ئی خطا"
+}
diff --git a/www/wiki/extensions/Cite/i18n/bho.json b/www/wiki/extensions/Cite/i18n/bho.json
new file mode 100644
index 00000000..3556b998
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/bho.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "SatyamMishra"
+ ]
+ },
+ "cite_error": "उद्धरण खराबी:$1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/bn.json b/www/wiki/extensions/Cite/i18n/bn.json
new file mode 100644
index 00000000..20669796
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/bn.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aftab1995",
+ "Bellayet",
+ "Nasir8891",
+ "Zaheen",
+ "Aftabuzzaman"
+ ]
+ },
+ "cite-desc": "উদ্ধৃতির জন্য, <nowiki><ref[ name=id]></nowiki> এবং <nowiki><references/></nowiki> ট্যাগসমূহ যোগ করুন",
+ "cite_error": "উদ্ধৃতি ত্রুটি: $1",
+ "cite_error_ref_numeric_key": "অবৈধ <code>&lt;ref&gt;</code> ট্যাগ; নাম কোন সরল পূর্ণসংখ্যা হতে পারবে না। একটি বিবরণমূলক শিরোনাম ব্যবহার করুন",
+ "cite_error_ref_no_key": "শুরুর <code>&lt;ref&gt;</code> ট্যাগ সঠিক নয় বা ভুল নামে রয়েছে",
+ "cite_error_ref_too_many_keys": "অবৈধ <code>&lt;ref&gt;</code> ট্যাগ; অবৈধ নাম (যেমন- সংখ্যাতিরিক্ত)",
+ "cite_error_ref_no_input": "অবৈধ <code>&lt;ref&gt;</code> ট্যাগ; নামবিহীন ref সমূহের অবশ্যই বিষয়বস্তু থাকতে হবে",
+ "cite_error_references_duplicate_key": "<code>&lt;ref&gt;</code> ট্যাগ অবৈধ; আলাদা বিষয়বস্তুর সঙ্গে \"$1\" নাম একাধিক বার সংজ্ঞায়িত করা হয়েছে",
+ "cite_error_references_invalid_parameters": "<code>&lt;references&gt;</code> ট্যাগে অবৈধ প্যারামিটার",
+ "cite_error_references_no_backlink_label": "স্বনির্ধারিত পিছনসংযোগের স্তরের সংখ্যা শেষ হয়ে গেছে।\n<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> বার্তায় আরও সংজ্ঞায়িত করুন।",
+ "cite_error_no_link_label_group": "\"$1\" গ্রুপের জন্য স্বনির্ধারিত লিংক ব্যবহারের সীমানা পেরিয়েছে।\n<nowiki>[[MediaWiki:$2]]</nowiki> বার্তায় আরও সজ্ঞায়িত করুন।",
+ "cite_error_references_no_text": "অবৈধ <code>&lt;ref&gt;</code> ট্যাগ; <code>$1</code> নামের সূত্রের জন্য কোন লেখা প্রদান করা হয়নি",
+ "cite_error_included_ref": "<code>&lt;ref&gt;</code> ট্যাগের ক্ষেত্রে <code>&lt;/ref&gt;</code> ট্যাগ যোগ করা হয়নি",
+ "cite_error_group_refs_without_references": "\"$1\" নামক গ্রুপের জন্য <code>&lt;ref&gt;</code> ট্যাগ রয়েছে, কিন্তু এর জন্য কোন সঙ্গতিপূর্ণ <code>&lt;references group=\"$1\"/&gt;</code> ট্যাগ পাওয়া যায়নি, বা বন্ধকরণ <code>&lt;/ref&gt;</code> দেয়া হয়নি",
+ "cite_error_references_group_mismatch": "\"$1\" গ্রুপের ক্ষেত্রে <code>&lt;ref&gt;</code> ট্যাগ <code>&lt;references&gt;</code> ট্যাগের অংশে ব্যবহারে সমস্যা সৃষ্টি হয়েছে।",
+ "cite_error_references_missing_group": "<code>&lt;references&gt;</code>-এ সংজ্ঞায়িত <code>&lt;ref&gt;</code> ট্যাগে আরোপ গ্রুপ \"$1\" রয়েছে যা পূর্ববর্তী লেখায় প্রদর্শিত হয়নি।",
+ "cite_error_references_missing_key": "<code>&lt;references&gt;</code>-এ সংজ্ঞায়িত \"$1\" নামসহ <code>&lt;ref&gt;</code> ট্যাগ পূর্ববর্তী লেখায় ব্যবহৃত হয়নি।",
+ "cite_error_references_no_key": "<code>&lt;references&gt;</code>-এ সংজ্ঞায়িত <code>&lt;ref&gt;</code> ট্যাগে কোন নাম আরোপ করা হয়নি।",
+ "cite_error_empty_references_define": "\"$1\" নামসহ <code>&lt;references&gt;</code>-এ সংজ্ঞায়িত <code>&lt;ref&gt;</code> ট্যাগে কোন বিষয়বস্তু নেই।",
+ "cite-tracking-category-cite-error": "তথ্যসূত্র ত্রুটিসহ পাতা",
+ "cite-tracking-category-cite-error-desc": "এই বিষয়শ্রেণীতে অন্তর্ভুক্ত নিবন্ধসমূহে তথ্যসূত্র ট্যাগ ব্যবহারে ত্রুটি আছে।",
+ "cite_references_link_many_format_backlink_labels": "ক খ গ ঘ ঙ চ ছ জ ঝ ঞ ট ঠ ড ঢ ণ ত থ দ ধ ন প ফ ব ভ ম য র ল শ ষ স হ ড় ঢ় য় ৎ কক কখ কগ কঘ কঙ কচ কছ কজ কঝ কঞ কট কঠ কড কঢ কণ কত কথ কদ কধ কন কপ কফ কব কভ কম কয কর কল কশ কষ কস কহ কড় কঢ় কয় কৎ খক খখ খগ খঘ খঙ খচ খছ খজ খঝ খঞ খট খঠ খড খঢ খণ খত খথ খদ খধ খন খপ খফ খব খভ খম খয খর খল খশ খষ খস খহ খড় খঢ় খয় খৎ গক গখ গগ গঘ গঙ গচ গছ গজ গঝ গঞ গট গঠ গড গঢ গণ গত গথ গদ গধ গন গপ গফ গব গভ গম গয গর গল গশ গষ গস গহ গড় গঢ় গয় গৎ ঘক ঘখ ঘগ ঘঘ ঘঙ ঘচ ঘছ ঘজ ঘঝ ঘঞ ঘট ঘঠ ঘড ঘঢ ঘণ ঘত ঘথ ঘদ ঘধ ঘন ঘপ ঘফ ঘব ঘভ ঘম ঘয ঘর ঘল ঘশ ঘষ ঘস ঘহ ঘড় ঘঢ় ঘয় ঘৎ ঙক ঙখ ঙগ ঙঘ ঙঙ ঙচ ঙছ ঙজ ঙঝ ঙঞ ঙট ঙঠ ঙড ঙঢ ঙণ ঙত ঙথ ঙদ ঙধ ঙন ঙপ ঙফ ঙব ঙভ ঙম ঙয ঙর ঙল ঙশ ঙষ ঙস ঙহ ঙড় ঙঢ় ঙয় ঙৎ চক চখ চগ চঘ চঙ চচ চছ চজ চঝ চঞ চট চঠ চড চঢ চণ চত চথ চদ চধ চন চপ চফ চব চভ চম চয চর চল চশ চষ চস চহ চড় চঢ় চয় চৎ ছক ছখ ছগ ছঘ ছঙ ছচ ছছ ছজ ছঝ ছঞ ছট ছঠ ছড ছঢ ছণ ছত ছথ ছদ ছধ ছন ছপ ছফ ছব ছভ ছম ছয ছর ছল ছশ ছষ ছস ছহ ছড় ছঢ় ছয় ছৎ জক জখ জগ জঘ জঙ জচ জছ জজ জঝ জঞ জট জঠ জড জঢ জণ জত জথ জদ জধ জন জপ জফ জব জভ জম জয জর জল জশ জষ জস জহ জড় জঢ় জয় জৎ ঝক ঝখ ঝগ ঝঘ ঝঙ ঝচ ঝছ ঝজ ঝঝ ঝঞ ঝট ঝঠ ঝড ঝঢ ঝণ ঝত ঝথ ঝদ ঝধ ঝন ঝপ ঝফ ঝব ঝভ ঝম ঝয ঝর ঝল ঝশ ঝষ ঝস ঝহ ঝড় ঝঢ় ঝয় ঝৎ ঞক ঞখ ঞগ ঞঘ ঞঙ ঞচ ঞছ ঞজ ঞঝ ঞঞ ঞট ঞঠ ঞড ঞঢ ঞণ ঞত ঞথ ঞদ ঞধ ঞন ঞপ ঞফ ঞব ঞভ ঞম ঞয ঞর ঞল ঞশ ঞষ ঞস ঞহ ঞড় ঞঢ় ঞয় ঞৎ টক টখ টগ টঘ টঙ টচ টছ টজ টঝ টঞ টট টঠ টড টঢ টণ টত টথ টদ টধ টন টপ টফ টব টভ টম টয টর টল টশ টষ টস টহ টড় টঢ় টয় টৎ ঠক ঠখ ঠগ ঠঘ ঠঙ ঠচ ঠছ ঠজ ঠঝ ঠঞ ঠট ঠঠ ঠড ঠঢ ঠণ ঠত ঠথ ঠদ ঠধ ঠন ঠপ ঠফ ঠব ঠভ ঠম ঠয ঠর ঠল ঠশ ঠষ ঠস ঠহ ঠড় ঠঢ় ঠয় ঠৎ ডক ডখ ডগ ডঘ ডঙ ডচ ডছ ডজ ডঝ ডঞ ডট ডঠ ডড ডঢ ডণ ডত ডথ ডদ ডধ ডন ডপ ডফ ডব ডভ ডম ডয ডর ডল ডশ ডষ ডস ডহ ডড় ডঢ় ডয় ডৎ ঢক ঢখ ঢগ ঢঘ ঢঙ ঢচ ঢছ ঢজ ঢঝ ঢঞ ঢট ঢঠ ঢড ঢঢ ঢণ ঢত ঢথ ঢদ ঢধ ঢন ঢপ ঢফ ঢব ঢভ ঢম ঢয ঢর ঢল ঢশ ঢষ ঢস ঢহ ঢড় ঢঢ় ঢয় ঢৎ ণক ণখ ণগ ণঘ ণঙ ণচ ণছ ণজ ণঝ ণঞ ণট ণঠ ণড ণঢ ণণ ণত ণথ ণদ ণধ ণন ণপ ণফ ণব ণভ ণম ণয ণর ণল ণশ ণষ ণস ণহ ণড় ণঢ় ণয় ণৎ তক তখ তগ তঘ তঙ তচ তছ তজ তঝ তঞ তট তঠ তড তঢ তণ তত তথ তদ তধ তন তপ তফ তব তভ তম তয তর তল তশ তষ তস তহ তড় তঢ় তয় তৎ থক থখ থগ থঘ থঙ থচ থছ থজ থঝ থঞ থট থঠ থড থঢ থণ থত থথ থদ থধ থন থপ থফ থব থভ থম থয থর থল থশ থষ থস থহ থড় থঢ় থয় থৎ দক দখ দগ দঘ দঙ দচ দছ দজ দঝ দঞ দট দঠ দড দঢ দণ দত দথ দদ দধ দন দপ দফ দব দভ দম দয দর দল দশ দষ দস দহ দড় দঢ় দয় দৎ ধক ধখ ধগ ধঘ ধঙ ধচ ধছ ধজ ধঝ ধঞ ধট ধঠ ধড ধঢ ধণ ধত ধথ ধদ ধধ ধন ধপ ধফ ধব ধভ ধম ধয ধর ধল ধশ ধষ ধস ধহ ধড় ধঢ় ধয় ধৎ নক নখ নগ নঘ নঙ নচ নছ নজ নঝ নঞ নট নঠ নড নঢ নণ নত নথ নদ নধ নন নপ নফ নব নভ নম নয নর নল নশ নষ নস নহ নড় নঢ় নয় নৎ পক পখ পগ পঘ পঙ পচ পছ পজ পঝ পঞ পট পঠ পড পঢ পণ পত পথ পদ পধ পন পপ পফ পব পভ পম পয পর পল পশ পষ পস পহ পড় পঢ় পয় পৎ ফক ফখ ফগ ফঘ ফঙ ফচ ফছ ফজ ফঝ ফঞ ফট ফঠ ফড ফঢ ফণ ফত ফথ ফদ ফধ ফন ফপ ফফ ফব ফভ ফম ফয ফর ফল ফশ ফষ ফস ফহ ফড় ফঢ় ফয় ফৎ বক বখ বগ বঘ বঙ বচ বছ বজ বঝ বঞ বট বঠ বড বঢ বণ বত বথ বদ বধ বন বপ বফ বব বভ বম বয বর বল বশ বষ বস বহ বড় বঢ় বয় বৎ ভক ভখ ভগ ভঘ ভঙ ভচ ভছ ভজ ভঝ ভঞ ভট ভঠ ভড ভঢ ভণ ভত ভথ ভদ ভধ ভন ভপ ভফ ভব ভভ ভম ভয ভর ভল ভশ ভষ ভস ভহ ভড় ভঢ় ভয় ভৎ মক মখ মগ মঘ মঙ মচ মছ মজ মঝ মঞ মট মঠ মড মঢ মণ মত মথ মদ মধ মন মপ মফ মব মভ মম ময মর মল মশ মষ মস মহ মড় মঢ় ময় মৎ যক যখ যগ যঘ যঙ যচ যছ যজ যঝ যঞ যট যঠ যড যঢ যণ যত যথ যদ যধ যন যপ যফ যব যভ যম যয যর যল যশ যষ যস যহ যড় যঢ় যয় যৎ রক রখ রগ রঘ রঙ রচ রছ রজ রঝ রঞ রট রঠ রড রঢ রণ রত রথ রদ রধ রন রপ রফ রব রভ রম রয রর রল রশ রষ রস রহ রড় রঢ় রয় রৎ লক লখ লগ লঘ লঙ লচ লছ লজ লঝ লঞ লট লঠ লড লঢ লণ লত লথ লদ লধ লন লপ লফ লব লভ লম লয লর লল লশ লষ লস লহ লড় লঢ় লয় লৎ শক শখ শগ শঘ শঙ শচ শছ শজ শঝ শঞ শট শঠ শড শঢ শণ শত শথ শদ শধ শন শপ শফ শব শভ শম শয শর শল শশ শষ শস শহ শড় শঢ় শয় শৎ ষক ষখ ষগ ষঘ ষঙ ষচ ষছ ষজ ষঝ ষঞ ষট ষঠ ষড ষঢ ষণ ষত ষথ ষদ ষধ ষন ষপ ষফ ষব ষভ ষম ষয ষর ষল ষশ ষষ ষস ষহ ষড় ষঢ় ষয় ষৎ সক সখ সগ সঘ সঙ সচ সছ সজ সঝ সঞ সট সঠ সড সঢ সণ সত সথ সদ সধ সন সপ সফ সব সভ সম সয সর সল সশ সষ সস সহ সড় সঢ় সয় সৎ হক হখ হগ হঘ হঙ হচ হছ হজ হঝ হঞ হট হঠ হড হঢ হণ হত হথ হদ হধ হন হপ হফ হব হভ হম হয হর হল হশ হষ হস হহ হড় হঢ় হয় হৎ",
+ "cite_references_link_accessibility_label": "ঝাঁপ দাও",
+ "cite_references_link_many_accessibility_label": "ঝাঁপ দাও:",
+ "cite_section_preview_references": "তথ্যসূত্রের প্রাকদর্শন",
+ "cite_warning": "উদ্ধৃতি সতর্কবার্তা: $1",
+ "cite_warning_sectionpreview_no_text": "<code>$1</code> নামসহ <code>&lt;ref&gt;</code> ট্যাগের প্রাকদর্শন দেখা যাবে না কারণ এটি বর্তমান অনুচ্ছেদের বাইরে সংজ্ঞায়িত করা হয়েছে বা একেবারেই সংজ্ঞায়িত করা হয়নি।"
+}
diff --git a/www/wiki/extensions/Cite/i18n/bqi.json b/www/wiki/extensions/Cite/i18n/bqi.json
new file mode 100644
index 00000000..d16fc5d9
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/bqi.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mogoeilor"
+ ]
+ },
+ "cite_error": "خطا جاگه:$1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/br.json b/www/wiki/extensions/Cite/i18n/br.json
new file mode 100644
index 00000000..5c52a978
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/br.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fohanno",
+ "Fulup",
+ "VIGNERON"
+ ]
+ },
+ "cite-desc": "Ouzhpennañ a ra ar tikedennoù <nowiki><ref[ name=id]></nowiki> ha <nowiki><references/></nowiki>, evit an arroudoù.",
+ "cite_error": "Fazi arroud : $1",
+ "cite_error_ref_numeric_key": "Fazi implijout an dikedenn <code>&lt;ref&gt;</code> ;\nn'hall ket an anv bezañ un niver anterin. Grit gant un titl deskrivus",
+ "cite_error_ref_no_key": "Fazi implijout ar valizenn <code>&lt;ref&gt;</code> ;\nret eo d'an daveennoù goullo kaout un anv",
+ "cite_error_ref_too_many_keys": "Fazi implijout an dikedenn <code>&lt;ref&gt;</code> ;\nanvioù direizh, re niverus, da sk.",
+ "cite_error_ref_no_input": "Fazi implijout an dikedenn <code>&lt;ref&gt;</code> ;\nret eo d'an daveennoù hep anv bezañ danvez enno",
+ "cite_error_references_invalid_parameters": "Tikedenn direizh <code>&lt;ref&gt;</code> ;\narventenn ebet n'eo aotreet.\nGrit gant <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "N'eus ket a dikedennoù personelaet mui.\nSpisait un niver brasoc'h anezho er gemennadenn <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Tikedenn liamm bersonelaet ebet ken evit ar strollad \"$1\".\nTermenit re all e kemennadenn <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Tikedenn <code>&lt;ref&gt;</code> direizh ;\nne oa bet lakaet tamm testenn ebet evit an daveennoù anvet <code>$1</code>",
+ "cite_error_included_ref": "Kod digeriñ <code>&lt;/ref&gt;</code> hep kod serriñ <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code> balizennoù zo evit ur strollad anvet \"$1\", met n'eus bet kavet balizenn <code>&lt;references group=\"$1\"/&gt;</code> ebet o klotañ",
+ "cite_error_references_group_mismatch": "Gant an dikedenn <code>&lt;ref&gt;</code> e <code>&lt;references&gt;</code> emañ an dezverk strollad trubuilhus \"$1\".",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code> an dikedenn termenet e <code>&lt;references&gt;</code> zo dezhi un dezverk strollad \"$1\" na gaver ket en destenn a-raok.",
+ "cite_error_references_missing_key": "N'eo ket bet implijet en destenn gent an <code>&lt;ref&gt;</code> dikedenn hec'h anv \"$1\" termenet e <code>&lt;references&gt;</code>.",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code> an dikedenn termenet e <code>&lt;references&gt;</code> n'he deus dezverk anv ebet.",
+ "cite_error_empty_references_define": "<code>&lt;ref&gt;</code> ar valiezenn termenet e <code>&lt;references&gt;</code> dezhi an anv a \"$1\" zo goullo.",
+ "cite_references_link_many_and": " ha",
+ "cite_references_link_accessibility_label": "Lammat",
+ "cite_references_link_many_accessibility_label": "Lammat da :"
+}
diff --git a/www/wiki/extensions/Cite/i18n/bs.json b/www/wiki/extensions/Cite/i18n/bs.json
new file mode 100644
index 00000000..9338fa30
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/bs.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "CERminator",
+ "Reedy",
+ "KWiki",
+ "Semso98",
+ "Srdjan m"
+ ]
+ },
+ "cite-desc": "Dodaje oznake <nowiki><ref[ name=id]></nowiki> i <nowiki><references/></nowiki> za citiranje",
+ "cite_error": "Greška kod citiranja: $1",
+ "cite_error_ref_numeric_key": "Nevaljana oznaka <code>&lt;ref&gt;</code>;\nnaslov ne može biti jednostavni cijeli broj. Koristite opisni naslov",
+ "cite_error_ref_no_key": "Početna oznaka <code>&lt;ref&gt;</code> nije ispravno oblikovana ili sadrži neispravan naziv",
+ "cite_error_ref_too_many_keys": "Nevaljana oznaka <code>&lt;ref&gt;</code>;\nnevaljani nazivi, npr. možda ih je previše",
+ "cite_error_ref_no_input": "Nevaljana oznaka <code>&lt;ref&gt;</code>;\nreference bez naziva moraju imati sadržaj",
+ "cite_error_references_invalid_parameters": "Neispravan parametar u oznaci <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Ponestalo je prilagođenih naslova backlinkova.\nDefinirajte ih još u <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> poruci",
+ "cite_error_no_link_label_group": "Nedovoljan broj proizvoljnih naslova linkova za grupu \"$1\".\nDefinišite više putem poruke <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Nevaljana oznaka <code>&lt;ref&gt;</code>;\nnije naveden tekst za reference s imenom <code>$1</code>",
+ "cite_error_included_ref": "Nedostaje oznaka za zatvaranje <code>&lt;/ref&gt;</code> nakon <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code> oznake postoje za grupu pod imenom \"$1\", ali nije pronađena pripadajuća <code>&lt;references group=\"$1\"/&gt;</code> oznaka, ili zatvarajući <code>&lt;/ref&gt;</code> nedostaje",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code> oznaka u <code>&lt;references&gt;</code> ima atribut grupe konflikta \"$1\".",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code> oznaka definisana u <code>&lt;references&gt;</code> ima atribut grupe \"$1\" koji se ne pojavljuje u ranijem tekstu.",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code> oznaka s imenom \"$1\" definirana u <code>&lt;references&gt;</code> nije korištena u ranijem tekstu.",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code> oznaka definisana u <code>&lt;references&gt;</code> nema imenski atribut.",
+ "cite_error_empty_references_define": "<code>&lt;ref&gt;</code> oznaka definirana u <code>&lt;references&gt;</code> s imenom \"$1\" nema nikakvog sadržaja.",
+ "cite-tracking-category-cite-error": "Stranice s greškama u referencama",
+ "cite_references_link_accessibility_label": "Vrati se na vrh",
+ "cite_references_link_many_accessibility_label": "Vrati se na:",
+ "cite_section_preview_references": "Pregled referenci",
+ "cite_warning_sectionpreview_no_text": "Oznaka <code>&lt;ref&gt;</code> s nazivom <code>$1</code> ne može se prikazati jer je definirana van trenutnog odlomka ili uopće nije definirana."
+}
diff --git a/www/wiki/extensions/Cite/i18n/bto.json b/www/wiki/extensions/Cite/i18n/bto.json
new file mode 100644
index 00000000..eea88b00
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/bto.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Filipinayzd"
+ ]
+ },
+ "cite_references_link_accessibility_label": "Lumukso",
+ "cite_references_link_many_accessibility_label": "Lumukso sa:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ca.json b/www/wiki/extensions/Cite/i18n/ca.json
new file mode 100644
index 00000000..d9c8426e
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ca.json
@@ -0,0 +1,30 @@
+{
+ "@metadata": {
+ "authors": [
+ "Davidpar",
+ "Jordi Roqué",
+ "SMP",
+ "Vriullop",
+ "Pere prlpz"
+ ]
+ },
+ "cite-desc": "Afegeix les etiquetes <nowiki><ref[ name=id]></nowiki> i <nowiki><references/></nowiki>, per a cites",
+ "cite_error": "Error de citació: $1",
+ "cite_error_ref_numeric_key": "Etiqueta <code>&lt;ref&gt;</code> no vàlida;\nel nom no pot ser un nombre. Empreu una paraula o un títol descriptiu",
+ "cite_error_ref_no_key": "Etiqueta <code>&lt;ref&gt;</code> no vàlida;\nles refs sense contingut han de tenir nom",
+ "cite_error_ref_too_many_keys": "Etiqueta <code>&lt;ref&gt;</code> no vàlida;\nempreu l'estructura <code>&lt;ref name=\"Nom\"&gt;</code>",
+ "cite_error_ref_no_input": "Etiqueta <code>&lt;ref&gt;</code> no vàlida; \nles referències sense nom han de tenir contingut",
+ "cite_error_references_invalid_parameters": "Etiqueta <code>&lt;references&gt;</code> no vàlida; \nno es permeten paràmetres. \nUseu <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Hi ha massa etiquetes personalitzades.\nSe'n poden definir més a <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "No hi ha etiquetes vincle personalitzat per al grup \"$1\".\nDefineix més al missatge <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Etiqueta <code>&lt;ref&gt;</code> no vàlida;\nno s'ha proporcionat text per les refs amb l'etiqueta <code>$1</code>",
+ "cite_error_included_ref": "Es tanca el <code>&lt;/ref&gt;</code> que manca per una etiqueta <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Existeixen etiquetes <code>&lt;ref&gt;</code> pel grup «$1» però no l'etiqueta <code>&lt;references group=\"$1\"/&gt;</code> corresponent",
+ "cite_error_references_group_mismatch": "L'etiqueta <code>&lt;ref&gt;</code> a <code>&lt;references&gt;</code> té un conflicte amb l'atribut de grup \"$1\".",
+ "cite_error_references_missing_group": "L'etiqueta <code>&lt;ref&gt;</code> definida a <code>&lt;references&gt;</code> té l'atribut de grup \"$1\" que no apareix en el text anterior.",
+ "cite_error_references_missing_key": "L'etiqueta <code>&lt;ref&gt;</code> amb el nom \"$1\" definida a <code>&lt;references&gt;</code> no s'utilitza en el text anterior.",
+ "cite_error_references_no_key": "L'etiqueta <code>&lt;ref&gt;</code> definida a <code>&lt;references&gt;</code> no té cap atribut de nom.",
+ "cite_error_empty_references_define": "L'etiqueta <code>&lt;ref&gt;</code> definida a <code>&lt;references&gt;</code> amb el nom \"$1\" no té contingut.",
+ "cite-tracking-category-cite-error": "Pàgines amb errors a les referències",
+ "cite_section_preview_references": "Previsualització de les referències"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ce.json b/www/wiki/extensions/Cite/i18n/ce.json
new file mode 100644
index 00000000..7957e81d
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ce.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Умар"
+ ]
+ },
+ "cite-desc": "<nowiki><ref[ name=id]></nowiki> а <nowiki><references/></nowiki> тегаш тӀетовжарийн тӀетуху",
+ "cite_error": "ГӀалат дешнаш далорна $1",
+ "cite_error_ref_numeric_key": "Нийса йоцу тег <code>&lt;ref&gt;</code>;\nцӀе дуьззина терахь хилийла дац. Лелае йозанан цӀе",
+ "cite_error_ref_no_key": "Нийса йоцу тег <code>&lt;ref&gt;</code>;\nчулацам боцу элементан цӀе хийла еза.",
+ "cite_error_ref_too_many_keys": "Нийса йоцу тег <code>&lt;ref&gt;</code>;\nгӀалатан цӀерш, тӀех дукха хила мега",
+ "cite_error_ref_no_input": "Нийса йоцу тег <code>&lt;ref&gt;</code>;\nцӀе йоцу элементан чулацам хийла беза.",
+ "cite_error_references_duplicate_key": "Нийса йоцу тег <code>&lt;ref&gt;</code>: «$1» цӀе, башха чулацамна маситтазза хӀотийна",
+ "cite_error_references_invalid_parameters": "Нийса йоцу тег <code>&lt;references&gt;</code>;\nпараметраш шорйина яц.\nЛелае <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Символаш тоьаш яц юху ялочу гиперхьажоргашна.\nСистемнан хаам <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> шорбан беза",
+ "cite_error_no_link_label_group": "Тобан «$1» декъашхойн билгалонаш чекхъяьлла.\nХаам <nowiki>[[MediaWiki:$2]]</nowiki> чохь билгалъе кхин тӀе ерш.",
+ "cite_error_references_no_text": "Тег <code>&lt;ref&gt;</code> нийса яц; тIетовжаран <code>$1</code> йоза яздина дац",
+ "cite_error_included_ref": "ДӀакъовлуш йолу тег яц <code>&lt;/ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Тобан «$1» йолуш йолу тегашца <code>&lt;ref&gt;</code> йогӀуш йолу тег <code>&lt;references group=\"$1\"/&gt;</code> ца карийна",
+ "cite_error_references_group_mismatch": "Теган <code>&lt;ref&gt;</code> <code>&lt;references&gt;</code> юкъахь нийса йоцу тобанаш ю атрибутийн «$1».",
+ "cite_error_references_missing_group": "Тег <code>&lt;ref&gt;</code>, билгалйина <code>&lt;references&gt;</code>, «$1» тобан атрибут ю, йозан юкъахь йоцу.",
+ "cite_error_references_missing_key": "Тег <code>&lt;ref&gt;</code> «$1» цӀарца, кху <code>&lt;references&gt;</code> юкъахь билгалйина йолу, хьалха хилла йозан юкъахь яц.",
+ "cite_error_references_no_key": "Тег <code>&lt;ref&gt;</code>, <code>&lt;references&gt;</code> юкъахь билгалйина йолу, цӀеран атрибут яц.",
+ "cite_error_empty_references_define": "Тег <code>&lt;ref&gt;</code>, <code>&lt;references&gt;</code> юкъахь билгалйина йолу, «$1» цӀарца чулацам боцуш ю.",
+ "cite-tracking-category-cite-error": "Билгалдахаршкахь гӀалаташ долу агӀонаш",
+ "cite-tracking-category-cite-error-desc": "ХӀокху категори чохь йолу агӀонаш чохь ду билгалдахаршкахь гӀалаташ ду.",
+ "cite_references_link_many_format_backlink_labels": "а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я аа аб ав аг ад ае ё аж аз аи ай ак ал ам ан ао ап ар ас ат ау аф ах ац ач аш ащ аъ аы аь аэ аю ая ба бб бв бг бд бе бж бз би бй бк бл бм бн бо бп бр бс бт бу бф бх бц бч бш бщ бъ бы бь бэ бю бя ва вб вв вг вд ве вж вз ви вй вк вл вм вн во вп вр вс вт ву вф вх вц вч вш вщ въ вы вь вэ вю вя га гб гв гг гд ге гж гз ги гй гк гл гм гн го гп гр гс гт гу гф гх гц гч гш гщ гъ гы гь гэ гю гя да дб дв дг дд де дж дз ди дй дк дл дм дн до дп др дс дт ду дф дх дц дч дш дщ дъ ды дь дэ дю дя еа еб ев ег ед ее еж ез еи ей ек ел ем ен ео еп ер ес ет еу еф ех ец еч еш ещ еъ еы еь еэ ею ея жа жб жв жг жд же жж жз жи жй жк жл жм жн жо жп жр жс жт жу жф жх жц жч жш жщ жъ жы жь жэ жю жя за зб зв зг зд зе зж зз зи зй зк зл зм зн зо зп зр зс зт зу зф зх зц зч зш зщ зъ зы зь зэ зю зя иа иб ив иг ид ие иж из ии ий ик ил им ин ио ип ир ис ит иу иф их иц ич иш ищ иъ иы иь иэ ию ия йа йб йв йг йд йе йж йз йи йй йк йл йм йн йо йп йр йс йт йу йф йх йц йч йш йщ йъ йы йь йэ йю йя ка кб кв кг кд ке кж кз ки кй кк кл км кн ко кп кр кс кт ку кф кх кц кч кш кщ къ кы кь кэ кю кя ла лб лв лг лд ле лж лз ли лй лк лл лм лн ло лп лр лс лт лу лф лх лц лч лш лщ лъ лы ль лэ лю ля ма мб мв мг мд ме мж мз ми мй мк мл мм мн мо мп мр мс мт му мф мх мц мч мш мщ мъ мы мь мэ мю мя на нб нв нг нд не нж нз ни нй нк нл нм нн но нп нр нс нт ну нф нх нц нч нш нщ нъ ны нь нэ ню ня оа об ов ог од ое ож оз ои ой ок ол ом он оо оп ор ос от оу оф ох оц оч ош ощ оъ оы оь оэ ою оя па пб пв пг пд пе пж пз пи пй пк пл пм пн по пп пр пс пт пу пф пх пц пч пш пщ пъ пы пь пэ пю пя ра рб рв рг рд ре рж рз ри рй рк рл рм рн ро рп рр рс рт ру рф рх рц рч рш рщ ръ ры рь рэ рю ря са сб св сг сд се сж сз си сй ск сл см сн со сп ср сс ст су сф сх сц сч сш сщ съ сы сь сэ сю ся та тб тв тг тд те тж тз ти тй тк тл тм тн то тп тр тс тт ту тф тх тц тч тш тщ тъ ты ть тэ тю тя уа уб ув уг уд уе уж уз уи уй ук ул ум ун уо уп ур ус ут уу уф ух уц уч уш ущ уъ уы уь уэ ую уя фа фб фв фг фд фе фж фз фи фй фк фл фм фн фо фп фр фс фт фу фф фх фц фч фш фщ фъ фы фь фэ фю фя ха хб хв хг хд хе хж хз хи хй хк хл хм хн хо хп хр хс хт ху хф хх хц хч хш хщ хъ хы хь хэ хю хя ца цб цв цг цд це цж цз ци цй цк цл цм цн цо цп цр цс цт цу цф цх цц цч цш цщ цъ цы ць цэ цю ця ча чб чв чг чд че чж чз чи чй чк чл чм чн чо чп чр чс чт чу чф чх чц чч чш чщ чъ чы чь чэ чю чя ша шб шв шг шд ше шж шз ши шй шк шл шм шн шо шп шр шс шт шу шф шх шц шч шш шщ шъ шы шь шэ шю шя ща щб щв щг щд ще щж щз щи щй щк щл щм щн що щп щр щс щт щу щф щх щц щч щш щщ щъ щы щь щэ щю щя ъа ъб ъв ъг ъд ъе ъж ъз ъи ъй ък ъл ъм ън ъо ъп ър ъс ът ъу ъф ъх ъц ъч ъш ъщ ъъ ъы ъь ъэ ъю ъя ыа ыб ыв ыг ыд ые ыж ыз ыи ый ык ыл ым ын ыо ып ыр ыс ыт ыу ыф ых ыц ыч ыш ыщ ыъ ыы ыь ыэ ыю ыя ьа ьб ьв ьг ьд ье ьж ьз ьи ьй ьк ьл ьм ьн ьо ьп ьр ьс ьт ьу ьф ьх ьц ьч ьш ьщ ьъ ьы ьь ьэ ью ья эа эб эв эг эд эе эж эз эи эй эк эл эм эн эо эп эр эс эт эу эф эх эц эч эш эщ эъ эы эь ээ эю эя юа юб юв юг юд юе юж юз юи юй юк юл юм юн юо юп юр юс ют юу юф юх юц юч юш ющ юъ юы юь юэ юю юя яа яб яв яг яд яе яж яз яи яй як ял ям ян яо яп яр яс ят яу яф ях яц яч яш ящ яъ яы яь яэ яю яя ӀӀ",
+ "cite_references_link_accessibility_label": "Дехьа гӀо",
+ "cite_references_link_many_accessibility_label": "Дехьа гӀо:",
+ "cite_section_preview_references": "Билгалдахарш",
+ "cite_warning": "Цитаташ ялоран дӀахьедар: $1",
+ "cite_warning_sectionpreview_no_text": "<code>$1</code> цӀе йолу <code>&lt;ref&gt;</code> теге хьажа цало, иза хӀокху декъа чохь я цхьанхьа а цахилар бахьнехь."
+}
diff --git a/www/wiki/extensions/Cite/i18n/ckb.json b/www/wiki/extensions/Cite/i18n/ckb.json
new file mode 100644
index 00000000..d537e4b7
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ckb.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Asoxor",
+ "Lost Whispers",
+ "Épine"
+ ]
+ },
+ "cite_error": "ھەڵەی ژێدەرەکان: $1",
+ "cite_error_ref_too_many_keys": "تاگی <code>&lt;ref&gt;</code>ی ڕێگەپێنەدراو؛\nبۆ نموونە، ناوە ھەڵەیەکان یان لە ڕادە بەدەر",
+ "cite_error_references_duplicate_key": "تاگی <code>&lt;ref&gt;</code>ی ھەڵە؛ ناوی «$1» زیاتر لە یەک جار پێناسە کراوە لەگەڵ ناوەڕۆکی جیاوازدا",
+ "cite_error_references_no_text": "تاگی <code>&lt;ref&gt;</code> ھەڵە؛\nھیچ دەقێک بۆ ژێدەری <code>$1</code> نەدراوە",
+ "cite_error_included_ref": "داخەری ژێدەر <code>&lt;/ref&gt;</code> بۆ تاگی <code>&lt;ref&gt;</code> بەردەست نییە",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code> تاگی «$1» کە لە <code>&lt;ژێدەرەکاندا&gt;</code> پێناسەکراوە لە دەقی وتاردا بەکارنەھاتووە.",
+ "cite_references_link_many_format_backlink_labels": "ئ ا ب پ ت ج چ ح خ د ر ڕ ز ژ س ش ع غ ف ڤ ق ک گ ل ڵ م ن و ۆ وو ھ ە ی ێ ئا ئب ئپ ئت ئج ئچ ئح ئخ ئد ئر ئڕ ئز ئژ ئس ئش ئع ئغ ئف ئڤ ئق ئک ئگ ئل ئڵ ئم ئن ئو ئۆ ئوو ئھ ئە ئی ئێ بئ با بب بپ بت بج بچ بح بخ بد بر بڕ بز بژ بس بش بع بغ بف بڤ بق بک بگ بل بڵ بم بن بو بۆ بوو بھ بە بی بێ پئ پا پب پپ پت پج پچ پح پخ پد پر پڕ پز پژ پس پش پع پغ پف پڤ پق پک پگ پل پڵ پم پن پو پۆ پوو پھ پە پی پێ تئ تا تب تپ تت تج تچ تح تخ تد تر تڕ تز تژ تس تش تع تغ تف تڤ تق تک تگ تل تڵ تم تن تو تۆ توو تھ تە تی تێ جئ جا جب جپ جت جج جچ جح جخ جد جر جڕ جز جژ جس جش جع جغ جف جڤ جق جک جگ جل جڵ جم جن جو جۆ جوو جھ جە جی جێ"
+}
diff --git a/www/wiki/extensions/Cite/i18n/cs.json b/www/wiki/extensions/Cite/i18n/cs.json
new file mode 100644
index 00000000..10804210
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/cs.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Danny B.",
+ "Li-sung",
+ "Littledogboy",
+ "Matěj Grabovský",
+ "Mormegil",
+ "Sp5uhe",
+ "Matěj Suchánek"
+ ]
+ },
+ "cite-desc": "Přidává značky <nowiki><ref[ name=\"id\"]></nowiki> a&nbsp;<nowiki><references /></nowiki> na označení citací",
+ "cite_error": "Chybná citace: $1",
+ "cite_error_ref_numeric_key": "Chyba v tagu <code>&lt;ref&gt;</code>; názvem nesmí být prosté číslo, použijte popisné označení",
+ "cite_error_ref_no_key": "Otvírací značka <code>&lt;ref&gt;</code> je chybná nebo má špatný název",
+ "cite_error_ref_too_many_keys": "Chyba v tagu <code>&lt;ref&gt;</code>; chybné názvy, např. je jich příliš mnoho",
+ "cite_error_ref_no_input": "Chyba v tagu <code>&lt;ref&gt;</code>; citace bez názvu musí mít vlastní obsah",
+ "cite_error_references_duplicate_key": "Neplatná značka <code>&lt;ref&gt;</code>; název „$1“ použit vícekrát s různým obsahem",
+ "cite_error_references_invalid_parameters": "Neplatný parametr v tagu <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Došla označení zpětných odkazů, přidejte jich několik do zprávy <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Došly definované značky pro skupinu „$1“.\nZvyšte jejich počet ve zprávě <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Chyba v tagu <code>&lt;ref&gt;</code>; citaci označené <code>$1</code> není určen žádný text",
+ "cite_error_included_ref": "Chybí ukončovací <code>&lt;/ref&gt;</code> k&nbsp;tagu <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Nalezena značka <code>&lt;ref&gt;</code> pro skupinu „$1“, ale neexistuje příslušná značka <code>&lt;references group=\"$1\"/&gt;</code> nebo chybí zavírací <code>&lt;/ref&gt;</code>.",
+ "cite_error_references_group_mismatch": "Značka <code>&lt;ref&gt;</code> uvnitř <code>&lt;references&gt;</code> má definovánu jinou skupinu „$1“.",
+ "cite_error_references_missing_group": "Značka <code>&lt;ref&gt;</code> uvnitř <code>&lt;references&gt;</code> používá skupinu „$1“, která se v předchozím textu neobjevuje.",
+ "cite_error_references_missing_key": "Na <code>&lt;ref&gt;</code> se jménem „$1“ definovaný uvnitř <code>&lt;references&gt;</code> nejsou v předchozím textu žádné odkazy.",
+ "cite_error_references_no_key": "U značky <code>&lt;ref&gt;</code> definované uvnitř <code>&lt;references&gt;</code> chybí atribut <code>name</code>.",
+ "cite_error_empty_references_define": "U značky <code>&lt;ref&gt;</code> s názvem „$1“ definované uvnitř <code>&lt;references&gt;</code> chybí obsah.",
+ "cite-tracking-category-cite-error": "Stránky s chybami v referencích",
+ "cite-tracking-category-cite-error-desc": "Stránky v této kategorii obsahují chyby v použití značek pro reference.",
+ "cite_references_link_accessibility_label": "Skočit nahoru",
+ "cite_references_link_many_accessibility_label": "Skočit nahoru k:",
+ "cite_section_preview_references": "Náhled referencí",
+ "cite_warning": "Upozornění k citaci: $1",
+ "cite_warning_sectionpreview_no_text": "Nelze zobrazit náhled značky <code>&lt;ref&gt;</code> se jménem <code>$1</code>, protože je definována mimo aktuální sekci nebo není definována vůbec."
+}
diff --git a/www/wiki/extensions/Cite/i18n/csb.json b/www/wiki/extensions/Cite/i18n/csb.json
new file mode 100644
index 00000000..be0e1a79
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/csb.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kaszeba"
+ ]
+ },
+ "cite_error": "Fela rozszerzeniô ''cite'': $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/cu.json b/www/wiki/extensions/Cite/i18n/cu.json
new file mode 100644
index 00000000..7572275d
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/cu.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "ОйЛ"
+ ]
+ },
+ "cite_references_link_many_format_backlink_labels": "а б в г д є ж ꙃ ꙁ и і к л м н о п р с т ф х ѡ ц ч ш щ ъ ꙑ ь ѣ ю ꙗ ѥ ѧ ѫ ѩ ѭ ѯ ѱ ѳ ѵ ѷ аа аб ав аг ад ає аж аꙁ аꙃ аи аі ак ал ам ан ао ап ар ас ат аф ах аѡ ац ач аш ащ аъ аꙑ аь аѣ аю аꙗ аѥ аѧ аѫ аѩ аѭ аѯ аѱ аѳ аѵ аѷ"
+}
diff --git a/www/wiki/extensions/Cite/i18n/cy.json b/www/wiki/extensions/Cite/i18n/cy.json
new file mode 100644
index 00000000..a4a7a971
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/cy.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lloffiwr",
+ "Xxglennxx",
+ "Robin Owain"
+ ]
+ },
+ "cite-desc": "Yn ychwanegu tagiau <nowiki><ref[ name=id]></nowiki> a <nowiki><references/></nowiki>, ar gyfer cyfeiriadau",
+ "cite_error": "Gwall cyfeirio: $1",
+ "cite_error_ref_numeric_key": "Tag <code>&lt;ref&gt;</code> annilys;\nni all enw fod yn rif yn unig. Defnyddiwch deitl disgrifiadol.",
+ "cite_error_ref_no_key": "Mae'r <code>&lt;ref&gt;</code> tag yn annilys neu rhoddwyd iddo enw annilys",
+ "cite_error_ref_too_many_keys": "Tag <code>&lt;ref&gt;</code> annilys;\nenwau annilys; e.e. gormod ohonynt",
+ "cite_error_ref_no_input": "Tag <code>&lt;ref&gt;</code> annilys;\nrhaid i dagiau ref heb enw iddynt gynnwys rhywbeth",
+ "cite_error_references_duplicate_key": "Tag <code>&lt;ref&gt;</code> annilys; mae'r enw \"$1\" wedi'i ddiffinio droeon gyda chynnwys gwahanol",
+ "cite_error_references_invalid_parameters": "Tag <code>&lt;references&gt;</code> annilys;\nni chaniateir paramedrau.\nDefnyddiwch <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Dim rhagor o labeli ôl-gyswllt ar gael.\nDiffiniwch ragor ohonynt yn y neges <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Wedi rhedeg allan o labeli dolenni unigryw ar gyfer y grŵp \"$1\".\nGallwch ddiffinio rhagor ohonynt yn y neges <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Tag <code>&lt;ref&gt;</code> annilys;\nni osodwyd unrhyw destun ar gyfer y 'ref' <code>$1</code>",
+ "cite_error_included_ref": "<code>&lt;/ref&gt;</code> clo yn eisiau ar gyfer y tag <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Mae tagiau <code>&lt;ref&gt;</code> yn bresennol ar gyfer y grwp \"$1\", ond ni chafwyd tag <code>&lt;references/&gt;</code>, ynteu roedd <code>&lt;/ref&gt;</code> terfynol yn eisiau.",
+ "cite_error_references_group_mismatch": "Mae gan y tag <code>&lt;ref&gt;</code> oddi mewn i <code>&lt;references&gt;</code> briodoledd grŵp anghyson \"$1\".",
+ "cite_error_references_missing_group": "Mae gan y tag <code>&lt;ref&gt;</code> a ddiffinir yn <code>&lt;references&gt;</code> briodoledd grŵp \"$1\" nag ydyw'n cael ei ddefnyddio yn y testun cynt.",
+ "cite_error_references_missing_key": "Ni ddefnyddir y tag <code>&lt;ref&gt;</code> o'r enw \"$1\", a ddiffinir yn <code>&lt;references&gt;</code>, yn y testun blaenorol.",
+ "cite_error_references_no_key": "Nid oes dim priodoledd o enw gan y tag <code>&lt;ref&gt;</code> a ddiffinir yn <code>&lt;references&gt;</code>",
+ "cite_error_empty_references_define": "Does dim byd yn y tag <code>&lt;ref&gt;</code> a'r enw \"$1\" arno, sydd wedi ei ddiffinio oddi mewn i dagiau <code>&lt;references&gt;</code>.",
+ "cite-tracking-category-cite-error": "Dalennau gyda gwallau yn y cyfeiriadau",
+ "cite-tracking-category-cite-error-desc": "Mae gan dalennau'r categori hwn wallau yn y modd maen nhw'n defnyddio tagiau cyfeirio.",
+ "cite_references_link_accessibility_label": "Neidio am lan",
+ "cite_references_link_many_accessibility_label": "Neidio lan i:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/da.json b/www/wiki/extensions/Cite/i18n/da.json
new file mode 100644
index 00000000..75ea2679
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/da.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Byrial",
+ "Christian List",
+ "Emilkris33",
+ "Morten LJ",
+ "Peter Alberti"
+ ]
+ },
+ "cite-desc": "Tilføjer <nowiki><ref[ name=id]></nowiki> og <nowiki><references/></nowiki>-elementer til referencer.",
+ "cite_error": "Fodnotefejl: $1",
+ "cite_error_ref_numeric_key": "Ugyldigt <code>&lt;ref&gt;</code>-tag; \"name\" kan ikke være et simpelt heltal, brug en beskrivende titel",
+ "cite_error_ref_no_key": "Ugyldigt <code>&lt;ref&gt;</code>-tag: Et <code>&lt;ref&gt;</code>-tag uden indhold skal have et navn",
+ "cite_error_ref_too_many_keys": "Ugyldigt <code>&lt;ref&gt;</code>-tag: Ugyldige navne, fx for mange",
+ "cite_error_ref_no_input": "Ugyldigt <code>&lt;ref&gt;</code>-tag: Et <code>&lt;ref&gt;</code>-tag uden navn skal have indhold",
+ "cite_error_references_duplicate_key": "Ugyldigt <code>&lt;ref&gt;</code> tag; navnet \"$1\" er defineret flere gange med forskelligt indhold",
+ "cite_error_references_invalid_parameters": "Ugyldigt <code>&lt;references&gt;</code>-tag: Parametre er ikke tilladt, brug i stedet <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Løb tør for backlink-etiketter.\nDefiner flere i beskeden <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_no_link_label_group": "Løb tør for tilpassede linketiketter til gruppen \"$1\".\nDefiner flere i beskeden <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Ugyldigt <code>&lt;ref&gt;</code>-tag: Der er ikke specificeret nogen fodnotetekst til navnet <code>$1</code>",
+ "cite_error_included_ref": "Afsluttende <code>&lt;/ref&gt;</code> mangler for <code>&lt;ref&gt;</code>-tag",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code>-tags eksisterer for en gruppe betegnet \"$1\", men der blev ikke fundet et tilsvarende <code>&lt;references group=\"$1\"/&gt;</code>-tag, eller et afsluttende <code>&lt;/ref&gt;</code>-tag mangler",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code>-tag inden i <code>&lt;references&gt;</code> har modstridende gruppe-attribut \"$1\".",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code>-tag defineret inden i <code>&lt;references&gt;</code> har gruppe-attributten \"$1\", som ikke anvendes i den ovenstående tekst.",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code>-tag med navn \"$1\" defineret inden i <code>&lt;references&gt;</code> anvendes ikke i den ovenstående tekst.",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code>-tag defineret inden i <code>&lt;references&gt;</code> har ikke en navne-attribut.",
+ "cite_error_empty_references_define": "<code>&lt;ref&gt;</code>-tag defineret inden i <code>&lt;references&gt;</code> med navnet \"$1\" har ikke noget indhold.",
+ "cite-tracking-category-cite-error": "Sider med fejl i referencer",
+ "cite-tracking-category-cite-error-desc": "Sider i denne kategori har fejl i brugen af reference-tags.",
+ "cite_references_link_accessibility_label": "Hoppe op",
+ "cite_references_link_many_accessibility_label": "Hoppe op til:",
+ "cite_warning": "Citeringsadvarsel: $1",
+ "cite_warning_sectionpreview_no_text": "<code>&lt;ref&gt;</code> tag med navnet <code>$1</code> kan ikke ses, fordi den er defineret uden for det aktuelle afsnit eller ikke defineret overhovedet."
+}
diff --git a/www/wiki/extensions/Cite/i18n/de-ch.json b/www/wiki/extensions/Cite/i18n/de-ch.json
new file mode 100644
index 00000000..4d9194ee
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/de-ch.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Geitost",
+ "Umherirrender"
+ ]
+ },
+ "cite_error_references_invalid_parameters": "Ungültige <tt>&lt;references&gt;</tt>-Verwendung: Es sind keine zusätzlichen Parameter erlaubt, verwende ausschliesslich <tt><nowiki><references /></nowiki></tt>.",
+ "cite_error_included_ref": "Es fehlt ein schliessendes <code>&lt;/ref&gt;</code>",
+ "cite_error_references_missing_group": "Das in <code>&lt;references&gt;</code> definierte <code>&lt;ref&gt;</code>-Tag hat das Gruppenattribut «$1», das nicht im vorausgehenden Text verwendet wird.",
+ "cite_error_references_missing_key": "Das in <code>&lt;references&gt;</code> definierte <code>&lt;ref&gt;</code>-Tag mit dem Namen «$1» wird im vorausgehenden Text nicht verwendet."
+}
diff --git a/www/wiki/extensions/Cite/i18n/de-formal.json b/www/wiki/extensions/Cite/i18n/de-formal.json
new file mode 100644
index 00000000..25b06c9c
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/de-formal.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Imre",
+ "Kghbln",
+ "Raimond Spekking"
+ ]
+ },
+ "cite_error_ref_numeric_key": "Ungültige Verwendung von <code>&lt;ref&gt;</code>: Der Parameter „name“ darf kein reiner Zahlenwert sein. Benutzen Sie einen beschreibenden Namen.",
+ "cite_error_references_invalid_parameters": "Ungültige Verwendung von <code>&lt;references&gt;</code>: Es sind keine Parameter möglich. Verwenden Sie ausschließlich <code><nowiki><references /></nowiki></code>."
+}
diff --git a/www/wiki/extensions/Cite/i18n/de.json b/www/wiki/extensions/Cite/i18n/de.json
new file mode 100644
index 00000000..912b3ed9
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/de.json
@@ -0,0 +1,43 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kghbln",
+ "Metalhead64",
+ "Purodha",
+ "Raimond Spekking",
+ "The Evil IP address",
+ "Umherirrender",
+ "TMg",
+ "Debenben"
+ ]
+ },
+ "apihelp-query+references-description": "Gibt eine Datendarstellung von Referenzen zurück, die mit den angegebenen Seiten verbunden sind.",
+ "apihelp-query+references-summary": "Gibt eine Datendarstellung der Referenzen zurück, die mit den angegebenen Seiten verbunden sind.",
+ "apihelp-query+references-example-1": "Referenzen, die mit <kbd>Albert Einstein</kbd> verbunden sind.",
+ "apierror-citestoragedisabled": "Der Referenzspeicher der Erweiterung „Cite“ ist nicht aktiviert.",
+ "cite-desc": "Ermöglicht Referenzierungen mittels <code><nowiki><ref[&nbsp;name=id]></nowiki></code> und <code><nowiki><references&nbsp;/></nowiki></code>",
+ "cite_error": "Referenzfehler: $1",
+ "cite_error_ref_numeric_key": "Ungültige Verwendung von <code>&lt;ref&gt;</code>: Der Parameter „name“ darf kein reiner Zahlenwert sein. Benutze einen beschreibenden Namen.",
+ "cite_error_ref_no_key": "Das öffnende <code>&lt;ref&gt;</code>-Tag ist beschädigt oder hat einen ungültigen Namen",
+ "cite_error_ref_too_many_keys": "Ungültige Verwendung von <code>&lt;ref&gt;</code>: Der Parameter „name“ ist ungültig oder zu lang.",
+ "cite_error_ref_no_input": "Ungültige Verwendung von <code>&lt;ref&gt;</code>: Der Parameter „ref“ ohne Namen muss einen Inhalt haben.",
+ "cite_error_references_duplicate_key": "Ungültiges <code>&lt;ref&gt;</code>-Tag. Der Name „$1“ wurde mehrere Male mit einem unterschiedlichen Inhalt definiert.",
+ "cite_error_references_invalid_parameters": "Ungültiger Parameter im <code>&lt;references&gt;</code>-Tag",
+ "cite_error_references_no_backlink_label": "Eine Referenz der Form <code>&lt;ref name=\"…\" /&gt;</code> wird öfter benutzt als Buchstaben vorhanden sind. Ein Administrator muss die Systemnachricht <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> um weitere Buchstaben/Zeichen ergänzen.",
+ "cite_error_no_link_label_group": "Für die Gruppe „$1“ sind keine benutzerdefinierten Linkbezeichnungen mehr verfügbar.\nEin Administrator muss weitere mit der Systemnachricht <nowiki>[[MediaWiki:$2]]</nowiki> festlegen.",
+ "cite_error_references_no_text": "Es ist ein ungültiger <code>&lt;ref&gt;</code>-Tag vorhanden: Für die Referenz namens <code>$1</code> wurde kein Text angegeben.",
+ "cite_error_included_ref": "Für ein <code>&lt;ref&gt;</code>-Tag fehlt ein schließendes <code>&lt;/ref&gt;</code>-Tag.",
+ "cite_error_group_refs_without_references": "Es sind <code>&lt;ref&gt;</code>-Tags für die Gruppe „$1“ vorhanden, jedoch wurde kein dazugehöriges <code>&lt;references group=\"$1\" /&gt;</code>-Tag gefunden oder ein schließendes <code>&lt;/ref&gt;</code> fehlt.",
+ "cite_error_references_group_mismatch": "Das <code>&lt;ref&gt;</code>-Tag in <code>&lt;references&gt;</code> enthält das kollidierende Attribut „$1“.",
+ "cite_error_references_missing_group": "Das in <code>&lt;references&gt;</code> definierte <code>&lt;ref&gt;</code>-Tag hat das Gruppenattribut „$1“, das nicht im vorausgehenden Text verwendet wird.",
+ "cite_error_references_missing_key": "Das in <code>&lt;references&gt;</code> definierte <code>&lt;ref&gt;</code>-Tag mit dem Namen „$1“ wird im vorausgehenden Text nicht verwendet.",
+ "cite_error_references_no_key": "Das in <code>&lt;references&gt;</code> definierte <code>&lt;ref&gt;</code>-Tag hat kein Namensattribut.",
+ "cite_error_empty_references_define": "Das in <code>&lt;references&gt;</code> definierte <code>&lt;ref&gt;</code>-Tag mit dem Namen „$1“ weist keinen Inhalt auf.",
+ "cite-tracking-category-cite-error": "Seiten mit Referenzierungsfehlern",
+ "cite-tracking-category-cite-error-desc": "Seiten in dieser Kategorie haben Fehler in der Verwendung von Einzelnachweis-Tags.",
+ "cite_references_link_accessibility_label": "Hochspringen",
+ "cite_references_link_many_accessibility_label": "Hochspringen nach:",
+ "cite_section_preview_references": "Vorschau von Einzelnachweisen",
+ "cite_warning": "Referenzwarnung: $1",
+ "cite_warning_sectionpreview_no_text": "Das Tag <code>&lt;ref&gt;</code> mit dem Namen <code>$1</code> kann nicht in der Vorschau angezeigt werden, da es außerhalb des aktuellen Abschnitts liegt oder überhaupt nicht definiert ist."
+}
diff --git a/www/wiki/extensions/Cite/i18n/din.json b/www/wiki/extensions/Cite/i18n/din.json
new file mode 100644
index 00000000..c2089714
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/din.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dinkawiki"
+ ]
+ },
+ "cite_error": "Mɛɛlë awäc: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/diq.json b/www/wiki/extensions/Cite/i18n/diq.json
new file mode 100644
index 00000000..e1316209
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/diq.json
@@ -0,0 +1,50 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aspar",
+ "Erdemaslancan",
+ "Gorizon",
+ "Xoser",
+ "Kumkumuk",
+ "1917 Ekim Devrimi",
+ "Gırd"
+ ]
+ },
+ "apihelp-query+references-description": "Eleqe referansa deyaye peran de temsilandataya çerx keno",
+ "apihelp-query+references-example-1": "<kbd>Albert Einstein</kbd>'i ya eleqeyın referanso",
+ "apierror-citestoragedisabled": "Nımıtışê referansê cıkerdışê qalkerdışi a niyo.",
+ "cite-desc": "Qe çime mucnayîşî, etiketanê <nowiki><ref[ name=id]></nowiki> u <nowiki><references/></nowiki> de keno",
+ "cite_error": "Çımeyo ğelet: $1",
+ "cite_error_ref_numeric_key": "Etiket <code>&lt;ref&gt;</code> ke raşt niyo;\nName nieşkeno biyo yew rekam. Çekuyan binuse",
+ "cite_error_ref_no_key": "Etiket <code>&lt;ref&gt;</code> ke raşt niyo;\nEka kontent çini yo, gani yew name biyo",
+ "cite_error_ref_too_many_keys": "Etiket <code>&lt;ref&gt;</code> ke raşt niyo;\nname raşt niyo, e.g. zaf esto",
+ "cite_error_ref_no_input": "Etiket <code>&lt;ref&gt;</code> ke raşt niyo;\nEka name çini yo, gani kontent biyo",
+ "cite_error_references_duplicate_key": "Nêravêrde <code>&lt;ref&gt;</code> etiket: \"$1\" name yew ra zeder zerrek de şınasiya yo.",
+ "cite_error_references_invalid_parameters": "Etiket <code>&lt;ref&gt;</code> ke raşt niyo;\nparametrayan ra destur çini yo.\n<code>&lt;references /&gt;</code> sero kar bike",
+ "cite_error_references_no_backlink_label": "Linkanê Custom backlinkî hin çini yo.\nZerreyê mesajê <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>î de hewna tasvir bike",
+ "cite_error_no_link_label_group": "Eka etiketinê linkê şexsi ser ena grubi \"$1\" ciniyo.\nZerre mesajê <nowiki>[[MediaWiki:$2]]</nowiki> de zafyer qise bike.",
+ "cite_error_references_no_text": "Nêvêreno<code>&lt;ref&gt;</code> etiket;\nno nuşte çıme be namey <code>$1</code> rê vıraziyao.",
+ "cite_error_included_ref": "<code>&lt;ref&gt;</code>Qandê etiketi <code>&lt;/ref&gt;</code> racnayış kemiyo",
+ "cite_error_group_refs_without_references": "etiketé <code>&lt;ref&gt;</code>i niesto ser grubé $1'i, feqat etiketé <code>&lt;references/&gt;</code>dé \"$1\"/&gt;nidiyo",
+ "cite_error_references_group_mismatch": "etiketê <code>&lt;ref&gt;</code>î, zerre <code>&lt;references/&gt;</code> de ser grupê \"$1\"î konflikt keno.",
+ "cite_error_references_missing_group": "etiketê <code>&lt;ref&gt;</code>î, zerre <code>&lt;references/&gt;</code> de tevsir biyo ke ser grupê \"$1\"î ke verni de nieseno.",
+ "cite_error_references_missing_key": "etiketê <code>&lt;ref&gt;</code>î, zerre <code>&lt;references/&gt;</code> de tevisr biyo ser name \"$1\"î verni de niesto.",
+ "cite_error_references_no_key": "etiketê <code>&lt;ref&gt;</code>î, zerre <code>&lt;references/&gt;</code> de tevsir biyo name xo çini yo.",
+ "cite_error_empty_references_define": "etiketê <code>&lt;ref&gt;</code>î, zerre <code>&lt;references/&gt;</code> de tevsir biyo \"$1\" kontent xo çini yo.",
+ "cite-tracking-category-cite-error": "Perri be xetay çımey",
+ "cite-tracking-category-cite-error-desc": "Perabê ena kategori de referansan de xırabin est a.",
+ "cite_reference_link_key_with_num": "$1_$2",
+ "cite_reference_link_prefix": "sita_ref-",
+ "cite_references_link_prefix": "sita_not-",
+ "cite_references_link_one": "<li id=\"$1\"><span class=\"mw-cite-backlink\">[[#$2|↑]]</span> $3</li>",
+ "cite_references_link_many": "<li id=\"$1\"><span class=\"mw-cite-backlink\">↑ $2</span> $3</li>",
+ "cite_references_link_many_format": "<sup>[[#$1|$2]]</sup>",
+ "cite_references_link_many_format_backlink_labels": "a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz",
+ "cite_references_link_many_sep": "&#32;",
+ "cite_references_link_many_and": "&#32;",
+ "cite_references_link_accessibility_label": "Ser çek",
+ "cite_references_link_many_accessibility_label": "Ser çek:",
+ "cite_section_preview_references": "Verasayışê çımeyan",
+ "cite_warning": "İqaza sita:$1",
+ "cite_warning_sectionpreview_no_text": "<code>&lt;ref&gt;</code> nameya etiket <code>$1</code> bêverqayy nêbena, çıkı\nMewcud lete dı yana bê ê leti şınasiya xı çıni ya."
+}
diff --git a/www/wiki/extensions/Cite/i18n/dsb.json b/www/wiki/extensions/Cite/i18n/dsb.json
new file mode 100644
index 00000000..d284d4dc
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/dsb.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michawiki"
+ ]
+ },
+ "cite-desc": "Pśidawa toflicce <nowiki><ref[ name=id]></nowiki> a <nowiki><references/></nowiki> za pódaśa zrědłow",
+ "cite_error": "Referencna zmólka: $1",
+ "cite_error_ref_numeric_key": "Njepłaśiwa toflicka <code>&lt;ref&gt;</code>;\nmě njamóžo jadnora licba byś. Wužyj wugroniwy titel",
+ "cite_error_ref_no_key": "Njepłaśiwa toflicka <code>&lt;ref&gt;</code>;\n\"ref\" bźez wopśimjeśa musy mě měś",
+ "cite_error_ref_too_many_keys": "Njepłaśiwa toflicka <code>&lt;ref&gt;</code>;\nnjepłaśiwe mjenja, na pś. pśewjele",
+ "cite_error_ref_no_input": "Njepłaśiwa toflicka <code>&lt;ref&gt;</code>;\n\"ref\" bźez mjenja musy wopśimjeśe měś",
+ "cite_error_references_invalid_parameters": "Njepłaśiwa toflicka <code>&lt;references&gt;</code>;\nžedne parametry dowólone.\nWužyj <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Swójske etikety slědkwótkazow wupócerane.\nDefiněruj dalšne w powěsći <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Žedne swójske wótkazowe etikety za \"$1\" wěcej k dispoziciji.\nDefiněruj dalšne w powěsći <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Njepłaśiwa toflicka <code>&lt;ref&gt;</code>;\nza ref z mjenim <code>$1</code> njejo se tekst pódał",
+ "cite_error_included_ref": "Kóńceca toflicka <code>&lt;/ref&gt;</code> felujo za toflicku <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Toflicki <code>&lt;ref&gt;</code> eksistěruju za kupku z mjenim \"$1\", ale wótpowědujuca toflicka <code>&lt;references group=\"$1\"/&gt;</code> njejo se namakała abo zacynjacy <code>&lt;/ref&gt;</code> felujo",
+ "cite_error_references_group_mismatch": "Toflicka <code>&lt;ref&gt;</code> w <code>&lt;references&gt;</code> jo ze kupkowym atributom \"$1\" w konflikśe.",
+ "cite_error_references_missing_group": "Toflicka <code>&lt;ref&gt;</code>, kótaraž jo w <code>&lt;references&gt;</code> definěrowana, ma kupkowy atribut \"$1\", kótaryž njepokazujo se w pjerwjejšnem teksće.",
+ "cite_error_references_missing_key": "Toflicka <code>&lt;ref&gt;</code> z mjenim \"$1\", kótaraž jo w <code>&lt;references&gt;</code> definěrowana, njewužywa se w pjerwjejšnem teksće.",
+ "cite_error_references_no_key": "Toflicka <code>&lt;ref&gt;</code>, kótaraž jo w <code>&lt;references&gt;</code> definěrowana, njama mjenjowy atribut.",
+ "cite_error_empty_references_define": "Toflicka <code>&lt;ref&gt;</code>, kótaraž jo w <code>&lt;references&gt;</code> z mjenim \"$1\" definěrowana, njama wopśimjeśe.",
+ "cite_references_link_accessibility_label": "Górjej skócyś",
+ "cite_references_link_many_accessibility_label": "Górjej skócys do:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/dty.json b/www/wiki/extensions/Cite/i18n/dty.json
new file mode 100644
index 00000000..7f2cbc04
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/dty.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "रमेश सिंह बोहरा"
+ ]
+ },
+ "cite_error": "उद्दरण त्रुटी: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/el.json b/www/wiki/extensions/Cite/i18n/el.json
new file mode 100644
index 00000000..5370539c
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/el.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Consta",
+ "Omnipaedista",
+ "Protnet",
+ "ZaDiak",
+ "Απεργός",
+ "Xaris333",
+ "Nikosgranturismogt"
+ ]
+ },
+ "cite-desc": "Προσθέτει τις ετικέτες <nowiki><ref[ name=αναγνωριστικό]></nowiki> και <nowiki><references/></nowiki>, για παραπομπές",
+ "cite_error": "Σφάλμα παραπομπής: $1",
+ "cite_error_ref_numeric_key": "Μη έγκυρη ετικέτα <code>&lt;ref&gt;</code>·\nτο όνομα δεν μπορεί να είναι απλός ακέραιος. Χρησιμοποιήστε έναν περιγραφικό τίτλο",
+ "cite_error_ref_no_key": "Μη έγκυρη ετικέτα <code>&lt;ref&gt;</code>·\nπαραπομπές χωρίς περιεχόμενο πρέπει να έχουν όνομα",
+ "cite_error_ref_too_many_keys": "Μη έγκυρη ετικέτα <code>&lt;ref&gt;</code>·\nμη έγκυρα ονόματα, π.χ. πάρα πολλά",
+ "cite_error_ref_no_input": "Μη έγκυρη ετικέτα <code>&lt;ref&gt;</code>·\nοι παραπομπές χωρίς όνομα πρέπει να έχουν περιεχόμενο",
+ "cite_error_references_invalid_parameters": "Άκυρη παράμετρος στην <code>&lt;references&gt;</code> ετικέτα.",
+ "cite_error_references_no_backlink_label": "Εξαντλήθηκαν οι ειδικές ετικέτες συνδέσμων προς το κείμενο.\nΚαθορισμός περισσότερων στο μήνυμα <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_no_link_label_group": "Εξαντλήθηκαν οι ειδικές ετικέτες συνδέσμων για την ομάδα «$1».\nΚαθορισμός περισσότερων στο μήνυμα <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Μη έγκυρη ετικέτα <code>&lt;ref&gt;</code>·\nδεν δίνεται κείμενο για παραπομπές με όνομα <code>$1</code>",
+ "cite_error_included_ref": "Λείπει η ετικέτα κλεισίματος <code>&lt;/ref&gt;</code> για την ετικέτα <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Υπάρχουν ετικέτες <code>&lt;ref&gt;</code> για κάποια ομάδα με το όνομα «$1», αλλά δεν βρέθηκε καμία αντίστοιχη ετικέτα <code>&lt;references group=\"$1\"/&gt;</code>, ή λείπει η ετικέτα κλεισίματος <code>&lt;/ref&gt;</code>",
+ "cite_error_references_group_mismatch": "Η ετικέτα <code>&lt;ref&gt;</code> μέσα στο <code>&lt;references&gt;</code> έρχεται σε σύγκρουση με το χαρακτηριστικό ομαδοποίησης «$1».",
+ "cite_error_references_missing_group": "Η ετικέτα <code>&lt;ref&gt;</code> που ορίζεται μέσα στο <code>&lt;references&gt;</code> έχει χαρακτηριστικό ομαδοποίησης «$1» που δεν εμφανίζεται σε προηγούμενο κείμενο.",
+ "cite_error_references_missing_key": "Η ετικέτα <code>&lt;ref&gt;</code> με όνομα «$1» που ορίζεται μέσα στο <code>&lt;references&gt;</code> δεν χρησιμοποιείται σε προηγούμενο κείμενο.",
+ "cite_error_references_no_key": "Η ετικέτα <code>&lt;ref&gt;</code> που ορίζεται μέσα στο <code>&lt;references&gt;</code> δεν έχει χαρακτηριστικό ονόματος.",
+ "cite_error_empty_references_define": "Η ετικέτα <code>&lt;ref&gt;</code> που ορίζεται μέσα στο <code>&lt;references&gt;</code> με όνομα «$1» δεν έχει καθόλου περιεχόμενο.",
+ "cite-tracking-category-cite-error": "Σελίδες με σφάλματα αναφορών",
+ "cite_references_link_accessibility_label": "Άλμα πάνω",
+ "cite_references_link_many_accessibility_label": "Άλμα πάνω, στο:",
+ "cite_section_preview_references": "Προεπισκόπηση αναφορών",
+ "cite_warning_sectionpreview_no_text": "↓\n<code>&lt;ref&gt;</code> Η ετικέτα με την ονομασία <code>$1</code> δεν μπορεί να προβληθεί διότι καθορίζεται έξω από το τρέχον κομμάτι ή δεν καθορίζεται καθόλου."
+}
diff --git a/www/wiki/extensions/Cite/i18n/en.json b/www/wiki/extensions/Cite/i18n/en.json
new file mode 100644
index 00000000..a3871f20
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/en.json
@@ -0,0 +1,60 @@
+{
+ "@metadata": {
+ "authors": [
+ "Siebrand Mazeland",
+ "Robert Rohde",
+ "Tim Starling",
+ "Raimond Spekking",
+ "Alex Zariv",
+ "Federico Leva",
+ "Rotem Liss",
+ "Steve Sanbeg",
+ "Marius Hoch",
+ "Brion Vibber",
+ "Amir E. Aharoni",
+ "Ævar Arnfjörð Bjarmason"
+ ]
+ },
+ "apihelp-query+references-description": "Return a data representation of references associated with the given pages.",
+ "apihelp-query+references-summary": "Return a data representation of references associated with the given pages.",
+ "apihelp-query+references-example-1": "References associated with <kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "Cite extension reference storage is not enabled.",
+ "cite-desc": "Adds <nowiki><ref[ name=id]></nowiki> and <nowiki><references/></nowiki> tags, for citations",
+ "cite_error": "Cite error: $1",
+ "cite_error_ref_numeric_key": "Invalid <code>&lt;ref&gt;</code> tag;\nname cannot be a simple integer. Use a descriptive title",
+ "cite_error_ref_no_key": "The opening <code>&lt;ref&gt;</code> tag is malformed or has a bad name",
+ "cite_error_ref_too_many_keys": "Invalid <code>&lt;ref&gt;</code> tag;\ninvalid names, e.g. too many",
+ "cite_error_ref_no_input": "Invalid <code>&lt;ref&gt;</code> tag;\nrefs with no name must have content",
+ "cite_error_references_duplicate_key": "Invalid <code>&lt;ref&gt;</code> tag; name \"$1\" defined multiple times with different content",
+ "cite_error_references_invalid_parameters": "Invalid parameter in <code>&lt;references&gt;</code> tag",
+ "cite_error_references_no_backlink_label": "Ran out of custom backlink labels.\nDefine more in the <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> message.",
+ "cite_error_no_link_label_group": "Ran out of custom link labels for group \"$1\".\nDefine more in the <nowiki>[[MediaWiki:$2]]</nowiki> message.",
+ "cite_error_references_no_text": "Invalid <code>&lt;ref&gt;</code> tag;\nno text was provided for refs named <code>$1</code>",
+ "cite_error_included_ref": "Closing <code>&lt;/ref&gt;</code> missing for <code>&lt;ref&gt;</code> tag",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code> tags exist for a group named \"$1\", but no corresponding <code>&lt;references group=\"$1\"/&gt;</code> tag was found, or a closing <code>&lt;/ref&gt;</code> is missing",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code> tag in <code>&lt;references&gt;</code> has conflicting group attribute \"$1\".",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code> tag defined in <code>&lt;references&gt;</code> has group attribute \"$1\" which does not appear in prior text.",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code> tag with name \"$1\" defined in <code>&lt;references&gt;</code> is not used in prior text.",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code> tag defined in <code>&lt;references&gt;</code> has no name attribute.",
+ "cite_error_empty_references_define": "<code>&lt;ref&gt;</code> tag defined in <code>&lt;references&gt;</code> with name \"$1\" has no content.",
+ "cite-tracking-category-cite-error": "Pages with reference errors",
+ "cite-tracking-category-cite-error-desc": "Pages in this category have errors in the usage of references tags.",
+ "cite_reference_link_key_with_num": "$1_$2",
+ "cite_reference_link_prefix": "cite_ref-",
+ "cite_reference_link_suffix": "",
+ "cite_references_link_prefix": "cite_note-",
+ "cite_references_link_suffix": "",
+ "cite_reference_link": "<sup id=\"$1\" class=\"reference\">[[#$2|&#91;$3&#93;]]</sup>",
+ "cite_references_no_link": "<p id=\"$1\">$2</p>",
+ "cite_references_link_one": "<li id=\"$1\"><span class=\"mw-cite-backlink\">[[#$2|↑]]</span> $3</li>",
+ "cite_references_link_many": "<li id=\"$1\"><span class=\"mw-cite-backlink\">↑ $2</span> $3</li>",
+ "cite_references_link_many_format": "<sup>[[#$1|$2]]</sup>",
+ "cite_references_link_many_format_backlink_labels": "a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz",
+ "cite_references_link_many_sep": "&#32;",
+ "cite_references_link_many_and": "&#32;",
+ "cite_references_link_accessibility_label": "Jump up",
+ "cite_references_link_many_accessibility_label": "Jump up to:",
+ "cite_section_preview_references": "Preview of references",
+ "cite_warning": "Cite warning: $1",
+ "cite_warning_sectionpreview_no_text": "<code>&lt;ref&gt;</code> tag with name <code>$1</code> cannot be previewed because it is defined outside the current section or not defined at all."
+}
diff --git a/www/wiki/extensions/Cite/i18n/eo.json b/www/wiki/extensions/Cite/i18n/eo.json
new file mode 100644
index 00000000..303df228
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/eo.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "AVRS",
+ "Malafaya",
+ "Yekrats",
+ "KuboF",
+ "Nemo bis"
+ ]
+ },
+ "cite-desc": "Aldonas etikedojn <nowiki><ref[ name=id]></nowiki> kaj <nowiki><references/></nowiki> por citaĵoj",
+ "cite_error": "Citaĵa eraro: $1",
+ "cite_error_ref_numeric_key": "Malvalida etikedo <code>&lt;ref&gt;</code>;\nnomo ne povas esti simpla entjero. Uzu priskriban titolon.",
+ "cite_error_ref_no_key": "Malvalida etikedo <code>&lt;ref&gt;</code>;\n''ref'' kun nenia enhava nomo devas havi nomon",
+ "cite_error_ref_too_many_keys": "Malvalida etikedo <code>&lt;ref&gt;</code>;\nmalvalidaj nomoj (ekz-e: tro multaj)",
+ "cite_error_ref_no_input": "Malvalida etikedo <code>&lt;ref&gt;</code>;\nref-etikedoj sen nomo devas havi enhavojn.",
+ "cite_error_references_invalid_parameters": "Nevalida etikedo <code>&lt;references&gt;</code>; neniuj parametroj estas permesitaj, uzu <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Neniom plu memfaritaj retroligaj etikedoj.\nDifinu pliajn en la mesaĝo <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_no_link_label_group": "Mankas proprajn ligilajn etikedojn por grupo \"$1\".\nDifinu pliajn en la <nowiki>[[MediaWiki:$2]]</nowiki> mesaĝo.",
+ "cite_error_references_no_text": "Nevalida <code>&lt;ref&gt;</code> etikedo;\nneniu teksto estis donita por ref-oj nomataj <code>$1</code>",
+ "cite_error_included_ref": "Ferma <code>&lt;/ref&gt;</code> mankas por <code>&lt;ref&gt;</code>-etikedo",
+ "cite_error_group_refs_without_references": "Etikedoj <code>&lt;ref&gt;</code> ekzistas por la grupo nomita \"$1\", sed la koresponda etikedo <code>&lt;references group=\"$1\"/&gt;</code> ne estis trovita aŭ la ferma <code>&lt;/ref&gt;</code> mankas.",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code> etikedo en <code>&lt;references&gt;</code> havas konflikan grupatributon \"$1\".",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code> etikedo difinita en <code>&lt;references&gt;</code> havas grupatributon \"$1\" kiu ne aperas en antaŭa teksto.",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code> etikedo kun la nomo \"$1\" difinita en <code>&lt;references&gt;</code> ne estas uzata en antaŭa teksto.",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code> etikedo difinita en <code>&lt;references&gt;</code> ne havas noman atributon.",
+ "cite_error_empty_references_define": "<code>&lt;ref&gt;</code> etikedo difinita en <code>&lt;references&gt;</code> kun nomo \"$1\" ne havas enhavon.",
+ "cite-tracking-category-cite-error": "Paĝoj kun problemoj pri referencoj",
+ "cite_references_link_accessibility_label": "Salti supren",
+ "cite_references_link_many_accessibility_label": "Salti supren al:",
+ "cite_section_preview_references": "Antaŭrigardo de referencoj",
+ "cite_warning": "Averto pri citado: $1",
+ "cite_warning_sectionpreview_no_text": "La marko <code>&lt;ref&gt;</code> kun la nomo <code>$1</code> ne povas esti antaŭrigardita, ĉar ĝi estas difinita ekster la kuranta sekcio aŭ tute ne difinita."
+}
diff --git a/www/wiki/extensions/Cite/i18n/es.json b/www/wiki/extensions/Cite/i18n/es.json
new file mode 100644
index 00000000..8bee19d2
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/es.json
@@ -0,0 +1,55 @@
+{
+ "@metadata": {
+ "authors": [
+ "Antur",
+ "Baiji",
+ "Ciencia Al Poder",
+ "Crazymadlover",
+ "Drini",
+ "Erdemaslancan",
+ "Fitoschido",
+ "Gustronico",
+ "Ihojose",
+ "Locos epraix",
+ "Manuelt15",
+ "McDutchie",
+ "Muro de Aguas",
+ "Remember the dot",
+ "Sanbec",
+ "Translationista",
+ "Macofe",
+ "Joaquin1001",
+ "Peter Bowman"
+ ]
+ },
+ "apihelp-query+references-description": "Devolver una representación de datos de referencias asociadas con las páginas especificadas.",
+ "apihelp-query+references-summary": "Devuelve una representación de datos de las referencias asociadas con las páginas dadas.",
+ "apihelp-query+references-example-1": "Referencias asociadas con <kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "El almacenamiento de referencias de la extensión de citas, no está activado.",
+ "cite-desc": "Añade las etiquetas <nowiki><ref[ name=id]></nowiki> y <nowiki><references/></nowiki> para citas.",
+ "cite_error": "Error en la cita: $1",
+ "cite_error_ref_numeric_key": "Etiqueta <code>&lt;ref&gt;</code> no válida;\nel nombre no puede ser un número entero. Use un título descriptivo",
+ "cite_error_ref_no_key": "La etiqueta de apertura <code>&lt;ref&gt;</code> es incorrecta o tiene un mal nombre",
+ "cite_error_ref_too_many_keys": "Etiqueta <code>&lt;ref&gt;</code> inválida;\ncontiene parámetros no reconocidos",
+ "cite_error_ref_no_input": "Etiqueta <code>&lt;ref&gt;</code> no válida;\nlas referencias sin nombre deben tener contenido",
+ "cite_error_references_duplicate_key": "Etiqueta <code>&lt;ref&gt;</code> no válida; el nombre \"$1\" está definido varias veces con contenidos diferentes",
+ "cite_error_references_invalid_parameters": "Parámetro no válido en etiqueta <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Se han acabado las etiquetas personalizadas de vínculos de retroceso.\nDefine más en <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_no_link_label_group": "Se han acabado las etiquetas personalizadas para vínculos del grupo \"$1\".\nDefine más en el mensaje <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Etiqueta <code>&lt;ref&gt;</code> inválida;\nno se ha definido el contenido de las referencias llamadas <code>$1</code>",
+ "cite_error_included_ref": "Etiqueta de apertura <code>&lt;ref&gt;</code> sin su correspondiente cierre <code>&lt;/ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Existen etiquetas <code>&lt;ref&gt;</code> para un grupo llamado «$1», pero no se encontró la etiqueta <code>&lt;references group=\"$1\"/&gt;</code> correspondiente, o falta la etiqueta <code>&lt;/ref&gt;</code> de cierre",
+ "cite_error_references_group_mismatch": "La etiqueta <code>&lt;ref&gt;</code> en <code>&lt;references&gt;</code> presenta el atributo de grupo \"$1\" en conflicto.",
+ "cite_error_references_missing_group": "La etiqueta <code>&lt;ref&gt;</code> definida en <code>&lt;references&gt;</code> pertenece al grupo \"$1\" no declarado en el texto precedente.",
+ "cite_error_references_missing_key": "La etiqueta <code>&lt;ref&gt;</code> con nombre \"$1\" definida en <code>&lt;references&gt;</code> no se utiliza en el texto precedente.",
+ "cite_error_references_no_key": "La etiqueta <code>&lt;ref&gt;</code> definida en <code>&lt;references&gt;</code> no tiene atributo de nombre.",
+ "cite_error_empty_references_define": "La etiqueta <code>&lt;ref&gt;</code> definida en <code>&lt;references&gt;</code> con nombre \"$1\" no tiene contenido.",
+ "cite-tracking-category-cite-error": "Páginas con errores de referencia",
+ "cite-tracking-category-cite-error-desc": "Las páginas en esta categoría tienen errores en el uso de las etiquetas de referencias.",
+ "cite_references_link_many_format_backlink_labels": "a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz",
+ "cite_references_link_accessibility_label": "Volver arriba",
+ "cite_references_link_many_accessibility_label": "Saltar a:",
+ "cite_section_preview_references": "Previsualización de referencias",
+ "cite_warning": "Advertencia de cita: $1",
+ "cite_warning_sectionpreview_no_text": "La etiqueta <code>&lt;ref&gt;</code> con nombre <code>$1</code> no puede previsualizarse porque está definida fuera de la sección actual o no está definida en absoluto."
+}
diff --git a/www/wiki/extensions/Cite/i18n/et.json b/www/wiki/extensions/Cite/i18n/et.json
new file mode 100644
index 00000000..301d6ade
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/et.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "Pikne",
+ "Cumbril"
+ ]
+ },
+ "cite-desc": "Lisab viitamiseks sildid <nowiki><ref[ name=id]></nowiki> ja <nowiki><references/></nowiki>.",
+ "cite_error": "Viitamistõrge: $1",
+ "cite_error_ref_numeric_key": "Vigane <code>&lt;ref&gt;</code>-silt.\nNimeparameeter ei tohi olla numbriline. Kasuta kirjeldavat nime.",
+ "cite_error_ref_no_key": "Algussilt <code>&lt;ref&gt;</code> on väärdunud või selle nimi on vigane.",
+ "cite_error_ref_too_many_keys": "Vigane <code>&lt;ref&gt;</code>-silt;\n\"name\" on vigane või liiga pikk.",
+ "cite_error_ref_no_input": "Vigane <code>&lt;ref&gt;</code>-silt.\nNimeta viitamissiltidel peab olema sisu.",
+ "cite_error_references_duplicate_key": "Vigane <code>&lt;ref&gt;</code>-silt; nime \"$1\" on määratud mitu korda erineva sisuga.",
+ "cite_error_references_invalid_parameters": "Sildi <code>&lt;references&gt;</code> vigane parameeter",
+ "cite_error_references_no_backlink_label": "Kohandatud tagasilinkide sildid said otsa.\nLisa neid sõnumisse <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_no_link_label_group": "Rühma \"$1\" kohandatud linkide sildid said otsa.\nLisa neid sõnumisse <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Vigane <code>&lt;ref&gt;</code>-silt.\nViite nimega <code>$1</code> tekst puudub.",
+ "cite_error_included_ref": "Sulgemissilt <code>&lt;/ref&gt;</code> puudub.",
+ "cite_error_group_refs_without_references": "Olemas on <code>&lt;ref&gt;</code>-silt rühma \"$1\" jaoks, aga puudub vastav silt <code>&lt;references group=\"$1\"/&gt;</code> või lõpusilt <code>&lt;/ref&gt;</code>.",
+ "cite_error_references_group_mismatch": "<code>&lt;references&gt;</code>-siltide vahel oleval <code>&lt;ref&gt;</code>-sildil on vastukäiv parameetri \"group\" väärtus \"$1\".",
+ "cite_error_references_missing_group": "<code>&lt;references&gt;</code>-sildis kirjeldatud <code>&lt;ref&gt;</code>-sildil on rühmatunnus \"$1\", mis puudub eelnevas tekstis.",
+ "cite_error_references_missing_key": "<code>&lt;references&gt;</code>-siltide vahel olevat <code>&lt;ref&gt;</code>-silti nimega \"$1\" ei kasutata eelnevas tekstis.",
+ "cite_error_references_no_key": "<code>&lt;references&gt;</code>-siltide vahel määratletud <code>&lt;ref&gt;</code>-sildil puudub ''name''-atribuut.",
+ "cite_error_empty_references_define": "<code>&lt;references&gt;</code>-siltide vahel oleval <code>&lt;ref&gt;</code>-sildil nimega \"$1\" puudub sisu.",
+ "cite-tracking-category-cite-error": "Viitamistõrgetega leheküljed",
+ "cite-tracking-category-cite-error-desc": "Selles kategoorias on leheküljed, kus viitamissilte on kasutatud valesti.",
+ "cite_references_link_accessibility_label": "Siirdu üles",
+ "cite_references_link_many_accessibility_label": "Siirdu üles asukohta:",
+ "cite_section_preview_references": "Viidete eelvaade"
+}
diff --git a/www/wiki/extensions/Cite/i18n/eu.json b/www/wiki/extensions/Cite/i18n/eu.json
new file mode 100644
index 00000000..9a42ad27
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/eu.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "An13sa",
+ "Sator",
+ "Subi"
+ ]
+ },
+ "cite-desc": "<nowiki><ref[ name=id]></nowiki> eta <nowiki><references/></nowiki> etiketak gehitzen ditu, aipuentzako",
+ "cite_error": "Aipamen errorea: $1",
+ "cite-tracking-category-cite-error": "Erreferentziatan akatsak dituzten orrialdeak",
+ "cite_section_preview_references": "Erreferentzien aurreikuspena"
+}
diff --git a/www/wiki/extensions/Cite/i18n/fa.json b/www/wiki/extensions/Cite/i18n/fa.json
new file mode 100644
index 00000000..dbc750ab
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/fa.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ebraminio",
+ "Huji",
+ "Wayiran",
+ "ZxxZxxZ",
+ "Reza1615",
+ "Dalba",
+ "Ladsgroup"
+ ]
+ },
+ "apihelp-query+references-description": "یک بازنمودِ دادگانی از ارجاع‌هایی که با صفحه‌های داده شده مرتبط هستند برمی‌گرداند.",
+ "apihelp-query+references-summary": "یک بازنمودِ دادگانی از ارجاع‌هایی که با صفحه‌های داده شده مرتبط هستند برمی‌گرداند.",
+ "apihelp-query+references-example-1": "ارجاع‌های مرتبط با <kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "ذخیره‌سازی ارجاع‌ها برای افزونهٔ یادکرد فعال نشده‌است.",
+ "cite-desc": "برچسب‌های <nowiki><ref[ name=id]></nowiki> و <nowiki><references/></nowiki> را برای یادکرد اضافه می‌کند",
+ "cite_error": "خطای یادکرد: $1",
+ "cite_error_ref_numeric_key": "برچسب <code><ref></code> نامعتبر؛ نام نمی‌تواند یک عدد باشد. عنوان روشنی برگزینید",
+ "cite_error_ref_no_key": "برچسب بازکنندهٔ <code><ref></code> بدشکل است یا نام بدی دارد",
+ "cite_error_ref_too_many_keys": "برچسب <code>&lt;ref&gt;</code> غیر مجاز؛ نام‌های غیر مجاز، مثلاً بیش از اندازه",
+ "cite_error_ref_no_input": "برچسب <code><ref></code> نامعتبر؛ یادکردهای بدون نام باید محتوا داشته باشند",
+ "cite_error_references_duplicate_key": "برچسب <code>&lt;ref&gt;</code> نامعتبر؛ نام «$1» چندین بار با محتوای متفاوت تعریف شده‌است",
+ "cite_error_references_invalid_parameters": "پارامتر نامعتبر در برچسب <code><references></code> نامعتبر",
+ "cite_error_references_no_backlink_label": "برچسب‌های پساپیوند سفارشی به انتها رسید.\nموارد جدیدی را در پیغام <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> تعریف کنید.",
+ "cite_error_no_link_label_group": "برچسب‌های پساپیوند سفارشی برای گروه «$1» به انتها رسید.\nموارد جدیدی را در پیغام <nowiki>[[MediaWiki:$2]]</nowiki> کنید.",
+ "cite_error_references_no_text": "برچسب <code><ref></code> نامعتبر؛ متنی برای ارجاع‌های با نام <code>$1</code> وارد نشده‌است",
+ "cite_error_included_ref": "برچسب تمام‌کنندهٔ <code>&lt;/ref&gt;</code> برای برچسب <code>&lt;ref&gt;</code> پیدا نشد",
+ "cite_error_group_refs_without_references": "برچسب <code>&lt;ref&gt;</code> برای گروهی به نام «$1» وجود دارد، اما برچسب متناظر با <code>&lt;references group=\"$1\"/&gt;</code> یافت نشد یا <code>&lt;/ref&gt;</code> بسته یافت نشد.",
+ "cite_error_references_group_mismatch": "ویژگی «group» برچسپ <code>&lt;ref&gt;</code> درون <code>&lt;references&gt;</code> در تضاد با «$1» است.",
+ "cite_error_references_missing_group": "برچسپ <code>&lt;ref&gt;</code> که در <code>&lt;references&gt;</code> تعریف شده ویژگی group برابر «$1» دارد که در متن قبل از آن پیدا نمی‌شود.",
+ "cite_error_references_missing_key": "برچسپ <code>&lt;ref&gt;</code> که با نام «$1» درون <code>&lt;references&gt;</code> تعریف شده، در متن قبل از آن استفاده نشده‌است.",
+ "cite_error_references_no_key": "برچسپ <code>&lt;ref&gt;</code> درون <code>&lt;references&gt;</code> ویژگی name را ندارد.",
+ "cite_error_empty_references_define": "برچسپ <code>&lt;ref&gt;</code> تعریف شده درون <code>&lt;references&gt;</code> با نام «$1» محتوایی ندارد.",
+ "cite-tracking-category-cite-error": "صفحات دارای خطا در ارجاع",
+ "cite-tracking-category-cite-error-desc": "صفحات موجود در این رده دارای خطا در استفاده از برچسب ارجاع هستند.",
+ "cite_reference_link_key_with_num": "$1_$2",
+ "cite_reference_link_prefix": "cite_ref-",
+ "cite_references_link_accessibility_label": "پرش به بالا",
+ "cite_references_link_many_accessibility_label": "پرش به بالا به:",
+ "cite_section_preview_references": "پیش‌نمایش ارجاع‌ها",
+ "cite_warning": "هشدار یادکرد: $1",
+ "cite_warning_sectionpreview_no_text": "برچسب <code>&lt;ref&gt;</code> با نام <code>$1</code> قابل پیش‌نمایش نیست چرا که خارج از این بخش تعریف شده‌است یا کلاً تعریف نشده‌است."
+}
diff --git a/www/wiki/extensions/Cite/i18n/fi.json b/www/wiki/extensions/Cite/i18n/fi.json
new file mode 100644
index 00000000..027de93a
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/fi.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Agony",
+ "Crt",
+ "Nike",
+ "Olli",
+ "Silvonen",
+ "Str4nd",
+ "Tarmo",
+ "Syreeni",
+ "Pxos",
+ "01miki10"
+ ]
+ },
+ "apihelp-query+references-example-1": "Sivuun <kbd>Albert Einstein</kbd> liittyvät viitteet.",
+ "cite-desc": "Tarjoaa <nowiki><ref[ name=id]></nowiki>- ja <nowiki><references/></nowiki>-elementit viittauksien tekemiseen.",
+ "cite_error": "Viittausvirhe: $1",
+ "cite_error_ref_numeric_key": "Kelpaamaton <code>&lt;ref&gt;</code>-elementti: nimi ei voi olla numero – käytä kuvaavampaa nimeä.",
+ "cite_error_ref_no_key": "Kelpaamaton <code>&lt;ref&gt;</code>-elementti: sisällöttömille refeille pitää määrittää nimi.",
+ "cite_error_ref_too_many_keys": "Kelpaamaton <code>&lt;ref&gt;</code>-elementti: virheelliset nimet, esim. liian monta",
+ "cite_error_ref_no_input": "Kelpaamaton <code>&lt;ref&gt;</code>-elementti: viitteillä ilman nimiä täytyy olla sisältöä",
+ "cite_error_references_duplicate_key": "Virheellinen <code>&lt;ref&gt;</code>-elementti; nimi \"$1\" on määritetty usean kerran eri sisällöillä",
+ "cite_error_references_invalid_parameters": "Kelpaamaton <code>&lt;references&gt;</code>-elementti: parametrit eivät ole sallittuja. Käytä muotoa <code>&lt;references /&gt;</code>.",
+ "cite_error_references_no_backlink_label": "Määritetyt takaisinviittausnimikkeet loppuivat kesken.\nNiitä voi määritellä lisää sivulla <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_no_link_label_group": "Mukautettujen linkkikirjainten määrä ryhmälle ”$1” loppui.\nMääritä niitä lisää viestissä <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Virheellinen <code>&lt;ref&gt;</code>-elementti;\nviitettä <code>$1</code> ei löytynyt",
+ "cite_error_included_ref": "<code>&lt;ref&gt;</code>-elementin sulkeva <code>&lt;/ref&gt;</code>-elementti puuttuu",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code>-elementit löytyivät ryhmälle nimeltä ”$1”, mutta vastaavaa <code>&lt;references group=\"$1\"/&gt;</code>-elementtiä ei löytynyt tai sulkeva <code>&lt;/ref&gt;</code> puuttuu",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code>-elementti <code>&lt;references&gt;</code>-elementin sisällä sisältää ristiriitaisen ryhmämääritteen ”$1”.",
+ "cite_error_references_missing_group": "<code>&lt;references&gt;</code>-elementissä määritetty <code>&lt;ref&gt;</code>-elementti sisältää ryhmämääritteen ”$1”, jota ei mainita aiemmassa tekstissä.",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code>-elementin nimeä ”$1”, johon viitataan elementissä <code>&lt;references&gt;</code> ei käytetä edeltävässä tekstissä.",
+ "cite_error_references_no_key": "<code>&lt;references&gt;</code>-elementissä määritetyllä <code>&lt;ref&gt;</code>-elementillä ei ole nimimääritettä.",
+ "cite_error_empty_references_define": "<code>&lt;references&gt;</code>-elementissä määritetyllä <code>&lt;ref&gt;</code>-elementillä nimellä ”$1” ei ole sisältöä.",
+ "cite-tracking-category-cite-error": "Sivut, joissa on viittausvirheitä",
+ "cite-tracking-category-cite-error-desc": "Tässä luokassa olevissa sivuissa on virheitä viite-elementtien käytössä.",
+ "cite_references_link_accessibility_label": "Siirry ylös",
+ "cite_references_link_many_accessibility_label": "Siirry ylös kohtaan:",
+ "cite_section_preview_references": "Viitteiden esikatselu",
+ "cite_warning": "Viittausvaroitus: $1",
+ "cite_warning_sectionpreview_no_text": "<code>&lt;ref&gt;</code>-viitettä, jonka nimenä on <code>$1</code>, ei voida näyttää esikatselussa, koska se määritetään tämän osion ulkopuolella tai sitä ei ole määritetty lainkaan."
+}
diff --git a/www/wiki/extensions/Cite/i18n/fo.json b/www/wiki/extensions/Cite/i18n/fo.json
new file mode 100644
index 00000000..a166e500
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/fo.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "EileenSanda"
+ ]
+ },
+ "cite-desc": "Leggur afturat <nowiki><ref[ name=id]></nowiki> og <nowiki><references/></nowiki> lyklaorð, fyri ávísingar",
+ "cite_error": "Keldufeilur: $1",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code> lyklaorð (tags) eru til fyri ein bólk sum eitur \"$1\", men onki tilsvarandi <code>&lt;references group=\"$1\"/&gt;</code> lyklaorð varð funnið, ella manglar ein lukkandi <code>&lt;/ref&gt;</code>"
+}
diff --git a/www/wiki/extensions/Cite/i18n/fr.json b/www/wiki/extensions/Cite/i18n/fr.json
new file mode 100644
index 00000000..caf9dd37
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/fr.json
@@ -0,0 +1,55 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cedric31",
+ "Crochet.david",
+ "Gomoko",
+ "Grondin",
+ "IAlex",
+ "Kropotkine 113",
+ "McDutchie",
+ "Sherbrooke",
+ "The Evil IP address",
+ "Trizek",
+ "Urhixidur",
+ "Verdy p",
+ "Orlodrim",
+ "Wyz",
+ "Wladek92",
+ "The RedBurn",
+ "Trial"
+ ]
+ },
+ "apihelp-query+references-description": "Renvoyer une représentation des données des références associées avec les pages fournies.",
+ "apihelp-query+references-summary": "Renvoyer une représentation des données de référence associées aux pages fournies.",
+ "apihelp-query+references-example-1": "Références associées avec <kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "La sauvegarde sur l'extension de référence Cite n'est pas activée.",
+ "cite-desc": "Ajoute les balises <nowiki><ref[ name=\"id\"]></nowiki> et <nowiki><references/></nowiki> pour les références",
+ "cite_error": "Erreur de référence : $1",
+ "cite_error_ref_numeric_key": "Balise <code>&lt;ref&gt;</code> incorrecte ;\nle nom ne peut être un entier simple. Utilisez un titre descriptif",
+ "cite_error_ref_no_key": "La balise ouvrante <code>&lt;ref&gt;</code> est mal formée ou a un mauvais nom.",
+ "cite_error_ref_too_many_keys": "Balise <code>&lt;ref&gt;</code> incorrecte ;\nnoms incorrects, par exemple trop nombreux",
+ "cite_error_ref_no_input": "Balise <code>&lt;ref&gt;</code> incorrecte ;\nles références sans nom doivent avoir un contenu",
+ "cite_error_references_duplicate_key": "Balise <code>&lt;ref&gt;</code> non valide ; le nom « $1 » est défini plusieurs fois avec des contenus différents",
+ "cite_error_references_invalid_parameters": "Paramètre invalide dans la balise <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Plus d'étiquettes de liens personnalisées.\nDéfinissez-en un plus grand nombre dans le message <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_no_link_label_group": "Plus d’étiquettes de liens personnalisées pour le groupe « $1 ».\nDéfinissez-en plus dans le message <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Balise <code>&lt;ref&gt;</code> incorrecte ;\naucun texte n’a été fourni pour les références nommées <code>$1</code>",
+ "cite_error_included_ref": "Balise fermante <code>&lt;/ref&gt;</code> manquante pour la balise <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Des balises <code>&lt;ref&gt;</code> existent pour un groupe nommé « $1 », mais aucune balise <code>&lt;references group=\"$1\"/&gt;</code> correspondante n’a été trouvée, ou bien une balise fermante <code>&lt;/ref&gt;</code> manque",
+ "cite_error_references_group_mismatch": "La balise <code>&lt;ref&gt;</code> dans <code>&lt;references&gt;</code> a l’attribut de groupe « $1 » qui entre en conflit avec celui de <code>&lt;references&gt;</code>.",
+ "cite_error_references_missing_group": "La balise <code>&lt;ref&gt;</code> définie dans <code>&lt;references&gt;</code> a un groupe attribué « $1 » qui ne figure pas dans le texte précédent.",
+ "cite_error_references_missing_key": "La balise <code>&lt;ref&gt;</code> nommée « $1 » définie dans <code>&lt;references&gt;</code> n’est pas utilisée dans le texte précédent.",
+ "cite_error_references_no_key": "La balise <code>&lt;ref&gt;</code> définie dans <code>&lt;references&gt;</code> n’a pas d’attribut de nom.",
+ "cite_error_empty_references_define": "La balise <code>&lt;ref&gt;</code> définie dans <code>&lt;references&gt;</code> avec le nom « $1 » n’a pas de contenu.",
+ "cite-tracking-category-cite-error": "Pages avec des erreurs de référence",
+ "cite-tracking-category-cite-error-desc": "Les pages dans cette catégorie ont des erreurs dans l’utilisation des balises de référence.",
+ "cite_references_link_many_format": "<sup style=\"margin-left:.2em;margin-right:.2em;\">[[#$1|$2]]</sup>",
+ "cite_references_link_many_sep": ",&#32;",
+ "cite_references_link_many_and": "&#32;et&#32;",
+ "cite_references_link_accessibility_label": "Aller",
+ "cite_references_link_many_accessibility_label": "Aller à :",
+ "cite_section_preview_references": "Aperçu des références",
+ "cite_warning": "Avertissement de Cite : $1",
+ "cite_warning_sectionpreview_no_text": "La balise <code>&lt;ref&gt;</code> avec le nom <code>$1</code> ne peut pas être prévisualisée car elle est définie en dehors de la section actuelle, ou pas définie du tout."
+}
diff --git a/www/wiki/extensions/Cite/i18n/frc.json b/www/wiki/extensions/Cite/i18n/frc.json
new file mode 100644
index 00000000..903740ae
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/frc.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hangmanwa7id"
+ ]
+ },
+ "cite_error": "Erreur de référence: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/frp.json b/www/wiki/extensions/Cite/i18n/frp.json
new file mode 100644
index 00000000..85be0d6c
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/frp.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "ChrisPtDe"
+ ]
+ },
+ "cite-desc": "Apond les balises <nowiki><ref[ name=id]></nowiki> et <nowiki><references/></nowiki>, por les citacions.",
+ "cite_error": "Fôta de rèference : $1",
+ "cite_error_ref_numeric_key": "Apèl envalido ; cllâf pas entègrâla atendua.",
+ "cite_error_ref_no_key": "Balisa <code>&lt;ref&gt;</code> fôssa ;\nles refèrences sen contegnu dêvont avêr un nom.",
+ "cite_error_ref_too_many_keys": "Apèl envalido ; cllâfs envalides, per ègzemplo, trop de cllâfs spècefiâs ou ben cllâf fôssa.",
+ "cite_error_ref_no_input": "Balisa <code>&lt;ref&gt;</code> fôssa ;\nles refèrences sen nom dêvont avêr un contegnu.",
+ "cite_error_references_invalid_parameters": "Arguments envalidos ; argument atendu.",
+ "cite_error_references_no_backlink_label": "Èpouesement de les ètiquètes de lims pèrsonalisâs.\nDèfenésséd-nen un ples grant nombro dens lo mèssâjo <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_no_link_label_group": "Més d’ètiquètes de lims pèrsonalisâs por la tropa « $1 ».\nDèfenésséd-nen més dens lo mèssâjo <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Balisa <code>&lt;ref&gt;</code> fôssa ;\nnion tèxto at étâ balyê por les refèrences apelâs <code>$1</code>.",
+ "cite_error_included_ref": "Cllotura <code>&lt;/ref&gt;</code> manquenta por la balisa <code>&lt;ref&gt;</code>.",
+ "cite_error_group_refs_without_references": "Des balises <code>&lt;ref&gt;</code> ègzistont por una tropa apelâ « $1 », mas niona balisa <code>&lt;references group=\"$1\"/&gt;</code> que corrèspond at étâ trovâ.",
+ "cite_error_references_group_mismatch": "La balisa <code>&lt;ref&gt;</code> dens <code>&lt;references&gt;</code> at l’atribut de tropa « $1 » qu’entre en conflit avouéc celi de <code>&lt;references&gt;</code>.",
+ "cite_error_references_missing_group": "La balisa <code>&lt;ref&gt;</code> dèfenia dens <code>&lt;references&gt;</code> at l’atribut de tropa « $1 » que figure pas dens cél tèxto.",
+ "cite_error_references_missing_key": "La balisa <code>&lt;ref&gt;</code> avouéc lo nom « $1 » dèfenia dens <code>&lt;references&gt;</code> est pas utilisâ dens cél tèxto.",
+ "cite_error_references_no_key": "La balisa <code>&lt;ref&gt;</code> dèfenia dens <code>&lt;references&gt;</code> at gins d’atribut de nom.",
+ "cite_error_empty_references_define": "La balisa <code>&lt;ref&gt;</code> dèfenia dens <code>&lt;references&gt;</code> avouéc lo nom « $1 » at gins de contegnu.",
+ "cite_references_link_many_sep": ",&#32;",
+ "cite_references_link_many_and": "&#32;et&#32;"
+}
diff --git a/www/wiki/extensions/Cite/i18n/frr.json b/www/wiki/extensions/Cite/i18n/frr.json
new file mode 100644
index 00000000..ccb47b4a
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/frr.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Murma174"
+ ]
+ },
+ "cite_error": "Efterwis-feeler: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/fur.json b/www/wiki/extensions/Cite/i18n/fur.json
new file mode 100644
index 00000000..51cf526b
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/fur.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Klenje"
+ ]
+ },
+ "cite_error": "Erôr te funzion Cite: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/fy.json b/www/wiki/extensions/Cite/i18n/fy.json
new file mode 100644
index 00000000..3d9c0b09
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/fy.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Robin0van0der0vliet",
+ "Robin van der Vliet"
+ ]
+ },
+ "cite_error": "Citeflater: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ga.json b/www/wiki/extensions/Cite/i18n/ga.json
new file mode 100644
index 00000000..4bd8cc7c
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ga.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Tem"
+ ]
+ },
+ "cite_error": "Earráid leis an lua: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/gag.json b/www/wiki/extensions/Cite/i18n/gag.json
new file mode 100644
index 00000000..b5068080
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/gag.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Erdemaslancan"
+ ]
+ },
+ "cite_references_link_many_format_backlink_labels": "a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz"
+}
diff --git a/www/wiki/extensions/Cite/i18n/gcr.json b/www/wiki/extensions/Cite/i18n/gcr.json
new file mode 100644
index 00000000..0333826a
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/gcr.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "LeGuyanaisPure"
+ ]
+ },
+ "cite_error": "Éròr di référans : $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/gd.json b/www/wiki/extensions/Cite/i18n/gd.json
new file mode 100644
index 00000000..724a6048
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/gd.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Akerbeltz"
+ ]
+ },
+ "cite_error": "Mearachd leis an tùs: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/gl.json b/www/wiki/extensions/Cite/i18n/gl.json
new file mode 100644
index 00000000..bc0a23d3
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/gl.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Alma",
+ "Toliño",
+ "Xosé",
+ "Elisardojm",
+ "Banjo"
+ ]
+ },
+ "apihelp-query+references-description": "Devolve unha representación de datos das referencias asociadas coas páxinas indicadas.",
+ "apihelp-query+references-summary": "Devolve unha representación de datos das referencias asociadas coas páxinas indicadas.",
+ "apihelp-query+references-example-1": "Referencias asociadas con <kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "O almacenamento de referencias da extensión Cite non está habilitado.",
+ "cite-desc": "Engade as etiquetas <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> para as citas",
+ "cite_error": "Erro no código da cita: $1",
+ "cite_error_ref_numeric_key": "Etiqueta <code>&lt;ref&gt;</code> non válida;\no nome non pode ser un simple número enteiro. Use un título descritivo",
+ "cite_error_ref_no_key": "a etiqueta de apertura <code>&lt;ref&gt;</code> é incorrecta ou ten un nome incorrecto",
+ "cite_error_ref_too_many_keys": "Etiqueta <code>&lt;ref&gt;</code> non válida;\nnomes non válidos, por exemplo, demasiados",
+ "cite_error_ref_no_input": "Etiqueta <code>&lt;ref&gt;</code> non válida;\nas referencias que non teñan nome, deben ter contido",
+ "cite_error_references_duplicate_key": "Etiqueta <code>&lt;ref&gt;</code> non válida; o nome \"$1\" está definido varias veces con contidos diferentes",
+ "cite_error_references_invalid_parameters": "Parámetro non válido en etiqueta <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "As etiquetas personalizadas esgotáronse.\nDefina máis na mensaxe <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "As etiquetas personalizadas esgotáronse para o grupo \"$1\".\nDefina máis na mensaxe <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Etiqueta <code>&lt;ref&gt;</code> non válida;\nnon se forneceu texto para as referencias de nome <code>$1</code>",
+ "cite_error_included_ref": "Peche a etiqueta <code>&lt;/ref&gt;</code> que lle falta á outra etiqueta <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "As etiquetas <code>&lt;ref&gt;</code> existen para un grupo chamado \"$1\", pero non se atopou a etiqueta <code>&lt;references group=\"$1\"/&gt;</code> correspondente ou falta unha etiqueta <code>&lt;/ref&gt;</code> de peche",
+ "cite_error_references_group_mismatch": "A etiqueta <code>&lt;ref&gt;</code> en <code>&lt;references&gt;</code> ten un atributo de grupo conflitivo \"$1\".",
+ "cite_error_references_missing_group": "A etiqueta <code>&lt;ref&gt;</code> definida en <code>&lt;references&gt;</code> ten un atributo de grupo \"$1\" que non aparece no texto anterior.",
+ "cite_error_references_missing_key": "A etiqueta <code>&lt;ref&gt;</code> co nome \"$1\" definida en <code>&lt;references&gt;</code> non se utiliza no texto anterior.",
+ "cite_error_references_no_key": "A etiqueta <code>&lt;ref&gt;</code> definida en <code>&lt;references&gt;</code> non ten nome de atributo.",
+ "cite_error_empty_references_define": "A etiqueta <code>&lt;ref&gt;</code> definida en <code>&lt;references&gt;</code> co nome \"$1\" non ten contido.",
+ "cite-tracking-category-cite-error": "Páxinas con erros de referencia",
+ "cite-tracking-category-cite-error-desc": "As páxinas nesta categoría teñen erros no uso das etiquetas de referencias.",
+ "cite_references_link_accessibility_label": "Saltar a",
+ "cite_references_link_many_accessibility_label": "Saltar a:",
+ "cite_section_preview_references": "Previsualización de referencias",
+ "cite_warning": "Advertencia de cita: $1",
+ "cite_warning_sectionpreview_no_text": "A etiqueta <code>&lt;ref&gt;</code> co nome <code>$1</code> non pode previsualizarse porque está definida fóra da sección actual ou non está definida en absoluto."
+}
diff --git a/www/wiki/extensions/Cite/i18n/glk.json b/www/wiki/extensions/Cite/i18n/glk.json
new file mode 100644
index 00000000..d25c55d8
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/glk.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "شیخ"
+ ]
+ },
+ "cite_error": "ايستنادˇ سأب: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/gom-deva.json b/www/wiki/extensions/Cite/i18n/gom-deva.json
new file mode 100644
index 00000000..c1247ce0
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/gom-deva.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Supriya kankumbikar"
+ ]
+ },
+ "cite_error": "संदर्भ त्रुटीः$1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/gom-latn.json b/www/wiki/extensions/Cite/i18n/gom-latn.json
new file mode 100644
index 00000000..f0200bfb
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/gom-latn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "The Discoverer"
+ ]
+ },
+ "cite_error": "Sondhorbant chuk: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/gor.json b/www/wiki/extensions/Cite/i18n/gor.json
new file mode 100644
index 00000000..23cc0fb8
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/gor.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Marwan Mohamad"
+ ]
+ },
+ "cite_error": "Tilala mokupe'i: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/grc.json b/www/wiki/extensions/Cite/i18n/grc.json
new file mode 100644
index 00000000..bbf5e372
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/grc.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Omnipaedista"
+ ]
+ },
+ "cite_error": "Σφάλμα μνείας: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/gsw.json b/www/wiki/extensions/Cite/i18n/gsw.json
new file mode 100644
index 00000000..ad9e9033
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/gsw.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Als-Holder",
+ "The Evil IP address"
+ ]
+ },
+ "cite-desc": "Ergänzt d <nowiki><ref[ name=id]></nowiki> un d <nowiki><references /></nowiki>-Tag fir Quällenochwyys",
+ "cite_error": "Referänz-Fähler: $1",
+ "cite_error_ref_numeric_key": "Uugiltigi <tt>&lt;ref&gt;</tt>-Verwändig: „name“ derf kei reine Zahlewärt syy, verwänd e Name wu bschrybt.",
+ "cite_error_ref_no_key": "Uugiltigi <tt>&lt;ref&gt;</tt>-Verwändig: „ref“ ohni Inhalt muess e Name haa.",
+ "cite_error_ref_too_many_keys": "Uugiltigi <tt>&lt;ref&gt;</tt>-Verwändig: „name“ isch uugiltig oder z lang.",
+ "cite_error_ref_no_input": "Uugiltigi <tt>&lt;ref&gt;</tt>-Verwändig: „ref“ ohni Name muess e Inhalt haa.",
+ "cite_error_references_invalid_parameters": "Uugiltigi <tt>&lt;references&gt;</tt>-Verwändig: S sin kei zuesätzligi Parameter erlaubt, verwänd usschließli <tt><nowiki><references /></nowiki></tt>.",
+ "cite_error_references_no_backlink_label": "E Referenz mit dr Form <tt>&lt;ref name=\"...\"/&gt;</tt> wird meh brucht as es Buechstabe git. E Ammann muess <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> go wyteri Buechstabe/Zeiche ergänze.",
+ "cite_error_no_link_label_group": "Fir d Gruppe „$1“ sin kei benutzerdefinierti Linkbezeichnige me verfiegbar.\nDefinier meh unter Systemnochricht <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Uugiltige <tt>&lt;ref&gt;</tt>-Tag; s isch kei Täxt fir s Ref mit em Name <tt>$1</tt> aagee wore.",
+ "cite_error_included_ref": "S fählt s schließend <code>&lt;/ref&gt;</code>",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code>-Tag git s fir d Grupp „$1“, aber s isch kei dezue gherig <code>&lt;references group=„$1“/&gt;</code>-Tag gfunde wore",
+ "cite_error_references_group_mismatch": "Im <code>&lt;ref&gt;</code>-Tag in <code>&lt;references&gt;</code> het s e problematischi Gruppe-Eigeschaft „$1“.",
+ "cite_error_references_missing_group": "Im <code>&lt;ref&gt;</code>-Tag, wu definiert isch in <code>&lt;references&gt;</code>, het s e Gruppe-Eigeschaft „$1“, wu im obere Text nit vorchunnt.",
+ "cite_error_references_missing_key": "S <code>&lt;ref&gt;</code>-Tag mit em Name „$1“, wu definiert isch in <code>&lt;references&gt;</code> wird nit verwändet im obere Text.",
+ "cite_error_references_no_key": "S <code>&lt;ref&gt;</code>-Tag, wu definiert isch in <code>&lt;references&gt;</code>, het kei Name-Eigeschaft.",
+ "cite_error_empty_references_define": "Im <code>&lt;ref&gt;</code>-Tag, wu definiert isch in <code>&lt;references&gt;</code>, mit em Name „$1“ het s kei Inhalt."
+}
diff --git a/www/wiki/extensions/Cite/i18n/gu.json b/www/wiki/extensions/Cite/i18n/gu.json
new file mode 100644
index 00000000..288262fa
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/gu.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ashok modhvadia",
+ "Dsvyas",
+ "KartikMistry",
+ "Sushant savla"
+ ]
+ },
+ "cite-desc": "અવતરણો માટે <nowiki><ref[ name=id]></nowiki> અને <nowiki><references/></nowiki> ટેગ ઉમેરે છે",
+ "cite_error": "સંદર્ભ ત્રુટિ: $1",
+ "cite_error_ref_numeric_key": "અમાન્ય <code>&lt;ref&gt;</code> ટેગ;\nનામ માત્ર સરળ રાશિ ન હોઈ શકે, વિસ્તૃત શીર્ષક આપો",
+ "cite_error_ref_no_key": "અમાન્ય <code>&lt;ref&gt;</code> ટેગ;\nનામ વગરના refs ને કાંઈક નામ તો હોવું જ જોઈએ",
+ "cite_error_ref_too_many_keys": "અમાન્ય <code>&lt;ref&gt;</code> ચકતી;\nઅમાન્ય નામો , દા.ત. ઘણાં બધાં",
+ "cite_error_ref_no_input": "અમાન્ય <code>&lt;ref&gt;</code> ટેગ;\nનામ વગરના refs માં કાંઈક સામગ્રી હોવી જોઈએ",
+ "cite_error_references_invalid_parameters": "અમાન્ય <code>&lt;references&gt;</code> ટેગ;\nકોઈ પણ પરિમાણની પરવાનગી નથી.\n<code>&lt;references /&gt;</code> વાપરો",
+ "cite_error_references_no_backlink_label": "કસ્ટમ બેકલિંક લેબલ ખલાસ થઈ ગયાં.\n<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> સંદેશામાં વહારે લેબલ બનાવો..",
+ "cite_error_no_link_label_group": "\"$1\" સમૂહ માટે કસ્ટમ બેકલિંક લેબલ ખલાસ થઈ ગયાં.\n<nowiki>[[MediaWiki:$2]]</nowiki> સંદેશામાં વહારે લેબલ બનાવો..",
+ "cite_error_references_no_text": "અમાન્ય <code>&lt;ref&gt;</code> ટેગ;\n<code>$1</code>નામના સંદર્ભ માટે કોઈ પણ લેખન અપાયું નથી",
+ "cite_error_included_ref": "<code>&lt;ref&gt;</code> ટેગને બંધ કરતું <code>&lt;/ref&gt;</code> ખૂટે છે",
+ "cite_error_group_refs_without_references": " \"$1\" નામના સમૂહમાં <code>&lt;ref&gt;</code> ટેગ વિહરમાન છે, પણ તેને અનુરૂપ <code>&lt;references group=\"$1\"/&gt;</code> ટેગ ન મળ્યો. અથવા સમાપ્તિ <code>&lt;/ref&gt;</code> ખુટે છે.",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code> ટેગને <code>&lt;references&gt;</code> માં આ વિરોધાભાસી લક્ષણ છે : \"$1\".",
+ "cite_error_references_missing_group": "<code>&lt;references&gt;</code>માં વ્યાખ્યાયીત <code>&lt;ref&gt;</code> ટેગનો સમૂહ ગુણ \"$1\" છે જે પહેલાંની પહેલાંના લેખનમાં નથી.",
+ "cite_error_references_missing_key": "<code>&lt;references&gt;</code> માં વ્યાખ્યાયિત $1\" નામ સાથેનું <code>&lt;ref&gt;</code> ટેગ આગળના લેખનમાં વપરાયો નથી.",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code> ટેગની વ્યાખ્યા <code>&lt;references&gt;</code> ને કોઈ નામકરણ નથી.",
+ "cite_error_empty_references_define": "<code>&lt;ref&gt;</code> ટેગની વ્યાખ્યા <code>&lt;references&gt;</code> માં \"$1\" નામે છે તેને કોઈ content નથી.",
+ "cite_references_link_accessibility_label": "ઉપર જાઓ",
+ "cite_references_link_many_accessibility_label": "અહીં સુધી ઉપર જાઓ:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/hak.json b/www/wiki/extensions/Cite/i18n/hak.json
new file mode 100644
index 00000000..a0b11dd2
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/hak.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hakka"
+ ]
+ },
+ "cite_error": "Yín-yung chhâ-chho: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/he.json b/www/wiki/extensions/Cite/i18n/he.json
new file mode 100644
index 00000000..a2921914
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/he.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amire80",
+ "Rotem Liss",
+ "Rotemliss",
+ "YaronSh",
+ "IKhitron"
+ ]
+ },
+ "apihelp-query+references-description": "החזרת ייצוג נתונים של ציטוטים שמשויכים לדפים הנתונים.",
+ "apihelp-query+references-summary": "החזרת ייצוג נתונים של מקורות שמשויכים לדפים שניתנו.",
+ "apihelp-query+references-example-1": "ציטוטים שמשויכים ל־<kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "אחסון הערות של ההרחבה Cite אינו מופעל.",
+ "cite-desc": "הוספת תגי <span dir=\"ltr\"><nowiki><ref[ name=id]></nowiki></span> ו־<span dir=\"ltr\"><nowiki><references/></nowiki></span> עבור הערות שוליים",
+ "cite_error": "שגיאת ציטוט: $1",
+ "cite_error_ref_numeric_key": "תג <code>&lt;ref&gt;</code> לא תקין;\nשם (name) לא יכול להיות מספר שלם פשוט. יש להשתמש בכותרת תיאורית",
+ "cite_error_ref_no_key": "תג ה־<code>&lt;ref&gt;</code> הפותח בלתי־תקין או בעל שם שגוי.",
+ "cite_error_ref_too_many_keys": "תג <code>&lt;ref&gt;</code> לא תקין;\nשמות שגויים, למשל, רבים מדי",
+ "cite_error_ref_no_input": "תג <code>&lt;ref&gt;</code> לא תקין;\nלהערות שוליים ללא שם חייב להיות תוכן",
+ "cite_error_references_duplicate_key": "תג <code>&lt;ref&gt;</code> בלתי־תקין; השם \"$1\" הוגדר מספר פעמים עם תוכן שונה",
+ "cite_error_references_invalid_parameters": "פרמטר בלתי־תקין בתג <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "אזלו תוויות הקישורים המותאמות אישית.\nאנא הגדירו עוד תוויות בהודעת המערכת <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_no_link_label_group": "אזלו תוויות קישורים מותאמות אישית לקבוצה \"$1\".\nיש להגדיר עוד תוויות בהודעת המערכת <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "תג <code>&lt;ref&gt;</code> לא תקין;\nלא נכתב טקסט עבור הערות השוליים בשם <code>$1</code>",
+ "cite_error_included_ref": "חסר תג <code>&lt;/ref&gt;</code> סוגר בשביל תג <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "קיימים תגי <code>&lt;ref&gt;</code> עבור קבוצה בשם \"$1\", אך לא נמצא תג <code dir=\"ltr\">&lt;references group=\"$1\"/&gt;</code> מתאים, או שחסר <code dir=\"ltr\">&lt;/ref&gt;</code> סוגר",
+ "cite_error_references_group_mismatch": "לתג <code>&lt;ref&gt;</code> המוגדר בתוך <code>&lt;references&gt;</code> יש מאפיין קבוצה (group) סותר, \"$1\".",
+ "cite_error_references_missing_group": "לתג <code>&lt;ref&gt;</code> המוגדר בתוך <code>&lt;references&gt;</code> יש מאפיין קבוצה (group) בעל הערך \"$1\", שאינו מופיע בטקסט שלפניו.",
+ "cite_error_references_missing_key": "התג <code>&lt;ref&gt;</code> בשם \"$1\" המוגדר בתוך <code>&lt;references&gt;</code> אינו נמצא בשימוש בטקסט שלפניו.",
+ "cite_error_references_no_key": "לתג <code>&lt;ref&gt;</code> המוגדר בתוך <code>&lt;references&gt;</code> אין מאפיין שם (name).",
+ "cite_error_empty_references_define": "התג <code>&lt;ref&gt;</code> בעל השם \"$1\" המוגדר בתוך <code>&lt;references&gt;</code> אינו מכיל תוכן.",
+ "cite-tracking-category-cite-error": "דפים עם שגיאות בהערה",
+ "cite-tracking-category-cite-error-desc": "דפים בקטגוריה הזאת כוללים שגיאות בשימוש בתגי הערות שוליים.",
+ "cite_references_link_accessibility_label": "לקפוץ מעלה",
+ "cite_references_link_many_accessibility_label": "לקפוץ מעלה אל:",
+ "cite_section_preview_references": "תצוגה מקדימה של הערות",
+ "cite_warning": "אזהרת Cite‏: $1",
+ "cite_warning_sectionpreview_no_text": "לא ניתן לעשות תצוגה מקדימה לתג <code>&lt;ref&gt;</code> בשם <code>$1</code> כי הוא מוגדר מחוץ לפסקה הנוכחית או שאינו מוגדר כלל."
+}
diff --git a/www/wiki/extensions/Cite/i18n/hi.json b/www/wiki/extensions/Cite/i18n/hi.json
new file mode 100644
index 00000000..5a0ace00
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/hi.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ansumang",
+ "Kaustubh",
+ "Shubhamkanodia",
+ "Siddhartha Ghai",
+ "Sfic",
+ "Jayprakash12345",
+ "Anoop rao",
+ "संजीव कुमार"
+ ]
+ },
+ "apihelp-query+references-description": "दिए गए पृष्ठों से संबंधित संदर्भों का एक डेटा प्रस्तुत करें।",
+ "apihelp-query+references-example-1": "<kbd> अल्बर्ट आइंस्टीन </kbd> से संबंधित संदर्भ।",
+ "apierror-citestoragedisabled": "उद्धरण विस्तार संदर्भ संग्रहण सक्षम नहीं है।",
+ "cite-desc": "उद्धरणों के लिये <nowiki><ref[ name=id]></nowiki> और <nowiki><references/></nowiki> टैग जोड़ता है।",
+ "cite_error": "सन्दर्भ त्रुटि: $1",
+ "cite_error_ref_numeric_key": "अमान्य <code>&lt;ref&gt;</code> टैग;\nनाम साधारण संख्या (integer) नहीं हो सकता, कृपया विस्तृत शीर्षक दें।",
+ "cite_error_ref_no_key": "उद्घाटन <code>&lt;ref&gt;</code> टैग खराब है या उसका नाम खराब है.",
+ "cite_error_ref_too_many_keys": "अमान्य <code>&lt;ref&gt;</code> टैग;\n(संभवतः कई) अमान्य नाम",
+ "cite_error_ref_no_input": "अमान्य <code>&lt;ref&gt;</code> टैग;\nनाम रहित संदर्भों में जानकारी देना आवश्यक है",
+ "cite_error_references_invalid_parameters": "<code>&lt;references&gt;</code> चिप्पि में अमान्य प्राचल",
+ "cite_error_references_no_backlink_label": "पृष्ठ पाठ की कड़ियाँ देने वाले विशिष्ट नाम खतम हो गये।\nअधिक नाम <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> संदेश में जोड़ें।",
+ "cite_error_no_link_label_group": "\"$1\" संदर्भ समूह के लिये कड़ियों के विशिष्ट नाम कम पड़ गए।\n<nowiki>[[MediaWiki:$2]]</nowiki> सन्देश में और नाम परिभाषित करें।",
+ "cite_error_references_no_text": "अमान्य <code>&lt;ref&gt;</code> टैग;\n<code>$1</code> नामक संदर्भ की जानकारी नहीं है",
+ "cite_error_included_ref": "<code>&lt;ref&gt;</code> टैग के लिए समाप्ति <code>&lt;/ref&gt;</code> टैग नहीं मिला",
+ "cite_error_group_refs_without_references": "\"$1\" नामक सन्दर्भ-समूह के लिए <code>&lt;ref&gt;</code> टैग मौजूद हैं, परन्तु समूह के लिए कोई <code>&lt;references group=\"$1\"/&gt;</code> टैग नहीं मिला। यह भी संभव है कि कोई समाप्ति <code>&lt;/ref&gt;</code> टैग गायब है।",
+ "cite_error_references_group_mismatch": "<code>&lt;references&gt;</code> में <code>&lt;ref&gt;</code> टैग के लिए group प्राचल (पैरामीटर) में अंतर्विरोधी जानकारी \"$1\" मौजूद है।",
+ "cite_error_references_missing_group": "<code>&lt;references&gt;</code> में परिभाषित <code>&lt;ref&gt;</code> टैग में group प्राचल (पैरामीटर) \"$1\" दिया है जो उससे पहले पृष्ठ के पाठ में मौजूद नहीं है।",
+ "cite_error_references_missing_key": "<code>&lt;references&gt;</code> में \"$1\" नाम के साथ परिभाषित <code>&lt;ref&gt;</code> टैग उससे पहले के पाठ में प्रयुक्त नहीं है।",
+ "cite_error_references_no_key": "<code>&lt;references&gt;</code> टैग में परिभाषित <code>&lt;ref&gt;</code> टैग का कोई नाम नहीं है।",
+ "cite_error_empty_references_define": "<code>&lt;references&gt;</code> टैग में परिभाषित \"$1\" नामक <code>&lt;ref&gt;</code> टैग में कोई सामग्री नहीं है।",
+ "cite-tracking-category-cite-error": "सन्दर्भ त्रुटि के साथ पृष्ठ",
+ "cite-tracking-category-cite-error-desc": "इस श्रेणी में वे लेख आते हैं, जिसमें सन्दर्भ साँचे के उपयोग में त्रुटि हुई है।",
+ "cite_references_link_many_format_backlink_labels": "अ आ इ ई उ ऊ ए ऐ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह अ॰अ अ॰आ अ॰इ अ॰ई अ॰उ अ॰ऊ अ॰ए अ॰ऐ अ॰ओ अ॰औ अ॰क अ॰ख अ॰ग अ॰घ अ॰ङ अ॰च अ॰छ अ॰ज अ॰झ अ॰ञ अ॰ट अ॰ठ अ॰ड अ॰ढ अ॰ण अ॰त अ॰थ अ॰द अ॰ध अ॰न अ॰प अ॰फ अ॰ब अ॰भ अ॰म अ॰य अ॰र अ॰ल अ॰व अ॰श अ॰ष अ॰स अ॰ह आ॰अ आ॰आ आ॰इ आ॰ई आ॰उ आ॰ऊ आ॰ए आ॰ऐ आ॰ओ आ॰औ आ॰क आ॰ख आ॰ग आ॰घ आ॰ङ आ॰च आ॰छ आ॰ज आ॰झ आ॰ञ आ॰ट आ॰ठ आ॰ड आ॰ढ आ॰ण आ॰त आ॰थ आ॰द आ॰ध आ॰न आ॰प आ॰फ आ॰ब आ॰भ अ॰म आ॰य आ॰र आ॰ल आ॰व आ॰श आ॰ष आ॰स आ॰ह इ॰अ इ॰आ इ॰इ इ॰ई इ॰उ इ॰ऊ इ॰ए इ॰ऐ इ॰ओ इ॰औ इ॰क इ॰ख इ॰ग इ॰घ इ॰ङ इ॰च इ॰छ इ॰ज इ॰झ इ॰ञ इ॰ट इ॰ठ इ॰ड इ॰ढ इ॰ण इ॰त इ॰थ इ॰द इ॰ध इ॰न इ॰प इ॰फ इ॰ब इ॰भ इ॰म इ॰य इ॰र इ॰ल इ॰व इ॰श इ॰ष इ॰स इ॰ह ई॰अ ई॰आ ई॰इ ई॰ई ई॰उ ई॰ऊ ई॰ए ई॰ऐ ई॰ओ ई॰औ ई॰क ई॰ख ई॰ग ई॰घ ई॰ङ ई॰च ई॰छ ई॰ज ई॰झ ई॰ञ ई॰ट ई॰ठ ई॰ड ई॰ढ ई॰ण ई॰त ई॰थ ई॰द ई॰ध ई॰न ई॰प ई॰फ ई॰ब ई॰भ ई॰म ई॰य ई॰र ई॰ल ई॰व ई॰श ई॰ष ई॰स ई॰ह उ॰अ उ॰आ उ॰इ उ॰ई उ॰उ उ॰ऊ उ॰ए उ॰ऐ उ॰ओ उ॰औ उ॰क उ॰ख उ॰ग उ॰घ उ॰ङ उ॰च उ॰छ उ॰ज उ॰झ उ॰ञ उ॰ट उ॰ठ उ॰ड उ॰ढ उ॰ण उ॰त उ॰थ उ॰द उ॰ध उ॰न उ॰प उ॰फ उ॰ब उ॰भ उ॰म उ॰य उ॰र उ॰ल उ॰व उ॰श उ॰ष उ॰स उ॰ह ऊ॰अ ऊ॰आ ऊ॰इ ऊ॰ई ऊ॰उ ऊ॰ऊ ऊ॰ए ऊ॰ऐ ऊ॰ओ ऊ॰औ ऊ॰क ऊ॰ख ऊ॰ग ऊ॰घ ऊ॰ङ ऊ॰च ऊ॰छ ऊ॰ज ऊ॰झ ऊ॰ञ ऊ॰ट ऊ॰ठ ऊ॰ड ऊ॰ढ ऊ॰ण ऊ॰त ऊ॰थ ऊ॰द ऊ॰ध ऊ॰न ऊ॰प ऊ॰फ ऊ॰ब ऊ॰भ ऊ॰म ऊ॰य ऊ॰र ऊ॰ल ऊ॰व ऊ॰श ऊ॰ष ऊ॰स ऊ॰ह ए॰अ ए॰आ ए॰इ ए॰ई ए॰उ ए॰ऊ ए॰ए ए॰ऐ ए॰ओ ए॰औ ए॰क ए॰ख ए॰ग ए॰घ ए॰ङ ए॰च ए॰छ ए॰ज ए॰झ ए॰ञ ए॰ट ए॰ठ ए॰ड ए॰ढ ए॰ण ए॰त ए॰थ ए॰द ए॰ध ए॰न ए॰प ए॰फ ए॰ब ए॰भ ए॰म ए॰य ए॰र ए॰ल ए॰व ए॰श ए॰ष ए॰स ए॰ह ऐ॰अ ऐ॰आ ऐ॰इ ऐ॰ई ऐ॰उ ऐ॰ऊ ऐ॰ए ऐ॰ऐ ऐ॰ओ ऐ॰औ ऐ॰क ऐ॰ख ऐ॰ग ऐ॰घ ऐ॰ङ ऐ॰च ऐ॰छ ऐ॰ज ऐ॰झ ऐ॰ञ ऐ॰ट ऐ॰ठ ऐ॰ड ऐ॰ढ ऐ॰ण ऐ॰त ऐ॰थ ऐ॰द ऐ॰ध ऐ॰न ऐ॰प ऐ॰फ ऐ॰ब ऐ॰भ ऐ॰म ऐ॰य ऐ॰र ऐ॰ल ऐ॰व ऐ॰श ऐ॰ष ऐ॰स ऐ॰ह ओ॰अ ओ॰आ ओ॰इ ओ॰ई ओ॰उ ओ॰ऊ ओ॰ए ओ॰ऐ ओ॰ओ ओ॰औ ओ॰क ओ॰ख ओ॰ग ओ॰घ ओ॰ङ ओ॰च ओ॰छ ओ॰ज ओ॰झ ओ॰ञ ओ॰ट ओ॰ठ ओ॰ड ओ॰ढ ओ॰ण ओ॰त ओ॰थ ओ॰द ओ॰ध ओ॰न ओ॰प ओ॰फ ओ॰ब ओ॰भ ओ॰म ओ॰य ओ॰र ओ॰ल ओ॰व ओ॰श ओ॰ष ओ॰स ओ॰ह औ॰अ औ॰आ औ॰इ औ॰ई औ॰उ औ॰ऊ औ॰ए औ॰ऐ औ॰ओ औ॰औ औ॰क औ॰ख औ॰ग औ॰घ औ॰ङ औ॰च औ॰छ औ॰ज औ॰झ औ॰ञ औ॰ट औ॰ठ औ॰ड औ॰ढ औ॰ण औ॰त औ॰थ औ॰द औ॰ध औ॰न औ॰प औ॰फ औ॰ब औ॰भ औ॰म औ॰य औ॰र औ॰ल औ॰व औ॰श औ॰ष औ॰स औ॰ह क॰अ क॰आ क॰इ क॰ई क॰उ क॰ऊ क॰ए क॰ऐ क॰ओ क॰औ क॰क क॰ख क॰ग क॰घ क॰ङ क॰च क॰छ क॰ज क॰झ क॰ञ क॰ट क॰ठ क॰ड क॰ढ क॰ण क॰त क॰थ क॰द क॰ध क॰न क॰प क॰फ क॰ब क॰भ क॰म क॰य क॰र क॰ल क॰व क॰श क॰ष क॰स क॰ह ख॰अ ख॰आ ख॰इ ख॰ई ख॰उ ख॰ऊ ख॰ए ख॰ऐ ख॰ओ ख॰औ ख॰क ख॰ख ख॰ग ख॰घ ख॰ङ ख॰च ख॰छ ख॰ज ख॰झ ख॰ञ ख॰ट ख॰ठ ख॰ड ख॰ढ ख॰ण ख॰त ख॰थ ख॰द ख॰ध ख॰न ख॰प ख॰फ ख॰ब ख॰भ ख॰म ख॰य ख॰र ख॰ल ख॰व ख॰श ख॰ष ख॰स ख॰ह ग॰अ ग॰आ ग॰इ ग॰ई ग॰उ ग॰ऊ ग॰ए ग॰ऐ ग॰ओ ग॰औ ग॰क ग॰ख ग॰ग ग॰घ ग॰ङ ग॰च ग॰छ ग॰ज ग॰झ ग॰ञ ग॰ट ग॰ठ ग॰ड ग॰ढ ग॰ण ग॰त ग॰थ ग॰द ग॰ध ग॰न ग॰प ग॰फ ग॰ब ग॰भ ग॰म ग॰य ग॰र ग॰ल ग॰व ग॰श ग॰ष ग॰स ग॰ह घ॰अ घ॰आ घ॰इ घ॰ई घ॰उ घ॰ऊ घ॰ए घ॰ऐ घ॰ओ घ॰औ घ॰क घ॰ख घ॰ग घ॰घ घ॰ङ घ॰च घ॰छ घ॰ज घ॰झ घ॰ञ घ॰ट घ॰ठ घ॰ड घ॰ढ घ॰ण घ॰त घ॰थ घ॰द घ॰ध घ॰न घ॰प घ॰फ घ॰ब घ॰भ घ॰म घ॰य घ॰र घ॰ल घ॰व घ॰श घ॰ष घ॰स घ॰ह ङ॰अ ङ॰आ ङ॰इ ङ॰ई ङ॰उ ङ॰ऊ ङ॰ए ङ॰ऐ ङ॰ओ ङ॰औ ङ॰क ङ॰ख ङ॰ग ङ॰घ ङ॰ङ ङ॰च ङ॰छ ङ॰ज ङ॰झ ङ॰ञ ङ॰ट ङ॰ठ ङ॰ड ङ॰ढ ङ॰ण ङ॰त ङ॰थ ङ॰द ङ॰ध ङ॰न ङ॰प ङ॰फ ङ॰ब ङ॰भ ङ॰म ङ॰य ङ॰र ङ॰ल ङ॰व ङ॰श ङ॰ष ङ॰स ङ॰ह",
+ "cite_references_link_accessibility_label": "ऊपर जायें",
+ "cite_references_link_many_accessibility_label": "इस तक ऊपर जायें:",
+ "cite_section_preview_references": "सन्दर्भ की झलक",
+ "cite_warning": "सन्दर्भ चेतावनी: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/hif-latn.json b/www/wiki/extensions/Cite/i18n/hif-latn.json
new file mode 100644
index 00000000..6ea5b20a
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/hif-latn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Abdul Kadir"
+ ]
+ },
+ "cite_error": "Cite error: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/hr.json b/www/wiki/extensions/Cite/i18n/hr.json
new file mode 100644
index 00000000..1f85924a
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/hr.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dalibor Bosits",
+ "Dnik",
+ "Roberta F.",
+ "SpeedyGonsales",
+ "MaGa",
+ "Bugoslav"
+ ]
+ },
+ "cite-desc": "Dodaje <nowiki><ref[ name=id]></nowiki> i <nowiki><references/></nowiki> oznake, za citiranje",
+ "cite_error": "Pogrješka u citiranju: $1",
+ "cite_error_ref_numeric_key": "nevaljana <code>&lt;ref&gt;</code> oznaka; naziv ne smije biti jednostavni broj, koristite opisni naziv",
+ "cite_error_ref_no_key": "nevaljana <code>&lt;ref&gt;</code> oznaka; izvori bez sadržaja moraju imati naziv",
+ "cite_error_ref_too_many_keys": "nevaljana <code>&lt;ref&gt;</code> oznaka; loš naziv, npr. previše naziva",
+ "cite_error_ref_no_input": "nevaljana <code>&lt;ref&gt;</code> oznaka; izvori bez imena moraju imati sadržaj",
+ "cite_error_references_duplicate_key": "nevaljala <code>&lt;ref&gt;</code> oznaka; ime \"$1\" definirano više puta s različitim sadržajem",
+ "cite_error_references_invalid_parameters": "nevaljana <code>&lt;references&gt;</code> oznaka; parametri nisu dozvoljeni, koristite <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "potrošene sve posebne oznake za poveznice unatrag, definirajte više u poruci <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "nedovoljan broj proizvoljnih naslova poveznica za grupu \"$1\".\nDefinirajte više putem poruke <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "nije zadan tekst za izvor <code>$1</code>",
+ "cite_error_included_ref": "nedostaje zatvarajući <code>&lt;/ref&gt;</code> za <code>&lt;ref&gt;</code> oznaku",
+ "cite_error_group_refs_without_references": "oznake <code>&lt;ref&gt;</code> postoje za skupinu imenovanom \"$1\", ali nema pripadajuće oznake <code>&lt;references group=\"$1\"/&gt;</code>",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code> oznaka u <code>&lt;references&gt;</code> ima konfliktni grupni atribut \"$1\".",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code> oznaka definirana u <code>&lt;references&gt;</code> ima grupni atribut \"$1\" koji se ne pojavljuje u ranijem tekstu.",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code> oznaka s imenom \"$1\" definirana u <code>&lt;references&gt;</code> nije prethodno rabljena u tekstu.",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code> oznaka definirana u <code>&lt;references&gt;</code> nema parametar \"name\" (ime).",
+ "cite_error_empty_references_define": "<code>&lt;ref&gt;</code> oznaka definirana u <code>&lt;references&gt;</code> s imenom \"$1\" nema sadržaja.",
+ "cite-tracking-category-cite-error": "Stranice s pogrješkama u izvorima",
+ "cite-tracking-category-cite-error-desc": "Stranice u ovoj kategoriji imaju pogrješno rabljene oznake izvora.",
+ "cite_section_preview_references": "Pretpregled izvora",
+ "cite_warning": "Upozorenje: $1",
+ "cite_warning_sectionpreview_no_text": "oznaka <code>&lt;ref&gt;</code> pod imenom <code>$1</code> ne može biti prikazana jer je definirana izvan ovog odlomka ili uopće nije definirana."
+}
diff --git a/www/wiki/extensions/Cite/i18n/hsb.json b/www/wiki/extensions/Cite/i18n/hsb.json
new file mode 100644
index 00000000..15eecfe3
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/hsb.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michawiki"
+ ]
+ },
+ "cite-desc": "Přidawa taflički <nowiki><ref[ name=id]></nowiki> a <nowiki><references /></nowiki> za žórłowe podaća",
+ "cite_error": "Referencny zmylk: $1",
+ "cite_error_ref_numeric_key": "Njepłaćiwe wužiwanje taflički <code>&lt;ref&gt;</code>; \"name\" njesmě jednora hódnota integer być, wužij wopisowace mjeno.",
+ "cite_error_ref_no_key": "Njepłaćiwe wužiwanje taflički <code>&lt;ref&gt;</code>; \"ref\" bjez wobsaha dyrbi mjeno měć.",
+ "cite_error_ref_too_many_keys": "Njepłaćiwe wužiwanje taflički <code>&lt;ref&gt;</code>; njepłaćiwe mjena, na př. předołho",
+ "cite_error_ref_no_input": "Njepłaćiwe wužiwanje taflički <code>&lt;ref&gt;</code>; \"ref\" bjez mjena dyrbi wobsah měć",
+ "cite_error_references_invalid_parameters": "Njepłaćiwe wužiwanje taflički <code>&lt;references&gt;</code>; žane parametry dowolene, wužij jenož <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Zwučene etikety wróćowotkazow wućerpjene.\nDefinuj wjace w powěsći <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Swójske wotkazowe etikety za skupinu \"$1\" hižo njejsu.\nDefinuj dalše w zdźělence <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Njepłaćiwa referenca formy <code>&lt;ref&gt;</code>; žadyn tekst za referency z mjenom <code>$1</code> podaty.",
+ "cite_error_included_ref": "Kónčny <code>&lt;/ref&gt;</code> za tafličku <code>&lt;ref&gt;</code> faluje",
+ "cite_error_group_refs_without_references": "Taflički <code>&lt;ref&gt;</code> eksistuja za skupinu z mjenom \"$1\", ale njeje so wotpowědowaca taflička <code>&lt;references group=\"$1\"/&gt;</code> namakała abo začinjacy <code>&lt;/ref&gt;</code> faluje",
+ "cite_error_references_group_mismatch": "Taflička <code>&lt;ref&gt;</code> w <code>&lt;references&gt;</code> je ze skupinskim atributom \"$1\" w konflikće.",
+ "cite_error_references_missing_group": "Taflička <code>&lt;ref&gt;</code>, kotraž je w <code>&lt;references&gt;</code> definowana, ma skupinski atribut \"$1\", kotryž so w prjedawšim teksće njejewi.",
+ "cite_error_references_missing_key": "Taflička <code>&lt;ref&gt;</code> z mjenom \"$1\", kotraž je w <code>&lt;references&gt;</code> definowana, so w prjedawšim teksće njewužiwa.",
+ "cite_error_references_no_key": "Taflička <code>&lt;ref&gt;</code>, kotraž je w <code>&lt;references&gt;</code> definowana, mjenowy atribut nima.",
+ "cite_error_empty_references_define": "Taflička <code>&lt;ref&gt;</code>, kotraž je w <code>&lt;references&gt;</code> z mjenom \"$1\" definowana, wobsah nima.",
+ "cite_references_link_accessibility_label": "Horje skočić",
+ "cite_references_link_many_accessibility_label": "Horje skočić do:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ht.json b/www/wiki/extensions/Cite/i18n/ht.json
new file mode 100644
index 00000000..990fe02f
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ht.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "Boukman",
+ "Masterches"
+ ]
+ },
+ "cite-desc": "Ajoute baliz sa yo <nowiki><ref[ name=id]></nowiki> epi <nowiki><referans/></nowiki>, pou sitasyon yo.",
+ "cite_error": "Erè nan sitasyon : $1",
+ "cite_error_ref_numeric_key": "Etikèt <code>&lt;ref&gt;</code> pa valab;\nnon pa kapab yon nimewo. Itilize yon tit ki dekri bagay la.",
+ "cite_error_ref_no_key": "Etikèt <code>&lt;ref&gt;</code> pa valab;\nreferans ki pa genyen anyen ladan l dwe gen yon non",
+ "cite_error_ref_too_many_keys": "Etikèt <code>&lt;ref&gt;</code> pa valab;\nnon yo pa bon (pa ekzanp, genyen trop)",
+ "cite_error_ref_no_input": "Etikèt <code>&lt;ref&gt;</code> pa valab;\nreferans ki pa gen non dwe gen kontni nan yo",
+ "cite_error_references_invalid_parameters": "Etikèt <code>&lt;references&gt;</code> pa valab;\npa gendwa mete paramèt.\nItilize <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Pa genyen etikèt pèsonalize ankò.\nPresize yon kantite ki pi gwo nan mesaj <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_references_no_text": "Etikèt <code>&lt;ref&gt;</code> pa valab;\nNou pa bay pyès tèks pou referans ki rele <code>$1</code>"
+}
diff --git a/www/wiki/extensions/Cite/i18n/hu.json b/www/wiki/extensions/Cite/i18n/hu.json
new file mode 100644
index 00000000..dfecb5a0
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/hu.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dani",
+ "Glanthor Reviol",
+ "KossuthRad",
+ "Tacsipacsi",
+ "Nyuszika7H"
+ ]
+ },
+ "cite-desc": "Lehetővé teszi idézések létrehozását <nowiki><ref[ name=id]></nowiki> és <nowiki><references/></nowiki> tagek segítségével",
+ "cite_error": "Forráshivatkozás-hiba: $1",
+ "cite_error_ref_numeric_key": "Érvénytelen <code>&lt;ref&gt;</code> tag; a name értéke nem lehet csupán egy szám, használj leíró címeket",
+ "cite_error_ref_no_key": "Érvénytelen <code>&lt;ref&gt;</code> tag; a tartalom nélküli ref-eknek kötelező nevet (name) adni",
+ "cite_error_ref_too_many_keys": "Érvénytelen <code>&lt;ref&gt;</code> tag; hibás nevek, pl. túl sok",
+ "cite_error_ref_no_input": "Érvénytelen <code>&lt;ref&gt;</code> tag; a név (name) nélküli ref-eknek adni kell valamilyen tartalmat",
+ "cite_error_references_duplicate_key": "Érvénytelen <code>&lt;ref&gt;</code> elem, „$1” nevű forráshivatkozás többször van definiálva eltérő tartalommal",
+ "cite_error_references_invalid_parameters": "Érvénytelen <code>&lt;references&gt;</code> tag; nincsenek paraméterei, használd a <code>&lt;references /&gt;</code> formát",
+ "cite_error_references_no_backlink_label": "Elfogytak a visszahivatkozásra használt címkék, adj meg többet a <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> üzenetben",
+ "cite_error_no_link_label_group": "Nincs több egyedi címke a következő csoport számára: „$1”.\nAdj meg többet a <nowiki>[[MediaWiki:$2]]</nowiki> lapon.",
+ "cite_error_references_no_text": "Érvénytelen <code>&lt;ref&gt;</code> tag; nincs megadva szöveg a(z) <code>$1</code> nevű ref-eknek",
+ "cite_error_included_ref": "Egy <code>&lt;ref&gt;</code> tag lezáró <code>&lt;/ref&gt;</code> része hiányzik",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code>-ek léteznek a(z) „$1” csoporthoz, de nincs hozzá <code>&lt;references group=\"$1\"/&gt;</code>, vagy egy lezáró <code>&lt;/ref&gt;</code> hiányzik.",
+ "cite_error_references_group_mismatch": "A <code>&lt;references&gt;</code> és a benne található <code>&lt;ref&gt;</code> tag csoport-attribútuma („$1”) nem egyezik meg.",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code> tag lett lett definiálva egy olyan <code>&lt;references&gt;</code> tagben, amely csoport-attribútuma („$1”) nem szerepel a szöveg korábbi részében.",
+ "cite_error_references_missing_key": "a <code>&lt;references&gt;</code> tagben definiált „$1” nevű <code>&lt;ref&gt;</code> tag nem szerepel a szöveg korábbi részében.",
+ "cite_error_references_no_key": "a <code>&lt;references&gt;</code> tagben definiált <code>&lt;ref&gt;</code> tagnek nincs név attribútuma.",
+ "cite_error_empty_references_define": "a <code>&lt;references&gt;</code> szakaszban definiált „$1” <code>&lt;ref&gt;</code> tagnek nincs tartalma.",
+ "cite-tracking-category-cite-error": "Lapok forráshivatkozás-hibákkal",
+ "cite-tracking-category-cite-error-desc": "Az ebben a kategóriában található lapokon hibásan használt forráshivatkozás-elemek találhatók.",
+ "cite_references_link_many": "<li id=\"$1\"><span class=\"mw-cite-backlink\">^ $2</span> $3</li>",
+ "cite_references_link_accessibility_label": "Ugrás fel",
+ "cite_references_link_many_accessibility_label": "Ugrás ehhez:",
+ "cite_section_preview_references": "Források előnézete",
+ "cite_warning": "Forráshivatkozás-figyelmeztetés: $1",
+ "cite_warning_sectionpreview_no_text": "A(z) <code>$1</code> nevű <code>&lt;ref&gt;</code> tag előnézete nem jeleníthető meg, mert a jelenlegi szakaszon kívül vagy egyáltalán nincs definiálva."
+}
diff --git a/www/wiki/extensions/Cite/i18n/hy.json b/www/wiki/extensions/Cite/i18n/hy.json
new file mode 100644
index 00000000..94b245ea
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/hy.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Xelgen",
+ "Աշոտ1997"
+ ]
+ },
+ "cite_error": "Քաղվածելու սխալ՝ $1",
+ "cite_section_preview_references": "Ծանոթագրությունների նախադիտում"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ia.json b/www/wiki/extensions/Cite/i18n/ia.json
new file mode 100644
index 00000000..66a500eb
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ia.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "McDutchie"
+ ]
+ },
+ "apihelp-query+references-description": "Retornar un representation de datos del referentias associate al paginas indicate.",
+ "apihelp-query+references-summary": "Retornar un representation de datos del referentias associate al paginas indicate.",
+ "apihelp-query+references-example-1": "Referentias associate a <kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "Le immagazinage de referentias del extension Cite non es activate.",
+ "cite-desc": "Adde etiquettas <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki>, pro citationes",
+ "cite_error": "Error de citation: $1",
+ "cite_error_ref_numeric_key": "Etiquetta <code>&lt;ref&gt;</code> invalide;\nle nomine non pote esser un numero integre. Usa un titulo descriptive",
+ "cite_error_ref_no_key": "Le etiquetta de apertura <code>&lt;ref&gt;</code> es mal formate o ha un mal nomine",
+ "cite_error_ref_too_many_keys": "Etiquetta <code>&lt;ref&gt;</code> invalide;\nnomines invalide, p.ex. troppo de nomines",
+ "cite_error_ref_no_input": "Etiquetta <code>&lt;ref&gt;</code> invalide;\nle refs sin nomine debe haber contento",
+ "cite_error_references_duplicate_key": "Etiquetta <code>&lt;ref&gt;</code> invalide; le nomine \"$1\" es definite plure vices con contento differente",
+ "cite_error_references_invalid_parameters": "Parametro invalide in etiquetta <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Le etiquettas de retroligamine personalisate es exhaurite.\nDefini plus in le message <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Exhauriva le etiquettas de ligamine personalisabile pro le gruppo \"$1\".\nDefini plus de istes in le message <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Etiquetta <code>&lt;ref&gt;</code> invalide;\nnulle texto esseva fornite pro le refs nominate <code>$1</code>",
+ "cite_error_included_ref": "Le clausura <code>&lt;/ref&gt;</code> manca pro le etiquetta <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Il existe etiquettas <code>&lt;ref&gt;</code> pro un gruppo con nomine \"$1\", ma nulle etiquetta <code>&lt;references group=\"$1\"/&gt;</code> correspondente ha essite trovate, o un etiquetta de termination <code>&lt;/ref&gt;</code> manca.",
+ "cite_error_references_group_mismatch": "Le etiquetta <code>&lt;ref&gt;</code> in <code>&lt;references&gt;</code> ha un attributo de gruppo \"$1\" confligente.",
+ "cite_error_references_missing_group": "Le etiquetta <code>&lt;ref&gt;</code> definite in <code>&lt;references&gt;</code> ha un attributo de gruppo \"$1\" que non appare in le texto precedente.",
+ "cite_error_references_missing_key": "Le etiquetta <code>&lt;ref&gt;</code> con nomine \"$1\" definite in <code>&lt;references&gt;</code> non es usate in le texto precedente.",
+ "cite_error_references_no_key": "Le etiquetta <code>&lt;ref&gt;</code> definite in <code>&lt;references&gt;</code> non ha un attributo de nomine.",
+ "cite_error_empty_references_define": "Le etiquetta <code>&lt;ref&gt;</code> definite in <code>&lt;references&gt;</code> con nomine \"$1\" ha nulle contento.",
+ "cite-tracking-category-cite-error": "Paginas con errores de referentias",
+ "cite-tracking-category-cite-error-desc": "Le paginas in iste categoria ha errores in le uso de etiquettas de referentias.",
+ "cite_references_link_accessibility_label": "Retornar",
+ "cite_references_link_many_accessibility_label": "Retornar a:",
+ "cite_section_preview_references": "Previsualisation de referentias",
+ "cite_warning": "Aviso de citation: $1",
+ "cite_warning_sectionpreview_no_text": "Le etiquetta <code>&lt;ref&gt;</code> con nomine <code>$1</code> non pote esser previsualisate perque illo es definite foras del section actual o non es definite del toto."
+}
diff --git a/www/wiki/extensions/Cite/i18n/id.json b/www/wiki/extensions/Cite/i18n/id.json
new file mode 100644
index 00000000..b986a63e
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/id.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bennylin",
+ "Irwangatot",
+ "IvanLanin",
+ "Iwan Novirion",
+ "Rex",
+ "Gombang"
+ ]
+ },
+ "apihelp-query+references-description": "Kembalikan representasi data dari referensi yang terkait dengan halaman yang diberikan.",
+ "apihelp-query+references-summary": "Kembalikan representasi data dari referensi yang terkait dengan halaman yang diberikan.",
+ "apihelp-query+references-example-1": "Referensi yang dikaitkan dengan <kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "Penyimpanan Ekstensi pengutipan referensi tidak diaktifkan.",
+ "cite-desc": "Menambahkan tag <nowiki><ref[ name=id]></nowiki> dan <nowiki><references/></nowiki> untuk kutipan",
+ "cite_error": "Kesalahan pengutipan: $1",
+ "cite_error_ref_numeric_key": "Tag <code>&lt;ref&gt;</code> tidak sah; \nnama tidak boleh intejer sederhana.\nGunakan nama deskriptif",
+ "cite_error_ref_no_key": "Tag <code>&lt;ref&gt;</code> tidak sah atau memiliki nama yang salah.",
+ "cite_error_ref_too_many_keys": "Tag <code>&lt;ref&gt;</code> tidak sah;\nnama tidak sah; misalnya, terlalu banyak",
+ "cite_error_ref_no_input": "Tag <code>&lt;ref&gt;</code> tidak sah;\nreferensi tanpa nama harus memiliki isi",
+ "cite_error_references_duplicate_key": "Tanda <code>&lt;ref&gt;</code> tidak sah; nama \"$1\" didefinisikan berulang dengan isi berbeda",
+ "cite_error_references_invalid_parameters": "Parameter dalam tag <code>&lt;references&gt;</code> tidak sah;",
+ "cite_error_references_no_backlink_label": "Kehabisan label pralana balik tersuai.\nTambahkan lagi di pesan sistem <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Pranala kustom label untuk kelompok \"$1\" habis.\nTambahkan ketentuan dalam pesan <nowiki> [[MediaWiki:$2]] </nowiki> .",
+ "cite_error_references_no_text": "Tag <code>&lt;ref&gt;</code> tidak sah; \ntidak ditemukan teks untuk ref bernama <code>$1</code>",
+ "cite_error_included_ref": "Tag <code>&lt;ref&gt;</code> harus ditutup oleh <code>&lt;/ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Ditemukan tag <code>&lt;ref&gt;</code> untuk kelompok bernama \"$1\", tapi tidak ditemukan tag <code>&lt;references group=\"$1\"/&gt;</code> yang berkaitan, atau <code>&lt;/ref&gt;</code> penutup tidak ada",
+ "cite_error_references_group_mismatch": "Tag <code>&lt;ref&gt;</code> di <code>&lt;references&gt;</code> ada atribut kelompok \"$1\" yang konflik.",
+ "cite_error_references_missing_group": "Tag <code>&lt;ref&gt;</code> yang didefinisikan di <code>&lt;references&gt;</code> memiliki atribut kelompok \"$1\" yang tidak ditampilkan di teks sebelumnya.",
+ "cite_error_references_missing_key": "Tag <code>&lt;ref&gt;</code> dengan nama \"$1\" yang didefinisikan di <code>&lt;references&gt;</code> tidak digunakan pada teks sebelumnya.",
+ "cite_error_references_no_key": "Tag <code>&lt;ref&gt;</code> yang didefinisikan di di <code>&lt;references&gt;</code> tidak memiliki nama atribut.",
+ "cite_error_empty_references_define": "Tag <code>&lt;ref&gt;</code> yang didefinisikan di di <code>&lt;references&gt;</code> dengan nama \"$1\" tidak memiliki isi.",
+ "cite-tracking-category-cite-error": "Halaman dengan kesalahan referensi",
+ "cite-tracking-category-cite-error-desc": "Halaman dalam kategori ini memiliki kesalahan dalam penggunaan tanda referensi.",
+ "cite_references_link_many_format": "<sup>[[#$1|$2]]</sup>",
+ "cite_references_link_accessibility_label": "Ke atas",
+ "cite_references_link_many_accessibility_label": "Lompat ke:",
+ "cite_section_preview_references": "Pratayang referensi",
+ "cite_warning": "Peringatan pengutipan: $1",
+ "cite_warning_sectionpreview_no_text": "<code>&lt;ref&gt;</code> Pratayang tanda dengan nama <code>$1</code> tidak dapat ditampilkan karena didefinisikan di luar bagian saat ini atau tidak didefinisikan sama sekali."
+}
diff --git a/www/wiki/extensions/Cite/i18n/ig.json b/www/wiki/extensions/Cite/i18n/ig.json
new file mode 100644
index 00000000..28f82537
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ig.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ukabia"
+ ]
+ },
+ "cite-desc": "Tikwá <nowiki><ref[ áhà=id]></nowiki> and <nowiki><references/></nowiki> ndö, maka ntabi okwu"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ilo.json b/www/wiki/extensions/Cite/i18n/ilo.json
new file mode 100644
index 00000000..9db5f903
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ilo.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lam-ang"
+ ]
+ },
+ "cite-desc": "Aginayon kadagiti etiketa ti <nowiki><ref[ name=id]></nowiki> ken <nowiki><references/></nowiki>, para kadagiti panagdakamat",
+ "cite_error": "Biddut ti dakamat: $1",
+ "cite_error_ref_numeric_key": "Imbalido ti etiketa ti <code>&lt;ref&gt;</code>;\nti nagan ket saan a mabalin a nalaka a sibubukel. Agusar ti makaipalawag a titulo",
+ "cite_error_ref_no_key": "Imbalido nga etiketa ti <code>&lt;ref&gt;</code> ;\ndagiti ref nga awan linaon ket masapul nga adda naganna",
+ "cite_error_ref_too_many_keys": "Imbalido nga etiketa ti <code>&lt;ref&gt;</code> ;\nimbalido a nagnagan, a kas adu unay",
+ "cite_error_ref_no_input": "Imbalido nga etiketa ti <code>&lt;ref&gt;</code> ;\ndagiti ref nga awan ti naganna ket masapul nga addaan iti linaon",
+ "cite_error_references_duplicate_key": "Imbalido nga etiketa ti <code>&lt;ref&gt;</code>; ti nagan ti \"$1\" ket naipalawag kadagiti namin adu a beses nga agraman iti sabali a linaon",
+ "cite_error_references_invalid_parameters": "Imbalido nga etiketa ti <code>&lt;references&gt;</code>;\nsaan a maipalubos dagiti parametro.\nUsaren ti <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Naibusan kadagiti etiketa ti naisangayan a silpo ti likud.\nIpalawag pay ti adu idiay mensahe ti <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Naibusan kadagiti etiketa ti nangruna a silpo para iti grupo ti \"$1\".\nIpalawag pay ti adu idiay mensahe ti <nowiki>[[MediaWiki:$2]]</nowiki> .",
+ "cite_error_references_no_text": "Imbalido nga etiketa ti <code>&lt;ref&gt;</code> ;\nawan ti teksto a naited para kadagiti ref a nanaganan ti <code>$1</code>",
+ "cite_error_included_ref": "Awan ti pangrikep ti <code>&lt;/ref&gt;</code> para iti etiketa ti <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Adda dagiti etiketa ti <code>&lt;ref&gt;</code> para iti grupo a nanaganan ti \"$1\", ngem awan ti nabirukan a kapada nga etiketa ti <code>&lt;references group=\"$1\"/&gt;</code>, wenno awan ti pangrikep ti <code>&lt;/ref&gt;</code>",
+ "cite_error_references_group_mismatch": "Ti etiketa ti <code>&lt;ref&gt;</code> iti <code>&lt;references&gt;</code> ket addaan iti agsinnungat a gupit ti grupo ti \"$1\".",
+ "cite_error_references_missing_group": "Ti etiketa ti <code>&lt;ref&gt;</code> a naipalawag iti <code>&lt;references&gt;</code> ket addaan iti gupit ti grupo ti \"$1\" a saan nga agparang iti dati a teksto.",
+ "cite_error_references_missing_key": "Ti etiketa ti <code>&lt;ref&gt;</code> nga addaan iti nagan ti \"$1\" a naipalawag iti <code>&lt;references&gt;</code> ket saan a nausar iti dati a teksto.",
+ "cite_error_references_no_key": "Ti etiketa ti <code>&lt;ref&gt;</code> a naipalawag iti <code>&lt;references&gt;</code> ket awan ti nainagan a gupit.",
+ "cite_error_empty_references_define": "Ti etiketa ti <code>&lt;ref&gt;</code> a naipalawag iti <code>&lt;references&gt;</code> nga addaan iti nagan a \"$1\" ket awan linaon.",
+ "cite-tracking-category-cite-error": "Pampanid nga agraman kadagiti biddut ti reperensia",
+ "cite-tracking-category-cite-error-desc": "Dagiti panid iti daytoy a kategoria ket addaan kadaggiti biddut iti panagusar kadagiti etiketa ti reperensia.",
+ "cite_references_link_accessibility_label": "Mapan iti ngato",
+ "cite_references_link_many_accessibility_label": "Mapan aginggana iti:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/inh.json b/www/wiki/extensions/Cite/i18n/inh.json
new file mode 100644
index 00000000..7ac4d01b
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/inh.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Adam-Yourist"
+ ]
+ },
+ "cite_error": "Дешаш белгалдахара гӀалат $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/io.json b/www/wiki/extensions/Cite/i18n/io.json
new file mode 100644
index 00000000..fadb8f9a
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/io.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Malafaya",
+ "Joao Xavier"
+ ]
+ },
+ "cite_error": "Citala eroro: $1",
+ "cite_error_ref_numeric_key": "Etiketo <code>&lt;ref&gt;</code> nevalida;\nla nomo ne povas simple ula cifro. Uzez deskriptiva titulo",
+ "cite_error_ref_no_key": "L'etiketo dil kodexo <code>&lt;ref&gt;</code> havas nevalida nomo o kreesis nekorekte",
+ "cite_error_ref_too_many_keys": "Nevalida etiketo <code>&lt;ref&gt;</code>;\nnevalida nomi (exemple: tre multa)",
+ "cite_error_references_no_text": "Nevalida etiketo <code>&lt;ref&gt;</code>;\nnula texto furniseis por la referi nomizita <code>$1</code>",
+ "cite_error_group_refs_without_references": "Existas <code>&lt;ref&gt;</code> etiketi por la grupo nomizita \"$1\", ma nula etiketo korespondanta <code>&lt;references group=\"$1\"/&gt;</code> trovesis, o mankas la <code>&lt;/ref&gt;</code> por klozar li.",
+ "cite_error_references_group_mismatch": "Existas konflikti inter la grupala atribuo \"$1\" e <code>&lt;ref&gt;</code> pri l'etiketo <code>&lt;references&gt;</code>.",
+ "cite_error_references_missing_group": "L'etiketo <code>&lt;ref&gt;</code> definita en <code>&lt;references&gt;</code> havas atributo di grupo \"$1\", qua ne aparas en l'antea texto.",
+ "cite_error_references_missing_key": "L'etiketo <code>&lt;ref&gt;</code> nomizita \"$1\" e definita en <code>&lt;references&gt;</code> uzesis nulafoye en l'antea texto.",
+ "cite_error_empty_references_define": "Etiketo <code>&lt;ref&gt;</code> definita en la kodexo <code>&lt;references&gt;</code> e nomizita \"$1\" havas nula kontenajo.",
+ "cite_section_preview_references": "Previdado di referi"
+}
diff --git a/www/wiki/extensions/Cite/i18n/is.json b/www/wiki/extensions/Cite/i18n/is.json
new file mode 100644
index 00000000..f2154432
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/is.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Snævar",
+ "Sveinn í Felli"
+ ]
+ },
+ "cite-desc": "Bætir <nowiki><ref[ name=id]></nowiki> og <nowiki><references/></nowiki> tögum við fyrir heimildir",
+ "cite_error": "Tilvísunar villa: $1",
+ "cite_error_ref_numeric_key": "Villa í <code>&lt;ref&gt;</code> tag;\nnafn tilvísunar má ekki vera heil tala. Notaðu lýsandi titil",
+ "cite_error_ref_no_key": "Opna <code>&lt;ref&gt;</code> merkið er gallað eða hefur ógilt nafn",
+ "cite_error_ref_too_many_keys": "Villa í <code>&lt;ref&gt;</code> tag;\nógilt nafn, t.d. of mörg",
+ "cite_error_ref_no_input": "Villa í <code>&lt;ref&gt;</code> tag;\ntilvísunin verður annaðhvort að hafa nafn eða innihald.",
+ "cite_error_references_invalid_parameters": "Ógild færibreyta í <code>&lt;references&gt;</code> merkinu",
+ "cite_error_references_no_text": "Villa í <code>&lt;ref&gt;</code> tag;\ntilgreindu texta fyrir tilvísun með nafnið <code>$1</code>",
+ "cite_error_included_ref": "Loka þarf tilvísunni með <code>&lt;/ref&gt;</code> tagi",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code> tag er til fyrir hóp tilvísana undir nafninu \"$1\". Annaðhvort finnst ekkert sambærilegt <code>&lt;references group=\"$1\"/&gt;</code> tag, eða að það vanti að loka taginu með <code>&lt;/ref&gt;</code>.",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code> tag í <code>&lt;references&gt;</code> stangast á við hópa eigindið \"$1\".",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code> tag skilgreint í <code>&lt;references&gt;</code> hefur hópa eigindið \"$1\" sem birtist ekki í textanum á undan.",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code> tag með nafnið \"$1\" og er skilgreint í <code>&lt;references&gt;</code> er ekki notað í textanum á undan.",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code> tag skilgreint í <code>&lt;references&gt;</code> hefur engin nafna eigindi.",
+ "cite_error_empty_references_define": "Bæta þarf innihaldi við tilvísun með nafnið \"$1\".",
+ "cite_reference_link_key_with_num": "$1_$2",
+ "cite_references_link_many_sep": "&#32;",
+ "cite_references_link_many_and": "&#32;",
+ "cite_references_link_accessibility_label": "Stökkva upp",
+ "cite_references_link_many_accessibility_label": "Stökkva upp til:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/it.json b/www/wiki/extensions/Cite/i18n/it.json
new file mode 100644
index 00000000..45a39b1a
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/it.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "Beta16",
+ "BrokenArrow",
+ "Darth Kule",
+ "Erdemaslancan",
+ "Gianfranco",
+ "Pietrodn",
+ "Horcrux92",
+ "Nemo bis"
+ ]
+ },
+ "apihelp-query+references-description": "Restituisce una rappresentazione dati dei riferimenti associati con le pagine indicate.",
+ "apihelp-query+references-example-1": "Riferimenti associati con <kbd>Albert Einstein</kbd>.",
+ "cite-desc": "Aggiunge i tag <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> per gestire le citazioni",
+ "cite_error": "Errore nelle note: $1",
+ "cite_error_ref_numeric_key": "Errore nell'uso del marcatore <code>&lt;ref&gt;</code>: il nome non può essere un numero intero. Usare un titolo esteso",
+ "cite_error_ref_no_key": "L'apertura dell'etichetta <code>&lt;ref&gt;</code> non è corretta o ha un nome errato.",
+ "cite_error_ref_too_many_keys": "Errore nell'uso del marcatore <code>&lt;ref&gt;</code>: nomi non validi (ad es. numero troppo elevato)",
+ "cite_error_ref_no_input": "Errore nell'uso del marcatore <code>&lt;ref&gt;</code>: i ref privi di nome non possono essere vuoti",
+ "cite_error_references_duplicate_key": "Tag <code>&lt;ref&gt;</code> non valido; il nome \"$1\" è stato definito più volte con contenuti diversi",
+ "cite_error_references_invalid_parameters": "Parametro non valido nel tag <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Etichette di rimando personalizzate esaurite, aumentarne il numero nel messaggio <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Etichette esaurite per collegamenti personalizzati del gruppo \"$1\", aumentarne il numero nel messaggio <nowiki>[[MediaWiki:$2]]</nowiki>",
+ "cite_error_references_no_text": "Marcatore <code>&lt;ref&gt;</code> non valido; non è stato indicato alcun testo per il marcatore <code>$1</code>",
+ "cite_error_included_ref": "<code>&lt;/ref&gt;</code> di chiusura mancante per il marcatore <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Sono presenti dei marcatori <code>&lt;ref&gt;</code> per un gruppo chiamato \"$1\" ma non è stato trovato alcun marcatore <code>&lt;references group=\"$1\"/&gt;</code> corrispondente, o manca la chiusura <code>&lt;/ref&gt;</code>",
+ "cite_error_references_group_mismatch": "Il tag <code>&lt;ref&gt;</code> in <code>&lt;references&gt;</code> ha attributo gruppo \"$1\" in conflitto.",
+ "cite_error_references_missing_group": "Il tag <code>&lt;ref&gt;</code> definito in <code>&lt;references&gt;</code> ha un attributo gruppo \"$1\" che non compare nel testo precedente.",
+ "cite_error_references_missing_key": "Il tag <code>&lt;ref&gt;</code> con nome \"$1\" definito in <code>&lt;references&gt;</code> non è usato nel testo precedente.",
+ "cite_error_references_no_key": "Il tag <code>&lt;ref&gt;</code> definito in <code>&lt;references&gt;</code> non ha un attributo nome.",
+ "cite_error_empty_references_define": "Il tag <code>&lt;ref&gt;</code> definito in <code>&lt;references&gt;</code> con nome \"$1\" non ha alcun contenuto.",
+ "cite-tracking-category-cite-error": "Pagine con errori nelle note",
+ "cite-tracking-category-cite-error-desc": "Le pagine in questa categoria hanno errori nell'uso dei tag per le note.",
+ "cite_references_link_accessibility_label": "Salta",
+ "cite_references_link_many_accessibility_label": "Salta a:",
+ "cite_section_preview_references": "Anteprima delle note",
+ "cite_warning": "Attenzione nelle note: $1",
+ "cite_warning_sectionpreview_no_text": "Il tag <code>&lt;ref&gt;</code> con nome <code>$1</code> non può essere visualizzato in anteprima, perché è definito al di fuori della sezione attuale o non definito affatto."
+}
diff --git a/www/wiki/extensions/Cite/i18n/ja.json b/www/wiki/extensions/Cite/i18n/ja.json
new file mode 100644
index 00000000..bf76d9b2
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ja.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aotake",
+ "Ficell",
+ "Fryed-peach",
+ "JtFuruhata",
+ "Shirayuki",
+ "Sujiniku",
+ "2nd-player",
+ "Otokoume",
+ "Omotecho",
+ "Yusuke1109"
+ ]
+ },
+ "apihelp-query+references-description": "指定されたページに関連付けられた脚注のデータ表現を返す",
+ "apihelp-query+references-summary": "指定されたページに関連付けられた脚注のデータ表現を返す",
+ "apihelp-query+references-example-1": "<kbd>Albert Einstein</kbd> に関連付けられた脚注。",
+ "cite-desc": "引用のためのタグ <nowiki><ref[ name=id]></nowiki> および <nowiki><references/></nowiki> を追加する",
+ "cite_error": "引用エラー: $1",
+ "cite_error_ref_numeric_key": "無効な <code>&lt;ref&gt;</code> タグです。\n名前 (name 属性) に単なる整数は使用できません。説明的なものにしてください",
+ "cite_error_ref_no_key": "冒頭の <code>&lt;ref&gt;</code> タグは正しくない形式であるか、不適切な名前です",
+ "cite_error_ref_too_many_keys": "無効な <code>&lt;ref&gt;</code> タグです。\n名前 (name 属性) が無効です (数が多すぎる、など)",
+ "cite_error_ref_no_input": "無効な <code>&lt;ref&gt;</code> タグです。\n名前 (name 属性) がない場合は引用句の内容が必要です",
+ "cite_error_references_duplicate_key": "無効な <code>&lt;ref&gt;</code> タグ; name \"$1\"が異なる内容で複数回定義されています",
+ "cite_error_references_invalid_parameters": "無効な <code>&lt;references&gt;</code> タグの引数です。",
+ "cite_error_references_no_backlink_label": "カスタム バックリンク ラベルを使い果たしました。\n<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> メッセージでの定義を増やしてください。",
+ "cite_error_no_link_label_group": "グループ「$1」用のカスタム リンク ラベルを使い果たしました。\n<nowiki>[[MediaWiki:$2]]</nowiki> メッセージを編集してラベルの定義を増やしてください。",
+ "cite_error_references_no_text": "無効な <code>&lt;ref&gt;</code> タグです。\n「<code>$1</code>」という名前の引用句に対するテキストが指定されていません",
+ "cite_error_included_ref": "<code>&lt;ref&gt;</code> タグに対応する <code>&lt;/ref&gt;</code> タグが不足しています",
+ "cite_error_group_refs_without_references": "「$1」という名前のグループの <code>&lt;ref&gt;</code> タグがありますが、対応する <code>&lt;references group=\"$1\"/&gt;</code> タグが見つからない、または閉じる <code>&lt;/ref&gt;</code> タグがありません",
+ "cite_error_references_group_mismatch": "<code>&lt;references&gt;</code> の <code>&lt;ref&gt;</code> タグで、group 属性「$1」が重複しています。",
+ "cite_error_references_missing_group": "<code>&lt;references&gt;</code> で定義されている <code>&lt;ref&gt;</code> タグに、先行するテキスト内で使用されていない group 属性「$1」があります。",
+ "cite_error_references_missing_key": "<code>&lt;references&gt;</code> で定義されている name \"$1\" の <code>&lt;ref&gt;</code> タグは、先行するテキスト内で使用されていません。",
+ "cite_error_references_no_key": "<code>&lt;references&gt;</code> で定義されている <code>&lt;ref&gt;</code> タグに name 属性がありません。",
+ "cite_error_empty_references_define": "<code>&lt;references&gt;</code> で定義されている <code>&lt;ref&gt;</code> タグ (name=\"$1\") に内容がありません。",
+ "cite-tracking-category-cite-error": "参照エラーのあるページ",
+ "cite-tracking-category-cite-error-desc": "このカテゴリにあるページは、参照タグの使用にエラーがあります。",
+ "cite_references_link_accessibility_label": "元の位置に戻る",
+ "cite_references_link_many_accessibility_label": "以下の位置に戻る:",
+ "cite_section_preview_references": "脚注プレビュー",
+ "cite_warning": "引用に関する警告: $1",
+ "cite_warning_sectionpreview_no_text": "name が <code>$1</code> の <code>&lt;ref&gt;</code> タグは、現在の節の外で定義されているかまたはどこでも定義されていないため、プレビューできません。"
+}
diff --git a/www/wiki/extensions/Cite/i18n/jam.json b/www/wiki/extensions/Cite/i18n/jam.json
new file mode 100644
index 00000000..4b73faaa
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/jam.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Katxis"
+ ]
+ },
+ "cite_error": "Cite error: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/jbo.json b/www/wiki/extensions/Cite/i18n/jbo.json
new file mode 100644
index 00000000..4d87301b
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/jbo.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Olwe519"
+ ]
+ },
+ "apihelp-query+references-example-1": "lo se sitna pe <kbd>la .albert. .ainstain.</kbd>"
+}
diff --git a/www/wiki/extensions/Cite/i18n/jut.json b/www/wiki/extensions/Cite/i18n/jut.json
new file mode 100644
index 00000000..252e4a18
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/jut.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Huslåke",
+ "Jyllanj"
+ ]
+ },
+ "cite_error": "Fuednotfejl: $1",
+ "cite_error_ref_numeric_key": "Udjylji <code>&lt;ref&gt;</code>-tag; \"name\" kan ett wær e simpel hieltal, brug en beskriiwenje titel",
+ "cite_error_ref_no_key": "Udjylji <code>&lt;ref&gt;</code>-tag: E <code>&lt;ref&gt;</code>-tag uen inholj skal ha e naun",
+ "cite_error_ref_too_many_keys": "Udjylji <code>&lt;ref&gt;</code>-tag: Udjylji naun, fx for mång",
+ "cite_error_ref_no_input": "Udjylji <code>&lt;ref&gt;</code>-tag: E <code>&lt;ref&gt;</code>-tag uen naun skal ha inholj",
+ "cite_error_references_invalid_parameters": "Udjyldi <code>&lt;references&gt;</code>-tag: Parameter ä ett tillæt, brug istæ <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "For mange <code>&lt;ref&gt;</code>-tags har det samme \"name\", tillad flere i beskeden <nowiki>[[MediaWiki:Cite_references_link_many_format_backlink_labels]]</nowiki>",
+ "cite_error_references_no_text": "Udjylji <code>&lt;ref&gt;</code>-tag: Där ä ett specificiirtj noe fuednottekst te naune <code>$1</code>"
+}
diff --git a/www/wiki/extensions/Cite/i18n/jv.json b/www/wiki/extensions/Cite/i18n/jv.json
new file mode 100644
index 00000000..455580c6
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/jv.json
@@ -0,0 +1,47 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bennylin",
+ "Iwan Novirion",
+ "Meursault2004",
+ "NoiX180",
+ "Pras"
+ ]
+ },
+ "apihelp-query+references-example-1": "Rujukan sing gegayutan <kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "Panyimpenan rujukan èkstènsi sitir ora diurubaké.",
+ "cite-desc": "Nambah tenger <nowiki><ref[ name=id]></nowiki> lan <nowiki><references/></nowiki>, kanggo sitiran",
+ "cite_error": "Masalah sitiran: $1",
+ "cite_error_ref_numeric_key": "Tenger <code>&lt;ref&gt;</code> ora trep;\njenengé ora bisa mung integer prasaja. Anggonen sesirah sing dhèskriptif",
+ "cite_error_ref_no_key": "Tenger <code>&lt;ref&gt;</code> pambuka salah yasa utawa ngemu jeneng sing ala",
+ "cite_error_ref_too_many_keys": "Tenger <code>&lt;ref&gt;</code> ora trep;\njeneng ora trep, contoné amarga kakèhan",
+ "cite_error_ref_no_input": "Tenger <code>&lt;ref&gt;</code> ora trep;\nrefs tanpa jeneng kudu ana isiné",
+ "cite_error_references_duplicate_key": "Tenger <code>&lt;ref&gt;</code> ora trep; jeneng \"$1\" diwedharaké ping bola-bali déné isiné béda",
+ "cite_error_references_invalid_parameters": "Paramèter ora trep ing tenger <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Kentèkan label pranala balik.\nTambahna ing pesenan sistém <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Labèl pranala umum kanggo klompok \"$1\" entèk.\nTambahaké katemton nèng layang <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Tenger <code>&lt;ref&gt;</code> ora trep; \nora ana tèks tumrap refs kanthi jeneng <code>$1</code>",
+ "cite_error_included_ref": "<code>&lt;/ref&gt;</code> panutup ora ana tumrap tenger <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Tenger <code>&lt;ref&gt;</code> ana tumrap golongan aran \"$1\", nanging tenger <code>&lt;references group=\"$1\"/&gt;</code> sing magepokan ora ana, utawa <code>&lt;/ref&gt;</code> panutup ora ana",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code> tandha <code>&lt;references&gt;</code> nduwèni atribut klompok sing marai konflik \"$1\".",
+ "cite_error_references_missing_group": "Tenger <code>&lt;ref&gt;</code> sing diwedharaké ing <code>&lt;references&gt;</code> duwé atribut golongan \"$1\" sing ora muncul ing tèks sadurungé.",
+ "cite_error_references_missing_key": "Tenger <code>&lt;ref&gt;</code> kanthi jeneng \"$1\" sing diwedharaké ing <code>&lt;references&gt;</code> ora kanggo ing tèks sadurungé.",
+ "cite_error_references_no_key": "Tenger <code>&lt;ref&gt;</code> sing diwedharaké ing <code>&lt;references&gt;</code> ora duwé atribut jeneng.",
+ "cite_error_empty_references_define": "Tenger <code>&lt;ref&gt;</code> sing diwedharaké ing <code>&lt;references&gt;</code> kanthi jeneng \"$1\" ora ana isiné.",
+ "cite-tracking-category-cite-error": "Kaca mawa masalah rujukan",
+ "cite-tracking-category-cite-error-desc": "Kaca ing kategori iki ngemu masalah ing panggunané tenger rujukan.",
+ "cite_reference_link_key_with_num": "$1_$2",
+ "cite_reference_link_prefix": "cite_ref-",
+ "cite_references_link_prefix": "cite_note-",
+ "cite_references_link_one": "<li id=\"$1\">'''<span class=\"mw-cite-backlink\">[[#$2|^]]</span>''' $3</li>",
+ "cite_references_link_many": "<li id=\"$1\"><span class=\"mw-cite-backlink\">'''^''' $2</span> $3</li>",
+ "cite_references_link_many_format": "<sup>[[#$1|'''''$2''''']]</sup>",
+ "cite_references_link_many_format_backlink_labels": "a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz",
+ "cite_references_link_many_sep": "&#32;",
+ "cite_references_link_many_and": "&#32;",
+ "cite_references_link_accessibility_label": "Lumpat",
+ "cite_references_link_many_accessibility_label": "Lumpat menyang:",
+ "cite_section_preview_references": "Pratuduh rujukan",
+ "cite_warning": "Pélik sitiran: $1",
+ "cite_warning_sectionpreview_no_text": "Tenger <code>&lt;ref&gt;</code> kanthi jeneng <code>$1</code> ora bisa dipratuduhaké amarga diwedharaké sajabané pérangan sing saiki utawa ora diwedharaké babar pisan."
+}
diff --git a/www/wiki/extensions/Cite/i18n/ka.json b/www/wiki/extensions/Cite/i18n/ka.json
new file mode 100644
index 00000000..6acc4f79
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ka.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "David1010",
+ "Dawid Deutschland",
+ "Nodar Kherkheulidze",
+ "გიორგიმელა",
+ "BRUTE",
+ "Otogi"
+ ]
+ },
+ "cite-desc": "ამატებს <nowiki><ref[ name=id]></nowiki> და <nowiki><references/></nowiki> ტეგებს სქოლიოსთვის",
+ "cite_error": "ციტირების შეცდომა $1",
+ "cite_error_ref_numeric_key": "არასწორი <code>&lt;ref&gt;</code> ტეგი;\nსახელი არ უნდა შეიცავდეს ციფრებს. გამოიყენეთ აღწერილობითი სახელწოდება.",
+ "cite_error_ref_no_key": "არასწორი ტეგი <code>&lt;ref&gt;</code>;\nელემენტი უნდა შეიცავდეს სახელს.",
+ "cite_error_ref_too_many_keys": "არასწორი ტეგი <code>&lt;ref&gt;</code>;\nარასწორი სახელები, ძალიან ბევრი.",
+ "cite_error_ref_no_input": "არასწორი ტეგი <ref>; ელემენტი უნდა შეიცავდეს შინაარს.",
+ "cite_error_references_invalid_parameters": "არასწორი ტეგი <code>&lt;references&gt;</code>;\nპარამეტრები არ არის დაშვებული.\nგამოიყენეთ <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "არ არის საკმარისი სიმბოლო მზარდი ჰიპერბმულებისათვის.\nსაჭიროა გააფართოვოთ სისტემური შეტყობინება <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "მომხმარებელთა ბმულების მონიშვნები ჯგუფისათვის „$1“ დასრულდა.\nგანსაზღვრეთ დამატებითები შეტყობინებაში <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "არასწორი ტეგი <code>&lt;ref&gt;</code>;\nსქოლიოსათვის <code>$1</code> არ არის მითითებული ტექსტი",
+ "cite_error_included_ref": "დამხურავი ტეგი <code>&lt;/ref&gt;</code> დაკარგულია",
+ "cite_error_group_refs_without_references": "ჯგუფი „$1“ არსებული ტეგებისათვის <code>&lt;ref&gt;</code> ვერ მოიძებნა შესაბამისი ტეგი <code>&lt;references group=\"$1\"/&gt;</code>, ან გამოტოვებულია დამხურავი ტეგი <code>&lt;/ref&gt;</code>",
+ "cite_error_references_group_mismatch": "ტეგს <code>&lt;ref&gt;</code> <code>&lt;references&gt;</code>-ში გააჩნია ატრიბუტთა კონფლიქტური ჯგუფები „$1“.",
+ "cite_error_references_missing_group": "ტეგს <code>&lt;ref&gt;</code>, განმარტებულს <code>&lt;references&gt;</code>-ში, გააჩნია ჯგუფის ატრიბუტი „$1“, რომელიც ადრეულ ტექსტში არ მოიხსენიება.",
+ "cite_error_references_missing_key": "ტეგი <code>&lt;ref&gt;</code> სახელად „$1“, გარკვეული <code>&lt;references&gt;</code>-ში, არ გამოიყენება წინა ტექსტში.",
+ "cite_error_references_no_key": "ტეგს <code>&lt;ref&gt;</code>, გარკვეულს <code>&lt;references&gt;</code>-ში, სახელის ატრიბუტი არ გააჩნია.",
+ "cite_error_empty_references_define": "ტეგს <code>&lt;ref&gt;</code>, გარკვეულს <code>&lt;references&gt;</code>-ში, სახელით „$1“ არ გააჩნია შინაარსი.",
+ "cite-tracking-category-cite-error": "გვერდები, რომლებიც შეიცავენ სქოლიოში შეცდომას",
+ "cite_reference_link_key_with_num": "$1_$2",
+ "cite_references_link_one": "<li id=\"$1\"><span class=\"mw-cite-backlink\">[[#$2|↑]]</span> $3</li>",
+ "cite_references_link_many": "<li id=\"$1\"><span class=\"mw-cite-backlink\">↑ $2</span> $3</li>",
+ "cite_references_link_many_format": "<sup>[[#$1|$2]]</sup>",
+ "cite_references_link_many_sep": "&#32;",
+ "cite_references_link_many_and": "&#32;",
+ "cite_references_link_accessibility_label": "ზემოთ ასვლა",
+ "cite_section_preview_references": "სქოლიოს სიის წინასწარი გადახედვა"
+}
diff --git a/www/wiki/extensions/Cite/i18n/kab.json b/www/wiki/extensions/Cite/i18n/kab.json
new file mode 100644
index 00000000..992216cd
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/kab.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Belkacem77"
+ ]
+ },
+ "cite_error": "Tuccḍa n temsisɣelt: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/kbp.json b/www/wiki/extensions/Cite/i18n/kbp.json
new file mode 100644
index 00000000..eace6fb7
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/kbp.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gnangbade"
+ ]
+ },
+ "cite_error": "Ɖɩcɔnɩyɛ yiɣduu : $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/khw.json b/www/wiki/extensions/Cite/i18n/khw.json
new file mode 100644
index 00000000..6731f65d
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/khw.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Rachitrali"
+ ]
+ },
+ "cite_error": "حوالہ خطا: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/kk-arab.json b/www/wiki/extensions/Cite/i18n/kk-arab.json
new file mode 100644
index 00000000..afaa65c9
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/kk-arab.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": [],
+ "cite_error": "دٵيەكسٶز الۋ $1 قاتەسٸ",
+ "cite_error_ref_numeric_key": "جارامسىز <code>&lt;ref&gt;</code> بەلگٸشەسٸ; اتاۋ كٵدٸمگٸ بٷتٸن سان بولۋى مٷمكٸن ەمەس, سيپپاتاۋىش اتاۋ قولدانىڭىز",
+ "cite_error_ref_no_key": "جارامسىز <code>&lt;ref&gt;</code> بەلگٸشەسٸ; ماعلۇماتسىز تٷسٸنٸكتەمەلەردە اتاۋ بولۋى قاجەت",
+ "cite_error_ref_too_many_keys": "جارامسىز <code>&lt;ref&gt;</code> بەلگٸشە; جارامسىز اتاۋلار, مىسالى, تىم كٶپ",
+ "cite_error_ref_no_input": "جارامسىز <code>&lt;ref&gt;</code> بەلگٸشە; اتاۋسىز تٷسٸنٸكتەمەلەردە ماعلۇماتى بولۋى قاجەت",
+ "cite_error_references_invalid_parameters": "جارامسىز <code>&lt;references&gt;</code> بەلگٸشە; ەش باپتار رۇقسات ەتٸلمەيدٸ, بىلاي <code>&lt;references /&gt;</code> قولدانىڭىز",
+ "cite_error_references_no_backlink_label": "قوسىمشا بەلگٸلەردٸڭ سانى بٸتتٸ, ودان ٵرٸ كٶبٸرەك <nowiki>[[MediaWiki:Cite_references_link_many_format_backlink_labels]]</nowiki> جٷيە حابارىندا بەلگٸلەڭٸز"
+}
diff --git a/www/wiki/extensions/Cite/i18n/kk-cyrl.json b/www/wiki/extensions/Cite/i18n/kk-cyrl.json
new file mode 100644
index 00000000..57ade340
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/kk-cyrl.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arystanbek",
+ "Kaztrans",
+ "Нұрлан Рахымжанов"
+ ]
+ },
+ "cite-desc": "Сілтемелер үшін <nowiki><ref[ name=id]></nowiki> және <nowiki><references/></nowiki> белгішелерін қолданыңыз",
+ "cite_error": "Дереккөз алу қатесі: $1",
+ "cite_error_ref_numeric_key": "Жарамсыз <code>&lt;ref&gt;</code> белгішесі;\nатау кәдімгі бүтін сан болуы мүмкін емес. Сипатауыш атау қолданыңыз",
+ "cite_error_ref_no_key": "Жарамсыз <code>&lt;ref&gt;</code> белгішесі;\nмағлұматсыз дерекөздерде атау болуы қажет",
+ "cite_error_ref_too_many_keys": "Жарамсыз <code>&lt;ref&gt;</code> белгіше; \nжарамсыз атаулар, мысалы, тым көп",
+ "cite_error_ref_no_input": "Жарамсыз <code>&lt;ref&gt;</code> белгіше;\nатаусыз дереккөздерде мағлұматы болуы қажет",
+ "cite_error_references_invalid_parameters": "Жарамсыз <code>&lt;references&gt;</code> белгіше;\nеш параметр рұқсат етілмейді, \nбылай <code>&lt;references /&gt;</code> қолданыңыз",
+ "cite_error_references_no_backlink_label": "Өзгертпелі белгілердің саны бітті, одан әрі көбірек <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> жүйе хабарында белгілеңіз",
+ "cite_error_no_link_label_group": "\"$1\" тобы үшін өзгертпелі сілтеме белгілері бітті.\nDefine more in the <nowiki>[[MediaWiki:$2]]</nowiki> message.",
+ "cite_error_references_no_text": "Жарамсыз <code>&lt;ref&gt;</code> тегі;\nno text was provided for refs named <code>$1</code>",
+ "cite_error_included_ref": "<code>&lt;ref&gt;</code> тегін <code>&lt;/ref&gt;</code> тегімен жабуды қажет етеді",
+ "cite_error_group_refs_without_references": "\"$1\" деп аталған дереккөз тобында <code>&lt;ref&gt;</code> тегі бар, бірақ тиісті <code>&lt;references group=\"$1\"/&gt;</code> тегі табылмады, немесе <code>&lt;/ref&gt;</code> жабу тегін қажет етеді",
+ "cite-tracking-category-cite-error": "Қате сілтемелері бар беттер",
+ "cite_references_link_one": "<li id=\"$1\"><span class=\"mw-cite-backlink\">[[#$2|↑]]</span> $3</li>",
+ "cite_references_link_many": "<li id=\"$1\"><span class=\"mw-cite-backlink\">↑ $2</span> $3</li>",
+ "cite_references_link_accessibility_label": "Жоғарыға көтеріліңіз",
+ "cite_references_link_many_accessibility_label": "Мынаған өту:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/kk-latn.json b/www/wiki/extensions/Cite/i18n/kk-latn.json
new file mode 100644
index 00000000..20878df8
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/kk-latn.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": [],
+ "cite_error": "Däýeksöz alw $1 qatesi",
+ "cite_error_ref_numeric_key": "Jaramsız <code>&lt;ref&gt;</code> belgişesi; ataw kädimgi bütin san bolwı mümkin emes, sïppatawış ataw qoldanıñız",
+ "cite_error_ref_no_key": "Jaramsız <code>&lt;ref&gt;</code> belgişesi; mağlumatsız tüsiniktemelerde ataw bolwı qajet",
+ "cite_error_ref_too_many_keys": "Jaramsız <code>&lt;ref&gt;</code> belgişe; jaramsız atawlar, mısalı, tım köp",
+ "cite_error_ref_no_input": "Jaramsız <code>&lt;ref&gt;</code> belgişe; atawsız tüsiniktemelerde mağlumatı bolwı qajet",
+ "cite_error_references_invalid_parameters": "Jaramsız <code>&lt;references&gt;</code> belgişe; eş baptar ruqsat etilmeýdi, bılaý <code>&lt;references /&gt;</code> qoldanıñız",
+ "cite_error_references_no_backlink_label": "Qosımşa belgilerdiñ sanı bitti, odan äri köbirek <nowiki>[[MediaWiki:Cite_references_link_many_format_backlink_labels]]</nowiki> jüýe xabarında belgileñiz"
+}
diff --git a/www/wiki/extensions/Cite/i18n/km.json b/www/wiki/extensions/Cite/i18n/km.json
new file mode 100644
index 00000000..7e47800f
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/km.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "គីមស៊្រុន",
+ "វ័ណថារិទ្ធ"
+ ]
+ },
+ "cite-desc": "បន្ថែមស្លាក <nowiki><ref[ name=id]></nowiki> និង <nowiki><references/></nowiki>​ សម្រាប់ការយោង​ឯកសារ​"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ko.json b/www/wiki/extensions/Cite/i18n/ko.json
new file mode 100644
index 00000000..6ff0e7d2
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ko.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ficell",
+ "Ilovesabbath",
+ "Kwj2772",
+ "ToePeu",
+ "아라",
+ "Hwangjy9",
+ "Revi",
+ "Bluemersen",
+ "Ykhwong"
+ ]
+ },
+ "apihelp-query+references-example-1": "<kbd>Albert Einstein</kbd>과 관련된 주석.",
+ "cite-desc": "인용에 쓰이는 <nowiki><ref[ name=id]></nowiki>와 <nowiki><references/></nowiki> 태그를 추가합니다",
+ "cite_error": "인용 오류: $1",
+ "cite_error_ref_numeric_key": "<code>&lt;ref&gt;</code> 태그가 잘못되었습니다;\n이름은 숫자가 될 수 없습니다. 설명적인 이름을 사용하세요",
+ "cite_error_ref_no_key": "열린 <code>&lt;ref&gt;</code> 태그가 잘못 만들어졌거나 이름이 잘못되었습니다",
+ "cite_error_ref_too_many_keys": "<code>&lt;ref&gt;</code> 태그가 잘못되었습니다;\n잘못된 이름입니다, 너무 많은 등",
+ "cite_error_ref_no_input": "<code>&lt;ref&gt;</code> 태그가 잘못되었습니다;\n이름이 없는 ref 태그는 반드시 내용이 있어야 합니다",
+ "cite_error_references_duplicate_key": "잘못된 <code>&lt;ref&gt;</code> 태그; \"$1\"이 다른 콘텐츠로 여러 번 정의되었습니다",
+ "cite_error_references_invalid_parameters": "<code>&lt;references&gt;</code> 태그 안의 변수가 잘못되었습니다",
+ "cite_error_references_no_backlink_label": "사용자 지정 백링크 라벨이 바닥이 났습니다.\n<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>메시지에 더 정의하세요.",
+ "cite_error_no_link_label_group": "\"$1\" 그룹에 대해 사용자 지정 링크 레이블이 바닥이 났습니다.\n<nowiki>[[MediaWiki:$2]]</nowiki> 메시지에 더 정의하세요.",
+ "cite_error_references_no_text": "<code>&lt;ref&gt;</code> 태그가 잘못되었습니다;\n<code>$1</code>라는 이름을 가진 주석에 제공한 텍스트가 없습니다",
+ "cite_error_included_ref": "<code>&lt;ref&gt;</code> 태그를 닫는 <code>&lt;/ref&gt;</code> 태그가 없습니다",
+ "cite_error_group_refs_without_references": "\"$1\"이라는 이름을 가진 그룹에 대한 <code>&lt;ref&gt;</code> 태그가 존재하지만, 이에 대응하는 <code>&lt;references group=\"$1\" /&gt;</code> 태그가 없거나, 태그를 닫는 <code>&lt;/ref&gt;</code> 태그가 없습니다",
+ "cite_error_references_group_mismatch": "<code>&lt;references&gt;</code> 안에 있는 <code>&lt;ref&gt;</code> 태그에서 \"$1\" 그룹 특성이 충돌됩니다.",
+ "cite_error_references_missing_group": "<code>&lt;references&gt;</code> 안에 정의된 <code>&lt;ref&gt;</code> 태그에 이전 텍스트에 없는 \"$1\" 그룹 특성이 있습니다.",
+ "cite_error_references_missing_key": "<code>&lt;references&gt;</code> 안에 정의된 \"$1\"이라는 이름을 가진 <code>&lt;ref&gt;</code> 태그가 위에서 사용되고 있지 않습니다.",
+ "cite_error_references_no_key": "<code>&lt;references&gt;</code> 안에 정의된 <code>&lt;ref&gt;</code> 태그에 이름 특성이 없습니다.",
+ "cite_error_empty_references_define": "<code>&lt;references&gt;</code> 태그 안에 정의된 \"$1\"이라는 이름을 가진 <code>&lt;ref&gt;</code> 태그에 내용이 없습니다.",
+ "cite-tracking-category-cite-error": "참조 오류가 있는 문서",
+ "cite-tracking-category-cite-error-desc": "이 분류가 있는 문서는 참조 태그 사용에 오류가 있습니다.",
+ "cite_references_link_many_format_backlink_labels": "가 나 다 라 마 바 사 아 자 차 카 타 파 하 거 너 더 러 머 버 서 어 저 처 커 터 퍼 허 고 노 도 로 모 보 소 오 조 초 코 토 포 호 구 누 두 루 무 부 수 우 주 추 쿠 투 푸 후 그 느 드 르 므 브 스 으 즈 츠 크 트 프 흐 기 니 디 리 미 비 시 이 지 치 키 티 피 히",
+ "cite_references_link_accessibility_label": "이동",
+ "cite_references_link_many_accessibility_label": "이동:",
+ "cite_section_preview_references": "각주 미리보기",
+ "cite_warning": "인용 경고: $1",
+ "cite_warning_sectionpreview_no_text": "<code>$1</code>라는 이름의 <code>&lt;ref&gt;</code> 태그는 현재 부분 밖에서 정의되어 있거나 아예 정의되어 있지 않기 때문에 미리 볼 수 없습니다."
+}
diff --git a/www/wiki/extensions/Cite/i18n/krc.json b/www/wiki/extensions/Cite/i18n/krc.json
new file mode 100644
index 00000000..5150f2e6
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/krc.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iltever",
+ "Ernác"
+ ]
+ },
+ "cite_error": "Цитата этиуде халат: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/krl.json b/www/wiki/extensions/Cite/i18n/krl.json
new file mode 100644
index 00000000..f8bf5feb
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/krl.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Varvana"
+ ]
+ },
+ "cite_error": "Viittaušvirhe: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ksh.json b/www/wiki/extensions/Cite/i18n/ksh.json
new file mode 100644
index 00000000..11cb2f31
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ksh.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Purodha",
+ "The Evil IP address"
+ ]
+ },
+ "apihelp-query+references-description": "Jidd en Dahschtällong vun dä Qälle un Fohßnuhte als Dahte uß, di met dä aanjejovve Sigge verknop sin.",
+ "apihelp-query+references-example-1": "Bezösche em Zesammehang mem <kbd lang=\"de\" xml:lang=\"de\" dir=\"ltr\">Albert Einstein</kbd>.",
+ "cite-desc": "Erlaub Quelle un Referenze met <nowiki><ref[ name=\"id\"]></nowiki> un <nowiki><references /></nowiki> aanzejevve.",
+ "cite_error": "Fähler in <i lang=\"en\">cite</i> met Referenze: $1",
+ "cite_error_ref_numeric_key": "Fähler en <i lang=\"en\">cite</i>:\nEne <code>&lt;ref&gt;</code>-Name kann kei Zahl sin.\nNemm en Övverschreff , di jät säht.",
+ "cite_error_ref_no_key": "Beim <code lang=\"en\" xml:lang=\"en\" dir=\"rtl\">cite</code>-Befähl singem Bejenn es enne kapodde Nahme jenannt, udder hä es söns wi kappott.",
+ "cite_error_ref_too_many_keys": "Fähler en <i lang=\"en\">cite</i>:\nZo fill <code>&lt;ref&gt;</code>-Name,\nudder kapodde ene Name.",
+ "cite_error_ref_no_input": "Fähler en <i lang=\"en\">cite</i>:\nE <code>&lt;ref&gt;</code> oohne Name moß ene Enhallt han.",
+ "cite_error_references_duplicate_key": "Dat es ene onjöllteje „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">&lt;ref&gt;</code>“-Befähl, Dä Nahme „$1“ es mih wi eijmohl med enem onejahle Ennhalld belähsch.",
+ "cite_error_references_invalid_parameters": "Fähler en <i lang=\"en\">cite</i>:\nE <code>&lt;references&gt;</code> moß oohne Parrametere sin.\nNemm eifach <code>&lt;references /&gt;</code> un söns nix.",
+ "cite_error_references_no_backlink_label": "Fähler en <i lang=\"en\">cite</i>:\nNit jenoch Name för retuur-Lengks.\nDonn mieh en dä Sigg <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> enndrare.",
+ "cite_error_no_link_label_group": "För de Jroppe „$1“ senn_er kein Bezeichnonge för Lengks mih doh.\nDonn op <nowiki>[[MediaWiki:$2]]</nowiki> noch e paa dobei.",
+ "cite_error_references_no_text": "Fähler en <i lang=\"en\">cite</i>:\nEt wohr keine Tex aanjejovve för de\n<code>&lt;ref&gt;</code>s met dämm Name „<code>$1</code>“.",
+ "cite_error_included_ref": "Hee för dat <code>&lt;ref&gt;</code> ham_mer kei zopaß <code>&lt;/ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Et sinn_er <code>&lt;ref&gt;</code>-Befähle för de Jrop „$1“ en heh dä Sigg, ävver mer han keine <code>&lt;references group=\"$1\"/&gt;</code>-Befähl jefonge, udder dä Befähl <code>&lt;/ref&gt;</code> zom zohmaache es nit doh.",
+ "cite_error_references_group_mismatch": "Dä <code>&lt;ref&gt;</code> Befähl en <code>&lt;references&gt;</code> hät en widerschpröschlesche Jroppe-Eijeschaff „$1“.",
+ "cite_error_references_missing_group": "Dä <code>&lt;ref&gt;</code> Befähl, aanjejoove em Befähl <code>&lt;references&gt;</code>, hät en Jroppe-Eijeschaff „$1“, di ävver em Täx doför nit vörjekumme es.",
+ "cite_error_references_missing_key": "Dä <code>&lt;ref&gt;</code> Befähl mem Nahme „$1“, aanjejovve em Befähl <code>&lt;references&gt;</code>, es em Täx doför nit vörjekumme.",
+ "cite_error_references_no_key": "Dä <code>&lt;ref&gt;</code> Befähl, aanjejoove em Befähl <code>&lt;references&gt;</code>, hät kei Eijeschaff <code>name=</code> aanjejovve.",
+ "cite_error_empty_references_define": "Dä <code>&lt;ref&gt;</code> Befähl mem Nahme „$1“, aanjejoove em Befähl <code>&lt;references&gt;</code> mem Nahme „$1“, hät keine Enhallt.",
+ "cite-tracking-category-cite-error": "Sigge met Fähler en Fohßnuhte",
+ "cite-tracking-category-cite-error-desc": "En Sigge en heh dä Saachjropp sin Fähler em Jebruch vun Fohßnuhte",
+ "cite_reference_link_key_with_num": "$1_$2",
+ "cite_reference_link_prefix": "fohss_noht_betreck_",
+ "cite_references_link_prefix": "fohss_noht_nommer_",
+ "cite_references_link_many_and": "&#32;",
+ "cite_references_link_accessibility_label": "Jangk noh bovve",
+ "cite_references_link_many_accessibility_label": "Jangk noh bovve op:",
+ "cite_section_preview_references": "En Vöraff-Aansesch vun de Quälle un Fohßnuhte",
+ "cite_warning": "Opjepaß: $1",
+ "cite_warning_sectionpreview_no_text": "<code>&lt;ref&gt;</code> dä Befähl mem Nahme <code>$1</code> künne mer nit vöraff belohre. Dä es ußerhallef vun heh däm Afschnedd udder övverhoup nit bestemmt wohde."
+}
diff --git a/www/wiki/extensions/Cite/i18n/ku-latn.json b/www/wiki/extensions/Cite/i18n/ku-latn.json
new file mode 100644
index 00000000..361e0d3c
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ku-latn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bikarhêner"
+ ]
+ },
+ "cite_error": "Çewtîya sîte: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/kum.json b/www/wiki/extensions/Cite/i18n/kum.json
new file mode 100644
index 00000000..586fb9c5
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/kum.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "ArslanX"
+ ]
+ },
+ "cite_error": "Ситат янгылышы $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/kw.json b/www/wiki/extensions/Cite/i18n/kw.json
new file mode 100644
index 00000000..f259cf4b
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/kw.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kernoweger",
+ "Nrowe",
+ "Kw-Moon"
+ ]
+ },
+ "cite_error": "Kammwrians devynna: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/la.json b/www/wiki/extensions/Cite/i18n/la.json
new file mode 100644
index 00000000..eeba0d07
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/la.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Laurentianus"
+ ]
+ },
+ "cite_error": "Lapsus in citando: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/lb.json b/www/wiki/extensions/Cite/i18n/lb.json
new file mode 100644
index 00000000..457c65e3
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/lb.json
@@ -0,0 +1,32 @@
+{
+ "@metadata": {
+ "authors": [
+ "Les Meloures",
+ "Robby"
+ ]
+ },
+ "apihelp-query+references-example-1": "Referenzen associéiert mam <kbd>Albert Einstein</kbd>.",
+ "cite-desc": "Setzt <nowiki><ref[ name=id]></nowiki> an <nowiki><references/></nowiki> Tagge fir Referenzen derbäi.",
+ "cite_error": "Zitéierfeeler: $1",
+ "cite_error_ref_numeric_key": "Ongëltegen <code>&lt;ref&gt;</code> Tag;\nDen Numm ka keng einfach ganz Zuel sinn. Benotzt w.e.g. een Titel den eng Beschreiwung gëtt",
+ "cite_error_ref_no_key": "Den Ufaang <code>&lt;ref&gt;</code> Tag ass schlecht formatéiert oder huet e falschen Numm",
+ "cite_error_ref_too_many_keys": "Ongëltege <code>&lt;ref&gt;</code> Tag;\nongëlteg Nimm, z. Bsp. zevill",
+ "cite_error_ref_no_input": "Ongëltege <code>&lt;ref&gt;</code> Tag;\n''refs'' ouni Numm muss een Inhalt hun",
+ "cite_error_references_duplicate_key": "Net valabelen Tag <code>&lt;ref&gt;</code>. Den Numm \"$1\" gouf e puer Mol mat verschiddenem Inhalt definéiert",
+ "cite_error_references_invalid_parameters": "Ongëltegen <code>&lt;references&gt;</code> Tag",
+ "cite_error_references_no_text": "Ongëlteg <code>&lt;ref&gt;</code> Markéierung;\net gouf keen Text ugi fir d'Referenze mam Numm <code>$1</code>",
+ "cite_error_included_ref": "Den Tag <code>&lt;/ref&gt;</code> feelt fir den Tag <code>&lt;ref&gt;</code> zouzemaachen",
+ "cite_error_group_refs_without_references": "D'Markéierung <code>&lt;ref&gt;</code> gëtt et fir d'Grupp \"$1\", awer d'entspriechend Markéierung <code>&lt;references group=\"$1\"/&gt;</code> gouf net fonnt oder een <code>&lt;/ref&gt;</code> feelt",
+ "cite_error_references_group_mismatch": "Den <code>&lt;ref&gt;</code>-Tag an <code>&lt;references&gt;</code> huet den Attribut \"$1\" deen am Konflikt mat deem am <code>&lt;references&gt;</code> steet.",
+ "cite_error_references_missing_group": "Deen am <code>&lt;references&gt;</code> definéierten <code>&lt;ref&gt;</code>-Tag huet en Attribut \"$1\" deen am Text virdrun net dran ass.",
+ "cite_error_references_missing_key": "Deen am <code>&lt;references&gt;</code> definéierten <code>&lt;ref&gt;</code>-Tag mam Numm \"$1\" gëtt am Text virdrun net benotzt.",
+ "cite_error_references_no_key": "D'Markéierung <code>&lt;ref&gt;</code> déi an <code>&lt;references&gt;</code> definéiert ass huet keng Nummeegeschaft.",
+ "cite_error_empty_references_define": "D'Markéierung <code>&lt;ref&gt;</code> déi am <code>&lt;references&gt;</code> mat dem Numm « $1 » definéiert ass, ass eidel.",
+ "cite-tracking-category-cite-error": "Säite mat Referenzfeeler",
+ "cite-tracking-category-cite-error-desc": "Säiten an dëser Kategorie hu Feeler am Benotze vun de Referenz-Taggen.",
+ "cite_references_link_accessibility_label": "No uewe sprangen",
+ "cite_references_link_many_accessibility_label": "Eropsprangen op:",
+ "cite_section_preview_references": "Referenze kucken ouni ze späicheren",
+ "cite_warning": "Referenzwarnung: $1",
+ "cite_warning_sectionpreview_no_text": "Den Tag <code>&lt;ref&gt;</code> mam Numm <code>$1</code> kann hei net gewise ginn, well en entweder ausserhablb vun dësem Abschnitt ass oder guer net definéiert ass."
+}
diff --git a/www/wiki/extensions/Cite/i18n/lez.json b/www/wiki/extensions/Cite/i18n/lez.json
new file mode 100644
index 00000000..520acb11
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/lez.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Soul Train"
+ ]
+ },
+ "cite_references_link_many_format_backlink_labels": "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023"
+}
diff --git a/www/wiki/extensions/Cite/i18n/lfn.json b/www/wiki/extensions/Cite/i18n/lfn.json
new file mode 100644
index 00000000..67531035
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/lfn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cgboeree"
+ ]
+ },
+ "cite_error": "Era de sita: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/li.json b/www/wiki/extensions/Cite/i18n/li.json
new file mode 100644
index 00000000..6e94adb0
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/li.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ooswesthoesbes",
+ "Pahles"
+ ]
+ },
+ "cite-desc": "Voeg <nowiki><ref[ name=id]></nowiki> en <nowiki><references/></nowiki> tags toe veur citate",
+ "cite_error": "Citeerfout: $1",
+ "cite_error_ref_numeric_key": "Ónzjuuste tag <code>&lt;ref&gt;</code>; de naam kin gein simpele integer zeen, gebroek 'ne besjrievendje titel",
+ "cite_error_ref_no_key": "'t Äöpeningslabel <code>&lt;ref&gt;</code> is ónjuus opgemaak of haet 'ne verkieërde naam.",
+ "cite_error_ref_too_many_keys": "Ónzjuuste tag <code>&lt;ref&gt;</code>; ónzjuuste name, beveurbeildj te väöl",
+ "cite_error_ref_no_input": "Ónzjuuste tag <code>&lt;ref&gt;</code>; refs zónger naam mótte inhoud höbbe",
+ "cite_error_references_duplicate_key": "Óngeldig label <code>&lt;ref&gt;</code>; de naam \"$1\" weurt mieëder kieëre mit 'nen angeren inhawd gedefinieerd",
+ "cite_error_references_invalid_parameters": "Ónjuuste <code>&lt;references&gt;</code>-tag",
+ "cite_error_references_no_backlink_label": "'t Aantal besjikbare backlinklabels is opgebroek. Gaef meer labels op in 't berich <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "'t Aantal aangepasde verwiezingslabels veure groep \"$1\" is oetgepöt.\nDoe kans d'r mier insjtelle in 't sysyeemberich <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Ónzjuuste tag <code>&lt;ref&gt;</code>; d'r is gein teks opgegaeve veur refs mit de naam <code>$1</code>",
+ "cite_error_included_ref": "Gein sjloetteike <code>&lt;/ref&gt;</code> veur de tag <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "E label <code>&lt;ref&gt;</code> veur de groep \"$1\" besitet, meh gein biebehuuerend label <code>&lt;references group=\"$1\"/&gt;</code> is gevónje of 'n aafsloetende <code>&lt;/ref&gt;</code> is neet dao.",
+ "cite_error_references_group_mismatch": "De tag <code>&lt;ref&gt;</code> in <code>&lt;references&gt;</code> conflicteert mit groepseigesjap \"$1\".",
+ "cite_error_references_missing_group": "De tag <code>&lt;ref&gt;</code> dae is gedefinieerd in <code>&lt;references&gt;</code> haet de groepseigesjap \"$1\" neet ierder in de tekst veurkump.",
+ "cite_error_references_missing_key": "De tag <code>&lt;ref&gt;</code> mit de naam \"$1\" gedefiniteerd in <code>&lt;references&gt;</code> weurt neet ierder in de teks gebroek.",
+ "cite_error_references_no_key": "De tag <code>&lt;ref&gt;</code> dae is gedefinieerd in <code>&lt;references&gt;</code> haet geine eigesjapsnaam.",
+ "cite_error_empty_references_define": "De tag <code>&lt;ref&gt;</code> dae is gedefinieerd in <code>&lt;references&gt;</code> mit de naam \"$1\" haet geinen inhawd.",
+ "cite-tracking-category-cite-error": "Pagina's mit rifferensiefoute",
+ "cite-tracking-category-cite-error-desc": "Pagina's in dees categorie höbbe fouten in 't gebroek van rifferensielabels.",
+ "cite_references_link_accessibility_label": "Ómhoeag",
+ "cite_references_link_many_accessibility_label": "Ómhoeag nao:",
+ "cite_section_preview_references": "Veurvertuining van rifferensies",
+ "cite_warning": "Rifferensiewaorsjoewing: $1",
+ "cite_warning_sectionpreview_no_text": "Van <code>&lt;ref&gt;</code> mit de naam <code>$1</code> kan gein veurvertuining waere gegaeve, went dees is neet in de hujige sectie of gaaroet neet gedefinieerd wore."
+}
diff --git a/www/wiki/extensions/Cite/i18n/lij.json b/www/wiki/extensions/Cite/i18n/lij.json
new file mode 100644
index 00000000..c41af67a
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/lij.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "Giromin Cangiaxo"
+ ]
+ },
+ "apihelp-query+references-description": "O restitoisce una rapresentaçion di dæti de referençe associæ co-e paggine indicæ.",
+ "apihelp-query+references-example-1": "Referençe associæ con <kbd>Albert Einstein</kbd>.",
+ "cite-desc": "O l'azonze i tag <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> pe gestî e çitaçioin",
+ "cite_error": "Errô inte notte: $1",
+ "cite_error_ref_numeric_key": "Errô inte l'uso do marcatô <code>&lt;ref&gt;</code>: o nomme o no poeu ese un nummero intrego. Adoeuvia un tittolo esteiso",
+ "cite_error_ref_no_key": "L'avertua de l'etichetta <code>&lt;ref&gt;</code> a no l'è corretta ò a g'ha un nomme errou.",
+ "cite_error_ref_too_many_keys": "Tag <code>&lt;ref&gt;</code> non vallido: nommi non vallidi (pres. troppi)",
+ "cite_error_ref_no_input": "Tag <code>&lt;ref&gt;</code> non vallido: i ref sença nomme no poeuan ese voeui",
+ "cite_error_references_duplicate_key": "Tag <code>&lt;ref&gt;</code> non vallido; o nomme \"$1\" o l'è stæto definio ciù votte con di contegnui despægi",
+ "cite_error_references_invalid_parameters": "Tag <code>&lt;references&gt;</code> non vallido: parametri non ammissi, adoeuvia <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Etichette de rimando personalizæ esaorie, aomentine o nummero into messaggio <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Etichette pe inganci personalizæ do groppo \"$1\" esaorie, aomentine o nummero into messaggio <nowiki>[[MediaWiki:$2]]</nowiki>",
+ "cite_error_references_no_text": "Marcatî <code>&lt;ref&gt;</code> non vallido; no l'è stæto indicou nisciun testo pe-o marcatô <code>$1</code>",
+ "cite_error_included_ref": "<code>&lt;/ref&gt;</code> finâ mancante pe-o marcatô <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Ghè di tag <code>&lt;ref&gt;</code> pe 'n groppo ciamou \"$1\" ma no l'è stæto trovou nisciun tag <code>&lt;references group=\"$1\"/&gt;</code> corrispondente, oppù manca un <code>&lt;/ref&gt;</code> finâ",
+ "cite_error_references_group_mismatch": "O tag <code>&lt;ref&gt;</code> in <code>&lt;references&gt;</code> o g'ha l'attributo groppo \"$1\" in conflito.",
+ "cite_error_references_missing_group": "O tag <code>&lt;ref&gt;</code> definio in <code>&lt;references&gt;</code> o g'ha un attributo gruppo \"$1\" ch'o no compâ into testo precedente.",
+ "cite_error_references_missing_key": "O tag <code>&lt;ref&gt;</code> con nomme \"$1\" definio in <code>&lt;references&gt;</code> o no l'è doeuviou into testo precedente.",
+ "cite_error_references_no_key": "O tag <code>&lt;ref&gt;</code> definio in <code>&lt;references&gt;</code> o no g'ha un attributo nomme.",
+ "cite_error_empty_references_define": "O tag <code>&lt;ref&gt;</code> definio in <code>&lt;references&gt;</code> con nomme \"$1\" o no g'ha arcun contegnuo.",
+ "cite-tracking-category-cite-error": "Paggine con erroî inte notte",
+ "cite-tracking-category-cite-error-desc": "E paggine in questa categoria g'han di erroî inte l'uso di tag pe-e notte.",
+ "cite_references_link_accessibility_label": "Sata",
+ "cite_references_link_many_accessibility_label": "Sata a:",
+ "cite_section_preview_references": "Anteprimma de notte",
+ "cite_warning": "Attençion inte notte: $1",
+ "cite_warning_sectionpreview_no_text": "O tag <code>&lt;ref&gt;</code> con nomme <code>$1</code> o no poeu ese vixualizou in anteprimma, perché o l'è definio a-o de foeua da seçion attoale ò o no l'è definio affæto."
+}
diff --git a/www/wiki/extensions/Cite/i18n/lki.json b/www/wiki/extensions/Cite/i18n/lki.json
new file mode 100644
index 00000000..4f0cc191
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/lki.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hosseinblue",
+ "Lakzon",
+ "Huji"
+ ]
+ },
+ "cite-desc": "برچسب‌های <nowiki><ref[ name=id]></nowiki> و <nowiki><references/></nowiki> را برای یادکرد اضافه می‌کند",
+ "cite_error": "خطای یادکرد: $1",
+ "cite_error_ref_numeric_key": "برچسب <code><ref></code> نامجاز؛ نام نمی‌تواند یک عدد باشد. عنوان واضح‌تری را برگزینید",
+ "cite_error_ref_no_key": "برچسب <code><ref></code> نامجاز؛ یادکردهای بدون نۆم جِک(محتوا)باید نام داشته باشند",
+ "cite_error_ref_too_many_keys": "برچسب <code><ref></code> نامجاز؛ نام‌های نامجاز یا بیش از اندازه",
+ "cite_error_ref_no_input": "برچسب <code><ref></code> نامجاز؛ یادکردهای بدون نام باید نۆم جِک(محتوا) داشته باشند",
+ "cite_error_references_invalid_parameters": "برچسب <code><references></code> نامجاز؛ استفاده از پارامتر مجاز است. از <code><references /></code> استفاده کنید",
+ "cite_error_references_no_backlink_label": "برچسب‌های پیوند به انتها رسید.\nموارد جدیدی را در پیغام <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> تعریف کنید",
+ "cite_error_no_link_label_group": "از برچسب‌های پیوند سفارشی برای گروه «$1» خارج شد.\nدر پیغام <nowiki>[[MediaWiki:$2]]</nowiki> بیشتر تعریف کنید.",
+ "cite_error_references_no_text": "برچسب <code>&lt;ref&gt;</code> نامجاز؛\nمتنی برای یادکردهای با نام <code>$1</code> وارد نشده‌است",
+ "cite_error_included_ref": "برچسب تمام کنندهٔ <code>&lt;/ref&gt;</code> بدون برچسب <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "برچسب <code>&lt;ref&gt;</code> برای گروهی به نام «$1» وجود دارد، اما برچسب متناظر با <code>&lt;references group=\"$1\"/&gt;</code> یافت نشد یا <code>&lt;/ref&gt;</code> بسته جا گذاشته شده‌است.",
+ "cite_error_references_no_key": "برچسپ <code>&lt;ref&gt;</code> درون <code>&lt;references&gt;</code> صفت نام را ندارد.",
+ "cite_error_empty_references_define": "برچسپ <code>&lt;ref&gt;</code> تعریف شده درون <code>&lt;references&gt;</code> با نام «$1» محتوایی ندارد.",
+ "cite_references_link_accessibility_label": "پرش به بالا",
+ "cite_references_link_many_accessibility_label": "پرش به بالا به:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/lrc.json b/www/wiki/extensions/Cite/i18n/lrc.json
new file mode 100644
index 00000000..a196fbfb
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/lrc.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bonevarluri",
+ "Mogoeilor"
+ ]
+ },
+ "cite-desc": " <nowiki><ref[ name=id]></nowiki> و <nowiki><سرچشمه یا/></nowiki> tags,و تگیا نه د گوتنیا اضاف بکید",
+ "cite_error": "خطا جاگه:$1",
+ "cite_error_ref_no_key": "نامعتور<code>&lt;ref&gt;</code> سردیس;\nهیچ مینونه ای که واس نومش دیار با دش نئ",
+ "cite_error_ref_too_many_keys": "نامعتور<code>&lt;ref&gt;</code> سردیس؛\nنومیا نامعتور، همچنو فره ئه",
+ "cite_error_ref_no_input": "نامعتور<code>&lt;ref&gt;</code> سردیس;\nهیچ مینونه ای که واس نومش دیار با دش نئ",
+ "cite_error_references_invalid_parameters": "نامعتور<code>&lt;سرچشمه یا&gt;</code> سردیس;\nهیچ پارامتری صلادار نئ.\nوه کار گرتن<code>&lt;سرچشمه یا/&gt;</code>",
+ "cite_error_references_no_text": "نامعتور <code>&lt;ref&gt;</code> سردیس;\nهیچ نیسسه یی سی چیا نوم نیائه دیار نکرده<code>$1</code>",
+ "cite_error_included_ref": "Closing <code>&lt;/ref&gt;</code> گم بیه سی <code>&lt;ref&gt;</code> سردیس",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code> سردیسی سی دسه ای که د\"$1\" نوم دیاره , ولی دیاری نکرده<code>&lt;دسه سرچشمه=\"$1\"/&gt;</code> tag پیدا نبی, یا بسته بیه<code>&lt;/ref&gt;</code> گم بیه",
+ "cite_references_link_accessibility_label": "بالا پرسن",
+ "cite_references_link_many_accessibility_label": "پرستن د"
+}
diff --git a/www/wiki/extensions/Cite/i18n/lt.json b/www/wiki/extensions/Cite/i18n/lt.json
new file mode 100644
index 00000000..1549ef23
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/lt.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Garas",
+ "Homo",
+ "Matasg",
+ "Albertas",
+ "Zygimantus",
+ "Eitvys200",
+ "Manvydasz"
+ ]
+ },
+ "apihelp-query+references-example-1": "Nuorodos, susijusios su <kbd>Albert Einstein</kbd>.",
+ "cite-desc": "Prideda <nowiki><ref[ name=id]></nowiki> ir <nowiki><references/></nowiki> žymes citavimui",
+ "cite_error": "Citavimo klaida: $1",
+ "cite_error_ref_numeric_key": "Neleistina <code>&lt;ref&gt;</code> gairė; vardas negali būti tiesiog skaičius, naudokite tekstinį pavadinimą",
+ "cite_error_ref_no_key": "Neleistina <code>&lt;ref&gt;</code> gairė; nuorodos be turinio turi turėti vardą",
+ "cite_error_ref_too_many_keys": "Neleistina <code>&lt;ref&gt;</code> gairė; neleistini vardai, pvz., per daug",
+ "cite_error_ref_no_input": "Neleistina <code>&lt;ref&gt;</code> gairė; nuorodos be vardo turi turėti turinį",
+ "cite_error_references_duplicate_key": "Netinkama <code>&lt;ref&gt;</code> žymė; vardas \"$1\" apibrėžtas keletą kartų su skirtingu turiniu",
+ "cite_error_references_invalid_parameters": "Neleistina <code>&lt;references&gt;</code> gairė; neleidžiami jokie parametrai, naudokite <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Baigėsi antraštės.\nNurodykite daugiau <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> sisteminiame tekste",
+ "cite_error_no_link_label_group": "Grupei \"$1\" pasibaigė pritaikytos nuorodų žymės. Galite apibrėžti daugiau <nowiki>[[MediaWiki:$2]]</nowiki> žinutėje.",
+ "cite_error_references_no_text": "Netinkama <code>&lt;ref&gt;</code> žymė;\nnebuvo pateiktas tekstas nuorodoms su pavadinimu <code>$1</code>",
+ "cite_error_included_ref": "Trūksta uždaromojo <code>&lt;/ref&gt;</code> žymei <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code> žymės egzistuoja grupei vardu \"$1\", bet atitinkama <code>&lt;references group=\"$1\"/&gt;</code> žymė buvo nerasta arba trūksta žymės uždarymo <code>&lt;/ref&gt;</code>",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code> žymė, esanti <code>&lt;references&gt;</code>, turi nesutampantį grupės atributą \"$1\".",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code> žymė, apibrėžta <code>&lt;references&gt;</code>, neturi grupės atributo \"$1\", kuris nebuvo nurodytas ir ankstesniame tekste.",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code> žymė vardu \"$1\", apibrėžta <code>&lt;references&gt;</code>, nėra naudojama ankstesniame tekste.",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code> žymė, apibrėžta <code>&lt;references&gt;</code>, neturi vardo atributo.",
+ "cite_error_empty_references_define": "<code>&lt;ref&gt;</code> žymė, apibrėžta <code>&lt;references&gt;</code>, su vardu \"$1\", neturi turinio.",
+ "cite-tracking-category-cite-error": "Puslapiai su nuorodų klaidomis",
+ "cite-tracking-category-cite-error-desc": "Šios kategorijos puslapiai turi klaidų nuorodų žymių naudojime.",
+ "cite_references_link_accessibility_label": "Šokti aukštyn",
+ "cite_references_link_many_accessibility_label": "Šokti į:",
+ "cite_section_preview_references": "Nuorodų peržiūra",
+ "cite_warning": "Cituoti įspėjimą: $1",
+ "cite_warning_sectionpreview_no_text": "<code>&lt;ref&gt;</code> žymė su vardu <code>$1</code> negali būti peržiūrėta, nes ji apibrėžta už dabartinės sekcijos ribų arba nėra apibrėžta apskritai."
+}
diff --git a/www/wiki/extensions/Cite/i18n/luz.json b/www/wiki/extensions/Cite/i18n/luz.json
new file mode 100644
index 00000000..13528b76
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/luz.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "علی ساکی لرستانی"
+ ]
+ },
+ "cite_error": "استناد خطا:$1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/lv.json b/www/wiki/extensions/Cite/i18n/lv.json
new file mode 100644
index 00000000..ff21319b
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/lv.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "GreenZeb",
+ "Marozols",
+ "Xil",
+ "Papuass"
+ ]
+ },
+ "apihelp-query+references-example-1": "Atsauces, kas saistītas ar <kbd>Albertu Einšteinu</kbd>.",
+ "cite-desc": "Pievieno <nowiki><ref[ name=id]></nowiki> un <nowiki><references/></nowiki> tagus, atsaucēm",
+ "cite_error": "Kļūda atsaucē: $1",
+ "cite_error_ref_numeric_key": "Nederīga <code>&lt;ref&gt;</code> iezīme;\n\"name\" vērtība nevar būt vienkāršs skaitlis. Izmanto aprakstošāku nosaukumu",
+ "cite_error_ref_no_input": "Nederīga <code>&lt;ref&gt;</code> iezīme;\natsaucēm bez nosaukuma ir jābūt saturam",
+ "cite_error_references_duplicate_key": "Nederīga <code>&lt;ref&gt;</code> iezīme; nosaukums \"$1\" definēts vairākas reizes ar atšķirīgu saturu",
+ "cite_error_references_invalid_parameters": "Nederīgs parametrs <code>&lt;references&gt;</code> iezīmē",
+ "cite_error_included_ref": "<code>&lt;ref&gt;</code> iezīmei trūkst aizverošais <code>&lt;/ref&gt;</code>",
+ "cite-tracking-category-cite-error": "Lapas ar atsauču kļūdām",
+ "cite_references_link_accessibility_label": "Pārlēkt uz augšu",
+ "cite_references_link_many_accessibility_label": "Pārlēkt uz augšu uz:",
+ "cite_section_preview_references": "Atsauču priekšskats",
+ "cite_warning": "Atsauces brīdinājums: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/lzh.json b/www/wiki/extensions/Cite/i18n/lzh.json
new file mode 100644
index 00000000..7a61b93d
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/lzh.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "SolidBlock"
+ ]
+ },
+ "cite_error": "站誤:$1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/mai.json b/www/wiki/extensions/Cite/i18n/mai.json
new file mode 100644
index 00000000..d61b8f40
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/mai.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Tulsi Bhagat",
+ "बिप्लब आनन्द"
+ ]
+ },
+ "cite_error": "सन्दर्भ त्रुटि: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/mg.json b/www/wiki/extensions/Cite/i18n/mg.json
new file mode 100644
index 00000000..b280650d
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/mg.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jagwar"
+ ]
+ },
+ "cite-desc": "Mamnpy ny balizy <tt><nowiki><ref[ name=\"id\"]></nowiki></tt> et <tt><nowiki><references/></nowiki></tt> ho an'ny tsiahy.",
+ "cite_error": "Hadisoan-tsiahy: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/min.json b/www/wiki/extensions/Cite/i18n/min.json
new file mode 100644
index 00000000..203ae2f2
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/min.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iwan Novirion"
+ ]
+ },
+ "cite-desc": "Manambahkan tag <nowiki><ref[ name=id]></nowiki> jo <nowiki><references/></nowiki> untuak kutipan",
+ "cite_error": "Kutipan rusak: $1",
+ "cite_error_ref_numeric_key": "Tag <code>&lt;ref&gt;</code> indak sah;\nparameter indak buliah angko atau/hurup sadarano.\nGunoan namo nan deskriptif",
+ "cite_error_ref_no_key": "Tag <code>&lt;ref&gt;</code> indak sah;\nrujuakan kosong harus ado namo",
+ "cite_error_ref_too_many_keys": "Tag <code>&lt;ref&gt;</code> indak sah;\nparameter indak sah; mis. talampau panjang",
+ "cite_error_ref_no_input": "Tag <code>&lt;ref&gt;</code> indak sah;\nrujuakan indak banamo harus ado isi",
+ "cite_error_references_invalid_parameters": "Tag <code>&lt;references&gt;</code> indak sah;\nindak buliah ado parameter.\nGunoan <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Label pautan baliak habih.\nCubo tambahkan di <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Label pautan untuak grup \"$1\" habih.\nTantukan labiah lanjuik dalam <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Tag <code>&lt;ref&gt;</code> indak sah; \nindak ado teks untuak ref banamo <code>$1</code>",
+ "cite_error_included_ref": "Tag <code>&lt;ref&gt;</code> harus ditutuik jo <code>&lt;/ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Tag <code>&lt;ref&gt;</code> ado untuak grup banamo \"$1\", tapi indak ado <code>&lt;references group=\"$1\"/&gt;</code>",
+ "cite_error_references_group_mismatch": "Tag <code>&lt;ref&gt;</code> pado <code>&lt;references&gt;</code> ado namo grup \"$1\" nan konflik.",
+ "cite_error_references_missing_group": "Tag <code>&lt;ref&gt;</code> pado <code>&lt;references&gt;</code> indak ado namo grup \"$1\".",
+ "cite_error_references_missing_key": "Tag <code>&lt;ref&gt;</code> jo namo \"$1\" pado <code>&lt;references&gt;</code> indak ado.",
+ "cite_error_references_no_key": "Tag <code>&lt;ref&gt;</code> pado <code>&lt;references&gt;</code> indak ado aprameter namo.",
+ "cite_error_empty_references_define": "Tag <code>&lt;ref&gt;</code> pado <code>&lt;references&gt;</code> nan banamo \"$1\" indak ado isi.",
+ "cite_reference_link_key_with_num": "$1_$2",
+ "cite_reference_link_prefix": "cite_ref-",
+ "cite_references_link_prefix": "cite_note-",
+ "cite_references_link_one": "<li id=\"$1\">'''<span class=\"mw-cite-backlink\">[[#$2|^]]</span>''' $3</li>",
+ "cite_references_link_many": "<li id=\"$1\"><span class=\"mw-cite-backlink\">'''^''' $2</span> $3</li>",
+ "cite_references_link_many_format": "<sup>[[#$1|'''''$2''''']]</sup>",
+ "cite_references_link_many_format_backlink_labels": "a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz",
+ "cite_references_link_many_sep": "&#32;",
+ "cite_references_link_many_and": "&#32;"
+}
diff --git a/www/wiki/extensions/Cite/i18n/mk.json b/www/wiki/extensions/Cite/i18n/mk.json
new file mode 100644
index 00000000..6bad3e70
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/mk.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bjankuloski06",
+ "Brest"
+ ]
+ },
+ "apihelp-query+references-description": "Дај податочно претставување на наводите поврзани со дадени страници.",
+ "apihelp-query+references-summary": "Дај податочно претставување на наводите поврзани со дадени страници.",
+ "apihelp-query+references-example-1": "Наводи поврзани со <kbd>Алберт Ајнштајн</kbd>.",
+ "apierror-citestoragedisabled": "Складиштето на наводи за додатокот „Наведување“ не е овозможено.",
+ "cite-desc": "Додава ознаки <nowiki><ref[ name=id]></nowiki> и <nowiki><references/></nowiki>, за цитирања",
+ "cite_error": "Грешка во наводот: $1.",
+ "cite_error_ref_numeric_key": "Погрешна ознака <code>&lt;ref&gt;</code>;\nимето не може да биде број. Употребете описен наслов",
+ "cite_error_ref_no_key": "Отворачката ознака <code>&lt;ref&gt;</code> не е добро срочена или има погрешно име",
+ "cite_error_ref_too_many_keys": "Погрешна ознака<code>&lt;ref&gt;</code>;\nпогрешни имиња, т.е. ги има премногу",
+ "cite_error_ref_no_input": "Погрешна ознака <code>&lt;ref&gt;</code>;\nнаводите без име мораат да имаат содржина",
+ "cite_error_references_duplicate_key": "Неважечка ознака <code>&lt;ref&gt;</code>; називот „$1“ е зададен повеќепати со различна содржина",
+ "cite_error_references_invalid_parameters": "Неважечки параметар во ознаката <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Нема доволно натписи за повратни врски.\nОпределете уште натписи во <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Се потрошија натписите на прилагодените врски за групата „$1“.\nОпределете уште во пораката <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Погрешна ознака <code>&lt;ref&gt;</code>;\nнема зададено текст за наводите по име <code>$1</code>",
+ "cite_error_included_ref": "На ознаката <code>&lt;ref&gt;</code> ѝ недостасува ознака за затворање &lt;/ref&gt",
+ "cite_error_group_refs_without_references": "Има ознаки <code>&lt;ref&gt;</code> за група именувана како „$1“, но нема соодветна ознака <code>&lt;references group=\"$1\"/&gt;</code>, или пак недостасува завршно <code>&lt;/ref&gt;</code>",
+ "cite_error_references_group_mismatch": "Ознаката <code>&lt;ref&gt;</code> во <code>&lt;references&gt;</code> има спротиставен групен атрибут „$1“.",
+ "cite_error_references_missing_group": "Ознаката <code>&lt;ref&gt;</code> определена во <code>&lt;references&gt;</code> има групен атрибут „$1“ кој не се јавува во претходен текст.",
+ "cite_error_references_missing_key": "Ознаката <code>&lt;ref&gt;</code> со име „$1“ определена во <code>&lt;references&gt;</code> не се користи во претходен текст.",
+ "cite_error_references_no_key": "Ознаката <code>&lt;ref&gt;</code> определена во <code>&lt;referencesgt;</code> нема именски атрибут.",
+ "cite_error_empty_references_define": "Ознаката <code>&lt;ref&gt;</code> определена во <code>&lt;references&gt;</code> со име „$1“ нема содржина.",
+ "cite-tracking-category-cite-error": "Страници со грешки во наводите",
+ "cite-tracking-category-cite-error-desc": "Страниците во оваа категориај имаат грешки во употребата на ознаки за наведување.",
+ "cite_references_link_many_format_backlink_labels": "а б в г д ѓ е ж з ѕ и ј к л љ м н њ о п р с т ќ у ф х ц ч џ ш аа аб ав аг ад аѓ ае аж аз аѕ аи ај ак ал аљ ам ан ањ ао ап ар ас ат аќ ау аф ах ац ач аџ аш ба бб бв бг бд бѓ бе бж бз бѕ би бј бк бл бљ бм бн бњ бо бп бр бс бт бќ бу бф бх бц бч бџ бш ва вб вв вг вд вѓ ве вж вз бѕ ви вј вк вл вљ вм вн вњ во вп вр вс вт вќ ву вф вх вц вч вџ вш га гб гв гг гд гѓ ге гж гз гѕ ги гј гк гл гљ гм гн гњ го гп гр гс гт гќ гу гф гх гц гч гџ гш да дб дв дг дд дѓ де дж дз дѕ ди дј дк дл дљ дм дн дњ до дп др дс дт дќ ду дф дх дц дч дџ дш ѓа ѓб ѓв ѓг ѓд ѓе ѓж ѓз ѓѕ ѓи ѓј ѓк ѓл ѓљ ѓм ѓн ѓњ ѓо ѓп ѓр ѓс ѓт ѓќ ѓу ѓф ѓх ѓц ѓч ѓџ ѓш еа еб ев ег ед еѓ ее еж ез еѕ еи еј ек ел ељ ем ен ењ ео еп ер ес ет еќ еу еф ех ец еч еџ еш жа жб жв жг жд жѓ же жж жз жѕ жи жј жк жл жљ жм жн жњ жо жп жр жс жт жќ жу жф жх жц жч жџ жш за зб зв зг зд зѓ зе зж зз зѕ зи зј зк зл зљ зм зн зњ зо зп зр зс зт зќ зу зф зх зц зч зџ зш ѕа ѕб ѕв ѕг ѕд ѕѓ ѕе ѕж ѕз ѕѕ ѕи ѕј ѕк ѕл ѕљ ѕм ѕн ѕњ ѕо ѕп ѕр ѕс ѕт ѕќ ѕу ѕф ѕх ѕц ѕч ѕџ ѕш иа иб ив иг ид иѓ ие иж из иѕ ии иј ик ил иљ им ин ињ ио ип ир ис ит иќ иу иф их иц ич иџ иш ја јб јв јг јд јѓ је јж јз јѕ ји јј јк јл јљ јм јн јњ јо јп јр јс јт јќ ју јф јх јц јч јџ јш ка кб кв кг кд кѓ ке кж кз кѕ ки кј кк кл кљ км кн књ ко кп кр кс кт кќ ку кф кх кц кч кџ кш ла лб лв лг лд лѓ ле лж лз лѕ ли лј лк лл лљ лм лн лњ ло лп лр лс лт лќ лу лф лх лц лч лџ лш ља љб љв љг љд љѓ ље љж љз љѕ љи љј љк љл љљ љм љн љњ љо љп љр љс љт љќ љу љф љх љц љч љџ љш ма мб мв мг мд мѓ ме мж мз мѕ ми мј мк мл мљ мм мн мњ мо мп мр мс мт мќ му мф мх мц мч мџ мш на нб нв нг нд нѓ не нж нз нѕ ни нј нк нл нљ нм нн нњ но нп нр нс нт нќ ну нф нх нц нч нџ нш ња њб њв њг њд њѓ ње њж њз њѕ њи њј њк њл њљ њм њн њњ њо њп њр њс њт њќ њу њф њх њц њч њџ њш оа об ов ог од оѓ ое ож оз оѕ ои ој ок ол ољ ом он оњ оо оп ор ос от оќ оу оф ох оц оч оџ ош па пб пв пг пд пѓ пе пж пз пѕ пи пј пк пл пљ пм пн пњ по пп пр пс пт пќ пу пф пх пц пч пџ пш ра рб рв рг рд рѓ ре рж рз рѕ ри рј рк рл рљ рм рн рњ ро рп рр рс рт рќ ру рф рх рц рч рџ рш са сб св сг сд сѓ се сж сз сѕ си сј ск сл сљ см сн сњ со сп ср сс ст сќ су сф сх сц сч сџ сш та тб тв тг тд тѓ те тж тз тѕ ти тј тк тл тљ тм тн тњ то тп тр тс тт тќ ту тф тх тц тч тџ тш ќа ќб ќв ќг ќд ќѓ ќе ќж ќз ќѕ ќи ќј ќк ќл ќљ ќм ќн ќњ ќо ќп ќр ќс ќт ќќ ќу ќф ќх ќц ќч ќџ ќш уа уб ув уг уд уѓ уе уж уз уѕ уи уј ук ул уљ ум ун уњ уо уп ур ус ут уќ уу уф ух уц уч уџ уш фа фб фв фг фд фѓ фе фж фз фѕ фи фј фк фл фљ фм фн фњ фо фп фр фс фт фќ фу фф фх фц фч фџ фш ха хб хв хг хд хѓ хе хж хз хѕ хи хј хк хл хљ хм хн хњ хо хп хр хс хт хќ ху хф хх хц хч хџ хш ца цб цв цг цд цѓ це цж цз цѕ ци цј цк цл цљ цм цн цњ цо цп цр цс цт цќ цу цф цх цц цч цџ цш ча чб чв чг чд чѓ че чж чз чѕ чи чј чк чл чљ чм чн чњ чо чп чр чс чт чќ чу чф чх чц чч чџ чш џа џб џв џг џд џѓ џе џж џз џѕ џи џј џк џл џљ џм џн џњ џо џп џр џс џт џќ џу џф џх џц џч џџ џш ша шб шв шг шд шѓ ше шж шз шѕ ши шј шк шл шљ шм шн шњ шо шп шр шс шт шќ шу шф шх шц шч шџ шш",
+ "cite_references_link_accessibility_label": "Следно",
+ "cite_references_link_many_accessibility_label": "Отиди кај:",
+ "cite_section_preview_references": "Преглед на наводите",
+ "cite_warning": "Предупредување за наводот: $1",
+ "cite_warning_sectionpreview_no_text": "Ознаката <code>&lt;ref&gt;</code> со назив <code>$1</code> не може да се прегледа бидејќи е определена вон тековниот оддел, или пак воопшто не е определена."
+}
diff --git a/www/wiki/extensions/Cite/i18n/ml.json b/www/wiki/extensions/Cite/i18n/ml.json
new file mode 100644
index 00000000..b7abb879
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ml.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Praveenp",
+ "Shijualex"
+ ]
+ },
+ "cite-desc": "അവലംബം ചേർക്കുവാൻ ഉപയോഗിക്കാനുള്ള <nowiki><ref[ name=id]></nowiki>, <nowiki><references/></nowiki> എന്നീ ടാഗുകൾ ചേർക്കുന്നു",
+ "cite_error": "ഉദ്ധരിച്ചതിൽ പിഴവ്: $1",
+ "cite_error_ref_numeric_key": "അസാധുവായ <code>&lt;ref&gt;</code> ടാഗ്;\nനാമത്തിൽ സംഖ്യ മാത്രമായി അനുവദനീയമല്ല. എന്തെങ്കിലും ലഘുവിവരണം ഉപയോഗിക്കുക.",
+ "cite_error_ref_no_key": "തുറക്കാനുള്ള <code>&lt;ref&gt;</code> ടാഗിൽ പിഴവുണ്ട് അല്ലെങ്കിൽ പേരിൽ കുഴപ്പമുണ്ട്",
+ "cite_error_ref_too_many_keys": "അസാധുവായ <code>&lt;ref&gt;</code> ടാഗ്;\nഅസാധുവായ പേരുകൾ, ഉദാ: too many",
+ "cite_error_ref_no_input": "അസാധുവായ <code>&lt;ref&gt;</code> ടാഗ്;\nപേരില്ലാത്ത അവലംബത്തിനു ഉള്ളടക്കമുണ്ടായിരിക്കണം.",
+ "cite_error_references_duplicate_key": "അസാധുവായ <code>&lt;ref&gt;</code> ടാഗ്; \"$1\" എന്ന പേര് വ്യത്യസ്തമായ ഉള്ളടക്കത്തോടെ നിരവധി തവണ നിർവ്വചിച്ചിരിക്കുന്നു",
+ "cite_error_references_invalid_parameters": "<code>&lt;references&gt;</code> ടാഗിൽ അസാധുവായ ചരം ഉൾപ്പെട്ടിരിക്കുന്നു.",
+ "cite_error_references_no_backlink_label": "പിൻകണ്ണികൾക്കായി നൽകുന്ന ഇച്ഛാനുസരണ കുറികൾ തീർന്നുപോയിരിക്കുന്നു.\nകൂടുതൽ [[MediaWiki:Cite references link many format backlink labels]] സന്ദേശത്തിൽ നിർവചിക്കുക.",
+ "cite_error_no_link_label_group": "\"$1\" സംഘത്തിലെ കണ്ണികൾക്കായി നൽകുന്ന ഇച്ഛാനുസരണ കുറികൾ തീർന്നുപോയിരിക്കുന്നു.\nകൂടുതൽ <nowiki>[[MediaWiki:$2]]</nowiki> സന്ദേശത്തിൽ നിർവചിക്കുക.",
+ "cite_error_references_no_text": "അസാധുവായ <code>&lt;ref&gt;</code> ടാഗ്;\n<code>$1</code> എന്ന അവലംബങ്ങൾക്ക് ടെക്സ്റ്റ് ഒന്നും കൊടുത്തിട്ടില്ല.",
+ "cite_error_included_ref": "<code>&lt;ref&gt;</code> റ്റാഗിനു <code>&lt;/ref&gt;</code> എന്ന അന്ത്യറ്റാഗ് നൽകിയിട്ടില്ല",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code> റ്റാഗുകൾ \"$1\" സംഘത്തിൽ ഉണ്ട്, പക്ഷേ ബന്ധപ്പെട്ട <code>&lt;references group=\"$1\"/&gt;</code> റ്റാഗ് കണ്ടെത്താനായില്ല അല്ലെങ്കിൽ അടയ്ക്കാനുള്ള <code>&lt;/ref&gt;</code> നൽകിയിട്ടില്ല",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code> റ്റാഗിലേയും <code>&lt;references&gt;</code> എന്നതിലേയും സംഘ ഘടകമായ \"$1\" ഒത്തുപോകുന്നില്ല.",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code> റ്റാഗ് നിർവചിച്ചിട്ടുണ്ടെങ്കിലും <code>&lt;references&gt;</code> എന്നതിലുള്ള സംഘ ഘടകം \"$1\" ആദ്യ എഴുത്തിൽ കാണുന്നില്ല.",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code> റ്റാഗ് \"$1\" എന്ന പേരോടെ <code>&lt;references&gt;</code> എന്നതിൽ നിർവചിച്ചിട്ടുണ്ടെങ്കിലും ആദ്യ എഴുത്തിൽ ഉപയോഗിക്കുന്നില്ല.",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code> റ്റാഗ് <code>&lt;references&gt;</code> എന്നതിൽ നിർവചിച്ചിട്ടുണ്ടെങ്കിലും നാമ ഘടകം നൽകിയിട്ടില്ല.",
+ "cite_error_empty_references_define": " <code>&lt;references&gt;</code> ആവശ്യത്തിനായി \"$1\" എന്ന പേരിൽ നിർ‌വചിക്കപ്പെട്ട <code>&lt;ref&gt;</code> റ്റാഗിന് ഉള്ളടക്കമൊന്നുമില്ല.",
+ "cite-tracking-category-cite-error": "അവലംബത്തിൽ പിഴവുകളുള്ള താളുകൾ",
+ "cite-tracking-category-cite-error-desc": "അവലംബം ടാഗുകൾ ഉപയോഗിച്ചതിൽ പിഴവുകളുള്ള താളുകളാണ് ഈ വർഗ്ഗത്തിൽ ഉള്ളത്.",
+ "cite_reference_link_prefix": "ഉദ്ധരിണി_അവലംബം-",
+ "cite_references_link_prefix": "ഉദ്ധരിണി_കുറിപ്പ്-",
+ "cite_references_link_accessibility_label": "മുകളിലേയ്ക്ക്",
+ "cite_references_link_many_accessibility_label": "മുകളിൽ ഇവിടേയ്ക്ക്:",
+ "cite_section_preview_references": "അവലംബങ്ങൾ എങ്ങനെയുണ്ടെന്ന് കാണുക",
+ "cite_warning": "അവലംബ മുന്നറിയിപ്പ്:$1",
+ "cite_warning_sectionpreview_no_text": "നിലവിലെ വിഭാഗത്തിന്റെ പുറത്ത് നിർവ്വചിച്ചിരിക്കുന്നതിനാൽ അല്ലെങ്കിൽ നിർവചിച്ചിട്ടേയില്ലാത്തതിനാൽ <code>$1</code> എന്ന പേരിലുള്ള <code>&lt;ref&gt;</code> ടാഗ് എങ്ങനെയുണ്ടെന്ന് കാണാൻ കഴിയില്ല."
+}
diff --git a/www/wiki/extensions/Cite/i18n/mn.json b/www/wiki/extensions/Cite/i18n/mn.json
new file mode 100644
index 00000000..907ee5af
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/mn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chinneeb"
+ ]
+ },
+ "cite_error": "Иш татахад гарсан алдаа: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/mr.json b/www/wiki/extensions/Cite/i18n/mr.json
new file mode 100644
index 00000000..3451fe0f
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/mr.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kaajawa",
+ "Kaustubh",
+ "Mahitgar",
+ "Rahuldeshmukh101",
+ "V.narsikar",
+ "Sureshkhole"
+ ]
+ },
+ "apihelp-query+references-description": "दिलेल्या पानांच्या संदर्भांची सांख्यीकी दाखवा",
+ "apihelp-query+references-summary": "दिलेल्या पानांच्या संदर्भांची सांख्यीकी दाखवा",
+ "apihelp-query+references-example-1": "<kbd>अॅल्बर्ट आइन्स्टाइन</kbd> ला दिलेले संदर्भ",
+ "apierror-citestoragedisabled": "अवतरण जोडणी संदर्भ साठवून ठेवणे चालू केलेले नाही",
+ "cite-desc": "<nowiki><ref[ name=id]></nowiki> व <nowiki><references/></nowiki> येथे संदर्भ देण्यासाठी वापरण्यात येणाऱ्या टॅग्ज जोडल्या जातील.",
+ "cite_error": "चुका उधृत करा: $1",
+ "cite_error_ref_numeric_key": "<code>&lt;ref&gt;</code> चुकीचा कोड; नाव हे पूर्णांकी संख्या असू शकत नाही, कृपया वर्णनात्मक शीर्षक द्या",
+ "cite_error_ref_no_key": "<code>&lt;ref&gt;</code> चुकीचा कोड; रिकाम्या संदर्भांना नाव असणे गरजेचे आहे",
+ "cite_error_ref_too_many_keys": "<code>&lt;ref&gt;</code> चुकीचा कोड; चुकीची नावे, उदा. खूप सारी",
+ "cite_error_ref_no_input": "<code>&lt;ref&gt;</code> चुकीचा कोड; निनावी संदर्भांमध्ये माहिती असणे गरजेचे आहे",
+ "cite_error_references_duplicate_key": "अवैध <code>&lt;ref&gt;</code> tag; नाव \"$1\" वेगवेगळ्या मजकूराशी अनेकदा जोडलेले आहे",
+ "cite_error_references_invalid_parameters": "<code>&lt;references&gt;</code> हा चुकीचा वापर आहे; यामधे पॅरामीटर्स देणे निषिद्ध आहे,\n<code>&lt;references /&gt;</code> असा कोड वापरा",
+ "cite_error_references_no_backlink_label": "तयार केलेली मागीलदुवे देणारी नावे संपलेली आहेत, अधिक नावे <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> या प्रणाली संदेशात लिहा",
+ "cite_error_no_link_label_group": "\"$1\" करिता नमूदकेलेल्या कस्टम लिंक खूणा संपल्या .\n<nowiki>[[MediaWiki:$2]]</nowiki> संदेशात अधिक खूणा नमूद करा",
+ "cite_error_references_no_text": "<code>&lt;ref&gt;</code> चुकीचा कोड; <code>$1</code> नावाने दिलेल्या संदर्भांमध्ये काहीही माहिती नाही",
+ "cite_error_included_ref": "<code>&lt;ref&gt;</code> ला बंद करणारी <code>&lt;/ref&gt;</code> ही खूणपताका गायब आहे.",
+ "cite_error_group_refs_without_references": "\"$1\" नावाच्या गटाकरिता <code>&lt;ref&gt;</code>खूणपताका उपलब्ध आहेत, पण संबंधीत <code>&lt;references group=\"$1\"/&gt;</code> खूण मिळाली नाही.",
+ "cite_error_references_group_mismatch": "<code>&lt;references&gt;</code>मधील खूणपताकेस<code>&lt;ref&gt;</code> खूणांशी विसंवाद असणारे group attribute \"$1\" आहे.",
+ "cite_error_references_missing_group": "गट \"$1\" मधील <code>&lt;ref&gt;</code> खूणपताका <code>&lt;references&gt;</code> या पूर्वी वापल्या गेलेल्या नाहीत.",
+ "cite_error_references_missing_key": "<code>&lt;references&gt;</code> ह्या मध्ये टाकलेला <code>&lt;ref&gt;</code> \"$1\" ह्या नावाची खूणपताका ह्या पूर्वी वापरण्यात आलेली नाही.",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code>खूणपताकेत नमूद गोष्टींना <code>&lt;references&gt;</code> ला नाम-गुणधर्म नाहीत.",
+ "cite_error_empty_references_define": "<code>&lt;ref&gt;</code>खूणपताकेत नमूद गोष्टींना, <code>&lt;references&gt;</code> ज्या \"$1\" ह्या नावाने संबोधल्या आहेत, त्यात माहिती नाही.",
+ "cite-tracking-category-cite-error": "संदर्भ चुका असणारी पाने",
+ "cite-tracking-category-cite-error-desc": "या वर्गात असणाऱ्या पानांत संदर्भ खूणपताकासंबंधी चुका आहेत.",
+ "cite_references_link_accessibility_label": "वर जा",
+ "cite_references_link_many_accessibility_label": "यावर जा",
+ "cite_section_preview_references": "संदर्भांची झलक दाखवा",
+ "cite_warning": "अवतरणाची ताकीद : $1",
+ "cite_warning_sectionpreview_no_text": "हा <code>&lt;ref&gt;</code> ह्या <code>$1</code> नावाने टॅग केला गेलेला आहे आणि त्याची झलक दाखवली जाऊ शकत नाही कारण तो ठरवलेल्या चौकटी बाहेरचा आहे किंवा त्याची चौकट ठरवली गेलेली नाहीये."
+}
diff --git a/www/wiki/extensions/Cite/i18n/ms.json b/www/wiki/extensions/Cite/i18n/ms.json
new file mode 100644
index 00000000..e8496cd2
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ms.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Anakmalaysia",
+ "Aviator",
+ "Izzudin"
+ ]
+ },
+ "cite-desc": "Menambah tag <nowiki><ref[ name=id]></nowiki> dan <nowiki><references/></nowiki> untuk pemetikan",
+ "cite_error": "Ralat petik: $1",
+ "cite_error_ref_numeric_key": "Tag <code>&lt;ref&gt;</code> tidak sah; nombor ringkas tidak dibenarkan, sila masukkan tajuk yang lebih terperinci",
+ "cite_error_ref_no_key": "Tag <code>&lt;ref&gt;</code> tidak sah; rujukan tanpa kandungan mestilah mempunyai nama",
+ "cite_error_ref_too_many_keys": "Tag <code>&lt;ref&gt;</code> tidak sah; nama-nama tidak sah, misalnya terlalu banyak",
+ "cite_error_ref_no_input": "'Tag <code>&lt;ref&gt;</code> tidak sah; rujukan tanpa nama mestilah mempunyai kandungan",
+ "cite_error_references_invalid_parameters": "Tag <code>&lt;references&gt;</code> tidak sah; parameter tidak dibenarkan, gunakan <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Kehabisan label pautan balik tempahan. Sila tambah label dalam pesanan <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Kehabisan label pautan tempahan untuk kumpulan \"$1\".\nTentukan lagi dalam mesej <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Tag <code>&lt;ref&gt;</code> tidak sah; teks bagi rujukan <code>$1</code> tidak disediakan",
+ "cite_error_included_ref": "Tag <code>&lt;ref&gt;</code> tidak ditutup dengan <code>&lt;/ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Tag <code>&lt;ref&gt;</code> untuk kumpulan \"$1\" ada tetapi tag <code>&lt;references group=\"$1\"/&gt;</code> yang sepadan tidak disertakan",
+ "cite_error_references_group_mismatch": "Tag <code>&lt;ref&gt;</code> dalam <code>&lt;references&gt;</code> mempunyai atribut kumpulan yang bercanggah, \"$1\".",
+ "cite_error_references_missing_group": "Tag <code>&lt;ref&gt;</code> yang ditentukan dalam <code>&lt;references&gt;</code> mempunyai atribut kumpulan \"$1\" yang tiada dalam teks sebelumnya.",
+ "cite_error_references_missing_key": "Tag <code>&lt;ref&gt;</code> dengan nama \"$1\" yang ditentukan dalam <code>&lt;references&gt;</code> tidak digunakan dalam teks sebelumnya.",
+ "cite_error_references_no_key": "Tag <code>&lt;ref&gt;</code> yang ditentukan dalam <code>&lt;references&gt;</code> tiada atribut nama.",
+ "cite_error_empty_references_define": "Tag <code>&lt;ref&gt;</code> yang ditentukan dalam <code>&lt;references&gt;</code> dengan nama \"$1\" tiada kandungan.",
+ "cite_references_link_accessibility_label": "Panjat",
+ "cite_references_link_many_accessibility_label": "Panjat ke:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/mt.json b/www/wiki/extensions/Cite/i18n/mt.json
new file mode 100644
index 00000000..a6b16a6b
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/mt.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chrisportelli"
+ ]
+ },
+ "cite-desc": "Iżżid it-tikketti <nowiki><ref[ name=id]></nowiki> u <nowiki><references/></nowiki> għaċ-ċitazzjonijiet",
+ "cite_error": "Żball fiċ-ċitazzjoni: $1",
+ "cite_error_ref_numeric_key": "Tikketta <code>&lt;ref&gt;</code> invalida;\nl-isem ma jistax ikun numru sħiħ sempliċi. Uża titlu deskrittiv",
+ "cite_error_ref_no_key": "Tikketta <code>&lt;ref&gt;</code> invalida;\nrefs mingħajr kontenut għandhom ikollhom isem",
+ "cite_error_ref_too_many_keys": "Tikketta <code>&lt;ref&gt;</code> invalida;\nismijiet invalidi, e.ż. numru wisq kbir",
+ "cite_error_ref_no_input": "Żball fl-użu tat-tikketta <code>&lt;ref&gt;</code>; refs mingħajr isem ma jistgħux ikunu vojta",
+ "cite_error_references_invalid_parameters": "Żball fl-użu tat-tikketta <code>&lt;references&gt;</code>; il-parametri mhumiex permessi. Uża <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_text": "Tikketta <code>&lt;ref&gt;</code> invalida;\nl-ebda test ma ngħata għar-refs bl-isem <code>$1</code>",
+ "cite_error_included_ref": "<code>&lt;/ref&gt;</code> tal-għeluq hija nieqsa għat-tikketta <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "It-tikketti <code>&lt;ref&gt;</code> jeżistu għal grupp bl-isem \"$1\" imma l-ebda tikketta <code>&lt;references group=\"$1\"/&gt;</code> rispettiva ma nstabet",
+ "cite_error_references_group_mismatch": "It-tikketta <code>&lt;ref&gt;</code> f'<code>&lt;references&gt;</code> għandha l-attribut tal-grupp \"$1\" f'kunflitt.",
+ "cite_error_references_missing_group": "It-tikketta <code>&lt;ref&gt;</code> definita f'<code>&lt;references&gt;</code> għandha l-attribut tal-grupp \"$1\" li ma jidhirx fit-test preċedenti.",
+ "cite_error_references_missing_key": "It-tikketta <code>&lt;ref&gt;</code> bl-isem \"$1\" definita f'<code>&lt;references&gt;</code> mhix użata fit-test preċedenti.",
+ "cite_error_references_no_key": "It-tikketta <code>&lt;ref&gt;</code> definita f'<code>&lt;references&gt;</code> m'għandiex l-attribut tal-isem.",
+ "cite_error_empty_references_define": "It-tikketta <code>&lt;ref&gt;</code> definita f'<code>&lt;references&gt;</code> bl-isem \"$1\" m'għandha l-ebda kontenut."
+}
diff --git a/www/wiki/extensions/Cite/i18n/mwl.json b/www/wiki/extensions/Cite/i18n/mwl.json
new file mode 100644
index 00000000..80cc0ba0
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/mwl.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "MokaAkashiyaPT",
+ "Athena in Wonderland"
+ ]
+ },
+ "cite_error": "Erro de citaçon: $1",
+ "cite-tracking-category-cite-error": "Páiginas cun erros an refréncias",
+ "cite-tracking-category-cite-error-desc": "Las páiginas nesta catadorie cunténen erros na outelizaçon de ls eilemientos de refréncias."
+}
diff --git a/www/wiki/extensions/Cite/i18n/my.json b/www/wiki/extensions/Cite/i18n/my.json
new file mode 100644
index 00000000..89293982
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/my.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ninjastrikers"
+ ]
+ },
+ "cite_error": "ကိုးကား အမှား - $1",
+ "cite-tracking-category-cite-error": "ကိုးကားချက်အမှားများ ပါဝင်သော စာမျက်နှာများ"
+}
diff --git a/www/wiki/extensions/Cite/i18n/mzn.json b/www/wiki/extensions/Cite/i18n/mzn.json
new file mode 100644
index 00000000..ea273831
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/mzn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "محک"
+ ]
+ },
+ "cite_error": "خطای منبع: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/nan.json b/www/wiki/extensions/Cite/i18n/nan.json
new file mode 100644
index 00000000..b5dceccf
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/nan.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Luuva"
+ ]
+ },
+ "cite_error": "Ín-iōng chhò-gō͘: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/nap.json b/www/wiki/extensions/Cite/i18n/nap.json
new file mode 100644
index 00000000..d3a8b424
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/nap.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "C.R."
+ ]
+ },
+ "apihelp-query+references-description": "Tuorna na rappresentazione 'e date ch' 'e riferimiente ssuòccie a 'e paggene date.",
+ "apihelp-query+references-example-1": "Riferimiente suòccie a <kbd>Albert Einstein</kbd>.",
+ "cite-desc": "Azzecca 'e tag <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> p' 'e citaziune",
+ "cite_error": "Errore dint'a funzione Cite: $1",
+ "cite_error_ref_numeric_key": "Tag <code>&lt;ref&gt;</code> invalido;\n'o nomme nun ò essere surtanto n'intero. Ausate nu titolo descrittivo",
+ "cite_error_ref_no_key": "Ll'eticheta p'arapì <code>&lt;ref&gt;</code> nun è bbona, fosse furmata malamente o puro téne nu nomme ca nun è buono",
+ "cite_error_ref_too_many_keys": "Tag <code>&lt;ref&gt;</code> invalido;\nnomme invalido, p'esembio troppo luongo",
+ "cite_error_ref_no_input": "Codece 'e tag <code>&lt;ref&gt;</code> invalido;\n'e riferimente c' 'o nomme abbacante hann'a tenè nu cuntenuto",
+ "cite_error_references_duplicate_key": "Tag <code>&lt;ref&gt;</code> nun valido; 'o nomme \"$1\" è stato definito cchiù vote cu cuntenute divierze",
+ "cite_error_references_invalid_parameters": "Tag <code>&lt;references&gt;</code> invalide;\nnun se pò mettere nisciuno parametro.\nAusate <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "L'etichette personalizzate p' 'e cullegamiente 'e rezza se so' fernute\nPe' piacere, definite nu poco 'e cchiu dint' 'a mmasciata <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Ll'etichette personalizzate d' 'e cullegamiente p' 'o gruppo \"$1\" se so' fernute.\nPruvate a ne definì 'e cchiù int' 'a mmasciata 'e <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Tag <code>&lt;ref&gt;</code> invalido;\nnisciuno testo era previsto p' 'e riferimiente nummenate <code>$1</code>",
+ "cite_error_included_ref": "A nchiusa <code>&lt;/ref&gt;</code> nun se trova p' 'o tag <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "'O tag <code>&lt;ref&gt;</code> esiste p' 'o gruppo annummenato \"$1\", ma nun currisponne a 'o tag accucchiato <code>&lt;references group=\"$1\"/&gt;</code>, o a nu tag 'e nchiusa <code>&lt;/ref&gt;</code> manco",
+ "cite_error_references_group_mismatch": "'O tag <code>&lt;ref&gt;</code> tag int' 'e <code>&lt;references&gt;</code> tène cunflitte cu l'attribbute d' 'o gruppo \"$1\".",
+ "cite_error_references_missing_group": "'O tag <code>&lt;ref&gt;</code> definito int'a <code>&lt;references&gt;</code> ave n'attribbuto 'e gruppo \"$1\" cosa ca nun se veresse dint' 'o testo 'e primma.",
+ "cite_error_references_missing_key": "'O tag <code>&lt;ref&gt;</code> c' 'o nomme \"$1\" definito int'a <code>&lt;references&gt;</code> nun è ausato dint' 'o testo 'e primma.",
+ "cite_error_references_no_key": "'O tag <code>&lt;ref&gt;</code> definito int'a <code>&lt;references&gt;</code> nun tene n'attribbuto 'e nomme.",
+ "cite_error_empty_references_define": "'O tag <code>&lt;ref&gt;</code> definito int'a <code>&lt;references&gt;</code> c' 'o nomme \"$1\" nun tene cuntenute.",
+ "cite-tracking-category-cite-error": "Paggene ch'errure 'e riferimiento",
+ "cite-tracking-category-cite-error-desc": "Paggene dint'a sta categuria teneno errure int'a l'uso 'e ll'etichette 'e riferimento.",
+ "cite_references_link_accessibility_label": "Zompa ncopp'a",
+ "cite_references_link_many_accessibility_label": "Zompa ncoppa nfin'a:",
+ "cite_section_preview_references": "Anteprimma 'e riferimente.",
+ "cite_warning": "Attenzione dint' 'e note: $1",
+ "cite_warning_sectionpreview_no_text": "'O tag <code>&lt;ref&gt;</code> c' 'o nomme <code>$1</code> nun se pò mmustà n'anteprimma, pecché è definito a fore d' 'a seziona 'e mò o nun definito 'e nisciuna maniera."
+}
diff --git a/www/wiki/extensions/Cite/i18n/nb.json b/www/wiki/extensions/Cite/i18n/nb.json
new file mode 100644
index 00000000..8542b06f
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/nb.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Audun",
+ "Danmichaelo",
+ "Laaknor",
+ "Chameleon222",
+ "Cocu",
+ "Jon Harald Søby"
+ ]
+ },
+ "apihelp-query+references-description": "Returnerer en datarepresentasjon av referanser assosiert med de gitte sidene.",
+ "apihelp-query+references-summary": "Returner en datarepresentasjon av referanser assosiert med de gitte sidene.",
+ "apihelp-query+references-example-1": "Referanser forbundet med <kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "Referanselagring i Cite-utvidelsen er ikke slått på.",
+ "cite-desc": "Legger til <nowiki><ref[ name=id]></nowiki> og <nowiki><references/></nowiki>-tagger for referanser",
+ "cite_error": "Siteringsfeil: $1",
+ "cite_error_ref_numeric_key": "Ugyldig <code>&lt;ref&gt;</code>-kode; navnet kan ikke være et enkelt heltall, bruk en beskrivende tittel",
+ "cite_error_ref_no_key": "Åpningstaggen <code>&lt;ref&gt;</code> er ugyldig eller har et ugyldig navn",
+ "cite_error_ref_too_many_keys": "Ugyldig <code>&lt;ref&gt;</code>-kode; ugyldige navn, f.eks. for mange",
+ "cite_error_ref_no_input": "Ugyldig <code>&lt;ref&gt;</code>-kode; referanser uten navn må ha innhold",
+ "cite_error_references_duplicate_key": "Ugyldig <code>&lt;ref&gt;</code>-tagg; navnet «$1» er definert flere steder med ulikt innhold",
+ "cite_error_references_invalid_parameters": "Ugyldig parameter i <code>&lt;references&gt;</code>-taggen",
+ "cite_error_references_no_backlink_label": "Gikk tom for egendefinerte tilbakelenketekster.\nDefiner flere i beskjeden <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_no_link_label_group": "Gikk tom for egendefinerte lenkemerker for gruppen «$1».\nDefinér fler i <nowiki>[[MediaWiki:$2]]</nowiki>-beskjeden.",
+ "cite_error_references_no_text": "Ugyldig <code>&lt;ref&gt;</code>-tagg; ingen tekst ble oppgitt for referansen ved navn <code>$1</code>",
+ "cite_error_included_ref": "Avsluttende <code>&lt;/ref&gt;</code>-tagg mangler for <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code>-merker finnes for gruppenavnet «$1», men ingen <code>&lt;references group=\"$1\"/&gt;</code>-merking ble funnet, eller det mangler et avsluttende <code>&lt;/ref&gt;</code>-merke.",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code>-tagg i <code>&lt;references&gt;</code> har motstridig attributt «$1».",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code>-tagg definert i <code>&lt;references&gt;</code> har gruppeattributtet «$1» som ikke forekommer i teksten.",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code>-taggen med navnet «$1» definert i <code>&lt;references&gt;</code> brukes ikke i teksten.",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code>-tagg definert i <code>&lt;references&gt;</code> har ikke noe navneattributt.",
+ "cite_error_empty_references_define": "<code>&lt;ref&gt;</code>-taggen i <code>&lt;references&gt;</code> med navnet «$1» har ikke noe innhold.",
+ "cite-tracking-category-cite-error": "Sider med feil i referanser",
+ "cite-tracking-category-cite-error-desc": "Sider i denne kategorien har feil i bruk av referansetagger",
+ "cite_references_link_many_format_backlink_labels": "a b c d e f g h i j k l m n o p q r s t u v w x y z æ ø å aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az aæ aø aå ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz bæ bø bå ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz cæ cø cå da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz dæ dø då ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez eæ eø eå fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz fæ fø få ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz gæ gø gå ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz hæ hø hå ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz iæ iø iå ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz jæ jø jå ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz kæ kø kå la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz læ lø lå ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz mæ mø må na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz næ nø nå oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz oæ oø oå pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz pæ pø på qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz qæ qø qå ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz ræ rø rå sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz sæ sø så ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz tæ tø tå ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz uæ uø uå va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz væ vø vå wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz wæ wø wå xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz xæ xø xå ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz yæ yø yå za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz zæ zø zå æa æb æc æd æe æf æg æh æi æj æk æl æm æn æo æp æq ær æs æt æu æv æw æx æy æz ææ æø æå øa øb øc ød øe øf øg øh øi øj øk øl øm øn øo øp øq ør øs øt øu øv øw øx øy øz øæ øø øå åa åb åc åd åe åf åg åh åi åj åk ål åm ån åo åp åq år ås åt åu åv åw åx åy åz åæ åø åå",
+ "cite_references_link_accessibility_label": "Hopp opp",
+ "cite_references_link_many_accessibility_label": "Hopp opp til:",
+ "cite_section_preview_references": "Forhåndsvisning av referanser",
+ "cite_warning": "Siteringsadvarsel: $1",
+ "cite_warning_sectionpreview_no_text": "<code>&lt;ref&gt;</code>-taggen med navn <code>$1</code> kan ikke forhåndsvises fordi den enten er definert utenfor det åpne avsnittet eller ikke definert i det hele tatt."
+}
diff --git a/www/wiki/extensions/Cite/i18n/nds-nl.json b/www/wiki/extensions/Cite/i18n/nds-nl.json
new file mode 100644
index 00000000..6f2ed60c
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/nds-nl.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Servien"
+ ]
+ },
+ "cite_error": "Siteerfout: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/nds.json b/www/wiki/extensions/Cite/i18n/nds.json
new file mode 100644
index 00000000..db0ea54c
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/nds.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Slomox"
+ ]
+ },
+ "cite-desc": "Föögt <nowiki><ref[ name=id]></nowiki> un <nowiki><references/></nowiki> Tags för Zitaten to",
+ "cite_error": "Zitat-Fehler: $1",
+ "cite_error_ref_numeric_key": "Ungülligen Tag <tt>&lt;ref&gt;</tt>: de Naam dröff keen reine Tall wesen, bruuk en Naam, de de Saak beschrifft.",
+ "cite_error_ref_no_key": "Ungülligen Tag <tt>&lt;ref&gt;</tt>: „ref“ ahn Inholt mutt en Naam hebben.",
+ "cite_error_ref_too_many_keys": "Ungülligen Tag <tt>&lt;ref&gt;</tt>: ungüllige Naams, to’n Bispeel to veel.",
+ "cite_error_ref_no_input": "Ungülligen Tag <tt>&lt;ref&gt;</tt>: „ref“ ahn Naam mutt en Inholt hebben.",
+ "cite_error_references_invalid_parameters": "Ungülligen Tag <code>&lt;references&gt;</code>: Parameters sünd nich verlöövt, bruuk <tt>&lt;references /&gt;</tt>",
+ "cite_error_references_no_backlink_label": "De verföögboren Tekens för de Lenken op Referenzen sünd all. Dat lett sik repareren, wenn in de Systemnaricht <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> mehr Tekens angeven warrt.",
+ "cite_error_references_no_text": "Ungülligen Tag <tt>&lt;ref&gt;</tt>; is keen Text för Refs mit den Naam <tt>$1</tt> angeven.",
+ "cite_error_included_ref": "Dor fehlt en tosluten <code>&lt;/ref&gt;</code>",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code>-Tags för de Grupp „$1“ gifft dat, is aver keen <code>&lt;references group=„$1“/&gt;</code>-Tag funnen worrn"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ne.json b/www/wiki/extensions/Cite/i18n/ne.json
new file mode 100644
index 00000000..7b6f1f6d
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ne.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "बिप्लब आनन्द"
+ ]
+ },
+ "cite_error": "उद्दरण त्रुटी: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/nl.json b/www/wiki/extensions/Cite/i18n/nl.json
new file mode 100644
index 00000000..c6818942
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/nl.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Flightmare",
+ "Niels",
+ "Romaine",
+ "Siebrand",
+ "Dinosaur918",
+ "Mar(c)"
+ ]
+ },
+ "cite-desc": "Voegt <nowiki><ref[ name=id]></nowiki>- en <nowiki><references/></nowiki>-labels toe voor citaten",
+ "cite_error": "Citefout: $1",
+ "cite_error_ref_numeric_key": "Onjuist label <code>&lt;ref&gt;</code>;\nde naam kan geen eenvoudige integer zijn.\nGebruik een beschrijvende titel",
+ "cite_error_ref_no_key": "Het openingslabel <code>&lt;ref&gt;</code> is onjuist opgemaakt of heeft een verkeerde naam.",
+ "cite_error_ref_too_many_keys": "Onjuist label <code>&lt;ref&gt;</code>;\nonjuiste namen, bijvoorbeeld te veel",
+ "cite_error_ref_no_input": "Onjuist label <code>&lt;ref&gt;</code>;\nrefs zonder naam moeten inhoud hebben",
+ "cite_error_references_duplicate_key": "Ongeldig label <code>&lt;ref&gt;</code>; de naam \"$1\" wordt meerdere keren met andere inhoud gedefinieerd.",
+ "cite_error_references_invalid_parameters": "Onjuiste <code>&lt;references&gt;</code>-tag",
+ "cite_error_references_no_backlink_label": "Het aantal beschikbare backlinklabels is opgebruikt.\nGeef meer labels op in het bericht <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Het aantal aangepaste koppelinglabels voor de group \"$1\" is uitgeput.\nU kunt er meer instellen in het systeembericht <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Onjuist label <code>&lt;ref&gt;</code>;\ner is geen tekst opgegeven voor referenties met de naam <code>$1</code>",
+ "cite_error_included_ref": "Na het label <code>&lt;ref&gt;</code> ontbreekt het afsluitende label <code>&lt;/ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Er bestaat een label <code>&lt;ref&gt;</code> voor de groep \"$1\", maar er is geen bijbehorend label <code>&lt;references group=\"$1\"/&gt;</code> aangetroffen of een afsluitende <code>&lt;/ref&gt;</code> is niet aanwezig.",
+ "cite_error_references_group_mismatch": "De tag <code>&lt;ref&gt;</code> in <code>&lt;references&gt;</code> conflicteert met groepseigenschap \"$1\".",
+ "cite_error_references_missing_group": "Het label <code>&lt;ref&gt;</code> die is gedefinieerd in <code>&lt;references&gt;</code> heeft de groepseigenschap \"$1\" niet niet eerder in te tekst voorkomt.",
+ "cite_error_references_missing_key": "Het label <code>&lt;ref&gt;</code> met de naam \"$1\" gedefinieerd in <code>&lt;references&gt;</code> wordt niet eerder in de tekst gebruikt.",
+ "cite_error_references_no_key": "Het label <code>&lt;ref&gt;</code> die is gedefinieerd in <code>&lt;references&gt;</code> heeft geen eigenschapsnaam.",
+ "cite_error_empty_references_define": "Het label <code>&lt;ref&gt;</code> die is gedefinieerd in <code>&lt;references&gt;</code> met de naam \"$1\" heeft geen inhoud.",
+ "cite-tracking-category-cite-error": "Pagina's met referentiefouten",
+ "cite_references_link_accessibility_label": "Omhoog",
+ "cite_references_link_many_accessibility_label": "Omhoog naar:",
+ "cite_section_preview_references": "Voorbeeldweergave van de referenties",
+ "cite_warning": "Referentiewaarschuwing: $1",
+ "cite_warning_sectionpreview_no_text": "Van <code>&lt;ref&gt;</code> met de naam <code>$1</code> kan geen voorvertoning gegeven worden, daar deze niet in de huidige sectie of in zijn geheel niet gedefinieerd wordt."
+}
diff --git a/www/wiki/extensions/Cite/i18n/nn.json b/www/wiki/extensions/Cite/i18n/nn.json
new file mode 100644
index 00000000..7e70883a
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/nn.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Frokor",
+ "Harald Khan",
+ "Njardarlogar"
+ ]
+ },
+ "cite-desc": "Legg til <nowiki><ref[ name=id]></nowiki> og <nowiki><references/></nowiki>-merke for referansar",
+ "cite_error": "Referansefeil: $1",
+ "cite_error_ref_numeric_key": "Ugyldig <code>&lt;ref&gt;</code>-kode; namnet kan ikkje vere eit enkelt heiltal, bruk ein skildrande tittel",
+ "cite_error_ref_no_key": "Ugyldig <code>&lt;ref&gt;</code>-kode; referansar utan innhald må innehalde namn",
+ "cite_error_ref_too_many_keys": "Ugyldig <code>&lt;ref&gt;</code>-kode; ugyldige namn, t.d. for mange",
+ "cite_error_ref_no_input": "Ugyldig <code>&lt;ref&gt;</code>-kode; referansar uten namn må ha innhald",
+ "cite_error_references_duplicate_key": "Ugyldig <code>&lt;ref&gt;</code>-merke; namnet «$1» er definert flere gonger med ulikt innhald",
+ "cite_error_references_invalid_parameters": "Ugyldig <code>&lt;references&gt;</code>-kode; ingen parametrar er tillat, bruk <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Gjekk tom for eigendefinerte tilbakelenketekstar.\nDefiner fleire i meldinga <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_references_no_text": "Ugyldig <code>&lt;ref&gt;</code>-merke; ingen tekst vart gjeven for referansen med namnet <code>$1</code>",
+ "cite_error_included_ref": "Avsluttande <code>&lt;/ref&gt;</code>-tagg manglar for <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code>-merke finst for gruppenamnet «$1», men inkje samsvarande <code>&lt;references group=\"$1\"/&gt;</code>-merke vart funne",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code>-merke definert i <code>&lt;references&gt;</code> har gruppenamnet «$1» som ikkje vert nytta i teksten føre.",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code>-merke med namnet «$1» definert i <code>&lt;references&gt;</code> vert ikkje nytta i teksten føre.",
+ "cite_error_references_no_key": "eit <code>&lt;ref&gt;</code>-merke definert i <code>&lt;references&gt;</code> er ikkje gjeve noko namn.",
+ "cite_section_preview_references": "Førehandsvising av kjelder"
+}
diff --git a/www/wiki/extensions/Cite/i18n/nys.json b/www/wiki/extensions/Cite/i18n/nys.json
new file mode 100644
index 00000000..b60cd118
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/nys.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gnangarra"
+ ]
+ },
+ "cite_error": "nidja warra $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/oc.json b/www/wiki/extensions/Cite/i18n/oc.json
new file mode 100644
index 00000000..6b159c90
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/oc.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cedric31"
+ ]
+ },
+ "cite-desc": "Apond las balisas <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki>, per las citacions.",
+ "cite_error": "Error de citacion : $1",
+ "cite_error_ref_numeric_key": "Ampèl invalid ; clau non-integrala esperada",
+ "cite_error_ref_no_key": "La balisa dobrenta <code>&lt;ref&gt;</code> es malformada o a un marrit nom.",
+ "cite_error_ref_too_many_keys": "Ampèl invalid ; claus invalidas, per exemple, tròp de claus especificadas o clau erronèa",
+ "cite_error_ref_no_input": "Ampèl invalid ; cap de dintrada pas especificada",
+ "cite_error_references_invalid_parameters": "Arguments invalids ; argument esperat",
+ "cite_error_references_no_backlink_label": "Execucion en defòra de las etiquetas personalizadas, definissetz mai dins lo messatge <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_references_no_text": "Balisa <code>&lt;ref&gt;</code> incorrècta ;\n\npas de tèxte per las referéncias nomenadas <code>$1</code>.",
+ "cite_error_included_ref": "Clausura <code>&lt;/ref&gt;</code> omesa per la balisa <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "De balisas <code>&lt;ref&gt;</code> existisson per un grop nomenat « $1 », mas cap de balisa <code>&lt;references group=\"$1\"/&gt;</code> correspondenta es pas estada trobada, o alara una valisa tampanta <code>&lt;/ref&gt;</code> manca.",
+ "cite_error_references_group_mismatch": "La balisa <code>&lt;ref&gt;</code> dins <code>&lt;references&gt;</code> a l'atribut de grop « $1 » que dintra en conflicte amb lo de <code>&lt;references&gt;</code>.",
+ "cite_error_references_missing_group": "La balisa <code>&lt;ref&gt;</code> definida dins <code>&lt;references&gt;</code> a un gropat atribuit « $1 » que figura pas dins lo tèxte precedent.",
+ "cite_error_references_missing_key": "La balisa <code>&lt;ref&gt;</code> amb lo nom « $1 » definida dins <code>&lt;references&gt;</code> es pas utilizada dins lo tèxte precedent.",
+ "cite_error_references_no_key": "La balisa <code>&lt;ref&gt;</code> definida dins <code>&lt;references&gt;</code> a pas de nom d’atribut.",
+ "cite_error_empty_references_define": "La balisa <code>&lt;ref&gt;</code> definida dins <code>&lt;references&gt;</code> amb lo nom « $1 » a pas de contengut.",
+ "cite-tracking-category-cite-error": "Paginas amb d'errors de referéncia",
+ "cite_references_link_accessibility_label": "Anar",
+ "cite_references_link_many_accessibility_label": "Anar a :"
+}
diff --git a/www/wiki/extensions/Cite/i18n/olo.json b/www/wiki/extensions/Cite/i18n/olo.json
new file mode 100644
index 00000000..73941b41
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/olo.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mashoi7"
+ ]
+ },
+ "cite_error": "Citaciihaireh: $1",
+ "cite_references_link_accessibility_label": "Siirry yläh",
+ "cite_references_link_many_accessibility_label": "Siirry yläh kohtah:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/om.json b/www/wiki/extensions/Cite/i18n/om.json
new file mode 100644
index 00000000..60c003e3
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/om.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Tumsaa"
+ ]
+ },
+ "cite_section_preview_references": "Durargii wabiiwwanii",
+ "cite_warning": "Akeekkachiisa waraabbii:$1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/or.json b/www/wiki/extensions/Cite/i18n/or.json
new file mode 100644
index 00000000..607d21ec
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/or.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Psubhashish"
+ ]
+ },
+ "cite-desc": "ଆଧାର ନିମନ୍ତେ <nowiki><ref[ name=id]></nowiki> ଓ <nowiki><references/></nowiki> ଟ୍ୟାଗସବୁ ଏଠାରେ ଯୋଡ଼ିଥାଏ ।",
+ "cite_error": "ଆଧାର ଭୁଲ: $1",
+ "cite_error_ref_numeric_key": "ଅବୈଧ <code>&lt;ref&gt;</code> ଟ୍ୟାଗ;\nନାମଟି କେବେ ହେଲେ ଏକ ପୂର୍ଣ୍ଣସଂଖ୍ୟା ହୋଇପାରିବ ନାହିଁ । ଏକ ବର୍ଣ୍ଣନାମୂଳକ ନାମ ଦିଅନ୍ତୁ ।",
+ "cite_error_ref_no_key": "ଅବୈଧ <code>&lt;ref&gt;</code> ଟ୍ୟାଗ;\nକୌଣସି ମଧ୍ୟ ବିଷୟବସ୍ତୁ ନଥିବା ଆଧାରର ଏକ ନାମ ଥିବା ଲୋଡ଼ା",
+ "cite_error_ref_too_many_keys": "ଅବୈଧ <code>&lt;ref&gt;</code> ଟ୍ୟାଗ;\nଭୁଲ ନାମ (ଯଥା: ଖୁବ ଅଧିକ)",
+ "cite_error_ref_no_input": "ଅବୈଧ <code>&lt;ref&gt;</code> ଟ୍ୟାଗ;\nକୌଣସି ବି ନାମ ନଥିବା ଆଧାରର କିଛି ବିଷୟବସ୍ତୁ ଥିବା ଲୋଡ଼ା",
+ "cite_error_references_invalid_parameters": "ଅଚଳ <code>&lt;references&gt;</code> ଟ୍ୟାଗ;\nକୌଣସିଟି ପାରାମିଟର ଅନୁମୋଦିତ ନୁହେଁ ।\n<code>&lt;references /&gt;</code> ବ୍ୟବହାର କରନ୍ତୁ ।",
+ "cite_error_references_no_backlink_label": "ନିଜ ପସନ୍ଦର ବ୍ୟାକଲିଙ୍କ ଚିହ୍ନ ସବୁ ସରିଗଲା ।\n<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>ସୂଚନାରେ ଅଧିକ ଦେଖନ୍ତୁ ।",
+ "cite_error_no_link_label_group": "\"$1\" ଗୋଠ ଲାଗି ନିଜ ପସନ୍ଦର ବ୍ୟାକଲିଙ୍କ ଚିହ୍ନ ସବୁ ସରିଗଲା ।\n<nowiki>[[MediaWiki:$2]]</nowiki>ସୂଚନାରେ ଅଧିକ ଚିହ୍ନିତ କରନ୍ତୁ ।",
+ "cite_error_references_no_text": "ଅଚଳ <code>&lt;ref&gt;</code> ଚିହ୍ନ;\n<code>$1</code> ନାମରେ ଥିବା ଆଧାର ଭିତରେ କିଛି ଲେଖା ନାହିଁ ।",
+ "cite_error_included_ref": "<code>&lt;ref&gt;</code> ଟ୍ୟାଗ ପାଇଁ ବନ୍ଦକରିବା <code>&lt;/ref&gt;</code> ନାହିଁ",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code> ଟ୍ୟାଗସବୁ କେବଳ \"$1\" ନାମକ ଦଳ ପାଇଁ ରହିଥିଲେ ହେଁ କୌଣସି ସମ୍ବନ୍ଧିତ <code>&lt;references group=\"$1\"/&gt;</code> ଟ୍ୟାଗ ମିଳିଲା ନାହିଁ କିମ୍ବା <code>&lt;/ref&gt;</code> ବନ୍ଦ କରିବା ଟ୍ୟାଗଟି ନାହିଁ ।",
+ "cite_error_references_group_mismatch": "<code>&lt;references&gt ରେ <code>&lt;ref&gt;</code> ଚିହ୍ନ;</code> ର ଅସୁବିଧାଜନକ ଗୋଠ ବିଶେଷତା \"$1\" ।",
+ "cite_error_references_missing_group": "<code>&lt;references&gt;</code>ରେ ଦିଆଯାଇଥିବା <code>&lt;ref&gt;</code> ଚିହ୍ନରେ \"$1\" ଗୋଠ ପାଇଁ ଚିହ୍ନ ଅଛି ଯାହାକି ଦରକାରୀ ଲେଖାରେ ଆସୁନାହିଁ ।",
+ "cite_error_references_missing_key": "<code>&lt;references&gt;</code>ରେ ଦିଆଯାଇଥିବା \"$1\" ନାମ ସହ ଥିବା <code>&lt;ref&gt;</code> ଚିହ୍ନ ଦରକାରୀ ଲେଖାରେ ବ୍ୟବହାର ହୋଇନାହିଁ ।",
+ "cite_error_references_no_key": "<code>&lt;references&gt;</code>ରେ ଦିଆଯାଇଥିବା <code>&lt;ref&gt;</code> ଚିହ୍ନରେ କିଛି ଆଟ୍ରିବୁଟ ନାହିଁ ।",
+ "cite_error_empty_references_define": "<code>&lt;references&gt;</code>ରେ ଦିଆଯାଇଥିବା \"$1\" ନାମ ସହ ଥିବା <code>&lt;ref&gt;</code> ଚିହ୍ନରେ କିଛି ଲେଖା ନାହିଁ ।",
+ "cite_references_link_accessibility_label": "ଉପରକୁ ଯାଆନ୍ତୁ",
+ "cite_references_link_many_accessibility_label": "ଏହି ଯାଏ ଉପରକୁ ଯାଆନ୍ତୁ:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/pa.json b/www/wiki/extensions/Cite/i18n/pa.json
new file mode 100644
index 00000000..b6027843
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/pa.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Babanwalia",
+ "Satdeep gill"
+ ]
+ },
+ "cite_error": "ਹਵਾਲੇ ਵਿੱਚ ਗਲਤੀ:$1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/pag.json b/www/wiki/extensions/Cite/i18n/pag.json
new file mode 100644
index 00000000..15d9f2e7
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/pag.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "cite_error": "Bitlaen so error $1; $2"
+}
diff --git a/www/wiki/extensions/Cite/i18n/pfl.json b/www/wiki/extensions/Cite/i18n/pfl.json
new file mode 100644
index 00000000..713f484e
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/pfl.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Manuae"
+ ]
+ },
+ "cite_error": "Refarensfehla: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/pl.json b/www/wiki/extensions/Cite/i18n/pl.json
new file mode 100644
index 00000000..70f95925
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/pl.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Derbeth",
+ "Holek",
+ "Leinad",
+ "Sp5uhe",
+ "Woytecr",
+ "Peter Bowman",
+ "Chrumps"
+ ]
+ },
+ "apihelp-query+references-description": "Zwraca reprezentację danych przypisów związanych z tą stroną.",
+ "apihelp-query+references-example-1": "Przypisy powiązane z <kbd>Albert Einstein</kbd>.",
+ "cite-desc": "Dodaje znaczniki <nowiki><ref[ name=id]></nowiki> i <nowiki><references/></nowiki> ułatwiające podawanie źródeł cytatów",
+ "cite_error": "Błąd rozszerzenia ''cite'': $1",
+ "cite_error_ref_numeric_key": "Nieprawidłowy znacznik <code>&lt;ref&gt;</code>. Nazwa nie może być liczbą, użyj nazwy opisowej.",
+ "cite_error_ref_no_key": "Otwierający znacznik <code>&lt;ref&gt;</code> jest nieprawidłowy lub ma błędną nazwę.",
+ "cite_error_ref_too_many_keys": "Nieprawidłowe nazwy parametrów elementu <code>&lt;ref&gt;</code>.",
+ "cite_error_ref_no_input": "Błąd w składni elementu <code>&lt;ref&gt;</code>. Przypisy bez podanej nazwy muszą posiadać treść",
+ "cite_error_references_duplicate_key": "Nieprawidłowy znacznik <code>&lt;ref&gt;</code>; nazwę „$1” zdefiniowano więcej niż raz z różną zawartością",
+ "cite_error_references_invalid_parameters": "Nieprawidłowy parametr w znaczniku <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Zabrakło etykiet do przypisów.\nZadeklaruj więcej w komunikacie <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Zabrakło niestandardowych etykiet linków dla grupy „$1“.\nZdefiniuj ich większą liczbę w komunikacie <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Błąd w składni elementu <code>&lt;ref&gt;</code>. Brak tekstu w przypisie o nazwie <code>$1</code>",
+ "cite_error_included_ref": "Brak znacznika zamykającego <code>&lt;/ref&gt;</code> po otwartym znaczniku <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Istnieje znacznik <code>&lt;ref&gt;</code> dla grupy o nazwie „$1”, ale nie odnaleziono odpowiedniego znacznika <code>&lt;references group=\"$1\"/&gt;</code> lub brakuje znacznika zamykającego <code>&lt;/ref&gt;</code>",
+ "cite_error_references_group_mismatch": "Znacznik <code>&lt;ref&gt;</code> w <code>&lt;references&gt;</code> nie może mieć atrybutu grupy „$1”.",
+ "cite_error_references_missing_group": "Znacznik <code>&lt;ref&gt;</code> zdefiniowany w <code>&lt;references&gt;</code> ma atrybut grupowania „$1”, który nie występuje wcześniej w treści.",
+ "cite_error_references_missing_key": "Znacznik <code>&lt;ref&gt;</code> o nazwie „$1”, zdefiniowany w <code>&lt;references&gt;</code>, nie był użyty wcześniej w treści.",
+ "cite_error_references_no_key": "Znacznik <code>&lt;ref&gt;</code> zdefiniowany w <code>&lt;references&gt;</code> nie ma atrybutu <code>name</code>.",
+ "cite_error_empty_references_define": "Znacznik <code>&lt;ref&gt;</code> zdefiniowany w <code>&lt;references&gt;</code> o nazwie „$1” nie ma treści.",
+ "cite-tracking-category-cite-error": "Strony z zepsutymi przypisami",
+ "cite-tracking-category-cite-error-desc": "Strony w tej kategorii zawierają błędy w użyciu znaczników przypisów.",
+ "cite_references_link_accessibility_label": "Skocz do góry",
+ "cite_references_link_many_accessibility_label": "Skocz do:",
+ "cite_section_preview_references": "Podgląd przypisów",
+ "cite_warning": "Ostrzeżenie Cite: $1",
+ "cite_warning_sectionpreview_no_text": "Znacznik <code>&lt;ref&gt;</code> o nazwie <code>$1</code> nie może być wyświetlony na tym podglądzie, ponieważ jest zdefiniowany poza edytowaną sekcją lub wcale."
+}
diff --git a/www/wiki/extensions/Cite/i18n/pms.json b/www/wiki/extensions/Cite/i18n/pms.json
new file mode 100644
index 00000000..a28f9368
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/pms.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Borichèt",
+ "Dragonòt"
+ ]
+ },
+ "cite-desc": "A gionta le tichëtte <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki>, për sitassion",
+ "cite_error": "Eror ëd sitassion: $1",
+ "cite_error_ref_numeric_key": "Tichëtta <code>&lt;ref&gt;</code> pa bon-a;\nël nòm a peul pa esse n'antregh sempi. Deuvra un tìtol descritiv.",
+ "cite_error_ref_no_key": "Tichëtta <code>&lt;ref&gt;</code> pa bon-a;\nj'arferiment sensa contnù a devo avèj un nòm",
+ "cite_error_ref_too_many_keys": "Tichëtta <code>&lt;ref&gt;</code> pa bon-a;\nnòm pa bon, për esempi tròpi",
+ "cite_error_ref_no_input": "Tichëtta <code>&lt;ref&gt;</code> pa bon-a;\nj'arferiment sensa nòm a devo avèj un contnù",
+ "cite_error_references_invalid_parameters": "Tichëtta <code>&lt;references&gt;</code> pa bon-a;\npa gnun paràmetr përmëttù.\nCh'a deuvra <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Etichëtte ëd backlink përsonalisà esaurìe.\nDefiniss-ne ëd pì ant ël messagi <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Surtì fòra dle tichëtte dij colegament utent për la partìa \"$1\".\nDefinissne ëd pi ant ël mëssagi <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Tichëtta <code>&lt;ref&gt;</code> pa bon-a;\npa gnun test a l'é stàit dàit për l'arferiment ciamà <code>$1</code>",
+ "cite_error_included_ref": "Saradura <code>&lt;/ref&gt;</code> mancanta për la tichëtta <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Dle tichëtte <code>&lt;ref&gt;</code> a esisto për na partìa ciamà «$1», ma gnun-a tichëtta corëspondenta <code>&lt;references group=\"$1\"/&gt;</code> a l'é stàita trovà opura a-i manca un delimitator final <code>&lt;/ref&gt;</code>",
+ "cite_error_references_group_mismatch": "La tichëtta <code>&lt;ref&gt;</code> an <code>&lt;references&gt;</code> a l'ha n'atribut ëd partìa \"$1\" an conflit.",
+ "cite_error_references_missing_group": "La tichëtta <code>&lt;ref&gt;</code> definìa an <code>&lt;references&gt;</code> a l'ha n'atribut ëd partìa \"$1\" che a l'era pa ant ël test prima.",
+ "cite_error_references_missing_key": "La tichëtta <code>&lt;ref&gt;</code> con nòm \"$1\" definìa an <code>&lt;references&gt;</code> a l'é pa dovrà ant ël test prima.",
+ "cite_error_references_no_key": "La tichëtta <code>&lt;ref&gt;</code> definìa an <code>&lt;references&gt;</code> a l'ha pa gnun atribut ëd nòm.",
+ "cite_error_empty_references_define": "La tichëtta <code>&lt;ref&gt;</code> definìa an <code>&lt;references&gt;</code> con nòm \"$1\" a l'ha pa gnun contnù.",
+ "cite_references_link_accessibility_label": "Andé",
+ "cite_references_link_many_accessibility_label": "Sauté a:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/pnb.json b/www/wiki/extensions/Cite/i18n/pnb.json
new file mode 100644
index 00000000..c8a2f0e1
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/pnb.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Khalid Mahmood"
+ ]
+ },
+ "cite-desc": "جوڑو <nowiki><ref[ name=id]></nowiki> تے <nowiki><references/></nowiki> ٹیگ اتے پتے لئی۔",
+ "cite_error": "سائیٹ غلطی:$1",
+ "cite_error_ref_numeric_key": "ناں منیا جان والا <code>&lt;ref&gt;</code> ٹیگ؛\nناں اک سادہ انٹیجر نئیں ہوسکدا۔ کوئی ہور دسن والا سرناواں دسو۔",
+ "cite_error_ref_no_key": "ناں منیا جان والا <code>&lt;ref&gt;</code> ٹیگ؛\nاتے پتے جیدے چ کوئی شے ناں ہووے لازمی ناں ہووے۔",
+ "cite_error_ref_too_many_keys": "ناں منیا جان والا <code>&lt;ref&gt;</code> ٹیگ؛\nناں منے جان والے ناں",
+ "cite_error_ref_no_input": "ناں منیا جان والا <code>&lt;ref&gt;</code> ٹیگ؛\nاتے پتے جیدے چ کوئی شے ناں ہووے لازمی ناں ہووے۔",
+ "cite_error_references_invalid_parameters": "ناں منیا جان والا <code>&lt;references&gt;</code> ٹیگ؛\nکسے پیرامیٹر دی اجازت نئیں۔\n<code>&lt;references /&gt;</code> ورتو",
+ "cite_error_references_no_backlink_label": "کسٹم پچھلے جزڑ نئیں رۓ۔\nہور دسو <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> سنیعے چ۔",
+ "cite_error_no_link_label_group": "\"$1\" ٹولی لئی کسٹم لیبل جوڑ مک گۓ۔\nہور دسو <nowiki>[[MediaWiki:$2]]</nowiki> سنیعے چ۔",
+ "cite_error_references_no_text": "ناں منیا جان والا <code>&lt;ref&gt;</code> ٹیگ\nکوئی لکھت نئیں دتی گئی اتے پتے <code>$1</code> لئی۔",
+ "cite_error_included_ref": "بند کردا &lt;/ref&gt ؛ &lt;ref&gt دا کعاٹا ٹیک",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code> ٹیگ اک ٹولی جیدا ناں \"$1\" اے ہیگے نیں، پر کوئی <code>&lt;references group=\"$1\"/&gt;</code> ٹیگ ناں لبیا۔",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code> ٹیگ ان <code>&lt;references&gt;</code> دے رپھڑی اٹریبیوٹ \"$1\"۔",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code> ٹیگ دسیا گیا <code>&lt;references&gt;</code> دے ٹولی اٹریبیوٹ \"$1\" جیہڑے پہلی لکھت چ ناں دسے۔",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code> ٹیگ ناں نال \"$1\" <code>&lt;references&gt;</code> چ دسیا گیا پہلی کسے لکھت چ نئیں ورتیا گیا۔",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code> ٹیگ دسیا گیا <code>&lt;references&gt;</code> چ دا کوئی ناں اٹریبیوٹ نئیں۔",
+ "cite_error_empty_references_define": "<code>&lt;ref&gt;</code> ٹیگ دسیا گیا <code>&lt;references&gt;</code> چ \"$1\" ناں نال، ایدے چ کج نئیں۔"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ps.json b/www/wiki/extensions/Cite/i18n/ps.json
new file mode 100644
index 00000000..4b3cb919
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ps.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ahmed-Najib-Biabani-Ibrahimkhel",
+ "Baloch Khan"
+ ]
+ },
+ "cite_error": "د اخځ ستونزه: $1",
+ "cite-tracking-category-cite-error": "مخونه د غبرګونيزي تيروتنې سره",
+ "cite_section_preview_references": "د غبرګونونو وړاندېز"
+}
diff --git a/www/wiki/extensions/Cite/i18n/pt-br.json b/www/wiki/extensions/Cite/i18n/pt-br.json
new file mode 100644
index 00000000..adf2275c
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/pt-br.json
@@ -0,0 +1,50 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cainamarques",
+ "Eduardo.mps",
+ "Giro720",
+ "555",
+ "Felipe L. Ewald"
+ ]
+ },
+ "apihelp-query+references-description": "Retornar uma representação de dados de referências associadas às páginas fornecidas.",
+ "apihelp-query+references-summary": "Retornar uma representação de dados de referências associadas às páginas fornecidas.",
+ "apihelp-query+references-example-1": "Referências associadas a <kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "O armazenamento de referência da extensão Cite não está habilitado.",
+ "cite-desc": "Adiciona marcas <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> para citações",
+ "cite_error": "Erro de citação: $1",
+ "cite_error_ref_numeric_key": "Marca <code>&lt;ref&gt;</code> inválida; \no nome não pode ser um número. Utilize um título descritivo",
+ "cite_error_ref_no_key": "A tag de abertura <code>&lt;ref&gt;</code> está mal formada ou tem um nome ruim",
+ "cite_error_ref_too_many_keys": "Marca <code>&lt;ref&gt;</code> inválida; \nnomes inválidos, por exemplo, muito extenso",
+ "cite_error_ref_no_input": "Marca <code>&lt;ref&gt;</code> inválida; \nrefs sem nome devem possuir conteúdo",
+ "cite_error_references_duplicate_key": "Etiqueta inválida <code>&lt;ref&gt;</code>; Nome \"$1\" definido várias vezes com conteúdo diferente",
+ "cite_error_references_invalid_parameters": "Parâmetro inválido na marca <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Etiquetas de backlink esgotadas. \nDefina mais na mensagem <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_no_link_label_group": "Etiquetas personalizadas para links, no grupo \"$1\", esgotadas.\nDefina mais na mensagem <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Marca <code>&lt;ref&gt;</code> inválida; \nnão foi fornecido texto para as refs chamadas <code>$1</code>",
+ "cite_error_included_ref": "<code>&lt;/ref&gt;</code> de fechamento ausente para a marca <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Existem marcas <code>&lt;ref&gt;</code> para um grupo chamado \"$1\", mas nenhuma marca <code>&lt;references group=\"$1\"/&gt;</code> correspondente foi encontrada ou uma marca de fechamento <code>&lt;/ref&gt;</code> está faltando",
+ "cite_error_references_group_mismatch": "marca <code>&lt;ref&gt;</code> em <code>&lt;references&gt;</code> está com o atributo de grupo \"$1\" conflitante.",
+ "cite_error_references_missing_group": "marca <code>&lt;ref&gt;</code> definida em <code>&lt;references&gt;</code> está com atributo de grupo \"$1\" que não aparece no texto anterior.",
+ "cite_error_references_missing_key": "marca <code>&lt;ref&gt;</code> com nome \"$1\", definida em <code>&lt;references&gt;</code>, não foi utilizada no texto anterior.",
+ "cite_error_references_no_key": "marca <code>&lt;ref&gt;</code>, definida em <code>&lt;references&gt;</code>, não tem atributo de nome.",
+ "cite_error_empty_references_define": "marca <code>&lt;ref&gt;</code>, definida em <code>&lt;references&gt;</code>, com nome \"$1\", não tem nenhum conteúdo.",
+ "cite-tracking-category-cite-error": "Páginas com erros de referência",
+ "cite-tracking-category-cite-error-desc": "As páginas nesta categoria têm erros no uso de tags de referência.",
+ "cite_reference_link_key_with_num": "$1_$2",
+ "cite_reference_link_prefix": "cite_ref-",
+ "cite_references_link_prefix": "cite_note-",
+ "cite_reference_link": "<sup id=\"$1\" class=\"reference\">[[#$2|&#91;$3&#93;]]</sup>",
+ "cite_references_link_one": "<li id=\"$1\"><span class=\"mw-cite-backlink\">[[#$2|↑]]</span> $3</li>",
+ "cite_references_link_many": "<li id=\"$1\"><span class=\"mw-cite-backlink\">↑ $2</span> $3</li>",
+ "cite_references_link_many_format": "<sup>[[#$1|$2]]</sup>",
+ "cite_references_link_many_format_backlink_labels": "a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz",
+ "cite_references_link_many_sep": "&#32;",
+ "cite_references_link_many_and": "&#32;",
+ "cite_references_link_accessibility_label": "Ir para cima",
+ "cite_references_link_many_accessibility_label": "Ir para:",
+ "cite_section_preview_references": "Pré-visualização das referências",
+ "cite_warning": "Citar aviso: $1",
+ "cite_warning_sectionpreview_no_text": "A tag <code>&lt;ref&gt;</code> com o nome <code>$1</code> não pode ser visualizada porque está definida fora da seção atual ou não definida."
+}
diff --git a/www/wiki/extensions/Cite/i18n/pt.json b/www/wiki/extensions/Cite/i18n/pt.json
new file mode 100644
index 00000000..4ca895ea
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/pt.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Crazymadlover",
+ "Giro720",
+ "Hamilton Abreu",
+ "Malafaya",
+ "Opraco",
+ "Waldir",
+ "555",
+ "Vitorvicentevalente",
+ "Fúlvio"
+ ]
+ },
+ "apihelp-query+references-description": "Devolver uma representação de dados, das referências associadas com as páginas especificadas.",
+ "apihelp-query+references-summary": "Devolver uma representação de dados, das referências associadas com as páginas especificadas.",
+ "apihelp-query+references-example-1": "Referências associadas com <kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "O armazenamento de referências da extensão de citação não está ativado.",
+ "cite-desc": "Adiciona elementos <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> para uso em citações",
+ "cite_error": "Erro de citação: $1",
+ "cite_error_ref_numeric_key": "Elemento <code>&lt;ref&gt;</code> inválido; o nome não pode ser um número. Use um nome descritivo",
+ "cite_error_ref_no_key": "Elemento de abertura <code>&lt;ref&gt;</code> está mal formado ou tem um nome inválido",
+ "cite_error_ref_too_many_keys": "Elemento <code>&lt;ref&gt;</code> inválido; nomes inválidos (por exemplo, são demasiados)",
+ "cite_error_ref_no_input": "Elemento <code>&lt;ref&gt;</code> inválido; refs sem parâmetro de nome devem ter conteúdo associado",
+ "cite_error_references_duplicate_key": "Código <code>&lt;ref&gt;</code> inválido; o nome \"$1\" é definido mais de uma vez com conteúdos diferentes",
+ "cite_error_references_invalid_parameters": "Parâmetro inválido na etiqueta <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Esgotamento das legendas personalizadas para backlinks.\nDefina mais na mensagem <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Esgotamento das legendas personalizadas para hiperligações, no grupo \"$1\".\nDefina mais na mensagem <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Código <code>&lt;ref&gt;</code> inválido; não foi fornecido texto para as refs de nome <code>$1</code>",
+ "cite_error_included_ref": "Elemento de fecho <code>&lt;/ref&gt;</code> em falta para o elemento <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Existem elementos <code>&lt;ref&gt;</code> para um grupo chamado \"$1\", mas não foi encontrado nenhum <code>&lt;references group=\"$1\"/&gt;</code> correspondente (ou falta um elemento de fecho <code>&lt;/ref&gt;</code>)",
+ "cite_error_references_group_mismatch": "Elemento <code>&lt;ref&gt;</code> em <code>&lt;references&gt;</code> tem o atributo de grupo \"$1\", que está em conflito com o de <code>&lt;references&gt;</code>.",
+ "cite_error_references_missing_group": "Elemento <code>&lt;ref&gt;</code> definido em <code>&lt;references&gt;</code> tem o atributo de grupo \"$1\", que não aparece no texto anterior.",
+ "cite_error_references_missing_key": "Elemento <code>&lt;ref&gt;</code> com nome \"$1\" definido em <code>&lt;references&gt;</code> não é utilizado no texto da página.",
+ "cite_error_references_no_key": "Elemento <code>&lt;ref&gt;</code> definido em <code>&lt;references&gt;</code> não tem um atributo de nome.",
+ "cite_error_empty_references_define": "Elemento <code>&lt;ref&gt;</code> definido em <code>&lt;references&gt;</code> com o nome \"$1\" não tem conteúdo.",
+ "cite-tracking-category-cite-error": "Páginas com erros em referências",
+ "cite-tracking-category-cite-error-desc": "As páginas nesta categoria contêm erros no uso dos elementos de referências.",
+ "cite_references_link_accessibility_label": "Ir para cima",
+ "cite_references_link_many_accessibility_label": "Ir para:",
+ "cite_section_preview_references": "Antevisão de referências",
+ "cite_warning": "Aviso de citação: $1",
+ "cite_warning_sectionpreview_no_text": "Elemento <code>&lt;ref&gt;</code> com o nome <code>$1</code> não pode fazer parte da antevisão porque está definido fora da presente secção ou não foi definido."
+}
diff --git a/www/wiki/extensions/Cite/i18n/qqq.json b/www/wiki/extensions/Cite/i18n/qqq.json
new file mode 100644
index 00000000..fa0ab69d
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/qqq.json
@@ -0,0 +1,61 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dani",
+ "LPfi",
+ "Lejonel",
+ "Mormegil",
+ "Nike",
+ "Purodha",
+ "Raimond Spekking",
+ "Raymond",
+ "Shirayuki",
+ "Siebrand",
+ "The Evil IP address",
+ "Umherirrender",
+ "Mar(c)"
+ ]
+ },
+ "apihelp-query+references-description": "{{doc-apihelp-description|query+references}}",
+ "apihelp-query+references-summary": "{{doc-apihelp-summary|query+references}}",
+ "apihelp-query+references-example-1": "{{doc-apihelp-example|query+references}}",
+ "apierror-citestoragedisabled": "{{doc-apierror}}",
+ "cite-desc": "{{desc|name=Cite|url=https://www.mediawiki.org/wiki/Extension:Cite}}",
+ "cite_error": "Cite extension.\n\nUsed when there are errors in ref or references tags.\n\nParameters:\n* $1 - an error message",
+ "cite_error_ref_numeric_key": "Cite extension. Error message shown if the name of a ref tag only contains digits. Examples that cause this error are <code><nowiki><ref name=\"123\" /></nowiki></code> or <code><nowiki><ref name=\"456\">input</ref></nowiki></code>",
+ "cite_error_ref_no_key": "Cite extension. Error message shown when ref tags without any content (that is <code><nowiki><ref /></nowiki></code>) are used without a name.",
+ "cite_error_ref_too_many_keys": "Cite extension. Error message shown when ref tags has parameters other than name and group. Examples that cause this error are <code><nowiki><ref name=\"name\" notname=\"value\" /></nowiki></code> or <code><nowiki><ref notname=\"value\" >input<ref></nowiki></code>",
+ "cite_error_ref_no_input": "Cite extension. Error message shown when ref tags without names have no content. An example that cause this error is <code><nowiki><ref></ref></nowiki></code>",
+ "cite_error_references_duplicate_key": "Cite extension. Error message shown when multiple refs with same name exist but with different content",
+ "cite_error_references_invalid_parameters": "Cite extension. Error message shown when parameters are used in the references tag. An example that causes this error is <code><nowiki><references someparameter=\"value\" /></nowiki></code>.",
+ "cite_error_references_no_backlink_label": "Cite extension. Error message shown in the references tag when the same name is used for too many ref tags. Too many in this case is more than there are backlink labels defined in [[MediaWiki:Cite references link many format backlink labels]].\n\nIt is not possible to make a clickable link to this message. \"nowiki\" is mandatory around [[MediaWiki:Cite references link many format backlink labels]].",
+ "cite_error_no_link_label_group": "*'''$1''' is the name of a reference group.\n*'''$2''' is <code>cite_link_label_group-<i>groupname</i></code>.",
+ "cite_error_references_no_text": "Cite extension. This error occurs when the tag <code><nowiki><ref name=\"something\" /></nowiki></code> is used with the name-option specified and no other tag specifies a cite-text for this name.\n\nParameters:\n* $1 - key of the ref",
+ "cite_error_included_ref": "Error message shown if the <code><nowiki><ref></nowiki></code> tag is unbalanced, that means a <code><nowiki><ref></nowiki></code> is not followed by a <code><nowiki></ref></nowiki></code>",
+ "cite_error_group_refs_without_references": "Parameters:\n* $1 - the group name\n\nIf the group $1 is default group, instead of this message, the following message will be used:\n* {{msg-mw|Cite error refs without references}}",
+ "cite_error_references_group_mismatch": "Error message shown when doing something like\n<pre>\n<references group=\"foo\">\n<ref group=\"bar\">...</ref>\n</references>\n</pre>\nParameters:\n* $1 - the value of the <code>group</code> attribute on the inner <code><nowiki><ref></nowiki></code> (in the example above, “bar”)",
+ "cite_error_references_missing_group": "Error message shown when doing something like\n<pre>\n<references group=\"foo\">\n<ref>...</ref>\n</references>\n</pre>\nand there are no <code><nowiki><ref></nowiki></code> tags in the page text which would use <code>group=\"foo\"</code>.\n\nParameters:\n* $1 - the name of the unused <code>group</code> (in the example above, “foo”)",
+ "cite_error_references_missing_key": "Error message shown when using something like\n<pre>\n<references>\n<ref name=\"refname\">...</ref>\n</references>\n</pre>\nand the reference <code><nowiki><ref name=\"refname\" /></nowiki></code> is not used anywhere in the page text.\n\nParameters:\n* $1 - the name of the unused reference (in the example above, “refname”)",
+ "cite_error_references_no_key": "Error message shown when a <code><nowiki><ref></nowiki></code> inside <code><nowiki><references></nowiki></code> does not have a <code>name</code> attribute.",
+ "cite_error_empty_references_define": "Error message shown when there is a <code><nowiki><ref></nowiki></code> inside <code><nowiki><references></nowiki></code>, but it does not have any content, e.g.\n<pre>\n<references>\n<ref name=\"foo\" />\n</references>\n</pre>\n\nParameters:\n* $1 - the <code><nowiki>name</nowiki></code> of the erroneous <code><nowiki><ref></nowiki></code> (in the above example, “foo”)",
+ "cite-tracking-category-cite-error": "Tracking category name.",
+ "cite-tracking-category-cite-error-desc": "Tracking category description.",
+ "cite_reference_link_key_with_num": "{{optional}}\nParameters:\n* $1 - the key\n* $2 - the number of the key",
+ "cite_reference_link_prefix": "{{optional}}",
+ "cite_reference_link_suffix": "{{optional}}",
+ "cite_references_link_prefix": "{{optional}}",
+ "cite_references_link_suffix": "{{ignored}}",
+ "cite_reference_link": "{{optional}}\nParameters:\n* $1 - ref key\n* $2 - references key\n* $3 - link label",
+ "cite_references_no_link": "{{notranslate}}\nParameters:\n* $1 - references key\n* $2 - reference text",
+ "cite_references_link_one": "{{optional}}\nParameters:\n* $1 - references key\n* $2 - ref key\n* $3 - reference text",
+ "cite_references_link_many": "{{optional}}\nParameters:\n* $1 - references key\n* $2 - list of links\n* $3 - reference text",
+ "cite_references_link_many_format": "{{optional}}\nParameters:\n* $1 - ref key\n* $2 - ...\n* $3 - (Unused)...",
+ "cite_references_link_many_format_backlink_labels": "{{Optional}}",
+ "cite_references_link_many_sep": "{{optional}}",
+ "cite_references_link_many_and": "{{optional}}",
+ "cite_references_link_accessibility_label": "Text for screen readers to describe the jump to citation link (\"↑\").\n\nSee also:\n* {{msg-mw|Cite references link many accessibility label}} - if the citation is used multiple times",
+ "cite_references_link_many_accessibility_label": "Text for screen readers to describe the jump to citation links (a b c ...) for citations which are used in multiple places.\n\nThis is going to be prepended to the first link, the following ones will just be read by screen readers as they are visible.\n\nSee also:\n* {{msg-mw|Cite references link accessibility label}} - if the citation is used one time",
+ "cite_section_preview_references": "Header for the section providing a preview of references in section preview",
+ "cite_warning": "Cite extension.\n\nUsed when there are warnings about ref or references tags (less severe than errors).\n\nParameters:\n* $1 - a warning message",
+ "cite_warning_sectionpreview_no_text": "Cite extension. This warning occurs when the tag <code><nowiki><ref name=\"something\" /></nowiki></code> is used with the name-option specified but the definition for this named ref is outside of the currently being previewed section, or not defined at all.\n\nParameters:\n* $1 - key of the ref"
+}
diff --git a/www/wiki/extensions/Cite/i18n/qu.json b/www/wiki/extensions/Cite/i18n/qu.json
new file mode 100644
index 00000000..73b5dfb4
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/qu.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "AlimanRuna"
+ ]
+ },
+ "cite-desc": "Pukyumanta willanapaq <nowiki><ref[ name=id]></nowiki> , <nowiki><references/></nowiki> unanchachakunatam yapan",
+ "cite_error": "Pukyumanta willaypi pantasqa: $1",
+ "cite_error_ref_numeric_key": "<code>&lt;ref&gt;</code> unanchachaqa manam allinchu;\nsutinqa ama yupaylla kachunchu. Ch'uyanchaq sutinta llamk'achiy",
+ "cite_error_ref_no_key": "<code>&lt;ref&gt;</code> unanchachaqa manam allinchu;\nch'usaq pukyu willana unanchachaqa sutiyuqmi kachun",
+ "cite_error_ref_too_many_keys": "<code>&lt;ref&gt;</code> unanchachaqa manam allinchu;\nsutinkunaqa manam allinchu, nisyu sutinchá",
+ "cite_error_ref_no_input": "<code>&lt;ref&gt;</code> unanchachaqa manam allinchu;\nsutinnaq pukyu willana unanchachaqa ama ch'usaqchu kachun",
+ "cite_error_references_invalid_parameters": "<code>&lt;ref&gt;</code> unanchachaqa manam allinchu;\nama kuskanachina tupuchu kachun. <code>&lt;references /&gt;</code> unanchachata llamk'achiy",
+ "cite_error_references_no_backlink_label": "Manañam kanchu allichana kutimuy t'inki unanchakuna.\nAstawan sut'ichay <nowiki>[[MediaWiki:Cite references link many format backlink labels|Pukyumanta willaykuna achka allichana kutimuy t'inki unanchakunata t'inkin]]</nowiki> nisqa willaypi",
+ "cite_error_references_no_text": "<code>&lt;ref&gt;</code> unanchachaqa manam allinchu;\n<code>$1</code> nisqapaq pukyu qillqa manam kanchu",
+ "cite_error_included_ref": "Kichaq <code>&lt;ref&gt;</code> unanchachapaq wichq'aq <code>&lt;/ref&gt;</code> unanchachaqa manam kanchu",
+ "cite_error_group_refs_without_references": "\"$1\" sutiyuq huñupaq <code>&lt;ref&gt;</code> unanchacham kachkan, ichataq manam chay huñupaq qillqasqa <code>&lt;references group=\"$1\"/&gt;</code> unanchacha manam tarisqachu, icha wichq'aq <code>&lt;/ref&gt;</code> unanchacha manam kanchu",
+ "cite_references_link_accessibility_label": "Hawaman t'iskuy",
+ "cite_references_link_many_accessibility_label": "Hawaman t'iskuspa kayman riy:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ro.json b/www/wiki/extensions/Cite/i18n/ro.json
new file mode 100644
index 00000000..64068ff0
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ro.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Firilacroco",
+ "KlaudiuMihaila",
+ "Mihai",
+ "Minisarm",
+ "Marian banica",
+ "Strainu"
+ ]
+ },
+ "apihelp-query+references-description": "Întoarce o reprezentare a referințelor asociate cu paginile date.",
+ "apihelp-query+references-summary": "Întoarce o reprezentare a referințelor asociate cu paginile date.",
+ "apihelp-query+references-example-1": "Referințe asociate cu <kbd>Albert Einstein</kbd>.",
+ "cite-desc": "Adaugă etichete <nowiki><ref[ name=id]></nowiki> și <nowiki><references/></nowiki>, pentru citări",
+ "cite_error": "Eroare la citare: $1",
+ "cite_error_ref_numeric_key": "Etichetă <code>&lt;ref&gt;</code> invalidă;\nnumele nu poate fi un număr. Folosește un titlu descriptiv",
+ "cite_error_ref_no_key": "Eticheta de început <code>&lt;ref&gt;</code> este malformată sau are un nume greșit",
+ "cite_error_ref_too_many_keys": "Etichetă <code>&lt;ref&gt;</code> invalidă;\nnume invalid, ex. prea multe nume",
+ "cite_error_ref_no_input": "Etichetă <code>&lt;ref&gt;</code> invalidă;\nref-urile fără nume trebuie să aibă conținut",
+ "cite_error_references_duplicate_key": "Etichetă <code>&lt;ref&gt;</code> invalidă; numele \"$1\" este definit de mai multe ori cu conținut diferit",
+ "cite_error_references_invalid_parameters": "Parametru invalid în eticheta <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "S-au epuizat etichetele pentru legături personalizate.\nDefiniți mai multe etichete în cadrul mesajului <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_no_link_label_group": "S-au epuizat etichetele pentru legături personalizate pentru grupul „$1”. \nDefiniți mai multe etichete în cadrul mesajului <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Etichetă <code>&lt;ref&gt;</code> invalidă;\nniciun text nu a fost furnizat pentru ref-urile numite <code>$1</code>",
+ "cite_error_included_ref": "Eticheta de închidere <code>&lt;/ref&gt;</code> lipsește pentru eticheta <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Etichete <code>&lt;ref&gt;</code> există pentru un grup numit „$1”, dar nu și o etichetă <code>&lt;references group=\"$1\"/&gt;</code> ori o etichetă <code>&lt;/ref&gt;</code> de final lipsește",
+ "cite_error_references_group_mismatch": "Eticheta <code>&lt;ref&gt;</code> din <code>&lt;references&gt;</code> are atributul de grup „$1” care a intrat în conflict.",
+ "cite_error_references_missing_group": "Eticheta <code>&lt;ref&gt;</code> definită în <code>&lt;references&gt;</code> are atributul de grup „$1” care nu apare în textul anterior.",
+ "cite_error_references_missing_key": "Eticheta <code>&lt;ref&gt;</code> cu numele „$1” definită în <code>&lt;references&gt;</code> nu este utilizată în textul anterior.",
+ "cite_error_references_no_key": "Eticheta <code>&lt;ref&gt;</code> definită în <code>&lt;references&gt;</code> nu are atributul nume.",
+ "cite_error_empty_references_define": "Eticheta <code>&lt;ref&gt;</code> definită în <code>&lt;references&gt;</code> cu numele „$1” nu are conținut.",
+ "cite-tracking-category-cite-error": "Pagini cu erori de citare",
+ "cite-tracking-category-cite-error-desc": "Paginile din această categorie au erori în folosirea etichetelor de referințe.",
+ "cite_references_link_accessibility_label": "Salt",
+ "cite_references_link_many_accessibility_label": "Salt la:",
+ "cite_section_preview_references": "Previzualizare a notelor",
+ "cite_warning": "Avertisment de citare: $1",
+ "cite_warning_sectionpreview_no_text": "Eitcheta <code>&lt;ref&gt;</code> cu numele <code>$1</code> nu poate fi previzualizată pentru că este definită în afara secțiunii curente sau nu este definită deloc."
+}
diff --git a/www/wiki/extensions/Cite/i18n/roa-tara.json b/www/wiki/extensions/Cite/i18n/roa-tara.json
new file mode 100644
index 00000000..98e215f6
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/roa-tara.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Joetaras"
+ ]
+ },
+ "apihelp-query+references-description": "Dèje 'na rappresendazione de le date de le refereminde associate cu le pàggene indicate.",
+ "apihelp-query+references-summary": "Dèje 'na rappresendazione de le date de le refereminde associate cu le pàggene indicate.",
+ "apihelp-query+references-example-1": "Refereminde associate cu <kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "'A reggistrazzione d'u referimende de l'estenzione Cite non g'ha state abbilitate.",
+ "cite-desc": "Aggiunge le tag <nowiki><ref[ name=id]></nowiki> and <nowiki><references/></nowiki> pe le citaziune",
+ "cite_error": "Cite errore: $1",
+ "cite_error_ref_numeric_key": "Tag <code>&lt;ref&gt;</code> invalide;\n'u nome non ge pò essere sole 'n'indere. Ause 'nu titele descrittive",
+ "cite_error_ref_no_key": "'U tag apirte <code>&lt;ref&gt;</code> jè formate male o tène 'nu nome brutte",
+ "cite_error_ref_too_many_keys": "Tag <code>&lt;ref&gt;</code> invalide;\nnome invalide, pe esembie troppe luènghe",
+ "cite_error_ref_no_input": "Tag <code>&lt;ref&gt;</code> invalide;\nreferimende senza nome onne tenè 'nu condenute",
+ "cite_error_references_duplicate_key": "Tag <code>&lt;ref&gt;</code> invalide; 'u nome \"$1\" definite cchiù vote cu condenute diverse",
+ "cite_error_references_invalid_parameters": "'U tag <code>&lt;references&gt;</code> tène 'nu parametre invalide",
+ "cite_error_references_no_backlink_label": "Le etichette personalizzate pe le collegaminde de rrete onne spicciate.\nDefiniscene otre jndr'à 'u messàgge <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_no_link_label_group": "Le etichette personalizzate de le collegaminde pu gruppe \"$1\" onne spicciate.\nDefiniscene otre jndr'à 'u messàgge <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Tag <code>&lt;ref&gt;</code> invalide;\nnisciune teste ere previste pe le referimende nnomenate <code>$1</code>",
+ "cite_error_included_ref": "Stè 'u tag <code>&lt;/ref&gt;</code> ma manghe <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "'U tag <code>&lt;ref&gt;</code> esiste pu gruppe nomenate \"$1\", ma non ge corresponne a 'u tag acchiate <code>&lt;references group=\"$1\"/&gt;</code>, o 'nu tag de chiusure <code>&lt;/ref&gt;</code> manghe",
+ "cite_error_references_group_mismatch": "'U tag <code>&lt;ref&gt;</code> tag jndr'à <code>&lt;references&gt;</code> tène conflitte cu l'attribbute d'u gruppe \"$1\".",
+ "cite_error_references_missing_group": "'U tag <code>&lt;ref&gt;</code> definite jndr'à <code>&lt;references&gt;</code> ave attribbute de gruppe \"$1\" 'u quale non ge jesse jndr'à 'u teste prengepàle.",
+ "cite_error_references_missing_key": "'U tag <code>&lt;ref&gt;</code> cu 'u nome \"$1\" definite jndr'à <code>&lt;references&gt;</code> non g'avene ausate jndr'à 'u teste prengepàle.",
+ "cite_error_references_no_key": "'U tag <code>&lt;ref&gt;</code> definite jndr'à <code>&lt;references&gt;</code> non ge tène 'nu nome d'attrebbute.",
+ "cite_error_empty_references_define": "'U tag <code>&lt;ref&gt;</code> definite jndr'à <code>&lt;references&gt;</code> cu 'u nome \"$1\" non ge tène condenute.",
+ "cite-tracking-category-cite-error": "Pàggene cu errore de referimende",
+ "cite-tracking-category-cite-error-desc": "Pàggene jndr'à sta categorije ca ave errore de ause de le tag de referimende.",
+ "cite_references_link_accessibility_label": "Zumbe sus",
+ "cite_references_link_many_accessibility_label": "Zumbe sus a:",
+ "cite_section_preview_references": "Andeprime de le note",
+ "cite_warning": "Attenzione a le note: $1",
+ "cite_warning_sectionpreview_no_text": "'U tag <code>&lt;ref&gt;</code> cu 'u nome <code>$1</code> non ge se pò ffà 'ndrucà in andeprime, purcé avéne definite fore d'a sezione de mò o non g'ha state probbie definite."
+}
diff --git a/www/wiki/extensions/Cite/i18n/ru.json b/www/wiki/extensions/Cite/i18n/ru.json
new file mode 100644
index 00000000..86ea0f79
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ru.json
@@ -0,0 +1,57 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ahonc",
+ "Dim Grits",
+ "Ferrer",
+ "KPu3uC B Poccuu",
+ "Kaganer",
+ "Kalan",
+ "Okras",
+ "Александр Сигачёв",
+ "Iltever",
+ "NBS",
+ "Putnik",
+ "Redredsonia",
+ "Alexandr Efremov",
+ "Facenapalm",
+ "Iniquity"
+ ]
+ },
+ "apihelp-query+references-description": "Возвращает представление данных из ссылок, связанных с данной страницей.",
+ "apihelp-query+references-summary": "Возвращает представление данных из ссылок, связанных с данной страницей.",
+ "apihelp-query+references-example-1": "Ссылки, связанные с <kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "Хранилище сносок расширения цитирования не активировано.",
+ "cite-desc": "Добавляет теги <nowiki><ref[ name=id]></nowiki> и <nowiki><references/></nowiki> для сносок",
+ "cite_error": "Ошибка цитирования $1",
+ "cite_error_ref_numeric_key": "Неправильный тег <code>&lt;ref&gt;</code>;\nимя не может быть целым числом. Используйте описательное название",
+ "cite_error_ref_no_key": "Открывающий тег <code>&lt;ref&gt;</code> — неправильный или содержит некорректное имя.",
+ "cite_error_ref_too_many_keys": "Неправильный тег <code>&lt;ref&gt;</code>;\nошибочные имена, возможно, слишком много",
+ "cite_error_ref_no_input": "Неправильный тег <code>&lt;ref&gt;</code>;\nэлемент без имени должен иметь содержание",
+ "cite_error_references_duplicate_key": "Неверный тег <code>&lt;ref&gt;</code>: название «$1» определено несколько раз для различного содержимого",
+ "cite_error_references_invalid_parameters": "Недопустимый параметр в теге <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Не хватает символов для возвратных гиперссылок.\nСледует расширить системное сообщение <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Закончились отметки пользовательских ссылок для группы «$1».\nОпределите дополнительные в сообщении <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Неверный тег <code>&lt;ref&gt;</code>; для сносок <code>$1</code> не указан текст",
+ "cite_error_included_ref": "Отсутствует закрывающий тег <code>&lt;/ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Для существующих тегов <code>&lt;ref&gt;</code> группы «$1» не найдено соответствующего тега <code>&lt;references group=\"$1\"/&gt;</code> или пропущен закрывающий тег <code>&lt;/ref&gt;</code>",
+ "cite_error_references_group_mismatch": "Тег <code>&lt;ref&gt;</code> в <code>&lt;references&gt;</code> имеет конфликтующие группы атрибутов «$1».",
+ "cite_error_references_missing_group": "Тег <code>&lt;ref&gt;</code>, определённый в <code>&lt;references&gt;</code>, имеет атрибут группы «$1», который не упоминается в тексте ранее.",
+ "cite_error_references_missing_key": "Тег <code>&lt;ref&gt;</code> с именем «$1», определённый в <code>&lt;references&gt;</code>, не используется в предшествующем тексте.",
+ "cite_error_references_no_key": "Тег <code>&lt;ref&gt;</code>, определённый в <code>&lt;references&gt;</code>, не имеет атрибута имени.",
+ "cite_error_empty_references_define": "Тег <code>&lt;ref&gt;</code>, определённый в <code>&lt;references&gt;</code>, с именем «$1» не имеет содержания.",
+ "cite-tracking-category-cite-error": "Страницы с ошибками в примечаниях",
+ "cite-tracking-category-cite-error-desc": "Страницы в данной категории содержат ошибки в использовании тегов примечаний.",
+ "cite_reference_link_key_with_num": "$1_$2",
+ "cite_reference_link_prefix": "cite_ref-",
+ "cite_references_link_prefix": "cite_note-",
+ "cite_references_link_many_format": "<sup>[[#$1|$2]]</sup>",
+ "cite_references_link_many_format_backlink_labels": "а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я аа аб ав аг ад ае аё аж аз аи ай ак ал ам ан ао ап ар ас ат ау аф ах ац ач аш ащ аъ аы аь аэ аю ая ба бб бв бг бд бе бж бз би бй бк бл бм бн бо бп бр бс бт бу бф бх бц бч бш бщ бъ бы бь бэ бю бя ва вб вв вг вд ве вж вз ви вй вк вл вм вн во вп вр вс вт ву вф вх вц вч вш вщ въ вы вь вэ вю вя га гб гв гг гд ге гж гз ги гй гк гл гм гн го гп гр гс гт гу гф гх гц гч гш гщ гъ гы гь гэ гю гя да дб дв дг дд де дж дз ди дй дк дл дм дн до дп др дс дт ду дф дх дц дч дш дщ дъ ды дь дэ дю дя еа еб ев ег ед ее еж ез еи ей ек ел ем ен ео еп ер ес ет еу еф ех ец еч еш ещ еъ еы еь еэ ею ея жа жб жв жг жд же жж жз жи жй жк жл жм жн жо жп жр жс жт жу жф жх жц жч жш жщ жъ жы жь жэ жю жя за зб зв зг зд зе зж зз зи зй зк зл зм зн зо зп зр зс зт зу зф зх зц зч зш зщ зъ зы зь зэ зю зя иа иб ив иг ид ие иж из ии ий ик ил им ин ио ип ир ис ит иу иф их иц ич иш ищ иъ иы иь иэ ию ия йа йб йв йг йд йе йж йз йи йй йк йл йм йн йо йп йр йс йт йу йф йх йц йч йш йщ йъ йы йь йэ йю йя ка кб кв кг кд ке кж кз ки кй кк кл км кн ко кп кр кс кт ку кф кх кц кч кш кщ къ кы кь кэ кю кя ла лб лв лг лд ле лж лз ли лй лк лл лм лн ло лп лр лс лт лу лф лх лц лч лш лщ лъ лы ль лэ лю ля ма мб мв мг мд ме мж мз ми мй мк мл мм мн мо мп мр мс мт му мф мх мц мч мш мщ мъ мы мь мэ мю мя на нб нв нг нд не нж нз ни нй нк нл нм нн но нп нр нс нт ну нф нх нц нч нш нщ нъ ны нь нэ ню ня оа об ов ог од ое ож оз ои ой ок ол ом он оо оп ор ос от оу оф ох оц оч ош ощ оъ оы оь оэ ою оя па пб пв пг пд пе пж пз пи пй пк пл пм пн по пп пр пс пт пу пф пх пц пч пш пщ пъ пы пь пэ пю пя ра рб рв рг рд ре рж рз ри рй рк рл рм рн ро рп рр рс рт ру рф рх рц рч рш рщ ръ ры рь рэ рю ря са сб св сг сд се сж сз си сй ск сл см сн со сп ср сс ст су сф сх сц сч сш сщ съ сы сь сэ сю ся та тб тв тг тд те тж тз ти тй тк тл тм тн то тп тр тс тт ту тф тх тц тч тш тщ тъ ты ть тэ тю тя уа уб ув уг уд уе уж уз уи уй ук ул ум ун уо уп ур ус ут уу уф ух уц уч уш ущ уъ уы уь уэ ую уя фа фб фв фг фд фе фж фз фи фй фк фл фм фн фо фп фр фс фт фу фф фх фц фч фш фщ фъ фы фь фэ фю фя ха хб хв хг хд хе хж хз хи хй хк хл хм хн хо хп хр хс хт ху хф хх хц хч хш хщ хъ хы хь хэ хю хя ца цб цв цг цд це цж цз ци цй цк цл цм цн цо цп цр цс цт цу цф цх цц цч цш цщ цъ цы ць цэ цю ця ча чб чв чг чд че чж чз чи чй чк чл чм чн чо чп чр чс чт чу чф чх чц чч чш чщ чъ чы чь чэ чю чя ша шб шв шг шд ше шж шз ши шй шк шл шм шн шо шп шр шс шт шу шф шх шц шч шш шщ шъ шы шь шэ шю шя ща щб щв щг щд ще щж щз щи щй щк щл щм щн що щп щр щс щт щу щф щх щц щч щш щщ щъ щы щь щэ щю щя ъа ъб ъв ъг ъд ъе ъж ъз ъи ъй ък ъл ъм ън ъо ъп ър ъс ът ъу ъф ъх ъц ъч ъш ъщ ъъ ъы ъь ъэ ъю ъя ыа ыб ыв ыг ыд ые ыж ыз ыи ый ык ыл ым ын ыо ып ыр ыс ыт ыу ыф ых ыц ыч ыш ыщ ыъ ыы ыь ыэ ыю ыя ьа ьб ьв ьг ьд ье ьж ьз ьи ьй ьк ьл ьм ьн ьо ьп ьр ьс ьт ьу ьф ьх ьц ьч ьш ьщ ьъ ьы ьь ьэ ью ья эа эб эв эг эд эе эж эз эи эй эк эл эм эн эо эп эр эс эт эу эф эх эц эч эш эщ эъ эы эь ээ эю эя юа юб юв юг юд юе юж юз юи юй юк юл юм юн юо юп юр юс ют юу юф юх юц юч юш ющ юъ юы юь юэ юю юя яа яб яв яг яд яе яж яз яи яй як ял ям ян яо яп яр яс ят яу яф ях яц яч яш ящ яъ яы яь яэ яю яя",
+ "cite_references_link_many_sep": "&#32;",
+ "cite_references_link_many_and": "&#32;",
+ "cite_references_link_accessibility_label": "Перейти",
+ "cite_references_link_many_accessibility_label": "Перейти к:",
+ "cite_section_preview_references": "Предпросмотр примечаний",
+ "cite_warning": "Предупреждение о цитировании: $1",
+ "cite_warning_sectionpreview_no_text": "Тег <code>&lt;ref&gt;</code> с именем <code>$1</code> не может быть предпросмотрен, так как он определён вне текущего раздела или не определён вообще."
+}
diff --git a/www/wiki/extensions/Cite/i18n/rue.json b/www/wiki/extensions/Cite/i18n/rue.json
new file mode 100644
index 00000000..a4774a43
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/rue.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gazeb"
+ ]
+ },
+ "cite-desc": "Придасть таґы <nowiki><ref[ name=\"id\"]></nowiki> і&nbsp;<nowiki><references /></nowiki> на означіня цітацій",
+ "cite_error": "Хыбна цітація: $1",
+ "cite_error_ref_numeric_key": "Хыба в таґу <code>&lt;ref&gt;</code>; назвов не сміє быти просте чісло, хоснуйте пописове означіня",
+ "cite_error_ref_no_key": "Хыба в таґу <code>&lt;ref&gt;</code>; порожнї едітації мусять обсяговати назву",
+ "cite_error_ref_too_many_keys": "Хыба в таґу <code>&lt;ref&gt;</code>; хыбны назвы, напр. є їх дуже много",
+ "cite_error_ref_no_input": "Хыба в таґу <code>&lt;ref&gt;</code>; цітації без назвы мусять мати властный обсяг",
+ "cite_error_references_invalid_parameters": "Хыба в таґу <code>&lt;references&gt;</code>; ту не є доволеный параметер, хоснуйте <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Дішли означіня зворотных одказів, придайте їх пару до повідомлїня <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Дішли дефінованы значкы про ґрупу „$1“.\nЗвыште їх чісло у повідомлїню <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Хыба в таґу <code>&lt;ref&gt;</code>; цітації означеной <code>$1</code> не є доданый жаден текст",
+ "cite_error_included_ref": "Хыбить закінчіня <code>&lt;/ref&gt;</code> k&nbsp;таґу <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Найдена значка <code>&lt;ref&gt;</code> про ґрупу „$1“, але не існує приналежна значка <code>&lt;references group=\"$1\"/&gt;</code> або хыбить заперачій <code>&lt;/ref&gt;</code>.",
+ "cite_error_references_group_mismatch": "Значка <code>&lt;ref&gt;</code> внутрї <code>&lt;references&gt;</code> має дефіновану іншу ґрупу „$1“.",
+ "cite_error_references_missing_group": "Значка <code>&lt;ref&gt;</code> внутрї <code>&lt;references&gt;</code> хоснує ґрупу „$1“, котра ся в попереднїм текстї не обявує.",
+ "cite_error_references_missing_key": "На <code>&lt;ref&gt;</code> з іменом „$1“ дефінованый внутрї <code>&lt;references&gt;</code> не суть в попереднїм текстї жадны одказы.",
+ "cite_error_references_no_key": "У значкы <code>&lt;ref&gt;</code> дефінованой внутрї <code>&lt;references&gt;</code> хыбить атрібут <code>name</code>.",
+ "cite_error_empty_references_define": "У значкы <code>&lt;ref&gt;</code> з назвов „$1“ дефінованой внутрї <code>&lt;references&gt;</code> хыбить обсяг."
+}
diff --git a/www/wiki/extensions/Cite/i18n/sa.json b/www/wiki/extensions/Cite/i18n/sa.json
new file mode 100644
index 00000000..07e55bff
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/sa.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Shubha",
+ "NehalDaveND"
+ ]
+ },
+ "cite-desc": "\nAdds<nowiki><ref[ name=id]></nowiki> तथा<nowiki><references/></nowiki> उद्धरणानां कृते सम्पर्कतन्तवः",
+ "cite_error": "उद्धरणे दोषः : $1",
+ "cite_error_ref_numeric_key": "<code>&lt;ref&gt;</code> अमान्यशृङ्खला;\nनाम पूर्णाङ्कसङ्ख्या भवितुं नार्हति । विविरणयुक्तं शिरोनाम उपयुज्यताम् ।",
+ "cite_error_ref_no_key": "<code>&lt;ref&gt;</code> दोषपूर्णा शृङ्खला; \nरिक्ताधाराः अपि सनामकः भवेत् ।",
+ "cite_error_ref_too_many_keys": "<code>&lt;ref&gt;</code> दोषपूर्णा शृङ्खला; \nअमान्यं नाम, उदा. अत्यधिकम्",
+ "cite_error_ref_no_input": "<code>&lt;ref&gt;</code> दोषपूर्णा शृङ्खला; \nरिक्ताधाराः अपि सनामकः भवेयुः ।",
+ "cite_error_references_invalid_parameters": "<code>&lt;references&gt;</code> असिद्धाङ्कनम्; परिमितिः निर्देष्टुम् अशक्या, <code>&lt;references /&gt;</code> उपयुज्यताम्",
+ "cite_error_references_no_backlink_label": "सिद्धानि पूर्वतनसम्पर्कशीर्षकाणि नष्टानि ।\n<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> इत्यस्मिन् सन्देशे अधिकविवरणं योज्यताम् ।",
+ "cite_error_no_link_label_group": "\"$1\" आधारसमूहस्य कस्टं-सम्पर्क-लेबेल् न्यूनानि जातानि ।\n<nowiki>[[MediaWiki:$2]]</nowiki> सन्देशे अधिकं निर्वचनं दीयताम् ।",
+ "cite_error_references_no_text": "अमान्या <code>&lt;ref&gt;</code> शृङ्खला;\n<code>$1</code> इत्यस्य आधारः अज्ञातः",
+ "cite_error_included_ref": "समाप्तिः <code>&lt;/ref&gt;</code> <code>&lt;ref&gt;</code> शृङ्खला लुप्ता",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code> \"$1\" नामकस्य गणस्य अङ्कनं विद्यते, कीन्तु किमपि अनुरूपं <code>&lt;references group=\"$1\"/&gt;</code> अङ्कनं न प्राप्तम्",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code> टैग इन <code>&lt;references&gt;</code>सङ्घर्षगणलक्षणं \"$1\" विद्यते ।",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code> अङ्कनपरिभाषिते <code>&lt;references&gt;</code> एतस्मिन् गणस्य विशेषः \"$1\" यश्च पूर्वलेखे न दृष्टम् ।",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code> अङ्कनं \"$1\" नाम्ना सह परिभाषितम् <code>&lt;references&gt;</code> पूर्वलेखे उपयोगाय न जातम् ।",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code>अङ्कने परिभाषितं <code>&lt;references&gt;</code> किमपि नामलक्षणं न विद्यते ।",
+ "cite_error_empty_references_define": "<code>&lt;ref&gt;</code> अङ्कने परिभाषितं <code>&lt;references&gt;</code> \"$1\" नामकः कोऽपि अन्तर्विषयः न विद्यते ।"
+}
diff --git a/www/wiki/extensions/Cite/i18n/sah.json b/www/wiki/extensions/Cite/i18n/sah.json
new file mode 100644
index 00000000..533b3e68
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/sah.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "HalanTul",
+ "София"
+ ]
+ },
+ "cite-desc": "Хос быһаарыы <nowiki><ref[ name=id]></nowiki> уонна <nowiki><references/></nowiki> тиэктэрин эбэр",
+ "cite_error": "Цитата сыыһата: $1",
+ "cite_error_ref_numeric_key": "Неправильный вызов: ожидался нечисловой ключ",
+ "cite_error_ref_no_key": "<code>&lt;ref&gt;</code> тиэк алҕаһа: аата (күлүүһэ) ыйыллыбатах",
+ "cite_error_ref_too_many_keys": "<code>&lt;ref&gt;</code> тиэк алҕаһа (Неправильный вызов): аата сыыһа ыйыллыбыт, эбэтэр наһаа элбэх аат суруллубут",
+ "cite_error_ref_no_input": "<code>&lt;ref&gt;</code> тиэк алҕастаах (Неверный вызов): иһинээҕитэ сыыһа",
+ "cite_error_references_invalid_parameters": "Сыыһа параметрдар бэриллибиттэр; <code>&lt;references /&gt;</code> тиэккэ отой суох буолуохтаахтар",
+ "cite_error_references_no_backlink_label": "Төннөрөр сигэлэргэ бэлиэлэрэ тиийбэттэр.\n<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> диэн систиэмэ этиитин кэҥэтэн биэрэххэ наада",
+ "cite_error_no_link_label_group": "«$1» бөлөх кыттааччыларын сигэлэрин бэлиэлэрэ бүппүттэр.\nЭбии манна <nowiki>[[MediaWiki:$2]]</nowiki> оҥор.",
+ "cite_error_references_no_text": "Сыыһа <code>&lt;ref&gt;</code> тиэк (тег);\n<code>$1</code> диэн хос быһаарыыларга аналлаах тиэкис суох",
+ "cite_error_included_ref": "<code>&lt;/ref&gt;</code> диэн сабар тиэк суох эбит",
+ "cite_error_group_refs_without_references": "\"$1\" бөлөх <code>&lt;ref&gt;</code> тиэгигэр сөп түбэһэр <code>&lt;references group=\"$1\"/&gt;</code> тиэк көстүбэтэ",
+ "cite_error_references_group_mismatch": "<code>&lt;references&gt;</code> туттуллар <code>&lt;ref&gt;</code> тиэк бэйэ бэйэлэрин кытта сөпсөспөт \"$1\" атрибуттаах бөлөхтөрдөөх",
+ "cite_error_references_missing_group": "Бу <code>&lt;references&gt;</code> туттар маннык <code>&lt;ref&gt;</code> тиэгэ бөлөх тиэкиһигэр урут көрсүллүбэтэх \"$1\" атрибуттаах.",
+ "cite_error_references_missing_key": "Бу <code>&lt;references&gt;</code> туттар маннык <code>&lt;ref&gt;</code> \"$1\" диэн тиэгэ бу иннинээҕи тиэкискэ туттуллубат эбит.",
+ "cite_error_references_no_key": "Бу <code>&lt;references&gt;</code> туттар <code>&lt;ref&gt;</code> тиэгэ аатын атрибута суох эбит.",
+ "cite_error_empty_references_define": "<code>&lt;references&gt;</code> туттар <code>&lt;ref&gt;</code> \"$1\" диэн ааттаах тиэгэ иһинээҕитэ суох эбит."
+}
diff --git a/www/wiki/extensions/Cite/i18n/sat.json b/www/wiki/extensions/Cite/i18n/sat.json
new file mode 100644
index 00000000..e1b4203a
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/sat.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Albinus",
+ "Manik Soren"
+ ]
+ },
+ "cite_error": "ᱥᱟᱭᱤᱴ ᱵᱷᱩᱞ:$1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/scn.json b/www/wiki/extensions/Cite/i18n/scn.json
new file mode 100644
index 00000000..343d7785
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/scn.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Markos90",
+ "Melos",
+ "Santu",
+ "Pippinu",
+ "Sarvaturi"
+ ]
+ },
+ "cite-desc": "Agghiunci l'etichetti <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki>, pi citazzioni",
+ "cite_error": "Erruri ntâ citazzioni: $1",
+ "cite_error_ref_numeric_key": "Etichetta <code>&lt;ref&gt;</code> nun bona;\nlu nomu nun pò èssiri nu nùmmiru sanu. Adupirari nu tìtulu discrittivu",
+ "cite_error_ref_no_key": "Etichetta <code>&lt;ref&gt;</code> nun bona: li ref vacanti hannu a aviri un nomu",
+ "cite_error_ref_too_many_keys": "Etichetta <code>&lt;ref&gt;</code> nun bona;\nnoma nun vàlidi, p'es. nn'havi troppu assai",
+ "cite_error_ref_no_input": "Etichetta <code>&lt;ref&gt;</code> nun bona;\nli ref senza nomu hannu a aviri un cuntinutu",
+ "cite_error_references_invalid_parameters": "Etichetta <code>&lt;references&gt;</code> nun bona;\nnun vèninu accittati paràmitri.\nAdupirari <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Fineru l'etichetti di rimannu p'arreri pirsunalizzati.\nDifinìrinni chiossai ntô missaggiu <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_no_link_label_group": "Fineru l'etichetti pirsunalizzati pî liami dû gruppu «$1».\nDifinirinni chiossai ntô missaggiu <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Etichetta <code>&lt;ref&gt;</code> nun bona;\nnun vinni furnutu nuddu testu pî ref cu nomu <code>$1</code>",
+ "cite_error_included_ref": "Ammanca l’etichetta <code>&lt;/ref&gt;</code> pi chiùdiri l'etichetta <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Ci sunnu etichetti <code>&lt;ref&gt;</code> pi nu gruppu chiamatu «$1», pirò nun c'è nudda etichetta <code>&lt;references group=\"$1\"/&gt;</code> currispunnenti, o puru ammanca n'etichetta <code>&lt;/ref&gt;</code> di chiusura",
+ "cite_error_references_group_mismatch": "N'etichetta <code>&lt;ref&gt;</code> nta <code>&lt;references&gt;</code> havi l'attribbutu gruppu n cunfrittu, \"$1\".",
+ "cite_error_references_missing_group": "N'etichetta <code>&lt;ref&gt;</code> difinuta nta <code>&lt;references&gt;</code> havi comu attribbutu group \"$1\" ca nun cumpari nta lu testu pricidenti.",
+ "cite_error_references_missing_key": "N'etichetta <code>&lt;ref&gt;</code> difinuta nta <code>&lt;references&gt;</code> havi comu attribbutu name \"$1\" ca nun è adupiratu ntô testu pricidenti.",
+ "cite_error_references_no_key": "N'etichetta <code>&lt;ref&gt;</code> difinuta nta <code>&lt;references&gt;</code> nun havi n'attribbutu nomu.",
+ "cite_error_empty_references_define": "L'etichetta <code>&lt;ref&gt;</code> difinuta nta <code>&lt;references&gt;</code> cû nomu \"$1\" nun havi nuddu cuntinutu.",
+ "cite_reference_link_prefix": "muntuari ref",
+ "cite_references_link_prefix": "muntuari annutazzioni",
+ "cite_references_link_one": "<li id=\"$1\">[[#$2|'''^''']] $3</li>",
+ "cite_references_link_many": "<li id=\"$1\">'''^''' $2 $3</li>",
+ "cite_references_link_many_format": "<sup>''[[#$1|$3]]''</sup>",
+ "cite_references_link_many_format_backlink_labels": "a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz",
+ "cite_references_link_accessibility_label": "Attorna pi supra",
+ "cite_references_link_many_accessibility_label": "Attorna pi supra unni:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/sco.json b/www/wiki/extensions/Cite/i18n/sco.json
new file mode 100644
index 00000000..e2525b66
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/sco.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "AmaryllisGardener"
+ ]
+ },
+ "cite_error": "Cite error: $1",
+ "cite_error_references_duplicate_key": "Invalid <code>&lt;ref&gt;</code> tag; name \"$1\" defined multiple times wi different content",
+ "cite-tracking-category-cite-error": "Pages wi reference errors",
+ "cite_warning_sectionpreview_no_text": "<code>&lt;ref&gt;</code> tag wi name <code>$1</code> canna be previewed acause it is defined ootside the current section or nae defined at aw."
+}
diff --git a/www/wiki/extensions/Cite/i18n/sd.json b/www/wiki/extensions/Cite/i18n/sd.json
new file mode 100644
index 00000000..8bebdd08
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/sd.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aursani",
+ "Mehtab ahmed"
+ ]
+ },
+ "cite_error": "حوالي جي چڪ: $1",
+ "cite-tracking-category-cite-error": "حوالن جي چُڪَ وارا صفحا",
+ "cite_section_preview_references": "حوالن جي پيشِ نگاھ"
+}
diff --git a/www/wiki/extensions/Cite/i18n/sgs.json b/www/wiki/extensions/Cite/i18n/sgs.json
new file mode 100644
index 00000000..ba1299af
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/sgs.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hugo.arg"
+ ]
+ },
+ "cite_error": "Cėtavėma soklīdėmsː $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/sh.json b/www/wiki/extensions/Cite/i18n/sh.json
new file mode 100644
index 00000000..0b8a253d
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/sh.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kolega2357",
+ "OC Ripper"
+ ]
+ },
+ "cite_error": "Greška kod citiranja: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/shn.json b/www/wiki/extensions/Cite/i18n/shn.json
new file mode 100644
index 00000000..9959fb4b
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/shn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Saimawnkham"
+ ]
+ },
+ "cite_error": "မီးလွင်ႈၽိတ်းပိူင်ႈ : $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/si.json b/www/wiki/extensions/Cite/i18n/si.json
new file mode 100644
index 00000000..287c86d9
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/si.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Budhajeewa",
+ "Thameera123",
+ "නන්දිමිතුරු",
+ "Singhalawap"
+ ]
+ },
+ "cite-desc": "උපහරණයන් සඳහා, <nowiki><ref[ name=id]></nowiki> සහ <nowiki><references/></nowiki> ටැගයන්, එකතු කරයි",
+ "cite_error": "උපුටාදැක්වීම් දෝෂය: $1",
+ "cite_error_ref_numeric_key": "අනීතික <code>&lt;ref&gt;</code> ටැගය;\nනම සරල පූර්ණාංකයක් විය නොහැක. විස්තරශීලි ශිර්ෂයක් භාවිතා කරන්න",
+ "cite_error_ref_no_key": "අනීතික <code>&lt;ref&gt;</code> ටැගය;\nපෙළ විරහිත ආශ්‍රේය සඳහා නමක් තිබිය යුතුය",
+ "cite_error_ref_too_many_keys": "අනීතික <code>&lt;ref&gt;</code> ටැගය;\nඅනීතික නාමයන්, නිද. පමණට වැඩි",
+ "cite_error_ref_no_input": "අනීතික <code>&lt;ref&gt;</code> ටැගය;\nනාමයක් නොමැති ආශ්‍රේය සඳහා පෙළක් තිබිය යුතුය",
+ "cite_error_references_invalid_parameters": "අනීතික <code>&lt;references&gt;</code> ටැගය;\nකිසිම පරාමිතිකයකට ඉඩ නොදෙයි.\n<code>&lt;references /&gt;</code> භාවිත කරන්න",
+ "cite_error_references_no_backlink_label": "උපයෝග්‍ය පසුසබැඳුම් ලේබල අවසාන විය.\n<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> පණිවුඩයෙහි තවත් ඒවා අර්ථදක්වන්න",
+ "cite_error_no_link_label_group": "\"$1\" කණ්ඩායම සඳහා අභිමත සබැඳි ලේබල අවසන් විය. \n<nowiki>[[MediaWiki:$2]]</nowiki> පණිවුඩයේ තවත් වැඩිපුර සඳහන් කරන්න.",
+ "cite_error_references_no_text": "අනීතික <code>&lt;ref&gt;</code> ටැගය;\n<code>$1</code> නමැති ආශ්‍රේයන් සඳහා කිසිදු පෙළක් සපයා නොතිබුණි",
+ "cite_error_included_ref": "<code>&lt;ref&gt;</code> ටැගය සොයාගත නොහැකි බැවින් <code>&lt;/ref&gt;</code> වසා දමමින්",
+ "cite_error_group_refs_without_references": "\"$1\" නම් කණ්ඩායම සඳහා <code>&lt;ref&gt;</code> ටැග පැවතුණත්, ඊට අදාළ <code>&lt;references group=\"$1\"/&gt;</code> ටැග සොයාගත නොහැකි විය.",
+ "cite_error_references_group_mismatch": "<code>&lt;references&gt;</code> හි <code>&lt;ref&gt;</code> නම් ටැගය \"$1\" යන පරස්පර සමූහ ගුණාංග දරයි.",
+ "cite_error_references_missing_group": "<code>&lt;references&gt;</code> හි <code>&lt;ref&gt;</code> ටැගය පෙර පෙළෙහි නොතිබූ \"$1\" නම් සමූහ ගුණාංගයක් දරයි.",
+ "cite_error_references_missing_key": "<code>&lt;references&gt;</code> හි \"$1\" නමැති <code>&lt;ref&gt;</code> ටැගය පෙර පෙළෙහි භාවිතා වූයේ නැත.",
+ "cite_error_references_no_key": "<code>&lt;references&gt;</code> හි <code>&lt;ref&gt;</code> ටැගයට නමක් ආදේශකොට නැත.",
+ "cite_error_empty_references_define": "<code>&lt;references&gt;</code> හි \"$1\" නමැති <code>&lt;ref&gt;</code> ටැගයට අන්තර්ගතයක් නැත.",
+ "cite_reference_link_prefix": "උපන්‍යාස_යොමුව-",
+ "cite_references_link_prefix": "උපන්‍යාස_සටහන-"
+}
diff --git a/www/wiki/extensions/Cite/i18n/sk.json b/www/wiki/extensions/Cite/i18n/sk.json
new file mode 100644
index 00000000..a2345a79
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/sk.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Helix84",
+ "Teslaton"
+ ]
+ },
+ "cite-desc": "Pridáva značky <nowiki><ref[ name=id]></nowiki> a <nowiki><references/></nowiki> pre citácie",
+ "cite_error": "Chyba citácie $1",
+ "cite_error_ref_numeric_key": "Neplatné volanie; očakáva sa neceločíselný typ kľúča",
+ "cite_error_ref_no_key": "Neplatné volanie; nebol špecifikovaný kľúč",
+ "cite_error_ref_too_many_keys": "Neplatné volanie; neplatné kľúče, napr. príliš veľa alebo nesprávne špecifikovaný kľúč",
+ "cite_error_ref_no_input": "Neplatné volanie; nebol špecifikovaný vstup",
+ "cite_error_references_duplicate_key": "Neplatná značka <code>&lt;ref&gt;</code>; názov „$1“ je použitý viackrát s rôznym obsahom",
+ "cite_error_references_invalid_parameters": "Neplatné parametre; neočakávli sa žiadne",
+ "cite_error_references_no_backlink_label": "Minuli sa generované návestia spätných odkazov, definujte viac v správe <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Vyčerpané prispôsobené označenia odkazov pre skupinu „$1“.\nDefinujte ďalšie v správe <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Neplatná značka <code>&lt;ref&gt;</code>; nebol zadaný text pre referencie s názvom <code>$1</code>",
+ "cite_error_included_ref": "Chýba zakončenie značky <code>&lt;ref&gt;</code> (<code>&lt;/ref&gt;</code>)",
+ "cite_error_group_refs_without_references": "Značky <code>&lt;ref&gt;</code> pre skupinu „$1“ sú prítomné, ale nebola nájdená zodpovedajúca značka <code>&lt;references group=\"$1\"/&gt;</code>",
+ "cite_error_references_group_mismatch": "Značka <code>&lt;ref&gt;</code> v <code>&lt;references&gt;</code> má konfliktný atribút skupiny „$1“.",
+ "cite_error_references_missing_group": "Značka <code>&lt;ref&gt;</code> v <code>&lt;references&gt;</code> má atribút skupiny „$1“, ktorý sa v predošlom texte nevyskytuje.",
+ "cite_error_references_missing_key": "Značka <code>&lt;ref&gt;</code> s názvom „$1“ definovaná v <code>&lt;references&gt;</code> sa v predošlom texte nevyskytuje.",
+ "cite_error_references_no_key": "Značka <code>&lt;ref&gt;</code> s definovaná v <code>&lt;references&gt;</code> nemá žiaden atribút názov.",
+ "cite_error_empty_references_define": "Značka <code>&lt;ref&gt;</code> s definovaná v <code>&lt;references&gt;</code> s názvom „$1“ nemá žiaden obsah.",
+ "cite-tracking-category-cite-error": "Stránky s chybami v referenciách",
+ "cite-tracking-category-cite-error-desc": "Stránky v tejto kategórii obsahujú chyby v použití značiek pre citačné referencie.",
+ "cite_references_link_accessibility_label": "Prejsť nahor",
+ "cite_references_link_many_accessibility_label": "Prejsť nahor k:",
+ "cite_section_preview_references": "Náhľad referencií",
+ "cite_warning": "Upozornenie k citácii: $1",
+ "cite_warning_sectionpreview_no_text": "Nemožno zobraziť náhľad značky <code>&lt;ref&gt;</code> s názvom <code>$1</code>, pretože je definovaná mimo aktuálnu sekciu alebo nie je definovaná vôbec."
+}
diff --git a/www/wiki/extensions/Cite/i18n/skr-arab.json b/www/wiki/extensions/Cite/i18n/skr-arab.json
new file mode 100644
index 00000000..7ee4ba41
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/skr-arab.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Saraiki"
+ ]
+ },
+ "cite_error": "سائیٹ غلطی:$1",
+ "cite_references_link_accessibility_label": "اتے ونڄو",
+ "cite_references_link_many_accessibility_label": "ایتھوں تائیں اُتے ونڄو:",
+ "cite_section_preview_references": "حوالیاں دی نمائش"
+}
diff --git a/www/wiki/extensions/Cite/i18n/sl.json b/www/wiki/extensions/Cite/i18n/sl.json
new file mode 100644
index 00000000..4fdb8a29
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/sl.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dbc334",
+ "Yerpo"
+ ]
+ },
+ "apihelp-query+references-description": "Vrne predstavitev podatkov sklicev, povezano z danimi stranmi.",
+ "apihelp-query+references-example-1": "Sklici, povezani z <kbd>Albertom Einsteinom</kbd>.",
+ "cite-desc": "Doda etiketi <nowiki><ref[ name=id]></nowiki> in <nowiki><references/></nowiki> za navajanje",
+ "cite_error": "Napaka pri navajanju: $1",
+ "cite_error_ref_numeric_key": "Neveljavna oznaka <code>&lt;ref&gt;</code>;\nime ne more biti samo število. Uporabite opisni naslov",
+ "cite_error_ref_no_key": "Začetna oznaka <code>&lt;ref&gt;</code> je poškodovana ali ima slabo ime",
+ "cite_error_ref_too_many_keys": "Neveljavna etiketa <code>&lt;ref&gt;</code>;\nneveljavna imena, npr. preveč",
+ "cite_error_ref_no_input": "Neveljavna oznaka <code>&lt;ref&gt;</code>;\nsklici brez imena morajo imeti vsebino",
+ "cite_error_references_duplicate_key": "Neveljavna oznaka <code>&lt;ref&gt;</code>; ime »$1« je opredeljeno večkrat z drugačno vsebino",
+ "cite_error_references_invalid_parameters": "Neveljaven parameter v oznaki <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Zmanjkalo je oznak za povratne povezave.\nDoločite jih več v sporočilu <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_no_link_label_group": "Zmanjkalo je oznak povezav po meri za skupino »$1«.\nDoločite jih več v sporočilu <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Neveljavna oznaka <code>&lt;ref&gt;</code>;\nsklici imenovani <code>$1</code> nimajo določenega besedila",
+ "cite_error_included_ref": "Zaključek <code>&lt;/ref&gt;</code> manjka za etiketo <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Obstajajo etikete <code>&lt;ref&gt;</code> za skupino, imenovano »$1«, vendar ustrezne etikete <code>&lt;references group=\"$1\"/&gt;</code> ni bilo mogoče najti ali pa manjka zaključni <code>&lt;/ref&gt;</code>",
+ "cite_error_references_group_mismatch": "Oznaka <code>&lt;ref&gt;</code> v <code>&lt;references&gt;</code> ima atribut nasprotujoče si skupine »$1«.",
+ "cite_error_references_missing_group": "Oznaka <code>&lt;ref&gt;</code>, opredeljena v <code>&lt;references&gt;</code>, ima atribut skupine »$1«, ki se ne pojavi v predhodnem besedilu.",
+ "cite_error_references_missing_key": "Oznaka <code>&lt;ref&gt;</code> z imenom »$1«, opredeljena v <code>&lt;references&gt;</code>, ni uporabljena v predhodnem besedilu.",
+ "cite_error_references_no_key": "Etiketa <code>&lt;ref&gt;</code>, določena v <code>&lt;references&gt;</code>, nima lastnosti »name«.",
+ "cite_error_empty_references_define": "Etiketa <code>&lt;ref&gt;</code>, določena v <code>&lt;references&gt;</code> z imenom »$1«, nima vsebine.",
+ "cite-tracking-category-cite-error": "Strani z napakami sklicev",
+ "cite-tracking-category-cite-error-desc": "Strani v tej kategoriji imajo napake pri uporabi oznak za sklice.",
+ "cite_references_link_one": "<li id=\"$1\"><span class=\"mw-cite-backlink\">'''[[#$2|^]]'''</span> $3</li>",
+ "cite_references_link_many": "<li id=\"$1\"><span class=\"mw-cite-backlink\">^ $2</span> $3</li>",
+ "cite_references_link_many_format_backlink_labels": "a b c č d e f g h i j k l m n o p r s š t u v z ž a aa ab ac ač ad ae af ag ah ai aj ak al am an ao ap ar as aš at au av az až b ba bb bc bč bd be bf bg bh bi bj bk bl bm bn bo bp br bs bš bt bu bv bz bž c ca cb cc cč cd ce cf cg ch ci cj ck cl cm cn co cp cr cs cš ct cu cv cz cž č ča čb čc čč čd če čf čg čh či čj čk čl čm čn čo čp čr čs čš čt ču čv čz čž d da db dc dč dd de df dg dh di dj dk dl dm dn do dp dr ds dš dt du dv dz dž e ea eb ec eč ed ee ef eg eh ei ej ek el em en eo ep er es eš et eu ev ez ež f fa fb fc fč fd fe ff fg fh fi fj fk fl fm fn fo fp fr fs fš ft fu fv fz fž g ga gb gc gč gd ge gf gg gh gi gj gk gl gm gn go gp gr gs gš gt gu gv gz gž h ha hb hc hč hd he hf hg hh hi hj hk hl hm hn ho hp hr hs hš ht hu hv hz hž i ia ib ic ič id ie if ig ih ii ij ik il im in io ip ir is iš it iu iv iz iž j ja jb jc jč jd je jf jg jh ji jj jk jl jm jn jo jp jr js jš jt ju jv jz jž k ka kb kc kč kd ke kf kg kh ki kj kk kl km kn ko kp kr ks kš kt ku kv kz kž l la lb lc lč ld le lf lg lh li lj lk ll lm ln lo lp lr ls lš lt lu lv lz lž m ma mb mc mč md me mf mg mh mi mj mk ml mm mn mo mp mr ms mš mt mu mv mz mž n na nb nc nč nd ne nf ng nh ni nj nk nl nm nn no np nr ns nš nt nu nv nz nž o oa ob oc oč od oe of og oh oi oj ok ol om on oo op or os oš ot ou ov oz ož p pa pb pc pč pd pe pf pg ph pi pj pk pl pm pn po pp pr ps pš pt pu pv pz pž r ra rb rc rč rd re rf rg rh ri rj rk rl rm rn ro rp rr rs rš rt ru rv rz rž s sa sb sc sč sd se sf sg sh si sj sk sl sm sn so sp sr ss sš st su sv sz sž š ša šb šc šč šd še šf šg šh ši šj šk šl šm šn šo šp šr šs šš št šu šv šz šž t ta tb tc tč td te tf tg th ti tj tk tl tm tn to tp tr ts tš tt tu tv tz tž u ua ub uc uč ud ue uf ug uh ui uj uk ul um un uo up ur us uš ut uu uv uz už v va vb vc vč vd ve vf vg vh vi vj vk vl vm vn vo vp vr vs vš vt vu vv vz vž z za zb zc zč zd ze zf zg zh zi zj zk zl zm zn zo zp zr zs zš zt zu zv zz zž ž ža žb žc žč žd že žf žg žh ži žj žk žl žm žn žo žp žr žs žš žt žu žv žz žž",
+ "cite_references_link_accessibility_label": "Skoči gor",
+ "cite_references_link_many_accessibility_label": "Skoči gor na:",
+ "cite_section_preview_references": "Predogled sklicev",
+ "cite_warning": "Napaka navajanja: $1",
+ "cite_warning_sectionpreview_no_text": "Oznake <code>&lt;ref&gt;</code> z imenom <code>$1</code> ne morete predogledati, ker je opredeljena zunaj trenutnega razdelka ali pa sploh ni opredeljena."
+}
diff --git a/www/wiki/extensions/Cite/i18n/sq.json b/www/wiki/extensions/Cite/i18n/sq.json
new file mode 100644
index 00000000..b1cde506
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/sq.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mikullovci11",
+ "Olsi"
+ ]
+ },
+ "cite-desc": "Shton etiketa <nowiki><ref[ name=id]></nowiki> dhe <nowiki><references/></nowiki> për citime",
+ "cite_error": "Gabim referencash: $1",
+ "cite_error_ref_numeric_key": "Etiketë <code>&lt;ref&gt;</code> e pavlefshme;\nemri nuk mund të jetë një numër i plotë i thjeshtë. Përdorni një titull përshkrues",
+ "cite_error_ref_no_key": "Etiketë <code>&lt;ref&gt;</code> e pavlefshme;\nrefs pa përmbajtje duhet të kenë një emër",
+ "cite_error_ref_too_many_keys": "Etiketë <code>&lt;ref&gt;</code> e pavlefshme;\nemra të pavlefshëm, p.sh. shumë",
+ "cite_error_ref_no_input": "Etiketë <code>&lt;ref&gt;</code> e pavlefshme;\nrefs pa emër duhet të kenë përmbajtje",
+ "cite_error_references_invalid_parameters": "Etiketë <code>&lt;references&gt;</code> e pavlefshme;\nasnjë parametër nuk lejohet.\nPërdorni <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Nga ran të etiketave backlink me porosi. \nPercaktoni më shumë në <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> mesazh.",
+ "cite_error_no_link_label_group": "Nga ran e etiketave lidhje me porosi për grupin \"$1\". \nPercaktoni më shumë në <nowiki> [[MediaWiki:$2]] </nowiki> mesazh.",
+ "cite_error_references_no_text": "Etiketë <code>&lt;ref&gt;</code> e pavlefshme;\nasnjë tekst nuk u dha për refs e quajtura <code>$1</code>",
+ "cite_error_included_ref": "Duke mbyllur <code>&lt;/ref&gt;</code> mungon për etiketën <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Etiketat <code>&lt;ref&gt;</code> ekzistojnë për një grup të quajtur \"$1\", por nuk u gjet etiketa korresponduese <code>&lt;references group=\"$1\"/&gt;</code>",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code> tag in <code>&lt;references&gt;</code> has conflicting group attribute \"$1\".",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code> etiketa e përcaktuar në <code>&lt;referenca&gt;</code> ka atribut grup \"$1\" që nuk duket në tekstin paraprak.",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code> etiketa me emrin \"$1\" e percaktuar ne <code>&lt;referenca&gt;</code> nuk është përdorur në tekst paraprak.",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code> etiketa e përcaktuar në <code>&lt;referenca&gt;</code> nuk ka ndonjë atribut emër.",
+ "cite_error_empty_references_define": "<code>&lt;ref&gt;</code> etiketa e përcaktuar në <code>&lt;referenca&gt;</code> me emrin \"$1\" nuk ka përmbajtje."
+}
diff --git a/www/wiki/extensions/Cite/i18n/sr-ec.json b/www/wiki/extensions/Cite/i18n/sr-ec.json
new file mode 100644
index 00000000..cef2e23a
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/sr-ec.json
@@ -0,0 +1,49 @@
+{
+ "@metadata": {
+ "authors": [
+ "Milicevic01",
+ "Millosh",
+ "Rancher",
+ "Михајло Анђелковић",
+ "Srdjan m",
+ "Сербијана",
+ "Obsuser",
+ "Acamicamacaraca",
+ "BadDog"
+ ]
+ },
+ "cite-desc": "Додаје <nowiki><ref[ name=id]></nowiki> и <nowiki><references/></nowiki> ознаке за цитирање.",
+ "cite_error": "Грешка код цитирања: $1",
+ "cite_error_ref_numeric_key": "Невалидан таг <code>&lt;ref&gt;</code>;\nиме не може да буде једноставан цели број. Користите описни наслов.",
+ "cite_error_ref_no_key": "Почетка ознака <code>&lt;ref&gt;</code> није исправно обликована или садржи неисправан назив",
+ "cite_error_ref_too_many_keys": "Лоша ознака <code>&lt;ref&gt;</code>; лоша имена, односно много њих.",
+ "cite_error_ref_no_input": "Лоша ознака <code>&lt;ref&gt;</code>; ref-ови без имена морају имати садржај.",
+ "cite_error_references_duplicate_key": "Неисправна <code>&lt;ref&gt;</code> ознака; име „$1“ је дефинисано више пута с различитим садржајем",
+ "cite_error_references_invalid_parameters": "Невалидан параметар у тагу <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Нестале су посебне ознаке за задње везе. Одреди их више у поруци <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_no_link_label_group": "Недовољан број произвољних наслова веза за групу „$1“.\nДефинишите више путем поруке <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Лоша ознака <code>&lt;ref&gt;</code>; нема текста за ref-ове под именом <code>$1</code>.",
+ "cite_error_included_ref": "Затвара <code><code>&lt;/ref&gt;</code></code> који недостаје <code>&lt;ref&gt;</code> ознаци",
+ "cite_error_group_refs_without_references": "Постоје ознаке <code>&lt;ref&gt;</code> за групу с именом „$1“, али нема одговарајуће ознаке <code>&lt;references group=\"$1\"/&gt;</code>, или затварајући <code>&lt;/ref&gt;</code> недостаје",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code> ознака у <code>&lt;references&gt;</code> има сукобни групни параметар „$1“.",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code> ознака дефинисана у <code>&lt;references&gt;</code> има групни параметар „$1“ који се не појављује у ранијем тексту.",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code> таг са именом „$1” дефинисан у <code>&lt;references&gt;</code> није употребљен у претходном тексту.",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code> ознака дефинисана у <code>&lt;references&gt;</code> нема параметар „name“ (име).",
+ "cite_error_empty_references_define": "<code>&lt;ref&gt;</code> ознака дефинисана у <code>&lt;references&gt;</code> с именом „$1“ нема никаквог садржаја.",
+ "cite-tracking-category-cite-error": "Странице са грешкама у референцама",
+ "cite-tracking-category-cite-error-desc": "Странице у овој категорији имају грешке у употреби ознаке референца.",
+ "cite_reference_link_key_with_num": "$1_$2",
+ "cite_reference_link_prefix": "cite_ref-",
+ "cite_references_link_prefix": "cite_note-",
+ "cite_references_link_one": "<li id=\"$1\"><span class=\"mw-cite-backlink\">[[#$2|↑]]</span> $3</li>",
+ "cite_references_link_many": "<li id=\"$1\"><span class=\"mw-cite-backlink\">↑ $2</span> $3</li>",
+ "cite_references_link_many_format": "<sup>[[#$1|$2]]</sup>",
+ "cite_references_link_many_format_backlink_labels": "а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш аа аб ав аг ад ађ ае аж аз аи ај ак ал аљ ам ан ањ ао ап ар ас ат аћ ау аф ах ац ач аџ аш ба бб бв бг бд бђ бе бж бз би бј бк бл бљ бм бн бњ бо бп бр бс бт бћ бу бф бх бц бч бџ бш ва вб вв вг вд вђ ве вж вз ви вј вк вл вљ вм вн вњ во вп вр вс вт вћ ву вф вх вц вч вџ вш га гб гв гг гд гђ ге гж гз ги гј гк гл гљ гм гн гњ го гп гр гс гт гћ гу гф гх гц гч гџ гш да дб дв дг дд дђ де дж дз ди дј дк дл дљ дм дн дњ до дп др дс дт дћ ду дф дх дц дч дџ дш ђа ђб ђв ђг ђд ђђ ђе ђж ђз ђи ђј ђк ђл ђљ ђм ђн ђњ ђо ђп ђр ђс ђт ђћ ђу ђф ђх ђц ђч ђџ ђш еа еб ев ег ед еђ ее еж ез еи еј ек ел ељ ем ен ењ ео еп ер ес ет ећ еу еф ех ец еч еџ еш жа жб жв жг жд жђ же жж жз жи жј жк жл жљ жм жн жњ жо жп жр жс жт жћ жу жф жх жц жч жџ жш за зб зв зг зд зђ зе зж зз зи зј зк зл зљ зм зн зњ зо зп зр зс зт зћ зу зф зх зц зч зџ зш иа иб ив иг ид иђ ие иж из ии иј ик ил иљ им ин ињ ио ип ир ис ит ић иу иф их иц ич иџ иш ја јб јв јг јд јђ је јж јз ји јј јк јл јљ јм јн јњ јо јп јр јс јт јћ ју јф јх јц јч јџ јш ка кб кв кг кд кђ ке кж кз ки кј кк кл кљ км кн књ ко кп кр кс кт кћ ку кф кх кц кч кџ кш ла лб лв лг лд лђ ле лж лз ли лј лк лл лљ лм лн лњ ло лп лр лс лт лћ лу лф лх лц лч лџ лш ља љб љв љг љд љђ ље љж љз љи љј љк љл љљ љм љн љњ љо љп љр љс љт љћ љу љф љх љц љч љџ љш ма мб мв мг мд мђ ме мж мз ми мј мк мл мљ мм мн мњ мо мп мр мс мт мћ му мф мх мц мч мџ мш на нб нв нг нд нђ не нж нз ни нј нк нл нљ нм нн нњ но нп нр нс нт нћ ну нф нх нц нч нџ нш ња њб њв њг њд њђ ње њж њз њи њј њк њл њљ њм њн њњ њо њп њр њс њт њћ њу њф њх њц њч њџ њш оа об ов ог од ођ ое ож оз ои ој ок ол ољ ом он оњ оо оп ор ос от оћ оу оф ох оц оч оџ ош па пб пв пг пд пђ пе пж пз пи пј пк пл пљ пм пн пњ по пп пр пс пт пћ пу пф пх пц пч пџ пш ра рб рв рг рд рђ ре рж рз ри рј рк рл рљ рм рн рњ ро рп рр рс рт рћ ру рф рх рц рч рџ рш са сб св сг сд сђ се сж сз си сј ск сл сљ см сн сњ со сп ср сс ст сћ су сф сх сц сч сџ сш та тб тв тг тд тђ те тж тз ти тј тк тл тљ тм тн тњ то тп тр тс тт тћ ту тф тх тц тч тџ тш ћа ћб ћв ћг ћд ћђ ће ћж ћз ћи ћј ћк ћл ћљ ћм ћн ћњ ћо ћп ћр ћс ћт ћћ ћу ћф ћх ћц ћч ћџ ћш уа уб ув уг уд уђ уе уж уз уи уј ук ул уљ ум ун уњ уо уп ур ус ут ућ уу уф ух уц уч уџ уш фа фб фв фг фд фђ фе фж фз фи фј фк фл фљ фм фн фњ фо фп фр фс фт фћ фу фф фх фц фч фџ фш ха хб хв хг хд хђ хе хж хз хи хј хк хл хљ хм хн хњ хо хп хр хс хт хћ ху хф хх хц хч хџ хш ца цб цв цг цд цђ це цж цз ци цј цк цл цљ цм цн цњ цо цп цр цс цт цћ цу цф цх цц цч цџ цш ча чб чв чг чд чђ че чж чз чи чј чк чл чљ чм чн чњ чо чп чр чс чт чћ чу чф чх чц чч чџ чш џа џб џв џг џд џђ џе џж џз џи џј џк џл џљ џм џн џњ џо џп џр џс џт џћ џу џф џх џц џч џџ џш ша шб шв шг шд шђ ше шж шз ши шј шк шл шљ шм шн шњ шо шп шр шс шт шћ шу шф шх шц шч шџ шш",
+ "cite_references_link_many_sep": "&#32;",
+ "cite_references_link_many_and": "&#32;",
+ "cite_references_link_accessibility_label": "Врати се на врх",
+ "cite_references_link_many_accessibility_label": "Врати се на:",
+ "cite_section_preview_references": "Претпреглед референци",
+ "cite_warning": "Упозорење за референцирање: $1",
+ "cite_warning_sectionpreview_no_text": "<code>&lt;ref&gt;</code> таг са именом <code>$1</code> не може да се прикаже у претпрегледу јер је дефинисан ван тренутног одељка или није уопште дефинисан."
+}
diff --git a/www/wiki/extensions/Cite/i18n/sr-el.json b/www/wiki/extensions/Cite/i18n/sr-el.json
new file mode 100644
index 00000000..198baa74
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/sr-el.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michaello",
+ "Milicevic01"
+ ]
+ },
+ "cite-desc": "Dodaje <nowiki><ref[ name=id]></nowiki> i <nowiki><references/></nowiki> oznake za citiranje.",
+ "cite_error": "Greška citata: $1",
+ "cite_error_ref_numeric_key": "Loša oznaka <code>&amp;lt;ref&amp;gt;</code>; ime ne može biti jednostavni intedžer. Koristi opisni naslov.",
+ "cite_error_ref_no_key": "Loša oznaka <code>&amp;lt;ref&amp;gt;</code>; ref-ovi bez sadržaja moraju imati ime.",
+ "cite_error_ref_too_many_keys": "Loša oznaka <code>&amp;lt;ref&amp;gt;</code>; loša imena, odnosno mnogo njih.",
+ "cite_error_ref_no_input": "Loša oznaka <code>&amp;lt;ref&amp;gt;</code>; ref-ovi bez imena moraju imati sadržaj.",
+ "cite_error_references_invalid_parameters": "Loša oznaka <code>&amp;lt;references&amp;gt;</code>; parametri nisu dozvoljeni. Koristi <code>&amp;lt;references /&amp;gt;</code>.",
+ "cite_error_references_no_backlink_label": "Nestale su posebne oznake za zadnje veze. Odredi ih više u poruci <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
+ "cite_error_references_no_text": "Loša oznaka <code>&amp;lt;ref&amp;gt;</code>; nema teksta za ref-ove pod imenom <code>$1</code>.",
+ "cite_error_included_ref": "Zatvara <code>&lt;/ref&gt;</code> koji nedostaje <code>&lt;ref&gt;</code> tagu",
+ "cite_error_group_refs_without_references": "<code><ref></code> tagovi postoje za grupu pod imenom \"$1\", ali nije nađen odgovarajući <code><references group=\"$1\"/></code> tag",
+ "cite-tracking-category-cite-error-desc": "Stranice koje imaju greške u korišćenju oznaka referenci.",
+ "cite_reference_link_key_with_num": "$1_$2",
+ "cite_reference_link_prefix": "cite_ref-",
+ "cite_references_link_prefix": "cite_note-",
+ "cite_references_link_one": "<li id=\"$1\"><span class=\"mw-cite-backlink\">[[#$2|↑]]</span> $3</li>",
+ "cite_references_link_many": "<li id=\"$1\"><span class=\"mw-cite-backlink\">↑ $2</span> $3</li>",
+ "cite_references_link_many_format": "<sup>[[#$1|$2]]</sup>",
+ "cite_references_link_many_format_backlink_labels": "a b v g d đ e ž z i j k l lj m n nj o p r s t ć u f h c č dž š aa ab av ag ad ađ ae až az ai aj ak al alj am an anj ao ap ar as at ać au af ah ac ač adž aš ba bb bv bg bd bđ be bž bz bi bj bk bl blj bm bn bnj bo bp br bs bt bć bu bf bh bc bč bdž bš va vb vv vg vd vđ ve vž vz vi vj vk vl vlj vm vn vnj vo vp vr vs vt vć vu vf vh vc vč vdž vš ga gb gv gg gd gđ ge gž gz gi gj gk gl glj gm gn gnj go gp gr gs gt gć gu gf gh gc gč gdž gš da db dv dg dd dđ de dž dz di dj dk dl dlj dm dn dnj do dp dr ds dt dć du df dh dc dč ddž dš đa đb đv đg đd ]] đe đž đz đi đj đk đl đlj đm đn đnj đo đp đr đs đt đć đu đf đh đc đč đdž đš ea eb ev eg ed eđ ee ež ez ei ej ek el elj em en enj eo ep er es et eć eu ef eh ec eč edž eš ža žb žv žg žd žđ že žž žz ži žj žk žl žlj žm žn žnj žo žp žr žs žt žć žu žf žh žc žč ždž žš za zb zv zg zd zđ ze zž zz zi zj zk zl zlj zm zn znj zo zp zr zs zt zć zu zf zh zc zč zdž zš ia ib iv ig id iđ ie iž iz ii ij ik il ilj im in inj io ip ir is it ić iu if ih ic ič idž iš ja jb jv jg jd jđ je jž jz ji jj jk jl jlj jm jn jnj jo jp jr js jt jć ju jf jh jc jč jdž jš ka kb kv kg kd kđ ke kž kz ki kj kk kl klj km kn knj ko kp kr ks kt kć ku kf kh kc kč kdž kš la lb lv lg ld lđ le lž lz li lj lk ll llj lm ln lnj lo lp lr ls lt lć lu lf lh lc lč ldž lš lja ljb ljv ljg ljd ljđ lje ljž ljz lji ljj ljk ljl ljlj ljm ljn ljnj ljo ljp ljr ljs ljt ljć lju ljf ljh ljc ljč ljdž ljš ma mb mv mg md mđ me mž mz mi mj mk ml mlj mm mn mnj mo mp mr ms mt mć mu mf mh mc mč mdž mš na nb nv ng nd nđ ne nž nz ni nj nk nl nlj nm nn nnj no np nr ns nt nć nu nf nh nc nč ndž nš nja njb njv njg njd njđ nje njž njz nji njj njk njl njlj njm njn njnj njo njp njr njs njt njć nju njf njh njc njč njdž njš oa ob ov og od ođ oe ož oz oi oj ok ol olj om on onj oo op or os ot oć ou of oh oc oč odž oš pa pb pv pg pd pđ pe pž pz pi pj pk pl plj pm pn pnj po pp pr ps pt pć pu pf ph pc pč pdž pš ra rb rv rg rd rđ re rž rz ri rj rk rl rlj rm rn rnj ro rp rr rs rt rć ru rf rh rc rč rdž rš sa sb sv sg sd sđ se sž sz si sj sk sl slj sm sn snj so sp sr ss st sć su sf sh sc sč sdž sš ta tb tv tg td tđ te tž tz ti tj tk tl tlj tm tn tnj to tp tr ts tt tć tu tf th tc tč tdž tš ća ćb ćv ćg ćd ćđ će ćž ćz ći ćj ćk ćl ćlj ćm ćn ćnj ćo ćp ćr ćs ćt ćć ću ćf ćh ćc ćč ćdž ćš ua ub uv ug ud uđ ue už uz ui uj uk ul ulj um un unj uo up ur us ut uć uu uf uh uc uč udž uš fa fb fv fg fd fđ fe fž fz fi fj fk fl flj fm fn fnj fo fp fr fs ft fć fu ff fh fc fč fdž fš ha hb hv hg hd hđ he hž hz hi hj hk hl hlj hm hn hnj ho hp hr hs ht hć hu hf hh hc hč hdž hš ca cb cv cg cd cđ ce cž cz ci cj ck cl clj cm cn cnj co cp cr cs ct cć cu cf ch cc cč cdž cš ča čb čv čg čd čđ če čž čz či čj čk čl člj čm čn čnj čo čp čr čs čt čć ču čf čh čc čč čdž čš dža džb džv džg džd džđ dže džž džz dži džj džk džl džlj džm džn džnj džo džp džr džs džt džć džu džf džh džc džč dždž džš ša šb šv šg šd šđ še šž šz ši šj šk šl šlj šm šn šnj šo šp šr šs št šć šu šf šh šc šč šdž šš",
+ "cite_references_link_many_sep": "&#32;",
+ "cite_references_link_many_and": "&#32;"
+}
diff --git a/www/wiki/extensions/Cite/i18n/stq.json b/www/wiki/extensions/Cite/i18n/stq.json
new file mode 100644
index 00000000..ace1303c
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/stq.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Pyt"
+ ]
+ },
+ "cite-desc": "Föiget foar Wällenätterwiese do <nowiki><ref[ name=id]></nowiki> un <nowiki><references/></nowiki> Tags tou",
+ "cite_error": "Referenz-Failer $1",
+ "cite_error_ref_numeric_key": "Uungultige <code><nowiki><ref></nowiki></code>-Ferweendenge: „name“ duur naan skeenen Taalenwäid weese, benutsje n beskrieuwenden Noome.",
+ "cite_error_ref_no_key": "Uungultige <code><nowiki><ref></nowiki></code>-Ferweendenge: „ref“ sunner Inhoold mout n Noome hääbe.",
+ "cite_error_ref_too_many_keys": "Uungultige <code><nowiki><ref></nowiki></code>-Ferweendenge: „name“ is uungultich of tou loang.",
+ "cite_error_ref_no_input": "Uungultige <code><nowiki><ref></nowiki></code>-Ferweendenge: „ref“ sunner Noome mout n Inhoold hääbe.",
+ "cite_error_references_invalid_parameters": "Uungultige <code><nowiki><reference></nowiki></code>-Ferweendenge: Der sunt neen bietoukuumende Parametere ferlööwed, ferweend bloot <code><nowiki><reference /></nowiki></code>.",
+ "cite_error_references_no_backlink_label": "Ne Referenz fon ju Foarm <code><nowiki><ref name=\"...\"/></nowiki></code> wäd oafter benutsed as Bouksteeuwen deer sunt. N Administrator mout <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> uum wiedere Bouksteeuwen/Teekene ferfulständigje.",
+ "cite_error_references_no_text": "Uungultigen <code>&lt;ref&gt;</code>-Tag; der wuude naan Text foar dät Ref mäd dän Noome <code>$1</code> anroat.",
+ "cite_error_included_ref": "Der failt n sluutend <code>&lt;/ref&gt;</code>",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code>-Tags existierje foar ju Gruppe „$1“, man neen deertou heerend <code>&lt;references group=„$1“/&gt;</code>-Tag wuud fuunen",
+ "cite_error_references_group_mismatch": "Dät <code>&lt;ref&gt;</code>-Tag in <code>&lt;references&gt;</code> häd dät Konfliktgruppenattribut „$1“.",
+ "cite_error_references_missing_group": "Dät <code>&lt;ref&gt;</code> Tag, as definierd in <code>&lt;references&gt;</code> häd dät Gruppenattribut \"$1\", dät nit in dän foaruutgungende Text foarkumt.",
+ "cite_error_references_missing_key": "Dät in <code>&lt;references&gt;</code> definierde <code>&lt;ref&gt;</code>-Tag mäd dän Noome „$1“ wäd in dän foaruutgungende Text nit ferwoand.",
+ "cite_error_references_no_key": "Dät in <code>&lt;references&gt;</code> definierde <code>&lt;ref&gt;</code>-Tag häd neen Noomensattribut.",
+ "cite_error_empty_references_define": "Dät in <code>&lt;references&gt;</code> definierde <code>&lt;ref&gt;</code>-Tag mäd dän Noome „$1“ wiest naan Inhoold ap."
+}
diff --git a/www/wiki/extensions/Cite/i18n/sty.json b/www/wiki/extensions/Cite/i18n/sty.json
new file mode 100644
index 00000000..b26a0266
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/sty.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Khanmarat"
+ ]
+ },
+ "cite_error": "Цитаталаштырыута ҡата: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/su.json b/www/wiki/extensions/Cite/i18n/su.json
new file mode 100644
index 00000000..5e1f9c92
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/su.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kandar"
+ ]
+ },
+ "cite-desc": "Nambahkeun tag <nowiki><ref[ name=id]></nowiki> jeung <nowiki><references/></nowiki>, pikeun cutatan",
+ "cite_error": "Salah ngutip: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/sv.json b/www/wiki/extensions/Cite/i18n/sv.json
new file mode 100644
index 00000000..9359b02c
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/sv.json
@@ -0,0 +1,46 @@
+{
+ "@metadata": {
+ "authors": [
+ "Boivie",
+ "Fluff",
+ "Jopparn",
+ "Lejonel",
+ "M.M.S.",
+ "Najami",
+ "Skalman",
+ "Lokal Profil",
+ "WikiPhoenix",
+ "MagnusA",
+ "GameOn"
+ ]
+ },
+ "apihelp-query+references-description": "Returnera en datarepresentation av referenser associerade med den angivna sidorna.",
+ "apihelp-query+references-summary": "Returnera en datarepresentation av referenser associerade med de angivna sidorna.",
+ "apihelp-query+references-example-1": "Referenser associerade med <kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "Referenslagringen i Cite-tillägget är inte aktiverad.",
+ "cite-desc": "Lägger till taggarna <nowiki><ref[ name=id]></nowiki> och <nowiki><references/></nowiki> för referenser till källor",
+ "cite_error": "Referensfel: $1",
+ "cite_error_ref_numeric_key": "Ogiltig <code>&lt;ref&gt;</code>-tagg; parametern 'name' kan inte vara ett tal, använd en beskrivande titel",
+ "cite_error_ref_no_key": "Den inledande <code>&lt;ref&gt;</code>-taggen är felaktig eller har ett trasigt namn",
+ "cite_error_ref_too_many_keys": "Ogiltig <code>&lt;ref&gt;</code>-tagg;\nogiltiga namn, t.ex. för många",
+ "cite_error_ref_no_input": "Ogiltig <code>&lt;ref&gt;</code>-tagg; referenser utan namn måste ha innehåll",
+ "cite_error_references_duplicate_key": "Taggen <code>&lt;ref&gt;</code> är ogiltig; namnet \"$1\" definieras flera gånger med olika innehåll",
+ "cite_error_references_invalid_parameters": "Ogiltig parameter i <code>&lt;references&gt;</code>-tagg",
+ "cite_error_references_no_backlink_label": "De anpassade etiketterna för tillbaka-länkar har tagit slut. Definiera fler etiketter i systemmedelandet <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Anpassade länketiketter för gruppen \"$1\" tog slut.\nDefinera fler i <nowiki>[[MediaWiki:$2]]</nowiki>-meddelandet.",
+ "cite_error_references_no_text": "Ogiltig <code>&lt;ref&gt;</code>-tagg; ingen text har angivits för referensen med namnet <code>$1</code>",
+ "cite_error_included_ref": "Avslutande <code>&lt;/ref&gt;</code> saknas för <code>&lt;ref&gt;</code>-tagg",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code>-taggar finns för en grupp vid namn \"$1\", men ingen motsvarande <code>&lt;references group=\"$1\"/&gt;</code>-tagg hittades, eller så saknas en avslutande <code>&lt;/ref&gt;</code>",
+ "cite_error_references_group_mismatch": "<code>&lt;ref&gt;</code>-tagg i <code>&lt;references&gt;</code> har ett motstridigt group-attribut \"$1\".",
+ "cite_error_references_missing_group": "<code>&lt;ref&gt;</code>-tagg definierad i <code>&lt;references&gt;</code> har group-attribut \"$1\" som inte används tidigare i texten.",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code>-tagg med namn \"$1\", definierad i <code>&lt;references&gt;</code> används inte tidigare i texten.",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code>-tagg definierad i <code>&lt;references&gt;</code> saknar name-attribut.",
+ "cite_error_empty_references_define": "<code>&lt;ref&gt;</code>-tagg definierad i <code>&lt;ref&gt;</code> med namn \"$1\" har inget innehåll.",
+ "cite-tracking-category-cite-error": "Sidor med referensfel",
+ "cite-tracking-category-cite-error-desc": "Sidor i denna kategori har fel i sin användning av referens-taggar.",
+ "cite_references_link_accessibility_label": "Hoppa upp",
+ "cite_references_link_many_accessibility_label": "Hoppa upp till:",
+ "cite_section_preview_references": "Förhandsgranskning av referenser",
+ "cite_warning": "Referensvarning: $1",
+ "cite_warning_sectionpreview_no_text": "Taggen <code>&lt;ref&gt;</code> med namnet <code>$1</code> kan inte förhandsgranskas då den definieras utanför det aktuella avsnittet eller inte har definierats alls."
+}
diff --git a/www/wiki/extensions/Cite/i18n/szl.json b/www/wiki/extensions/Cite/i18n/szl.json
new file mode 100644
index 00000000..15386404
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/szl.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Krol111"
+ ]
+ },
+ "cite_error": "Feler rozszerzyńo ''cite'': $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ta.json b/www/wiki/extensions/Cite/i18n/ta.json
new file mode 100644
index 00000000..a3be49ba
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ta.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jayarathina",
+ "Shanmugamp7",
+ "செல்வா"
+ ]
+ },
+ "cite-desc": "சேர்க்கிறது <nowiki><ref[ name=id]></nowiki>மற்றும் <nowiki><references/></nowiki> குறிச்சொற்கள், மேற்கோள்களுக்காக",
+ "cite_error": "பிழை காட்டு: $1",
+ "cite_error_references_no_text": "செல்லாத <code>&lt;ref&gt;</code> குறிச்சொல்;\n<code>$1</code> என்னும் பெயரில் உள்ள ref குறிச்சொல்லுக்கு உரையேதும் வழங்கப்படவில்லை"
+}
diff --git a/www/wiki/extensions/Cite/i18n/tay.json b/www/wiki/extensions/Cite/i18n/tay.json
new file mode 100644
index 00000000..c77d7d25
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/tay.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Translatealcd",
+ "Hitaypayan"
+ ]
+ },
+ "cite_error": "Min’uqu’ quw ’nagal su’$1",
+ "cite_references_link_accessibility_label": "Hzyaniy",
+ "cite_section_preview_references": "Pnaynama’ mita’ sa kkita’ kinbalay na bunkeng"
+}
diff --git a/www/wiki/extensions/Cite/i18n/tcy.json b/www/wiki/extensions/Cite/i18n/tcy.json
new file mode 100644
index 00000000..a09cda51
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/tcy.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "VASANTH S.N.",
+ "Vishwanatha Badikana",
+ "BHARATHESHA ALASANDEMAJALU"
+ ]
+ },
+ "cite_error": "ಉಲ್ಲೇಕೊ ದೋಸೊ: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/te.json b/www/wiki/extensions/Cite/i18n/te.json
new file mode 100644
index 00000000..d75ae514
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/te.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chaduvari",
+ "Ravichandra",
+ "Veeven"
+ ]
+ },
+ "cite-desc": "ఉదహరింపులకు <nowiki><ref[ name=id]></nowiki> మరియు <nowiki><references/></nowiki> టాగులను చేర్చుతుంది",
+ "cite_error": "ఉదహరింపు పొరపాటు: $1",
+ "cite_error_ref_numeric_key": "తప్పుడు <code>&lt;ref&gt;</code> టాగు; పేరు సరళ సంఖ్య అయివుండకూడదు, వివరమైన శీర్షిక వాడండి",
+ "cite_error_ref_no_key": "సరైన <code>&lt;ref&gt;</code> ట్యాగు కాదు; విషయం లేని ref లకు తప్పనిసరిగా పేరొకటుండాలి",
+ "cite_error_ref_too_many_keys": "సరైన <code>&lt;ref&gt;</code> ట్యాగు కాదు; తప్పు పేర్లు, ఉదాహరణకు మరీ ఎక్కువ",
+ "cite_error_ref_no_input": "సరైన <code>&lt;ref&gt;</code> ట్యాగు కాదు; పేరు లేని ref లలో తప్పనిసరిగా విషయం ఉండాలి",
+ "cite_error_references_invalid_parameters": "సరైన <code>&lt;references&gt;</code> ట్యాగు కాదు; పారామీటర్లకు కు అనుమతి లేదు, ఈ లోపాన్ని కలుగజేసే ఒక ఉదాహరణ: <references someparameter=\"value\" />",
+ "cite_error_references_no_backlink_label": "మీ స్వంత బ్యాక్‌లింకు లేబుళ్ళు అయిపోయాయి. <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> సందేశంలో మరిన్ని లేబుళ్ళను నిర్వచించుకోండి.",
+ "cite_error_references_no_text": "సరైన <code>&lt;ref&gt;</code> కాదు; <code>$1</code> అనే పేరుగల ref లకు పాఠ్యమేమీ ఇవ్వలేదు",
+ "cite_references_link_accessibility_label": "పైకి దూకు",
+ "cite_references_link_many_accessibility_label": "ఇక్కడికి దుముకు:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/tg-cyrl.json b/www/wiki/extensions/Cite/i18n/tg-cyrl.json
new file mode 100644
index 00000000..ea39067b
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/tg-cyrl.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ibrahim",
+ "ToJack",
+ "Vashgird"
+ ]
+ },
+ "cite-desc": "Барчасбҳои <nowiki><ref[ name=id]></nowiki> ва <nowiki><references/></nowiki> барои ёд кардан, изофа мекунад",
+ "cite_error": "Хатои ёдкард: $1",
+ "cite_error_ref_numeric_key": "Барчасби <code>&lt;ref&gt;</code> ғайримиҷоз; ном наметавонад як адад бошад, унвони возеҳтареро истифода кунед",
+ "cite_error_ref_no_key": "Барчасби <code>&lt;ref&gt;</code> ғайримиҷоз; ёдкардҳо бидуни мӯҳтаво бояд ном дошта бошанд",
+ "cite_error_ref_too_many_keys": "Барчасби <code>&lt;ref&gt;</code> ғайримиҷоз; номҳои ғайримиҷоз ё беш аз андоза",
+ "cite_error_ref_no_input": "Барчасби <code>&lt;ref&gt;</code> ғайримуҷоз; ёдкардҳои бидуни ном бояд муҳтаво дошта бошанд",
+ "cite_error_references_invalid_parameters": "Барчасби <code>&lt;references&gt;</code> ғайримиҷоз; истифода аз параметр миҷоз аст, аз <code>&lt;references /&gt;</code> истифода кунед",
+ "cite_error_references_no_backlink_label": "Барчасбҳои пайванд ба интиҳо расид, мавориди ҷадидро дар пайғоми <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> истифода кунед",
+ "cite_error_references_no_text": "Барчасби <code>&lt;ref&gt;</code> ғайримиҷоз; матне барои ёдкардҳо бо номи <code>$1</code> ворид нашудааст"
+}
diff --git a/www/wiki/extensions/Cite/i18n/tg-latn.json b/www/wiki/extensions/Cite/i18n/tg-latn.json
new file mode 100644
index 00000000..0cb38e02
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/tg-latn.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Liangent"
+ ]
+ },
+ "cite-desc": "Barcasbhoi <nowiki><ref[ name=id]></nowiki> va <nowiki><references/></nowiki> baroi jod kardan, izofa mekunad",
+ "cite_error": "Xatoi jodkard: $1",
+ "cite_error_ref_numeric_key": "Barcasbi <code>&lt;ref&gt;</code> ƣajrimiçoz; nom nametavonad jak adad boşad, unvoni vozehtarero istifoda kuned",
+ "cite_error_ref_no_key": "Barcasbi <code>&lt;ref&gt;</code> ƣajrimiçoz; jodkardho biduni mūhtavo bojad nom doşta boşand",
+ "cite_error_ref_too_many_keys": "Barcasbi <code>&lt;ref&gt;</code> ƣajrimiçoz; nomhoi ƣajrimiçoz jo beş az andoza",
+ "cite_error_ref_no_input": "Barcasbi <code>&lt;ref&gt;</code> ƣajrimiçoz; jodkardhoi biduni nom bojad mūhtavo doşta boşand",
+ "cite_error_references_invalid_parameters": "Barcasbi <code>&lt;references&gt;</code> ƣajrimiçoz; istifoda az parametr miçoz ast, az <code>&lt;references /&gt;</code> istifoda kuned",
+ "cite_error_references_no_backlink_label": "Barcasbhoi pajvand ba intiho rasid, mavoridi çadidro dar pajjom <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> istifoda kuned",
+ "cite_error_references_no_text": "Barcasbi <code>&lt;ref&gt;</code> ƣajrimiçoz; matne baroi jodkardho bo nomi <code>$1</code> vorid naşudaast"
+}
diff --git a/www/wiki/extensions/Cite/i18n/th.json b/www/wiki/extensions/Cite/i18n/th.json
new file mode 100644
index 00000000..b03f1ed4
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/th.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Horus",
+ "Passawuth"
+ ]
+ },
+ "cite-desc": "เพิ่มป้ายระบุ <nowiki><ref[ name=id]></nowiki> และ <nowiki><references /></nowiki> สำหรับการอ้างอิง",
+ "cite_error": "อ้างอิงผิดพลาด: $1",
+ "cite_error_ref_numeric_key": "ป้ายระบุ <code>&lt;ref&gt;</code> ไม่ถูกต้อง\nชื่อไม่สามารถเป็นจำนวนเต็มอย่างง่าย ใช้ชื่อเรื่องพรรณนา",
+ "cite_error_ref_no_key": "ป้ายระบุ <code>&lt;ref&gt;</code> ไม่ถูกต้อง\nอ้างอิงที่ไม่มีเนื้อหาต้องมีชื่อ",
+ "cite_error_ref_too_many_keys": "ป้ายระบุ <code>&lt;ref&gt;</code> ไม่ถูกต้อง\nชื่อไม่ถูกต้อง เช่น มากเกินไป",
+ "cite_error_ref_no_input": "ป้ายระบุ <code>&lt;ref&gt;</code> ไม่ถูกต้อง\nอ้างอิงที่ไม่มีชื่อต้องมีเนื้อหา",
+ "cite_error_references_duplicate_key": "ป้ายระบุ <code>&lt;ref&gt;</code> ไม่สมเหตุสมผล มีนิยามชื่อ \"$1\" หลายครั้งด้วยเนื้อหาต่างกัน",
+ "cite_error_references_invalid_parameters": "ป้ายระบุ <code>&lt;references&gt;</code> ไม่ถูกต้อง\nไม่อนุญาตให้มีพารามิเตอร์\nให้ใช้ <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_text": "ป้ายระบุ <code>&lt;ref&gt;</code> ไม่ถูกต้อง\nไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ <code>$1</code>",
+ "cite_error_included_ref": "ไม่มีการปิด <code>&lt;/ref&gt;</code> สำหรับป้ายระบุ <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "มีป้ายระบุ <code>&lt;ref&gt;</code> สำหรับกลุ่มชื่อ \"$1\" แต่ไม่พบป้ายระบุ <code>&lt;references group=\"$1\"/&gt;</code> ที่สอดคล้องกัน หรือไม่มีการปิด <code>&lt;/ref&gt;</code>",
+ "cite_error_references_group_mismatch": "ป้ายระบุ <code>&lt;ref&gt;</code> ใน <code>&lt;references&gt;</code> มีลักษณะกลุ่มขัดแย้ง \"$1\"",
+ "cite_error_references_missing_group": "ป้ายระบุ <code>&lt;ref&gt;</code> ที่นิยามใน <code>&lt;references&gt;</code> มีลักษณะกลุ่ม \"$1\" ซึ่งไม่ปรากฏในข้อความก่อนหน้า",
+ "cite_error_references_missing_key": "ป้ายระบุ <code>&lt;ref&gt;</code> ชื่อ \"$1\" ซึ่งนิยามใน <code>&lt;references&gt;</code> ไม่ถูกใช้ในข้อความก่อนหน้า",
+ "cite_error_references_no_key": "ป้ายระบุ <code>&lt;ref&gt;</code> ที่นิยามใน <code>&lt;references&gt;</code> ไม่มีลักษณะชื่อ",
+ "cite_error_empty_references_define": "ป้ายระบุ <code>&lt;ref&gt;</code> ที่นิยามใน <code>&lt;references&gt;</code> ด้วยชื่อ \"$1\" ไม่มีเนื้อหา",
+ "cite-tracking-category-cite-error": "หน้าที่มีข้อผิดพลาดการอ้างอิง",
+ "cite-tracking-category-cite-error-desc": "หน้าในหมวดหมู่นี้มีข้อผิดพลาดในการใช้ป้ายระบุอ้างอิง",
+ "cite_references_link_accessibility_label": "กระโดดขึ้น",
+ "cite_references_link_many_accessibility_label": "กระโดดขึ้นไป:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/tk.json b/www/wiki/extensions/Cite/i18n/tk.json
new file mode 100644
index 00000000..e78ddf53
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/tk.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hanberke"
+ ]
+ },
+ "cite_error": "Sitirleme säwligi: $1",
+ "cite_error_ref_numeric_key": "Nädogry <code>&lt;ref&gt;</code> tegi;\nat ýönekeý bir bitin san bolup bilmeýär. Düşündirişli at ulanyň",
+ "cite_error_ref_no_key": "Nädogry <code>&lt;ref&gt;</code> tegi;\nmazmunsyz refleriň ady bolmaly",
+ "cite_error_ref_too_many_keys": "Nädogry <code>&lt;ref&gt;</code> tegi;\nnädogry atlar, mes. aşa köp",
+ "cite_error_ref_no_input": "Nädogry <code>&lt;ref&gt;</code> tegi;\natsyz refleriň mazmuny bolmalydyr",
+ "cite_error_references_invalid_parameters": "Nädogry <code>&lt;ref&gt;</code> tegi;\nhiç hili parametre rugsat berilmeýär.\n<code>&lt;references /&gt;</code> ulanyň",
+ "cite_error_references_no_text": "Nädogry <code>&lt;ref&gt;</code> tegi;\n<code>$1</code> atly refler üçin tekst görkezilmändir",
+ "cite_error_included_ref": "<code>&lt;ref&gt;</code> tegi üçin <code>&lt;/ref&gt;</code> ýapylyşy kem",
+ "cite_error_group_refs_without_references": "\"$1\" atly topar üçin <code>&lt;ref&gt;</code> tegleri bar, emma degişli code>&lt;references group=\"$1\"/&gt;</code> tegi tapylmady",
+ "cite_error_references_group_mismatch": "<code>&lt;references&gt;</code>-daky <code>&lt;ref&gt;</code> teginiň çaknyşýan \"$1\" topar aýratynlygy bar.",
+ "cite_error_references_missing_group": "<code>&lt;references&gt;</code>-da kesgitlenen <code>&lt;ref&gt;</code> teginiň öňki tekstde ýok \"$1\" topar aýratynlygy bar.",
+ "cite_error_references_missing_key": "<code>&lt;references&gt;</code>-da kesgitlenen \"$1\" atly <code>&lt;ref&gt;</code> tegi öňki tekstde ulanylmaýar.",
+ "cite_error_references_no_key": "<code>&lt;references&gt;</code>-da kesgitlenen <code>&lt;ref&gt;</code> teginiň hiç hili at aýratynlygy ýok.",
+ "cite_error_empty_references_define": "<code>&lt;references&gt;</code>-da kesgitlenen \"$1\" atly <code>&lt;ref&gt;</code> tegiň mazmuny ýok."
+}
diff --git a/www/wiki/extensions/Cite/i18n/tl.json b/www/wiki/extensions/Cite/i18n/tl.json
new file mode 100644
index 00000000..4cebf224
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/tl.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "AnakngAraw"
+ ]
+ },
+ "cite-desc": "Nagdaragdag ng mga tatak na <nowiki><ref[ name=id]></nowiki> at <nowiki><references/></nowiki>, para sa mga pagtukoy",
+ "cite_error": "Kamalian sa pagtukoy: $1",
+ "cite_error_ref_numeric_key": "Hindi tanggap ang tatak na <code>&lt;ref&gt;</code>;\nhindi maaaring isang payak na buumbilang (''integer'') ang pangalan. Gumamit ng isang mapaglarawang pamagat",
+ "cite_error_ref_no_key": "Hindi tanggap ang tatak na <code>&lt;ref&gt;</code>;\nkinakailangan may isang pangalan ang mga sangguniang (''ref'') walang nilalaman",
+ "cite_error_ref_too_many_keys": "Hindi tanggap ang tatak na <code>&lt;ref&gt;</code>;\nhindi tanggap na mga pangalan, ang ibig sabihin ay napakarami",
+ "cite_error_ref_no_input": "Hindi tanggap ang tatak na <code>&lt;ref&gt;</code>;\nkinakailangang may nilalaman ang mga sangguniang (''ref'') walang pangalan",
+ "cite_error_references_invalid_parameters": "Hindi tanggap na <code>&lt;references&gt;</code>;\nwalang pinapahintulutang mga parametro.\nGamitin ang <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Naubusan ng pasadyang mga tatak na pantukoy ng panlikod na kawing.\nDagdagan pa ng pakahulugan sa loob ng mensaheng <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Naubusan ng mga tatak ng pasadyang kawing para sa pangkat na \"$1\".\nMagbigay ng marami pang kahulugan sa loob ng mensaheng <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Hindi tanggap ang tatak na <code>&lt;ref&gt;</code>;\nwalang tekstong ibinigay para sa mga sangguniang (''ref'') pinangalanang <code>$1</code>",
+ "cite_error_included_ref": "Naawawala ang pansarang <code>&lt;/ref&gt;</code> na para sa tatak na <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Umiiral na ang tatak na <code>&lt;ref&gt;</code> para sa pangkat na pinangalanang \"$1\", subalit walang natagpuang katumbas na tatak na <code>&lt;references group=\"$1\"/&gt;</code>",
+ "cite_error_references_group_mismatch": "May hindi nagbabanggaang katangiang pampangkat na \"$1\" ang <code>&lt;ref&gt;</code> tatak na nasa <code>&lt;references&gt;</code>.",
+ "cite_error_references_missing_group": "Ang tatak na <code>&lt;ref&gt;</code> na binigyang kahulugan sa <code>&lt;references&gt;</code> ay may katangiang pampangkat na \"$1\" na hindi lumilitawa sa naunang teksto.",
+ "cite_error_references_missing_key": "Ang tatak na <code>&lt;ref&gt;</code> na may pangalang \"$1\" na binigyang kahulugan sa <code>&lt;references&gt;</code> ay hindi ginamit sa naunang teksto.",
+ "cite_error_references_no_key": "Ang tatak na <code>&lt;ref&gt;</code> na binigyang kahulugan sa <code>&lt;references&gt;</code> ay walang katangiang pampangalan.",
+ "cite_error_empty_references_define": "Ang tatak na <code>&lt;ref&gt;</code> na binigyang kahulugan sa <code>&lt;references&gt;</code> na may pangalang \"$1\" ay walang nilalaman.",
+ "cite_reference_link_key_with_num": "$1_$2",
+ "cite_reference_link_prefix": "cite_ref-",
+ "cite_references_link_prefix": "cite_note-",
+ "cite_references_link_one": "<li id=\"$1\"><span class=\"mw-cite-backlink\">[[#$2|↑]]</span> $3</li>",
+ "cite_references_link_many": "<li id=\"$1\"><span class=\"mw-cite-backlink\">↑ $2</span> $3</li>",
+ "cite_references_link_many_format": "<sup>[[#$1|$2]]</sup>",
+ "cite_references_link_many_format_backlink_labels": "a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz",
+ "cite_references_link_many_sep": "&#32;",
+ "cite_references_link_many_and": "&#32;"
+}
diff --git a/www/wiki/extensions/Cite/i18n/tly.json b/www/wiki/extensions/Cite/i18n/tly.json
new file mode 100644
index 00000000..b5068080
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/tly.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Erdemaslancan"
+ ]
+ },
+ "cite_references_link_many_format_backlink_labels": "a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz"
+}
diff --git a/www/wiki/extensions/Cite/i18n/tr.json b/www/wiki/extensions/Cite/i18n/tr.json
new file mode 100644
index 00000000..dcafb32e
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/tr.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "Erdemaslancan",
+ "Joseph",
+ "Runningfridgesrule",
+ "Incelemeelemani",
+ "Sadrettin",
+ "Superyetkin",
+ "Vito Genovese"
+ ]
+ },
+ "cite-desc": "Alıntılar için, <nowiki><ref[ name=id]></nowiki> ve <nowiki><references/></nowiki> etiketlerini ekler",
+ "cite_error": "Kaynak hatası $1",
+ "cite_error_ref_numeric_key": "Geçersiz <code>&lt;ref&gt;</code> etiketi;\nisim basit bir tamsayı olamaz. Tanımlayıcı bir başlık kullanın",
+ "cite_error_ref_no_key": "Geçersiz <code>&lt;ref&gt;</code> etiketi;\niçeriksiz reflerin bir ismi olmalı",
+ "cite_error_ref_too_many_keys": "Geçersiz <code>&lt;ref&gt;</code> etiketi;\ngeçersiz isimler, ör. çok fazla",
+ "cite_error_ref_no_input": "Geçersiz <code>&lt;ref&gt;</code> etiketi;\nisimsiz reflerin içeriği olmalı",
+ "cite_error_references_duplicate_key": "Geçersiz <code>&lt;ref&gt;</code> etiketi: \"$1\" adı farklı içerikte birden fazla tanımlanmış.",
+ "cite_error_references_invalid_parameters": "Geçersiz <code>&lt;references&gt;</code> etiketi;\nparametrelere izin verilmiyor.\n<code>&lt;references /&gt;</code> kullanın",
+ "cite_error_references_no_backlink_label": "Özel geribağlantı etiketleri kalmadı.\n<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> mesajında daha fazla tanımlayın",
+ "cite_error_no_link_label_group": "\"$1\" grubu için özel bağlantı etiketleri bitti.\n<nowiki>[[MediaWiki:$2]]</nowiki> mesajında daha fazla tanımlayın.",
+ "cite_error_references_no_text": "Geçersiz <code>&lt;ref&gt;</code> etiketi;\n<code>$1</code> isimli refler için metin temin edilmemiş",
+ "cite_error_included_ref": "<code>&lt;ref&gt;</code> etiketi için <code>&lt;/ref&gt;</code> kapanışı eksik",
+ "cite_error_group_refs_without_references": "<code>&lt;ref&gt;</code> \"$1\" adında grup ana etiketi bulunuyor, ancak <code>&lt;references group=\"$1\"/&gt;</code> etiketinin karşılığı bulunamadı ya da kapatma <code>&lt;/ref&gt;</code> eksik.",
+ "cite_error_references_group_mismatch": "<code>&lt;references&gt;</code>'daki <code>&lt;ref&gt;</code> etiketinin çelişen \"$1\" grup özniteliği var.",
+ "cite_error_references_missing_group": "<code>&lt;references&gt;</code>'da tanımlanan <code>&lt;ref&gt;</code> etiketinin önceki metinde olmayan \"$1\" grup özniteliği var.",
+ "cite_error_references_missing_key": "<code>&lt;references&gt;</code>'da tanımlanan \"$1\" adındaki <code>&lt;ref&gt;</code> etiketi önceki metinde kullanılmıyor.",
+ "cite_error_references_no_key": "<code>&lt;references&gt;</code>'da tanımlanan <code>&lt;ref&gt;</code> etiketinin hiçbir ad özniteliği yok.",
+ "cite_error_empty_references_define": "<code>&lt;references&gt;</code>'da tanımlanan \"$1\" adlı <code>&lt;ref&gt;</code> etiketinin içeriği yok.",
+ "cite-tracking-category-cite-error": "Kaynak gösterme hatası bulunan maddeler",
+ "cite-tracking-category-cite-error-desc": "Bu kategorideki sayfalarda referans etiketinin kullanımında hata bulunmaktadır.",
+ "cite_references_link_many": "<li id=\"$1\"><span class=\"mw-cite-backlink\">↑ $2</span> $3</li>",
+ "cite_references_link_many_format": "<sup>[[#$1|$2]]</sup>",
+ "cite_references_link_many_format_backlink_labels": "a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz",
+ "cite_references_link_accessibility_label": "Yukarı git",
+ "cite_references_link_many_accessibility_label": "Şuraya git:",
+ "cite_section_preview_references": "Kaynakçayı ön izleme",
+ "cite_warning": "Kaynak uyarısı: $1",
+ "cite_warning_sectionpreview_no_text": "<code>$1</code> adındaki <code>&lt;ref&gt;</code> kaynağı önizlenemiyor, çünkü mevcut bölüm dışında tanımlanmış ya da hiç tanımlanmamış."
+}
diff --git a/www/wiki/extensions/Cite/i18n/tt-cyrl.json b/www/wiki/extensions/Cite/i18n/tt-cyrl.json
new file mode 100644
index 00000000..7c3eb551
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/tt-cyrl.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Timming",
+ "Ильнар"
+ ]
+ },
+ "cite_error": "Өземтә китерү хатасы: $1",
+ "cite_references_link_accessibility_label": "Күчү",
+ "cite_references_link_many_accessibility_label": "Күчү өчен:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ttt.json b/www/wiki/extensions/Cite/i18n/ttt.json
new file mode 100644
index 00000000..b5068080
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ttt.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Erdemaslancan"
+ ]
+ },
+ "cite_references_link_many_format_backlink_labels": "a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz"
+}
diff --git a/www/wiki/extensions/Cite/i18n/tzm.json b/www/wiki/extensions/Cite/i18n/tzm.json
new file mode 100644
index 00000000..3ac1f2eb
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/tzm.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Tifinaghes"
+ ]
+ },
+ "cite_reference_link_prefix": "cite_ref-",
+ "cite_references_link_many_sep": "&#32;",
+ "cite_references_link_many_and": "&#32;"
+}
diff --git a/www/wiki/extensions/Cite/i18n/udm.json b/www/wiki/extensions/Cite/i18n/udm.json
new file mode 100644
index 00000000..fa0b9fe1
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/udm.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Wadorgurt"
+ ]
+ },
+ "cite_error": "Янгыш цитированиын: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/ug-arab.json b/www/wiki/extensions/Cite/i18n/ug-arab.json
new file mode 100644
index 00000000..74082165
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ug-arab.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sahran",
+ "Uzdil"
+ ]
+ },
+ "cite_error": "نەقىل ئېلىنغان خاتالىق: $1",
+ "cite_reference_link_key_with_num": "$1_$2"
+}
diff --git a/www/wiki/extensions/Cite/i18n/uk.json b/www/wiki/extensions/Cite/i18n/uk.json
new file mode 100644
index 00000000..83389938
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/uk.json
@@ -0,0 +1,53 @@
+{
+ "@metadata": {
+ "authors": [
+ "AS",
+ "Ahonc",
+ "Andriykopanytsia",
+ "Dim Grits",
+ "DixonD",
+ "NickK",
+ "Prima klasy4na",
+ "Ytsukeng Fyvaprol",
+ "Ата",
+ "Piramidion"
+ ]
+ },
+ "apihelp-query+references-description": "Вивести репрезентацію даних посилань, пов'язаних із заданими сторінками.",
+ "apihelp-query+references-summary": "Вивести репрезентацію даних посилань, пов'язаних із заданими сторінками.",
+ "apihelp-query+references-example-1": "Посилання, пов'язані зі сторінкою <kbd>Albert Einstein</kbd>.",
+ "apierror-citestoragedisabled": "Зберігання посилань для розширення Cite не увімкнене.",
+ "cite-desc": "Додає теги <nowiki><ref[ name=id]></nowiki> і <nowiki><references/></nowiki> для виносок",
+ "cite_error": "Помилка цитування: $1",
+ "cite_error_ref_numeric_key": "Неправильний виклик <code>&lt;ref&gt;</code>:\nназва не може містити тільки цифри.",
+ "cite_error_ref_no_key": "Відкривальний тег <code>&lt;ref&gt;</code> неправильний або містить хибну назву.",
+ "cite_error_ref_too_many_keys": "Неправильний виклик <code>&lt;ref&gt;</code>:\nвказані неправильні значення <code>name</code> або вказано забагато параметрів",
+ "cite_error_ref_no_input": "Неправильний виклик <code>&lt;ref&gt;</code>:\nтег <code>ref</code> без назви повинен мати вхідні дані",
+ "cite_error_references_duplicate_key": "Некоректний теґ <code>&lt;ref&gt;</code>; назва «$1» визначена кілька разів з різним вмістом",
+ "cite_error_references_invalid_parameters": "Недійсний параметр у тегу <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Недостатньо символів для зворотних гіперпосилань.\nПотрібно розширити системну змінну <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Закінчилися позначки користувальницьких посилань для групи \"$1\".\nВизначте додаткові в повідомленні <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Неправильний виклик <code>&lt;ref&gt;</code>:\nдля виносок <code>$1</code> не вказаний текст",
+ "cite_error_included_ref": "Відсутній тег <code>&lt;/ref&gt;</code> за наявності тегу <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Теги <code>&lt;ref&gt;</code> існують для групи під назвою «$1», але не знайдено відповідного тегу <code>&lt;references group=\"$1\"/&gt;</code>, або ж бракує закриваючого <code>&lt;/ref&gt;</code>",
+ "cite_error_references_group_mismatch": "Тег <code>&lt;ref&gt;</code> в <code>&lt;references&gt;</code> має конфліктуючий атрибут групи \"$1\".",
+ "cite_error_references_missing_group": "Тег <code>&lt;ref&gt;</code>, заданий в <code>&lt;references&gt;</code>, має атрибут групи \"$1\", який не фігурує в попередньому тексті.",
+ "cite_error_references_missing_key": "Тег <code>&lt;ref&gt;</code> з назвою \"$1\", визначений у <code>&lt;references&gt;</code>, не використовується в попередньому тексті.",
+ "cite_error_references_no_key": "Тег <code>&lt;ref&gt;</code>, визначений у <code>&lt;references&gt;</code>, не має атрибута назви.",
+ "cite_error_empty_references_define": "Тег <code>&lt;ref&gt;</code>, визначений у <code>&lt;references&gt;</code>, з назвою \"$1\" не має змісту.",
+ "cite-tracking-category-cite-error": "Сторінки з помилками посилань",
+ "cite-tracking-category-cite-error-desc": "Сторінок у цій категорії мають помилки у використанні теґів посилань.",
+ "cite_reference_link_key_with_num": "$1_$2",
+ "cite_reference_link_prefix": "cite_ref-",
+ "cite_references_link_prefix": "cite_note-",
+ "cite_references_link_one": "<li id=\"$1\"><span class=\"mw-cite-backlink\">[[#$2|↑]]</span> $3</li>",
+ "cite_references_link_many_format": "<sup>[[#$1|$2]]</sup>",
+ "cite_references_link_many_format_backlink_labels": "а б в г д е ж и к л м н п р с т у ф х ц ш щ ю я аа аб ав аг ад ае аж аи ак ал ам ан ап ар ас ат ау аф ах ац аш ащ аю ая ба бб бв бг бд бе бж би бк бл бм бн бп бр бс бт бу бф бх бц бш бщ бю бя ва вб вв вг вд ве вж ви вк вл вм вн вп вр вс вт ву вф вх вц вш вщ вю вя га гб гв гг гд ге гж ги гк гл гм гн гп гр гс гт гу гф гх гц гш гщ гю гя да дб дв дг дд де дж ди дк дл дм дн дп др дс дт ду дф дх дц дш дщ дю дя еа еб ев ег ед ее еж еи ек ел ем ен еп ер ес ет еу еф ех ец еш ещ ею ея жа жб жв жг жд же жж жи жк жл жм жн жп жр жс жт жу жф жх жц жш жщ жю жя иа иб ив иг ид ие иж ии ик ил им ин ип ир ис ит иу иф их иц иш ищ ию ия ка кб кв кг кд ке кж ки кк кл км кн кп кр кс кт ку кф кх кц кш кщ кю кя ла лб лв лг лд ле лж ли лк лл лм лн лп лр лс лт лу лф лх лц лш лщ лю ля ма мб мв мг мд ме мж ми мк мл мм мн мп мр мс мт му мф мх мц мш мщ мю мя на нб нв нг нд не нж ни нк нл нм нн нп нр нс нт ну нф нх нц нш нщ ню ня па пб пв пг пд пе пж пи пк пл пм пн пп пр пс пт пу пф пх пц пш пщ пю пя ра рб рв рг рд ре рж ри рк рл рм рн рп рр рс рт ру рф рх рц рш рщ рю ря са сб св сг сд се сж си ск сл см сн сп ср сс ст су сф сх сц сш сщ сю ся та тб тв тг тд те тж ти тк тл тм тн тп тр тс тт ту тф тх тц тш тщ тю тя уа уб ув уг уд уе уж уи ук ул ум ун уп ур ус ут уу уф ух уц уш ущ ую уя фа фб фв фг фд фе фж фи фк фл фм фн фп фр фс фт фу фф фх фц фш фщ фю фя ха хб хв хг хд хе хж хи хк хл хм хн хп хр хс хт ху хф хх хц хш хщ хю хя ца цб цв цг цд це цж ци цк цл цм цн цп цр цс цт цу цф цх цц цш цщ цю ця ша шб шв шг шд ше шж ши шк шл шм шн шп шр шс шт шу шф шх шц шш шщ шю шя ща щб щв щг щд ще щж щи щк щл щм щн щп щр щс щт щу щф щх щц щш щщ щю щя юа юб юв юг юд юе юж юи юк юл юм юн юп юр юс ют юу юф юх юц юш ющ юю юя яа яб яв яг яд яе яж яи як ял ям ян яп яр яс ят яу яф ях яц яш ящ яю яя",
+ "cite_references_link_many_sep": "&#32;",
+ "cite_references_link_many_and": "&#32;",
+ "cite_references_link_accessibility_label": "Вгору",
+ "cite_references_link_many_accessibility_label": "Перейти до:",
+ "cite_section_preview_references": "Попередній перегляд приміток",
+ "cite_warning": "Попередження щодо приміток: $1",
+ "cite_warning_sectionpreview_no_text": "Тег <code>&lt;ref&gt;</code> з назвою <code>$1</code> не можна попередньо переглянути, оскільки він визначений за межами поточної сесії, або й не визначений зовсім."
+}
diff --git a/www/wiki/extensions/Cite/i18n/ur.json b/www/wiki/extensions/Cite/i18n/ur.json
new file mode 100644
index 00000000..d8c33fd1
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/ur.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "عثمان خان شاہ",
+ "Obaid Raza",
+ "Muhammad Shuaib",
+ "BukhariSaeed"
+ ]
+ },
+ "apihelp-query+references-example-1": "<kbd>البرٹ آئنسٹائن</kbd> متعلقہ حوالہ جات",
+ "cite-desc": "<nowiki><ref[ name=id]></nowiki> اور <nowiki><references/></nowiki> ٹیگز، برائے حوالہ جات کا اضافہ کرتا ہے",
+ "cite_error": "خطا در حوالہ: $1",
+ "cite_error_ref_too_many_keys": "نادرست <code>&lt;ref&gt;</code> ٹیگ؛\nنادرست نام، مثال کے طور پر کئی",
+ "cite_error_ref_no_input": "نادرست <code>&lt;ref&gt;</code> ٹیگ;\nبے نام حوالہ جات کا مواد ہونا چاہیے",
+ "cite_error_references_duplicate_key": "نادرست <code>&lt;ref&gt;</code> ٹیگ؛ نام \"$1\" مختلف مواد کے ساتھ کئی بار استعمال ہوا ہے۔",
+ "cite_error_references_invalid_parameters": "نادرست پیرامیٹر در <code>&lt;references&gt;</code> ٹیگ",
+ "cite_error_references_no_text": "ناقص <code>&lt;ref&gt;</code> ٹیگ؛ <code>$1</code> کے نام والے حوالوں کے لیے کوئی متن نہیں دیا گیا",
+ "cite-tracking-category-cite-error": "صفحات مع حوالہ جاتی اغلاط",
+ "cite-tracking-category-cite-error-desc": "اس زمرہ میں موجود صفحات میں حوالہ جاتی ٹیگز کو غلط استعمال کیا گیا ہے۔",
+ "cite_references_link_accessibility_label": "اوپر جائیں",
+ "cite_references_link_many_accessibility_label": "اس تک اوپر جائیں:",
+ "cite_section_preview_references": "حوالہ جات کی نما‏ئش",
+ "cite_warning": "انتباہ حوالہ: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/vec.json b/www/wiki/extensions/Cite/i18n/vec.json
new file mode 100644
index 00000000..a703edcf
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/vec.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Candalua"
+ ]
+ },
+ "cite-desc": "Zonta i tag <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> par gestir le citazion",
+ "cite_error": "Eror ne la funsion Cite $1",
+ "cite_error_ref_numeric_key": "Eror ne l'uso del marcator <code>&lt;ref&gt;</code>: el nome no'l pode mìa èssar un nùmaro intiero. Dòpara un titolo esteso",
+ "cite_error_ref_no_key": "Eror ne l'uso del marcator <code>&lt;ref&gt;</code>: i ref vodi no i pol no verghe un nome",
+ "cite_error_ref_too_many_keys": "Eror ne l'uso del marcator <code>&lt;ref&gt;</code>: nomi mìa validi (ad es. nùmaro massa elevà)",
+ "cite_error_ref_no_input": "Eror ne l'uso del marcator <code>&lt;ref&gt;</code>: i ref che no gà un nome no i pol mìa èssar vodi",
+ "cite_error_references_invalid_parameters": "Eror ne l'uso del marcator <code>&lt;references&gt;</code>: parametri mìa consentìi, dòpara el marcator <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_backlink_label": "Etichete de rimando personalizàe esaurìe, auménteghen el nùmaro nel messagio <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Etichete esaurìe par colegamenti personalizà del grupo \"$1\", aumentarne el numaro nel messajo <nowiki>[[MediaWiki:$2]]</nowiki>",
+ "cite_error_references_no_text": "Marcator <code>&lt;ref&gt;</code> mìa valido; no xe stà indicà nissun testo par el marcator <code>$1</code>",
+ "cite_error_included_ref": "<code>&lt;/ref&gt;</code> de chiusura mancante par el marcador <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Ghe xe un tag <code>&lt;ref&gt;</code> par un grupo che se ciama \"$1\", ma no xe stà catà nissun tag <code>&lt;references group=\"$1\"/&gt;</code> che corisponda.",
+ "cite_error_references_group_mismatch": "El tag <code>&lt;ref&gt;</code> in <code>&lt;references&gt;</code> el gà l'atributo de grupo \"$1\" in conflito.",
+ "cite_error_references_missing_group": "El tag <code>&lt;ref&gt;</code> definìo in <code>&lt;references&gt;</code> el gà un atributo de grupo \"$1\" che no conpare mia nel testo precedente.",
+ "cite_error_references_missing_key": "El tag <code>&lt;ref&gt;</code> con nome \"$1\" definìo in <code>&lt;references&gt;</code> no'l xe doparà nel testo precedente.",
+ "cite_error_references_no_key": "El tag <code>&lt;ref&gt;</code> definìo in <code>&lt;references&gt;</code> no'l gà un atributo nome.",
+ "cite_error_empty_references_define": "El tag <code>&lt;ref&gt;</code> definìo in <code>&lt;references&gt;</code> con nome \"$1\" no'l gà nissun contenuto."
+}
diff --git a/www/wiki/extensions/Cite/i18n/vep.json b/www/wiki/extensions/Cite/i18n/vep.json
new file mode 100644
index 00000000..26cb48af
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/vep.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Игорь Бродский"
+ ]
+ },
+ "cite_error": "Citiruindan petuz: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/vi.json b/www/wiki/extensions/Cite/i18n/vi.json
new file mode 100644
index 00000000..8209d178
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/vi.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "Minh Nguyen",
+ "Vinhtantran"
+ ]
+ },
+ "cite-desc": "Thêm các thẻ <nowiki><ref[ name=id]></nowiki> và <nowiki><references/></nowiki> để ghi chú thích hoặc nguồn tham khảo",
+ "cite_error": "Lỗi chú thích: $1",
+ "cite_error_ref_numeric_key": "Thẻ <code>&lt;ref&gt;</code> sai; tên không thể chỉ là số nguyên, hãy dùng tựa đề có tính miêu tả",
+ "cite_error_ref_no_key": "Thẻ mở <code>&lt;ref&gt;</code> bị hỏng hoặc có tên sai",
+ "cite_error_ref_too_many_keys": "Thẻ <code>&lt;ref&gt;</code> sai; thông số tên sai, như, nhiều thông số tên quá",
+ "cite_error_ref_no_input": "Mã <code>&lt;ref&gt;</code> sai; thẻ ref không có tên thì phải có nội dung",
+ "cite_error_references_duplicate_key": "Thẻ <code>&lt;ref&gt;</code> không hợp lệ: tên “$1” được định rõ nhiều lần, mỗi lần có nội dung khác",
+ "cite_error_references_invalid_parameters": "Thông số không hợp lệ trong thẻ <code>&lt;references&gt;</code>",
+ "cite_error_references_no_backlink_label": "Đã dùng hết nhãn tham khảo chung.\nHãy định nghĩa thêm ở thông điệp <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+ "cite_error_no_link_label_group": "Thiếu nhãn liên kết tùy biến cho nhóm “$1”. Hãy định rõ thêm nhãn trong thông điệp <nowiki>[[MediaWiki:$2]]</nowiki>.",
+ "cite_error_references_no_text": "Thẻ <code>&lt;ref&gt;</code> sai; không có nội dung trong thẻ ref có tên <code>$1</code>",
+ "cite_error_included_ref": "Không có <code>&lt;/ref&gt;</code> để đóng thẻ <code>&lt;ref&gt;</code>",
+ "cite_error_group_refs_without_references": "Đã tìm thấy thẻ <code>&lt;ref&gt;</code> với tên nhóm “$1”, nhưng không tìm thấy thẻ tương ứng <code>&lt;references group=\"$1\"/&gt;</code> tương ứng, hoặc thẻ đóng <code>&lt;/ref&gt;</code> bị thiếu",
+ "cite_error_references_group_mismatch": "Thẻ <code>&lt;ref&gt;</code> trong <code>&lt;references&gt;</code> có thuộc tính nhóm mâu thuẫn “$1”.",
+ "cite_error_references_missing_group": "Thẻ <code>&lt;ref&gt;</code> được định nghĩa trong <code>&lt;references&gt;</code> có thuộc tính nhóm “$1” không thấy xuất hiện trong văn bản phía trên.",
+ "cite_error_references_missing_key": "Thẻ <code>&lt;ref&gt;</code> có tên “$1” được định nghĩa trong <code>&lt;references&gt;</code> không được đoạn văn bản trên sử dụng.",
+ "cite_error_references_no_key": " Thẻ <code>&lt;ref&gt;</code> được định nghĩa trong <code>&lt;references&gt;</code> không có thuộc tính name.",
+ "cite_error_empty_references_define": "Thẻ <code>&lt;ref&gt;</code> được định nghĩa trong <code>&lt;references&gt;</code> có tên “$1” không có nội dung.",
+ "cite-tracking-category-cite-error": "Trang có lỗi chú thích",
+ "cite-tracking-category-cite-error-desc": "Các trang trong thể loại này có lỗi sử dụng thẻ chú thích.",
+ "cite_references_link_many_format_backlink_labels": "a ă â b c d đ e ê g h i k l m n o ô ơ p q r s t u ư v x y\naa aă aâ ab ac ad ađ ae aê ag ah ai ak al am an ao aô aơ ap aq ar as at au aư av ax ay\năa ăă ăâ ăb ăc ăd ăđ ăe ăê ăg ăh ăi ăk ăl ăm ăn ăo ăô ăơ ăp ăq ăr ăs ăt ău ăư ăv ăx ăy\nâa âă ââ âb âc âd âđ âe âê âg âh âi âk âl âm ân âo âô âơ âp âq âr âs ât âu âư âv âx ây\nba bă bâ bb bc bd bđ be bê bg bh bi bk bl bm bn bo bô bơ bp bq br bs bt bu bư bv bx by\nca că câ cb cc cd cđ ce cê cg ch ci ck cl cm cn co cô cơ cp cq cr cs ct cu cư cv cx cy\nda dă dâ db dc dd dđ de dê dg dh di dk dl dm dn do dô dơ dp dq dr ds dt du dư dv dx dy\nđa đă đâ đb đc đd đđ đe đê đg đh đi đk đl đm đn đo đô đơ đp đq đr đs đt đu đư đv đx đy\nea eă eâ eb ec ed eđ ee eê eg eh ei ek el em en eo eô eơ ep eq er es et eu eư ev ex ey\nêa êă êâ êb êc êd êđ êe êê êg êh êi êk êl êm ên êo êô êơ êp êq êr ês êt êu êư êv êx êy\nga gă gâ gb gc gd gđ ge gê gg gh gi gk gl gm gn go gô gơ gp gq gr gs gt gu gư gv gx gy\nha hă hâ hb hc hd hđ he hê hg hh hi hk hl hm hn ho hô hơ hp hq hr hs ht hu hư hv hx hy\nia iă iâ ib ic id iđ ie iê ig ih ii ik il im in io iô iơ ip iq ir is it iu iư iv ix iy\nka kă kâ kb kc kd kđ ke kê kg kh ki kk kl km kn ko kô kơ kp kq kr ks kt ku kư kv kx ky\nla lă lâ lb lc ld lđ le lê lg lh li lk ll lm ln lo lô lơ lp lq lr ls lt lu lư lv lx ly\nma mă mâ mb mc md mđ me mê mg mh mi mk ml mm mn mo mô mơ mp mq mr ms mt mu mư mv mx my\nna nă nâ nb nc nd nđ ne nê ng nh ni nk nl nm nn no nô nơ np nq nr ns nt nu nư nv nx ny\noa oă oâ ob oc od ođ oe oê og oh oi ok ol om on oo oô oơ op oq or os ot ou oư ov ox oy\nôa ôă ôâ ôb ôc ôd ôđ ôe ôê ôg ôh ôi ôk ôl ôm ôn ôo ôô ôơ ôp ôq ôr ôs ôt ôu ôư ôv ôx ôy\nơa ơă ơâ ơb ơc ơd ơđ ơe ơê ơg ơh ơi ơk ơl ơm ơn ơo ơô ơơ ơp ơq ơr ơs ơt ơu ơư ơv ơx ơy\npa pă pâ pb pc pd pđ pe pê pg ph pi pk pl pm pn po pô pơ pp pq pr ps pt pu pư pv px py\nqa qă qâ qb qc qd qđ qe qê qg qh qi qk ql qm qn qo qô qơ qp qq qr qs qt qu qư qv qx qy\nra ră râ rb rc rd rđ re rê rg rh ri rk rl rm rn ro rô rơ rp rq rr rs rt ru rư rv rx ry\nsa să sâ sb sc sd sđ se sê sg sh si sk sl sm sn so sô sơ sp sq sr ss st su sư sv sx sy\nta tă tâ tb tc td tđ te tê tg th ti tk tl tm tn to tô tơ tp tq tr ts tt tu tư tv tx ty\nua uă uâ ub uc ud uđ ue uê ug uh ui uk ul um un uo uô uơ up uq ur us ut uu uư uv ux uy\nưa ưă ưâ ưb ưc ưd ưđ ưe ưê ưg ưh ưi ưk ưl ưm ưn ưo ưô ươ ưp ưq ưr ưs ưt ưu ưư ưv ưx ưy\nva vă vâ vb vc vd vđ ve vê vg vh vi vk vl vm vn vo vô vơ vp vq vr vs vt vu vư vv vx vy\nxa xă xâ xb xc xd xđ xe xê xg xh xi xk xl xm xn xo xô xơ xp xq xr xs xt xu xư xv xx xy\nya yă yâ yb yc yd yđ ye yê yg yh yi yk yl ym yn yo yô yơ yp yq yr ys yt yu yư yv yx yy",
+ "cite_references_link_accessibility_label": "Bước lên",
+ "cite_references_link_many_accessibility_label": "Bước lên tới:",
+ "cite_section_preview_references": "Xem truớc các chú thích",
+ "cite_warning": "Cảnh báo chú thích: $1",
+ "cite_warning_sectionpreview_no_text": "Không thể xem truớc thẻ <code>&lt;ref&gt;</code> có tên <code>$1</code> vì nó được định rõ bên ngoài phần trang này hoặc không được định rõ."
+}
diff --git a/www/wiki/extensions/Cite/i18n/vo.json b/www/wiki/extensions/Cite/i18n/vo.json
new file mode 100644
index 00000000..5d0915c5
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/vo.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Smeira"
+ ]
+ },
+ "cite_error": "Saitamapöl: $1",
+ "cite_error_ref_numeric_key": "Nem ela <code>&lt;ref&gt;</code> no lonöföl. Nem no kanon binädön te me numats; gebolös bepenami.",
+ "cite_error_ref_no_key": "Geb no lonöföl ela <code>&lt;ref&gt;</code>: els ref nen ninäd mutons labön nemi",
+ "cite_error_ref_too_many_keys": "El <code>&lt;ref&gt;</code> no lonöfon: labon nemis no lonöfikis, a. s. tumödikis",
+ "cite_error_ref_no_input": "El <code>&lt;ref&gt;</code> no lonöfon: els ref nen nem mutons labön ninädi",
+ "cite_error_references_invalid_parameters": "El <code>&lt;references&gt;</code> no lonöfon: paramets no padälons. Gebolös eli <code>&lt;references /&gt;</code>",
+ "cite_error_references_no_text": "El <code>&lt;ref&gt;</code> no lonöfon: vödem nonik pegivon eles refs labü nem: <code>$1</code>"
+}
diff --git a/www/wiki/extensions/Cite/i18n/vro.json b/www/wiki/extensions/Cite/i18n/vro.json
new file mode 100644
index 00000000..74bd10c4
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/vro.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Võrok"
+ ]
+ },
+ "cite_error": "Näütämise viga: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/war.json b/www/wiki/extensions/Cite/i18n/war.json
new file mode 100644
index 00000000..0b5ce097
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/war.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "JinJian"
+ ]
+ },
+ "cite_error": "Ipakita an sayop: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/wo.json b/www/wiki/extensions/Cite/i18n/wo.json
new file mode 100644
index 00000000..108cb093
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/wo.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ibou"
+ ]
+ },
+ "cite_error": "Njuumteg royuwaay: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/wuu.json b/www/wiki/extensions/Cite/i18n/wuu.json
new file mode 100644
index 00000000..19f41a0f
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/wuu.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Poiuyt"
+ ]
+ },
+ "cite_error": "引用出错:$1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/xmf.json b/www/wiki/extensions/Cite/i18n/xmf.json
new file mode 100644
index 00000000..3a8a410f
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/xmf.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Silovan"
+ ]
+ },
+ "cite_error": "ციტირაფაშ ჩილათა $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/yi.json b/www/wiki/extensions/Cite/i18n/yi.json
new file mode 100644
index 00000000..aef855b9
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/yi.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "פוילישער"
+ ]
+ },
+ "cite-desc": "לייגט צו <nowiki><ref[ name=id]></nowiki> און <nowiki><references/></nowiki> טאַגן, פֿאר ציטירונגען (אין הערות)",
+ "cite_error": "ציטירן גרײַז: $1",
+ "cite_error_ref_numeric_key": "גרײַזיגער <code>&lt;ref&gt;</code> טאַג;\nנאמען טאר נישט זײַן קיין פשוטער נומער. ניצט א באשרײַבדיק קעפל",
+ "cite_error_ref_no_key": "דער עפנדער <code>&lt;ref&gt;</code> טאַג טויגט נישט אדער האט א פאלשן נאמען.",
+ "cite_error_ref_too_many_keys": "אומגילטיגער <code>&lt;ref&gt;</code> טאַג;\nאומגילטיגע נעמען, צ.ב. צו פֿיל",
+ "cite_error_ref_no_input": "אומגילטיגער <code>&lt;ref&gt;</code> טאַג;\nא רעפֿערענץ אָן א נאמען דארף האבן תוכן",
+ "cite_error_references_duplicate_key": "אומגילטיקער <code>&lt;ref&gt;</code> טאג; נאמען \"$1\" דעפֿינירט מערערע מאל מיט אנדער אינהאלט",
+ "cite_error_references_invalid_parameters": "אומגילטיגער פאראמעטער אין <code>&lt;references&gt;</code> טאַג",
+ "cite_error_references_no_text": "אומגילטיגער <code>&lt;ref&gt;</code> טאַג;\nקיין טעקסט נישט געשריבן פֿאַר רעפֿערענצן מיטן נאָמען <code>$1</code>",
+ "cite_error_included_ref": "פֿעלט א שליסנדיגער <code>&lt;/ref&gt;</code> פֿאַר <code>&lt;ref&gt;</code> טאַג",
+ "cite_error_group_refs_without_references": "ס'זענען דא <code>&lt;ref&gt;</code> טאַגן פֿאַר א גרופע וואס הייסט \"$1\", אבער מ'האט נישט געטראפֿן קיין אַנטקעגענעם <code>&lt;references group=\"$1\"/&gt;</code> טאַג, אדער א שליסנדיקער <code>&lt;/ref&gt;</code> פֿעלט.",
+ "cite_error_references_group_mismatch": "דער <code>&lt;ref&gt;</code> טאג אין <code>&lt;references&gt;</code> האט א גרופע אייגנקייט וואס איז סותר \"$1\".",
+ "cite_error_references_missing_group": "דער <code>&lt;ref&gt;</code> טאג דעפינעירט אין <code>&lt;references&gt;</code> האט גרופע אייגנקייט \"$1\" וואס באווייזט זיך נישט אין פריערדיקן טעקסט.",
+ "cite_error_references_missing_key": "<code>&lt;ref&gt;</code> טאַג מיטן נאָמען \"$1\" דעפֿינירט אין<code>&lt;references&gt;</code> נישט געניצט אין פֿריערדיקן טעקסט.",
+ "cite_error_references_no_key": "<code>&lt;ref&gt;</code> טאַג דעפֿינירט אין <code>&lt;references&gt;</code> האט נישט קיין name אַטריבוט.",
+ "cite_error_empty_references_define": "<code>&lt;ref&gt;</code> טאַג דעפֿינירט אין <code>&lt;references&gt;</code> מיט נאָמען \"$1\" האט נישט קיין אינהאַלט.",
+ "cite-tracking-category-cite-error": "בלעטער מיט רעפֿערענץ פֿעלער",
+ "cite_references_link_accessibility_label": "ארויפשפרינגען",
+ "cite_references_link_many_accessibility_label": "ארויפשפרינגען קיין:",
+ "cite_section_preview_references": "פאראויסקוק פון רעפערענצן",
+ "cite_warning": "ציטיר ווארענונג: $1",
+ "cite_warning_sectionpreview_no_text": "מען קען נישט מאַכן קיין פֿארויסשטעלונג פֿאַרן טאַג <code>&lt;ref&gt;</code> מיטן נאָמען <code>$1</code> ווייל ער איז דעפֿינירט אדער אינדרויסן פֿון דעם לויפֿיגן אָפטייל אדער אינגאַנצן נישט."
+}
diff --git a/www/wiki/extensions/Cite/i18n/yo.json b/www/wiki/extensions/Cite/i18n/yo.json
new file mode 100644
index 00000000..6c195240
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/yo.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Wikicology",
+ "Demmy"
+ ]
+ },
+ "cite_error": "Àṣìṣe ìtọ́kasí: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/yue.json b/www/wiki/extensions/Cite/i18n/yue.json
new file mode 100644
index 00000000..1a1b99a1
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/yue.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "CRCHF",
+ "Ktchankt"
+ ]
+ },
+ "cite-desc": "加 <nowiki><ref[ name=id]></nowiki> 同 <nowiki><references/></nowiki> 標籤用響引用度",
+ "cite_error": "引用錯誤 $1",
+ "cite_error_ref_numeric_key": "無效嘅呼叫; 需要一個非整數嘅匙",
+ "cite_error_ref_no_key": "無效嘅呼叫; 未指定匙",
+ "cite_error_ref_too_many_keys": "無效嘅呼叫; 無效嘅匙, 例如: 太多或者指定咗一個錯咗嘅匙",
+ "cite_error_ref_no_input": "無效嘅呼叫; 未指定輸入",
+ "cite_error_references_invalid_parameters": "無效嘅參數; 唔需要有嘢",
+ "cite_error_references_no_backlink_label": "用晒啲自定返回標籤, 響 <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> 信息再整多啲",
+ "cite_error_references_no_text": "無效嘅<code>&lt;ref&gt;</code>標籤;\n無文字提供於名為<code>$1</code>嘅參照",
+ "cite_references_link_accessibility_label": "跳到",
+ "cite_references_link_many_accessibility_label": "跳到去:"
+}
diff --git a/www/wiki/extensions/Cite/i18n/zgh.json b/www/wiki/extensions/Cite/i18n/zgh.json
new file mode 100644
index 00000000..8c1a3ba8
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/zgh.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amara-Amaziɣ"
+ ]
+ },
+ "cite_error": "ⵜⴰⵣⴳⵍⵜ ⵏ ⵓⴱⴷⴰⵔ: $1"
+}
diff --git a/www/wiki/extensions/Cite/i18n/zh-hans.json b/www/wiki/extensions/Cite/i18n/zh-hans.json
new file mode 100644
index 00000000..3a78d66d
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/zh-hans.json
@@ -0,0 +1,45 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gaoxuewei",
+ "Liangent",
+ "PhiLiP",
+ "Philip",
+ "TianyinLee",
+ "Zhuyifei1999",
+ "乌拉跨氪",
+ "Mywood",
+ "Impersonator 1",
+ "Liuxinyu970226"
+ ]
+ },
+ "apihelp-query+references-description": "返回与指定页面相关联的参考文献的数据表示法。",
+ "apihelp-query+references-summary": "返回与指定页面相关联的参考文献的数据表示法。",
+ "apihelp-query+references-example-1": "与<kbd>Albert Einstein</kbd>相关联的参考文献。",
+ "apierror-citestoragedisabled": "引用扩展参考存储未启用。",
+ "cite-desc": "增加用于引用的<nowiki><ref[ name=id]></nowiki>和<nowiki><references/></nowiki>标签",
+ "cite_error": "引用错误:$1",
+ "cite_error_ref_numeric_key": "无效<code>&lt;ref&gt;</code>标签;name属性不能是单一的数字,请使用可辨识的标题",
+ "cite_error_ref_no_key": "打开的<code>&lt;ref&gt;</code>标签格式有误,或拥有一个错误的名称",
+ "cite_error_ref_too_many_keys": "无效<code>&lt;ref&gt;</code>标签;name属性非法,可能是内容过长",
+ "cite_error_ref_no_input": "无效<code>&lt;ref&gt;</code>标签;未填name属性的引用必须填写内容",
+ "cite_error_references_duplicate_key": "无效<code>&lt;ref&gt;</code>标签;name属性“$1”使用不同内容定义了多次",
+ "cite_error_references_invalid_parameters": "<code>&lt;references&gt;</code>标签中的参数无效",
+ "cite_error_references_no_backlink_label": "自定义回链标签耗尽,请在<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>中定义更多的标签。",
+ "cite_error_no_link_label_group": "组“$1”的自定义链接标签耗尽,请在<nowiki>[[MediaWiki:$2]]</nowiki>中定义更多的标签。",
+ "cite_error_references_no_text": "无效<code>&lt;ref&gt;</code>标签;未给name属性为<code>$1</code>的引用提供文字",
+ "cite_error_included_ref": "没有找到与<code>&lt;/ref&gt;</code>对应的<code>&lt;ref&gt;</code>标签",
+ "cite_error_group_refs_without_references": "组名为“$1”的<code>&lt;ref&gt;</code>标签存在,但没有找到相应的<code>&lt;references group=\"$1\"/&gt;</code>标签,或结尾的<code>&lt;/ref&gt;</code>标签丢失",
+ "cite_error_references_group_mismatch": "<code>&lt;references&gt;</code>的<code>&lt;ref&gt;</code>标记带有冲突的组(group)属性“$1”。",
+ "cite_error_references_missing_group": "<code>&lt;references&gt;</code>中定义的<code>&lt;ref&gt;</code>标记带有未在前文中出现的组(group)属性“$1”。",
+ "cite_error_references_missing_key": "在<code>&lt;references&gt;</code>中以“$1”名字定义的<code>&lt;ref&gt;</code>标签没有在先前的文字中使用。",
+ "cite_error_references_no_key": "<code>&lt;references&gt;</code>中定义的<code>&lt;ref&gt;</code>没有给出名称(name)属性。",
+ "cite_error_empty_references_define": "<code>&lt;references&gt;</code>中定义的<code>&lt;ref&gt;</code>的名称(name)“$1”为空。",
+ "cite-tracking-category-cite-error": "有参考文献错误的页面",
+ "cite-tracking-category-cite-error-desc": "此分类中的页面在参考文献标签的用法上有错误。",
+ "cite_references_link_accessibility_label": "跳转",
+ "cite_references_link_many_accessibility_label": "跳转至:",
+ "cite_section_preview_references": "参考文献预览",
+ "cite_warning": "引用警告:$1",
+ "cite_warning_sectionpreview_no_text": "带名称<code>$1</code>的<code>&lt;ref&gt;</code>标签不能预览,因为它在当前章节以外定义,或完全未定义。"
+}
diff --git a/www/wiki/extensions/Cite/i18n/zh-hant.json b/www/wiki/extensions/Cite/i18n/zh-hant.json
new file mode 100644
index 00000000..e57c58db
--- /dev/null
+++ b/www/wiki/extensions/Cite/i18n/zh-hant.json
@@ -0,0 +1,45 @@
+{
+ "@metadata": {
+ "authors": [
+ "Liangent",
+ "Liuxinyu970226",
+ "Mark85296341",
+ "Philip",
+ "乌拉跨氪",
+ "Cwlin0416",
+ "Bowleerin",
+ "Waihorace",
+ "Wbxshiori",
+ "Kly"
+ ]
+ },
+ "apihelp-query+references-description": "回傳與指定頁面關聯之參考文獻的資料描述。",
+ "apihelp-query+references-summary": "回傳與指定頁面關聯之參考文獻的資料描述。",
+ "apihelp-query+references-example-1": "與 <kbd>Albert Einstein</kbd> 關聯的參考文獻。",
+ "apierror-citestoragedisabled": "引用擴充參考文獻儲存未啟用。",
+ "cite-desc": "支援 <nowiki><ref[ name=id]></nowiki> 與 <nowiki><references/></nowiki> 標籤,可用來註明參考文獻",
+ "cite_error": "引用錯誤:$1",
+ "cite_error_ref_numeric_key": "無效的 <code>&lt;ref&gt;</code> 標籤,name 屬性不能使用數字,請使用可描述內容的標題",
+ "cite_error_ref_no_key": "<code>&lt;ref&gt;</code> 標籤開頭格式錯誤或名稱不正確",
+ "cite_error_ref_too_many_keys": "無效的 <code>&lt;ref&gt;</code> 標籤,無效的 name 屬性值,可能名稱過長",
+ "cite_error_ref_no_input": "無效的 <code>&lt;ref&gt;</code> 標籤,無 name 屬性則必須擁有標籤內容",
+ "cite_error_references_duplicate_key": "無效的<code>&lt;ref&gt;</code>標籤;name屬性“$1”使用不同內容定義了多次",
+ "cite_error_references_invalid_parameters": "在 <code>&lt;references&gt;</code> 標籤裡的無效參數",
+ "cite_error_references_no_backlink_label": "自訂反向連結標籤符號已用盡。\n請在 <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> 中定義更多的標籤符號。",
+ "cite_error_no_link_label_group": "群組 \"$1\" 的自訂連結標籤符號已用盡。\n請在 <nowiki>[[MediaWiki:$2]]</nowiki> 中定義更多的標籤符號。",
+ "cite_error_references_no_text": "無效的 <code>&lt;ref&gt;</code> 標籤,\n未定義名稱為 <code>$1</code> 的參考文獻內容文字。",
+ "cite_error_included_ref": "缺少 <code>&lt;ref&gt;</code> 標籤的結束標籤 <code>&lt;/ref&gt;</code>",
+ "cite_error_group_refs_without_references": "使用群組名稱 \"$1\" 的 <code>&lt;ref&gt;</code> 標籤已存在,但查無對應的 <code>&lt;references group=\"$1\"/&gt;</code> 標籤,或缺少 <code>&lt;/ref&gt;</code> 結束標籤。",
+ "cite_error_references_group_mismatch": "在 <code>&lt;references&gt;</code> 中的 <code>&lt;ref&gt;</code> 標籤 group 屬性衝突 \"$1\"。",
+ "cite_error_references_missing_group": "在 <code>&lt;ref&gt;</code> 外定義的 <code>&lt;references&gt;</code> 標籤有設定 group 屬性為 \"$1\",但在前文中並未使用。",
+ "cite_error_references_missing_key": "在 <code>&lt;references&gt;</code> 中定義的 <code>&lt;ref&gt;</code> 標籤設定 name 屬性為 \"$1\",但在前文中並未使用。",
+ "cite_error_references_no_key": "<code>&lt;references&gt;</code> 中定義的<code>&lt;ref&gt;</code> 沒有設定 name 屬性。",
+ "cite_error_empty_references_define": "<code>&lt;references&gt;</code> 中定義的 <code>&lt;ref&gt;</code> 的 name 屬性 \"$1\" 沒有任何內容。",
+ "cite-tracking-category-cite-error": "有參考來源錯誤的頁面",
+ "cite-tracking-category-cite-error-desc": "在此分類內的頁面在參考來源的使用上有錯誤。",
+ "cite_references_link_accessibility_label": "移至",
+ "cite_references_link_many_accessibility_label": "移至:",
+ "cite_section_preview_references": "預覽參考文獻",
+ "cite_warning": "引用警告:$1",
+ "cite_warning_sectionpreview_no_text": "名稱為<code>$1</code>的<code>&lt;ref&gt;</code>標籤不能預覽,因為它在當前章節以外被定義,或完全未被定義。"
+}
diff --git a/www/wiki/extensions/Cite/includes/ApiQueryReferences.php b/www/wiki/extensions/Cite/includes/ApiQueryReferences.php
new file mode 100644
index 00000000..ddde9563
--- /dev/null
+++ b/www/wiki/extensions/Cite/includes/ApiQueryReferences.php
@@ -0,0 +1,117 @@
+<?php
+/**
+ * Expose reference information for a page via prop=references API.
+ *
+ * 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
+ * @see https://www.mediawiki.org/wiki/Extension:Cite#API
+ */
+
+use MediaWiki\MediaWikiServices;
+
+class ApiQueryReferences extends ApiQueryBase {
+
+ public function __construct( $query, $moduleName ) {
+ parent::__construct( $query, $moduleName, 'rf' );
+ }
+
+ public function getAllowedParams() {
+ return [
+ 'continue' => [
+ ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+ ],
+ ];
+ }
+
+ public function execute() {
+ $config = MediaWikiServices::getInstance()->getConfigFactory()->makeConfig( 'cite' );
+ if ( !$config->get( 'CiteStoreReferencesData' ) ) {
+ $this->dieWithError( 'apierror-citestoragedisabled' );
+ }
+ $params = $this->extractRequestParams();
+ $titles = $this->getPageSet()->getGoodTitles();
+ ksort( $titles );
+ if ( !is_null( $params['continue'] ) ) {
+ $startId = (int)$params['continue'];
+ // check it is definitely an int
+ $this->dieContinueUsageIf( strval( $startId ) !== $params['continue'] );
+ } else {
+ $startId = false;
+ }
+
+ foreach ( $titles as $pageId => $title ) {
+ // Skip until you have the correct starting point
+ if ( $startId !== false && $startId !== $pageId ) {
+ continue;
+ } else {
+ $startId = false;
+ }
+ $storedRefs = Cite::getStoredReferences( $title );
+ $allReferences = [];
+ // some pages may not have references stored
+ if ( $storedRefs !== false ) {
+ // a page can have multiple <references> tags but they all have unique keys
+ foreach ( $storedRefs['refs'] as $index => $grouping ) {
+ foreach ( $grouping as $group => $members ) {
+ foreach ( $members as $name => $ref ) {
+ $ref['name'] = $name;
+ $key = $ref['key'];
+ if ( is_string( $name ) ) {
+ $id = Cite::getReferencesKey( $name . '-' . $key );
+ } else {
+ $id = Cite::getReferencesKey( $key );
+ }
+ $ref['group'] = $group;
+ $ref['reflist'] = $index;
+ $allReferences[$id] = $ref;
+ }
+ }
+ }
+ }
+ // set some metadata since its an assoc data structure
+ ApiResult::setArrayType( $allReferences, 'kvp', 'id' );
+ // Ship a data representation of the combined references.
+ $fit = $this->addPageSubItems( $pageId, $allReferences );
+ if ( !$fit ) {
+ $this->setContinueEnumParameter( 'continue', $pageId );
+ break;
+ }
+ }
+ }
+
+ /**
+ * Get the cache mode for the data generated by this module.
+ *
+ * @param array $params
+ * @return string
+ */
+ public function getCacheMode( $params ) {
+ return 'public';
+ }
+
+ /**
+ * @see ApiBase::getExamplesMessages()
+ * @return array
+ */
+ protected function getExamplesMessages() {
+ return [
+ 'action=query&prop=references&titles=Albert%20Einstein' =>
+ 'apihelp-query+references-example-1',
+ ];
+ }
+
+}
diff --git a/www/wiki/extensions/Cite/includes/Cite.php b/www/wiki/extensions/Cite/includes/Cite.php
new file mode 100644
index 00000000..b6fbd8ef
--- /dev/null
+++ b/www/wiki/extensions/Cite/includes/Cite.php
@@ -0,0 +1,1475 @@
+<?php
+
+/**
+ * A parser extension that adds two tags, <ref> and <references> for adding
+ * citations to pages
+ *
+ * @ingroup Extensions
+ *
+ * Documentation
+ * @link http://www.mediawiki.org/wiki/Extension:Cite/Cite.php
+ *
+ * <cite> definition in HTML
+ * @link http://www.w3.org/TR/html4/struct/text.html#edef-CITE
+ *
+ * <cite> definition in XHTML 2.0
+ * @link http://www.w3.org/TR/2005/WD-xhtml2-20050527/mod-text.html#edef_text_cite
+ *
+ * @bug https://phabricator.wikimedia.org/T6579
+ *
+ * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
+ * @copyright Copyright © 2005, Ævar Arnfjörð Bjarmason
+ * @license GPL-2.0-or-later
+ */
+
+use MediaWiki\MediaWikiServices;
+use Wikimedia\Rdbms\IDatabase;
+use Wikimedia\Rdbms\Database;
+
+/**
+ * WARNING: MediaWiki core hardcodes this class name to check if the
+ * Cite extension is installed. See T89151.
+ */
+class Cite {
+
+ /**
+ * @todo document
+ */
+ const DEFAULT_GROUP = '';
+
+ /**
+ * Maximum storage capacity for pp_value field of page_props table
+ * @todo Find a way to retrieve this information from the DBAL
+ */
+ const MAX_STORAGE_LENGTH = 65535; // Size of MySQL 'blob' field
+
+ /**
+ * Key used for storage in parser output's ExtensionData and ObjectCache
+ */
+ const EXT_DATA_KEY = 'Cite:References';
+
+ /**
+ * Version number in case we change the data structure in the future
+ */
+ const DATA_VERSION_NUMBER = 1;
+
+ /**
+ * Cache duration set when parsing a page with references
+ */
+ const CACHE_DURATION_ONPARSE = 3600; // 1 hour
+
+ /**
+ * Cache duration set when fetching references from db
+ */
+ const CACHE_DURATION_ONFETCH = 18000; // 5 hours
+
+ /**
+ * Datastructure representing <ref> input, in the format of:
+ * <code>
+ * [
+ * 'user supplied' => [
+ * 'text' => 'user supplied reference & key',
+ * 'count' => 1, // occurs twice
+ * 'number' => 1, // The first reference, we want
+ * // all occourances of it to
+ * // use the same number
+ * ],
+ * 0 => 'Anonymous reference',
+ * 1 => 'Another anonymous reference',
+ * 'some key' => [
+ * 'text' => 'this one occurs once'
+ * 'count' => 0,
+ * 'number' => 4
+ * ],
+ * 3 => 'more stuff'
+ * ];
+ * </code>
+ *
+ * This works because:
+ * * PHP's datastructures are guaranteed to be returned in the
+ * order that things are inserted into them (unless you mess
+ * with that)
+ * * User supplied keys can't be integers, therefore avoiding
+ * conflict with anonymous keys
+ *
+ * @var array[]
+ */
+ private $mRefs = [];
+
+ /**
+ * Count for user displayed output (ref[1], ref[2], ...)
+ *
+ * @var int
+ */
+ private $mOutCnt = 0;
+
+ /**
+ * @var int[]
+ */
+ private $mGroupCnt = [];
+
+ /**
+ * Counter to track the total number of (useful) calls to either the
+ * ref or references tag hook
+ *
+ * @var int
+ */
+ private $mCallCnt = 0;
+
+ /**
+ * The backlinks, in order, to pass as $3 to
+ * 'cite_references_link_many_format', defined in
+ * 'cite_references_link_many_format_backlink_labels
+ *
+ * @var string[]
+ */
+ private $mBacklinkLabels;
+
+ /**
+ * The links to use per group, in order.
+ *
+ * @var array
+ */
+ private $mLinkLabels = [];
+
+ /**
+ * @var Parser
+ */
+ private $mParser;
+
+ /**
+ * True when the ParserAfterParse hook has been called.
+ * Used to avoid doing anything in ParserBeforeTidy.
+ *
+ * @var boolean
+ */
+ private $mHaveAfterParse = false;
+
+ /**
+ * True when a <ref> tag is being processed.
+ * Used to avoid infinite recursion
+ *
+ * @var boolean
+ */
+ public $mInCite = false;
+
+ /**
+ * True when a <references> tag is being processed.
+ * Used to detect the use of <references> to define refs
+ *
+ * @var boolean
+ */
+ public $mInReferences = false;
+
+ /**
+ * Error stack used when defining refs in <references>
+ *
+ * @var string[]
+ */
+ private $mReferencesErrors = [];
+
+ /**
+ * Group used when in <references> block
+ *
+ * @var string
+ */
+ private $mReferencesGroup = '';
+
+ /**
+ * <ref> call stack
+ * Used to cleanup out of sequence ref calls created by #tag
+ * See description of function rollbackRef.
+ *
+ * @var array
+ */
+ private $mRefCallStack = [];
+
+ /**
+ * @var bool
+ */
+ private $mBumpRefData = false;
+
+ /**
+ * Did we install us into $wgHooks yet?
+ * @var Boolean
+ */
+ private static $hooksInstalled = false;
+
+ /**
+ * Callback function for <ref>
+ *
+ * @param string|null $str Raw content of the <ref> tag.
+ * @param string[] $argv Arguments
+ * @param Parser $parser
+ * @param PPFrame $frame
+ *
+ * @return string
+ */
+ public function ref( $str, array $argv, Parser $parser, PPFrame $frame ) {
+ if ( $this->mInCite ) {
+ return htmlspecialchars( "<ref>$str</ref>" );
+ }
+
+ $this->mCallCnt++;
+ $this->mInCite = true;
+
+ $ret = $this->guardedRef( $str, $argv, $parser );
+
+ $this->mInCite = false;
+
+ $parserOutput = $parser->getOutput();
+ $parserOutput->addModules( 'ext.cite.a11y' );
+ $parserOutput->addModuleStyles( 'ext.cite.styles' );
+
+ if ( is_callable( [ $frame, 'setVolatile' ] ) ) {
+ $frame->setVolatile();
+ }
+
+ // new <ref> tag, we may need to bump the ref data counter
+ // to avoid overwriting a previous group
+ $this->mBumpRefData = true;
+
+ return $ret;
+ }
+
+ /**
+ * @param string|null $str Raw content of the <ref> tag.
+ * @param string[] $argv Arguments
+ * @param Parser $parser
+ * @param string $default_group
+ *
+ * @throws Exception
+ * @return string
+ */
+ private function guardedRef(
+ $str,
+ array $argv,
+ Parser $parser,
+ $default_group = self::DEFAULT_GROUP
+ ) {
+ $this->mParser = $parser;
+
+ # The key here is the "name" attribute.
+ list( $key, $group, $follow ) = $this->refArg( $argv );
+
+ # Split these into groups.
+ if ( $group === null ) {
+ if ( $this->mInReferences ) {
+ $group = $this->mReferencesGroup;
+ } else {
+ $group = $default_group;
+ }
+ }
+
+ /*
+ * This section deals with constructions of the form
+ *
+ * <references>
+ * <ref name="foo"> BAR </ref>
+ * </references>
+ */
+ if ( $this->mInReferences ) {
+ $isSectionPreview = $parser->getOptions()->getIsSectionPreview();
+ if ( $group != $this->mReferencesGroup ) {
+ # <ref> and <references> have conflicting group attributes.
+ $this->mReferencesErrors[] =
+ $this->error(
+ 'cite_error_references_group_mismatch',
+ Sanitizer::safeEncodeAttribute( $group )
+ );
+ } elseif ( $str !== '' ) {
+ if ( !$isSectionPreview && !isset( $this->mRefs[$group] ) ) {
+ # Called with group attribute not defined in text.
+ $this->mReferencesErrors[] =
+ $this->error(
+ 'cite_error_references_missing_group',
+ Sanitizer::safeEncodeAttribute( $group )
+ );
+ } elseif ( $key === null || $key === '' ) {
+ # <ref> calls inside <references> must be named
+ $this->mReferencesErrors[] =
+ $this->error( 'cite_error_references_no_key' );
+ } elseif ( !$isSectionPreview && !isset( $this->mRefs[$group][$key] ) ) {
+ # Called with name attribute not defined in text.
+ $this->mReferencesErrors[] =
+ $this->error( 'cite_error_references_missing_key', Sanitizer::safeEncodeAttribute( $key ) );
+ } else {
+ if (
+ isset( $this->mRefs[$group][$key]['text'] ) &&
+ $str !== $this->mRefs[$group][$key]['text']
+ ) {
+ // two refs with same key and different content
+ // add error message to the original ref
+ $this->mRefs[$group][$key]['text'] .= ' ' . $this->error(
+ 'cite_error_references_duplicate_key', $key, 'noparse'
+ );
+ } else {
+ # Assign the text to corresponding ref
+ $this->mRefs[$group][$key]['text'] = $str;
+ }
+ }
+ } else {
+ # <ref> called in <references> has no content.
+ $this->mReferencesErrors[] =
+ $this->error( 'cite_error_empty_references_define', Sanitizer::safeEncodeAttribute( $key ) );
+ }
+ return '';
+ }
+
+ if ( $str === '' ) {
+ # <ref ...></ref>. This construct is invalid if
+ # it's a contentful ref, but OK if it's a named duplicate and should
+ # be equivalent <ref ... />, for compatability with #tag.
+ if ( is_string( $key ) && $key !== '' ) {
+ $str = null;
+ } else {
+ $this->mRefCallStack[] = false;
+
+ return $this->error( 'cite_error_ref_no_input' );
+ }
+ }
+
+ if ( $key === false ) {
+ # TODO: Comment this case; what does this condition mean?
+ $this->mRefCallStack[] = false;
+ return $this->error( 'cite_error_ref_too_many_keys' );
+ }
+
+ if ( $str === null && $key === null ) {
+ # Something like <ref />; this makes no sense.
+ $this->mRefCallStack[] = false;
+ return $this->error( 'cite_error_ref_no_key' );
+ }
+
+ if ( is_string( $key ) && preg_match( '/^[0-9]+$/', $key ) ||
+ is_string( $follow ) && preg_match( '/^[0-9]+$/', $follow )
+ ) {
+ # Numeric names mess up the resulting id's, potentially produ-
+ # cing duplicate id's in the XHTML. The Right Thing To Do
+ # would be to mangle them, but it's not really high-priority
+ # (and would produce weird id's anyway).
+
+ $this->mRefCallStack[] = false;
+ return $this->error( 'cite_error_ref_numeric_key' );
+ }
+
+ if ( preg_match(
+ '/<ref\b[^<]*?>/',
+ preg_replace( '#<([^ ]+?).*?>.*?</\\1 *>|<!--.*?-->#', '', $str )
+ ) ) {
+ # (bug T8199) This most likely implies that someone left off the
+ # closing </ref> tag, which will cause the entire article to be
+ # eaten up until the next <ref>. So we bail out early instead.
+ # The fancy regex above first tries chopping out anything that
+ # looks like a comment or SGML tag, which is a crude way to avoid
+ # false alarms for <nowiki>, <pre>, etc.
+
+ # Possible improvement: print the warning, followed by the contents
+ # of the <ref> tag. This way no part of the article will be eaten
+ # even temporarily.
+
+ $this->mRefCallStack[] = false;
+ return $this->error( 'cite_error_included_ref' );
+ }
+
+ if ( is_string( $key ) || is_string( $str ) ) {
+ # We don't care about the content: if the key exists, the ref
+ # is presumptively valid. Either it stores a new ref, or re-
+ # fers to an existing one. If it refers to a nonexistent ref,
+ # we'll figure that out later. Likewise it's definitely valid
+ # if there's any content, regardless of key.
+
+ return $this->stack( $str, $key, $group, $follow, $argv );
+ }
+
+ # Not clear how we could get here, but something is probably
+ # wrong with the types. Let's fail fast.
+ throw new Exception( 'Invalid $str and/or $key: ' . serialize( [ $str, $key ] ) );
+ }
+
+ /**
+ * Parse the arguments to the <ref> tag
+ *
+ * "name" : Key of the reference.
+ * "group" : Group to which it belongs. Needs to be passed to <references /> too.
+ * "follow" : If the current reference is the continuation of another, key of that reference.
+ *
+ * @param string[] $argv The argument vector
+ * @return mixed false on invalid input, a string on valid
+ * input and null on no input
+ */
+ private function refArg( array $argv ) {
+ $cnt = count( $argv );
+ $group = null;
+ $key = null;
+ $follow = null;
+
+ if ( $cnt > 2 ) {
+ // There should only be one key or follow parameter, and one group parameter
+ // FIXME : this looks inconsistent, it should probably return a tuple
+ return false;
+ } elseif ( $cnt >= 1 ) {
+ if ( isset( $argv['name'] ) && isset( $argv['follow'] ) ) {
+ return [ false, false, false ];
+ }
+ if ( isset( $argv['name'] ) ) {
+ // Key given.
+ $key = trim( $argv['name'] );
+ unset( $argv['name'] );
+ --$cnt;
+ }
+ if ( isset( $argv['follow'] ) ) {
+ // Follow given.
+ $follow = trim( $argv['follow'] );
+ unset( $argv['follow'] );
+ --$cnt;
+ }
+ if ( isset( $argv['group'] ) ) {
+ // Group given.
+ $group = $argv['group'];
+ unset( $argv['group'] );
+ --$cnt;
+ }
+
+ if ( $cnt === 0 ) {
+ return [ $key, $group, $follow ];
+ } else {
+ // Invalid key
+ return [ false, false, false ];
+ }
+ } else {
+ // No key
+ return [ null, $group, false ];
+ }
+ }
+
+ /**
+ * Populate $this->mRefs based on input and arguments to <ref>
+ *
+ * @param string $str Input from the <ref> tag
+ * @param string|null $key Argument to the <ref> tag as returned by $this->refArg()
+ * @param string $group
+ * @param string|null $follow
+ * @param string[] $call
+ *
+ * @throws Exception
+ * @return string
+ */
+ private function stack( $str, $key, $group, $follow, array $call ) {
+ if ( !isset( $this->mRefs[$group] ) ) {
+ $this->mRefs[$group] = [];
+ }
+ if ( !isset( $this->mGroupCnt[$group] ) ) {
+ $this->mGroupCnt[$group] = 0;
+ }
+ if ( $follow != null ) {
+ if ( isset( $this->mRefs[$group][$follow] ) && is_array( $this->mRefs[$group][$follow] ) ) {
+ // add text to the note that is being followed
+ $this->mRefs[$group][$follow]['text'] .= ' ' . $str;
+ } else {
+ // insert part of note at the beginning of the group
+ $groupsCount = count( $this->mRefs[$group] );
+ for ( $k = 0; $k < $groupsCount; $k++ ) {
+ if ( !isset( $this->mRefs[$group][$k]['follow'] ) ) {
+ break;
+ }
+ }
+ array_splice( $this->mRefs[$group], $k, 0, [ [
+ 'count' => -1,
+ 'text' => $str,
+ 'key' => ++$this->mOutCnt,
+ 'follow' => $follow
+ ] ] );
+ array_splice( $this->mRefCallStack, $k, 0,
+ [ [ 'new', $call, $str, $key, $group, $this->mOutCnt ] ] );
+ }
+ // return an empty string : this is not a reference
+ return '';
+ }
+
+ if ( $key === null ) {
+ // No key
+ // $this->mRefs[$group][] = $str;
+ $this->mRefs[$group][] = [
+ 'count' => -1,
+ 'text' => $str,
+ 'key' => ++$this->mOutCnt
+ ];
+ $this->mRefCallStack[] = [ 'new', $call, $str, $key, $group, $this->mOutCnt ];
+
+ return $this->linkRef( $group, $this->mOutCnt );
+ }
+ if ( !is_string( $key ) ) {
+ throw new Exception( 'Invalid stack key: ' . serialize( $key ) );
+ }
+
+ // Valid key
+ if ( !isset( $this->mRefs[$group][$key] ) || !is_array( $this->mRefs[$group][$key] ) ) {
+ // First occurrence
+ $this->mRefs[$group][$key] = [
+ 'text' => $str,
+ 'count' => 0,
+ 'key' => ++$this->mOutCnt,
+ 'number' => ++$this->mGroupCnt[$group]
+ ];
+ $this->mRefCallStack[] = [ 'new', $call, $str, $key, $group, $this->mOutCnt ];
+
+ return $this->linkRef(
+ $group,
+ $key,
+ $this->mRefs[$group][$key]['key'] . "-" . $this->mRefs[$group][$key]['count'],
+ $this->mRefs[$group][$key]['number'],
+ "-" . $this->mRefs[$group][$key]['key']
+ );
+ }
+
+ // We've been here before
+ if ( $this->mRefs[$group][$key]['text'] === null && $str !== '' ) {
+ // If no text found before, use this text
+ $this->mRefs[$group][$key]['text'] = $str;
+ $this->mRefCallStack[] = [ 'assign', $call, $str, $key, $group,
+ $this->mRefs[$group][$key]['key'] ];
+ } else {
+ if ( $str != null && $str !== '' && $str !== $this->mRefs[$group][$key]['text'] ) {
+ // two refs with same key and different content
+ // add error message to the original ref
+ $this->mRefs[$group][$key]['text'] .= ' ' . $this->error(
+ 'cite_error_references_duplicate_key', $key, 'noparse'
+ );
+ }
+ $this->mRefCallStack[] = [ 'increment', $call, $str, $key, $group,
+ $this->mRefs[$group][$key]['key'] ];
+ }
+ return $this->linkRef(
+ $group,
+ $key,
+ $this->mRefs[$group][$key]['key'] . "-" . ++$this->mRefs[$group][$key]['count'],
+ $this->mRefs[$group][$key]['number'],
+ "-" . $this->mRefs[$group][$key]['key']
+ );
+ }
+
+ /**
+ * Partially undoes the effect of calls to stack()
+ *
+ * Called by guardedReferences()
+ *
+ * The option to define <ref> within <references> makes the
+ * behavior of <ref> context dependent. This is normally fine
+ * but certain operations (especially #tag) lead to out-of-order
+ * parser evaluation with the <ref> tags being processed before
+ * their containing <reference> element is read. This leads to
+ * stack corruption that this function works to fix.
+ *
+ * This function is not a total rollback since some internal
+ * counters remain incremented. Doing so prevents accidentally
+ * corrupting certain links.
+ *
+ * @param string $type
+ * @param string|null $key
+ * @param string $group
+ * @param int $index
+ */
+ private function rollbackRef( $type, $key, $group, $index ) {
+ if ( !isset( $this->mRefs[$group] ) ) {
+ return;
+ }
+
+ if ( $key === null ) {
+ foreach ( $this->mRefs[$group] as $k => $v ) {
+ if ( $this->mRefs[$group][$k]['key'] === $index ) {
+ $key = $k;
+ break;
+ }
+ }
+ }
+
+ // Sanity checks that specified element exists.
+ if ( $key === null ) {
+ return;
+ }
+ if ( !isset( $this->mRefs[$group][$key] ) ) {
+ return;
+ }
+ if ( $this->mRefs[$group][$key]['key'] != $index ) {
+ return;
+ }
+
+ switch ( $type ) {
+ case 'new':
+ # Rollback the addition of new elements to the stack.
+ unset( $this->mRefs[$group][$key] );
+ if ( $this->mRefs[$group] === [] ) {
+ unset( $this->mRefs[$group] );
+ unset( $this->mGroupCnt[$group] );
+ }
+ break;
+ case 'assign':
+ # Rollback assignment of text to pre-existing elements.
+ $this->mRefs[$group][$key]['text'] = null;
+ # continue without break
+ case 'increment':
+ # Rollback increase in named ref occurrences.
+ $this->mRefs[$group][$key]['count']--;
+ break;
+ }
+ }
+
+ /**
+ * Callback function for <references>
+ *
+ * @param string|null $str Raw content of the <references> tag.
+ * @param string[] $argv Arguments
+ * @param Parser $parser
+ * @param PPFrame $frame
+ *
+ * @return string
+ */
+ public function references( $str, array $argv, Parser $parser, PPFrame $frame ) {
+ if ( $this->mInCite || $this->mInReferences ) {
+ if ( is_null( $str ) ) {
+ return htmlspecialchars( "<references/>" );
+ }
+ return htmlspecialchars( "<references>$str</references>" );
+ }
+ $this->mCallCnt++;
+ $this->mInReferences = true;
+ $ret = $this->guardedReferences( $str, $argv, $parser );
+ $this->mInReferences = false;
+ if ( is_callable( [ $frame, 'setVolatile' ] ) ) {
+ $frame->setVolatile();
+ }
+ return $ret;
+ }
+
+ /**
+ * @param string|null $str Raw content of the <references> tag.
+ * @param string[] $argv
+ * @param Parser $parser
+ * @param string $group
+ *
+ * @return string
+ */
+ private function guardedReferences(
+ $str,
+ array $argv,
+ Parser $parser,
+ $group = self::DEFAULT_GROUP
+ ) {
+ global $wgCiteResponsiveReferences;
+
+ $this->mParser = $parser;
+
+ if ( isset( $argv['group'] ) ) {
+ $group = $argv['group'];
+ unset( $argv['group'] );
+ }
+
+ if ( strval( $str ) !== '' ) {
+ $this->mReferencesGroup = $group;
+
+ # Detect whether we were sent already rendered <ref>s.
+ # Mostly a side effect of using #tag to call references.
+ # The following assumes that the parsed <ref>s sent within
+ # the <references> block were the most recent calls to
+ # <ref>. This assumption is true for all known use cases,
+ # but not strictly enforced by the parser. It is possible
+ # that some unusual combination of #tag, <references> and
+ # conditional parser functions could be created that would
+ # lead to malformed references here.
+ $count = substr_count( $str, Parser::MARKER_PREFIX . "-ref-" );
+ $redoStack = [];
+
+ # Undo effects of calling <ref> while unaware of containing <references>
+ for ( $i = 1; $i <= $count; $i++ ) {
+ if ( !$this->mRefCallStack ) {
+ break;
+ }
+
+ $call = array_pop( $this->mRefCallStack );
+ $redoStack[] = $call;
+ if ( $call !== false ) {
+ list( $type, $ref_argv, $ref_str,
+ $ref_key, $ref_group, $ref_index ) = $call;
+ $this->rollbackRef( $type, $ref_key, $ref_group, $ref_index );
+ }
+ }
+
+ # Rerun <ref> call now that mInReferences is set.
+ for ( $i = count( $redoStack ) - 1; $i >= 0; $i-- ) {
+ $call = $redoStack[$i];
+ if ( $call !== false ) {
+ list( $type, $ref_argv, $ref_str,
+ $ref_key, $ref_group, $ref_index ) = $call;
+ $this->guardedRef( $ref_str, $ref_argv, $parser );
+ }
+ }
+
+ # Parse $str to process any unparsed <ref> tags.
+ $parser->recursiveTagParse( $str );
+
+ # Reset call stack
+ $this->mRefCallStack = [];
+ }
+
+ if ( isset( $argv['responsive'] ) ) {
+ $responsive = $argv['responsive'] !== '0';
+ unset( $argv['responsive'] );
+ } else {
+ $responsive = $wgCiteResponsiveReferences;
+ }
+
+ // There are remaining parameters we don't recognise
+ if ( $argv ) {
+ return $this->error( 'cite_error_references_invalid_parameters' );
+ }
+
+ $s = $this->referencesFormat( $group, $responsive );
+
+ # Append errors generated while processing <references>
+ if ( $this->mReferencesErrors ) {
+ $s .= "\n" . implode( "<br />\n", $this->mReferencesErrors );
+ $this->mReferencesErrors = [];
+ }
+ return $s;
+ }
+
+ /**
+ * Make output to be returned from the references() function
+ *
+ * @param string $group
+ * @param bool $responsive
+ * @return string HTML ready for output
+ */
+ private function referencesFormat( $group, $responsive ) {
+ if ( !$this->mRefs || !isset( $this->mRefs[$group] ) ) {
+ return '';
+ }
+
+ $ent = [];
+ foreach ( $this->mRefs[$group] as $k => $v ) {
+ $ent[] = $this->referencesFormatEntry( $k, $v );
+ }
+
+ // Add new lines between the list items (ref entires) to avoid confusing tidy (bug 13073).
+ // Note: This builds a string of wikitext, not html.
+ $parserInput = Html::rawElement( 'ol', [ 'class' => [ 'references' ] ],
+ "\n" . implode( "\n", $ent ) . "\n"
+ );
+
+ // Live hack: parse() adds two newlines on WM, can't reproduce it locally -ævar
+ $ret = rtrim( $this->mParser->recursiveTagParse( $parserInput ), "\n" );
+
+ if ( $responsive ) {
+ // Use a DIV wrap because column-count on a list directly is broken in Chrome.
+ // See https://bugs.chromium.org/p/chromium/issues/detail?id=498730.
+ $wrapClasses = [ 'mw-references-wrap' ];
+ if ( count( $this->mRefs[$group] ) > 10 ) {
+ $wrapClasses[] = 'mw-references-columns';
+ }
+ $ret = Html::rawElement( 'div', [ 'class' => $wrapClasses ], $ret );
+ }
+
+ if ( !$this->mParser->getOptions()->getIsPreview() ) {
+ // save references data for later use by LinksUpdate hooks
+ $this->saveReferencesData( $group );
+ }
+
+ // done, clean up so we can reuse the group
+ unset( $this->mRefs[$group] );
+ unset( $this->mGroupCnt[$group] );
+
+ return $ret;
+ }
+
+ /**
+ * Format a single entry for the referencesFormat() function
+ *
+ * @param string $key The key of the reference
+ * @param mixed $val The value of the reference, string for anonymous
+ * references, array for user-suppplied
+ * @return string Wikitext
+ */
+ private function referencesFormatEntry( $key, $val ) {
+ // Anonymous reference
+ if ( !is_array( $val ) ) {
+ return wfMessage(
+ 'cite_references_link_one',
+ $this->normalizeKey(
+ self::getReferencesKey( $key )
+ ),
+ $this->normalizeKey(
+ $this->refKey( $key )
+ ),
+ $this->referenceText( $key, $val )
+ )->inContentLanguage()->plain();
+ }
+ $text = $this->referenceText( $key, $val['text'] );
+ if ( isset( $val['follow'] ) ) {
+ return wfMessage(
+ 'cite_references_no_link',
+ $this->normalizeKey(
+ self::getReferencesKey( $val['follow'] )
+ ),
+ $text
+ )->inContentLanguage()->plain();
+ }
+ if ( !isset( $val['count'] ) ) {
+ // this handles the case of section preview for list-defined references
+ return wfMessage( 'cite_references_link_many',
+ $this->normalizeKey(
+ self::getReferencesKey( $key . "-" . ( isset( $val['key'] ) ? $val['key'] : '' ) )
+ ),
+ '',
+ $text
+ )->inContentLanguage()->plain();
+ }
+ if ( $val['count'] < 0 ) {
+ return wfMessage(
+ 'cite_references_link_one',
+ $this->normalizeKey(
+ self::getReferencesKey( $val['key'] )
+ ),
+ $this->normalizeKey(
+ # $this->refKey( $val['key'], $val['count'] )
+ $this->refKey( $val['key'] )
+ ),
+ $text
+ )->inContentLanguage()->plain();
+ // Standalone named reference, I want to format this like an
+ // anonymous reference because displaying "1. 1.1 Ref text" is
+ // overkill and users frequently use named references when they
+ // don't need them for convenience
+ }
+ if ( $val['count'] === 0 ) {
+ return wfMessage(
+ 'cite_references_link_one',
+ $this->normalizeKey(
+ self::getReferencesKey( $key . "-" . $val['key'] )
+ ),
+ $this->normalizeKey(
+ # $this->refKey( $key, $val['count'] ),
+ $this->refKey( $key, $val['key'] . "-" . $val['count'] )
+ ),
+ $text
+ )->inContentLanguage()->plain();
+ // Named references with >1 occurrences
+ }
+ $links = [];
+ // for group handling, we have an extra key here.
+ for ( $i = 0; $i <= $val['count']; ++$i ) {
+ $links[] = wfMessage(
+ 'cite_references_link_many_format',
+ $this->normalizeKey(
+ $this->refKey( $key, $val['key'] . "-$i" )
+ ),
+ $this->referencesFormatEntryNumericBacklinkLabel( $val['number'], $i, $val['count'] ),
+ $this->referencesFormatEntryAlternateBacklinkLabel( $i )
+ )->inContentLanguage()->plain();
+ }
+
+ $list = $this->listToText( $links );
+
+ return wfMessage( 'cite_references_link_many',
+ $this->normalizeKey(
+ self::getReferencesKey( $key . "-" . $val['key'] )
+ ),
+ $list,
+ $text
+ )->inContentLanguage()->plain();
+ }
+
+ /**
+ * Returns formatted reference text
+ * @param String $key
+ * @param String $text
+ * @return String
+ */
+ private function referenceText( $key, $text ) {
+ if ( !isset( $text ) || $text === '' ) {
+ if ( $this->mParser->getOptions()->getIsSectionPreview() ) {
+ return $this->warning( 'cite_warning_sectionpreview_no_text', $key, 'noparse' );
+ }
+ return $this->error( 'cite_error_references_no_text', $key, 'noparse' );
+ }
+ return '<span class="reference-text">' . rtrim( $text, "\n" ) . "</span>\n";
+ }
+
+ /**
+ * Generate a numeric backlink given a base number and an
+ * offset, e.g. $base = 1, $offset = 2; = 1.2
+ * Since bug #5525, it correctly does 1.9 -> 1.10 as well as 1.099 -> 1.100
+ *
+ * @static
+ *
+ * @param int $base
+ * @param int $offset
+ * @param int $max Maximum value expected.
+ * @return string
+ */
+ private function referencesFormatEntryNumericBacklinkLabel( $base, $offset, $max ) {
+ global $wgContLang;
+ $scope = strlen( $max );
+ $ret = $wgContLang->formatNum(
+ sprintf( "%s.%0{$scope}s", $base, $offset )
+ );
+ return $ret;
+ }
+
+ /**
+ * Generate a custom format backlink given an offset, e.g.
+ * $offset = 2; = c if $this->mBacklinkLabels = [ 'a',
+ * 'b', 'c', ...]. Return an error if the offset > the # of
+ * array items
+ *
+ * @param int $offset
+ *
+ * @return string
+ */
+ private function referencesFormatEntryAlternateBacklinkLabel( $offset ) {
+ if ( !isset( $this->mBacklinkLabels ) ) {
+ $this->genBacklinkLabels();
+ }
+ if ( isset( $this->mBacklinkLabels[$offset] ) ) {
+ return $this->mBacklinkLabels[$offset];
+ } else {
+ // Feed me!
+ return $this->error( 'cite_error_references_no_backlink_label', null, 'noparse' );
+ }
+ }
+
+ /**
+ * Generate a custom format link for a group given an offset, e.g.
+ * the second <ref group="foo"> is b if $this->mLinkLabels["foo"] =
+ * [ 'a', 'b', 'c', ...].
+ * Return an error if the offset > the # of array items
+ *
+ * @param int $offset
+ * @param string $group The group name
+ * @param string $label The text to use if there's no message for them.
+ *
+ * @return string
+ */
+ private function getLinkLabel( $offset, $group, $label ) {
+ $message = "cite_link_label_group-$group";
+ if ( !isset( $this->mLinkLabels[$group] ) ) {
+ $this->genLinkLabels( $group, $message );
+ }
+ if ( $this->mLinkLabels[$group] === false ) {
+ // Use normal representation, ie. "$group 1", "$group 2"...
+ return $label;
+ }
+
+ if ( isset( $this->mLinkLabels[$group][$offset - 1] ) ) {
+ return $this->mLinkLabels[$group][$offset - 1];
+ } else {
+ // Feed me!
+ return $this->error( 'cite_error_no_link_label_group', [ $group, $message ], 'noparse' );
+ }
+ }
+
+ /**
+ * Return an id for use in wikitext output based on a key and
+ * optionally the number of it, used in <references>, not <ref>
+ * (since otherwise it would link to itself)
+ *
+ * @static
+ *
+ * @param string $key
+ * @param int $num The number of the key
+ * @return string A key for use in wikitext
+ */
+ private function refKey( $key, $num = null ) {
+ $prefix = wfMessage( 'cite_reference_link_prefix' )->inContentLanguage()->text();
+ $suffix = wfMessage( 'cite_reference_link_suffix' )->inContentLanguage()->text();
+ if ( isset( $num ) ) {
+ $key = wfMessage( 'cite_reference_link_key_with_num', $key, $num )
+ ->inContentLanguage()->plain();
+ }
+
+ return "$prefix$key$suffix";
+ }
+
+ /**
+ * Return an id for use in wikitext output based on a key and
+ * optionally the number of it, used in <ref>, not <references>
+ * (since otherwise it would link to itself)
+ *
+ * @static
+ *
+ * @param string $key
+ * @return string A key for use in wikitext
+ */
+ public static function getReferencesKey( $key ) {
+ $prefix = wfMessage( 'cite_references_link_prefix' )->inContentLanguage()->text();
+ $suffix = wfMessage( 'cite_references_link_suffix' )->inContentLanguage()->text();
+
+ return "$prefix$key$suffix";
+ }
+
+ /**
+ * Generate a link (<sup ...) for the <ref> element from a key
+ * and return XHTML ready for output
+ *
+ * @param string $group
+ * @param string $key The key for the link
+ * @param int $count The index of the key, used for distinguishing
+ * multiple occurrences of the same key
+ * @param int $label The label to use for the link, I want to
+ * use the same label for all occourances of
+ * the same named reference.
+ * @param string $subkey
+ *
+ * @return string
+ */
+ private function linkRef( $group, $key, $count = null, $label = null, $subkey = '' ) {
+ global $wgContLang;
+ $label = is_null( $label ) ? ++$this->mGroupCnt[$group] : $label;
+
+ return $this->mParser->recursiveTagParse(
+ wfMessage(
+ 'cite_reference_link',
+ $this->normalizeKey(
+ $this->refKey( $key, $count )
+ ),
+ $this->normalizeKey(
+ self::getReferencesKey( $key . $subkey )
+ ),
+ Sanitizer::safeEncodeAttribute(
+ $this->getLinkLabel( $label, $group,
+ ( ( $group === self::DEFAULT_GROUP ) ? '' : "$group " ) . $wgContLang->formatNum( $label ) )
+ )
+ )->inContentLanguage()->plain()
+ );
+ }
+
+ /**
+ * Normalizes and sanitizes a reference key
+ *
+ * @param string $key
+ * @return string
+ */
+ private function normalizeKey( $key ) {
+ $key = Sanitizer::escapeIdForAttribute( $key );
+ $key = Sanitizer::safeEncodeAttribute( $key );
+
+ return $key;
+ }
+
+ /**
+ * This does approximately the same thing as
+ * Language::listToText() but due to this being used for a
+ * slightly different purpose (people might not want , as the
+ * first separator and not 'and' as the second, and this has to
+ * use messages from the content language) I'm rolling my own.
+ *
+ * @static
+ *
+ * @param array $arr The array to format
+ * @return string
+ */
+ private function listToText( $arr ) {
+ $cnt = count( $arr );
+
+ $sep = wfMessage( 'cite_references_link_many_sep' )->inContentLanguage()->plain();
+ $and = wfMessage( 'cite_references_link_many_and' )->inContentLanguage()->plain();
+
+ if ( $cnt === 1 ) {
+ // Enforce always returning a string
+ return (string)$arr[0];
+ } else {
+ $t = array_slice( $arr, 0, $cnt - 1 );
+ return implode( $sep, $t ) . $and . $arr[$cnt - 1];
+ }
+ }
+
+ /**
+ * Generate the labels to pass to the
+ * 'cite_references_link_many_format' message, the format is an
+ * arbitrary number of tokens separated by [\t\n ]
+ */
+ private function genBacklinkLabels() {
+ $text = wfMessage( 'cite_references_link_many_format_backlink_labels' )
+ ->inContentLanguage()->plain();
+ $this->mBacklinkLabels = preg_split( '#[\n\t ]#', $text );
+ }
+
+ /**
+ * Generate the labels to pass to the
+ * 'cite_reference_link' message instead of numbers, the format is an
+ * arbitrary number of tokens separated by [\t\n ]
+ *
+ * @param string $group
+ * @param string $message
+ */
+ private function genLinkLabels( $group, $message ) {
+ $text = false;
+ $msg = wfMessage( $message )->inContentLanguage();
+ if ( $msg->exists() ) {
+ $text = $msg->plain();
+ }
+ $this->mLinkLabels[$group] = ( !$text ) ? false : preg_split( '#[\n\t ]#', $text );
+ }
+
+ /**
+ * Gets run when Parser::clearState() gets run, since we don't
+ * want the counts to transcend pages and other instances
+ *
+ * @param Parser &$parser
+ *
+ * @return bool
+ */
+ public function clearState( Parser &$parser ) {
+ if ( $parser->extCite !== $this ) {
+ return $parser->extCite->clearState( $parser );
+ }
+
+ # Don't clear state when we're in the middle of parsing
+ # a <ref> tag
+ if ( $this->mInCite || $this->mInReferences ) {
+ return true;
+ }
+
+ $this->mGroupCnt = [];
+ $this->mOutCnt = 0;
+ $this->mCallCnt = 0;
+ $this->mRefs = [];
+ $this->mReferencesErrors = [];
+ $this->mRefCallStack = [];
+
+ return true;
+ }
+
+ /**
+ * Gets run when the parser is cloned.
+ *
+ * @param Parser $parser
+ *
+ * @return bool
+ */
+ public function cloneState( Parser $parser ) {
+ if ( $parser->extCite !== $this ) {
+ return $parser->extCite->cloneState( $parser );
+ }
+
+ $parser->extCite = clone $this;
+ $parser->setHook( 'ref', [ $parser->extCite, 'ref' ] );
+ $parser->setHook( 'references', [ $parser->extCite, 'references' ] );
+
+ // Clear the state, making sure it will actually work.
+ $parser->extCite->mInCite = false;
+ $parser->extCite->mInReferences = false;
+ $parser->extCite->clearState( $parser );
+
+ return true;
+ }
+
+ /**
+ * Called at the end of page processing to append a default references
+ * section, if refs were used without a main references tag. If there are references
+ * in a custom group, and there is no references tag for it, show an error
+ * message for that group.
+ * If we are processing a section preview, this adds the missing
+ * references tags and does not add the errors.
+ *
+ * @param bool $afterParse True if called from the ParserAfterParse hook
+ * @param Parser &$parser
+ * @param string &$text
+ *
+ * @return bool
+ */
+ public function checkRefsNoReferences( $afterParse, &$parser, &$text ) {
+ global $wgCiteResponsiveReferences;
+ if ( is_null( $parser->extCite ) ) {
+ return true;
+ }
+ if ( $parser->extCite !== $this ) {
+ return $parser->extCite->checkRefsNoReferences( $afterParse, $parser, $text );
+ }
+
+ if ( $afterParse ) {
+ $this->mHaveAfterParse = true;
+ } elseif ( $this->mHaveAfterParse ) {
+ return true;
+ }
+
+ if ( !$parser->getOptions()->getIsPreview() ) {
+ // save references data for later use by LinksUpdate hooks
+ if ( $this->mRefs && isset( $this->mRefs[self::DEFAULT_GROUP] ) ) {
+ $this->saveReferencesData();
+ }
+ $isSectionPreview = false;
+ } else {
+ $isSectionPreview = $parser->getOptions()->getIsSectionPreview();
+ }
+
+ $s = '';
+ foreach ( $this->mRefs as $group => $refs ) {
+ if ( !$refs ) {
+ continue;
+ }
+ if ( $group === self::DEFAULT_GROUP || $isSectionPreview ) {
+ $s .= $this->referencesFormat( $group, $wgCiteResponsiveReferences );
+ } else {
+ $s .= "\n<br />" .
+ $this->error(
+ 'cite_error_group_refs_without_references',
+ Sanitizer::safeEncodeAttribute( $group )
+ );
+ }
+ }
+ if ( $isSectionPreview && $s !== '' ) {
+ // provide a preview of references in its own section
+ $text .= "\n" . '<div class="mw-ext-cite-cite_section_preview_references" >';
+ $headerMsg = wfMessage( 'cite_section_preview_references' );
+ if ( !$headerMsg->isDisabled() ) {
+ $text .= '<h2 id="mw-ext-cite-cite_section_preview_references_header" >'
+ . $headerMsg->escaped()
+ . '</h2>';
+ }
+ $text .= $s . '</div>';
+ } else {
+ $text .= $s;
+ }
+ return true;
+ }
+
+ /**
+ * Saves references in parser extension data
+ * This is called by each <references/> tag, and by checkRefsNoReferences
+ * Assumes $this->mRefs[$group] is set
+ *
+ * @param string $group
+ */
+ private function saveReferencesData( $group = self::DEFAULT_GROUP ) {
+ global $wgCiteStoreReferencesData;
+ if ( !$wgCiteStoreReferencesData ) {
+ return;
+ }
+ $savedRefs = $this->mParser->getOutput()->getExtensionData( self::EXT_DATA_KEY );
+ if ( $savedRefs === null ) {
+ // Initialize array structure
+ $savedRefs = [
+ 'refs' => [],
+ 'version' => self::DATA_VERSION_NUMBER,
+ ];
+ }
+ if ( $this->mBumpRefData ) {
+ // This handles pages with multiple <references/> tags with <ref> tags in between.
+ // On those, a group can appear several times, so we need to avoid overwriting
+ // a previous appearance.
+ $savedRefs['refs'][] = [];
+ $this->mBumpRefData = false;
+ }
+ $n = count( $savedRefs['refs'] ) - 1;
+ // save group
+ $savedRefs['refs'][$n][$group] = $this->mRefs[$group];
+
+ $this->mParser->getOutput()->setExtensionData( self::EXT_DATA_KEY, $savedRefs );
+ }
+
+ /**
+ * Hook for the InlineEditor extension.
+ * If any ref or reference reference tag is in the text,
+ * the entire page should be reparsed, so we return false in that case.
+ *
+ * @param string &$output
+ *
+ * @return bool
+ */
+ public function checkAnyCalls( &$output ) {
+ global $wgParser;
+ /* InlineEditor always uses $wgParser */
+ return ( $wgParser->extCite->mCallCnt <= 0 );
+ }
+
+ /**
+ * Initialize the parser hooks
+ *
+ * @param Parser $parser
+ *
+ * @return bool
+ */
+ public static function setHooks( Parser $parser ) {
+ global $wgHooks;
+
+ $parser->extCite = new self();
+
+ if ( !self::$hooksInstalled ) {
+ $wgHooks['ParserClearState'][] = [ $parser->extCite, 'clearState' ];
+ $wgHooks['ParserCloned'][] = [ $parser->extCite, 'cloneState' ];
+ $wgHooks['ParserAfterParse'][] = [ $parser->extCite, 'checkRefsNoReferences', true ];
+ $wgHooks['ParserBeforeTidy'][] = [ $parser->extCite, 'checkRefsNoReferences', false ];
+ $wgHooks['InlineEditorPartialAfterParse'][] = [ $parser->extCite, 'checkAnyCalls' ];
+ self::$hooksInstalled = true;
+ }
+ $parser->setHook( 'ref', [ $parser->extCite, 'ref' ] );
+ $parser->setHook( 'references', [ $parser->extCite, 'references' ] );
+
+ return true;
+ }
+
+ /**
+ * Return an error message based on an error ID
+ *
+ * @param string $key Message name for the error
+ * @param string[]|string|null $param Parameter to pass to the message
+ * @param string $parse Whether to parse the message ('parse') or not ('noparse')
+ * @return string XHTML or wikitext ready for output
+ */
+ private function error( $key, $param = null, $parse = 'parse' ) {
+ # For ease of debugging and because errors are rare, we
+ # use the user language and split the parser cache.
+ $lang = $this->mParser->getOptions()->getUserLangObj();
+ $dir = $lang->getDir();
+
+ # We rely on the fact that PHP is okay with passing unused argu-
+ # ments to functions. If $1 is not used in the message, wfMessage will
+ # just ignore the extra parameter.
+ $msg = wfMessage(
+ 'cite_error',
+ wfMessage( $key, $param )->inLanguage( $lang )->plain()
+ )
+ ->inLanguage( $lang )
+ ->plain();
+
+ $this->mParser->addTrackingCategory( 'cite-tracking-category-cite-error' );
+
+ $ret = Html::rawElement(
+ 'span',
+ [
+ 'class' => 'error mw-ext-cite-error',
+ 'lang' => $lang->getHtmlCode(),
+ 'dir' => $dir,
+ ],
+ $msg
+ );
+
+ if ( $parse === 'parse' ) {
+ $ret = $this->mParser->recursiveTagParse( $ret );
+ }
+
+ return $ret;
+ }
+
+ /**
+ * Return a warning message based on a warning ID
+ *
+ * @param string $key Message name for the warning. Name should start with cite_warning_
+ * @param string|null $param Parameter to pass to the message
+ * @param string $parse Whether to parse the message ('parse') or not ('noparse')
+ * @return string XHTML or wikitext ready for output
+ */
+ private function warning( $key, $param = null, $parse = 'parse' ) {
+ # For ease of debugging and because errors are rare, we
+ # use the user language and split the parser cache.
+ $lang = $this->mParser->getOptions()->getUserLangObj();
+ $dir = $lang->getDir();
+
+ # We rely on the fact that PHP is okay with passing unused argu-
+ # ments to functions. If $1 is not used in the message, wfMessage will
+ # just ignore the extra parameter.
+ $msg = wfMessage(
+ 'cite_warning',
+ wfMessage( $key, $param )->inLanguage( $lang )->plain()
+ )
+ ->inLanguage( $lang )
+ ->plain();
+
+ $key = preg_replace( '/^cite_warning_/', '', $key ) . '';
+ $ret = Html::rawElement(
+ 'span',
+ [
+ 'class' => 'warning mw-ext-cite-warning mw-ext-cite-warning-' .
+ Sanitizer::escapeClass( $key ),
+ 'lang' => $lang->getHtmlCode(),
+ 'dir' => $dir,
+ ],
+ $msg
+ );
+
+ if ( $parse === 'parse' ) {
+ $ret = $this->mParser->recursiveTagParse( $ret );
+ }
+
+ return $ret;
+ }
+
+ /**
+ * Fetch references stored for the given title in page_props
+ * For performance, results are cached
+ *
+ * @param Title $title
+ * @return array|false
+ */
+ public static function getStoredReferences( Title $title ) {
+ global $wgCiteStoreReferencesData;
+ if ( !$wgCiteStoreReferencesData ) {
+ return false;
+ }
+ $cache = MediaWikiServices::getInstance()->getMainWANObjectCache();
+ $key = $cache->makeKey( self::EXT_DATA_KEY, $title->getArticleID() );
+ return $cache->getWithSetCallback(
+ $key,
+ self::CACHE_DURATION_ONFETCH,
+ function ( $oldValue, &$ttl, array &$setOpts ) use ( $title ) {
+ $dbr = wfGetDB( DB_REPLICA );
+ $setOpts += Database::getCacheSetOptions( $dbr );
+ return self::recursiveFetchRefsFromDB( $title, $dbr );
+ },
+ [
+ 'checkKeys' => [ $key ],
+ 'lockTSE' => 30,
+ ]
+ );
+ }
+
+ /**
+ * Reconstructs compressed json by successively retrieving the properties references-1, -2, etc
+ * It attempts the next step when a decoding error occurs.
+ * Returns json_decoded uncompressed string, with validation of json
+ *
+ * @param Title $title
+ * @param IDatabase $dbr
+ * @param string $string
+ * @param int $i
+ * @return array|false
+ */
+ private static function recursiveFetchRefsFromDB( Title $title, IDatabase $dbr,
+ $string = '', $i = 1 ) {
+ $id = $title->getArticleID();
+ $result = $dbr->selectField(
+ 'page_props',
+ 'pp_value',
+ [
+ 'pp_page' => $id,
+ 'pp_propname' => 'references-' . $i
+ ],
+ __METHOD__
+ );
+ if ( $result !== false ) {
+ $string .= $result;
+ $decodedString = gzdecode( $string );
+ if ( $decodedString !== false ) {
+ $json = json_decode( $decodedString, true );
+ if ( json_last_error() === JSON_ERROR_NONE ) {
+ return $json;
+ }
+ // corrupted json ?
+ // shouldn't happen since when string is truncated, gzdecode should fail
+ wfDebug( "Corrupted json detected when retrieving stored references for title id $id" );
+ }
+ // if gzdecode fails, try to fetch next references- property value
+ return self::recursiveFetchRefsFromDB( $title, $dbr, $string, ++$i );
+
+ } else {
+ // no refs stored in page_props at this index
+ if ( $i > 1 ) {
+ // shouldn't happen
+ wfDebug( "Failed to retrieve stored references for title id $id" );
+ }
+ return false;
+ }
+ }
+
+}
diff --git a/www/wiki/extensions/Cite/includes/CiteCSSFileModule.php b/www/wiki/extensions/Cite/includes/CiteCSSFileModule.php
new file mode 100644
index 00000000..193fd539
--- /dev/null
+++ b/www/wiki/extensions/Cite/includes/CiteCSSFileModule.php
@@ -0,0 +1,34 @@
+<?php
+
+/**
+ * ResourceLoaderFileModule for adding the content language Cite CSS
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+class CiteCSSFileModule extends ResourceLoaderFileModule {
+
+ public function __construct(
+ $options = [],
+ $localBasePath = null,
+ $remoteBasePath = null
+ ) {
+ global $wgContLang;
+
+ parent::__construct( $options, $localBasePath, $remoteBasePath );
+
+ // Get the content language code, and all the fallbacks. The first that
+ // has a ext.cite.style.<lang code>.css file present will be used.
+ $langCodes = array_merge( [ $wgContLang->getCode() ],
+ $wgContLang->getFallbackLanguages() );
+ foreach ( $langCodes as $lang ) {
+ $langStyleFile = 'ext.cite.style.' . $lang . '.css';
+ $localPath = $this->getLocalPath( $langStyleFile );
+ if ( file_exists( $localPath ) ) {
+ $this->styles[] = $langStyleFile;
+ break;
+ }
+ }
+ }
+
+}
diff --git a/www/wiki/extensions/Cite/includes/CiteDataModule.php b/www/wiki/extensions/Cite/includes/CiteDataModule.php
new file mode 100644
index 00000000..45b74d61
--- /dev/null
+++ b/www/wiki/extensions/Cite/includes/CiteDataModule.php
@@ -0,0 +1,68 @@
+<?php
+
+/**
+ * Resource loader module providing extra data from the server to Cite.
+ *
+ * Temporary hack for T93800
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+class CiteDataModule extends ResourceLoaderModule {
+
+ protected $origin = self::ORIGIN_USER_SITEWIDE;
+ protected $targets = [ 'desktop', 'mobile' ];
+
+ /** @inheritDoc */
+ public function getScript( ResourceLoaderContext $context ) {
+ $citationDefinition = json_decode(
+ $context->msg( 'cite-tool-definition.json' )
+ ->inContentLanguage()
+ ->plain()
+ );
+
+ if ( $citationDefinition === null ) {
+ $citationDefinition = json_decode(
+ $context->msg( 'visualeditor-cite-tool-definition.json' )
+ ->inContentLanguage()
+ ->plain()
+ );
+ }
+
+ $citationTools = [];
+ if ( is_array( $citationDefinition ) ) {
+ foreach ( $citationDefinition as $tool ) {
+ if ( !isset( $tool->title ) ) {
+ $tool->title = $context->msg( 'visualeditor-cite-tool-name-' . $tool->name )
+ ->text();
+ }
+ $citationTools[] = $tool;
+ }
+ }
+
+ return 've.init.platform.addMessages(' . FormatJson::encode(
+ [
+ 'cite-tool-definition.json' => json_encode( $citationTools )
+ ],
+ ResourceLoader::inDebugMode()
+ ) . ');';
+ }
+
+ /** @inheritDoc */
+ public function getDependencies( ResourceLoaderContext $context = null ) {
+ return [
+ 'ext.visualEditor.base',
+ 'ext.visualEditor.mediawiki',
+ ];
+ }
+
+ /** @inheritDoc */
+ public function getDefinitionSummary( ResourceLoaderContext $context ) {
+ $summary = parent::getDefinitionSummary( $context );
+ $summary[] = [
+ 'script' => $this->getScript( $context ),
+ ];
+ return $summary;
+ }
+
+}
diff --git a/www/wiki/extensions/Cite/includes/CiteHooks.php b/www/wiki/extensions/Cite/includes/CiteHooks.php
new file mode 100644
index 00000000..a55a9246
--- /dev/null
+++ b/www/wiki/extensions/Cite/includes/CiteHooks.php
@@ -0,0 +1,344 @@
+<?php
+/**
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+use MediaWiki\MediaWikiServices;
+
+class CiteHooks {
+
+ /**
+ * Convert the content model of a message that is actually JSON to JSON. This
+ * only affects validation and UI when saving and editing, not loading the
+ * content.
+ *
+ * @param Title $title
+ * @param string &$model
+ * @return bool
+ */
+ public static function onContentHandlerDefaultModelFor( Title $title, &$model ) {
+ if (
+ $title->inNamespace( NS_MEDIAWIKI ) &&
+ (
+ $title->getText() == 'Visualeditor-cite-tool-definition.json' ||
+ $title->getText() == 'Cite-tool-definition.json'
+ )
+ ) {
+ $model = CONTENT_MODEL_JSON;
+ }
+
+ return true;
+ }
+
+ /**
+ * Conditionally register the unit testing module for the ext.cite.visualEditor module
+ * only if that module is loaded
+ *
+ * @param array &$testModules The array of registered test modules
+ * @param ResourceLoader &$resourceLoader The reference to the resource loader
+ * @return true
+ */
+ public static function onResourceLoaderTestModules(
+ array &$testModules,
+ ResourceLoader &$resourceLoader
+ ) {
+ $resourceModules = $resourceLoader->getConfig()->get( 'ResourceModules' );
+
+ if (
+ isset( $resourceModules[ 'ext.visualEditor.mediawiki' ] ) ||
+ $resourceLoader->isModuleRegistered( 'ext.visualEditor.mediawiki' )
+ ) {
+ $testModules['qunit']['ext.cite.visualEditor.test'] = [
+ 'scripts' => [
+ 'modules/ve-cite/tests/ve.dm.citeExample.js',
+ 'modules/ve-cite/tests/ve.dm.Converter.test.js',
+ 'modules/ve-cite/tests/ve.dm.InternalList.test.js',
+ 'modules/ve-cite/tests/ve.dm.Transaction.test.js',
+ 'modules/ve-cite/tests/ve.ui.DiffElement.test.js',
+ 'modules/ve-cite/tests/ve.ui.MWWikitextStringTransferHandler.test.js',
+ ],
+ 'dependencies' => [
+ 'ext.cite.visualEditor',
+ 'ext.visualEditor.test'
+ ],
+ 'localBasePath' => dirname( __DIR__ ),
+ 'remoteExtPath' => 'Cite',
+ ];
+ }
+
+ return true;
+ }
+
+ /**
+ * Conditionally register resource loader modules that depends on the
+ * VisualEditor MediaWiki extension.
+ *
+ * @param ResourceLoader &$resourceLoader
+ * @return true
+ */
+ public static function onResourceLoaderRegisterModules( &$resourceLoader ) {
+ if ( ! class_exists( 'VisualEditorHooks' ) ) {
+ return true;
+ }
+
+ $dir = dirname( __DIR__ ) . DIRECTORY_SEPARATOR;
+
+ $resourceLoader->register( "ext.cite.visualEditor.core", [
+ 'localBasePath' => $dir . 'modules',
+ 'remoteExtPath' => 'Cite/modules',
+ "scripts" => [
+ "ve-cite/ve.dm.MWReferenceModel.js",
+ "ve-cite/ve.dm.MWReferencesListNode.js",
+ "ve-cite/ve.dm.MWReferenceNode.js",
+ "ve-cite/ve.ce.MWReferencesListNode.js",
+ "ve-cite/ve.ce.MWReferenceNode.js",
+ "ve-cite/ve.ui.MWReferencesListCommand.js"
+ ],
+ "styles" => [
+ "ve-cite/ve.ce.MWReferencesListNode.css",
+ "ve-cite/ve.ce.MWReferenceNode.css"
+ ],
+ "dependencies" => [
+ "ext.visualEditor.mwcore"
+ ],
+ "messages" => [
+ "cite-ve-referenceslist-isempty",
+ "cite-ve-referenceslist-isempty-default",
+ "cite-ve-referenceslist-missingref",
+ "cite-ve-referenceslist-missingref-in-list",
+ "cite-ve-referenceslist-missingreflist",
+ "visualeditor-internal-list-diff-default-group-name-mwreference",
+ "visualeditor-internal-list-diff-group-name-mwreference"
+ ],
+ "targets" => [
+ "desktop",
+ "mobile"
+ ]
+ ] );
+
+ $resourceLoader->register( "ext.cite.visualEditor.data",
+ [ "class" => "CiteDataModule" ] );
+
+ $resourceLoader->register( "ext.cite.visualEditor.icons", [
+ 'localBasePath' => $dir . 'modules',
+ 'remoteExtPath' => 'Cite/modules',
+ "class" => "ResourceLoaderImageModule",
+ "selectorWithoutVariant" => ".oo-ui-icon-{name}",
+ "selectorWithVariant" => ".oo-ui-image-{variant}.oo-ui-icon-{name}",
+ "variants" => [
+ "progressive" => [
+ "color" => "#36c"
+ ]
+ ],
+ "images" => [
+ "ref-cite-book" => [
+ "file" => "ve-cite/icons/ref-cite-book.svg"
+ ],
+ "ref-cite-journal" => [
+ "file" => [
+ "ltr" => "ve-cite/icons/ref-cite-journal-ltr.svg",
+ "rtl" => "ve-cite/icons/ref-cite-journal-rtl.svg"
+ ]
+ ],
+ "ref-cite-news" => [
+ "file" => [
+ "ltr" => "ve-cite/icons/ref-cite-news-ltr.svg",
+ "rtl" => "ve-cite/icons/ref-cite-news-rtl.svg"
+ ]
+ ],
+ "ref-cite-web" => [
+ "file" => "ve-cite/icons/ref-cite-web.svg"
+ ],
+ "reference" => [
+ "file" => [
+ "ltr" => "ve-cite/icons/reference-ltr.svg",
+ "rtl" => "ve-cite/icons/reference-rtl.svg"
+ ]
+ ],
+ "reference-existing" => [
+ "file" => [
+ "ltr" => "ve-cite/icons/reference-existing-ltr.svg",
+ "rtl" => "ve-cite/icons/reference-existing-rtl.svg"
+ ]
+ ],
+ "references" => [
+ "file" => [
+ "ltr" => "ve-cite/icons/references-ltr.svg",
+ "rtl" => "ve-cite/icons/references-rtl.svg"
+ ]
+ ],
+ ]
+ ] );
+
+ $resourceLoader->register( "ext.cite.visualEditor", [
+ 'localBasePath' => $dir . 'modules',
+ 'remoteExtPath' => 'Cite/modules',
+ "scripts" => [
+ "ve-cite/ve.ui.MWReferenceGroupInputWidget.js",
+ "ve-cite/ve.ui.MWReferenceSearchWidget.js",
+ "ve-cite/ve.ui.MWReferenceResultWidget.js",
+ "ve-cite/ve.ui.MWUseExistingReferenceCommand.js",
+ "ve-cite/ve.ui.MWCitationDialog.js",
+ "ve-cite/ve.ui.MWReferencesListDialog.js",
+ "ve-cite/ve.ui.MWReferenceDialog.js",
+ "ve-cite/ve.ui.MWReferenceDialogTool.js",
+ "ve-cite/ve.ui.MWCitationDialogTool.js",
+ "ve-cite/ve.ui.MWReferenceContextItem.js",
+ "ve-cite/ve.ui.MWReferencesListContextItem.js",
+ "ve-cite/ve.ui.MWCitationContextItem.js",
+ "ve-cite/ve.ui.MWCitationAction.js",
+ "ve-cite/ve.ui.MWReference.init.js"
+ ],
+ "styles" => [
+ "ve-cite/ve.ui.MWReferenceContextItem.css",
+ "ve-cite/ve.ui.MWReferenceGroupInputWidget.css",
+ "ve-cite/ve.ui.MWReferenceResultWidget.css",
+ "ve-cite/ve.ui.MWReferenceSearchWidget.css"
+ ],
+ "dependencies" => [
+ "oojs-ui.styles.icons-alerts",
+ "oojs-ui.styles.icons-interactions",
+ "ext.cite.visualEditor.core",
+ "ext.cite.visualEditor.data",
+ "ext.cite.visualEditor.icons",
+ "ext.cite.style",
+ "ext.cite.styles",
+ "ext.visualEditor.mwtransclusion",
+ "ext.visualEditor.mediawiki"
+ ],
+ "messages" => [
+ "cite-ve-changedesc-ref-group-both",
+ "cite-ve-changedesc-ref-group-from",
+ "cite-ve-changedesc-ref-group-to",
+ "cite-ve-changedesc-reflist-group-both",
+ "cite-ve-changedesc-reflist-group-from",
+ "cite-ve-changedesc-reflist-group-to",
+ "cite-ve-changedesc-reflist-item-id",
+ "cite-ve-changedesc-reflist-responsive-set",
+ "cite-ve-changedesc-reflist-responsive-unset",
+ "cite-ve-dialog-reference-editing-reused",
+ "cite-ve-dialog-reference-options-group-label",
+ "cite-ve-dialog-reference-options-group-placeholder",
+ "cite-ve-dialog-reference-options-name-label",
+ "cite-ve-dialog-reference-options-responsive-label",
+ "cite-ve-dialog-reference-options-section",
+ "cite-ve-dialog-reference-placeholder",
+ "cite-ve-dialog-reference-title",
+ "cite-ve-dialog-reference-useexisting-full-label",
+ "cite-ve-dialog-reference-useexisting-label",
+ "cite-ve-dialog-reference-useexisting-tool",
+ "cite-ve-dialog-referenceslist-contextitem-description-general",
+ "cite-ve-dialog-referenceslist-contextitem-description-named",
+ "cite-ve-dialog-referenceslist-title",
+ "cite-ve-dialogbutton-citation-educationpopup-title",
+ "cite-ve-dialogbutton-citation-educationpopup-text",
+ "cite-ve-dialogbutton-reference-full-label",
+ "cite-ve-dialogbutton-reference-tooltip",
+ "cite-ve-dialogbutton-reference-title",
+ "cite-ve-dialogbutton-referenceslist-tooltip",
+ "cite-ve-reference-input-placeholder",
+ "cite-ve-toolbar-group-label",
+ "cite-ve-othergroup-item"
+ ],
+ "targets" => [
+ "desktop",
+ "mobile"
+ ]
+ ] );
+ return true;
+ }
+
+ /**
+ * Callback for LinksUpdate hook
+ * Post-output processing of references property, for proper db storage
+ * Deferred to avoid performance overhead when outputting the page
+ *
+ * @param LinksUpdate &$linksUpdate
+ */
+ public static function onLinksUpdate( LinksUpdate &$linksUpdate ) {
+ global $wgCiteStoreReferencesData, $wgCiteCacheRawReferencesOnParse;
+ if ( !$wgCiteStoreReferencesData ) {
+ return;
+ }
+ $refData = $linksUpdate->getParserOutput()->getExtensionData( Cite::EXT_DATA_KEY );
+ if ( $refData === null ) {
+ return;
+ }
+ if ( $wgCiteCacheRawReferencesOnParse ) {
+ // caching
+ $cache = MediaWikiServices::getInstance()->getMainWANObjectCache();
+ $articleID = $linksUpdate->getTitle()->getArticleID();
+ $key = $cache->makeKey( Cite::EXT_DATA_KEY, $articleID );
+ $cache->set( $key, $refData, Cite::CACHE_DURATION_ONPARSE );
+ }
+ // JSON encode
+ $ppValue = FormatJson::encode( $refData, false, FormatJson::ALL_OK );
+ // GZIP encode references data at maximum compression
+ $ppValue = gzencode( $ppValue, 9 );
+ // split the string in smaller parts that can fit into a db blob
+ $ppValues = str_split( $ppValue, Cite::MAX_STORAGE_LENGTH );
+ foreach ( $ppValues as $num => $ppValue ) {
+ $key = 'references-' . intval( $num + 1 );
+ $linksUpdate->mProperties[$key] = $ppValue;
+ }
+ $linksUpdate->getParserOutput()->setExtensionData( Cite::EXT_DATA_KEY, null );
+ }
+
+ /**
+ * Callback for LinksUpdateComplete hook
+ * If $wgCiteCacheRawReferencesOnParse is set to false, purges the cache
+ * when references are modified
+ *
+ * @param LinksUpdate &$linksUpdate
+ */
+ public static function onLinksUpdateComplete( LinksUpdate &$linksUpdate ) {
+ global $wgCiteStoreReferencesData, $wgCiteCacheRawReferencesOnParse;
+ if ( !$wgCiteStoreReferencesData || $wgCiteCacheRawReferencesOnParse ) {
+ return;
+ }
+ // if we can, avoid clearing the cache when references were not changed
+ if ( method_exists( $linksUpdate, 'getAddedProperties' )
+ && method_exists( $linksUpdate, 'getRemovedProperties' )
+ ) {
+ $addedProps = $linksUpdate->getAddedProperties();
+ $removedProps = $linksUpdate->getRemovedProperties();
+ if ( !isset( $addedProps['references-1'] )
+ && !isset( $removedProps['references-1'] )
+ ) {
+ return;
+ }
+ }
+ $cache = MediaWikiServices::getInstance()->getMainWANObjectCache();
+ $articleID = $linksUpdate->getTitle()->getArticleID();
+ $key = $cache->makeKey( Cite::EXT_DATA_KEY, $articleID );
+ // delete with reduced hold off period (LinksUpdate uses a master connection)
+ $cache->delete( $key, WANObjectCache::MAX_COMMIT_DELAY );
+ }
+
+ /**
+ * Adds extra variables to the global config
+ * @param array &$vars
+ * @return true
+ */
+ public static function onResourceLoaderGetConfigVars( array &$vars ) {
+ $config = MediaWikiServices::getInstance()->getConfigFactory()->makeConfig( 'cite' );
+ $vars['wgCiteVisualEditorOtherGroup'] = $config->get( 'CiteVisualEditorOtherGroup' );
+ $vars['wgCiteResponsiveReferences'] = $config->get( 'CiteResponsiveReferences' );
+ return true;
+ }
+
+ /**
+ * Hook: APIQuerySiteInfoGeneralInfo
+ *
+ * Expose configs via action=query&meta=siteinfo
+ *
+ * @param ApiQuerySiteInfo $api
+ * @param array &$data
+ */
+ public static function onAPIQuerySiteInfoGeneralInfo( ApiQuerySiteInfo $api, array &$data ) {
+ $config = MediaWikiServices::getInstance()->getConfigFactory()->makeConfig( 'cite' );
+ $data['citeresponsivereferences'] = $config->get( 'CiteResponsiveReferences' );
+ }
+
+}
diff --git a/www/wiki/extensions/Cite/modules/ext.cite.a11y.css b/www/wiki/extensions/Cite/modules/ext.cite.a11y.css
new file mode 100644
index 00000000..c267815e
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ext.cite.a11y.css
@@ -0,0 +1,18 @@
+/**
+ * Per http://developer.yahoo.com/blogs/ydn/clip-hidden-content-better-accessibility-53456.html
+ * and https://en.wikipedia.org/w/index.php?oldid=572888139#Scrolling_past_the_bottom_of_the_page...
+ */
+.cite-accessibility-label {
+ /* Workaround a Webkit/Blink bug about positioning within columns as many wikis format references with several columns */
+ top: -99999px;
+ clip: rect( 1px 1px 1px 1px ); /* IE6, IE7 */
+ clip: rect( 1px, 1px, 1px, 1px );
+ /* stylelint-disable declaration-no-important */
+ position: absolute !important;
+ padding: 0 !important;
+ border: 0 !important;
+ height: 1px !important;
+ width: 1px !important;
+ /* stylelint-enable declaration-no-important */
+ overflow: hidden;
+}
diff --git a/www/wiki/extensions/Cite/modules/ext.cite.a11y.js b/www/wiki/extensions/Cite/modules/ext.cite.a11y.js
new file mode 100644
index 00000000..f3864a5d
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ext.cite.a11y.js
@@ -0,0 +1,38 @@
+/**
+ * Main JavaScript for the Cite extension. The main purpose of this file
+ * is to add accessibility attributes to the citation links as that can
+ * hardly be done server side (bug 38141).
+ *
+ * @author Marius Hoch <hoo@online.de>
+ */
+( function ( mw, $ ) {
+ 'use strict';
+
+ mw.hook( 'wikipage.content' ).add( function ( $content ) {
+ var accessibilityLabelOne = mw.msg( 'cite_references_link_accessibility_label' ),
+ accessibilityLabelMany = mw.msg( 'cite_references_link_many_accessibility_label' );
+
+ $content.find( '.mw-cite-backlink' ).each( function () {
+ var $links = $( this ).find( 'a' ),
+ label;
+
+ if ( $links.length > 1 ) {
+ // This citation is used multiple times. Let's only set the accessibility label on the first link, the
+ // following ones should then be self-explaining. This is needed to make sure this isn't getting
+ // too wordy.
+ label = accessibilityLabelMany;
+ } else {
+ label = accessibilityLabelOne;
+ }
+
+ // We can't use aria-label over here as that's not supported consistently across all screen reader / browser
+ // combinations. We have to use visually hidden spans for the accessibility labels instead.
+ $links.eq( 0 ).prepend(
+ $( '<span>' )
+ .addClass( 'cite-accessibility-label' )
+ // Also make sure we have at least one space between the accessibility label and the visual one
+ .text( label + ' ' )
+ );
+ } );
+ } );
+}( mediaWiki, jQuery ) );
diff --git a/www/wiki/extensions/Cite/modules/ext.cite.print.css b/www/wiki/extensions/Cite/modules/ext.cite.print.css
new file mode 100644
index 00000000..6467acca
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ext.cite.print.css
@@ -0,0 +1,3 @@
+.mw-cite-backlink {
+ display: none;
+}
diff --git a/www/wiki/extensions/Cite/modules/ext.cite.style.css b/www/wiki/extensions/Cite/modules/ext.cite.style.css
new file mode 100644
index 00000000..565a3a59
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ext.cite.style.css
@@ -0,0 +1,91 @@
+/* CSS for Parsoid Cite extension */
+
+/* Style for <ref>s */
+.mw-ref {
+ vertical-align: super;
+ line-height: 1;
+ font-size: smaller;
+ /* Make sure the brackets and the numbers aren't jumbled after LTR words in RTL wikis */
+ unicode-bidi: embed;
+}
+
+/* Upstream bug in stylelint makes it complain aboout the case of 'mw-Ref' */
+/* stylelint-disable value-keyword-case */
+
+/* With a group set */
+.mw-ref a[ data-mw-group ]:after {
+ content: '[' attr( data-mw-group ) ' ' counter( mw-Ref, decimal ) ']';
+}
+
+/* Groups with special appearance */
+.mw-ref a[ data-mw-group='decimal' ]:after {
+ content: '[' counter( mw-Ref, decimal ) ']';
+}
+.mw-ref a[ data-mw-group='lower-alpha' ]:after {
+ content: '[' counter( mw-Ref, lower-alpha ) ']';
+}
+.mw-ref a[ data-mw-group='upper-alpha' ]:after {
+ content: '[' counter( mw-Ref, upper-alpha ) ']';
+}
+.mw-ref a[ data-mw-group='lower-greek' ]:after {
+ content: '[' counter( mw-Ref, lower-greek ) ']';
+}
+.mw-ref a[ data-mw-group='lower-roman' ]:after {
+ content: '[' counter( mw-Ref, lower-roman ) ']';
+}
+.mw-ref a[ data-mw-group='upper-roman' ]:after {
+ content: '[' counter( mw-Ref, upper-roman ) ']';
+}
+.mw-ref a[ data-mw-group='error-test' ]:after {
+ content: '[' counter( mw-Ref, symbols( cyclic 'first' 'second' 'last!' ) ) ']';
+}
+
+/* Without a group */
+.mw-ref a:after {
+ content: '[' counter( mw-Ref, decimal ) ']';
+}
+
+/* Hide the default rendering in browsers that support content
+ * generation by selecting for :after pseudo-element.*/
+/* stylelint-disable-next-line selector-type-no-unknown */
+x-thereisnoelementwiththisname:after,
+span.mw-reflink-text {
+ display: none;
+}
+
+/* Style for linkbacks from <references> to <ref>s */
+ol.mw-references {
+ counter-reset: mw-ref-linkback;
+}
+
+ol.mw-references li {
+ counter-increment: mw-ref-linkback;
+}
+
+[ rel='mw:referencedBy' ] {
+ counter-reset: mw-ref-linkback -1;
+}
+
+[ rel='mw:referencedBy' ]:before {
+ content: '↑ ';
+}
+
+span[ rel='mw:referencedBy' ] a:before {
+ counter-increment: mw-ref-linkback;
+ content: counters( mw-ref-linkback, '.', decimal );
+ vertical-align: super;
+ line-height: 1;
+ font-size: smaller;
+}
+
+span[ rel='mw:referencedBy' ] a:after {
+ content: ' ';
+}
+
+/* Hide the default rendering in browsers that support content
+ * generation by selecting for :after pseudo-element.*/
+/* stylelint-disable-next-line selector-type-no-unknown */
+x-thereisnoelementwiththisname[ rel='mw:referencedBy' ]:before,
+span.mw-linkback-text {
+ display: none;
+}
diff --git a/www/wiki/extensions/Cite/modules/ext.cite.style.fa.css b/www/wiki/extensions/Cite/modules/ext.cite.style.fa.css
new file mode 100644
index 00000000..91091d3a
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ext.cite.style.fa.css
@@ -0,0 +1,19 @@
+/* Farsi Cite CSS */
+
+/* Upstream bug in stylelint makes it complain aboout the case of 'mw-Ref' */
+/* stylelint-disable value-keyword-case */
+
+/* <ref>s with a group */
+.mw-ref a[ data-mw-group ]:after {
+ content: '[' attr( data-mw-group ) ' ' counter( mw-Ref, persian ) ']';
+}
+
+/* <ref>s without a group */
+.mw-ref a:after {
+ content: '[' counter( mw-Ref, persian ) ']';
+}
+
+/* Linkbacks from <references> to <ref>s */
+span[ rel='mw:referencedBy' ] a:before {
+ content: counters( mw-ref-linkback, '٫', persian );
+}
diff --git a/www/wiki/extensions/Cite/modules/ext.cite.styles.css b/www/wiki/extensions/Cite/modules/ext.cite.styles.css
new file mode 100644
index 00000000..e70959dc
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ext.cite.styles.css
@@ -0,0 +1,44 @@
+.mw-cite-backlink,
+.cite-accessibility-label {
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.mw-references-columns {
+ -webkit-column-width: 30em;
+ -moz-column-width: 30em;
+ column-width: 30em;
+}
+
+/* Avoid elements from breaking between columns */
+.mw-references-columns li {
+ -webkit-column-break-inside: avoid;
+ page-break-inside: avoid;
+ break-inside: avoid-column;
+}
+
+sup.reference {
+ /* Isolation to fix references in case of RTL words at the end of a reference */
+ unicode-bidi: -moz-isolate;
+ unicode-bidi: -webkit-isolate;
+ unicode-bidi: isolate;
+
+ /* Don't allow a reference that includes a group name
+ to break in the end of the line */
+ white-space: nowrap;
+}
+
+/* Highlight clicked reference in blue to help navigation */
+ol.references li:target,
+sup.reference:target {
+ background-color: #eaf3ff;
+}
+
+/* Make cite errors "strong" */
+.mw-ext-cite-error {
+ font-weight: bold;
+ /* For the case that the error is embedded in an element with a different direction */
+ unicode-bidi: embed;
+}
diff --git a/www/wiki/extensions/Cite/modules/ext.cite.styles.minerva.less b/www/wiki/extensions/Cite/modules/ext.cite.styles.minerva.less
new file mode 100644
index 00000000..db63b720
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ext.cite.styles.minerva.less
@@ -0,0 +1,7 @@
+@import 'mediawiki.mixins.less';
+
+.mw-references-columns {
+ /* Minerva skin width is cut to 1000px (62.5em). With margins/paddings included this
+ leaves 55.8em for content. This ensures that 2 columns will be used where possible */
+ .column-width( 25em );
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ab.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ab.json
new file mode 100644
index 00000000..e4e38151
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ab.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Абухба Андрей"
+ ]
+ },
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Архиарақәа"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ace.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ace.json
new file mode 100644
index 00000000..62785644
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ace.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Si Gam Acèh",
+ "Ayie7791"
+ ]
+ },
+ "cite-ve-dialog-reference-options-group-label": "Ngui kawan nyoë",
+ "cite-ve-dialog-reference-options-name-label": "Ngui lom ngön nan nyoë",
+ "cite-ve-dialog-reference-options-section": "Peuniléh",
+ "cite-ve-dialog-reference-title": "Rèfèrènsi",
+ "cite-ve-dialog-reference-useexisting-label": "Ngui rèfèrènsi nyang ka awai na",
+ "cite-ve-dialog-referenceslist-title": "Dapeuta rèfèrènsi",
+ "cite-ve-dialogbutton-reference-tooltip": "Rèfèrènsi",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Dapeuta rèfèrènsi"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ady-cyrl.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ady-cyrl.json
new file mode 100644
index 00000000..0f830846
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ady-cyrl.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "SmartNart12",
+ "Bedynokue.nart",
+ "SamGamgee",
+ "Amire80",
+ "Highlander45temp",
+ "Inyzh"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/aeb-latn.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/aeb-latn.json
new file mode 100644
index 00000000..18cd8334
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/aeb-latn.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Csisc"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/aeb.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/aeb.json
new file mode 100644
index 00000000..18cd8334
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/aeb.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Csisc"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/af.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/af.json
new file mode 100644
index 00000000..2c89f02f
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/af.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Naudefj",
+ "Neil P. Quinn",
+ "Oesjaar",
+ "Fwolff"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Boek",
+ "visualeditor-cite-tool-name-journal": "Tydskrif",
+ "visualeditor-cite-tool-name-news": "Nuus",
+ "visualeditor-cite-tool-name-web": "Webtuiste",
+ "cite-ve-dialog-reference-editing-reused": "Hierdie aanhaling word $1 {{PLURAL:$1|keer}} op die bladsy gebruik.",
+ "cite-ve-dialog-reference-options-group-label": "Gebruik die groep",
+ "cite-ve-dialog-reference-options-group-placeholder": "Algemene verwysings",
+ "cite-ve-dialog-reference-options-name-label": "Hergebruik op die naam",
+ "cite-ve-dialog-reference-options-section": "Opsies",
+ "cite-ve-dialog-reference-title": "Verwysing",
+ "cite-ve-dialog-reference-useexisting-full-label": "Hergebruik 'n aanhaling wat reeds op dié bladsy bestaan",
+ "cite-ve-dialog-reference-useexisting-label": "Gebruik 'n bestaande verwysing",
+ "cite-ve-dialog-reference-useexisting-tool": "Hergebruik",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Lys van algemene bronne",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Lys van bronne vir groep \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Lys van verwysings",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Verbeter die inhoud deur inligtingsbronne by te voeg. Verwys na boeke, koerante en webwerwe.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Aanhalings",
+ "cite-ve-dialogbutton-reference-full-label": "Eenvoudige vorm",
+ "cite-ve-dialogbutton-reference-title": "Verwysing",
+ "cite-ve-dialogbutton-reference-tooltip": "Basies",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lys van verwysings",
+ "cite-ve-reference-input-placeholder": "Soek in huidige verwysings",
+ "cite-ve-referenceslist-isempty": "Daar is geen verwysings met die groep \"$1\" op hierdie bladsy om by die lys te voeg nie.",
+ "cite-ve-referenceslist-isempty-default": "Daar is geen verwysings op dié bladsy om by die lys in te sluit nie.",
+ "cite-ve-referenceslist-missingref": "Hierdie verwysing is in 'n sjabloon of 'n ander soort gegenereerde blok en kan voorlopig slegs in die bronkodemodus gewysig word.",
+ "cite-ve-toolbar-group-label": "Aanhaal"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ais.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ais.json
new file mode 100644
index 00000000..f50e7c6d
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ais.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bunukwiki",
+ "Benel",
+ "Tokoabibi"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "cudad",
+ "visualeditor-cite-tool-name-journal": "paydemiad-inasc-nasulitan",
+ "visualeditor-cite-tool-name-news": "sinbun",
+ "visualeditor-cite-tool-name-web": "calay-kakacawan(C-wangcan)",
+ "cite-ve-dialog-reference-editing-reused": "tina kasabelih masaungay tuway tina miazih tu tatenga’ay nasulitan $1 {{PLURAL:$1|}}.",
+ "cite-ve-dialog-reference-options-group-label": "pisaungay tina luyaluy",
+ "cite-ve-dialog-reference-options-group-placeholder": "habutud miazih tu tatenga’ay nasulitan",
+ "cite-ve-dialog-reference-options-name-label": "uyni kalungangan amipisaungay henay",
+ "cite-ve-dialog-reference-options-section": "mapili’ay",
+ "cite-ve-dialog-reference-useexisting-full-label": "misaliyaw pisaungay izaway itini i tina kasabelih a nicaliwan",
+ "cite-ve-dialog-reference-useexisting-label": "pisaungay ayzaay miazih tu tatenga’ay nasulitan",
+ "cite-ve-dialog-reference-useexisting-tool": "miliyaw pisaungay",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "habutuday a miazih tu tatenga’ay nasulitan piazihan-tu-sulit",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "luyaluy \"$1\" a miazih tu tatenga’ay nasulitan piazihan-tu-sulit",
+ "cite-ve-dialog-referenceslist-title": "miazih tu tatenga’ay nasulitan piazihan tu sulit",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "micaliw ku micunus saangangan cesyun pasakapahan lacul nu misu, kapah tu kisu nicaliwan nay cudad, sinbung atu calay-kakacawan(wangcan).",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "nicaliwan",
+ "cite-ve-dialogbutton-reference-full-label": "palana’an aazihan a cudad",
+ "cite-ve-dialogbutton-reference-title": "miazih tu tatenga’ay nasulitan",
+ "cite-ve-dialogbutton-reference-tooltip": "angangan",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "miazih tu tatenga’ay nasulitan piazihan tu sulit",
+ "cite-ve-reference-input-placeholder": "mikilim tu ayzaay nicaliwan",
+ "cite-ve-referenceslist-isempty": "tina kasabelih inayi’ luyaluy ku \"$1\" a miazih tu tatenga’ay nasulitan kapah micunus nicaliwan piazihan tu sulit.",
+ "cite-ve-referenceslist-isempty-default": "tina kasabelih ayzasa inayi’ amahicahica miazih tu tatenga’ay nasulitan kapah micunus nicaliwan piazihan-tu-sulit.",
+ "cite-ve-referenceslist-missingref": "tina miazih tu tatenga’ay nasulitan satetek tu ku taazihan mitudung saca zuma lunuk masanga’ay a atilad ayza pisaungay dada’ yuensma-kodo muse tayni mikawaway-kalumyiti",
+ "cite-ve-toolbar-group-label": "nicaliwan",
+ "cite-ve-othergroup-item": "$1 miazih tu tatenga’ay nasulitan",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "miazih tu tatenga’ay saangangan"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/am.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/am.json
new file mode 100644
index 00000000..e4712aa6
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/am.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Elfalem"
+ ]
+ },
+ "cite-ve-dialog-reference-options-section": "ምርጫዎች",
+ "cite-ve-dialog-reference-title": "ዋቢ ምንጭ",
+ "cite-ve-dialogbutton-reference-tooltip": "ዋቢ ምንጭ"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ang.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ang.json
new file mode 100644
index 00000000..da2d54b2
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ang.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gott wisst",
+ "JJohnson1701"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/anp.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/anp.json
new file mode 100644
index 00000000..0cf711ec
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/anp.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Angpradesh"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ar.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ar.json
new file mode 100644
index 00000000..e2aff578
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ar.json
@@ -0,0 +1,69 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ciphers",
+ "Claw eg",
+ "Elfalem",
+ "Jdforrester",
+ "Mido",
+ "OsamaK",
+ "زكريا",
+ "مشعل الحربي",
+ "Asaifm",
+ "Tarawneh",
+ "Meno25",
+ "Gagnabil",
+ "Abanima",
+ "محمد أحمد عبد الفتاح",
+ "Bachounda",
+ "Mervat Salman",
+ "Hiba Alshawi",
+ "فلورانس",
+ "PhiberOptik",
+ "ديفيد"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "كتاب",
+ "visualeditor-cite-tool-name-journal": "دورية",
+ "visualeditor-cite-tool-name-news": "أخبار",
+ "visualeditor-cite-tool-name-web": "موقع",
+ "cite-ve-changedesc-ref-group-both": "مجموعة المراجع تغيرت من \"$1\" إلى \"$2\"",
+ "cite-ve-changedesc-ref-group-from": "مجموعة المراجع تغيرت من \"$1\" للمجموعة العامة",
+ "cite-ve-changedesc-ref-group-to": "مجموعة المراجع تغيرت من المجموعة العامة إلى \"$1\"",
+ "cite-ve-changedesc-reflist-group-both": "مجموعة قائمة المراجع تغيرت من \"$1\" إلى \"$2\"",
+ "cite-ve-changedesc-reflist-group-from": "مجموعة قائمة المراجع تغيرت من \"$1\" للمجموعة العامة",
+ "cite-ve-changedesc-reflist-group-to": "مجموعة قائمة المراجع تغيرت من المجموعة العامة إلى \"$1\"",
+ "cite-ve-changedesc-reflist-responsive-set": "قائمة المراجع تغيرت للعرض في مراجع مستجيبة",
+ "cite-ve-changedesc-reflist-responsive-unset": "قائمة المراجع تغيرت للعرض في عامود واحد فقط",
+ "cite-ve-changedesc-reflist-item-id": "فهرس المراجع تغير",
+ "cite-ve-dialog-reference-editing-reused": "هذا المرجع مستخدم {{PLURAL:$1|مرة واحدة|مرتين| $1 مرات|$1 مرة}} في هذه الصفحة.",
+ "cite-ve-dialog-reference-options-group-label": "استخدم هذه المجموعة",
+ "cite-ve-dialog-reference-options-group-placeholder": "مراجع عامة",
+ "cite-ve-dialog-reference-options-name-label": "أعد استخدامها بهذا الاسم",
+ "cite-ve-dialog-reference-options-responsive-label": "استخدم تهيئة العمود المستجيبة",
+ "cite-ve-dialog-reference-options-section": "خيارات",
+ "cite-ve-dialog-reference-placeholder": "اكتب أو انسخ مرجعك هنا، أو أدخل قالب استشهاد.",
+ "cite-ve-dialog-reference-title": "مرجع",
+ "cite-ve-dialog-reference-useexisting-full-label": "أعد استخدام استشهاد موجود بالفعل في الصفحة",
+ "cite-ve-dialog-reference-useexisting-label": "استخدم مرجعا موجودا",
+ "cite-ve-dialog-reference-useexisting-tool": "أعد الاستخدام",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "قائمة المراجع العامة",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "قائمة المراجع في مجموعة \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "قائمة المراجع",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "تحسين المحتوى بإضافة مصادر للمعلومات. يمكن الاستشهاد بالكتب والصحف ومواقع الوب.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "الاستشهادات",
+ "cite-ve-dialogbutton-reference-full-label": "الصيغة الأساسية",
+ "cite-ve-dialogbutton-reference-title": "مرجع",
+ "cite-ve-dialogbutton-reference-tooltip": "أساسي",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "قائمة مراجع",
+ "cite-ve-reference-input-placeholder": "البحث ضمن الاستشهادات الحالية",
+ "cite-ve-referenceslist-isempty": "ما من مراجع من المجموعة \"$1\" في هذه الصفحة لتضمينها في هذه القائمة.",
+ "cite-ve-referenceslist-isempty-default": "ما من مراجع على هذه الصفحة لتضمينها في هذه القائمة.",
+ "cite-ve-referenceslist-missingref": "هذا المرجع موجود في قالب أو نحوه ولا يمكن تعديله حاليا إلا من المصدر.",
+ "cite-ve-referenceslist-missingref-in-list": "يتم تعريف هذا المرجع في قالب أو كتلة أخرى تم إنشاؤها، ويمكن الآن معاينته فقط في وضع المصدر.",
+ "cite-ve-referenceslist-missingreflist": "قائمة المراجع هذه مولدة بواسطة قالب، وحاليا يمكن تعديلها فقط في نمط المصدر.",
+ "cite-ve-toolbar-group-label": "مرجع",
+ "cite-ve-othergroup-item": "استشهاد $1",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "مراجع",
+ "visualeditor-internal-list-diff-group-name-mwreference": "اسم مجموعة المراجع: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/arc.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/arc.json
new file mode 100644
index 00000000..cb30317c
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/arc.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Basharh"
+ ]
+ },
+ "cite-ve-dialogbutton-reference-tooltip": "ܡܒܘܥܐ",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "ܡܟܬܒܘܬܐ ܕܡܒܘܥ̈ܐ"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/arq.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/arq.json
new file mode 100644
index 00000000..0f08a946
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/arq.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bachounda",
+ "Oldstoneage",
+ "Hussam"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "كتاب",
+ "visualeditor-cite-tool-name-journal": "جرنان",
+ "visualeditor-cite-tool-name-news": "الخبار",
+ "visualeditor-cite-tool-name-web": "موقع",
+ "cite-ve-dialog-reference-options-section": "خيارات"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/arz.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/arz.json
new file mode 100644
index 00000000..9fc43746
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/arz.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ghaly"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/as.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/as.json
new file mode 100644
index 00000000..99bb47e7
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/as.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gitartha.bordoloi",
+ "Dibya Dutta",
+ "IKHazarika"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "কিতাপ",
+ "visualeditor-cite-tool-name-journal": "জাৰ্নাল",
+ "visualeditor-cite-tool-name-news": "বাতৰি",
+ "visualeditor-cite-tool-name-web": "ৱেবছাইট",
+ "cite-ve-dialog-reference-editing-reused": "এই তথ্যসূত্ৰটো এই পৃষ্ঠাত $1 {{PLURAL:$1|বাৰ}} ব্যবহৃত হৈছে।",
+ "cite-ve-dialog-reference-options-group-label": "এই গোট ব্যৱহাৰ কৰক",
+ "cite-ve-dialog-reference-options-group-placeholder": "সাধাৰণ তথ্যসূত্ৰ",
+ "cite-ve-dialog-reference-options-name-label": "এই নামৰে পুনঃব্যৱহাৰ কৰক",
+ "cite-ve-dialog-reference-options-section": "বিকল্পসমূহ",
+ "cite-ve-dialog-reference-title": "তথ্যসূত্ৰ",
+ "cite-ve-dialog-reference-useexisting-full-label": "এই পৃষ্ঠাত থকা এটা উদ্ধৃতি পুনৰ ব্যৱহাৰ কৰক",
+ "cite-ve-dialog-reference-useexisting-label": "এটা ইতিমধ্যে থকা তথ্যসূত্ৰ ব্যৱহাৰ কৰক",
+ "cite-ve-dialog-reference-useexisting-tool": "পুনৰ্ব্যৱহাৰ কৰক",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "সাধাৰণ তথ্যসূত্ৰসমূহৰ তালিকা",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "\"$1\" গোটৰ বাবে তথ্যসূত্ৰৰ তালিকা",
+ "cite-ve-dialog-referenceslist-title": "তথ্যসূত্ৰৰ তালিকা",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "তথ্যৰ উৎস যোগ দি আপোনাৰ সমল উন্নত কৰে। আপুনি কিতাপ, বাতৰি কাকত আৰু ৱেবছাইটৰ উদ্ধৃতি দিব পাৰে।",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "উদ্ধৃতিসমূহ",
+ "cite-ve-dialogbutton-reference-full-label": "প্ৰাথমিক ৰূপ",
+ "cite-ve-dialogbutton-reference-title": "তথ্যসংগ্ৰহ",
+ "cite-ve-dialogbutton-reference-tooltip": "সাধাৰণ",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "তথ্যসূত্ৰৰ তালিকা",
+ "cite-ve-reference-input-placeholder": "বৰ্তমান তথ্যসূত্ৰৰ মাজত অনুসন্ধান কৰক",
+ "cite-ve-referenceslist-isempty": "এই তালিকাত অন্তৰ্ভুক্ত কৰিবলৈ এইটো পৃষ্ঠাত \"$1\" গোটৰ কোনো তথ্যসূত্ৰ নাই।",
+ "cite-ve-referenceslist-isempty-default": "এই তালিকাত অন্তৰ্ভুক্ত কৰিবলৈ এইটো পৃষ্ঠাত কোনো তথ্যসূত্ৰ নাই।",
+ "cite-ve-referenceslist-missingref": "এই তথ্যসূত্ৰটো এটা সাঁচ বা আন উৎপন্ন ব্লক হিচাপে সংজ্ঞায়িত কৰা হৈছে আৰু ইয়াক কেৱল উৎস ৰূপতহে সম্পাদনা কৰিব পাৰি।",
+ "cite-ve-toolbar-group-label": "উদ্ধৃতি দিয়ক",
+ "cite-ve-othergroup-item": "$1টা তথ্যসূত্ৰ",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "তথ্যসূত্ৰ",
+ "visualeditor-internal-list-diff-group-name-mwreference": "তথ্যসূত্ৰ গোটৰ নাম: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ase.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ase.json
new file mode 100644
index 00000000..94a8cf9a
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ase.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Icemandeaf"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ast.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ast.json
new file mode 100644
index 00000000..653612e6
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ast.json
@@ -0,0 +1,55 @@
+{
+ "@metadata": {
+ "authors": [
+ "Basharh",
+ "Bishnu Saikia",
+ "Xuacu",
+ "McDutchie"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "nulu",
+ "visualeditor-cite-tool-name-book": "Llibru",
+ "visualeditor-cite-tool-name-journal": "Revista",
+ "visualeditor-cite-tool-name-news": "Noticies",
+ "visualeditor-cite-tool-name-web": "Sitiu web",
+ "cite-tool-definition.json": "nulu",
+ "cite-ve-changedesc-ref-group-both": "Grupu de referencia cambiáu de «$1» a «$2»",
+ "cite-ve-changedesc-ref-group-from": "Grupu de referencia cambiáu de «$1» al grupu xeneral",
+ "cite-ve-changedesc-ref-group-to": "Grupu de referencia cambiáu del grupu xeneral a «$1»",
+ "cite-ve-changedesc-reflist-group-both": "Grupu de llista de referencies cambiáu de «$1» to «$2»",
+ "cite-ve-changedesc-reflist-group-from": "Grupu de llista de referencies cambiáu de «$1» al grupu xeneral",
+ "cite-ve-changedesc-reflist-group-to": "Grupu de llista de referencies cambiáu del grupu xeneral a «$1»",
+ "cite-ve-changedesc-reflist-responsive-set": "La llista de referencies cambió p'apaecer en columnes reactives",
+ "cite-ve-changedesc-reflist-responsive-unset": "La llista de referencies cambió p'apaecer sólo nuna columna",
+ "cite-ve-changedesc-reflist-item-id": "Cambió l'índiz de la referencia",
+ "cite-ve-dialog-reference-editing-reused": "Esta referencia úsase $1 {{PLURAL:$1|vez|veces}} nesta páxina.",
+ "cite-ve-dialog-reference-options-group-label": "Usar esti grupu",
+ "cite-ve-dialog-reference-options-group-placeholder": "Referencies xenerales",
+ "cite-ve-dialog-reference-options-name-label": "Reutilizar por esti nome",
+ "cite-ve-dialog-reference-options-responsive-label": "Usar diseñu de columna reactivu",
+ "cite-ve-dialog-reference-options-section": "Opciones",
+ "cite-ve-dialog-reference-placeholder": "Escribe o pega equí la referencia, o inxerta una plantía de cita.",
+ "cite-ve-dialog-reference-title": "Referencia",
+ "cite-ve-dialog-reference-useexisting-full-label": "Reutilizar una cita que yá esiste nesta páxina",
+ "cite-ve-dialog-reference-useexisting-label": "Usar una referencia esistente",
+ "cite-ve-dialog-reference-useexisting-tool": "Reutilizar",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Llista de referencies xenerales",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Llista de referencies del grupu «$1»",
+ "cite-ve-dialog-referenceslist-title": "Llista de referencies",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Ameyora'l conteníu amestando fontes d'información. Puede citase de llibros, periódicos y páxines web.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Cites",
+ "cite-ve-dialogbutton-reference-full-label": "Formulariu básicu",
+ "cite-ve-dialogbutton-reference-title": "Referencia",
+ "cite-ve-dialogbutton-reference-tooltip": "Básica",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Llista de referencies",
+ "cite-ve-reference-input-placeholder": "Guetar nes cites actuales",
+ "cite-ve-referenceslist-isempty": "Nun hai referencies col grupu \"$1\" nesta páxina pa incluir nesta llista.",
+ "cite-ve-referenceslist-isempty-default": "Nun hai referencies nesta páxina pa incluir nesta llista.",
+ "cite-ve-referenceslist-missingref": "Esta referencia ta definida nuna plantía o n'otru bloque xeneráu, y de momentu namái pue editase'n mou fonte.",
+ "cite-ve-referenceslist-missingref-in-list": "Esta referencia ta definida nuna plantía o n'otru bloque xeneráu, y de momentu namái puede entevese'n mou códigu fonte.",
+ "cite-ve-referenceslist-missingreflist": "Esta llista de referencies ta xenerada por una plantía, y de momentu sólo puede editase'n mou de códigu fonte.",
+ "cite-ve-toolbar-group-label": "Citar",
+ "cite-ve-othergroup-item": "referencia $1",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Referencies",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Nome del grupu de referencies: «$1»"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/av.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/av.json
new file mode 100644
index 00000000..1806bf28
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/av.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gazimagomedov",
+ "Аль-Гимравий"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/awa.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/awa.json
new file mode 100644
index 00000000..542be0bb
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/awa.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "1AnuraagPandey"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ay.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ay.json
new file mode 100644
index 00000000..50480fb6
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ay.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jduranboger",
+ "Vikytinta",
+ "Macofe"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Panka",
+ "visualeditor-cite-tool-name-journal": "Sapüru",
+ "visualeditor-cite-tool-name-news": "Yatiyäwinaka",
+ "visualeditor-cite-tool-name-web": "Sityu Web",
+ "cite-ve-dialog-reference-editing-reused": "Aka referensiax apanaqasiwa $1 {{PLURAL:$1|pacha}} aka pajinana.",
+ "cite-ve-dialog-reference-options-group-label": "Aka tama apanaqaña",
+ "cite-ve-dialog-reference-options-name-label": "Aka sutimp wasitat apanaqaña",
+ "cite-ve-dialog-reference-options-section": "Ajllinaka",
+ "cite-ve-dialog-reference-title": "Yatiyäwi",
+ "cite-ve-dialog-reference-useexisting-label": "Utjir yatiyaw apnaqaña",
+ "cite-ve-dialog-reference-useexisting-tool": "Wasitat apanaqaña",
+ "cite-ve-dialog-referenceslist-title": "Yatiyaw list uchaña",
+ "cite-ve-dialogbutton-reference-tooltip": "Jasa",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Yaqha lista",
+ "cite-ve-toolbar-group-label": "Sutinchaña"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/az.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/az.json
new file mode 100644
index 00000000..65bdda85
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/az.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cekli829",
+ "Interfase",
+ "Jduranboger",
+ "Eminn",
+ "Wertuose",
+ "Dağlı95"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Kitab",
+ "visualeditor-cite-tool-name-journal": "Jurnal",
+ "visualeditor-cite-tool-name-news": "Xəbərlər",
+ "visualeditor-cite-tool-name-web": "Veb-sayt",
+ "cite-ve-dialog-reference-options-group-label": "Bu qrupu istifadə et",
+ "cite-ve-dialog-reference-options-group-placeholder": "Ümumi istinadlar",
+ "cite-ve-dialog-reference-options-name-label": "Təkrar olaraq bu ad altında istifadə et",
+ "cite-ve-dialog-reference-options-section": "Nizamlamalar",
+ "cite-ve-dialog-reference-title": "İstinadlar",
+ "cite-ve-dialog-reference-useexisting-label": "Mövcüd istinadı istifadə et",
+ "cite-ve-dialog-referenceslist-title": "İstinadlar siyahısı",
+ "cite-ve-dialogbutton-reference-tooltip": "Əsas",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "İstinad siyahısı"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/azb.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/azb.json
new file mode 100644
index 00000000..61d1ccb2
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/azb.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amir a57",
+ "Koroğlu",
+ "Mousa",
+ "Ebrahimi-amir"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ba.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ba.json
new file mode 100644
index 00000000..ef7dab09
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ba.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "AiseluRB",
+ "Amire80",
+ "Assele",
+ "Haqmar",
+ "Sagan",
+ "Рустам Нурыев",
+ "Ләйсән"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Китап",
+ "visualeditor-cite-tool-name-journal": "Мәҡәлә",
+ "visualeditor-cite-tool-name-news": "Яңылыҡтар",
+ "visualeditor-cite-tool-name-web": "Веб-сайт",
+ "cite-ve-dialog-reference-editing-reused": "Был һылтанма биттә $1 тапҡыр {{PLURAL:$1|ҡулланыла}}.",
+ "cite-ve-dialog-reference-options-group-label": "Был төркөмдө ҡулланырға",
+ "cite-ve-dialog-reference-options-group-placeholder": "Дөйөм һылтанмалар",
+ "cite-ve-dialog-reference-options-name-label": "Бирелгән исем аҫтында ҡабаттан ҡулланырға",
+ "cite-ve-dialog-reference-options-section": "Көйләүҙәр",
+ "cite-ve-dialog-reference-title": "Иҫкәрмәләр",
+ "cite-ve-dialog-reference-useexisting-full-label": "Биттә күрһәтелгән сығанаҡты ҡабаттан ҡулланыу",
+ "cite-ve-dialog-reference-useexisting-label": "Булған һылтанманы ҡулланыу",
+ "cite-ve-dialog-reference-useexisting-tool": "Яңынан ҡулланыу",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Дөйөм һылтанмалар исемлеге",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "\"$1\" төркөмө өсөн иҫкәрмәләр исемлеге",
+ "cite-ve-dialog-referenceslist-title": "Иҫкәрмәләр исемлеге",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Яһалған мәҡәләләрҙең абруйын сығанаҡтар ярҙамында арттырырға тырышығыҙ. Һеҙ китап-гәзиттәрҙән һәм төрлө биттәрҙән кәрәкле өҙөктәрҙе ала алаһығыҙ.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Өҙөктәр",
+ "cite-ve-dialogbutton-reference-full-label": "Ябай форма",
+ "cite-ve-dialogbutton-reference-title": "Иҫкәрмәләр",
+ "cite-ve-dialogbutton-reference-tooltip": "Иҫкәрмәләр",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Иҫкәрмәләр исемлеге",
+ "cite-ve-reference-input-placeholder": "Нимәгә һылтанырға теләйһегеҙ?",
+ "cite-ve-referenceslist-isempty": "Был биттә \"$1\" төркөмө менән һылтанмалар юҡ.",
+ "cite-ve-referenceslist-isempty-default": "Был биттә исемлеккә индерер һылтанмалар юҡ.",
+ "cite-ve-referenceslist-missingref": "Был төшөрмә ҡалыпта йәки икенсе өлөштә билдәләнә, шуға күрә башланғыс кодта ғына мөхәррирләп була.",
+ "cite-ve-toolbar-group-label": "Сығанаҡ"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/bar.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bar.json
new file mode 100644
index 00000000..7db1c9e0
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bar.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Matthias Klostermayr",
+ "Joe Watzmo"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/bcc.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bcc.json
new file mode 100644
index 00000000..625be711
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bcc.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Baloch Afghanistan"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/bcl.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bcl.json
new file mode 100644
index 00000000..9182784f
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bcl.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Geopoet",
+ "Sky Harbor"
+ ]
+ },
+ "cite-ve-dialog-reference-options-group-label": "Gamiton ining grupo",
+ "cite-ve-dialog-reference-options-name-label": "Gamiton otro sa pangarang ini",
+ "cite-ve-dialog-reference-options-section": "Mga Pagpipilian",
+ "cite-ve-dialog-reference-title": "Panultulan",
+ "cite-ve-dialog-reference-useexisting-label": "Gamiton an yaon nang panultulan",
+ "cite-ve-dialog-referenceslist-title": "Listahan nin mga Panultulan",
+ "cite-ve-dialogbutton-reference-tooltip": "Panultulan",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Listahan nin mga Panultulan",
+ "cite-ve-reference-input-placeholder": "Ano an gusto mong panultulan?",
+ "cite-ve-referenceslist-isempty": "Mayo tabi nin mga panultulan na kaiba sa grupong \"$1\" na yaon kaining pahina.",
+ "cite-ve-referenceslist-isempty-default": "Mayo nin reperensiya sa pahinang ini na maidudugang sa listahang ini.",
+ "cite-ve-referenceslist-missingref": "Ining panultulan pinagkahulugan sa laog nin sarong panguyog o ibang pinagpuyos na bloke, asin para sa ngunyan maliliwat sana na yaon sa gikanang kamugtakan."
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/be-tarask.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/be-tarask.json
new file mode 100644
index 00000000..e547c6ea
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/be-tarask.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "EugeneZelenko",
+ "Red Winged Duck",
+ "Wizardist",
+ "Чаховіч Уладзіслаў",
+ "Zedlik",
+ "Renessaince"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Кніга",
+ "visualeditor-cite-tool-name-journal": "Часопіс",
+ "visualeditor-cite-tool-name-news": "Навіны",
+ "visualeditor-cite-tool-name-web": "Вэб-сайт",
+ "cite-ve-dialog-reference-options-group-label": "Выкарыстаць гэтую групу",
+ "cite-ve-dialog-reference-options-group-placeholder": "Агульныя спасылкі",
+ "cite-ve-dialog-reference-options-name-label": "Ужываць паўторна пад гэтай назвай",
+ "cite-ve-dialog-reference-options-section": "Налады",
+ "cite-ve-dialog-reference-title": "Зноска",
+ "cite-ve-dialog-reference-useexisting-label": "Ужыць існуючую зноску",
+ "cite-ve-dialog-reference-useexisting-tool": "Паўторнае ўжываньне",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Сьпіс агульных спасылак",
+ "cite-ve-dialog-referenceslist-title": "Сьпіс зносак",
+ "cite-ve-dialogbutton-reference-tooltip": "Звычайная",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Сьпіс зносак",
+ "cite-ve-reference-input-placeholder": "Што хочаце зьмясьціць у зносцы?",
+ "cite-ve-referenceslist-isempty": "На гэтай старонцы н�� мае зносак з групы «$1».",
+ "cite-ve-referenceslist-missingref": "Гэтая зноска вызначаная ў шаблёне ці іншым згенэраваным блёку і пакуль можа быць зьмененая толькі ў крынічным рэжыме.",
+ "cite-ve-toolbar-group-label": "Крыніцы"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/be.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/be.json
new file mode 100644
index 00000000..f0e9d927
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/be.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Чаховіч Уладзіслаў",
+ "Дзяніс Тутэйшы",
+ "Artificial123",
+ "Amire80",
+ "Mikalai Udodau",
+ "Goshaproject"
+ ]
+ },
+ "visualeditor-cite-tool-name-news": "Навіны",
+ "cite-ve-dialog-reference-options-group-label": "Выкарыстоўваць гэтую групу",
+ "cite-ve-dialog-reference-options-group-placeholder": "Агульныя спасылкі",
+ "cite-ve-dialog-reference-options-name-label": "Паўторна выкарыстоўваць гэта імя",
+ "cite-ve-dialog-reference-options-section": "Параметры",
+ "cite-ve-dialog-reference-title": "Зноскі",
+ "cite-ve-dialog-reference-useexisting-full-label": "Паўторнае выкарыстанне цытавання, якое ўжо існуе на гэтай старонцы",
+ "cite-ve-dialog-reference-useexisting-label": "Выкарыстоўваць існуючую спасылку",
+ "cite-ve-dialog-reference-useexisting-tool": "Паўторна выкарыстоўваць",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Спіс агульных спасылак",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Спіс спасылак для групы \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Спіс спасылак"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/bg.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bg.json
new file mode 100644
index 00000000..8cdcb752
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bg.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "DCLXVI",
+ "Hristofor.mirchev",
+ "MegaAlex",
+ "පසිඳු කාවින්ද",
+ "Mitzev",
+ "StanProg",
+ "Spiritia",
+ "Лорд Бъмбъри",
+ "Vodnokon4e"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "Книга",
+ "visualeditor-cite-tool-name-journal": "Списание",
+ "visualeditor-cite-tool-name-news": "Новини",
+ "visualeditor-cite-tool-name-web": "Уебсайт",
+ "cite-tool-definition.json": "null",
+ "cite-ve-dialog-reference-editing-reused": "Тази препратка се използва на страницата $1 {{PLURAL:$1|пъти}}.",
+ "cite-ve-dialog-reference-options-group-label": "Използвайте тази група",
+ "cite-ve-dialog-reference-options-group-placeholder": "Общи препратки",
+ "cite-ve-dialog-reference-options-name-label": "Повторно използване с това име",
+ "cite-ve-dialog-reference-options-section": "Настройки",
+ "cite-ve-dialog-reference-title": "Източник",
+ "cite-ve-dialog-reference-useexisting-full-label": "Повторно използване на цитиране, което вече съществува на страницата",
+ "cite-ve-dialog-reference-useexisting-label": "Използване на съществуващ източник",
+ "cite-ve-dialog-reference-useexisting-tool": "Повторно използване",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Списък на общи препратки",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Списък на препратки от група „$1“",
+ "cite-ve-dialog-referenceslist-title": "Списък с източници",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Подобрява съдържанието, добавяйки списък с източници на информация. Може да цитирате книги, вестници и уебсайтове.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Цитати",
+ "cite-ve-dialogbutton-reference-full-label": "Основна форма",
+ "cite-ve-dialogbutton-reference-title": "Източник",
+ "cite-ve-dialogbutton-reference-tooltip": "Основен",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Списък с източници",
+ "cite-ve-reference-input-placeholder": "Търсене в текущите цитирания",
+ "cite-ve-toolbar-group-label": "Цитиране"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/bgn.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bgn.json
new file mode 100644
index 00000000..625be711
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bgn.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Baloch Afghanistan"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/bho.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bho.json
new file mode 100644
index 00000000..81d55743
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bho.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Nepaboy",
+ "SatyamMishra",
+ "Ganesh"
+ ]
+ },
+ "cite-ve-dialogbutton-reference-tooltip": "बुनियादी"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/bn.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bn.json
new file mode 100644
index 00000000..d93ea1fc
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bn.json
@@ -0,0 +1,54 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aftab1995",
+ "Bellayet",
+ "Jayantanth",
+ "Nasir8891",
+ "Runab",
+ "Sayak Sarkar",
+ "Tauhid16",
+ "Aftabuzzaman",
+ "RYasmeen (WMF)",
+ "Sayma Jahan",
+ "NahidSultan"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "কিছু না",
+ "visualeditor-cite-tool-name-book": "বই",
+ "visualeditor-cite-tool-name-journal": "সাময়িকী",
+ "visualeditor-cite-tool-name-news": "সংবাদ",
+ "visualeditor-cite-tool-name-web": "ওয়েবসাইট",
+ "cite-tool-definition.json": "কিছু না",
+ "cite-ve-changedesc-reflist-responsive-set": "প্রতিক্রিয়াশীল কলামে প্রদর্শিত হতে তথ্যসূত্রের তালিকাটি পরিবর্তিত করে",
+ "cite-ve-changedesc-reflist-responsive-unset": "কেবলমাত্র একটি কলামে প্রদর্শিত হতে তথ্যসূত্রের তালিকাটি পরিবর্তিত করে",
+ "cite-ve-changedesc-reflist-item-id": "তথ্যসূত্রের সূচক পরিবর্তিত হয়েছে",
+ "cite-ve-dialog-reference-editing-reused": "এই তথ্যসূত্রটি এই পাতায় $1 {{PLURAL:$1|বার}} ব্যবহৃত হয়েছে।",
+ "cite-ve-dialog-reference-options-group-label": "এই দল ব্যবহার করুন",
+ "cite-ve-dialog-reference-options-group-placeholder": "সাধারণ তথ্যসূত্র",
+ "cite-ve-dialog-reference-options-name-label": "এই নামে পুনঃব্যবহার করুন",
+ "cite-ve-dialog-reference-options-responsive-label": "প্রতিক্রিয়াশীল কলাম বিন্যাস ব্যবহার করুন",
+ "cite-ve-dialog-reference-options-section": "অপশন",
+ "cite-ve-dialog-reference-placeholder": "এখানে আপনার তথ্যসূত্র লিখুন বা প্রতিলেপন করুন, বা একটি উদ্ধৃতি টেমপ্লেট সন্নিবেশ করুন।",
+ "cite-ve-dialog-reference-title": "তথ্যসূত্র",
+ "cite-ve-dialog-reference-useexisting-full-label": "এই পাতায় অস্তিত্ব রয়েছে এমন একটি উদ্ধৃতি পুনঃব্যবহার করুন",
+ "cite-ve-dialog-reference-useexisting-label": "একটি বিদ্যমান তথ্যসূত্র ব্যবহার করুন",
+ "cite-ve-dialog-reference-useexisting-tool": "পুনঃব্যবহার",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "সাধারণ তথ্যসূত্রের তালিকা",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "\"$1\" দলের জন্য তথ্যসূত্রের তালিকা",
+ "cite-ve-dialog-referenceslist-title": "তথ্যসূত্রের তালিকা",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "তথ্যের উৎস সংযুক্ত করে আপনার বিষয়বস্তু উন্নত করুন। আপনি বই, সংবাদপত্র এবং ওয়েবসাইট থেকে উদ্ধৃত করতে পারেন।",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "উদ্ধৃতি",
+ "cite-ve-dialogbutton-reference-full-label": "মৌলিক ফরম",
+ "cite-ve-dialogbutton-reference-title": "তথ্যসূত্র",
+ "cite-ve-dialogbutton-reference-tooltip": "মৌলিক",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "তথ্যসূত্রের তালিকা",
+ "cite-ve-reference-input-placeholder": "বর্তমান তথ্যসূত্রের মধ্যে অনুসন্ধান করুন",
+ "cite-ve-referenceslist-isempty": "এই পাতাতে \"$1\" দলের জন্য কোন তথ্যসূত্র নেই।",
+ "cite-ve-referenceslist-isempty-default": "এই তালিকায় যোগ করার জন্য এই পৃষ্ঠায় কোন তথ্যসূত্র নেই।",
+ "cite-ve-referenceslist-missingref": "এই তথ্যটি একটি টেমপ্লেট বা অন্যান্য উত্পন্ন ব্লক হিসেবে সংজ্ঞায়িত করা হয় এবং এখনকার জন্য এটি শুধুমাত্র উৎস মোডে সম্পাদনা করা যাবে।",
+ "cite-ve-toolbar-group-label": "উদ্ধৃতি",
+ "cite-ve-othergroup-item": "$1টি তথ্যসূত্র",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "তথ্যসূত্র",
+ "visualeditor-internal-list-diff-group-name-mwreference": "তথ্যসূত্রের দলের নাম: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/bo.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bo.json
new file mode 100644
index 00000000..2bec4a92
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bo.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Phurbutsering"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/br.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/br.json
new file mode 100644
index 00000000..b5f93da7
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/br.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fohanno",
+ "Fulup",
+ "Y-M D",
+ "Maoris"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Levr",
+ "visualeditor-cite-tool-name-journal": "Kazetenn",
+ "visualeditor-cite-tool-name-news": "Keleier",
+ "visualeditor-cite-tool-name-web": "Lec'hienn",
+ "cite-ve-dialog-reference-options-group-label": "Implijout ar strollad-mañ",
+ "cite-ve-dialog-reference-options-section": "Dibarzhioù",
+ "cite-ve-dialog-reference-title": "Daveennoù",
+ "cite-ve-dialog-reference-useexisting-label": "Implijout un daveenn zo anezhi",
+ "cite-ve-dialog-reference-useexisting-tool": "Adimplijout",
+ "cite-ve-dialog-referenceslist-title": "Roll an daveennoù",
+ "cite-ve-dialogbutton-reference-full-label": "Stumm diazez",
+ "cite-ve-dialogbutton-reference-tooltip": "Diazez",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Roll an daveennoù",
+ "cite-ve-toolbar-group-label": "Menegiñ"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/brh.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/brh.json
new file mode 100644
index 00000000..5d362233
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/brh.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Imdadb"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/brx.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/brx.json
new file mode 100644
index 00000000..c370920a
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/brx.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "ⓝⓘⓙⓦⓜ"
+ ]
+ },
+ "visualeditor-cite-tool-name-news": "रादाब",
+ "cite-ve-dialog-reference-useexisting-tool": "फिन-बाहाय"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/bs.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bs.json
new file mode 100644
index 00000000..f810ffec
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/bs.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "DzWiki",
+ "KWiki",
+ "Srdjan m",
+ "Semso98"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Knjiga",
+ "visualeditor-cite-tool-name-journal": "Časopis",
+ "visualeditor-cite-tool-name-news": "Vijesti",
+ "visualeditor-cite-tool-name-web": "Veb-sajt",
+ "cite-ve-dialog-reference-editing-reused": "Ova referenca koristi se već $1 {{PLURAL:$1|put|puta}} na ovoj stranici.",
+ "cite-ve-dialog-reference-options-group-label": "Koristi ovu grupu",
+ "cite-ve-dialog-reference-options-group-placeholder": "Opće reference",
+ "cite-ve-dialog-reference-options-name-label": "Ponovo koristi pod ovim imenom",
+ "cite-ve-dialog-reference-options-section": "Opcije",
+ "cite-ve-dialog-reference-placeholder": "Ovdje napišite ili prekopirajte referencu, ili umetnite šablon za reference.",
+ "cite-ve-dialog-reference-title": "Referenca",
+ "cite-ve-dialog-reference-useexisting-full-label": "Ponovo koristi referencu koja već postoji na ovoj stranici",
+ "cite-ve-dialog-reference-useexisting-label": "Koristi postojeću referencu",
+ "cite-ve-dialog-reference-useexisting-tool": "Ponovno korištenje",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Spisak općih referenci",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Spisak referenci grupe \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Spisak referenci",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Poboljšava sadržaj članka dodavanjem izvora za informacije. Možete referencirati knjige, novine i veb-sajtove.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Reference",
+ "cite-ve-dialogbutton-reference-full-label": "Osnovni oblik",
+ "cite-ve-dialogbutton-reference-title": "Referenca",
+ "cite-ve-dialogbutton-reference-tooltip": "Osnovna",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Spisak referenci",
+ "cite-ve-reference-input-placeholder": "Traži postojeće reference",
+ "cite-ve-referenceslist-isempty": "Nema referenci u grupi \"$1\" na ovoj stranici.",
+ "cite-ve-referenceslist-isempty-default": "Nema referenci na ovoj stranici koje bi mogle biti uključene u ovaj spisak.",
+ "cite-ve-referenceslist-missingref": "Ova referenca definirana je u šablonu ili drugom generiranom dijelu i zasad se može uređivati jedino u uređivaču izvornog koda.",
+ "cite-ve-toolbar-group-label": "Referenca",
+ "cite-ve-othergroup-item": "$1 referenca",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Reference",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Naziv grupe referenci: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ca.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ca.json
new file mode 100644
index 00000000..43053048
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ca.json
@@ -0,0 +1,53 @@
+{
+ "@metadata": {
+ "authors": [
+ "Alvaro Vidal-Abarca",
+ "Amire80",
+ "Arnaugir",
+ "Pginer",
+ "QuimGil",
+ "SMP",
+ "Vriullop",
+ "Papapep",
+ "Fitoschido",
+ "Edustus",
+ "Davidpar",
+ "Kippelboy",
+ "Unapersona",
+ "Macofe",
+ "Toniher",
+ "Maceleiro",
+ "F3RaN",
+ "SenyorFontal",
+ "Eduardo Martinez"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Llibre",
+ "visualeditor-cite-tool-name-journal": "Publicació",
+ "visualeditor-cite-tool-name-news": "Notícies",
+ "visualeditor-cite-tool-name-web": "Lloc web",
+ "cite-ve-dialog-reference-editing-reused": "Aquesta referència s'utilitza $1 {{PLURAL:$1|vegades}} en aquesta pàgina.",
+ "cite-ve-dialog-reference-options-group-label": "Utilitza aquest grup",
+ "cite-ve-dialog-reference-options-group-placeholder": "Referències generals",
+ "cite-ve-dialog-reference-options-name-label": "Reutilitza amb aquest nom",
+ "cite-ve-dialog-reference-options-section": "Opcions",
+ "cite-ve-dialog-reference-title": "Referència",
+ "cite-ve-dialog-reference-useexisting-full-label": "Reutilitzeu una referència que ja existeix en aquest article",
+ "cite-ve-dialog-reference-useexisting-label": "Utilitza una referència existent",
+ "cite-ve-dialog-reference-useexisting-tool": "Reutilitza",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Llista general de referències",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Llista de referències del grip \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Llista de referències",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Milloreu el contingut afegint fonts d'informació. Podeu citar llibres, diaris i pàgines web.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Referències",
+ "cite-ve-dialogbutton-reference-full-label": "Forma bàsica",
+ "cite-ve-dialogbutton-reference-title": "Referència",
+ "cite-ve-dialogbutton-reference-tooltip": "Bàsic",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Llista de referències",
+ "cite-ve-reference-input-placeholder": "Cerca a les referències actuals",
+ "cite-ve-referenceslist-isempty": "No hi ha cap referència amb el grup «$1» en aquesta pàgina a incloure en aquesta llista.",
+ "cite-ve-referenceslist-isempty-default": "No hi ha cap referència en aquesta pàgina que incloure en la llista.",
+ "cite-ve-referenceslist-missingref": "Aquesta referència està definida en una plantilla o un altre tipus de bloc generat, i de moment només pot editar-se amb l'editor de codi font.",
+ "cite-ve-referenceslist-missingreflist": "Aquesta llista de referències ha estat generada per una plantilla i, per ara, només es pot modificar en mode de codi font.",
+ "cite-ve-toolbar-group-label": "Referència"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/cdo.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/cdo.json
new file mode 100644
index 00000000..dda7f4b3
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/cdo.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Yejianfei",
+ "唐吉訶德的侍從"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "圖書",
+ "visualeditor-cite-tool-name-journal": "期刊",
+ "visualeditor-cite-tool-name-news": "新聞",
+ "visualeditor-cite-tool-name-web": "網站",
+ "cite-ve-dialog-reference-useexisting-tool": "複用",
+ "cite-ve-dialogbutton-reference-full-label": "基本形式",
+ "cite-ve-dialogbutton-reference-title": "參考",
+ "cite-ve-dialogbutton-reference-tooltip": "基本",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "參考文獻",
+ "cite-ve-toolbar-group-label": "引用"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ce.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ce.json
new file mode 100644
index 00000000..f3f4aed7
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ce.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amire80",
+ "Умар",
+ "Исмаил Садуев"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "нуль",
+ "visualeditor-cite-tool-name-book": "Жайна",
+ "visualeditor-cite-tool-name-journal": "Тептар",
+ "visualeditor-cite-tool-name-news": "Керланаш",
+ "visualeditor-cite-tool-name-web": "Веб-сайт",
+ "cite-tool-definition.json": "нуль",
+ "cite-ve-dialog-reference-options-group-label": "Лелае хӀара тоба",
+ "cite-ve-dialog-reference-options-group-placeholder": "Юкъара хььажоргаш",
+ "cite-ve-dialog-reference-options-name-label": "ХӀокху цӀарца юху лелае",
+ "cite-ve-dialog-reference-options-section": "Параметраш",
+ "cite-ve-dialog-reference-title": "Билгалдаккхар",
+ "cite-ve-dialog-reference-useexisting-label": "Леладе долуш долу тIетовжар",
+ "cite-ve-dialog-reference-useexisting-tool": "Юха лелор",
+ "cite-ve-dialog-referenceslist-title": "Билгалдаккхаршан могӀам",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Дика йе хьайн контент хаамийн хьосташ тӀетоьхна. Хайн йиш ю цитаташ дало жайнаш тӀера, газеташ тӀера я веб-сайташ тӀера.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Цитаташ",
+ "cite-ve-dialogbutton-reference-tooltip": "Коьрта",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Билгалдаккхаршан могӀам",
+ "cite-ve-reference-input-placeholder": "Муьлхачунна тӀетовжа лаьа хьуна?",
+ "cite-ve-toolbar-group-label": "Белгалдахарш"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ckb.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ckb.json
new file mode 100644
index 00000000..7e520e11
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ckb.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Calak",
+ "Muhammed taha",
+ "Serwan",
+ "Pirehelokan",
+ "Sarchia"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "کتێب",
+ "visualeditor-cite-tool-name-journal": "بڵاوکراوە",
+ "visualeditor-cite-tool-name-news": "هەواڵ",
+ "visualeditor-cite-tool-name-web": "ماڵپەڕ",
+ "cite-ve-dialog-reference-options-group-label": "ئەم گرووپە بەکاربھێنە",
+ "cite-ve-dialog-reference-options-group-placeholder": "سەرچاوە گشتییەکان",
+ "cite-ve-dialog-reference-options-section": "ھەڵبژاردەکان",
+ "cite-ve-dialog-reference-title": "سەرچاوە",
+ "cite-ve-dialog-reference-useexisting-label": "بەکارھێنانی سەرچاوەیەکی ئامادە",
+ "cite-ve-dialog-reference-useexisting-tool": "بەکارھێنانەوە",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "پێڕستی سەرچاوە گشتییەکان",
+ "cite-ve-dialog-referenceslist-title": "پێرستی سەرچاوە",
+ "cite-ve-dialogbutton-reference-title": "سەرچاوە",
+ "cite-ve-dialogbutton-reference-tooltip": "بنەڕەتی",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "پێرستی سەرچاوەکان",
+ "cite-ve-toolbar-group-label": "ئاماژە",
+ "cite-ve-othergroup-item": "سەرچاوەی $1",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "سەرچاوەکان"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/co.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/co.json
new file mode 100644
index 00000000..7686c2ed
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/co.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "Paulu",
+ "Nemo bis",
+ "Macofe"
+ ]
+ },
+ "cite-ve-dialog-reference-options-group-label": "Fà usu di 'ssu gruppu",
+ "cite-ve-dialog-reference-options-name-label": "Rifà usu di 'ssu nome",
+ "cite-ve-dialog-reference-options-section": "Ozzione",
+ "cite-ve-dialog-reference-title": "Referenza",
+ "cite-ve-dialog-reference-useexisting-label": "Fà usu d'una referenza esistente",
+ "cite-ve-dialog-referenceslist-title": "Lista di referenze",
+ "cite-ve-dialogbutton-reference-tooltip": "Referenza",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lista di referenze"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/crh-cyrl.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/crh-cyrl.json
new file mode 100644
index 00000000..2e2bd4b2
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/crh-cyrl.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Don Alessandro"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/crh-latn.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/crh-latn.json
new file mode 100644
index 00000000..2e2bd4b2
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/crh-latn.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Don Alessandro"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/cs.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/cs.json
new file mode 100644
index 00000000..2ccf3e13
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/cs.json
@@ -0,0 +1,68 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chmee2",
+ "Jkjk",
+ "Juandev",
+ "Koo6",
+ "Littledogboy",
+ "Michaelbrabec",
+ "Mormegil",
+ "Polda18",
+ "Tchoř",
+ "ශ්වෙත",
+ "Matěj Suchánek",
+ "Gloria sah",
+ "Vojtěch Dostál",
+ "Aktron",
+ "Cvanca",
+ "Kusavica",
+ "Dvorapa",
+ "Ilimanaq29"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "prázdný",
+ "visualeditor-cite-tool-name-book": "Kniha",
+ "visualeditor-cite-tool-name-journal": "Časopis",
+ "visualeditor-cite-tool-name-news": "Časopis / noviny",
+ "visualeditor-cite-tool-name-web": "Webová stránka",
+ "cite-tool-definition.json": "prázdný",
+ "cite-ve-changedesc-ref-group-both": "Skupina reference změněna z „$1“ na „$2“",
+ "cite-ve-changedesc-ref-group-from": "Skupina reference změněna z „$1“ na základní",
+ "cite-ve-changedesc-ref-group-to": "Skupina reference změněna ze základní na „$1“",
+ "cite-ve-changedesc-reflist-group-both": "Skupina seznamu referencí změněna z „$1“ na „$2“",
+ "cite-ve-changedesc-reflist-group-from": "Skupina seznamu referencí změněna z „$1“ na základní",
+ "cite-ve-changedesc-reflist-group-to": "Skupina seznamu referencí změněna ze základní na „$1“",
+ "cite-ve-changedesc-reflist-responsive-set": "Seznam referencí se nyní zobrazuje v responzivních sloupcích",
+ "cite-ve-changedesc-reflist-responsive-unset": "Seznam referencí se nyní zobrazuje jenom v jednom sloupci",
+ "cite-ve-changedesc-reflist-item-id": "Změněno číslo reference",
+ "cite-ve-dialog-reference-editing-reused": "Tato reference se na této stránce používá $1{{PLURAL:$1|krát}}.",
+ "cite-ve-dialog-reference-options-group-label": "Použít tuto skupinu",
+ "cite-ve-dialog-reference-options-group-placeholder": "Obecné reference",
+ "cite-ve-dialog-reference-options-name-label": "Znovupoužívat pod tímto názvem",
+ "cite-ve-dialog-reference-options-responsive-label": "Použít responzivní vzhled sloupců",
+ "cite-ve-dialog-reference-options-section": "Možnosti",
+ "cite-ve-dialog-reference-placeholder": "Sem napište nebo vložte svou referenci nebo citační šablonu.",
+ "cite-ve-dialog-reference-title": "Reference",
+ "cite-ve-dialog-reference-useexisting-full-label": "Znovupoužít citaci, která již na stránce existuje",
+ "cite-ve-dialog-reference-useexisting-label": "Použít existující referenci",
+ "cite-ve-dialog-reference-useexisting-tool": "Použít existující",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Seznam obecných referencí",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Seznam referencí pro skupinu „$1“",
+ "cite-ve-dialog-referenceslist-title": "Seznam referencí",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Vylepšení vašeho obsahu přidáním zdrojů informací. Můžete citovat z knih, novin či webových stránek.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citace",
+ "cite-ve-dialogbutton-reference-full-label": "Základní podoba",
+ "cite-ve-dialogbutton-reference-title": "Reference",
+ "cite-ve-dialogbutton-reference-tooltip": "Základní",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Seznam referencí",
+ "cite-ve-reference-input-placeholder": "Hledat ve stávajících referencích",
+ "cite-ve-referenceslist-isempty": "Na této stránce nejsou žádné reference se skupinou „$1“, které by se v tomto seznamu zobrazily.",
+ "cite-ve-referenceslist-isempty-default": "Na této stránce nejsou žádné reference, které by se v tomto seznamu zobrazily.",
+ "cite-ve-referenceslist-missingref": "Tato reference je definována v šabloně nebo jiné generované části textu a zatím ji lze editovat jen v režimu zdrojového textu.",
+ "cite-ve-referenceslist-missingreflist": "Tento seznam referencí je generován šablonou a zatím ho lze editovat pouze v režimu zdrojového textu.",
+ "cite-ve-toolbar-group-label": "Citace",
+ "cite-ve-othergroup-item": "$1 reference",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Reference",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Název skupiny referencí: „$1“"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/cu.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/cu.json
new file mode 100644
index 00000000..4be219b1
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/cu.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "ОйЛ",
+ "Илья Драконов"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "кънигꙑ",
+ "visualeditor-cite-tool-name-news": "вѣсти",
+ "visualeditor-cite-tool-name-web": "мєждоусѣтьно мѣсто",
+ "cite-ve-dialog-reference-options-section": "строи",
+ "cite-ve-dialogbutton-reference-title": "Источник"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/cv.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/cv.json
new file mode 100644
index 00000000..e2a6954c
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/cv.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chuvash2014"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/cy.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/cy.json
new file mode 100644
index 00000000..3f6c03b4
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/cy.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cymrodor",
+ "Lloffiwr",
+ "Robin Owain",
+ "ОйЛ",
+ "DChan (WMF)"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Llyfr",
+ "visualeditor-cite-tool-name-journal": "Cyfnodolyn",
+ "visualeditor-cite-tool-name-news": "Newyddion",
+ "visualeditor-cite-tool-name-web": "Gwefan",
+ "cite-ve-dialog-reference-options-group-label": "Defnyddio'r grŵp hwn",
+ "cite-ve-dialog-reference-options-group-placeholder": "Cyfeirnodau cyffredinol",
+ "cite-ve-dialog-reference-options-name-label": "Ail-ddefnyddio wrth yr enw hwn",
+ "cite-ve-dialog-reference-options-section": "Dewisiadau",
+ "cite-ve-dialog-reference-title": "Cyfeirnod",
+ "cite-ve-dialog-reference-useexisting-label": "Defnyddiwch gyfeirnod sy'n bodoli eisoes",
+ "cite-ve-dialog-reference-useexisting-tool": "Ail-ddefnyddio",
+ "cite-ve-dialog-referenceslist-title": "Rhestr cyfeirnodau",
+ "cite-ve-dialogbutton-reference-tooltip": "Cyfeiriad at ffynhonnell",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Rhestr cyfeiriadau",
+ "cite-ve-reference-input-placeholder": "At ba ffynhonnell yr hoffech gyfeirio?",
+ "cite-ve-referenceslist-isempty": "Nid oes unrhyw gyfeiriadau o'r grŵp \"$1\" ar y dudalen hon i'w cynnwys ar y rhestr.",
+ "cite-ve-referenceslist-isempty-default": "Nid oes unrhyw gyfeiriadau ar y dudalen hon i'w cynnwys ar y rhestr hon.",
+ "cite-ve-referenceslist-missingref": "Mae'r cyfeirnod hwn wedi cael ei gynhyrchu gan templed neu rhyw god arall, ac ar hyn o bryd rhaid golygu'r cod ei hunan yn hytrach na defnyddio VisualEditor."
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/da.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/da.json
new file mode 100644
index 00000000..e17fa81f
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/da.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cgtdk",
+ "Christian List",
+ "EileenSanda",
+ "Laketown",
+ "Palnatoke",
+ "Simeondahl",
+ "Tehnix",
+ "Sarrus",
+ "McDutchie",
+ "Macofe",
+ "Ribewiki",
+ "Jorn Ari"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Bog",
+ "visualeditor-cite-tool-name-news": "Nyheder",
+ "visualeditor-cite-tool-name-web": "Hjemmeside",
+ "cite-ve-dialog-reference-options-group-label": "Brug denne gruppe",
+ "cite-ve-dialog-reference-options-group-placeholder": "Generelle referencer",
+ "cite-ve-dialog-reference-options-name-label": "Genbrug med dette navn",
+ "cite-ve-dialog-reference-options-section": "Indstillinger",
+ "cite-ve-dialog-reference-title": "Reference",
+ "cite-ve-dialog-reference-useexisting-label": "Brug en eksisterende reference",
+ "cite-ve-dialog-referenceslist-title": "Referenceliste",
+ "cite-ve-dialogbutton-reference-tooltip": "Enkel",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Referenceliste",
+ "cite-ve-reference-input-placeholder": "Søg i de aktuelle referencer",
+ "cite-ve-referenceslist-isempty": "Der er ingen referencer med gruppen \"$1\" på denne side, som kan medtages i denne liste.",
+ "cite-ve-referenceslist-isempty-default": "Der er ingen referencer på denne side som kan medtages i denne liste.",
+ "cite-ve-referenceslist-missingref": "Denne reference er defineret i en skabelon eller en anden genereret blok, og kan foreløbig kun redigeres i wikikode tilstand.",
+ "cite-ve-referenceslist-missingreflist": "Denne referenceliste genereres af en skabelon, og kan nu kun redigeres i kildefunktion."
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/de-ch.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/de-ch.json
new file mode 100644
index 00000000..4297a650
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/de-ch.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Filzstift"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/de-formal.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/de-formal.json
new file mode 100644
index 00000000..ce33b601
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/de-formal.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kghbln",
+ "Se4598"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/de.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/de.json
new file mode 100644
index 00000000..b77a75fd
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/de.json
@@ -0,0 +1,64 @@
+{
+ "@metadata": {
+ "authors": [
+ "APPER",
+ "Filzstift",
+ "G.Hagedorn",
+ "Inkowik",
+ "Jcornelius",
+ "Jdforrester",
+ "Kghbln",
+ "Metalhead64",
+ "Murma174",
+ "Se4598",
+ "Tomabrafix",
+ "Umherirrender",
+ "Kurt Jansson"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "Buch",
+ "visualeditor-cite-tool-name-journal": "Zeitschrift",
+ "visualeditor-cite-tool-name-news": "Nachrichten",
+ "visualeditor-cite-tool-name-web": "Website",
+ "cite-tool-definition.json": "null",
+ "cite-ve-changedesc-ref-group-both": "Einzelnachweisgruppe geändert von „$1“ in „$2“",
+ "cite-ve-changedesc-ref-group-from": "Einzelnachweisgruppe geändert von „$1“ in die allgemeine Gruppe",
+ "cite-ve-changedesc-ref-group-to": "Einzelnachweisgruppe geändert von der allgemeinen Gruppe in „$1“",
+ "cite-ve-changedesc-reflist-group-both": "Einzelnachweislistengruppe geändert von „$1“ in „$2“",
+ "cite-ve-changedesc-reflist-group-from": "Einzelnachweislistengruppe geändert von „$1“ in die allgemeine Gruppe",
+ "cite-ve-changedesc-reflist-group-to": "Einzelnachweislistengruppe geändert von der allgemeinen Gruppe in „$1“",
+ "cite-ve-changedesc-reflist-responsive-set": "Die Einzelnachweisliste wird jetzt in reagierenden Spalten angezeigt",
+ "cite-ve-changedesc-reflist-responsive-unset": "Die Einzelnachweisliste wird jetzt in nur einer Spalte angezeigt",
+ "cite-ve-changedesc-reflist-item-id": "Einzelnachweisindex geändert",
+ "cite-ve-dialog-reference-editing-reused": "Dieser Einzelnachweis wird auf dieser Seite {{PLURAL:$1|einmal|$1 Mal}} verwendet.",
+ "cite-ve-dialog-reference-options-group-label": "Diese Gruppe verwenden",
+ "cite-ve-dialog-reference-options-group-placeholder": "Allgemeine Einzelnachweise",
+ "cite-ve-dialog-reference-options-name-label": "Diesen Namen weiterverwenden",
+ "cite-ve-dialog-reference-options-responsive-label": "Reagierendes Spaltenlayout verwenden",
+ "cite-ve-dialog-reference-options-section": "Optionen",
+ "cite-ve-dialog-reference-placeholder": "Verfasse eine Referenz oder füge sie oder eine Zitatvorlage hier ein.",
+ "cite-ve-dialog-reference-title": "Einzelnachweis",
+ "cite-ve-dialog-reference-useexisting-full-label": "Ein Zitat weiterverwenden, das bereits auf dieser Seite vorhanden ist",
+ "cite-ve-dialog-reference-useexisting-label": "Einen vorhandenen Einzelnachweis verwenden",
+ "cite-ve-dialog-reference-useexisting-tool": "Weiterverwenden",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Liste allgemeiner Einzelnachweise",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Liste der Einzelnachweise für die Gruppe „$1“",
+ "cite-ve-dialog-referenceslist-title": "Einzelnachweisliste",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Belege deine Änderungen, indem du Quellen angibst und aus Büchern, Zeitungen oder Websites zitierst.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Zitate",
+ "cite-ve-dialogbutton-reference-full-label": "Basisform",
+ "cite-ve-dialogbutton-reference-title": "Einzelnachweis",
+ "cite-ve-dialogbutton-reference-tooltip": "Einfach",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Einzelnachweisliste",
+ "cite-ve-reference-input-placeholder": "Innerhalb aktueller Zitate suchen",
+ "cite-ve-referenceslist-isempty": "Auf dieser Seite gibt es keine Einzelnachweise mit der Gruppe „$1“ zum Anzeigen in dieser Liste.",
+ "cite-ve-referenceslist-isempty-default": "Auf dieser Seite gibt es keine Einzelnachweise zum Anzeigen in dieser Liste.",
+ "cite-ve-referenceslist-missingref": "Dieser Einzelnachweis ist in einer Vorlage oder einem anderen erzeugten Block definiert und kann derzeit nur im Quelltextmodus bearbeitet werden.",
+ "cite-ve-referenceslist-missingref-in-list": "Dieser Einzelnachweis wird in einer Vorlage oder einem anderen erzeugten Block definiert und derzeit kann eine Vorschau nur im Quelltextmodus angezeigt werden.",
+ "cite-ve-referenceslist-missingreflist": "Diese Einzelnachweisliste wurde von einer Vorlage erzeugt und kann derzeit nur im Quelltextmodus bearbeitet werden.",
+ "cite-ve-toolbar-group-label": "Zitat",
+ "cite-ve-othergroup-item": "$1-Einzelnachweis",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Referenzierungen",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Referenzierungsgruppenname: „$1“"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/din.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/din.json
new file mode 100644
index 00000000..52b231a2
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/din.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dinkawiki",
+ "Amire80"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/diq.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/diq.json
new file mode 100644
index 00000000..1eaa1c7a
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/diq.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Erdemaslancan",
+ "Gorizon",
+ "Kghbln",
+ "Marmase",
+ "Mirzali",
+ "Se4598",
+ "Kumkumuk"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "veng",
+ "visualeditor-cite-tool-name-book": "Kıtab",
+ "visualeditor-cite-tool-name-journal": "Pêseroke",
+ "visualeditor-cite-tool-name-news": "Xeberi",
+ "visualeditor-cite-tool-name-web": "Websita",
+ "cite-tool-definition.json": "veng",
+ "cite-ve-dialog-reference-editing-reused": "Ena referans $1 {{PLURAL:$1|veror}} rna perer dı karıya ya.",
+ "cite-ve-dialog-reference-options-group-label": "Na gruber bıkarn",
+ "cite-ve-dialog-reference-options-group-placeholder": "Referansê bıngey",
+ "cite-ve-dialog-reference-options-name-label": "Ney nami fına bıkarne",
+ "cite-ve-dialog-reference-options-section": "Weçinegi",
+ "cite-ve-dialog-reference-title": "Referans",
+ "cite-ve-dialog-reference-useexisting-full-label": "Fınankarıyayış ena perer sero xora esten yew grotek o.",
+ "cite-ve-dialog-reference-useexisting-label": "Zu referansa mewcud bıkarne",
+ "cite-ve-dialog-reference-useexisting-tool": "Fına bıkarn",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Listay umumi referansa",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Qandé listay mıreceti gruba \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Listeya referansan",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Groteki",
+ "cite-ve-dialogbutton-reference-full-label": "Formo bıngehın",
+ "cite-ve-dialogbutton-reference-title": "Referans",
+ "cite-ve-dialogbutton-reference-tooltip": "Referans",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Listeya referansan",
+ "cite-ve-reference-input-placeholder": "Qanci referansi şıma qalıyé bıkarné?"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/dsb.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/dsb.json
new file mode 100644
index 00000000..d60846dd
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/dsb.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michawiki",
+ "Derbeth"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Knigły",
+ "visualeditor-cite-tool-name-journal": "Casopis",
+ "visualeditor-cite-tool-name-news": "Casnik",
+ "visualeditor-cite-tool-name-web": "Websedło",
+ "cite-ve-dialog-reference-options-group-label": "Toś tu kupku wužywaś",
+ "cite-ve-dialog-reference-options-group-placeholder": "Powšykne reference",
+ "cite-ve-dialog-reference-options-name-label": "Toś to mě dalej wužywaś",
+ "cite-ve-dialog-reference-options-section": "Opcije",
+ "cite-ve-dialog-reference-title": "Referenca",
+ "cite-ve-dialog-reference-useexisting-label": "Eksistěrujucu referencu wužywaś",
+ "cite-ve-dialog-referenceslist-title": "Lisćina referencow",
+ "cite-ve-dialogbutton-reference-tooltip": "Referenca",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lisćina referencow",
+ "cite-ve-reference-input-placeholder": "Co coš referencěrowaś?",
+ "cite-ve-referenceslist-isempty": "Njejsu žedne reference z kupku \"$1\" na toś tom boku, kótarež daju se do toś teje lisćiny zapśimjeś.",
+ "cite-ve-referenceslist-isempty-default": "Njejsu reference na toś tom boku, kótarež daju se do toś teje lisćiny zapśimjeś."
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/dty.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/dty.json
new file mode 100644
index 00000000..d2ad43b9
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/dty.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "रमेश सिंह बोहरा",
+ "जनक राज भट्ट",
+ "राम प्रसाद जोशी"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "पुस्तकहरू",
+ "visualeditor-cite-tool-name-journal": "पत्रिका",
+ "visualeditor-cite-tool-name-news": "रैबार",
+ "visualeditor-cite-tool-name-web": "वेबसाइट",
+ "cite-ve-dialog-reference-options-section": "विकल्पहरू",
+ "cite-ve-dialog-reference-title": "सन्दर्भ सामग्रीहरू",
+ "cite-ve-dialog-reference-useexisting-tool": "पुनः प्रयोग",
+ "cite-ve-toolbar-group-label": "उर्ध्वभरण"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ee.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ee.json
new file mode 100644
index 00000000..ceef843c
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ee.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aguve"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/egl.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/egl.json
new file mode 100644
index 00000000..4e5f7b60
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/egl.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lévi",
+ "Gloria sah"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Léber",
+ "visualeditor-cite-tool-name-journal": "Publicasiòun",
+ "visualeditor-cite-tool-name-news": "Nuvitê",
+ "visualeditor-cite-tool-name-web": "Sît internèt",
+ "cite-ve-dialog-reference-options-group-label": "Drōva cól gróp ché",
+ "cite-ve-dialog-reference-options-name-label": "Tōrna a druvê cól nòm ché",
+ "cite-ve-dialog-reference-options-section": "Siēlti",
+ "cite-ve-dialog-reference-title": "Riferimèint",
+ "cite-ve-dialog-reference-useexisting-label": "Drōva un riferimèint ch' al gh'é bèle",
+ "cite-ve-dialog-referenceslist-title": "Elèinch riferimèint",
+ "cite-ve-dialogbutton-reference-tooltip": "Fundamèint",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Elèinch riferimèint",
+ "cite-ve-reference-input-placeholder": "A csâ dişédra fêr riferimèint?",
+ "cite-ve-referenceslist-isempty": "An gh'é mìa riferimèint cun al gróp \"$1\" insém a cla pàgina ché da mèter dèinter in cl'elèinch ché.",
+ "cite-ve-referenceslist-isempty-default": "An gh'é mìa riferimèint insém a cla pàgina ché da mèter dèinter in cl'elèinch ché.",
+ "cite-ve-referenceslist-missingref": "Cla nôta ché an n'é mìa dichiarêda in un mudèl o in un êter blôch fât e p'r adèsa la pōl èser mudifichêda sōl int la manēra surzéia."
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/el.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/el.json
new file mode 100644
index 00000000..6ae98a81
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/el.json
@@ -0,0 +1,51 @@
+{
+ "@metadata": {
+ "authors": [
+ "Astralnet",
+ "Dipa1965",
+ "Evropi",
+ "FocalPoint",
+ "Geraki",
+ "Glavkos",
+ "Nikosguard",
+ "Tifa93",
+ "Elitre",
+ "Protnet",
+ "Stam.nikos",
+ "Macofe",
+ "SucreRouge",
+ "Nikosgranturismogt"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "κενό",
+ "visualeditor-cite-tool-name-book": "Βιβλίο",
+ "visualeditor-cite-tool-name-journal": "Περιοδικό",
+ "visualeditor-cite-tool-name-news": "Ειδήσεις",
+ "visualeditor-cite-tool-name-web": "Ιστότοπος",
+ "cite-tool-definition.json": "κενό",
+ "cite-ve-dialog-reference-editing-reused": "Αυτή η παραπομπή χρησιμοποιείται $1 {{PLURAL:$1|φορά|φορές}} σε αυτή τη σελίδα.",
+ "cite-ve-dialog-reference-options-group-label": "Χρησιμοποιείστε αυτή την ομάδα",
+ "cite-ve-dialog-reference-options-group-placeholder": "Γενικές αναφορές",
+ "cite-ve-dialog-reference-options-name-label": "Επαναχρησιμοποίηση με αυτό το όνομα",
+ "cite-ve-dialog-reference-options-section": "Επιλογές",
+ "cite-ve-dialog-reference-title": "Παραπομπή",
+ "cite-ve-dialog-reference-useexisting-full-label": "Ξαναχρησιμοποιήστε μια παραπομπή που υπάρχει ήδη σε αυτή τη σελίδα",
+ "cite-ve-dialog-reference-useexisting-label": "Χρήση υπάρχουσας παραπομπής",
+ "cite-ve-dialog-reference-useexisting-tool": "Επαναχρησιμοποίηση",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Λίστα με γενικές αναφορές",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Λίστα αναφορών για την ομάδα \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Κατάλογος παραπομπών",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Βελτιώνει το περιεχόμενό σας με την προσθήκη πηγών πληροφοριών. Μπορείτε να κάνετε παραπομπές σε βιβλία, εφημερίδες και ιστοσελίδες.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Παραπομπές",
+ "cite-ve-dialogbutton-reference-full-label": "Βασική μορφή",
+ "cite-ve-dialogbutton-reference-title": "Παραπομπή",
+ "cite-ve-dialogbutton-reference-tooltip": "Βασικό",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Κατάλογος παραπομπών",
+ "cite-ve-reference-input-placeholder": "Αναζήτηση εντός των τρεχουσών παραπομπών",
+ "cite-ve-referenceslist-isempty": "Δεν υπάρχουν παραπομπές με την ομάδα «$1» σε αυτήν τη σελίδα για να περιληφθούν σε αυτόν τον κατάλογο.",
+ "cite-ve-referenceslist-isempty-default": "Δεν υπάρχουν παραπομπές σε αυτήν τη σελίδα για να περιληφθούν σε αυτόν τον κατάλογο.",
+ "cite-ve-referenceslist-missingref": "Η παραπομπή αυτή έχει οριστεί μέσω προτύπου ή άλλου αυτόματα παραγόμενου μπλοκ και, προς το παρόν, δεν μπορείτε να την επεξεργαστείτε με τον VisualEditor. Χρησιμοποιήστε τον επεξεργαστή κώδικα.",
+ "cite-ve-toolbar-group-label": "Παραπομπή",
+ "cite-ve-othergroup-item": "$1 παραπομπή",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Παραπομπές"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/eml.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/eml.json
new file mode 100644
index 00000000..06f81a54
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/eml.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gloria sah",
+ "Lévi"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Lìber",
+ "visualeditor-cite-tool-name-journal": "Giurnêl",
+ "visualeditor-cite-tool-name-news": "Nuvitê",
+ "visualeditor-cite-tool-name-web": "Sit web",
+ "cite-ve-dialog-reference-options-group-label": "Drōva cól gróp ché",
+ "cite-ve-dialog-reference-options-group-placeholder": "Referèinsi generèli",
+ "cite-ve-dialog-reference-options-name-label": "Tōrna a druvèr sté nòm",
+ "cite-ve-dialog-reference-options-section": "Sernidùri",
+ "cite-ve-dialog-reference-title": "Riferimèint",
+ "cite-ve-dialog-reference-useexisting-label": "Drōva un riferimèint ch' al gh'è bèle",
+ "cite-ve-dialog-referenceslist-title": "Elèinch riferimèint",
+ "cite-ve-dialogbutton-reference-tooltip": "Referèinsa",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Elèinch riferimèint",
+ "cite-ve-reference-input-placeholder": "Cùśa vlī-v referensièr?",
+ "cite-ve-referenceslist-isempty": "In cla pagina chè a n' gh' è brîśa di riferimèint cun al grùp \"$1\" da mèter dèint'r a cla lìsta chè.",
+ "cite-ve-referenceslist-isempty-default": "In cla pagina chè an gh' è brîśa di riferimèint da mèter dèint'r a cla lìsta chè.",
+ "cite-ve-referenceslist-missingref": "Cla nôta ché l'é fisêda in un mudèl o in 'n êter blôch fât e per adès la pōl èser mudufichêda sôl iint al môd surzéia.",
+ "cite-ve-toolbar-group-label": "Sitèr"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/en-gb.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/en-gb.json
new file mode 100644
index 00000000..74518965
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/en-gb.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jdforrester",
+ "Shirayuki",
+ "Felicilijonas",
+ "Captaindogfish",
+ "Chase me ladies, I'm the Cavalry"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/en.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/en.json
new file mode 100644
index 00000000..3e03cf78
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/en.json
@@ -0,0 +1,64 @@
+{
+ "@metadata": {
+ "authors": [
+ "Trevor Parscal",
+ "Ed Sanders",
+ "James D. Forrester",
+ "Raimond Spekking",
+ "Erik Moeller",
+ "Moriel Schottlender",
+ "Yuki Shira",
+ "Siebrand Mazeland",
+ "Rob Moen",
+ "Timo Tijhof",
+ "Roan Kattouw",
+ "Christian Williams",
+ "Amir E. Aharoni"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "Book",
+ "visualeditor-cite-tool-name-journal": "Journal",
+ "visualeditor-cite-tool-name-news": "News",
+ "visualeditor-cite-tool-name-web": "Website",
+ "cite-tool-definition.json": "null",
+ "cite-ve-changedesc-ref-group-both": "Reference group changed from \"$1\" to \"$2\"",
+ "cite-ve-changedesc-ref-group-from": "Reference group changed from \"$1\" to the general group",
+ "cite-ve-changedesc-ref-group-to": "Reference group changed from the general group to \"$1\"",
+ "cite-ve-changedesc-reflist-group-both": "References list group changed from \"$1\" to \"$2\"",
+ "cite-ve-changedesc-reflist-group-from": "References list group changed from \"$1\" to the general group",
+ "cite-ve-changedesc-reflist-group-to": "References list group changed from the general group to \"$1\"",
+ "cite-ve-changedesc-reflist-responsive-set": "References list changed to display in responsive columns",
+ "cite-ve-changedesc-reflist-responsive-unset": "References list changed to display in only one column",
+ "cite-ve-changedesc-reflist-item-id": "Reference index changed",
+ "cite-ve-dialog-reference-editing-reused": "This reference is used $1 {{PLURAL:$1|times}} on this page.",
+ "cite-ve-dialog-reference-options-group-label": "Use this group",
+ "cite-ve-dialog-reference-options-group-placeholder": "General references",
+ "cite-ve-dialog-reference-options-name-label": "Re-use by this name",
+ "cite-ve-dialog-reference-options-responsive-label": "Use responsive column layout",
+ "cite-ve-dialog-reference-options-section": "Options",
+ "cite-ve-dialog-reference-placeholder": "Write or paste your reference here, or insert a citation template.",
+ "cite-ve-dialog-reference-title": "Reference",
+ "cite-ve-dialog-reference-useexisting-full-label": "Re-use a citation that already exists on this page",
+ "cite-ve-dialog-reference-useexisting-label": "Use an existing reference",
+ "cite-ve-dialog-reference-useexisting-tool": "Re-use",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "List of general references",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "List of references for group \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "References list",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Improves your content by adding sources of information. You can cite from books, newspapers and websites.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citations",
+ "cite-ve-dialogbutton-reference-full-label": "Basic form",
+ "cite-ve-dialogbutton-reference-title": "Reference",
+ "cite-ve-dialogbutton-reference-tooltip": "Basic",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "References list",
+ "cite-ve-reference-input-placeholder": "Search within current citations",
+ "cite-ve-referenceslist-isempty": "There are no references with the group \"$1\" on this page to include in this list.",
+ "cite-ve-referenceslist-isempty-default": "There are no references on this page to include in this list.",
+ "cite-ve-referenceslist-missingref": "This reference is defined in a template or other generated block, and for now can only be edited in source mode.",
+ "cite-ve-referenceslist-missingref-in-list": "This reference is defined in a template or other generated block, and for now can only be previewed in source mode.",
+ "cite-ve-referenceslist-missingreflist": "This reference list is generated by a template, and for now can only be edited in source mode.",
+ "cite-ve-toolbar-group-label": "Cite",
+ "cite-ve-othergroup-item": "$1 reference",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "References",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Reference group name: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/eo.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/eo.json
new file mode 100644
index 00000000..1cbd219d
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/eo.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Happy5214",
+ "KuboF",
+ "Shirayuki",
+ "Yekrats",
+ "Kvardek du"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Libro",
+ "visualeditor-cite-tool-name-journal": "Ĵurnalo",
+ "visualeditor-cite-tool-name-news": "Novaĵoj",
+ "visualeditor-cite-tool-name-web": "Retejo",
+ "cite-ve-dialog-reference-editing-reused": "Ĉi-tion referenco uzas $1 {{PLURAL:$1|fojo|fojos}} en la paĝo.",
+ "cite-ve-dialog-reference-options-group-label": "Uzi tiun ĉi grupon",
+ "cite-ve-dialog-reference-options-group-placeholder": "Ĝeneralaj referencoj",
+ "cite-ve-dialog-reference-options-name-label": "Reuzi sub tiu ĉi nomo",
+ "cite-ve-dialog-reference-options-section": "Opcioj",
+ "cite-ve-dialog-reference-title": "Referenco",
+ "cite-ve-dialog-reference-useexisting-full-label": "Reuzi citon jam uzanta en la paĝo",
+ "cite-ve-dialog-reference-useexisting-label": "Uzi jam ekzistantan referencon",
+ "cite-ve-dialog-reference-useexisting-tool": "Reuzi",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Listo de ĝeneralaj referencoj",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Listo de referencoj por la grupo \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Listo de referencoj",
+ "cite-ve-dialogbutton-reference-full-label": "Baza formo",
+ "cite-ve-dialogbutton-reference-tooltip": "Baza",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Listo de referencoj",
+ "cite-ve-reference-input-placeholder": "Serĉi en nuntempaj refrencoj",
+ "cite-ve-referenceslist-isempty": "En tiu ĉi paĝo ne estas referencoj de grupo \"$1\" por aldoni al tiu ĉi listo.",
+ "cite-ve-referenceslist-isempty-default": "En tiu ĉi paĝo ne estas referencoj por aldoni al tiu ĉi listo."
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/es.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/es.json
new file mode 100644
index 00000000..6a91af7e
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/es.json
@@ -0,0 +1,75 @@
+{
+ "@metadata": {
+ "authors": [
+ "Armando-Martin",
+ "Aruizdr",
+ "Benfutbol10",
+ "DJ Nietzsche",
+ "Erdemaslancan",
+ "Fitoschido",
+ "Imre",
+ "Invadinado",
+ "Jdforrester",
+ "Jduranboger",
+ "PoLuX124",
+ "Ralgis",
+ "Thehelpfulone",
+ "Ciencia Al Poder",
+ "Carlitosag",
+ "Epicfaace",
+ "Ihojose",
+ "Csbotero",
+ "Gloria sah",
+ "Wifidel",
+ "McDutchie",
+ "Macofe",
+ "Themasterriot",
+ "Vikytinta",
+ "Ncontinanza",
+ "Dgstranz",
+ "Javiersanp"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "nulo",
+ "visualeditor-cite-tool-name-book": "Libro",
+ "visualeditor-cite-tool-name-journal": "Diario",
+ "visualeditor-cite-tool-name-news": "Noticias",
+ "visualeditor-cite-tool-name-web": "Sitio web",
+ "cite-tool-definition.json": "nulo",
+ "cite-ve-changedesc-ref-group-both": "El grupo de referencias cambió de «$1» a «$2»",
+ "cite-ve-changedesc-ref-group-from": "El grupo de referencias cambió de «$1» al grupo general",
+ "cite-ve-changedesc-ref-group-to": "El grupo de referencias cambió del grupo general a «$1»",
+ "cite-ve-changedesc-reflist-group-both": "El grupo de lista de referencias cambió de «$1» a «$2»",
+ "cite-ve-changedesc-reflist-group-from": "El grupo de lista de referencias cambió de «$1» al grupo general",
+ "cite-ve-changedesc-reflist-group-to": "El grupo de listas de referencias cambió del grupo general a «$1»",
+ "cite-ve-dialog-reference-editing-reused": "Esta referencia se utiliza $1 {{PLURAL:$1|vez|veces}} en esta página.",
+ "cite-ve-dialog-reference-options-group-label": "Usar este grupo",
+ "cite-ve-dialog-reference-options-group-placeholder": "Referencias generales",
+ "cite-ve-dialog-reference-options-name-label": "Reutilizar con este nombre",
+ "cite-ve-dialog-reference-options-responsive-label": "Utilizar disposición de columnas adaptable",
+ "cite-ve-dialog-reference-options-section": "Opciones",
+ "cite-ve-dialog-reference-placeholder": "Escribe o pega la referencia aquí, o bien, inserta una plantilla de cita.",
+ "cite-ve-dialog-reference-title": "Referencia",
+ "cite-ve-dialog-reference-useexisting-full-label": "Reutilizar una cita que ya existe en esta página",
+ "cite-ve-dialog-reference-useexisting-label": "Utilizar una referencia existente",
+ "cite-ve-dialog-reference-useexisting-tool": "Reusar",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Lista de referencias generales",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Lista de referencias del grupo «$1»",
+ "cite-ve-dialog-referenceslist-title": "Lista de referencias",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Mejora tu contenido mediante la adición de fuentes de información. Se puede citar de libros, periódicos y sitios web.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citas",
+ "cite-ve-dialogbutton-reference-full-label": "Forma básica",
+ "cite-ve-dialogbutton-reference-title": "Referencia",
+ "cite-ve-dialogbutton-reference-tooltip": "Básica",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lista de referencias",
+ "cite-ve-reference-input-placeholder": "Buscar en las citas actuales",
+ "cite-ve-referenceslist-isempty": "No hay referencias con el grupo «$1» en esta página para incluir en la lista.",
+ "cite-ve-referenceslist-isempty-default": "No hay referencias en esta página para incluir en esta lista.",
+ "cite-ve-referenceslist-missingref": "Esta referencia está definida en una plantilla u otro tipo de bloque generado, y por ahora sólo puede editarse en el editor de fuente.",
+ "cite-ve-referenceslist-missingref-in-list": "Esta referencia está definida en una plantilla u otro bloque generado y, por ahora, solo puede previsualizarse en modo código.",
+ "cite-ve-referenceslist-missingreflist": "Esta lista de referencias la generó una plantilla; por ahora solo puede modificarse en el modo de código fuente.",
+ "cite-ve-toolbar-group-label": "Citar",
+ "cite-ve-othergroup-item": "referencia $1",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Referencias",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Nombre de grupo de referencias: «$1»"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/et.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/et.json
new file mode 100644
index 00000000..b6a4ddbd
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/et.json
@@ -0,0 +1,54 @@
+{
+ "@metadata": {
+ "authors": [
+ "Avjoska",
+ "Pikne",
+ "Boxmein",
+ "Amire80",
+ "Roland",
+ "Suwa"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Raamat",
+ "visualeditor-cite-tool-name-journal": "Ajakiri",
+ "visualeditor-cite-tool-name-news": "Uudised",
+ "visualeditor-cite-tool-name-web": "Võrgukoht",
+ "cite-ve-changedesc-ref-group-both": "Vahetatud viiterühm \"$1\" rühma \"$2\" vastu",
+ "cite-ve-changedesc-ref-group-from": "Vahetatud viiterühm \"$1\" üldviidete rühma vastu",
+ "cite-ve-changedesc-ref-group-to": "Vahetatud üldviidete viiterühm rühma \"$1\" vastu",
+ "cite-ve-changedesc-reflist-group-both": "Vahetatud viiteloendi rühm \"$1\" rühma \"$2\" vastu",
+ "cite-ve-changedesc-reflist-group-from": "Vahetatud viiteloendi rühm \"$1\" üldviidete rühma vastu",
+ "cite-ve-changedesc-reflist-group-to": "Vahetatud viiteloendi üldviidete rühm rühma \"$1\" vastu",
+ "cite-ve-changedesc-reflist-responsive-set": "Vahetatud viiteloendi kuva isereguleeruvate veergude vastu",
+ "cite-ve-changedesc-reflist-responsive-unset": "Vahetatud viiteloendi kuva ainult ühe veeru vastu",
+ "cite-ve-changedesc-reflist-item-id": "Vahetatud viite indeks",
+ "cite-ve-dialog-reference-editing-reused": "Seda viidet on sellel leheküljel kasutatud {{PLURAL:$1|ühel korral|$1 korda}}.",
+ "cite-ve-dialog-reference-options-group-label": "Viiterühm",
+ "cite-ve-dialog-reference-options-group-placeholder": "Üldviited",
+ "cite-ve-dialog-reference-options-name-label": "Korduvkasutusnimi",
+ "cite-ve-dialog-reference-options-responsive-label": "Kasuta isereguleeruvat veergude paigutust",
+ "cite-ve-dialog-reference-options-section": "Suvandid",
+ "cite-ve-dialog-reference-placeholder": "Kirjuta või kleebi siia viide või lisa viitemall.",
+ "cite-ve-dialog-reference-title": "Viide",
+ "cite-ve-dialog-reference-useexisting-full-label": "Kasuta uuesti viidet, mis on sellel leheküljel juba olemas",
+ "cite-ve-dialog-reference-useexisting-label": "Kasuta olemasolevat viidet",
+ "cite-ve-dialog-reference-useexisting-tool": "Kasuta uuesti",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Üldviidete loend",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Viiterühma \"$1\" liikmete loend",
+ "cite-ve-dialog-referenceslist-title": "Viiteloend",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Täienda materjali allikate lisamisega. Saad viidata raamatutele, ajalehtedele ja võrgukohtadele.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Viited",
+ "cite-ve-dialogbutton-reference-full-label": "Lihtviide",
+ "cite-ve-dialogbutton-reference-title": "Viide",
+ "cite-ve-dialogbutton-reference-tooltip": "Lihtviide",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Viiteloend",
+ "cite-ve-reference-input-placeholder": "Otsi kasutusel olevate viidete hulgast",
+ "cite-ve-referenceslist-isempty": "Rühma \"$1\" viited, mida selles loendis näidata, puuduvad sellel leheküljel.",
+ "cite-ve-referenceslist-isempty-default": "Viited, mida selles loendis näidata, puuduvad sellel leheküljel.",
+ "cite-ve-referenceslist-missingref": "Selle viite kirjeldus on mallis või muul moel genereeritud plokis ning praegu saab seda redigeerida vaid lähteteksti režiimis.",
+ "cite-ve-referenceslist-missingreflist": "Selle viiteloendi tekitab mall ja praegu saab seda redigeerida ainult lähteteksti režiimis.",
+ "cite-ve-toolbar-group-label": "Viide",
+ "cite-ve-othergroup-item": "Viide: {{lc:$1}}",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Viited",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Viiterühma nimi: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/eu.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/eu.json
new file mode 100644
index 00000000..dcb5aa57
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/eu.json
@@ -0,0 +1,52 @@
+{
+ "@metadata": {
+ "authors": [
+ "An13sa",
+ "Unai Fdz. de Betoño",
+ "Xabier Armendaritz",
+ "Subi",
+ "Sator",
+ "Macofe",
+ "Mikel Ibaiba",
+ "Asierog"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "nulu",
+ "visualeditor-cite-tool-name-book": "Liburua",
+ "visualeditor-cite-tool-name-journal": "Aldizkaria",
+ "visualeditor-cite-tool-name-news": "Albisteak",
+ "visualeditor-cite-tool-name-web": "Webgunea",
+ "cite-tool-definition.json": "nulu",
+ "cite-ve-changedesc-ref-group-both": "Erreferentzia taldea aldatu dute \"$1\" izatetik \"$2\" izatera",
+ "cite-ve-changedesc-ref-group-from": "Erreferentzia taldea aldatu dute \"$1\" izatetik talde orokorrera",
+ "cite-ve-changedesc-ref-group-to": "Erreferentzia taldea aldatu dute talde orokorretik \"$1\" izatera",
+ "cite-ve-changedesc-reflist-group-both": "Erreferentzia zerrendaren taldea aldatu dute \"$1\" izatetik \"$2\" izatera",
+ "cite-ve-changedesc-reflist-group-from": "Erreferentzia zerrendaren taldea aldatu dute \"$1\" izatetik talde orokorrera",
+ "cite-ve-changedesc-reflist-group-to": "Erreferentzia zerrendaren taldea aldatu dute talde orokorretik \"$1\" izatera",
+ "cite-ve-dialog-reference-editing-reused": "Erreferentzia hau $1{{PLURAL:$1|aldiz}} agertzen da orri honetan",
+ "cite-ve-dialog-reference-options-group-label": "Talde hau erabili",
+ "cite-ve-dialog-reference-options-group-placeholder": "Erreferentzia orokorrak",
+ "cite-ve-dialog-reference-options-name-label": "Berrerabili izen honekin",
+ "cite-ve-dialog-reference-options-section": "Aukerak",
+ "cite-ve-dialog-reference-title": "Erreferentzia",
+ "cite-ve-dialog-reference-useexisting-full-label": "Berrerabili dagoeneko orri honetan existitzen den erreferentzia bat",
+ "cite-ve-dialog-reference-useexisting-label": "Erabili lehendik dagoen erreferentzia bat",
+ "cite-ve-dialog-reference-useexisting-tool": "Berrerabili",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Erreferentzia orokorren zerrenda",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Erreferentzia zerrenda \"$1\" talderako",
+ "cite-ve-dialog-referenceslist-title": "Erreferentzia-zerrenda",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Hobe zure edukia informazioa iturriak gehituz. Liburuetatik, egunkarietatik eta webguneetatik aipatu ditzakezu.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Erreferentziak",
+ "cite-ve-dialogbutton-reference-full-label": "Oinarrizko forma",
+ "cite-ve-dialogbutton-reference-title": "Erreferentzia",
+ "cite-ve-dialogbutton-reference-tooltip": "Oinarrizkoa",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Erreferentzia-zerrenda",
+ "cite-ve-reference-input-placeholder": "Bilatu oraingo aipuen artean",
+ "cite-ve-referenceslist-isempty": "Ez dago «$1» taldearekiko erreferentziarik orri honetan.",
+ "cite-ve-referenceslist-isempty-default": "Orri honetan ez dago zerrendan sartzeko erreferentziarik.",
+ "cite-ve-referenceslist-missingref": "Erreferentzia hau txantiloi batean edo sortutako beste bloke mota batean dago zehaztuta, eta oraingoz iturburu kodeko moduan baizik ezin da editatu.",
+ "cite-ve-toolbar-group-label": "Aipatu",
+ "cite-ve-othergroup-item": "$1 erreferentzia",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Erreferentziak",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Taldearen erreferentzia izena: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/fa.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/fa.json
new file mode 100644
index 00000000..bf8e51af
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/fa.json
@@ -0,0 +1,72 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dalba",
+ "Ebraminio",
+ "Jdforrester",
+ "Ladsgroup",
+ "Mjbmr",
+ "Nojan Madinehi",
+ "Omidh",
+ "Reza1615",
+ "Taha",
+ "درفش کاویانی",
+ "Mcuteangel",
+ "Fatemi127",
+ "Armin1392",
+ "Calak",
+ "Alirezaaa",
+ "Movyn",
+ "Leyth",
+ "MRG90",
+ "الناز",
+ "فلورانس",
+ "Huji"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "تهی",
+ "visualeditor-cite-tool-name-book": "کتاب",
+ "visualeditor-cite-tool-name-journal": "مجله",
+ "visualeditor-cite-tool-name-news": "اخبار",
+ "visualeditor-cite-tool-name-web": "وب‌گاه",
+ "cite-tool-definition.json": "تهی",
+ "cite-ve-changedesc-ref-group-both": "گروه منبع از «$1» به «$2» تغییر یافت",
+ "cite-ve-changedesc-ref-group-from": "گروه منبع از «$1» به گروه عمومی تغییر یافت",
+ "cite-ve-changedesc-ref-group-to": "گروه منبع از گروه عمومی به «$1» تغییر یافت",
+ "cite-ve-changedesc-reflist-group-both": "فهرست منبع یادکرد از «$1» به «$2» تغییر یافت",
+ "cite-ve-changedesc-reflist-group-from": "فهرست گروه منبع از «$1» به گروه عمومی تغییر یافت",
+ "cite-ve-changedesc-reflist-group-to": "فهرست گروه منبع از گروه عمومی به «$1» تغییر یافت",
+ "cite-ve-changedesc-reflist-responsive-set": "فهرست منابع به حالت ستون‌های تعاملی تغییر یافت",
+ "cite-ve-changedesc-reflist-responsive-unset": "فهرست منابع به یک ستون تغییر یافت",
+ "cite-ve-changedesc-reflist-item-id": "نمایه منابع تغییریافت",
+ "cite-ve-dialog-reference-editing-reused": "این منبع $1 {{PLURAL:$1|بار}} در این صفحه استفاده شده‌است.",
+ "cite-ve-dialog-reference-options-group-label": "استفاده از این گروه",
+ "cite-ve-dialog-reference-options-group-placeholder": "منابع عمومی",
+ "cite-ve-dialog-reference-options-name-label": "استفاده دوباره با این نام",
+ "cite-ve-dialog-reference-options-responsive-label": "از صفحه‌بندی ستون واکنشی استفاده کنید",
+ "cite-ve-dialog-reference-options-section": "گزینه‌ها",
+ "cite-ve-dialog-reference-placeholder": "منبع‌تان را اینجا بچسبانید یا بنویسید، یا از الگوی یادکرد استفاده کنید.",
+ "cite-ve-dialog-reference-title": "منبع",
+ "cite-ve-dialog-reference-useexisting-full-label": "استفاده دوباره یک یادکرد موجود در این صفحه",
+ "cite-ve-dialog-reference-useexisting-label": "استفاده از یک منبع موجود",
+ "cite-ve-dialog-reference-useexisting-tool": "استفادهٔ مجدد",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "فهرست منابع عمومی",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "فهرست منابع برای گروه $1",
+ "cite-ve-dialog-referenceslist-title": "فهرست منابع",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "محتویات‌تان را با افزودن اطلاعاتِ منابع استفاده‌شده، بهبود ببخشید. می‌توانید از کتاب‌ها، مجله‌ها و وب‌گاه‌ها استفاده کنید.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "یادکردها",
+ "cite-ve-dialogbutton-reference-full-label": "فرم ابتدائی",
+ "cite-ve-dialogbutton-reference-title": "منبع",
+ "cite-ve-dialogbutton-reference-tooltip": "مقدماتی",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "فهرست منابع",
+ "cite-ve-reference-input-placeholder": "جستجو داخل یادکردهای کنونی",
+ "cite-ve-referenceslist-isempty": "منبعی با گروه «$1» در این صفحه برای شامل‌کردن در این فهرست وجود ندارد.",
+ "cite-ve-referenceslist-isempty-default": "منبعی در این صفحه برای شامل‌کردن در این فهرست وجود ندارد.",
+ "cite-ve-referenceslist-missingref": "این منبع درون یک الگو یا قطعهٔ تولیدی دیگر تعریف شده است و هم‌اکنون تنها می‌توان در حالت متنی آن را ویرایش کرد",
+ "cite-ve-referenceslist-missingref-in-list": "منبع تعریف شده درون الگو یا سایر بلوک‌های شبیه‌سازی شده در حال حاضر فقط به صورت حالت متنی قابل مشاهده هست.",
+ "cite-ve-referenceslist-missingreflist": "این فهرست منابع به کمک یک الگو ایجاد شده‌است که فقط امکان ویرایش آن در حالت ویرایش متنی وجود دارد.",
+ "cite-ve-toolbar-group-label": "یادکرد",
+ "cite-ve-othergroup-item": "$1 منبع",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "منابع",
+ "visualeditor-internal-list-diff-group-name-mwreference": "نام گروه منبع: «$1»"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/fi.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/fi.json
new file mode 100644
index 00000000..a3a584f1
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/fi.json
@@ -0,0 +1,56 @@
+{
+ "@metadata": {
+ "authors": [
+ "Beluga",
+ "Crt",
+ "Harriv",
+ "Linnea",
+ "Nedergard",
+ "Nike",
+ "Olli",
+ "Pxos",
+ "Samoasambia",
+ "Silvonen",
+ "Skalman",
+ "Stryn",
+ "VezonThunder",
+ "Elseweyr",
+ "McSalama",
+ "Alluk.",
+ "Macofe",
+ "Pitke",
+ "Pyscowicz"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "Kirja",
+ "visualeditor-cite-tool-name-journal": "Lehtiartikkeli",
+ "visualeditor-cite-tool-name-news": "Uutinen",
+ "visualeditor-cite-tool-name-web": "Verkkosivusto",
+ "cite-tool-definition.json": "null",
+ "cite-ve-dialog-reference-editing-reused": "Tätä lähdettä käytetään $1 {{PLURAL:$1|kertaa}} tällä sivulla.",
+ "cite-ve-dialog-reference-options-group-label": "Käytä tätä ryhmää",
+ "cite-ve-dialog-reference-options-group-placeholder": "Yleiset lähteet",
+ "cite-ve-dialog-reference-options-name-label": "Käytä uudelleen tällä nimellä",
+ "cite-ve-dialog-reference-options-section": "Valinnat",
+ "cite-ve-dialog-reference-title": "Lähde",
+ "cite-ve-dialog-reference-useexisting-full-label": "Käytä uudelleen jo tällä sivulla olevaa viitettä",
+ "cite-ve-dialog-reference-useexisting-label": "Käytä jo löytyvää lähdettä",
+ "cite-ve-dialog-reference-useexisting-tool": "Käytä uudelleen",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Luettelo yleisistä lähteistä",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Luettelo ryhmän \"$1\" viitteistä",
+ "cite-ve-dialog-referenceslist-title": "Lähdeluettelo",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Parantaa sisältöäsi lisäämällä tietolähteitä. Voit viitata kirjoista, sanomalehdistä ja verkkosivustoilta.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Viittaukset",
+ "cite-ve-dialogbutton-reference-full-label": "Perusmuoto",
+ "cite-ve-dialogbutton-reference-title": "Lähde",
+ "cite-ve-dialogbutton-reference-tooltip": "Normaali",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lähdeluettelo",
+ "cite-ve-reference-input-placeholder": "Etsi nykyisistä viitteistä",
+ "cite-ve-referenceslist-isempty": "Tällä sivulla ei ole lähteitä ryhmässä \"$1\", joita sisällyttää listassa.",
+ "cite-ve-referenceslist-isempty-default": "Tällä sivulla ei ole lähteitä, joita sisällyttää listassa.",
+ "cite-ve-referenceslist-missingref": "Tämä lähde on määritelty mallineessa tai automaattisesti luotu ja sitä voi muokata vain wikitekstitilassa.",
+ "cite-ve-toolbar-group-label": "Viite",
+ "cite-ve-othergroup-item": "$1 viite",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Lähteet"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/fo.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/fo.json
new file mode 100644
index 00000000..73bf64e0
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/fo.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "EileenSanda"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Bók",
+ "visualeditor-cite-tool-name-journal": "Tíðarrit",
+ "visualeditor-cite-tool-name-news": "Tíðindi",
+ "visualeditor-cite-tool-name-web": "Heimasíða",
+ "cite-ve-dialog-reference-options-group-label": "Brúka henda bólkin",
+ "cite-ve-dialog-reference-options-name-label": "Endurnýt við hesum navninum",
+ "cite-ve-dialog-reference-options-section": "Møguleikar",
+ "cite-ve-dialog-reference-title": "Kelda",
+ "cite-ve-dialog-reference-useexisting-label": "Brúka eina av verandi keldum",
+ "cite-ve-dialog-referenceslist-title": "Keldulisti",
+ "cite-ve-dialogbutton-reference-tooltip": "Einføld",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Keldulisti",
+ "cite-ve-reference-input-placeholder": "Hvat ynskir tú at vísa til?",
+ "cite-ve-referenceslist-isempty": "Tað eru ongar kelduávísingar við bólkinum \"$1\" á hesi síðu, sum kunnu takast við í henda listan.",
+ "cite-ve-referenceslist-isempty-default": "Tað eru ongar keldur á hesi síðu sum kunnu takast við í henda listan.",
+ "cite-ve-referenceslist-missingref": "Henda keldan er skrásett í einari fyrimynd ella øðrum upprættaðum blokki, og kann í løtuni bert rættast í keldustøðu (source mode)."
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/fr.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/fr.json
new file mode 100644
index 00000000..42556f99
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/fr.json
@@ -0,0 +1,97 @@
+{
+ "@metadata": {
+ "authors": [
+ "Automatik",
+ "Benoit Rochon",
+ "Boniface",
+ "Brunoperel",
+ "Crochet.david",
+ "DavidL",
+ "Dereckson",
+ "Gomoko",
+ "Guillom",
+ "Hello71",
+ "Jean-Frédéric",
+ "Linedwell",
+ "Ltrlg",
+ "Metroitendo",
+ "NemesisIII",
+ "Nicolas NALLET",
+ "Nobody",
+ "Npettiaux",
+ "Rastus Vernon",
+ "Seb35",
+ "Sherbrooke",
+ "Tpt",
+ "Trizek",
+ "Urhixidur",
+ "Verdy p",
+ "Wyz",
+ "Dr Brains",
+ "Drongou",
+ "Elitre",
+ "John Trololo",
+ "Maxim21",
+ "Orlodrim",
+ "Scoopfinder",
+ "Nnemo",
+ "McDutchie",
+ "Jdforrester",
+ "Amire80",
+ "Weft",
+ "Zetud",
+ "Zebulon84",
+ "Mattho69",
+ "Wladek92",
+ "Harmonia Amanda",
+ "Macofe",
+ "Pols12",
+ "Thibaut120094"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "nul",
+ "visualeditor-cite-tool-name-book": "Livre",
+ "visualeditor-cite-tool-name-journal": "Journal",
+ "visualeditor-cite-tool-name-news": "Actualités",
+ "visualeditor-cite-tool-name-web": "Site web",
+ "cite-tool-definition.json": "nul",
+ "cite-ve-changedesc-ref-group-both": "Groupe de référence modifié de « $1 » en « $2 »",
+ "cite-ve-changedesc-ref-group-from": "Groupe de référence modifié de « $1 » vers le groupe général",
+ "cite-ve-changedesc-ref-group-to": "Groupe de référence modifié du groupe général vers « $1 »",
+ "cite-ve-changedesc-reflist-group-both": "Groupe de liste de référence modifié de « $1 » en « $2 »",
+ "cite-ve-changedesc-reflist-group-from": "Groupe de liste de référence modifié de « $1 » vers le groupe général",
+ "cite-ve-changedesc-reflist-group-to": "Groupe de liste de référence modifié du groupe général vers « $1 »",
+ "cite-ve-changedesc-reflist-responsive-set": "Liste des références modifiées pour affichage dans des colonnes réactives",
+ "cite-ve-changedesc-reflist-responsive-unset": "Liste des références modifiées à afficher dans une seule colonne",
+ "cite-ve-changedesc-reflist-item-id": "Le numéro de la source a changé",
+ "cite-ve-dialog-reference-editing-reused": "Cette référence est utilisée $1 {{PLURAL:$1|fois}} sur cette page.",
+ "cite-ve-dialog-reference-options-group-label": "Utiliser ce groupe",
+ "cite-ve-dialog-reference-options-group-placeholder": "Références générales",
+ "cite-ve-dialog-reference-options-name-label": "Réutiliser avec ce nom",
+ "cite-ve-dialog-reference-options-responsive-label": "Utiliser une disposition réactive en colonnes",
+ "cite-ve-dialog-reference-options-section": "Options",
+ "cite-ve-dialog-reference-placeholder": "Ecrire ou coller ici votre référence, ou insérer un modèle de citation.",
+ "cite-ve-dialog-reference-title": "Référence",
+ "cite-ve-dialog-reference-useexisting-full-label": "Réutiliser une référence qui existe déjà sur cette page",
+ "cite-ve-dialog-reference-useexisting-label": "Utiliser une référence existante",
+ "cite-ve-dialog-reference-useexisting-tool": "Réutiliser",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Liste de références générales",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Liste de références pour le groupe « $1 »",
+ "cite-ve-dialog-referenceslist-title": "Liste des références",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Améliore votre contenu en ajoutant des sources d’information. Vous pouvez ajouter comme références des livres, des journaux et des sites web.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Références",
+ "cite-ve-dialogbutton-reference-full-label": "Autre référence",
+ "cite-ve-dialogbutton-reference-title": "Références",
+ "cite-ve-dialogbutton-reference-tooltip": "Référence",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Liste des références",
+ "cite-ve-reference-input-placeholder": "Chercher dans les références actuelles",
+ "cite-ve-referenceslist-isempty": "Il n’y a aucune référence avec le groupe « $1 » sur cette page à inclure dans cette liste.",
+ "cite-ve-referenceslist-isempty-default": "Il n’y a aucune référence sur cette page à inclure dans cette liste.",
+ "cite-ve-referenceslist-missingref": "Cette référence est définie dans un modèle ou un autre bloc généré et ne peut pour le moment être modifiée qu’avec l’éditeur de wikicode.",
+ "cite-ve-referenceslist-missingref-in-list": "Cette référence est définie dans un modèle ou un autre bloc généré, et pour le moment, il ne peut être affiché en aperçu qu’en mode source.",
+ "cite-ve-referenceslist-missingreflist": "Cette liste de référence est générée par un modèle, et actuellement, elle ne peut être modifiée qu’en mode source.",
+ "cite-ve-toolbar-group-label": "Source",
+ "cite-ve-othergroup-item": "référence $1",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Références",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Nom du groupe de référence : « $1 »"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/frc.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/frc.json
new file mode 100644
index 00000000..74a91949
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/frc.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hangmanwa7id"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/frp.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/frp.json
new file mode 100644
index 00000000..88fc6ac6
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/frp.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "ChrisPtDe",
+ "Amire80"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/frr.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/frr.json
new file mode 100644
index 00000000..fa7ca10f
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/frr.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "ChrisPtDe",
+ "Murma174"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Buk",
+ "visualeditor-cite-tool-name-journal": "Tidjskraft",
+ "visualeditor-cite-tool-name-news": "Bleed",
+ "visualeditor-cite-tool-name-web": "Wääbsteed",
+ "cite-ve-dialog-reference-options-group-label": "Detdiar skööl brük",
+ "cite-ve-dialog-reference-options-group-placeholder": "Algemian futnuuten",
+ "cite-ve-dialog-reference-options-name-label": "Didiar nööm widjer brük",
+ "cite-ve-dialog-reference-options-section": "Iinstelangen",
+ "cite-ve-dialog-reference-title": "Luke uk diar",
+ "cite-ve-dialog-reference-useexisting-label": "Referens noch ans brük",
+ "cite-ve-dialog-referenceslist-title": "Futnuuten",
+ "cite-ve-dialogbutton-reference-tooltip": "Luke uk diar",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Futnuuten",
+ "cite-ve-reference-input-placeholder": "Wat wel dü referensiare?",
+ "cite-ve-referenceslist-isempty": "Diar san nian futnuuten mä det skööl \"$1\" üüb detdiar sidj tu uunwisin uun detdiar list.",
+ "cite-ve-referenceslist-isempty-default": "Üüb detdiar sidj san nian futnuuten tu uunwisin uun detdiar list.",
+ "cite-ve-referenceslist-missingref": "Detdiar referens as auer en föörlaag of en öödern blook fäästlaanj an koon tu tidj bluas uun a kweltekst feranert wurd."
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/fur.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/fur.json
new file mode 100644
index 00000000..2b345386
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/fur.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Klenje",
+ "Tocaibon"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Libri",
+ "visualeditor-cite-tool-name-journal": "Publicazion",
+ "visualeditor-cite-tool-name-news": "Gnovis",
+ "visualeditor-cite-tool-name-web": "Sît web",
+ "cite-ve-dialog-reference-options-group-label": "Dopre chest grup",
+ "cite-ve-dialog-reference-options-group-placeholder": "Riferiments gjenerâi",
+ "cite-ve-dialog-reference-options-name-label": "Torne a doprâ chest non",
+ "cite-ve-dialog-reference-options-section": "Opzions",
+ "cite-ve-dialog-reference-title": "Riferiment",
+ "cite-ve-dialog-reference-useexisting-label": "Dopre un riferiment che al esist",
+ "cite-ve-dialog-reference-useexisting-tool": "Torne a doprâ",
+ "cite-ve-dialog-referenceslist-title": "Liste dai riferiments",
+ "cite-ve-dialogbutton-reference-tooltip": "Base",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Liste dai riferiments",
+ "cite-ve-reference-input-placeholder": "A ce vuelistu fâ riferiment?",
+ "cite-ve-toolbar-group-label": "Citazion"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/fy.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/fy.json
new file mode 100644
index 00000000..ae732f57
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/fy.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kening Aldgilles",
+ "Robin0van0der0vliet"
+ ]
+ },
+ "cite-ve-dialog-reference-options-section": "Opsjes",
+ "cite-ve-dialog-referenceslist-title": "List mei referinsjes",
+ "cite-ve-dialogbutton-reference-tooltip": "Basis",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "List mei referinsjes"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ga.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ga.json
new file mode 100644
index 00000000..d26762db
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ga.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Alison",
+ "Kscanne",
+ "Nmacu"
+ ]
+ },
+ "cite-ve-dialog-reference-options-section": "Roghanna",
+ "cite-ve-dialog-referenceslist-title": "Liosta tagairtí",
+ "cite-ve-toolbar-group-label": "Luaigh"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/gd.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/gd.json
new file mode 100644
index 00000000..6b652dc2
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/gd.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Akerbeltz",
+ "GunChleoc"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Leabhar",
+ "visualeditor-cite-tool-name-journal": "Leabhar-latha",
+ "visualeditor-cite-tool-name-news": "Naidheachdan",
+ "visualeditor-cite-tool-name-web": "Làrach-lìn",
+ "cite-ve-dialog-reference-options-group-label": "Cleachd am buidheann seo",
+ "cite-ve-dialog-reference-options-group-placeholder": "Iomraidhean coitcheann",
+ "cite-ve-dialog-reference-options-name-label": "Cleachd a-rithist leis an ainm seo",
+ "cite-ve-dialog-reference-options-section": "Roghainnean",
+ "cite-ve-dialog-reference-title": "Iomradh",
+ "cite-ve-dialog-reference-useexisting-label": "Cleachd iomradh a tha ann",
+ "cite-ve-dialog-referenceslist-title": "Liosta nan iomraidhean",
+ "cite-ve-dialogbutton-reference-tooltip": "Bunasach",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Liosta nan iomraidhean",
+ "cite-ve-toolbar-group-label": "Iomradh"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/gl.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/gl.json
new file mode 100644
index 00000000..b83fd600
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/gl.json
@@ -0,0 +1,58 @@
+{
+ "@metadata": {
+ "authors": [
+ "Alison",
+ "Kscanne",
+ "Toliño",
+ "McDutchie",
+ "Elisardojm",
+ "Breogan2008",
+ "Fisterraeomar",
+ "Agremon",
+ "Vivaelcelta",
+ "Banjo",
+ "Macofe"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "nulo",
+ "visualeditor-cite-tool-name-book": "Libro",
+ "visualeditor-cite-tool-name-journal": "Publicación periódica",
+ "visualeditor-cite-tool-name-news": "Novas",
+ "visualeditor-cite-tool-name-web": "Páxina web",
+ "cite-tool-definition.json": "nulo",
+ "cite-ve-changedesc-ref-group-both": "Grupo de referencia cambiado de \"$1\" a \"$2\"",
+ "cite-ve-changedesc-ref-group-from": "Grupo de referencia cambiado de \"$1\" ó grupo xeral",
+ "cite-ve-changedesc-ref-group-to": "Grupo de referencia cambiado do grupo xeral a \"$1\"",
+ "cite-ve-changedesc-reflist-group-both": "Grupo de lista de referencias cambiado de \"$1\" to \"$2\"",
+ "cite-ve-changedesc-reflist-group-from": "Grupo de lista de referencias cambiado de \"$1\" ó grupo xeral",
+ "cite-ve-changedesc-reflist-group-to": "Grupo de lista de referencias cambiado do grupo xeral a \"$1\"",
+ "cite-ve-changedesc-reflist-item-id": "Índice da referencia modificado",
+ "cite-ve-dialog-reference-editing-reused": "Esta referenza úsase $1 {{PLURAL:$1|vez|veces}} nesta páxina.",
+ "cite-ve-dialog-reference-options-group-label": "Utilizar este grupo",
+ "cite-ve-dialog-reference-options-group-placeholder": "Referencias xerais",
+ "cite-ve-dialog-reference-options-name-label": "Reutilizar por este nome",
+ "cite-ve-dialog-reference-options-responsive-label": "Utilizar disposición adaptable en columnas",
+ "cite-ve-dialog-reference-options-section": "Opcións",
+ "cite-ve-dialog-reference-placeholder": "Escribe ou pega a túa referencia aquí, ou insire un modelo de cita.",
+ "cite-ve-dialog-reference-title": "Referencia",
+ "cite-ve-dialog-reference-useexisting-full-label": "Reutilizar unha cita que xa existe nesta páxina",
+ "cite-ve-dialog-reference-useexisting-label": "Utilizar unha referencia existente",
+ "cite-ve-dialog-reference-useexisting-tool": "Reutilizar",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Lista de referencias xerais",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Lista de referencias para o grupo \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Lista de referencias",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Mellora o teu contido engadindo fontes de información. Pódense citar libros, periódicos e sitios web.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citas",
+ "cite-ve-dialogbutton-reference-full-label": "Forma básica",
+ "cite-ve-dialogbutton-reference-title": "Referencia",
+ "cite-ve-dialogbutton-reference-tooltip": "Básica",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lista de referencias",
+ "cite-ve-reference-input-placeholder": "Buscar dentro das referencias actuais",
+ "cite-ve-referenceslist-isempty": "Non hai referencias co grupo \"$1\" nesta páxina para incluílas nesta lista.",
+ "cite-ve-referenceslist-isempty-default": "Non hai referencias nesta páxina para incluílas nesta lista.",
+ "cite-ve-referenceslist-missingref": "Esta referencia está definida nun modelo ou noutro bloque xerado; polo de agora, só se pode editar no modo fonte.",
+ "cite-ve-toolbar-group-label": "Citar",
+ "cite-ve-othergroup-item": "referencia $1",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Referencias",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Grupo de referencias de nome : \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/glk.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/glk.json
new file mode 100644
index 00000000..e6827fc8
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/glk.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "V6rg",
+ "شیخ"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "کيتاب",
+ "visualeditor-cite-tool-name-news": "خبر",
+ "visualeditor-cite-tool-name-web": "وبجيگه",
+ "cite-ve-dialogbutton-reference-title": "سربس",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "سربسؤنˇ ليست",
+ "cite-ve-toolbar-group-label": "نقلˇ قؤل"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/gom-deva.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/gom-deva.json
new file mode 100644
index 00000000..d25e00cb
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/gom-deva.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Darshan kandolkar",
+ "Konknni mogi 24",
+ "The Discoverer",
+ "Vaishali Parab"
+ ]
+ },
+ "cite-ve-dialogbutton-reference-title": "संदर्भ"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/gom-latn.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/gom-latn.json
new file mode 100644
index 00000000..527d6ad2
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/gom-latn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "The Discoverer"
+ ]
+ },
+ "cite-ve-dialog-reference-title": "Sondorbh"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/gom.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/gom.json
new file mode 100644
index 00000000..6a13b057
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/gom.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "The Discoverer"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/gsw.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/gsw.json
new file mode 100644
index 00000000..9211cce2
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/gsw.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Als-Holder",
+ 80686,
+ "J. 'mach' wust"
+ ]
+ },
+ "cite-ve-dialog-reference-options-group-label": "Selli Gruppi bruche",
+ "cite-ve-dialog-reference-options-name-label": "Selle Name widerverwände",
+ "cite-ve-dialog-reference-options-section": "Optione",
+ "cite-ve-dialog-reference-title": "Fuessnote",
+ "cite-ve-dialog-reference-useexisting-label": "Fuessnote bruche, wo s scho git",
+ "cite-ve-dialog-referenceslist-title": "Lischte vo allene Fuessnote"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/gu.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/gu.json
new file mode 100644
index 00000000..3530a594
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/gu.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ashok modhvadia",
+ "KartikMistry",
+ "The Discoverer",
+ "Arbhatt",
+ "Dsvyas",
+ "NehalDaveND",
+ "Nisargjhaveri"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "પુસ્તક",
+ "visualeditor-cite-tool-name-journal": "પત્રિકા",
+ "visualeditor-cite-tool-name-news": "સમાચાર",
+ "visualeditor-cite-tool-name-web": "વેબસાઇટ",
+ "cite-ve-dialog-reference-options-group-label": "આ સમૂહ વાપરો",
+ "cite-ve-dialog-reference-options-group-placeholder": "સામાન્ય સંદર્ભો",
+ "cite-ve-dialog-reference-options-name-label": "આ નામ વડે ફરી વાપરો",
+ "cite-ve-dialog-reference-options-section": "વિકલ્પો",
+ "cite-ve-dialog-reference-title": "સંદર્ભ",
+ "cite-ve-dialog-reference-useexisting-label": "હાજર રહેલ સંદર્ભ વાપરો",
+ "cite-ve-dialog-reference-useexisting-tool": "ફરી ઉપયોગ",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "સામાન્ય સંદર્ભોની યાદી",
+ "cite-ve-dialog-referenceslist-title": "સંદર્ભ યાદી",
+ "cite-ve-dialogbutton-reference-full-label": "સામાન્ય ફોર્મ",
+ "cite-ve-dialogbutton-reference-title": "સંદર્ભ",
+ "cite-ve-dialogbutton-reference-tooltip": "પ્રાથમિક",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "સંદર્ભોની યાદી",
+ "cite-ve-reference-input-placeholder": "વર્તમાન સંદર્ભો સાથે શોધો",
+ "cite-ve-referenceslist-isempty": "આ યાદીમાં દાખલ કરવા માટે આ પાનાં પર સમૂહ \"$1\" નો કોઇ સંદર્ભ નથી.",
+ "cite-ve-referenceslist-isempty-default": "આ યાદીમાં ઉમેરવા માટે આ પાનાં પર કોઇ સંદર્ભ નથી.",
+ "cite-ve-referenceslist-missingref": "આ સંદર્ભ ટેમ્પલેટ અથવા બનેલ માળખાંમાં વ્યાખ્યાયિત થયેલ છે, અને અત્યારે તે માત્ર સ્રોત સ્થિતિમાં જ ફેરફાર કરી શકાય છે.",
+ "cite-ve-othergroup-item": "$1 સંદર્ભ",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "સંદર્ભો",
+ "visualeditor-internal-list-diff-group-name-mwreference": "સંદર્ભ સમૂહ નામ: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/he.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/he.json
new file mode 100644
index 00000000..42d4c4ba
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/he.json
@@ -0,0 +1,66 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amire80",
+ "ExampleTomer",
+ "Guycn2",
+ "Matanya",
+ "Mooeypoo",
+ "Orsa",
+ "Shimmin Beg",
+ "אור שפירא",
+ "חיים",
+ "ערן",
+ "פוילישער",
+ "קיפודנחש",
+ "תומר ט",
+ "Yona b",
+ "LaG roiL",
+ "דולב"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "ריק",
+ "visualeditor-cite-tool-name-book": "ספר",
+ "visualeditor-cite-tool-name-journal": "כתב־עת",
+ "visualeditor-cite-tool-name-news": "חדשות",
+ "visualeditor-cite-tool-name-web": "אתר אינטרנט",
+ "cite-tool-definition.json": "ריק",
+ "cite-ve-changedesc-ref-group-both": "קבוצת ההערות השתנתה מ{{GRAMMAR:תחילית|$1}} ל{{GRAMMAR:תחילית|$2}}",
+ "cite-ve-changedesc-ref-group-from": "קבוצת ההערות השתנתה מ{{GRAMMAR:תחילית|$1}} לקבוצה הכללית",
+ "cite-ve-changedesc-ref-group-to": "קבוצת הערות שוליים שונתה מכללית ל{{GRAMMAR:תחילית|$1}}",
+ "cite-ve-changedesc-reflist-group-both": "קבוצת רשימת הערות שוליים שונתה מ{{GRAMMAR:תחילית|$1}} ל{{GRAMMAR:תחילית|$2}}",
+ "cite-ve-changedesc-reflist-group-from": "קבוצת רשימת הערות שוליים שונתה מ{{GRAMMAR:תחילית|$1}} לכללית",
+ "cite-ve-changedesc-reflist-group-to": "קבוצת הערות שוליים שונתה מכללית ל{{GRAMMAR:תחילית|$1}}",
+ "cite-ve-changedesc-reflist-responsive-set": "רשימת הערות השוליים שונתה לתצוגה בעמודות מותאמות לגודל המסך",
+ "cite-ve-changedesc-reflist-responsive-unset": "רשימת הערות השוליים שונתה לתצוגה בעמודה אחת",
+ "cite-ve-changedesc-reflist-item-id": "מפתח הערת השוליים השתנה",
+ "cite-ve-dialog-reference-editing-reused": "הערת השוליים משמשת {{PLURAL:$1|פעם אחת|פעמיים|$1 פעמים}} בדף הזה.",
+ "cite-ve-dialog-reference-options-group-label": "להשתמש בקבוצה הזאת",
+ "cite-ve-dialog-reference-options-group-placeholder": "הערות שוליים כלליות",
+ "cite-ve-dialog-reference-options-name-label": "שם לשימוש חוזר",
+ "cite-ve-dialog-reference-options-responsive-label": "להשתמש בעיצוב עם התאמה אוטומטית",
+ "cite-ve-dialog-reference-options-section": "אפשרויות",
+ "cite-ve-dialog-reference-placeholder": "נא לרשום או להדביק את הערת השוליים שלך כאן, או להכניס תבנית הערת שוליים.",
+ "cite-ve-dialog-reference-title": "הערת שוליים",
+ "cite-ve-dialog-reference-useexisting-full-label": "שימוש חוזר בציטוט שכבר נמצא בדף הזה",
+ "cite-ve-dialog-reference-useexisting-label": "להשתמש בהערת שוליים קיימת",
+ "cite-ve-dialog-reference-useexisting-tool": "שימוש חוזר",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "רשימת הערות שוליים כלליות",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "רשימת הערות שוליים בקבוצה \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "רשימת הערות שוליים",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "משפר את התוכן באמצעות הוספת מקורות מידע. אפשר לצטט מספרים, עיתונים ואתרים.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "הערות שוליים",
+ "cite-ve-dialogbutton-reference-full-label": "טופס בסיסי",
+ "cite-ve-dialogbutton-reference-title": "הערת שוליים",
+ "cite-ve-dialogbutton-reference-tooltip": "פשוטה",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "רשימת הערות שוליים",
+ "cite-ve-reference-input-placeholder": "חיפוש בין הערות השוליים הקיימות",
+ "cite-ve-referenceslist-isempty": "לא קיימים מקורות עם קבוצה בשם \"$1\" בדף הזה שאפשר לכלול ברשימה הזאת.",
+ "cite-ve-referenceslist-isempty-default": "בדף הזה אין הערות שוליים שאפשר לכלול ברשימה הזאת.",
+ "cite-ve-referenceslist-missingref": "הערת השוליים הזאת מוגדרת בתבנית או מחוללת בדרך אחרת כלשהי, ואי־אפשר לערוך אותה עדיין באמצעות העורך החזותי.",
+ "cite-ve-referenceslist-missingreflist": "רשימת הערות השוליים הזאת מחוללת באמצעות תבנית, ולעת־עתה אפשר לערוך אותה רק במצב קוד מקור.",
+ "cite-ve-toolbar-group-label": "הערת שוליים",
+ "cite-ve-othergroup-item": "הערה $1",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "הערות שוליים",
+ "visualeditor-internal-list-diff-group-name-mwreference": "שם קבוצת הערות שוליים: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/hi.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/hi.json
new file mode 100644
index 00000000..45ace44f
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/hi.json
@@ -0,0 +1,50 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ansumang",
+ "Devayon",
+ "Rajesh",
+ "Siddhartha Ghai",
+ "Niharika29",
+ "Venky2834",
+ "Wikiuser13",
+ "Goelujjwal",
+ "Kunalgrover05",
+ "संजीव कुमार",
+ "Phoenix303",
+ "Ankita-ks",
+ "Sahilrathod",
+ "Hindustanilanguage",
+ "Sfic",
+ "Sachinkatiyar"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "पुस्तक",
+ "visualeditor-cite-tool-name-journal": "जर्नल",
+ "visualeditor-cite-tool-name-news": "समाचार",
+ "visualeditor-cite-tool-name-web": "वेबसाइट",
+ "cite-ve-dialog-reference-editing-reused": "इस उद्धरण का प्रयोग इस पृष्ठ पर $1 {{PLURAL:$1|बार}} किया गया है।",
+ "cite-ve-dialog-reference-options-group-label": "इस समूह का प्रयोग करें",
+ "cite-ve-dialog-reference-options-group-placeholder": "सामान्य सन्दर्भ",
+ "cite-ve-dialog-reference-options-name-label": "इस नाम से पुनः प्रयोग करें",
+ "cite-ve-dialog-reference-options-section": "विकल्प",
+ "cite-ve-dialog-reference-title": "संदर्भ",
+ "cite-ve-dialog-reference-useexisting-full-label": "पहले से इस पृष्ठ पर मौजूद उद्धरण का पुन: उपयोग करें",
+ "cite-ve-dialog-reference-useexisting-label": "मौजूदा सन्दर्भ का प्रयोग करें",
+ "cite-ve-dialog-reference-useexisting-tool": "पुन: उपयोग",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "सामान्य उद्धरणों की सूची",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "समूह \"$1\" के लिए उद्धरणों की सूची",
+ "cite-ve-dialog-referenceslist-title": "सन्दर्भ सूची",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "उद्धरण",
+ "cite-ve-dialogbutton-reference-full-label": "मूलभूत रूप",
+ "cite-ve-dialogbutton-reference-title": "सन्दर्भ",
+ "cite-ve-dialogbutton-reference-tooltip": "आधारभूत",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "सन्दर्भ सूची",
+ "cite-ve-reference-input-placeholder": "वर्तमान उद्धरणों में खोजें",
+ "cite-ve-referenceslist-isempty": "इस पृष्ठ पर \"$1\" सन्दर्भ समूह में कोई सन्दर्भ नहीं हैं जो इस सूची में जोड़े जा सकें।",
+ "cite-ve-referenceslist-isempty-default": "इस पृष्ठ पर कोई सन्दर्भ नहीं हैं जो इस सूची में जोड़े जा सकें।",
+ "cite-ve-referenceslist-missingref": "ये सन्दर्भ किसी साँचे या अन्य ब्लॉक का प्रयोग करता है, और इसलिए अभी केवल स्रोत सम्पादन में सम्पादित किया जा सकता है।",
+ "cite-ve-referenceslist-missingref-in-list": "ये सन्दर्भ किसी साँचे या अन्य ब्लॉक का प्रयोग करता है, और इसलिए अभी केवल स्रोत सम्पादन में सम्पादित किया जा सकता है।",
+ "cite-ve-toolbar-group-label": "उद्धृत करें",
+ "cite-ve-othergroup-item": "$1 सन्दर्भ"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/hil.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/hil.json
new file mode 100644
index 00000000..24ac0269
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/hil.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Redhotchili23"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/hr.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/hr.json
new file mode 100644
index 00000000..2a2f587f
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/hr.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "MaGa",
+ "Roberta F.",
+ "SpeedyGonsales",
+ "Zeljko.filipin",
+ "Milicevic01",
+ "Teoo3",
+ "Bugoslav",
+ "Acamicamacaraca"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Knjiga",
+ "visualeditor-cite-tool-name-journal": "Časopis",
+ "visualeditor-cite-tool-name-news": "Vijesti",
+ "visualeditor-cite-tool-name-web": "Web stranice",
+ "cite-ve-dialog-reference-editing-reused": "Ova je referencija rabljena $1 {{PLURAL:$1|put|puta}} na ovoj stranici.",
+ "cite-ve-dialog-reference-options-group-label": "Koristi ovu grupu",
+ "cite-ve-dialog-reference-options-group-placeholder": "Opće referencije",
+ "cite-ve-dialog-reference-options-name-label": "Ponovno koristi pod ovim imenom",
+ "cite-ve-dialog-reference-options-section": "Mogućnosti",
+ "cite-ve-dialog-reference-placeholder": "Ovdje napišite ili kopirajte referencu ili umetnite predložak za citiranje.",
+ "cite-ve-dialog-reference-title": "Izvori",
+ "cite-ve-dialog-reference-useexisting-full-label": "Ponovna uporaba citata koji već postoji na ovoj stranici",
+ "cite-ve-dialog-reference-useexisting-label": "Koristi postojeći izvor",
+ "cite-ve-dialog-reference-useexisting-tool": "Ponovno korištenje",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Popis općih izvora",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Popis izvora za grupu \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Popis izvora",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Poboljšavajte sadržaje dodavanjem izvora informacija. Citirajte knjige, novine i internetske stranice.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citati",
+ "cite-ve-dialogbutton-reference-full-label": "Osnovni oblik",
+ "cite-ve-dialogbutton-reference-title": "Referencije",
+ "cite-ve-dialogbutton-reference-tooltip": "Osnovno",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Popis izvora",
+ "cite-ve-reference-input-placeholder": "Koji izvor želite koristiti?",
+ "cite-ve-referenceslist-isempty": "Nema referenci u grupi \"$1\" na ovoj stranici koje bi mogle biti uključene u ovaj popis.",
+ "cite-ve-referenceslist-isempty-default": "Nema referenci na ovoj stranici koje bi mogle biti uključene u ovaj popis.",
+ "cite-ve-referenceslist-missingref": "Ova reference je definirana u predlošku ili drugom generiranom dijelu, i za sad može biti uređivana samo u prikazu za uređivanje izvornog koda.",
+ "cite-ve-toolbar-group-label": "Citiraj"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/hrx.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/hrx.json
new file mode 100644
index 00000000..9a7cbb46
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/hrx.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Midnight Gambler",
+ "Paul Beppler",
+ "Macofe"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/hsb.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/hsb.json
new file mode 100644
index 00000000..48db69a4
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/hsb.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "J budissin",
+ "Michawiki",
+ "Mikławš"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Kniha",
+ "visualeditor-cite-tool-name-journal": "Časopis",
+ "visualeditor-cite-tool-name-news": "Nowinki",
+ "visualeditor-cite-tool-name-web": "Websydło",
+ "cite-ve-dialog-reference-options-group-label": "Tutu skupinu wužiwać",
+ "cite-ve-dialog-reference-options-group-placeholder": "Powšitkowne referency",
+ "cite-ve-dialog-reference-options-name-label": "Tute mjeno dale wužiwać",
+ "cite-ve-dialog-reference-options-section": "Nastajenja",
+ "cite-ve-dialog-reference-title": "Referenca",
+ "cite-ve-dialog-reference-useexisting-label": "Eksistowacu referencu wužiwać",
+ "cite-ve-dialog-referenceslist-title": "Lisćina referencow",
+ "cite-ve-dialogbutton-reference-tooltip": "Jednory",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lisćina referencow",
+ "cite-ve-reference-input-placeholder": "Što chceš referencować?",
+ "cite-ve-referenceslist-isempty": "Referency ze skupinu \"$1\" za zapřijimanje do tuteje lisćiny njejsu.",
+ "cite-ve-referenceslist-isempty-default": "Njejsu referency na tuej stronje, kotrež hodźa so do tuteje lisćiny zapřijeć."
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ht.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ht.json
new file mode 100644
index 00000000..23f30ef9
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ht.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Tisave",
+ "Bfpage"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/hu-formal.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/hu-formal.json
new file mode 100644
index 00000000..40873afb
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/hu-formal.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Tacsipacsi",
+ "Misibacsi"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Könyv",
+ "visualeditor-cite-tool-name-journal": "Folyóirat",
+ "visualeditor-cite-tool-name-news": "Hírek",
+ "visualeditor-cite-tool-name-web": "Weboldal",
+ "cite-ve-dialog-reference-options-group-label": "Csoport használata",
+ "cite-ve-dialog-reference-options-group-placeholder": "Általános hivatkozások",
+ "cite-ve-dialog-reference-options-name-label": "Újrafelhasználás ezen a néven",
+ "cite-ve-dialog-reference-options-section": "Beállítások",
+ "cite-ve-dialog-reference-useexisting-tool": "Újrafelhasználás",
+ "cite-ve-dialogbutton-reference-full-label": "Alapvető forma"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/hu.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/hu.json
new file mode 100644
index 00000000..077ed0fa
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/hu.json
@@ -0,0 +1,53 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dj",
+ "Einstein2",
+ "Misibacsi",
+ "ViDam",
+ "Tacsipacsi",
+ "Csega",
+ "Kishajnalka",
+ "Macofe",
+ "Nyuszika7H"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Könyv",
+ "visualeditor-cite-tool-name-journal": "Folyóirat",
+ "visualeditor-cite-tool-name-news": "Hír",
+ "visualeditor-cite-tool-name-web": "Weboldal",
+ "cite-ve-changedesc-ref-group-both": "Forráshivatkozás-csoport megváltozott erről: „$1” erre: „$2”",
+ "cite-ve-changedesc-ref-group-from": "Forráshivatkozás-csoport megváltozott erről: „$1” az általános csoportra",
+ "cite-ve-changedesc-ref-group-to": "Forráshivatkozás-csoport megváltozott az általános csoportról erre: „$1”",
+ "cite-ve-changedesc-reflist-group-both": "Forráslista-csoport megváltozott erről: „$1” erre: „$2”",
+ "cite-ve-changedesc-reflist-group-from": "Forráslista-csoport megváltozott erről: „$1” az általános csoportra",
+ "cite-ve-changedesc-reflist-group-to": "Forráslista-csoport megváltozott az általános csoportról erre: „$1”",
+ "cite-ve-dialog-reference-editing-reused": "Ez a forráshivatkozás $1 helyen szerepel ezen a lapon.",
+ "cite-ve-dialog-reference-options-group-label": "Csoport használata",
+ "cite-ve-dialog-reference-options-group-placeholder": "Általános forráshivatkozások",
+ "cite-ve-dialog-reference-options-name-label": "Újrafelhasználás ezen a néven",
+ "cite-ve-dialog-reference-options-responsive-label": "Alkalmazkodó többoszlopos megjelenés használata",
+ "cite-ve-dialog-reference-options-section": "Beállítások",
+ "cite-ve-dialog-reference-placeholder": "Írd vagy másold ide a forráshivatkozásodat, vagy illessz be egy forrássablont.",
+ "cite-ve-dialog-reference-title": "Forráshivatkozás",
+ "cite-ve-dialog-reference-useexisting-full-label": "Olyan forráshivatkozás felhasználása, ami már szerepel ezen a lapon",
+ "cite-ve-dialog-reference-useexisting-label": "Egy létező forráshivatkozás használata",
+ "cite-ve-dialog-reference-useexisting-tool": "Újrahasználás",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Általános forráshivatkozások listája",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "„$1” csoportba tartozó forráshivatkozások listája",
+ "cite-ve-dialog-referenceslist-title": "Forráshivatkozások listája",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Javítja a tartalmat az információk forrásokkal való ellátásával. Hivatkozhatsz könyvekre, újságokra és weblapokra.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Forráshivatkozások",
+ "cite-ve-dialogbutton-reference-full-label": "Alapvető forma",
+ "cite-ve-dialogbutton-reference-title": "Forráshivatkozás",
+ "cite-ve-dialogbutton-reference-tooltip": "Egyszerű",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Forráshivatkozások listája",
+ "cite-ve-reference-input-placeholder": "Keresés jelenlegi forráshivatkozásokban",
+ "cite-ve-referenceslist-isempty": "Nincsenek megjeleníthető forráshivatkozások a(z) „$1” csoportban ezen az oldalon.",
+ "cite-ve-referenceslist-isempty-default": "Nincs a lapon forráshivatkozás a lapon, amit szerepelhetne ebben a listában.",
+ "cite-ve-referenceslist-missingref": "Ez a forráshivatkozás egy sablonban vagy más generált blokkban van definiálva, és jelenleg csak forrásnézetben szerkeszthető.",
+ "cite-ve-referenceslist-missingreflist": "Ez a forráshivatkozás-lista egy sablonnal készült, és jelenleg csak forrásnézetben szerkeszthető.",
+ "cite-ve-toolbar-group-label": "Forráshivatkozás",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Forráshivatkozások",
+ "visualeditor-internal-list-diff-group-name-mwreference": "„$1” forráshivatkozás-csoport"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/hy.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/hy.json
new file mode 100644
index 00000000..1f357030
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/hy.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Vacio",
+ "Xelgen",
+ "GeoO",
+ "Դավիթ Սարոյան",
+ "Vahe Gharakhanyan",
+ "Aram1985"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Գիրք",
+ "visualeditor-cite-tool-name-journal": "Ամսագիր",
+ "visualeditor-cite-tool-name-news": "Նորություններ",
+ "visualeditor-cite-tool-name-web": "Կայք",
+ "cite-ve-dialog-reference-editing-reused": "Այս ծանոթագրությունն այս էջում օգտագործվել է $1 {{PLURAL:$1|անգամ}}:",
+ "cite-ve-dialog-reference-options-group-label": "Օգտագործել այս խումբը",
+ "cite-ve-dialog-reference-options-group-placeholder": "Ընդհանուր ծանոթագրություններ",
+ "cite-ve-dialog-reference-options-name-label": "Կրկնակի օգտագործել տվյալ անվամբ",
+ "cite-ve-dialog-reference-options-section": "Ընտրանքներ",
+ "cite-ve-dialog-reference-title": "Ծանոթագրություն",
+ "cite-ve-dialog-reference-useexisting-full-label": "Կրկին օգտագործել արդեն գոյություն ունեցող ծանոթագրությունը",
+ "cite-ve-dialog-reference-useexisting-label": "Օգտագործել առկա ծանոթագրությունը",
+ "cite-ve-dialog-reference-useexisting-tool": "Կրկին օգտագործում",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Ընդհանուր ծանոթագրությունների ցուցակ",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "$1 խմբի ծանոթագրությունների ցուցակ",
+ "cite-ve-dialog-referenceslist-title": "Ծանոթագրությունների ցանկ",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Բարելավեք բովանդակությունը՝ ավելացնելով տեղեկատվության աղբյուրներ։ Դուք կարող եք մեջբերել գրքերից, թերթերից և կայքերից։",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Քաղվածքներ",
+ "cite-ve-dialogbutton-reference-full-label": "Պարզ ձև",
+ "cite-ve-dialogbutton-reference-title": "Ծանոթագրություն",
+ "cite-ve-dialogbutton-reference-tooltip": "Հիմնական",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Ծանոթագրությունների ցանկ",
+ "cite-ve-reference-input-placeholder": "Ինչի՞ն եք ուզում հղվել:",
+ "cite-ve-referenceslist-isempty": "Էջում չկան «$1» խմբով ծանոթագրություններ, որպեսզի ընդգրկվեն այս ցանկում:",
+ "cite-ve-referenceslist-isempty-default": "Էջում չկա ոչ մի ծանոթագրություն, որպեսզի ընդգրկվի այս ցանկում:",
+ "cite-ve-referenceslist-missingref": "Այս ծանոթագրությունը օգտագործվում է կաղապարում. այն կարող եք խմբագրել միայն բուն վիքիտեքստում:",
+ "cite-ve-toolbar-group-label": "Ծանոթագրություն"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ia.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ia.json
new file mode 100644
index 00000000..033a4ea6
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ia.json
@@ -0,0 +1,46 @@
+{
+ "@metadata": {
+ "authors": [
+ "McDutchie"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "nulle",
+ "visualeditor-cite-tool-name-book": "Libro",
+ "visualeditor-cite-tool-name-journal": "Periodico",
+ "visualeditor-cite-tool-name-news": "Novas",
+ "visualeditor-cite-tool-name-web": "Sito web",
+ "cite-tool-definition.json": "nulle",
+ "cite-ve-changedesc-ref-group-both": "Gruppo de referentia cambiate de \"$1\" a \"$2\"",
+ "cite-ve-changedesc-ref-group-from": "Gruppo de referentia cambiate de \"$1\" al gruppo general",
+ "cite-ve-changedesc-ref-group-to": "Gruppo de referentia cambiate del gruppo general a \"$1\"",
+ "cite-ve-changedesc-reflist-group-both": "Gruppo de lista de referentias cambiate de \"$1\" a \"$2\"",
+ "cite-ve-changedesc-reflist-group-from": "Gruppo de lista de referentias cambiate de \"$1\" al gruppo general",
+ "cite-ve-changedesc-reflist-group-to": "Gruppo de lista de referentias cambiate del gruppo general a \"$1\"",
+ "cite-ve-dialog-reference-editing-reused": "Iste referentia es usate $1 {{PLURAL:$1|vice|vices}} in iste pagina.",
+ "cite-ve-dialog-reference-options-group-label": "Usar iste gruppo",
+ "cite-ve-dialog-reference-options-group-placeholder": "Referentias general",
+ "cite-ve-dialog-reference-options-name-label": "Re-usar con iste nomine",
+ "cite-ve-dialog-reference-options-section": "Optiones",
+ "cite-ve-dialog-reference-placeholder": "Scribe o colla hic tu referentia, o insere un patrono de citation.",
+ "cite-ve-dialog-reference-title": "Referentia",
+ "cite-ve-dialog-reference-useexisting-full-label": "Reusar un citation que jam existe in iste pagina",
+ "cite-ve-dialog-reference-useexisting-label": "Usar un referentia existente",
+ "cite-ve-dialog-reference-useexisting-tool": "Reusar",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Lista de referentias general",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Lista de referentias pro gruppo \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Lista de referentias",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Meliora tu contento per adder fontes de information. Tu pote citar libros, jornales e sitos web.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citationes",
+ "cite-ve-dialogbutton-reference-full-label": "Forma basic",
+ "cite-ve-dialogbutton-reference-title": "Referentia",
+ "cite-ve-dialogbutton-reference-tooltip": "Basic",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lista de referentias",
+ "cite-ve-reference-input-placeholder": "Cercar in le referentias actual",
+ "cite-ve-referenceslist-isempty": "Il non ha referentias con le gruppo \"$1\" in iste pagina a includer in iste lista.",
+ "cite-ve-referenceslist-isempty-default": "Il non ha referentias in iste pagina a includer in iste lista.",
+ "cite-ve-referenceslist-missingref": "Iste referentia es definite in un patrono o altere bloco generate, e pro le momento pote solmente esser modificate in modo de codice fonte.",
+ "cite-ve-toolbar-group-label": "Citar",
+ "cite-ve-othergroup-item": "Referentia $1",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Referentias",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Nomine del gruppo de referentias: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/id.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/id.json
new file mode 100644
index 00000000..f4534c62
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/id.json
@@ -0,0 +1,66 @@
+{
+ "@metadata": {
+ "authors": [
+ "Farras",
+ "Ilham151096",
+ "Iwan Novirion",
+ "Iyan",
+ "Kenrick95",
+ "McDutchie",
+ "Rv77ax",
+ "William Surya Permana",
+ "Hysocc",
+ "Bennylin",
+ "Raynasution",
+ "Pizza1016",
+ "Ahdan",
+ "Marwan Mohamad",
+ "Amire80",
+ "Macofe",
+ "Mirws",
+ "Presidenvolksraad",
+ "Gombang"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "Buku",
+ "visualeditor-cite-tool-name-journal": "Jurnal",
+ "visualeditor-cite-tool-name-news": "Berita",
+ "visualeditor-cite-tool-name-web": "Situs web",
+ "cite-tool-definition.json": "null",
+ "cite-ve-changedesc-ref-group-both": "Kelompok referensi diubah dari \"$1\" ke \"$2\"",
+ "cite-ve-changedesc-ref-group-from": "Kelompok referensi diubah dari \"$1\" ke kelompok umum",
+ "cite-ve-changedesc-ref-group-to": "Kelompok referensi berubah dari kelompok umum ke \"$1\"",
+ "cite-ve-changedesc-reflist-group-both": "Kelompok daftar referensi diubah dari \"$1\" ke \"$2\"",
+ "cite-ve-changedesc-reflist-group-from": "Kelompok daftar referensi diubah dari \"$1\" ke kelompok umum",
+ "cite-ve-changedesc-reflist-group-to": "Kelompok daftar referensi berubah dari kelompok umum ke \"$1\"",
+ "cite-ve-changedesc-reflist-item-id": "Indeks referensi diubah",
+ "cite-ve-dialog-reference-editing-reused": "Referensi ini digunakan $1 {{PLURAL:$1|kali}} pada halaman ini.",
+ "cite-ve-dialog-reference-options-group-label": "Gunakan kelompok ini",
+ "cite-ve-dialog-reference-options-group-placeholder": "Referensi umum",
+ "cite-ve-dialog-reference-options-name-label": "Pakai ulang dengan nama ini",
+ "cite-ve-dialog-reference-options-responsive-label": "Gunakan tata letak kolom responsif",
+ "cite-ve-dialog-reference-options-section": "Opsi",
+ "cite-ve-dialog-reference-placeholder": "Tulis atau salin referensi Anda di sini, atau sisipkan templat kutipan.",
+ "cite-ve-dialog-reference-title": "Referensi",
+ "cite-ve-dialog-reference-useexisting-full-label": "Pakai ulang kutipan yang telah ada di halaman ini",
+ "cite-ve-dialog-reference-useexisting-label": "Gunakan referensi yang ada",
+ "cite-ve-dialog-reference-useexisting-tool": "Pakai ulang",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Daftar referensi umum",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Daftar referensi untuk kelompok \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Daftar referensi",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Tingkatkan konten anda dengan menambahkan sumber informasi. Anda dapat mengutip dari buku, koran, dan situs.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Kutipan",
+ "cite-ve-dialogbutton-reference-full-label": "Bentuk dasar",
+ "cite-ve-dialogbutton-reference-title": "Referensi",
+ "cite-ve-dialogbutton-reference-tooltip": "Dasar",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Daftar referensi",
+ "cite-ve-reference-input-placeholder": "Cari dalam kutipan saat ini",
+ "cite-ve-referenceslist-isempty": "Tidak ada referensi dengan kelompok \"$1\" pada halaman ini yang dapat disertakan dalam daftar ini.",
+ "cite-ve-referenceslist-isempty-default": "Tidak ada referensi pada halaman ini yang dapat disertakan dalam daftar ini.",
+ "cite-ve-referenceslist-missingref": "Referensi ini didefinisikan dalam templat atau blok lain, dan sekarang hanya dapat disunting dalam mode \"sunting sumber\".",
+ "cite-ve-toolbar-group-label": "Kutip",
+ "cite-ve-othergroup-item": "$1 referensi",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Referensi",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Nama kelompok referensi: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ie.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ie.json
new file mode 100644
index 00000000..9fdf2d21
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ie.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Makuba"
+ ]
+ },
+ "cite-ve-dialog-reference-options-group-label": "Usar ti-ci gruppe",
+ "cite-ve-dialog-reference-options-name-label": "Continualmen usar ti nómine",
+ "cite-ve-dialog-reference-options-section": "Preferenties",
+ "cite-ve-dialog-reference-title": "Referentie",
+ "cite-ve-dialog-reference-useexisting-label": "Usar un existent referentie",
+ "cite-ve-dialog-referenceslist-title": "Liste de referenties",
+ "cite-ve-dialogbutton-reference-tooltip": "Referentie",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Liste de referenties",
+ "cite-ve-reference-input-placeholder": "Quo tu vole referentiar?",
+ "cite-ve-referenceslist-isempty": "Sur ti-ci págine ne existe referenties del gruppe «$1» por inclusion in ti-ci liste.",
+ "cite-ve-referenceslist-isempty-default": "Sur ti-ci págine ne existe referenties por inclusion in ti-ci liste.",
+ "cite-ve-referenceslist-missingref": "Ti-ci referentie es definit in un shablone o un altri generat bloc. Actualmen tu posse redacter it solmen in li font-modo."
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ilo.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ilo.json
new file mode 100644
index 00000000..d68e31e8
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ilo.json
@@ -0,0 +1,32 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lam-ang"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Libro",
+ "visualeditor-cite-tool-name-journal": "Warnakan",
+ "visualeditor-cite-tool-name-news": "Damdamag",
+ "visualeditor-cite-tool-name-web": "Website",
+ "cite-ve-dialog-reference-editing-reused": "Daytoy a reperensia ket maus-usar iti $1 a {{PLURAL:$1|beses}} iti daytoy a panid.",
+ "cite-ve-dialog-reference-options-group-label": "Usaren daytoy a grupo",
+ "cite-ve-dialog-reference-options-group-placeholder": "Dagiti sapasap a reperensia",
+ "cite-ve-dialog-reference-options-name-label": "Usaren manen babaen iti daytoy a nagan",
+ "cite-ve-dialog-reference-options-section": "Dagiti pagpilian",
+ "cite-ve-dialog-reference-title": "Reperensia",
+ "cite-ve-dialog-reference-useexisting-full-label": "Usaren manen ti dakamat nga addan iti daytoy a panid",
+ "cite-ve-dialog-reference-useexisting-label": "Usaren ti reperensia nga addan",
+ "cite-ve-dialog-reference-useexisting-tool": "Usaren manen",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Listaan dagiti sapasap a reperensia",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Listaan dagiti reperensia para iti grupo \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Listaan ti reperensia",
+ "cite-ve-dialogbutton-reference-full-label": "Batayan a porma",
+ "cite-ve-dialogbutton-reference-title": "Reperensia",
+ "cite-ve-dialogbutton-reference-tooltip": "Batayan",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Listaan ti reperensia",
+ "cite-ve-reference-input-placeholder": "Agbiruk iti kaunegan dagiti agdama a dakamat",
+ "cite-ve-referenceslist-isempty": "Awan dagiti reperensia iti grupo ti \"$1\" iti daytoy a panid a mairaman iti daytoy a listaan.",
+ "cite-ve-referenceslist-isempty-default": "Awan dagiti reperensia iti daytoy a panid a mairaman iti daytoy a listaan.",
+ "cite-ve-referenceslist-missingref": "Daytoy a reperensia ket nainaganan iti maysa a plantilia wenno sabali a naaramid a muton, ken iti agadama mabalin laeng a maurnos iti taudan a moda.",
+ "cite-ve-toolbar-group-label": "Dakamaten"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/io.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/io.json
new file mode 100644
index 00000000..7f52e98e
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/io.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Idojc"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Libro",
+ "visualeditor-cite-tool-name-journal": "Jurnalo",
+ "visualeditor-cite-tool-name-news": "Novaji",
+ "visualeditor-cite-tool-name-web": "Retosituo",
+ "cite-ve-dialog-reference-editing-reused": "Ica refero uzesas $1 {{PLURAL:$1|foye}} en ca pagino",
+ "cite-ve-dialog-reference-options-group-label": "Uzar ica grupo",
+ "cite-ve-dialog-reference-options-group-placeholder": "Generala referi",
+ "cite-ve-dialog-reference-options-name-label": "Riuzar per ica nomo",
+ "cite-ve-dialog-reference-options-section": "Selekti",
+ "cite-ve-dialog-reference-title": "Refero",
+ "cite-ve-dialog-reference-useexisting-full-label": "Riuzar citajo qua ja existas en ca pagino",
+ "cite-ve-dialog-reference-useexisting-label": "Uzar existanta refero",
+ "cite-ve-dialog-reference-useexisting-tool": "Ri-uzar",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Listo de generala referi",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Listo de referi por grupo $1",
+ "cite-ve-dialog-referenceslist-title": "Listo de referi",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Plubonigas vua kontenajo per adjuntar fonti de informo. Vu povas citar ek libri, jurnali e retositui",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citaji",
+ "cite-ve-dialogbutton-reference-full-label": "Bazala formo",
+ "cite-ve-dialogbutton-reference-title": "Refero",
+ "cite-ve-dialogbutton-reference-tooltip": "Bazala",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Listo de referi",
+ "cite-ve-reference-input-placeholder": "Serchar en nuna citaji",
+ "cite-ve-referenceslist-isempty": "Esas nula referi kun la grupo $1 en ca pagino inkluzenda en ca listo.",
+ "cite-ve-referenceslist-isempty-default": "Esas nula referi en ca pagino inkluzenda en ca listo.",
+ "cite-ve-referenceslist-missingref": "Ica refero definesas en shablono od altra produktita bloko, e nun povas redaktesar nur per fonto-maniero.",
+ "cite-ve-toolbar-group-label": "Citar",
+ "cite-ve-othergroup-item": "$1 refero"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/is.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/is.json
new file mode 100644
index 00000000..9714c908
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/is.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Maxí",
+ "Snævar",
+ "Sveinn í Felli"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Bókaheimild",
+ "visualeditor-cite-tool-name-journal": "Tímaritsheimild",
+ "visualeditor-cite-tool-name-news": "Fréttaheimild",
+ "visualeditor-cite-tool-name-web": "Vefheimild",
+ "cite-ve-dialog-reference-editing-reused": "Þessi heimild er notuð $1 {{PLURAL:$1|sinni|sinnum}} á þessari síðu.",
+ "cite-ve-dialog-reference-options-group-label": "Nota þennan hóp",
+ "cite-ve-dialog-reference-options-group-placeholder": "Almennar tilvísanir",
+ "cite-ve-dialog-reference-options-name-label": "Endurnota með þessu nafni",
+ "cite-ve-dialog-reference-options-section": "Valkostir",
+ "cite-ve-dialog-reference-title": "Tilvísun",
+ "cite-ve-dialog-reference-useexisting-full-label": "Endurnota heimild sem er þegar til á síðunni",
+ "cite-ve-dialog-reference-useexisting-label": "Nota núverandi tilvísun",
+ "cite-ve-dialog-reference-useexisting-tool": "Endurnota",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Listi yfir almennar tilvísanir",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Listi yfir tilvísanir fyrir hópin „$1“",
+ "cite-ve-dialog-referenceslist-title": "Tilvísunarlisti",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Bætir efnið þitt með því að bæta við heimildum. Þú getur vísað í bækur, fréttablöð og vefsíður.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Tilvísanir",
+ "cite-ve-dialogbutton-reference-full-label": "Grunn eyðublað",
+ "cite-ve-dialogbutton-reference-title": "Tilvísun",
+ "cite-ve-dialogbutton-reference-tooltip": "Einföld",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Tilvísunarlisti",
+ "cite-ve-reference-input-placeholder": "Leita innan núverandi tilvísana",
+ "cite-ve-referenceslist-isempty": "Það eru engar tilvísanir í hópnum „$1“ á þessari síðu til að taka með í þennan lista.",
+ "cite-ve-referenceslist-isempty-default": "Það eru engar tilvísanir á þessari síðu til að taka með í þennan lista.",
+ "cite-ve-referenceslist-missingref": "Þessi tilvísun er tilgreind í sniði eða öðru tilbúnu efni, og í augnablikinu er aðeins hægt að breyta henni með frumkóðaritlinum.",
+ "cite-ve-toolbar-group-label": "Tilvísun",
+ "cite-ve-othergroup-item": "$1 tilvísun",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Tilvísanir"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/it.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/it.json
new file mode 100644
index 00000000..69b5526c
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/it.json
@@ -0,0 +1,66 @@
+{
+ "@metadata": {
+ "authors": [
+ "Beta16",
+ "Darth Kule",
+ "Doc.mari",
+ "Eleonora negri",
+ "Elitre",
+ "F. Cosoleto",
+ "FRacco",
+ "Gianfranco",
+ "Minerva Titani",
+ "Raoli",
+ "Una giornata uggiosa '94",
+ "Maria victoria",
+ "Ontsed",
+ "PeppeAeco",
+ "Lucas2",
+ "Nemo bis",
+ "Fringio",
+ "Martinligabue",
+ "Macofe",
+ "Mpiva",
+ "Stefania.scaramuzzi",
+ "Jdforrester",
+ "Purodha",
+ "Statix64",
+ "Supernino",
+ "McDutchie"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "nullo",
+ "visualeditor-cite-tool-name-book": "Libro",
+ "visualeditor-cite-tool-name-journal": "Pubblicazione",
+ "visualeditor-cite-tool-name-news": "Notizie",
+ "visualeditor-cite-tool-name-web": "Sito web",
+ "cite-tool-definition.json": "nullo",
+ "cite-ve-dialog-reference-editing-reused": "Questo riferimento è usato $1 {{PLURAL:$1|volta|volte}} su questa pagina.",
+ "cite-ve-dialog-reference-options-group-label": "Usa questo gruppo",
+ "cite-ve-dialog-reference-options-group-placeholder": "Riferimenti generali",
+ "cite-ve-dialog-reference-options-name-label": "Riutilizza questo nome",
+ "cite-ve-dialog-reference-options-responsive-label": "Utilizza il layout della colonna adattivo",
+ "cite-ve-dialog-reference-options-section": "Opzioni",
+ "cite-ve-dialog-reference-placeholder": "Scrivi o copia la tua nota qui, oppure inserisci un template per le citazioni.",
+ "cite-ve-dialog-reference-title": "Riferimento",
+ "cite-ve-dialog-reference-useexisting-full-label": "Riutilizza una citazione già presente nella pagina.",
+ "cite-ve-dialog-reference-useexisting-label": "Usa un riferimento esistente",
+ "cite-ve-dialog-reference-useexisting-tool": "Riusa",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Elenco di note generali",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Lista di note per il gruppo \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Elenco note",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Migliora i contenuti con l'aggiunta delle fonti per le informazione. Puoi citare da libri, giornali e siti web.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citazioni",
+ "cite-ve-dialogbutton-reference-full-label": "Modulo base",
+ "cite-ve-dialogbutton-reference-title": "Riferimento",
+ "cite-ve-dialogbutton-reference-tooltip": "Base",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Elenco note",
+ "cite-ve-reference-input-placeholder": "Ricerca all'interno delle citazioni correnti",
+ "cite-ve-referenceslist-isempty": "In questa pagina non ci sono note da elencare con il gruppo \"$1\".",
+ "cite-ve-referenceslist-isempty-default": "In questa pagina non ci sono note da elencare.",
+ "cite-ve-referenceslist-missingref": "Questa nota è definita in un template o in un altro blocco generato e per ora può essere modificata solo in modalità sorgente.",
+ "cite-ve-toolbar-group-label": "Cita",
+ "cite-ve-othergroup-item": "$1 note",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Riferimenti",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Nome gruppo riferimenti: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ja.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ja.json
new file mode 100644
index 00000000..a287c5ae
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ja.json
@@ -0,0 +1,65 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fryed-peach",
+ "Miya",
+ "Penn Station",
+ "Shirayuki",
+ "Whym",
+ "Takot",
+ "Plover-Y",
+ "Los688",
+ "SkyDaisy9",
+ "Sujiniku",
+ "2nd-player",
+ "Jdforrester",
+ "Sudachi",
+ "Otokoume",
+ "Vigorous action",
+ "おはぐろ蜻蛉",
+ "Iwai.masaharu",
+ "Delim"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "書籍",
+ "visualeditor-cite-tool-name-journal": "ジャーナル",
+ "visualeditor-cite-tool-name-news": "ニュース",
+ "visualeditor-cite-tool-name-web": "ウェブサイト",
+ "cite-tool-definition.json": "null",
+ "cite-ve-changedesc-ref-group-both": "脚注のグループが「$1」から「$2」に変更されました",
+ "cite-ve-changedesc-ref-group-from": "脚注のグループが「$1」から一般のグループに変更されました",
+ "cite-ve-changedesc-ref-group-to": "脚注のグループが一般のグループから「$1」に変更されました",
+ "cite-ve-changedesc-reflist-group-both": "脚注リストのグループが「$1」から「$2」に変更されました",
+ "cite-ve-changedesc-reflist-group-from": "脚注リストのグループが「$1」から一般のグループに変更されました",
+ "cite-ve-changedesc-reflist-group-to": "脚注リストのグループが一般のグループから「$1」に変更されました",
+ "cite-ve-changedesc-reflist-item-id": "注釈のインデックスが変更されました",
+ "cite-ve-dialog-reference-editing-reused": "この脚注はこのページ上で$1{{PLURAL:$1|回}}使用されています。",
+ "cite-ve-dialog-reference-options-group-label": "使用するグループ",
+ "cite-ve-dialog-reference-options-group-placeholder": "汎用の脚注",
+ "cite-ve-dialog-reference-options-name-label": "この名前で再使用",
+ "cite-ve-dialog-reference-options-responsive-label": "レスポンシブなコラムレイアウトを使用する",
+ "cite-ve-dialog-reference-options-section": "オプション",
+ "cite-ve-dialog-reference-placeholder": "ここに脚注を入力し、若しくは貼り付け、又は引用テンプレートを追加してください。",
+ "cite-ve-dialog-reference-title": "脚注",
+ "cite-ve-dialog-reference-useexisting-full-label": "既にこのページにある引用を再利用する",
+ "cite-ve-dialog-reference-useexisting-label": "既存の情報源を使用",
+ "cite-ve-dialog-reference-useexisting-tool": "再利用",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "汎用の脚注リスト",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "グループ「$1」の脚注のリスト",
+ "cite-ve-dialog-referenceslist-title": "情報源一覧",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "情報源を追加してあなたの編集内容を改善します。書籍、新聞、ウェブサイトを情報源にできます。",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "引用",
+ "cite-ve-dialogbutton-reference-full-label": "標準",
+ "cite-ve-dialogbutton-reference-title": "脚注",
+ "cite-ve-dialogbutton-reference-tooltip": "基本",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "情報源一覧",
+ "cite-ve-reference-input-placeholder": "現在の引用内を検索",
+ "cite-ve-referenceslist-isempty": "このページには、この一覧に含めるためのグループ「$1」の情報源はありません。",
+ "cite-ve-referenceslist-isempty-default": "このページには、この一覧に含められる脚注がありません。",
+ "cite-ve-referenceslist-missingref": "この脚注はテンプレート内または別途生成されたブロック内で定義されているため、現時点ではソースモードでのみ編集できます。",
+ "cite-ve-toolbar-group-label": "引用",
+ "cite-ve-othergroup-item": "$1 脚注",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "脚注",
+ "visualeditor-internal-list-diff-group-name-mwreference": "脚注のグループ名: 「$1」"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/jbo.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/jbo.json
new file mode 100644
index 00000000..6c8d8a65
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/jbo.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gleki",
+ "Xbony2"
+ ]
+ },
+ "visualeditor-cite-tool-name-news": "nuzba"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/jut.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/jut.json
new file mode 100644
index 00000000..d142cf4d
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/jut.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jyllanj"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/jv.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/jv.json
new file mode 100644
index 00000000..fa3c61a9
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/jv.json
@@ -0,0 +1,43 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gleki",
+ "NoiX180",
+ "Pras",
+ "Jadinegara",
+ "Meursault2004",
+ "Macofe"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "Buku",
+ "visualeditor-cite-tool-name-journal": "Jurnal",
+ "visualeditor-cite-tool-name-news": "Warta",
+ "visualeditor-cite-tool-name-web": "Situs jaringan",
+ "cite-tool-definition.json": "null",
+ "cite-ve-dialog-reference-editing-reused": "Rujukan iki dianggo {{PLURAL:$1|ping}} $1 ing kaca iki.",
+ "cite-ve-dialog-reference-options-group-label": "Anggo golongan iki",
+ "cite-ve-dialog-reference-options-group-placeholder": "Rujukan umum",
+ "cite-ve-dialog-reference-options-name-label": "Anggo manèh mawa jeneng iki",
+ "cite-ve-dialog-reference-options-section": "Pilihan",
+ "cite-ve-dialog-reference-placeholder": "Tulisen utawa tèmplèken réferènsiné panjenengan ing kéné, utawa wuwuhen sawijining cithakan sitiran.",
+ "cite-ve-dialog-reference-title": "Rujukan",
+ "cite-ve-dialog-reference-useexisting-full-label": "Anggo manèh sitiran sing wis ana ing kaca iki",
+ "cite-ve-dialog-reference-useexisting-label": "Anggo rujukan sing ana",
+ "cite-ve-dialog-reference-useexisting-tool": "Anggo manèh",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Pratélaning rujukan umum",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Pratélaning rujukan kanggo golongan \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Pratélaning rujukan",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Kembangaké isi sarana nambahi sumbering katerangan. Sampéyan bisa nyitir saka buku, ariwarta, lan sana jaringan.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Sitiran",
+ "cite-ve-dialogbutton-reference-full-label": "Rupa dhasar",
+ "cite-ve-dialogbutton-reference-title": "Rujukan",
+ "cite-ve-dialogbutton-reference-tooltip": "Baku",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Pratélaning rujukan",
+ "cite-ve-reference-input-placeholder": "Golèk ing sitiran iki",
+ "cite-ve-referenceslist-isempty": "Ora ana rujukan golongan \"$1\" ing kaca iki kanggo dilebokaké ing pratélan iki.",
+ "cite-ve-referenceslist-isempty-default": "Ora ana rujukan ing kaca iki kanggo dilebokaké ing pratélan iki.",
+ "cite-ve-referenceslist-missingref": "Rujukan iki diwedharaké ing cithakan utawa babagan liya, lan kanggo saiki mung bisa dibesut mawa cara sumber.",
+ "cite-ve-toolbar-group-label": "Sitir",
+ "cite-ve-othergroup-item": "$1 rujukan"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ka.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ka.json
new file mode 100644
index 00000000..f7ff3c70
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ka.json
@@ -0,0 +1,43 @@
+{
+ "@metadata": {
+ "authors": [
+ "BRUTE",
+ "David1010",
+ "Gleki",
+ "ITshnik",
+ "MIKHEIL",
+ "NoiX180",
+ "Pras",
+ "Tokoko",
+ "Otogi",
+ "Arystanbek"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "წიგნი",
+ "visualeditor-cite-tool-name-journal": "ჟურნალი",
+ "visualeditor-cite-tool-name-news": "სიახლეები",
+ "visualeditor-cite-tool-name-web": "ვებ-გვერდი",
+ "cite-ve-dialog-reference-editing-reused": "ეს ბმული გვერდზე {{PLURAL:$1|-ჯერ}} გამოიყენება.",
+ "cite-ve-dialog-reference-options-group-label": "ამ ჯგუფის გამოყენება",
+ "cite-ve-dialog-reference-options-group-placeholder": "ზოგადი წყაროები",
+ "cite-ve-dialog-reference-options-name-label": "ხელმეორედ გამოყენება ამ სახელით",
+ "cite-ve-dialog-reference-options-section": "პარამეტრები",
+ "cite-ve-dialog-reference-title": "სქოლიო",
+ "cite-ve-dialog-reference-useexisting-full-label": "გვერდზე უკვე არსებული წყაროს ხელმეორედ გამოყენება",
+ "cite-ve-dialog-reference-useexisting-label": "არსებული სქოლიოს გამოყენება",
+ "cite-ve-dialog-reference-useexisting-tool": "ხელახლა გამოყენება",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "მთავარი სქოლიოს სია",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "ჯგუფი „$1“-ის სქოლიოს სია",
+ "cite-ve-dialog-referenceslist-title": "სქოლიოს სია",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "ინფორმაციის წყაროების დამატებით გაუმჯობესდება შინაარსი. შეგიძლიათ მოიყვანოთ წყაროები წიგნებიდან, გაზეთებიდან და ვებ-საიტებიდან.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "ციტატები",
+ "cite-ve-dialogbutton-reference-full-label": "უბრალო ფორმა",
+ "cite-ve-dialogbutton-reference-title": "სქოლიო",
+ "cite-ve-dialogbutton-reference-tooltip": "საბაზო",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "სქოლიოს სია",
+ "cite-ve-reference-input-placeholder": "მიმდინარე ბმულის ფარგლებში ძიება",
+ "cite-ve-referenceslist-isempty": "ამ გვერდზე არ არის ბმულები ჯგუფისათვის „$1“ ამ სიაში ჩასართავად.",
+ "cite-ve-referenceslist-isempty-default": "ამ გვერდზე არ არის ბმულები ამ სიაში ჩასართავად.",
+ "cite-ve-referenceslist-missingref": "ეს სქოლიო განსაზღვრულია თარგში ან სხვა გენერირებად ბლოკში და ამჟამად მისი რედაქტირება მხოლოდ საწყისი ტექსტის რეჟიმში შეიძლება.",
+ "cite-ve-toolbar-group-label": "ციტირება"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/kab.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/kab.json
new file mode 100644
index 00000000..c4809bf2
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/kab.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Belkacem77"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "Ilem",
+ "visualeditor-cite-tool-name-book": "Adlis",
+ "visualeditor-cite-tool-name-journal": "Aɣmis",
+ "visualeditor-cite-tool-name-news": "Isallen",
+ "visualeditor-cite-tool-name-web": "Asmel web",
+ "cite-tool-definition.json": "Ilem",
+ "cite-ve-dialog-reference-options-group-label": "Seqdec agraw-agi"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/khw.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/khw.json
new file mode 100644
index 00000000..140ed7ab
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/khw.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Rachitrali"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/kk-cyrl.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/kk-cyrl.json
new file mode 100644
index 00000000..efd9b48d
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/kk-cyrl.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arystanbek",
+ "Нұрлан Рахымжанов"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Кітап",
+ "visualeditor-cite-tool-name-journal": "Журнал",
+ "visualeditor-cite-tool-name-news": "Жаңалықтар",
+ "visualeditor-cite-tool-name-web": "Уебсайт",
+ "cite-ve-dialog-reference-editing-reused": "Бұл дереккөз бұл бетте $1 {{PLURAL:$1|жерде}} қолданылған.",
+ "cite-ve-dialog-reference-options-group-label": "Бұл топты қолдану",
+ "cite-ve-dialog-reference-options-group-placeholder": "Негізгі дереккөздері",
+ "cite-ve-dialog-reference-options-name-label": "Бұл атауды қайта қолдану",
+ "cite-ve-dialog-reference-options-section": "Параметрлер",
+ "cite-ve-dialog-reference-title": "Дереккөз",
+ "cite-ve-dialog-reference-useexisting-full-label": "Бұл бетте бұрын да қолданған дереккөзі қайта қолдану",
+ "cite-ve-dialog-reference-useexisting-label": "Бұрынғы қайнарын пайдалану",
+ "cite-ve-dialog-reference-useexisting-tool": "Қайта қолдану",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Негізгі дереккөздер тізімі",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "«$1» тобы үшін дереккөзер тізімі",
+ "cite-ve-dialog-referenceslist-title": "Дереккөздер тізімі",
+ "cite-ve-dialogbutton-reference-full-label": "Негізгі пішін",
+ "cite-ve-dialogbutton-reference-title": "Дереккөз",
+ "cite-ve-dialogbutton-reference-tooltip": "Негізгі",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Дереккөздер тізімі",
+ "cite-ve-reference-input-placeholder": "Қазіргі дереккөз ішінде іздеу",
+ "cite-ve-referenceslist-isempty": "Мұнда бұл бетте бұл тізімге кірген \"$1\" тобындағы дереккөздер жоқ.",
+ "cite-ve-referenceslist-isempty-default": "Бұл бетте бұл тізімге кірген дереккөздер жоқ.",
+ "cite-ve-referenceslist-missingref": "Бұл дереккөз үлгі немесе басқа себептен құлыпталған, және тек қайнары арқылы өңдей аласыз.",
+ "cite-ve-toolbar-group-label": "Дереккөзін көрсету"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/km.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/km.json
new file mode 100644
index 00000000..8e4160c9
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/km.json
@@ -0,0 +1,32 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sovichet",
+ "គីមស៊្រុន"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "សៀវភៅ",
+ "visualeditor-cite-tool-name-journal": "ព្រឹត្តិប័ត្រ",
+ "visualeditor-cite-tool-name-news": "ព័ត៌មាន",
+ "visualeditor-cite-tool-name-web": "វេបសាយ",
+ "cite-ve-dialog-reference-editing-reused": "ឯកសារយោងនេះត្រូវបានប្រើ $1 {{PLURAL:$1|ដង}} នៅលើទំព័រនេះ។",
+ "cite-ve-dialog-reference-options-group-label": "ប្រើ​ក្រុម​នេះ",
+ "cite-ve-dialog-reference-options-group-placeholder": "ការ​យោង​ទូទៅ",
+ "cite-ve-dialog-reference-options-name-label": "ប្រើ​ម្ដង​ទៀត​ដោយ​ឈ្មោះ​នេះ",
+ "cite-ve-dialog-reference-options-section": "ជម្រើស",
+ "cite-ve-dialog-reference-title": "ឯកសារ​យោង​",
+ "cite-ve-dialog-reference-useexisting-full-label": "ប្រើការយោងដែលបានប្រើហើយនៅលើទំព័រនេះឡើងវិញ",
+ "cite-ve-dialog-reference-useexisting-label": "ប្រើ​ឯកសារ​យោង​ដែល​មាន​ស្រាប់",
+ "cite-ve-dialog-reference-useexisting-tool": "ប្រើឡើងវិញ",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "បញ្ជីឯកសារយោងទូទៅ",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "បញ្ជីឯកសារយោងសម្រាប់ក្រុម \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "បញ្ជី​ឯកសារ​យោង",
+ "cite-ve-dialogbutton-reference-full-label": "ទម្រង់បែបបទបឋម",
+ "cite-ve-dialogbutton-reference-title": "ឯកសារ​យោង​",
+ "cite-ve-dialogbutton-reference-tooltip": "បែបបទបឋម",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "បញ្ជី​ឯកសារ​យោង",
+ "cite-ve-reference-input-placeholder": "ស្វែងរកក្នុងការយោងបច្ចុប្បន្ន",
+ "cite-ve-referenceslist-isempty": "មិន​មាន​សេចក្ដី​យោង​ក្នុង​ក្រុម \"$1\" លើ​ទំព័រ​នេះ ដើម្បី​បញ្ចូល​ក្នុង​បញ្ជី​នេះ​ទេ។",
+ "cite-ve-referenceslist-isempty-default": "មិន​មាន​សេចក្ដី​យោង​លើ​ទំព័រ​នេះ ដើម្បី​បញ្ចូល​ក្នុង​បញ្ជី​នេះ​ទេ។",
+ "cite-ve-toolbar-group-label": "យោង"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/kn.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/kn.json
new file mode 100644
index 00000000..1820be4f
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/kn.json
@@ -0,0 +1,30 @@
+{
+ "@metadata": {
+ "authors": [
+ "Vikassy",
+ "VASANTH S.N.",
+ "Nayvik",
+ "Omshivaprakash",
+ "Yogesh",
+ "Shushruth",
+ "Ananth subray"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "ಪುಸ್ತಕ",
+ "visualeditor-cite-tool-name-journal": "ದಿನಪತ್ರಿಕೆ",
+ "visualeditor-cite-tool-name-news": "ವಾರ್ತೆ",
+ "visualeditor-cite-tool-name-web": "ಜಾಲತಾಣ",
+ "cite-ve-dialog-reference-editing-reused": "ಈ ಪಟದಲ್ಲಿ $1 {{PLURAL:$1|times}}ಬಾರಿ ಈ ಉಲ್ಲೇಖವನ್ನು ಬಳಸಲಾಗಿದೆ.",
+ "cite-ve-dialog-reference-options-group-label": "ಈ ಗುಂಪು ಬಳಸಿ",
+ "cite-ve-dialog-reference-options-group-placeholder": "ಸಾಮಾನ್ಯ ಉಲ್ಲೇಖಗಳು",
+ "cite-ve-dialog-reference-options-name-label": "ಈ ಹೆಸರಿನಿಂದ ಮತ್ತೆ ಬಳಸಿ",
+ "cite-ve-dialog-reference-options-section": "ಆಯ್ಕೆಗಳು",
+ "cite-ve-dialog-reference-title": "ಉಲ್ಲೇಖ",
+ "cite-ve-dialog-reference-useexisting-label": "ಈಗಾಗಲೇ ಇರುವ ಉಲ್ಲೇಖವನನ್ನು ಬಳಸಿರಿ",
+ "cite-ve-dialog-reference-useexisting-tool": "ಮತ್ತೆ ಬಳಸು",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "ಸಾಮಾನ್ಯ ಉಲ್ಲೇಖಗಳ ಪಟ್ಟಿ",
+ "cite-ve-dialog-referenceslist-title": "ಉಲ್ಲೇಖಗಳ ಪಟ್ಟಿ",
+ "cite-ve-dialogbutton-reference-tooltip": "ಮೂಲಭೂತ",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "ಉಲ್ಲೇಖಗಳ ಪಟ್ಟಿ",
+ "cite-ve-toolbar-group-label": "ಉಲ್ಲೇಖಿಸಿ"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ko.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ko.json
new file mode 100644
index 00000000..01d68a5e
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ko.json
@@ -0,0 +1,71 @@
+{
+ "@metadata": {
+ "authors": [
+ "Freebiekr",
+ "Hym411",
+ "Kwj2772",
+ "LFM",
+ "아라",
+ "Jskang",
+ "Priviet",
+ "고기랑",
+ "Miri-Nae",
+ "Tyey",
+ "Bluemersen",
+ "Ryuch",
+ "Naturehead",
+ "Revi",
+ "Infinity",
+ "SeoJeongHo",
+ "Alex00728",
+ "콩가루",
+ "Hwangjy9",
+ "IRTC1015",
+ "Ykhwong"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "비어 있음",
+ "visualeditor-cite-tool-name-book": "책",
+ "visualeditor-cite-tool-name-journal": "저널",
+ "visualeditor-cite-tool-name-news": "뉴스",
+ "visualeditor-cite-tool-name-web": "웹사이트",
+ "cite-tool-definition.json": "비어 있음",
+ "cite-ve-changedesc-ref-group-both": "각주 그룹이 \"$1\"에서 \"$2\"(으)로 변경되었습니다",
+ "cite-ve-changedesc-ref-group-from": "각주 그룹이 \"$1\"에서 일반 그룹으로 변경되었습니다",
+ "cite-ve-changedesc-ref-group-to": "각주 그룹이 일반 그룹에서 \"$1\"(으)로 변경되었습니다",
+ "cite-ve-changedesc-reflist-group-both": "각주 목록 그룹이 \"$1\"에서 \"$2\"(으)로 변경되었습니다",
+ "cite-ve-changedesc-reflist-group-from": "각주 목록 그룹이 \"$1\"에서 일반 그룹으로 변경되었습니다",
+ "cite-ve-changedesc-reflist-group-to": "각주 목록 그룹이 일반 그룹에서 \"$1\"(으)로 변경되었습니다",
+ "cite-ve-changedesc-reflist-responsive-set": "각주 목록은 여러 반응형 열로 표시되도록 변경되었습니다",
+ "cite-ve-changedesc-reflist-responsive-unset": "각주 목록은 하나의 열로만 표시되도록 변경되었습니다",
+ "cite-ve-changedesc-reflist-item-id": "참조 색인이 변경되었습니다",
+ "cite-ve-dialog-reference-editing-reused": "이 각주는 이 문서에서 $1{{PLURAL:$1|번}} 사용되었습니다.",
+ "cite-ve-dialog-reference-options-group-label": "이 그룹 사용",
+ "cite-ve-dialog-reference-options-group-placeholder": "일반 각주",
+ "cite-ve-dialog-reference-options-name-label": "이 이름으로 다시 사용",
+ "cite-ve-dialog-reference-options-section": "선택 사항",
+ "cite-ve-dialog-reference-placeholder": "각주를 여기에 입력하거나 붙여넣거나, 인용 틀을 추가하십시오.",
+ "cite-ve-dialog-reference-title": "각주",
+ "cite-ve-dialog-reference-useexisting-full-label": "이 문서에 이미 존재하는 인용을 재사용",
+ "cite-ve-dialog-reference-useexisting-label": "기존 각주 사용",
+ "cite-ve-dialog-reference-useexisting-tool": "재사용",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "일반 각주 목록",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "\"$1\" 그룹에 대한 각주 목록",
+ "cite-ve-dialog-referenceslist-title": "각주 목록",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "정보의 출처를 추가하여 당신의 콘텐츠를 보강합니다. 서적이나 신문, 웹사이트를 인용할 수 있습니다.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "인용",
+ "cite-ve-dialogbutton-reference-full-label": "기본 양식",
+ "cite-ve-dialogbutton-reference-title": "각주",
+ "cite-ve-dialogbutton-reference-tooltip": "기초",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "각주 목록",
+ "cite-ve-reference-input-placeholder": "현재 인용 안에서 검색",
+ "cite-ve-referenceslist-isempty": "이 문서에서 이 목록에 포함될 \"$1\" 그룹으로 된 각주가 없습니다.",
+ "cite-ve-referenceslist-isempty-default": "이 문서에서 이 목록에 포함될 각주가 없습니다.",
+ "cite-ve-referenceslist-missingref": "이 각주는 틀이나 다른 생성된 블록에서 정의되었고, 현재는 원본 모드에서만 편집할 수 있습니다.",
+ "cite-ve-referenceslist-missingref-in-list": "이 각주는 틀이나 다른 생성된 블록에서 정의되었고, 현재는 원본 모드에서만 미리 볼 수 있습니다.",
+ "cite-ve-referenceslist-missingreflist": "이 각주 목록은 틀에 의해 생성된 것이며 현재 원본 모드에서만 편집할 수 있습니다.",
+ "cite-ve-toolbar-group-label": "인용",
+ "cite-ve-othergroup-item": "$1 참조",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "각주",
+ "visualeditor-internal-list-diff-group-name-mwreference": "각주 그룹 이름: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/krc.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/krc.json
new file mode 100644
index 00000000..17807779
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/krc.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iltever",
+ "Ernác"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Китаб",
+ "visualeditor-cite-tool-name-journal": "Журнал",
+ "visualeditor-cite-tool-name-news": "Джангылыкъла",
+ "visualeditor-cite-tool-name-web": "Веб-сайт",
+ "cite-ve-dialog-reference-editing-reused": "Бу белги бетде $1 {{PLURAL:$1|кере}} хайырландырылады.",
+ "cite-ve-dialog-reference-options-group-label": "Бу къауумну хайырландыр",
+ "cite-ve-dialog-reference-options-group-placeholder": "Баш джибериуле",
+ "cite-ve-dialog-reference-options-name-label": "Бу ат бла джангыдан хайырландыр",
+ "cite-ve-dialog-reference-options-section": "Параметрле",
+ "cite-ve-dialog-reference-title": "Белгиле",
+ "cite-ve-dialog-reference-useexisting-full-label": "Бу бетде алгъадан болгъан къайнакъны джангыдан хайырландырыу",
+ "cite-ve-dialog-reference-useexisting-label": "Болгъан белгини хайырланыу",
+ "cite-ve-dialog-reference-useexisting-tool": "Джангыдан хайырландырыу",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Орта белгилени тизмеси",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "\"$1\" къауум ючюн белгилени тизмеси",
+ "cite-ve-dialog-referenceslist-title": "Белгиле",
+ "cite-ve-dialogbutton-reference-full-label": "Тамал форма",
+ "cite-ve-dialogbutton-reference-title": "Белгиле",
+ "cite-ve-dialogbutton-reference-tooltip": "Тамал",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Белгиле",
+ "cite-ve-reference-input-placeholder": "Бар болгъан къайнакъланы ичинде изле",
+ "cite-ve-referenceslist-isempty": "Бу тизмеге къошар ючюн бу бетде «$1» къауум бла къайнакъ джокъду.",
+ "cite-ve-referenceslist-isempty-default": "Бу бетде бу тизмеге къошар ючюн къайнакъ джокъду.",
+ "cite-ve-referenceslist-missingref": "Бу къайнакъ шаблонда неда башха генерация этилген блокда салыннганды эмда бусагъатда аннга джангыз вики-текстни тюрлендириу режимде редакторлукъ этерге болады.",
+ "cite-ve-toolbar-group-label": "Цитата этиу"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/kri.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/kri.json
new file mode 100644
index 00000000..336cefe5
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/kri.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Protostar"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/krl.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/krl.json
new file mode 100644
index 00000000..ee5ffc04
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/krl.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ilja.mos"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ksh.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ksh.json
new file mode 100644
index 00000000..5af5f3d3
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ksh.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Purodha"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "noll",
+ "visualeditor-cite-tool-name-book": "Bohch",
+ "visualeditor-cite-tool-name-journal": "Zeijschreff",
+ "visualeditor-cite-tool-name-news": "Neujeschkeijte",
+ "visualeditor-cite-tool-name-web": "Wäbßaijt",
+ "cite-tool-definition.json": "noll",
+ "cite-ve-dialog-reference-editing-reused": "Heh dä Bezoch es $1 {{PLURAL:$1|mohl}} op heh dä Sigg ze fenge.",
+ "cite-ve-dialog-reference-options-group-label": "Nemm heh di Jropp",
+ "cite-ve-dialog-reference-options-section": "Ußwahle",
+ "cite-ve-dialog-reference-useexisting-full-label": "Donn e Zetaht vun heh dä Sigg norr_ens verwände",
+ "cite-ve-dialog-referenceslist-title": "Leß met de Quälle",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Zetahte",
+ "cite-ve-dialogbutton-reference-full-label": "Jrondform",
+ "cite-ve-dialogbutton-reference-title": "Fohßnoht",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Leß met de Quälle un eijnzel Fohnuhte",
+ "cite-ve-reference-input-placeholder": "Ennerhallev vun de aktälle Zetahte söhke",
+ "cite-ve-toolbar-group-label": "Zėttėhre",
+ "cite-ve-othergroup-item": "$1 Fohßnuht udder Quäll"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ku-latn.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ku-latn.json
new file mode 100644
index 00000000..33554578
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ku-latn.json
@@ -0,0 +1,32 @@
+{
+ "@metadata": {
+ "authors": [
+ "George Animal",
+ "Purodha",
+ "Bikarhêner",
+ "Ghybu"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Pirtûk",
+ "visualeditor-cite-tool-name-news": "Nûçe",
+ "visualeditor-cite-tool-name-web": "Malper",
+ "cite-ve-dialog-reference-editing-reused": "Ev çavkanî di vê rûpelê de $1 {{PLURAL:$1|caran}} tê bikaranîn.",
+ "cite-ve-dialog-reference-options-group-label": "Vê komê bi kar bîne",
+ "cite-ve-dialog-reference-options-group-placeholder": "Çavkaniyên giştî",
+ "cite-ve-dialog-reference-options-name-label": "Di bin vî navî de dîsa bi kar bîne",
+ "cite-ve-dialog-reference-options-section": "Vebijark",
+ "cite-ve-dialog-reference-title": "Çavkanî",
+ "cite-ve-dialog-reference-useexisting-label": "Çavkaniyeka heye bi kar bîne",
+ "cite-ve-dialog-reference-useexisting-tool": "Dîsa bi kar bîne",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Lîsteya çavkaniyên giştî",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Lîsteya çavkaniyan bo koma \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Lîsteya çavkaniyan",
+ "cite-ve-dialogbutton-reference-full-label": "Forma bingehîn",
+ "cite-ve-dialogbutton-reference-title": "Çavkanî",
+ "cite-ve-dialogbutton-reference-tooltip": "Bingehîn",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lîsteya çavkaniyan",
+ "cite-ve-reference-input-placeholder": "Di navbera gotinên rojane de bigere",
+ "cite-ve-toolbar-group-label": "Çavkanî",
+ "cite-ve-othergroup-item": "$1 çavkanî",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Çavkanî"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/kw.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/kw.json
new file mode 100644
index 00000000..0ddcdc06
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/kw.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "George Animal",
+ "Nrowe",
+ "Purodha",
+ "Kw-Moon"
+ ]
+ },
+ "cite-ve-dialog-reference-options-group-label": "Devnydhya an bagas-ma",
+ "cite-ve-dialog-reference-options-section": "Etholyow",
+ "cite-ve-dialog-reference-title": "Devyn",
+ "cite-ve-dialog-referenceslist-title": "Rol a dhevynnow",
+ "cite-ve-dialogbutton-reference-tooltip": "Devyn",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Rol a dhevynnow"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ky.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ky.json
new file mode 100644
index 00000000..db4db594
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ky.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chorobek",
+ "George Animal",
+ "Nrowe",
+ "Tynchtyk Chorotegin",
+ "Викиней",
+ "Connexx",
+ "Askar Nazyrov",
+ "Arystanbek",
+ "Janatkg"
+ ]
+ },
+ "visualeditor-cite-tool-name-news": "Жаңылыктар",
+ "visualeditor-cite-tool-name-web": "Веб-сайт",
+ "cite-ve-dialog-reference-options-section": "Ырастоолор"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/la.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/la.json
new file mode 100644
index 00000000..febc1091
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/la.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Autokrator",
+ "Chorobek",
+ "Tynchtyk Chorotegin",
+ "UV",
+ "Викиней",
+ "Andrew Dalby",
+ "Jdforrester",
+ "Laurentianus"
+ ]
+ },
+ "cite-ve-dialog-reference-options-group-label": "Grege uti",
+ "cite-ve-dialog-reference-options-name-label": "Hoc nomine rursus uti",
+ "cite-ve-dialog-reference-options-section": "Modi",
+ "cite-ve-dialog-reference-title": "Adnotatio",
+ "cite-ve-dialog-reference-useexisting-label": "Adnotatione iam scripta uti",
+ "cite-ve-dialog-referenceslist-title": "Index adnotationum",
+ "cite-ve-dialogbutton-reference-tooltip": "Simplex",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Index adnotationum"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/lb.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lb.json
new file mode 100644
index 00000000..b6f0760f
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lb.json
@@ -0,0 +1,49 @@
+{
+ "@metadata": {
+ "authors": [
+ "Autokrator",
+ "Chorobek",
+ "Robby",
+ "Soued031",
+ "Tynchtyk Chorotegin",
+ "UV",
+ "Викиней",
+ "McDutchie"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "Buch",
+ "visualeditor-cite-tool-name-journal": "Journal",
+ "visualeditor-cite-tool-name-news": "Neiegkeeten",
+ "visualeditor-cite-tool-name-web": "Internetsite",
+ "cite-tool-definition.json": "null",
+ "cite-ve-changedesc-reflist-responsive-unset": "D'Lëscht vun de Referenzen gouf esou geännert datt se an enger Spalt gewise gëtt",
+ "cite-ve-dialog-reference-editing-reused": "Dës Referenz gëtt {{PLURAL:$1|eemol|$1 Mol}} op dëser Säit benotzt.",
+ "cite-ve-dialog-reference-options-group-label": "Dëse Grupp benotzen",
+ "cite-ve-dialog-reference-options-group-placeholder": "Allgemeng Referenzen",
+ "cite-ve-dialog-reference-options-name-label": "Nees benotze mat dësem Numm",
+ "cite-ve-dialog-reference-options-responsive-label": "Dynamesche Kolonne-Layout benotzen",
+ "cite-ve-dialog-reference-options-section": "Optiounen",
+ "cite-ve-dialog-reference-placeholder": "Schreift oder kopéiert Är Referenz heihin oder setzt eng Schabloun fir Zitater dran.",
+ "cite-ve-dialog-reference-title": "Referenz",
+ "cite-ve-dialog-reference-useexisting-full-label": "Eng Referenz nees benotzen déi et schonn op dëser Säit gëtt",
+ "cite-ve-dialog-reference-useexisting-label": "Eng Quell benotzen déi et scho gëtt",
+ "cite-ve-dialog-reference-useexisting-tool": "Nees-benotzen",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Lëscht vun allgemenge Referenzen",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Lëscht vu Referenzen fir de Grupp \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Lëscht vun de Referenzen",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Verbessert Ären Inhalt duerch bäisetze vun de Quelle vun den Informatiounen. Dir kënnt aus Bicher, Zeitungen oder Internetsiten zitéieren.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citatiounen",
+ "cite-ve-dialogbutton-reference-full-label": "Basisformular",
+ "cite-ve-dialogbutton-reference-title": "Referenz",
+ "cite-ve-dialogbutton-reference-tooltip": "Einfach",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lëscht vun de Referenzen",
+ "cite-ve-reference-input-placeholder": "An den aktuellen Zitater sichen",
+ "cite-ve-referenceslist-isempty": "Et gëtt keng Referenze mam Grupp \"$1\" op dëser Säit fir an dës Lëscht opzehuelen.",
+ "cite-ve-referenceslist-isempty-default": "Et gëtt keng Referenzen op dëser Säit fir an dës Lëscht opzehuelen.",
+ "cite-ve-referenceslist-missingref": "Dës Referenz ass an enger Schabloun oder engem anere generéierte Block definéiert a kann dowéinst just am Quelltextmodus geännert ginn.",
+ "cite-ve-toolbar-group-label": "Zitat",
+ "cite-ve-othergroup-item": "$1 Referenz",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Referenzen",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Numm vum Referenzgrupp: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/lez.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lez.json
new file mode 100644
index 00000000..faad8102
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lez.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Soul Train"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/lg.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lg.json
new file mode 100644
index 00000000..639e57b5
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lg.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ainali"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/li.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/li.json
new file mode 100644
index 00000000..7713368c
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/li.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Robin0van0der0vliet",
+ "Robin van der Vliet"
+ ]
+ },
+ "visualeditor-cite-tool-name-news": "Nuujs"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/lki.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lki.json
new file mode 100644
index 00000000..ffcf6ddb
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lki.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hosseinblue",
+ "Arash71",
+ "Lakzon"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "کتاب",
+ "visualeditor-cite-tool-name-journal": "مجله",
+ "visualeditor-cite-tool-name-news": "حاوواڵ",
+ "visualeditor-cite-tool-name-web": "وبسایت",
+ "cite-ve-dialog-reference-editing-reused": "این یادکرد $1 {{PLURAL:$1|times}} در این صفحه استفاده شده است.",
+ "cite-ve-dialog-reference-options-group-label": "ئستفادە ئەژ ئێ داکووکە(گروو)",
+ "cite-ve-dialog-reference-options-group-placeholder": "منابع عمومی",
+ "cite-ve-dialog-reference-options-name-label": "استفاده دوباره با این نام",
+ "cite-ve-dialog-reference-options-section": "گزینۀل",
+ "cite-ve-dialog-reference-title": "بنچەک(منبع)",
+ "cite-ve-dialog-reference-useexisting-full-label": "استفاده دوباره یک پانویس موجود در این صفحه",
+ "cite-ve-dialog-reference-useexisting-label": "استفاده از یک منبع موجود",
+ "cite-ve-dialog-reference-useexisting-tool": "استفادهٔ مجدد",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "فهرست منابع عمومی",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "فهرست منابع برای گروه $1",
+ "cite-ve-dialog-referenceslist-title": "فهرست منابع",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "یادکرد/ویرکرد",
+ "cite-ve-dialogbutton-reference-full-label": "فرم ابتدائی",
+ "cite-ve-dialogbutton-reference-title": "بنچەک(منبع)",
+ "cite-ve-dialogbutton-reference-tooltip": "مقدماتی",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "فهرست منابع",
+ "cite-ve-toolbar-group-label": "یادکرد/ویرکرد"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/lmo.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lmo.json
new file mode 100644
index 00000000..33486e88
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lmo.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ninonino",
+ "Gloria sah",
+ "Mondschein"
+ ]
+ },
+ "cite-ve-dialog-reference-options-group-label": "Dòpra chèl grupo ché",
+ "cite-ve-dialog-reference-options-name-label": "Tùrna a doprà chèl nòm ché",
+ "cite-ve-dialog-reference-options-section": "Upsiù",
+ "cite-ve-dialog-reference-title": "Riferimènt",
+ "cite-ve-dialog-reference-useexisting-label": "Dòpra 'n riferimènt che gh'è zamò",
+ "cite-ve-dialog-referenceslist-title": "Lìsta dei riferimèncc",
+ "cite-ve-dialogbutton-reference-tooltip": "Riferimènt",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lìsta dei riferimèncc",
+ "cite-ve-reference-input-placeholder": "A che laùr öt fà riferimènt?",
+ "cite-ve-referenceslist-isempty": "En chèsta pàgina gh'è nisü riferimènt col grùpo \"$1\" de mèter en chèsta lìsta.",
+ "cite-ve-referenceslist-isempty-default": "Gh'è nisü riferimèncc en chèsta pàgina de mèter dét en chèsta lìsta.",
+ "cite-ve-referenceslist-missingref": "Chèsto riferimènt l'è definìt endèn mudèl o 'ndèn óter blòch generàt e per adès el pöl mìa éser mudificàt apéna 'n modalità sorgènt."
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ln.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ln.json
new file mode 100644
index 00000000..041d2f2f
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ln.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Moyogo"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/lrc.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lrc.json
new file mode 100644
index 00000000..ef5e8ae7
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lrc.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mogoeilor",
+ "Bonevarluri",
+ "Macofe"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/lt.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lt.json
new file mode 100644
index 00000000..cccd8da1
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lt.json
@@ -0,0 +1,50 @@
+{
+ "@metadata": {
+ "authors": [
+ "Audriusa",
+ "Eitvys200",
+ "Shirayuki",
+ "Robotukas11",
+ "Homo",
+ "Mantak111",
+ "Reedy",
+ "Hugo.arg",
+ "Pofka",
+ "Albertas",
+ "Zygimantus",
+ "Manvydasz"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "nieko",
+ "visualeditor-cite-tool-name-book": "Knyga",
+ "visualeditor-cite-tool-name-journal": "Žurnalas",
+ "visualeditor-cite-tool-name-news": "Naujienos",
+ "visualeditor-cite-tool-name-web": "Tinklapis",
+ "cite-tool-definition.json": "nieko",
+ "cite-ve-changedesc-reflist-item-id": "Pakeistas išnašos indeksas",
+ "cite-ve-dialog-reference-editing-reused": "Ši nuoroda naudojama $1 {{PLURAL:$1|kartų}} šiame puslapyje.",
+ "cite-ve-dialog-reference-options-group-label": "Naudoti šią grupę",
+ "cite-ve-dialog-reference-options-group-placeholder": "Bendrosios nuorodos",
+ "cite-ve-dialog-reference-options-name-label": "Pakartotinai naudoti pagal pavadinimą",
+ "cite-ve-dialog-reference-options-section": "Parinktys",
+ "cite-ve-dialog-reference-title": "Nuoroda",
+ "cite-ve-dialog-reference-useexisting-full-label": "Pakartotinai naudoti citatą, kuri jau egzistuoja šiame puslapyje",
+ "cite-ve-dialog-reference-useexisting-label": "Naudoti esamą nuorodą",
+ "cite-ve-dialog-reference-useexisting-tool": "Naudoti pakartotinai",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Bendrųjų nuorodų sąrašas",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Grupės \"$1\" nuorodų sąrašas",
+ "cite-ve-dialog-referenceslist-title": "Nuorodų sąrašas",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Pagerina jūsų turinį pridedant informacijos šaltinių. Jūs galite cituoti iš knygų, laikraščių ir tinklapių.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citatos",
+ "cite-ve-dialogbutton-reference-full-label": "Pagrindinė forma",
+ "cite-ve-dialogbutton-reference-title": "Nuoroda",
+ "cite-ve-dialogbutton-reference-tooltip": "Paprasta",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Nuorodų sąrašas",
+ "cite-ve-reference-input-placeholder": "Ieškoti dabartinėse citatose",
+ "cite-ve-referenceslist-isempty": "Nėra nuorodų su grupe \"$1\" šiame puslapyje, kurias būtų galima pateikti šiame sąraše",
+ "cite-ve-referenceslist-isempty-default": "Šiame puslapyje nėra nuorodų, kurias būtų galima įtraukti į šį sąrašą.",
+ "cite-ve-referenceslist-missingref": "Ši nuoroda yra apibrėžta šablone arba kitame sugeneruotame bloke ir kol kas gali būti redaguojama tik išeities teksto režimu.",
+ "cite-ve-toolbar-group-label": "Cituoti",
+ "cite-ve-othergroup-item": "$1 nuoroda",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Išnašos"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/luz.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/luz.json
new file mode 100644
index 00000000..b4f6cf8b
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/luz.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "علی ساکی لرستانی"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "کتآو",
+ "visualeditor-cite-tool-name-journal": "روژنومه",
+ "visualeditor-cite-tool-name-news": "خه ورل",
+ "visualeditor-cite-tool-name-web": "وب سایت"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/lv.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lv.json
new file mode 100644
index 00000000..310e606d
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lv.json
@@ -0,0 +1,52 @@
+{
+ "@metadata": {
+ "authors": [
+ "Admresdeserv.",
+ "Audriusa",
+ "Eitvys200",
+ "Papuass",
+ "PeterisP",
+ "Edgars2007",
+ "Jdforrester",
+ "Silraks"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "Grāmata",
+ "visualeditor-cite-tool-name-journal": "Publikācija",
+ "visualeditor-cite-tool-name-news": "Ziņas",
+ "visualeditor-cite-tool-name-web": "Tīmekļa vietne",
+ "cite-tool-definition.json": "null",
+ "cite-ve-changedesc-ref-group-both": "Atsauču grupa nomainīta no \"$1\" uz \"$2\"",
+ "cite-ve-changedesc-ref-group-from": "Atsauču grupa nomainīta no \"$1\" uz vispārīgo grupu",
+ "cite-ve-changedesc-ref-group-to": "Atsauču grupa nomainīta no vispārīgās grupas uz \"$1\"",
+ "cite-ve-changedesc-reflist-group-both": "Atsauču saraksta grupa nomainīta no \"$1\" uz \"$2\"",
+ "cite-ve-changedesc-reflist-group-from": "Atsauču saraksta grupa nomainīta no \"$1\" uz vispārīgo grupu",
+ "cite-ve-changedesc-reflist-group-to": "Atsauču saraksta grupa nomainīta no vispārīgās grupas uz \"$1\"",
+ "cite-ve-dialog-reference-editing-reused": "Šī atsauce šajā lapā ir izmantota $1 {{PLURAL:$1|reizes|reizi|reizes}}.",
+ "cite-ve-dialog-reference-options-group-label": "Lietot šo grupu",
+ "cite-ve-dialog-reference-options-group-placeholder": "Vispārīgas atsauces",
+ "cite-ve-dialog-reference-options-name-label": "Atkalizmantot ar šo nosaukumu",
+ "cite-ve-dialog-reference-options-section": "Iespējas",
+ "cite-ve-dialog-reference-title": "Atsauce",
+ "cite-ve-dialog-reference-useexisting-full-label": "Atkārtoti izmantot atsauci, kas jau tiek lietota šajā lapā",
+ "cite-ve-dialog-reference-useexisting-label": "Izmantot esošu atsauci",
+ "cite-ve-dialog-reference-useexisting-tool": "Atkārtota izmantošana",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Vispārīgo atsauču saraksts",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Atsauču saraksts grupai \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Atsauču saraksts",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Uzlabo savu saturu, pievienojot informācijas avotus. Atsaukties var uz grāmatām, laikrakstiem un interneta vietnēm.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Atsauces",
+ "cite-ve-dialogbutton-reference-full-label": "Vienkāršā forma",
+ "cite-ve-dialogbutton-reference-title": "Atsauce",
+ "cite-ve-dialogbutton-reference-tooltip": "Vienkārša",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Atsauču saraksts",
+ "cite-ve-reference-input-placeholder": "Meklēt esošajās atsaucēs",
+ "cite-ve-referenceslist-isempty": "Šajā lapā nav atsauces ar grupu \"$1\"",
+ "cite-ve-referenceslist-isempty-default": "Šajā lapā nav atsauču, ko iekļaut šajā sarakstā.",
+ "cite-ve-referenceslist-missingref": "Šī atsauce ir definēta veidnē vai citā automātiski ģenerētā blokā, un pagaidām var tikt labota tikai pirmkoda režīmā.",
+ "cite-ve-toolbar-group-label": "Atsauce",
+ "cite-ve-othergroup-item": "$1 atsauce",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Atsauces",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Atsauču grupas nosaukums: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/lzh.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lzh.json
new file mode 100644
index 00000000..1b3a3176
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/lzh.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "StephDC",
+ "LNDDYL",
+ "Jason924tw",
+ "飞舞回堂前"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "書",
+ "visualeditor-cite-tool-name-news": "事"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/mai.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mai.json
new file mode 100644
index 00000000..a44f7bea
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mai.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Tulsi Bhagat",
+ "बिप्लब आनन्द"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/mg.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mg.json
new file mode 100644
index 00000000..51967f8c
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mg.json
@@ -0,0 +1,30 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jagwar"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "foana",
+ "visualeditor-cite-tool-name-book": "Boky",
+ "visualeditor-cite-tool-name-journal": "Gazety",
+ "visualeditor-cite-tool-name-news": "Vaovao",
+ "visualeditor-cite-tool-name-web": "Sehatra antranonkala",
+ "cite-tool-definition.json": "foana",
+ "cite-ve-dialog-reference-options-group-label": "Hampiasa ity vondrona ity",
+ "cite-ve-dialog-reference-options-group-placeholder": "Tsiahy amin'ny ankapobe",
+ "cite-ve-dialog-reference-options-name-label": "Hampiasa amin'ity anarana ity",
+ "cite-ve-dialog-reference-options-section": "Safidy",
+ "cite-ve-dialog-reference-title": "Tsiahy",
+ "cite-ve-dialog-reference-useexisting-full-label": "Hampiasa tsiahy efa misy eto amin'ity pejy ity",
+ "cite-ve-dialog-reference-useexisting-label": "Hampiasa tsiahy efa misy",
+ "cite-ve-dialog-reference-useexisting-tool": "Ampiasaina indray",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Lisitry ny tsiahy ankapobe",
+ "cite-ve-dialog-referenceslist-title": "Lisitry ny tsiahy",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Tsiahy",
+ "cite-ve-dialogbutton-reference-full-label": "Tsiahy hafa",
+ "cite-ve-dialogbutton-reference-title": "Tsiahy",
+ "cite-ve-dialogbutton-reference-tooltip": "Fototra",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lisitry ny tsiahy",
+ "cite-ve-toolbar-group-label": "Loharano",
+ "cite-ve-othergroup-item": "tsiahy $1"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/mhr.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mhr.json
new file mode 100644
index 00000000..80de52d9
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mhr.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Сай"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/min.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/min.json
new file mode 100644
index 00000000..68b6d96e
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/min.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iwan Novirion",
+ "Jagwar"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Buku",
+ "visualeditor-cite-tool-name-journal": "Jurnal",
+ "visualeditor-cite-tool-name-news": "Kaba",
+ "visualeditor-cite-tool-name-web": "Situih web",
+ "cite-ve-dialog-reference-title": "Rujuakan",
+ "cite-ve-dialogbutton-reference-tooltip": "Rujuakan"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/mk.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mk.json
new file mode 100644
index 00000000..3810c3cb
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mk.json
@@ -0,0 +1,54 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bjankuloski06",
+ "Brest",
+ "Iwan Novirion"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "ништо",
+ "visualeditor-cite-tool-name-book": "Книга",
+ "visualeditor-cite-tool-name-journal": "Списание",
+ "visualeditor-cite-tool-name-news": "Новости",
+ "visualeditor-cite-tool-name-web": "Мреж. место",
+ "cite-tool-definition.json": "ништо",
+ "cite-ve-changedesc-ref-group-both": "Групата наводи е сменета од „$1“ во „$2“",
+ "cite-ve-changedesc-ref-group-from": "Групата наводи е сменета од „$1“ во општата група",
+ "cite-ve-changedesc-ref-group-to": "Групата наводи е сменета од општата група на „$1“",
+ "cite-ve-changedesc-reflist-group-both": "Групата на списоци со наводи е сменета од „$1“ во „$2“",
+ "cite-ve-changedesc-reflist-group-from": "Групата на списоци со наводи е сменета од „$1“ во општата група",
+ "cite-ve-changedesc-reflist-group-to": "Групата на списоци со наводи е сменета од општата група во „$1“",
+ "cite-ve-changedesc-reflist-responsive-set": "Списокот на наводи е изменет за приказ во одѕивни столбови",
+ "cite-ve-changedesc-reflist-responsive-unset": "Списокот на наводи е изменет за приказ во само еден столб",
+ "cite-ve-changedesc-reflist-item-id": "Индексот на наводи е изменет",
+ "cite-ve-dialog-reference-editing-reused": "Овој навод се користи {{PLURAL:$1|еднаш|$1 пати}} во страницава.",
+ "cite-ve-dialog-reference-options-group-label": "Употреби ја групава",
+ "cite-ve-dialog-reference-options-group-placeholder": "Општи наводи",
+ "cite-ve-dialog-reference-options-name-label": "Преупотреби под ова име",
+ "cite-ve-dialog-reference-options-responsive-label": "Користи одѕивен распоред на столбовите",
+ "cite-ve-dialog-reference-options-section": "Нагодувања",
+ "cite-ve-dialog-reference-placeholder": "Тука напишете или прекопирајте го наводот, или пак вметнете шаблон за навод.",
+ "cite-ve-dialog-reference-title": "Навод",
+ "cite-ve-dialog-reference-useexisting-full-label": "Употреби постоечки навод на страницата",
+ "cite-ve-dialog-reference-useexisting-label": "Искористи постоечки навод",
+ "cite-ve-dialog-reference-useexisting-tool": "Постоечки",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Список на општи наводи",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Список на наводи за групата „$1“",
+ "cite-ve-dialog-referenceslist-title": "Список на наводи",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Ја подобрува вашата содржина додавајќи извори на информациите. Можете да наведувате книги, весници и мрежни места.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Наводи",
+ "cite-ve-dialogbutton-reference-full-label": "Основен облик",
+ "cite-ve-dialogbutton-reference-title": "Навод",
+ "cite-ve-dialogbutton-reference-tooltip": "Основна",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Список на наводи",
+ "cite-ve-reference-input-placeholder": "Пребарајте по тековните наводи",
+ "cite-ve-referenceslist-isempty": "На страницава нема наводи со групата „$1“ што би ги ставил во списоков.",
+ "cite-ve-referenceslist-isempty-default": "На страницава нема наводи што би ги ставил во списоков.",
+ "cite-ve-referenceslist-missingref": "Овој навод се задава во шаблон или друг самосоздаден блок. Засега може да се уредува само непосредно во изворот.",
+ "cite-ve-referenceslist-missingref-in-list": "Овој навод се задава во шаблон или друг создаден блок. Засега може да се прегледува само во изворен режим.",
+ "cite-ve-referenceslist-missingreflist": "Овој список со наводи е создаден од шаблон, и засега може да се уредува само во изворен режим.",
+ "cite-ve-toolbar-group-label": "Наведи",
+ "cite-ve-othergroup-item": "$1 навод",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Наводи",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Име на групата наводи: „$1“"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ml.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ml.json
new file mode 100644
index 00000000..5425716d
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ml.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kavya Manohar",
+ "Praveenp",
+ "Santhosh.thottingal",
+ "Vssun",
+ "Ranjithsiji"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "പുസ്തകം",
+ "visualeditor-cite-tool-name-journal": "ജേണൽ",
+ "visualeditor-cite-tool-name-news": "വാർത്തകൾ",
+ "visualeditor-cite-tool-name-web": "വെബ്‌സൈറ്റ്",
+ "cite-ve-dialog-reference-editing-reused": "ഈ അവലംബം ഈ താളിൽ $1 {{PLURAL:$1|പ്രാവശ്യം}} ഉപയോഗിച്ചിട്ടുണ്ട്.",
+ "cite-ve-dialog-reference-options-group-label": "ഈ ഗണം ഉപയോഗിക്കുക",
+ "cite-ve-dialog-reference-options-group-placeholder": "സാമാന്യ അവലംബങ്ങൾ",
+ "cite-ve-dialog-reference-options-name-label": "ഈ പേര് പുനരുപയോഗിക്കുക",
+ "cite-ve-dialog-reference-options-section": "ഐച്ഛികങ്ങൾ",
+ "cite-ve-dialog-reference-title": "അവലംബം",
+ "cite-ve-dialog-reference-useexisting-full-label": "ഈ താളിൽ നിലവിലുള്ള ഒരു അവലംബം വീണ്ടും ഉപയോഗിക്കുക",
+ "cite-ve-dialog-reference-useexisting-label": "നിലവിൽ ഉപയോഗിക്കുന്ന അവലംബം ഉപയോഗിക്കുക",
+ "cite-ve-dialog-reference-useexisting-tool": "പുനരുപയോഗം",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "പൊതു അവലംബങ്ങളുടെ പട്ടിക",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "\"$1\" എന്ന ഗണത്തിനുള്ള അവലംബങ്ങളുടെ പട്ടിക",
+ "cite-ve-dialog-referenceslist-title": "അവലംബങ്ങളുടെ പട്ടിക",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "താങ്കൾ നൽകിയ ഉള്ളടക്കത്തിന്റെ സ്രോതസ്സ് വിവരങ്ങൾ ചേർത്ത് മെച്ചപ്പെടുത്തുന്നു. താങ്കൾക്ക് പുസ്തകങ്ങളും പത്രമാദ്ധ്യമങ്ങളും വെബ്‌സൈറ്റുകളും അവലംബിക്കാവുന്നതാണ്.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "അവലംബങ്ങൾ",
+ "cite-ve-dialogbutton-reference-full-label": "അടിസ്ഥാന രൂപം",
+ "cite-ve-dialogbutton-reference-title": "അവലംബം",
+ "cite-ve-dialogbutton-reference-tooltip": "അടിസ്ഥാനപരം",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "അവലംബങ്ങളുടെ പട്ടിക",
+ "cite-ve-reference-input-placeholder": "ഇപ്പോൾ ഉപയോഗിച്ചിരിക്കുന്ന അവലംബങ്ങളിൽ തിരയുക",
+ "cite-ve-referenceslist-isempty": "ഈ താളിൽ, \"$1\" ഗണത്തിൽ, ഈ പട്ടികയിൽ ഉൾപ്പെടുത്താവുന്ന അവലംബങ്ങളൊന്നും ഈ താളിലില്ല.",
+ "cite-ve-referenceslist-isempty-default": "ഈ പട്ടികയിൽ ഉൾപ്പെടുത്താവുന്ന അവലംബങ്ങളൊന്നും ഈ താളിലില്ല.",
+ "cite-ve-referenceslist-missingref": "ഈ അവലംബം ഫലകം ഉപയോഗിച്ചോ മറ്റേതെങ്കിലും ഘടകമുപയോഗിച്ചോ ആണ് ചേർത്തിരിക്കുന്നത്, അതിനാലിത് ഇപ്പോൾ മൂലരൂപത്തിൽ മാത്രമേ തിരുത്താനാവൂ.",
+ "cite-ve-toolbar-group-label": "ഉദ്ധരിക്കുക"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/mn.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mn.json
new file mode 100644
index 00000000..e9b34419
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mn.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mongol",
+ "Wisdom",
+ "Sembuk"
+ ]
+ },
+ "cite-ve-dialog-referenceslist-title": "Ном зүйн жагсаалт",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Ном зүйн жагсаалт"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/mr.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mr.json
new file mode 100644
index 00000000..47ab1cac
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mr.json
@@ -0,0 +1,60 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kaajawa",
+ "Mahitgar",
+ "Praju23",
+ "V.narsikar",
+ "Ydyashad",
+ "संतोष दहिवळ",
+ "अभय नातू",
+ "NehalDaveND",
+ "Sureshkhole",
+ "Susheelkasab"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "काहीही नाही",
+ "visualeditor-cite-tool-name-book": "पुस्तक",
+ "visualeditor-cite-tool-name-journal": "पत्रिका",
+ "visualeditor-cite-tool-name-news": "बातम्या",
+ "visualeditor-cite-tool-name-web": "संकेतस्थळ",
+ "cite-tool-definition.json": "काहीही नाही",
+ "cite-ve-changedesc-ref-group-both": "संदर्भगट \"$1\" वरून \"$2\" कडे बदलला गेला आहे",
+ "cite-ve-changedesc-ref-group-from": "संदर्भ गट \"$1\" कडून आता सामान्य गटाकडे नेण्यात आलेला आहे",
+ "cite-ve-changedesc-ref-group-to": "संदर्भ गट सामान्य गटाकडून आता \"$1\" कडे नेण्यात आलेला आहे",
+ "cite-ve-changedesc-reflist-group-both": "संदर्भयादी \"$1\" कडून \"$2\" कडे नेण्यात आलेली आहे",
+ "cite-ve-changedesc-reflist-group-from": "संदर्भ यादी \"$1\" कडून सामान्य गटाकडे नेण्यात आलेली आहे",
+ "cite-ve-changedesc-reflist-group-to": "संदर्भयादी सामान्य गटाकडून \"$1\" कडे नेलेली आहे",
+ "cite-ve-changedesc-reflist-responsive-set": "संदर्भ यादी प्रतीसादिक स्तंभात दाखवता यावी अशा पद्धतीने बदलण्यात आली आहे.",
+ "cite-ve-changedesc-reflist-responsive-unset": "संदर्भ यादी फक्त एकच स्तंभात दाखवता यावी अशा पद्धतीने बदलण्यात आली आहे.",
+ "cite-ve-changedesc-reflist-item-id": "संदर्भयादी बदलली गेली आहे",
+ "cite-ve-dialog-reference-editing-reused": "हा संदर्भ या पानावर $1 {{PLURAL:$1|वेळा}} वापरल्या गेला.",
+ "cite-ve-dialog-reference-options-group-label": "हा संदर्भगट वापरा",
+ "cite-ve-dialog-reference-options-group-placeholder": "सामान्य संदर्भ",
+ "cite-ve-dialog-reference-options-name-label": "या नावाने पुन्हा-वापरा",
+ "cite-ve-dialog-reference-options-responsive-label": "प्रतिसाद देणारी सारणी वापरा",
+ "cite-ve-dialog-reference-options-section": "पर्याय",
+ "cite-ve-dialog-reference-placeholder": "येथे आपला संदर्भ लिहा किंवा चिटकवा, किंवा संदर्भ साचा चिटकवा",
+ "cite-ve-dialog-reference-title": "संदर्भ",
+ "cite-ve-dialog-reference-useexisting-full-label": "या पानावर असलेली अवतरणे पुन्हा वापरा",
+ "cite-ve-dialog-reference-useexisting-label": "सध्या उपलब्ध संदर्भातून संदर्भ वापरा",
+ "cite-ve-dialog-reference-useexisting-tool": "पुनरुपयोग",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "सामान्य संदर्भांची यादी",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "गट \"$1\" साठी संदर्भांची यादी",
+ "cite-ve-dialog-referenceslist-title": "संदर्भ यादी",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "माहितीचा स्रोत जोडून आपला आशय सुधरवा.आपण पुस्तकांतून, नियतकालिंकातून व संकेतस्थळांवरुन संदर्भ देऊ शकता.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "संदर्भ",
+ "cite-ve-dialogbutton-reference-full-label": "मूळ रुप",
+ "cite-ve-dialogbutton-reference-title": "संदर्भ",
+ "cite-ve-dialogbutton-reference-tooltip": "पहिल्यांदा",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "संदर्भ यादी",
+ "cite-ve-reference-input-placeholder": "सध्या अवतरणातच शोधा",
+ "cite-ve-referenceslist-isempty": "गट \"$1\" पाशी या लेखपानावर संदर्भ उपलब्ध नाहीत.",
+ "cite-ve-referenceslist-isempty-default": "या यादीत अंतर्भूत करावयासाठी या पानावर कोणतेच संदर्भ नाहीत.",
+ "cite-ve-referenceslist-missingref": "हा संदर्भ सध्या केवळ स्रोत संपादन पद्धतीने संपादीत करता येतो कारण संबंधित संदर्भ साचातून किंवा इतर जनरेटेड ब्लॉक मधून डिफाईन केला गेला आहे.",
+ "cite-ve-referenceslist-missingreflist": "ही संदर्भयादी साचा वापरून तयार केली गेली आहे, आणि आता फ़क्त स्त्रोत मोडमध्ये जाऊनच बदलली जाऊ शकते",
+ "cite-ve-toolbar-group-label": "संदर्भ जोडा",
+ "cite-ve-othergroup-item": "$1 संदर्भ",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "संदर्भ",
+ "visualeditor-internal-list-diff-group-name-mwreference": "संदर्भगटाचे नाव: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ms.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ms.json
new file mode 100644
index 00000000..f1a93784
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ms.json
@@ -0,0 +1,53 @@
+{
+ "@metadata": {
+ "authors": [
+ "Anakmalaysia",
+ "Aurora",
+ "Pizza1016",
+ "Karmadunya9-",
+ "Macofe"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "Buku",
+ "visualeditor-cite-tool-name-journal": "Jurnal",
+ "visualeditor-cite-tool-name-news": "Berita",
+ "visualeditor-cite-tool-name-web": "Laman web",
+ "cite-tool-definition.json": "null",
+ "cite-ve-changedesc-ref-group-both": "Kumpulan rujukan ditukar dari \"$1\" ke \"$2\"",
+ "cite-ve-changedesc-ref-group-from": "Kumpulan rujukan ditukar dari \"$1\" ke kumpulan am",
+ "cite-ve-changedesc-ref-group-to": "Kumpulan rujukan ditukar dari kumpulan am ke \"$1\"",
+ "cite-ve-changedesc-reflist-group-both": "Kumpulan senarai rujukan ditukar dari \"$1\" ke \"$2\"",
+ "cite-ve-changedesc-reflist-group-from": "Kumpulan senarai rujukan ditukar dari \"$1\" ke kumpulan am",
+ "cite-ve-changedesc-reflist-group-to": "Kumpulan senarai rujukan ditukar dari kumpulan am ke \"$1\"",
+ "cite-ve-changedesc-reflist-item-id": "Indeks rujukan diubah",
+ "cite-ve-dialog-reference-editing-reused": "Rujukan ini digunakan $1 kali di laman ini.",
+ "cite-ve-dialog-reference-options-group-label": "Gunakan kumpulan ini",
+ "cite-ve-dialog-reference-options-group-placeholder": "Rujukan umum",
+ "cite-ve-dialog-reference-options-name-label": "Gunakan semula dengan nama ini",
+ "cite-ve-dialog-reference-options-responsive-label": "Gunakan tatasusun lajur responsif",
+ "cite-ve-dialog-reference-options-section": "Pilihan",
+ "cite-ve-dialog-reference-placeholder": "Tulis atau tampalkan rujukan di sini, atau sisipkan templat petikan.",
+ "cite-ve-dialog-reference-title": "Rujukan",
+ "cite-ve-dialog-reference-useexisting-full-label": "Gunakan semula petikan yang sudah pun wujud di laman ini",
+ "cite-ve-dialog-reference-useexisting-label": "Gunakan rujukan yang sedia ada",
+ "cite-ve-dialog-reference-useexisting-tool": "Guna semula",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Senarai rujukan am",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Senarai rujukan am untuk kumpulan \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Senarai rujukan",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Meningkatkan mutu kandungan dengan menambah sumber maklumat. Boleh dipetik dari buku, akhbar mahupun laman web.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Petikan",
+ "cite-ve-dialogbutton-reference-full-label": "Bentuk asas",
+ "cite-ve-dialogbutton-reference-title": "Rujukan",
+ "cite-ve-dialogbutton-reference-tooltip": "Asas",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Senarai rujukan",
+ "cite-ve-reference-input-placeholder": "Cari petikan sedia ada",
+ "cite-ve-referenceslist-isempty": "Tidak terdapat rujukan dengan kumpulan \"$1\" pada halaman ini untuk disertakan dalam senarai ini.",
+ "cite-ve-referenceslist-isempty-default": "Tidak terdapat rujukan pada halaman ini untuk disertakan dalam senarai ini.",
+ "cite-ve-referenceslist-missingref": "Rujukan ini ditakrifkan dalam templat atau seumpamanya, maka buat masa sekarang, ia boleh disunting dalam mod sumber sahaja.",
+ "cite-ve-referenceslist-missingreflist": "Senarai rujukan ini dihasilkan oleh templat, oleh itu kini hanya boleh disunting dalam mod sumber.",
+ "cite-ve-toolbar-group-label": "Petik",
+ "cite-ve-othergroup-item": "Rujukan $1",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Rujukan",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Nama kumpulan rujukan: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/mt.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mt.json
new file mode 100644
index 00000000..88207f9c
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mt.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chrisportelli",
+ "CharlieTheCabbie",
+ "Leli Forte"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Ktieb",
+ "visualeditor-cite-tool-name-journal": "Rivista",
+ "visualeditor-cite-tool-name-news": "Aħbarijiet",
+ "visualeditor-cite-tool-name-web": "Sit tal-web",
+ "cite-ve-dialog-reference-title": "Referenza",
+ "cite-ve-dialog-referenceslist-title": "Lista ta' referenzi"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/mwl.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mwl.json
new file mode 100644
index 00000000..51e90d0d
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mwl.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "MokaAkashiyaPT",
+ "Athena in Wonderland"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Lhibro"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/my.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/my.json
new file mode 100644
index 00000000..4c6f18b1
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/my.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sanlinnaing",
+ "Zawthet"
+ ]
+ },
+ "cite-ve-dialogbutton-reference-title": "ရည်ညွှန်း"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/myv.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/myv.json
new file mode 100644
index 00000000..6d591d72
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/myv.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Botuzhaleny-sodamo"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/mzn.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mzn.json
new file mode 100644
index 00000000..c217ddab
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/mzn.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "محک"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/nah.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nah.json
new file mode 100644
index 00000000..44884231
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nah.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Neil P. Quinn",
+ "Taresi"
+ ]
+ },
+ "cite-ve-toolbar-group-label": "Titlahtolcuepaz"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/nan.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nan.json
new file mode 100644
index 00000000..a8f18d27
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nan.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ianbu"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/nap.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nap.json
new file mode 100644
index 00000000..922a7973
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nap.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chelin",
+ "Chrisportelli",
+ "PiRSquared17",
+ "C.R.",
+ "Candalua"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Libbro",
+ "visualeditor-cite-tool-name-journal": "Giurnale",
+ "visualeditor-cite-tool-name-news": "Nutizie",
+ "visualeditor-cite-tool-name-web": "Sito web",
+ "cite-ve-dialog-reference-editing-reused": "Stu riferimento è ausato $1 {{PLURAL:$1|vota|vote}} ncopp'a sta paggena.",
+ "cite-ve-dialog-reference-options-group-label": "Ausa chisto gruppo",
+ "cite-ve-dialog-reference-options-group-placeholder": "Riferimente ggenerale",
+ "cite-ve-dialog-reference-options-name-label": "Re-ausà stu nomme",
+ "cite-ve-dialog-reference-options-section": "Opzione",
+ "cite-ve-dialog-reference-title": "Riferimiento",
+ "cite-ve-dialog-reference-useexisting-full-label": "Re-ausà na citazione mò prisente dint' 'a paggena",
+ "cite-ve-dialog-reference-useexisting-label": "Ausa nu riferimento esistente",
+ "cite-ve-dialog-reference-useexisting-tool": "Re-ausà",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Elenco 'e note generale",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Lista 'e riferimente p' 'o gruppo \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Elenco riferimiente",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Migliora 'e cuntenute jognenno surgente 'e nfurmazione. Putite cità libbre, ghiurnale e site web.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citaziune",
+ "cite-ve-dialogbutton-reference-full-label": "Modulo bbase",
+ "cite-ve-dialogbutton-reference-title": "Riferimiento",
+ "cite-ve-dialogbutton-reference-tooltip": "Base",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Elenco riferimiente",
+ "cite-ve-reference-input-placeholder": "Cirche cu 'e citaziune 'e mò",
+ "cite-ve-referenceslist-isempty": "Nun ce stanno riferimente int'o gruppo \"$1\" ncopp'a sta paggena pe' ll'azzeccà dint'a sta lista.",
+ "cite-ve-referenceslist-isempty-default": "Nun ce stanno riferimente ncopp'a sta paggena pe' ll'azzeccà dint'a sta lista.",
+ "cite-ve-referenceslist-missingref": "Chista nota è definita int'a nu modello o dint'a n'atu blocco generato e p' 'o mumento se può cagnà sulamente cagnanno direttamente 'o codece.",
+ "cite-ve-toolbar-group-label": "Citaziona"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/nb.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nb.json
new file mode 100644
index 00000000..b84dd60c
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nb.json
@@ -0,0 +1,63 @@
+{
+ "@metadata": {
+ "authors": [
+ "Danmichaelo",
+ "Event",
+ "Jeblad",
+ "Laaknor",
+ "Njardarlogar",
+ "Gloria sah",
+ "Apple farmer",
+ "Kingu",
+ "Nghtwlkr",
+ "Jdforrester",
+ "Emilbk",
+ "Cocu",
+ "Tarjeimo",
+ "Telaneo",
+ "Jon Harald Søby"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "Bok",
+ "visualeditor-cite-tool-name-journal": "Tidsskrift",
+ "visualeditor-cite-tool-name-news": "Nyhet",
+ "visualeditor-cite-tool-name-web": "Nettside",
+ "cite-tool-definition.json": "null",
+ "cite-ve-changedesc-ref-group-both": "Referansegruppe endret fra «$1» til «$2»",
+ "cite-ve-changedesc-ref-group-from": "Referansegruppe endret fra «$1» til den generelle gruppa",
+ "cite-ve-changedesc-ref-group-to": "Referansegruppe endret fra den generelle gruppa til «$1»",
+ "cite-ve-changedesc-reflist-group-both": "Referanselistegruppe endret fra «$1» til «$2»",
+ "cite-ve-changedesc-reflist-group-from": "Referanselistegruppe endret fra «$1» til den generelle gruppa",
+ "cite-ve-changedesc-reflist-group-to": "Referanselistegruppe endret fra den generelle gruppa til «$1»",
+ "cite-ve-changedesc-reflist-item-id": "Referanseindeks endret",
+ "cite-ve-dialog-reference-editing-reused": "Denne referansen er brukt {{PLURAL:$1|én gang|$1 ganger}} på denne siden.",
+ "cite-ve-dialog-reference-options-group-label": "Bruk denne gruppen",
+ "cite-ve-dialog-reference-options-group-placeholder": "Generelle referanser",
+ "cite-ve-dialog-reference-options-name-label": "Gjenbruk med dette navnet",
+ "cite-ve-dialog-reference-options-responsive-label": "Bruk responsivt kolonneoppsett",
+ "cite-ve-dialog-reference-options-section": "Valg",
+ "cite-ve-dialog-reference-placeholder": "Skriv eller lim inn referansen her, eller sett inn en kildemal.",
+ "cite-ve-dialog-reference-title": "Referanse",
+ "cite-ve-dialog-reference-useexisting-full-label": "Gjenbruk et sitat som allerede finnes på siden",
+ "cite-ve-dialog-reference-useexisting-label": "Bruk en eksisterende kilde",
+ "cite-ve-dialog-reference-useexisting-tool": "Gjenbruk",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Liste over generelle referanser",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Liste over referanser i gruppen «$1»",
+ "cite-ve-dialog-referenceslist-title": "Referanseliste",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Forbedrer kvaliteten på innholdet ved å legge til kildehenvisninger. Du kan sitere fra bøker, aviser og websider med mer.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Siteringer",
+ "cite-ve-dialogbutton-reference-full-label": "Standardform",
+ "cite-ve-dialogbutton-reference-title": "Referanse",
+ "cite-ve-dialogbutton-reference-tooltip": "Enkel",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Referanseliste",
+ "cite-ve-reference-input-placeholder": "Hva ønsker du å referere til?",
+ "cite-ve-referenceslist-isempty": "Det finnes ingen kildehenvisninger i gruppen «$1» på denne siden som kan inkluderes i denne lista.",
+ "cite-ve-referenceslist-isempty-default": "Det er ingen kildehenvisninger på denne siden som kan inkluderes i denne lista.",
+ "cite-ve-referenceslist-missingref": "Denne kildehenvisningen er definert ved hjelp av en mal eller en annen generert blokk, og kan foreløpig kun redigeres i kildemodus.",
+ "cite-ve-referenceslist-missingreflist": "Denne referanselista genereres av en mal, og kan for tiden kun redigeres i kildemodus.",
+ "cite-ve-toolbar-group-label": "Angi kilde",
+ "cite-ve-othergroup-item": "$1 referanse",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Referanser",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Referansegruppenavn: «$1»"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/nds-nl.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nds-nl.json
new file mode 100644
index 00000000..f951813e
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nds-nl.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Servien"
+ ]
+ },
+ "cite-ve-dialog-reference-options-group-label": "Disse groep gebruken",
+ "cite-ve-dialog-reference-options-name-label": "Disse naam hergebruken",
+ "cite-ve-dialog-reference-options-section": "Opsies",
+ "cite-ve-dialog-reference-title": "Referensie",
+ "cite-ve-dialog-reference-useexisting-label": "Gebruuk n bestaonde referensie",
+ "cite-ve-dialog-reference-useexisting-tool": "Hergebruken",
+ "cite-ve-dialog-referenceslist-title": "Referensielieste",
+ "cite-ve-dialogbutton-reference-tooltip": "Referensie",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Referensielieste",
+ "cite-ve-reference-input-placeholder": "Waor wi'j an refereren?",
+ "cite-ve-referenceslist-isempty": "Der bin gien referensies mit de groep \"$1\" op disse zied um bie disse lieste te doon.",
+ "cite-ve-referenceslist-missingref": "Disse referensie steet in n mal of n aander soort egenereerd blok, en ku'j veurlopig allinnig mer in de bronkode bewarken.",
+ "cite-ve-toolbar-group-label": "Siteren"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/nds.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nds.json
new file mode 100644
index 00000000..8f68def1
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nds.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Zylbath"
+ ]
+ },
+ "cite-ve-dialog-reference-options-group-label": "Düsse Grupp bruken",
+ "cite-ve-dialog-reference-options-name-label": "Düssen Naam wiederbruken",
+ "cite-ve-dialog-reference-options-section": "Optschonen",
+ "cite-ve-dialog-reference-title": "Enkelnawies",
+ "cite-ve-dialog-reference-useexisting-label": "Een vörhannen Enkelnawies bruken",
+ "cite-ve-dialog-referenceslist-title": "Liest vun Enkelnawiesen",
+ "cite-ve-dialogbutton-reference-tooltip": "Enkelnawies",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Liest vun Enkelnawiesen"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ne.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ne.json
new file mode 100644
index 00000000..d9d93d16
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ne.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "RajeshPandey",
+ "सरोज कुमार ढकाल",
+ "Ganesh Paudel",
+ "बिप्लब आनन्द",
+ "Nirjal stha",
+ "NehalDaveND",
+ "राम प्रसाद जोशी"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "पुस्तकहरू",
+ "visualeditor-cite-tool-name-journal": "पत्रिका",
+ "visualeditor-cite-tool-name-news": "समाचार",
+ "visualeditor-cite-tool-name-web": "वेबसाइट",
+ "cite-ve-dialog-reference-options-section": "विकल्पहरू",
+ "cite-ve-dialog-reference-title": "सन्दर्भ सामग्रीहरू",
+ "cite-ve-dialogbutton-reference-tooltip": "सामान्य",
+ "cite-ve-toolbar-group-label": "उर्ध्वभरण"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/nl-informal.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nl-informal.json
new file mode 100644
index 00000000..24c73913
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nl-informal.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Carsrac"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/nl.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nl.json
new file mode 100644
index 00000000..05e4d164
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nl.json
@@ -0,0 +1,70 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bluyten",
+ "Breghtje",
+ "Catrope",
+ "Flightmare",
+ "Hansmuller",
+ "Jdforrester",
+ "Keegan",
+ "Konovalov",
+ "RajeshPandey",
+ "Romaine",
+ "SPQRobin",
+ "Saruman",
+ "Siebrand",
+ "Sjoerddebruin",
+ "Southparkfan",
+ "सरोज कुमार ढकाल",
+ "Kim Bruning",
+ "Niknetniko",
+ "Arent",
+ "McDutchie",
+ "Gloria sah",
+ "Mar(c)",
+ "Robin0van0der0vliet",
+ "Servien",
+ "TheDJ",
+ "JensRiskin",
+ "MedShot",
+ "Esketti",
+ "FabianRM",
+ "Mbch331",
+ "Mainframe98",
+ "Effeietsanders",
+ "Patio"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Boek",
+ "visualeditor-cite-tool-name-journal": "Tijdschrift",
+ "visualeditor-cite-tool-name-news": "Nieuws",
+ "visualeditor-cite-tool-name-web": "Website",
+ "cite-ve-dialog-reference-editing-reused": "Deze referentie wordt $1 {{PLURAL:$1|keer}} gebruikt op deze pagina.",
+ "cite-ve-dialog-reference-options-group-label": "Deze groep gebruiken",
+ "cite-ve-dialog-reference-options-group-placeholder": "Algemene verwijzingen",
+ "cite-ve-dialog-reference-options-name-label": "Hergebruiken op naam",
+ "cite-ve-dialog-reference-options-section": "Opties",
+ "cite-ve-dialog-reference-placeholder": "Schrijf of voeg hier uw referentie in, of gebruik een citeersjabloon.",
+ "cite-ve-dialog-reference-title": "Referentie",
+ "cite-ve-dialog-reference-useexisting-full-label": "Een citaat dat al bestaat op deze pagina opnieuw gebruiken",
+ "cite-ve-dialog-reference-useexisting-label": "Bestaande referentie gebruiken",
+ "cite-ve-dialog-reference-useexisting-tool": "Hergebruiken",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Algemene lijst met bronnen",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Lijst met bronnen voor de groep \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Referentielijst",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Verbetert uw inhoud door het toevoegen van bronnen voor gegevens. U kunt citeren uit boeken, kranten en andere websites.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citaten",
+ "cite-ve-dialogbutton-reference-full-label": "Basisvorm",
+ "cite-ve-dialogbutton-reference-title": "Referentie",
+ "cite-ve-dialogbutton-reference-tooltip": "Basis",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Referentielijst",
+ "cite-ve-reference-input-placeholder": "Zoeken in huidige citaten",
+ "cite-ve-referenceslist-isempty": "Er zijn geen referenties op deze pagina met de groep \"$1\" om toe te voegen aan deze lijst.",
+ "cite-ve-referenceslist-isempty-default": "Er zijn op deze pagina geen referenties die in deze lijst opgenomen kunnen worden.",
+ "cite-ve-referenceslist-missingref": "Deze referentie bevindt zich in een sjabloon of een ander soort gegenereerd blok en kan voorlopig alleen in de broncodemodus bewerkt worden.",
+ "cite-ve-referenceslist-missingref-in-list": "Deze referentie staat in een sjabloon of elders gemaakt blok waarvan men nu alleen broncode kan zien.",
+ "cite-ve-toolbar-group-label": "Citeren",
+ "cite-ve-othergroup-item": "$1 referentie",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Referenties"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/nn.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nn.json
new file mode 100644
index 00000000..7abf2827
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/nn.json
@@ -0,0 +1,30 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jeblad",
+ "Njardarlogar",
+ "Ranveig"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Bok",
+ "visualeditor-cite-tool-name-journal": "Tidsskrift",
+ "visualeditor-cite-tool-name-news": "Nyhende",
+ "visualeditor-cite-tool-name-web": "Nettstad",
+ "cite-ve-dialog-reference-editing-reused": "Denne referansen er nytta {{PLURAL:$1|éin gong|$1 gonger}} på denne sida.",
+ "cite-ve-dialog-reference-options-group-label": "Bruk denne gruppa",
+ "cite-ve-dialog-reference-options-group-placeholder": "Ålmenne kjelder",
+ "cite-ve-dialog-reference-options-name-label": "Bruk på nytt med dette namnet",
+ "cite-ve-dialog-reference-options-section": "Val",
+ "cite-ve-dialog-reference-title": "Kjelde",
+ "cite-ve-dialog-reference-useexisting-full-label": "Bruk ei kjelde som alt finst på sida på nytt",
+ "cite-ve-dialog-reference-useexisting-label": "Bruk ei eksisterande kjelde",
+ "cite-ve-dialog-reference-useexisting-tool": "Bruk kjelde om att",
+ "cite-ve-dialog-referenceslist-title": "Kjeldeliste",
+ "cite-ve-dialogbutton-reference-tooltip": "Enkel",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Kjeldeliste",
+ "cite-ve-reference-input-placeholder": "Kva ynskjer du å visa til?",
+ "cite-ve-referenceslist-isempty": "Det finst ingen kjelder på sida med gruppa «$1» som kan leggjast til i lista.",
+ "cite-ve-referenceslist-isempty-default": "Det finst ingen kjelder på sida som kan leggjast til i lista.",
+ "cite-ve-referenceslist-missingref": "Denne kjelda er definert i ein mal eller annan oppretta blokk og kan enn så lenge berre endrast som wikitekst.",
+ "cite-ve-toolbar-group-label": "Siter"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/oc.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/oc.json
new file mode 100644
index 00000000..1bfb85f2
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/oc.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jfblanc",
+ "Cedric31",
+ "Fitoschido",
+ "McDutchie",
+ "Unuaiga"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Libre",
+ "visualeditor-cite-tool-name-journal": "Jornal",
+ "visualeditor-cite-tool-name-news": "Actualitats",
+ "visualeditor-cite-tool-name-web": "Site web",
+ "cite-ve-dialog-reference-options-group-label": "Utilizar aquel grop",
+ "cite-ve-dialog-reference-options-group-placeholder": "Referéncias generalas",
+ "cite-ve-dialog-reference-options-name-label": "Reütilizar per aquel nom",
+ "cite-ve-dialog-reference-options-section": "Opcions",
+ "cite-ve-dialog-reference-title": "Referéncia",
+ "cite-ve-dialog-reference-useexisting-full-label": "Reütilizar una referéncia qu'existís ja sus aquesta pagina",
+ "cite-ve-dialog-reference-useexisting-label": "Reütilizar una referéncia",
+ "cite-ve-dialog-reference-useexisting-tool": "Reütilizar",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Lista de referéncias generalas",
+ "cite-ve-dialog-referenceslist-title": "Lista de referéncias",
+ "cite-ve-dialogbutton-reference-tooltip": "De basa",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lista de referéncias",
+ "cite-ve-reference-input-placeholder": "A qué volètz apondre una referéncia?",
+ "cite-ve-referenceslist-isempty": "I a pas de referéncia dins lo grop \"$1\" d'aquesta pagina per apondre a aquela lista.",
+ "cite-ve-referenceslist-isempty-default": "I a pas de referéncias dins aquela pagina a apondre a aquela lista.",
+ "cite-ve-referenceslist-missingref": "Aquela referéncia es definida dins un modèl o un autre blòt generat, e pòt per ara èsser modificada sonque en edicion de font.",
+ "cite-ve-referenceslist-missingref-in-list": "Aquela referéncia es definida dins un modèl o un autre blòt generat, per ara e pòt èsser previsualizada sonque en edicion de font.",
+ "cite-ve-toolbar-group-label": "Citar"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/olo.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/olo.json
new file mode 100644
index 00000000..aa9842b2
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/olo.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ilja.mos",
+ "Mashoi7"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Kirju",
+ "visualeditor-cite-tool-name-journal": "Žurnualu",
+ "visualeditor-cite-tool-name-news": "Uudizet",
+ "visualeditor-cite-tool-name-web": "Internetsaitu",
+ "cite-ve-dialog-reference-editing-reused": "Tädä lähtehty käytetäh $1 {{PLURAL:$1|kerdua}} täl sivul.",
+ "cite-ve-dialog-reference-options-group-label": "Käytä tädä joukkuo",
+ "cite-ve-dialog-reference-options-group-placeholder": "Ylehizet lähtehet",
+ "cite-ve-dialog-reference-options-name-label": "Käytä uvvessah täl nimel",
+ "cite-ve-dialog-reference-options-section": "Azetukset",
+ "cite-ve-dialog-reference-title": "Lähteh",
+ "cite-ve-dialog-reference-useexisting-full-label": "Käytä uvvessah jo täl sivul olijua sitattua",
+ "cite-ve-dialog-reference-useexisting-label": "Käytä olemasolijua lähtehty",
+ "cite-ve-dialog-reference-useexisting-tool": "Käytä uvvessah",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Luvettelo ylehizis lähtehis",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Luvettelo joukon \"$1\" lähtehis",
+ "cite-ve-dialog-referenceslist-title": "Lähtehluvettelo",
+ "cite-ve-dialogbutton-reference-full-label": "Perusformu",
+ "cite-ve-dialogbutton-reference-title": "Lähteh",
+ "cite-ve-dialogbutton-reference-tooltip": "Perus",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lähtehluvettelo",
+ "cite-ve-reference-input-placeholder": "Eči nygözis citacielois",
+ "cite-ve-referenceslist-isempty": "Täl sivul ei ole lähtehii joukos \"$1\", kudamii sižällyttiä luvettelos.",
+ "cite-ve-referenceslist-isempty-default": "Täl sivul ei ole lähtehii, kudamii sižällyttiä luvettelos.",
+ "cite-ve-referenceslist-missingref": "Tämä lähteh on miärätty šablonas libo automuattizesti luajittu da sidä voi edituija vaiku wikitekstutilas.",
+ "cite-ve-toolbar-group-label": "Lähtiet"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/om.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/om.json
new file mode 100644
index 00000000..a72e5c49
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/om.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cedric31",
+ "Tumsaa"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Kitaaba",
+ "visualeditor-cite-tool-name-journal": "Joornaalii",
+ "visualeditor-cite-tool-name-news": "Oduu",
+ "visualeditor-cite-tool-name-web": "Weebsaayitii",
+ "cite-ve-dialog-reference-editing-reused": "Wabiin kun si'a $1 {{PLURAL:$1}} fuula kanarratti fayyadame.",
+ "cite-ve-dialog-reference-options-group-label": "Garee kana fayyadami",
+ "cite-ve-dialog-reference-options-group-placeholder": "Wabii waliigalaa",
+ "cite-ve-dialog-reference-options-name-label": "Maqaa kanaan lammata fayyadami",
+ "cite-ve-dialog-reference-options-section": "Filannoo",
+ "cite-ve-dialog-reference-title": "Wabii",
+ "cite-ve-dialog-reference-useexisting-full-label": "Eera duraan fuula kanarra jirutti fayyadami",
+ "cite-ve-dialog-reference-useexisting-label": "Wabii duraan jirutti fayyadami",
+ "cite-ve-dialog-reference-useexisting-tool": "Kan duraan jiru fayyadami",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Tarree wabii waliigalaa",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Tarree wabii kan garee \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Tareeffama wabiiwwanii",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Qabiyyee kee madda odeeffannoo itti dabaluun fooyyessi. Kitaabota, gaazexootaa fi weebsaayitiirraa waraabuu dandeessa.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Waraabbii",
+ "cite-ve-dialogbutton-reference-full-label": "Akaakuu bu'uuraa",
+ "cite-ve-dialogbutton-reference-title": "Wabii",
+ "cite-ve-dialogbutton-reference-tooltip": "Kan bu'uuraa",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Tareeffama wabiiwwanii",
+ "cite-ve-reference-input-placeholder": "Wabii kana keessa barbaadi",
+ "cite-ve-referenceslist-isempty": "Fuula kanarratti, wabiin gareensaa \"$1\" ta'e kan tarree kana keessatti dabalamu hin jiru.",
+ "cite-ve-referenceslist-isempty-default": "Fuula kanarra wabiin tarree keessati mullifamu hin jiru.",
+ "cite-ve-referenceslist-missingref": "Wabiin kun qajojii ykn kutaa biraa keessatti uummame, ammaf lakkaddaan qofa jijjiiramuu danda'a.",
+ "cite-ve-toolbar-group-label": "Eeri"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/or.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/or.json
new file mode 100644
index 00000000..fe5bb218
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/or.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Odisha1",
+ "Psubhashish",
+ "ଶିତିକଣ୍ଠ ଦାଶ",
+ "Jnanaranjan Sahu"
+ ]
+ },
+ "visualeditor-cite-tool-name-journal": "ଜର୍ଣ୍ଣାଲ",
+ "cite-ve-dialog-reference-options-group-label": "ଏହି ଗୋଠକୁ ବ୍ୟବହାର କରନ୍ତୁ",
+ "cite-ve-dialog-reference-options-section": "ବିକଳ୍ପ",
+ "cite-ve-dialog-reference-title": "ଆଧାର",
+ "cite-ve-dialog-reference-useexisting-label": "ଆଗରୁ ଥିବା ଏକ ଆଧାର ବ୍ୟବହାର କରନ୍ତୁ",
+ "cite-ve-dialog-referenceslist-title": "ଆଧାର ଗୁଡ଼ିକର ତାଲିକା",
+ "cite-ve-dialogbutton-reference-tooltip": "ଆଧାର",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "ଆଧାର ଗୁଡ଼ିକର ତାଲିକା"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/os.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/os.json
new file mode 100644
index 00000000..c41ad005
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/os.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amikeco",
+ "Bouron",
+ "Odisha1",
+ "Psubhashish",
+ "ଶିତିକଣ୍ଠ ଦାଶ"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/pa.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/pa.json
new file mode 100644
index 00000000..80d70df7
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/pa.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amikeco",
+ "Babanwalia",
+ "Bouron",
+ "Nasir8891",
+ "Aalam",
+ "Satdeep gill",
+ "Tow"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "ਕਿਤਾਬ",
+ "visualeditor-cite-tool-name-journal": "ਰਸਾਲਾ",
+ "visualeditor-cite-tool-name-news": "ਖ਼ਬਰਾਂ",
+ "visualeditor-cite-tool-name-web": "ਵੈੱਬਸਾਈਟ",
+ "cite-tool-definition.json": "null",
+ "cite-ve-dialog-reference-editing-reused": "ਇਹ ਹਵਾਲਾ ਇਸ ਸਫ਼ੇ ਉੱਤੇ $1 {{PLURAL:$1|ਵਾਰੀ}} ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।",
+ "cite-ve-dialog-reference-options-group-label": "ਇਹ ਸਮੂਹ ਵਰਤੋ",
+ "cite-ve-dialog-reference-options-group-placeholder": "ਆਮ ਹਵਾਲੇ",
+ "cite-ve-dialog-reference-options-name-label": "ਇਸੇ ਨਾਂ ਨਾਲ ਫੇਰ ਵਰਤੋ",
+ "cite-ve-dialog-reference-options-section": "ਵਿਕਲਪ",
+ "cite-ve-dialog-reference-title": "ਹਵਾਲਾ",
+ "cite-ve-dialog-reference-useexisting-label": "ਮੌਜੂਦਾ ਹਵਾਲਾ ਵਰਤੋ",
+ "cite-ve-dialog-reference-useexisting-tool": "ਮੁੜ-ਵਰਤੋਂ",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "ਆਮ ਹਵਾਲਿਆਂ ਦੀ ਸੂਚੀ",
+ "cite-ve-dialog-referenceslist-title": "ਹਵਾਲਾ ਸੂਚੀ",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "ਹਵਾਲੇ",
+ "cite-ve-dialogbutton-reference-full-label": "ਮੁੱਢਲੀ ਫਾਰਮ",
+ "cite-ve-dialogbutton-reference-title": "ਹਵਾਲਾ",
+ "cite-ve-dialogbutton-reference-tooltip": "ਮੁਢਲੀ",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "ਹਵਾਲਾ ਸੂਚੀ",
+ "cite-ve-referenceslist-isempty-default": "ਇਸ ਸੂਚੀ ਵਿੱਚ ਸ਼ਾਮਿਲ ਕਰਨ ਲਈ ਇਸ ਸਫ਼ੇ ਉੱਤੇ ਕੋਈ ਹਵਾਲੇ ਨਹੀਂ ਹਨ।",
+ "cite-ve-toolbar-group-label": "ਹਵਾਲਾ",
+ "cite-ve-othergroup-item": "$1 ਹਵਾਲਾ"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/pam.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/pam.json
new file mode 100644
index 00000000..e7a79ba8
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/pam.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Leeheonjin"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/pfl.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/pfl.json
new file mode 100644
index 00000000..4312e7af
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/pfl.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Manuae"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Buch",
+ "visualeditor-cite-tool-name-journal": "Zaidschrifd",
+ "visualeditor-cite-tool-name-news": "Naijischkaide",
+ "visualeditor-cite-tool-name-web": "Websaid",
+ "cite-ve-dialog-reference-options-group-label": "Nemm die Grubb",
+ "cite-ve-dialog-reference-options-group-placeholder": "Allgmoine Änzlnochwees",
+ "cite-ve-dialog-reference-options-name-label": "De Nome waidanemme",
+ "cite-ve-dialog-reference-options-section": "Meschlischkaide",
+ "cite-ve-dialog-reference-title": "Änzlnochwees",
+ "cite-ve-dialog-reference-useexisting-label": "Nemmen Änzlnochwees, wus hodd",
+ "cite-ve-dialog-referenceslist-title": "Lisch vunde Änzlnochwees",
+ "cite-ve-dialogbutton-reference-tooltip": "Änzlnochwees",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lisch vunde Änzlnochwees",
+ "cite-ve-toolbar-group-label": "Zidaad"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/pl.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/pl.json
new file mode 100644
index 00000000..40f0bf76
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/pl.json
@@ -0,0 +1,61 @@
+{
+ "@metadata": {
+ "authors": [
+ "Babanwalia",
+ "Chrumps",
+ "Matma Rex",
+ "Mikołka",
+ "Nasir8891",
+ "Odie2",
+ "Rzuwig",
+ "Tar Lócesilion",
+ "Ty221",
+ "WTM",
+ "Woytecr",
+ "Wpedzich",
+ "Vuh",
+ "Dalis",
+ "Jacenty359",
+ "Matik7",
+ "Alan ffm",
+ "Andrzej aa",
+ "Rezonansowy",
+ "Peter Bowman",
+ "Devwebtel",
+ "Jdforrester",
+ "The Polish",
+ "Doctore",
+ "InternerowyGołąb"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Książka",
+ "visualeditor-cite-tool-name-journal": "Czasopismo",
+ "visualeditor-cite-tool-name-news": "Gazeta",
+ "visualeditor-cite-tool-name-web": "Strona internetowa",
+ "cite-ve-dialog-reference-editing-reused": "Ten przypis jest używany $1 {{PLURAL:$1|raz|razy}} na tej stronie",
+ "cite-ve-dialog-reference-options-group-label": "Użyj grupy",
+ "cite-ve-dialog-reference-options-group-placeholder": "Zwykłe przypisy",
+ "cite-ve-dialog-reference-options-name-label": "Wielokrotne użycie pod taką nazwą",
+ "cite-ve-dialog-reference-options-section": "Opcje",
+ "cite-ve-dialog-reference-title": "Przypis",
+ "cite-ve-dialog-reference-useexisting-full-label": "Wykorzystaj przypis już użyty na tej stronie",
+ "cite-ve-dialog-reference-useexisting-label": "Użyj istniejącego przypisu",
+ "cite-ve-dialog-reference-useexisting-tool": "Użyj istniejącego",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Lista ogólnych (niezgrupowanych) przypisów",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Lista przypisów należących do grupy „$1”",
+ "cite-ve-dialog-referenceslist-title": "Lista przypisów",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Popraw swoją treść podając źródła informacji. Możesz korzystać z książek, czasopism i stron internetowych.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Przypisy",
+ "cite-ve-dialogbutton-reference-full-label": "Zwykły wygląd",
+ "cite-ve-dialogbutton-reference-title": "Przypis",
+ "cite-ve-dialogbutton-reference-tooltip": "Zwykły przypis",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lista przypisów",
+ "cite-ve-reference-input-placeholder": "Wyszukiwanie spośród użytych przypisów",
+ "cite-ve-referenceslist-isempty": "Na tej stronie nie ma przypisów z grupy \"$1\", aby uwzględnić je na tej liście.",
+ "cite-ve-referenceslist-isempty-default": "Na tej stronie nie ma żadnych przypisów, aby uwzględnić je na tej liście.",
+ "cite-ve-referenceslist-missingref": "Ten przypis jest zdefiniowany w szablonie lub wygenerowany w inny sposób. Teraz może być edytowany wyłącznie w edytorze kodu źródłowego.",
+ "cite-ve-toolbar-group-label": "Przypis",
+ "cite-ve-othergroup-item": "Przypis $1",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Przypisy",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Grupa przypisów: $1"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/pms.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/pms.json
new file mode 100644
index 00000000..d81b1faa
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/pms.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Borichèt",
+ "Dragonòt",
+ "පසිඳු කාවින්ද",
+ "McDutchie"
+ ]
+ },
+ "cite-ve-dialog-reference-options-group-label": "Dovré sa partìa",
+ "cite-ve-dialog-reference-options-group-placeholder": "Arferiment generaj",
+ "cite-ve-dialog-reference-options-name-label": "Dovré torna con ës nòm",
+ "cite-ve-dialog-reference-options-section": "Opsion",
+ "cite-ve-dialog-reference-title": "Arferiment",
+ "cite-ve-dialog-reference-useexisting-label": "Dovré n'arferiment esistent",
+ "cite-ve-dialog-referenceslist-title": "Lista d'arferiment",
+ "cite-ve-dialogbutton-reference-tooltip": "Arferiment",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lista d'arferiment",
+ "cite-ve-reference-input-placeholder": "A lòn ch'a veul deje n'arferiment?",
+ "cite-ve-referenceslist-isempty": "A-i é gnun-a rëspondensa con la partìa «$1» su sta pàgina da buté an costa lista.",
+ "cite-ve-referenceslist-isempty-default": "A-i é gnun-a rëspondensa an costa pàgina da buté an costa lista.",
+ "cite-ve-referenceslist-missingref": "St'arferiment a l'é definì an në stamp o n'àutr blòch generà, e për adess a peul mach esse modificà an manera sorgiss"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/pnb.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/pnb.json
new file mode 100644
index 00000000..75bff4ef
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/pnb.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Khalid Mahmood"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/prs.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/prs.json
new file mode 100644
index 00000000..9c5df7a6
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/prs.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mjbmr"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ps.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ps.json
new file mode 100644
index 00000000..7d9208f6
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ps.json
@@ -0,0 +1,30 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ahmed-Najib-Biabani-Ibrahimkhel"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "کتاب",
+ "visualeditor-cite-tool-name-journal": "مجله",
+ "visualeditor-cite-tool-name-news": "خبرونه",
+ "visualeditor-cite-tool-name-web": "وېبځی",
+ "cite-ve-dialog-reference-editing-reused": "په همدې مخ دا سرچينه $1 {{PLURAL:$1|واره}} کارېدلې.",
+ "cite-ve-dialog-reference-options-group-label": "دا ډله کارول",
+ "cite-ve-dialog-reference-options-group-placeholder": "ټولگړې سرچينې",
+ "cite-ve-dialog-reference-options-name-label": "په دغه نوم بياکارول",
+ "cite-ve-dialog-reference-options-section": "خوښنې",
+ "cite-ve-dialog-reference-title": "سرچينه",
+ "cite-ve-dialog-reference-useexisting-label": "يوه شته سرچينه کارول",
+ "cite-ve-dialog-reference-useexisting-tool": "بياکارول",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "د ټوليزو سرچينو لړليک",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "د \"$1\" ډلې لپاره د سرچينو لړليک",
+ "cite-ve-dialog-referenceslist-title": "د سرچينو لړليک",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "اخځونه",
+ "cite-ve-dialogbutton-reference-full-label": "بنسټيزه بڼه",
+ "cite-ve-dialogbutton-reference-title": "سرچينه",
+ "cite-ve-dialogbutton-reference-tooltip": "بنسټيز",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "د سرچينو لړليک",
+ "cite-ve-reference-input-placeholder": "په اوسنيو اخځونو کې پلټل",
+ "cite-ve-toolbar-group-label": "اخځ",
+ "cite-ve-othergroup-item": "$1 سرچينه"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/pt-br.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/pt-br.json
new file mode 100644
index 00000000..05eb1a04
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/pt-br.json
@@ -0,0 +1,77 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cainamarques",
+ "Dianakc",
+ "Fúlvio",
+ "Helder.wiki",
+ "HenriqueCrang",
+ "Jaideraf",
+ "Luckas",
+ "OTAVIO1981",
+ 555,
+ "Gloria sah",
+ "Elival",
+ "Amgauna",
+ "Fabsouza1",
+ "Agripinoduarte",
+ "Opraco",
+ "Tuliouel",
+ "Rodrigo codignoli",
+ "Teles",
+ "He7d3r",
+ "Fasouzafreitas",
+ "TheEduGobi",
+ "TheGabrielZaum",
+ "!Silent",
+ "McDutchie",
+ "Felipe L. Ewald",
+ "Eduardo Addad de Oliveira"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "nulo",
+ "visualeditor-cite-tool-name-book": "Livro",
+ "visualeditor-cite-tool-name-journal": "Periódico",
+ "visualeditor-cite-tool-name-news": "Notícias",
+ "visualeditor-cite-tool-name-web": "Site",
+ "cite-tool-definition.json": "nulo",
+ "cite-ve-changedesc-ref-group-both": "O grupo de referência mudou de \"$1\" para \"$2\"",
+ "cite-ve-changedesc-ref-group-from": "O grupo de referência mudou de \"$1\" para o grupo geral",
+ "cite-ve-changedesc-ref-group-to": "O grupo de referência mudou do grupo geral para \"$1\"",
+ "cite-ve-changedesc-reflist-group-both": "O grupo de lista de referências mudou de \"$1\" para \"$2\"",
+ "cite-ve-changedesc-reflist-group-from": "Grupo de lista de referências alterado de \"$1\" para o grupo geral",
+ "cite-ve-changedesc-reflist-group-to": "Grupo de lista de referências alterado do grupo geral para \"$1\"",
+ "cite-ve-changedesc-reflist-responsive-set": "Lista de referências alterada para mostrar nas colunas de resposta rápida",
+ "cite-ve-changedesc-reflist-responsive-unset": "Lista de referências alterada para mostrar numa só coluna",
+ "cite-ve-changedesc-reflist-item-id": "Índice da referência alterado",
+ "cite-ve-dialog-reference-editing-reused": "Esta referência foi usada $1 {{PLURAL:$1|vezes}} nesta página.",
+ "cite-ve-dialog-reference-options-group-label": "Usar este grupo",
+ "cite-ve-dialog-reference-options-group-placeholder": "Referências gerais",
+ "cite-ve-dialog-reference-options-name-label": "Reutilizar por este nome",
+ "cite-ve-dialog-reference-options-responsive-label": "Usar disposição de resposta rápida em colunas",
+ "cite-ve-dialog-reference-options-section": "Opções",
+ "cite-ve-dialog-reference-placeholder": "Escreva ou cole sua referência aqui, ou insira um modelo de citação.",
+ "cite-ve-dialog-reference-title": "Referência",
+ "cite-ve-dialog-reference-useexisting-full-label": "Reusar uma citação que já existe nesta página",
+ "cite-ve-dialog-reference-useexisting-label": "Usar uma referência existente",
+ "cite-ve-dialog-reference-useexisting-tool": "Reusar",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Lista de referências gerais",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Lista de referências para o grupo \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Lista de referências",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Melhora seu conteúdo adicionando fontes de informação. Você pode citar livros, jornais e sites.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citações",
+ "cite-ve-dialogbutton-reference-full-label": "Forma básica",
+ "cite-ve-dialogbutton-reference-title": "Referência",
+ "cite-ve-dialogbutton-reference-tooltip": "Básica",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lista de referências",
+ "cite-ve-reference-input-placeholder": "Buscar dentro das citações atuais",
+ "cite-ve-referenceslist-isempty": "Não há qualquer referência com o grupo \"$1\" nesta página para incluir nesta lista.",
+ "cite-ve-referenceslist-isempty-default": "Não há qualquer referência nesta página para a incluir nesta lista.",
+ "cite-ve-referenceslist-missingref": "Esta referência está definida em uma predefinição ou em um outro bloco gerado e, por enquanto só pode ser editada no código-fonte.",
+ "cite-ve-referenceslist-missingref-in-list": "Esta referência está definida numa predefinição ou outro bloco, e de momento só pode ser antevista no modo de código-fonte.",
+ "cite-ve-referenceslist-missingreflist": "Esta lista de referências é gerada por uma predefinição, e até ao momento só pode ser editada no modo de código-fonte.",
+ "cite-ve-toolbar-group-label": "Citar",
+ "cite-ve-othergroup-item": "Referência $1",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Referências",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Referência do nome do grupo: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/pt.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/pt.json
new file mode 100644
index 00000000..b40f3fe6
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/pt.json
@@ -0,0 +1,70 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cainamarques",
+ "Fúlvio",
+ "GoEThe",
+ "Hamilton Abreu",
+ "Helder.wiki",
+ "HenriqueCrang",
+ "Jaideraf",
+ "Jdforrester",
+ "Luckas",
+ "Vitorvicentevalente",
+ "Imperadeiro98",
+ "SandroHc",
+ "Opraco",
+ "Toliño",
+ "He7d3r",
+ "Amire80",
+ "Imperadeiro90",
+ "Macofe",
+ "Athena in Wonderland"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "nulo",
+ "visualeditor-cite-tool-name-book": "Livro",
+ "visualeditor-cite-tool-name-journal": "Periódico",
+ "visualeditor-cite-tool-name-news": "Notícias",
+ "visualeditor-cite-tool-name-web": "Sítio web",
+ "cite-tool-definition.json": "nulo",
+ "cite-ve-changedesc-ref-group-both": "Grupo da referência alterado de \"$1\" para \"$2\"",
+ "cite-ve-changedesc-ref-group-from": "Grupo da referência alterado de \"$1\" para o grupo geral",
+ "cite-ve-changedesc-ref-group-to": "Grupo da referência alterado do grupo geral para \"$1\"",
+ "cite-ve-changedesc-reflist-group-both": "Grupo da lista de referências alterado de \"$1\" para \"$2\"",
+ "cite-ve-changedesc-reflist-group-from": "Grupo da lista de referências alterado de \"$1\" para o grupo geral",
+ "cite-ve-changedesc-reflist-group-to": "Grupo da lista de referências alterado do grupo geral para \"$1\"",
+ "cite-ve-changedesc-reflist-responsive-set": "Lista de referências alterada para mostrar nas colunas de resposta rápida",
+ "cite-ve-changedesc-reflist-responsive-unset": "Lista de referências alterada para mostrar numa só coluna",
+ "cite-ve-changedesc-reflist-item-id": "Índice da referência alterado",
+ "cite-ve-dialog-reference-editing-reused": "Esta referência é usada $1 {{PLURAL:$1|vezes}} nesta página.",
+ "cite-ve-dialog-reference-options-group-label": "Usar este grupo",
+ "cite-ve-dialog-reference-options-group-placeholder": "Referências gerais",
+ "cite-ve-dialog-reference-options-name-label": "Reutilizar por este nome",
+ "cite-ve-dialog-reference-options-responsive-label": "Usar disposição de resposta rápida em colunas",
+ "cite-ve-dialog-reference-options-section": "Opções",
+ "cite-ve-dialog-reference-placeholder": "Escreva ou copie e insira a sua referência aqui, ou insira uma predefinição de citação.",
+ "cite-ve-dialog-reference-title": "Referência",
+ "cite-ve-dialog-reference-useexisting-full-label": "Reutilizar uma citação que já existe nesta página",
+ "cite-ve-dialog-reference-useexisting-label": "Usar uma referência existente",
+ "cite-ve-dialog-reference-useexisting-tool": "Reutilizar",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Lista de referências gerais",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Lista de referências para o grupo \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Lista de referências",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Melhora o seu conteúdo adicionando fontes de informação. Pode citar livros, periódicos e sítios externos.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citações",
+ "cite-ve-dialogbutton-reference-full-label": "Básica",
+ "cite-ve-dialogbutton-reference-title": "Referência",
+ "cite-ve-dialogbutton-reference-tooltip": "Básica",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lista de referências",
+ "cite-ve-reference-input-placeholder": "Procurar nas citações atuais",
+ "cite-ve-referenceslist-isempty": "Não existem referências com o grupo \"$1\" nesta página para incluir nesta lista.",
+ "cite-ve-referenceslist-isempty-default": "Não há nenhuma referência nesta página para incluir nesta lista.",
+ "cite-ve-referenceslist-missingref": "Esta referência está definida numa predefinição ou noutro bloco, e de momento só pode ser editada através do código-fonte.",
+ "cite-ve-referenceslist-missingref-in-list": "Esta referência está definida numa predefinição ou noutro bloco, e de momento só pode ser antevista no modo de código-fonte.",
+ "cite-ve-referenceslist-missingreflist": "Esta lista de referências é gerada por uma predefinição e por enquanto só pode ser editada no modo de código-fonte.",
+ "cite-ve-toolbar-group-label": "Citar",
+ "cite-ve-othergroup-item": "Referência $1",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Referências",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Nome do grupo da referência: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/qqq.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/qqq.json
new file mode 100644
index 00000000..711b99cc
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/qqq.json
@@ -0,0 +1,76 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amire80",
+ "Beta16",
+ "Erik Moeller",
+ "Jdforrester",
+ "Lloffiwr",
+ "Mooeypoo",
+ "Mormegil",
+ "Nike",
+ "PoLuX124",
+ "Purodha",
+ "Raymond",
+ "Sagan",
+ "Sayak Sarkar",
+ "Shirayuki",
+ "Siebrand",
+ "Trevor Parscal",
+ "UV",
+ "Arjunaraoc",
+ "Robby",
+ "Nemo bis",
+ "Liuxinyu970226",
+ "Matma Rex",
+ "Umherirrender",
+ "McDutchie",
+ "Pikne"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "<!-- THE IGNORING OF THIS MESSAGE SEEMS SOMEWHAT WRONG, SEE https://phabricator.wikimedia.org/T183678 FOR DETAILS\n{{ignored}}\n-->\nLegacy name for cite-tool-definition.json message.\n{{Identical|Null}}",
+ "visualeditor-cite-tool-name-book": "Title of tool that inserts a citation for a book.\n{{Identical|Book}}",
+ "visualeditor-cite-tool-name-journal": "Title of tool that inserts a citation for a journal\n{{Identical|Journal}}",
+ "visualeditor-cite-tool-name-news": "Title of tool that inserts a citation for a news.\n{{Identical|News}}",
+ "visualeditor-cite-tool-name-web": "Title of tool that inserts a citation for a website.\n{{Identical|Website}}",
+ "cite-tool-definition.json": "<!-- THE IGNORING OF THIS MESSAGE SEEMS SOMEWHAT WRONG, SEE https://phabricator.wikimedia.org/T183678 FOR DETAILS\n{{ignored}}\n-->\nJSON list of objects detailing each citation with name (key referring to a visualeditor-cite-tool-name-x message), icon ('ref-cite-book', 'ref-cite-journal', 'ref-cite-news', 'ref-cite-web'), and template name\n{{Identical|Null}}",
+ "cite-ve-changedesc-ref-group-both": "Description of a reference changing group\n\nParameters:\n* $1 – the name of the group it was before\n* $2 – the name of the group it is now",
+ "cite-ve-changedesc-ref-group-from": "Description of a reference changing group to the general group\n\nParameters:\n* $1 – the name of the group it was before",
+ "cite-ve-changedesc-ref-group-to": "Description of a reference changing group from the general group\n\nParameters:\n* $1 – the name of the group it is now",
+ "cite-ve-changedesc-reflist-group-both": "Description of a references list changing group\n\nParameters:\n* $1 – the name of the group it was before\n* $2 – the name of the group it is now",
+ "cite-ve-changedesc-reflist-group-from": "Description of a references list changing group to the general group\n\nParameters:\n* $1 – the name of the group it was before",
+ "cite-ve-changedesc-reflist-group-to": "Description of a references list changing group from the general group\n\nParameters:\n* $1 – the name of the group it is now",
+ "cite-ve-changedesc-reflist-responsive-set": "Description of a references list changing responsiveness to on",
+ "cite-ve-changedesc-reflist-responsive-unset": "Description of a references list changing responsiveness to off",
+ "cite-ve-changedesc-reflist-item-id": "Description of the visible index of a reference changing",
+ "cite-ve-dialog-reference-editing-reused": "Text shown at the top of the reference dialog when editing a reference that is used multiple times.\n\nParameters:\n* $1 - Number of times used. This is always greater than 1.",
+ "cite-ve-dialog-reference-options-group-label": "Label for the reference group input",
+ "cite-ve-dialog-reference-options-group-placeholder": "Placeholder for the reference group input",
+ "cite-ve-dialog-reference-options-name-label": "Label for the reference name input",
+ "cite-ve-dialog-reference-options-responsive-label": "Label for the responsive layout checkbox",
+ "cite-ve-dialog-reference-options-section": "Label for the reference options sub-section.\n{{Identical|Options}}",
+ "cite-ve-dialog-reference-placeholder": "Placeholder text shown in a basic reference when no text has yet been entered.",
+ "cite-ve-dialog-reference-title": "{{Identical|Reference}}",
+ "cite-ve-dialog-reference-useexisting-full-label": "Full length label for the button to choose an existing reference",
+ "cite-ve-dialog-reference-useexisting-label": "Label for button in reference dialog to insert a re-use of an existing reference",
+ "cite-ve-dialog-reference-useexisting-tool": "Used as label for the button to let the user pick an existing reference from a list to insert a duplicate\n{{Identical|Re-use}}",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Message shown to an editor when they click on a reference list without a group, explaining to them that the item will list all \"general\" references on the page.",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Message shown to an editor when they click on a reference list with a group, explaining to them that the item will list all references on the page with that particular group.\n\n* $1 – the name of the group of references (user-entered)",
+ "cite-ve-dialog-referenceslist-title": "{{Identical|References list}}",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Text shown in education popup for the citation dialog tool.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Title shown at the top of education popup for the citation dialog tool.\n{{Identical|Citation}}",
+ "cite-ve-dialogbutton-reference-full-label": "Full length label for the button to choose the basic reference\n\n'''NOTE: \"form\" refers to the type/appearance of reference, not to the kind of form that you can fill in.'''",
+ "cite-ve-dialogbutton-reference-title": "Full title for a context item showing a basic reference. As this does not have the context of other reference types it should just be the word for \"reference\".\n{{Identical|Reference}}",
+ "cite-ve-dialogbutton-reference-tooltip": "An item in the citation menu for a plain reference without any citation template. This should be an adjective for the word \"citation\" or \"reference\". The term should be in contrast to the easier and more powerful citations available when using a template.\n\n{{Identical|Basic}}",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Tooltip for button for dialog that inserts the references list object (<code><nowiki>References list</nowiki></code>).\n{{Identical|References list}}",
+ "cite-ve-reference-input-placeholder": "Placeholder text for reference search field: searches existing on-page references.",
+ "cite-ve-referenceslist-isempty": "Message that appears in the references list when there are no references on the page of that group.\n\nParameters:\n* $1 - reference-group name",
+ "cite-ve-referenceslist-isempty-default": "Message that appears in the references list when there are no references on the page in the default group.",
+ "cite-ve-referenceslist-missingref": "Message that appears as a tooltip on the reference, for references that are generated by a template or are otherwise uneditable.\n\nSee also:\n* {{msg-mw|visualeditor-dialog-meta-languages-readonlynote}}",
+ "cite-ve-referenceslist-missingref-in-list": "Message that appears in the references list for references that are generated by a template or are otherwise uneditable.\n\nSee also:\n* {{msg-mw|visualeditor-dialog-meta-languages-readonlynote}}",
+ "cite-ve-referenceslist-missingreflist": "Message that appears as a tooltip on the reference list for lists that are generated by a template.",
+ "cite-ve-toolbar-group-label": "Label text for the toolbar button for inserting customized references.\n{{Identical|Cite}}",
+ "cite-ve-othergroup-item": "Label text for the toolbar items under the 'Insert' (other) group if VisualEditor is configured that way.\n\nParameters:\n* $1 – citation type label\n** {{msg-mw|cite-ve-dialogbutton-reference-tooltip}}\n** {{msg-mw|cite-ve-dialog-reference-useexisting-tool}})\n{{Identical|Reference}}",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Heading in the visual diff for the default reference group.\n{{Identical|Reference}}",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Heading in the visual diff to indicate the reference group name, when the reference group is not the default group.\n\nParameters:\n* $1 - reference-group name"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/qu.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/qu.json
new file mode 100644
index 00000000..f68e794e
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/qu.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "AlimanRuna",
+ "Jduranboger"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Liwrukuna",
+ "visualeditor-cite-tool-name-journal": "Willay p'anqa",
+ "visualeditor-cite-tool-name-news": "Willaykuna",
+ "visualeditor-cite-tool-name-web": "Website",
+ "cite-ve-dialog-reference-options-group-label": "Kay huñuta llamk'achiy",
+ "cite-ve-dialog-reference-options-name-label": "Kay sutiwan musuqmanta llamk'achiy",
+ "cite-ve-dialog-reference-options-section": "Akllanakuna",
+ "cite-ve-dialog-reference-title": "Pukyumanta willay",
+ "cite-ve-dialog-reference-useexisting-label": "Kachkaqña pukyumanta willayta llamk'achiy",
+ "cite-ve-dialog-referenceslist-title": "Pukyumanta willay sutisuyu",
+ "cite-ve-dialogbutton-reference-tooltip": "Tiksi",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Pukyumanta willay sutisuyu",
+ "cite-ve-toolbar-group-label": "Qillqamanta willay"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/rm.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/rm.json
new file mode 100644
index 00000000..68506b5b
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/rm.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kazu89"
+ ]
+ },
+ "cite-ve-dialog-reference-options-group-label": "Utilisar questa gruppa",
+ "cite-ve-dialog-reference-options-name-label": "Reutilisar cun quest num",
+ "cite-ve-dialog-reference-options-section": "Opziuns",
+ "cite-ve-dialog-reference-title": "Annotaziun",
+ "cite-ve-dialog-reference-useexisting-label": "Utilisar in'annotaziun existenta",
+ "cite-ve-dialog-referenceslist-title": "Glista d'annotaziuns",
+ "cite-ve-dialogbutton-reference-tooltip": "Annotaziun",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Glista d'annotaziuns"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ro.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ro.json
new file mode 100644
index 00000000..ad6b428e
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ro.json
@@ -0,0 +1,61 @@
+{
+ "@metadata": {
+ "authors": [
+ "AlimanRuna",
+ "Firilacroco",
+ "Minisarm",
+ "Stelistcristi",
+ "Gloria sah",
+ "Danutz",
+ "Amire80",
+ "ImGelu",
+ "Wintereu",
+ "Reception123",
+ "Strainu"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "nul",
+ "visualeditor-cite-tool-name-book": "Carte",
+ "visualeditor-cite-tool-name-journal": "Jurnal",
+ "visualeditor-cite-tool-name-news": "Știre",
+ "visualeditor-cite-tool-name-web": "Site web",
+ "cite-tool-definition.json": "nul",
+ "cite-ve-changedesc-ref-group-both": "Grupul referinței a fost schimbat din \"$1\" în \"$2\"",
+ "cite-ve-changedesc-ref-group-from": "Grupul referinței a fost schimbat din \"$1\" în grupul general",
+ "cite-ve-changedesc-ref-group-to": "Grupul referinței a fost schimbat din grupul general în \"$1\"",
+ "cite-ve-changedesc-reflist-group-both": "Grupul listei de referințe a fost schimbat din \"$1\" în \"$2\"",
+ "cite-ve-changedesc-reflist-group-from": "Grupul listei de referințe a fost schimbat din \"$1\" în grupul general",
+ "cite-ve-changedesc-reflist-group-to": "Grupul listei de referințe a fost schimbat din grupul general în \"$1\"",
+ "cite-ve-changedesc-reflist-responsive-set": "Lista de referințe a fost schimbată pentru a fi afișată pe coloane.",
+ "cite-ve-changedesc-reflist-responsive-unset": "Lista de referințe a fost schimbată pentru a fi afișată pe o singură coloană.",
+ "cite-ve-changedesc-reflist-item-id": "Indexul referinței a fost schimbat",
+ "cite-ve-dialog-reference-editing-reused": "Această referință este utilizată {{PLURAL:$1|o singură dată|de $1 ori|de $1 de ori}} în această pagină.",
+ "cite-ve-dialog-reference-options-group-label": "Folosește acest grup",
+ "cite-ve-dialog-reference-options-group-placeholder": "Referințe generale",
+ "cite-ve-dialog-reference-options-name-label": "Reutilizează cu acest nume",
+ "cite-ve-dialog-reference-options-responsive-label": "Folosiți afișarea pe coloane dinamice",
+ "cite-ve-dialog-reference-options-section": "Opțiuni",
+ "cite-ve-dialog-reference-placeholder": "Scrieți sau lipiți referința aici, sau inserați un format de citare.",
+ "cite-ve-dialog-reference-title": "Referință",
+ "cite-ve-dialog-reference-useexisting-full-label": "Reutilizează o referință deja existentă în această pagină",
+ "cite-ve-dialog-reference-useexisting-label": "Utilizează o referință existentă",
+ "cite-ve-dialog-reference-useexisting-tool": "Refolosește",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Lista referințelor generale",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Lista referințelor pentru grupul „$1”",
+ "cite-ve-dialog-referenceslist-title": "Listă de referințe",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Îmbunătățiți conținutul adăugând sursele de informare. Puteți cita din cărți, ziare și site-uri web.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citări",
+ "cite-ve-dialogbutton-reference-full-label": "Formular simplu",
+ "cite-ve-dialogbutton-reference-title": "Referință",
+ "cite-ve-dialogbutton-reference-tooltip": "De bază",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Listă de referințe",
+ "cite-ve-reference-input-placeholder": "Căutați în conținutul referințelor existente",
+ "cite-ve-referenceslist-isempty": "Nu există referințe cu grupul „$1” în această pagină pentru includere în această listă.",
+ "cite-ve-referenceslist-isempty-default": "Nu există referințe în această pagină pentru includere în această listă.",
+ "cite-ve-referenceslist-missingref": "Această referință este definită printr-un format sau alt cadru generat și, pentru moment, poate fi modificată doar editând codul sursă al paginii.",
+ "cite-ve-referenceslist-missingreflist": "Această listă de referințe este generată de un format și momentan nu poate fi editată decât în modul sursă.",
+ "cite-ve-toolbar-group-label": "Citare",
+ "cite-ve-othergroup-item": "referință $1",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Referințe",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Numele grupului de referințe: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/roa-tara.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/roa-tara.json
new file mode 100644
index 00000000..0c301411
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/roa-tara.json
@@ -0,0 +1,48 @@
+{
+ "@metadata": {
+ "authors": [
+ "Joetaras"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "Libbre",
+ "visualeditor-cite-tool-name-journal": "Sciurnale",
+ "visualeditor-cite-tool-name-news": "Notizie",
+ "visualeditor-cite-tool-name-web": "Site web",
+ "cite-tool-definition.json": "null",
+ "cite-ve-changedesc-ref-group-both": "Gruppe de referimende cangiate da \"$1\" a \"$2\"",
+ "cite-ve-changedesc-ref-group-from": "Gruppe de referimende cangiate da \"$1\" a gruppe generale",
+ "cite-ve-changedesc-ref-group-to": "Gruppe de referimende cangiate da gruppe generale a \"$1\"",
+ "cite-ve-changedesc-reflist-group-both": "Elenghe de le gruppe de referimende cangiate da \"$1\" a \"$2\"",
+ "cite-ve-changedesc-reflist-group-from": "Elenghe de le gruppe de referimende cangiate da \"$1\" a gruppe generale",
+ "cite-ve-changedesc-reflist-group-to": "Elenghe de le gruppe de referimende cangiate da gruppe generale a \"$1\"",
+ "cite-ve-changedesc-reflist-item-id": "Indice de referimende cangiate",
+ "cite-ve-dialog-reference-editing-reused": "Stu referimende avène ausate $1 {{PLURAL:$1|vote}} sus a sta pàgene.",
+ "cite-ve-dialog-reference-options-group-label": "Ause stu gruppe",
+ "cite-ve-dialog-reference-options-group-placeholder": "Refereminde generale",
+ "cite-ve-dialog-reference-options-name-label": "Ause arrete stu nome",
+ "cite-ve-dialog-reference-options-responsive-label": "Ause a 'u layout d'a colonne ca se adatte",
+ "cite-ve-dialog-reference-options-section": "Opziune",
+ "cite-ve-dialog-reference-placeholder": "Scrive o 'ngolle le refereminde tune aqquà, o sckaffe 'nu modelle de citazione.",
+ "cite-ve-dialog-reference-title": "Referimende",
+ "cite-ve-dialog-reference-useexisting-full-label": "Ause arrete 'na citazione ca ggià esiste jndr'à sta pàgene",
+ "cite-ve-dialog-reference-useexisting-label": "Ause 'na referenze ca esiste",
+ "cite-ve-dialog-reference-useexisting-tool": "Ause arrete",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Elenghe de le referimende generale",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Elenghe de le referimende pu gruppe \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Elenghe de le referimende",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Fa devendà megghie le condenute cu l'aggiunde de le fonde pe le 'mbormaziune. Puè cità le libbre, le sciurnale e le site web.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citaziune",
+ "cite-ve-dialogbutton-reference-full-label": "Module de base",
+ "cite-ve-dialogbutton-reference-title": "Riferimende",
+ "cite-ve-dialogbutton-reference-tooltip": "Nderre-nderre",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Elenghe de le referimende",
+ "cite-ve-reference-input-placeholder": "Cirche cu le citaziune de mò",
+ "cite-ve-referenceslist-isempty": "Non ge stonne refèreminde cu 'u gruppe \"$1\" sus a sta pàgene da 'ngludere jndr'à st'elenghe.",
+ "cite-ve-referenceslist-isempty-default": "Non ge stonne refereminde a sta pàgene da 'ngludere jndr'à l'elenghe.",
+ "cite-ve-referenceslist-missingref": "Stu refèrimende jè definite jndr'à 'nu template o otre blocche generate e pe mò pò sulamende essere cangiate jndr'à 'u mode sorgende.",
+ "cite-ve-toolbar-group-label": "Cite",
+ "cite-ve-othergroup-item": "$1 referimende",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Rifereminde",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Nome gruppe de refereminde: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ru.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ru.json
new file mode 100644
index 00000000..44a3a069
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ru.json
@@ -0,0 +1,80 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amire80",
+ "DR",
+ "Eugrus",
+ "Iluvatar",
+ "KPu3uC B Poccuu",
+ "Kaganer",
+ "Kalan",
+ "MaxBioHazard",
+ "NBS",
+ "Niklem",
+ "Okras",
+ "Ole Yves",
+ "Putnik",
+ "Sunpriat",
+ "Yury Katkov",
+ "Умар",
+ "Agilight",
+ "Alexandr Efremov",
+ "Meshkov.a",
+ "Eroha",
+ "Grebenkov",
+ "Nirovulf",
+ "Striking Blue",
+ "Дмитрий",
+ "Краснорядцева Елена",
+ "Mailman",
+ "Facenapalm",
+ "Mouse21",
+ "Happy13241"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "Книга",
+ "visualeditor-cite-tool-name-journal": "Статья",
+ "visualeditor-cite-tool-name-news": "Новости",
+ "visualeditor-cite-tool-name-web": "Веб-сайт",
+ "cite-tool-definition.json": "null",
+ "cite-ve-changedesc-ref-group-both": "Группа сноски изменена с «$1» на «$2»",
+ "cite-ve-changedesc-ref-group-from": "Группа сноски изменена с «$1» на общую группу",
+ "cite-ve-changedesc-ref-group-to": "Группа сноски изменена с общей группы на «$1»",
+ "cite-ve-changedesc-reflist-group-both": "Группа списка примечаний изменена с «$1» на «$2»",
+ "cite-ve-changedesc-reflist-group-from": "Группа списка примечаний изменена с «$1» на общую группу",
+ "cite-ve-changedesc-reflist-group-to": "Группа списка примечаний изменена с общей группы на «$1»",
+ "cite-ve-changedesc-reflist-responsive-set": "Список литературы изменен для отображения в ответных столбцах",
+ "cite-ve-changedesc-reflist-responsive-unset": "Список литературы изменен для отображения только в одном столбце",
+ "cite-ve-changedesc-reflist-item-id": "Изменился индекс сноски",
+ "cite-ve-dialog-reference-editing-reused": "Эта ссылка используется на странице $1 раз{{PLURAL:$1|||а}}.",
+ "cite-ve-dialog-reference-options-group-label": "Использовать эту группу",
+ "cite-ve-dialog-reference-options-group-placeholder": "Общие ссылки",
+ "cite-ve-dialog-reference-options-name-label": "Повторно использовать под данным именем",
+ "cite-ve-dialog-reference-options-responsive-label": "Использовать адаптивный макет столбцов",
+ "cite-ve-dialog-reference-options-section": "Параметры",
+ "cite-ve-dialog-reference-placeholder": "Напишите или скопируйте вашу сноску сюда, или вставьте шаблон источника.",
+ "cite-ve-dialog-reference-title": "Примечание",
+ "cite-ve-dialog-reference-useexisting-full-label": "Повторное использование источника, который уже существует на этой странице",
+ "cite-ve-dialog-reference-useexisting-label": "Использовать существующую сноску",
+ "cite-ve-dialog-reference-useexisting-tool": "Повторное использование",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Список общих ссылок",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Список примечаний для группы \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Список примечаний",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Улучшайте контент, добавляя туда источники информации. Вы можете цитировать книги, газеты и веб-сайты.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Цитаты",
+ "cite-ve-dialogbutton-reference-full-label": "Простая форма",
+ "cite-ve-dialogbutton-reference-title": "Примечание",
+ "cite-ve-dialogbutton-reference-tooltip": "Базовая",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Список примечаний",
+ "cite-ve-reference-input-placeholder": "Поиск в пределах текущей ссылки",
+ "cite-ve-referenceslist-isempty": "На этой странице нет ссылок с группой «$1» для включения в этот список.",
+ "cite-ve-referenceslist-isempty-default": "На этой странице нет ссылок для включения в этот список.",
+ "cite-ve-referenceslist-missingref": "Эта сноска определена в шаблоне или другом генерируемом блоке и на данный момент может быть отредактирована только в режиме правки исходного текста.",
+ "cite-ve-referenceslist-missingref-in-list": "Эта ссылка определяется в шаблоне или другом сгенерированном блоке и на данный момент может быть просмотрена только в исходном режиме.",
+ "cite-ve-referenceslist-missingreflist": "Этот список ссылок генерируется шаблоном, и теперь его можно редактировать только в режиме источника.",
+ "cite-ve-toolbar-group-label": "Источники",
+ "cite-ve-othergroup-item": "$1 примечание",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Сноски",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Название группы сносок: «$1»"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/rue.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/rue.json
new file mode 100644
index 00000000..d88abca3
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/rue.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Tkalyn",
+ "Dicto23456"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/sa.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sa.json
new file mode 100644
index 00000000..b85533fd
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sa.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Shubha",
+ "NehalDaveND"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "पुस्तकम्",
+ "visualeditor-cite-tool-name-journal": "पत्रिका",
+ "visualeditor-cite-tool-name-news": "वार्ताः",
+ "visualeditor-cite-tool-name-web": "जालस्थानम्",
+ "cite-ve-dialog-reference-options-group-label": "एतत् दलम् उपयुज्यताम्",
+ "cite-ve-dialog-reference-options-group-placeholder": "सामान्यसन्दर्भाः",
+ "cite-ve-dialog-reference-options-section": "विकल्पाः",
+ "cite-ve-dialog-reference-title": "सन्दर्भः",
+ "cite-ve-dialog-reference-useexisting-tool": "पुनरुपयोगः",
+ "cite-ve-dialog-referenceslist-title": "सन्दर्भसूचिः",
+ "cite-ve-dialogbutton-reference-tooltip": "प्राथमिकम्",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "सन्दर्भसूचिः"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/sah.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sah.json
new file mode 100644
index 00000000..6f5e5660
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sah.json
@@ -0,0 +1,32 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gazeb",
+ "HalanTul"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Кинигэ",
+ "visualeditor-cite-tool-name-journal": "Ыстатыйа",
+ "visualeditor-cite-tool-name-news": "Сонуннар",
+ "visualeditor-cite-tool-name-web": "Ситим-сир",
+ "cite-ve-dialog-reference-editing-reused": "Бу сигэ сирэйгэ $1 көстөр.",
+ "cite-ve-dialog-reference-options-group-label": "Бу бөлөҕү туһан",
+ "cite-ve-dialog-reference-options-group-placeholder": "Сүрүн сигэлэр",
+ "cite-ve-dialog-reference-options-name-label": "Маннык аатынан хос туһан",
+ "cite-ve-dialog-reference-options-section": "Туруоруулар",
+ "cite-ve-dialog-reference-title": "Быһаарыы",
+ "cite-ve-dialog-reference-useexisting-full-label": "Бу сирэйгэ баар источнигы хат туһаныы",
+ "cite-ve-dialog-reference-useexisting-label": "Баар сносканы туттуу",
+ "cite-ve-dialog-reference-useexisting-tool": "Хос туттуу",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Сүрүн сигэлэр тиликтэрэ",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "\"$1\" бөлөххө анаммыт быһаарыылар тиһиликтэрэ",
+ "cite-ve-dialog-referenceslist-title": "Быһаарыылар тиһиктэрэ",
+ "cite-ve-dialogbutton-reference-full-label": "Судургу форма",
+ "cite-ve-dialogbutton-reference-title": "Быһаарыы",
+ "cite-ve-dialogbutton-reference-tooltip": "Судургу",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Быһаарыылар тиһиктэрэ",
+ "cite-ve-referenceslist-isempty": "Бу тиһиликкэ киирэр \"$1\" бөлөх сигэлэрэ сирэйгэ көстүбэтилэр.",
+ "cite-ve-referenceslist-isempty-default": "Бу тиһиликкэ киирэр сигэлэр сирэйгэ көстүбэтилэр.",
+ "cite-ve-referenceslist-missingref": "Бу хос быһаарыы халыып иһигэр сылдьар эбит, онон төрүт тиэкиһи эрэдээксийэлээһин эрэ көмөтүнэн уларытыллар кыахтаах.",
+ "cite-ve-toolbar-group-label": "Хантан ылыллыбыта"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/sc.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sc.json
new file mode 100644
index 00000000..d9be5c9b
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sc.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "L2212",
+ "Via maxima",
+ "Taxandru",
+ "Purodha",
+ "Uharteko"
+ ]
+ },
+ "visualeditor-cite-tool-name-news": "Noas"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/scn.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/scn.json
new file mode 100644
index 00000000..79aedf79
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/scn.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gazeb",
+ "Gmelfi",
+ "HalanTul",
+ "Elitre",
+ "Elitre82",
+ "Gloria sah",
+ "Pippinu",
+ "Sarvaturi"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Libbru",
+ "cite-ve-dialog-reference-options-group-label": "Usa stu gruppu",
+ "cite-ve-dialog-reference-options-name-label": "Riutilizzari cu stu nomu",
+ "cite-ve-dialog-reference-options-section": "Opzioni",
+ "cite-ve-dialog-reference-title": "Rifirenza",
+ "cite-ve-dialog-reference-useexisting-label": "Usa nu rifirimentu esistenti",
+ "cite-ve-dialog-referenceslist-title": "Elencu rifirimenti",
+ "cite-ve-dialogbutton-reference-tooltip": "Sìmplici",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Elencu rifirimenti",
+ "cite-ve-reference-input-placeholder": "Cerca ntê citazzioni attuali",
+ "cite-ve-referenceslist-isempty": "Nun sunnu prisenti rifirimenti cû gruppu \"$1\" nti sta pàggina ca s'hannu a nclùdiri nti st'elencu.",
+ "cite-ve-referenceslist-isempty-default": "Nun sunnu prisenti rifirimenti nti sta pàggina ca s'hannu a nclùdiri nti st'elencu.",
+ "cite-ve-referenceslist-missingref": "Stu rifirimentu è difinutu nti nu mudellu o nti n'àutru bloccu giniratu e accamarora pò èssiri canciatu sulu n mudalità surgenti."
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/sco.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sco.json
new file mode 100644
index 00000000..f54b24d7
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sco.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "John Reid",
+ "Amire80",
+ "Foxj"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Buik",
+ "visualeditor-cite-tool-name-journal": "Journal",
+ "visualeditor-cite-tool-name-news": "News",
+ "visualeditor-cite-tool-name-web": "Wabsteid",
+ "cite-ve-dialog-reference-editing-reused": "This soorce is uisit $1 {{PLURAL:$1|times}} on this page.",
+ "cite-ve-dialog-reference-options-group-label": "Uise this groop",
+ "cite-ve-dialog-reference-options-group-placeholder": "General references",
+ "cite-ve-dialog-reference-options-name-label": "Re-uise bi this name",
+ "cite-ve-dialog-reference-options-section": "Opties",
+ "cite-ve-dialog-reference-title": "Referance",
+ "cite-ve-dialog-reference-useexisting-full-label": "Re-uise a soorce fae anither part o this page",
+ "cite-ve-dialog-reference-useexisting-label": "Uise aen exeestin referance",
+ "cite-ve-dialog-reference-useexisting-tool": "Re-uise",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Leet o general soorces",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Leet o soorces fer group \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Referances leet",
+ "cite-ve-dialogbutton-reference-full-label": "Semple fairm",
+ "cite-ve-dialogbutton-reference-tooltip": "Baseec",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Referances leet",
+ "cite-ve-reference-input-placeholder": "Rak in current soorces",
+ "cite-ve-referenceslist-isempty": "Thaur's nae referances wi the groop \"$1\" oan this page tae incluid in this leet.",
+ "cite-ve-referenceslist-isempty-default": "Thaur's nae referances oan this page tae incluid in this leet.",
+ "cite-ve-referenceslist-missingref": "This referance is defined in ae template or ither generatit block, n fer nou can yinlie be eeditit in soorce mode.",
+ "cite-ve-toolbar-group-label": "Soorce"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/sd.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sd.json
new file mode 100644
index 00000000..aa03a6ed
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sd.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sindhu",
+ "Aursani",
+ "Mehtab ahmed"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "ڪتاب",
+ "visualeditor-cite-tool-name-journal": "جرنل",
+ "visualeditor-cite-tool-name-news": "خبرون",
+ "visualeditor-cite-tool-name-web": "ويب سرزمين",
+ "cite-ve-dialog-reference-options-group-placeholder": "عام حوالا",
+ "cite-ve-dialog-reference-options-section": "چارا",
+ "cite-ve-dialog-reference-title": "حوالا",
+ "cite-ve-dialog-reference-useexisting-full-label": "هن صفحي تي موجود ڪو حوالو ٻيهر استعمال ڪريو.",
+ "cite-ve-dialog-reference-useexisting-label": "ڪو موجوده حوالو استعمال ڪريو",
+ "cite-ve-dialog-reference-useexisting-tool": "ٻيهر استعمال ڪريو",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "عام حوالن جي فهرست",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "حوالا",
+ "cite-ve-dialogbutton-reference-title": "حوالو",
+ "cite-ve-dialogbutton-reference-tooltip": "بنيادي",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "حوالن جي فهرست",
+ "cite-ve-toolbar-group-label": "حوالو"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/sdc.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sdc.json
new file mode 100644
index 00000000..6a219994
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sdc.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jun Misugi"
+ ]
+ },
+ "cite-ve-dialog-reference-options-group-label": "Utirizà kisthu gruppu"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/sgs.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sgs.json
new file mode 100644
index 00000000..3df12eef
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sgs.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hugo.arg"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/sh.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sh.json
new file mode 100644
index 00000000..d7673f5a
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sh.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "OC Ripper",
+ "Msannakoval"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Knjiga",
+ "visualeditor-cite-tool-name-journal": "Dnevnik",
+ "visualeditor-cite-tool-name-news": "Novosti",
+ "visualeditor-cite-tool-name-web": "Web-stranica",
+ "cite-ve-dialog-reference-editing-reused": "Ova referenca je korištena $1 {{PLURAL:$1|puta}} na ovoj stranici.",
+ "cite-ve-dialog-reference-options-group-label": "Koristi ovu grupu",
+ "cite-ve-dialog-reference-options-group-placeholder": "Opće reference",
+ "cite-ve-dialog-reference-options-name-label": "Ponovno koristi pod ovim imenom",
+ "cite-ve-dialog-reference-options-section": "Opcije",
+ "cite-ve-dialog-reference-title": "Referentni broj",
+ "cite-ve-dialog-reference-useexisting-full-label": "Ponovno koristi citat koji već postoji na ovoj stranici",
+ "cite-ve-dialog-reference-useexisting-label": "Koristi postojeću referencu",
+ "cite-ve-dialog-reference-useexisting-tool": "Ponovno korištenje",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Lista općih referenci",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Lista referenci za grupu \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Spisak referenci",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Poboljšava sadržaj članka dodavanjem izvora za informacije. Možete referencirati knjige, novine i web-stranice.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Reference",
+ "cite-ve-dialogbutton-reference-full-label": "Osnovni oblik",
+ "cite-ve-dialogbutton-reference-title": "Referenca",
+ "cite-ve-dialogbutton-reference-tooltip": "Osnovno",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Spisak referenci",
+ "cite-ve-reference-input-placeholder": "Traži unutar trenutnih navoda",
+ "cite-ve-referenceslist-isempty": "Nema referenci u grupi \"$1\" na ovoj stranici.",
+ "cite-ve-referenceslist-isempty-default": "Nema referenci na ovoj stranici koje bi mogle biti uključene u ovaj popis.",
+ "cite-ve-referenceslist-missingref": "Ova referenca je definirana u šablonu ili drugom generiranom bloku i sada se može uređivati jedino u izvornom modu.",
+ "cite-ve-toolbar-group-label": "Citiraj"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/shn.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/shn.json
new file mode 100644
index 00000000..17815eaf
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/shn.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Saimawnkham",
+ "Saosukham"
+ ]
+ },
+ "cite-ve-dialogbutton-reference-title": "ၽိုၼ်ဢိင်"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/shy-latn.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/shy-latn.json
new file mode 100644
index 00000000..2dc8dc94
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/shy-latn.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Vikoula5"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/si.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/si.json
new file mode 100644
index 00000000..65bd212b
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/si.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Singhalawap",
+ "පසිඳු කාවින්ද",
+ "ශ්වෙත",
+ "Sahan.ssw",
+ "Indunil Chamara",
+ "Susith Chandira Gts",
+ "Thirsty",
+ "හරිත"
+ ]
+ },
+ "cite-ve-dialog-reference-options-group-label": "මෙම කණ්ඩායම භාවිතාකරන්න",
+ "cite-ve-dialog-reference-options-group-placeholder": "සාමාන්‍ය මුලාශ්‍ර",
+ "cite-ve-dialog-reference-options-section": "තෝරාගැනීම්",
+ "cite-ve-dialogbutton-reference-tooltip": "සමුද්දේශ",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "සමුද්දේශ ලැයිස්තුව"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/sk.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sk.json
new file mode 100644
index 00000000..ed8839cd
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sk.json
@@ -0,0 +1,51 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mimarik",
+ "Teslaton",
+ "Sudo77(new)",
+ "TomášPolonec",
+ "Kusavica"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Kniha",
+ "visualeditor-cite-tool-name-journal": "Časopis",
+ "visualeditor-cite-tool-name-news": "Noviny",
+ "visualeditor-cite-tool-name-web": "Webová stránka",
+ "cite-ve-changedesc-ref-group-both": "Skupina referencie zmenená z „$1“ na „$2“",
+ "cite-ve-changedesc-ref-group-from": "Skupina referencie zmenená z „$1“ na všeobecnú",
+ "cite-ve-changedesc-ref-group-to": "Skupina referencia zmenená zo všeobecnej na „$1“",
+ "cite-ve-changedesc-reflist-group-both": "Skupina zoznamu referencií zmenená z „$1“ na „$2“",
+ "cite-ve-changedesc-reflist-group-from": "Skupina zoznamu referencií zmenená z „$1“ na všeobecnú",
+ "cite-ve-changedesc-reflist-group-to": "Skupina zoznamu referencií zmenená zo všeobecnej na „$1“",
+ "cite-ve-changedesc-reflist-item-id": "Číslo referencie zmenené",
+ "cite-ve-dialog-reference-editing-reused": "Tato referencia sa na tejto stránke používa $1 {{PLURAL:$1|krát}}.",
+ "cite-ve-dialog-reference-options-group-label": "Použiť túto skupinu",
+ "cite-ve-dialog-reference-options-group-placeholder": "Všeobecné referencie",
+ "cite-ve-dialog-reference-options-name-label": "Opakovane používať pod týmto názvom",
+ "cite-ve-dialog-reference-options-responsive-label": "Použiť responzívny vzhľad stĺpcov",
+ "cite-ve-dialog-reference-options-section": "Možnosti",
+ "cite-ve-dialog-reference-placeholder": "Sem napíšte alebo vložte referenciu alebo citačnú šablónu.",
+ "cite-ve-dialog-reference-title": "Referencia",
+ "cite-ve-dialog-reference-useexisting-full-label": "Opakovane použiť citáciu, ktorá už na stránke existuje",
+ "cite-ve-dialog-reference-useexisting-label": "Použiť existujúcu referenciu",
+ "cite-ve-dialog-reference-useexisting-tool": "Použiť existujúcu",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Zoznam všeobecných referencií",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Zoznam referencií pre skupinu „$1“",
+ "cite-ve-dialog-referenceslist-title": "Zoznam referencií",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Skvalitnenie vášeho obsahu doplnením zdrojov informácií. Môžete citovať z kníh, novín alebo webových stránok.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citácie",
+ "cite-ve-dialogbutton-reference-full-label": "Základná podoba",
+ "cite-ve-dialogbutton-reference-title": "Referencia",
+ "cite-ve-dialogbutton-reference-tooltip": "Referencia",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Zoznam referencií",
+ "cite-ve-reference-input-placeholder": "Akú referenciu chcete vložit?",
+ "cite-ve-referenceslist-isempty": "Na tejto stránke neexistuje žiadna referencia v skupine „$1“.",
+ "cite-ve-referenceslist-isempty-default": "Na tejto stránke nie sú definované žiadne referencie, ktoré by bolo možné zobraziť v tomto zozname.",
+ "cite-ve-referenceslist-missingref": "Táto referencia je definovaná v šablóne alebo inej automaticky generovanej časti textu. Zatiľ je možné editovať ju len v režime zdrojového kódu.",
+ "cite-ve-referenceslist-missingreflist": "Tento zoznam referencií je generovaný šablónou a zatiaľ ho je možné upravovať len v režime zdrojového textu.",
+ "cite-ve-toolbar-group-label": "Citácia",
+ "cite-ve-othergroup-item": "$1 referencia",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Referencie",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Názov skupiny referencií: „$1“"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/skr-arab.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/skr-arab.json
new file mode 100644
index 00000000..92afc44b
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/skr-arab.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Saraiki"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "کتاب",
+ "visualeditor-cite-tool-name-journal": "جریدہ",
+ "visualeditor-cite-tool-name-news": "خبراں",
+ "visualeditor-cite-tool-name-web": "ویب سائٹ",
+ "cite-ve-dialog-reference-options-group-label": "ایہ گروپ ورتو",
+ "cite-ve-dialog-reference-options-group-placeholder": "عمومی حوالے",
+ "cite-ve-dialog-reference-options-section": "اختیارات",
+ "cite-ve-dialog-reference-title": "حوالہ",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "حوالے",
+ "cite-ve-dialogbutton-reference-title": "حوالہ",
+ "cite-ve-dialogbutton-reference-tooltip": "بنیادی",
+ "cite-ve-toolbar-group-label": "حوالہ درج کرو",
+ "cite-ve-othergroup-item": "$1 حوالہ",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "حوالے"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/sl.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sl.json
new file mode 100644
index 00000000..006cecdb
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sl.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dbc334",
+ "Eleassar",
+ "Pinky sl",
+ "Yerpo"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "Knjiga",
+ "visualeditor-cite-tool-name-journal": "Revija",
+ "visualeditor-cite-tool-name-news": "Novice",
+ "visualeditor-cite-tool-name-web": "Spletna stran",
+ "cite-tool-definition.json": "null",
+ "cite-ve-dialog-reference-editing-reused": "Sklic je na strani uporabljen $1-{{PLURAL:$1|krat}}.",
+ "cite-ve-dialog-reference-options-group-label": "Uporabi to skupino",
+ "cite-ve-dialog-reference-options-group-placeholder": "Splošni sklici",
+ "cite-ve-dialog-reference-options-name-label": "Ponovno uporabi pod tem imenom",
+ "cite-ve-dialog-reference-options-section": "Možnosti",
+ "cite-ve-dialog-reference-title": "Sklic",
+ "cite-ve-dialog-reference-useexisting-full-label": "Ponovna uporaba navedka, ki že obstaja na strani",
+ "cite-ve-dialog-reference-useexisting-label": "Uporabi obstoječi sklic",
+ "cite-ve-dialog-reference-useexisting-tool": "Uporabi ponovno",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Seznam splošnih sklicev",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Seznam sklicev za skupino »$1«",
+ "cite-ve-dialog-referenceslist-title": "Seznam sklicev",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Izboljšajte vsebino z navedbo virov podatkov. Navajate lahko knjige, časopise in spletna mesta.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Navedki",
+ "cite-ve-dialogbutton-reference-full-label": "Osnovna oblika",
+ "cite-ve-dialogbutton-reference-title": "Sklic",
+ "cite-ve-dialogbutton-reference-tooltip": "Osnovno",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Seznam sklicev",
+ "cite-ve-reference-input-placeholder": "Išči znotraj trenutnih navedkov",
+ "cite-ve-referenceslist-isempty": "Na tej strani ni sklicev s skupino »$1« za vključitev na ta seznam.",
+ "cite-ve-referenceslist-isempty-default": "Na tej strani ni sklicev, ki bi jih lahko vključili v ta seznam.",
+ "cite-ve-referenceslist-missingref": "Sklic je opredeljen v predlogi ali drugem ustvarjenem bloku, zato ga lahko trenutno urejate samo v urejevalniku izvorne kode.",
+ "cite-ve-toolbar-group-label": "Navedi",
+ "cite-ve-othergroup-item": "$1 sklic"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/so.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/so.json
new file mode 100644
index 00000000..8b687089
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/so.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Abshirdheere"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/sq.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sq.json
new file mode 100644
index 00000000..981bf830
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sq.json
@@ -0,0 +1,47 @@
+{
+ "@metadata": {
+ "authors": [
+ "Euriditi",
+ "G1m",
+ "Agonqurdina",
+ "Amire80",
+ "Kushtrim",
+ "Elioqoshi",
+ "GretaDoci",
+ "Techlik",
+ "Liridon",
+ "Ammartivari",
+ "Kosovastar"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "pavlerë",
+ "visualeditor-cite-tool-name-book": "Libra",
+ "visualeditor-cite-tool-name-journal": "Gazeta",
+ "visualeditor-cite-tool-name-news": "Lajme",
+ "visualeditor-cite-tool-name-web": "Faqja Web",
+ "cite-tool-definition.json": "pavlerë",
+ "cite-ve-dialog-reference-editing-reused": "Kjo referencë është përdorur $1 {{PLURAL:$1|herë}} në këtë faqe.",
+ "cite-ve-dialog-reference-options-group-label": "Përdor këtë grup",
+ "cite-ve-dialog-reference-options-group-placeholder": "Referenca të përgjithshme",
+ "cite-ve-dialog-reference-options-name-label": "Ripërdor këtë emër",
+ "cite-ve-dialog-reference-options-section": "Opsionet",
+ "cite-ve-dialog-reference-title": "Referenca",
+ "cite-ve-dialog-reference-useexisting-full-label": "Ri-përdor një burim që tashmë ekziston në këtë faqe",
+ "cite-ve-dialog-reference-useexisting-label": "Përdor një referencë ekzistuese",
+ "cite-ve-dialog-reference-useexisting-tool": "Ri-shfrytëzo",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Lisa e përgjithshme e referencave",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Lista e referencave për grupin \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Lista e referencave",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Përmirëso përmbajtjen tuaj duke shtuar burimet e informacionit. Ju mund të citoni nga librat, gazetat dhe faqet e internetit.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Citimet",
+ "cite-ve-dialogbutton-reference-full-label": "Forma bazike",
+ "cite-ve-dialogbutton-reference-title": "Referenca",
+ "cite-ve-dialogbutton-reference-tooltip": "Bazike",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Lista e referencave",
+ "cite-ve-reference-input-placeholder": "Kërkoni brenda burimeve të tanishme.",
+ "cite-ve-referenceslist-isempty": "Nuk ka referenca në grupin \"$1\" në këtë faqe që mund të shtojmë në këtë listë.",
+ "cite-ve-referenceslist-isempty-default": "Në këtë faqe nuk ka referenca që të përfshihen në këtë listë.",
+ "cite-ve-referenceslist-missingref": "Kjo referencë është e përcaktuar në një stampë apo bllok tjetër të gjeneruar dhe për momentin mund të redaktohet vetëm në modalitetin burimor.",
+ "cite-ve-toolbar-group-label": "Burim",
+ "cite-ve-othergroup-item": "$1 referencë"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/sr-ec.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sr-ec.json
new file mode 100644
index 00000000..227af813
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sr-ec.json
@@ -0,0 +1,58 @@
+{
+ "@metadata": {
+ "authors": [
+ "Milicevic01",
+ "Nikola Smolenski",
+ "Милан Јелисавчић",
+ "Rancher",
+ "Amire80",
+ "Srdjan m",
+ "Сербијана",
+ "Obsuser",
+ "Prevodim",
+ "Acamicamacaraca",
+ "BadDog"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "Књига",
+ "visualeditor-cite-tool-name-journal": "Часопис",
+ "visualeditor-cite-tool-name-news": "Вести",
+ "visualeditor-cite-tool-name-web": "Веб-сајт",
+ "cite-tool-definition.json": "null",
+ "cite-ve-changedesc-ref-group-both": "Група референци је промењена из „$1” у „$2”",
+ "cite-ve-changedesc-ref-group-from": "Група референци промењена из „$1” у општу групу",
+ "cite-ve-changedesc-ref-group-to": "Група референци промењена из опште групе у „$1”",
+ "cite-ve-changedesc-reflist-group-both": "Група списка референци је промењена из „$1” у „$2”",
+ "cite-ve-changedesc-reflist-group-from": "Група списка референци промењена из „$1” у општу групу",
+ "cite-ve-changedesc-reflist-group-to": "Група списка референци је промењена из опште групе у „$1”",
+ "cite-ve-changedesc-reflist-item-id": "Индекс референце је промењен",
+ "cite-ve-dialog-reference-editing-reused": "Ова референца се користи $1 {{PLURAL:$1|пут|пута}} на овој страници.",
+ "cite-ve-dialog-reference-options-group-label": "Користи ову групу",
+ "cite-ve-dialog-reference-options-group-placeholder": "Опште референце",
+ "cite-ve-dialog-reference-options-name-label": "Поново употреби под овим именом",
+ "cite-ve-dialog-reference-options-responsive-label": "Прилагодљиви распоред колона",
+ "cite-ve-dialog-reference-options-section": "Опције",
+ "cite-ve-dialog-reference-placeholder": "Напишите или налепите Вашу референцу овде, или унесите шаблон за референцу.",
+ "cite-ve-dialog-reference-title": "Референца",
+ "cite-ve-dialog-reference-useexisting-full-label": "Поново употреби референцу која већ постоји на овој страници",
+ "cite-ve-dialog-reference-useexisting-label": "Користи постојећу референцу",
+ "cite-ve-dialog-reference-useexisting-tool": "Поновно коришћење",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Списак општих референци",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Списак референци за групу: „$1”",
+ "cite-ve-dialog-referenceslist-title": "Списак референци",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Ваш садржај изгледа боље са додатим изворима информација. Можете додати референце из књига, новина или веб-сајтова.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Референце",
+ "cite-ve-dialogbutton-reference-full-label": "Основни облик",
+ "cite-ve-dialogbutton-reference-title": "Референца",
+ "cite-ve-dialogbutton-reference-tooltip": "Основна",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Списак референци",
+ "cite-ve-reference-input-placeholder": "Претражи постојеће референце",
+ "cite-ve-referenceslist-isempty": "Нема референци унутар групе „$1” на овој страници које можете додати у овом списку.",
+ "cite-ve-referenceslist-isempty-default": "Нема референци на овој страници које би могло да се укључе на овај списак.",
+ "cite-ve-referenceslist-missingref": "Ова референца је дефинисана у шаблону или другом генерисаном блоку и за сада може да се уређује само у изворном режиму.",
+ "cite-ve-toolbar-group-label": "Цитирај",
+ "cite-ve-othergroup-item": "$1 референца",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Референце",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Назив групе референци: „$1”"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/sr-el.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sr-el.json
new file mode 100644
index 00000000..b4ac78e3
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sr-el.json
@@ -0,0 +1,51 @@
+{
+ "@metadata": {
+ "authors": [
+ "Milicevic01",
+ "Msannakoval",
+ "Srdjan m",
+ "Prevodim"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "bez vrednosti",
+ "visualeditor-cite-tool-name-book": "Knjiga",
+ "visualeditor-cite-tool-name-journal": "Žurnal",
+ "visualeditor-cite-tool-name-news": "Novine",
+ "visualeditor-cite-tool-name-web": "Veb-sajt",
+ "cite-tool-definition.json": "bez vrednosti",
+ "cite-ve-changedesc-ref-group-both": "Grupa referenci promenjena sa grupe „$1” na grupu „$2”.",
+ "cite-ve-changedesc-ref-group-from": "Grupa referenci promenjena sa grupe „$1” na opštu grupu",
+ "cite-ve-changedesc-ref-group-to": "Grupa referenci promenjana sa opšte grupe na grupu „$1”",
+ "cite-ve-changedesc-reflist-group-both": "Grupa spiska referenci je promenjena sa grupe „$1” na grupu „$2”",
+ "cite-ve-changedesc-reflist-group-from": "Grupa spiska referenci promenjena sa grupe „$1” na opštu grupu.",
+ "cite-ve-changedesc-reflist-group-to": "Grupa spiska referenci je promenjena sa opšte grupe na grupu „$1”",
+ "cite-ve-changedesc-reflist-item-id": "Indeks reference je promenjen",
+ "cite-ve-dialog-reference-editing-reused": "Referenca je upotrebljena $1 {{PLURAL:$1|put|puta}} na ovoj stranici.",
+ "cite-ve-dialog-reference-options-group-label": "Koristi ovu grupu",
+ "cite-ve-dialog-reference-options-group-placeholder": "Opšte reference",
+ "cite-ve-dialog-reference-options-name-label": "Ponovo upotrebi pod ovim imenom",
+ "cite-ve-dialog-reference-options-responsive-label": "Koristi prilagodljivi raspored kolona",
+ "cite-ve-dialog-reference-options-section": "Opcije",
+ "cite-ve-dialog-reference-placeholder": "Pišite ili nalepite vašu referencu ovde, ili unesite šablon za referencu.",
+ "cite-ve-dialog-reference-title": "Referenca",
+ "cite-ve-dialog-reference-useexisting-full-label": "Ponovo upotrebi referencu koja već postoji na ovoj stranici",
+ "cite-ve-dialog-reference-useexisting-label": "Koristi postojeću referencu",
+ "cite-ve-dialog-reference-useexisting-tool": "Ponovno korišćenje",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Lista opštih referenci",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Lista referenci za grupu „$1”",
+ "cite-ve-dialog-referenceslist-title": "Spisak referenci",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Vaš sadržaj izgleda bolje sa dodatim izvorima informacija. Možete dodati reference iz knjiga, novina ili veb-sajtova.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Navođenje",
+ "cite-ve-dialogbutton-reference-full-label": "Osnovni oblik",
+ "cite-ve-dialogbutton-reference-title": "Referenca",
+ "cite-ve-dialogbutton-reference-tooltip": "Osnovna",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Spisak referenci",
+ "cite-ve-reference-input-placeholder": "Pretražite postojeće reference",
+ "cite-ve-referenceslist-isempty": "Nema referenci unutar grupe „$1” na ovoj strani koje možete dodati u ovu listu.",
+ "cite-ve-referenceslist-isempty-default": "Nema referenci na ovoj strani koje možete dodati u ovu listu.",
+ "cite-ve-referenceslist-missingref": "Ova referenca je definisana u šablonu ili drugom formiranom bloku i za sada može biti izmenjen samo izvor.",
+ "cite-ve-toolbar-group-label": "Referenca",
+ "cite-ve-othergroup-item": "$1 referenca",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Reference",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Naziv grupe referenci: „$1”"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ss.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ss.json
new file mode 100644
index 00000000..ce4d7ec4
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ss.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bobbyshabangu"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/su.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/su.json
new file mode 100644
index 00000000..1cb9659e
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/su.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kandar"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/sv.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sv.json
new file mode 100644
index 00000000..f9e5251e
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sv.json
@@ -0,0 +1,66 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ainali",
+ "Haxpett",
+ "Jopparn",
+ "Knuckles",
+ "Magol",
+ "Milicevic01",
+ "Per",
+ "Sendelbach",
+ "Skalman",
+ "Tobulos1",
+ "WikiPhoenix",
+ "Lokal Profil",
+ "Josve05a",
+ "Jenniesarina",
+ "Dan Koehl",
+ "Rockyfelle",
+ "Warrakkk",
+ "McDutchie",
+ "Bengtsson96"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "Bok",
+ "visualeditor-cite-tool-name-journal": "Tidskrift",
+ "visualeditor-cite-tool-name-news": "Nyheter",
+ "visualeditor-cite-tool-name-web": "Webbplats",
+ "cite-tool-definition.json": "null",
+ "cite-ve-changedesc-ref-group-both": "Referensgrupp ändrades från \"$1\" till \"$2\"",
+ "cite-ve-changedesc-ref-group-from": "Referensgrupp ändrades från \"$1\" till den allmänna gruppen",
+ "cite-ve-changedesc-ref-group-to": "Referensgrupp ändrades från den allmänna gruppen till \"$1\"",
+ "cite-ve-changedesc-reflist-group-both": "Referenslistgrupp ändrades från \"$1\" till \"$2\"",
+ "cite-ve-changedesc-reflist-group-from": "Referenslistgrupp ändrades från \"$1\" till den allmänna gruppen",
+ "cite-ve-changedesc-reflist-group-to": "Referenslistgrupp ändrades från den allmänna gruppen till \"$1\"",
+ "cite-ve-changedesc-reflist-item-id": "Referensindex ändrades",
+ "cite-ve-dialog-reference-editing-reused": "Denna referens används $1 {{PLURAL:$1|gång|gånger}} på denna sida.",
+ "cite-ve-dialog-reference-options-group-label": "Använd den här gruppen",
+ "cite-ve-dialog-reference-options-group-placeholder": "Allmänna referenser",
+ "cite-ve-dialog-reference-options-name-label": "Använd med detta namn igen",
+ "cite-ve-dialog-reference-options-responsive-label": "Använd responsiva kolumner",
+ "cite-ve-dialog-reference-options-section": "Alternativ",
+ "cite-ve-dialog-reference-placeholder": "Skriv eller klistra in din referens här eller infoga en referensmall.",
+ "cite-ve-dialog-reference-title": "Källa",
+ "cite-ve-dialog-reference-useexisting-full-label": "Återanvänd en källa som redan finns på denna sida",
+ "cite-ve-dialog-reference-useexisting-label": "Använd en befintlig källa",
+ "cite-ve-dialog-reference-useexisting-tool": "Återanvänd",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Lista över allmänna referenser",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Lista över referenser för grupp \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Referenslista",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Förbättrar ditt innehåll genom att lägga till informationskällor. Du kan källhänvisa till böcker, tidningar och webbplatser.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Referenser",
+ "cite-ve-dialogbutton-reference-full-label": "Grundform",
+ "cite-ve-dialogbutton-reference-title": "Referens",
+ "cite-ve-dialogbutton-reference-tooltip": "Enkel",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Referenslista",
+ "cite-ve-reference-input-placeholder": "Sök i de aktuella referenserna",
+ "cite-ve-referenceslist-isempty": "Det finns inga referenser med gruppen \"$1\" på denna sida att inkludera i denna lista.",
+ "cite-ve-referenceslist-isempty-default": "Det finns inga referenser på denna sida att inkludera i denna lista.",
+ "cite-ve-referenceslist-missingref": "Den här källan är definierad i en mall eller ett annat genererat block och kan bara redigeras i wikitext.",
+ "cite-ve-toolbar-group-label": "Ange källa",
+ "cite-ve-othergroup-item": "$1 referens",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Referenser",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Referensgruppnamn: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/sw.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sw.json
new file mode 100644
index 00000000..f407c287
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/sw.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lloffiwr",
+ "Muddyb Blast Producer",
+ "Kipala"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Kitabu",
+ "visualeditor-cite-tool-name-news": "Habari",
+ "visualeditor-cite-tool-name-web": "Tovuti",
+ "cite-ve-dialog-reference-options-group-label": "Tumia kundi hili",
+ "cite-ve-dialog-reference-options-name-label": "Tumia upya kwa jina hili",
+ "cite-ve-dialog-reference-options-section": "Chaguzi",
+ "cite-ve-dialog-reference-title": "Marejeo",
+ "cite-ve-dialog-reference-useexisting-label": "Tumia rejeo lililopo tayari",
+ "cite-ve-dialog-referenceslist-title": "Orodha ya marejeo",
+ "cite-ve-dialogbutton-reference-tooltip": "Marejeo",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Orodha ya marejeo",
+ "cite-ve-toolbar-group-label": "Marejeo"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/szl.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/szl.json
new file mode 100644
index 00000000..fe1df9b8
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/szl.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Krol111"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ta.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ta.json
new file mode 100644
index 00000000..e4105c00
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ta.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jayarathina",
+ "Sank",
+ "Shanmugamp7",
+ "மதனாஹரன்",
+ "கௌசிக் பிரபு",
+ "Kalyanasundar",
+ "ElangoRamanujam",
+ "Info-farmer",
+ "Dineshkumar Ponnusamy"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "நூல்",
+ "visualeditor-cite-tool-name-journal": "இதழ்",
+ "visualeditor-cite-tool-name-news": "செய்திகள்",
+ "visualeditor-cite-tool-name-web": "இணையத்தளம்",
+ "cite-ve-dialog-reference-options-group-label": "இந்தக் குழுவை பாவிக்கவும்",
+ "cite-ve-dialog-reference-title": "மேற்கோள்",
+ "cite-ve-dialogbutton-reference-tooltip": "மேற்கோள்"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/tay.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tay.json
new file mode 100644
index 00000000..d15293a2
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tay.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Translatealcd",
+ "Hitaypayan"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Biru’",
+ "visualeditor-cite-tool-name-journal": "Mtnaq ryax na phtgan kinbalay biru’",
+ "visualeditor-cite-tool-name-news": "Sinbung",
+ "visualeditor-cite-tool-name-web": "Wangcan",
+ "cite-ve-dialog-reference-options-group-label": "Sptzyuwaw sa chyuncu",
+ "cite-ve-dialog-reference-options-section": "Bbzyagan",
+ "cite-ve-dialog-reference-useexisting-tool": "Sptzyuwaw lawziy",
+ "cite-ve-dialog-referenceslist-title": "Kt’aniy sa binkgan kktan biru’ na bunkeng",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "’nagal sa",
+ "cite-ve-dialogbutton-reference-full-label": "Spzyang ’ringan balay na binkgan biru’",
+ "cite-ve-dialogbutton-reference-title": "Kmita’ sa bungkeng",
+ "cite-ve-dialogbutton-reference-tooltip": "T’ringan balay na",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Kt’aniy sa binkgan kktan biru’ na bunkeng",
+ "cite-ve-toolbar-group-label": "’nagal sa",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Kmita’ sa bungkeng"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/tcy.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tcy.json
new file mode 100644
index 00000000..68e3feb7
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tcy.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "VASANTH S.N.",
+ "రహ్మానుద్దీన్",
+ "Bharathesha Alasandemajalu",
+ "Vishwanatha Badikana"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/te.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/te.json
new file mode 100644
index 00000000..be93122c
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/te.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arjunaraoc",
+ "Jayarathina",
+ "Sank",
+ "Shanmugamp7",
+ "Veeven",
+ "Visdaviva",
+ "மதனாஹரன்",
+ "రహ్మానుద్దీన్",
+ "Ravichandra",
+ "Chaduvari",
+ "Kiranmayee",
+ "Arunraman7"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "పుస్తకం",
+ "visualeditor-cite-tool-name-journal": "జర్నల్",
+ "visualeditor-cite-tool-name-news": "వార్తలు",
+ "visualeditor-cite-tool-name-web": "జాలస్థలి",
+ "cite-ve-dialog-reference-options-group-label": "ఈ సమూహము వాడు",
+ "cite-ve-dialog-reference-options-group-placeholder": "సాధారణ మూలాలు",
+ "cite-ve-dialog-reference-options-name-label": "ఈ పేరుతో మరల వాడు",
+ "cite-ve-dialog-reference-options-section": "ఎంపికలు",
+ "cite-ve-dialog-reference-title": "ఉల్లేఖన",
+ "cite-ve-dialog-reference-useexisting-label": "ఇప్పటికే వున్న ఉల్లేఖన వాడు",
+ "cite-ve-dialog-referenceslist-title": "ఉల్లేఖనల జాబితా",
+ "cite-ve-dialogbutton-reference-tooltip": "మూలాలు",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "మూలాల జాబితా",
+ "cite-ve-referenceslist-isempty": "ఈ జాబితాలో ఉన్న  పేజీలో గ్రూప్ \"$ 1\" తో ఎటువంటి సూచనలు లేవు.",
+ "cite-ve-referenceslist-missingref": "ఈ సూచన ఒక టెంప్లేట్ లేదా ఇతర ఉత్పత్తి బ్లాక్ లో వివరించబడింది, మరియు ఇప్పుడు  మూలం రీతిలో మాత్రమే సవరించవచ్చు."
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/tg-cyrl.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tg-cyrl.json
new file mode 100644
index 00000000..55a36480
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tg-cyrl.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ibrahim"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Китоб",
+ "visualeditor-cite-tool-name-journal": "Маҷалла",
+ "visualeditor-cite-tool-name-news": "Рӯзнома",
+ "visualeditor-cite-tool-name-web": "Сомона",
+ "cite-ve-dialog-reference-options-group-label": "Истифодаи ин гурӯҳ",
+ "cite-ve-dialog-reference-options-section": "Ихтиёрот"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/th.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/th.json
new file mode 100644
index 00000000..9ff50aa6
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/th.json
@@ -0,0 +1,51 @@
+{
+ "@metadata": {
+ "authors": [
+ "Supasate",
+ "Taweetham",
+ "Horus",
+ "Aefgh39622"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "ไม่ได้กำหนด",
+ "visualeditor-cite-tool-name-book": "หนังสือ",
+ "visualeditor-cite-tool-name-journal": "วารสาร",
+ "visualeditor-cite-tool-name-news": "ข่าว",
+ "visualeditor-cite-tool-name-web": "เว็บไซต์",
+ "cite-tool-definition.json": "ไม่ได้กำหนด",
+ "cite-ve-changedesc-ref-group-both": "เปลี่ยนกลุ่มอ้างอิงจาก \"$1\" เป็น \"$2\"",
+ "cite-ve-changedesc-ref-group-from": "เปลี่ยนกลุ่มอ้างอิงจาก \"$1\" เป็นกลุ่มทั่วไป",
+ "cite-ve-changedesc-ref-group-to": "เปลี่ยนกลุ่มอ้างอิงจากกลุ่มทั่วไปเป็น \"$1\"",
+ "cite-ve-changedesc-reflist-group-both": "เปลี่ยนกลุ่มอ้างอิงจาก \"$1\" เป็น \"$2\"",
+ "cite-ve-changedesc-reflist-group-from": "เปลี่ยนกลุ่มอ้างอิงจาก \"$1\" เป็นกลุ่มทั่วไป",
+ "cite-ve-changedesc-reflist-group-to": "เปลี่ยนกลุ่มอ้างอิงจากกลุ่มทั่วไปเป็น \"$1\"",
+ "cite-ve-changedesc-reflist-item-id": "เปลี่ยนดัชนีอ้างอิง",
+ "cite-ve-dialog-reference-editing-reused": "แหล่งอ้างอิงนี้ถูกใช้แล้ว $1 {{PLURAL:$1|ครั้ง}}บนหน้านี้",
+ "cite-ve-dialog-reference-options-group-label": "ใช้กลุ่มนี้",
+ "cite-ve-dialog-reference-options-group-placeholder": "แหล่งอ้างอิงทั่วไป",
+ "cite-ve-dialog-reference-options-name-label": "ใช้ซ้ำโดยชื่อนี้",
+ "cite-ve-dialog-reference-options-responsive-label": "ใช้ผังแนวตั้งโต้ตอบ",
+ "cite-ve-dialog-reference-options-section": "ตัวเลือก",
+ "cite-ve-dialog-reference-placeholder": "เขียนหรือวางแหล่งอ้างอิงของคุณที่นี่ หรือแทรกแม่แบบอ้างอิงที่มา",
+ "cite-ve-dialog-reference-title": "อ้างอิง",
+ "cite-ve-dialog-reference-useexisting-full-label": "ใช้แหล่งอ้างอิงที่มีอยู่แล้วบนหน้านี้ซ้ำ",
+ "cite-ve-dialog-reference-useexisting-label": "ใช้การอ้างอิงที่มีอยู่แล้ว",
+ "cite-ve-dialog-reference-useexisting-tool": "ใช้ซ้ำ",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "รายชื่อแหล่งอ้างอิงทั่วไป",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "รายชื่อแหล่งอ้างอิงสำหรับกลุ่ม \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "รายการอ้างอิง",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "ปรับปรุงเนื้อหาของคุณโดยเพิ่มแหล่งข้อมูล คุณสามารถอ้างอิงจากในหนังสือ หนังสือพิมพ์ และเว็บไซต์ต่าง ๆ ได้",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "การอ้างอิง",
+ "cite-ve-dialogbutton-reference-full-label": "รูปแบบพื้นฐาน",
+ "cite-ve-dialogbutton-reference-title": "แหล่งอ้างอิง",
+ "cite-ve-dialogbutton-reference-tooltip": "พื้นฐาน",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "รายการอ้างอิง",
+ "cite-ve-reference-input-placeholder": "ค้นหาภายในแหล่งอ้างอิงปัจจุบัน",
+ "cite-ve-referenceslist-isempty": "ไม่มีแหล่งอ้างอิงในกลุ่ม \"$1\" ในหน้านี้",
+ "cite-ve-referenceslist-isempty-default": "ไม่มีแหล่งอ้างอิงในหน้านี้",
+ "cite-ve-referenceslist-missingref": "ข้อมูลอ้างอิงนี้กำหนดไว้ในแม่แบบหรือบล็อกอื่น ๆ ที่สร้างขึ้น ในขณะนี้สามารถสามารถแก้ไขได้เฉพาะในโหมดต้นฉบับ",
+ "cite-ve-toolbar-group-label": "อ้างอิง",
+ "cite-ve-othergroup-item": "$1 อ้างอิง",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "อ้างอิง",
+ "visualeditor-internal-list-diff-group-name-mwreference": "ชื่อกลุ่มอ้างอิง: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/tl.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tl.json
new file mode 100644
index 00000000..49a4bfe5
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tl.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "AnakngAraw",
+ "Sky Harbor",
+ "Jojit fb",
+ "Jewel457",
+ "Amire80"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Aklat",
+ "visualeditor-cite-tool-name-journal": "Rebista",
+ "visualeditor-cite-tool-name-news": "Balita",
+ "visualeditor-cite-tool-name-web": "Websayt",
+ "cite-ve-dialog-reference-editing-reused": "Ginagamit ang sangguniang ito nang $1 {{PLURAL:$1|beses}} sa pahinang ito.",
+ "cite-ve-dialog-reference-options-group-label": "Gamitin ang grupong ito",
+ "cite-ve-dialog-reference-options-group-placeholder": "Mga karaniwang sanggunian",
+ "cite-ve-dialog-reference-options-name-label": "Gamitin muli sa pangalang ito",
+ "cite-ve-dialog-reference-options-section": "Mga pagpipilian",
+ "cite-ve-dialog-reference-title": "Sanggunian",
+ "cite-ve-dialog-reference-useexisting-label": "Gumamit ng umiiral na sanggunian",
+ "cite-ve-dialog-reference-useexisting-tool": "Muling paggamit",
+ "cite-ve-dialog-referenceslist-title": "Talasanggunian",
+ "cite-ve-dialogbutton-reference-tooltip": "Payak",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Talasanggunian",
+ "cite-ve-reference-input-placeholder": "Maghanap sa loob ng mga kasalukuyang sanggunian",
+ "cite-ve-referenceslist-isempty": "Walang sangguniang may grupong \"$1\" sa pahinang ito ang maisasama sa talang ito.",
+ "cite-ve-referenceslist-isempty-default": "Walang sanggunian sa pahinang ito ang maisasama sa talang ito.",
+ "cite-ve-referenceslist-missingref": "Binigyan ng katuturan ang sangguniang ito sa isang padron o ibang uri ng blokeng ginawa, at sa panahong ito maaari lamang itong baguhin gamit ang paraang batayan.",
+ "cite-ve-toolbar-group-label": "Isangguni"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/tr.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tr.json
new file mode 100644
index 00000000..556eb4f9
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tr.json
@@ -0,0 +1,51 @@
+{
+ "@metadata": {
+ "authors": [
+ "Emperyan",
+ "Incelemeelemani",
+ "LuCKY",
+ "Maidis",
+ "Rapsar",
+ "Talha Samil Cakir",
+ "TurkishStyles",
+ "Meelo",
+ "Ceas08",
+ "Mavrikant",
+ "Sayginer",
+ "Violetanka",
+ "Captantrips",
+ "Stultiwikia",
+ "Arystanbek",
+ "Uğurkent",
+ "Kincki",
+ "McAang",
+ "HakanIST",
+ "Sadrettin"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Kitap",
+ "visualeditor-cite-tool-name-journal": "Dergi",
+ "visualeditor-cite-tool-name-news": "Haberler",
+ "visualeditor-cite-tool-name-web": "Web sitesi",
+ "cite-ve-dialog-reference-options-group-label": "Bu grubu kullan",
+ "cite-ve-dialog-reference-options-group-placeholder": "Genel referanslar",
+ "cite-ve-dialog-reference-options-name-label": "Bu isimle yeniden kullan",
+ "cite-ve-dialog-reference-options-section": "Seçenekler",
+ "cite-ve-dialog-reference-title": "Kaynak",
+ "cite-ve-dialog-reference-useexisting-full-label": "Yeniden kullanım zaten bu sayfa üzerinde var olan bir alıntı",
+ "cite-ve-dialog-reference-useexisting-label": "Mevcut bir kaynak kullanın",
+ "cite-ve-dialog-reference-useexisting-tool": "Tekrar kullan",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Genel referans listesi",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Başvuru listesi için Grup \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "Kaynak listesi",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Alıntılar",
+ "cite-ve-dialogbutton-reference-full-label": "Temel form",
+ "cite-ve-dialogbutton-reference-title": "Kaynakça",
+ "cite-ve-dialogbutton-reference-tooltip": "Temel",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Kaynak listesi",
+ "cite-ve-reference-input-placeholder": "Varolan kaynakça içinde ara",
+ "cite-ve-referenceslist-isempty": "Bu listeye dahil etmek için bu sayfada \"$1\" grubu kaynağına uygun kaynak bulunmamaktadır.",
+ "cite-ve-referenceslist-isempty-default": "Bu listeye eklemek için bu sayfada başvurular var.",
+ "cite-ve-referenceslist-missingref": "Bu kaynak ve şablonlar blok olarak tanımlandığından dolayı henüz yalnızca wiki metin editöründe kaynak modunda düzenlenebilir.",
+ "cite-ve-toolbar-group-label": "Kaynak göster"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/tt-cyrl.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tt-cyrl.json
new file mode 100644
index 00000000..971db040
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tt-cyrl.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ajdar",
+ "Derslek",
+ "Ильнар"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "Китап",
+ "visualeditor-cite-tool-name-journal": "Мәкалә",
+ "visualeditor-cite-tool-name-news": "Яңалыклар",
+ "visualeditor-cite-tool-name-web": "Веб-сәхифә",
+ "cite-tool-definition.json": "null",
+ "cite-ve-dialog-reference-editing-reused": "Әлеге сылтамабиттә $1 тапкыр {{PLURAL:$1|кулланыла}}.",
+ "cite-ve-dialog-reference-options-group-label": "Бу төркемне кулланырга",
+ "cite-ve-dialog-reference-options-group-placeholder": "Гомуми сылтамалар",
+ "cite-ve-dialog-reference-options-name-label": "Кабаттан шушы исем белән кулланырга",
+ "cite-ve-dialog-reference-options-section": "Көйләнмәләр",
+ "cite-ve-dialog-reference-title": "Искәрмә",
+ "cite-ve-dialog-reference-useexisting-full-label": "Биттә күрсәтелгән чыганакны кабат куллану",
+ "cite-ve-dialog-reference-useexisting-label": "Инде булган искәрмәне кулланырга",
+ "cite-ve-dialog-reference-useexisting-tool": "Кире куллану",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Гомуми сылтамалар исемлеге",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "\"$1\" төркеме өчен искәрмәләр исемлеге",
+ "cite-ve-dialog-referenceslist-title": "Искәрмәләр исемлеге",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Ясалган мәкаләләрнең абруен чыганаклар ярдәмендә арттырырга тырышыгыз. Сез китаплардан, гәзитләрдән һәм төрле сәхифәләрдән кирәкле өзекләрне ала аласыз.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Өзекләр",
+ "cite-ve-dialogbutton-reference-full-label": "Гади форма",
+ "cite-ve-dialogbutton-reference-title": "Искәрмә",
+ "cite-ve-dialogbutton-reference-tooltip": "Төп",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Искәрмәләр исемлеге",
+ "cite-ve-reference-input-placeholder": "Әлеге сылтамада эзләү",
+ "cite-ve-referenceslist-isempty": "Әлеге биттә « $1 » төркеме белән сылтамалар юк.",
+ "cite-ve-referenceslist-isempty-default": "Әлеге биттә исемлеккә кертер өчен сылтамалар юк.",
+ "cite-ve-referenceslist-missingref": "Әлеге сылтама калыпта гына яки аерым блокта гына билгеләнә, һәм хәзерге вакытта аны чыганак код режимында гына үзгәртеп була.",
+ "cite-ve-toolbar-group-label": "Чыганаклар",
+ "cite-ve-othergroup-item": "$1 искәрмә"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/tt.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tt.json
new file mode 100644
index 00000000..b772aeb6
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tt.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ilnur efende"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/tyv.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tyv.json
new file mode 100644
index 00000000..9ebef43b
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tyv.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Agilight",
+ "Монгуш Салим"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/tzm.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tzm.json
new file mode 100644
index 00000000..af00f9c7
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/tzm.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Tifinaghes"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/udm.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/udm.json
new file mode 100644
index 00000000..6073cfde
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/udm.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "AlnashPiyash2"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ug-arab.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ug-arab.json
new file mode 100644
index 00000000..aec96224
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ug-arab.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sahran",
+ "Tel'et",
+ "Tifinaghes"
+ ]
+ },
+ "cite-ve-dialog-reference-options-section": "تاللانما",
+ "cite-ve-dialog-reference-title": "نەقىل"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/uk.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/uk.json
new file mode 100644
index 00000000..7011106b
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/uk.json
@@ -0,0 +1,67 @@
+{
+ "@metadata": {
+ "authors": [
+ "AS",
+ "Aced",
+ "Ahonc",
+ "Andriykopanytsia",
+ "Base",
+ "Perohanych",
+ "RLuts",
+ "Sahran",
+ "Sergento",
+ "Steve.rusyn",
+ "SteveR",
+ "Tel'et",
+ "Tifinaghes",
+ "Ата",
+ "NataChe",
+ "Piramidion",
+ "Alex Blokha",
+ "A1",
+ "Dars"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "null",
+ "visualeditor-cite-tool-name-book": "Книга",
+ "visualeditor-cite-tool-name-journal": "Журнал",
+ "visualeditor-cite-tool-name-news": "Новини",
+ "visualeditor-cite-tool-name-web": "Веб-сайт",
+ "cite-tool-definition.json": "null",
+ "cite-ve-changedesc-ref-group-both": "Групу приміток змінено з «$1» на «$2»",
+ "cite-ve-changedesc-ref-group-from": "Групу приміток змінено з «$1» на загальну групу",
+ "cite-ve-changedesc-ref-group-to": "Групу приміток змінено із загальної групи на «$1»",
+ "cite-ve-changedesc-reflist-group-both": "Групу списку приміток змінено з «$1» на «$2»",
+ "cite-ve-changedesc-reflist-group-from": "Групу списку приміток змінено з «$1» на загальну групу",
+ "cite-ve-changedesc-reflist-group-to": "Групу списку приміток змінено із загальної групи на «$1»",
+ "cite-ve-changedesc-reflist-item-id": "Покажчик приміток змінився",
+ "cite-ve-dialog-reference-editing-reused": "Ця примітка використовується $1 {{PLURAL:$1|раз|рази|разів}} на цій сторінці.",
+ "cite-ve-dialog-reference-options-group-label": "Використати цю групу",
+ "cite-ve-dialog-reference-options-group-placeholder": "Загальні посилання",
+ "cite-ve-dialog-reference-options-name-label": "Повторно використати з цією назвою",
+ "cite-ve-dialog-reference-options-responsive-label": "Використовувати розкладку чутливих стовпців",
+ "cite-ve-dialog-reference-options-section": "Параметри",
+ "cite-ve-dialog-reference-placeholder": "Напишіть або вставте свою примітку сюди, або ж вставте шаблон джерела.",
+ "cite-ve-dialog-reference-title": "Примітка",
+ "cite-ve-dialog-reference-useexisting-full-label": "Повторно використати примітку, що вже існує на цій сторінці",
+ "cite-ve-dialog-reference-useexisting-label": "Використовувати наявну примітку",
+ "cite-ve-dialog-reference-useexisting-tool": "Повторне використання",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Список загальних приміток",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Список приміток групи «$1»",
+ "cite-ve-dialog-referenceslist-title": "Список приміток",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Покращуйте Ваш контент, додаючи джерела інформації. Ви можете посилатися на книжки, газети і веб-сайти.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Примітки",
+ "cite-ve-dialogbutton-reference-full-label": "Звичайний вигляд",
+ "cite-ve-dialogbutton-reference-title": "Посилання",
+ "cite-ve-dialogbutton-reference-tooltip": "Базовий",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Список приміток",
+ "cite-ve-reference-input-placeholder": "Пошук у поточних примітках",
+ "cite-ve-referenceslist-isempty": "На цій сторінці немає приміток групи «$1», які можна було б внести до цього списку.",
+ "cite-ve-referenceslist-isempty-default": "На цій сторінці немає приміток, які можна було б внести до цього списку.",
+ "cite-ve-referenceslist-missingref": "Ця примітка визначена у шаблоні або іншому генерованому блоці, і на даний момент її можна редагувати лише в режимі редагування коду.",
+ "cite-ve-referenceslist-missingreflist": "Список приміток генерується шаблоном, наразі його можна редагувати лише в режимі редагування вікірозмітки.",
+ "cite-ve-toolbar-group-label": "Цитувати",
+ "cite-ve-othergroup-item": "$1 посилання",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Примітки",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Назва групи приміток: «$1»"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/ur.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ur.json
new file mode 100644
index 00000000..2d48ce14
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/ur.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Noor2020",
+ "පසිඳු කාවින්ද",
+ "عثمان خان شاہ",
+ "Syedalinaqinaqvi",
+ "عرفان ارشد",
+ "Obaid Raza",
+ "Muhammad Shuaib"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "خالی",
+ "visualeditor-cite-tool-name-book": "کتاب",
+ "visualeditor-cite-tool-name-journal": "جریدہ",
+ "visualeditor-cite-tool-name-news": "خبر",
+ "visualeditor-cite-tool-name-web": "ویب سائٹ",
+ "cite-tool-definition.json": "خالی",
+ "cite-ve-dialog-reference-options-group-label": "اس گروہ کو استعمال کریں",
+ "cite-ve-dialog-reference-options-group-placeholder": "عمومی حوالہ جات",
+ "cite-ve-dialog-reference-options-name-label": "اس نام کو دوبارہ استعمال کریں",
+ "cite-ve-dialog-reference-options-section": "اختیارات",
+ "cite-ve-dialog-reference-title": "حوالہ",
+ "cite-ve-dialog-reference-useexisting-full-label": "اس صفحے میں پہلے سے موجود حوالے کو دوبارہ استعمال کریں",
+ "cite-ve-dialog-reference-useexisting-tool": "دوبارہ استعمال کریں",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "عمومی حوالہ جات کی فہرست",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "گروہ «$1» کے حوالوں کی فہرست",
+ "cite-ve-dialog-referenceslist-title": "حوالہ جات کی فہرست",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "معلومات کے مآخذ شامل کرکے اپنے مواد کو مزید بہتر بنائیں۔ آپ کتابوں، اخبارات اور ویب سائٹ کے حوالے درج کر سکتے ہیں۔",
+ "cite-ve-dialogbutton-reference-full-label": "ابتدائی شکل",
+ "cite-ve-dialogbutton-reference-title": "حوالہ",
+ "cite-ve-dialogbutton-reference-tooltip": "ابتدائی",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "حوالہ جات کی فہرست",
+ "cite-ve-toolbar-group-label": "حوالہ",
+ "cite-ve-othergroup-item": "$1 حوالہ",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "حوالہ جات"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/uz.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/uz.json
new file mode 100644
index 00000000..87a58281
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/uz.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "CoderSI",
+ "Noor2020",
+ "Sociologist",
+ "පසිඳු කාවින්ද"
+ ]
+ },
+ "cite-ve-dialog-reference-options-group-label": "Ushbu guruhdan foydalanish",
+ "cite-ve-dialog-reference-options-name-label": "Ushbu nom bilan takroran foydalanish",
+ "cite-ve-dialog-reference-options-section": "Moslamalar",
+ "cite-ve-dialog-reference-title": "Izoh",
+ "cite-ve-dialog-reference-useexisting-label": "Mavjud izohdan foydalanish",
+ "cite-ve-dialog-referenceslist-title": "Izohlar roʻyxati",
+ "cite-ve-dialogbutton-reference-tooltip": "Izoh",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Izohlar roʻyxati",
+ "cite-ve-reference-input-placeholder": "Siz qanaqa dalil keltirmoqchisiz?"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/vec.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/vec.json
new file mode 100644
index 00000000..02147be2
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/vec.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Candalua",
+ "GatoSelvadego",
+ "Gloria sah"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Libro",
+ "visualeditor-cite-tool-name-journal": "Giornàl",
+ "visualeditor-cite-tool-name-news": "Notisie",
+ "visualeditor-cite-tool-name-web": "Sito web",
+ "cite-ve-dialog-reference-options-group-label": "Dopara sto grupo",
+ "cite-ve-dialog-reference-options-name-label": "Ri-dopara sto nòme",
+ "cite-ve-dialog-reference-options-section": "Opsion",
+ "cite-ve-dialog-reference-title": "Nòda",
+ "cite-ve-dialog-reference-useexisting-label": "Dopara un riferimento existente",
+ "cite-ve-dialog-reference-useexisting-tool": "Dòpara da novo",
+ "cite-ve-dialog-referenceslist-title": "Elenco nòde",
+ "cite-ve-dialogbutton-reference-tooltip": "Nòda",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Elenco nòde",
+ "cite-ve-reference-input-placeholder": "A cosa se dexidera far riferimento?",
+ "cite-ve-referenceslist-isempty": "No xe prexenti riferimenti co'l grupo \"$1\" so sta pàjina da includare in sto elenco.",
+ "cite-ve-referenceslist-isempty-default": "No xe prexenti riferimenti so sta pàjina da includare in sto elenco.",
+ "cite-ve-referenceslist-missingref": "Sto riferimento el xe definìo inte un modèl o inte 'n altro bloco xenerà e par deso el pol èsar canbià soło che in modałità sorxente.",
+ "cite-ve-toolbar-group-label": "Citasion"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/vi.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/vi.json
new file mode 100644
index 00000000..bcc22cde
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/vi.json
@@ -0,0 +1,52 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cheers!",
+ "Jdforrester",
+ "Minh Nguyen",
+ "Trần Nguyễn Minh Huy",
+ "Dinhxuanduyet",
+ "KhangND",
+ "Anh88",
+ "Quenhitran",
+ "Nguyên Lê"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Sách",
+ "visualeditor-cite-tool-name-journal": "Tạp chí",
+ "visualeditor-cite-tool-name-news": "Tin tức",
+ "visualeditor-cite-tool-name-web": "Trang Web",
+ "cite-ve-changedesc-ref-group-both": "Nhóm chú thích đổi từ “$1” thành “$2”",
+ "cite-ve-changedesc-ref-group-from": "Nhóm chú thích đổi từ “$1” thành nhóm chung",
+ "cite-ve-changedesc-ref-group-to": "Nhóm chú thích đổi từ nhóm chung thành “$1”",
+ "cite-ve-changedesc-reflist-group-both": "Nhóm danh sách chú thích đổi từ “$1” thành “$2”",
+ "cite-ve-changedesc-reflist-group-from": "Nhóm danh sách chú thích đổi từ “$1” thành nhóm chung",
+ "cite-ve-changedesc-reflist-group-to": "Nhóm danh sách chú thích đổi từ nhóm chung thành “$1”",
+ "cite-ve-dialog-reference-editing-reused": "Chú thích này được sử dụng $1 lần trên trang này.",
+ "cite-ve-dialog-reference-options-group-label": "Nhóm cước chú",
+ "cite-ve-dialog-reference-options-group-placeholder": "Tham khảo chung",
+ "cite-ve-dialog-reference-options-name-label": "ID để tái sử dụng cước chú",
+ "cite-ve-dialog-reference-options-section": "Tùy chọn",
+ "cite-ve-dialog-reference-placeholder": "Ghi hoặc dán chú thích vào đây, hoặc nhúng bản mẫu chú thích.",
+ "cite-ve-dialog-reference-title": "Chú thích tham khảo",
+ "cite-ve-dialog-reference-useexisting-full-label": "Sử dụng lại một chú thích đã tồn tại trên trang này",
+ "cite-ve-dialog-reference-useexisting-label": "Sử dụng một nguồn có sẵn",
+ "cite-ve-dialog-reference-useexisting-tool": "Tái sử dụng",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "Danh sách chú thích chung",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "Danh sách chú thích nhóm “$1”",
+ "cite-ve-dialog-referenceslist-title": "Danh sách chú thích tham khảo",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "Cải thiện nội dung của bạn bằng cách thêm nguồn gốc để lấy thông tin. Bạn có thể chú thích các cuốn sách, tờ báo, và trang Web.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "Chú thích",
+ "cite-ve-dialogbutton-reference-full-label": "Biểu mẫu cơ bản",
+ "cite-ve-dialogbutton-reference-title": "Chú thích",
+ "cite-ve-dialogbutton-reference-tooltip": "Cơ bản",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Danh sách chú thích tham khảo",
+ "cite-ve-reference-input-placeholder": "Tìm kiếm trong chú thích hiện tại",
+ "cite-ve-referenceslist-isempty": "Trang này không có chú thích tham khảo thuộc nhóm “$1” để liệt kê tại đây.",
+ "cite-ve-referenceslist-isempty-default": "Trang này không có chú thích tham khảo để liệt kê tại đây.",
+ "cite-ve-referenceslist-missingref": "Chú thích tham khảo này được định rõ trong một bản mẫu hoặc phần nội dung tự động khác. Hiện nay chỉ có thể sửa đổi chú thích này trong chế độ sửa mã nguồn.",
+ "cite-ve-toolbar-group-label": "Chú thích nguồn",
+ "cite-ve-othergroup-item": "$1 chú thích",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "Tham khảo",
+ "visualeditor-internal-list-diff-group-name-mwreference": "Tên nhóm chú thích: “$1”"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/vo.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/vo.json
new file mode 100644
index 00000000..de1a99db
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/vo.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Malafaya"
+ ]
+ },
+ "cite-ve-dialog-reference-options-group-label": "Gebön grupi at",
+ "cite-ve-dialog-reference-options-section": "Välots",
+ "cite-ve-dialog-reference-title": "Jon",
+ "cite-ve-dialog-reference-useexisting-label": "Gebön joni dabinöl",
+ "cite-ve-dialog-referenceslist-title": "Jonalised",
+ "cite-ve-dialogbutton-reference-tooltip": "Jon",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "Jonalised"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/vro.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/vro.json
new file mode 100644
index 00000000..ae335423
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/vro.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Võrok"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/wa.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/wa.json
new file mode 100644
index 00000000..53baf52a
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/wa.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Srtxg"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Live"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/war.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/war.json
new file mode 100644
index 00000000..5613b6a6
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/war.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "JinJian"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "Libro",
+ "visualeditor-cite-tool-name-journal": "Journal",
+ "visualeditor-cite-tool-name-news": "Mga notisya",
+ "visualeditor-cite-tool-name-web": "Websayt",
+ "cite-ve-dialog-reference-options-group-label": "Gamita ini nga grupo",
+ "cite-ve-dialog-reference-options-section": "Mga pagpipilian",
+ "cite-ve-dialog-reference-useexisting-tool": "Gamita utro",
+ "cite-ve-dialogbutton-reference-title": "Reperensya"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/wo.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/wo.json
new file mode 100644
index 00000000..359aea12
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/wo.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ibou"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/wuu.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/wuu.json
new file mode 100644
index 00000000..04f78ceb
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/wuu.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Poiuyt",
+ "十弌",
+ "反共复国"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/xmf.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/xmf.json
new file mode 100644
index 00000000..411c8de0
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/xmf.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Silovan",
+ "David1010"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "წიგნი",
+ "visualeditor-cite-tool-name-journal": "ჟურნალი",
+ "visualeditor-cite-tool-name-news": "სიახლეები",
+ "visualeditor-cite-tool-name-web": "ვებ-გვერდი",
+ "cite-ve-dialog-reference-editing-reused": "თე რსხილი ხასჷლას {{PLURAL:$1|-შა}} გიმირინუაფუ.",
+ "cite-ve-dialog-reference-options-group-label": "თე ბუნა გიმორინაფა",
+ "cite-ve-dialog-reference-options-group-placeholder": "ზოგადი წყუეფი",
+ "cite-ve-dialog-reference-options-name-label": "კინე მაჟირაშა გიმორინაფა თე ჯოხოთ",
+ "cite-ve-dialog-reference-options-section": "პარამეტრეფი",
+ "cite-ve-dialog-reference-title": "სქოლიო",
+ "cite-ve-dialog-reference-useexisting-full-label": "ხასჷლას უკვე არსებული წყუშ კინ მაჟირაშა გიმორინაფა",
+ "cite-ve-dialog-reference-useexisting-label": "არსებული სქოლიოშ გიმორინაფა",
+ "cite-ve-dialog-reference-useexisting-tool": "კინ გიმორინაფა",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "თარი სქოლიოშ ერკებული",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "ბუნა „$1“-იშ სქოლიოშ ერკებული",
+ "cite-ve-dialog-referenceslist-title": "სქოლიოშ ერკებული",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "ციტატეფი",
+ "cite-ve-dialogbutton-reference-full-label": "უბრალო ფორმა",
+ "cite-ve-dialogbutton-reference-title": "სქოლიო",
+ "cite-ve-dialogbutton-reference-tooltip": "ოგაჭგაფუე",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "სქოლიოშ ერკებული"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/yi.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/yi.json
new file mode 100644
index 00000000..f36b9f6a
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/yi.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Malafaya",
+ "פוילישער",
+ "十弌"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "נול",
+ "visualeditor-cite-tool-name-book": "בוך",
+ "visualeditor-cite-tool-name-journal": "זשורנאל",
+ "visualeditor-cite-tool-name-news": "נײַעס",
+ "visualeditor-cite-tool-name-web": "וועבזײַטל",
+ "cite-tool-definition.json": "נול",
+ "cite-ve-changedesc-reflist-group-both": "רעפֿערענצן ליסטע גרופע געענדערט פֿון \"$1\" צו \"$2\"",
+ "cite-ve-changedesc-reflist-item-id": "רעפֿערענץ-אינדעקס געענדערט",
+ "cite-ve-dialog-reference-editing-reused": "דער רעפערענץ ווערט געניצט $1 {{PLURAL:$1|מאל}} אויף דעם בלאט.",
+ "cite-ve-dialog-reference-options-group-label": "ניצן די גרופע",
+ "cite-ve-dialog-reference-options-group-placeholder": "אלגעמיינע רעפערענצן",
+ "cite-ve-dialog-reference-options-name-label": "ווידערניצן מיט דעם נאמען",
+ "cite-ve-dialog-reference-options-section": "ברירות",
+ "cite-ve-dialog-reference-placeholder": "שרייבט אדער קלעבט אייער רעפֿערענץ דא, אדער לייגט אריין א ציטאט־מוסטער.",
+ "cite-ve-dialog-reference-title": "רעפערענץ",
+ "cite-ve-dialog-reference-useexisting-full-label": "ווידערניצן א ציטירונג וואס אעז שוין פאראן אויף דעם בלאט",
+ "cite-ve-dialog-reference-useexisting-label": "ניצן אן עקזיסטירנדן רעפערענץ",
+ "cite-ve-dialog-reference-useexisting-tool": "ווידערניצן",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "ליסטע פון אלגעמיינע רעפערענצן",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "ליסטע פון רעפערענצן פאר גרופע \"$1\"",
+ "cite-ve-dialog-referenceslist-title": "רעפערענצן ליסטע",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "פארבעסערט אייער אינהאלט דורך צולייגן קוואלן פון אינפארמאציע. איר קענט ציטירן פון ביכער, צייטונגען און וועבזייטלעך.",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "ציטירונגען",
+ "cite-ve-dialogbutton-reference-full-label": "באזיס־פארעם",
+ "cite-ve-dialogbutton-reference-title": "רעפערענץ",
+ "cite-ve-dialogbutton-reference-tooltip": "איינפאך",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "רעפערענצן ליסטע",
+ "cite-ve-reference-input-placeholder": "זוכן אינערהאלב אקטועלע ציטירונגען",
+ "cite-ve-referenceslist-isempty": "נישט פֿאראן קיין רעפערענצן מיט דער גרופע \"$1\" אויף דעם בלאט אריינצושליסן אין דער דאזיקער ליסטע.",
+ "cite-ve-referenceslist-isempty-default": "נישט פאראן קיין רעפערענצן אויף דעם בלאט אריינצושליסן אין דער ליסטע.",
+ "cite-ve-referenceslist-missingref": "דער דאזיקער רעפֿערענצן איז דעפֿינירט אין א מוסטער אדער אנדער גענערירטן בלאק, און דערווייל קען ווערן רעדאקטירט נאר אין קוואלטעקסט מאדע.",
+ "cite-ve-toolbar-group-label": "ציטירן",
+ "cite-ve-othergroup-item": "$1 רעפֿערענץ",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "רעפערענצן",
+ "visualeditor-internal-list-diff-group-name-mwreference": "רעפֿערענץ גרופע נאמען: \"$1\""
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/yo.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/yo.json
new file mode 100644
index 00000000..2a72b2f6
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/yo.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": {
+ "authors": [
+ "Demmy"
+ ]
+ }
+} \ No newline at end of file
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/yue.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/yue.json
new file mode 100644
index 00000000..b1afb207
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/yue.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Deryck Chan",
+ "William915",
+ "CRCHF",
+ "Ktchankt"
+ ]
+ },
+ "visualeditor-cite-tool-name-book": "書",
+ "visualeditor-cite-tool-name-journal": "期刊",
+ "visualeditor-cite-tool-name-news": "新聞",
+ "visualeditor-cite-tool-name-web": "網站",
+ "cite-ve-dialog-reference-editing-reused": "喺呢版入面,呢個參考用過$1{{PLURAL:$1|次}}。",
+ "cite-ve-dialog-reference-options-group-label": "用呢組",
+ "cite-ve-dialog-reference-options-group-placeholder": "一般參考",
+ "cite-ve-dialog-reference-options-name-label": "跟呢個名翻用",
+ "cite-ve-dialog-reference-options-section": "選項",
+ "cite-ve-dialog-reference-title": "參考",
+ "cite-ve-dialog-reference-useexisting-full-label": "將呢版入面經已有嘅引用再用多次",
+ "cite-ve-dialog-reference-useexisting-label": "用現成參考",
+ "cite-ve-dialog-reference-useexisting-tool": "翻用",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "一般參考一覽",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "組「$1」嘅參考一覽",
+ "cite-ve-dialog-referenceslist-title": "參考一覽",
+ "cite-ve-dialogbutton-reference-full-label": "基本表格",
+ "cite-ve-dialogbutton-reference-title": "參考",
+ "cite-ve-dialogbutton-reference-tooltip": "基本",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "參考一覽",
+ "cite-ve-reference-input-placeholder": "你想引用啲乜?",
+ "cite-ve-referenceslist-isempty": "呢版冇「$1」組嘅參考資料畀你加落呢張表道。",
+ "cite-ve-referenceslist-isempty-default": "呢版冇參考資料畀你加落呢張表道。",
+ "cite-ve-referenceslist-missingref": "呢個註腳係用模或者其他組件砌成嘅,現時淨係可以喺源碼模式修改。",
+ "cite-ve-toolbar-group-label": "引用"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/zh-hans.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/zh-hans.json
new file mode 100644
index 00000000..9d62f7c0
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/zh-hans.json
@@ -0,0 +1,74 @@
+{
+ "@metadata": {
+ "authors": [
+ "Anakmalaysia",
+ "Bencmq",
+ "Demmy",
+ "Hydra",
+ "Hzy980512",
+ "Liangent",
+ "Liuxinyu970226",
+ "Qiyue2001",
+ "Shirayuki",
+ "Shizhao",
+ "TianyinLee",
+ "Xiaomingyan",
+ "Yfdyh000",
+ "Zhangjintao",
+ "乌拉跨氪",
+ "Hudafu",
+ "Mywood",
+ "Impersonator 1",
+ "Duolaimi",
+ "Byfserag",
+ "Linforest",
+ "Cwek",
+ "夢蝶葬花"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "空",
+ "visualeditor-cite-tool-name-book": "图书",
+ "visualeditor-cite-tool-name-journal": "期刊",
+ "visualeditor-cite-tool-name-news": "新闻",
+ "visualeditor-cite-tool-name-web": "网站",
+ "cite-tool-definition.json": "空",
+ "cite-ve-changedesc-ref-group-both": "已将参考文献组从“$1”更改为“$2”",
+ "cite-ve-changedesc-ref-group-from": "已将参考文献组从“$1”更改为一般组",
+ "cite-ve-changedesc-ref-group-to": "已将参考文献组从一般组更改为“$1”",
+ "cite-ve-changedesc-reflist-group-both": "已将参考列表组从“$1”更改为“$2”",
+ "cite-ve-changedesc-reflist-group-from": "已将参考列表组从“$1”更改为一般组",
+ "cite-ve-changedesc-reflist-group-to": "已将参考列表组从一般组更改为“$1”",
+ "cite-ve-changedesc-reflist-responsive-set": "参考列表已更改为在响应栏中显示",
+ "cite-ve-changedesc-reflist-responsive-unset": "参考列表已更改为只在一栏中显示",
+ "cite-ve-changedesc-reflist-item-id": "参考索引已更改",
+ "cite-ve-dialog-reference-editing-reused": "这个引用在此页面使用了$1{{PLURAL:$1|次}}。",
+ "cite-ve-dialog-reference-options-group-label": "使用该组",
+ "cite-ve-dialog-reference-options-group-placeholder": "一般参考文献",
+ "cite-ve-dialog-reference-options-name-label": "以该名称重复使用",
+ "cite-ve-dialog-reference-options-responsive-label": "使用响应列布局",
+ "cite-ve-dialog-reference-options-section": "选项",
+ "cite-ve-dialog-reference-placeholder": "在此写下或粘贴您的参考资料,或插入引用模板。",
+ "cite-ve-dialog-reference-title": "参考文献",
+ "cite-ve-dialog-reference-useexisting-full-label": "再次使用已存在于此页面的引用",
+ "cite-ve-dialog-reference-useexisting-label": "使用已有的参考文献",
+ "cite-ve-dialog-reference-useexisting-tool": "复用",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "一般参考文献列表",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "用于组“$1”的参考文献列表",
+ "cite-ve-dialog-referenceslist-title": "参考文献列表",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "通过添加信息来源以改进您的内容。您可以引用自图书、报纸和网站。",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "引用",
+ "cite-ve-dialogbutton-reference-full-label": "基本表格",
+ "cite-ve-dialogbutton-reference-title": "参考文献",
+ "cite-ve-dialogbutton-reference-tooltip": "基本",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "参考文献列表",
+ "cite-ve-reference-input-placeholder": "在当前引用中搜索",
+ "cite-ve-referenceslist-isempty": "本页面没有可包含在该列表中的组为“$1”的参考文献。",
+ "cite-ve-referenceslist-isempty-default": "本页面没有可包含在该列表中的参考文献。",
+ "cite-ve-referenceslist-missingref": "该参考文献定义在模板或其他生成块中,目前只能在源代码模式下编辑。",
+ "cite-ve-referenceslist-missingref-in-list": "该参考文献定义在模板或其他生成块中,目前只能在源代码模式下编辑。",
+ "cite-ve-referenceslist-missingreflist": "此参考资料列表由模板生成,并且目前只能在源代码模式中编辑。",
+ "cite-ve-toolbar-group-label": "引用",
+ "cite-ve-othergroup-item": "$1参考文献",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "参考文献",
+ "visualeditor-internal-list-diff-group-name-mwreference": "参考文献组名:“$1”"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/i18n/zh-hant.json b/www/wiki/extensions/Cite/modules/ve-cite/i18n/zh-hant.json
new file mode 100644
index 00000000..35d0331f
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/i18n/zh-hant.json
@@ -0,0 +1,71 @@
+{
+ "@metadata": {
+ "authors": [
+ "Anakmalaysia",
+ "Ch.Andrew",
+ "Hydra",
+ "Justincheng12345",
+ "Liflon",
+ "Liuxinyu970226",
+ "Qiyue2001",
+ "Radish10cm",
+ "Shirayuki",
+ "Simon Shek",
+ "Spring Roll Conan",
+ "Waihorace",
+ "EagerLin",
+ "Cwlin0416",
+ "Vincent Liu",
+ "LNDDYL",
+ "Deryck Chan",
+ "Cwek",
+ "Zhxy 519",
+ "Kly"
+ ]
+ },
+ "visualeditor-cite-tool-definition.json": "空",
+ "visualeditor-cite-tool-name-book": "書籍",
+ "visualeditor-cite-tool-name-journal": "期刊",
+ "visualeditor-cite-tool-name-news": "新聞",
+ "visualeditor-cite-tool-name-web": "網站",
+ "cite-tool-definition.json": "空",
+ "cite-ve-changedesc-ref-group-both": "參考文獻群組已從「$1」更改為「$2」",
+ "cite-ve-changedesc-ref-group-from": "參考文獻群組已從「$1」更改一般群組",
+ "cite-ve-changedesc-ref-group-to": "參考文獻群組已從一般群組更改為「$1」",
+ "cite-ve-changedesc-reflist-group-both": "參考文獻清單群組已從「$1」更改為「$2」",
+ "cite-ve-changedesc-reflist-group-from": "參考文獻清單群組已從「$1」更改一般群組",
+ "cite-ve-changedesc-reflist-group-to": "參考文獻清單群組已從一般群組更改為「$1」",
+ "cite-ve-changedesc-reflist-responsive-set": "僅在回應欄位裡顯示參考文獻清單的更改",
+ "cite-ve-changedesc-reflist-responsive-unset": "僅在一欄裡顯示參考文獻清單的更改",
+ "cite-ve-changedesc-reflist-item-id": "參考文獻索引已更改",
+ "cite-ve-dialog-reference-editing-reused": "此頁面已使用此參考文獻 $1 {{PLURAL:$1|次}}。",
+ "cite-ve-dialog-reference-options-group-label": "使用此群組",
+ "cite-ve-dialog-reference-options-group-placeholder": "一般參考文獻",
+ "cite-ve-dialog-reference-options-name-label": "以此名稱再使用",
+ "cite-ve-dialog-reference-options-responsive-label": "使用響應式欄位佈局",
+ "cite-ve-dialog-reference-options-section": "選項",
+ "cite-ve-dialog-reference-placeholder": "在此編寫或貼上您的參考文獻,或是插入引用模板。",
+ "cite-ve-dialog-reference-title": "參考文獻",
+ "cite-ve-dialog-reference-useexisting-full-label": "重複使用已經存在於此頁的引用",
+ "cite-ve-dialog-reference-useexisting-label": "使用現有的參考文獻",
+ "cite-ve-dialog-reference-useexisting-tool": "再利用",
+ "cite-ve-dialog-referenceslist-contextitem-description-general": "一般參考文獻清單",
+ "cite-ve-dialog-referenceslist-contextitem-description-named": "群組 \"$1\" 的參考文獻清單",
+ "cite-ve-dialog-referenceslist-title": "參考文獻清單",
+ "cite-ve-dialogbutton-citation-educationpopup-text": "透過增加來源資訊來改善您的內容,您可以引用自書籍、報章雜誌與網站。",
+ "cite-ve-dialogbutton-citation-educationpopup-title": "引用",
+ "cite-ve-dialogbutton-reference-full-label": "基礎表單",
+ "cite-ve-dialogbutton-reference-title": "參考文獻",
+ "cite-ve-dialogbutton-reference-tooltip": "基本",
+ "cite-ve-dialogbutton-referenceslist-tooltip": "參考文獻清單",
+ "cite-ve-reference-input-placeholder": "搜尋目前的引用",
+ "cite-ve-referenceslist-isempty": "此頁面中無群組為 \"$1\" 的參考文獻可加入引用清單。",
+ "cite-ve-referenceslist-isempty-default": "此頁面目前無任何參考文獻可加入引用清單。",
+ "cite-ve-referenceslist-missingref": "此參考文獻已定義於模板或其它產生的區塊上,目前只能使用原始碼模式來編輯。",
+ "cite-ve-referenceslist-missingref-in-list": "此參考文獻已定義於模板或其它產生的區塊上,目前只能使用原始碼模式來預覽。",
+ "cite-ve-referenceslist-missingreflist": "此參考文獻清單是由模板所產生,並僅可在原始碼模式下編輯。",
+ "cite-ve-toolbar-group-label": "引用",
+ "cite-ve-othergroup-item": "$1 參考文獻",
+ "visualeditor-internal-list-diff-default-group-name-mwreference": "參考文獻",
+ "visualeditor-internal-list-diff-group-name-mwreference": "參考文獻群組名稱:「$1」"
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-book.svg b/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-book.svg
new file mode 100644
index 00000000..97112dca
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-book.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="2 2 20 20">
+ <path d="M14.25 4c-1.033 0-1.875 1.109-2.261 1.822C11.578 5.109 10.748 4 9.729 4H2v15h7c.938 0 1.844 1.422 2 2h2c.203-.609.938-2 2-2h7V4h-7.75zM11 18c-.25-.469-1.203-1-2-1l-4.016.016.008-11.024 4.43-.008C10.362 5.984 11 7.162 11 8v10zm8.016-.984L15 17c-.734 0-1.719.445-2 1V8c0-.839.63-2.031 1.594-2.031l4.422.016v11.031z"/>
+</svg>
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-journal-ltr.svg b/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-journal-ltr.svg
new file mode 100644
index 00000000..031ac3f0
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-journal-ltr.svg
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="2 2 20 20">
+ <path id="journal" d="M5 4v17h12c1 0 2-1 2-2V4H5zm12 14c0 1-1 1-1 1H8V6h9v12z"/>
+ <path id="text1" d="M10 9h5v2h-5z"/>
+ <path id="text2" d="M10 12h5v2h-5z"/>
+</svg>
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-journal-rtl.svg b/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-journal-rtl.svg
new file mode 100644
index 00000000..30b74124
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-journal-rtl.svg
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="2 2 20 20">
+ <path id="journal" d="M19 4v17H7c-1 0-2-1-2-2V4h14zM7 18c0 1 1 1 1 1h8V6H7v12z"/>
+ <path id="text1" d="M14 9H9v2h5z"/>
+ <path id="text2" d="M14 12H9v2h5z"/>
+</svg>
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-news-ltr.svg b/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-news-ltr.svg
new file mode 100644
index 00000000..64deb4f9
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-news-ltr.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="2 2 20 20">
+ <path id="paper" d="M21 21H4c-1 0-2-1-2-2V4h19v17zM4 6v12.278c0 .397.325.722.722.722h14.28L19 6H4z"/>
+ <path id="banner" d="M6 8h11v3H6z"/>
+ <path id="text1" d="M12 12h5v2h-5z"/>
+ <path id="text2" d="M6 12h5v2H6z"/>
+ <path id="text3" d="M12 15h5v2h-5z"/>
+ <path id="text4" d="M6 15h5v2H6z"/>
+</svg>
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-news-rtl.svg b/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-news-rtl.svg
new file mode 100644
index 00000000..211343ad
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-news-rtl.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="2 2 20 20">
+ <path id="paper" d="M2 21h17c1 0 2-1 2-2V4H2v17zM19 6v12.278a.724.724 0 0 1-.722.722H3.998L4 6h15z"/>
+ <path id="banner" d="M17 8H6v3h11z"/>
+ <path id="text1" d="M11 12H6v2h5z"/>
+ <path id="text2" d="M17 12h-5v2h5z"/>
+ <path id="text3" d="M11 15H6v2h5z"/>
+ <path id="text4" d="M17 15h-5v2h5z"/>
+</svg>
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-web.svg b/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-web.svg
new file mode 100644
index 00000000..a45256c7
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/icons/ref-cite-web.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="2 2 20 20">
+ <path id="laptop" d="M22.78 18.46L21 16V4H3v12l-1.757 2.463a.974.974 0 0 0-.157 1.043c.157.347.533.494.914.494h20c.382 0 .783-.148.94-.496a.976.976 0 0 0-.16-1.044zM4 18l1-2V6h14v10l1 2H4z"/>
+ <path id="window" d="M7 16h10V8H7v8zm2-2v-3h6v3H9z"/>
+</svg>
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/icons/reference-existing-ltr.svg b/www/wiki/extensions/Cite/modules/ve-cite/icons/reference-existing-ltr.svg
new file mode 100644
index 00000000..f0eddbd6
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/icons/reference-existing-ltr.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="2 2 20 20">
+ <path id="fore-reference" d="M7 5v17h12c1 0 2-1 2-2V5H7zm12 14c0 1-1 1-1 1h-8V7h2v6l2-2 2 2V7h3v12z"/>
+ <path id="back-reference" d="M5 18h-.3C3.2 18 2 16.8 2 15.3V1.8h3V18zM2 1h16v2H2z"/>
+</svg>
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/icons/reference-existing-rtl.svg b/www/wiki/extensions/Cite/modules/ve-cite/icons/reference-existing-rtl.svg
new file mode 100644
index 00000000..1d21f332
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/icons/reference-existing-rtl.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="2 2 20 20">
+ <path id="fore-reference" d="M17 5v17H5c-1 0-2-1-2-2V5h14zM5 19c0 1 1 1 1 1h8V7h-2v6l-2-2-2 2V7H5v12z"/>
+ <path id="back-reference" d="M19 18h.3c1.5 0 2.7-1.2 2.7-2.7V1.8h-3V18zm3-17H6v2h16z"/>
+</svg>
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/icons/reference-ltr.svg b/www/wiki/extensions/Cite/modules/ve-cite/icons/reference-ltr.svg
new file mode 100644
index 00000000..ae3911df
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/icons/reference-ltr.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="2 2 20 20">
+ <path d="M5 4v17h12c1 0 2-1 2-2V4H5zm12 14c0 1-1 1-1 1H8V6h2v6l2-2 2 2V6h3v12z"/>
+</svg>
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/icons/reference-rtl.svg b/www/wiki/extensions/Cite/modules/ve-cite/icons/reference-rtl.svg
new file mode 100644
index 00000000..245bb8d1
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/icons/reference-rtl.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="2 2 20 20">
+ <path d="M19 4v17H7c-1 0-2-1-2-2V4h14zM7 18c0 1 1 1 1 1h8V6h-2v6l-2-2-2 2V6H7v12z"/>
+</svg>
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/icons/references-ltr.svg b/www/wiki/extensions/Cite/modules/ve-cite/icons/references-ltr.svg
new file mode 100644
index 00000000..606094f1
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/icons/references-ltr.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="2 2 20 20">
+ <path d="M3 6v12h4V6H3zm3 10H4v-1h2v1zm0-3H4v-1h2v1zm2-7v12h4V6H8zm3 10H9v-1h2v1zm0-3H9v-1h2v1zm.934-5.353L18 18l3.449-2.021-6.065-10.354-3.45 2.022zm7.643 7.111l-1.726 1.012-.506-.862 1.725-1.012.507.862zM18.06 12.17l-1.725 1.011-.506-.862 1.726-1.012.505.863z"/>
+</svg>
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/icons/references-rtl.svg b/www/wiki/extensions/Cite/modules/ve-cite/icons/references-rtl.svg
new file mode 100644
index 00000000..87887836
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/icons/references-rtl.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="2 2 20 20">
+ <path d="M21.449 6v12h-4V6h4zm-3 10h2v-1h-2v1zm0-3h2v-1h-2v1zm-2-7v12h-4V6h4zm-3 10h2v-1h-2v1zm0-3h2v-1h-2v1zm-.934-5.353L6.449 18 3 15.979 9.065 5.625l3.45 2.022zm-7.643 7.111l1.726 1.012.506-.862-1.725-1.012-.507.862zm1.517-2.588l1.725 1.011.506-.862-1.726-1.012-.505.863z"/>
+</svg>
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.dm.Converter.test.js b/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.dm.Converter.test.js
new file mode 100644
index 00000000..a3410e8f
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.dm.Converter.test.js
@@ -0,0 +1,36 @@
+/*!
+ * VisualEditor DataModel Cite-specific Converter tests.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+QUnit.module( 've.dm.Converter (Cite)', ve.test.utils.mwEnvironment );
+
+QUnit.test( 'getModelFromDom', function ( assert ) {
+ var msg, caseItem,
+ cases = ve.dm.citeExample.domToDataCases;
+
+ for ( msg in cases ) {
+ caseItem = ve.copy( cases[ msg ] );
+ if ( caseItem.mwConfig ) {
+ mw.config.set( caseItem.mwConfig );
+ }
+
+ ve.test.utils.runGetModelFromDomTest( assert, caseItem, msg );
+ }
+} );
+
+QUnit.test( 'getDomFromModel', function ( assert ) {
+ var msg, caseItem,
+ cases = ve.dm.citeExample.domToDataCases;
+
+ for ( msg in cases ) {
+ caseItem = ve.copy( cases[ msg ] );
+ if ( caseItem.mwConfig ) {
+ mw.config.set( caseItem.mwConfig );
+ }
+
+ ve.test.utils.runGetDomFromModelTest( assert, caseItem, msg );
+ }
+} );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.dm.InternalList.test.js b/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.dm.InternalList.test.js
new file mode 100644
index 00000000..78d3d10f
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.dm.InternalList.test.js
@@ -0,0 +1,237 @@
+/*!
+ * VisualEditor DataModel Cite-specific InternalList tests.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+QUnit.module( 've.dm.InternalList (Cite)', ve.test.utils.mwEnvironment );
+
+/* Tests */
+
+QUnit.test( 'addNode/removeNode', function ( assert ) {
+ var doc = ve.dm.citeExample.createExampleDocument( 'references' ),
+ newInternalList = new ve.dm.InternalList( doc ),
+ referenceNodes = [
+ doc.getDocumentNode().children[ 0 ].children[ 0 ],
+ doc.getDocumentNode().children[ 1 ].children[ 1 ],
+ doc.getDocumentNode().children[ 1 ].children[ 3 ],
+ doc.getDocumentNode().children[ 1 ].children[ 5 ],
+ doc.getDocumentNode().children[ 2 ].children[ 0 ],
+ doc.getDocumentNode().children[ 2 ].children[ 1 ]
+ ],
+ expectedNodes = {
+ 'mwReference/': {
+ keyedNodes: {
+ 'auto/0': [ referenceNodes[ 0 ] ],
+ 'literal/bar': [ referenceNodes[ 1 ], referenceNodes[ 3 ] ],
+ 'literal/:3': [ referenceNodes[ 2 ] ],
+ 'auto/1': [ referenceNodes[ 4 ] ]
+ },
+ firstNodes: [
+ referenceNodes[ 0 ],
+ referenceNodes[ 1 ],
+ referenceNodes[ 2 ],
+ referenceNodes[ 4 ]
+ ],
+ indexOrder: [ 0, 1, 2, 3 ],
+ uniqueListKeys: {},
+ uniqueListKeysInUse: {}
+ },
+ 'mwReference/foo': {
+ keyedNodes: {
+ 'auto/2': [ referenceNodes[ 5 ] ]
+ },
+ firstNodes: [ undefined, undefined, undefined, undefined, referenceNodes[ 5 ] ],
+ indexOrder: [ 4 ],
+ uniqueListKeys: {},
+ uniqueListKeysInUse: {}
+ }
+ };
+
+ assert.deepEqualWithNodeTree(
+ doc.internalList.nodes,
+ expectedNodes,
+ 'Document construction populates internal list correctly'
+ );
+
+ newInternalList.addNode( 'mwReference/', 'auto/0', 0, referenceNodes[ 0 ] );
+ newInternalList.addNode( 'mwReference/', 'literal/bar', 1, referenceNodes[ 1 ] );
+ newInternalList.addNode( 'mwReference/', 'literal/:3', 2, referenceNodes[ 2 ] );
+ newInternalList.addNode( 'mwReference/', 'literal/bar', 1, referenceNodes[ 3 ] );
+ newInternalList.addNode( 'mwReference/', 'auto/1', 3, referenceNodes[ 4 ] );
+ newInternalList.addNode( 'mwReference/foo', 'auto/2', 4, referenceNodes[ 5 ] );
+ newInternalList.onTransact();
+
+ assert.deepEqualWithNodeTree(
+ newInternalList.nodes,
+ expectedNodes,
+ 'Nodes added in order'
+ );
+
+ newInternalList = new ve.dm.InternalList( doc );
+
+ newInternalList.addNode( 'mwReference/foo', 'auto/2', 4, referenceNodes[ 5 ] );
+ newInternalList.addNode( 'mwReference/', 'auto/1', 3, referenceNodes[ 4 ] );
+ newInternalList.addNode( 'mwReference/', 'literal/bar', 1, referenceNodes[ 3 ] );
+ newInternalList.addNode( 'mwReference/', 'literal/:3', 2, referenceNodes[ 2 ] );
+ newInternalList.addNode( 'mwReference/', 'literal/bar', 1, referenceNodes[ 1 ] );
+ newInternalList.addNode( 'mwReference/', 'auto/0', 0, referenceNodes[ 0 ] );
+ newInternalList.onTransact();
+
+ assert.deepEqualWithNodeTree(
+ newInternalList.nodes,
+ expectedNodes,
+ 'Nodes added in reverse order'
+ );
+
+ newInternalList.removeNode( 'mwReference/', 'literal/bar', 1, referenceNodes[ 1 ] );
+ newInternalList.onTransact();
+
+ assert.deepEqualWithNodeTree(
+ newInternalList.nodes,
+ {
+ 'mwReference/': {
+ keyedNodes: {
+ 'auto/0': [ referenceNodes[ 0 ] ],
+ 'literal/bar': [ referenceNodes[ 3 ] ],
+ 'literal/:3': [ referenceNodes[ 2 ] ],
+ 'auto/1': [ referenceNodes[ 4 ] ]
+ },
+ firstNodes: [
+ referenceNodes[ 0 ],
+ referenceNodes[ 3 ],
+ referenceNodes[ 2 ],
+ referenceNodes[ 4 ]
+ ],
+ indexOrder: [ 0, 2, 1, 3 ],
+ uniqueListKeys: {},
+ uniqueListKeysInUse: {}
+ },
+ 'mwReference/foo': {
+ keyedNodes: {
+ 'auto/2': [ referenceNodes[ 5 ] ]
+ },
+ firstNodes: [ undefined, undefined, undefined, undefined, referenceNodes[ 5 ] ],
+ indexOrder: [ 4 ],
+ uniqueListKeys: {},
+ uniqueListKeysInUse: {}
+ }
+ },
+ 'Keys re-ordered after one item of key removed'
+ );
+
+ newInternalList.removeNode( 'mwReference/', 'literal/bar', 1, referenceNodes[ 3 ] );
+ newInternalList.onTransact();
+
+ assert.deepEqualWithNodeTree(
+ newInternalList.nodes,
+ {
+ 'mwReference/': {
+ keyedNodes: {
+ 'auto/0': [ referenceNodes[ 0 ] ],
+ 'literal/:3': [ referenceNodes[ 2 ] ],
+ 'auto/1': [ referenceNodes[ 4 ] ]
+ },
+ firstNodes: [
+ referenceNodes[ 0 ],
+ undefined,
+ referenceNodes[ 2 ],
+ referenceNodes[ 4 ]
+ ],
+ indexOrder: [ 0, 2, 3 ],
+ uniqueListKeys: {},
+ uniqueListKeysInUse: {}
+ },
+ 'mwReference/foo': {
+ keyedNodes: {
+ 'auto/2': [ referenceNodes[ 5 ] ]
+ },
+ firstNodes: [ undefined, undefined, undefined, undefined, referenceNodes[ 5 ] ],
+ indexOrder: [ 4 ],
+ uniqueListKeys: {},
+ uniqueListKeysInUse: {}
+ }
+ },
+ 'Keys truncated after last item of key removed'
+ );
+
+ newInternalList.removeNode( 'mwReference/', 'auto/0', 0, referenceNodes[ 0 ] );
+ newInternalList.removeNode( 'mwReference/foo', 'auto/2', 4, referenceNodes[ 5 ] );
+ newInternalList.removeNode( 'mwReference/', 'auto/1', 3, referenceNodes[ 4 ] );
+ newInternalList.removeNode( 'mwReference/', 'literal/:3', 2, referenceNodes[ 2 ] );
+ newInternalList.onTransact();
+
+ assert.deepEqualWithNodeTree(
+ newInternalList.nodes,
+ {
+ 'mwReference/': {
+ keyedNodes: {},
+ firstNodes: new Array( 4 ),
+ indexOrder: [],
+ uniqueListKeys: {},
+ uniqueListKeysInUse: {}
+ },
+ 'mwReference/foo': {
+ keyedNodes: {},
+ firstNodes: new Array( 5 ),
+ indexOrder: [],
+ uniqueListKeys: {},
+ uniqueListKeysInUse: {}
+ }
+ },
+ 'All nodes removed'
+ );
+} );
+
+QUnit.test( 'getItemInsertion', function ( assert ) {
+ var insertion, index,
+ doc = ve.dm.citeExample.createExampleDocument( 'references' ),
+ internalList = doc.getInternalList();
+
+ insertion = internalList.getItemInsertion( 'mwReference/', 'literal/foo', [] );
+ index = internalList.getItemNodeCount();
+ assert.strictEqual( insertion.index, index, 'Insertion creates a new reference' );
+ assert.deepEqual(
+ insertion.transaction.getOperations(),
+ [
+ { type: 'retain', length: 91 },
+ {
+ type: 'replace',
+ remove: [],
+ insert: [
+ { type: 'internalItem' },
+ { type: '/internalItem' }
+ ]
+ },
+ { type: 'retain', length: 1 }
+ ],
+ 'New reference operations match' );
+
+ insertion = internalList.getItemInsertion( 'mwReference/', 'literal/foo', [] );
+ assert.strictEqual( insertion.index, index, 'Insertion with duplicate key reuses old index' );
+ assert.strictEqual( insertion.transaction, null, 'Insertion with duplicate key has null transaction' );
+} );
+
+QUnit.test( 'getUniqueListKey', function ( assert ) {
+ var generatedName,
+ doc = ve.dm.citeExample.createExampleDocument( 'references' ),
+ internalList = doc.getInternalList();
+
+ generatedName = internalList.getUniqueListKey( 'mwReference/', 'auto/0', 'literal/:' );
+ assert.strictEqual( generatedName, 'literal/:0', '0 maps to 0' );
+ generatedName = internalList.getUniqueListKey( 'mwReference/', 'auto/1', 'literal/:' );
+ assert.strictEqual( generatedName, 'literal/:1', '1 maps to 1' );
+ generatedName = internalList.getUniqueListKey( 'mwReference/', 'auto/2', 'literal/:' );
+ assert.strictEqual( generatedName, 'literal/:2', '2 maps to 2' );
+ generatedName = internalList.getUniqueListKey( 'mwReference/', 'auto/3', 'literal/:' );
+ assert.strictEqual( generatedName, 'literal/:4', '3 maps to 4 (because a literal :3 is present)' );
+ generatedName = internalList.getUniqueListKey( 'mwReference/', 'auto/4', 'literal/:' );
+ assert.strictEqual( generatedName, 'literal/:5', '4 maps to 5' );
+
+ generatedName = internalList.getUniqueListKey( 'mwReference/', 'auto/0', 'literal/:' );
+ assert.strictEqual( generatedName, 'literal/:0', 'Reusing a key reuses the name' );
+
+ generatedName = internalList.getUniqueListKey( 'mwReference/foo', 'auto/4', 'literal/:' );
+ assert.strictEqual( generatedName, 'literal/:0', 'Different groups are treated separately' );
+} );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.dm.Transaction.test.js b/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.dm.Transaction.test.js
new file mode 100644
index 00000000..bf9f30bc
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.dm.Transaction.test.js
@@ -0,0 +1,97 @@
+/*!
+ * VisualEditor DataModel Cite-specific Transaction tests.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+QUnit.module( 've.dm.Transaction (Cite)', ve.test.utils.mwEnvironment );
+
+// FIXME: Duplicates test runner; should be using a data provider
+QUnit.test( 'newFromDocumentInsertion with references', function ( assert ) {
+ var i, j, doc2, tx, actualStoreItems, expectedStoreItems, removalOps, doc,
+ complexDoc = ve.dm.citeExample.createExampleDocument( 'complexInternalData' ),
+ withReference = [
+ { type: 'paragraph' },
+ 'B', 'a', 'r',
+ { type: 'mwReference', attributes: {
+ mw: {},
+ about: '#mwt4',
+ listIndex: 0,
+ listGroup: 'mwReference/',
+ listKey: 'auto/0',
+ refGroup: '',
+ contentsUsed: true
+ } },
+ { type: '/mwReference' },
+ { type: '/paragraph' },
+ { type: 'internalList' },
+ { type: 'internalItem' },
+ { type: 'paragraph', internal: { generated: 'wrapper' } },
+ 'B',
+ 'a',
+ 'z',
+ { type: '/paragraph' },
+ { type: '/internalItem' },
+ { type: '/internalList' }
+ ],
+ cases = [
+ {
+ msg: 'inserting a brand new document; internal lists are merged and items renumbered',
+ doc: 'complexInternalData',
+ offset: 7,
+ newDocData: withReference,
+ removalOps: [],
+ expectedOps: [
+ { type: 'retain', length: 7 },
+ {
+ type: 'replace',
+ remove: [],
+ insert: withReference.slice( 0, 4 )
+ // Renumber listIndex from 0 to 2
+ // Renumber listKey from auto/0 to auto/1
+ .concat( [
+ ve.extendObject( true, {}, withReference[ 4 ],
+ { attributes: { listIndex: 2, listKey: 'auto/1' } }
+ )
+ ] )
+ .concat( withReference.slice( 5, 7 ) )
+ },
+ { type: 'retain', length: 1 },
+ {
+ type: 'replace',
+ remove: complexDoc.getData( new ve.Range( 8, 32 ) ),
+ insert: complexDoc.getData( new ve.Range( 8, 32 ) )
+ .concat( withReference.slice( 8, 15 ) )
+ },
+ { type: 'retain', length: 1 }
+ ]
+ }
+ ];
+
+ for ( i = 0; i < cases.length; i++ ) {
+ doc = ve.dm.citeExample.createExampleDocument( cases[ i ].doc );
+ if ( cases[ i ].newDocData ) {
+ doc2 = new ve.dm.Document( cases[ i ].newDocData );
+ removalOps = [];
+ } else if ( cases[ i ].range ) {
+ doc2 = doc.cloneFromRange( cases[ i ].range );
+ cases[ i ].modify( doc2 );
+ tx = ve.dm.TransactionBuilder.static.newFromRemoval( doc, cases[ i ].range, true );
+ doc.commit( tx );
+ removalOps = tx.getOperations();
+ }
+
+ assert.deepEqualWithDomElements( removalOps, cases[ i ].removalOps, cases[ i ].msg + ': removal' );
+
+ tx = ve.dm.TransactionBuilder.static.newFromDocumentInsertion( doc, cases[ i ].offset, doc2 );
+ assert.deepEqualWithDomElements( tx.getOperations(), cases[ i ].expectedOps, cases[ i ].msg + ': transaction' );
+
+ actualStoreItems = [];
+ expectedStoreItems = cases[ i ].expectedStoreItems || [];
+ for ( j = 0; j < expectedStoreItems.length; j++ ) {
+ actualStoreItems[ j ] = doc.store.value( OO.getHash( expectedStoreItems[ j ] ) );
+ }
+ assert.deepEqual( actualStoreItems, expectedStoreItems, cases[ i ].msg + ': store items' );
+ }
+} );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.dm.citeExample.js b/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.dm.citeExample.js
new file mode 100644
index 00000000..2fd8c7f4
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.dm.citeExample.js
@@ -0,0 +1,754 @@
+/*!
+ * VisualEditor DataModel Cite-specific example data sets.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+ve.dm.citeExample = {};
+
+ve.dm.citeExample.createExampleDocument = function ( name, store ) {
+ return ve.dm.example.createExampleDocumentFromObject( name, store, ve.dm.citeExample );
+};
+
+ve.dm.citeExample.domToDataCases = {
+ 'mw:Reference': {
+ // Wikitext:
+ // Foo<ref name="bar" /> Baz<ref group="g1" name=":0">Quux</ref> Whee<ref name="bar">[[Bar]]</ref> Yay<ref group="g1">No name</ref> Quux<ref name="bar">Different content</ref> Foo<ref group="g1" name="foo" />
+ // <references group="g1"><ref group="g1" name="foo">Ref in refs</ref></references>
+ body:
+ '<p>Foo' +
+ '<sup about="#mwt1" class="reference" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;attrs&quot;:{&quot;name&quot;:&quot;bar&quot;}}" id="cite_ref-bar-1-0" rel="dc:references" typeof="mw:Extension/ref">' +
+ '<a href="#cite_note-bar-1">[1]</a>' +
+ '</sup>' +
+ ' Baz' +
+ '<sup about="#mwt2" class="reference" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;html&quot;:&quot;Quux&quot;},&quot;attrs&quot;:{&quot;group&quot;:&quot;g1&quot;,&quot;name&quot;:&quot;:0&quot;}}" id="cite_ref-quux-2-0" rel="dc:references" typeof="mw:Extension/ref">' +
+ '<a href="#cite_note-.3A0-2">[g1 1]</a>' +
+ '</sup>' +
+ ' Whee' +
+ '<sup about="#mwt3" class="reference" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;html&quot;:&quot;' +
+ '<a rel=\\&quot;mw:WikiLink\\&quot; href=\\&quot;./Bar\\&quot;>Bar' +
+ '</a>&quot;},&quot;attrs&quot;:{&quot;name&quot;:&quot;bar&quot;}}" id="cite_ref-bar-1-1" rel="dc:references" typeof="mw:Extension/ref">' +
+ '<a href="#cite_note-bar-1">[1]</a>' +
+ '</sup>' +
+ ' Yay' +
+ // This reference has .body.id instead of .body.html
+ '<sup about="#mwt4" class="reference" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;id&quot;:&quot;mw-cite-3&quot;},&quot;attrs&quot;:{&quot;group&quot;:&quot;g1&quot;}}" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref">' +
+ '<a href="#cite_note-3">[g1 2]</a>' +
+ '</sup>' +
+ ' Quux' +
+ '<sup about="#mwt5" class="reference" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;html&quot;:&quot;Different content&quot;},&quot;attrs&quot;:{&quot;name&quot;:&quot;bar&quot;}}" id="cite_ref-bar-1-2" rel="dc:references" typeof="mw:Extension/ref">' +
+ '<a href="#cite_note-bar-1">[1]</a>' +
+ '</sup>' +
+ ' Foo' +
+ '<sup about="#mwt6" class="reference" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;attrs&quot;:{&quot;group&quot;:&quot;g1&quot;,&quot;name&quot;:&quot;foo&quot;}}" ' +
+ 'id="cite_ref-foo-4" rel="dc:references" typeof="mw:Extension/ref">' +
+ '<a href="#cite_ref-foo-4">[g1 3]</a>' +
+ '</sup>' +
+ '</p>' +
+ // The HTML below is enriched to wrap reference contents in <span id="mw-cite-[...]">
+ // which Parsoid doesn't do yet, but T88290 asks for
+ '<ol class="references" typeof="mw:Extension/references" about="#mwt7"' +
+ 'data-mw="{&quot;name&quot;:&quot;references&quot;,&quot;body&quot;:{' +
+ '&quot;html&quot;:&quot;<sup about=\\&quot;#mwt8\\&quot; class=\\&quot;reference\\&quot; ' +
+ 'data-mw=\\&quot;{&amp;quot;name&amp;quot;:&amp;quot;ref&amp;quot;,&amp;quot;body&amp;quot;:{&amp;quot;html&amp;quot;:&amp;quot;Ref in refs&amp;quot;},' +
+ '&amp;quot;attrs&amp;quot;:{&amp;quot;group&amp;quot;:&amp;quot;g1&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;foo&amp;quot;}}\\&quot; ' +
+ 'rel=\\&quot;dc:references\\&quot; typeof=\\&quot;mw:Extension/ref\\&quot;>' +
+ '<a href=\\&quot;#cite_note-foo-3\\&quot;>[3]</a></sup>&quot;},&quot;attrs&quot;:{&quot;group&quot;:&quot;g1&quot;}}">' +
+ '<li about="#cite_note-.3A0-2" id="cite_note-.3A0-2"><span rel="mw:referencedBy"><a href="#cite_ref-.3A0_2-0">↑</a></span> <span id="mw-cite-:0">Quux</span></li>' +
+ '<li about="#cite_note-3" id="cite_note-3"><span rel="mw:referencedBy"><a href="#cite_ref-3">↑</a></span> <span id="mw-cite-3">No name</span></li>' +
+ '<li about="#cite_note-foo-4" id="cite_note-foo-4"><span rel="mw:referencedBy"><a href="#cite_ref-foo_4-0">↑</a></span> <span id="mw-cite-foo">Ref in refs</span></li>' +
+ '</ol>',
+ fromDataBody:
+ '<p>Foo' +
+ '<sup data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;attrs&quot;:{&quot;name&quot;:&quot;bar&quot;}}" typeof="mw:Extension/ref">' +
+ '</sup>' +
+ ' Baz' +
+ '<sup data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;html&quot;:&quot;Quux&quot;},&quot;attrs&quot;:{&quot;group&quot;:&quot;g1&quot;,&quot;name&quot;:&quot;:0&quot;}}" typeof="mw:Extension/ref">' +
+ '</sup>' +
+ ' Whee' +
+ '<sup data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;html&quot;:&quot;' +
+ '<a rel=\\&quot;mw:WikiLink\\&quot; href=\\&quot;./Bar\\&quot;>Bar' +
+ '</a>&quot;},&quot;attrs&quot;:{&quot;name&quot;:&quot;bar&quot;}}" typeof="mw:Extension/ref">' +
+ '</sup>' +
+ ' Yay' +
+ '<sup data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;id&quot;:&quot;mw-cite-3&quot;},&quot;attrs&quot;:{&quot;group&quot;:&quot;g1&quot;}}" typeof="mw:Extension/ref">' +
+ '</sup>' +
+ ' Quux' +
+ '<sup data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;html&quot;:&quot;Different content&quot;},&quot;attrs&quot;:{&quot;name&quot;:&quot;bar&quot;}}" typeof="mw:Extension/ref">' +
+ '</sup>' +
+ ' Foo' +
+ '<sup data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;attrs&quot;:{&quot;group&quot;:&quot;g1&quot;,&quot;name&quot;:&quot;foo&quot;}}" ' +
+ 'typeof="mw:Extension/ref">' +
+ '</sup>' +
+ '</p>' +
+ '<div typeof="mw:Extension/references" ' +
+ 'data-mw="{&quot;name&quot;:&quot;references&quot;,&quot;attrs&quot;:{&quot;group&quot;:&quot;g1&quot;},&quot;body&quot;:{' +
+ '&quot;html&quot;:&quot;<sup typeof=\\&quot;mw:Extension/ref\\&quot; ' +
+ 'data-mw=\\&quot;{&amp;quot;name&amp;quot;:&amp;quot;ref&amp;quot;,&amp;quot;body&amp;quot;:{&amp;quot;html&amp;quot;:&amp;quot;Ref in refs&amp;quot;},' +
+ '&amp;quot;attrs&amp;quot;:{&amp;quot;group&amp;quot;:&amp;quot;g1&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;foo&amp;quot;}}\\&quot;>' +
+ '</sup>&quot;}}">' +
+ '</div>',
+ clipboardBody:
+ '<p>Foo' +
+ '<sup typeof="mw:Extension/ref" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;attrs&quot;:{&quot;name&quot;:&quot;bar&quot;}}" class="mw-ref">' +
+ '<a style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a>' +
+ '</sup>' +
+ ' Baz' +
+ '<sup typeof="mw:Extension/ref" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;html&quot;:&quot;Quux&quot;},&quot;attrs&quot;:{&quot;group&quot;:&quot;g1&quot;,&quot;name&quot;:&quot;:0&quot;}}" class="mw-ref">' +
+ '<a data-mw-group="g1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[g1 1]</span></a>' +
+ '</sup>' +
+ ' Whee' +
+ '<sup typeof="mw:Extension/ref" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;html&quot;:&quot;' +
+ '<a href=\\&quot;./Bar\\&quot; rel=\\&quot;mw:WikiLink\\&quot;>Bar' +
+ '</a>&quot;},&quot;attrs&quot;:{&quot;name&quot;:&quot;bar&quot;}}" class="mw-ref">' +
+ '<a style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a>' +
+ '</sup>' +
+ ' Yay' +
+ // This reference has .body.id instead of .body.html
+ '<sup typeof="mw:Extension/ref" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;id&quot;:&quot;mw-cite-3&quot;,&quot;html&quot;:&quot;No name&quot;},&quot;attrs&quot;:{&quot;group&quot;:&quot;g1&quot;}}" class="mw-ref">' +
+ '<a data-mw-group="g1" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[g1 2]</span></a>' +
+ '</sup>' +
+ ' Quux' +
+ '<sup typeof="mw:Extension/ref" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;html&quot;:&quot;Different content&quot;},&quot;attrs&quot;:{&quot;name&quot;:&quot;bar&quot;}}" class="mw-ref">' +
+ '<a style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a>' +
+ '</sup>' +
+ ' Foo' +
+ '<sup typeof="mw:Extension/ref" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;attrs&quot;:{&quot;group&quot;:&quot;g1&quot;,&quot;name&quot;:&quot;foo&quot;}}" class="mw-ref">' +
+ '<a data-mw-group="g1" style="counter-reset: mw-Ref 3;"><span class="mw-reflink-text">[g1 3]</span></a>' +
+ '</sup>' +
+ '</p>' +
+ // The HTML below is enriched to wrap reference contents in <span id="mw-cite-[...]">
+ // which Parsoid doesn't do yet, but T88290 asks for
+ '<div typeof="mw:Extension/references" ' +
+ 'data-mw="{&quot;name&quot;:&quot;references&quot;,&quot;attrs&quot;:{&quot;group&quot;:&quot;g1&quot;},&quot;body&quot;:{' +
+ '&quot;html&quot;:&quot;<sup typeof=\\&quot;mw:Extension/ref\\&quot; ' +
+ 'data-mw=\\&quot;{&amp;quot;name&amp;quot;:&amp;quot;ref&amp;quot;,&amp;quot;attrs&amp;quot;:{&amp;quot;group&amp;quot;:&amp;quot;g1&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;foo&amp;quot;},&amp;quot;body&amp;quot;:{&amp;quot;html&amp;quot;:&amp;quot;Ref in refs&amp;quot;}}' +
+ '\\&quot; class=\\&quot;mw-ref\\&quot;><a data-mw-group=\\&quot;g1\\&quot; style=\\&quot;counter-reset: mw-Ref 3;\\&quot;><span class=\\&quot;mw-reflink-text\\&quot;>[g1 3]</span></a></sup>&quot;}}">' +
+ '<ol class="mw-references references" data-mw-group="g1">' +
+ '<li>' +
+ '<a rel="mw:referencedBy" data-mw-group="g1"><span class="mw-linkback-text">↑ </span></a>' +
+ '<span class="reference-text"><span class="ve-ce-branchNode ve-ce-internalItemNode">Quux</span></span>' +
+ '</li>' +
+ '<li>' +
+ '<a rel="mw:referencedBy" data-mw-group="g1"><span class="mw-linkback-text">↑ </span></a>' +
+ '<span class="reference-text"><span class="ve-ce-branchNode ve-ce-internalItemNode">No name</span></span>' +
+ '</li>' +
+ '<li>' +
+ '<a rel="mw:referencedBy" data-mw-group="g1"><span class="mw-linkback-text">↑ </span></a>' +
+ '<span class="reference-text"><span class="ve-ce-branchNode ve-ce-internalItemNode">Ref in refs</span></span>' +
+ '</li>' +
+ '</ol>' +
+ '</div>',
+ head: '<base href="http://example.com" />',
+ data: [
+ { type: 'paragraph' },
+ 'F', 'o', 'o',
+ {
+ type: 'mwReference',
+ attributes: {
+ listIndex: 0,
+ listGroup: 'mwReference/',
+ listKey: 'literal/bar',
+ refGroup: '',
+ mw: { name: 'ref', attrs: { name: 'bar' } },
+ originalMw: '{"name":"ref","attrs":{"name":"bar"}}',
+ contentsUsed: false
+ }
+ },
+ { type: '/mwReference' },
+ ' ', 'B', 'a', 'z',
+ {
+ type: 'mwReference',
+ attributes: {
+ listIndex: 1,
+ listGroup: 'mwReference/g1',
+ listKey: 'literal/:0',
+ refGroup: 'g1',
+ mw: { name: 'ref', body: { html: 'Quux' }, attrs: { group: 'g1', name: ':0' } },
+ originalMw: '{"name":"ref","body":{"html":"Quux"},"attrs":{"group":"g1","name":":0"}}',
+ contentsUsed: true
+ }
+ },
+ { type: '/mwReference' },
+ ' ', 'W', 'h', 'e', 'e',
+ {
+ type: 'mwReference',
+ attributes: {
+ listIndex: 0,
+ listGroup: 'mwReference/',
+ listKey: 'literal/bar',
+ refGroup: '',
+ mw: { name: 'ref', body: { html: '<a rel="mw:WikiLink" href="./Bar">Bar</a>' }, attrs: { name: 'bar' } },
+ originalMw: '{"name":"ref","body":{"html":"<a rel=\\"mw:WikiLink\\" href=\\"./Bar\\">Bar</a>"},"attrs":{"name":"bar"}}',
+ contentsUsed: true
+ }
+ },
+ { type: '/mwReference' },
+ ' ', 'Y', 'a', 'y',
+ {
+ type: 'mwReference',
+ attributes: {
+ listIndex: 2,
+ listGroup: 'mwReference/g1',
+ listKey: 'auto/0',
+ refGroup: 'g1',
+ mw: { name: 'ref', body: { id: 'mw-cite-3' }, attrs: { group: 'g1' } },
+ originalMw: '{"name":"ref","body":{"id":"mw-cite-3"},"attrs":{"group":"g1"}}',
+ contentsUsed: true,
+ refListItemId: 'mw-cite-3'
+ }
+ },
+ { type: '/mwReference' },
+ ' ', 'Q', 'u', 'u', 'x',
+ {
+ type: 'mwReference',
+ attributes: {
+ listIndex: 0,
+ listGroup: 'mwReference/',
+ listKey: 'literal/bar',
+ refGroup: '',
+ mw: { name: 'ref', body: { html: 'Different content' }, attrs: { name: 'bar' } },
+ originalMw: '{"name":"ref","body":{"html":"Different content"},"attrs":{"name":"bar"}}',
+ contentsUsed: false
+ }
+ },
+ { type: '/mwReference' },
+ ' ', 'F', 'o', 'o',
+ {
+ type: 'mwReference',
+ attributes: {
+ listGroup: 'mwReference/g1',
+ listIndex: 3,
+ listKey: 'literal/foo',
+ refGroup: 'g1',
+ mw: { name: 'ref', attrs: { group: 'g1', name: 'foo' } },
+ originalMw: '{"name":"ref","attrs":{"group":"g1","name":"foo"}}',
+ contentsUsed: false
+ }
+ },
+ { type: '/mwReference' },
+ { type: '/paragraph' },
+ {
+ type: 'mwReferencesList',
+ attributes: {
+ mw: {
+ name: 'references',
+ attrs: { group: 'g1' },
+ body: {
+ html: '<sup about="#mwt8" class="reference" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;html&quot;:&quot;Ref in refs&quot;},&quot;attrs&quot;:{&quot;group&quot;:&quot;g1&quot;,&quot;name&quot;:&quot;foo&quot;}}" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-foo-3">[3]</a></sup>'
+ }
+ },
+ originalMw: '{"name":"references","body":{"html":"<sup about=\\"#mwt8\\" class=\\"reference\\" data-mw=\\"{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;html&quot;:&quot;Ref in refs&quot;},&quot;attrs&quot;:{&quot;group&quot;:&quot;g1&quot;,&quot;name&quot;:&quot;foo&quot;}}\\" rel=\\"dc:references\\" typeof=\\"mw:Extension/ref\\"><a href=\\"#cite_note-foo-3\\">[3]</a></sup>"},"attrs":{"group":"g1"}}',
+ listGroup: 'mwReference/g1',
+ refGroup: 'g1',
+ isResponsive: true,
+ templateGenerated: false
+ }
+ },
+ { type: 'paragraph', internal: { generated: 'wrapper' } },
+ {
+ type: 'mwReference',
+ attributes: {
+ contentsUsed: true,
+ listGroup: 'mwReference/g1',
+ listIndex: 3,
+ listKey: 'literal/foo',
+ mw: { name: 'ref', attrs: { group: 'g1', name: 'foo' }, body: { html: 'Ref in refs' } },
+ originalMw: '{"name":"ref","body":{"html":"Ref in refs"},"attrs":{"group":"g1","name":"foo"}}',
+ refGroup: 'g1'
+ }
+ },
+ { type: '/mwReference' },
+ { type: '/paragraph' },
+ { type: '/mwReferencesList' },
+ { type: 'internalList' },
+ { type: 'internalItem', attributes: { originalHtml: '<a rel="mw:WikiLink" href="./Bar">Bar</a>' } },
+ { type: 'paragraph', internal: { generated: 'wrapper' } },
+ [
+ 'B',
+ [ {
+ type: 'link/mwInternal',
+ attributes: {
+ title: 'Bar',
+ origTitle: 'Bar',
+ normalizedTitle: 'Bar',
+ lookupTitle: 'Bar',
+ hrefPrefix: './'
+ }
+ } ]
+ ],
+ [
+ 'a',
+ [ {
+ type: 'link/mwInternal',
+ attributes: {
+ title: 'Bar',
+ origTitle: 'Bar',
+ normalizedTitle: 'Bar',
+ lookupTitle: 'Bar',
+ hrefPrefix: './'
+ }
+ } ]
+ ],
+ [
+ 'r',
+ [ {
+ type: 'link/mwInternal',
+ attributes: {
+ title: 'Bar',
+ origTitle: 'Bar',
+ normalizedTitle: 'Bar',
+ lookupTitle: 'Bar',
+ hrefPrefix: './'
+ }
+ } ]
+ ],
+ { type: '/paragraph' },
+ { type: '/internalItem' },
+ { type: 'internalItem', attributes: { originalHtml: 'Quux' } },
+ { type: 'paragraph', internal: { generated: 'wrapper' } },
+ 'Q', 'u', 'u', 'x',
+ { type: '/paragraph' },
+ { type: '/internalItem' },
+ { type: 'internalItem', attributes: { originalHtml: 'No name' } },
+ { type: 'paragraph', internal: { generated: 'wrapper' } },
+ 'N', 'o', ' ', 'n', 'a', 'm', 'e',
+ { type: '/paragraph' },
+ { type: '/internalItem' },
+ { type: 'internalItem', attributes: { originalHtml: 'Ref in refs' } },
+ { type: 'paragraph', internal: { generated: 'wrapper' } },
+ 'R', 'e', 'f', ' ', 'i', 'n', ' ', 'r', 'e', 'f', 's',
+ { type: '/paragraph' },
+ { type: '/internalItem' },
+ { type: '/internalList' }
+ ]
+ },
+ 'mw:Reference with comment': {
+ body: '<p><sup about="#mwt2" class="reference" ' +
+ 'data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:' +
+ '{&quot;html&quot;:&quot;Foo<!-- bar -->&quot;},&quot;attrs&quot;:{}}" ' +
+ 'id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref">' +
+ '<a href="#cite_note-bar-1">[1]</a></sup></p>',
+ fromDataBody: '<p><sup ' +
+ 'data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:' +
+ '{&quot;html&quot;:&quot;Foo<!-- bar -->&quot;},&quot;attrs&quot;:{}}" ' +
+ 'typeof="mw:Extension/ref"></sup></p>',
+ clipboardBody: '<p><sup typeof="mw:Extension/ref" ' +
+ 'data-mw="{&quot;attrs&quot;:{},&quot;body&quot;:' +
+ '{&quot;html&quot;:&quot;Foo<span rel=\\&quot;ve:Comment\\&quot; data-ve-comment=\\&quot; bar \\&quot;>&amp;nbsp;</span>&quot;},&quot;name&quot;:&quot;ref&quot;}" ' +
+ ' class="mw-ref">' +
+ '<a style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>',
+ head: '<base href="http://example.com" />',
+ data: [
+ { type: 'paragraph' },
+ {
+ type: 'mwReference',
+ attributes: {
+ contentsUsed: true,
+ listGroup: 'mwReference/',
+ listIndex: 0,
+ listKey: 'auto/0',
+ mw: {
+ attrs: {},
+ body: {
+ html: 'Foo<!-- bar -->'
+ },
+ name: 'ref'
+ },
+ originalMw: '{"name":"ref","body":{"html":"Foo<!-- bar -->"},"attrs":{}}',
+ refGroup: ''
+ }
+ },
+ { type: '/mwReference' },
+ { type: '/paragraph' },
+ { type: 'internalList' },
+ { type: 'internalItem', attributes: { originalHtml: 'Foo<!-- bar -->' } },
+ {
+ internal: {
+ generated: 'wrapper'
+ },
+ type: 'paragraph'
+ },
+ 'F', 'o', 'o',
+ {
+ type: 'comment',
+ attributes: {
+ text: ' bar '
+ }
+ },
+ { type: '/comment' },
+ { type: '/paragraph' },
+ { type: '/internalItem' },
+ { type: '/internalList' }
+ ]
+ },
+ 'Template generated reflist': {
+ body: '<p><sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;id&quot;:&quot;mw-reference-text-cite_note-1&quot;},&quot;attrs&quot;:{&quot;group&quot;:&quot;notes&quot;}}"><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;" data-mw-group="notes"><span class="mw-reflink-text">[notes 1]</span></a></sup></p>' +
+ '<div class="mw-references-wrap" typeof="mw:Extension/references mw:Transclusion" about="#mwt4" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;<references group=\\&quot;notes\\&quot; />&quot;}},&quot;i&quot;:0}}]}">' +
+ '<ol class="mw-references references" data-mw-group="notes">' +
+ '<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" data-mw-group="notes" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">Foo</span></li>' +
+ '</ol>' +
+ '</div>',
+ fromDataBody: '<p><sup typeof="mw:Extension/ref" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;id&quot;:&quot;mw-reference-text-cite_note-1&quot;},&quot;attrs&quot;:{&quot;group&quot;:&quot;notes&quot;}}"></sup></p>' +
+ '<span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;<references group=\\&quot;notes\\&quot; />&quot;}},&quot;i&quot;:0}}]}"></span>',
+ clipboardBody: '<p><sup typeof="mw:Extension/ref" data-mw="{&quot;attrs&quot;:{&quot;group&quot;:&quot;notes&quot;},&quot;body&quot;:{&quot;id&quot;:&quot;mw-reference-text-cite_note-1&quot;,&quot;html&quot;:&quot;Foo&quot;},&quot;name&quot;:&quot;ref&quot;}" class="mw-ref"><a data-mw-group="notes" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[notes 1]</span></a></sup></p>' +
+ '<div typeof="mw:Extension/references" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;<references group=\\&quot;notes\\&quot; />&quot;}},&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;i&quot;:0}}],&quot;name&quot;:&quot;references&quot;}">' +
+ // TODO: This should list should get populated on copy
+ '<ol class="mw-references references"></ol>' +
+ '</div>',
+ data: [
+ { type: 'paragraph' },
+ {
+ type: 'mwReference',
+ attributes: {
+ contentsUsed: true,
+ listGroup: 'mwReference/notes',
+ listIndex: 0,
+ listKey: 'auto/0',
+ mw: {
+ attrs: {
+ group: 'notes'
+ },
+ body: {
+ id: 'mw-reference-text-cite_note-1'
+ },
+ name: 'ref'
+ },
+ originalMw: '{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{"group":"notes"}}',
+ refGroup: 'notes',
+ refListItemId: 'mw-reference-text-cite_note-1'
+ }
+ },
+ { type: '/mwReference' },
+ { type: '/paragraph' },
+ {
+ type: 'mwReferencesList',
+ attributes: {
+ mw: {
+ parts: [ {
+ template: {
+ params: {
+ 1: { wt: '<references group="notes" />' }
+ },
+ target: { wt: 'echo', href: './Template:Echo' },
+ i: 0
+ }
+ } ]
+ },
+ originalMw: '{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<references group=\\"notes\\" />"}},"i":0}}]}',
+ refGroup: '',
+ listGroup: 'mwReference/',
+ isResponsive: true,
+ templateGenerated: true
+ }
+ },
+ { type: '/mwReferencesList' },
+ { type: 'internalList' },
+ { type: 'internalItem', attributes: { originalHtml: 'Foo' } },
+ {
+ internal: {
+ generated: 'wrapper'
+ },
+ type: 'paragraph'
+ },
+ 'F', 'o', 'o',
+ { type: '/paragraph' },
+ { type: '/internalItem' },
+ { type: '/internalList' }
+ ]
+ },
+ 'Template generated reflist (div wrapped)': {
+ body: '<p><sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;id&quot;:&quot;mw-reference-text-cite_note-1&quot;},&quot;attrs&quot;:{}}"><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>' +
+ '<div about="#mwt3" typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;reflist&quot;,&quot;href&quot;:&quot;./Template:Reflist&quot;},&quot;params&quot;:{},&quot;i&quot;:0}}]}">' +
+ '<div typeof="mw:Extension/references" about="#mwt5" data-mw="{&quot;name&quot;:&quot;references&quot;,&quot;attrs&quot;:{}}">' +
+ '<ol class="mw-references references">' +
+ '<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">Foo</span></li>' +
+ '</ol>' +
+ '</div>' +
+ '</div>',
+ fromDataBody: '<p><sup typeof="mw:Extension/ref" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;id&quot;:&quot;mw-reference-text-cite_note-1&quot;},&quot;attrs&quot;:{}}"></sup></p>' +
+ '<span typeof="mw:Transclusion" data-mw="{&quot;name&quot;:&quot;references&quot;,&quot;attrs&quot;:{}}"></span>',
+ clipboardBody: '<p><sup typeof="mw:Extension/ref" data-mw="{&quot;attrs&quot;:{},&quot;body&quot;:{&quot;id&quot;:&quot;mw-reference-text-cite_note-1&quot;,&quot;html&quot;:&quot;Foo&quot;},&quot;name&quot;:&quot;ref&quot;}" class="mw-ref"><a style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>' +
+ '<div typeof="mw:Extension/references" data-mw="{&quot;name&quot;:&quot;references&quot;,&quot;attrs&quot;:{}}">' +
+ '<ol class="mw-references references">' +
+ '<li><a rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a><span class="reference-text"><span class="ve-ce-branchNode ve-ce-internalItemNode">Foo</span></span></li>' +
+ '</ol>' +
+ '</div>',
+ data: [
+ { type: 'paragraph' },
+ {
+ type: 'mwReference',
+ attributes: {
+ contentsUsed: true,
+ listGroup: 'mwReference/',
+ listIndex: 0,
+ listKey: 'auto/0',
+ mw: {
+ attrs: {},
+ body: {
+ id: 'mw-reference-text-cite_note-1'
+ },
+ name: 'ref'
+ },
+ originalMw: '{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}',
+ refGroup: '',
+ refListItemId: 'mw-reference-text-cite_note-1'
+ }
+ },
+ { type: '/mwReference' },
+ { type: '/paragraph' },
+ {
+ type: 'mwReferencesList',
+ attributes: {
+ mw: {
+ name: 'references',
+ attrs: {}
+ },
+ originalMw: '{"name":"references","attrs":{}}',
+ refGroup: '',
+ listGroup: 'mwReference/',
+ isResponsive: true,
+ templateGenerated: true
+ }
+ },
+ { type: '/mwReferencesList' },
+ { type: 'internalList' },
+ { type: 'internalItem', attributes: { originalHtml: 'Foo' } },
+ {
+ internal: {
+ generated: 'wrapper'
+ },
+ type: 'paragraph'
+ },
+ 'F', 'o', 'o',
+ { type: '/paragraph' },
+ { type: '/internalItem' },
+ { type: '/internalList' }
+ ]
+ }
+};
+
+ve.dm.citeExample.references = [
+ { type: 'paragraph' },
+ {
+ type: 'mwReference',
+ attributes: {
+ contentsUsed: true,
+ listGroup: 'mwReference/',
+ listIndex: 0,
+ listKey: 'auto/0',
+ mw: {
+ attrs: {},
+ body: { html: 'No name 1' },
+ name: 'ref'
+ },
+ originalMw: '{"name":"ref","body":{"html":"No name 1"},"attrs":{}}',
+ refGroup: ''
+ }
+ },
+ { type: '/mwReference' },
+ { type: '/paragraph' },
+ { type: 'paragraph' },
+ 'F', 'o', 'o',
+ {
+ type: 'mwReference',
+ attributes: {
+ contentsUsed: true,
+ listGroup: 'mwReference/',
+ listIndex: 1,
+ listKey: 'literal/bar',
+ mw: {
+ attrs: { name: 'bar' },
+ body: { html: 'Bar' },
+ name: 'ref'
+ },
+ originalMw: '{"body":{"html":""},"attrs":{"name":"bar"}}',
+ refGroup: ''
+ }
+ },
+ { type: '/mwReference' },
+ ' ', 'B', 'a', 'z',
+ {
+ type: 'mwReference',
+ attributes: {
+ contentsUsed: true,
+ listGroup: 'mwReference/',
+ listIndex: 2,
+ listKey: 'literal/:3',
+ mw: {
+ attrs: { name: ':3' },
+ body: { html: 'Quux' },
+ name: 'ref'
+ },
+ originalMw: '{"name":"ref","body":{"html":"Quux"},"attrs":{"name":":3"}}',
+ refGroup: ''
+ }
+ },
+ { type: '/mwReference' },
+ ' ', 'W', 'h', 'e', 'e',
+ {
+ type: 'mwReference',
+ attributes: {
+ contentsUsed: false,
+ listGroup: 'mwReference/',
+ listIndex: 1,
+ listKey: 'literal/bar',
+ mw: {
+ attrs: { name: 'bar' },
+ name: 'ref'
+ },
+ originalMw: '{"body":{"html":""},"attrs":{"name":"bar"}}',
+ refGroup: ''
+ }
+ },
+ { type: '/mwReference' },
+ ' ', 'Y', 'a', 'y',
+ { type: '/paragraph' },
+ { type: 'paragraph' },
+ {
+ type: 'mwReference',
+ attributes: {
+ contentsUsed: true,
+ listGroup: 'mwReference/',
+ listIndex: 3,
+ listKey: 'auto/1',
+ mw: {
+ attrs: {},
+ body: { html: 'No name 2' },
+ name: 'ref'
+ },
+ originalMw: '{"name":"ref","body":{"html":"No name 2"},"attrs":{}}',
+ refGroup: ''
+ }
+ },
+ { type: '/mwReference' },
+ {
+ type: 'mwReference',
+ attributes: {
+ contentsUsed: true,
+ listGroup: 'mwReference/foo',
+ listIndex: 4,
+ listKey: 'auto/2',
+ mw: {
+ attrs: { group: 'foo' },
+ body: { html: 'No name 3' },
+ name: 'ref'
+ },
+ originalMw: '{"name":"ref","body":{"html":"No name 3"},"attrs":{"group":"foo"}}',
+ refGroup: 'foo'
+ }
+ },
+ { type: '/mwReference' },
+ { type: '/paragraph' },
+ {
+ type: 'mwReferencesList',
+ // originalDomElements: HTML,
+ attributes: {
+ mw: {
+ name: 'references',
+ attrs: { group: 'g1' }
+ },
+ originalMw: '{"name":"references","attrs":{"group":"g1"}"}',
+ listGroup: 'mwReference/',
+ refGroup: '',
+ isResponsive: true,
+ templateGenerated: false
+ }
+ },
+ { type: '/mwReferencesList' },
+ { type: 'internalList' },
+ { type: 'internalItem' },
+ { type: 'paragraph' },
+ 'N', 'o', ' ', 'n', 'a', 'm', 'e', ' ', '1',
+ { type: '/paragraph' },
+ { type: '/internalItem' },
+ { type: 'internalItem' },
+ { type: 'paragraph' },
+ 'B', 'a', 'r',
+ { type: '/paragraph' },
+ { type: '/internalItem' },
+ { type: 'internalItem' },
+ { type: 'paragraph' },
+ 'Q', 'u', 'u', 'x',
+ { type: '/paragraph' },
+ { type: '/internalItem' },
+ { type: 'internalItem' },
+ { type: 'paragraph' },
+ 'N', 'o', ' ', 'n', 'a', 'm', 'e', ' ', '2',
+ { type: '/paragraph' },
+ { type: '/internalItem' },
+ { type: 'internalItem' },
+ { type: 'paragraph' },
+ 'N', 'o', ' ', 'n', 'a', 'm', 'e', ' ', '3',
+ { type: '/paragraph' },
+ { type: '/internalItem' },
+ { type: '/internalList' }
+];
+
+ve.dm.citeExample.complexInternalData = [
+ // 0
+ { type: 'paragraph' },
+ 'F', [ 'o', [ ve.dm.example.bold ] ], [ 'o', [ ve.dm.example.italic ] ],
+ // 4
+ { type: 'mwReference', attributes: {
+ about: '#mwt1',
+ listIndex: 0,
+ listGroup: 'mwReference/',
+ listKey: 'auto/0',
+ refGroup: ''
+ } },
+ // 5
+ { type: '/mwReference' },
+ // 6
+ { type: '/paragraph' },
+ // 7
+ { type: 'internalList' },
+ // 8
+ { type: 'internalItem' },
+ // 9
+ { type: 'paragraph', internal: { generated: 'wrapper' } },
+ 'R', [ 'e', [ ve.dm.example.bold ] ], 'f',
+ // 13
+ 'e', [ 'r', [ ve.dm.example.italic ] ], [ 'e', [ ve.dm.example.italic ] ],
+ // 16
+ { type: 'mwReference', attributes: {
+ mw: {},
+ about: '#mwt2',
+ listIndex: 1,
+ listGroup: 'mwReference/',
+ listKey: 'foo',
+ refGroup: '',
+ contentsUsed: true
+ } },
+ // 17
+ { type: '/mwReference' },
+ 'n', 'c', 'e',
+ // 21
+ { type: '/paragraph' },
+ // 22
+ { type: '/internalItem' },
+ // 23
+ { type: 'internalItem' },
+ // 24
+ { type: 'preformatted' },
+ // 25
+ { type: 'mwEntity', attributes: { character: '€' } },
+ // 26
+ { type: '/mwEntity' },
+ '2', '5', '0',
+ // 30
+ { type: '/preformatted' },
+ // 31
+ { type: '/internalItem' },
+ // 32
+ { type: '/internalList' }
+ // 33
+];
+
+ve.dm.citeExample.complexInternalData.internalItems = [
+ { group: 'mwReference', key: null, body: 'First reference' },
+ { group: 'mwReference', key: 'foo', body: 'Table in ref: <table><tr><td>because I can</td></tr></table>' }
+];
+
+ve.dm.citeExample.complexInternalData.internalListNextUniqueNumber = 1;
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.ui.DiffElement.test.js b/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.ui.DiffElement.test.js
new file mode 100644
index 00000000..79b4497b
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.ui.DiffElement.test.js
@@ -0,0 +1,67 @@
+/*!
+ * VisualEditor Cite-specific DiffElement tests.
+ *
+ * @copyright 2011-2018 VisualEditor Team and others; see http://ve.mit-license.org
+ */
+
+QUnit.module( 've.ui.DiffElement (Cite)' );
+
+QUnit.test( 'Diffing', function ( assert ) {
+ var i, len,
+ // spacer = '<div class="ve-ui-diffElement-spacer">⋮</div>',
+ ref = function ( text, num, name ) {
+ var dataMw = {
+ name: 'ref',
+ body: { html: text }
+ };
+ if ( name ) {
+ dataMw.attrs = { name: name };
+ }
+ return '<sup typeof="mw:Extension/ref" data-mw="' + JSON.stringify( dataMw ).replace( /"/g, '&quot;' ) + '" class="mw-ref">' +
+ '<a style="counter-reset: mw-Ref ' + num + ';"><span class="mw-reflink-text">[' + num + ']</span></a>' +
+ '</sup>';
+ },
+ cases = [
+ {
+ msg: 'Simple ref change',
+ oldDoc:
+ '<p>' + ref( 'Foo' ) + ref( 'Bar' ) + ref( 'Baz' ) + '</p>' +
+ '<h2>Notes</h2>' +
+ '<div typeof="mw:Extension/references" data-mw="{&quot;name&quot;:&quot;references&quot;}"></div>',
+ newDoc:
+ '<p>' + ref( 'Foo' ) + ref( 'Bar ish' ) + ref( 'Baz' ) + '</p>' +
+ '<h2>Notes</h2>' +
+ '<div typeof="mw:Extension/references" data-mw="{&quot;name&quot;:&quot;references&quot;}"></div>',
+ expected:
+ '<div class="ve-ui-diffElement-doc-child-change">' +
+ '<p>' +
+ ref( 'Foo', '1' ) +
+ '<span data-diff-action="change-remove">' +
+ ref( 'Bar', '2', ':0' ) +
+ '</span>' +
+ '<span data-diff-action="change-insert">' +
+ ref( 'Bar ish', '2', ':0' ) +
+ '</span>' +
+ ref( 'Baz', '3' ) +
+ '</p>' +
+ '</div>' +
+ '<h2 data-diff-action="none">Notes</h2>' +
+ '<div class="ve-ui-diffElement-doc-child-change" data-diff-move="undefined">' +
+ '<ol start="1">' +
+ '<li><p data-diff-action="none">Foo</p></li>' +
+ '</ol>' +
+ '<ol start="2">' +
+ '<li><div class="ve-ui-diffElement-doc-child-change">Bar<ins data-diff-action="insert"> ish</ins></div></li>' +
+ '</ol>' +
+ '<ol start="3">' +
+ '<li><p data-diff-action="none">Baz</p></li>' +
+ '</ol>' +
+ '</div>'
+ }
+ ];
+
+ for ( i = 0, len = cases.length; i < len; i++ ) {
+ ve.test.utils.runDiffElementTest( assert, cases[ i ] );
+ }
+
+} );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.ui.MWWikitextStringTransferHandler.test.js b/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.ui.MWWikitextStringTransferHandler.test.js
new file mode 100644
index 00000000..210dd49c
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/tests/ve.ui.MWWikitextStringTransferHandler.test.js
@@ -0,0 +1,95 @@
+/*!
+ * VisualEditor UserInterface MWWikitextStringTransferHandler tests.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+window.MWWIKITEXT_MOCK_API = true;
+
+QUnit.module( 've.ui.MWWikitextStringTransferHandler (Cite)', QUnit.newMwEnvironment( {
+ beforeEach: function () {
+ // Mock XHR for mw.Api()
+ this.server = window.MWWIKITEXT_MOCK_API ? this.sandbox.useFakeServer() : null;
+ ve.test.utils.mwEnvironment.setup.call( this );
+ },
+ afterEach: ve.test.utils.mwEnvironment.teardown
+} ) );
+
+/* Tests */
+
+QUnit.test( 'convert', function ( assert ) {
+ var i,
+ cases = [
+ {
+ msg: 'Simple reference',
+ pasteString: '<ref>Foo</ref>',
+ pasteType: 'text/plain',
+ parsoidResponse: '<p><span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw=\'{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}\'>[1]</span></p>' +
+ '<ol class="mw-references" typeof="mw:Extension/references" about="#mwt3" data-mw=\'{"name":"references","attrs":{},"autoGenerated":true}\'>' +
+ '<li about="#cite_note-1" id="cite_note-1">↑ <span id="mw-reference-text-cite_note-1" class="mw-reference-text">Foo</span></li>' +
+ '</ol>',
+ annotations: [],
+ expectedData: [
+ {
+ type: 'mwReference',
+ attributes: {
+ mw: {
+ attrs: {},
+ body: {
+ id: 'mw-reference-text-cite_note-1'
+ },
+ name: 'ref'
+ },
+ contentsUsed: true,
+ listGroup: 'mwReference/',
+ listIndex: 0,
+ listKey: 'auto/0',
+ originalMw: '{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}',
+ refGroup: '',
+ refListItemId: 'mw-reference-text-cite_note-1'
+ }
+ },
+ { type: '/mwReference' },
+ { type: 'internalList' },
+ { type: 'internalItem' },
+ { type: 'paragraph', internal: { generated: 'wrapper' } },
+ 'F', 'o', 'o',
+ { type: '/paragraph' },
+ { type: '/internalItem' },
+ { type: '/internalList' }
+ ]
+ },
+ {
+ msg: 'Reference template with autoGenerated content',
+ pasteString: '{{reference}}',
+ pasteType: 'text/plain',
+ parsoidResponse: '<p><span typeof="mw:Transclusion">[1]</span></p>' +
+ '<ol class="mw-references" typeof="mw:Extension/references" about="#mwt3" data-mw=\'{"name":"references","attrs":{},"autoGenerated":true}\'>' +
+ '<li>Reference list</li>' +
+ '</ol>',
+ annotations: [],
+ expectedData: [
+ {
+ type: 'mwTransclusionInline',
+ attributes: {
+ mw: {},
+ originalMw: null
+ }
+ },
+ {
+ type: '/mwTransclusionInline'
+ },
+ { type: 'internalList' },
+ { type: '/internalList' }
+ ]
+ }
+ ];
+
+ for ( i = 0; i < cases.length; i++ ) {
+ ve.test.utils.runWikitextStringHandlerTest(
+ assert, this.server, cases[ i ].pasteString, cases[ i ].pasteType, cases[ i ].parsoidResponse,
+ cases[ i ].expectedData, cases[ i ].annotations, cases[ i ].assertDom, cases[ i ].msg
+ );
+ }
+} );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ce.MWReferenceNode.css b/www/wiki/extensions/Cite/modules/ve-cite/ve.ce.MWReferenceNode.css
new file mode 100644
index 00000000..84e7470f
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ce.MWReferenceNode.css
@@ -0,0 +1,24 @@
+/*!
+ * VisualEditor ContentEditable MediaWiki MWReferenceNode styles.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/* HACK: Hide Ref errors in templates */
+.mw-ext-cite-error {
+ display: none;
+}
+
+/* In IE, force hasLayout so the <sup>'s box gets measured correctly */
+.ve-init-target-ie .ve-ce-mwReferenceNode {
+ display: inline-block;
+}
+
+/* Use zero font size to hide the default rendering, rather than display:none, to
+ * work around T123608 (cursoring bug in Chromium). See that bug for a discussion
+ * of the effect this has on bidi text. */
+.ve-ce-mwReferenceNode span.mw-reflink-text {
+ font-size: 0;
+ display: inline;
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ce.MWReferenceNode.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.ce.MWReferenceNode.js
new file mode 100644
index 00000000..9a4b471e
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ce.MWReferenceNode.js
@@ -0,0 +1,130 @@
+/*!
+ * VisualEditor ContentEditable MWReferenceNode class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * ContentEditable MediaWiki reference node.
+ *
+ * @class
+ * @extends ve.ce.LeafNode
+ * @mixins ve.ce.FocusableNode
+ *
+ * @constructor
+ * @param {ve.dm.MWReferenceNode} model Model to observe
+ * @param {Object} [config] Configuration options
+ */
+ve.ce.MWReferenceNode = function VeCeMWReferenceNode() {
+ // Parent constructor
+ ve.ce.MWReferenceNode.super.apply( this, arguments );
+
+ // Mixin constructors
+ ve.ce.FocusableNode.call( this );
+
+ // DOM changes
+ this.$link = $( '<a>' ).attr( 'href', '#' );
+ this.$element.addClass( 've-ce-mwReferenceNode mw-ref' ).append( this.$link )
+ // In case we have received a version with old-style Cite HTML, remove the
+ // old reference class
+ .removeClass( 'reference' );
+ // Add a backwards-compatible text for browsers that don't support counters
+ this.$text = $( '<span>' ).addClass( 'mw-reflink-text' );
+ this.$link.append( this.$text );
+
+ this.index = '';
+ this.internalList = this.model.getDocument().internalList;
+
+ // Events
+ this.connect( this, { setup: 'onSetup' } );
+ this.connect( this, { teardown: 'onTeardown' } );
+
+ // Initialization
+ this.update();
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ce.MWReferenceNode, ve.ce.LeafNode );
+
+OO.mixinClass( ve.ce.MWReferenceNode, ve.ce.FocusableNode );
+
+/* Static Properties */
+
+ve.ce.MWReferenceNode.static.name = 'mwReference';
+
+ve.ce.MWReferenceNode.static.tagName = 'span';
+
+ve.ce.MWReferenceNode.static.primaryCommandName = 'reference';
+
+/* Methods */
+
+/**
+ * Handle setup event.
+ */
+ve.ce.MWReferenceNode.prototype.onSetup = function () {
+ ve.ce.MWReferenceNode.super.prototype.onSetup.call( this );
+ this.internalList.connect( this, { update: 'onInternalListUpdate' } );
+};
+
+/**
+ * Handle teardown event.
+ */
+ve.ce.MWReferenceNode.prototype.onTeardown = function () {
+ // As we are listening to the internal list, we need to make sure
+ // we remove the listeners when this object is removed from the document
+ this.internalList.disconnect( this );
+
+ ve.ce.MWReferenceNode.super.prototype.onTeardown.call( this );
+};
+
+/**
+ * Handle the updating of the InternalList object.
+ *
+ * This will occur after a document transaction.
+ *
+ * @param {string[]} groupsChanged A list of groups which have changed in this transaction
+ */
+ve.ce.MWReferenceNode.prototype.onInternalListUpdate = function ( groupsChanged ) {
+ // Only update if this group has been changed
+ if ( groupsChanged.indexOf( this.model.getAttribute( 'listGroup' ) ) !== -1 ) {
+ this.update();
+ }
+};
+
+/**
+ * @inheritdoc ve.ce.FocusableNode
+ */
+ve.ce.MWReferenceNode.prototype.executeCommand = function () {
+ var command, contextItem,
+ items = ve.ui.contextItemFactory.getRelatedItems( [ this.model ] );
+
+ if ( items.length ) {
+ contextItem = ve.ui.contextItemFactory.lookup( items[ 0 ].name );
+ if ( contextItem ) {
+ command = this.getRoot().getSurface().getSurface().commandRegistry.lookup( contextItem.static.commandName );
+ if ( command ) {
+ command.execute( this.focusableSurface.getSurface() );
+ }
+ }
+ }
+};
+
+/**
+ * Update the rendering
+ */
+ve.ce.MWReferenceNode.prototype.update = function () {
+ var group = this.model.getGroup();
+ this.$text.text( this.model.getIndexLabel() );
+ this.$link.css( 'counterReset', 'mw-Ref ' + this.model.getIndex() );
+ if ( group ) {
+ this.$link.attr( 'data-mw-group', group );
+ } else {
+ this.$link.removeAttr( 'data-mw-group' );
+ }
+};
+
+/* Registration */
+
+ve.ce.nodeFactory.register( ve.ce.MWReferenceNode );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ce.MWReferencesListNode.css b/www/wiki/extensions/Cite/modules/ve-cite/ve.ce.MWReferencesListNode.css
new file mode 100644
index 00000000..b625416f
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ce.MWReferencesListNode.css
@@ -0,0 +1,15 @@
+/*!
+ * VisualEditor ContentEditable MediaWiki MWReferencesListNode styles.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+.ve-ce-mwReferencesListNode .ve-ce-generated-wrapper {
+ display: inline-block;
+}
+
+.ve-ce-mwReferencesListNode-muted {
+ color: #72777d;
+ font-style: italic;
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ce.MWReferencesListNode.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.ce.MWReferencesListNode.js
new file mode 100644
index 00000000..96843abd
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ce.MWReferencesListNode.js
@@ -0,0 +1,321 @@
+/*!
+ * VisualEditor ContentEditable MWReferencesListNode class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * ContentEditable MediaWiki references list node.
+ *
+ * @class
+ * @extends ve.ce.LeafNode
+ * @mixins ve.ce.FocusableNode
+ *
+ * @constructor
+ * @param {ve.dm.MWReferencesListNode} model Model to observe
+ * @param {Object} [config] Configuration options
+ */
+ve.ce.MWReferencesListNode = function VeCeMWReferencesListNode() {
+ // Parent constructor
+ ve.ce.MWReferencesListNode.super.apply( this, arguments );
+
+ // Mixin constructors
+ ve.ce.FocusableNode.call( this );
+
+ // Properties
+ this.internalList = null;
+ this.listNode = null;
+ this.modified = false;
+
+ // DOM changes
+ this.$element.addClass( 've-ce-mwReferencesListNode' );
+ this.$reflist = $( '<ol>' ).addClass( 'mw-references references' );
+ this.$originalRefList = null;
+ this.$refmsg = $( '<p>' )
+ .addClass( 've-ce-mwReferencesListNode-muted' );
+
+ // Events
+ this.getModel().connect( this, { attributeChange: 'onAttributeChange' } );
+
+ this.updateDebounced = ve.debounce( this.update.bind( this ) );
+
+ // Initialization
+ this.updateDebounced();
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ce.MWReferencesListNode, ve.ce.LeafNode );
+
+OO.mixinClass( ve.ce.MWReferencesListNode, ve.ce.FocusableNode );
+
+/* Static Properties */
+
+ve.ce.MWReferencesListNode.static.name = 'mwReferencesList';
+
+ve.ce.MWReferencesListNode.static.tagName = 'div';
+
+ve.ce.MWReferencesListNode.static.primaryCommandName = 'referencesList';
+
+/* Static Methods */
+
+/**
+ * @inheritdoc
+ */
+ve.ce.MWReferencesListNode.static.getDescription = function ( model ) {
+ return model.getAttribute( 'refGroup' );
+};
+
+/* Methods */
+
+/**
+ * Handle setup events.
+ *
+ * @method
+ */
+ve.ce.MWReferencesListNode.prototype.onSetup = function () {
+ this.internalList = this.getModel().getDocument().getInternalList();
+ this.listNode = this.internalList.getListNode();
+
+ this.internalList.connect( this, { update: 'onInternalListUpdate' } );
+ this.listNode.connect( this, { update: 'onListNodeUpdate' } );
+
+ // Parent method
+ ve.ce.MWReferencesListNode.super.prototype.onSetup.call( this );
+};
+
+/**
+ * Handle teardown events.
+ *
+ * @method
+ */
+ve.ce.MWReferencesListNode.prototype.onTeardown = function () {
+ this.internalList.disconnect( this, { update: 'onInternalListUpdate' } );
+ this.listNode.disconnect( this, { update: 'onListNodeUpdate' } );
+
+ this.internalList = null;
+ this.listNode = null;
+
+ // Parent method
+ ve.ce.MWReferencesListNode.super.prototype.onTeardown.call( this );
+};
+
+/**
+ * Handle the updating of the InternalList object.
+ *
+ * This will occur after a document transaction.
+ *
+ * @method
+ * @param {string[]} groupsChanged A list of groups which have changed in this transaction
+ */
+ve.ce.MWReferencesListNode.prototype.onInternalListUpdate = function ( groupsChanged ) {
+ // Only update if this group has been changed
+ if ( groupsChanged.indexOf( this.getModel().getAttribute( 'listGroup' ) ) !== -1 ) {
+ this.modified = true;
+ this.updateDebounced();
+ }
+};
+
+/**
+ * Rerender when the 'listGroup' attribute changes in the model.
+ *
+ * @param {string} key Attribute key
+ * @param {string} from Old value
+ * @param {string} to New value
+ */
+ve.ce.MWReferencesListNode.prototype.onAttributeChange = function ( key ) {
+ switch ( key ) {
+ case 'listGroup':
+ this.updateDebounced();
+ this.modified = true;
+ break;
+ case 'isResponsive':
+ this.updateClasses();
+ break;
+ }
+};
+
+/**
+ * Handle the updating of the InternalListNode.
+ *
+ * This will occur after changes to any InternalItemNode.
+ *
+ * @method
+ */
+ve.ce.MWReferencesListNode.prototype.onListNodeUpdate = function () {
+ // When the list node updates we're not sure which list group the item
+ // belonged to so we always update
+ // TODO: Only re-render the reference which has been edited
+ this.updateDebounced();
+};
+
+/**
+ * Update the references list.
+ */
+ve.ce.MWReferencesListNode.prototype.update = function () {
+ var i, j, iLen, jLen, index, firstNode, key, keyedNodes, modelNode, viewNode,
+ $li, $refSpan, $link, internalList, refGroup, listGroup, nodes,
+ model = this.getModel();
+
+ // Check the node hasn't been destroyed, as this method is debounced.
+ if ( !model ) {
+ return;
+ }
+
+ internalList = model.getDocument().internalList;
+ refGroup = model.getAttribute( 'refGroup' );
+ listGroup = model.getAttribute( 'listGroup' );
+ nodes = internalList.getNodeGroup( listGroup );
+
+ // Just use Parsoid-provided DOM for first rendering
+ // NB: Technically this.modified could be reset to false if this
+ // node is re-attached, but that is an unlikely edge case.
+ if ( !this.modified && model.getElement().originalDomElementsHash ) {
+ this.$originalRefList = $( model.getStore().value(
+ model.getElement().originalDomElementsHash
+ ) );
+ this.$element.append( this.$originalRefList );
+ return;
+ }
+
+ function updateGeneratedContent( viewNode, $li ) {
+ // HACK: PHP parser doesn't wrap single lines in a paragraph
+ if (
+ viewNode.$element.children().length === 1 &&
+ viewNode.$element.children( 'p' ).length === 1
+ ) {
+ // unwrap inner
+ viewNode.$element.children().replaceWith(
+ viewNode.$element.children().contents()
+ );
+ }
+ $li.append(
+ $( '<span>' )
+ .addClass( 'reference-text' )
+ .append( viewNode.$element )
+ );
+
+ // Since this is running after content generation has finished, it's
+ // safe to destroy the view.
+ viewNode.destroy();
+ }
+
+ if ( this.$originalRefList ) {
+ this.$originalRefList.remove();
+ this.$originalRefList = null;
+ }
+ this.$reflist.detach().empty();
+ this.$refmsg.detach();
+
+ if ( refGroup !== '' ) {
+ this.$reflist.attr( 'data-mw-group', refGroup );
+ } else {
+ this.$reflist.removeAttr( 'data-mw-group' );
+ }
+
+ if ( !nodes || !nodes.indexOrder.length ) {
+ if ( refGroup !== '' ) {
+ this.$refmsg.text( ve.msg( 'cite-ve-referenceslist-isempty', refGroup ) );
+ } else {
+ this.$refmsg.text( ve.msg( 'cite-ve-referenceslist-isempty-default' ) );
+ }
+ this.$element.append( this.$refmsg );
+ } else {
+ for ( i = 0, iLen = nodes.indexOrder.length; i < iLen; i++ ) {
+ index = nodes.indexOrder[ i ];
+ firstNode = nodes.firstNodes[ index ];
+
+ key = internalList.keys[ index ];
+ keyedNodes = nodes.keyedNodes[ key ];
+ keyedNodes = keyedNodes.filter( function ( node ) {
+ // Exclude placeholder references
+ if ( node.getAttribute( 'placeholder' ) ) {
+ return false;
+ }
+ // Exclude references defined inside the references list node
+ while ( ( node = node.parent ) && node !== null ) {
+ if ( node instanceof ve.dm.MWReferencesListNode ) {
+ return false;
+ }
+ }
+ return true;
+ } );
+
+ if ( !keyedNodes.length ) {
+ continue;
+ }
+
+ $li = $( '<li>' );
+
+ if ( keyedNodes.length > 1 ) {
+ $refSpan = $( '<span>' ).attr( 'rel', 'mw:referencedBy' );
+ for ( j = 0, jLen = keyedNodes.length; j < jLen; j++ ) {
+ $link = $( '<a>' ).append(
+ $( '<span>' ).addClass( 'mw-linkback-text' )
+ .text( ( j + 1 ) + ' ' )
+ );
+ if ( refGroup !== '' ) {
+ $link.attr( 'data-mw-group', refGroup );
+ }
+ $refSpan.append( $link );
+ }
+ $li.append( $refSpan );
+ } else {
+ $link = $( '<a>' ).attr( 'rel', 'mw:referencedBy' ).append(
+ $( '<span>' ).addClass( 'mw-linkback-text' )
+ .text( '↑ ' )
+ );
+ if ( refGroup !== '' ) {
+ $link.attr( 'data-mw-group', refGroup );
+ }
+ $li.append( $link );
+ }
+
+ // Generate reference HTML from first item in key
+ modelNode = internalList.getItemNode( firstNode.getAttribute( 'listIndex' ) );
+ if ( modelNode && modelNode.length ) {
+ viewNode = new ve.ce.InternalItemNode( modelNode );
+
+ // Use 'done' instead of 'then' so content is updated synchronously
+ // if possible, for clipboard conversion.
+ ve.ce.GeneratedContentNode.static.awaitGeneratedContent( viewNode )
+ .done( updateGeneratedContent.bind( this, viewNode, $li ) );
+
+ // Because this update runs a number of times when using the
+ // basic dialog, disconnect the model here rather than waiting
+ // for when it's destroyed after the generated content is
+ // finished. Failing to do this causes teardown errors with
+ // basic citations.
+ modelNode.disconnect( viewNode );
+ } else {
+ $li.append(
+ $( '<span>' )
+ .addClass( 've-ce-mwReferencesListNode-muted' )
+ .text( ve.msg( 'cite-ve-referenceslist-missingref-in-list' ) )
+ );
+ }
+
+ this.$reflist.append( $li );
+ }
+ this.updateClasses();
+ this.$element.append( this.$reflist );
+ }
+};
+
+/**
+ * Update ref list classes.
+ *
+ * Currently used to set responsive layout
+ */
+ve.ce.MWReferencesListNode.prototype.updateClasses = function () {
+ var isResponsive = this.getModel().getAttribute( 'isResponsive' );
+
+ this.$element
+ .toggleClass( 'mw-references-wrap', isResponsive )
+ .toggleClass( 'mw-references-columns', isResponsive && this.$reflist.children().length > 10 );
+};
+
+/* Registration */
+
+ve.ce.nodeFactory.register( ve.ce.MWReferencesListNode );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.dm.MWReferenceModel.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.dm.MWReferenceModel.js
new file mode 100644
index 00000000..fcfccfac
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.dm.MWReferenceModel.js
@@ -0,0 +1,283 @@
+/*!
+ * VisualEditor DataModel MWReferenceModel class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * MediaWiki reference model.
+ *
+ * @class
+ * @mixins OO.EventEmitter
+ *
+ * @constructor
+ * @param {ve.dm.Document} parentDoc Document that contains or will contain the reference
+ */
+ve.dm.MWReferenceModel = function VeDmMWReferenceModel( parentDoc ) {
+ // Mixin constructors
+ OO.EventEmitter.call( this );
+
+ // Properties
+ this.listKey = '';
+ this.listGroup = '';
+ this.listIndex = null;
+ this.group = '';
+ this.doc = null;
+ this.parentDoc = parentDoc;
+ this.deferDoc = null;
+};
+
+/* Inheritance */
+
+OO.mixinClass( ve.dm.MWReferenceModel, OO.EventEmitter );
+
+/* Static Methods */
+
+/**
+ * Create a reference model from a reference internal item.
+ *
+ * @param {ve.dm.MWReferenceNode} node Reference node
+ * @return {ve.dm.MWReferenceModel} Reference model
+ */
+ve.dm.MWReferenceModel.static.newFromReferenceNode = function ( node ) {
+ var doc = node.getDocument(),
+ internalList = doc.getInternalList(),
+ attr = node.getAttributes(),
+ ref = new ve.dm.MWReferenceModel( doc );
+
+ ref.setListKey( attr.listKey );
+ ref.setListGroup( attr.listGroup );
+ ref.setListIndex( attr.listIndex );
+ ref.setGroup( attr.refGroup );
+ ref.deferDoc = function () {
+ // cloneFromRange is very expensive, so lazy evaluate it
+ return doc.cloneFromRange( internalList.getItemNode( attr.listIndex ).getRange() );
+ };
+
+ return ref;
+};
+
+/* Methods */
+
+/**
+ * Find matching item in a surface.
+ *
+ * @param {ve.dm.Surface} surfaceModel Surface reference is in
+ * @return {ve.dm.InternalItemNode|null} Internal reference item, null if none exists
+ */
+ve.dm.MWReferenceModel.prototype.findInternalItem = function ( surfaceModel ) {
+ if ( this.listIndex !== null ) {
+ return surfaceModel.getDocument().getInternalList().getItemNode( this.listIndex );
+ }
+ return null;
+};
+
+/**
+ * Insert reference internal item into a surface.
+ *
+ * If the internal item for this reference doesn't exist, use this method to create one.
+ * The inserted reference is empty and auto-numbered.
+ *
+ * @param {ve.dm.Surface} surfaceModel Surface model of main document
+ */
+ve.dm.MWReferenceModel.prototype.insertInternalItem = function ( surfaceModel ) {
+ // Create new internal item
+ var item,
+ doc = surfaceModel.getDocument(),
+ internalList = doc.getInternalList();
+
+ // Fill in data
+ this.setListKey( 'auto/' + internalList.getNextUniqueNumber() );
+ this.setListGroup( 'mwReference/' + this.group );
+
+ // Insert internal reference item into document
+ item = internalList.getItemInsertion( this.listGroup, this.listKey, [] );
+ surfaceModel.change( item.transaction );
+ this.setListIndex( item.index );
+
+ // Inject reference document into internal reference item
+ surfaceModel.change(
+ ve.dm.TransactionBuilder.static.newFromDocumentInsertion(
+ doc,
+ internalList.getItemNode( item.index ).getRange().start,
+ this.getDocument()
+ )
+ );
+};
+
+/**
+ * Update an internal reference item.
+ *
+ * An internal item for the reference will be created if no `ref` argument is given.
+ *
+ * @param {ve.dm.Surface} surfaceModel Surface model of main document
+ */
+ve.dm.MWReferenceModel.prototype.updateInternalItem = function ( surfaceModel ) {
+ var i, len, txs, group, refNodes, keyIndex, itemNodeRange,
+ doc = surfaceModel.getDocument(),
+ internalList = doc.getInternalList(),
+ listGroup = 'mwReference/' + this.group;
+
+ // Group/key has changed
+ if ( this.listGroup !== listGroup ) {
+ // Get all reference nodes with the same group and key
+ group = internalList.getNodeGroup( this.listGroup );
+ refNodes = group.keyedNodes[ this.listKey ] ?
+ group.keyedNodes[ this.listKey ].slice() :
+ [ group.firstNodes[ this.listIndex ] ];
+ // Check for name collision when moving items between groups
+ keyIndex = internalList.getKeyIndex( this.listGroup, this.listKey );
+ if ( keyIndex !== undefined ) {
+ // Resolve name collision by generating a new list key
+ this.listKey = 'auto/' + internalList.getNextUniqueNumber();
+ }
+ // Update the group name of all references nodes with the same group and key
+ txs = [];
+ for ( i = 0, len = refNodes.length; i < len; i++ ) {
+ txs.push( ve.dm.TransactionBuilder.static.newFromAttributeChanges(
+ doc,
+ refNodes[ i ].getOuterRange().start,
+ { refGroup: this.group, listGroup: listGroup }
+ ) );
+ }
+ surfaceModel.change( txs );
+ this.listGroup = listGroup;
+ }
+ // Update internal node content
+ itemNodeRange = internalList.getItemNode( this.listIndex ).getRange();
+ surfaceModel.change( ve.dm.TransactionBuilder.static.newFromRemoval( doc, itemNodeRange, true ) );
+ surfaceModel.change(
+ ve.dm.TransactionBuilder.static.newFromDocumentInsertion( doc, itemNodeRange.start, this.getDocument() )
+ );
+};
+
+/**
+ * Insert reference at the end of a surface fragment.
+ *
+ * @param {ve.dm.SurfaceFragment} surfaceFragment Surface fragment to insert at
+ * @param {boolean} [placeholder] Reference is a placeholder for staging purposes
+ */
+ve.dm.MWReferenceModel.prototype.insertReferenceNode = function ( surfaceFragment, placeholder ) {
+ var attributes = {
+ listKey: this.listKey,
+ listGroup: this.listGroup,
+ listIndex: this.listIndex,
+ refGroup: this.group
+ };
+ if ( placeholder ) {
+ attributes.placeholder = true;
+ }
+ surfaceFragment
+ .insertContent( [
+ {
+ type: 'mwReference',
+ attributes: attributes
+ },
+ { type: '/mwReference' }
+ ] );
+};
+
+/**
+ * Get the key of a reference in the references list.
+ *
+ * @return {string} Reference's list key
+ */
+ve.dm.MWReferenceModel.prototype.getListKey = function () {
+ return this.listKey;
+};
+
+/**
+ * Get the name of the group a references list is in.
+ *
+ * @return {string} References list's group
+ */
+ve.dm.MWReferenceModel.prototype.getListGroup = function () {
+ return this.listGroup;
+};
+
+/**
+ * Get the index of reference in the references list.
+ *
+ * @return {string} Reference's index
+ */
+ve.dm.MWReferenceModel.prototype.getListIndex = function () {
+ return this.listIndex;
+};
+
+/**
+ * Get the name of the group a reference is in.
+ *
+ * @return {string} Reference's group
+ */
+ve.dm.MWReferenceModel.prototype.getGroup = function () {
+ return this.group;
+};
+
+/**
+ * Get reference document.
+ *
+ * Auto-generates a blank document if no document exists.
+ *
+ * @return {ve.dm.Document} Reference document
+ */
+ve.dm.MWReferenceModel.prototype.getDocument = function () {
+ if ( !this.doc ) {
+ if ( this.deferDoc ) {
+ this.doc = this.deferDoc();
+ } else {
+ this.doc = this.parentDoc.cloneWithData( [
+ { type: 'paragraph', internal: { generated: 'wrapper' } },
+ { type: '/paragraph' },
+ { type: 'internalList' },
+ { type: '/internalList' }
+ ] );
+ }
+ }
+ return this.doc;
+};
+
+/**
+ * Set key of reference in list.
+ *
+ * @param {string} listKey Reference's list key
+ */
+ve.dm.MWReferenceModel.prototype.setListKey = function ( listKey ) {
+ this.listKey = listKey;
+};
+
+/**
+ * Set name of the group a references list is in.
+ *
+ * @param {string} listGroup References list's group
+ */
+ve.dm.MWReferenceModel.prototype.setListGroup = function ( listGroup ) {
+ this.listGroup = listGroup;
+};
+
+/**
+ * Set the index of reference in list.
+ *
+ * @param {string} listIndex Reference's list index
+ */
+ve.dm.MWReferenceModel.prototype.setListIndex = function ( listIndex ) {
+ this.listIndex = listIndex;
+};
+
+/**
+ * Set the name of the group a reference is in.
+ *
+ * @param {string} group Reference's group
+ */
+ve.dm.MWReferenceModel.prototype.setGroup = function ( group ) {
+ this.group = group;
+};
+
+/**
+ * Set the reference document.
+ *
+ * @param {ve.dm.Document} doc Reference document
+ */
+ve.dm.MWReferenceModel.prototype.setDocument = function ( doc ) {
+ this.doc = doc;
+};
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.dm.MWReferenceNode.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.dm.MWReferenceNode.js
new file mode 100644
index 00000000..e84d247a
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.dm.MWReferenceNode.js
@@ -0,0 +1,461 @@
+/*!
+ * VisualEditor DataModel MWReferenceNode class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * DataModel MediaWiki reference node.
+ *
+ * @class
+ * @extends ve.dm.LeafNode
+ * @mixins ve.dm.FocusableNode
+ *
+ * @constructor
+ * @param {Object} [element] Reference to element in linear model
+ */
+ve.dm.MWReferenceNode = function VeDmMWReferenceNode() {
+ // Parent constructor
+ ve.dm.MWReferenceNode.super.apply( this, arguments );
+
+ // Mixin constructors
+ ve.dm.FocusableNode.call( this );
+
+ // Event handlers
+ this.connect( this, {
+ root: 'onRoot',
+ unroot: 'onUnroot',
+ attributeChange: 'onAttributeChange'
+ } );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.dm.MWReferenceNode, ve.dm.LeafNode );
+
+OO.mixinClass( ve.dm.MWReferenceNode, ve.dm.FocusableNode );
+
+/* Static members */
+
+ve.dm.MWReferenceNode.static.name = 'mwReference';
+
+ve.dm.MWReferenceNode.static.matchTagNames = null;
+
+ve.dm.MWReferenceNode.static.matchRdfaTypes = [ 'mw:Extension/ref' ];
+
+ve.dm.MWReferenceNode.static.allowedRdfaTypes = [ 'dc:references' ];
+
+ve.dm.MWReferenceNode.static.isContent = true;
+
+ve.dm.MWReferenceNode.static.blacklistedAnnotationTypes = [ 'link' ];
+
+/**
+ * Regular expression for parsing the listKey attribute
+ * @static
+ * @property {RegExp}
+ * @inheritable
+ */
+ve.dm.MWReferenceNode.static.listKeyRegex = /^(auto|literal)\/(.*)$/;
+
+ve.dm.MWReferenceNode.static.toDataElement = function ( domElements, converter ) {
+ var dataElement, mwDataJSON, mwData, reflistItemId, body, refGroup, listGroup, autoKeyed, listKey, queueResult, listIndex, contentsUsed;
+
+ function getReflistItemHtml( id ) {
+ var elem = converter.getHtmlDocument().getElementById( id );
+ return elem && elem.innerHTML || '';
+ }
+
+ mwDataJSON = domElements[ 0 ].getAttribute( 'data-mw' );
+ mwData = mwDataJSON ? JSON.parse( mwDataJSON ) : {};
+ reflistItemId = mwData.body && mwData.body.id;
+ body = ( mwData.body && mwData.body.html ) ||
+ ( reflistItemId && getReflistItemHtml( reflistItemId ) ) ||
+ '';
+ refGroup = mwData.attrs && mwData.attrs.group || '';
+ listGroup = this.name + '/' + refGroup;
+ autoKeyed = !mwData.attrs || mwData.attrs.name === undefined;
+ listKey = autoKeyed ?
+ 'auto/' + converter.internalList.getNextUniqueNumber() :
+ 'literal/' + mwData.attrs.name;
+ queueResult = converter.internalList.queueItemHtml( listGroup, listKey, body );
+ listIndex = queueResult.index;
+ contentsUsed = ( body !== '' && queueResult.isNew );
+
+ dataElement = {
+ type: this.name,
+ attributes: {
+ mw: mwData,
+ originalMw: mwDataJSON,
+ listIndex: listIndex,
+ listGroup: listGroup,
+ listKey: listKey,
+ refGroup: refGroup,
+ contentsUsed: contentsUsed
+ }
+ };
+ if ( reflistItemId ) {
+ dataElement.attributes.refListItemId = reflistItemId;
+ }
+ return dataElement;
+};
+
+ve.dm.MWReferenceNode.static.toDomElements = function ( dataElement, doc, converter ) {
+ var itemNodeHtml, originalHtml, mwData, i, iLen, keyedNodes, setContents, contentsAlreadySet,
+ originalMw, listKeyParts, name, group, $link,
+ isForClipboard = converter.isForClipboard(),
+ el = doc.createElement( 'sup' ),
+ itemNodeWrapper = doc.createElement( 'div' ),
+ originalHtmlWrapper = doc.createElement( 'div' ),
+ itemNode = converter.internalList.getItemNode( dataElement.attributes.listIndex ),
+ itemNodeRange = itemNode.getRange();
+
+ el.setAttribute( 'typeof', 'mw:Extension/ref' );
+
+ mwData = dataElement.attributes.mw ? ve.copy( dataElement.attributes.mw ) : {};
+ mwData.name = 'ref';
+
+ setContents = dataElement.attributes.contentsUsed;
+
+ keyedNodes = converter.internalList
+ .getNodeGroup( dataElement.attributes.listGroup )
+ .keyedNodes[ dataElement.attributes.listKey ];
+
+ if ( setContents ) {
+ // Check if a previous node has already set the content. If so, we don't overwrite this
+ // node's contents.
+ contentsAlreadySet = false;
+ if ( keyedNodes ) {
+ for ( i = 0, iLen = keyedNodes.length; i < iLen; i++ ) {
+ if ( keyedNodes[ i ].element === dataElement ) {
+ break;
+ }
+ if ( keyedNodes[ i ].element.attributes.contentsUsed ) {
+ contentsAlreadySet = true;
+ break;
+ }
+ }
+ }
+ } else {
+ // Check if any other nodes with this key provided content. If not
+ // then we attach the contents to the first reference with this key
+
+ // Check that this is the first reference with its key
+ if ( keyedNodes && dataElement === keyedNodes[ 0 ].element ) {
+ setContents = true;
+ // Check no other reference originally defined the contents
+ // As this is keyedNodes[0] we can start at 1
+ for ( i = 1, iLen = keyedNodes.length; i < iLen; i++ ) {
+ if ( keyedNodes[ i ].element.attributes.contentsUsed ) {
+ setContents = false;
+ break;
+ }
+ }
+ }
+ }
+
+ if ( setContents && !contentsAlreadySet ) {
+ converter.getDomSubtreeFromData(
+ itemNode.getDocument().getFullData( itemNodeRange, true ),
+ itemNodeWrapper
+ );
+ itemNodeHtml = itemNodeWrapper.innerHTML; // Returns '' if itemNodeWrapper is empty
+ originalHtml = ve.getProp( mwData, 'body', 'html' ) ||
+ ( ve.getProp( mwData, 'body', 'id' ) !== undefined && itemNode.getAttribute( 'originalHtml' ) ) ||
+ '';
+ originalHtmlWrapper.innerHTML = originalHtml;
+ // Only set body.html if itemNodeHtml and originalHtml are actually different,
+ // or we are writing the clipboard for use in another VE instance
+ if ( isForClipboard || !originalHtmlWrapper.isEqualNode( itemNodeWrapper ) ) {
+ ve.setProp( mwData, 'body', 'html', itemNodeHtml );
+ }
+ }
+
+ // If we have no internal item data for this reference, don't let it get pasted into
+ // another VE document. T110479
+ if ( isForClipboard && itemNodeRange.isCollapsed() ) {
+ el.setAttribute( 'data-ve-ignore', 'true' );
+ }
+
+ // Generate name
+ listKeyParts = dataElement.attributes.listKey.match( this.listKeyRegex );
+ if ( listKeyParts[ 1 ] === 'auto' ) {
+ // Only render a name if this key was reused
+ if ( keyedNodes.length > 1 ) {
+ // Allocate a unique list key, then strip the 'literal/'' prefix
+ name = converter.internalList.getUniqueListKey(
+ dataElement.attributes.listGroup,
+ dataElement.attributes.listKey,
+ // Generate a name starting with ':' to distinguish it from normal names
+ 'literal/:'
+ ).slice( 'literal/'.length );
+ } else {
+ name = undefined;
+ }
+ } else {
+ // Use literal name
+ name = listKeyParts[ 2 ];
+ }
+ // Set name
+ if ( name !== undefined ) {
+ ve.setProp( mwData, 'attrs', 'name', name );
+ }
+
+ // Set or clear group
+ if ( dataElement.attributes.refGroup !== '' ) {
+ ve.setProp( mwData, 'attrs', 'group', dataElement.attributes.refGroup );
+ } else if ( mwData.attrs ) {
+ delete mwData.attrs.refGroup;
+ }
+
+ // If mwAttr and originalMw are the same, use originalMw to prevent reserialization,
+ // unless we are writing the clipboard for use in another VE instance
+ // Reserialization has the potential to reorder keys and so change the DOM unnecessarily
+ originalMw = dataElement.attributes.originalMw;
+ if ( !isForClipboard && originalMw && ve.compare( mwData, JSON.parse( originalMw ) ) ) {
+ el.setAttribute( 'data-mw', originalMw );
+
+ // Return the original DOM elements if possible
+ if ( dataElement.originalDomElementsHash !== undefined ) {
+ return ve.copyDomElements( converter.getStore().value( dataElement.originalDomElementsHash ), doc );
+ }
+ } else {
+ el.setAttribute( 'data-mw', JSON.stringify( mwData ) );
+
+ // HTML for the external clipboard, it will be ignored by the converter
+ group = this.getGroup( dataElement );
+ $link = $( '<a>', doc ).css(
+ 'counterReset', 'mw-Ref ' + this.getIndex( dataElement, converter.internalList )
+ );
+ if ( group ) {
+ $link.attr( 'data-mw-group', this.getGroup( dataElement ) );
+ }
+ $( el ).addClass( 'mw-ref' ).append(
+ $link.append(
+ $( '<span>', doc ).addClass( 'mw-reflink-text' ).text( this.getIndexLabel( dataElement, converter.internalList ) )
+ )
+ );
+ }
+
+ return [ el ];
+};
+
+ve.dm.MWReferenceNode.static.remapInternalListIndexes = function ( dataElement, mapping, internalList ) {
+ var listKeyParts;
+ // Remap listIndex
+ dataElement.attributes.listIndex = mapping[ dataElement.attributes.listIndex ];
+
+ // Remap listKey if it was automatically generated
+ listKeyParts = dataElement.attributes.listKey.match( this.listKeyRegex );
+ if ( listKeyParts[ 1 ] === 'auto' ) {
+ dataElement.attributes.listKey = 'auto/' + internalList.getNextUniqueNumber();
+ }
+};
+
+ve.dm.MWReferenceNode.static.remapInternalListKeys = function ( dataElement, internalList ) {
+ var suffix = '';
+ // Try name, name2, name3, ... until unique
+ while ( internalList.keys.indexOf( dataElement.attributes.listKey + suffix ) !== -1 ) {
+ suffix = suffix ? suffix + 1 : 2;
+ }
+ if ( suffix ) {
+ dataElement.attributes.listKey = dataElement.attributes.listKey + suffix;
+ }
+};
+
+/**
+ * Gets the index for the reference
+ *
+ * @static
+ * @param {Object} dataElement Element data
+ * @param {ve.dm.InternalList} internalList Internal list
+ * @return {number} Index
+ */
+ve.dm.MWReferenceNode.static.getIndex = function ( dataElement, internalList ) {
+ var listIndex, listGroup, position,
+ overrideIndex = ve.getProp( dataElement, 'internal', 'overrideIndex' );
+
+ if ( overrideIndex ) {
+ return overrideIndex;
+ }
+
+ listIndex = dataElement.attributes.listIndex;
+ listGroup = dataElement.attributes.listGroup;
+ position = internalList.getIndexPosition( listGroup, listIndex );
+
+ return position + 1;
+};
+
+/**
+ * Gets the group for the reference
+ *
+ * @static
+ * @param {Object} dataElement Element data
+ * @return {string} Group
+ */
+ve.dm.MWReferenceNode.static.getGroup = function ( dataElement ) {
+ return dataElement.attributes.refGroup;
+};
+
+/**
+ * Gets the index label for the reference
+ *
+ * @static
+ * @param {Object} dataElement Element data
+ * @param {ve.dm.InternalList} internalList Internal list
+ * @return {string} Reference label
+ */
+ve.dm.MWReferenceNode.static.getIndexLabel = function ( dataElement, internalList ) {
+ var refGroup = dataElement.attributes.refGroup,
+ index = ve.dm.MWReferenceNode.static.getIndex( dataElement, internalList );
+
+ return '[' + ( refGroup ? refGroup + ' ' : '' ) + index + ']';
+};
+
+/**
+ * @inheritdoc
+ */
+ve.dm.MWReferenceNode.static.cloneElement = function () {
+ var clone = ve.dm.MWReferenceNode.super.static.cloneElement.apply( this, arguments );
+ delete clone.attributes.contentsUsed;
+ delete clone.attributes.mw;
+ delete clone.attributes.originalMw;
+ return clone;
+};
+
+/**
+ * @inheritdoc
+ */
+ve.dm.MWReferenceNode.static.describeChange = function ( key, change ) {
+ if ( key === 'refGroup' ) {
+ if ( change.from ) {
+ if ( change.to ) {
+ return ve.msg( 'cite-ve-changedesc-ref-group-both', change.from, change.to );
+ } else {
+ return ve.msg( 'cite-ve-changedesc-ref-group-from', change.from );
+ }
+ }
+ return ve.msg( 'cite-ve-changedesc-ref-group-to', change.to );
+ }
+ if ( key === 'refListItemId' ) {
+ return ve.msg( 'cite-ve-changedesc-reflist-item-id' );
+ }
+};
+
+/* Methods */
+
+/**
+ * Don't allow reference nodes to be edited if we can't find their contents.
+ *
+ * @inheritdoc
+ */
+ve.dm.MWReferenceNode.prototype.isEditable = function () {
+ var internalItem = this.getInternalItem();
+ return internalItem && internalItem.getLength() > 0;
+};
+
+/**
+ * Gets the internal item node associated with this node
+ *
+ * @return {ve.dm.InternalItemNode} Item node
+ */
+ve.dm.MWReferenceNode.prototype.getInternalItem = function () {
+ return this.getDocument().getInternalList().getItemNode( this.getAttribute( 'listIndex' ) );
+};
+
+/**
+ * Gets the index for the reference
+ *
+ * @return {number} Index
+ */
+ve.dm.MWReferenceNode.prototype.getIndex = function () {
+ return this.constructor.static.getIndex( this.element, this.getDocument().getInternalList() );
+};
+
+/**
+ * Gets the group for the reference
+ *
+ * @return {string} Group
+ */
+ve.dm.MWReferenceNode.prototype.getGroup = function () {
+ return this.constructor.static.getGroup( this.element );
+};
+
+/**
+ * Gets the index label for the reference
+ *
+ * @return {string} Reference label
+ */
+ve.dm.MWReferenceNode.prototype.getIndexLabel = function () {
+ return this.constructor.static.getIndexLabel( this.element, this.getDocument().getInternalList() );
+};
+
+/**
+ * Handle the node being attached to the root
+ */
+ve.dm.MWReferenceNode.prototype.onRoot = function () {
+ this.addToInternalList();
+};
+
+/**
+ * Handle the node being detached from the root
+ *
+ * @param {ve.dm.DocumentNode} oldRoot Old document root
+ */
+ve.dm.MWReferenceNode.prototype.onUnroot = function ( oldRoot ) {
+ if ( this.getDocument().getDocumentNode() === oldRoot ) {
+ this.removeFromInternalList();
+ }
+};
+
+/**
+ * Register the node with the internal list
+ */
+ve.dm.MWReferenceNode.prototype.addToInternalList = function () {
+ if ( this.getRoot() === this.getDocument().getDocumentNode() ) {
+ this.registeredListGroup = this.element.attributes.listGroup;
+ this.registeredListKey = this.element.attributes.listKey;
+ this.registeredListIndex = this.element.attributes.listIndex;
+ this.getDocument().getInternalList().addNode(
+ this.registeredListGroup,
+ this.registeredListKey,
+ this.registeredListIndex,
+ this
+ );
+ }
+};
+
+/**
+ * Unregister the node from the internal list
+ */
+ve.dm.MWReferenceNode.prototype.removeFromInternalList = function () {
+ if ( !this.registeredListGroup ) {
+ // Don't try to remove if we haven't been added in the first place.
+ return;
+ }
+ this.getDocument().getInternalList().removeNode(
+ this.registeredListGroup,
+ this.registeredListKey,
+ this.registeredListIndex,
+ this
+ );
+};
+
+ve.dm.MWReferenceNode.prototype.onAttributeChange = function ( key, from, to ) {
+ if (
+ ( key !== 'listGroup' && key !== 'listKey' ) ||
+ ( key === 'listGroup' && this.registeredListGroup === to ) ||
+ ( key === 'listKey' && this.registeredListKey === to )
+ ) {
+ return;
+ }
+
+ // Need the old list keys and indexes, so we register them in addToInternalList
+ // They've already been updated in this.element.attributes before this code runs
+ this.removeFromInternalList();
+ this.addToInternalList();
+};
+
+/* Registration */
+
+ve.dm.modelRegistry.register( ve.dm.MWReferenceNode );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.dm.MWReferencesListNode.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.dm.MWReferencesListNode.js
new file mode 100644
index 00000000..a06968a8
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.dm.MWReferencesListNode.js
@@ -0,0 +1,243 @@
+/*!
+ * VisualEditor DataModel MWReferencesListNode class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * DataModel MediaWiki references list node.
+ *
+ * @class
+ * @extends ve.dm.BranchNode
+ * @mixins ve.dm.FocusableNode
+ *
+ * @constructor
+ * @param {Object} [element] Reference to element in linear model
+ * @param {ve.dm.Node[]} [children]
+ */
+ve.dm.MWReferencesListNode = function VeDmMWReferencesListNode() {
+ // Parent constructor
+ ve.dm.MWReferencesListNode.super.apply( this, arguments );
+
+ // Mixin constructors
+ ve.dm.FocusableNode.call( this );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.dm.MWReferencesListNode, ve.dm.BranchNode );
+
+OO.mixinClass( ve.dm.MWReferencesListNode, ve.dm.FocusableNode );
+
+/* Methods */
+
+ve.dm.MWReferencesListNode.prototype.isEditable = function () {
+ return !this.getAttribute( 'templateGenerated' );
+};
+
+/* Static members */
+
+ve.dm.MWReferencesListNode.static.name = 'mwReferencesList';
+
+ve.dm.MWReferencesListNode.static.handlesOwnChildren = true;
+
+ve.dm.MWReferencesListNode.static.ignoreChildren = true;
+
+ve.dm.MWReferencesListNode.static.matchTagNames = null;
+
+ve.dm.MWReferencesListNode.static.matchRdfaTypes = [ 'mw:Extension/references', 'mw:Transclusion' ];
+
+ve.dm.MWReferencesListNode.static.matchFunction = function ( domElement ) {
+ function isRefList( el ) {
+ return el && el.nodeType === Node.ELEMENT_NODE && ( el.getAttribute( 'typeof' ) || '' ).indexOf( 'mw:Extension/references' ) !== -1;
+ }
+ // If the template generated only a reference list, treat it as a ref list (T52769)
+ return isRefList( domElement ) ||
+ // A div-wrapped reference list
+ ( domElement.children.length === 1 && isRefList( domElement.children[ 0 ] ) );
+};
+
+ve.dm.MWReferencesListNode.static.preserveHtmlAttributes = false;
+
+ve.dm.MWReferencesListNode.static.toDataElement = function ( domElements, converter ) {
+ var referencesListData, contentsDiv, contentsData, refListNode,
+ mwDataJSON, mwData, refGroup, responsiveAttr, listGroup,
+ type = domElements[ 0 ].getAttribute( 'typeof' ) || '',
+ templateGenerated = type.indexOf( 'mw:Transclusion' ) !== -1,
+ isResponsiveDefault = mw.config.get( 'wgCiteResponsiveReferences' );
+
+ // We may have matched a mw:Transclusion wrapping a reference list, so pull out the refListNode
+ if ( type.indexOf( 'mw:Extension/references' ) !== -1 ) {
+ refListNode = domElements[ 0 ];
+ } else {
+ refListNode = domElements[ 0 ].querySelectorAll( '[typeof*="mw:Extension/references"]' )[ 0 ];
+ }
+
+ mwDataJSON = refListNode.getAttribute( 'data-mw' );
+ mwData = mwDataJSON ? JSON.parse( mwDataJSON ) : {};
+ refGroup = ve.getProp( mwData, 'attrs', 'group' ) || '';
+ responsiveAttr = ve.getProp( mwData, 'attrs', 'responsive' );
+ listGroup = 'mwReference/' + refGroup;
+
+ referencesListData = {
+ type: this.name,
+ attributes: {
+ mw: mwData,
+ originalMw: mwDataJSON,
+ refGroup: refGroup,
+ listGroup: listGroup,
+ isResponsive: responsiveAttr !== undefined ? responsiveAttr !== '0' : isResponsiveDefault,
+ templateGenerated: templateGenerated
+ }
+ };
+ if ( mwData.body && mwData.body.html ) {
+ // Process the nodes in .body.html as if they were this node's children
+ contentsDiv = domElements[ 0 ].ownerDocument.createElement( 'div' );
+ contentsDiv.innerHTML = mwData.body.html;
+ contentsData = converter.getDataFromDomClean( contentsDiv );
+ referencesListData = [ referencesListData ]
+ .concat( contentsData )
+ .concat( [ { type: '/' + this.name } ] );
+ }
+ return referencesListData;
+};
+
+ve.dm.MWReferencesListNode.static.toDomElements = function ( data, doc, converter ) {
+ var el, els, mwData, originalMw, contentsHtml, originalHtml, nextIndex, nextElement, modelNode, viewNode,
+ isResponsiveDefault = mw.config.get( 'wgCiteResponsiveReferences' ),
+ isForClipboard = converter.isForClipboard(),
+ wrapper = doc.createElement( 'div' ),
+ originalHtmlWrapper = doc.createElement( 'div' ),
+ dataElement = data[ 0 ],
+ attrs = dataElement.attributes,
+ contentsData = data.slice( 1, -1 );
+
+ // If we are sending a template generated ref back to Parsoid, output it as a template.
+ // This works because the dataElement already as mw, originalMw and originalDomIndex properties.
+ if ( attrs.templateGenerated && !isForClipboard ) {
+ return ve.dm.MWTransclusionNode.static.toDomElements.call( this, dataElement, doc, converter );
+ }
+
+ if ( isForClipboard ) {
+ // Output needs to be read so re-render
+ modelNode = new ve.dm.MWReferencesListNode( dataElement );
+ // Build from original doc's internal list to get all refs (T186407)
+ modelNode.setDocument( converter.originalDocInternalList.getDocument() );
+ viewNode = new ve.ce.MWReferencesListNode( modelNode );
+ viewNode.modified = true;
+ viewNode.update();
+ els = [ doc.createElement( 'div' ) ];
+ els[ 0 ].appendChild( viewNode.$reflist[ 0 ] );
+ // Destroy the view node so it doesn't try to update the DOM node later (e.g. updateDebounced)
+ viewNode.destroy();
+ } else if ( dataElement.originalDomElementsHash !== undefined ) {
+ // If there's more than 1 element, preserve entire array, not just first element
+ els = ve.copyDomElements( converter.getStore().value( dataElement.originalDomElementsHash ), doc );
+ } else {
+ els = [ doc.createElement( 'div' ) ];
+ }
+
+ mwData = attrs.mw ? ve.copy( attrs.mw ) : {};
+
+ mwData.name = 'references';
+
+ if ( attrs.refGroup ) {
+ ve.setProp( mwData, 'attrs', 'group', attrs.refGroup );
+ } else if ( mwData.attrs ) {
+ delete mwData.attrs.refGroup;
+ }
+
+ if ( attrs.isResponsive !== isResponsiveDefault ) {
+ ve.setProp( mwData, 'attrs', 'responsive', attrs.isResponsive ? '' : '0' );
+ } else if ( mwData.attrs ) {
+ delete mwData.attrs.responsive;
+ }
+
+ if ( mwData.autoGenerated ) {
+ // This was an autogenerated reflist. We need to check whether changes
+ // have been made which make that no longer true. The reflist dialog
+ // handles unsetting this if changes to the properties have been made.
+ // Here we want to work out if it has been moved away from the end of
+ // the document.
+ // TODO: it would be better to do this without needing to fish through
+ // the converter's linear data. Use the DM tree instead?
+ nextIndex = converter.documentData.indexOf( data[ data.length - 1 ] ) + 1;
+ while ( ( nextElement = converter.documentData[ nextIndex ] ) ) {
+ if ( nextElement.type[ 0 ] !== '/' ) {
+ break;
+ }
+ nextIndex++;
+ }
+ if ( nextElement && nextElement.type !== 'internalList' ) {
+ delete mwData.autoGenerated;
+ }
+ }
+
+ el = els[ 0 ];
+ el.setAttribute( 'typeof', 'mw:Extension/references' );
+
+ if ( contentsData.length > 2 ) {
+ converter.getDomSubtreeFromData( data.slice( 1, -1 ), wrapper );
+ contentsHtml = wrapper.innerHTML; // Returns '' if wrapper is empty
+ originalHtml = ve.getProp( mwData, 'body', 'html' ) || '';
+ originalHtmlWrapper.innerHTML = originalHtml;
+ // Only set body.html if contentsHtml and originalHtml are actually different
+ if ( !originalHtmlWrapper.isEqualNode( wrapper ) ) {
+ ve.setProp( mwData, 'body', 'html', contentsHtml );
+ }
+ }
+
+ // If mwData and originalMw are the same, use originalMw to prevent reserialization.
+ // Reserialization has the potential to reorder keys and so change the DOM unnecessarily
+ originalMw = attrs.originalMw;
+ if ( originalMw && ve.compare( mwData, JSON.parse( originalMw ) ) ) {
+ el.setAttribute( 'data-mw', originalMw );
+ } else {
+ el.setAttribute( 'data-mw', JSON.stringify( mwData ) );
+ }
+
+ return els;
+};
+
+ve.dm.MWReferencesListNode.static.describeChange = function ( key, change ) {
+ if ( key === 'refGroup' ) {
+ if ( change.from ) {
+ if ( change.to ) {
+ return ve.msg( 'cite-ve-changedesc-reflist-group-both', change.from, change.to );
+ } else {
+ return ve.msg( 'cite-ve-changedesc-reflist-group-from', change.from );
+ }
+ }
+ return ve.msg( 'cite-ve-changedesc-reflist-group-to', change.to );
+ }
+
+ if ( key === 'isResponsive' ) {
+ if ( change.from ) {
+ return ve.msg( 'cite-ve-changedesc-reflist-responsive-unset' );
+ }
+ return ve.msg( 'cite-ve-changedesc-reflist-responsive-set' );
+ }
+
+ if ( key === 'originalMw' ) {
+ return null;
+ }
+
+ return null;
+};
+
+ve.dm.MWReferencesListNode.static.getHashObject = function ( dataElement ) {
+ return {
+ type: dataElement.type,
+ attributes: {
+ refGroup: dataElement.attributes.refGroup,
+ listGroup: dataElement.attributes.listGroup,
+ isResponsive: dataElement.attributes.isResponsive,
+ templateGenerated: dataElement.attributes.templateGenerated
+ }
+ };
+};
+
+/* Registration */
+
+ve.dm.modelRegistry.register( ve.dm.MWReferencesListNode );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWCitationAction.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWCitationAction.js
new file mode 100644
index 00000000..616a9067
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWCitationAction.js
@@ -0,0 +1,58 @@
+/*!
+ * VisualEditor UserInterface MWCitationAction class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * Link action.
+ *
+ * Opens either MWLinkAnnotationInspector or MWLinkNodeInspector depending on what is selected.
+ *
+ * @class
+ * @extends ve.ui.Action
+ * @constructor
+ * @param {ve.ui.Surface} surface Surface to act on
+ */
+ve.ui.MWCitationAction = function VeUiMWCitationAction() {
+ // Parent constructor
+ ve.ui.MWCitationAction.super.apply( this, arguments );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWCitationAction, ve.ui.Action );
+
+/* Static Properties */
+
+ve.ui.MWCitationAction.static.name = 'mwcite';
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWCitationAction.static.methods = [ 'open' ];
+
+/* Methods */
+
+/**
+ * When opening a citation, send the dialog a property of the surface
+ * dialog name.
+ *
+ * @method
+ * @param {string} windowName Dialog name to open
+ * @param {Object} windowData Data to send to the dialog
+ * @return {boolean} Action was executed
+ */
+ve.ui.MWCitationAction.prototype.open = function ( windowName, windowData ) {
+ windowData = $.extend( {
+ inDialog: this.surface.getInDialog()
+ }, windowData );
+
+ this.surface.execute( 'window', 'open', windowName, windowData );
+ return true;
+};
+
+/* Registration */
+
+ve.ui.actionFactory.register( ve.ui.MWCitationAction );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWCitationContextItem.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWCitationContextItem.js
new file mode 100644
index 00000000..da4e1d7e
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWCitationContextItem.js
@@ -0,0 +1,49 @@
+/*!
+ * VisualEditor MWCitationContextItem class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * Context item for a MWCitation.
+ *
+ * @class
+ * @extends ve.ui.MWReferenceContextItem
+ *
+ * @constructor
+ * @param {ve.ui.Context} context Context item is in
+ * @param {ve.dm.Model} model Model item is related to
+ * @param {Object} config Configuration options
+ */
+ve.ui.MWCitationContextItem = function VeUiMWCitationContextItem() {
+ // Parent constructor
+ ve.ui.MWCitationContextItem.super.apply( this, arguments );
+
+ // Initialization
+ this.$element.addClass( 've-ui-mwCitationContextItem' );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWCitationContextItem, ve.ui.MWReferenceContextItem );
+
+/* Static Properties */
+
+/**
+ * Only display item for single-template transclusions of these templates.
+ *
+ * @property {string|string[]|null}
+ * @static
+ * @inheritable
+ */
+ve.ui.MWCitationContextItem.static.template = null;
+
+/* Static Methods */
+
+/**
+ * @static
+ * @localdoc Sharing implementation with ve.ui.MWCitationDialogTool
+ */
+ve.ui.MWCitationContextItem.static.isCompatibleWith =
+ ve.ui.MWCitationDialogTool.static.isCompatibleWith;
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWCitationDialog.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWCitationDialog.js
new file mode 100644
index 00000000..31bb6020
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWCitationDialog.js
@@ -0,0 +1,241 @@
+/*
+ * VisualEditor user interface MWCitationDialog class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * Dialog for inserting and editing MediaWiki citations.
+ *
+ * @class
+ * @extends ve.ui.MWTemplateDialog
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.MWCitationDialog = function VeUiMWCitationDialog( config ) {
+ // Parent constructor
+ ve.ui.MWCitationDialog.super.call( this, config );
+
+ // Properties
+ this.referenceModel = null;
+ this.referenceNode = null;
+ this.inDialog = '';
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWCitationDialog, ve.ui.MWTemplateDialog );
+
+/* Static Properties */
+
+ve.ui.MWCitationDialog.static.name = 'citation';
+
+/* Methods */
+
+/**
+ * Get the reference node to be edited.
+ *
+ * @return {ve.dm.MWReferenceNode|null} Reference node to be edited, null if none exists
+ */
+ve.ui.MWCitationDialog.prototype.getReferenceNode = function () {
+ var selectedNode = this.getFragment().getSelectedNode();
+
+ if ( selectedNode instanceof ve.dm.MWReferenceNode ) {
+ return selectedNode;
+ }
+
+ return null;
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWCitationDialog.prototype.getSelectedNode = function () {
+ var branches, leaves, transclusionNode,
+ referenceNode = this.getReferenceNode();
+
+ if ( referenceNode ) {
+ branches = referenceNode.getInternalItem().getChildren();
+ leaves = branches &&
+ branches.length === 1 &&
+ branches[ 0 ].canContainContent() &&
+ branches[ 0 ].getChildren();
+ transclusionNode = leaves &&
+ leaves.length === 1 &&
+ leaves[ 0 ] instanceof ve.dm.MWTransclusionNode &&
+ leaves[ 0 ];
+ }
+
+ return transclusionNode || null;
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWCitationDialog.prototype.initialize = function ( data ) {
+ // Parent method
+ ve.ui.MWCitationDialog.super.prototype.initialize.call( this, data );
+
+ // HACK: Use the same styling as single-mode transclusion dialog - this should be generalized
+ this.$content.addClass( 've-ui-mwTransclusionDialog-single' );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWCitationDialog.prototype.getSetupProcess = function ( data ) {
+ return ve.ui.MWCitationDialog.super.prototype.getSetupProcess.call( this, data )
+ .next( function () {
+ data = data || {};
+ this.inDialog = data.inDialog;
+
+ // Initialization
+ if ( this.selectedNode ) {
+ this.referenceNode = this.getReferenceNode();
+ if ( this.referenceNode ) {
+ this.referenceModel = ve.dm.MWReferenceModel.static.newFromReferenceNode(
+ this.referenceNode
+ );
+ }
+ }
+ this.actions.forEach( { actions: 'insert' }, function ( action ) {
+ action.setLabel( ve.msg( 'visualeditor-dialog-action-insert' ) );
+ } );
+ }, this );
+};
+
+ve.ui.MWCitationDialog.prototype.onTransclusionReady = function () {
+ // Parent method
+ ve.ui.MWCitationDialog.super.prototype.onTransclusionReady.call( this );
+
+ if ( !this.hasUsefulParameter() ) {
+ this.actions.setAbilities( { apply: false, insert: false } );
+ }
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWCitationDialog.prototype.setPageByName = function ( param ) {
+ var hasUsefulParameter = this.hasUsefulParameter();
+
+ // Parent method
+ ve.ui.MWCitationDialog.super.prototype.setPageByName.call( this, param );
+
+ this.actions.setAbilities( { apply: hasUsefulParameter, insert: hasUsefulParameter } );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWCitationDialog.prototype.onAddParameterBeforeLoad = function ( page ) {
+ var dialog = this,
+ hasUsefulParameter = this.hasUsefulParameter();
+
+ page.preLoad = true;
+ page.valueInput.on( 'change', function () {
+ dialog.actions.setAbilities( { apply: hasUsefulParameter, insert: hasUsefulParameter } );
+ } );
+};
+
+/**
+ * Works out whether there are any set parameters that aren't just placeholders
+ *
+ * @return {boolean}
+ */
+ve.ui.MWCitationDialog.prototype.hasUsefulParameter = function () {
+ var foundUseful = false;
+ $.each( this.bookletLayout.pages, function () {
+ if (
+ this instanceof ve.ui.MWParameterPage &&
+ ( !this.preLoad || this.valueInput.getValue() !== '' )
+ ) {
+ foundUseful = true;
+ return false;
+ }
+ } );
+ return foundUseful;
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWCitationDialog.prototype.getActionProcess = function ( action ) {
+ var dialog = this;
+ if (
+ this.inDialog !== 'reference' &&
+ ( action === 'apply' || action === 'insert' )
+ ) {
+ return new OO.ui.Process( function () {
+ var deferred = $.Deferred();
+ dialog.checkRequiredParameters().done( function () {
+ var item,
+ surfaceModel = dialog.getFragment().getSurface(),
+ doc = surfaceModel.getDocument(),
+ internalList = doc.getInternalList(),
+ obj = dialog.transclusionModel.getPlainObject();
+
+ if ( !dialog.referenceModel ) {
+ // Collapse returns a new fragment, so update dialog.fragment
+ dialog.fragment = dialog.getFragment().collapseToEnd();
+ dialog.referenceModel = new ve.dm.MWReferenceModel( doc );
+ dialog.referenceModel.insertInternalItem( surfaceModel );
+ dialog.referenceModel.insertReferenceNode( dialog.getFragment() );
+ }
+
+ item = dialog.referenceModel.findInternalItem( surfaceModel );
+ if ( item ) {
+ if ( dialog.selectedNode ) {
+ dialog.transclusionModel.updateTransclusionNode(
+ surfaceModel, dialog.selectedNode
+ );
+ } else if ( obj !== null ) {
+ dialog.transclusionModel.insertTransclusionNode(
+ // HACK: This is trying to place the cursor inside the first content branch
+ // node but this theoretically not a safe assumption - in practice, the
+ // citation dialog will only reach this code if we are inserting (not
+ // updating) a transclusion, so the referenceModel will have already
+ // initialized the internal node with a paragraph - getting the range of the
+ // item covers the entire paragraph so we have to get the range of it's
+ // first (and empty) child
+ dialog.getFragment().clone(
+ new ve.dm.LinearSelection( doc, item.getChildren()[ 0 ].getRange() )
+ ),
+ 'inline'
+ );
+ }
+ }
+
+ // HACK: Scorch the earth - this is only needed because without it, the references list
+ // won't re-render properly, and can be removed once someone fixes that
+ dialog.referenceModel.setDocument(
+ doc.cloneFromRange(
+ internalList.getItemNode( dialog.referenceModel.getListIndex() ).getRange()
+ )
+ );
+ dialog.referenceModel.updateInternalItem( surfaceModel );
+
+ dialog.close( { action: action } );
+ } ).always( deferred.resolve );
+
+ return deferred;
+ } );
+ }
+
+ // Parent method
+ return ve.ui.MWCitationDialog.super.prototype.getActionProcess.call( this, action );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWCitationDialog.prototype.getTeardownProcess = function ( data ) {
+ return ve.ui.MWCitationDialog.super.prototype.getTeardownProcess.call( this, data )
+ .first( function () {
+ // Cleanup
+ this.referenceModel = null;
+ this.referenceNode = null;
+ }, this );
+};
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWCitationDialogTool.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWCitationDialogTool.js
new file mode 100644
index 00000000..b7011fca
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWCitationDialogTool.js
@@ -0,0 +1,64 @@
+/*!
+ * VisualEditor MediaWiki UserInterface citation dialog tool class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * MediaWiki UserInterface citation dialog tool.
+ *
+ * @class
+ * @abstract
+ * @extends ve.ui.MWReferenceDialogTool
+ * @constructor
+ * @param {OO.ui.Toolbar} toolbar
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.MWCitationDialogTool = function VeUiMWCitationDialogTool( toolbar, config ) {
+ // Parent method
+ ve.ui.MWCitationDialogTool.super.call( this, toolbar, config );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWCitationDialogTool, ve.ui.MWReferenceDialogTool );
+
+/* Static Properties */
+
+ve.ui.MWCitationDialogTool.static.group = 'cite';
+
+/**
+ * Only display tool for single-template transclusions of these templates.
+ *
+ * @property {string|string[]|null}
+ * @static
+ * @inheritable
+ */
+ve.ui.MWCitationDialogTool.static.template = null;
+
+/* Static Methods */
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWCitationDialogTool.static.isCompatibleWith = function ( model ) {
+ var internalItem, branches, leaves,
+ compatible = ve.ui.MWCitationDialogTool.super.static.isCompatibleWith.call( this, model );
+
+ if ( compatible && this.template ) {
+ // Check if content of the reference node contains only a template with the same name as
+ // this.template
+ internalItem = model.getInternalItem();
+ branches = internalItem.getChildren();
+ if ( branches.length === 1 && branches[ 0 ].canContainContent() ) {
+ leaves = branches[ 0 ].getChildren();
+ if ( leaves.length === 1 && leaves[ 0 ] instanceof ve.dm.MWTransclusionNode ) {
+ return leaves[ 0 ].isSingleTemplate( this.template );
+ }
+ }
+ return false;
+ }
+
+ return compatible;
+};
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReference.init.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReference.init.js
new file mode 100644
index 00000000..c8a6be19
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReference.init.js
@@ -0,0 +1,165 @@
+/*!
+ * VisualEditor MediaWiki Cite initialisation code.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+( function () {
+ var i, j, jLen, toolGroup, toolGroups, linkIndex, target, label, group;
+
+ // HACK: Find the position of the current citation toolbar definition
+ // and manipulate it.
+
+ targetLoop:
+ for ( i in ve.init.mw ) {
+ target = ve.init.mw[ i ];
+ if ( !target || !( target.prototype instanceof ve.init.Target ) ) {
+ continue;
+ }
+ toolGroups = target.static.toolbarGroups;
+ linkIndex = toolGroups.length;
+
+ if ( mw.config.get( 'wgCiteVisualEditorOtherGroup' ) ) {
+ for ( j = 0; j < linkIndex; j++ ) {
+ toolGroup = toolGroups[ j ];
+ if ( toolGroup.include === '*' && ( !toolGroup.demote || toolGroup.demote.indexOf( 'reference' ) === -1 ) ) {
+ toolGroup.demote = toolGroup.demote || [];
+ toolGroup.demote.push( { group: 'cite' }, 'reference', 'reference/existing' );
+ }
+ }
+ continue;
+ }
+
+ for ( j = 0, jLen = toolGroups.length; j < jLen; j++ ) {
+ if ( ve.getProp( toolGroups[ j ], 'include', 0, 'group' ) === 'cite' ) {
+ // Skip if the cite group exists already
+ linkIndex = -1;
+ continue targetLoop;
+ }
+ }
+ // Looking through the object to find what we actually need
+ // to replace. This way, if toolbarGroups are changed in VE code
+ // we won't have to manually change the index here.
+ for ( j = 0, jLen = toolGroups.length; j < jLen; j++ ) {
+ if ( ve.getProp( toolGroups[ j ], 'include', 0 ) === 'link' ) {
+ linkIndex = j;
+ break;
+ }
+ }
+
+ label = OO.ui.deferMsg( 'cite-ve-toolbar-group-label' );
+ group = {
+ classes: [ 've-test-toolbar-cite' ],
+ type: 'list',
+ indicator: 'down',
+ include: [ { group: 'cite' }, 'reference', 'reference/existing' ],
+ demote: [ 'reference', 'reference/existing' ]
+ };
+
+ // Treat mobile targets differently
+ if ( ve.init.mw.MobileArticleTarget && target.prototype instanceof ve.init.mw.MobileArticleTarget ) {
+ group.header = label;
+ group.title = label;
+ group.icon = 'reference';
+ } else {
+ group.label = label;
+ }
+
+ // Insert a new group for references after the link group (or at the end).
+ toolGroups.splice( linkIndex + 1, 0, group );
+ }
+
+ /**
+ * Add reference insertion tools from on-wiki data.
+ *
+ * By adding a definition in JSON to MediaWiki:Visualeditor-cite-tool-definition, the cite menu can
+ * be populated with tools that create refrences containing a specific templates. The content of the
+ * definition should be an array containing a series of objects, one for each tool. Each object must
+ * contain a `name`, `icon` and `template` property. An optional `title` property can also be used
+ * to define the tool title in plain text. The `name` property is a unique identifier for the tool,
+ * and also provides a fallback title for the tool by being transformed into a message key. The name
+ * is prefixed with `visualeditor-cite-tool-name-`, and messages can be defined on Wiki. Some common
+ * messages are pre-defined for tool names such as `web`, `book`, `news` and `journal`.
+ *
+ * Example:
+ * [ { "name": "web", "icon": "cite-web", "template": "Cite web" }, ... ]
+ *
+ */
+ ( function () {
+ var i, len, item, name, data, tool, tools, dialog, contextItem,
+ limit = 5;
+
+ try {
+ // Must use mw.message to avoid JSON being parsed as Wikitext
+ tools = JSON.parse( mw.message( 'cite-tool-definition.json' ).plain() );
+ } catch ( e ) {}
+ if ( !tools ) {
+ try {
+ // Must use mw.message to avoid JSON being parsed as Wikitext
+ tools = JSON.parse( mw.message( 'visualeditor-cite-tool-definition.json' ).plain() );
+ } catch ( e ) {}
+ }
+
+ if ( Array.isArray( tools ) ) {
+ for ( i = 0, len = Math.min( limit, tools.length ); i < len; i++ ) {
+ item = tools[ i ];
+ data = { template: item.template };
+
+ // Generate citation tool
+ name = 'cite-' + item.name;
+ if ( !ve.ui.toolFactory.lookup( name ) ) {
+ tool = function GeneratedMWCitationDialogTool() {
+ ve.ui.MWCitationDialogTool.apply( this, arguments );
+ };
+ OO.inheritClass( tool, ve.ui.MWCitationDialogTool );
+ tool.static.group = 'cite';
+ tool.static.name = name;
+ tool.static.icon = item.icon;
+ if ( mw.config.get( 'wgCiteVisualEditorOtherGroup' ) ) {
+ tool.static.title = mw.msg( 'cite-ve-othergroup-item', item.title );
+ } else {
+ tool.static.title = item.title;
+ }
+ tool.static.commandName = name;
+ tool.static.template = item.template;
+ tool.static.autoAddToCatchall = false;
+ tool.static.autoAddToGroup = true;
+ tool.static.associatedWindows = [ name ];
+ ve.ui.toolFactory.register( tool );
+ ve.ui.commandRegistry.register(
+ new ve.ui.Command(
+ name, 'mwcite', 'open', { args: [ name, data ], supportedSelections: [ 'linear' ] }
+ )
+ );
+ }
+
+ // Generate citation context item
+ if ( !ve.ui.contextItemFactory.lookup( name ) ) {
+ contextItem = function GeneratedMWCitationContextItem() {
+ // Parent constructor
+ ve.ui.MWCitationContextItem.apply( this, arguments );
+ };
+ OO.inheritClass( contextItem, ve.ui.MWCitationContextItem );
+ contextItem.static.name = name;
+ contextItem.static.icon = item.icon;
+ contextItem.static.label = item.title;
+ contextItem.static.commandName = name;
+ contextItem.static.template = item.template;
+ ve.ui.contextItemFactory.register( contextItem );
+ }
+
+ // Generate dialog
+ if ( !ve.ui.windowFactory.lookup( name ) ) {
+ dialog = function GeneratedMWCitationDialog() {
+ ve.ui.MWCitationDialog.apply( this, arguments );
+ };
+ OO.inheritClass( dialog, ve.ui.MWCitationDialog );
+ dialog.static.name = name;
+ dialog.static.title = item.title;
+ ve.ui.windowFactory.register( dialog );
+ }
+ }
+ }
+ }() );
+
+}() );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceContextItem.css b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceContextItem.css
new file mode 100644
index 00000000..ac2463ce
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceContextItem.css
@@ -0,0 +1,19 @@
+/*!
+ * VisualEditor MediaWiki UserInterface reference context item styles.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+.ve-ui-mwReferenceContextItem-muted {
+ color: #72777d;
+ font-style: italic;
+ line-height: 1.5;
+}
+
+.ve-ui-mwReferenceContextItem .ve-ui-previewElement {
+ /* Reference links can often be too long, so break them up */
+ word-break: break-word;
+ word-wrap: break-word;
+ overflow-wrap: break-word;
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceContextItem.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceContextItem.js
new file mode 100644
index 00000000..99aa8921
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceContextItem.js
@@ -0,0 +1,113 @@
+/*!
+ * VisualEditor MWReferenceContextItem class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * Context item for a MWReference.
+ *
+ * @class
+ * @extends ve.ui.LinearContextItem
+ *
+ * @constructor
+ * @param {ve.ui.Context} context Context item is in
+ * @param {ve.dm.Model} model Model item is related to
+ * @param {Object} config Configuration options
+ */
+ve.ui.MWReferenceContextItem = function VeUiMWReferenceContextItem() {
+ // Parent constructor
+ ve.ui.MWReferenceContextItem.super.apply( this, arguments );
+ this.view = null;
+ // Initialization
+ this.$element.addClass( 've-ui-mwReferenceContextItem' );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWReferenceContextItem, ve.ui.LinearContextItem );
+
+/* Static Properties */
+
+ve.ui.MWReferenceContextItem.static.name = 'reference';
+
+ve.ui.MWReferenceContextItem.static.icon = 'reference';
+
+ve.ui.MWReferenceContextItem.static.label = OO.ui.deferMsg( 'cite-ve-dialogbutton-reference-title' );
+
+ve.ui.MWReferenceContextItem.static.modelClasses = [ ve.dm.MWReferenceNode ];
+
+ve.ui.MWReferenceContextItem.static.commandName = 'reference';
+
+/* Methods */
+
+/**
+ * Get a DOM rendering of the reference.
+ *
+ * @private
+ * @return {jQuery} DOM rendering of reference
+ */
+ve.ui.MWReferenceContextItem.prototype.getRendering = function () {
+ var refNode = this.getReferenceNode();
+ if ( refNode ) {
+ this.view = new ve.ui.MWPreviewElement( refNode );
+
+ // The $element property may be rendered into asynchronously, update the context's size when the
+ // rendering is complete if that's the case
+ this.view.once( 'render', this.context.updateDimensions.bind( this.context ) );
+
+ return this.view.$element;
+ } else {
+ return $( '<div>' )
+ .addClass( 've-ui-mwReferenceContextItem-muted' )
+ .text( ve.msg( 'cite-ve-referenceslist-missingref' ) );
+ }
+};
+
+/**
+ * Get the reference node in the containing document (not the internal list document)
+ *
+ * @return {ve.dm.InternalItemNode|null} Reference item node
+ */
+ve.ui.MWReferenceContextItem.prototype.getReferenceNode = function () {
+ var refModel;
+ if ( !this.model.isEditable() ) {
+ return null;
+ }
+ if ( !this.referenceNode ) {
+ refModel = ve.dm.MWReferenceModel.static.newFromReferenceNode( this.model );
+ this.referenceNode = this.getFragment().getDocument().getInternalList().getItemNode( refModel.getListIndex() );
+ }
+ return this.referenceNode;
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWReferenceContextItem.prototype.getDescription = function () {
+ return this.model.isEditable() ? this.getRendering().text() : ve.msg( 'cite-ve-referenceslist-missingref' );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWReferenceContextItem.prototype.renderBody = function () {
+ this.$body.empty().append( this.getRendering() );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWReferenceContextItem.prototype.teardown = function () {
+ if ( this.view ) {
+ this.view.destroy();
+ }
+
+ // Call parent
+ ve.ui.MWReferenceContextItem.super.prototype.teardown.call( this );
+};
+
+/* Registration */
+
+ve.ui.contextItemFactory.register( ve.ui.MWReferenceContextItem );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceDialog.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceDialog.js
new file mode 100644
index 00000000..f041784d
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceDialog.js
@@ -0,0 +1,434 @@
+/*!
+ * VisualEditor UserInterface MediaWiki MWReferenceDialog class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * Dialog for editing MediaWiki references.
+ *
+ * @class
+ * @extends ve.ui.NodeDialog
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.MWReferenceDialog = function VeUiMWReferenceDialog( config ) {
+ // Parent constructor
+ ve.ui.MWReferenceDialog.super.call( this, config );
+
+ // Properties
+ this.referenceModel = null;
+ this.useExisting = false;
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWReferenceDialog, ve.ui.NodeDialog );
+
+/* Static Properties */
+
+ve.ui.MWReferenceDialog.static.name = 'reference';
+
+ve.ui.MWReferenceDialog.static.title =
+ OO.ui.deferMsg( 'cite-ve-dialog-reference-title' );
+
+ve.ui.MWReferenceDialog.static.actions = [
+ {
+ action: 'apply',
+ label: OO.ui.deferMsg( 'visualeditor-dialog-action-apply' ),
+ flags: [ 'progressive', 'primary' ],
+ modes: 'edit'
+ },
+ {
+ action: 'insert',
+ label: OO.ui.deferMsg( 'visualeditor-dialog-action-insert' ),
+ flags: [ 'progressive', 'primary' ],
+ modes: 'insert'
+ },
+ {
+ label: OO.ui.deferMsg( 'visualeditor-dialog-action-cancel' ),
+ flags: [ 'safe', 'back' ],
+ modes: [ 'insert', 'edit', 'insert-select' ]
+ },
+ {
+ action: 'select',
+ label: OO.ui.deferMsg( 'cite-ve-dialog-reference-useexisting-label' ),
+ modes: [ 'insert', 'edit' ]
+ },
+ {
+ action: 'back',
+ label: OO.ui.deferMsg( 'visualeditor-dialog-action-goback' ),
+ flags: 'safe',
+ modes: 'select'
+ }
+];
+
+ve.ui.MWReferenceDialog.static.modelClasses = [ ve.dm.MWReferenceNode ];
+
+ve.ui.MWReferenceDialog.static.includeCommands = null;
+
+ve.ui.MWReferenceDialog.static.excludeCommands = [
+ // No formatting
+ 'paragraph',
+ 'heading1',
+ 'heading2',
+ 'heading3',
+ 'heading4',
+ 'heading5',
+ 'heading6',
+ 'preformatted',
+ 'blockquote',
+ // No tables
+ 'insertTable',
+ 'deleteTable',
+ 'mergeCells',
+ 'tableCaption',
+ 'tableCellHeader',
+ 'tableCellData',
+ // No structure
+ 'bullet',
+ 'bulletWrapOnce',
+ 'number',
+ 'numberWrapOnce',
+ 'indent',
+ 'outdent',
+ // References
+ 'reference',
+ 'reference/existing',
+ 'citefromid',
+ 'referencesList'
+];
+
+/**
+ * Get the import rules for the surface widget in the dialog.
+ *
+ * @see ve.dm.ElementLinearData#sanitize
+ * @return {Object} Import rules
+ */
+ve.ui.MWReferenceDialog.static.getImportRules = function () {
+ return ve.extendObject(
+ ve.copy( ve.init.target.constructor.static.importRules ),
+ {
+ all: {
+ blacklist: OO.simpleArrayUnion(
+ ve.getProp( ve.init.target.constructor.static.importRules, 'all', 'blacklist' ) || [],
+ [
+ // Nested references are impossible
+ 'mwReference', 'mwReferencesList',
+ // Lists and tables are actually possible in wikitext with a leading
+ // line break but we prevent creating these with the UI
+ 'list', 'listItem', 'definitionList', 'definitionListItem',
+ 'table', 'tableCaption', 'tableSection', 'tableRow', 'tableCell'
+ ]
+ ),
+ // Headings are not possible in wikitext without HTML
+ conversions: {
+ mwHeading: 'paragraph'
+ }
+ }
+ }
+ );
+};
+
+/* Methods */
+
+/**
+ * Determine whether the reference document we're editing has any content.
+ *
+ * @return {boolean} Document has content
+ */
+ve.ui.MWReferenceDialog.prototype.documentHasContent = function () {
+ // TODO: Check for other types of empty, e.g. only whitespace?
+ return this.referenceModel.getDocument().data.hasContent();
+};
+
+/*
+ * Determine whether any changes have been made (and haven't been undone).
+ *
+ * @return {boolean} Dialog can be applied
+ */
+ve.ui.MWReferenceDialog.prototype.canApply = function () {
+ return this.documentHasContent() &&
+ ( this.referenceTarget.hasBeenModified() ||
+ this.referenceGroupInput.getValue() !== this.originalGroup );
+};
+
+/**
+ * Handle reference target widget change events
+ */
+ve.ui.MWReferenceDialog.prototype.onTargetChange = function () {
+ var hasContent = this.documentHasContent();
+
+ this.actions.setAbilities( {
+ apply: this.canApply(),
+ insert: hasContent,
+ select: !hasContent && !this.search.isIndexEmpty()
+ } );
+};
+
+/**
+ * Handle reference group input change events.
+ */
+ve.ui.MWReferenceDialog.prototype.onReferenceGroupInputChange = function () {
+ this.actions.setAbilities( {
+ apply: this.canApply()
+ } );
+};
+
+/**
+ * Handle search results choose events.
+ *
+ * @param {ve.ui.MWReferenceResultWidget} item Chosen item
+ */
+ve.ui.MWReferenceDialog.prototype.onSearchResultsChoose = function ( item ) {
+ var ref = item.getData();
+
+ if ( this.selectedNode instanceof ve.dm.MWReferenceNode ) {
+ this.getFragment().removeContent();
+ this.selectedNode = null;
+ }
+ this.useReference( ref );
+ this.executeAction( 'insert' );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWReferenceDialog.prototype.getReadyProcess = function ( data ) {
+ return ve.ui.MWReferenceDialog.super.prototype.getReadyProcess.call( this, data )
+ .next( function () {
+ if ( this.useExisting ) {
+ this.search.getQuery().focus().select();
+ } else {
+ this.referenceTarget.focus();
+ }
+ }, this );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWReferenceDialog.prototype.getBodyHeight = function () {
+ // Clamp value to between 300 and 400px height, preferring the actual height if available
+ return Math.min(
+ 400,
+ Math.max(
+ 300,
+ Math.ceil( this.panels.getCurrentItem().$element[ 0 ].scrollHeight )
+ )
+ );
+};
+
+// eslint-disable-next-line valid-jsdoc
+/**
+ * Work on a specific reference.
+ *
+ * @param {ve.dm.MWReferenceModel} [ref] Reference model, omit to work on a new reference
+ * @chainable
+ */
+ve.ui.MWReferenceDialog.prototype.useReference = function ( ref ) {
+ var group;
+
+ // Properties
+ if ( ref instanceof ve.dm.MWReferenceModel ) {
+ // Use an existing reference
+ this.referenceModel = ref;
+ } else {
+ // Create a new reference
+ this.referenceModel = new ve.dm.MWReferenceModel( this.getFragment().getDocument() );
+ }
+
+ this.referenceTarget.setDocument( this.referenceModel.getDocument() );
+
+ // Initialization
+ this.originalGroup = this.referenceModel.getGroup();
+ // Set the group input while it's disabled, so this doesn't pop up the group-picker menu
+ this.referenceGroupInput.setDisabled( true );
+ this.referenceGroupInput.setValue( this.originalGroup );
+ this.referenceGroupInput.setDisabled( false );
+ this.referenceTarget.initialize();
+
+ group = this.getFragment().getDocument().getInternalList()
+ .getNodeGroup( this.referenceModel.getListGroup() );
+ if ( ve.getProp( group, 'keyedNodes', this.referenceModel.getListKey(), 'length' ) > 1 ) {
+ this.$reuseWarning.removeClass( 'oo-ui-element-hidden' );
+ this.$reuseWarningText.text( mw.msg(
+ 'cite-ve-dialog-reference-editing-reused',
+ group.keyedNodes[ this.referenceModel.getListKey() ].length
+ ) );
+ } else {
+ this.$reuseWarning.addClass( 'oo-ui-element-hidden' );
+ }
+
+ return this;
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWReferenceDialog.prototype.initialize = function () {
+ var citeCommands = Object.keys( ve.init.target.getSurface().commandRegistry.registry ).filter( function ( command ) {
+ return command.indexOf( 'cite-' ) !== -1;
+ } );
+
+ // Parent method
+ ve.ui.MWReferenceDialog.super.prototype.initialize.call( this );
+
+ // Properties
+ this.panels = new OO.ui.StackLayout();
+ this.editPanel = new OO.ui.PanelLayout( {
+ scrollable: true, padded: true
+ } );
+ this.searchPanel = new OO.ui.PanelLayout();
+
+ this.reuseWarningIcon = new OO.ui.IconWidget( { icon: 'alert' } );
+ this.$reuseWarningText = $( '<span>' );
+ this.$reuseWarning = $( '<span>' ).append( this.reuseWarningIcon.$element, this.$reuseWarningText );
+
+ this.referenceTarget = ve.init.target.createTargetWidget(
+ {
+ tools: ve.copy( ve.init.target.constructor.static.toolbarGroups ),
+ includeCommands: this.constructor.static.includeCommands,
+ excludeCommands: this.constructor.static.excludeCommands.concat( citeCommands ),
+ importRules: this.constructor.static.getImportRules(),
+ inDialog: this.constructor.static.name,
+ placeholder: ve.msg( 'cite-ve-dialog-reference-placeholder' )
+ }
+ );
+
+ this.contentFieldset = new OO.ui.FieldsetLayout();
+ this.optionsFieldset = new OO.ui.FieldsetLayout( {
+ label: ve.msg( 'cite-ve-dialog-reference-options-section' ),
+ icon: 'advanced'
+ } );
+ this.contentFieldset.$element.append( this.referenceTarget.$element );
+
+ this.referenceGroupInput = new ve.ui.MWReferenceGroupInputWidget( {
+ $overlay: this.$overlay,
+ emptyGroupName: ve.msg( 'cite-ve-dialog-reference-options-group-placeholder' )
+ } );
+ this.referenceGroupInput.connect( this, { change: 'onReferenceGroupInputChange' } );
+ this.referenceGroupField = new OO.ui.FieldLayout( this.referenceGroupInput, {
+ align: 'top',
+ label: ve.msg( 'cite-ve-dialog-reference-options-group-label' )
+ } );
+ this.search = new ve.ui.MWReferenceSearchWidget();
+
+ // Events
+ this.search.getResults().connect( this, { choose: 'onSearchResultsChoose' } );
+ this.referenceTarget.connect( this, { change: 'onTargetChange' } );
+
+ // Initialization
+ this.panels.addItems( [ this.editPanel, this.searchPanel ] );
+ this.editPanel.$element.append( this.$reuseWarning, this.contentFieldset.$element, this.optionsFieldset.$element );
+ this.optionsFieldset.addItems( [ this.referenceGroupField ] );
+ this.searchPanel.$element.append( this.search.$element );
+ this.$body.append( this.panels.$element );
+};
+
+/**
+ * Switches dialog to use existing reference mode.
+ *
+ * @param {string} [action='select'] Symbolic name of action, either 'select' or 'insert-select'
+ */
+ve.ui.MWReferenceDialog.prototype.useExistingReference = function ( action ) {
+ action = action || 'select';
+ if ( action === 'insert-select' || action === 'select' ) {
+ this.actions.setMode( action );
+ }
+ this.search.buildIndex();
+ this.panels.setItem( this.searchPanel );
+ this.search.getQuery().focus().select();
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWReferenceDialog.prototype.getActionProcess = function ( action ) {
+ if ( action === 'insert' || action === 'apply' ) {
+ return new OO.ui.Process( function () {
+ var surfaceModel = this.getFragment().getSurface();
+
+ this.referenceModel.setGroup( this.referenceGroupInput.getValue() );
+
+ // Insert reference (will auto-create an internal item if needed)
+ if ( !( this.selectedNode instanceof ve.dm.MWReferenceNode ) ) {
+ if ( !this.referenceModel.findInternalItem( surfaceModel ) ) {
+ this.referenceModel.insertInternalItem( surfaceModel );
+ }
+ // Collapse returns a new fragment, so update this.fragment
+ this.fragment = this.getFragment().collapseToEnd();
+ this.referenceModel.insertReferenceNode( this.getFragment() );
+ }
+
+ // Update internal item
+ this.referenceModel.updateInternalItem( surfaceModel );
+
+ this.close( { action: action } );
+ }, this );
+ } else if ( action === 'back' ) {
+ this.actions.setMode( this.selectedNode ? 'edit' : 'insert' );
+ this.panels.setItem( this.editPanel );
+ this.editPanel.$element.find( '.ve-ce-documentNode' )[ 0 ].focus();
+ } else if ( action === 'select' || action === 'insert-select' ) {
+ this.useExistingReference( action );
+ }
+ return ve.ui.MWReferenceDialog.super.prototype.getActionProcess.call( this, action );
+};
+
+/**
+ * @inheritdoc
+ * @param {Object} [data] Setup data
+ * @param {boolean} [data.useExistingReference] Open the dialog in "use existing reference" mode
+ */
+ve.ui.MWReferenceDialog.prototype.getSetupProcess = function ( data ) {
+ data = data || {};
+ return ve.ui.MWReferenceDialog.super.prototype.getSetupProcess.call( this, data )
+ .next( function () {
+ this.panels.setItem( this.editPanel );
+ if ( this.selectedNode instanceof ve.dm.MWReferenceNode ) {
+ this.useReference(
+ ve.dm.MWReferenceModel.static.newFromReferenceNode( this.selectedNode )
+ );
+ } else {
+ this.useReference( null );
+ this.actions.setAbilities( { apply: false, insert: false } );
+ }
+
+ this.actions.setMode( this.selectedNode ? 'edit' : 'insert' );
+ this.search.setInternalList( this.getFragment().getDocument().getInternalList() );
+
+ if ( data.useExisting ) {
+ this.useExistingReference( 'insert-select' );
+ }
+ this.useExisting = !!data.useExisting;
+ // If we're using an existing reference, start off disabled
+ // If not, set disabled based on whether or not there are any existing ones.
+ this.actions.setAbilities( {
+ select: !( this.selectedNode instanceof ve.dm.MWReferenceNode ) &&
+ !this.search.isIndexEmpty(),
+ apply: false
+ } );
+
+ this.referenceGroupInput.populateMenu( this.getFragment().getDocument().getInternalList() );
+ }, this );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWReferenceDialog.prototype.getTeardownProcess = function ( data ) {
+ return ve.ui.MWReferenceDialog.super.prototype.getTeardownProcess.call( this, data )
+ .first( function () {
+ this.referenceTarget.getSurface().getModel().disconnect( this );
+ this.search.getQuery().setValue( '' );
+ this.referenceTarget.clear();
+ this.referenceModel = null;
+ }, this );
+};
+
+/* Registration */
+
+ve.ui.windowFactory.register( ve.ui.MWReferenceDialog );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceDialogTool.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceDialogTool.js
new file mode 100644
index 00000000..1db75909
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceDialogTool.js
@@ -0,0 +1,114 @@
+/*!
+ * VisualEditor MediaWiki Reference dialog tool classes.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * MediaWiki UserInterface reference tool.
+ *
+ * @class
+ * @extends ve.ui.FragmentWindowTool
+ * @constructor
+ * @param {OO.ui.ToolGroup} toolGroup
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.MWReferenceDialogTool = function VeUiMWReferenceDialogTool() {
+ ve.ui.MWReferenceDialogTool.super.apply( this, arguments );
+};
+OO.inheritClass( ve.ui.MWReferenceDialogTool, ve.ui.FragmentWindowTool );
+ve.ui.MWReferenceDialogTool.static.name = 'reference';
+ve.ui.MWReferenceDialogTool.static.group = 'object';
+ve.ui.MWReferenceDialogTool.static.icon = 'reference';
+if ( mw.config.get( 'wgCiteVisualEditorOtherGroup' ) ) {
+ ve.ui.MWReferenceDialogTool.static.title = OO.ui.deferMsg(
+ 'cite-ve-othergroup-item',
+ OO.ui.msg( 'cite-ve-dialogbutton-reference-tooltip' )
+ );
+} else {
+ ve.ui.MWReferenceDialogTool.static.title = OO.ui.deferMsg(
+ 'cite-ve-dialogbutton-reference-tooltip'
+ );
+}
+ve.ui.MWReferenceDialogTool.static.modelClasses = [ ve.dm.MWReferenceNode ];
+ve.ui.MWReferenceDialogTool.static.commandName = 'reference';
+ve.ui.MWReferenceDialogTool.static.autoAddToCatchall = false;
+ve.ui.toolFactory.register( ve.ui.MWReferenceDialogTool );
+
+/**
+ * MediaWiki UserInterface use existing reference tool.
+ *
+ * @class
+ * @extends ve.ui.WindowTool
+ * @constructor
+ * @param {OO.ui.ToolGroup} toolGroup
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.MWUseExistingReferenceDialogTool = function VeUiMWUseExistingReferenceDialogTool() {
+ ve.ui.MWUseExistingReferenceDialogTool.super.apply( this, arguments );
+};
+OO.inheritClass( ve.ui.MWUseExistingReferenceDialogTool, ve.ui.WindowTool );
+ve.ui.MWUseExistingReferenceDialogTool.static.name = 'reference/existing';
+ve.ui.MWUseExistingReferenceDialogTool.static.group = 'object';
+ve.ui.MWUseExistingReferenceDialogTool.static.icon = 'reference-existing';
+if ( mw.config.get( 'wgCiteVisualEditorOtherGroup' ) ) {
+ ve.ui.MWUseExistingReferenceDialogTool.static.title = OO.ui.deferMsg(
+ 'cite-ve-othergroup-item',
+ OO.ui.msg( 'cite-ve-dialog-reference-useexisting-tool' )
+ );
+} else {
+ ve.ui.MWUseExistingReferenceDialogTool.static.title = OO.ui.deferMsg(
+ 'cite-ve-dialog-reference-useexisting-tool'
+ );
+}
+ve.ui.MWUseExistingReferenceDialogTool.static.commandName = 'reference/existing';
+ve.ui.MWUseExistingReferenceDialogTool.static.autoAddToGroup = false;
+ve.ui.MWUseExistingReferenceDialogTool.static.autoAddToCatchall = false;
+ve.ui.toolFactory.register( ve.ui.MWUseExistingReferenceDialogTool );
+
+ve.ui.commandRegistry.register(
+ new ve.ui.Command(
+ 'reference', 'window', 'open',
+ { args: [ 'reference' ], supportedSelections: [ 'linear' ] }
+ )
+);
+
+/* If Citoid is installed these will be overridden */
+ve.ui.sequenceRegistry.register(
+ new ve.ui.Sequence( 'wikitextRef', 'reference', '<ref', 4 )
+);
+
+ve.ui.triggerRegistry.register(
+ 'reference', { mac: new ve.ui.Trigger( 'cmd+shift+k' ), pc: new ve.ui.Trigger( 'ctrl+shift+k' ) }
+);
+
+ve.ui.commandHelpRegistry.register( 'insert', 'ref', {
+ trigger: 'reference',
+ sequences: [ 'wikitextRef' ],
+ label: OO.ui.deferMsg( 'cite-ve-dialog-reference-title' )
+} );
+
+ve.ui.mwWikitextTransferRegistry.register( 'reference', /<ref[^>]*>/ );
+
+/**
+ * MediaWiki UserInterface references list tool.
+ *
+ * @class
+ * @extends ve.ui.FragmentWindowTool
+ * @constructor
+ * @param {OO.ui.ToolGroup} toolGroup
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.MWReferencesListDialogTool = function VeUiMWReferencesListDialogTool() {
+ ve.ui.MWReferencesListDialogTool.super.apply( this, arguments );
+};
+OO.inheritClass( ve.ui.MWReferencesListDialogTool, ve.ui.FragmentWindowTool );
+ve.ui.MWReferencesListDialogTool.static.name = 'referencesList';
+ve.ui.MWReferencesListDialogTool.static.group = 'object';
+ve.ui.MWReferencesListDialogTool.static.icon = 'references';
+ve.ui.MWReferencesListDialogTool.static.title =
+ OO.ui.deferMsg( 'cite-ve-dialogbutton-referenceslist-tooltip' );
+ve.ui.MWReferencesListDialogTool.static.modelClasses = [ ve.dm.MWReferencesListNode ];
+ve.ui.MWReferencesListDialogTool.static.commandName = 'referencesList';
+ve.ui.toolFactory.register( ve.ui.MWReferencesListDialogTool );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceGroupInputWidget.css b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceGroupInputWidget.css
new file mode 100644
index 00000000..227f7f01
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceGroupInputWidget.css
@@ -0,0 +1,10 @@
+/*!
+ * VisualEditor MediaWiki UserInterface MWReferenceGroupInputWidget styles.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+.ve-ui-mwReferenceGroupInputWidget .oo-ui-flaggableElement-emptyGroupPlaceholder {
+ color: #72777d;
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceGroupInputWidget.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceGroupInputWidget.js
new file mode 100644
index 00000000..ebe72aa1
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceGroupInputWidget.js
@@ -0,0 +1,60 @@
+/*!
+ * VisualEditor UserInterface MWReferenceGroupInput class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * Creates an ve.ui.MWReferenceGroupInput object.
+ *
+ * @class
+ * @extends OO.ui.ComboBoxInputWidget
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ * @cfg {string} emptyGroupName Label of the placeholder item
+ */
+ve.ui.MWReferenceGroupInputWidget = function VeUiMWReferenceGroupInputWidget( config ) {
+ config = config || {};
+
+ this.emptyGroupName = config.emptyGroupName;
+
+ // Parent constructor
+ ve.ui.MWReferenceGroupInputWidget.super.call( this, ve.extendObject( { placeholder: config.emptyGroupName }, config ) );
+
+ this.$element.addClass( 've-ui-mwReferenceGroupInputWidget' );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWReferenceGroupInputWidget, OO.ui.ComboBoxInputWidget );
+
+/* Methods */
+
+/**
+ * Populate the reference group menu
+ *
+ * @param {ve.dm.InternalList} internalList Internal list with which to populate the menu
+ */
+ve.ui.MWReferenceGroupInputWidget.prototype.populateMenu = function ( internalList ) {
+ var placeholderGroupItem = new OO.ui.MenuOptionWidget( {
+ data: '',
+ label: this.emptyGroupName,
+ flags: 'emptyGroupPlaceholder'
+ } );
+ this.menu.clearItems();
+ this.menu.addItems( [ placeholderGroupItem ].concat( $.map(
+ Object.keys( internalList.getNodeGroups() ),
+ function ( groupInternalName ) {
+ var groupName;
+ if ( groupInternalName.indexOf( 'mwReference/' ) === 0 ) {
+ groupName = groupInternalName.slice( 'mwReference/'.length );
+ if ( groupName ) {
+ return new OO.ui.MenuOptionWidget( { data: groupName, label: groupName } );
+ }
+ }
+ }
+ ) ), 0 );
+ this.menu.toggle( false );
+};
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceIcons.css b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceIcons.css
new file mode 100644
index 00000000..faf3f3f2
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceIcons.css
@@ -0,0 +1,116 @@
+/*!
+ * Cite VisualEditor UserInterface icon styles.
+ *
+ * @copyright 2011-2017 Cite VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/* @noflip */
+.ve-ui-dir-block-rtl .oo-ui-icon-reference,
+/* HACK */
+.ve-ui-surface-dir-rtl .oo-ui-icon-reference,
+/* HACK */
+.oo-ui-rtl .oo-ui-icon-reference {
+ /* @embed */
+ background-image: url( icons/reference-rtl.svg );
+}
+
+/* @noflip */
+.ve-ui-dir-block-ltr .oo-ui-icon-reference,
+/* HACK */
+.ve-ui-surface-dir-ltr .oo-ui-icon-reference,
+/* HACK */
+.oo-ui-ltr .oo-ui-icon-reference {
+ /* @embed */
+ background-image: url( icons/reference-ltr.svg );
+}
+
+/* @noflip */
+.ve-ui-dir-block-rtl .oo-ui-icon-reference-existing,
+/* HACK */
+.ve-ui-surface-dir-rtl .oo-ui-icon-reference-existing,
+/* HACK */
+.oo-ui-rtl .oo-ui-icon-reference-existing {
+ /* @embed */
+ background-image: url( icons/reference-existing-rtl.svg );
+}
+
+/* @noflip */
+.ve-ui-dir-block-ltr .oo-ui-icon-reference-existing,
+/* HACK */
+.ve-ui-surface-dir-ltr .oo-ui-icon-reference-existing,
+/* HACK */
+.oo-ui-ltr .oo-ui-icon-reference-existing {
+ /* @embed */
+ background-image: url( icons/reference-existing-ltr.svg );
+}
+
+/* @noflip */
+.ve-ui-dir-block-rtl .oo-ui-icon-references,
+/* HACK */
+.ve-ui-surface-dir-rtl .oo-ui-icon-references,
+/* HACK */
+.oo-ui-rtl .oo-ui-icon-references {
+ /* @embed */
+ background-image: url( icons/references-rtl.svg );
+}
+
+/* @noflip */
+.ve-ui-dir-block-ltr .oo-ui-icon-references,
+/* HACK */
+.ve-ui-surface-dir-ltr .oo-ui-icon-references,
+/* HACK */
+.oo-ui-ltr .oo-ui-icon-references {
+ /* @embed */
+ background-image: url( icons/references-ltr.svg );
+}
+
+.oo-ui-icon-ref-cite-book {
+ /* @embed */
+ background-image: url( icons/ref-cite-book.svg );
+}
+
+/* @noflip */
+.ve-ui-dir-block-rtl .oo-ui-icon-ref-cite-journal,
+/* HACK */
+.ve-ui-surface-dir-rtl .oo-ui-icon-ref-cite-journal,
+/* HACK */
+.oo-ui-rtl .oo-ui-icon-ref-cite-journal {
+ /* @embed */
+ background-image: url( icons/ref-cite-journal-rtl.svg );
+}
+
+/* @noflip */
+.ve-ui-dir-block-ltr .oo-ui-icon-ref-cite-journal,
+/* HACK */
+.ve-ui-surface-dir-ltr .oo-ui-icon-ref-cite-journal,
+/* HACK */
+.oo-ui-ltr .oo-ui-icon-ref-cite-journal {
+ /* @embed */
+ background-image: url( icons/ref-cite-journal-ltr.svg );
+}
+
+/* @noflip */
+.ve-ui-dir-block-rtl .oo-ui-icon-ref-cite-news,
+/* HACK */
+.ve-ui-surface-dir-rtl .oo-ui-icon-ref-cite-news,
+/* HACK */
+.oo-ui-rtl .oo-ui-icon-ref-cite-news {
+ /* @embed */
+ background-image: url( icons/ref-cite-news-rtl.svg );
+}
+
+/* @noflip */
+.ve-ui-dir-block-ltr .oo-ui-icon-ref-cite-news,
+/* HACK */
+.ve-ui-surface-dir-ltr .oo-ui-icon-ref-cite-news,
+/* HACK */
+.oo-ui-ltr .oo-ui-icon-ref-cite-news {
+ /* @embed */
+ background-image: url( icons/ref-cite-news-ltr.svg );
+}
+
+.oo-ui-icon-ref-cite-web {
+ /* @embed */
+ background-image: url( icons/ref-cite-web.svg );
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceResultWidget.css b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceResultWidget.css
new file mode 100644
index 00000000..85986f64
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceResultWidget.css
@@ -0,0 +1,28 @@
+/*!
+ * VisualEditor MediaWiki UserInterface MWReferenceResultWidget styles.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+.ve-ui-mwReferenceResultWidget {
+ position: relative;
+ padding: 1em;
+ border-bottom: 1px solid #eaecf0;
+}
+
+.ve-ui-mwReferenceResultWidget:last-child {
+ border-bottom: 0;
+}
+
+.ve-ui-mwReferenceResultWidget.oo-ui-labelElement .oo-ui-labelElement-label {
+ white-space: normal;
+}
+
+.ve-ui-mwReferenceResultWidget-shield {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceResultWidget.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceResultWidget.js
new file mode 100644
index 00000000..6b1034d8
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceResultWidget.js
@@ -0,0 +1,31 @@
+/*!
+ * VisualEditor UserInterface MWReferenceResultWidget class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * Creates an ve.ui.MWReferenceResultWidget object.
+ *
+ * @class
+ * @extends OO.ui.OptionWidget
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.MWReferenceResultWidget = function VeUiMWReferenceResultWidget() {
+ // Parent constructor
+ ve.ui.MWReferenceResultWidget.super.apply( this, arguments );
+
+ // Initialization
+ this.$element
+ .addClass( 've-ui-mwReferenceResultWidget' )
+ .append(
+ $( '<div>' ).addClass( 've-ui-mwReferenceResultWidget-shield' )
+ );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWReferenceResultWidget, OO.ui.OptionWidget );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceSearchWidget.css b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceSearchWidget.css
new file mode 100644
index 00000000..c972e270
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceSearchWidget.css
@@ -0,0 +1,18 @@
+/*!
+ * VisualEditor MediaWiki UserInterface MWReferenceSearchWidget styles.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+.ve-ui-mwReferenceSearchWidget-citation {
+ float: left;
+ margin-right: 0.75em;
+}
+
+.ve-ui-mwReferenceSearchWidget-name {
+ color: #72777d;
+ float: right;
+ margin-left: 0.75em;
+ margin-bottom: 0.05em;
+}
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceSearchWidget.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceSearchWidget.js
new file mode 100644
index 00000000..421b2bd1
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferenceSearchWidget.js
@@ -0,0 +1,232 @@
+/*!
+ * VisualEditor UserInterface MWReferenceSearchWidget class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * Creates an ve.ui.MWReferenceSearchWidget object.
+ *
+ * @class
+ * @extends OO.ui.SearchWidget
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.MWReferenceSearchWidget = function VeUiMWReferenceSearchWidget( config ) {
+ // Configuration initialization
+ config = ve.extendObject( {
+ placeholder: ve.msg( 'cite-ve-reference-input-placeholder' )
+ }, config );
+
+ // Parent constructor
+ ve.ui.MWReferenceSearchWidget.super.call( this, config );
+
+ // Properties
+ this.index = [];
+ this.indexEmpty = true;
+ this.built = false;
+
+ // Initialization
+ this.$element.addClass( 've-ui-mwReferenceSearchWidget' );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWReferenceSearchWidget, OO.ui.SearchWidget );
+
+/* Methods */
+
+/**
+ * Handle query change events.
+ *
+ * @method
+ * @param {string} value New value
+ */
+ve.ui.MWReferenceSearchWidget.prototype.onQueryChange = function () {
+ // Parent method
+ ve.ui.MWReferenceSearchWidget.super.prototype.onQueryChange.call( this );
+
+ // Populate
+ this.addResults();
+};
+
+/**
+ * Set the internal list and check if it contains any references
+ *
+ * @param {ve.dm.InternalList} internalList Internal list
+ */
+ve.ui.MWReferenceSearchWidget.prototype.setInternalList = function ( internalList ) {
+ var i, iLen, groupNames, groupName, groups = internalList.getNodeGroups();
+
+ if ( this.results.findSelectedItem() ) {
+ this.results.findSelectedItem().setSelected( false );
+ }
+
+ this.internalList = internalList;
+ this.internalList.connect( this, { update: 'onInternalListUpdate' } );
+ this.internalList.getListNode().connect( this, { update: 'onListNodeUpdate' } );
+
+ groupNames = Object.keys( groups );
+ for ( i = 0, iLen = groupNames.length; i < iLen; i++ ) {
+ groupName = groupNames[ i ];
+ if ( groupName.lastIndexOf( 'mwReference/' ) !== 0 ) {
+ continue;
+ }
+ if ( groups[ groupName ].indexOrder.length ) {
+ this.indexEmpty = false;
+ return;
+ }
+ }
+ this.indexEmpty = true;
+};
+
+/**
+ * Handle the updating of the InternalList object.
+ *
+ * This will occur after a document transaction.
+ *
+ * @method
+ * @param {string[]} groupsChanged A list of groups which have changed in this transaction
+ */
+ve.ui.MWReferenceSearchWidget.prototype.onInternalListUpdate = function ( groupsChanged ) {
+ var i, len;
+ for ( i = 0, len = groupsChanged.length; i < len; i++ ) {
+ if ( groupsChanged[ i ].indexOf( 'mwReference/' ) === 0 ) {
+ this.built = false;
+ break;
+ }
+ }
+};
+
+/**
+ * Handle the updating of the InternalListNode.
+ *
+ * This will occur after changes to any InternalItemNode.
+ *
+ * @method
+ */
+ve.ui.MWReferenceSearchWidget.prototype.onListNodeUpdate = function () {
+ this.built = false;
+};
+
+/**
+ * Build a searchable index of references.
+ *
+ * @method
+ */
+ve.ui.MWReferenceSearchWidget.prototype.buildIndex = function () {
+ var n, i, iLen, j, jLen, refModel, group, groupName, groupNames, view, text, firstNodes, indexOrder,
+ refGroup, refNode, matches, name, citation,
+ groups = this.internalList.getNodeGroups();
+
+ if ( this.built ) {
+ return;
+ }
+
+ function extractAttrs() {
+ text += ' ' + this.getAttribute( 'href' );
+ }
+
+ this.index = [];
+ groupNames = Object.keys( groups ).sort();
+
+ for ( i = 0, iLen = groupNames.length; i < iLen; i++ ) {
+ groupName = groupNames[ i ];
+ if ( groupName.lastIndexOf( 'mwReference/' ) !== 0 ) {
+ continue;
+ }
+ group = groups[ groupName ];
+ firstNodes = group.firstNodes;
+ indexOrder = group.indexOrder;
+
+ n = 0;
+ for ( j = 0, jLen = indexOrder.length; j < jLen; j++ ) {
+ refNode = firstNodes[ indexOrder[ j ] ];
+ // Exclude placeholder references
+ if ( refNode.getAttribute( 'placeholder' ) ) {
+ continue;
+ }
+ // Only increment counter for real references
+ n++;
+ refModel = ve.dm.MWReferenceModel.static.newFromReferenceNode( refNode );
+ view = new ve.ui.MWPreviewElement(
+ this.internalList.getItemNode( refModel.getListIndex() )
+ );
+
+ refGroup = refModel.getGroup();
+ citation = ( refGroup && refGroup.length ? refGroup + ' ' : '' ) + n;
+ matches = refModel.getListKey().match( /^literal\/(.*)$/ );
+ name = matches && matches[ 1 ] || '';
+ // Hide previously auto-generated reference names
+ if ( name.match( /^:[0-9]+$/ ) ) {
+ name = '';
+ }
+
+ // TODO: At some point we need to make sure this text is updated in
+ // case the view node is still rendering. This shouldn't happen because
+ // all references are supposed to be in the store and therefore are
+ // immediately rendered, but we shouldn't trust that on principle to
+ // account for edge cases.
+
+ // Make visible text, citation and reference name searchable
+ text = [ view.$element.text().toLowerCase(), citation, name ].join( ' ' );
+ // Make URLs searchable
+ view.$element.find( 'a[href]' ).each( extractAttrs );
+
+ this.index.push( {
+ $element: view.$element,
+ text: text,
+ reference: refModel,
+ citation: citation,
+ name: name
+ } );
+ }
+ }
+
+ // Re-populate
+ this.onQueryChange();
+
+ this.built = true;
+};
+
+/**
+ * Check whether buildIndex will create an empty index based on the current internalList.
+ *
+ * @return {boolean} Index is empty
+ */
+ve.ui.MWReferenceSearchWidget.prototype.isIndexEmpty = function () {
+ return this.indexEmpty;
+};
+
+/**
+ * Handle media query response events.
+ *
+ * @method
+ */
+ve.ui.MWReferenceSearchWidget.prototype.addResults = function () {
+ var i, len, item, $citation, $name,
+ query = this.query.getValue().trim().toLowerCase(),
+ items = [];
+
+ for ( i = 0, len = this.index.length; i < len; i++ ) {
+ item = this.index[ i ];
+ if ( item.text.indexOf( query ) >= 0 ) {
+ $citation = $( '<div>' )
+ .addClass( 've-ui-mwReferenceSearchWidget-citation' )
+ .text( '[' + item.citation + ']' );
+ $name = $( '<div>' )
+ .addClass( 've-ui-mwReferenceSearchWidget-name' )
+ .text( item.name );
+ items.push(
+ new ve.ui.MWReferenceResultWidget( {
+ data: item.reference,
+ label: $citation.add( $name ).add( item.$element )
+ } )
+ );
+ }
+ }
+
+ this.results.addItems( items );
+};
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferencesListCommand.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferencesListCommand.js
new file mode 100644
index 00000000..0ab9af85
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferencesListCommand.js
@@ -0,0 +1,61 @@
+/*!
+ * VisualEditor UserInterface MediaWiki ReferencesListCommand class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * References list command.
+ *
+ * If a references list node is selected, opens the dialog to edit it.
+ * Otherwise inserts the references list for the default group.
+ *
+ * @class
+ * @extends ve.ui.Command
+ *
+ * @constructor
+ */
+ve.ui.MWReferencesListCommand = function VeUiMWReferencesListCommand() {
+ // Parent constructor
+ ve.ui.MWReferencesListCommand.super.call(
+ this, 'referencesList', null, null,
+ { supportedSelections: [ 'linear' ] }
+ );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWReferencesListCommand, ve.ui.Command );
+
+/* Methods */
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWReferencesListCommand.prototype.execute = function ( surface ) {
+ var fragment = surface.getModel().getFragment(),
+ selectedNode = fragment.getSelectedNode(),
+ isReflistNodeSelected = selectedNode && selectedNode instanceof ve.dm.MWReferencesListNode;
+
+ if ( isReflistNodeSelected ) {
+ return surface.execute( 'window', 'open', 'referencesList' );
+ } else {
+ fragment.collapseToEnd().insertContent( [
+ {
+ type: 'mwReferencesList',
+ attributes: {
+ listGroup: 'mwReference/',
+ refGroup: '',
+ isResponsive: mw.config.get( 'wgCiteResponsiveReferences' )
+ }
+ },
+ { type: '/mwReferencesList' }
+ ] );
+ return true;
+ }
+};
+
+/* Registration */
+
+ve.ui.commandRegistry.register( new ve.ui.MWReferencesListCommand() );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferencesListContextItem.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferencesListContextItem.js
new file mode 100644
index 00000000..46c9f2fb
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferencesListContextItem.js
@@ -0,0 +1,75 @@
+/*!
+ * VisualEditor MWReferencesListContextItem class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * Context item for a MWReferencesList.
+ *
+ * @class
+ * @extends ve.ui.LinearContextItem
+ *
+ * @constructor
+ * @param {ve.ui.Context} context Context item is in
+ * @param {ve.dm.Model} model Model item is related to
+ * @param {Object} config Configuration options
+ */
+ve.ui.MWReferencesListContextItem = function VeUiMWReferencesListContextItem() {
+ // Parent constructor
+ ve.ui.MWReferencesListContextItem.super.apply( this, arguments );
+
+ // Initialization
+ this.$element.addClass( 've-ui-mwReferencesListContextItem' );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWReferencesListContextItem, ve.ui.LinearContextItem );
+
+/* Static Properties */
+
+ve.ui.MWReferencesListContextItem.static.name = 'referencesList';
+
+ve.ui.MWReferencesListContextItem.static.icon = 'references';
+
+ve.ui.MWReferencesListContextItem.static.label =
+ OO.ui.deferMsg( 'cite-ve-dialogbutton-referenceslist-tooltip' );
+
+ve.ui.MWReferencesListContextItem.static.modelClasses = [ ve.dm.MWReferencesListNode ];
+
+ve.ui.MWReferencesListContextItem.static.commandName = 'referencesList';
+
+/* Methods */
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWReferencesListContextItem.prototype.renderBody = function () {
+ this.$body.append(
+ $( '<div>' ).text( this.getDescription() )
+ );
+ if ( this.model.getAttribute( 'templateGenerated' ) ) {
+ this.$body.append(
+ $( '<div>' )
+ .addClass( 've-ui-mwReferenceContextItem-muted' )
+ .text( ve.msg( 'cite-ve-referenceslist-missingreflist' ) )
+ );
+ }
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWReferencesListContextItem.prototype.getDescription = function () {
+ var group = this.model.getAttribute( 'refGroup' );
+
+ return group ?
+ ve.msg( 'cite-ve-dialog-referenceslist-contextitem-description-named', group ) :
+ ve.msg( 'cite-ve-dialog-referenceslist-contextitem-description-general' );
+};
+
+/* Registration */
+
+ve.ui.contextItemFactory.register( ve.ui.MWReferencesListContextItem );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferencesListDialog.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferencesListDialog.js
new file mode 100644
index 00000000..10dba30f
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWReferencesListDialog.js
@@ -0,0 +1,178 @@
+/*!
+ * VisualEditor user interface MWReferencesListDialog class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * Dialog for editing MediaWiki references lists.
+ *
+ * @class
+ * @extends ve.ui.NodeDialog
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.MWReferencesListDialog = function VeUiMWReferencesListDialog( config ) {
+ // Parent constructor
+ ve.ui.MWReferencesListDialog.super.call( this, config );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWReferencesListDialog, ve.ui.NodeDialog );
+
+/* Static Properties */
+
+ve.ui.MWReferencesListDialog.static.name = 'referencesList';
+
+ve.ui.MWReferencesListDialog.static.title =
+ OO.ui.deferMsg( 'cite-ve-dialog-referenceslist-title' );
+
+ve.ui.MWReferencesListDialog.static.modelClasses = [ ve.dm.MWReferencesListNode ];
+
+ve.ui.MWReferencesListDialog.static.size = 'medium';
+
+ve.ui.MWReferencesListDialog.static.actions = [
+ {
+ action: 'apply',
+ label: OO.ui.deferMsg( 'visualeditor-dialog-action-apply' ),
+ flags: [ 'progressive', 'primary' ],
+ modes: 'edit'
+ },
+ {
+ label: OO.ui.deferMsg( 'visualeditor-dialog-action-cancel' ),
+ flags: [ 'safe', 'back' ],
+ modes: 'edit'
+ }
+];
+
+/* Methods */
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWReferencesListDialog.prototype.getBodyHeight = function () {
+ return Math.max( 150, Math.ceil( this.editPanel.$element[ 0 ].scrollHeight ) );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWReferencesListDialog.prototype.initialize = function () {
+ var groupField, responsiveField;
+
+ // Parent method
+ ve.ui.MWReferencesListDialog.super.prototype.initialize.call( this );
+
+ // Properties
+ this.panels = new OO.ui.StackLayout();
+ this.editPanel = new OO.ui.PanelLayout( {
+ scrollable: true, padded: true
+ } );
+ this.optionsFieldset = new OO.ui.FieldsetLayout();
+
+ this.groupInput = new ve.ui.MWReferenceGroupInputWidget( {
+ $overlay: this.$overlay,
+ emptyGroupName: ve.msg( 'cite-ve-dialog-reference-options-group-placeholder' )
+ } );
+ groupField = new OO.ui.FieldLayout( this.groupInput, {
+ align: 'top',
+ label: ve.msg( 'cite-ve-dialog-reference-options-group-label' )
+ } );
+
+ this.responsiveCheckbox = new OO.ui.CheckboxInputWidget();
+ responsiveField = new OO.ui.FieldLayout( this.responsiveCheckbox, {
+ align: 'inline',
+ label: ve.msg( 'cite-ve-dialog-reference-options-responsive-label' )
+ } );
+
+ // Initialization
+ this.optionsFieldset.addItems( [ groupField, responsiveField ] );
+ this.editPanel.$element.append( this.optionsFieldset.$element );
+ this.panels.addItems( [ this.editPanel ] );
+ this.$body.append( this.panels.$element );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWReferencesListDialog.prototype.getActionProcess = function ( action ) {
+ if ( action === 'apply' ) {
+ return new OO.ui.Process( function () {
+ var refGroup, listGroup, oldListGroup, isResponsive, oldResponsive, mwData, attrChanges, doc,
+ surfaceModel = this.getFragment().getSurface();
+
+ // Save changes
+ refGroup = this.groupInput.getValue();
+ listGroup = 'mwReference/' + refGroup;
+ isResponsive = this.responsiveCheckbox.isSelected();
+
+ if ( this.selectedNode ) {
+ // Edit existing model
+ doc = surfaceModel.getDocument();
+ oldListGroup = this.selectedNode.getAttribute( 'listGroup' );
+ oldResponsive = this.selectedNode.getAttribute( 'isResponsive' );
+
+ if ( listGroup !== oldListGroup || isResponsive !== oldResponsive ) {
+ // newFromAttributeChanges doesn't do the smart-replacing
+ // for nested attributes, so make a copy of the mw
+ // attribute so we can disable autoGenerated now we've
+ // changed it.
+ mwData = ve.copy( this.selectedNode.getAttribute( 'mw' ) ) || {};
+ delete mwData.autoGenerated;
+
+ attrChanges = {
+ listGroup: listGroup,
+ refGroup: refGroup,
+ isResponsive: isResponsive,
+ mw: mwData
+ };
+ surfaceModel.change(
+ ve.dm.TransactionBuilder.static.newFromAttributeChanges(
+ doc, this.selectedNode.getOuterRange().start, attrChanges
+ )
+ );
+ }
+ }
+
+ this.close( { action: action } );
+ }, this );
+ }
+ // Parent method
+ return ve.ui.MWReferencesListDialog.super.prototype.getActionProcess.call( this, action );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWReferencesListDialog.prototype.getSetupProcess = function ( data ) {
+ return ve.ui.MWReferencesListDialog.super.prototype.getSetupProcess.call( this, data )
+ .next( function () {
+ if ( !( this.selectedNode instanceof ve.dm.MWReferencesListNode ) ) {
+ throw new Error( 'Cannot open dialog: references list must be selected' );
+ }
+
+ this.actions.setMode( 'edit' );
+
+ this.groupInput.setValue( this.selectedNode.getAttribute( 'refGroup' ) );
+ this.groupInput.populateMenu( this.getFragment().getDocument().getInternalList() );
+
+ this.responsiveCheckbox.setSelected( this.selectedNode.getAttribute( 'isResponsive' ) );
+ }, this );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWReferencesListDialog.prototype.getReadyProcess = function ( data ) {
+ return ve.ui.MWReferencesListDialog.super.prototype.getReadyProcess.call( this, data )
+ .next( function () {
+ this.groupInput.focus();
+ }, this );
+};
+
+/* Registration */
+
+ve.ui.windowFactory.register( ve.ui.MWReferencesListDialog );
diff --git a/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWUseExistingReferenceCommand.js b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWUseExistingReferenceCommand.js
new file mode 100644
index 00000000..0066d39f
--- /dev/null
+++ b/www/wiki/extensions/Cite/modules/ve-cite/ve.ui.MWUseExistingReferenceCommand.js
@@ -0,0 +1,53 @@
+/*!
+ * VisualEditor UserInterface MediaWiki UseExistingReferenceCommand class.
+ *
+ * @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
+ * @license MIT
+ */
+
+/**
+ * Use existing reference command.
+ *
+ * @class
+ * @extends ve.ui.Command
+ *
+ * @constructor
+ */
+ve.ui.MWUseExistingReferenceCommand = function VeUiMWUseExistingReferenceCommand() {
+ // Parent constructor
+ ve.ui.MWUseExistingReferenceCommand.super.call(
+ this, 'reference/existing', 'window', 'open',
+ { args: [ 'reference', { useExisting: true } ], supportedSelections: [ 'linear' ] }
+ );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWUseExistingReferenceCommand, ve.ui.Command );
+
+/* Methods */
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWUseExistingReferenceCommand.prototype.isExecutable = function ( fragment ) {
+ var groupName, groups;
+
+ // Parent method
+ if ( !ve.ui.MWUseExistingReferenceCommand.super.prototype.isExecutable.apply( this, arguments ) ) {
+ return false;
+ }
+
+ groups = fragment.getDocument().getInternalList().getNodeGroups();
+
+ for ( groupName in groups ) {
+ if ( groupName.lastIndexOf( 'mwReference/' ) === 0 && groups[ groupName ].indexOrder.length ) {
+ return true;
+ }
+ }
+ return false;
+};
+
+/* Registration */
+
+ve.ui.commandRegistry.register( new ve.ui.MWUseExistingReferenceCommand() );
diff --git a/www/wiki/extensions/Cite/phpcs.xml b/www/wiki/extensions/Cite/phpcs.xml
new file mode 100644
index 00000000..ae5c05d9
--- /dev/null
+++ b/www/wiki/extensions/Cite/phpcs.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<ruleset>
+ <rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamComment" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamName" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamTag" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingReturn" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.ParamNameNoMatch" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.WrongStyle" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic" />
+ <exclude name="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment" />
+ </rule>
+ <file>.</file>
+ <arg name="extensions" value="php,php5,inc" />
+ <arg name="encoding" value="utf8" />
+ <exclude-pattern>vendor</exclude-pattern>
+</ruleset>
diff --git a/www/wiki/extensions/Cite/tests/parser/citeParserTests.txt b/www/wiki/extensions/Cite/tests/parser/citeParserTests.txt
new file mode 100644
index 00000000..527b6e77
--- /dev/null
+++ b/www/wiki/extensions/Cite/tests/parser/citeParserTests.txt
@@ -0,0 +1,1464 @@
+# Force the test runner to ensure the extension is loaded
+!! hooks
+ref
+references
+!! endhooks
+
+!! article
+Template:echo
+!! text
+{{{1}}}
+!! endarticle
+
+!! article
+Template:refinref
+!! text
+<ref>ho</ref>
+!! endarticle
+
+!! test
+Simple <ref>, no <references/>
+!! wikitext
+Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref>
+!! html
+Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup><div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+Simple <ref>, with <references/>
+!! wikitext
+Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref>
+
+<references/>
+!! html
+<p>Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
+</li>
+</ol></div>
+
+!! end
+
+
+!! article
+Template:Simple template
+!! text
+A ''simple'' template.
+!! endarticle
+
+
+!! test
+<ref> with a simple template
+!! wikitext
+Templating<ref>{{simple template}}</ref>
+
+<references/>
+!! html
+<p>Templating<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">A <i>simple</i> template.</span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+<ref> with a <nowiki>
+!! wikitext
+Templating<ref><nowiki>{{simple template}}</nowiki></ref>
+
+<references/>
+!! html
+<p>Templating<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">{{simple template}}</span>
+</li>
+</ol></div>
+
+!! end
+
+
+!! test
+<ref> in a <nowiki>
+!! wikitext
+Templating<nowiki><ref>{{simple template}}</ref></nowiki>
+
+<references/>
+!! html
+<p>Templating&lt;ref&gt;{{simple template}}&lt;/ref&gt;
+</p><p><br />
+</p>
+!! end
+
+!! test
+<ref> in a <!--comment-->
+!! wikitext
+Templating<!--<ref>{{simple template}}</ref>-->
+
+<references/>
+!! html
+<p>Templating
+</p><p><br />
+</p>
+!! end
+
+!! test
+<!--comment--> in a <ref> (bug 5384)
+!! wikitext
+Templating<ref>Text<!--comment--></ref>
+
+<references/>
+!! html
+<p>Templating<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Text</span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+<references> after <gallery> (bug 6164)
+!! wikitext
+<ref>one</ref>
+
+<gallery>Image:Foobar.jpg</gallery>
+
+<references/>
+!! html
+<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+</p>
+<ul class="gallery mw-gallery-traditional">
+ <li class="gallerybox" style="width: 155px"><div style="width: 155px">
+ <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
+ <div class="gallerytext">
+ </div>
+ </div></li>
+</ul>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">one</span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+{{REVISIONID}} on page with <ref> (bug 6299)
+!! wikitext
+{{REVISIONID}}<ref>elite</ref>
+!! html
+1337<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup><div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">elite</span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+{{REVISIONID}} on page without <ref> (bug 6299 sanity check)
+!! wikitext
+{{REVISIONID}}
+!! html
+<p>1337
+</p>
+!! end
+
+!! test
+Ref with content followed by blank ref
+!! wikitext
+<ref name="blank">content</ref>
+
+<ref name="blank"/>
+
+<references/>
+!! html
+<p><sup id="cite_ref-blank_1-0" class="reference"><a href="#cite_note-blank-1">&#91;1&#93;</a></sup>
+</p><p><sup id="cite_ref-blank_1-1" class="reference"><a href="#cite_note-blank-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-blank-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-blank_1-0">1.0</a></sup> <sup><a href="#cite_ref-blank_1-1">1.1</a></sup></span> <span class="reference-text">content</span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+Blank ref followed by ref with content
+!! wikitext
+<ref name="blank"/>
+
+<ref name="blank">content</ref>
+
+<references/>
+!! html
+<p><sup id="cite_ref-blank_1-0" class="reference"><a href="#cite_note-blank-1">&#91;1&#93;</a></sup>
+</p><p><sup id="cite_ref-blank_1-1" class="reference"><a href="#cite_note-blank-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-blank-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-blank_1-0">1.0</a></sup> <sup><a href="#cite_ref-blank_1-1">1.1</a></sup></span> <span class="reference-text">content</span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+Regression: non-blank ref "0" followed by ref with content
+!! wikitext
+<ref name="blank">0</ref>
+
+<ref name="blank">content</ref>
+
+<references/>
+!! html
+<p><sup id="cite_ref-blank_1-0" class="reference"><a href="#cite_note-blank-1">&#91;1&#93;</a></sup>
+</p><p><sup id="cite_ref-blank_1-1" class="reference"><a href="#cite_note-blank-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-blank-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-blank_1-0">1.0</a></sup> <sup><a href="#cite_ref-blank_1-1">1.1</a></sup></span> <span class="reference-text">0 <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag; name "blank" defined multiple times with different content</span></span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+Regression sanity check: non-blank ref "1" followed by ref with content
+!! wikitext
+<ref name="blank">1</ref>
+
+<ref name="blank">content</ref>
+
+<references/>
+!! html
+<p><sup id="cite_ref-blank_1-0" class="reference"><a href="#cite_note-blank-1">&#91;1&#93;</a></sup>
+</p><p><sup id="cite_ref-blank_1-1" class="reference"><a href="#cite_note-blank-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-blank-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-blank_1-0">1.0</a></sup> <sup><a href="#cite_ref-blank_1-1">1.1</a></sup></span> <span class="reference-text">1 <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag; name "blank" defined multiple times with different content</span></span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+Ref names containing a number
+!! wikitext
+<ref name="test123test">One</ref>
+<ref name="123test">Two</ref>
+<ref name="test123">Three</ref>
+
+<references />
+!! html
+<p><sup id="cite_ref-test123test_1-0" class="reference"><a href="#cite_note-test123test-1">&#91;1&#93;</a></sup>
+<sup id="cite_ref-123test_2-0" class="reference"><a href="#cite_note-123test-2">&#91;2&#93;</a></sup>
+<sup id="cite_ref-test123_3-0" class="reference"><a href="#cite_note-test123-3">&#91;3&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-test123test-1"><span class="mw-cite-backlink"><a href="#cite_ref-test123test_1-0">↑</a></span> <span class="reference-text">One</span>
+</li>
+<li id="cite_note-123test-2"><span class="mw-cite-backlink"><a href="#cite_ref-123test_2-0">↑</a></span> <span class="reference-text">Two</span>
+</li>
+<li id="cite_note-test123-3"><span class="mw-cite-backlink"><a href="#cite_ref-test123_3-0">↑</a></span> <span class="reference-text">Three</span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+Erroneous refs
+!! wikitext
+<ref name="0">Zero</ref>
+
+<ref>Also zero, but differently! (Normal ref)</ref>
+
+<ref />
+
+<ref name="foo" name="bar" />
+
+<ref name="blankwithnoreference" />
+
+<references name="quasit" />
+
+<references />
+!! html
+<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+name cannot be a simple integer. Use a descriptive title</span>
+</p><p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+</p><p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: The opening <code>&lt;ref&gt;</code> tag is malformed or has a bad name</span>
+</p><p><sup id="cite_ref-bar_2-0" class="reference"><a href="#cite_note-bar-2">&#91;2&#93;</a></sup>
+</p><p><sup id="cite_ref-blankwithnoreference_3-0" class="reference"><a href="#cite_note-blankwithnoreference-3">&#91;3&#93;</a></sup>
+</p><p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid parameter in <code>&lt;references&gt;</code> tag</span>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Also zero, but differently! (Normal ref)</span>
+</li>
+<li id="cite_note-bar-2"><span class="mw-cite-backlink"><a href="#cite_ref-bar_2-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+no text was provided for refs named <code>bar</code></span></li>
+<li id="cite_note-blankwithnoreference-3"><span class="mw-cite-backlink"><a href="#cite_ref-blankwithnoreference_3-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+no text was provided for refs named <code>blankwithnoreference</code></span></li>
+</ol></div>
+
+!! end
+
+
+!! test
+Simple <ref>, with <references/> in group
+!! wikitext
+Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref>
+Wikipedia rocks!<ref group=note>Proceeds of Rockology, vol. XXI</ref>
+
+<references/>
+<references group=note/>
+!! html
+<p>Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+Wikipedia rocks!<sup id="cite_ref-2" class="reference"><a href="#cite_note-2">&#91;note 1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
+</li>
+</ol></div>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+Simple <ref>, with <references/> in group, with groupname in Chinese
+!! wikitext
+AAA<ref group="参">ref a</ref>BBB<ref group="注">note b</ref>CCC<ref group="参">ref c</ref>
+
+;refs
+<references group="参" />
+;notes
+<references group="注" />
+!! html
+<p>AAA<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;参 1&#93;</a></sup>BBB<sup id="cite_ref-2" class="reference"><a href="#cite_note-2">&#91;注 1&#93;</a></sup>CCC<sup id="cite_ref-3" class="reference"><a href="#cite_note-3">&#91;参 2&#93;</a></sup>
+</p>
+<dl><dt>refs</dt></dl>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">ref a</span>
+</li>
+<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text">ref c</span>
+</li>
+</ol></div>
+<dl><dt>notes</dt></dl>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">note b</span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+<ref> defined in <references>
+!! wikitext
+<ref name="foo"/>
+
+<references>
+<ref name="foo">BAR</ref>
+</references>
+!! html
+<p><sup id="cite_ref-foo_1-0" class="reference"><a href="#cite_note-foo-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-foo-1"><span class="mw-cite-backlink"><a href="#cite_ref-foo_1-0">↑</a></span> <span class="reference-text">BAR</span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+<ref> defined in <references> called with #tag
+!! wikitext
+<ref name="foo"/>
+
+{{#tag:references|
+<ref name="foo">BAR</ref>
+}}
+!! html
+<p><sup id="cite_ref-foo_1-0" class="reference"><a href="#cite_note-foo-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-foo-1"><span class="mw-cite-backlink"><a href="#cite_ref-foo_1-0">↑</a></span> <span class="reference-text">BAR</span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+<ref> defined in <references> error conditions
+!! wikitext
+<ref name="foo" group="2"/>
+
+<references group="2">
+<ref name="foo"/>
+<ref name="unused">BAR</ref>
+<ref name="foo" group="1">bad group</ref>
+<ref>BAR BAR</ref>
+</references>
+!! html
+<p><sup id="cite_ref-foo_1-0" class="reference"><a href="#cite_note-foo-1">&#91;2 1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-foo-1"><span class="mw-cite-backlink"><a href="#cite_ref-foo_1-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+no text was provided for refs named <code>foo</code></span></li>
+</ol></div>
+<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code>&lt;ref&gt;</code> tag with name "unused" defined in <code>&lt;references&gt;</code> is not used in prior text.</span><br />
+<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code>&lt;ref&gt;</code> tag in <code>&lt;references&gt;</code> has conflicting group attribute "1".</span><br />
+<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code>&lt;ref&gt;</code> tag defined in <code>&lt;references&gt;</code> has no name attribute.</span>
+</p>
+!! end
+
+!! article
+MediaWiki:cite_link_label_group-klingon
+!! text
+wa' cha' wej loS vagh jav Soch chorgh Hut wa'maH
+!! endarticle
+
+!! test
+<ref> with custom group link with number names in Klingon
+!! wikitext
+Wikipedia rocks!<ref group="klingon">Proceeds of Rockology, vol. XXI</ref>
+
+<references group="klingon"/>
+!! html
+<p>Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;wa&#39;&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+Bug 31374 regression check: nested strip items
+!! wikitext
+{{#tag:ref|note<ref>reference</ref>|group=Note}}
+<references group=Note />
+<references />
+!! html
+<p><sup id="cite_ref-2" class="reference"><a href="#cite_note-2">&#91;Note 1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">note<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup></span>
+</li>
+</ol></div>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">reference</span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+Bug 13073 regression check: wrapped <references>
+!! options
+parsoid={"suppressErrors": true}
+!! wikitext
+<ref>
+foo
+</ref>
+<div><references /></div>
+!! html/*
+<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+</p>
+<div><div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">
+foo</span>
+</li>
+</ol></div></div>
+
+!! end
+
+!! test
+<ref> with no name and no content.
+!! wikitext
+Bla.<ref></ref>
+!! html
+<p>Bla.<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+refs with no name must have content</span>
+</p>
+!! end
+
+!! test
+<ref> with an empty-string name parameter and no content.
+!! wikitext
+Bla.<ref name=""></ref>
+!! html
+<p>Bla.<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+refs with no name must have content</span>
+</p>
+!! end
+
+!! test
+<ref> with a non-empty name parameter and no content.
+!! wikitext
+Bla.<ref name="void"></ref>
+!! html
+Bla.<sup id="cite_ref-void_1-0" class="reference"><a href="#cite_note-void-1">&#91;1&#93;</a></sup><div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-void-1"><span class="mw-cite-backlink"><a href="#cite_ref-void_1-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+no text was provided for refs named <code>void</code></span></li>
+</ol></div>
+
+!! end
+
+!! test
+<ref>s with the follow parameter
+!! wikitext
+Page one.<ref name="beginning">First page footnote text.</ref>
+
+Page two.<ref follow="beginning">Second page footnote text.</ref>
+
+== References ==
+<references />
+!! html
+<p>Page one.<sup id="cite_ref-beginning_1-0" class="reference"><a href="#cite_note-beginning-1">&#91;1&#93;</a></sup>
+</p><p>Page two.
+</p>
+<h2><span class="mw-headline" id="References">References</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: References">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-beginning-1"><span class="mw-cite-backlink"><a href="#cite_ref-beginning_1-0">↑</a></span> <span class="reference-text">First page footnote text. Second page footnote text.</span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+<ref> with both name and follow parameters - invalid
+!! wikitext
+Page one.<ref name="the-name" follow="the-name">This ref is invalid.</ref>
+<references />
+!! html
+<p>Page one.<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+invalid names, e.g. too many</span>
+</p>
+!! end
+
+!! test
+Multiple definition (outside <references/>)
+!! wikitext
+<ref name=a>abc</ref>
+<ref name=a>def</ref>
+<references />
+!! html
+<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">&#91;1&#93;</a></sup>
+<sup id="cite_ref-a_1-1" class="reference"><a href="#cite_note-a-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-a-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-a_1-0">1.0</a></sup> <sup><a href="#cite_ref-a_1-1">1.1</a></sup></span> <span class="reference-text">abc <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag; name "a" defined multiple times with different content</span></span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+Multiple definition (inside <references/>)
+!! wikitext
+<ref name=a />
+<references>
+<ref name=a>abc</ref>
+<ref name=a>def</ref>
+</references>
+!! html
+<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-a-1"><span class="mw-cite-backlink"><a href="#cite_ref-a_1-0">↑</a></span> <span class="reference-text">abc <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag; name "a" defined multiple times with different content</span></span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+Multiple definition (mixed outside/inside)
+!! wikitext
+<ref name=a>abc</ref>
+<references>
+<ref name=a>def</ref>
+</references>
+!! html
+<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-a-1"><span class="mw-cite-backlink"><a href="#cite_ref-a_1-0">↑</a></span> <span class="reference-text">abc <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag; name "a" defined multiple times with different content</span></span>
+</li>
+</ol></div>
+
+!! end
+
+!! test
+Multiple definition (inside {{#tag:references}})
+!! wikitext
+<ref name=a />
+{{#tag:references|
+<ref name=a>abc</ref>
+<ref name=a>def</ref>
+}}
+!! html
+<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-a-1"><span class="mw-cite-backlink"><a href="#cite_ref-a_1-0">↑</a></span> <span class="reference-text">abc <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag; name "a" defined multiple times with different content</span></span>
+</li>
+</ol></div>
+
+!! end
+
+# Parsoid doesn't rt cleanly because name attribute is actually broken
+# here (<ref> tag closes at first >); see next test for a tidied version.
+!! test
+T29694 - [] in reference names in HTML5 fragment mode
+!! config
+wgFragmentMode=[ 'html5' ]
+!! options
+parsoid=wt2html
+!! wikitext
+<ref name="[#foo] {bar} <baz>">[bar]</ref>
+!! html/php
+<sup id="cite_ref-&#91;#foo&#93;_&#123;bar&#125;_&lt;baz_1-0" class="reference"><a href="#cite_note-[#foo]_{bar}_&lt;baz-1">&#91;1&#93;</a></sup><div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-&#91;#foo&#93;_&#123;bar&#125;_&lt;baz-1"><span class="mw-cite-backlink"><a href="#cite_ref-[#foo]_{bar}_&lt;baz_1-0">↑</a></span> <span class="reference-text">"&gt;[bar]</span>
+</li>
+</ol></div>
+
+!! html/parsoid
+<p><sup about="#mwt2" class="mw-ref" id="cite_ref-[#foo]_{bar}_&lt;baz_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-[#foo]_{bar}_&lt;baz-1"},"attrs":{"name":"[#foo] {bar} &lt;baz"}}'><a href="./Main_Page#cite_note-[#foo]_{bar}_&lt;baz-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt3" data-mw='{"name":"references","attrs":{},"autoGenerated":true}'><li about="#cite_note-[#foo]_{bar}_&lt;baz-1" id="cite_note-[#foo]_{bar}_&lt;baz-1"><a href="./Main_Page#cite_ref-[#foo]_{bar}_&lt;baz_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-[#foo]_{bar}_&lt;baz-1" class="mw-reference-text" data-parsoid="{}">">[bar]</span></li></ol>
+!! end
+
+!! test
+T29694 - [] in reference names in HTML5 fragment mode (tidied)
+!! config
+wgFragmentMode=[ 'html5' ]
+!! wikitext
+<ref name="[#foo] {bar} <baz&gt;">[bar]</ref>
+<references />
+!! html/php
+<p><sup id="cite_ref-&#91;#foo&#93;_&#123;bar&#125;_&lt;baz&gt;_1-0" class="reference"><a href="#cite_note-[#foo]_{bar}_&lt;baz&gt;-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-&#91;#foo&#93;_&#123;bar&#125;_&lt;baz&gt;-1"><span class="mw-cite-backlink"><a href="#cite_ref-[#foo]_{bar}_&lt;baz&gt;_1-0">↑</a></span> <span class="reference-text">[bar]</span>
+</li>
+</ol></div>
+
+!! html/parsoid
+<p><sup about="#mwt2" class="mw-ref" id="cite_ref-[#foo]_{bar}_&lt;baz>_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-[#foo]_{bar}_&lt;baz>-1"},"attrs":{"name":"[#foo] {bar} &lt;baz>"}}'><a href="./Main_Page#cite_note-[#foo]_{bar}_&lt;baz>-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt3" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-[#foo]_{bar}_&lt;baz>-1" id="cite_note-[#foo]_{bar}_&lt;baz>-1"><a href="./Main_Page#cite_ref-[#foo]_{bar}_&lt;baz>_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-[#foo]_{bar}_&lt;baz>-1" class="mw-reference-text" data-parsoid="{}">[bar]</span></li></ol>
+!! end
+
+
+#### ----------------------------------------------------------------
+#### Parsoid-only testing of Parsoid's impl of <ref> and <references>
+#### tags. Parsoid's output for these tags differs from that of the
+#### PHP parser.
+#### ----------------------------------------------------------------
+
+!! test
+Ref: 1. ref-location should be replaced with an index span
+!! wikitext
+A <ref>foo</ref>
+B <ref name="x">foo</ref>
+C <ref name="y" />
+<references />
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup>
+B <sup about="#mwt4" class="mw-ref" id="cite_ref-x_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-x-2"},"attrs":{"name":"x"}}'><a href="./Main_Page#cite_note-x-2"><span class="mw-reflink-text">[2]</span></a></sup>
+C <sup about="#mwt6" class="mw-ref" id="cite_ref-y_3-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"y"}}'><a href="./Main_Page#cite_note-y-3"><span class="mw-reflink-text">[3]</span></a></sup></p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
+<li about="#cite_note-x-2" id="cite_note-x-2"><a href="./Main_Page#cite_ref-x_2-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-x-2" class="mw-reference-text">foo</span></li>
+<li about="#cite_note-y-3" id="cite_note-y-3"><a href="./Main_Page#cite_ref-y_3-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-y-3" class="mw-reference-text"></span></li>
+</ol>
+!! end
+
+!! test
+Ref: 2. ref-tags with identical names should all get the same index
+!! wikitext
+A <ref name="x">foo</ref>
+B <ref name="x" />
+<references />
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-x_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-x-1"},"attrs":{"name":"x"}}'><a href="./Main_Page#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></sup>
+B <sup about="#mwt4" class="mw-ref" id="cite_ref-x_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="./Main_Page#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-x-1" id="cite_note-x-1"><span rel="mw:referencedBy"><a href="./Main_Page#cite_ref-x_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Main_Page#cite_ref-x_1-1"><span class="mw-linkback-text">2 </span></a></span> <span id="mw-reference-text-cite_note-x-1" class="mw-reference-text">foo</span></li>
+</ol>
+!! end
+
+!! test
+Ref: 3. spaces in ref-names should be ignored
+!! wikitext
+A <ref name="x">foo</ref>
+B <ref name=" x " />
+C <ref name= x />
+<references />
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-x_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-x-1"},"attrs":{"name":"x"}}'><a href="./Main_Page#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></sup>
+B <sup about="#mwt4" class="mw-ref" id="cite_ref-x_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="./Main_Page#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></sup>
+C <sup about="#mwt6" class="mw-ref" id="cite_ref-x_1-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="./Main_Page#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></supn></p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-x-1" id="cite_note-x-1"><span rel="mw:referencedBy"><a href="./Main_Page#cite_ref-x_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Main_Page#cite_ref-x_1-1"><span class="mw-linkback-text">2 </span></a><a href="./Main_Page#cite_ref-x_1-2"><span class="mw-linkback-text">3 </span></a></span> <span id="mw-reference-text-cite_note-x-1" class="mw-reference-text">foo</span></li>
+</ol>
+!! end
+
+# NOTE: constructor is a predefined property in JS and constructor as a ref-name can clash with it if not handled properly)
+!! test
+Ref: 4. 'constructor' should be accepted as a valid ref-name
+!! wikitext
+A <ref name="constructor">foo</ref>
+<references />
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-constructor_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-constructor-1"},"attrs":{"name":"constructor"}}'><a href="./Main_Page#cite_note-constructor-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-constructor-1" id="cite_note-constructor-1"><a href="./Main_Page#cite_ref-constructor_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-constructor-1" class="mw-reference-text">foo</span></li>
+</ol>
+!! end
+
+!! test
+Ref: 5. body should accept generic wikitext
+!! wikitext
+A <ref>
+ This is a '''[[bolded link]]''' and this is a {{echo|transclusion}}
+</ref>
+
+<references />
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
+
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">This is a <b><a rel="mw:WikiLink" href="./Bolded_link" title="Bolded link">bolded link</a></b> and this is a <span about="#mwt3" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"transclusion"}},"i":0}}]}'>transclusion</span>
+</span></li>
+</ol>
+!! end
+
+!! test
+Ref: 6. indent-pres should not be output in ref-body
+!! wikitext
+A <ref>
+ foo
+ bar
+ baz
+</ref>
+
+<references />
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
+
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo
+ bar
+ baz
+</span></li>
+</ol>
+!! end
+
+!! test
+Ref: 7. No p-wrapping in ref-body
+!! wikitext
+A <ref>
+foo
+
+bar
+
+
+baz
+
+
+
+booz
+</ref>
+
+<references />
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
+
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo
+
+bar
+
+
+baz
+
+
+
+booz
+</span></li>
+</ol>
+!! end
+
+!! test
+Ref: 8. transclusion wikitext has lower precedence
+!! wikitext
+A <ref> foo {{echo|</ref> B C}}
+
+<references />
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup> B C}}</p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo {{echo|</span></li>
+</ol>
+!! end
+
+!! test
+Ref: 9. unclosed comments should not leak out of ref-body
+!! wikitext
+A <ref> foo <!--</ref> B C
+<references />
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup> B C</p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo <!----></span></li>
+</ol>
+!! end
+
+!! test
+Ref: 10. Unclosed HTML tags should not leak out of ref-body
+!! wikitext
+A <ref> <b> foo </ref> B C
+
+<references />
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup> B C</p>
+
+
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text"><b data-parsoid='{"stx":"html","autoInsertedEnd":true}'> foo </b></span></li>
+</ol>
+!! end
+
+!! test
+Ref: 11. ref-tags acts like an inline element wrt P-wrapping
+!! wikitext
+A <ref>foo</ref> B
+C <ref>bar</ref> D
+<references />
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup> B
+C <sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="./Main_Page#cite_note-2"><span class="mw-reflink-text">[2]</span></a></sup> D</p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
+<li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bar</span></li>
+</ol>
+!! end
+
+!! test
+Ref: 12. ref-tags act as trailing newline migration barrier
+!! wikitext
+<!--the newline at the end of this line moves out of the p tag-->a
+
+b<!--the newline at the end of this line stays inside the p tag--> <ref />
+<ref />
+
+c
+<references />
+!! html/parsoid
+<!--the newline at the end of this line moves out of the p tag--><p>a</p>
+
+
+<p>b<!--the newline at the end of this line stays inside the p tag--> <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup>
+<sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{}}'><a href="./Main_Page#cite_note-2"><span class="mw-reflink-text">[2]</span></a></sup></p>
+
+<p>c</p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text"></span></li>
+<li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text"></span></li></ol>
+!! end
+
+!! test
+Ref: 13. ref-tags are not SOL-transparent and block indent-pres
+!! wikitext
+<ref>foo</ref> A
+<ref>bar
+</ref> B
+<references />
+!! html/parsoid
+<p><sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup> A
+<sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="./Main_Page#cite_note-2"><span class="mw-reflink-text">[2]</span></a></sup> B</p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
+<li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bar
+</span></li>
+</ol>
+!! end
+
+## Roundtripping fails because of nowiki'ing
+!! test
+Ref: 14. A nested ref-tag should be emitted as plain text
+!! options
+parsoid=wt2html
+!! wikitext
+<ref>foo <ref>bar</ref> baz</ref>
+
+<references />
+!! html/parsoid
+<p><sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup> baz&lt;/ref></p>
+
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text" data-parsoid="{}">foo &lt;ref>bar</span></li></ol>
+!! end
+
+!! test
+Ref: 15. ref-tags with identical names should get identical indexes
+!! wikitext
+A1 <ref name="a">foo</ref> A2 <ref name="a" />
+B1 <ref name="b" /> B2 <ref name="b">bar</ref>
+
+<references />
+!! html/parsoid
+<p>A1 <sup about="#mwt3" class="mw-ref" id="cite_ref-a_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-a-1"},"attrs":{"name":"a"}}'><a href="./Main_Page#cite_note-a-1"><span class="mw-reflink-text">[1]</span></a></sup> A2 <sup about="#mwt4" class="mw-ref" id="cite_ref-a_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a"}}'><a href="./Main_Page#cite_note-a-1"><span class="mw-reflink-text">[1]</span></a></sup>
+B1 <sup about="#mwt7" class="mw-ref" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"b"}}'><a href="./Main_Page#cite_note-b-2"><span class="mw-reflink-text">[2]</span></a></sup> B2 <sup about="#mwt8" class="mw-ref" id="cite_ref-b_2-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-b-2"},"attrs":{"name":"b"}}'><a href="./Main_Page#cite_note-b-2"><span class="mw-reflink-text">[2]</span></a></sup></p>
+
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-a-1" id="cite_note-a-1"><span rel="mw:referencedBy"><a href="./Main_Page#cite_ref-a_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Main_Page#cite_ref-a_1-1"><span class="mw-linkback-text">2 </span></a></span> <span id="mw-reference-text-cite_note-a-1" class="mw-reference-text">foo</span></li><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy"><a href="./Main_Page#cite_ref-b_2-0"><span class="mw-linkback-text">1 </span></a><a href="./Main_Page#cite_ref-b_2-1"><span class="mw-linkback-text">2 </span></a></span> <span id="mw-reference-text-cite_note-b-2" class="mw-reference-text">bar</span></li>
+</ol>
+!! end
+
+## We don't bother wt2wt-ing non-standard whitespace
+!! test
+Ref: 16. Tokenizer should accept non-standard whitespace in <ref> and </ref> tags
+!!options
+parsoid=wt2html
+!! wikitext
+A <ref >foo</ref >
+
+<references />
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li></ol>
+!! end
+
+!! test
+Ref: 17. Generate valid HTML5 id/about attributes
+!! wikitext
+<ref name="a b">foo</ref>
+<ref name=":0">ve-created name</ref>
+
+<references />
+!! html/parsoid
+<p><sup about="#mwt2" class="mw-ref" id="cite_ref-a_b_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-a_b-1"},"attrs":{"name":"a b"}}'><a href="./Main_Page#cite_note-a_b-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup>
+<sup about="#mwt4" class="mw-ref" id="cite_ref-:0_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-:0-2"},"attrs":{"name":":0"}}'><a href="./Main_Page#cite_note-:0-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup>
+
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-a_b-1" id="cite_note-a_b-1"><a href="./Main_Page#cite_ref-a_b_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-a_b-1" class="mw-reference-text">foo</span></li><li about="#cite_note-:0-2" id="cite_note-:0-2"><a href="./Main_Page#cite_ref-:0_2-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-:0-2" class="mw-reference-text">ve-created name</span></li></ol>
+
+!! end
+
+!! test
+Ref: 18. T58916: Extension attributes should be parsed as plain text
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
+!! wikitext
+<ref name="{{echo|a}}">foo</ref>
+
+<references />
+!! html/php
+<p><sup id="cite_ref-&#123;&#123;echo&#124;a&#125;&#125;_1-0" class="reference"><a href="#cite_note-{{echo|a}}-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-&#123;&#123;echo&#124;a&#125;&#125;-1"><span class="mw-cite-backlink"><a href="#cite_ref-{{echo|a}}_1-0">↑</a></span> <span class="reference-text">foo</span>
+</li>
+</ol></div>
+
+!! html/parsoid
+<p><sup class="mw-ref" id="cite_ref-{{echo|a}}_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-{{echo|a}}-1"},"attrs":{"name":"{{echo|a}}"}}'><a href="./Main_Page#cite_note-{{echo|a}}-1"><span class="mw-reflink-text">[1]</span></a></sup>
+</p>
+
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_ref-{{echo|a}}_1-1" id="cite_note-{{echo|a}}-1"><a href="./Main_Page#cite_ref-{{echo|a}}_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-{{echo|a}}-1" class="mw-reference-text">foo</span></li>
+</ol>
+!! end
+
+# Parsoid doesn't wt2wt this cleanly because we serialize both
+# versions of the name the same way ("a & b")
+!! test
+Ref: 19. ref-tags with identical name encodings should get identical indexes
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
+!! options
+parsoid=wt2html,html2html
+!! wikitext
+1 <ref name="a & b">foo</ref> 2 <ref name="a &amp; b" />
+
+<references />
+!! html/php
+<p>1 <sup id="cite_ref-a_&amp;_b_1-0" class="reference"><a href="#cite_note-a_&amp;_b-1">&#91;1&#93;</a></sup> 2 <sup id="cite_ref-a_&amp;_b_1-1" class="reference"><a href="#cite_note-a_&amp;_b-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-a_&amp;_b-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-a_&amp;_b_1-0">1.0</a></sup> <sup><a href="#cite_ref-a_&amp;_b_1-1">1.1</a></sup></span> <span class="reference-text">foo</span>
+</li>
+</ol></div>
+
+!! html/parsoid
+<p>1 <sup about="#mwt3" class="mw-ref" id="cite_ref-a_&amp;_b_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-a_&amp;_b-1"},"attrs":{"name":"a &amp; b"}}'><a href="./Main_Page#cite_note-a_&amp;_b-1"><span class="mw-reflink-text">[1]</span></a></sup> 2 <sup about="#mwt4" class="mw-ref" id="cite_ref-a_&amp;_b_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a &amp; b"}}'><a href="./Main_Page#cite_note-a_&amp;_b-1"><span class="mw-reflink-text">[1]</span></a></sup>
+</p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
+<li about="cite_note-a_&amp;_b-1" id="cite_note-a_&amp;_b-1"><span rel="mw:referencedBy"><a href="./Main_Page#cite_ref-a_&amp;_b_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Main_Page#cite_ref-a_&amp;_b_1-1"><span class="mw-linkback-text">2 </span></a></span> <span id="mw-reference-text-cite_note-a_&amp;_b-1" class="mw-reference-text">foo</span></li>
+</ol>
+!! end
+
+!! test
+Ref: 20. ref-tags with identical names but different content should keep it
+!! wikitext
+A <ref name="foo">Foo one</ref>
+B <ref name="foo">Foo two</ref>
+C <ref name="foo" />
+
+<references />
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-foo_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-foo-1"},"attrs":{"name":"foo"}}'><a href="./Main_Page#cite_note-foo-1"><span class="mw-reflink-text">[1]</span></a></sup>
+B <sup about="#mwt4" class="mw-ref" id="cite_ref-foo_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"Foo two"},"attrs":{"name":"foo"}}'><a href="./Main_Page#cite_note-foo-1"><span class="mw-reflink-text">[1]</span></a></sup>
+C <sup about="#mwt6" class="mw-ref" id="cite_ref-foo_1-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"foo"}}'><a href="./Main_Page#cite_note-foo-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
+
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-foo-1" id="cite_note-foo-1"><span rel="mw:referencedBy"><a href="./Main_Page#cite_ref-foo_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Main_Page#cite_ref-foo_1-1"><span class="mw-linkback-text">2 </span></a><a href="./Main_Page#cite_ref-foo_1-2"><span class="mw-linkback-text">3 </span></a></span> <span id="mw-reference-text-cite_note-foo-1" class="mw-reference-text">Foo one</span></li>
+</ol>
+!! end
+
+!! test
+References: 1. references tag without any refs should be handled properly
+!! wikitext
+<references />
+!! html/parsoid
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt2" data-mw='{"name":"references","attrs":{}}'></ol>
+!! end
+
+!! test
+References: 2. references tag with group only outputs references from that group
+!! wikitext
+A <ref group="a">foo</ref>
+B <ref group="b">bar</ref>
+C <ref>baz</ref>
+
+<references group="a" />
+<references />
+<references group="b" />
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{"group":"a"}}'><a href="./Main_Page#cite_note-1" data-mw-group="a"><span class="mw-reflink-text">[a 1]</span></a></sup>
+B <sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{"group":"b"}}'><a href="./Main_Page#cite_note-2" data-mw-group="b"><span class="mw-reflink-text">[b 1]</span></a></sup>
+C <sup class="mw-ref" id="cite_ref-3" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-3"},"attrs":{}}'><a href="./Main_Page#cite_note-3"><span class="mw-reflink-text">[1]</span></a></sup></p>
+
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt8" data-mw-group="a" data-mw='{"name":"references","attrs":{"group":"a"}}'>
+<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" data-mw-group="a" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
+</ol>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-3" id="cite_note-3"><a href="./Main_Page#cite_ref-3" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-3" class="mw-reference-text">baz</span></li>
+</ol>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt12" data-mw-group="b" data-mw='{"name":"references","attrs":{"group":"b"}}'>
+<li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#cite_ref-2" data-mw-group="b" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bar</span></li>
+</ol>
+!! end
+
+!! test
+References: 3. ref list should be cleared after processing references
+!! wikitext
+A <ref>foo</ref>
+
+<references />
+
+B <ref>bar</ref>
+
+<references />
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
+
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
+</ol>
+
+<p>B <sup about="#mwt6" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="./Main_Page#cite_note-2"><span class="mw-reflink-text">[1]</span></a></sup></p>
+
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bar</span></li>
+</ol>
+!! end
+
+!! test
+References: 4. only referenced group should be cleared after processing references
+!! wikitext
+A <ref group="a">afoo</ref>
+B <ref>bfoo</ref>
+
+<references group="a" />
+
+C <ref>cfoo</ref>
+
+<references />
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{"group":"a"}}'><a href="./Main_Page#cite_note-1" data-mw-group="a"><span class="mw-reflink-text">[a 1]</span></a></sup>
+B <sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="./Main_Page#cite_note-2"><span class="mw-reflink-text">[1]</span></a></sup></p>
+
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw-group="a" data-mw='{"name":"references","attrs":{"group":"a"}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" data-mw-group="a" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">afoo</span></li>
+</ol>
+
+<p>C <sup about="#mwt8" class="mw-ref" id="cite_ref-3" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-3"},"attrs":{}}'><a href="./Main_Page#cite_note-3"><span class="mw-reflink-text">[2]</span></a></sup></p>
+
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bfoo</span></li><li about="#cite_note-3" id="cite_note-3"><a href="./Main_Page#cite_ref-3" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-3" class="mw-reference-text">cfoo</span></li>
+</ol>
+!! end
+
+## Don't expect this to rt since we're dropping content
+!! test
+References: 5. ref tags in references should be processed while ignoring all other content
+!! options
+parsoid=wt2html,html2html
+!! wikitext
+A <ref name="a" />
+B <ref name="b">bar</ref>
+
+<references>
+<ref name="a">foo</ref>
+This should just get lost.
+</references>
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-a_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a"}}'><a href="./Main_Page#cite_note-a-1"><span class="mw-reflink-text">[1]</span></a></sup>
+B <sup about="#mwt4" class="mw-ref" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-b-2"},"attrs":{"name":"b"}}'><a href="./Main_Page#cite_note-b-2"><span class="mw-reflink-text">[2]</span></a></sup></p>
+
+
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{},"body":{"html":"\n&lt;sup about=\"#mwt8\" class=\"mw-ref\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid=&#39;{\"dsr\":[59,82,14,6]}&#39; data-mw=&#39;{\"name\":\"ref\",\"body\":{\"id\":\"mw-reference-text-cite_note-a-1\"},\"attrs\":{\"name\":\"a\"}}&#39;>&lt;a href=\"./Main_Page#cite_note-a-1\" style=\"counter-reset: mw-Ref 1;\" data-parsoid=\"{}\">&lt;span class=\"mw-reflink-text\" data-parsoid=\"{}\">[1]&lt;/span>&lt;/a>&lt;/sup>\n"}}'><li about="#cite_note-a-1" id="cite_note-a-1"><a href="./Main_Page#cite_ref-a_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-a-1" class="mw-reference-text">foo</span></li><li about="#cite_note-b-2" id="cite_note-b-2"><a href="./Main_Page#cite_ref-b_2-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-b-2" class="mw-reference-text">bar</span></li>
+</ol>
+!! end
+
+!! test
+References: 6. <references /> from a transclusion
+!! wikitext
+<ref>Foo</ref> {{echo|<references />}}
+!! html/parsoid
+<p><sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup></p> <ol class="mw-references references" typeof="mw:Extension/references mw:Transclusion" about="#mwt4" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;references />"}},"i":0}}]}'><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">Foo</span></li>
+</ol>
+!! end
+
+!! test
+References: 7. Multiple references tags (one without and one with nested refs) should be correctly handled
+!! wikitext
+A <ref>foo bar for a</ref>
+B <ref group="X" name="b" />
+
+<references />
+
+<references group="X">
+<ref name="b">foo</ref>
+</references>
+!! html/parsoid
+<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup>
+B <sup about="#mwt4" class="mw-ref" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"group":"X","name":"b"}}'><a href="./Main_Page#cite_note-b-2" data-mw-group="X"><span class="mw-reflink-text">[X 1]</span></a></sup>
+</p>
+
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo bar for a</span></li>
+</ol>
+
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt8" data-mw-group="X" data-mw='{"name":"references","attrs":{"group":"X"},"body":{"html":"\n&lt;sup about=\"#mwt10\" class=\"mw-ref\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid=&#39;{\"dsr\":[96,119,14,6]}&#39; data-mw=&#39;{\"name\":\"ref\",\"body\":{\"id\":\"mw-reference-text-cite_note-b-2\"},\"attrs\":{\"name\":\"b\"}}&#39;>&lt;a href=\"./Main_Page#cite_note-b-2\" style=\"counter-reset: mw-Ref 1;\" data-mw-group=\"X\" data-parsoid=\"{}\">&lt;span class=\"mw-reflink-text\" data-parsoid=\"{}\">[X 1]&lt;/span>&lt;/a>&lt;/sup>\n"}}'>
+<li about="#cite_note-b-2" id="cite_note-b-2"><a href="./Main_Page#cite_ref-b_2-0" data-mw-group="X" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-b-2" class="mw-reference-text">foo</span></li>
+</ol>
+!! end
+
+!! test
+References: 8. T88019: Remove <meta>s from templates inside <ref> that's itself inside a template
+!! wikitext
+X{{echo|<ref>foo {{echo|<b>bar</b>}} and {{echo|baz}} boo</ref>}}
+<references />
+!! html/parsoid
+<p>X<sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Transclusion mw:Extension/ref" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;ref>foo {{echo|&lt;b>bar&lt;/b>}} and {{echo|baz}} boo&lt;/ref>"}},"i":0}}]}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt7" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo <b data-parsoid='{"stx":"html"}'>bar</b> and baz boo</span></li>
+</ol>
+!! end
+
+!! test
+References: 9. Generate missing references list at the end
+!! wikitext
+A <ref>foo</ref>
+B <ref group="inexistent">bar</ref>
+!! html/parsoid
+<p>A <sup class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup> B <sup class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{"group":"inexistent"}}'><a href="./Main_Page#cite_note-2" data-mw-group="inexistent"><span class="mw-reflink-text">[inexistent 1]</span></a></sup></p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{},"autoGenerated":true}'>
+<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
+</ol>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw-group="inexistent" data-mw='{"name":"references","attrs":{"group":"inexistent"},"autoGenerated":true}'>
+<li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#cite_ref-2" data-mw-group="inexistent" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bar</span></li>
+</ol>
+!! end
+
+!! test
+References: 10.1. New <references/> shouldn't be added for unrelated edits.
+!! options
+parsoid={
+ "modes": ["selser"],
+ "changes": [["#x", "remove"]],
+ "selser": "noauto"
+}
+!! wikitext
+Unrelated text<span id="x"> that's going to disappear</span>.
+A <ref>foo</ref>
+!! wikitext/edited
+Unrelated text.
+A <ref>foo</ref>
+!! end
+
+!! test
+References: 10.2. New <references/> shouldn't be added for unrelated edits.
+!! options
+parsoid={
+ "modes": ["selser"],
+ "changes": [["#x", "remove"]],
+ "selser": "noauto",
+ "responsiveReferences": { "enabled": true, "threshold": 2 }
+}
+!! wikitext
+Unrelated text<span id="x"> that's going to disappear</span>.
+A <ref>foo</ref>
+!! wikitext/edited
+Unrelated text.
+A <ref>foo</ref>
+!! end
+
+# Doesn't wt2wt cleanly because we don't encode the &amp; in html2wt direction
+!! test
+Entities in ref name
+!! config
+wgFragmentMode=[ 'html5', 'legacy' ]
+!! options
+parsoid=wt2html,html2html
+!! wikitext
+<ref name="test &amp; me {{echo|foo}}">hi</ref>
+<references />
+!! html/php
+<p><sup id="cite_ref-test_&amp;_me_&#123;&#123;echo&#124;foo&#125;&#125;_1-0" class="reference"><a href="#cite_note-test_&amp;_me_{{echo|foo}}-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-test_&amp;_me_&#123;&#123;echo&#124;foo&#125;&#125;-1"><span class="mw-cite-backlink"><a href="#cite_ref-test_&amp;_me_{{echo|foo}}_1-0">↑</a></span> <span class="reference-text">hi</span>
+</li>
+</ol></div>
+
+!! html/parsoid
+<p><sup about="#mwt2" class="mw-ref" id="cite_ref-test_&amp;_me_{{echo|foo}}_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-test_&amp;_me_{{echo|foo}}-1"},"attrs":{"name":"test &amp; me {{echo|foo}}"}}'><a href="./Main_Page#cite_note-test_&amp;_me_{{echo|foo}}-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-test_&amp;_me_{{echo|foo}}-1" id="cite_note-test_&amp;_me_{{echo|foo}}-1"><a href="./Main_Page#cite_ref-test_&amp;_me_{{echo|foo}}_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-test_&amp;_me_{{echo|foo}}-1" class="mw-reference-text">hi</span></li>
+</ol>
+!! end
+
+## The output here may look funny, but it's what the php parser will do. The
+## unclosed references tag becomes escaped text, and then a new references
+## tag is auto-generated. The test is wt2html only because it roundtrips with
+## nowiki tags, and the auto-generated references tag is only dropped in
+## rtTestMode.
+!! test
+Generate references for unclosed references tag
+!! options
+parsoid=wt2html
+!! wikitext
+a<ref>foo</ref>
+
+<references>
+!! html/parsoid
+<p>a<sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
+
+<p>&lt;references></p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt3" data-mw='{"name":"references","attrs":{},"autoGenerated":true}'><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li></ol>
+!! end
+
+!! test
+New reference serializes on its own line
+!! options
+parsoid=wt2wt,html2wt
+!! wikitext
+foo
+<references />
+!! html/parsoid
+foo<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt2" data-mw='{"name":"references","attrs":{}}'></ol>
+!! end
+
+!! test
+Ref in ref
+!! wikitext
+test <ref>hi {{refinref}}</ref>
+<references />
+!! html/php
+<p>test <sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">hi </span>
+</li>
+</ol></div>
+<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code>&lt;ref&gt;</code> tag defined in <code>&lt;references&gt;</code> has no name attribute.</span>
+</p>
+!! html/parsoid
+<p>test <sup about="#mwt4" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">hi <span about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"refinref","href":"./Template:Refinref"},"params":{},"i":0}}]}'></span></span></li></ol>
+!! end
+
+## Parsoid responsive references tests
+
+!! test
+Responsive references: disabled, autogenerated
+!! options
+parsoid={
+ "modes": ["wt2html"],
+ "responsiveReferences": { "enabled": false, "threshold": 2 }
+}
+!! wikitext
+Test <ref>1</ref><ref>2</ref>
+!! html/parsoid
+<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="./Main_Page#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{},"autoGenerated":true}'><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">2</span></li></ol>
+!! end
+
+!! test
+Responsive references: enabled, autogenerated
+!! options
+parsoid={
+ "modes": ["wt2html"],
+ "responsiveReferences": { "enabled": true, "threshold": 2 }
+}
+!! wikitext
+Test <ref>1</ref><ref>2</ref>
+!! html/parsoid
+<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="./Main_Page#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
+<div class="mw-references-wrap" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{},"autoGenerated":true}'><ol class="mw-references references"><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">2</span></li></ol></div>
+!! end
+
+!! test
+Responsive references: enabled, autogenerated, exceed
+!! options
+parsoid={
+ "modes": ["wt2html"],
+ "responsiveReferences": { "enabled": true, "threshold": 1 }
+}
+!! wikitext
+Test <ref>1</ref><ref>2</ref>
+!! html/parsoid
+<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="./Main_Page#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
+<div class="mw-references-wrap mw-references-columns" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{},"autoGenerated":true}'><ol class="mw-references references"><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">2</span></li></ol></div>
+!! end
+
+!! test
+Responsive references: disabled
+!! options
+parsoid={
+ "responsiveReferences": { "enabled": false, "threshold": 2 }
+}
+!! wikitext
+Test <ref>1</ref><ref>2</ref>
+<references />
+!! html/parsoid
+<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="./Main_Page#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">2</span></li></ol>
+!! end
+
+!! test
+Responsive references: enabled
+!! options
+parsoid={
+ "responsiveReferences": { "enabled": true, "threshold": 2 }
+}
+!! wikitext
+Test <ref>1</ref><ref>2</ref>
+<references />
+!! html/parsoid
+<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="./Main_Page#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
+<div class="mw-references-wrap" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><ol class="mw-references references"><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">2</span></li></ol></div>
+!! end
+
+!! test
+Responsive references: enabled, exceed
+!! options
+parsoid={
+ "responsiveReferences": { "enabled": true, "threshold": 1 }
+}
+!! wikitext
+Test <ref>1</ref><ref>2</ref>
+<references />
+!! html/parsoid
+<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="./Main_Page#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
+<div class="mw-references-wrap mw-references-columns" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><ol class="mw-references references"><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">2</span></li></ol></div>
+!! end
+
+!! test
+Responsive references: disabled, explicit
+!! options
+parsoid={
+ "responsiveReferences": { "enabled": false, "threshold": 2 }
+}
+!! wikitext
+Test <ref>1</ref><ref>2</ref>
+<references responsive="" />
+!! html/parsoid
+<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="./Main_Page#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
+<div class="mw-references-wrap" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{"responsive":""}}'><ol class="mw-references references"><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">2</span></li></ol></div>
+!! end
+
+!! test
+Responsive references: disabled, explicit, exceed
+!! options
+parsoid={
+ "responsiveReferences": { "enabled": false, "threshold": 1 }
+}
+!! wikitext
+Test <ref>1</ref><ref>2</ref>
+<references responsive="" />
+!! html/parsoid
+<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="./Main_Page#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
+<div class="mw-references-wrap mw-references-columns" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{"responsive":""}}'><ol class="mw-references references"><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">2</span></li></ol></div>
+!! end
+
+!! test
+Responsive references: enabled, explicit off
+!! options
+parsoid={
+ "responsiveReferences": { "enabled": true, "threshold": 2 }
+}
+!! wikitext
+Test <ref>1</ref><ref>2</ref>
+<references responsive="0" />
+!! html/parsoid
+<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="./Main_Page#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{"responsive":"0"}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">2</span></li></ol>
+!! end
+
+!! test
+Responsive references: roundtrip templates
+!! options
+parsoid={
+ "responsiveReferences": { "enabled": true, "threshold": 2 }
+}
+!! wikitext
+test <ref>123</ref>
+
+{{echo|haha<references/>}}
+!! html/parsoid
+<p>test <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
+
+<p about="#mwt4" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"haha&lt;references/>"}},"i":0}}]}'>haha</p><div class="mw-references-wrap" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><ol class="mw-references references"><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">123</span></li></ol></div>
+!! end
+
+## End Parsoid responsive references tests
+
+!! article
+Template:CircularRef
+!! text
+<ref>Hi {{CircularRef}}</ref>
+!! endarticle
+
+!! test
+CircularRef
+!! wikitext
+<ref>Hi {{CircularRef}}</ref>
+<references />
+!! html/php
+<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup>
+</p>
+<div class="mw-references-wrap"><ol class="references">
+<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Hi </span>
+</li>
+</ol></div>
+<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code>&lt;ref&gt;</code> tag defined in <code>&lt;references&gt;</code> has no name attribute.</span>
+</p>
+!! html/parsoid
+<p><sup about="#mwt4" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">Hi <span about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"CircularRef","href":"./Template:CircularRef"},"params":{},"i":0}}]}'></span></span></li></ol>
+!! end
diff --git a/www/wiki/extensions/Cite/tests/phan/config.php b/www/wiki/extensions/Cite/tests/phan/config.php
new file mode 100644
index 00000000..49ddcba9
--- /dev/null
+++ b/www/wiki/extensions/Cite/tests/phan/config.php
@@ -0,0 +1,7 @@
+<?php
+
+$cfg = require __DIR__ . '/../../vendor/mediawiki/mediawiki-phan-config/src/config.php';
+// Due to creation of Parser::$extCite property
+$cfg['suppress_issue_types'][] = 'PhanUndeclaredProperty';
+
+return $cfg;