summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/CategoryTree
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/CategoryTree')
-rw-r--r--www/wiki/extensions/CategoryTree/CODE_OF_CONDUCT.md1
-rw-r--r--www/wiki/extensions/CategoryTree/COPYING339
-rw-r--r--www/wiki/extensions/CategoryTree/CategoryTree.alias.php507
-rw-r--r--www/wiki/extensions/CategoryTree/CategoryTree.i18n.magic.php263
-rw-r--r--www/wiki/extensions/CategoryTree/CategoryTree.php48
-rw-r--r--www/wiki/extensions/CategoryTree/Gruntfile.js43
-rw-r--r--www/wiki/extensions/CategoryTree/README18
-rw-r--r--www/wiki/extensions/CategoryTree/composer.json20
-rw-r--r--www/wiki/extensions/CategoryTree/extension.json143
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ace.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ady-cyrl.json15
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/aeb-arab.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/aeb-latn.json11
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/aeb.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/af.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ais.json41
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/am.json23
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/an.json35
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ang.json11
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/anp.json13
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ar.json49
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/arc.json28
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/arq.json13
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/arz.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/as.json40
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ase.json10
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ast.json41
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/atj.json19
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/av.json11
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/avk.json25
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/awa.json35
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ay.json9
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/az.json38
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/azb.json42
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ba.json43
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/bar.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/bbc-latn.json18
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/bcc.json39
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/bcl.json36
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/be-tarask.json44
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/be.json42
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/bg.json41
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/bgn.json23
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/bho.json15
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/bi.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/bjn.json35
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/bn.json46
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/bo.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/bqi.json15
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/br.json36
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/bs.json40
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/bto.json26
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ca.json42
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/cbk-zam.json11
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/cdo.json20
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ce.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ceb.json15
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ch.json9
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ckb.json38
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/co.json11
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/cop.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/crh-cyrl.json13
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/crh-latn.json14
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/cs.json40
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/csb.json41
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/cu.json14
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/cv.json15
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/cy.json35
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/da.json40
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/de-ch.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/de-formal.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/de.json47
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/din.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/diq.json45
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/dsb.json35
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/dtp.json11
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/dty.json13
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ee.json4
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/egl.json13
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/el.json41
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/en-gb.json40
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/en.json45
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/eo.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/es.json52
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/et.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/eu.json36
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ext.json14
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/fa.json48
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/fi.json45
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/fit.json29
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/fo.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/fr.json51
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/frc.json11
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/frp.json35
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/frr.json35
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/fur.json35
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/fy.json33
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ga.json38
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/gcf.json9
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/gcr.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/gd.json41
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/gl.json44
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/glk.json22
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/gn.json9
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/gom-deva.json14
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/gom-latn.json13
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/gor.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/got.json11
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/grc.json29
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/gsw.json36
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/gu.json39
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/gv.json19
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ha.json11
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/hak.json14
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/haw.json10
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/he.json44
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/hi.json47
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/hif-latn.json36
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/hoc.json9
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/hr.json45
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/hrx.json11
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/hsb.json36
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ht.json34
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/hu-formal.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/hu.json44
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/hy.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/hyw.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ia.json41
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/id.json44
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ie.json13
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ig.json21
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ilo.json39
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/inh.json31
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/io.json26
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/is.json41
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/it.json49
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ja.json50
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/jam.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/jut.json31
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/jv.json40
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ka.json39
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/kaa.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/kab.json16
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/kbp.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/kea.json10
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/khw.json28
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/kk-arab.json21
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/kk-cyrl.json35
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/kk-latn.json21
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/km.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/kn.json33
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ko.json49
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/krc.json36
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/kri.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/krj.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/krl.json13
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ks-arab.json6
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ksh.json39
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ku-latn.json31
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/kum.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/kw.json17
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ky.json34
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/la.json32
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/lad.json33
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/lag.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/lb.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/lez.json28
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/lfn.json17
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/li.json42
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/lij.json39
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/lki.json36
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/lmo.json27
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ln.json11
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/lo.json30
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/lrc.json36
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/lt.json42
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ltg.json29
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/lus.json34
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/luz.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/lv.json39
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/lzh.json17
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/lzz.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/mai.json34
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/map-bms.json35
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/mg.json20
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/mhr.json11
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/min.json33
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/mk.json44
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ml.json36
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/mn.json34
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/mo.json13
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/mr.json42
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ms.json38
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/mt.json36
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/mui.json11
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/mwl.json14
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/my.json15
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/myv.json29
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/mzn.json14
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/na.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/nah.json34
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/nan.json17
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/nap.json39
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/nb.json44
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/nds-nl.json35
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/nds.json30
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ne.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/niu.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/nl-informal.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/nl.json44
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/nn.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/nso.json15
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/nys.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/oc.json35
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/olo.json28
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/or.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/os.json28
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/pa.json38
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/pag.json10
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/pam.json14
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/pcd.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/pdc.json30
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/pfl.json28
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/pih.json10
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/pl.json44
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/pms.json36
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/pnb.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/pnt.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/prs.json11
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ps.json34
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/pt-br.json48
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/pt.json47
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/qqq.json63
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/qu.json35
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/qwh.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/rif.json9
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/rm.json20
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ro.json41
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/roa-tara.json40
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ru.json46
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/rue.json34
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sa.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sah.json34
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sat.json29
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sc.json10
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/scn.json40
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sco.json35
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sd.json14
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sdc.json33
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sdh.json14
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sgs.json15
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sh.json34
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/shi.json10
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/shn.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/shy-latn.json9
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/si.json38
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sk.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/skr-arab.json31
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sl.json40
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sm.json8
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/so.json11
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sq.json36
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sr-ec.json42
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sr-el.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/st.json16
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/stq.json30
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sty.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/su.json34
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sv.json48
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/sw.json38
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/szl.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ta.json38
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/tay.json28
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/tcy.json22
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/te.json40
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/tet.json14
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/tg-cyrl.json32
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/tg-latn.json29
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/th.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/tk.json30
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/tl.json38
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/tly.json33
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/to.json13
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/tpi.json11
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/tr.json42
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/tru.json18
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ts.json10
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/tt-cyrl.json43
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/tt-latn.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/tyv.json13
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/tzm.json19
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/udm.json15
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ug-arab.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/uk.json45
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/ur.json41
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/uz.json11
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/vec.json36
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/vep.json26
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/vi.json38
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/vls.json4
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/vo.json34
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/vro.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/wa.json28
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/war.json16
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/wo.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/wuu.json29
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/xal.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/xmf.json12
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/yi.json37
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/yo.json33
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/yue.json43
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/zea.json31
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/zgh.json14
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/zh-hans.json48
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/zh-hant.json50
-rw-r--r--www/wiki/extensions/CategoryTree/i18n/zu.json5
-rw-r--r--www/wiki/extensions/CategoryTree/includes/ApiCategoryTree.php143
-rw-r--r--www/wiki/extensions/CategoryTree/includes/CategoryTree.php822
-rw-r--r--www/wiki/extensions/CategoryTree/includes/CategoryTreeCategoryPage.php23
-rw-r--r--www/wiki/extensions/CategoryTree/includes/CategoryTreeCategoryViewer.php78
-rw-r--r--www/wiki/extensions/CategoryTree/includes/CategoryTreeHidePrefix.php39
-rw-r--r--www/wiki/extensions/CategoryTree/includes/CategoryTreeHooks.php321
-rw-r--r--www/wiki/extensions/CategoryTree/includes/CategoryTreeMode.php38
-rw-r--r--www/wiki/extensions/CategoryTree/includes/CategoryTreePage.php214
-rw-r--r--www/wiki/extensions/CategoryTree/modules/ext.categoryTree.css118
-rw-r--r--www/wiki/extensions/CategoryTree/modules/ext.categoryTree.js205
-rw-r--r--www/wiki/extensions/CategoryTree/tests/phan/config.php9
327 files changed, 11714 insertions, 0 deletions
diff --git a/www/wiki/extensions/CategoryTree/CODE_OF_CONDUCT.md b/www/wiki/extensions/CategoryTree/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..d8e5d087
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/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/CategoryTree/COPYING b/www/wiki/extensions/CategoryTree/COPYING
new file mode 100644
index 00000000..d159169d
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/COPYING
@@ -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/CategoryTree/CategoryTree.alias.php b/www/wiki/extensions/CategoryTree/CategoryTree.alias.php
new file mode 100644
index 00000000..1e0215da
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/CategoryTree.alias.php
@@ -0,0 +1,507 @@
+<?php
+/**
+ * Aliases for Special:CategoryTree
+ *
+ * @file
+ * @ingroup Extensions
+ * @author Daniel Kinzler, brightbyte.de
+ * @copyright © 2006-2008 Daniel Kinzler and others
+ * @license GPL-2.0-or-later
+ */
+
+$specialPageAliases = [];
+
+/** English (English) */
+$specialPageAliases['en'] = [
+ 'CategoryTree' => [ 'CategoryTree' ],
+];
+
+/** Afrikaans (Afrikaans) */
+$specialPageAliases['af'] = [
+ 'CategoryTree' => [ 'KategorieBoom' ],
+];
+
+/** Aragonese (aragonés) */
+$specialPageAliases['an'] = [
+ 'CategoryTree' => [ 'Árbol_de_categorías' ],
+];
+
+/** Arabic (العربية) */
+$specialPageAliases['ar'] = [
+ 'CategoryTree' => [ 'شجرة_تصنيف' ],
+];
+
+/** Aramaic (ܐܪܡܝܐ) */
+$specialPageAliases['arc'] = [
+ 'CategoryTree' => [ 'ܐܝܠܢܐ_ܕܣܕܪܐ' ],
+];
+
+/** Egyptian Arabic (مصرى) */
+$specialPageAliases['arz'] = [
+ 'CategoryTree' => [ 'شجرة_تصنيف' ],
+];
+
+/** Assamese (অসমীয়া) */
+$specialPageAliases['as'] = [
+ 'CategoryTree' => [ 'শ্ৰেণীবৃক্ষ' ],
+];
+
+/** Avaric (авар) */
+$specialPageAliases['av'] = [
+ 'CategoryTree' => [ 'Категориязул_гъветІ' ],
+];
+
+/** Bashkir (башҡортса) */
+$specialPageAliases['ba'] = [
+ 'CategoryTree' => [ 'Категория_ағасы' ],
+];
+
+/** Bikol Central (Bikol Central) */
+$specialPageAliases['bcl'] = [
+ 'CategoryTree' => [ 'KahoyNinKategorya' ],
+];
+
+/** Belarusian (Taraškievica orthography) (беларуская (тарашкевіца)‎) */
+$specialPageAliases['be-tarask'] = [
+ 'CategoryTree' => [ 'Дрэва_катэгорыяў' ],
+];
+
+/** Bulgarian (български) */
+$specialPageAliases['bg'] = [
+ 'CategoryTree' => [ 'Дърво_на_категориите' ],
+];
+
+/** Western Balochi (بلوچی رخشانی) */
+$specialPageAliases['bgn'] = [
+ 'CategoryTree' => [ 'تهری_درچّگ_یا_درخت' ],
+];
+
+/** Banjar (Bahasa Banjar) */
+$specialPageAliases['bjn'] = [
+ 'CategoryTree' => [ 'Puhun_tumbung' ],
+];
+
+/** Bengali (বাংলা) */
+$specialPageAliases['bn'] = [
+ 'CategoryTree' => [ 'বিষয়শ্রেণী_বৃক্ষ' ],
+];
+
+/** Breton (brezhoneg) */
+$specialPageAliases['br'] = [
+ 'CategoryTree' => [ 'GwezennadurRummad' ],
+];
+
+/** Bosnian (bosanski) */
+$specialPageAliases['bs'] = [
+ 'CategoryTree' => [ 'StabloKategorija' ],
+];
+
+/** Catalan (català) */
+$specialPageAliases['ca'] = [
+ 'CategoryTree' => [ 'Categories_en_arbre', 'Arbre_de_categories' ],
+];
+
+/** Min Dong Chinese (Mìng-dĕ̤ng-ngṳ̄) */
+$specialPageAliases['cdo'] = [
+ 'CategoryTree' => [ '分類樹' ],
+];
+
+/** Chechen (нохчийн) */
+$specialPageAliases['ce'] = [
+ 'CategoryTree' => [ 'Категорийн_дит' ],
+];
+
+/** Czech (čeština) */
+$specialPageAliases['cs'] = [
+ 'CategoryTree' => [ 'Strom_kategorií' ],
+];
+
+/** Danish (dansk) */
+$specialPageAliases['da'] = [
+ 'CategoryTree' => [ 'Kategoritræ' ],
+];
+
+/** German (Deutsch) */
+$specialPageAliases['de'] = [
+ 'CategoryTree' => [ 'Kategorienbaum', 'Kategoriebaum' ],
+];
+
+/** Zazaki (Zazaki) */
+$specialPageAliases['diq'] = [
+ 'CategoryTree' => [ 'DaraKategoriye' ],
+];
+
+/** Lower Sorbian (dolnoserbski) */
+$specialPageAliases['dsb'] = [
+ 'CategoryTree' => [ 'Bom_kategorijow' ],
+];
+
+/** Greek (Ελληνικά) */
+$specialPageAliases['el'] = [
+ 'CategoryTree' => [ 'ΔέντροΚατηγορίας' ],
+];
+
+/** Esperanto (Esperanto) */
+$specialPageAliases['eo'] = [
+ 'CategoryTree' => [ 'Arbo_de_kategorioj', 'Kategorio-arbo' ],
+];
+
+/** Spanish (español) */
+$specialPageAliases['es'] = [
+ 'CategoryTree' => [ 'ÁrbolDeCategorías', 'Árbol_de_categorías' ],
+];
+
+/** Estonian (eesti) */
+$specialPageAliases['et'] = [
+ 'CategoryTree' => [ 'Kategooriapuu' ],
+];
+
+/** Basque (euskara) */
+$specialPageAliases['eu'] = [
+ 'CategoryTree' => [ 'KategoriaZuhaitza' ],
+];
+
+/** Persian (فارسی) */
+$specialPageAliases['fa'] = [
+ 'CategoryTree' => [ 'درخت_رده' ],
+];
+
+/** Finnish (suomi) */
+$specialPageAliases['fi'] = [
+ 'CategoryTree' => [ 'Luokkapuu' ],
+];
+
+/** French (français) */
+$specialPageAliases['fr'] = [
+ 'CategoryTree' => [ 'ArbreCatégorie', 'ArbreCategorie', 'Arbre_catégorie' ],
+];
+
+/** Arpitan (arpetan) */
+$specialPageAliases['frp'] = [
+ 'CategoryTree' => [ 'Structura_d\'âbro_de_les_catègories', 'StructuraDÂbroDeLesCatègories' ],
+];
+
+/** Western Frisian (Frysk) */
+$specialPageAliases['fy'] = [
+ 'CategoryTree' => [ 'Kategorybeam' ],
+];
+
+/** Galician (galego) */
+$specialPageAliases['gl'] = [
+ 'CategoryTree' => [ 'Árbore_de_categorías' ],
+];
+
+/** Swiss German (Alemannisch) */
+$specialPageAliases['gsw'] = [
+ 'CategoryTree' => [ 'Kategoriebaum' ],
+];
+
+/** Gujarati (ગુજરાતી) */
+$specialPageAliases['gu'] = [
+ 'CategoryTree' => [ 'શ્રેણીવૃક્ષ' ],
+];
+
+/** Hebrew (עברית) */
+$specialPageAliases['he'] = [
+ 'CategoryTree' => [ 'עץ_קטגוריות' ],
+];
+
+/** Hindi (हिन्दी) */
+$specialPageAliases['hi'] = [
+ 'CategoryTree' => [ 'श्रेणी_वृक्ष', 'श्रेणीवृक्ष' ],
+];
+
+/** Upper Sorbian (hornjoserbsce) */
+$specialPageAliases['hsb'] = [
+ 'CategoryTree' => [ 'Kategorijowy_štom' ],
+];
+
+/** Xiang Chinese (湘语) */
+$specialPageAliases['hsn'] = [
+ 'CategoryTree' => [ '类别树' ],
+];
+
+/** Haitian (Kreyòl ayisyen) */
+$specialPageAliases['ht'] = [
+ 'CategoryTree' => [ 'NivoKategori' ],
+];
+
+/** Hungarian (magyar) */
+$specialPageAliases['hu'] = [
+ 'CategoryTree' => [ 'Kategóriafa' ],
+];
+
+/** Interlingua (interlingua) */
+$specialPageAliases['ia'] = [
+ 'CategoryTree' => [ 'Arbore_de_categorias' ],
+];
+
+/** Indonesian (Bahasa Indonesia) */
+$specialPageAliases['id'] = [
+ 'CategoryTree' => [ 'Pohon_kategori', 'PohonKategori' ],
+];
+
+/** Ido (Ido) */
+$specialPageAliases['io'] = [
+ 'CategoryTree' => [ 'KategorioArboro' ],
+];
+
+/** Italian (italiano) */
+$specialPageAliases['it'] = [
+ 'CategoryTree' => [ 'AlberoCategorie' ],
+];
+
+/** Japanese (日本語) */
+$specialPageAliases['ja'] = [
+ 'CategoryTree' => [ 'カテゴリツリー' ],
+];
+
+/** Georgian (ქართული) */
+$specialPageAliases['ka'] = [
+ 'CategoryTree' => [ 'კატეგორიის_ხე' ],
+];
+
+/** Khmer (ភាសាខ្មែរ) */
+$specialPageAliases['km'] = [
+ 'CategoryTree' => [ 'មែកធាងចំណាត់ថ្នាក់ក្រុម' ],
+];
+
+/** Korean (한국어) */
+$specialPageAliases['ko'] = [
+ 'CategoryTree' => [ '분류트리' ],
+];
+
+/** Colognian (Ripoarisch) */
+$specialPageAliases['ksh'] = [
+ 'CategoryTree' => [ 'Saachjruppeboum' ],
+];
+
+/** Kurdish (Kurdî) */
+$specialPageAliases['ku'] = [
+ 'CategoryTree' => [ 'Dara_kategoriyan' ],
+];
+
+/** Cornish (kernowek) */
+$specialPageAliases['kw'] = [
+ 'CategoryTree' => [ 'GwedhenGlassys' ],
+];
+
+/** Latin (Latina) */
+$specialPageAliases['la'] = [
+ 'CategoryTree' => [ 'Categoriarum_arbor' ],
+];
+
+/** Ladino (Ladino) */
+$specialPageAliases['lad'] = [
+ 'CategoryTree' => [ 'Árvole_de_Kateggorías' ],
+];
+
+/** Luxembourgish (Lëtzebuergesch) */
+$specialPageAliases['lb'] = [
+ 'CategoryTree' => [ 'Struktur_vun_de_Kategorien' ],
+];
+
+/** Northern Luri (لۊری شومالی) */
+$specialPageAliases['lrc'] = [
+ 'CategoryTree' => [ 'دار_دأسە' ],
+];
+
+/** Malagasy (Malagasy) */
+$specialPageAliases['mg'] = [
+ 'CategoryTree' => [ 'Hazon-tsokajy', 'Hazontsokajy' ],
+];
+
+/** Minangkabau (Baso Minangkabau) */
+$specialPageAliases['min'] = [
+ 'CategoryTree' => [ 'BatangKategori' ],
+];
+
+/** Macedonian (македонски) */
+$specialPageAliases['mk'] = [
+ 'CategoryTree' => [ 'ДрвоНаКатегории' ],
+];
+
+/** Malayalam (മലയാളം) */
+$specialPageAliases['ml'] = [
+ 'CategoryTree' => [ 'വർഗ്ഗവൃക്ഷം' ],
+];
+
+/** Marathi (मराठी) */
+$specialPageAliases['mr'] = [
+ 'CategoryTree' => [ 'वर्गवृक्ष' ],
+];
+
+/** Malay (Bahasa Melayu) */
+$specialPageAliases['ms'] = [
+ 'CategoryTree' => [ 'Salasilah_kategori' ],
+];
+
+/** Maltese (Malti) */
+$specialPageAliases['mt'] = [
+ 'CategoryTree' => [ 'SiġraKategorija' ],
+];
+
+/** Erzya (эрзянь) */
+$specialPageAliases['myv'] = [
+ 'CategoryTree' => [ 'КатегорияньЧувто' ],
+];
+
+/** Norwegian Bokmål (norsk bokmål) */
+$specialPageAliases['nb'] = [
+ 'CategoryTree' => [ 'Kategoritre' ],
+];
+
+/** Low German (Plattdüütsch) */
+$specialPageAliases['nds'] = [
+ 'CategoryTree' => [ 'Kategorieboom' ],
+];
+
+/** Low Saxon (Netherlands) (Nedersaksies) */
+$specialPageAliases['nds-nl'] = [
+ 'CategoryTree' => [ 'Kategorieboom' ],
+];
+
+/** Dutch (Nederlands) */
+$specialPageAliases['nl'] = [
+ 'CategoryTree' => [ 'Categorieboom' ],
+];
+
+/** Norwegian Nynorsk (norsk nynorsk) */
+$specialPageAliases['nn'] = [
+ 'CategoryTree' => [ 'Kategoritre' ],
+];
+
+/** Occitan (occitan) */
+$specialPageAliases['oc'] = [
+ 'CategoryTree' => [ 'ArbreCategoria', 'Arbre_categoria' ],
+];
+
+/** Polish (polski) */
+$specialPageAliases['pl'] = [
+ 'CategoryTree' => [ 'Drzewo_kategorii' ],
+];
+
+/** Pashto (پښتو) */
+$specialPageAliases['ps'] = [
+ 'CategoryTree' => [ 'د_وېشنيزو_ونه' ],
+];
+
+/** Portuguese (português) */
+$specialPageAliases['pt'] = [
+ 'CategoryTree' => [ 'Árvore_de_categorias' ],
+];
+
+/** Brazilian Portuguese (português do Brasil) */
+$specialPageAliases['pt-br'] = [
+ 'CategoryTree' => [ 'Árvore_de_categorias', 'Árvore_de_categoria' ],
+];
+
+/** Romanian (română) */
+$specialPageAliases['ro'] = [
+ 'CategoryTree' => [ 'Arborele_categoriilor' ],
+];
+
+/** Russian (русский) */
+$specialPageAliases['ru'] = [
+ 'CategoryTree' => [ 'Дерево_категорий' ],
+];
+
+/** Sanskrit (संस्कृतम्) */
+$specialPageAliases['sa'] = [
+ 'CategoryTree' => [ 'वर्गवृक्ष:' ],
+];
+
+/** Sicilian (sicilianu) */
+$specialPageAliases['scn'] = [
+ 'CategoryTree' => [ 'AlberoCategorie' ],
+];
+
+/** Sinhala (සිංහල) */
+$specialPageAliases['si'] = [
+ 'CategoryTree' => [ 'ප්‍රවර්ගරුක' ],
+];
+
+/** Slovak (slovenčina) */
+$specialPageAliases['sk'] = [
+ 'CategoryTree' => [ 'StromKategórií' ],
+];
+
+/** Swedish (svenska) */
+$specialPageAliases['sv'] = [
+ 'CategoryTree' => [ 'Kategoriträd' ],
+];
+
+/** Swahili (Kiswahili) */
+$specialPageAliases['sw'] = [
+ 'CategoryTree' => [ 'SafuyaJamii' ],
+];
+
+/** Telugu (తెలుగు) */
+$specialPageAliases['te'] = [
+ 'CategoryTree' => [ 'వర్గవృక్షం' ],
+];
+
+/** Thai (ไทย) */
+$specialPageAliases['th'] = [
+ 'CategoryTree' => [ 'หมวดหมู่แบบผังต้นไม้' ],
+];
+
+/** Tagalog (Tagalog) */
+$specialPageAliases['tl'] = [
+ 'CategoryTree' => [ 'Puno_ng_kaurian' ],
+];
+
+/** Talysh (толышә зывон) */
+$specialPageAliases['tly'] = [
+ 'CategoryTree' => [ 'Категоријон_до' ],
+];
+
+/** Turkish (Türkçe) */
+$specialPageAliases['tr'] = [
+ 'CategoryTree' => [ 'KategoriAğacı', 'KategoriHiyerarşisi', 'UlamAğacı', 'UlamHiyerarşisi' ],
+];
+
+/** Ukrainian (українська) */
+$specialPageAliases['uk'] = [
+ 'CategoryTree' => [ 'Дерево_категорій', 'Дерево_категорий' ],
+];
+
+/** Urdu (اردو) */
+$specialPageAliases['ur'] = [
+ 'CategoryTree' => [ 'شجرہ_زمرہ' ],
+];
+
+/** Venetian (vèneto) */
+$specialPageAliases['vec'] = [
+ 'CategoryTree' => [ 'ÀlbaroCategorie' ],
+];
+
+/** Veps (vepsän kel’) */
+$specialPageAliases['vep'] = [
+ 'CategoryTree' => [ 'KategorijoidenPu' ],
+];
+
+/** Vietnamese (Tiếng Việt) */
+$specialPageAliases['vi'] = [
+ 'CategoryTree' => [ 'Cây_thể_loại' ],
+];
+
+/** Yiddish (ייִדיש) */
+$specialPageAliases['yi'] = [
+ 'CategoryTree' => [ 'קאטעגאריע_בוים' ],
+];
+
+/** Simplified Chinese (中文(简体)‎) */
+$specialPageAliases['zh-hans'] = [
+ 'CategoryTree' => [ '分类树' ],
+];
+
+/** Traditional Chinese (中文(繁體)‎) */
+$specialPageAliases['zh-hant'] = [
+ 'CategoryTree' => [ '分類樹' ],
+];
+
+/** Chinese (Taiwan) (中文(台灣)‎) */
+$specialPageAliases['zh-tw'] = [
+ 'CategoryTree' => [ '分類樹' ],
+];
diff --git a/www/wiki/extensions/CategoryTree/CategoryTree.i18n.magic.php b/www/wiki/extensions/CategoryTree/CategoryTree.i18n.magic.php
new file mode 100644
index 00000000..5fec9fcd
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/CategoryTree.i18n.magic.php
@@ -0,0 +1,263 @@
+<?php
+/**
+ * Internationalisation file for extension CategoryTree.
+ *
+ * @file
+ * @ingroup Extensions
+ * @author Daniel Kinzler, brightbyte.de
+ * @copyright © 2006-2008 Daniel Kinzler
+ * @license GPL-2.0-or-later
+ */
+
+$magicWords = [];
+
+/** English (English) */
+$magicWords['en'] = [
+ 'categorytree' => [ 0, 'categorytree' ],
+];
+
+/** Afrikaans (Afrikaans) */
+$magicWords['af'] = [
+ 'categorytree' => [ 0, 'kategorieboom', 'categorytree' ],
+];
+
+/** Arabic (العربية) */
+$magicWords['ar'] = [
+ 'categorytree' => [ 0, 'شجرة_تصنيف' ],
+];
+
+/** Egyptian Arabic (مصرى) */
+$magicWords['arz'] = [
+ 'categorytree' => [ 0, 'شجرة_تصنيف' ],
+];
+
+/** Bengali (বাংলা) */
+$magicWords['bn'] = [
+ 'categorytree' => [ 0, 'বিষয়শ্রেণী_বৃক্ষ', 'বিষয়শ্রেণীবৃক্ষ', 'categorytree' ],
+];
+
+/** Breton (brezhoneg) */
+$magicWords['br'] = [
+ 'categorytree' => [ 0, 'GwezennadurRummad' ],
+];
+
+/** Chechen (нохчийн) */
+$magicWords['ce'] = [
+ 'categorytree' => [ 0, 'категоридит', 'деревокатегорий' ],
+];
+
+/** German (Deutsch) */
+$magicWords['de'] = [
+ 'categorytree' => [ 0, 'kategorienbaum', 'kategoriebaum' ],
+];
+
+/** Zazaki (Zazaki) */
+$magicWords['diq'] = [
+ 'categorytree' => [ 0, 'darakategori' ],
+];
+
+/** Esperanto (Esperanto) */
+$magicWords['eo'] = [
+ 'categorytree' => [ 0, 'kategoriarbo' ],
+];
+
+/** Spanish (español) */
+$magicWords['es'] = [
+ 'categorytree' => [ 0, 'árboldecategorías', 'arboldecategorias' ],
+];
+
+/** Estonian (eesti) */
+$magicWords['et'] = [
+ 'categorytree' => [ 0, 'kategooriapuu' ],
+];
+
+/** Persian (فارسی) */
+$magicWords['fa'] = [
+ 'categorytree' => [ 0, 'درخت‌رده', 'درخت_رده' ],
+];
+
+/** French (français) */
+$magicWords['fr'] = [
+ 'categorytree' => [ 0, 'arbrecatégories', 'arbrecats' ],
+];
+
+/** Western Frisian (Frysk) */
+$magicWords['fy'] = [
+ 'categorytree' => [ 0, 'kategorybeam' ],
+];
+
+/** Galician (galego) */
+$magicWords['gl'] = [
+ 'categorytree' => [ 0, 'árboredecategorías' ],
+];
+
+/** Hebrew (עברית) */
+$magicWords['he'] = [
+ 'categorytree' => [ 0, 'עץ_קטגוריה' ],
+];
+
+/** Hindi (हिन्दी) */
+$magicWords['hi'] = [
+ 'categorytree' => [ 0, 'श्रेणी_वृक्ष' ],
+];
+
+/** Igbo (Igbo) */
+$magicWords['ig'] = [
+ 'categorytree' => [ 0, 'óshíshíébéonọr', 'categorytree' ],
+];
+
+/** Italian (italiano) */
+$magicWords['it'] = [
+ 'categorytree' => [ 0, 'alberocategorie' ],
+];
+
+/** Japanese (日本語) */
+$magicWords['ja'] = [
+ 'categorytree' => [ 0, 'カテゴリツリー' ],
+];
+
+/** Georgian (ქართული) */
+$magicWords['ka'] = [
+ 'categorytree' => [ 0, 'კატეგორიის_ხე' ],
+];
+
+/** Korean (한국어) */
+$magicWords['ko'] = [
+ 'categorytree' => [ 0, '분류트리' ],
+];
+
+/** Kurdish (Latin script) (Kurdî (latînî)‎) */
+$magicWords['ku-latn'] = [
+ 'categorytree' => [ 0, 'dara_kategoriyan' ],
+];
+
+/** Cornish (kernowek) */
+$magicWords['kw'] = [
+ 'categorytree' => [ 0, 'gwedhenglass' ],
+];
+
+/** Ladino (Ladino) */
+$magicWords['lad'] = [
+ 'categorytree' => [ 0, 'árvoledekateggorías', 'árboldecategorías', 'arboldecategorias',
+ 'categorytree' ],
+];
+
+/** Malagasy (Malagasy) */
+$magicWords['mg'] = [
+ 'categorytree' => [ 0, 'karazantsokajy', 'categorytree' ],
+];
+
+/** Macedonian (македонски) */
+$magicWords['mk'] = [
+ 'categorytree' => [ 0, 'стеблонакатегории' ],
+];
+
+/** Malayalam (മലയാളം) */
+$magicWords['ml'] = [
+ 'categorytree' => [ 0, 'വർഗ്ഗവൃക്ഷം' ],
+];
+
+/** Marathi (मराठी) */
+$magicWords['mr'] = [
+ 'categorytree' => [ 0, 'वर्गवृक्ष' ],
+];
+
+/** Norwegian Bokmål (norsk bokmål) */
+$magicWords['nb'] = [
+ 'categorytree' => [ 0, 'kategoritre' ],
+];
+
+/** Low Saxon (Netherlands) (Nedersaksies) */
+$magicWords['nds-nl'] = [
+ 'categorytree' => [ 0, 'kategorieboom', 'categorieboom' ],
+];
+
+/** Dutch (Nederlands) */
+$magicWords['nl'] = [
+ 'categorytree' => [ 0, 'categorieboom' ],
+];
+
+/** Norwegian Nynorsk (norsk nynorsk) */
+$magicWords['nn'] = [
+ 'categorytree' => [ 0, 'kategoritre' ],
+];
+
+/** Polish (polski) */
+$magicWords['pl'] = [
+ 'categorytree' => [ 0, 'drzewokategorii' ],
+];
+
+/** Romanian (română) */
+$magicWords['ro'] = [
+ 'categorytree' => [ 0, 'arborecategorie' ],
+];
+
+/** Russian (русский) */
+$magicWords['ru'] = [
+ 'categorytree' => [ 0, 'деревокатегорий' ],
+];
+
+/** Serbian (Cyrillic script) (српски (ћирилица)‎) */
+$magicWords['sr-ec'] = [
+ 'categorytree' => [ 0, 'стаблокатегорије', 'стабло_категорије' ],
+];
+
+/** Serbian (Latin script) (srpski (latinica)‎) */
+$magicWords['sr-el'] = [
+ 'categorytree' => [ 0, 'stablokategorije', 'stablo_kategorije' ],
+];
+
+/** Swedish (svenska) */
+$magicWords['sv'] = [
+ 'categorytree' => [ 0, 'kategoriträd', 'categorytree' ],
+];
+
+/** Turkish (Türkçe) */
+$magicWords['tr'] = [
+ 'categorytree' => [ 0, 'kategorihiyerarşisi', 'kategoriağacı', 'ulamhiyerarşisi', 'ulamağacı' ],
+];
+
+/** Tatar (Cyrillic script) (татарча) */
+$magicWords['tt-cyrl'] = [
+ 'categorytree' => [ 0, 'төркемнәр_шәҗәрәсе' ],
+];
+
+/** Tuvinian (тыва дыл) */
+$magicWords['tyv'] = [
+ 'categorytree' => [ 0, 'аңгылал_ыяжы' ],
+];
+
+/** Ukrainian (українська) */
+$magicWords['uk'] = [
+ 'categorytree' => [ 0, 'деревокатегорій', 'деревокатегорий' ],
+];
+
+/** Urdu (اردو) */
+$magicWords['ur'] = [
+ 'categorytree' => [ 0, 'شجرہ_زمرہ', 'شجر_زمرہ' ],
+];
+
+/** Uzbek (oʻzbekcha/ўзбекча) */
+$magicWords['uz'] = [
+ 'categorytree' => [ 0, 'turkumiyerarxiyasi', 'turkumdaraxti' ],
+];
+
+/** Vietnamese (Tiếng Việt) */
+$magicWords['vi'] = [
+ 'categorytree' => [ 0, 'cây_thể_loại', 'câythểloại' ],
+];
+
+/** Yiddish (ייִדיש) */
+$magicWords['yi'] = [
+ 'categorytree' => [ 0, 'קאטעגאריע_בוים' ],
+];
+
+/** Simplified Chinese (中文(简体)‎) */
+$magicWords['zh-hans'] = [
+ 'categorytree' => [ 0, '分类树' ],
+];
+
+/** Traditional Chinese (中文(繁體)‎) */
+$magicWords['zh-hant'] = [
+ 'categorytree' => [ 0, '分類樹' ],
+];
diff --git a/www/wiki/extensions/CategoryTree/CategoryTree.php b/www/wiki/extensions/CategoryTree/CategoryTree.php
new file mode 100644
index 00000000..697ee270
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/CategoryTree.php
@@ -0,0 +1,48 @@
+<?php
+
+/**
+ * CategoryTree extension, an AJAX based gadget
+ * to display the category structure of a wiki
+ *
+ * @file
+ * @ingroup Extensions
+ * @author Daniel Kinzler, brightbyte.de
+ * @copyright © 2006-2008 Daniel Kinzler and others
+ * @license GPL-2.0-or-later
+ */
+
+if ( function_exists( 'wfLoadExtension' ) ) {
+ wfLoadExtension( 'CategoryTree' );
+ // Keep i18n globals so mergeMessageFileList.php doesn't break
+ $wgMessagesDirs['CategoryTree'] = __DIR__ . '/i18n';
+ /* wfWarn(
+ 'Deprecated PHP entry point used for CategoryTree extension. ' .
+ 'Please use wfLoadExtension instead, ' .
+ 'see https://www.mediawiki.org/wiki/Extension_registration for more details.'
+ ); */
+ return true;
+} else {
+ die( 'This version of the CategoryTree extension requires MediaWiki 1.25+' );
+}
+
+// To maintain compatibility with configuration we currently keep
+// the defines, but there are deprecated, and we'll be removed in
+// a future MediaWiki release, in addition to this file.
+
+/**
+* Constants for use with the mode,
+* defining what should be shown in the tree
+*/
+define( 'CT_MODE_CATEGORIES', 0 );
+define( 'CT_MODE_PAGES', 10 );
+define( 'CT_MODE_ALL', 20 );
+define( 'CT_MODE_PARENTS', 100 );
+
+/**
+* Constants for use with the hideprefix option,
+* defining when the namespace prefix should be hidden
+*/
+define( 'CT_HIDEPREFIX_NEVER', 0 );
+define( 'CT_HIDEPREFIX_ALWAYS', 10 );
+define( 'CT_HIDEPREFIX_CATEGORIES', 20 );
+define( 'CT_HIDEPREFIX_AUTO', 30 );
diff --git a/www/wiki/extensions/CategoryTree/Gruntfile.js b/www/wiki/extensions/CategoryTree/Gruntfile.js
new file mode 100644
index 00000000..4aab7c17
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/Gruntfile.js
@@ -0,0 +1,43 @@
+/*!
+ * Grunt file
+ *
+ * @package CategoryTree
+ */
+
+/* eslint-env node */
+module.exports = function ( grunt ) {
+ grunt.loadNpmTasks( 'grunt-jsonlint' );
+ grunt.loadNpmTasks( 'grunt-eslint' );
+ grunt.loadNpmTasks( 'grunt-banana-checker' );
+ grunt.loadNpmTasks( 'grunt-stylelint' );
+
+ grunt.initConfig( {
+ banana: {
+ all: [ 'i18n/' ]
+ },
+ eslint: {
+ all: [
+ '**/*.js',
+ '!node_modules/**',
+ '!vendor/**'
+ ]
+ },
+ jsonlint: {
+ all: [
+ '**/*.json',
+ '!node_modules/**',
+ '!vendor/**'
+ ]
+ },
+ stylelint: {
+ all: [
+ '**/*.css',
+ '!node_modules/**',
+ '!vendor/**'
+ ]
+ }
+ } );
+
+ grunt.registerTask( 'test', [ 'jsonlint', 'banana', 'eslint', 'stylelint' ] );
+ grunt.registerTask( 'default', 'test' );
+};
diff --git a/www/wiki/extensions/CategoryTree/README b/www/wiki/extensions/CategoryTree/README
new file mode 100644
index 00000000..b36de002
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/README
@@ -0,0 +1,18 @@
+--------------------------------------------------------------------------
+README for the CategoryTree extension
+Copyright © 2006-2008 Daniel Kinzler and others
+Licenses: GNU General Public Licence (GPL)
+ GNU Free Documentation License (GFDL)
+--------------------------------------------------------------------------
+
+The CategoryTree extension provides a dynamic view of the wiki's category
+structure as a tree. It uses AJAX to load parts of the tree on demand.
+
+The CategoryTree extension was originally written by Daniel Kinzler in
+2006 and is released under the GNU General Public Licence (GPL). The
+internationalization files contain contributions by several people;
+they are mentioned in each file individually. Also thanks to Tim Starling
+for his contributions.
+
+Instructions on installing and using this extension are available at
+<http://www.mediawiki.org/wiki/Extension:CategoryTree>
diff --git a/www/wiki/extensions/CategoryTree/composer.json b/www/wiki/extensions/CategoryTree/composer.json
new file mode 100644
index 00000000..0107a5d4
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/composer.json
@@ -0,0 +1,20 @@
+{
+ "require-dev": {
+ "jakub-onderka/php-parallel-lint": "1.0.0",
+ "jakub-onderka/php-console-highlighter": "0.3.2",
+ "mediawiki/mediawiki-codesniffer": "18.0.0",
+ "mediawiki/minus-x": "0.3.1",
+ "mediawiki/mediawiki-phan-config": "0.2.0"
+ },
+ "scripts": {
+ "fix": [
+ "phpcbf",
+ "minus-x fix ."
+ ],
+ "test": [
+ "parallel-lint . --exclude vendor --exclude node_modules",
+ "phpcs -p -s",
+ "minus-x check ."
+ ]
+ }
+}
diff --git a/www/wiki/extensions/CategoryTree/extension.json b/www/wiki/extensions/CategoryTree/extension.json
new file mode 100644
index 00000000..9f2d1349
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/extension.json
@@ -0,0 +1,143 @@
+{
+ "name": "CategoryTree",
+ "author": "Daniel Kinzler",
+ "url": "https://www.mediawiki.org/wiki/Extension:CategoryTree",
+ "descriptionmsg": "categorytree-desc",
+ "license-name": "GPL-2.0-or-later",
+ "type": "parserhook",
+ "ConfigRegistry": {
+ "categorytree": "GlobalVarConfig::newInstance"
+ },
+ "ExtensionFunctions": [
+ "CategoryTreeHooks::initialize"
+ ],
+ "SpecialPages": {
+ "CategoryTree": "CategoryTreePage"
+ },
+ "APIModules": {
+ "categorytree": "ApiCategoryTree"
+ },
+ "MessagesDirs": {
+ "CategoryTree": [
+ "i18n"
+ ]
+ },
+ "ExtensionMessagesFiles": {
+ "CategoryTreeAlias": "CategoryTree.alias.php",
+ "CategoryTreeMagic": "CategoryTree.i18n.magic.php"
+ },
+ "AutoloadClasses": {
+ "CategoryTreePage": "includes/CategoryTreePage.php",
+ "CategoryTree": "includes/CategoryTree.php",
+ "CategoryTreeCategoryPage": "includes/CategoryTreeCategoryPage.php",
+ "CategoryTreeCategoryViewer": "includes/CategoryTreeCategoryViewer.php",
+ "CategoryTreeHooks": "includes/CategoryTreeHooks.php",
+ "CategoryTreeMode": "includes/CategoryTreeMode.php",
+ "CategoryTreeHidePrefix": "includes/CategoryTreeHidePrefix.php",
+ "ApiCategoryTree": "includes/ApiCategoryTree.php"
+ },
+ "ResourceModules": {
+ "ext.categoryTree": {
+ "scripts": "ext.categoryTree.js",
+ "targets": [
+ "desktop",
+ "mobile"
+ ],
+ "messages": [
+ "categorytree-collapse",
+ "categorytree-expand",
+ "categorytree-collapse-bullet",
+ "categorytree-expand-bullet",
+ "categorytree-load",
+ "categorytree-loading",
+ "categorytree-nothing-found",
+ "categorytree-no-subcategories",
+ "categorytree-no-parent-categories",
+ "categorytree-no-pages",
+ "categorytree-error",
+ "categorytree-retry"
+ ],
+ "dependencies": [
+ "mediawiki.api"
+ ]
+ },
+ "ext.categoryTree.css": {
+ "targets": [
+ "desktop",
+ "mobile"
+ ],
+ "styles": "ext.categoryTree.css"
+ }
+ },
+ "ResourceFileModulePaths": {
+ "localBasePath": "modules",
+ "remoteExtPath": "CategoryTree/modules"
+ },
+ "Hooks": {
+ "ArticleFromTitle": [
+ "CategoryTreeHooks::articleFromTitle"
+ ],
+ "SpecialTrackingCategories::preprocess": [
+ "CategoryTreeHooks::onSpecialTrackingCategoriesPreprocess"
+ ],
+ "SpecialTrackingCategories::generateCatLink": [
+ "CategoryTreeHooks::onSpecialTrackingCategoriesGenerateCatLink"
+ ],
+ "SkinTemplateOutputPageBeforeExec": "CategoryTreeHooks::skinTemplateOutputPageBeforeExec",
+ "MakeGlobalVariablesScript": "CategoryTreeHooks::getConfigVars",
+ "ParserFirstCallInit": "CategoryTreeHooks::setHooks",
+ "OutputPageMakeCategoryLinks": "CategoryTreeHooks::outputPageMakeCategoryLinks",
+ "SkinJoinCategoryLinks": "CategoryTreeHooks::skinJoinCategoryLinks",
+ "BeforePageDisplay": "CategoryTreeHooks::addHeaders",
+ "BeforePageDisplayMobile": "CategoryTreeHooks::addHeaders",
+ "OutputPageParserOutput": "CategoryTreeHooks::parserOutput"
+ },
+ "config": {
+ "CategoryTreeMaxChildren": 200,
+ "CategoryTreeAllowTag": true,
+ "CategoryTreeDisableCache": 21600,
+ "CategoryTreeHTTPCache": false,
+ "CategoryTreeMaxDepth": {
+ "10": 1,
+ "20": 1,
+ "0": 2
+ },
+ "CategoryTreeForceHeaders": false,
+ "CategoryTreeSidebarRoot": null,
+ "CategoryTreeHijackPageCategories": false,
+ "CategoryTreeUseCategoryTable": true,
+ "CategoryTreeOmitNamespace": 20,
+ "CategoryTreeDefaultMode": 0,
+ "CategoryTreeDefaultOptions": {
+ "mode": null,
+ "hideprefix": null,
+ "showcount": false,
+ "namespaces": false
+ },
+ "CategoryTreeCategoryPageMode": 0,
+ "CategoryTreeCategoryPageOptions": {
+ "mode": null,
+ "showcount": true
+ },
+ "CategoryTreeSpecialPageOptions": {
+ "showcount": true
+ },
+ "CategoryTreeSidebarOptions": {
+ "mode": 0,
+ "hideprefix": 20,
+ "showcount": false,
+ "hideroot": true,
+ "namespaces": false,
+ "depth": 1
+ },
+ "CategoryTreePageCategoryOptions": {
+ "mode": 100,
+ "hideprefix": 20,
+ "showcount": false,
+ "hideroot": false,
+ "namespaces": false,
+ "depth": 0
+ }
+ },
+ "manifest_version": 1
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ace.json b/www/wiki/extensions/CategoryTree/i18n/ace.json
new file mode 100644
index 00000000..29458e5d
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ace.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Si Gam Acèh"
+ ]
+ },
+ "categorytree-expand": "Peuluwaih",
+ "categorytree-member-counts": "Na {{PLURAL:$1|1 aneuk kawan}}, {{PLURAL:$2|1 miëng}}, ngön {{PLURAL:$3|1 beureukaih}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 L",
+ "categorytree-num-files": "$1 B"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ady-cyrl.json b/www/wiki/extensions/CategoryTree/i18n/ady-cyrl.json
new file mode 100644
index 00000000..da70e5aa
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ady-cyrl.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bedynokue.nart",
+ "Highlander45temp",
+ "SamGamgee",
+ "Amire80"
+ ]
+ },
+ "categorytree-expand": "зэхэщ",
+ "categorytree-member-counts": "{{PLURAL:$1|1 КӀэткатегорие|$1 КӀэткатегориехэр}}, {{PLURAL:$2|1 нэкӀубгъу|$2 нэкӀубгъохэр}}, ыкӀи {{PLURAL:$3|1 файл|$3 файлэхэр}} илъых",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 Н",
+ "categorytree-num-files": "$1 Ф"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/aeb-arab.json b/www/wiki/extensions/CategoryTree/i18n/aeb-arab.json
new file mode 100644
index 00000000..ae7ae0d2
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/aeb-arab.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Csisc"
+ ]
+ },
+ "categorytree-num-pages": " $1 پ"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/aeb-latn.json b/www/wiki/extensions/CategoryTree/i18n/aeb-latn.json
new file mode 100644
index 00000000..9951733d
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/aeb-latn.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "GeekEmad"
+ ]
+ },
+ "categorytree-expand": "wesseģ",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/aeb.json b/www/wiki/extensions/CategoryTree/i18n/aeb.json
new file mode 100644
index 00000000..f54765c8
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/aeb.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Csisc"
+ ]
+ },
+ "categorytree-expand": "Wassiģ"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/af.json b/www/wiki/extensions/CategoryTree/i18n/af.json
new file mode 100644
index 00000000..e015dd34
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/af.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arnobarnard",
+ "Naudefj",
+ "SPQRobin",
+ "Fwolff"
+ ]
+ },
+ "categorytree": "Kategorieboom",
+ "categorytree-portlet": "Kategorieë",
+ "categorytree-legend": "Wys kategorieboom",
+ "categorytree-desc": "Bekyk en navigeer deur die [[Special:CategoryTree|kategoriestruktuur]] van 'n wiki",
+ "categorytree-header": "Tik 'n kategorienaam om die inhoud as 'n boomstruktuur te sien. Hierdie benodig gevorderde JavaScript-funksionaliteit, bekend as AJAX. Dit sal egter nie werk as u 'n baie ou blaaier gebruik of as JavaScript gedeaktiveer is nie.",
+ "categorytree-category": "Kategorie:",
+ "categorytree-go": "Wys boom",
+ "categorytree-parents": "ouers",
+ "categorytree-mode-categories": "slegs kategorieë",
+ "categorytree-mode-pages": "bladsye met prentbladsye uitgesluit",
+ "categorytree-mode-all": "alle bladsye",
+ "categorytree-collapse": "vou toe",
+ "categorytree-expand": "vou oop",
+ "categorytree-member-counts": "bevat {{PLURAL:$1|een subkategorie|$1 subkategorieë}}, {{PLURAL:$2|een bladsy|$2 bladsye}} en {{PLURAL:$3|een lêer|$3 lêers}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 B",
+ "categorytree-num-files": "$1 L",
+ "categorytree-num-empty": "leeg",
+ "categorytree-load": "laai",
+ "categorytree-loading": "laai tans…",
+ "categorytree-nothing-found": "niks gevind nie",
+ "categorytree-no-subcategories": "geen subkategorieë nie",
+ "categorytree-no-parent-categories": "geen kategorieë boontoe",
+ "categorytree-no-pages": "geen bladsye of subkategorieë nie",
+ "categorytree-not-found": "Kategorie <i>$1</i> nie gevind nie",
+ "categorytree-error": "Probleem met die laai van die data.",
+ "categorytree-retry": "Wag asseblief 'n rukkie en probeer weer."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ais.json b/www/wiki/extensions/CategoryTree/i18n/ais.json
new file mode 100644
index 00000000..8cfd53e2
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ais.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "Benel",
+ "Bunukwiki",
+ "Tokoabibi"
+ ]
+ },
+ "categorytree": "kakuniza a kilang",
+ "categorytree-portlet": "kakuniza",
+ "categorytree-legend": "paazih kakuniza a kilang",
+ "categorytree-desc": "kapahay likit a kawaw misabaluh a sasakawawen pasubana’ tu miidangay [[Special:CategoryTree|kakuniza pakaukak]]",
+ "categorytree-header": "kapisulitan tu kakunizaay a kalungangan u misaungayay masakilangay a zunga kulit miciwsace kakuniza lacul. (maydih misaungay JavaScript.)",
+ "categorytree-category": "kakuniza:",
+ "categorytree-go": "paazih sakilang zunga a kulit",
+ "categorytree-parents": "ipabaway a kakuniza",
+ "categorytree-mode-label": "muse:",
+ "categorytree-mode-categories": "paazih kakuniza a cacay",
+ "categorytree-mode-pages": "kasabelih caay yamalyilu tangan",
+ "categorytree-mode-all": "hamin nu kasabelih",
+ "categorytree-collapse": "piked",
+ "categorytree-expand": "micuwat",
+ "categorytree-member-counts": "yamalyilu {{PLURAL:$1|$1 iluc-kasasizuma}}, {{PLURAL:$2|$2 kasabelih}}, atu {{PLURAL:$3|$3 tangan}}",
+ "categorytree-num-categories": "$1 kakuniza",
+ "categorytree-num-pages": "$1 kasabelih",
+ "categorytree-num-files": "$1 tangan",
+ "categorytree-num-empty": "inayi’",
+ "categorytree-load": "maasip",
+ "categorytree-loading": "miasip henay ayza…",
+ "categorytree-nothing-found": "caykatepa amahicahica tu kasacacay",
+ "categorytree-no-subcategories": "inayi’ sailuc-kasasizuma",
+ "categorytree-no-parent-categories": "inayi’ pabaway a kakuniza",
+ "categorytree-no-pages": "inayi’ kasabelih saca sailuc-kasasizuma",
+ "categorytree-not-found": "inayi’ kakuniza <i>$1</i>",
+ "categorytree-error": "imahini miasip kalunasulitan mungangaw.",
+ "categorytree-retry": "pihalhal’i pitaneng henay ku cacay.",
+ "apihelp-categorytree-description": "saungay i CategoryTree sacunus a labu bacu-saupu.",
+ "apihelp-categorytree-param-category": "i kakuniza pangangananay a salaedan a satangahan, anu izaw saayaway sulit amasekipo",
+ "apihelp-categorytree-param-options": "patudud CategoryTree patizeng ilucay nu JSON tuutuud aazihen-sulyang. <var>depth</var> kasacacay pataayaw tu kawaw ku <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "mapiliay kanca ku kapahay a JSON tuutuud."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/am.json b/www/wiki/extensions/CategoryTree/i18n/am.json
new file mode 100644
index 00000000..5e68e4bc
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/am.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Codex Sinaiticus",
+ "Elfalem"
+ ]
+ },
+ "categorytree": "የመደቦች ዛፍ",
+ "categorytree-portlet": "መደቦች",
+ "categorytree-legend": "የመደቦች ዛፍ ለማየት",
+ "categorytree-header": "[+] ተጭነው ንዑሱ-መደብ ይዘረጋል፣ [-] ተጭነው ደግሞ ይመልሳል።\n\nበግራ በኩል ባለው ሳጥን ውስጥ የመደቡን ስም ዝም ብለው መጻፍ ይችላሉ። (የዚሁ ዊኪ መደብ ስሞች ለመመልከት፣ [[Special:Mostlinkedcategories|እዚህ ይጫኑ]]።) ከዚያ፥ ምን ያሕል ንዑስ-መደቦች እንዳሉበት ለማየት «ዛፉ ይታይ» የሚለውን ይጫኑ። በቀኝ በኩል ካለው ሳጥን 'all pages' ከመረጡ፥ በየመደቡ ውስጥ ያሉት መጣጥፎች በተጨማሪ ይታያሉ።\n\n''(ማስታወሻ: ይህ በኮምፒውተርዎ እንዲሠራ 'ጃቫ' የሚችል ዌብ-ብራውዘር ያስፈልጋል።)''",
+ "categorytree-category": "የመደብ ስም፦",
+ "categorytree-go": "ዛፉ ይታይ",
+ "categorytree-parents": "ላዕላይ መደቦች",
+ "categorytree-mode-categories": "መደቦች ብቻ",
+ "categorytree-mode-all": "ሁሉም ገጾች",
+ "categorytree-loading": "ሊመጣ ነው",
+ "categorytree-nothing-found": "የለም",
+ "categorytree-no-subcategories": "ንዑስ መደብ የለም",
+ "categorytree-no-pages": "ምንም ገጾችና ንዑስ-መደቦች የሉም",
+ "categorytree-not-found": "«$1» የተባለ መደብ የለም።",
+ "categorytree-retry": "ትንሽ ቆይተው እንደገና ይሞክሩ"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/an.json b/www/wiki/extensions/CategoryTree/i18n/an.json
new file mode 100644
index 00000000..1e52c0cd
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/an.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Juanpabl"
+ ]
+ },
+ "categorytree": "Árbol de categorías",
+ "categorytree-portlet": "Categorías",
+ "categorytree-legend": "Amostar l'árbol de categorías",
+ "categorytree-desc": "Traste basato en AJAX t'amostrar a [[Special:CategoryTree|estrutura de categorías]] d'una wiki",
+ "categorytree-header": "Escriba un nombre de categoría ta veyer os suyos contenius en forma d'árbol. Pare cuenta que ista pachina requiere as funcions JavaScriptz abanzatas conoixitas como AJAX. Si tiene un navegador antigo, u tiene desactivato JavaScript, a pachina no funcionará.",
+ "categorytree-category": "Categoría:",
+ "categorytree-go": "Amostrar l'Árbol",
+ "categorytree-parents": "Categorías mais",
+ "categorytree-mode-label": "Modo:",
+ "categorytree-mode-categories": "amostrar nomás categorías",
+ "categorytree-mode-pages": "pachinas pero no ficheros",
+ "categorytree-mode-all": "todas as pachinas",
+ "categorytree-collapse": "amagar",
+ "categorytree-expand": "amostrar",
+ "categorytree-member-counts": "contiene {{PLURAL:$1|1 sucategoría|$1 subcategorías}}, {{PLURAL:$2|1 pachina|$2 pachinas}}, y {{PLURAL:$3|1 fichero|$3 ficheros}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "vueda",
+ "categorytree-load": "cargar",
+ "categorytree-loading": "cargando",
+ "categorytree-nothing-found": "No s'ha trobato cosa",
+ "categorytree-no-subcategories": "no bi ha subcategorías",
+ "categorytree-no-parent-categories": "Garra categoría mai",
+ "categorytree-no-pages": "No bi ha articlos ni subcategorías",
+ "categorytree-not-found": "Categoría ''$1'' no trobata",
+ "categorytree-error": "Error en cargar os datos",
+ "categorytree-retry": "Por favor, aspere bels intes y prebe de nuevas."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ang.json b/www/wiki/extensions/CategoryTree/i18n/ang.json
new file mode 100644
index 00000000..c5eed62b
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ang.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gott wisst"
+ ]
+ },
+ "categorytree-expand": "gebrǣded",
+ "categorytree-num-categories": "$1 F",
+ "categorytree-num-pages": "$1 T",
+ "categorytree-num-files": "$1 Y"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/anp.json b/www/wiki/extensions/CategoryTree/i18n/anp.json
new file mode 100644
index 00000000..9df2a449
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/anp.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Angpradesh",
+ "Samyo"
+ ]
+ },
+ "categorytree-expand": "विस्तार",
+ "categorytree-member-counts": "एकरा मं॑ {{PLURAL:$1|एगऽ उपश्रेणी|$1 उपश्रेणी}}, {{PLURAL:$2|एगऽ पन्ना |$2 पन्ना}},आरू {{PLURAL:$3|एगऽ फ़ाइल|$3 फ़ाइल}} छै",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ar.json b/www/wiki/extensions/CategoryTree/i18n/ar.json
new file mode 100644
index 00000000..3d3ee06e
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ar.json
@@ -0,0 +1,49 @@
+{
+ "@metadata": {
+ "authors": [
+ "AwamerT",
+ "Meno25",
+ "Mido",
+ "OsamaK",
+ "زكريا",
+ "Abanima",
+ "Maroen1990",
+ "Moud hosny"
+ ]
+ },
+ "categorytree": "شجرة تصنيفات",
+ "categorytree-portlet": "تصنيفات",
+ "categorytree-legend": "عرض شجرة التصنيفات",
+ "categorytree-desc": "إضافة معتمدة على الأجاكس لعرض [[Special:CategoryTree|هيكل التصنيف]] لويكي",
+ "categorytree-header": "أدخل اسم تصنيف لترى محتوياته كتركيب شجري. (يتطلب جافا سكريبت.)",
+ "categorytree-category": "تصنيف:",
+ "categorytree-go": "عرض الشجرة",
+ "categorytree-parents": "مصنف تحت",
+ "categorytree-mode-label": "الوضع:",
+ "categorytree-mode-categories": "تصنيفات فقط",
+ "categorytree-mode-pages": "الصفحات ماعدا الملفات",
+ "categorytree-mode-all": "كل الصفحات",
+ "categorytree-collapse": "اطو",
+ "categorytree-expand": "فرد",
+ "categorytree-expand-bullet": "◄",
+ "categorytree-empty-bullet": "◄",
+ "categorytree-member-counts": "يحتوي على {{PLURAL:$1|1 تصنيف فرعي واحد|تصنيفين فرعيين|$1 تصنيفات فرعية|$1 تصنيف فرعي}} و{{PLURAL:$2| صفحة واحدة|صفحتين|$2 صفحات|$2 صفحة}}، و {{PLURAL:$3| ملف واحد|ملفين|$3 ملفات|$3 ملفاً|$3 ملف}}",
+ "categorytree-num-categories": "$1 ت",
+ "categorytree-num-pages": " $1 ص",
+ "categorytree-num-files": " $1 م",
+ "categorytree-num-empty": "فارغ",
+ "categorytree-load": "حمل",
+ "categorytree-loading": "جار التحميل",
+ "categorytree-nothing-found": "لم يتم العثور على شيء",
+ "categorytree-no-subcategories": "لا تصنيفات فرعية",
+ "categorytree-no-parent-categories": "لا تصنيفات أصلية",
+ "categorytree-no-pages": "لا صفحات ولا تصنيفات فرعية",
+ "categorytree-not-found": "التصنيف «$1» لم يتم العثور عليه",
+ "categorytree-error": "مشكلة في تحميل البيانات.",
+ "categorytree-retry": "من فضلك انتظر لحظة وحاول مرة أخرى.",
+ "apihelp-categorytree-description": "الوحدة لداخلية للتصنيفات الصحيحة.",
+ "apihelp-categorytree-summary": "جزء داخلي لامتداد CategoryTree.",
+ "apihelp-categorytree-param-category": "العنوان في مساحة اسم الفئة. يتم تجاهل البادئة إذا كان محدد.",
+ "apihelp-categorytree-param-options": "الخيارات لمنشيء CategoryTree ككائن JSON object. خيار <var>depth</var> القيمة الافتراضية له هي <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "الخيارات يجب أن تكون كائن JSON صحيح."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/arc.json b/www/wiki/extensions/CategoryTree/i18n/arc.json
new file mode 100644
index 00000000..5ceaa134
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/arc.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Basharh"
+ ]
+ },
+ "categorytree": "ܐܝܠܢܐ ܕܣܕܪܐ",
+ "categorytree-portlet": "ܣܕܪ̈ܐ",
+ "categorytree-legend": "ܚܘܝ ܐܝܠܢܐ ܕܣܘܕܪܐ",
+ "categorytree-category": "ܣܕܪܐ:",
+ "categorytree-go": "ܚܘܝ ܐܝܠܢܐ",
+ "categorytree-mode-categories": "ܣܕܪ̈ܐ ܒܠܚܘܕ",
+ "categorytree-mode-pages": "ܦܐܬܬ̈ܐ ܫܒܘܩ ܕܠܦܦ̈ܐ",
+ "categorytree-mode-all": "ܟܠ ܦܐܬܬ̈ܐ",
+ "categorytree-collapse": "ܐܟܪܟ",
+ "categorytree-expand": "ܐܪܘܚ",
+ "categorytree-expand-bullet": "◄",
+ "categorytree-empty-bullet": "◄",
+ "categorytree-member-counts": "ܚܒܫ ܥܠ {{PLURAL:$1|1 ܣܕܪܐ ܦܪܥܝܐ|$1 ܣܕܪ̈ ܦܪ̈ܥܝܐ}}، {{PLURAL:$2|1 ܦܐܬܐ|$2 ܦܐܬܬ̈ܐ}}، ܘ{{PLURAL:$3|1 ܠܦܦܐ|$3 ܠܦܦ̈ܐ}}",
+ "categorytree-num-categories": "$1 ܣ",
+ "categorytree-num-pages": " $1 ܦ",
+ "categorytree-num-files": "$1 ܠ",
+ "categorytree-num-empty": "ܣܦܝܩܐ",
+ "categorytree-load": "ܛܥܢ",
+ "categorytree-loading": "ܛܘܥܢܐ...",
+ "categorytree-no-subcategories": "ܠܝܬ ܣܕܪ̈ܐ ܦܪ̈ܥܝܐ",
+ "categorytree-not-found": "ܣܕܪܐ <i>$1</i> ܠܐ ܐܫܟܚܬ"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/arq.json b/www/wiki/extensions/CategoryTree/i18n/arq.json
new file mode 100644
index 00000000..17458514
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/arq.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bachounda",
+ "Oldstoneage"
+ ]
+ },
+ "categorytree-expand": "طوّر",
+ "categorytree-member-counts": "محمول فيه {{PLURAL:$1|1 تحتتصنيفة|$1 تحتتصنيفات}}, {{PLURAL:$2|1 باجة|$2 باجات}}، و {{PLURAL:$3|1 فيشي|$3 فيشيّات}}",
+ "categorytree-num-categories": " $1 ص",
+ "categorytree-num-pages": " $1 ص",
+ "categorytree-num-files": " $1 م"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/arz.json b/www/wiki/extensions/CategoryTree/i18n/arz.json
new file mode 100644
index 00000000..73ff04f4
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/arz.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ghaly",
+ "Meno25",
+ "Ramsis II"
+ ]
+ },
+ "categorytree": "شجرة تصنيف",
+ "categorytree-portlet": "تصنيفات",
+ "categorytree-legend": "عرض شجرة التصنيف",
+ "categorytree-desc": "ابحار بديناميكية فى [[Special:CategoryTree|هيكل التصنيف]]",
+ "categorytree-header": "دخل اسم التصنيف علشان تشوف المحتويات بتاعته على هيئة شجرة.\nلاحظ ان دا بيعوز خاصية جافاسكريبت متقدمة اسمها اجاكس.\nلو البراوز بتاعك قديم جدا،او الجافاسكريبت عندك متعطلة،دا مش ح يشتغل.",
+ "categorytree-category": "تصنيف:",
+ "categorytree-go": "عرض الشجره",
+ "categorytree-parents": "متصنف تحت",
+ "categorytree-mode-categories": "تصانيف بس",
+ "categorytree-mode-pages": "الصفحات من غير الملفات",
+ "categorytree-mode-all": "كل الصفحات",
+ "categorytree-collapse": "اضغط",
+ "categorytree-expand": "اتوسع",
+ "categorytree-expand-bullet": "◄",
+ "categorytree-empty-bullet": "◄",
+ "categorytree-member-counts": "فيه {{PLURAL:$1|1 تصنيف فرعي|$1 تصنيف فرعي}}، {{PLURAL:$2|1 صفحة|$2 صفحة}}، و {{PLURAL:$3|1 ملف|$3 ملف}}",
+ "categorytree-num-categories": "$1 ت",
+ "categorytree-num-pages": " $1 ص",
+ "categorytree-num-files": " $1 م",
+ "categorytree-load": "تحميل",
+ "categorytree-loading": "بيحمل",
+ "categorytree-nothing-found": "مالقيناش حاجة",
+ "categorytree-no-subcategories": "مافيش تصنيفات فرعية",
+ "categorytree-no-parent-categories": "مافيش تصانيف أصلية",
+ "categorytree-no-pages": "مافيش ولا فى صفحات ولا تصانيف فرعية",
+ "categorytree-not-found": "التصنيف <i>$1</i> مش متلاقي",
+ "categorytree-error": "مشكلة فى تحميل البيانات.",
+ "categorytree-retry": "لو سمحت تستنا لحظة و بعدين حاول تاني"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/as.json b/www/wiki/extensions/CategoryTree/i18n/as.json
new file mode 100644
index 00000000..9c1d2cd2
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/as.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bishnu Saikia",
+ "Chaipau",
+ "Gitartha.bordoloi",
+ "Psneog",
+ "Rajuonline",
+ "Simbu123"
+ ]
+ },
+ "categorytree": "শ্ৰেণীবৃক্ষ",
+ "categorytree-portlet": "শ্ৰেণী",
+ "categorytree-legend": "শ্ৰেণীবৃক্ষ দেখুৱাওক",
+ "categorytree-desc": "[[Special:CategoryTree|শ্ৰেণীবৃক্ষ গঠন]] পৰিদৰ্শন কৰক",
+ "categorytree-header": "সমলসমূহ বৃক্ষৰূপত চাবলৈ এটা শ্ৰেণীৰ নাম লিখক।\nমন কৰক যে এনে কৰিবলৈ AJAX নামৰ এটা উচ্চস্তৰৰ জাভা কৌশলৰ আৱশ্যক।\nআপোনাৰ ব্ৰাওজাৰ অতি পুৰণি হ'লে বা জাভাস্ক্ৰিপ্ট নিষ্ক্ৰিয় হৈ থাকিলে ই কাম নকৰিব।",
+ "categorytree-category": "শ্ৰেণীবৄক্ষ:",
+ "categorytree-go": "বৃক্ষ দেখুৱাওক",
+ "categorytree-parents": "পালক",
+ "categorytree-mode-label": "প্ৰণালী:",
+ "categorytree-mode-categories": "কেৱল শ্ৰেণী",
+ "categorytree-mode-pages": "ফাইল বাদে পৃষ্ঠাসমূহ",
+ "categorytree-mode-all": "সকলো পৃষ্ঠা",
+ "categorytree-collapse": "সংকোচন",
+ "categorytree-expand": "বহলাওক",
+ "categorytree-member-counts": "{{PLURAL:$1|এটা উপশ্ৰেণী|$1টা উপশ্ৰেণী}}, {{PLURAL:$2|এটা পৃষ্ঠা|$2টা পৃষ্ঠা}}, আৰু {{PLURAL:$3|এটা ফাইল|$3টা ফাইল}} আছে",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "খালি",
+ "categorytree-load": "ল'ড কৰক",
+ "categorytree-loading": "ল'ড কৰি থকা হৈছে...",
+ "categorytree-nothing-found": "একো পোৱা নগ'ল",
+ "categorytree-no-subcategories": "উপশ্ৰেণী নাই",
+ "categorytree-no-parent-categories": "কোনো মূল বিষয়শ্ৰেণী নাই",
+ "categorytree-no-pages": "এনে কোনো পৃষ্ঠা বা উপশ্ৰেণী নাই",
+ "categorytree-not-found": "<i>$1</i> শ্ৰেণীটো বিচাৰি পোৱা নগল",
+ "categorytree-error": "তথ্য ল'ড কৰাত সমস্যা হৈছে।",
+ "categorytree-retry": "অনুগ্ৰহ কৰি কিছু সময় অপেক্ষা কৰি তাৰ পিছত চেষ্টা কৰক।"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ase.json b/www/wiki/extensions/CategoryTree/i18n/ase.json
new file mode 100644
index 00000000..e6a60ac4
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ase.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Icemandeaf"
+ ]
+ },
+ "categorytree-num-categories": "$1 M509x510S16d20492x490",
+ "categorytree-num-pages": "$1 M516x512S14051485x488",
+ "categorytree-num-files": "$1 M511x515S1ce20489x485"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ast.json b/www/wiki/extensions/CategoryTree/i18n/ast.json
new file mode 100644
index 00000000..06f5af2c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ast.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "Esbardu",
+ "Xuacu"
+ ]
+ },
+ "categorytree": "Árbole de categoríes",
+ "categorytree-portlet": "Categoríes",
+ "categorytree-legend": "Amosar l'árbole de categoríes",
+ "categorytree-desc": "Accesoriu basáu n'AJAX qu'amuesa la [[Special:CategoryTree|estructura de categoríes]] d'una wiki",
+ "categorytree-header": "Escribe un nome de categoría pa ver el so conteníu con estructura d'árbole. (Rique JavaScript)",
+ "categorytree-category": "Categoría:",
+ "categorytree-go": "Amosar árbole",
+ "categorytree-parents": "Categoríes superiores",
+ "categorytree-mode-label": "Mou:",
+ "categorytree-mode-categories": "categoríes namái",
+ "categorytree-mode-pages": "páxines sacante los archivos",
+ "categorytree-mode-all": "toles páxines",
+ "categorytree-collapse": "anubrir",
+ "categorytree-expand": "espander",
+ "categorytree-member-counts": "Contien {{PLURAL:$1|1 subcategoría|$1 subcategoríes}}, {{PLURAL:$2|1 páxina|$2 páxines}} y {{PLURAL:$3|1 ficheru|$3 ficheros}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "balera",
+ "categorytree-load": "cargar",
+ "categorytree-loading": "cargando",
+ "categorytree-nothing-found": "nun s'atopó nada",
+ "categorytree-no-subcategories": "nun hai subcategoríes",
+ "categorytree-no-parent-categories": "nun hai categoríes padre",
+ "categorytree-no-pages": "ensin páxines nin subcategoríes",
+ "categorytree-not-found": "Nun s'atopó la categoría <i>$1</i>",
+ "categorytree-error": "Hebo un problema al cargar los datos.",
+ "categorytree-retry": "Por favor, espera unos momentos y inténtalo otra vuelta.",
+ "apihelp-categorytree-description": "Módulu internu pa la estensión CategoryTree.",
+ "apihelp-categorytree-summary": "Módulu internu pa la estensión CategoryTree.",
+ "apihelp-categorytree-param-category": "Títulu nel espaciu de nomes de categoríes, inoraráse'l prefixu si se da.",
+ "apihelp-categorytree-param-options": "Opciones pal constructor de CategoryTree como oxetu JSON. La opción <var>depth</var> (fondura) tien el valor predetermináu de <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Les opciones tienen de ser un oxetu JSON válidu."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/atj.json b/www/wiki/extensions/CategoryTree/i18n/atj.json
new file mode 100644
index 00000000..aa8c54f2
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/atj.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amqui",
+ "Jean-paul echaquan",
+ "Nehirowisiw",
+ "Ninmeka",
+ "Benoit Rochon"
+ ]
+ },
+ "categorytree-portlet": "Ka ici arimotcikateki",
+ "categorytree-category": "Ka ici arimotcikatek:",
+ "categorytree-mode-all": "Kaskina paskickwemikana",
+ "categorytree-expand": "otamirota",
+ "categorytree-member-counts": "Ka acteki{{PLURAL:$1|1 subcategory|$1 subcategories}} $1 {{PLURAL:$1|Ka tatwenikateki}}, {{PLURAL:$2|1 page|$2 pages}} $2 {{PLURAL:$2|masinahikana}}, kaie {{PLURAL:$3|1 file|$3 files}} $3 {{PLURAL:$3|Masinahikaniwoc}}",
+ "categorytree-num-categories": "$1 M",
+ "categorytree-num-pages": "$1 M",
+ "categorytree-num-files": "$1 M"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/av.json b/www/wiki/extensions/CategoryTree/i18n/av.json
new file mode 100644
index 00000000..a2984593
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/av.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gazimagomedov"
+ ]
+ },
+ "categorytree-expand": "рагьизе",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 Гь",
+ "categorytree-num-files": "$1 Ф"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/avk.json b/www/wiki/extensions/CategoryTree/i18n/avk.json
new file mode 100644
index 00000000..2fbc6b2e
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/avk.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Wikimistusik"
+ ]
+ },
+ "categorytree": "LomaAal",
+ "categorytree-header": "Ta wira va aaldrekoraf cek va lomayolt bazel !\nStragal da batcoba va AJAX JavaScript fliaca kucilar.\nEde va guazafi exulesiki favel oke ede JavaScript fliaceem tir metegis, batcoba me guyundeter.",
+ "categorytree-category": "Loma:",
+ "categorytree-go": "Nedira va aal",
+ "categorytree-parents": "Veylomeem",
+ "categorytree-mode-categories": "Anton lomeem",
+ "categorytree-mode-pages": "Bueem rade ewaveem",
+ "categorytree-mode-all": "bueem",
+ "categorytree-collapse": "koatcera",
+ "categorytree-expand": "divatcera",
+ "categorytree-load": "vajara",
+ "categorytree-loading": "vajas",
+ "categorytree-nothing-found": "mek trasiks",
+ "categorytree-no-subcategories": "meka volveyloma",
+ "categorytree-no-pages": "meku bu oku volveyloma",
+ "categorytree-not-found": "<i>$1</i> loma metrasiyina",
+ "categorytree-error": "Zvak remi origvajara.",
+ "categorytree-retry": "Vay kemel aze tolyawal !"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/awa.json b/www/wiki/extensions/CategoryTree/i18n/awa.json
new file mode 100644
index 00000000..d99d8c0c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/awa.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "1AnuraagPandey"
+ ]
+ },
+ "categorytree": "श्रेणीवृक्ष",
+ "categorytree-portlet": "कुल श्रेणि",
+ "categorytree-legend": "श्रेणीवृक्ष देखाओ",
+ "categorytree-desc": "विकि कय [[Special:CategoryTree|श्रेणी संरचना]] देखा जाय",
+ "categorytree-header": "कवनो श्रेणी कय कुल चिज पेड कय रूप में देखावे कय लिये ओकर नावँ दिहा जाय।\nध्यान रख्खा जाय कि इ सुविधा कय लिये AJAX नावँ कय जावास्क्रिप्ट सुविधा कय ज़रूरत होत है।\nअगर आप कय ब्राउज़र बहुत पुरान है, या जावास्क्रिप्ट अक्षम है, तव इ काम नाई करि।",
+ "categorytree-category": "श्रेणी:",
+ "categorytree-go": "पेड देखाओ",
+ "categorytree-parents": "पालक",
+ "categorytree-mode-label": "मोड:",
+ "categorytree-mode-categories": "खाली श्रेणी कुल",
+ "categorytree-mode-pages": "फ़ाइल कय अलावा पन्ना",
+ "categorytree-mode-all": "कुल पन्ना",
+ "categorytree-collapse": "छोट करो",
+ "categorytree-expand": "बडा करो",
+ "categorytree-member-counts": "एहमा {{PLURAL:$1|एक उपश्रेणी|$1 उपश्रेणिन्}}, {{PLURAL:$2|एक पन्ना|$2 पन्नन}}, अव {{PLURAL:$3|एक फ़ाइल|$3 फ़ाइलन्}} हँय।",
+ "categorytree-num-categories": "$1 श्र",
+ "categorytree-num-pages": "$1 प",
+ "categorytree-num-files": "$1 फ़ा",
+ "categorytree-num-empty": "खाली",
+ "categorytree-load": "लोड करा जाय",
+ "categorytree-loading": "लोड होत है...",
+ "categorytree-nothing-found": "कुछ नाई मिला",
+ "categorytree-no-subcategories": "उपश्रेणी नाँई हँय",
+ "categorytree-no-parent-categories": "कवनो जनक श्रेणि नाई हँय",
+ "categorytree-no-pages": "कवनो पन्ना या उपश्रेणी नाई हय",
+ "categorytree-not-found": "श्रेणी <i>$1</i> नाई मिला",
+ "categorytree-error": "डाटा लोड करय में समस्या।",
+ "categorytree-retry": "तनी थोरै समय बाद प्रयास करा जाय।"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ay.json b/www/wiki/extensions/CategoryTree/i18n/ay.json
new file mode 100644
index 00000000..43c62663
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ay.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dferg",
+ "MarcoAurelio"
+ ]
+ },
+ "categorytree-category": "Patawi:"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/az.json b/www/wiki/extensions/CategoryTree/i18n/az.json
new file mode 100644
index 00000000..067c4f08
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/az.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cekli829",
+ "PPerviz",
+ "Vugar 1981",
+ "Wertuose",
+ "Dağlı95"
+ ]
+ },
+ "categorytree": "Kateqoriya ağacı",
+ "categorytree-portlet": "Kateqoriyalar",
+ "categorytree-legend": "Kateqoriya ağacını göstər.",
+ "categorytree-desc": "[[Special:CategoryTree|Kategori sistemini]] dinamik idarə et",
+ "categorytree-header": "Kategoriya adını girib, içerisini ierarxik şəkildə görə bilərsiniz. Bu özəllik AJAX adıyla biliən JavaScript ilə oşləyər. əgər operatorunuz köhnə isə ya da JavaScript istifadəsi mümkün deyilsə, işləməz.",
+ "categorytree-category": "Kateqoriya:",
+ "categorytree-go": "Yüklə",
+ "categorytree-parents": "Üst kateqoriyalar",
+ "categorytree-mode-categories": "sadəcə kateqoriyaları göstər",
+ "categorytree-mode-pages": "Fayllardan əlavə səhifələr",
+ "categorytree-mode-all": "bütün səhifələr",
+ "categorytree-collapse": "gizlə",
+ "categorytree-expand": "genişləndir",
+ "categorytree-member-counts": "Bu kateqoriya, {{PLURAL:$1|1 altkategoriya|$1 altkategoriya}}, {{PLURAL:$2|1 səhifə|$2 səhifə}} və {{PLURAL:$3|1 şəkil|$3 şəkil}}dən ibarətdir.",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "boş",
+ "categorytree-load": "yüklə",
+ "categorytree-loading": "yüklənir…",
+ "categorytree-nothing-found": "Təəsüf edirik, nəticə yoxdur.",
+ "categorytree-no-subcategories": "alt kateqoriyalar yoxdur",
+ "categorytree-no-parent-categories": "Üst kateqoriya yoxdur.",
+ "categorytree-no-pages": "Alt kateqoriya və məqalə yoxdur.",
+ "categorytree-not-found": "<i>\"$1\"</i> adlı kateqoriya tapılmadı.",
+ "categorytree-error": "Məlumat bazasında problem var.",
+ "categorytree-retry": "Xahiş edirik bir az gözləyin və yenidən yoxlayın."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/azb.json b/www/wiki/extensions/CategoryTree/i18n/azb.json
new file mode 100644
index 00000000..14b3707c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/azb.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amir a57",
+ "E THP",
+ "Mousa",
+ "Koroğlu",
+ "Alp Er Tunqa",
+ "ییلماز"
+ ]
+ },
+ "categorytree": "بولمه آغاجی",
+ "categorytree-portlet": "بؤلمه‌لر",
+ "categorytree-legend": "بولمه آغاجین گوستر",
+ "categorytree-desc": "[[Special:CategoryTree|بولمه لر سیستئمینی]] دینامیک ایداره ائت",
+ "categorytree-header": "بولمه آدینی گیریب، ایچئری‌سینی آغاج شکیلده گؤره بیلرسینیز. بو خصوصی ای جکس آدییلا بیلین جاوااسکریپت ایله اوشلیر. اگر اوپئراتورونوز کؤهنه ایسه یا دا جاوااسکریپت ایستیفاده‌سی مومکون دئییلسه، ایشلمز.",
+ "categorytree-category": "بؤلمه:",
+ "categorytree-go": "یوکله",
+ "categorytree-parents": "اوست بولمه لر",
+ "categorytree-mode-label": "مود:",
+ "categorytree-mode-categories": "ساده‌جه بولمه لری گؤستر",
+ "categorytree-mode-pages": "فایل‌لاردان علاوه صحیفه‌لر",
+ "categorytree-mode-all": "بوتون صفحه‌لر",
+ "categorytree-collapse": "گیزلت",
+ "categorytree-expand": "گئنیشلندیر",
+ "categorytree-expand-bullet": "◄",
+ "categorytree-empty-bullet": "◄",
+ "categorytree-member-counts": "{{PLURAL:$1|1 آلت بولمه|$1 آلت بولمه}}، {{PLURAL:$2|1 صفحه|$2 صفحه}}، و {{PLURAL:$3|1 فایل|$3 فایل}} واریدیر",
+ "categorytree-num-categories": "$1 ب",
+ "categorytree-num-pages": "$1 ص",
+ "categorytree-num-files": "$1 ف",
+ "categorytree-num-empty": "بوش",
+ "categorytree-load": "یوکله",
+ "categorytree-loading": "یوکلنیر",
+ "categorytree-nothing-found": "تاسوف ائدیریک، نتیجه یوخ‌دور.",
+ "categorytree-no-subcategories": "آلت بولمه لر یوخ‌دور",
+ "categorytree-no-parent-categories": "اوست بولمه یوخ‌دور.",
+ "categorytree-no-pages": "آلت بولمه و مقاله یوخ‌دور.",
+ "categorytree-not-found": "<i>\"$1\"</i آدلی بولمه تاپیلمادی.",
+ "categorytree-error": "معلومات بازاسیندا پروبلئم وار.",
+ "categorytree-retry": "خاهیش ائدیریک بیر آز صبر ائدین و یئنی‌دن ایمتحان ائدین."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ba.json b/www/wiki/extensions/CategoryTree/i18n/ba.json
new file mode 100644
index 00000000..0ae4d871
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ba.json
@@ -0,0 +1,43 @@
+{
+ "@metadata": {
+ "authors": [
+ "Assele",
+ "Haqmar",
+ "Sagan",
+ "ҒатаУлла",
+ "Янмурза Баки",
+ "Ләйсән"
+ ]
+ },
+ "categorytree": "Категориялар картаһы",
+ "categorytree-portlet": "Категориялар",
+ "categorytree-legend": "Категориялар ағасын күрһәтергә",
+ "categorytree-desc": "[[Special:CategoryTree|Категориялар төҙөлөшө]] буйлап динамик йөрөү мөмкинлеге",
+ "categorytree-header": "Категорияның исемен керетегеҙ, ул ағас төҙөлөшөндә күрһәтеләсәк\n(JavaScript кәрәк буласаҡ).",
+ "categorytree-category": "Категория:",
+ "categorytree-go": "Тейәү",
+ "categorytree-parents": "Төп категориялар",
+ "categorytree-mode-label": "Режим",
+ "categorytree-mode-categories": "категориялар ғына",
+ "categorytree-mode-pages": "файлдарҙан башҡа",
+ "categorytree-mode-all": "бар биттәр",
+ "categorytree-collapse": "төрөргә",
+ "categorytree-expand": "асырға",
+ "categorytree-member-counts": "{{PLURAL:$1|$1 эске категорияһы}}, {{PLURAL:$2|$2 бите}} һәм {{PLURAL:$3|$3 файлы}} бар",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 Б",
+ "categorytree-num-files": "$1 Ф",
+ "categorytree-num-empty": "буш",
+ "categorytree-load": "сығарырға",
+ "categorytree-loading": "сығарыу бара...",
+ "categorytree-nothing-found": "бер ни ҙә табылманы",
+ "categorytree-no-subcategories": "эске категориялар юҡ.",
+ "categorytree-no-parent-categories": "төп категориялар юҡ",
+ "categorytree-no-pages": "мәҡәләләр йәки эске категориялар юҡ.",
+ "categorytree-not-found": "<i>$1</i> категорияһы табылманы.",
+ "categorytree-error": "Мәғлүмәт сығарыуҙа хата бар.",
+ "categorytree-retry": "Зинһар, бер аҙ көткәндән һуң яңынан ҡабатлап ҡарағыҙ.",
+ "apihelp-categorytree-description": "CategoryTree ҡушымтаһы өсөн эске модуль.",
+ "apihelp-categorytree-param-category": "Исемдәр категориялары аралығындағы атама, ҡулланылған осраҡта префикс күрһәтелмәй.",
+ "apihelp-categorytree-param-options": "JSON объектары кеүек CategoryTree төҙөүсе төрҙәре. Тәрәнлек параметры <kbd>1</kbd> итеп куйылған."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/bar.json b/www/wiki/extensions/CategoryTree/i18n/bar.json
new file mode 100644
index 00000000..9e62a152
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/bar.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Man77",
+ "Mucalexx",
+ "Matthias Klostermayr",
+ "Joe Watzmo"
+ ]
+ },
+ "categorytree": "Kategorienbaam",
+ "categorytree-portlet": "Kategorina",
+ "categorytree-legend": "an Kategorienbaam ozoang",
+ "categorytree-desc": "Dynaamische Navigazion fian [[Special:CategoryTree|Kategorienbaam]]",
+ "categorytree-header": "Zoagt fia de ogebane Kategorie de Untakategorie in ana Baamstruktur.\nDe Seitn braucht bstimmte JavaScript-Funkziona (Ajax) und funkzioniad meglichaweis ned, wen JavaScript ausgschoitn is oder a uaoida Brausa vawendt wead.",
+ "categorytree-category": "Kategorie:",
+ "categorytree-go": "Kategoriebaam ozoang",
+ "categorytree-parents": "Obakategorina",
+ "categorytree-mode-categories": "nua Kategorina",
+ "categorytree-mode-pages": "Seitn aussa Datein",
+ "categorytree-mode-all": "olle Seitn",
+ "categorytree-collapse": "eikloppm",
+ "categorytree-expand": "auskloppm",
+ "categorytree-member-counts": "enthoit {{PLURAL:$1|1 Unterkategorie|$1 Unterkategorina}}, {{PLURAL:$2|1 Seitn|$2 Seitn}} und {{PLURAL:$3|1 Datei|$3 Datein}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 D",
+ "categorytree-num-empty": "laar",
+ "categorytree-load": "lodn",
+ "categorytree-loading": "lod ...",
+ "categorytree-nothing-found": "Nix gfundn",
+ "categorytree-no-subcategories": "Koa Untakategorie",
+ "categorytree-no-parent-categories": "Koa Obakategorie",
+ "categorytree-no-pages": "Koane Seiten oder Unterkategorien",
+ "categorytree-not-found": "Kategorie „$1“ ned gfunden",
+ "categorytree-error": "Probleem beim Loon voh de Daaten.",
+ "categorytree-retry": "Bittschee wort a Momenterl und vasuachs dånn nuamoi."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/bbc-latn.json b/www/wiki/extensions/CategoryTree/i18n/bbc-latn.json
new file mode 100644
index 00000000..82db3625
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/bbc-latn.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Stephensuleeman"
+ ]
+ },
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "rumar",
+ "categorytree-load": "mangisi",
+ "categorytree-loading": "mangisi...",
+ "categorytree-nothing-found": "ndang adong jumpang",
+ "categorytree-no-subcategories": "ndang adong subkategori",
+ "categorytree-no-parent-categories": "ndang adong kategori na tumimbo",
+ "categorytree-no-pages": "ndang adong alaman manang subkategori",
+ "categorytree-not-found": "Kategori <i>$1</i> ndang jumpang"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/bcc.json b/www/wiki/extensions/CategoryTree/i18n/bcc.json
new file mode 100644
index 00000000..bcdf2472
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/bcc.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mostafadaneshvar",
+ "RigiMahnoor",
+ "Baloch Afghanistan"
+ ]
+ },
+ "categorytree": "تهرئی درچک",
+ "categorytree-portlet": "تهرئان",
+ "categorytree-legend": "تهر ئی دراچگی نیمایش",
+ "categorytree-desc": "گجت آن آژاکسی په پیش دارگ [[Special:CategoryTree|شکل دسته]] یک ویکی",
+ "categorytree-header": "یک نام دسته ای وارد کنیت تا شکل درچکی آییء پیش داریت.\nتوجه بیت که شی نیاز په پیشرپتگین عملگری جاوا اسکریپت په داب آژاکس داریت.\nاگر شما را یک کهنه بروزر ای هستن یا جاوا اسکریپ غیر غعال انت آیی کار نه کنت.",
+ "categorytree-category": "تهر:",
+ "categorytree-go": "پیش دار درچکء",
+ "categorytree-parents": "پت و مات آن",
+ "categorytree-mode-label": "حالت:",
+ "categorytree-mode-categories": "فقط دسته جات",
+ "categorytree-mode-pages": "صفحات بجر فایلان",
+ "categorytree-mode-all": "موچین دیمان",
+ "categorytree-collapse": "سقوط",
+ "categorytree-expand": "پچ",
+ "categorytree-expand-bullet": "◄",
+ "categorytree-empty-bullet": "◄",
+ "categorytree-member-counts": "شامل چه {{PLURAL:$1|یک چیررده|$1 چیررده}}، {{PLURAL:$2|یک تاک|$2 تاک}} ءُ {{PLURAL:$3|یک فایل|$3 فایل انت}}",
+ "categorytree-num-categories": "$1 س",
+ "categorytree-num-pages": "$1 پ",
+ "categorytree-num-files": "$1 ف",
+ "categorytree-num-empty": "هالیگ",
+ "categorytree-load": "لود",
+ "categorytree-loading": "لودبیت...",
+ "categorytree-nothing-found": "هچی در نه بوت",
+ "categorytree-no-subcategories": "هچ زیر دسته ای",
+ "categorytree-no-parent-categories": "دسته جات بی پت و مات",
+ "categorytree-no-pages": "هچ صفحه یا زیر دسته",
+ "categorytree-not-found": "تهر <i>$1</i> ودی نه بوت",
+ "categorytree-error": "مشکل لود دیتا",
+ "categorytree-retry": "یک لحظه ای صبر کنیت و پدا دگه تلاش کن"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/bcl.json b/www/wiki/extensions/CategoryTree/i18n/bcl.json
new file mode 100644
index 00000000..2bdd08ad
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/bcl.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Filipinayzd",
+ "Geopoet"
+ ]
+ },
+ "categorytree": "Kahoy nin Kategoriya",
+ "categorytree-portlet": "Mga Kategoriya",
+ "categorytree-legend": "Ipatanaw an kahoy nin kategoriya",
+ "categorytree-desc": "Dinamikong dumanan an [[Special:CategoryTree|estruktura nin kategoriya]]",
+ "categorytree-header": "Ikaag an sarong pangaran nin kategoriya tanganing mahiling an kalamnan kaini bilang sarong estruktura nin kahoy. Tandai na ini minahagad nin abantidong JavaScript na punksyonalidad na bisto bilang AJAX. Kun ika igwa nin grabe kagurang na pangilyaw, o pinag-untok an JavaScript, ini dae maandar.",
+ "categorytree-category": "Kategoriya",
+ "categorytree-go": "Ipatanaw an kahoy",
+ "categorytree-parents": "Kamagurangan",
+ "categorytree-mode-label": "Moda:",
+ "categorytree-mode-categories": "mga kategoriya sana",
+ "categorytree-mode-pages": "mga pahina laen lang sa mga sagunson",
+ "categorytree-mode-all": "gabos na mga pahina",
+ "categorytree-collapse": "komyuson",
+ "categorytree-expand": "halawigon",
+ "categorytree-member-counts": "Minalaman nin {{PLURAL:$1|1 subkategoriya|$1 mga subkategoriya}},{{PLURAL:$2|1 pahina|$2 mga pahina}}, asin {{PLURAL:$3|1 sagunson|$3 mga sagunson}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "bokya",
+ "categorytree-load": "ikarga",
+ "categorytree-loading": "pigkakarga",
+ "categorytree-nothing-found": "mayong nanumpungan",
+ "categorytree-no-subcategories": "mayong mga sub-kategorya",
+ "categorytree-no-parent-categories": "mayong ginikanang mga kategoriya",
+ "categorytree-no-pages": "mayong mga pahina o sub-kategorya",
+ "categorytree-not-found": "Kategoriya <i>$1</i> dae nanagboan",
+ "categorytree-error": "Problema sa pagkakarga nin datos.",
+ "categorytree-retry": "Pakihalat ngûna tapos probaran giraray."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/be-tarask.json b/www/wiki/extensions/CategoryTree/i18n/be-tarask.json
new file mode 100644
index 00000000..c86445e4
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/be-tarask.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cesco",
+ "EugeneZelenko",
+ "Jim-by",
+ "Red Winged Duck",
+ "Wizardist"
+ ]
+ },
+ "categorytree": "Дрэва катэгорыяў",
+ "categorytree-portlet": "Катэгорыі",
+ "categorytree-legend": "Паказаць дрэва катэгорыяў",
+ "categorytree-desc": "Заснаваная на AJAX прылада для паказу [[Special:CategoryTree|структуры катэгорыяў]] {{GRAMMAR:родны|{{SITENAME}}}}",
+ "categorytree-header": "Увядзіце назву катэгорыі, каб пабачыць яе ў выглядзе дрэва (патрабуе JavaScript).",
+ "categorytree-category": "Катэгорыя:",
+ "categorytree-go": "Паказаць дрэва",
+ "categorytree-parents": "Продкі",
+ "categorytree-mode-label": "Рэжым:",
+ "categorytree-mode-categories": "толькі катэгорыі",
+ "categorytree-mode-pages": "старонкі за выключэньнем файлаў",
+ "categorytree-mode-all": "усе старонкі",
+ "categorytree-collapse": "згарнуць",
+ "categorytree-expand": "разгарнуць",
+ "categorytree-member-counts": "утрымлівае $1 {{PLURAL:$1|падкатэгорыю|падкатэгорыі|падкатэгорыяў}}, $2 {{PLURAL:$2|старонку|старонкі|старонак}} і $3 {{PLURAL:$3|файл|файлы|файлаў}}",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 С",
+ "categorytree-num-files": "$1 Ф",
+ "categorytree-num-empty": "пуста",
+ "categorytree-load": "загрузіць",
+ "categorytree-loading": "загрузка…",
+ "categorytree-nothing-found": "нічога ня знойдзена",
+ "categorytree-no-subcategories": "няма падкатэгорыяў",
+ "categorytree-no-parent-categories": "няма бацькаўскіх катэгорыяў",
+ "categorytree-no-pages": "няма старонак ці падкатэгорыяў",
+ "categorytree-not-found": "Катэгорыя <i>$1</i> ня знойдзена",
+ "categorytree-error": "Праблема загрузкі зьвестак.",
+ "categorytree-retry": "Калі ласка, пачакайце і паспрабуйце яшчэ раз.",
+ "apihelp-categorytree-description": "Унутраны модуль для пашырэньня CategoryTree.",
+ "apihelp-categorytree-summary": "Унутраны модуль для пашырэньня структуры катэгорыяў.",
+ "apihelp-categorytree-param-category": "Назва ў прасторы назваў катэгорыяў, прэфікс будзе ігнаравацца ў выпадку, калі будзе пададзены.",
+ "apihelp-categorytree-param-options": "Налады для канструктару CategoryTree як JSON-аб’екту. Парамэтар <var>depth</var> па змоўчаньні роўны <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Варыянты мусяць быць слушнымі JSON-аб’ектамі."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/be.json b/www/wiki/extensions/CategoryTree/i18n/be.json
new file mode 100644
index 00000000..819e2ae9
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/be.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Тест",
+ "Чаховіч Уладзіслаў",
+ "Mikalai Udodau",
+ "Mechanizatar"
+ ]
+ },
+ "categorytree": "Дрэва катэгорый",
+ "categorytree-portlet": "Катэгорыі",
+ "categorytree-legend": "Паказаць дрэва катэгорый",
+ "categorytree-desc": "AJAX-кампанент для адлюстравання [[Special:CategoryTree|структуры катэгорый]] вікі",
+ "categorytree-header": "Увядзіце назву катэгорыі, каб пабачыць яе змесціва ў выглядзе дрэва (патрабуе JavaScript).",
+ "categorytree-category": "Катэгорыя:",
+ "categorytree-go": "Загрузіць",
+ "categorytree-parents": "Бацькоўскія катэгорыі",
+ "categorytree-mode-label": "Рэжым:",
+ "categorytree-mode-categories": "толькі катэгорыі",
+ "categorytree-mode-pages": "акрамя файлаў",
+ "categorytree-mode-all": "усе старонкі",
+ "categorytree-collapse": "схаваць",
+ "categorytree-expand": "паказаць",
+ "categorytree-member-counts": "утрымлівае $1 {{PLURAL:$1|падкатэгорыю|падкатэгорыі|падкатэгорый}}, $2 {{PLURAL:$2|старонку|старонкі|старонак}} і $3 {{PLURAL:$3|выяву|выявы|выяў}}",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 С",
+ "categorytree-num-files": "$1 В",
+ "categorytree-num-empty": "пуста",
+ "categorytree-load": "загрузіць",
+ "categorytree-loading": "загрузка…",
+ "categorytree-nothing-found": "Гэта катэгорыя не ўтрымлівае падкатэгорый.",
+ "categorytree-no-subcategories": "няма падкатэгорый",
+ "categorytree-no-parent-categories": "няма бацькоўскіх катэгорый",
+ "categorytree-no-pages": "няма артыкулаў і падкатэгорый",
+ "categorytree-not-found": "Катэгорыя «$1» не знойдзена.",
+ "categorytree-error": "Памылка загрузкі даных.",
+ "categorytree-retry": "Калі ласка, пачакайце і паспрабуйце яшчэ раз.",
+ "apihelp-categorytree-description": "Унутраны модуль пашырэння CategoryTree.",
+ "apihelp-categorytree-param-category": "Назва ў прасторы імёнаў катэгорыяў. Прэфікс, калі будзе пададзены, будзе ігнаравацца.",
+ "apihelp-categorytree-param-options": "Налады для канструктару CategoryTree як JSON-аб’екту. Параметр глыбіні (<var>depth</var>) па змоўчанні роўны <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Опцыі павінны быць дапушчальнымі JSON-аб’ектамі."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/bg.json b/www/wiki/extensions/CategoryTree/i18n/bg.json
new file mode 100644
index 00000000..991b2fcd
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/bg.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "Borislav",
+ "DCLXVI",
+ "Spiritia",
+ "Stanqo",
+ "Vodnokon4e",
+ "V111P",
+ "StanProg"
+ ]
+ },
+ "categorytree": "Дърво на категориите",
+ "categorytree-portlet": "Категории",
+ "categorytree-legend": "Показване на дървото с категориите",
+ "categorytree-desc": "Инструмент на AJAX, който показва [[Special:CategoryTree|структурата на категориите]] в уикито",
+ "categorytree-header": "Въведете категория, за да видите съдържанието ѝ в дървовиден вид от категории. (Изисква JavaScript.)",
+ "categorytree-category": "Категория:",
+ "categorytree-go": "Показване",
+ "categorytree-parents": "Родителски категории",
+ "categorytree-mode-label": "Режим:",
+ "categorytree-mode-categories": "само категории",
+ "categorytree-mode-pages": "страници, без файлове",
+ "categorytree-mode-all": "всички страници",
+ "categorytree-collapse": "свиване",
+ "categorytree-expand": "разгръщане",
+ "categorytree-member-counts": "Съдържа {{PLURAL:$1|една подкатегория|$1 подкатегории}}, {{PLURAL:$2|една страница|$2 страници}} и {{PLURAL:$3|един файл|$3 файла}}",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 Стр",
+ "categorytree-num-files": "$1 Ф",
+ "categorytree-num-empty": "празна",
+ "categorytree-load": "зареждане",
+ "categorytree-loading": "зареждане",
+ "categorytree-nothing-found": "няма открити подкатегории",
+ "categorytree-no-subcategories": "няма подкатегории",
+ "categorytree-no-parent-categories": "няма родителски категории",
+ "categorytree-no-pages": "няма страници или подкатегории",
+ "categorytree-not-found": "Категория <i>$1</i> не беше намерена",
+ "categorytree-error": "Възникна проблем при зареждане на данните.",
+ "categorytree-retry": "Изчакайте малко и опитайте отново."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/bgn.json b/www/wiki/extensions/CategoryTree/i18n/bgn.json
new file mode 100644
index 00000000..bd31386b
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/bgn.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Baloch Afghanistan"
+ ]
+ },
+ "categorytree": "تهرئ درخت یا درچگ",
+ "categorytree-portlet": "تهرئان",
+ "categorytree-legend": "تهرئ درخت ئی نشان داتین",
+ "categorytree-desc": "مبتنی وسایل بئ AJAX په [[Special:CategoryTree|تهرهانی جوڑ بوتینگ]] نشان داتین بئ یک ویکی تا",
+ "categorytree-category": "تهر:",
+ "categorytree-go": "درختئ نمایش داتین",
+ "categorytree-parents": "ریشگ",
+ "categorytree-mode-label": "حالت:",
+ "categorytree-mode-categories": "فقط تهرهان",
+ "categorytree-mode-all": "موچین تاکدیمان",
+ "categorytree-expand": "پراخ کورتین",
+ "categorytree-member-counts": "شامل {{PLURAL:$1|یک گۆنڈ تهر|$1 گۆنڈ تهر}}، {{PLURAL:$2|یک دیم|$2 دیم}} و {{PLURAL:$3|یک فایل|$3 فایل اینت}}",
+ "categorytree-num-categories": "$1 ر",
+ "categorytree-num-pages": "$1 ص",
+ "categorytree-num-files": "$1 پ",
+ "categorytree-num-empty": "خالی"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/bho.json b/www/wiki/extensions/CategoryTree/i18n/bho.json
new file mode 100644
index 00000000..dfea7d61
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/bho.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ganesh",
+ "Nepaboy",
+ "SatyamMishra"
+ ]
+ },
+ "categorytree-portlet": "श्रेणी",
+ "categorytree-expand": "फइलाईं",
+ "categorytree-member-counts": "{{PLURAL:$1|1 उप श्रेणी|$1 उप श्रेणी कुल}}, {{PLURAL:$2|1 पन्ना|$2 पन्ना कुल}}, आ {{PLURAL:$3|1 फाइल|$3 फाइल कुल}} शामिल बाड़ें",
+ "categorytree-num-categories": "$1 श्रे",
+ "categorytree-num-pages": "$1 प",
+ "categorytree-num-files": "$1 फा"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/bi.json b/www/wiki/extensions/CategoryTree/i18n/bi.json
new file mode 100644
index 00000000..87bfff53
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/bi.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fanjiayi"
+ ]
+ },
+ "categorytree-member-counts": "Contains {{PLURAL:$1|1 subcategory|$1 subcategories}}, {{PLURAL:$2|1 pej|$2 pejs}}, and {{PLURAL:$3|1 file|$3 files}}"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/bjn.json b/www/wiki/extensions/CategoryTree/i18n/bjn.json
new file mode 100644
index 00000000..76d8ca35
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/bjn.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "J Subhi",
+ "Riemogerz"
+ ]
+ },
+ "categorytree": "Puhun tumbung",
+ "categorytree-portlet": "Tutumbung",
+ "categorytree-legend": "Tampaiakan tumbung puhun",
+ "categorytree-desc": "Napigasi dinamis [[Special:CategoryTree|struktur tumbung]]",
+ "categorytree-header": "Masukakan sabuah ngaran tumbung gasan malihat isinya di bantuk puhun.\nTulung diitihi bahwa pitur naya mamarluakan dukungan JavaScript lanjutan nang dipinandui sabagai AJAX.\nAmun Pian mamakai panjalajah web lawas, atawa mamatiakan pungsi JavaScript Pian, pitur naya kada kawa dijalanakan.",
+ "categorytree-category": "Tumbung",
+ "categorytree-go": "Tampaiakan puhun",
+ "categorytree-parents": "Kuitan",
+ "categorytree-mode-categories": "Tutumbung haja",
+ "categorytree-mode-pages": "tutungkaran kacuali barakas",
+ "categorytree-mode-all": "samunyaan tutungkaran",
+ "categorytree-collapse": "tutup",
+ "categorytree-expand": "Singkai",
+ "categorytree-member-counts": "baisi {{PLURAL:$1|1 subtumbung|$1 subtumbung}}, {{PLURAL:$2|1 tungkaran|$2 tungkaran}}, dan {{PLURAL:$3|1 barakas|$3 barakas}}",
+ "categorytree-num-categories": "$1 T",
+ "categorytree-num-pages": "$1 T",
+ "categorytree-num-files": "$1 B",
+ "categorytree-num-empty": "kusung",
+ "categorytree-load": "muatakan",
+ "categorytree-loading": "mamuat...",
+ "categorytree-nothing-found": "Kada taugai",
+ "categorytree-no-subcategories": "kada sub-tutumbung",
+ "categorytree-no-parent-categories": "kada kuitan tutumbung",
+ "categorytree-no-pages": "kadada tutungkaran atawa sub-tutumbung",
+ "categorytree-not-found": "Tumbung <i>$1</i> kada taugai",
+ "categorytree-error": "Masalah mamuat data.",
+ "categorytree-retry": "Muhun hadangi satumat wan cubai pulang."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/bn.json b/www/wiki/extensions/CategoryTree/i18n/bn.json
new file mode 100644
index 00000000..4b690416
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/bn.json
@@ -0,0 +1,46 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ansumang",
+ "Bellayet",
+ "Nasir8891",
+ "Zaheen",
+ "Aftab1995",
+ "Aftabuzzaman",
+ "আজিজ",
+ "Bodhisattwa"
+ ]
+ },
+ "categorytree": "বিষয়শ্রেণীবৃক্ষ",
+ "categorytree-portlet": "বিষয়শ্রেণী",
+ "categorytree-legend": "বিষয়শ্রেণীগুলো বৃক্ষ আকারে দেখাও",
+ "categorytree-desc": "কোন উইকির [[Special:CategoryTree|বিষয়শ্রেণী কাঠামো]] প্রদর্শনের জন্য এজ্যাক্স-ভিত্তিক গ্যাজেট",
+ "categorytree-header": "যে বিষয়শ্রেণীটির অন্তর্ভুক্ত বিষয়বস্তু বৃক্ষাকারে দেখতে চান, সেটির নাম প্রবেশ করান। (জাভাস্ক্রিপ্ট প্রয়োজন)",
+ "categorytree-category": "বিষয়শ্রেণী:",
+ "categorytree-go": "বৃক্ষ দেখানো হোক",
+ "categorytree-parents": "পিতামাতা",
+ "categorytree-mode-label": "মোড:",
+ "categorytree-mode-categories": "শুধুমাত্র বিষয়শ্রেণী",
+ "categorytree-mode-pages": "ফাইল ব্যতীত পাতাসমূহ",
+ "categorytree-mode-all": "সব পাতা",
+ "categorytree-collapse": "সংকোচন",
+ "categorytree-expand": "প্রসারণ",
+ "categorytree-member-counts": "{{PLURAL:$1|$1টি উপবিষয়শ্রেণী}}, {{PLURAL:$2|$2টি পৃষ্ঠা}}, এবং {{PLURAL:$3|$3টি ফাইল}} রয়েছে",
+ "categorytree-num-categories": "$1টি ব",
+ "categorytree-num-pages": "$1টি প",
+ "categorytree-num-files": "$1টি ফ",
+ "categorytree-num-empty": "খালি",
+ "categorytree-load": "লোড করুন",
+ "categorytree-loading": "লোড হচ্ছে...",
+ "categorytree-nothing-found": "কিছু পাওয়া যায়নি",
+ "categorytree-no-subcategories": "কোন উপ-বিষয়শ্রেণী নেই",
+ "categorytree-no-parent-categories": "কোন মূল বিষয়শ্রেণী নেই",
+ "categorytree-no-pages": "কোন পাতা বা উপ-বিষয়শ্রেণী নেই",
+ "categorytree-not-found": "<i>$1</i> বিষয়শ্রেণীটি পাওয়া যায়নি",
+ "categorytree-error": "উপাত্ত লোডকরণে সমস্যা।",
+ "categorytree-retry": "অনুগ্রহ করে একটু অপেক্ষা করুন ও আবার চেষ্টা করুন।",
+ "apihelp-categorytree-description": "CategoryTree এক্সটেনশনের জন্য আভ্যন্তরীণ মডিউল।",
+ "apihelp-categorytree-summary": "CategoryTree এক্সটেনশনের জন্য আভ্যন্তরীণ মডিউল।",
+ "apihelp-categorytree-param-category": "বিষয়শ্রেণী নামস্থানে শিরোনাম, উপসর্গ উপেক্ষা করা হবে যদি দেয়া হয়।",
+ "apierror-categorytree-invalidjson": "বিকল্প অবশ্যই একটি বৈধ JSON বস্তু হতে হবে।"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/bo.json b/www/wiki/extensions/CategoryTree/i18n/bo.json
new file mode 100644
index 00000000..c551f6a5
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/bo.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Freeyak"
+ ]
+ },
+ "categorytree-portlet": "རྣམ་གྲངས།"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/bqi.json b/www/wiki/extensions/CategoryTree/i18n/bqi.json
new file mode 100644
index 00000000..4d01bece
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/bqi.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bonevarluri",
+ "Mogoeilor"
+ ]
+ },
+ "categorytree-mode-all": "همه بلگه آ",
+ "categorytree-collapse": "جم كردن",
+ "categorytree-expand": "وا كردن",
+ "categorytree-member-counts": "هو د ڤر گرهڌإ {{PLURAL:$1|1 زیردسدأ|$1 زيردسدأ آ}}, {{PLURAL:$2|1 بألگأ|$2 بألگإیل}}, و {{PLURAL:$3|1 جانيا|$3 جانيایل}} إ",
+ "categorytree-num-categories": "$1 س",
+ "categorytree-num-pages": " $1 پ",
+ "categorytree-num-files": " $1 ف"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/br.json b/www/wiki/extensions/CategoryTree/i18n/br.json
new file mode 100644
index 00000000..cf7ed224
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/br.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fohanno",
+ "Fulup"
+ ]
+ },
+ "categorytree": "Gwezennadur ar rummadoù",
+ "categorytree-portlet": "Rummadoù",
+ "categorytree-legend": "Gwelet gwezennadur ar rummad",
+ "categorytree-desc": "Furchal a ra ent dinamek [[Special:CategoryTree|framm ar rummadoù]]",
+ "categorytree-header": "Merkit anv ur rummad evit gwelet petra zo ennañ e stumm ur gwezennadur.\nNotit e rankit kaout an arc'hwelioù JavaScript araokaet anvet AJAX.\nM'eo kozh-mat stumm ho merdeer pe m'eo diweredekaet JavaScript ganeoc'h, ne'z aio ket en-dro.",
+ "categorytree-category": "Rummad :",
+ "categorytree-go": "Diskouez ar gwezennadur",
+ "categorytree-parents": "Usrummadoù",
+ "categorytree-mode-label": "Mod :",
+ "categorytree-mode-categories": "Rummadoù hepken",
+ "categorytree-mode-pages": "pajennoù hep ar skeudennoù",
+ "categorytree-mode-all": "an holl bajennoù",
+ "categorytree-collapse": "Serriñ",
+ "categorytree-expand": "Dispakañ",
+ "categorytree-member-counts": "ennañ {{PLURAL:$1|1 isrummad|$1 isrummad}}, {{PLURAL:$2|1 bajenn|$2 pajenn}}, ha {{PLURAL:$3|1 restr|$3 restr}}",
+ "categorytree-num-categories": "$1 Rum.",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "goullo",
+ "categorytree-load": "kargañ",
+ "categorytree-loading": "o kargañ",
+ "categorytree-nothing-found": "N'eus bet kavet netra",
+ "categorytree-no-subcategories": "isrummad ebet",
+ "categorytree-no-parent-categories": "Rummad kar ebet",
+ "categorytree-no-pages": "Pennad ebet hag isrummad ebet",
+ "categorytree-not-found": "N'eo ket bet kavet ar rummad <i>$1</i>",
+ "categorytree-error": "Ur gudenn zo bet e-ser kargañ ar roadennoù.",
+ "categorytree-retry": "Gortozit un tamm ha klaskit en-dro."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/bs.json b/www/wiki/extensions/CategoryTree/i18n/bs.json
new file mode 100644
index 00000000..ed24894a
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/bs.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "CERminator",
+ "DzWiki",
+ "editors of bs.wikipedia",
+ "Palapa",
+ "KWiki",
+ "Srdjan m"
+ ]
+ },
+ "categorytree": "Stablo kategorija",
+ "categorytree-portlet": "Kategorije",
+ "categorytree-legend": "Prikazuje stablo kategorija",
+ "categorytree-desc": "Dinamičko pregledavanje [[Special:CategoryTree|strukture kategorija]]",
+ "categorytree-header": "Upišite ime kategorije da biste vidjeli njen sadržaj u stablastoj strukturi (zahtijeva JavaScript).",
+ "categorytree-category": "Kategorija:",
+ "categorytree-go": "Prikaži stablo",
+ "categorytree-parents": "Nadkategorije",
+ "categorytree-mode-label": "Režim:",
+ "categorytree-mode-categories": "samo kategorije",
+ "categorytree-mode-pages": "stranice umjesto slika",
+ "categorytree-mode-all": "sve stranice",
+ "categorytree-collapse": "sakrij",
+ "categorytree-expand": "proširi",
+ "categorytree-member-counts": "sadrži {{PLURAL:$1|jednu potkategoriju|$1 potkategorije|$1 potkategorija}}, {{PLURAL:$2|jednu stranicu|$2 stranice|$2 stranica}} i {{PLURAL:$3|jednu datoteku|$3 datoteke|$3 datoteka}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 D",
+ "categorytree-num-empty": "prazno",
+ "categorytree-load": "učitaj",
+ "categorytree-loading": "učitavam…",
+ "categorytree-nothing-found": "nema potkategorija",
+ "categorytree-no-subcategories": "nema potkategorija",
+ "categorytree-no-parent-categories": "nema nadređene kategorije",
+ "categorytree-no-pages": "nema ni stranica ni potkategorija",
+ "categorytree-not-found": "Kategorija <i>$1</i> nije nađena",
+ "categorytree-error": "Problem pri učitavanju podataka.",
+ "categorytree-retry": "Molimo pričekate trenutak i pokušajte ponovno."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/bto.json b/www/wiki/extensions/CategoryTree/i18n/bto.json
new file mode 100644
index 00000000..1987db28
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/bto.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Filipinayzd"
+ ]
+ },
+ "categorytree-portlet": "Mga kategorya",
+ "categorytree-category": "Kategorya:",
+ "categorytree-mode-label": "Mode:",
+ "categorytree-mode-categories": "mga kategorya sana",
+ "categorytree-mode-all": "ngamin na mga pahina",
+ "categorytree-collapse": "Ibaba",
+ "categorytree-expand": "Ibuka",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "uda butang",
+ "categorytree-load": "ikarga",
+ "categorytree-loading": "kinakarga...",
+ "categorytree-nothing-found": "uda naturakan",
+ "categorytree-no-subcategories": "udang mga subkategorya",
+ "categorytree-no-pages": "udang mga pahina o subkategorya",
+ "categorytree-not-found": "Diri naturakang a <i>$1</i>",
+ "categorytree-error": "Agko problema sa pagkarga ka data.",
+ "categorytree-retry": "Paki ulat muna angga prubaran dayday."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ca.json b/www/wiki/extensions/CategoryTree/i18n/ca.json
new file mode 100644
index 00000000..e8827171
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ca.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aleator",
+ "Arnaugir",
+ "Paucabot",
+ "SMP",
+ "Toniher",
+ "Vriullop",
+ "Qllach",
+ "Fitoschido"
+ ]
+ },
+ "categorytree": "Categories en arbre",
+ "categorytree-portlet": "Categories",
+ "categorytree-legend": "Mostra l'arbre de categories",
+ "categorytree-desc": "Navegació dinàmica per l'[[Special:CategoryTree|estructura de categories]]",
+ "categorytree-header": "Entreu el nom d'una categoria per a veure l'arbre del seu contingut. Aquesta pàgina utilitza una funcionalitat avançada del JavaScript coneguda com a AJAX, i no funciona en navegadors antics o que tinguin el JavaScript desactivat.",
+ "categorytree-category": "Categoria:",
+ "categorytree-go": "Mostra l'arbre",
+ "categorytree-parents": "Categories superiors",
+ "categorytree-mode-label": "Mode:",
+ "categorytree-mode-categories": "mostra només categories",
+ "categorytree-mode-pages": "mostra categories i pàgines",
+ "categorytree-mode-all": "mostra categories, pàgines i imatges",
+ "categorytree-collapse": "Tancar",
+ "categorytree-expand": "amplia",
+ "categorytree-member-counts": "conté {{PLURAL:$1|1 subcategoria|$1 subcategories}}, {{PLURAL:$2|1 pàgina|$2 pàgines}}, i {{PLURAL:$3|1 fitxer|$3 fitxers}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "buit",
+ "categorytree-load": "Carrega",
+ "categorytree-loading": "s’està carregant…",
+ "categorytree-nothing-found": "no s’ha trobat res",
+ "categorytree-no-subcategories": "no hi ha subcategories.",
+ "categorytree-no-parent-categories": "cap categoria superior",
+ "categorytree-no-pages": "no hi ha articles o subcategories.",
+ "categorytree-not-found": "No s’ha trobat la categoria <i>$1</i>",
+ "categorytree-error": "Problema en la càrrega de dades.",
+ "categorytree-retry": "Torneu-ho a intentar en uns moments."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/cbk-zam.json b/www/wiki/extensions/CategoryTree/i18n/cbk-zam.json
new file mode 100644
index 00000000..20771e84
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/cbk-zam.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Weekeejames"
+ ]
+ },
+ "categorytree": "El pono de maga categoria",
+ "categorytree-category": "Categoria:",
+ "categorytree-collapse": "esconde",
+ "categorytree-expand": "extende"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/cdo.json b/www/wiki/extensions/CategoryTree/i18n/cdo.json
new file mode 100644
index 00000000..3d65a8e2
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/cdo.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "GnuDoyng",
+ "Yejianfei"
+ ]
+ },
+ "categorytree": "類別樹",
+ "categorytree-header": "Sṳ̆-ĭk lôi-biék miàng-chĭng, káng ĭ gì chéu-hìng giék-gáiu. Chiāng cé̤ṳ-é, ciā hiĕk-miêng sāi-ê̤ṳng siŏh cṳ̄ng gŏ̤-gék JavaScript gé-sŭk, giéu lō̤ AJAX. Nṳ̄ nâ sāi-ê̤ṳng guó-sì gì báuk-lāng-ké, hĕ̤k-ciā cĕk lâi JavaScript, cêu mâ̤ ciáng-siòng gĕ̤ng-cáuk.",
+ "categorytree-category": "分類:",
+ "categorytree-go": "顯示樹",
+ "categorytree-mode-categories": "囇有類別",
+ "categorytree-mode-pages": "無文件其頁面",
+ "categorytree-mode-all": "全部頁面",
+ "categorytree-num-pages": "$1頁",
+ "categorytree-loading": "載入…",
+ "categorytree-no-subcategories": "無子類別",
+ "categorytree-no-pages": "無頁面或者子類別",
+ "categorytree-not-found": "無處討類別<i>$1</i>"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ce.json b/www/wiki/extensions/CategoryTree/i18n/ce.json
new file mode 100644
index 00000000..8823ff97
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ce.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sasan700",
+ "Умар",
+ "Исмаил Садуев"
+ ]
+ },
+ "categorytree": "Категорийн дит",
+ "categorytree-portlet": "Категореш",
+ "categorytree-legend": "Гайта категорийн дит",
+ "categorytree-desc": "AJAX [[Special:CategoryTree|категори дӀахӀоттаран]] компонент ю",
+ "categorytree-header": "Язъе категорин цӀе тӀакха иза гойтур ю диттан кепара.\nХӀара таро ю хьан браузеро AJAX ловш елахь.\nХӀан браузер шира ела елахь я JavaScript дӀаяйина елахь, бухара категореш диттан кепара гойтур яц.",
+ "categorytree-category": "Категори:",
+ "categorytree-go": "Чуяккха",
+ "categorytree-parents": "Кхолламан категореш",
+ "categorytree-mode-label": "РогӀехь:",
+ "categorytree-mode-categories": "екъ категореш",
+ "categorytree-mode-pages": "файлийн совнаха",
+ "categorytree-mode-all": "массо агӀонаш",
+ "categorytree-collapse": "дӀахьарчо",
+ "categorytree-expand": "схьаяста",
+ "categorytree-member-counts": "чохь ю $1 {{PLURAL:$1|1=бухара категори|бухара категореш}}, $2 {{PLURAL:$2|1=агӀо|агӀонаш}} а $3 {{PLURAL:$3|1=файл|файлаш}} а",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 А",
+ "categorytree-num-files": "$1 Ф",
+ "categorytree-num-empty": "есса",
+ "categorytree-load": "чуяккха",
+ "categorytree-loading": "чуйолуш…",
+ "categorytree-nothing-found": "ХӀокху категорин чохь бухара категореш яц.",
+ "categorytree-no-subcategories": "бухара категореш яц",
+ "categorytree-no-parent-categories": "доланиг дожаран категореш яц",
+ "categorytree-no-pages": "агӀонаш я бухара категореш яц",
+ "categorytree-not-found": "Категори «$1» ца карийна.",
+ "categorytree-error": "Хаамаш чубахаран гӀалат.",
+ "categorytree-retry": "Дехар до, собар а дийна юха кхин гӀорта."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ceb.json b/www/wiki/extensions/CategoryTree/i18n/ceb.json
new file mode 100644
index 00000000..90f3d69c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ceb.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Abastillas",
+ "Bentong Isles"
+ ]
+ },
+ "categorytree-portlet": "Mga kategoriya",
+ "categorytree-category": "Kategoriya:",
+ "categorytree-expand": "palapda",
+ "categorytree-member-counts": "May {{PLURAL:$1|usa ka subkategorya|$1 ka mga subkategorya}}, {{PLURAL:$2|usa ka panid|$2 ka mga panid}}, ug {{PLURAL:$3|usa ka payl|$3 ka mga payl}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 P"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ch.json b/www/wiki/extensions/CategoryTree/i18n/ch.json
new file mode 100644
index 00000000..e76e06fc
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ch.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fanjiayi"
+ ]
+ },
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 L"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ckb.json b/www/wiki/extensions/CategoryTree/i18n/ckb.json
new file mode 100644
index 00000000..2e2765a1
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ckb.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Asoxor",
+ "Calak",
+ "Muhammed taha",
+ "Épine"
+ ]
+ },
+ "categorytree": "درەختی پۆل",
+ "categorytree-portlet": "پۆلەكان",
+ "categorytree-legend": "درەختی پۆل نیشانبدە",
+ "categorytree-header": "ناوی پۆلێک بنووسە بۆ بینینی ناوەرۆک و پێکھاتە درەختییەکەی.\nئاگادار بە کە ئەمە پێویستی بە کارگێڕییەکی پێشکەوتووی JavaScript ھەیە کە بە AJAX ناسراوە.\nئەگەر وێبگەڕێکی زۆر کۆنت ھەیە یان JavaScriptت لەکارخستووە، کار ناکات.",
+ "categorytree-category": "پۆل:",
+ "categorytree-go": "دەرختەکە نیشانبدە",
+ "categorytree-parents": "باوانەکان",
+ "categorytree-mode-categories": "تەنیا پۆلەکان",
+ "categorytree-mode-pages": "لاپەڕەکان جگە لەپەڕەکان",
+ "categorytree-mode-all": "ھەموو پەڕەکان",
+ "categorytree-collapse": "کۆیبکەوە",
+ "categorytree-expand": "بڵاویبکەوە",
+ "categorytree-expand-bullet": "◄",
+ "categorytree-empty-bullet": "◄",
+ "categorytree-member-counts": "{{PLURAL:$1|یەک ژێرپۆل|$1 ژێرپۆل}}، {{PLURAL:$2|یەک پەڕە|$2 پەڕە}}، and {{PLURAL:$3|یەک پەڕگە|$3 پەڕگە}} لەبەردەگرێتەوە",
+ "categorytree-num-categories": "$1 پۆل",
+ "categorytree-num-pages": "$1 پەڕە",
+ "categorytree-num-files": "$1 پەڕگە",
+ "categorytree-num-empty": "واڵا",
+ "categorytree-load": "باربکە",
+ "categorytree-loading": "بارکردن...",
+ "categorytree-nothing-found": "ھیچ نەدۆزرایەوە",
+ "categorytree-no-subcategories": "ھیچ ژێرھاوپۆلێک نییە",
+ "categorytree-no-parent-categories": "پۆلی باوان نییە",
+ "categorytree-no-pages": "پەڕە و ژێر پۆل نییە",
+ "categorytree-not-found": "پۆلی <i>$1</i> نەدۆزرایەوە",
+ "categorytree-error": "کێشە لە بارکردنی داتا.",
+ "categorytree-retry": "تکایە دەمێک ڕاوەستە و دیسان تاقیبکەوە."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/co.json b/www/wiki/extensions/CategoryTree/i18n/co.json
new file mode 100644
index 00000000..6adb741c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/co.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Paulu"
+ ]
+ },
+ "categorytree-category": "Categuria:",
+ "categorytree-mode-pages": "pagine senza imagin",
+ "categorytree-mode-all": "tutte e pagine",
+ "categorytree-collapse": "cumprime"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/cop.json b/www/wiki/extensions/CategoryTree/i18n/cop.json
new file mode 100644
index 00000000..ddb2b9de
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/cop.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "ⲁϩⲙⲉⲧ"
+ ]
+ },
+ "categorytree-num-pages": "$1 `ⲛⲥ"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/crh-cyrl.json b/www/wiki/extensions/CategoryTree/i18n/crh-cyrl.json
new file mode 100644
index 00000000..b2dac439
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/crh-cyrl.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Don Alessandro",
+ "Danvintius Bookix"
+ ]
+ },
+ "categorytree-mode-all": "саифелернинъ эписи",
+ "categorytree-expand": "кенишлет",
+ "categorytree-member-counts": "Ичинде {{PLURAL:$1|1 алткатегория|$1 алткатегория}}, {{PLURAL:$2|1 саифе|$2 саифе}}, ве {{PLURAL:$3|1 файл|$3 файл}} бар",
+ "categorytree-no-parent-categories": "усть категория ёкъ",
+ "categorytree-error": "Малюмат юкленмеси хатасы."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/crh-latn.json b/www/wiki/extensions/CategoryTree/i18n/crh-latn.json
new file mode 100644
index 00000000..1219590f
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/crh-latn.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Don Alessandro"
+ ]
+ },
+ "categorytree-mode-all": "saifelerniñ episi",
+ "categorytree-expand": "kenişlet",
+ "categorytree-member-counts": "İçinde {{PLURAL:$1|1 altkategoriya|$1 altkategoriya}}, {{PLURAL:$2|1 saife|$2 saife}}, ve {{PLURAL:$3|1 fayl|$3 fayl}} bar",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-no-parent-categories": "üst kategoriya yoq",
+ "categorytree-error": "Malümat yüklenmesi hatası."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/cs.json b/www/wiki/extensions/CategoryTree/i18n/cs.json
new file mode 100644
index 00000000..056d47bf
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/cs.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Danny B.",
+ "Li-sung",
+ "Mormegil",
+ "LordMsz",
+ "Matěj Suchánek"
+ ]
+ },
+ "categorytree": "Strom kategorií",
+ "categorytree-portlet": "Kategorie",
+ "categorytree-legend": "Zobrazí strom kategorie",
+ "categorytree-desc": "Ajaxový nástroj zobrazující [[Special:CategoryTree|stromovou strukturu kategorií]] na této wiki",
+ "categorytree-header": "Zadejte název kategorie pro zobrazení jejího obsahu jako stromové struktury. (Vyžaduje JavaScript.)",
+ "categorytree-category": "Kategorie:",
+ "categorytree-go": "Zobrazit",
+ "categorytree-parents": "Nadřazené kategorie",
+ "categorytree-mode-label": "Režim:",
+ "categorytree-mode-categories": "pouze kategorie",
+ "categorytree-mode-pages": "stránky kromě souborů",
+ "categorytree-mode-all": "všechny stránky",
+ "categorytree-collapse": "zavřít",
+ "categorytree-expand": "rozbalit",
+ "categorytree-member-counts": "obsahuje {{PLURAL:$1|1 podkategorii|$1 podkategorie|$1 podkategorií}}, {{PLURAL:$2|1 stránku|$2 stránky|$2 stránek}} a {{PLURAL:$3|1 soubor|$3 soubory|$3 souborů}}",
+ "categorytree-num-categories": "$1 kat.",
+ "categorytree-num-pages": "$1 str.",
+ "categorytree-num-files": "$1 soub.",
+ "categorytree-num-empty": "prázdná",
+ "categorytree-load": "načíst",
+ "categorytree-loading": "načítá se",
+ "categorytree-nothing-found": "nic nebylo nalezeno",
+ "categorytree-no-subcategories": "žádné podkategorie.",
+ "categorytree-no-parent-categories": "žádné nadřazené kategorie",
+ "categorytree-no-pages": "žádné články ani podkategorie.",
+ "categorytree-not-found": "Kategorie <em>$1</em> nenalezena",
+ "categorytree-error": "Chyba při načítání dat.",
+ "categorytree-retry": "Počkejte chvilku a zkuste to znova.",
+ "apihelp-categorytree-description": "Interní modul pro rozšíření CategoryTree."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/csb.json b/www/wiki/extensions/CategoryTree/i18n/csb.json
new file mode 100644
index 00000000..2d77bc48
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/csb.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kirsan",
+ "Kaszeba"
+ ]
+ },
+ "categorytree": "Drzéwiã kategòrëji",
+ "categorytree-portlet": "Kategòrëje",
+ "categorytree-legend": "Wëskrzëni drzéwiã kategòrëji",
+ "categorytree-desc": "Dinamicznô nawigacëjô dlô [[Special:CategoryTree|strukturë kategòrëji]]",
+ "categorytree-header": "Wpiszë miono kategòrëji, abë òbôczëc ji zamkłosc jakno drzéwiã (nót je JavaScript).",
+ "categorytree-category": "Kategòrëjô:",
+ "categorytree-go": "Wëskrzëni drzéwiã kategòrëji",
+ "categorytree-parents": "Wëższô kategòrëjô",
+ "categorytree-mode-label": "Trib:",
+ "categorytree-mode-categories": "blós kategòrëje",
+ "categorytree-mode-pages": "starnë bez lopków",
+ "categorytree-mode-all": "wszëtczé starnë",
+ "categorytree-collapse": "zwinie",
+ "categorytree-expand": "rozwinie",
+ "categorytree-member-counts": "Zamëkô w se{{PLURAL:$1|1 pòdkategòrëjã|$1 pòdkategòrëje|$1 pòdkategòrëjów}}, {{PLURAL:$2|1 starnã|$2 starnë|$2 starnów}} i {{PLURAL:$3|1 lopk|$3 lopczii|$3 lopków}}",
+ "categorytree-num-categories": "$1 kat.",
+ "categorytree-num-pages": "$1 str.",
+ "categorytree-num-files": "$1 kat.",
+ "categorytree-num-empty": "pùstô",
+ "categorytree-load": "wladëjë",
+ "categorytree-loading": "wladënk...",
+ "categorytree-nothing-found": "nick nie je nalazłé",
+ "categorytree-no-subcategories": "felënk pòdkategòrëjów",
+ "categorytree-no-parent-categories": "felënk wëższi kategòrëji",
+ "categorytree-no-pages": "felënk starnów abò pòdkategòrëjów",
+ "categorytree-not-found": "Kategòrëjô <i>$1</i> nie òsta nalazłô",
+ "categorytree-error": "Problem z wladowaniém pòdôwków.",
+ "categorytree-retry": "Pòżdôj kąsk é spróbùjë znowa.",
+ "apihelp-categorytree-description": "Bënowi mòduł rozszérzeniô \"CategoryTree\"",
+ "apihelp-categorytree-summary": "Bënowi mòduł rozszérzeniô \"CategoryTree\"",
+ "apihelp-categorytree-param-category": "Titel w rumach mionów kategòrëji, prefiks bãdze jignorowóny jeżlë òstónie pòdóny.",
+ "apihelp-categorytree-param-options": "Optacëjô dlô kònstruktora CategoryTree jakno òbjekt JSON. Optacëjô <var>depth</var> domëslno je <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Òptacëje mùszą bëc pòprôwnyma òbjektama JSON."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/cu.json b/www/wiki/extensions/CategoryTree/i18n/cu.json
new file mode 100644
index 00000000..e902605a
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/cu.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "ОйЛ"
+ ]
+ },
+ "categorytree": "катигорїи дрѣво",
+ "categorytree-portlet": "катигорїѩ",
+ "categorytree-category": "катигорїꙗ :",
+ "categorytree-mode-all": "вьсѩ страницѧ",
+ "categorytree-num-categories": "$1 К҃",
+ "categorytree-num-pages": "$1 С҃",
+ "categorytree-num-files": "$1 Д҃"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/cv.json b/www/wiki/extensions/CategoryTree/i18n/cv.json
new file mode 100644
index 00000000..da202011
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/cv.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chuvash2014",
+ "Chavash"
+ ]
+ },
+ "categorytree-portlet": "Категорисем",
+ "categorytree-category": "Категори:",
+ "categorytree-expand": "сар",
+ "categorytree-member-counts": "$1 айтӗркем, $2 эл тата $3 файл пур",
+ "categorytree-num-categories": "$1 Э",
+ "categorytree-num-pages": "$1 Э",
+ "categorytree-num-files": "$1 Ф"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/cy.json b/www/wiki/extensions/CategoryTree/i18n/cy.json
new file mode 100644
index 00000000..47c02ae9
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/cy.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lloffiwr"
+ ]
+ },
+ "categorytree": "Coeden gategori",
+ "categorytree-portlet": "Categorïau",
+ "categorytree-legend": "Dangos y goeden gategori",
+ "categorytree-desc": "Teclyn AJAX yn arddangos [[Special:CategoryTree|adeiledd categorïau]]'r wici",
+ "categorytree-header": "Teipiwch enw categori yn y blwch er mwyn gweld ei gynnwys ar lun coeden.\nSylwer bod yn rhaid defnyddio offer uwch Sgript Java o'r enw AJAX er mwyn gwneud hyn.\nNi lwydda'r gofyniad os yw'ch porwr yn hen iawn neu os nad yw Sgript Java wedi ei alluogi.",
+ "categorytree-category": "Categori:",
+ "categorytree-go": "Dangos y Goeden",
+ "categorytree-parents": "Rhieni",
+ "categorytree-mode-label": "Modd:",
+ "categorytree-mode-categories": "categorïau yn unig",
+ "categorytree-mode-pages": "tudalennau ag eithrio ffeiliau",
+ "categorytree-mode-all": "pob tudalen",
+ "categorytree-collapse": "crebachu",
+ "categorytree-expand": "ehangu",
+ "categorytree-member-counts": "yn cynnwys y canlynol: {{PLURAL:$1|$1 is-gategori}}, $2 {{PLURAL:$2|tudalen|dudalen|dudalen|tudalen|thudalen|tudalen}}, {{PLURAL:$3|$3 ffeil}}",
+ "categorytree-num-categories": "$1 Cat",
+ "categorytree-num-pages": "$1 Tud",
+ "categorytree-num-files": "$1 Ff",
+ "categorytree-num-empty": "gwag",
+ "categorytree-load": "llwytho",
+ "categorytree-loading": "wrthi'n llwytho...",
+ "categorytree-nothing-found": "dim i'w gael",
+ "categorytree-no-subcategories": "dim is-gategorïau",
+ "categorytree-no-parent-categories": "dim uwch-gategorïau",
+ "categorytree-no-pages": "dim tudalennau nag is-gategorïau",
+ "categorytree-not-found": "Heb ddod o hyd i'r categori <i>$1</i>",
+ "categorytree-error": "Cafwyd problem wrth lwytho'r data.",
+ "categorytree-retry": "Arhoswch ennyd, yna ceisiwch eto."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/da.json b/www/wiki/extensions/CategoryTree/i18n/da.json
new file mode 100644
index 00000000..1375b8b9
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/da.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Barklund",
+ "Byrial",
+ "Christian List",
+ "Fredelige",
+ "Jon Harald Søby",
+ "Peter Alberti"
+ ]
+ },
+ "categorytree": "Kategoritræ",
+ "categorytree-portlet": "Kategorier",
+ "categorytree-legend": "Vis kategoritræ",
+ "categorytree-desc": "Dynamisk navigation i [[Special:CategoryTree|kategoristrukturen]]",
+ "categorytree-header": "Indtast navnet på en kategori for at se indholdet som et træ. Bemærk at dette kræver avanceret JavaScript-funktionalitet kendt som AJAX, det virker ikke hvis du har en meget gammel browser eller hvis du har slået JavaScript fra.",
+ "categorytree-category": "Kategori:",
+ "categorytree-go": "Vis træ",
+ "categorytree-parents": "Overkategorier",
+ "categorytree-mode-label": "Tilstand:",
+ "categorytree-mode-categories": "kun kategorier",
+ "categorytree-mode-pages": "sider med undtagelse af filer",
+ "categorytree-mode-all": "alle sider",
+ "categorytree-collapse": "fold sammen",
+ "categorytree-expand": "fold ud",
+ "categorytree-member-counts": "indeholder {{PLURAL:$1|én underkategori|$1 underkategorier}}, {{PLURAL:$2|én side|$2 sider}} og {{PLURAL:$3|én fil|$3 filer}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "tom",
+ "categorytree-load": "hent",
+ "categorytree-loading": "indlæser",
+ "categorytree-nothing-found": "intet fundet",
+ "categorytree-no-subcategories": "ingen underkategorier",
+ "categorytree-no-parent-categories": "ingen overkategorier",
+ "categorytree-no-pages": "ingen sider eller underkategorier",
+ "categorytree-not-found": "Kategorien ''$1'' blev ikke fundet",
+ "categorytree-error": "Der opstod et problem under indlæsning af data.",
+ "categorytree-retry": "Vent et øjeblik og prøv igen."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/de-ch.json b/www/wiki/extensions/CategoryTree/i18n/de-ch.json
new file mode 100644
index 00000000..ad8e0b88
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/de-ch.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "MichaelFrey"
+ ]
+ },
+ "categorytree-mode-pages": "Seiten ausser Dateien"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/de-formal.json b/www/wiki/extensions/CategoryTree/i18n/de-formal.json
new file mode 100644
index 00000000..4e3169d0
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/de-formal.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Raimond Spekking"
+ ]
+ },
+ "categorytree-retry": "Bitte warten Sie einen Moment und versuchen Sie es dann erneut."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/de.json b/www/wiki/extensions/CategoryTree/i18n/de.json
new file mode 100644
index 00000000..af1f470f
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/de.json
@@ -0,0 +1,47 @@
+{
+ "@metadata": {
+ "authors": [
+ "Daniel Kinzler, brightbyte.de",
+ "Kghbln",
+ "Metalhead64",
+ "Purodha",
+ "Raimond Spekking",
+ "SVG",
+ "MGChecker",
+ "Umherirrender"
+ ]
+ },
+ "categorytree": "Kategorienbaum",
+ "categorytree-portlet": "Kategorien",
+ "categorytree-legend": "Zeige Kategorienbaum",
+ "categorytree-desc": "Fügt dem Wiki eine [[Special:CategoryTree|Spezialseite]] hinzu, welche die dynamische Navigation durch die Kategorienstruktur ermöglicht",
+ "categorytree-header": "Gib den Namen einer Kategorie ein, um ihre Inhalte als Baumstruktur darzustellen. Erfordert JavaScript.",
+ "categorytree-category": "Kategorie:",
+ "categorytree-go": "Kategorienbaum anzeigen",
+ "categorytree-parents": "Oberkategorien",
+ "categorytree-mode-label": "Modus:",
+ "categorytree-mode-categories": "nur Kategorien",
+ "categorytree-mode-pages": "Seiten außer Dateien",
+ "categorytree-mode-all": "alle Seiten",
+ "categorytree-collapse": "einklappen",
+ "categorytree-expand": "ausklappen",
+ "categorytree-member-counts": "enthält {{PLURAL:$1|1 Unterkategorie|$1 Unterkategorien}}, {{PLURAL:$2|1 Seite|$2 Seiten}} und {{PLURAL:$3|1 Datei|$3 Dateien}}",
+ "categorytree-num-categories": "$1&nbsp;K",
+ "categorytree-num-pages": "$1&nbsp;S",
+ "categorytree-num-files": "$1&nbsp;D",
+ "categorytree-num-empty": "leer",
+ "categorytree-load": "laden",
+ "categorytree-loading": "lade …",
+ "categorytree-nothing-found": "Es wurde nichts gefunden.",
+ "categorytree-no-subcategories": "Keine Unterkategorien",
+ "categorytree-no-parent-categories": "Keine Oberkategorien",
+ "categorytree-no-pages": "Keine Seiten oder Unterkategorien",
+ "categorytree-not-found": "Kategorie „$1“ wurde nicht nicht gefunden",
+ "categorytree-error": "Beim Laden der Daten ist ein Problem aufgetreten.",
+ "categorytree-retry": "Bitte warte einen Moment und versuche es dann erneut.",
+ "apihelp-categorytree-description": "Internes Modul für die Erweiterung „CategoryTree“.",
+ "apihelp-categorytree-summary": "Internes Modul für die Erweiterung „CategoryTree“.",
+ "apihelp-categorytree-param-category": "Titel im Kategorie-Namensraum. Das Präfix wird ignoriert, falls angegeben.",
+ "apihelp-categorytree-param-options": "Optionen für den CategoryTree-Konstruktor als JSON-Objekt. Der Standard für die <var>depth</var>-Option ist <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Optionen müssen ein gültiges JSON-Objekt sein."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/din.json b/www/wiki/extensions/CategoryTree/i18n/din.json
new file mode 100644
index 00000000..cad7df5e
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/din.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dinkawiki"
+ ]
+ },
+ "categorytree-expand": "cuotyic",
+ "categorytree-member-counts": "Aleŋic {{PLURAL:$1|1 bekätakthookkor|$1 bekätakthuɔkkor}}, {{PLURAL:$2|1 apäm|$2 apääm}}, ku {{PLURAL:$3|1 wëtmät|$3 wëlmät}}$2",
+ "categorytree-num-categories": "$1 At",
+ "categorytree-num-pages": "$1 Ap",
+ "categorytree-num-files": "$1 M"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/diq.json b/www/wiki/extensions/CategoryTree/i18n/diq.json
new file mode 100644
index 00000000..ef220c2c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/diq.json
@@ -0,0 +1,45 @@
+{
+ "@metadata": {
+ "authors": [
+ "Erdemaslancan",
+ "Marmase",
+ "Mirzali",
+ "Xoser",
+ "Kumkumuk",
+ "1917 Ekim Devrimi",
+ "Gırd"
+ ]
+ },
+ "categorytree": "Dara Kategoriya",
+ "categorytree-portlet": "Kategoriyi",
+ "categorytree-legend": "Dara kategori bımotné",
+ "categorytree-desc": "[[Special:CategoryTree|Babeta kategoriya]] dinamikey sera idare ke",
+ "categorytree-header": "Yew namey kategori bınuse kı zerrekê ey zey vıraştışê dare bıvêne. (Javaskript lazımo)",
+ "categorytree-category": "Kategoriye:",
+ "categorytree-go": "Bar ke",
+ "categorytree-parents": "Kategoriyê serêni",
+ "categorytree-mode-label": "Modê cı:",
+ "categorytree-mode-categories": "tenya kategoriy",
+ "categorytree-mode-pages": "Teyna pelan, dosyayan hesab meke",
+ "categorytree-mode-all": "peley pêro",
+ "categorytree-collapse": "teng kı",
+ "categorytree-expand": "Hera ke",
+ "categorytree-member-counts": "Tede {{PLURAL:$1|1 bınkategoriye|$1 bınkategoriy}}, {{PLURAL:$2|1 pele|$2 peli}} û {{PLURAL:$3|1 dosya|$3 dosyey}} estê",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 D",
+ "categorytree-num-empty": "'''Venga'''",
+ "categorytree-load": "Bar ke",
+ "categorytree-loading": "bar beno...",
+ "categorytree-nothing-found": "maalesef netice çınyo",
+ "categorytree-no-subcategories": "bınkategoriy çıniyê",
+ "categorytree-no-parent-categories": "ser kategoriye cı çınyo",
+ "categorytree-no-pages": "peli ya zi bınkategoriy çıniyê",
+ "categorytree-not-found": "Kategoriya <i>$1</i> nêvêniye",
+ "categorytree-error": "Barkerdış de malumati dı problem esta.",
+ "categorytree-retry": "Şıma ra reca tenekê pıpawê, bahdo fına bıcerbnê.",
+ "apihelp-categorytree-description": "Derganiya zerre de Module Categorytree.",
+ "apihelp-categorytree-param-category": "Serekê canameya kategori, verole grotış do nê gêriyeno",
+ "apihelp-categorytree-param-options": "İnşaya weçeneganê Categorytree JSON objeyan vıraziya.\nHesıbyaye xoriyeya weçena <kbd>1</kbd> a.",
+ "apierror-categorytree-invalidjson": "Weçenegê objeyê JSON'i ravêreno"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/dsb.json b/www/wiki/extensions/CategoryTree/i18n/dsb.json
new file mode 100644
index 00000000..cd9633cf
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/dsb.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michawiki"
+ ]
+ },
+ "categorytree": "Bom kategorijow",
+ "categorytree-portlet": "Kategorije",
+ "categorytree-legend": "Kategorijowy bom pokazaś",
+ "categorytree-desc": "Dynamiski pśez [[Special:CategoryTree|kategorijowu strukturu]] nawigěrowaś",
+ "categorytree-header": "Zapódaj mě kategorije, aby jeje wopśimjeśe ako bomowu strukturu wiźeł.\nGlědaj, až se to wěste funkcije JavaScripta pomina, znate ako AJAX.\nJolic maš wjelgin stary browser abo jolic JavaScript jo wótšaltowane, toś ten bok ewentuelnje njefunkcioněrujo.",
+ "categorytree-category": "Kategorija:",
+ "categorytree-go": "Bom pokazaś",
+ "categorytree-parents": "Wuše kategorije",
+ "categorytree-mode-label": "Modus:",
+ "categorytree-mode-categories": "jano kategorije",
+ "categorytree-mode-pages": "Boki mimo datajow",
+ "categorytree-mode-all": "wšykne boki",
+ "categorytree-collapse": "złožyś",
+ "categorytree-expand": "rozłožyś",
+ "categorytree-member-counts": "wopśimujo {{PLURAL:$1|1 pódkategoriju|$1 pódkategoriji|$1 pódkategorije|$1 pódkategorijow}}, {{PLURAL:$2|1 bok|$2 boka|$2 boki|$2 bokow}} a {{PLURAL:$3|1 dataju|$3 dataji|$3 dataje|$3 datajow}}",
+ "categorytree-num-categories": "$1 k",
+ "categorytree-num-pages": "$1 b",
+ "categorytree-num-files": "$1 d",
+ "categorytree-num-empty": "prozny",
+ "categorytree-load": "lodowaś",
+ "categorytree-loading": "lodujo se...",
+ "categorytree-nothing-found": "Nic namakany",
+ "categorytree-no-subcategories": "Žedne pódkategorije",
+ "categorytree-no-parent-categories": "žedne wuše kategorije",
+ "categorytree-no-pages": "Žedne boki abo pódkategorije",
+ "categorytree-not-found": "Kategorija <i>$1</i> njenamakana",
+ "categorytree-error": "Problem pśi lodowanju datow.",
+ "categorytree-retry": "Pócakaj pšosym moment a wopytaj hyšći raz."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/dtp.json b/www/wiki/extensions/CategoryTree/i18n/dtp.json
new file mode 100644
index 00000000..d8483239
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/dtp.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "FRANCIS5091"
+ ]
+ },
+ "categorytree-portlet": "Tinanansar",
+ "categorytree-category": "Tinansar",
+ "categorytree-mode-all": "Oinsanan bobolikon",
+ "categorytree-no-subcategories": "Ingaa kawo do kalas"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/dty.json b/www/wiki/extensions/CategoryTree/i18n/dty.json
new file mode 100644
index 00000000..64420454
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/dty.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "रमेश सिंह बोहरा",
+ "Nirajan pant"
+ ]
+ },
+ "categorytree-expand": "फैलौन",
+ "categorytree-member-counts": "मि {{PLURAL:$1|1 श्रेणी छ|$1 श्रेणीहरू छन्}}, {{PLURAL:$2|1 पृष्ठ छ|$2 पृष्ठहरू छन्}}, और {{PLURAL:$3|1 फाइल छ|$3 फाइलहरू छन्}}",
+ "categorytree-num-categories": "$1 C (श्रे)",
+ "categorytree-num-pages": "$1 P (पृ)",
+ "categorytree-num-files": "$1 F (फा)"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ee.json b/www/wiki/extensions/CategoryTree/i18n/ee.json
new file mode 100644
index 00000000..e3ddb9d3
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ee.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "categorytree-mode-all": "axawo katã"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/egl.json b/www/wiki/extensions/CategoryTree/i18n/egl.json
new file mode 100644
index 00000000..1562f290
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/egl.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lévi",
+ "Reder"
+ ]
+ },
+ "categorytree-portlet": "Categoréi",
+ "categorytree-category": "Categoréi:",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/el.json b/www/wiki/extensions/CategoryTree/i18n/el.json
new file mode 100644
index 00000000..2c875455
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/el.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "AK",
+ "Badseed",
+ "Consta",
+ "Dead3y3",
+ "Protnet",
+ "ZaDiak",
+ "SucreRouge"
+ ]
+ },
+ "categorytree": "Δέντρο κατηγορίας",
+ "categorytree-portlet": "Κατηγορίες",
+ "categorytree-legend": "Εμφάνιση δέντρου κατηγορίας",
+ "categorytree-desc": "Πλοηγηθείτε δυναμικά στη [[Special:CategoryTree|δομή της κατηγορίας]]",
+ "categorytree-header": "Εισαγάγετε όνομα κατηγορίας για να δείτε τα περιεχόμενά της ως δεντρική δομή.\nΣημειώστε ότι αυτό απαιτεί προηγμένη λειτουργικότητα JavaScript γνωστή ως AJAX.\nΑν έχετε πολύ παλιό περιηγητή, ή αν έχετε απενεργοποιημένο το JavaScript, δεν θα δουλέψει.",
+ "categorytree-category": "Κατηγορία:",
+ "categorytree-go": "Εμφάνιση δέντρου",
+ "categorytree-parents": "Γονείς",
+ "categorytree-mode-label": "Λειτουργία:",
+ "categorytree-mode-categories": "μόνο κατηγορίες",
+ "categorytree-mode-pages": "Σελίδες εξαιρουμένων αρχείων",
+ "categorytree-mode-all": "όλες οι σελίδες",
+ "categorytree-collapse": "σύμπτυξη",
+ "categorytree-expand": "επέκτεινε",
+ "categorytree-member-counts": "Περιέχει {{PLURAL:$1|1 υποκατηγορία|$1 υποκατηγορίες}}, {{PLURAL:$2|1 σελίδα|$2 σελίδες}} και {{PLURAL:$3|1 αρχείο|$3 αρχεία}}",
+ "categorytree-num-categories": "$1 Κ",
+ "categorytree-num-pages": "$1 Σ",
+ "categorytree-num-files": "$1 Α",
+ "categorytree-num-empty": "κενή",
+ "categorytree-load": "φορτώστε",
+ "categorytree-loading": "φόρτωση",
+ "categorytree-nothing-found": "δεν βρέθηκε τίποτα",
+ "categorytree-no-subcategories": "καμία υποκατηγορία",
+ "categorytree-no-parent-categories": "δεν υπάρχουν πατρικές κατηγορίες",
+ "categorytree-no-pages": "καμία σελίδα ή υποκατηγορία",
+ "categorytree-not-found": "Η κατηγορία <i>$1</i> δεν βρέθηκε",
+ "categorytree-error": "Πρόβλημα φόρτωσης δεδομένων.",
+ "categorytree-retry": "Παρακαλούμε περιμένετε μια στιγμή και προσπαθήστε ξανά."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/en-gb.json b/www/wiki/extensions/CategoryTree/i18n/en-gb.json
new file mode 100644
index 00000000..65b79887
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/en-gb.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chase me ladies, I'm the Cavalry",
+ "Dejavu"
+ ]
+ },
+ "categorytree": "Category tree",
+ "categorytree-portlet": "Categories",
+ "categorytree-legend": "Show category tree",
+ "categorytree-desc": "Dynamically navigate the [[Special:CategoryTree|category structure]]",
+ "categorytree-header": "Enter a category name to see its contents as a tree structure. (Requires JavaScript.)",
+ "categorytree-category": "Category:",
+ "categorytree-go": "Show tree",
+ "categorytree-parents": "Parents",
+ "categorytree-mode-label": "Mode:",
+ "categorytree-mode-categories": "categories only",
+ "categorytree-mode-pages": "pages except files",
+ "categorytree-mode-all": "all pages",
+ "categorytree-collapse": "collapse",
+ "categorytree-expand": "expand",
+ "categorytree-member-counts": "Contains {{PLURAL:$1|1 subcategory|$1 subcategories}}, {{PLURAL:$2|1 page|$2 pages}}, and {{PLURAL:$3|1 file|$3 files}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "empty",
+ "categorytree-load": "load",
+ "categorytree-loading": "loading…",
+ "categorytree-nothing-found": "nothing found",
+ "categorytree-no-subcategories": "no subcategories",
+ "categorytree-no-parent-categories": "no parent categories",
+ "categorytree-no-pages": "no pages or subcategories",
+ "categorytree-not-found": "Category <i>$1</i> not found",
+ "categorytree-error": "Problem loading data.",
+ "categorytree-retry": "Please wait a moment and try again.",
+ "apihelp-categorytree-description": "Internal module for the CategoryTree extension.",
+ "apihelp-categorytree-param-category": "Title in the category namespace, prefix will be ignored if given.",
+ "apihelp-categorytree-param-options": "Options for the CategoryTree constructor as a JSON object. The <var>depth</var> option defaults to <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Options must be valid a JSON object."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/en.json b/www/wiki/extensions/CategoryTree/i18n/en.json
new file mode 100644
index 00000000..654e1f7f
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/en.json
@@ -0,0 +1,45 @@
+{
+ "@metadata": {
+ "authors": [
+ "Daniel Kinzler, brightbyte.de"
+ ]
+ },
+ "categorytree": "Category tree",
+ "categorytree-portlet": "Categories",
+ "categorytree-legend": "Show category tree",
+ "categorytree-desc": "Dynamically navigate the [[Special:CategoryTree|category structure]]",
+ "categorytree-header": "Enter a category name to see its contents as a tree structure. (Requires JavaScript.)",
+ "categorytree-category": "Category:",
+ "categorytree-go": "Show tree",
+ "categorytree-parents": "Parents",
+ "categorytree-mode-label": "Mode:",
+ "categorytree-mode-categories": "categories only",
+ "categorytree-mode-pages": "pages except files",
+ "categorytree-mode-all": "all pages",
+ "categorytree-collapse": "collapse",
+ "categorytree-expand": "expand",
+ "categorytree-collapse-bullet": "▼",
+ "categorytree-expand-bullet": "►",
+ "categorytree-empty-bullet": "►",
+ "categorytree-page-bullet": "&nbsp;",
+ "categorytree-member-counts": "Contains {{PLURAL:$1|1 subcategory|$1 subcategories}}, {{PLURAL:$2|1 page|$2 pages}}, and {{PLURAL:$3|1 file|$3 files}}",
+ "categorytree-member-num": "($5)",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "empty",
+ "categorytree-load": "load",
+ "categorytree-loading": "loading…",
+ "categorytree-nothing-found": "nothing found",
+ "categorytree-no-subcategories": "no subcategories",
+ "categorytree-no-parent-categories": "no parent categories",
+ "categorytree-no-pages": "no pages or subcategories",
+ "categorytree-not-found": "Category <i>$1</i> not found",
+ "categorytree-error": "Problem loading data.",
+ "categorytree-retry": "Please wait a moment and try again.",
+ "apihelp-categorytree-description": "Internal module for the CategoryTree extension.",
+ "apihelp-categorytree-summary": "Internal module for the CategoryTree extension.",
+ "apihelp-categorytree-param-category": "Title in the category namespace, prefix will be ignored if given.",
+ "apihelp-categorytree-param-options": "Options for the CategoryTree constructor as a JSON object. The <var>depth</var> option defaults to <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Options must be valid a JSON object."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/eo.json b/www/wiki/extensions/CategoryTree/i18n/eo.json
new file mode 100644
index 00000000..05a4cc64
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/eo.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "KuboF",
+ "Tlustulimu",
+ "Yekrats"
+ ]
+ },
+ "categorytree": "Kategoriarbo",
+ "categorytree-portlet": "Kategorioj",
+ "categorytree-legend": "Montri kategorian arbon",
+ "categorytree-desc": "AJAX-bazita aldonaĵo por montri la [[Special:CategoryTree|kategorian strukturon]] de vikio",
+ "categorytree-header": "Tajpu kategorinomon por vidi ties enhavon en arboforma strukturo. Notu ke tio postulas progresajn javaskripatajn funkciojn nomitajn AJAX. Se via foliumilo estas tre malnova aŭ se Javaskripto estas malaktivigita, tio ne funkcios.",
+ "categorytree-category": "Kategorio:",
+ "categorytree-go": "Montri arbon",
+ "categorytree-parents": "Patraj kategorioj",
+ "categorytree-mode-label": "Reĝimo:",
+ "categorytree-mode-categories": "nur kategorioj",
+ "categorytree-mode-pages": "paĝoj krom dosieroj",
+ "categorytree-mode-all": "ĉiuj paĝoj",
+ "categorytree-collapse": "kaŝi",
+ "categorytree-expand": "montri",
+ "categorytree-member-counts": "enhavas {{PLURAL:$1|1 subkategorion|$1 subkategoriojn}}, {{PLURAL:$2|1 paĝon|$2 paĝojn}}, kaj {{PLURAL:$3|1 dosieron|$3 dosierojn}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 D",
+ "categorytree-num-empty": "malplena",
+ "categorytree-load": "elŝuti",
+ "categorytree-loading": "ŝarĝante...",
+ "categorytree-nothing-found": "nenio trovita",
+ "categorytree-no-subcategories": "neniu subkategorio",
+ "categorytree-no-parent-categories": "neniuj superaj kategorioj",
+ "categorytree-no-pages": "neniuj paĝoj aŭ subkategorioj",
+ "categorytree-not-found": "La kategorio <i>$1</i> ne estis trovita.",
+ "categorytree-error": "Problemo ŝarĝante datenojn",
+ "categorytree-retry": "Bonvolu atendi momenton kaj provi denove."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/es.json b/www/wiki/extensions/CategoryTree/i18n/es.json
new file mode 100644
index 00000000..bf2e7d44
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/es.json
@@ -0,0 +1,52 @@
+{
+ "@metadata": {
+ "authors": [
+ "Locos epraix",
+ "Muro de Aguas",
+ "Ralgis",
+ "Remember the dot",
+ "Sanbec",
+ "Spacebirdy",
+ "Vivaelcelta",
+ "Fitoschido",
+ "Themasterriot",
+ "Macofe",
+ "Dgstranz"
+ ]
+ },
+ "categorytree": "Árbol de categorías",
+ "categorytree-portlet": "Categorías",
+ "categorytree-legend": "Mostrar árbol de categorías",
+ "categorytree-desc": "Navegar dinámicamente por la [[Special:CategoryTree|estructura de categorías]]",
+ "categorytree-header": "Escribe un nombre de categoría para ver su contenido con una estructura de árbol. (Requiere JavaScript.)",
+ "categorytree-category": "Categoría:",
+ "categorytree-go": "Cargar",
+ "categorytree-parents": "Categorías superiores",
+ "categorytree-mode-label": "Modo:",
+ "categorytree-mode-categories": "solo categorías",
+ "categorytree-mode-pages": "páginas excepto imágenes",
+ "categorytree-mode-all": "todas las páginas",
+ "categorytree-collapse": "contraer",
+ "categorytree-expand": "expandir",
+ "categorytree-expand-bullet": "►",
+ "categorytree-empty-bullet": "►",
+ "categorytree-member-counts": "Contiene {{PLURAL:$1|una subcategoría|$1 subcategorías}}, {{PLURAL:$2|una página|$2 páginas}} y {{PLURAL:$3|un archivo|$3 archivos}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "vacía",
+ "categorytree-load": "cargar",
+ "categorytree-loading": "cargando…",
+ "categorytree-nothing-found": "no se ha encontrado nada",
+ "categorytree-no-subcategories": "sin subcategorías",
+ "categorytree-no-parent-categories": "no hay categorías superiores",
+ "categorytree-no-pages": "sin páginas ni subcategorías",
+ "categorytree-not-found": "Categoría <i>$1</i> no encontrada",
+ "categorytree-error": "Error al cargar los datos.",
+ "categorytree-retry": "Espera un momento y vuelve a intentarlo.",
+ "apihelp-categorytree-description": "Módulo interno para la extensión CategoryTree.",
+ "apihelp-categorytree-summary": "Módulo interno para la extensión CategoryTree.",
+ "apihelp-categorytree-param-category": "Título en el espacio de nombres Categoría; el prefijo, en caso de indicarse, se ignorará.",
+ "apihelp-categorytree-param-options": "Opciones para el constructor CategoryTree como objeto JSON. La opción <var>depth</var> por defecto toma el valor <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Las opciones deben ser un objeto JSON válido."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/et.json b/www/wiki/extensions/CategoryTree/i18n/et.json
new file mode 100644
index 00000000..259abbf2
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/et.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Avjoska",
+ "Jaan513",
+ "Pikne"
+ ]
+ },
+ "categorytree": "Kategooriapuu",
+ "categorytree-portlet": "Kategooriad",
+ "categorytree-legend": "Kategooriapuu näitamine",
+ "categorytree-desc": "[[Special:CategoryTree|Kategooriate ülesehituse]] dünaamiline vaatamine.",
+ "categorytree-header": "Sisesta kategooria nimi, et näha selle sisu puustruktuurina. (Nõuab JavaScripti.)",
+ "categorytree-category": "Kategooria:",
+ "categorytree-go": "Näita puud",
+ "categorytree-parents": "Ülemkategooriad",
+ "categorytree-mode-label": "Moodus:",
+ "categorytree-mode-categories": "ainult kategooriad",
+ "categorytree-mode-pages": "failideta",
+ "categorytree-mode-all": "kõik leheküljed",
+ "categorytree-collapse": "peida",
+ "categorytree-expand": "näita",
+ "categorytree-member-counts": "sisaldab {{PLURAL:$1|üht|$1}} alamkategooriat, {{PLURAL:$2|üht|$2}} lehekülge ja {{PLURAL:$3|üht|$3}} faili",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 L",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "tühi",
+ "categorytree-load": "laadi",
+ "categorytree-loading": "laadimine...",
+ "categorytree-nothing-found": "ei leitud midagi",
+ "categorytree-no-subcategories": "alamkategooriaid ei ole",
+ "categorytree-no-parent-categories": "ülemkategooriad pole",
+ "categorytree-no-pages": "lehekülgi ega alamkategooriad pole",
+ "categorytree-not-found": "Kategooriat <i>$1</i> ei leitud.",
+ "categorytree-error": "Probleem andmete laadimisel.",
+ "categorytree-retry": "Palun oota hetk ja proovi uuesti."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/eu.json b/www/wiki/extensions/CategoryTree/i18n/eu.json
new file mode 100644
index 00000000..acb0c809
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/eu.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "An13sa",
+ "Theklan"
+ ]
+ },
+ "categorytree": "Kategoria Zuhaitza",
+ "categorytree-portlet": "Kategoriak",
+ "categorytree-legend": "Erakutsi kategoria zuhaitza",
+ "categorytree-desc": "Dinamikoki nabigatu [[Special:CategoryTree|kategoria zuhaitza]]",
+ "categorytree-header": "Idatzi kategoria baten izena bere edukia zuhaitz eran ikusteko. Kontuan izan horrek AJAX bezala ezagutzen diren JavaScript funtzio aurreratuen beharra duela. Nabigatzaile zahar bat erabiltzen baduzu, edo JavaScript ezgaituta badaukazu, ez du funtzionatuko.",
+ "categorytree-category": "Kategoria",
+ "categorytree-go": "Zuhaitza erakutsi",
+ "categorytree-parents": "Gurasoak",
+ "categorytree-mode-label": "Modua:",
+ "categorytree-mode-categories": "kategoriak bakarrik",
+ "categorytree-mode-pages": "orrialdeak, irudiak ezik",
+ "categorytree-mode-all": "orrialde guztiak",
+ "categorytree-collapse": "itxi",
+ "categorytree-expand": "zabaldu",
+ "categorytree-member-counts": "{{PLURAL:$1|azpikategoria 1|$1 azpikategoria}}, {{PLURAL:$2|orrialde 1|$2 orrialde}} eta {{PLURALK:$3|fitxategi 1|$3 fitxategi}} ditu",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 O",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "hutsik",
+ "categorytree-load": "kargatu",
+ "categorytree-loading": "kargatzen",
+ "categorytree-nothing-found": "ez da ezer aurkitu",
+ "categorytree-no-subcategories": "ez dago azpikategoriarik",
+ "categorytree-no-parent-categories": "ez dago kategoria gurasorik",
+ "categorytree-no-pages": "ez dago orrialde edo azpikategoriarik",
+ "categorytree-not-found": "Ez da <i>$1</i> kategoria aurkitu",
+ "categorytree-error": "Arazoa datuak kargatzerakoan.",
+ "categorytree-retry": "Itxaron pixka bat eta saiatu berriz."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ext.json b/www/wiki/extensions/CategoryTree/i18n/ext.json
new file mode 100644
index 00000000..d292c42e
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ext.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Better",
+ "Crucifunked"
+ ]
+ },
+ "categorytree": "Arbu e categorias",
+ "categorytree-category": "Categoria:",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-load": "cargal",
+ "categorytree-loading": "cargandu",
+ "categorytree-no-pages": "nu ai ni páhinas ni sucategorias"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/fa.json b/www/wiki/extensions/CategoryTree/i18n/fa.json
new file mode 100644
index 00000000..f9b70180
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/fa.json
@@ -0,0 +1,48 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ebraminio",
+ "Huji",
+ "Leyth",
+ "Mjbmr",
+ "ZxxZxxZ",
+ "Alirezaaa",
+ "Rtemis"
+ ]
+ },
+ "categorytree": "درخت رده",
+ "categorytree-portlet": "رده‌ها",
+ "categorytree-legend": "نمایش درخت رده",
+ "categorytree-desc": "ناوبری فعال [[Special:CategoryTree|ساختار رده‌ای]]",
+ "categorytree-header": "نام رده‌ای را وارد کنید تا محتویات آن به صورت درختی نمایش یابد. (نیازمندم جاوااسکریپت)",
+ "categorytree-category": "رده:",
+ "categorytree-go": "نمایش درخت",
+ "categorytree-parents": "والدین",
+ "categorytree-mode-label": "حالت:",
+ "categorytree-mode-categories": "فقط رده‌ها",
+ "categorytree-mode-pages": "صفحه‌ها به غیر از پرونده‌ها",
+ "categorytree-mode-all": "تمام صفحه‌ها",
+ "categorytree-collapse": "نهفتن",
+ "categorytree-expand": "گسترش",
+ "categorytree-expand-bullet": "◄",
+ "categorytree-empty-bullet": "◄",
+ "categorytree-member-counts": "شامل {{PLURAL:$1|یک زیررده|$1 زیررده}}، {{PLURAL:$2|یک صفحه|$2 صفحه}} و {{PLURAL:$3|یک پرونده|$3 پرونده است}}",
+ "categorytree-num-categories": "$1 ر",
+ "categorytree-num-pages": "$1 ص",
+ "categorytree-num-files": "$1 پ",
+ "categorytree-num-empty": "خالی",
+ "categorytree-load": "بارگیری",
+ "categorytree-loading": "در حال بارگیری...",
+ "categorytree-nothing-found": "هیچ‌چیز یافت نشد.",
+ "categorytree-no-subcategories": "هیچ زیررده‌ای ندارد",
+ "categorytree-no-parent-categories": "فاقد ردهٔ بالاتر",
+ "categorytree-no-pages": "هیچ صفحه یا زیررده‌ای ندارد",
+ "categorytree-not-found": "ردهٔ <i>$1</i> یافت نشد",
+ "categorytree-error": "اشکال در دریافت اطلاعات.",
+ "categorytree-retry": "لطفاً کمی صبر کنید و دوباره امتحان کنید.",
+ "apihelp-categorytree-description": "پودمان داخلی برای افزونهٔ درخت رده",
+ "apihelp-categorytree-summary": "پودمان داخلی برای افزونهٔ درخت رده",
+ "apihelp-categorytree-param-category": "عنوان در فضای نام رده، پیشوند اگر ارائه شود نادیده گرفته می‌شود.",
+ "apihelp-categorytree-param-options": "گزینه‌هایی برای سازندهٔ درخت‌رده به صورت یک شیء جی‌سان. گزینهٔ <var>depth</var> به طور پیش‌فرض مقدار <kbd>1</kbd> دارد.",
+ "apierror-categorytree-invalidjson": "گزینه‌ها باید یک شیء جی‌سان معتبر باشد."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/fi.json b/www/wiki/extensions/CategoryTree/i18n/fi.json
new file mode 100644
index 00000000..5f062e4d
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/fi.json
@@ -0,0 +1,45 @@
+{
+ "@metadata": {
+ "authors": [
+ "Agony",
+ "Crt",
+ "Linnea",
+ "Nedergard",
+ "Nike",
+ "Str4nd",
+ "01miki10",
+ "Pyscowicz"
+ ]
+ },
+ "categorytree": "Luokkapuu",
+ "categorytree-portlet": "Luokat",
+ "categorytree-legend": "Näytä luokkapuu",
+ "categorytree-desc": "AJAX-pohjainen laajennus, joka näyttää wikin [[Special:CategoryTree|luokkapuurakenteen]].",
+ "categorytree-header": "Syötä alle luokka, jonka haluat nähdä puumuodossa. (Vaatii JavaScriptin.)",
+ "categorytree-category": "Luokka",
+ "categorytree-go": "Näytä puu",
+ "categorytree-parents": "Yläluokat",
+ "categorytree-mode-label": "Tila",
+ "categorytree-mode-categories": "vain luokat",
+ "categorytree-mode-pages": "kaikki sivut tiedostoja lukuun ottamatta",
+ "categorytree-mode-all": "kaikki sivut",
+ "categorytree-collapse": "piilota",
+ "categorytree-expand": "näytä",
+ "categorytree-member-counts": "sisältää {{PLURAL:$1|1 alaluokan|$1 alaluokkaa}}, {{PLURAL:$2|1 sivun|$2 sivua}} ja {{PLURAL:$3|1 tiedoston|$3 tiedostoa}}",
+ "categorytree-num-categories": "$1 L",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 T",
+ "categorytree-num-empty": "tyhjä",
+ "categorytree-load": "näytä",
+ "categorytree-loading": "etsitään",
+ "categorytree-nothing-found": "ei alaluokkia",
+ "categorytree-no-subcategories": "ei alaluokkia",
+ "categorytree-no-parent-categories": "ei yläluokkia",
+ "categorytree-no-pages": "ei sivuja eikä alaluokkia",
+ "categorytree-not-found": "Luokkaa <i>$1</i> ei löytynyt",
+ "categorytree-error": "Ongelma tietojen latauksessa.",
+ "categorytree-retry": "Odota hetki ja yritä uudelleen.",
+ "apihelp-categorytree-description": "Sisäinen moduuli CategoryTree-laajennukselle.",
+ "apihelp-categorytree-summary": "Sisäinen moduuli CategoryTree-laajennukselle.",
+ "apihelp-categorytree-param-category": "Otsikko luokkanimiavaruudessa, etuliitettä ei huomioida, jos se on annettu."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/fit.json b/www/wiki/extensions/CategoryTree/i18n/fit.json
new file mode 100644
index 00000000..0697c1e5
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/fit.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mestos"
+ ]
+ },
+ "categorytree": "Luokkapuu",
+ "categorytree-portlet": "Luokat",
+ "categorytree-legend": "Näytä luokkapuu",
+ "categorytree-header": "Syötä alle luokka jonka haluat nähhä puumuoossa. Tämä toiminalisuus vaatii kehittynheen JavaScript-tuen, jota kuttuthaan AJAXiksi. Jos sulla on vanhaa selain, eli JavaScript ei ole päälä, tämä ominaisuus ei toimi",
+ "categorytree-category": "Luokka",
+ "categorytree-go": "Näytä puu",
+ "categorytree-parents": "Yläluokat",
+ "categorytree-mode-categories": "vain luokat",
+ "categorytree-mode-pages": "kaikki sivut kuvia lukhuun ottamatta",
+ "categorytree-mode-all": "kaikki sivut",
+ "categorytree-collapse": "piilota",
+ "categorytree-expand": "näytä",
+ "categorytree-member-counts": "sisältää {{PLURAL:$1|1 alaluokan|$1 alaluokkaa}}, {{PLURAL:$2|1 sivun|$2 sivua}} ja {{PLURAL:$3|1 tieoston|$3 tieostoa}}",
+ "categorytree-load": "näytä",
+ "categorytree-loading": "haethaan",
+ "categorytree-nothing-found": "ei mithään löyetty",
+ "categorytree-no-subcategories": "ei alaluokkia",
+ "categorytree-no-parent-categories": "ei yläluokkia",
+ "categorytree-no-pages": "ei sivuja eikä alaluokkia",
+ "categorytree-not-found": "Luokkaa <i>$1</i> ei löytyny",
+ "categorytree-error": "Prupleemia tieoitten lattaamisessa",
+ "categorytree-retry": "Oota vähän aikaa ja yritä uuesti"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/fo.json b/www/wiki/extensions/CategoryTree/i18n/fo.json
new file mode 100644
index 00000000..abb7f28e
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/fo.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Diupwijk",
+ "EileenSanda",
+ "Spacebirdy"
+ ]
+ },
+ "categorytree": "BólkaTræ",
+ "categorytree-portlet": "Bólkar",
+ "categorytree-legend": "Vís bólka træið",
+ "categorytree-desc": "Dynamisk stýring í [[Special:CategoryTree|bólka strukturinum]]",
+ "categorytree-header": "Skriva heiti á einum bólki fyri at síggja innihaldið sum træ strukturur.\nLegg til merkis, at hetta krevur víðarikomið JacaScript virksemi (funktionalitet), sum er kent sum AJAX.\nUm tú hevur ein sera gamlan kaga (brovsara), ella hevur gjørt JavaScript óvirkið, so fer tað ikki at virka.",
+ "categorytree-category": "Bólkur:",
+ "categorytree-go": "Vís træ",
+ "categorytree-parents": "Foreldur",
+ "categorytree-mode-label": "Støða:",
+ "categorytree-mode-categories": "bert bólkar",
+ "categorytree-mode-pages": "Síður uttan fílur",
+ "categorytree-mode-all": "allar síður",
+ "categorytree-collapse": "samanbrot",
+ "categorytree-expand": "víðka",
+ "categorytree-member-counts": "Inniheldur {{PLURAL:$1|1 undirbólk|$1 undirbólkar}}, {{PLURAL:$2|1 síðu|$2 síður}}, og {{PLURAL:$3|1 fílu|$3 fílur}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "tómur",
+ "categorytree-load": "heinta",
+ "categorytree-loading": "lesur inn",
+ "categorytree-nothing-found": "onki funnið",
+ "categorytree-no-subcategories": "ongir undirbólkar",
+ "categorytree-no-parent-categories": "ongir foreldra bólkar",
+ "categorytree-no-pages": "ongar síður ella undirbólkar",
+ "categorytree-not-found": "Bólkur <i>$1</i> ikki funnin",
+ "categorytree-error": "Trupulleikar við at taka niður dáta.",
+ "categorytree-retry": "Vinarliga bíða eitt bil og royn so aftur."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/fr.json b/www/wiki/extensions/CategoryTree/i18n/fr.json
new file mode 100644
index 00000000..9fb43dc9
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/fr.json
@@ -0,0 +1,51 @@
+{
+ "@metadata": {
+ "authors": [
+ "Darkdadaah",
+ "DavidL",
+ "Gomoko",
+ "Grondin",
+ "IAlex",
+ "Meithal",
+ "Peter17",
+ "Sherbrooke",
+ "Urhixidur",
+ "Verdy p",
+ "Wladek92",
+ "Dgstranz"
+ ]
+ },
+ "categorytree": "Arborescence des catégories",
+ "categorytree-portlet": "Catégories",
+ "categorytree-legend": "Visionner l’arborescence de la catégorie",
+ "categorytree-desc": "Visite dynamiquement la [[Special:CategoryTree|structure des catégories]]",
+ "categorytree-header": "Entrez un nom de catégorie pour voir son contenu en structure arborescente (nécessite JavaScript).",
+ "categorytree-category": "Catégorie :",
+ "categorytree-go": "Voir l’arborescence",
+ "categorytree-parents": "super-catégorie(s)",
+ "categorytree-mode-label": "Mode :",
+ "categorytree-mode-categories": "seulement les catégories",
+ "categorytree-mode-pages": "pages sans les images",
+ "categorytree-mode-all": "toutes les pages",
+ "categorytree-collapse": "Replier",
+ "categorytree-expand": "Développer",
+ "categorytree-member-counts": "contient $1 sous-catégorie{{PLURAL:$1||s}}, $2 page{{PLURAL:$2||s}} et $3 fichier{{PLURAL:$3||s}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "vide",
+ "categorytree-load": "charger",
+ "categorytree-loading": "chargement...",
+ "categorytree-nothing-found": "rien trouvé",
+ "categorytree-no-subcategories": "aucune sous-catégorie",
+ "categorytree-no-parent-categories": "aucune catégorie parente",
+ "categorytree-no-pages": "aucune page ou sous-catégorie",
+ "categorytree-not-found": "Catégorie <i>$1</i> introuvable",
+ "categorytree-error": "Problème de chargement des données.",
+ "categorytree-retry": "Veuillez attendre un instant puis réessayer.",
+ "apihelp-categorytree-description": "Module interne pour l’extension CategoryTree.",
+ "apihelp-categorytree-summary": "Module interne pour l’extension CategoryTree.",
+ "apihelp-categorytree-param-category": "Titre dans l’espace de noms des catégories, le préfixe sera ignoré s’il est fourni.",
+ "apihelp-categorytree-param-options": "Options pour le constructeur CategoryTree comme objet JSON. L’option <var>depth</var> par défaut vaut <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Les options doivent être un objet JSON valide."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/frc.json b/www/wiki/extensions/CategoryTree/i18n/frc.json
new file mode 100644
index 00000000..698ad1a1
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/frc.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hangmanwa7id"
+ ]
+ },
+ "categorytree-expand": "Développer",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/frp.json b/www/wiki/extensions/CategoryTree/i18n/frp.json
new file mode 100644
index 00000000..6c3194c8
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/frp.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "ChrisPtDe"
+ ]
+ },
+ "categorytree": "Structura d’âbro de les catègories",
+ "categorytree-portlet": "Catègories",
+ "categorytree-legend": "Vêre la structura d’âbro de la catègorie",
+ "categorytree-desc": "Outil basâ dessus AJAX por afichiér la [[Special:CategoryTree|structura de la catègorie]] d’un vouiqui",
+ "categorytree-header": "Buchiéd un nom de catègorie por vêre son contegnu en structura d’âbro.\nCen utilise des fonccionalitâts JavaScript avanciês cognues desot lo nom d’AJAX.\nSe vos avéd un rudo viely navigator ou ben se vos éd pas activâ la fonccionalitât JavaScript, cen fonccionerat pas.",
+ "categorytree-category": "Catègorie :",
+ "categorytree-go": "Fâre vêre la structura d’âbro",
+ "categorytree-parents": "Sur-catègorie(s) ",
+ "categorytree-mode-label": "Fôrma :",
+ "categorytree-mode-categories": "solament les catègories",
+ "categorytree-mode-pages": "pâges sen los fichiérs",
+ "categorytree-mode-all": "totes les pâges",
+ "categorytree-collapse": "recllôre",
+ "categorytree-expand": "dèpleyér",
+ "categorytree-member-counts": "contint $1 sot-catègori{{PLURAL:$1|a|es}}, $2 pâge{{PLURAL:$2||s}} et pués $3 fichiér{{PLURAL:$3||s}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "vouedo",
+ "categorytree-load": "Uvrir",
+ "categorytree-loading": "uvèrtura...",
+ "categorytree-nothing-found": "Pas trovâ, dèsolâ.",
+ "categorytree-no-subcategories": "Gins de sot-catègorie.",
+ "categorytree-no-parent-categories": "gins de catègorie parenta",
+ "categorytree-no-pages": "Gins d’articllo ou de sot-catègorie.",
+ "categorytree-not-found": "La catègorie <i>$1</i> at pas étâ trovâ.",
+ "categorytree-error": "Problèmo de chargement de les balyês.",
+ "categorytree-retry": "Atendéd un moment et pués tornâd èprovar."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/frr.json b/www/wiki/extensions/CategoryTree/i18n/frr.json
new file mode 100644
index 00000000..a6621b5a
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/frr.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Murma174"
+ ]
+ },
+ "categorytree": "Kategoriibuum",
+ "categorytree-portlet": "Kategoriin",
+ "categorytree-legend": "Kategoriibuum wise",
+ "categorytree-desc": "Diarmä könst dü lachter det [[Special:CategoryTree|kategorii struktuur]] beluke",
+ "categorytree-header": "Wiset onerkategoriin üs en buum. Detdiar sidj brükt JavaScript (Ajax) an werket ferlicht ei mä en ualen browser.",
+ "categorytree-category": "Kategorii:",
+ "categorytree-go": "Kategoriibuum uunwise",
+ "categorytree-parents": "Auerkategoriin",
+ "categorytree-mode-label": "Modus:",
+ "categorytree-mode-categories": "bluas kategoriin",
+ "categorytree-mode-pages": "sidjen saner dateien",
+ "categorytree-mode-all": "Aal a sidjen",
+ "categorytree-collapse": "Fersteeg",
+ "categorytree-expand": "Wise",
+ "categorytree-member-counts": "Diar san {{PLURAL:$1|1 onerkategorii|$1 onerkategoriin}}, {{PLURAL:$2|1 sidj|$2 sidjen}} an {{PLURAL:$3|1 datei|$3 datein}} uun.",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 D",
+ "categorytree-num-empty": "leesag",
+ "categorytree-load": "loose",
+ "categorytree-loading": "loose ...",
+ "categorytree-nothing-found": "Niks fünjen.",
+ "categorytree-no-subcategories": "Nian onerkategoriin",
+ "categorytree-no-parent-categories": "Nian auerkategoriin",
+ "categorytree-no-pages": "Nian sidjen of onerkategoriin",
+ "categorytree-not-found": "Det kategorii „$1“ as ei fünjen wurden.",
+ "categorytree-error": "Bi't loosin faan dooten as wat skiaf gingen.",
+ "categorytree-retry": "Teew en uugenblak an ferschük det do noch ans."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/fur.json b/www/wiki/extensions/CategoryTree/i18n/fur.json
new file mode 100644
index 00000000..dde1e080
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/fur.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Klenje",
+ "MF-Warburg",
+ "Tocaibon"
+ ]
+ },
+ "categorytree": "Arbul des categoriis",
+ "categorytree-portlet": "Categoriis",
+ "categorytree-legend": "Mostre arbul des categoriis",
+ "categorytree-desc": "Navigazion dinamic te [[Special:CategoryTree|struture des categoriis]]",
+ "categorytree-header": "Inserìs il non de categorie di cui tu vuelis viodi i siei contignûts intune struture a arbul.\nCheste funzion e à bisugne di funzions avanzadis JavaScript, cognossudis come AJAX.\nSe tu âs un sgarfadôr a vonde vieri, o tu âs disativât JavaScript, cheste pagjine no funzionarà.",
+ "categorytree-category": "Categorie:",
+ "categorytree-go": "Mostre arbul",
+ "categorytree-parents": "Categoriis superiôrs",
+ "categorytree-mode-categories": "mostre dome lis categoriis",
+ "categorytree-mode-pages": "dutis lis pagjinis, fûr che i files",
+ "categorytree-mode-all": "dutis lis pagjinis",
+ "categorytree-collapse": "strenç",
+ "categorytree-expand": "slargje",
+ "categorytree-member-counts": "e à dentri {{PLURAL:$1|1 sotcategorie|$1 sotcategoriis}}, {{PLURAL:$2|1 pagjine|$2 pagjinis}} e {{PLURAL:$3|1 file|$3 files}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-load": "cjame",
+ "categorytree-loading": "daûr a cjamâ",
+ "categorytree-nothing-found": "nissun risultât",
+ "categorytree-no-subcategories": "nissune sot categorie.",
+ "categorytree-no-parent-categories": "nissune categorie parsore",
+ "categorytree-no-pages": "nissune pagjine ni sotcategorie",
+ "categorytree-not-found": "Categorie <i>$1</i> no cjatade",
+ "categorytree-error": "Probleme dilunc la cjamade dai dâts.",
+ "categorytree-retry": "Spiete un moment e torne a provâ."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/fy.json b/www/wiki/extensions/CategoryTree/i18n/fy.json
new file mode 100644
index 00000000..2f184b5f
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/fy.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "SK-luuut",
+ "Snakesteuben",
+ "Robin0van0der0vliet",
+ "Ieneach fan 'e Esk",
+ "Robin van der Vliet"
+ ]
+ },
+ "categorytree": "Kategorybeam",
+ "categorytree-portlet": "Kategoryen",
+ "categorytree-legend": "Lit kategorystambeam sjen",
+ "categorytree-header": "Folje in kategorynamme yn om de ynhâld yn in beamstruktuer te sjen. Tink dêrom dat dit spesjale JavaScript funksjes brûkt bekend as AJAX. At jo in tige âlde blêdzjer hawwe of jo hawwe JavaScript net oan stean, dan wurket dit net.",
+ "categorytree-category": "Kategory:",
+ "categorytree-go": "Los",
+ "categorytree-mode-categories": "allinne kategoryen",
+ "categorytree-mode-pages": "alle siden útsein ôfbylden",
+ "categorytree-mode-all": "alle siden",
+ "categorytree-collapse": "ticht",
+ "categorytree-expand": "iepen",
+ "categorytree-member-counts": "befettet {{PLURAL:$1|1 subkategory|$1 subkategoryen}}, {{PLURAL:$2|1 side|$2 siden}} en {{PLURAL:$3|1 triem|$3 triemmen}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 T",
+ "categorytree-num-empty": "leech",
+ "categorytree-load": "ynlade",
+ "categorytree-loading": "ynlade...",
+ "categorytree-nothing-found": "neat fûn",
+ "categorytree-no-subcategories": "gjin ûnderlizzende kategoryen",
+ "categorytree-no-pages": "gjin siden of ûnderlizzende siden",
+ "categorytree-not-found": "Kategory <i>$1</i> net fûn"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ga.json b/www/wiki/extensions/CategoryTree/i18n/ga.json
new file mode 100644
index 00000000..b7d81f2d
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ga.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Alison",
+ "Alma",
+ "Moilleadóir",
+ "Spacebirdy",
+ "Xosé",
+ "පසිඳු කාවින්ද"
+ ]
+ },
+ "categorytree": "Crann na gCatagóirí",
+ "categorytree-portlet": "Catagóirí",
+ "categorytree-legend": "Taispeáin crann na gcatagóirí",
+ "categorytree-desc": "Giuirléid AJAX a thaispeánann an [[Special:CategoryTree|struchtúr catagóirí]] i vicí",
+ "categorytree-header": "Cuir isteach ainm catagóra chun a hinneachar a thaispeáint i struchtúr crainn.\nTabhair faoi deara gur riachtanach ardfheidhmiúlacht JavaScript (AJAX) a bheith agat.\nMá tá do bhrabhsálaí róshean, nó má dhíchumasaigh tú JavaScript, ní oibreoidh sé.",
+ "categorytree-category": "Catagóir:",
+ "categorytree-go": "Taispeán an Crann",
+ "categorytree-parents": "Máthairnóid",
+ "categorytree-mode-categories": "catagóirí amháin",
+ "categorytree-mode-pages": "leathanaigh seachas comhaid",
+ "categorytree-mode-all": "gach leathanach",
+ "categorytree-collapse": "dún",
+ "categorytree-expand": "oscail",
+ "categorytree-member-counts": "tá {{PLURAL:$1|fo-chatagóir amháin|$1 fo-chatagóirí}}, {{PLURAL:$2|leathanach amháin|$2 leathanaigh}}, agus {{PLURAL:$3|comhad amháin|$3 comhaid}} laistigh",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-load": "lódáil",
+ "categorytree-loading": "ag lódáil…",
+ "categorytree-nothing-found": "Ní bhfuarthas dada",
+ "categorytree-no-subcategories": "gan fho-chatagóir",
+ "categorytree-no-parent-categories": "níl aon máthairchatagóirí",
+ "categorytree-no-pages": "gan leathanach ná fo-chatagóir",
+ "categorytree-not-found": "Ní bhfuarthas Catagóir <i>$1</i>",
+ "categorytree-error": "Earráid agus sonraí dá lódáil.",
+ "categorytree-retry": "Fan nóiméad, le do thoil, roimh triail eile a bhaint as."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/gcf.json b/www/wiki/extensions/CategoryTree/i18n/gcf.json
new file mode 100644
index 00000000..abec688a
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/gcf.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Laetitia Kb"
+ ]
+ },
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-files": "$1 F"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/gcr.json b/www/wiki/extensions/CategoryTree/i18n/gcr.json
new file mode 100644
index 00000000..06572e86
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/gcr.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "LeGuyanaisPure"
+ ]
+ },
+ "categorytree-expand": "Dévlopé",
+ "categorytree-member-counts": "Ka kontni $1 soukatégori{{PLURAL:$1|}}, $2 paj{{PLURAL:$2|}} é $3 fiché{{PLURAL:$3|}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/gd.json b/www/wiki/extensions/CategoryTree/i18n/gd.json
new file mode 100644
index 00000000..19a0f0f3
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/gd.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "Akerbeltz",
+ "GunChleoc"
+ ]
+ },
+ "categorytree": "Craobh nan roinnean-seòrsa",
+ "categorytree-portlet": "Roinnean-seòrsa",
+ "categorytree-legend": "Seall craobh nan roinnean-seòrsa",
+ "categorytree-desc": "Seòl [[Special:CategoryTree|structar nan roinnean-seòrsa]] gu h-innsgineach",
+ "categorytree-header": "Cuir a-steach ainm roinn-seòrsa gus a susbaint a shealltainn 'na chraobh.\nThoir an aire gum bi feum agad air foincsean JavaScript adhartach air a bheil AJAX.\nChan obraich e ma tha brabhsair glè shean agad no ma tha JavaScript à comas.",
+ "categorytree-category": "Roinn-seòrsa:",
+ "categorytree-go": "Seall a' chraobh",
+ "categorytree-parents": "Pàrantan",
+ "categorytree-mode-label": "Modh:",
+ "categorytree-mode-categories": "roinnean-seòrsa a-mhàin",
+ "categorytree-mode-pages": "duilleagan seach faidhlichean",
+ "categorytree-mode-all": "a h-uile duilleag",
+ "categorytree-collapse": "co-theannaich",
+ "categorytree-expand": "leudaich",
+ "categorytree-expand-bullet": "►",
+ "categorytree-empty-bullet": "►",
+ "categorytree-member-counts": "Tha $1 {{PLURAL:$1|fho-roinn-seòrsa|fho-roinn-seòrsa|fo-roinnean-seòrsa|fo-roinn-seòrsa}}, $2 {{PLURAL:$2|duilleag|dhuilleag|duilleagan|duilleag}} 's $3 {{PLURAL:$3|fhaidhle|fhaidhle|faidhlichean|faidhle}} 'na broinn",
+ "categorytree-num-categories": "$1 R-S",
+ "categorytree-num-pages": "$1 D",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "falamh",
+ "categorytree-load": "luchdaich",
+ "categorytree-loading": "'ga luchdadh…",
+ "categorytree-nothing-found": "cha deach càil a lorg",
+ "categorytree-no-subcategories": "gun fho-roinn-seòrsa",
+ "categorytree-no-parent-categories": "gun roinn-seòrsa pàraint",
+ "categorytree-no-pages": "gun duilleag no fho-roinn-seòrsa",
+ "categorytree-not-found": "Cha deach an roinn-seòrsa <i>$1</i> a lorg",
+ "categorytree-error": "Duilgheadas le luchdadh an dàta.",
+ "categorytree-retry": "Fuirich greiseag 's feuch ris a-rithist.",
+ "apihelp-categorytree-description": "Mòideal inntearnail airson leudachan nan craobhan roinnean-seòrsa.",
+ "apihelp-categorytree-param-category": "Tiotal ann an ainm-spàs \"Roinn-seòrsa\", thèid an ro-leasachan a leigeil seachad ma chaidh e a chur ris.",
+ "apihelp-categorytree-param-options": "Roghainnean airson craobh nan roinnean-seòrsa gus oibseact JSON a thogail. Thèid doimhne dhe <kbd>1</kbd> a chleachdadh a ghnàth."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/gl.json b/www/wiki/extensions/CategoryTree/i18n/gl.json
new file mode 100644
index 00000000..73aeab67
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/gl.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Alma",
+ "Toliño",
+ "Xosé",
+ "Elisardojm",
+ "Navhy"
+ ]
+ },
+ "categorytree": "Árbore de categorías",
+ "categorytree-portlet": "Categorías",
+ "categorytree-legend": "Mostrar a árbore de categorías",
+ "categorytree-desc": "Navegación dinámica a través da [[Special:CategoryTree|estrutura de categorías]]",
+ "categorytree-header": "Introduza o nome dunha categoría para ver o seu contido nunha estrutura de árbore. (Require JavaScript.)",
+ "categorytree-category": "Categoría:",
+ "categorytree-go": "Amosar a árbore",
+ "categorytree-parents": "Categoría raíz",
+ "categorytree-mode-label": "Modo:",
+ "categorytree-mode-categories": "só as categorías",
+ "categorytree-mode-pages": "páxinas agás os ficheiros",
+ "categorytree-mode-all": "todas as páxinas",
+ "categorytree-collapse": "contraer",
+ "categorytree-expand": "expandir",
+ "categorytree-member-counts": "Contén {{PLURAL:$1|unha subcategoría|$1 subcategorías}}, {{PLURAL:$2|unha páxina|$2 páxinas}} e mais {{PLURAL:$3|un ficheiro|$3 ficheiros}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "baleira",
+ "categorytree-load": "cargar",
+ "categorytree-loading": "cargando…",
+ "categorytree-nothing-found": "non se atopou nada",
+ "categorytree-no-subcategories": "non hai subcategorías",
+ "categorytree-no-parent-categories": "non hai categorías superiores a esta",
+ "categorytree-no-pages": "non hai páxinas nin subcategorías",
+ "categorytree-not-found": "Non se atopou a categoría \"<i>$1</i>\"",
+ "categorytree-error": "Problema coa carga de datos.",
+ "categorytree-retry": "Agarde un momento e inténteo de novo.",
+ "apihelp-categorytree-description": "Módulo interno para a extensión CategoryTree.",
+ "apihelp-categorytree-summary": "Módulo interno para a extensión CategoryTree.",
+ "apihelp-categorytree-param-category": "Título no espazo de nomes das categorías; en caso de indicarse, o prefixo será ignorado.",
+ "apihelp-categorytree-param-options": "Opción para o construtor CategoryTree como un obxecto JSON. A opción <var>depth</var> vale <kbd>1</kbd> por defecto.",
+ "apierror-categorytree-invalidjson": "As opcións deben ser un obxecto JSON válido."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/glk.json b/www/wiki/extensions/CategoryTree/i18n/glk.json
new file mode 100644
index 00000000..4ad1d735
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/glk.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "V6rg",
+ "شیخ"
+ ]
+ },
+ "categorytree": "جرگه دار",
+ "categorytree-portlet": "جرگه'ن",
+ "categorytree-legend": "جرگه داره دئن",
+ "categorytree-category": "جرگه:",
+ "categorytree-go": "داره دئن",
+ "categorytree-mode-categories": "فقط جرگه'ن",
+ "categorytree-mode-all": "همته ولگؤن",
+ "categorytree-expand": "واتينادأن",
+ "categorytree-member-counts": "{{PLURAL:$1|ىکته جيرجرگه|$1 جيرجرگه}}، {{PLURAL:$2|ىکته ولگ|$2 ولگ}} ؤ {{PLURAL:$3|ىکته فاىل|$3 فاىل}} اينˇ مئن دره.",
+ "categorytree-num-categories": "$1 ج",
+ "categorytree-num-pages": "$1 و",
+ "categorytree-num-files": "$1 ف",
+ "categorytree-num-empty": "خالي",
+ "categorytree-nothing-found": "هيچي ىاته نۊبؤ"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/gn.json b/www/wiki/extensions/CategoryTree/i18n/gn.json
new file mode 100644
index 00000000..c0645e85
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/gn.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fanjiayi"
+ ]
+ },
+ "categorytree-num-categories": "$1 N",
+ "categorytree-num-pages": "$1 P"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/gom-deva.json b/www/wiki/extensions/CategoryTree/i18n/gom-deva.json
new file mode 100644
index 00000000..4c07160b
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/gom-deva.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Darshan kandolkar",
+ "Supriya kankumbikar",
+ "The Discoverer"
+ ]
+ },
+ "categorytree-expand": "विस्तारित कर",
+ "categorytree-member-counts": "{{PLURAL:$1|1 उपवर्ग|$1 उपवर्ग}}, {{PLURAL:$2|1 पान |$2 पानां}}, आनी {{PLURAL:$3|1 फायल |$3 फायली}} उपलब्ध आसात",
+ "categorytree-num-categories": "$1 व",
+ "categorytree-num-pages": "$1 प",
+ "categorytree-num-files": "$1 फ"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/gom-latn.json b/www/wiki/extensions/CategoryTree/i18n/gom-latn.json
new file mode 100644
index 00000000..17d21d93
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/gom-latn.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "The Discoverer"
+ ]
+ },
+ "categorytree-expand": "vistarit kor",
+ "categorytree-member-counts": "Hantunt asat {{PLURAL:$1|1 upvorg|$1 upvorg}}, {{PLURAL:$2|1 pan|$2 panam}}, ani {{PLURAL:$3|1 fail|$3 faili}}",
+ "categorytree-num-categories": "$1 V",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "ritem"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/gor.json b/www/wiki/extensions/CategoryTree/i18n/gor.json
new file mode 100644
index 00000000..89fe2129
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/gor.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Marwan Mohamad"
+ ]
+ },
+ "categorytree-expand": "po'otanggala",
+ "categorytree-member-counts": "Tuwango {{PLURAL:$1|1 subkategori|$1 subkategori}}. {{PLURAL:$2|1 halaman|$2 halaman}}, wawu {{PLURAL:$3|1 file|$3 file}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 H",
+ "categorytree-num-files": "$1 K"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/got.json b/www/wiki/extensions/CategoryTree/i18n/got.json
new file mode 100644
index 00000000..a7ed7b93
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/got.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gothicspeaker"
+ ]
+ },
+ "categorytree-expand": "𐌿𐍆𐌸𐌰𐌽𐌴𐌹",
+ "categorytree-num-categories": "$1 𐌺",
+ "categorytree-num-pages": "$1 𐌻",
+ "categorytree-num-files": "$1 𐍆"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/grc.json b/www/wiki/extensions/CategoryTree/i18n/grc.json
new file mode 100644
index 00000000..d426d4a3
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/grc.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "LeighvsOptimvsMaximvs",
+ "Omnipaedista",
+ "Gts-tg"
+ ]
+ },
+ "categorytree": "Δένδρον κατηγοριῶν",
+ "categorytree-portlet": "Κατηγορίαι",
+ "categorytree-category": "Κατηγορία:",
+ "categorytree-go": "Ἐμφανίζειν δένδρον",
+ "categorytree-parents": "Γονεῖς",
+ "categorytree-mode-categories": "Κατηγορίαι μόνον",
+ "categorytree-mode-all": "πᾶσαι αἱ δέλτοι",
+ "categorytree-collapse": "συστέλλειν",
+ "categorytree-expand": "διαστέλλειν",
+ "categorytree-member-counts": "Περιέχει{{PLURAL:$1|1 ὑποκατηγορία|$1 ὑποκατηγορίαi}}, {{PLURAL:$2|1 δέλτος|$2 δέλτοι}}, καἰ {{PLURAL:$3|1 ἀρχείον|$3 ἀρχεία}}",
+ "categorytree-num-categories": "$1 Κ",
+ "categorytree-num-pages": "$1 Δ",
+ "categorytree-num-files": "$1 Ἀ",
+ "categorytree-load": "φορτίζειν",
+ "categorytree-loading": "φορτίζειν...",
+ "categorytree-nothing-found": "οὐδὲν εὑρεθέν",
+ "categorytree-no-subcategories": "οὐδεμία ὑποκατηγορία",
+ "categorytree-no-parent-categories": "οὐδεμία γονεικὴ κατηγορία",
+ "categorytree-not-found": "Κατηγορία <i>$1</i> μὴ εὑρεθεῖσα",
+ "categorytree-error": "Πρόβλημα τοῦ φορτίζειν δεδομένα"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/gsw.json b/www/wiki/extensions/CategoryTree/i18n/gsw.json
new file mode 100644
index 00000000..c3c6056e
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/gsw.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Als-Chlämens",
+ "Als-Holder",
+ "Hendergassler"
+ ]
+ },
+ "categorytree": "Kategoriebaum",
+ "categorytree-portlet": "Kategori",
+ "categorytree-legend": "Kategoriebaum aazeige",
+ "categorytree-desc": "Dynamischi Navigation fir d [[Special:CategoryTree|Kategorie-Struktur]]",
+ "categorytree-header": "Gib e Kategoriname yy zum dr Inhalt vun ere as Baumstruktur aazluege.\nDes brucht fortgschritteneri JavaScript-Funktione (Ajax). Wänn JavaScript abgschalden isch oder e eltere Browser brucht wird, cha s syy, ass es nit goht.",
+ "categorytree-category": "Kategori:",
+ "categorytree-go": "Baum zeige",
+ "categorytree-parents": "Iberkategorie",
+ "categorytree-mode-categories": "Nume d Kategorie",
+ "categorytree-mode-pages": "Syte user Dateie",
+ "categorytree-mode-all": "Alli Syte",
+ "categorytree-collapse": "zueklappe",
+ "categorytree-expand": "ufklappe",
+ "categorytree-member-counts": "het {{PLURAL:$1|1 Unterkategori|$1 Unterkategorie}}, {{PLURAL:$2|1 Syte|$2 Syte}}, un {{PLURAL:$3|1 Datei|$3 Dateie}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 D",
+ "categorytree-num-empty": "läär",
+ "categorytree-load": "lade",
+ "categorytree-loading": "s isch am Laade ...",
+ "categorytree-nothing-found": "nyt gfunde",
+ "categorytree-no-subcategories": "Kaini Unterkategorie",
+ "categorytree-no-parent-categories": "Kaini Iberkategorie",
+ "categorytree-no-pages": "Kai Syte oder Unterkategorie",
+ "categorytree-not-found": "Kategori <i>$1</i> nit gfunde",
+ "categorytree-error": "Problem bim Lade vo dr Date",
+ "categorytree-retry": "Wart e Rung un versuech s derno non emol."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/gu.json b/www/wiki/extensions/CategoryTree/i18n/gu.json
new file mode 100644
index 00000000..bd6b1565
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/gu.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ankit",
+ "Ashok modhvadia",
+ "Dsvyas",
+ "KartikMistry",
+ "Arbhatt"
+ ]
+ },
+ "categorytree": "શ્રેણીવૃક્ષ",
+ "categorytree-portlet": "શ્રેણીઓ",
+ "categorytree-legend": "શ્રેણીવૃક્ષ બતાવો",
+ "categorytree-desc": "[[Special:CategoryTree|શ્રેણી રચના]]નું ગતિશીલ સંચાલન",
+ "categorytree-header": "શ્રેણીની વિષયસૂચી ને વૃક્ષસંરચનામાં જોવા માટે શ્રેણીનું નામ દાખલ કરો.\nએ વાતની નોંધ લેશો કે, આ માટે AJAX તરીકે ઓળખાતી સુધરેલી જાવાસ્ક્રિપ્ટ કાર્યક્ષમતા જરૂરી છે.\nજો તમારૂં બ્રાઉઝર અતિ જુનું હશે કે જાવાસ્ક્રિપ્ટ અક્રિય કરેલી હશે તો આ કાર્ય કરશે નહીં.",
+ "categorytree-category": "શ્રેણી:",
+ "categorytree-go": "વૃક્ષ બતાવો",
+ "categorytree-parents": "પિતૃ",
+ "categorytree-mode-label": "સ્થિતિ:",
+ "categorytree-mode-categories": "ફક્ત શ્રેણીઓ",
+ "categorytree-mode-pages": "ફાઇલો સિવાયનાં પાનાઓ",
+ "categorytree-mode-all": "બધા પાનાં",
+ "categorytree-collapse": "સંકેલો",
+ "categorytree-expand": "વિસ્તારો",
+ "categorytree-member-counts": "સમાવિષ્ટ {{PLURAL:$1|૧ ઉપશ્રેણી|$1 ઉપશ્રેણીઓ}}, {{PLURAL:$2|૧ પાનું|$2 પાનાંઓ}}, અને {{PLURAL:$3|૧ ફાઇલ|$3 ફાઇલો}}",
+ "categorytree-num-categories": "$1 શ્રેણી",
+ "categorytree-num-pages": "$1 પાના",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "ખાલી",
+ "categorytree-load": "લાવો",
+ "categorytree-loading": "લાવે છે...",
+ "categorytree-nothing-found": "કંઈ ન મળ્યું",
+ "categorytree-no-subcategories": "ઉપશ્રેણીઓ નથી",
+ "categorytree-no-parent-categories": "પૈતૃકશ્રેણીઓ નથી",
+ "categorytree-no-pages": "પાનાઓ કે ઉપશ્રેણીઓ નથી",
+ "categorytree-not-found": "શ્રેણી <i>$1</i> મળેલ નથી",
+ "categorytree-error": "ડેટા ભારાક્રાંતરણમાં સમસ્યા.",
+ "categorytree-retry": "કૃપયા એક ક્ષણ પ્રતીક્ષા કરી ફરી પ્રયત્ન કરો"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/gv.json b/www/wiki/extensions/CategoryTree/i18n/gv.json
new file mode 100644
index 00000000..0dc2f721
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/gv.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "MacTire02"
+ ]
+ },
+ "categorytree": "BilleyRonnaghyn",
+ "categorytree-portlet": "Ronnaghyn",
+ "categorytree-legend": "Taishbyney billey ronnaghyn",
+ "categorytree-category": "Ronney:",
+ "categorytree-go": "Taishbyney billey",
+ "categorytree-mode-categories": "ronnaghyn ynrican",
+ "categorytree-mode-all": "dagh ooilley ghuillag",
+ "categorytree-collapse": "filley",
+ "categorytree-expand": "mooadaghey",
+ "categorytree-load": "dy lughtaghey",
+ "categorytree-loading": "lughtaghey...",
+ "categorytree-no-subcategories": "gyn fo-ronnaghyn"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ha.json b/www/wiki/extensions/CategoryTree/i18n/ha.json
new file mode 100644
index 00000000..4797fc58
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ha.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "DonCamillo"
+ ]
+ },
+ "categorytree-category": "Rukuni:",
+ "categorytree-expand": "Fadada",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/hak.json b/www/wiki/extensions/CategoryTree/i18n/hak.json
new file mode 100644
index 00000000..426d8ca4
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/hak.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hakka"
+ ]
+ },
+ "categorytree": "Fûn-lui-su",
+ "categorytree-category": "Fûn-lui:",
+ "categorytree-expand": "Chán-khôi",
+ "categorytree-member-counts": "pâu-hàm $1 ke chṳ́ fûn-lui, $2 ke ya̍p-mien lâu $3 ke tóng-on",
+ "categorytree-num-categories": "$1 fûn-lui",
+ "categorytree-num-pages": "$1 Ya̍p-mien",
+ "categorytree-num-files": "$1 Tóng-on"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/haw.json b/www/wiki/extensions/CategoryTree/i18n/haw.json
new file mode 100644
index 00000000..fd2096ef
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/haw.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Singularity"
+ ]
+ },
+ "categorytree-category": "Mahele:",
+ "categorytree-load": "ho‘ouka",
+ "categorytree-loading": "ke ho‘ouka nei…"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/he.json b/www/wiki/extensions/CategoryTree/i18n/he.json
new file mode 100644
index 00000000..bfa12446
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/he.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amire80",
+ "Rotem Liss",
+ "Guycn2"
+ ]
+ },
+ "categorytree": "עץ קטגוריות",
+ "categorytree-portlet": "קטגוריות",
+ "categorytree-legend": "הצגת עץ קטגוריות",
+ "categorytree-desc": "ניווט דינמי ב[[Special:CategoryTree|מבנה הקטגוריות]]",
+ "categorytree-header": "נא להקליד את שם הקטגוריה כדי לראות את התוכן שלה במבנה עץ. (תכונה זו דורשת JavaScript.)",
+ "categorytree-category": "קטגוריה:",
+ "categorytree-go": "הצגת העץ",
+ "categorytree-parents": "הורים",
+ "categorytree-mode-label": "מצב:",
+ "categorytree-mode-categories": "קטגוריות בלבד",
+ "categorytree-mode-pages": "דפים שאינם קבצים",
+ "categorytree-mode-all": "כל הדפים",
+ "categorytree-collapse": "כיווץ",
+ "categorytree-expand": "הרחבה",
+ "categorytree-expand-bullet": "◄",
+ "categorytree-empty-bullet": "◄",
+ "categorytree-member-counts": "מכילה {{PLURAL:$1|קטגוריית משנה אחת|$1 קטגוריות משנה}}, {{PLURAL:$2|דף אחד|$2 דפים}}, ו{{PLURAL:$3|קובץ אחד|־$3 קבצים}}",
+ "categorytree-num-categories": "{{PLURAL:$1|קט' אחת|$1 קט'}}",
+ "categorytree-num-pages": "{{PLURAL:$1|דף אחד|$1 דפים}}",
+ "categorytree-num-files": "{{PLURAL:$1|קובץ אחד|$1 קב'}}",
+ "categorytree-num-empty": "ריקה",
+ "categorytree-load": "טעינה",
+ "categorytree-loading": "בטעינה...",
+ "categorytree-nothing-found": "לא נמצא דבר",
+ "categorytree-no-subcategories": "אין קטגוריות־משנה",
+ "categorytree-no-parent-categories": "אין קטגוריות הורה",
+ "categorytree-no-pages": "אין דפים או קטגוריות משנה",
+ "categorytree-not-found": "הקטגוריה <i>$1</i> לא נמצאה",
+ "categorytree-error": "בעיה בטעינת הנתונים.",
+ "categorytree-retry": "נא להמתין מעט ולנסות שוב.",
+ "apihelp-categorytree-description": "מודול פנימי של ההרחבה CategoryTree.",
+ "apihelp-categorytree-summary": "מודול פנימי של ההרחבה CategoryTree.",
+ "apihelp-categorytree-param-category": "כותרת במרחב השם קטגוריה, התחילית לא תשפיע על התוצאה גם אם תינתן.",
+ "apihelp-categorytree-param-options": "אפשרויות לקונסטרוקטור של CategoryTree בתור עצם JSON. ברירת המחדל עבור האפשרות <var>depth</var> היא <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "האופציות צריכות להיות עצם JSON תקין."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/hi.json b/www/wiki/extensions/CategoryTree/i18n/hi.json
new file mode 100644
index 00000000..93d851e9
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/hi.json
@@ -0,0 +1,47 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kannankumar",
+ "Kaustubh",
+ "Pooja.srivastava",
+ "Shyam123.ckp",
+ "Siddhartha Ghai",
+ "Wikiuser13",
+ "Sfic",
+ "Anamdas"
+ ]
+ },
+ "categorytree": "श्रेणीवृक्ष",
+ "categorytree-portlet": "श्रेणियाँ",
+ "categorytree-legend": "श्रेणीवृक्ष दिखायें",
+ "categorytree-desc": "विकि की [[Special:CategoryTree|श्रेणी संरचना]] देखें",
+ "categorytree-header": "किसी श्रेणी की सामग्री वृक्ष के रूप में देखने के लिये उसका नाम दें। (जावास्क्रिप्ट अनिवार्य है)",
+ "categorytree-category": "श्रेणी:",
+ "categorytree-go": "वृक्ष दिखायें",
+ "categorytree-parents": "पालक",
+ "categorytree-mode-label": "मोड:",
+ "categorytree-mode-categories": "सिर्फ़ श्रेणीयाँ",
+ "categorytree-mode-pages": "फ़ाइलों के अतिरिक्त पृष्ठ",
+ "categorytree-mode-all": "सभी पृष्ठ",
+ "categorytree-collapse": "छोटा करें",
+ "categorytree-expand": "विस्तार करें",
+ "categorytree-member-counts": "इसमें {{PLURAL:$1|एक उपश्रेणी|$1 उपश्रेणियाँ}}, {{PLURAL:$2|एक पृष्ठ|$2 पृष्ठ}}, और {{PLURAL:$3|एक फ़ाइल|$3 फ़ाइलें}} हैं।",
+ "categorytree-num-categories": "$1 श्र",
+ "categorytree-num-pages": "$1 पृ",
+ "categorytree-num-files": "$1 फ़ा",
+ "categorytree-num-empty": "खाली",
+ "categorytree-load": "लोड करें",
+ "categorytree-loading": "लोड हो रहा है...",
+ "categorytree-nothing-found": "कुछ भी नहीं मिला",
+ "categorytree-no-subcategories": "उपश्रेणीयाँ नहीं हैं",
+ "categorytree-no-parent-categories": "कोई जनक श्रेणियाँ नहीं हैं",
+ "categorytree-no-pages": "कोई पृष्ठ या उपश्रेणीयाँ नहीं हैं",
+ "categorytree-not-found": "श्रेणी <i>$1</i> नहीं मिली",
+ "categorytree-error": "डाटा लोड करने में समस्या।",
+ "categorytree-retry": "कृपया थोड़े समय पश्चात पुनः यत्न करें।",
+ "apihelp-categorytree-description": "श्रेणीवृक्ष एक्सटेन्सन के लिए अंतर का मॉड्यूल",
+ "apihelp-categorytree-summary": "श्रेणीवृक्ष एक्सटेन्सन के लिए आंतरिक मॉड्यूल",
+ "apihelp-categorytree-param-category": "श्रेणी नामस्थान में उपसर्ग डालने पर उसे नजरअंदाज कर दिया जाएगा।",
+ "apihelp-categorytree-param-options": "<var>गहराई</var> विकल्प मूल रूप से <kbd>1</kbd> है। श्रेणीवृक्ष जेसन के विकल्प के रूप में है।",
+ "apierror-categorytree-invalidjson": "विकल्प मान्य जेसन वस्तु होना चाहिए"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/hif-latn.json b/www/wiki/extensions/CategoryTree/i18n/hif-latn.json
new file mode 100644
index 00000000..c2e9c8f4
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/hif-latn.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Brijlal",
+ "Girmitya",
+ "Thakurji"
+ ]
+ },
+ "categorytree": "Category tree",
+ "categorytree-portlet": "Vibhag",
+ "categorytree-legend": "Category tree ke dekhao",
+ "categorytree-desc": "Dynamically navigate the [[Special:CategoryTree|category structure]]",
+ "categorytree-category": "Vibhag:",
+ "categorytree-go": "Perr dekhao",
+ "categorytree-parents": "\nParents",
+ "categorytree-mode-label": "Mode:",
+ "categorytree-mode-categories": "Khaali category",
+ "categorytree-mode-pages": "file ke chhorr ke panna",
+ "categorytree-mode-all": "Sab panna",
+ "categorytree-collapse": "Chhota karo",
+ "categorytree-expand": "Barraa karo",
+ "categorytree-member-counts": "Isme {{PLURAL:$1|1 subcategory|$1 subcategories}}, {{PLURAL:$2|1 panna|$2 panna}}, and {{PLURAL:$3|1 file|$3 files}} hae.",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "khaali",
+ "categorytree-load": "load karo",
+ "categorytree-loading": "load hoe hae ...",
+ "categorytree-nothing-found": "kuchh bhi nai mila",
+ "categorytree-no-subcategories": "subcategory nai hae",
+ "categorytree-no-parent-categories": "koi parent category nai hae",
+ "categorytree-no-pages": "koi panna nai to subcategory nai hae",
+ "categorytree-not-found": "Category <i>$1</i> ke nai pawa gais hae",
+ "categorytree-error": "Data load kare me problem hae.",
+ "categorytree-retry": "Meharbani kar ke kuchh deri wait kar ke fir se try karo."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/hoc.json b/www/wiki/extensions/CategoryTree/i18n/hoc.json
new file mode 100644
index 00000000..ea47b1db
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/hoc.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Singkiring57"
+ ]
+ },
+ "categorytree-expand": "𑣉𑣞𑣁𑣜𑣈",
+ "categorytree-num-pages": "$1 𑢾"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/hr.json b/www/wiki/extensions/CategoryTree/i18n/hr.json
new file mode 100644
index 00000000..6a7d7f7e
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/hr.json
@@ -0,0 +1,45 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dalibor Bosits",
+ "Ex13",
+ "SpeedyGonsales",
+ "MaGa",
+ "Srdjan m",
+ "Bugoslav"
+ ]
+ },
+ "categorytree": "Stablasti prikaz hijerarhije kategorija",
+ "categorytree-portlet": "Kategorije",
+ "categorytree-legend": "Prikaži stablo kategorija",
+ "categorytree-desc": "Dinamička navigacija kroz [[Special:CategoryTree|strukturu kategorija]]",
+ "categorytree-header": "Upišite ime kategorije da biste vidjeli njen sadržaj u stablastom prikazu hijerarhije. (Zahtijeva JavaScript.)",
+ "categorytree-category": "Kategorija:",
+ "categorytree-go": "Pokaži stablo",
+ "categorytree-parents": "Više kategorije",
+ "categorytree-mode-label": "Način:",
+ "categorytree-mode-categories": "pokaži samo kategorije",
+ "categorytree-mode-pages": "stranice bez datoteka",
+ "categorytree-mode-all": "sve stranice",
+ "categorytree-collapse": "sklopi",
+ "categorytree-expand": "raširi",
+ "categorytree-expand-bullet": "►",
+ "categorytree-empty-bullet": "►",
+ "categorytree-member-counts": "sadrži {{PLURAL:$1|1 potkategoriju|$1 potkategorije|$1 potkategorija}}, {{PLURAL:$2|1 stranicu|$2 stranice|$2 stranica}} i {{PLURAL:$3|1 datoteku|$3 datoteke|$3 datoteka}}",
+ "categorytree-num-categories": "$1 kat.",
+ "categorytree-num-pages": "$1 str.",
+ "categorytree-num-files": "$1 dat.",
+ "categorytree-num-empty": "prazna",
+ "categorytree-load": "učitaj",
+ "categorytree-loading": "učitavam...",
+ "categorytree-nothing-found": "nije pronađena ijedna stavka",
+ "categorytree-no-subcategories": "nema potkategorija",
+ "categorytree-no-parent-categories": "nema viših kategorija",
+ "categorytree-no-pages": "Nema članaka ili podkategorija.",
+ "categorytree-not-found": "Kategorija <i>$1</i> nije pronađena",
+ "categorytree-error": "Problem s učitavanjem podataka.",
+ "categorytree-retry": "Pričekajte trenutak pa pokušajte opet.",
+ "apihelp-categorytree-description": "Interni modul za proširenje CategoryTree.",
+ "apihelp-categorytree-summary": "Interni modul za proširenje CategoryTree.",
+ "apihelp-categorytree-param-category": "Naziv u imenskom prostoru kategorija. Ako je prefiks naveden, bit će zanemaren."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/hrx.json b/www/wiki/extensions/CategoryTree/i18n/hrx.json
new file mode 100644
index 00000000..4a9d4265
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/hrx.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Midnight Gambler"
+ ]
+ },
+ "categorytree-expand": "ausklappe",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 D"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/hsb.json b/www/wiki/extensions/CategoryTree/i18n/hsb.json
new file mode 100644
index 00000000..d75ef11c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/hsb.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michawiki",
+ "J budissin"
+ ]
+ },
+ "categorytree": "Kategorijowy štom",
+ "categorytree-portlet": "Kategorije",
+ "categorytree-legend": "Kategorijowy štom pokazać",
+ "categorytree-desc": "Přisłušk (gadget) na zakładźe AJAX za [[Special:CategoryTree|zwobraznjenje struktury]] wikija",
+ "categorytree-header": "Zapisaj mjeno kategorije, zo by jeje wobsah jako štomowu strukturu widźał. Wobkedźbuj, zo su za to wěste JavaScriptowe funkcije (AJAX) trjeba. Jeli maš jara stary wobhladowak abo jeli JavaScript je wupinjeny, to snano njebudźe fungować.",
+ "categorytree-category": "Kategorija",
+ "categorytree-go": "Štom pokazać",
+ "categorytree-parents": "Nadkategorije",
+ "categorytree-mode-label": "Modus:",
+ "categorytree-mode-categories": "jenož kategorije",
+ "categorytree-mode-pages": "strony nimo wobrazow",
+ "categorytree-mode-all": "wšě strony",
+ "categorytree-collapse": "schować",
+ "categorytree-expand": "pokazać",
+ "categorytree-member-counts": "wobsahuje {{PLURAL:$1|1 podkategoriju|$1 podkategoriji|$1 podkategorije|$1 podkategorijow}}, {{PLURAL:$2|1 stronu|$2 stronje|$2 strony|$2 stronow}} a {{PLURAL:$3|1 dataju|$3 dataji|$3 dataje|$3 datajow}}",
+ "categorytree-num-categories": "$1 k",
+ "categorytree-num-pages": "$1 s",
+ "categorytree-num-files": "$1 d",
+ "categorytree-num-empty": "prózdna",
+ "categorytree-load": "začitać",
+ "categorytree-loading": "čita so…",
+ "categorytree-nothing-found": "ničo namakane",
+ "categorytree-no-subcategories": "žane podkategorije",
+ "categorytree-no-parent-categories": "žane nadrjadowane kategorije",
+ "categorytree-no-pages": "žane strony abo podkategorije",
+ "categorytree-not-found": "Kategorija ''$1'' njenamakana",
+ "categorytree-error": "Problem při čitanju datow.",
+ "categorytree-retry": "Prošu čakaj wokomik a spytaj potom hišće raz."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ht.json b/www/wiki/extensions/CategoryTree/i18n/ht.json
new file mode 100644
index 00000000..35012672
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ht.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "Boukman",
+ "Masterches",
+ "Tisave",
+ "Bfpage"
+ ]
+ },
+ "categorytree": "Òganizasyon kategori yo",
+ "categorytree-legend": "Montre òganizasyon pou kategori a",
+ "categorytree-desc": "Gade [[Special:CategoryTree|òganizasyon kategori]] toutpandan l ap chanje.",
+ "categorytree-header": "Antre non yon kategori pou wè sa li genyen anndan li sou plizyè nivo.\nNote byen ke sa mande fonksyon avanse JavaScript ki rele AJAX.\nSi ou genyen yon ansyen navigatè entènèt, oubyen JavaScript pa aktive, li pap mache.",
+ "categorytree-category": "Kategori:",
+ "categorytree-go": "Montre òganizasyon sou plizyè nivo",
+ "categorytree-parents": "kategori ki gen pi wo nivo",
+ "categorytree-mode-categories": "Kategori yo sèlman",
+ "categorytree-mode-pages": "paj yo (pa gen imaj yo)",
+ "categorytree-mode-all": "tout paj yo",
+ "categorytree-collapse": "redui",
+ "categorytree-expand": "etann",
+ "categorytree-member-counts": "Gen {{PLURAL:$1|1 subcategory|$1 subcategories}},{{PLURAL:$2|1 page|$2 pages}},ak {{PLURAL:$3|1 file|$3 files}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-load": "Chaje",
+ "categorytree-loading": "ap chaje...",
+ "categorytree-nothing-found": "nou pa jwenn anyen",
+ "categorytree-no-subcategories": "kategori sa pa gen pitit, pa gen kategori pi ba.",
+ "categorytree-no-pages": "pa gen paj oubyen kategori ki pi ba",
+ "categorytree-not-found": "Nou pa twouve kategori <i>$1</i>",
+ "categorytree-error": "Pwoblèm lè nou tap chaje, ouvri done yo.",
+ "categorytree-retry": "Tanpri, tann yon moman epi eseye ankò."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/hu-formal.json b/www/wiki/extensions/CategoryTree/i18n/hu-formal.json
new file mode 100644
index 00000000..ca58da76
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/hu-formal.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dani"
+ ]
+ },
+ "categorytree-retry": "Várjon egy kicsit, majd próbálja újra!"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/hu.json b/www/wiki/extensions/CategoryTree/i18n/hu.json
new file mode 100644
index 00000000..2b6958e1
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/hu.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dani",
+ "Dj",
+ "Glanthor Reviol",
+ "KossuthRad",
+ "Tacsipacsi"
+ ]
+ },
+ "categorytree": "Kategóriafa",
+ "categorytree-portlet": "Kategóriák",
+ "categorytree-legend": "Mutatsd faként",
+ "categorytree-desc": "AJAX alapú eszköz a wiki [[Special:CategoryTree|kategória-struktúrájának]] megjelenítéséhez",
+ "categorytree-header": "Add meg annak a kategóriának a nevét, amelynek meg szeretnéd tekinteni\na fastruktúráját. (JavaSript szükséges hozzá.)",
+ "categorytree-category": "Kategória:",
+ "categorytree-go": "Mehet",
+ "categorytree-parents": "Szülőkategóriák",
+ "categorytree-mode-label": "Mód:",
+ "categorytree-mode-categories": "csak kategóriák",
+ "categorytree-mode-pages": "lapok fájlok nélkül",
+ "categorytree-mode-all": "az összes oldal",
+ "categorytree-collapse": "becsuk",
+ "categorytree-expand": "kinyit",
+ "categorytree-member-counts": "$1 alkategóriát, $2 lapot és $3 fájlt tartalmaz",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 L",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "üres",
+ "categorytree-load": "betöltés",
+ "categorytree-loading": "betöltés…",
+ "categorytree-nothing-found": "nincs találat",
+ "categorytree-no-subcategories": "nincsenek alkategóriák",
+ "categorytree-no-parent-categories": "nincsenek szülőkategóriái",
+ "categorytree-no-pages": "nincsenek lapok és alkategóriák",
+ "categorytree-not-found": "A következő kategória nem található: <i>$1</i>",
+ "categorytree-error": "Hiba történt az adatok betöltése közben.",
+ "categorytree-retry": "Várj egy kicsit, majd próbáld újra!",
+ "apihelp-categorytree-description": "A CategoryTree kiterjesztés belső modulja.",
+ "apihelp-categorytree-summary": "A CategoryTree kiterjesztés belső modulja.",
+ "apihelp-categorytree-param-category": "Cím a kategórianévtérben, az előtag figyelmen kívül lesz hagyva, ha meg van adva.",
+ "apihelp-categorytree-param-options": "Opciók a CategoryTree konstruktora számára JSON-objektumként. A <var>depth</var> opció alapértelmezett értéke <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Az opcióknak érvényes JSON-objektumnak kell lenniük."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/hy.json b/www/wiki/extensions/CategoryTree/i18n/hy.json
new file mode 100644
index 00000000..6419aebb
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/hy.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chaojoker",
+ "Teak",
+ "Xelgen",
+ "Աշոտ1997"
+ ]
+ },
+ "categorytree": "Կատեգորիաների ծառ",
+ "categorytree-portlet": "Կատեգորիաներ",
+ "categorytree-legend": "Ցույց տալ կատեգորիաների ծառը",
+ "categorytree-desc": "[[Special:CategoryTree|Կատեգորիայի կառուցվծքի]] դինամիկ արտապատկերում",
+ "categorytree-header": "Մուտքագրեք կատեգորիայի անունը՝ ծառի համակարգը տեսնելու համար։\nԻ նկատի ունեցեք, որ սա հնարավոր է միայն ձեր զննարկիչի կողմից AJAX-ի ֆունկցիանալության դեպքում։\nԵթե դուք աշխատում եք շատ հին զննարկիչով, կամ ձեր JavaScript-ը անջատված է՝ այն չի գործի։",
+ "categorytree-category": "Կատեգորիա:",
+ "categorytree-go": "Ցույց տալ ծառը",
+ "categorytree-parents": "Ծնող-կատեգորիաներ",
+ "categorytree-mode-categories": "միայն կատեգորիաները",
+ "categorytree-mode-pages": "նիշքերից բացի",
+ "categorytree-mode-all": "բոլոր էջերը",
+ "categorytree-collapse": "փակել",
+ "categorytree-expand": "բացել",
+ "categorytree-member-counts": "պարունակում է {{PLURAL:$1|1 ենթակատեգորիա|$1 ենթակատեգորիա}}, {{PLURAL:$2|1 էջ|$2 էջ}} և {{PLURAL:$3|1 նիշք|$3 նիշք}}",
+ "categorytree-num-categories": "$1 Կ",
+ "categorytree-num-pages": "$1 Է",
+ "categorytree-num-files": "$1 Ն",
+ "categorytree-num-empty": "դատարկ",
+ "categorytree-load": "բեռնել",
+ "categorytree-loading": "բեռնվում է",
+ "categorytree-nothing-found": "ոչինչ չի գտնվել",
+ "categorytree-no-subcategories": "ենթակատեգորիաներ չկան",
+ "categorytree-no-parent-categories": "ծնող-կատեգորիաներ չկան",
+ "categorytree-no-pages": "ենթակատեգորիաներ և էջեր չկան",
+ "categorytree-not-found": "«<i>$1</i>» կատեգորիան չի գտնվել",
+ "categorytree-error": "Տվյալների բեռնումը չհաջողվեց",
+ "categorytree-retry": "Խնդրում ենք սպասել մեկ ակնթարթ և փորձել կրկին։"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/hyw.json b/www/wiki/extensions/CategoryTree/i18n/hyw.json
new file mode 100644
index 00000000..ce038107
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/hyw.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "ArmenBakkalian"
+ ]
+ },
+ "categorytree-expand": "Ընդարձակել",
+ "categorytree-member-counts": "Կը պարունակէ {{PLURAL:$1|1 ենթախմբաւորում|$1 ենթախմբաւորում}}, {{PLURAL:$2|1 էջ|$2 էջ}} եւ {{PLURAL:$3|1 նիշք|$3 նիշք}}",
+ "categorytree-num-categories": "$1 խմբ.",
+ "categorytree-num-pages": "$1 Էջ",
+ "categorytree-num-files": "$1 Ն"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ia.json b/www/wiki/extensions/CategoryTree/i18n/ia.json
new file mode 100644
index 00000000..e6ab751a
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ia.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "Malafaya",
+ "McDutchie"
+ ]
+ },
+ "categorytree": "Arbore de categorias",
+ "categorytree-portlet": "Categorias",
+ "categorytree-legend": "Monstrar arbore de categorias",
+ "categorytree-desc": "Navigar dynamicamente per le [[Special:CategoryTree|structura de categorias]]",
+ "categorytree-header": "Entra le nomine de un categoria pro vider su contento como un structura arboree.\n(Require JavaScript.)",
+ "categorytree-category": "Categoria:",
+ "categorytree-go": "Monstrar arbore",
+ "categorytree-parents": "Categorias superior",
+ "categorytree-mode-label": "Modo:",
+ "categorytree-mode-categories": "categorias solmente",
+ "categorytree-mode-pages": "paginas excepte files",
+ "categorytree-mode-all": "tote le paginas",
+ "categorytree-collapse": "plicar",
+ "categorytree-expand": "displicar",
+ "categorytree-member-counts": "contine {{PLURAL:$1|1 subcategoria|$1 subcategorias}}, {{PLURAL:$2|1 pagina|$2 paginas}}, e {{PLURAL:$3|1 file|$3 files}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "vacue",
+ "categorytree-load": "cargar",
+ "categorytree-loading": "cargamento in curso…",
+ "categorytree-nothing-found": "nihil trovate",
+ "categorytree-no-subcategories": "nulle subcategoria",
+ "categorytree-no-parent-categories": "nulle categoria superior",
+ "categorytree-no-pages": "nulle pagina o subcategoria",
+ "categorytree-not-found": "Categoria <i>$1</i> non trovate",
+ "categorytree-error": "Problema de cargamento de datos.",
+ "categorytree-retry": "Per favor attende un momento e reproba.",
+ "apihelp-categorytree-description": "Modulo interne pro le extension CategoryTree.",
+ "apihelp-categorytree-summary": "Modulo interne pro le extension CategoryTree.",
+ "apihelp-categorytree-param-category": "Titulo in le spatio de nomines Categoria. Le prefixo essera ignorate si fornite.",
+ "apihelp-categorytree-param-options": "Optiones pro le constructor CategoryTree como objecto JSON. Le option <var>depth</var> predefinite es <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Le optiones debe esser un objecto JSON valide."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/id.json b/www/wiki/extensions/CategoryTree/i18n/id.json
new file mode 100644
index 00000000..d5bd7c36
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/id.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bennylin",
+ "Farras",
+ "IvanLanin",
+ "Iwan Novirion",
+ "Rex",
+ "Rachmat.Wahidi",
+ "Rachmat04"
+ ]
+ },
+ "categorytree": "Pohon kategori",
+ "categorytree-portlet": "Kategori",
+ "categorytree-legend": "Tampilkan pohon kategori",
+ "categorytree-desc": "Gadget berbasis AJAX untuk menampilkan [[Special:CategoryTree|struktur kategori]] suatu wiki",
+ "categorytree-header": "Masukkan suatu nama kategori untuk melihat isinya dalam bentuk pohon.\nHarap diperhatikan bahwa fitur ini memerlukan dukungan JavaScript tingkat lanjut yang dikenal sebagai AJAX.\nJika Anda menggunakan penjelajah web lama, atau mematikan fungsi JavaScript Anda, fitur ini tidak dapat dijalankan.",
+ "categorytree-category": "Kategori:",
+ "categorytree-go": "Tampilkan",
+ "categorytree-parents": "Atasan",
+ "categorytree-mode-label": "Mode:",
+ "categorytree-mode-categories": "hanya kategori",
+ "categorytree-mode-pages": "halaman kecuali berkas",
+ "categorytree-mode-all": "semua halaman",
+ "categorytree-collapse": "tutup",
+ "categorytree-expand": "buka",
+ "categorytree-member-counts": "memiliki {{PLURAL:$1|$1 subkategori}}, {{PLURAL:$2|$2 halaman}}, dan {{PLURAL:$3|$3 berkas}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 H",
+ "categorytree-num-files": "$1 B",
+ "categorytree-num-empty": "kosong",
+ "categorytree-load": "muatkan",
+ "categorytree-loading": "memuat...",
+ "categorytree-nothing-found": "tidak ditemukan",
+ "categorytree-no-subcategories": "tidak ada subkategori",
+ "categorytree-no-parent-categories": "tidak ada kategori lebih tinggi",
+ "categorytree-no-pages": "tidak ada halaman atau subkategori",
+ "categorytree-not-found": "Kategori <i>$1</i> tidak ditemukan",
+ "categorytree-error": "Problem memuat data.",
+ "categorytree-retry": "Tunggulah sesaat dan coba lagi.",
+ "apihelp-categorytree-description": "Modul internal untuk ekstensi CategoryTree.",
+ "apihelp-categorytree-param-category": "Judul di ruangnama kategori, awalan akan diabaikan jika ada.",
+ "apihelp-categorytree-param-options": "Opsi untuk pembangun CategoryTree sebagai sebuah objek JSON. Opsi kedalaman baru menjadi <kbd>1</kbd>."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ie.json b/www/wiki/extensions/CategoryTree/i18n/ie.json
new file mode 100644
index 00000000..272f64e8
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ie.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Malafaya",
+ "Stavanger7"
+ ]
+ },
+ "categorytree-category": "Categorie:",
+ "categorytree-expand": "expander",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ig.json b/www/wiki/extensions/CategoryTree/i18n/ig.json
new file mode 100644
index 00000000..ec42cd25
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ig.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ukabia"
+ ]
+ },
+ "categorytree": "Egbü nke ébéanọr",
+ "categorytree-portlet": "Ébéanọr",
+ "categorytree-legend": "Zi egbü nke ébéanọr",
+ "categorytree-category": "Ébéonọr:",
+ "categorytree-go": "Zí oshíshí",
+ "categorytree-parents": "Ndi mụrụ",
+ "categorytree-mode-categories": "Náni ébéanọr",
+ "categorytree-mode-all": "Ihü nílé",
+ "categorytree-collapse": "zekpùdo",
+ "categorytree-expand": "Sá àsáá",
+ "categorytree-load": "mmẹ̀wẹ́òbú",
+ "categorytree-loading": "ọ byáwálá...",
+ "categorytree-no-subcategories": "ébéonọr-ime àdíghị",
+ "categorytree-no-pages": "ihü ma ébéonọr-ímé àdíghị"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ilo.json b/www/wiki/extensions/CategoryTree/i18n/ilo.json
new file mode 100644
index 00000000..8a4c9d9b
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ilo.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lam-ang"
+ ]
+ },
+ "categorytree": "Kayo ti kategoria",
+ "categorytree-portlet": "Katkategoria",
+ "categorytree-legend": "Ipakita ti kayo ti kategoria",
+ "categorytree-desc": "Dinamiko nga agdaliasat iti [[Special:CategoryTree|estrukrura ti kategoria]]",
+ "categorytree-header": "Ikabil ti nagan ti kategoria tapno makita dagiti linaon a kasla estruktura ti kayo. (Masapul ti JavaScript.)",
+ "categorytree-category": "Kategoria:",
+ "categorytree-go": "Ipakita ti kayo",
+ "categorytree-parents": "Nagannak",
+ "categorytree-mode-label": "Wagas:",
+ "categorytree-mode-categories": "katkategoria laeng",
+ "categorytree-mode-pages": "dagiti panid mailaksid dagiti papeles",
+ "categorytree-mode-all": "amin a pampanid",
+ "categorytree-collapse": "rebbaen",
+ "categorytree-expand": "palawaen",
+ "categorytree-member-counts": "Naglaon ti {{PLURAL:$1|1 a subkategoria|$1 a subkatkategoria}}, {{PLURAL:$2|1 a panid|$2 a pampanid}}, ken {{PLURAL:$3|1 a papeles|$3 a pappapeles}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "awan linaon",
+ "categorytree-load": "agkarga",
+ "categorytree-loading": "agkarkarga...",
+ "categorytree-nothing-found": "awan ti nabirukan",
+ "categorytree-no-subcategories": "awan dagiti subkategoria",
+ "categorytree-no-parent-categories": "awan ti nagannak a katkategoria",
+ "categorytree-no-pages": "awan ti pampanid wenno dagiti subkategoria",
+ "categorytree-not-found": "Ti kategoria <i>$1</i> ket saan a nabirukan",
+ "categorytree-error": "Parikut ti panagikarga ti linaon.",
+ "categorytree-retry": "Pangngaasi nga aguray intono madamdama ken ipadas manen.",
+ "apihelp-categorytree-description": "Akin-uneg a modulo para iti pagpaatiddog ti CategoryTree.",
+ "apihelp-categorytree-param-category": "Titulo iti nagan ti espasio ti kategoria, saanto a maikaskaso ti pasakbay no maited.",
+ "apihelp-categorytree-param-options": "Dagiti pagpilian ti konstruktor ti CategoryTree a kas maysa a banag ti JSON. Ti pagpilian ti <var>depth</var> ket kasisigud iti <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Dagiti pagpilian ket nasken nga umiso a banag ti JSON."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/inh.json b/www/wiki/extensions/CategoryTree/i18n/inh.json
new file mode 100644
index 00000000..68bab658
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/inh.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sapral Mikail",
+ "Исмаил Садуев",
+ "ElizaMag",
+ "Adam-Yourist"
+ ]
+ },
+ "categorytree": "Категорий га",
+ "categorytree-portlet": "Категореш",
+ "categorytree-legend": "Категорий га хьахьокха",
+ "categorytree-category": "Категори:",
+ "categorytree-go": "Га хьахьокха",
+ "categorytree-parents": "Хьалхара категореш",
+ "categorytree-mode-label": "Раж:",
+ "categorytree-mode-categories": "алхха категореш",
+ "categorytree-mode-all": "еррига оагIонаш",
+ "categorytree-expand": "хьадоаржаде",
+ "categorytree-member-counts": "Укхунах йоалл $1 {{PLURAL:$1|1=кIалоагIат}} а, $2 {{PLURAL:$2|1=оагӀув}} а, $3 {{PLURAL:$3|1=файл}} а",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 Оа",
+ "categorytree-num-files": "$1 Ф",
+ "categorytree-num-empty": "яьсса",
+ "categorytree-load": "чуяккха",
+ "categorytree-loading": "доттар...",
+ "categorytree-nothing-found": "Укх категори чу кIалкатегореш яц.",
+ "categorytree-no-subcategories": "кIалкатегореш яц",
+ "categorytree-no-parent-categories": "хьалхара категореш яц",
+ "categorytree-no-pages": "оагӀонаш а кIалкатегореш а яц"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/io.json b/www/wiki/extensions/CategoryTree/i18n/io.json
new file mode 100644
index 00000000..ffbf8b45
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/io.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Malafaya",
+ "Joao Xavier"
+ ]
+ },
+ "categorytree": "Kategorio-arboro",
+ "categorytree-portlet": "Kategorii",
+ "categorytree-legend": "Montrar kategorio-arboro",
+ "categorytree-category": "Kategorio:",
+ "categorytree-go": "Montrar Arboro",
+ "categorytree-mode-categories": "nur kategorii",
+ "categorytree-mode-pages": "pagini ecepte arkivi",
+ "categorytree-mode-all": "omna pagini",
+ "categorytree-expand": "Montrar la listo",
+ "categorytree-member-counts": "kontenas {{PLURAL:$1|1 subkategorio|$1 subkategorii}}, {{PLURAL:$2|1 pagino|$2 pagini}}, ed {{PLURAL:$3|1 arkivo|$3 arkivi}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 P",
+ "categorytree-load": "kargar",
+ "categorytree-nothing-found": "nulo trovita",
+ "categorytree-no-subcategories": "nula subkategorii",
+ "categorytree-no-pages": "nula pagini o subkategorii",
+ "categorytree-not-found": "Kategorio <i>$1</i> ne trovita"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/is.json b/www/wiki/extensions/CategoryTree/i18n/is.json
new file mode 100644
index 00000000..aaec1263
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/is.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "S.Örvarr.S",
+ "Snævar",
+ "Spacebirdy",
+ "Sveinn í Felli"
+ ]
+ },
+ "categorytree": "Flokkatré",
+ "categorytree-portlet": "Flokkar",
+ "categorytree-legend": "Sýna flokkatré",
+ "categorytree-header": "Sláðu inn heiti flokks til að sjá innihald hans sem tré. (Þarfnast JavaScript)",
+ "categorytree-category": "Flokkur:",
+ "categorytree-go": "Birta greinar",
+ "categorytree-parents": "Yfirþræðir",
+ "categorytree-mode-label": "Hamur:",
+ "categorytree-mode-categories": "bara flokka",
+ "categorytree-mode-pages": "síður að myndum undanskildum",
+ "categorytree-mode-all": "allar síður",
+ "categorytree-collapse": "fela",
+ "categorytree-expand": "sýna",
+ "categorytree-expand-bullet": "►",
+ "categorytree-empty-bullet": "►",
+ "categorytree-member-counts": "Inniheldur $1 {{PLURAL:$1|undirflokk|undirflokka}}, $2 {{PLURAL:$2|síðu|síður}}, og $3 {{PLURAL:$3|mynd|myndir}}",
+ "categorytree-num-categories": "$1 F",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 M",
+ "categorytree-num-empty": "tómur",
+ "categorytree-load": "hlaða",
+ "categorytree-loading": "hleð",
+ "categorytree-nothing-found": "ekkert fannst",
+ "categorytree-no-subcategories": "engir undirflokkar",
+ "categorytree-no-parent-categories": "engir yfirflokkar",
+ "categorytree-no-pages": "engar síður eða undirflokkar",
+ "categorytree-not-found": "Flokkurinn <i>$1</i> fannst ekki",
+ "categorytree-error": "Villa við hleðslu gagna.",
+ "categorytree-retry": "Gjörðu svo vel og reyndu síðar.",
+ "apihelp-categorytree-description": "Innri kerfiseining fyrir CategoryTree-viðbótina.",
+ "apihelp-categorytree-summary": "Innri kerfiseining fyrir CategoryTree-viðbótina."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/it.json b/www/wiki/extensions/CategoryTree/i18n/it.json
new file mode 100644
index 00000000..d95d479f
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/it.json
@@ -0,0 +1,49 @@
+{
+ "@metadata": {
+ "authors": [
+ ".anaconda",
+ "Aushulz",
+ "Beta16",
+ "BrokenArrow",
+ "Cruccone",
+ "Darth Kule",
+ "Gianfranco",
+ "Nemo bis",
+ "Lucas2",
+ "FRacco",
+ "Nemo ter"
+ ]
+ },
+ "categorytree": "Albero delle categorie",
+ "categorytree-portlet": "Categorie",
+ "categorytree-legend": "Mostra l'albero delle categorie",
+ "categorytree-desc": "Visualizza in modo dinamico la [[Special:CategoryTree|struttura delle categorie]]",
+ "categorytree-header": "Inserisci il nome di una categoria per vederne i contenuti in una struttura ad albero. (richiede JavaScript)",
+ "categorytree-category": "Categoria:",
+ "categorytree-go": "Mostra albero",
+ "categorytree-parents": "Categorie superiori",
+ "categorytree-mode-label": "Modalità:",
+ "categorytree-mode-categories": "mostra solo le categorie",
+ "categorytree-mode-pages": "tutte le pagine, escluse le immagini",
+ "categorytree-mode-all": "tutte le pagine",
+ "categorytree-collapse": "comprimi",
+ "categorytree-expand": "espandi",
+ "categorytree-member-counts": "contiene {{PLURAL:$1|1 sottocategoria|$1 sottocategorie}}, {{PLURAL:$2|1 pagina|$2 pagine}} e {{PLURAL:$3|1 file|$3 file}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "vuota",
+ "categorytree-load": "carica",
+ "categorytree-loading": "caricamento in corso…",
+ "categorytree-nothing-found": "nessun risultato",
+ "categorytree-no-subcategories": "nessuna sottocategoria",
+ "categorytree-no-parent-categories": "nessuna categoria superiore",
+ "categorytree-no-pages": "nessuna pagina né sottocategoria",
+ "categorytree-not-found": "Categoria <i>$1</i> non trovata",
+ "categorytree-error": "Problema nel caricamento dei dati.",
+ "categorytree-retry": "Attendere un momento e riprovare.",
+ "apihelp-categorytree-description": "Modulo interno per l'estensione CategoryTree.",
+ "apihelp-categorytree-param-category": "Titolo nel namespace categoria, il prefisso verrà ignorato se dato.",
+ "apihelp-categorytree-param-options": "Opzioni per il costruttore CategoryTree come oggetto JSON. L'opzione <var>depth</var> predefinita è <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Le opzioni devono essere fornite come un oggetto JSON valido."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ja.json b/www/wiki/extensions/CategoryTree/i18n/ja.json
new file mode 100644
index 00000000..ebc02a51
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ja.json
@@ -0,0 +1,50 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aotake",
+ "Broad-Sky",
+ "Fryed-peach",
+ "JtFuruhata",
+ "Kahusi",
+ "Shirayuki",
+ "Whym",
+ "Mfuji",
+ "Otokoume",
+ "Yusuke1109"
+ ]
+ },
+ "categorytree": "カテゴリツリー",
+ "categorytree-portlet": "カテゴリ",
+ "categorytree-legend": "カテゴリツリーの表示",
+ "categorytree-desc": "ウィキの[[Special:CategoryTree|カテゴリの構造]]をツリー形式で動的に表示する",
+ "categorytree-header": "カテゴリの内容をツリー形式で表示するために、そのカテゴリ名を入力してください (JavaScript が必要)。",
+ "categorytree-category": "カテゴリ:",
+ "categorytree-go": "ツリーを表示",
+ "categorytree-parents": "上位カテゴリ",
+ "categorytree-mode-label": "モード:",
+ "categorytree-mode-categories": "カテゴリのみ",
+ "categorytree-mode-pages": "ファイル以外のページ",
+ "categorytree-mode-all": "すべてのページ",
+ "categorytree-collapse": "折り畳む",
+ "categorytree-expand": "展開する",
+ "categorytree-empty-bullet": "►",
+ "categorytree-member-counts": "{{PLURAL:$1|下位カテゴリ $1 件}}、{{PLURAL:$2|ページ $2 件}}、{{PLURAL:$3|ファイル $3 件}}を含んでいます",
+ "categorytree-num-categories": "$1カテゴリ",
+ "categorytree-num-pages": "$1頁",
+ "categorytree-num-files": "$1ファイル",
+ "categorytree-num-empty": "空",
+ "categorytree-load": "読み込んで展開する",
+ "categorytree-loading": "読み込み中…",
+ "categorytree-nothing-found": "何も見つかりませんでした",
+ "categorytree-no-subcategories": "下位カテゴリがありません",
+ "categorytree-no-parent-categories": "上位カテゴリはありません",
+ "categorytree-no-pages": "ページや下位カテゴリがありません",
+ "categorytree-not-found": "カテゴリ「<i>$1</i>」はありません",
+ "categorytree-error": "データの読み込み中に問題が発生しました。",
+ "categorytree-retry": "時間をおいてからもう一度試してください。",
+ "apihelp-categorytree-description": "カテゴリツリー拡張機能の内部モジュール。",
+ "apihelp-categorytree-summary": "カテゴリツリー拡張機能の内部モジュール。",
+ "apihelp-categorytree-param-category": "カテゴリ名前空間におけるページ名、接頭辞は指定しても無視される。",
+ "apihelp-categorytree-param-options": "JSONオブジェクトとしてのCategoryTreeコンストラクタのオプション。<var>深さ</var>オプションのデフォルトは<kbd>1</kbd>です。",
+ "apierror-categorytree-invalidjson": "オプションは有効なJSONオブジェクトでなければなりません。"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/jam.json b/www/wiki/extensions/CategoryTree/i18n/jam.json
new file mode 100644
index 00000000..ce62073a
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/jam.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Katxis"
+ ]
+ },
+ "categorytree-expand": "expan",
+ "categorytree-member-counts": "Kantien {{PLURAL:$1|1 subcategory|$1 subcategories}}, {{PLURAL:$2|1 page|$2 pages}}, ah {{PLURAL:$3|1 file|$3 files}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/jut.json b/www/wiki/extensions/CategoryTree/i18n/jut.json
new file mode 100644
index 00000000..a087f8a7
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/jut.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "Huslåke",
+ "Jyllanj"
+ ]
+ },
+ "categorytree": "Kategoriträj",
+ "categorytree-desc": "Dynamisk navigasjon i [[Special:CategoryTree|kategoristrukturen]]",
+ "categorytree-header": "Intast naune på en kategori for å sietj inholje som e träj. Bemærk å detj kräwe avanciirtje JavaScript-funksjonalitiet tjentj som AJAX, dä wirke ett hwes du hår i møj gammel browser elle hwes du hår slotj JavaScript fra.",
+ "categorytree-category": "Kategori:",
+ "categorytree-go": "Wis træj",
+ "categorytree-parents": "Öwekategorie",
+ "categorytree-mode-categories": "kons kategorie",
+ "categorytree-mode-pages": "sider undtaget billeter",
+ "categorytree-mode-all": "åll side",
+ "categorytree-collapse": "folj sammel",
+ "categorytree-expand": "folj ut",
+ "categorytree-member-counts": "inholje {{PLURAL:$1|jen unjekategori|$1 unjekategorie}}, {{PLURAL:$2|jen siid|$2 side}} å {{PLURAL:$3|jej fil|$3 file}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 F",
+ "categorytree-load": "hentj",
+ "categorytree-loading": "inläse",
+ "categorytree-nothing-found": "ienting funjen",
+ "categorytree-no-subcategories": "ien unjekategorie",
+ "categorytree-no-pages": "ien side elle unjekategorie",
+ "categorytree-not-found": "Kategorien ''$1'' bløw ett funjen",
+ "categorytree-error": "Där opstue e problem unje inläsneng å data.",
+ "categorytree-retry": "Wentj e yeblikk å prööw idjen."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/jv.json b/www/wiki/extensions/CategoryTree/i18n/jv.json
new file mode 100644
index 00000000..6f239c36
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/jv.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bennylin",
+ "Meursault2004",
+ "NoiX180",
+ "Pras"
+ ]
+ },
+ "categorytree": "Wit kategori",
+ "categorytree-portlet": "Kategori",
+ "categorytree-legend": "Tuduhaké wit kategori",
+ "categorytree-desc": "Gadget adhedhasar AJAX kanggo nuduhaké [[Special:CategoryTree|struktur kategori]] sawijining wiki",
+ "categorytree-header": "Lebokna sawijining jeneng kategori kanggo deleng isiné minangka sawijining wujud uwit.\nMangga diwigatèkaké yèn fitur iki merlokaké fungsionalitas JavaScript canggih sing diarani AJAX.\nMenawa panjenengan panjlajah wèbé kalebu vèrsi lawa, utawa fitur JavaScript dipatèni, fungsi iki ora bisa dilakokaké.",
+ "categorytree-category": "Kategori:",
+ "categorytree-go": "Tuduhaké wit",
+ "categorytree-parents": "Babon",
+ "categorytree-mode-label": "Cara:",
+ "categorytree-mode-categories": "mligi kategori",
+ "categorytree-mode-pages": "kaca kajaba barkas",
+ "categorytree-mode-all": "kabèh kaca",
+ "categorytree-collapse": "tutup",
+ "categorytree-expand": "bukak",
+ "categorytree-member-counts": "Ngandhut {{PLURAL:$1|1 subkategori|$1 subkategori}}, {{PLURAL:$2|1 kaca|$2 kaca}}, lan {{PLURAL:$3|1 barkas|$3 barkas}}",
+ "categorytree-num-categories": "$1 Kt",
+ "categorytree-num-pages": "$1 Kc",
+ "categorytree-num-files": "$1 B",
+ "categorytree-num-empty": "suwung",
+ "categorytree-load": "mot",
+ "categorytree-loading": "ngamot…",
+ "categorytree-nothing-found": "ora ana apa-apa",
+ "categorytree-no-subcategories": "anak kategori ora ana",
+ "categorytree-no-parent-categories": "kategori babon ora ana",
+ "categorytree-no-pages": "kaca utawa anak kategori ora ana",
+ "categorytree-not-found": "Kategori <i>$1</i> ora ana",
+ "categorytree-error": "Ana masalah nalika ngamot dhatah.",
+ "categorytree-retry": "Mangga nunggu sadhéla banjur njajal manèh.",
+ "apihelp-categorytree-description": "Modhul njero tumrap jabungan WitKategori.",
+ "apihelp-categorytree-param-category": "Sesirah ing mandala aran kategori. Menawa ana, ater-ater bakal ora kanggo."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ka.json b/www/wiki/extensions/CategoryTree/i18n/ka.json
new file mode 100644
index 00000000..917b1ac5
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ka.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "BRUTE",
+ "David1010",
+ "ITshnik",
+ "Malafaya"
+ ]
+ },
+ "categorytree": "კატეგორიების სქემა",
+ "categorytree-portlet": "კატეგორიები",
+ "categorytree-legend": "კატეგორიების სქემის ჩვენება",
+ "categorytree-desc": "[[Special:CategoryTree|კატეგორიის სტრუქტურის]] დინამიური ნავიგაცია",
+ "categorytree-header": "შეიყვანეთ კატეგორიის სახელი, რომ დაინახოთ მისი შიგთავსი ხის სტრუქტურის მსგავსად. (საჭიროა ჯავასკრიპტი.)",
+ "categorytree-category": "კატეგორია:",
+ "categorytree-go": "სქემის ჩვენება",
+ "categorytree-parents": "მშობლები",
+ "categorytree-mode-label": "რეჟიმი:",
+ "categorytree-mode-categories": "მხოლოდ კატეგორიები",
+ "categorytree-mode-pages": "გვერდები ფაილების გარდა",
+ "categorytree-mode-all": "ყველა გვერდი",
+ "categorytree-collapse": "ჩაკეცვა",
+ "categorytree-expand": "გაშლა",
+ "categorytree-member-counts": "შეიცავს {{PLURAL:$1|1 ქვეკატეგორიას|$1 ქვეკატეგორიას}}, {{PLURAL:$2|1 გვერდს|$2 გვერდს}}, და {{PLURAL:$3|1 ფაილს|$3 ფაილს}}",
+ "categorytree-num-categories": "$1 კ",
+ "categorytree-num-pages": "$1 გ",
+ "categorytree-num-files": "$1 ფ",
+ "categorytree-num-empty": "ცარიელი",
+ "categorytree-load": "ჩატვირთვა",
+ "categorytree-loading": "იტვირთება…",
+ "categorytree-nothing-found": "ვერაფერი მოიძებნა",
+ "categorytree-no-subcategories": "ქვეკატეგორიები არაა",
+ "categorytree-no-parent-categories": "მშობელი კატეგორიები არაა",
+ "categorytree-no-pages": "არაა გვერდები ან ქვეკატეგორიები",
+ "categorytree-not-found": "კატეგორია <i>$1</i> ვერ მოიძებნა",
+ "categorytree-error": "ხარვეზი მონაცემთა ჩატვირთვაში.",
+ "categorytree-retry": "გთხოვთ, დაიცადეთ ცოტა ხნით და კვლავ სცადეთ.",
+ "apihelp-categorytree-description": "შიდა მოდული CategoryTree გაფართოებისთვის."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/kaa.json b/www/wiki/extensions/CategoryTree/i18n/kaa.json
new file mode 100644
index 00000000..181d9ae3
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/kaa.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "AlefZet"
+ ]
+ },
+ "categorytree": "Kategoriyalar teregi"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/kab.json b/www/wiki/extensions/CategoryTree/i18n/kab.json
new file mode 100644
index 00000000..47e0652c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/kab.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mmistmurt",
+ "Belkacem77"
+ ]
+ },
+ "categorytree-portlet": "Tiggayin",
+ "categorytree-category": "Taggayt :",
+ "categorytree-mode-all": "Akk isebtaren",
+ "categorytree-expand": "snefli",
+ "categorytree-member-counts": "yegber $1 {{PLURAL:$1|taggayt tasnawant|taggayin tisnawanin}}, $2 {{PLURAL:$2|aebter|isebtar}} akked $3 {{PLURAL:$3|ufaylu|ifayla}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/kbp.json b/www/wiki/extensions/CategoryTree/i18n/kbp.json
new file mode 100644
index 00000000..08b6a00b
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/kbp.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gnangbade"
+ ]
+ },
+ "categorytree-expand": "Yazɩ",
+ "categorytree-member-counts": "Kɩ-taa wɛ {{PLURAL:$1|pɩlɩʋ kɩtɛyʋʋ kʋɖʋmʋʋ|$1 pɩlɩŋ kɩtɛyɩŋ}}",
+ "categorytree-num-categories": "P $1",
+ "categorytree-num-pages": "T $1",
+ "categorytree-num-files": "T $1"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/kea.json b/www/wiki/extensions/CategoryTree/i18n/kea.json
new file mode 100644
index 00000000..e9aa6aaa
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/kea.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Quintino Lopes Castro Tavares"
+ ]
+ },
+ "categorytree-expand": "amplia",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/khw.json b/www/wiki/extensions/CategoryTree/i18n/khw.json
new file mode 100644
index 00000000..a9711ebf
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/khw.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Rachitrali"
+ ]
+ },
+ "categorytree-portlet": "زمرہ جات",
+ "categorytree-legend": "مختلق قسمان پشاوے",
+ "categorytree-category": "زمرہ",
+ "categorytree-go": "بہ ترتیب شجر(کان)",
+ "categorytree-parents": "نن تت",
+ "categorytree-mode-label": "موڈ:",
+ "categorytree-mode-categories": "صرف زمرہ جات",
+ "categorytree-mode-pages": "فائلار علاوہ صفحات",
+ "categorytree-mode-all": "سف صفحات",
+ "categorytree-collapse": "خاتمہ",
+ "categorytree-expand": "فراخ کورے",
+ "categorytree-member-counts": "شامل شینی {{PLURAL:$1|1 subcategory|$1 subcategories}}, {{PLURAL:$2|1 page|$2 pages}}, and {{PLURAL:$3|1 file|$3 files}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "خالی",
+ "categorytree-load": "اثقال/load",
+ "categorytree-loading": "دوران اثقال/loading…",
+ "categorytree-nothing-found": "کیاغ دستیاب نیکی",
+ "categorytree-no-subcategories": "کیہ ذیلی زمرہ نیکی",
+ "categorytree-no-parent-categories": "کیہ نن تتان زمرہ جات"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/kk-arab.json b/www/wiki/extensions/CategoryTree/i18n/kk-arab.json
new file mode 100644
index 00000000..89bd0293
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/kk-arab.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": [],
+ "categorytree": "سانات بۇتاقتارى",
+ "categorytree-header": "سانات مازمۇنىڭ بۇتاقتار تۇردە كورۋ ٴۇشىن اتاۋىن ەنگىزىڭىز.\nاڭعارپتا: بۇل ىسكە JavaScript قۇرالىنىڭ AJAX دەگەن كەڭەيتىلگەن قابىلەتى قاجەت بولادى.\nەگەر شولعىشىڭىز وتە ەسكى, نەمەسە JavaScript وشىرىلگەن بولسا, بۇل ىسكە اسىرىلمايدى.",
+ "categorytree-category": "سانات:",
+ "categorytree-go": "بۇتاقتارىن كورسەت",
+ "categorytree-parents": "جوعارعىلار",
+ "categorytree-mode-categories": "تەك ساناتتار",
+ "categorytree-mode-pages": "بەتتەر (سۋرەتتەردى ساناماي)",
+ "categorytree-mode-all": "بارلىق بەت",
+ "categorytree-collapse": "تارىلتۋ",
+ "categorytree-expand": "كەڭەيتۋ",
+ "categorytree-load": "جۇكتەۋ",
+ "categorytree-loading": "جۇكتەۋدە",
+ "categorytree-nothing-found": "ەشتەڭە تابىلمادى",
+ "categorytree-no-subcategories": "ساناتشالارى جوق",
+ "categorytree-no-pages": "بەتتەرى نە ساناتشالارى جوق",
+ "categorytree-not-found": "<i>$1</i> دەگەن سانات تابىلمادى",
+ "categorytree-error": "دەرەكتەردى جۇكتەۋ كەزىندە شاتاق شىقتى.",
+ "categorytree-retry": "ٴبىر ٴسات كۇتە تۇرىپ قايتالاڭىز."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/kk-cyrl.json b/www/wiki/extensions/CategoryTree/i18n/kk-cyrl.json
new file mode 100644
index 00000000..030c3747
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/kk-cyrl.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arystanbek"
+ ]
+ },
+ "categorytree": "Санат бұтақтары",
+ "categorytree-portlet": "Санаттар",
+ "categorytree-legend": "Санат бұтағын көрсету",
+ "categorytree-desc": "[[Special:CategoryTree|Санат құрылымын]] серпінді шарлау",
+ "categorytree-header": "Санат мазмұның бұтақтар түрде көру үшін атауын енгізіңіз.\nАңғарпта: Бұл іске JavaScript құралының AJAX деген кеңейтілген қабілеті қажет болады.\nЕгер шолғышыңыз өте ескі, немесе JavaScript өшірілген болса, бұл іске асырылмайды.",
+ "categorytree-category": "Санат:",
+ "categorytree-go": "Бұтақтарын көрсет",
+ "categorytree-parents": "Жоғарғылар",
+ "categorytree-mode-label": "Режим:",
+ "categorytree-mode-categories": "тек санаттар",
+ "categorytree-mode-pages": "беттер (суреттерді санамай)",
+ "categorytree-mode-all": "барлық беттер",
+ "categorytree-collapse": "тарылту",
+ "categorytree-expand": "кеңейту",
+ "categorytree-member-counts": "Қамтылғандар {{PLURAL:$1|1 санатша|$1 санатша}}, {{PLURAL:$2|1 бет|$2 бет}}, және {{PLURAL:$3|1 файл|$3 файл}}",
+ "categorytree-num-categories": "$1 санатша",
+ "categorytree-num-pages": "$1 бет",
+ "categorytree-num-files": "$1 Файл",
+ "categorytree-num-empty": "бос",
+ "categorytree-load": "жүктеу",
+ "categorytree-loading": "жүктеуде...",
+ "categorytree-nothing-found": "ештеңе табылмады",
+ "categorytree-no-subcategories": "санатшалары жоқ",
+ "categorytree-no-parent-categories": "аталық санаттар жоқ",
+ "categorytree-no-pages": "беттері немесе санатшалары жоқ",
+ "categorytree-not-found": "<i>$1</i> деген санат табылмады",
+ "categorytree-error": "Деректерді жүктеу кезінде шатақ шықты.",
+ "categorytree-retry": "Бір сәт күте тұрып қайталаңыз."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/kk-latn.json b/www/wiki/extensions/CategoryTree/i18n/kk-latn.json
new file mode 100644
index 00000000..c2071b67
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/kk-latn.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": [],
+ "categorytree": "Sanat butaqtarı",
+ "categorytree-header": "Sanat mazmunıñ butaqtar türde körw üşin atawın engiziñiz.\nAñğarpta: Bul iske JavaScript quralınıñ AJAX degen keñeýtilgen qabileti qajet boladı.\nEger şolğışıñız öte eski, nemese JavaScript öşirilgen bolsa, bul iske asırılmaýdı.",
+ "categorytree-category": "Sanat:",
+ "categorytree-go": "Butaqtarın körset",
+ "categorytree-parents": "Joğarğılar",
+ "categorytree-mode-categories": "tek sanattar",
+ "categorytree-mode-pages": "better (swretterdi sanamaý)",
+ "categorytree-mode-all": "barlıq bet",
+ "categorytree-collapse": "tarıltw",
+ "categorytree-expand": "keñeýtw",
+ "categorytree-load": "jüktew",
+ "categorytree-loading": "jüktewde",
+ "categorytree-nothing-found": "eşteñe tabılmadı",
+ "categorytree-no-subcategories": "sanatşaları joq",
+ "categorytree-no-pages": "betteri ne sanatşaları joq",
+ "categorytree-not-found": "<i>$1</i> degen sanat tabılmadı",
+ "categorytree-error": "Derekterdi jüktew kezinde şataq şıqtı.",
+ "categorytree-retry": "Bir sät küte turıp qaýtalañız."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/km.json b/www/wiki/extensions/CategoryTree/i18n/km.json
new file mode 100644
index 00000000..49295341
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/km.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chhorran",
+ "Lovekhmer",
+ "Thearith",
+ "គីមស៊្រុន",
+ "វ័ណថារិទ្ធ"
+ ]
+ },
+ "categorytree": "មែកធាងនៃចំណាត់ថ្នាក់ក្រុម",
+ "categorytree-portlet": "ចំណាត់ថ្នាក់ក្រុម",
+ "categorytree-legend": "បង្ហាញមែកធាងចំណាត់ថ្នាក់ក្រុម",
+ "categorytree-category": "ចំណាត់ថ្នាក់ក្រុម:",
+ "categorytree-go": "បង្ហាញមែកធាង",
+ "categorytree-parents": "ចំណាត់ថ្នាក់ក្រុមកម្រិតខ្ពស់",
+ "categorytree-mode-label": "ម៉ូដ៖",
+ "categorytree-mode-categories": "សម្រាប់តែចំណាត់ថ្នាក់ក្រុមប៉ុណ្ណោះ",
+ "categorytree-mode-pages": "ទំព័រលើកលែងតែរូបភាព",
+ "categorytree-mode-all": "គ្រប់ទំព័រ",
+ "categorytree-collapse": "បង្រួម",
+ "categorytree-expand": "ពន្លាត",
+ "categorytree-member-counts": "មាន{{PLURAL:$1|១ចំណាត់ថ្នាក់ក្រុមរង|$1ចំណាត់ថ្នាក់ក្រុមរង}} {{PLURAL:$2|១ទំព័រ|$2ទំព័រ}} និង{{PLURAL:$3|១ឯកសារ|$3ឯកសារ}}",
+ "categorytree-num-categories": "$1 ចំ",
+ "categorytree-num-pages": "$1 ទំ",
+ "categorytree-num-files": "$1 ឯ",
+ "categorytree-num-empty": "ទទេ",
+ "categorytree-load": "ផ្ទុក",
+ "categorytree-loading": "កំពុងផ្ទុក",
+ "categorytree-nothing-found": "រកមិនឃើញអ្វីទេ",
+ "categorytree-no-subcategories": "មិនមានចំណាត់ថ្នាក់ក្រុមរងទេ",
+ "categorytree-no-parent-categories": "មិនមានចំណាត់ថ្នាក់ក្រុមមេទេ",
+ "categorytree-no-pages": "មិនមានទំព័រឬចំណាត់ថ្នាក់ក្រុមរងទេ",
+ "categorytree-not-found": "រកមិនឃើញចំណាត់ថ្នាក់ក្រុម <i>$1</i> ទេ",
+ "categorytree-error": "មានបញ្ហាក្នុងផ្ទុកទិន្នន័យ។",
+ "categorytree-retry": "សូម​រង់ចាំ​មួយភ្លែត​រួច​ព្យាយាម​ម្តងទៀត​។"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/kn.json b/www/wiki/extensions/CategoryTree/i18n/kn.json
new file mode 100644
index 00000000..c1454d68
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/kn.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Abhirama",
+ "Nayvik",
+ "VASANTH S.N."
+ ]
+ },
+ "categorytree": "ವರ್ಗವೃಕ್ಷ",
+ "categorytree-portlet": "ವರ್ಗಗಳು",
+ "categorytree-legend": "ವರ್ಗವೃಕ್ಷವನ್ನು ತೋರಿಸಿ",
+ "categorytree-category": "ವರ್ಗ:",
+ "categorytree-go": "ವೃಕ್ಷವನ್ನು ತೋರಿಸಿ",
+ "categorytree-parents": "ಪೋಷಕರು",
+ "categorytree-mode-categories": "ಕೇವಲ ವರ್ಗಗಳು",
+ "categorytree-mode-pages": "ಕಡತಗಳಿಲ್ಲದಿರುವ ಪುಟಗಳು",
+ "categorytree-mode-all": "ಎಲ್ಲಾ ಪುಟಗಳು",
+ "categorytree-collapse": "ಕುಸಿಯಲಿ",
+ "categorytree-expand": "ವಿಸ್ತರಿಸಿ",
+ "categorytree-num-categories": "$1 ವ",
+ "categorytree-num-pages": "$1 ಪು",
+ "categorytree-num-files": "$1 ಕ",
+ "categorytree-num-empty": "ಖಾಲಿ",
+ "categorytree-load": "ತುಂಬಿಸು",
+ "categorytree-loading": "ತುಂಬಿಸಲ್ಪಡುತ್ತಿದೆ.......",
+ "categorytree-nothing-found": "ಏನೂ ಸಿಗಲಿಲ್ಲ",
+ "categorytree-no-subcategories": "ಉಪವರ್ಗಗಳಿಲ್ಲ",
+ "categorytree-no-parent-categories": "ಪೋಷಕ ವರ್ಗಗಳಿಲ್ಲ",
+ "categorytree-no-pages": "ಪುಟಗಳು ಅಥವಾ ಉಪವರ್ಗಗಳಿಲ್ಲ",
+ "categorytree-not-found": "ಈ <i>$1</i> ವರ್ಗವು ಕಾಣಿಸುತ್ತಿಲ್ಲ",
+ "categorytree-error": "ಮಾಹಿತಿ ಉತ್ಪೂರಣೆಯಲ್ಲಿ ತೊಂದರೆಯಾಗಿದೆ.",
+ "categorytree-retry": "ಒಂದು ಕ್ಷಣ ಕಾದು ಅನಂತರ ಪ್ರಯತ್ನಿಸಿ."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ko.json b/www/wiki/extensions/CategoryTree/i18n/ko.json
new file mode 100644
index 00000000..8c849f0d
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ko.json
@@ -0,0 +1,49 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ficell",
+ "Klutzy",
+ "Kwj2772",
+ "Priviet",
+ "ToePeu",
+ "아라",
+ "Mooozi",
+ "Ykhwong",
+ "Jerrykim306",
+ "렌즈"
+ ]
+ },
+ "categorytree": "분류 트리",
+ "categorytree-portlet": "분류",
+ "categorytree-legend": "분류 트리 보기",
+ "categorytree-desc": "[[Special:CategoryTree|분류 구조]]를 동적으로 둘러볼 수 있습니다",
+ "categorytree-header": "내용을 트리 구조로 볼 분류 이름을 입력하십시오. (자바스크립트 필요)",
+ "categorytree-category": "분류:",
+ "categorytree-go": "트리 보기",
+ "categorytree-parents": "상위 분류",
+ "categorytree-mode-label": "모드:",
+ "categorytree-mode-categories": "분류 문서만 보기",
+ "categorytree-mode-pages": "파일을 제외한 문서",
+ "categorytree-mode-all": "모든 문서",
+ "categorytree-collapse": "접기",
+ "categorytree-expand": "펼치기",
+ "categorytree-member-counts": "{{PLURAL:$1|하위 분류 1개|하위 분류 $1개}}, {{PLURAL:$2|문서 1개|문서 $2개}}, {{PLURAL:$3|파일 1개|파일 $3개}}를 포함하고 있습니다",
+ "categorytree-num-categories": "$1개 분류",
+ "categorytree-num-pages": "$1개 문서",
+ "categorytree-num-files": "$1개 파일",
+ "categorytree-num-empty": "비었음",
+ "categorytree-load": "불러오기",
+ "categorytree-loading": "불러오는 중…",
+ "categorytree-nothing-found": "결과 없음",
+ "categorytree-no-subcategories": "하위 분류 없음",
+ "categorytree-no-parent-categories": "상위 분류가 없습니다.",
+ "categorytree-no-pages": "문서나 하위 분류 없음",
+ "categorytree-not-found": "$1 분류가 없습니다",
+ "categorytree-error": "값을 불러오는 중 오류 발생",
+ "categorytree-retry": "잠시 후에 다시 해보세요.",
+ "apihelp-categorytree-description": "CategoryTree 확장 기능을 위한 내부 모듈입니다.",
+ "apihelp-categorytree-summary": "CategoryTree 확장 기능을 위한 내부 모듈입니다.",
+ "apihelp-categorytree-param-category": "분류 이름공간에서의 제목, 접두어는 무시됩니다.",
+ "apihelp-categorytree-param-options": "JSON 오브젝트 자격의 CategoryTree 생성자를 위한 옵션입니다. <var>depth</var> 옵션의 기본값은 <kbd>1</kbd>입니다.",
+ "apierror-categorytree-invalidjson": "옵션은 반드시 유효한 JSON 형식이어야 합니다."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/krc.json b/www/wiki/extensions/CategoryTree/i18n/krc.json
new file mode 100644
index 00000000..d3087a58
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/krc.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iltever",
+ "Ernác"
+ ]
+ },
+ "categorytree": "Категорияланы тереги",
+ "categorytree-portlet": "Категорияла",
+ "categorytree-legend": "Категорияланы терегин кёргюз",
+ "categorytree-desc": "Викини [[Special:CategoryTree|структуры категорияларыны структурасын]] кёргюзюр ючюн AJAX-компонент",
+ "categorytree-header": "Категория атын джазыгъыз да, ол терек кибик кёрюннюкдю.\nОл амал, сизни браузеригиз AJAX-ны тута эсе барды.\nСизни браузеригизни версиясы эски эсе неда JavaScript джукъланыб эсе, тюбкатегорияланы терек кибик кёргюзтюу амал бла хайырланаллыкъ тюлсюз.",
+ "categorytree-category": "Категория:",
+ "categorytree-go": "Терекни кёргюз",
+ "categorytree-parents": "Огъары категорияла",
+ "categorytree-mode-label": "Режим:",
+ "categorytree-mode-categories": "къуру категорияла",
+ "categorytree-mode-pages": "файлладан къалгъан",
+ "categorytree-mode-all": "бютеу бетле",
+ "categorytree-collapse": "джашыр",
+ "categorytree-expand": "кёргюз",
+ "categorytree-member-counts": "Ичинде $1 {{PLURAL:$1|тюбкатегория}}, $2 {{PLURAL:$2|бет}} эмда $3 {{PLURAL:$3|файл}} барды",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 Б",
+ "categorytree-num-files": "$1 Ф",
+ "categorytree-num-empty": "бош",
+ "categorytree-load": "джюкле",
+ "categorytree-loading": "джюклениу...",
+ "categorytree-nothing-found": "джукъ да табылмады",
+ "categorytree-no-subcategories": "Тюбкатегория джокъду",
+ "categorytree-no-parent-categories": "огъары категорияла джокъдула",
+ "categorytree-no-pages": "статьяла бла тюбкатегорияла джокъдула",
+ "categorytree-not-found": "«$1» категория табылмады.",
+ "categorytree-error": "Билгиле джюклеуде халат.",
+ "categorytree-retry": "Бираз сакълагъыз да энтда бир кере кёрюрсюз."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/kri.json b/www/wiki/extensions/CategoryTree/i18n/kri.json
new file mode 100644
index 00000000..718097bd
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/kri.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Protostar"
+ ]
+ },
+ "categorytree-expand": "bigifay"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/krj.json b/www/wiki/extensions/CategoryTree/i18n/krj.json
new file mode 100644
index 00000000..b438963f
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/krj.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jose77"
+ ]
+ },
+ "categorytree-category": "Kategorya:"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/krl.json b/www/wiki/extensions/CategoryTree/i18n/krl.json
new file mode 100644
index 00000000..af2e5ff8
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/krl.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mashoi7",
+ "Varvana"
+ ]
+ },
+ "categorytree-expand": "avua",
+ "categorytree-member-counts": "Täh kuuluu {{PLURAL:$1|1 alaluokka|$1 alaluokkua}}, {{PLURAL:$2|1 šivu|$2 šivuo}}, ta {{PLURAL:$3|1 faili|$3 failie}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 T"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ks-arab.json b/www/wiki/extensions/CategoryTree/i18n/ks-arab.json
new file mode 100644
index 00000000..c54eecad
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ks-arab.json
@@ -0,0 +1,6 @@
+{
+ "@metadata": [],
+ "categorytree-category": "زٲژ:",
+ "categorytree-expand-bullet": "◄",
+ "categorytree-empty-bullet": "◄"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ksh.json b/www/wiki/extensions/CategoryTree/i18n/ksh.json
new file mode 100644
index 00000000..962bcf51
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ksh.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Purodha"
+ ]
+ },
+ "categorytree": "Saachjroppe als Boum",
+ "categorytree-portlet": "Saachjroppe",
+ "categorytree-legend": "Zeijsch de Saachjroppe als ene Boum",
+ "categorytree-desc": "Jangk dorsch de [[Special:CategoryTree|Saachjroppe ier Stroktuhr]].",
+ "categorytree-header": "'''Opjepaßß:'''&nbsp;<small>Dat hee brurr_en JavaSkripp_Aadëijl, dä AJAX häijß. Wänn_De enne besöndoß aale Brauser häß, oddo wänn_De JavaSkripp affjeschalldt häß, dann dëijd_et nit.</small> Jivv_enne Saachjroppe_Name enn, dann krėßß_De fun dä Saachjropp dä iere Ennhalld_alls_enne Boum aanjezëijsch.",
+ "categorytree-category": "Saachjropp:",
+ "categorytree-go": "dä Boum zeije",
+ "categorytree-parents": "Övverjeoodnete Jroppe",
+ "categorytree-mode-label": "Aat:",
+ "categorytree-mode-categories": "nor Saachjroppe",
+ "categorytree-mode-pages": "nomahl Sigge un Saachjroppe, kein Mehdije",
+ "categorytree-mode-all": "alles: nomahl Sigge, Saachjroppe, un Mehdije",
+ "categorytree-collapse": "zosammefallde",
+ "categorytree-expand": "opfallde",
+ "categorytree-empty-bullet": "►<!-- https://phabricator.wikimedia.org/T141238 -->",
+ "categorytree-member-counts": "do dren {{PLURAL:$1|{{PLURAL:$4|sin|es|es}} ein Ungerjrupp|sin $1 Ungerjruppe|es kein Ungerjrupp}}, {{PLURAL:$2|ein Sigg|$2 Sigge|kein Sigg}}, un {{PLURAL:$3|ein Datei|$3 Dateie|kein Dateie}}, zosamme {{PLURAL:$4|ein Saach|$4 Saache|och nix}}",
+ "categorytree-num-categories": "$1&nbsp;J",
+ "categorytree-num-pages": "$1&nbsp;S",
+ "categorytree-num-files": "$1&nbsp;D",
+ "categorytree-num-empty": "läddisch",
+ "categorytree-load": "lade",
+ "categorytree-loading": "am lade…",
+ "categorytree-nothing-found": "nix jefonge",
+ "categorytree-no-subcategories": "kein Ungerjruppe",
+ "categorytree-no-parent-categories": "kein övverje'ohdnete Saachjroppe",
+ "categorytree-no-pages": "kein Sigge un kein Ungerjruppe",
+ "categorytree-not-found": "Han di Saachjropp „<strong>$1</strong>“ nit jefonge.",
+ "categorytree-error": "Problem beim Date Lade",
+ "categorytree-retry": "Bess_esu joot un donn et noh enem Moment norr_ens probeere",
+ "apihelp-categorytree-description": "Enträhne Moduhl för et Zohsazprojramm !!FUZZYY!!CategoryTree",
+ "apihelp-categorytree-param-category": "De Övverschreff, em Appachtemanng vun de Saachjroppe. Wann de Saachjropp aanjejovve es, övverjom_mer se.",
+ "apihelp-categorytree-param-options": "De Enschtällonge för der CategoryTree constructor. Dadd es e Objägg em <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"JavaScript Object Notation\">JSON</i>-Fommaht. Der Schtanndat för de Enschtällong „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">depth</var>“ es „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">1</kbd>“."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ku-latn.json b/www/wiki/extensions/CategoryTree/i18n/ku-latn.json
new file mode 100644
index 00000000..afa07e4b
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ku-latn.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "Erdal Ronahi",
+ "George Animal",
+ "Ghybu",
+ "Gomada",
+ "Welathêja",
+ "Bikarhêner"
+ ]
+ },
+ "categorytree": "Dara kategoriyan",
+ "categorytree-portlet": "Kategorî",
+ "categorytree-legend": "Dara kategoriyan nîşan bide",
+ "categorytree-category": "Kategorî",
+ "categorytree-go": "Darê nîşan bide",
+ "categorytree-mode-categories": "tenê kategoriyan",
+ "categorytree-mode-all": "hemû rûpel",
+ "categorytree-collapse": "bigre",
+ "categorytree-expand": "veke",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 R",
+ "categorytree-num-files": "$1 D",
+ "categorytree-num-empty": "vala",
+ "categorytree-load": "bar bike",
+ "categorytree-loading": "tê barkirin",
+ "categorytree-nothing-found": "ti tişt nehate dîtin",
+ "categorytree-no-subcategories": "binkategorî tune",
+ "categorytree-no-pages": "ne rûpelek an jî binkategoriyek",
+ "categorytree-not-found": "Kategorîya <i>$1</i> nehate dîtin"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/kum.json b/www/wiki/extensions/CategoryTree/i18n/kum.json
new file mode 100644
index 00000000..b3ec33a0
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/kum.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arsenekoumyk"
+ ]
+ },
+ "categorytree-expand": "генглешдирмек",
+ "categorytree-member-counts": "Ичинде {{PLURAL:$1|1 субкатегория|$1 субкатегориялар}}, {{PLURAL:$2|1 сагьифа|$2 сагьифалар}}, ва {{PLURAL:$3|1 саплам|$3 саплам}}",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 С",
+ "categorytree-num-files": "$1 С"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/kw.json b/www/wiki/extensions/CategoryTree/i18n/kw.json
new file mode 100644
index 00000000..298105ec
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/kw.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kernoweger",
+ "Kw-Moon",
+ "Nrowe"
+ ]
+ },
+ "categorytree-portlet": "Klassys",
+ "categorytree-category": "Klass:",
+ "categorytree-mode-all": "keniver folen",
+ "categorytree-expand": "efani",
+ "categorytree-member-counts": "Ynno {{PLURAL:$1|1 isglass|$1 isglass}}, {{PLURAL:$2|1 folen|$2 folen}}, ha {{PLURAL:$3|1 restren|$3 restren}}",
+ "categorytree-num-categories": "$1 k",
+ "categorytree-num-pages": "$1 f",
+ "categorytree-num-files": "$1 r"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ky.json b/www/wiki/extensions/CategoryTree/i18n/ky.json
new file mode 100644
index 00000000..ef3af2a4
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ky.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chorobek",
+ "Janatkg"
+ ]
+ },
+ "categorytree": "Категориялар бутагы",
+ "categorytree-portlet": "Категориялар",
+ "categorytree-legend": "Категориялардын бутагын көргөз",
+ "categorytree-desc": "[[Special:CategoryTree|category structure]]динамикада көрсөт",
+ "categorytree-category": "Категория:",
+ "categorytree-go": "Бутакты көргөз",
+ "categorytree-parents": "Башкы категория",
+ "categorytree-mode-categories": "Категориялар гана",
+ "categorytree-mode-pages": "файлдардан тышкары",
+ "categorytree-mode-all": "баардык барактар",
+ "categorytree-collapse": "бүктө",
+ "categorytree-expand": "жаюу",
+ "categorytree-member-counts": "{{PLURAL:$1|1 ички категорияны|$1 ички категорияларды}}, {{PLURAL:$2|1 баракты|$2 баракты }}, жана {{PLURAL:$3|1 файлды|$3 файлды}} камтыйт",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 Б",
+ "categorytree-num-files": "$1 Ф",
+ "categorytree-num-empty": "бош",
+ "categorytree-load": "жүктө",
+ "categorytree-loading": "жүктөлүүдөө",
+ "categorytree-nothing-found": "эч нерсе табылган жок",
+ "categorytree-no-subcategories": "ички категориялар табылган жок",
+ "categorytree-no-parent-categories": "Башкы категориялар табылган жок",
+ "categorytree-no-pages": "макалалар же баш ийген категориялар жок",
+ "categorytree-not-found": "<i>$1</i> Категориясы табылган жок",
+ "categorytree-error": "Маалымат жүктөөдө ката кетти",
+ "categorytree-retry": "Кичине күтүп туруп, жаңы аракет кылыңыз"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/la.json b/www/wiki/extensions/CategoryTree/i18n/la.json
new file mode 100644
index 00000000..d0b54248
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/la.json
@@ -0,0 +1,32 @@
+{
+ "@metadata": {
+ "authors": [
+ "UV",
+ "Lesgles"
+ ]
+ },
+ "categorytree": "Categoriarum arbor",
+ "categorytree-portlet": "Categoriae",
+ "categorytree-legend": "Categoriarum arborem monstrare",
+ "categorytree-header": "Titulum categoriae inscribe ad categoriam hanc quasi arborem videndum. JavaScript et AJAX necesse sunt. Si navigatrum veterrimum habes vel si JavaScript potestatem non fecisti, hac pagina non uti poteris.",
+ "categorytree-category": "Categoria",
+ "categorytree-go": "Arborem monstrare",
+ "categorytree-parents": "Parentes",
+ "categorytree-mode-categories": "modo categoriae",
+ "categorytree-mode-pages": "paginae nisi fasciculi",
+ "categorytree-mode-all": "omnes paginae",
+ "categorytree-collapse": "collabi",
+ "categorytree-expand": "dilatare",
+ "categorytree-member-counts": "continet {{PLURAL:$1|1 subcategoriam|$1 subcategorias}}, {{PLURAL:$2|1 paginam|$2 paginas}} et {{PLURAL:$3|1 fasciculum|$3 fasciculos}}",
+ "categorytree-num-categories": "$1 cat.",
+ "categorytree-num-pages": "$1 {{PLURAL:$1|p.|pp.}}",
+ "categorytree-num-files": "$1 fasc.",
+ "categorytree-num-empty": "vacua",
+ "categorytree-load": "depromere",
+ "categorytree-loading": "depromens…",
+ "categorytree-nothing-found": "nullum inventum",
+ "categorytree-no-subcategories": "nullae subcategoriae",
+ "categorytree-no-parent-categories": "nullae supercategoriae",
+ "categorytree-no-pages": "nec paginae nec subcategoriae",
+ "categorytree-not-found": "Categoria <i>$1</i> non inventa"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/lad.json b/www/wiki/extensions/CategoryTree/i18n/lad.json
new file mode 100644
index 00000000..089bf5ac
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/lad.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jewbask",
+ "Maor X",
+ "Runningfridgesrule",
+ "Universal Life",
+ "StevenJ81"
+ ]
+ },
+ "categorytree": "Árvole de katēgorías",
+ "categorytree-portlet": "Katēggorías",
+ "categorytree-legend": "Amostrar el árvole de katēggorías",
+ "categorytree-category": "Kategoría:",
+ "categorytree-go": "Amostrar el árvole",
+ "categorytree-parents": "Parientes",
+ "categorytree-mode-categories": "sólo kategorías",
+ "categorytree-mode-pages": "ojas, egzepto dossias",
+ "categorytree-mode-all": "todas las hojas",
+ "categorytree-collapse": "eskonder",
+ "categorytree-expand": "amostrar",
+ "categorytree-member-counts": "kontiene {{PLURAL:$1|1 basho-kateggoria|$1 basho-kateggorias}}, {{PLURAL:$2|1 oja|$2 ojas}}, i {{PLURAL:$3|1 dossia|$3 dossias}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 O",
+ "categorytree-num-files": "$1 D",
+ "categorytree-num-empty": "vazia",
+ "categorytree-load": "cargar",
+ "categorytree-loading": "cargando...",
+ "categorytree-nothing-found": "Eskuza, no ankontramos nada",
+ "categorytree-no-subcategories": "si basho-kateggorias",
+ "categorytree-no-parent-categories": "sin kategorias de enriva",
+ "categorytree-no-pages": "sin ojas ni basho-kateggorias"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/lag.json b/www/wiki/extensions/CategoryTree/i18n/lag.json
new file mode 100644
index 00000000..495587d4
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/lag.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Baba Tabita"
+ ]
+ },
+ "categorytree-num-pages": "$1 Ʉk"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/lb.json b/www/wiki/extensions/CategoryTree/i18n/lb.json
new file mode 100644
index 00000000..6c00aecb
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/lb.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kaffi",
+ "Robby",
+ "Soued031"
+ ]
+ },
+ "categorytree": "Struktur vun de Kategorien",
+ "categorytree-portlet": "Kategorien",
+ "categorytree-legend": "Weis Kategoriestruktur",
+ "categorytree-desc": "Gadget deen op Ajax opgebaut ass fir d'[[Special:CategoryTree|Kategorie-Struktur]] vun enger Wiki duerzestellen",
+ "categorytree-header": "Gitt den Numm vun enger Kategorie an, fir hiren Inhalt als Bam-Struktur ze gesinn. (Benotzt JavaScript,)",
+ "categorytree-category": "Kategorie:",
+ "categorytree-go": "Struktur weisen",
+ "categorytree-parents": "Uewerkategorien",
+ "categorytree-mode-label": "Modus:",
+ "categorytree-mode-categories": "nëmme Kategorien",
+ "categorytree-mode-pages": "Säiten ausser Fichieren",
+ "categorytree-mode-all": "all Säiten",
+ "categorytree-collapse": "Verstoppen",
+ "categorytree-expand": "Opklappen",
+ "categorytree-member-counts": "besteet aus {{PLURAL:$1|1 Ënnerkategorie|$1 Ënnerkategorien}}, {{PLURAL:$2|1 Säit|$1 Säiten}}, an {{PLURAL:$3|1 Fichier|$3 Fichieren}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "eidel",
+ "categorytree-load": "lueden",
+ "categorytree-loading": "lueden …",
+ "categorytree-nothing-found": "Näischt fonnt",
+ "categorytree-no-subcategories": "Keng Ënnerkategorien",
+ "categorytree-no-parent-categories": "Keng Iwwerkategorien",
+ "categorytree-no-pages": "Keng Säiten oder Ënnerkategorien",
+ "categorytree-not-found": "Kategorie ''$1'' net fonnt",
+ "categorytree-error": "Problem beim luede vun den Donneeën.",
+ "categorytree-retry": "Waart w.e.g. een Ament a probéiert dann nach eng Kéier."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/lez.json b/www/wiki/extensions/CategoryTree/i18n/lez.json
new file mode 100644
index 00000000..9014cb43
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/lez.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Migraghvi",
+ "Namik",
+ "Soul Train"
+ ]
+ },
+ "categorytree": "Категориядин ттар",
+ "categorytree-portlet": "Категорияр",
+ "categorytree-legend": "Категориядин ттар къалурун",
+ "categorytree-category": "Klватlалар:",
+ "categorytree-go": "Ппарун",
+ "categorytree-parents": "Вини категорияр",
+ "categorytree-mode-categories": "анжах категорияр",
+ "categorytree-mode-pages": "файлар галачиз ччинар",
+ "categorytree-mode-all": "Вири ччинар",
+ "categorytree-collapse": "Алчудрун",
+ "categorytree-expand": "Гегьеншрун",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 Ч",
+ "categorytree-num-files": "$1 Ф",
+ "categorytree-num-empty": "ичIи",
+ "categorytree-load": "ппарун",
+ "categorytree-loading": "ппарзава",
+ "categorytree-nothing-found": "затIни жагъурнавач",
+ "categorytree-no-subcategories": "агъакатегорияр авайд ттуш"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/lfn.json b/www/wiki/extensions/CategoryTree/i18n/lfn.json
new file mode 100644
index 00000000..9ef6b2e6
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/lfn.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "Malafaya",
+ "Katxis",
+ "Cgboeree"
+ ]
+ },
+ "categorytree": "Arbor de categorias",
+ "categorytree-portlet": "Categorias",
+ "categorytree-category": "Categoria:",
+ "categorytree-expand": "estende",
+ "categorytree-member-counts": "Conteninte {{PLURAL:$1|1 sucategoria|$1 sucategorias}}, {{PLURAL:$2|1 paje|$2 pajes}}, e {{PLURAL:$3|1 fix|$3 fixes}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/li.json b/www/wiki/extensions/CategoryTree/i18n/li.json
new file mode 100644
index 00000000..6fff7c1c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/li.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Matthias",
+ "Ooswesthoesbes",
+ "Pahles"
+ ]
+ },
+ "categorytree": "Categorieboum",
+ "categorytree-portlet": "Categorieë",
+ "categorytree-legend": "Categorieboum laote zeen",
+ "categorytree-desc": "AJAX-gebaseerde oetbreijing óm de [[Special:CategoryTree|categoriestructuur]] van 'ne wiki te toeane",
+ "categorytree-header": "Gaef 'ne categorienaam in om de inhaud es 'ne boumstructuur te betrachte. (JavaScript nudig)",
+ "categorytree-category": "Categorie:",
+ "categorytree-go": "Laje",
+ "categorytree-parents": "Baoveligkendje categorië",
+ "categorytree-mode-label": "Modus:",
+ "categorytree-mode-categories": "allein categorië",
+ "categorytree-mode-pages": "paazjes behaueve aafbeildinge",
+ "categorytree-mode-all": "alle pazjena's",
+ "categorytree-collapse": "inklappe",
+ "categorytree-expand": "oetklappe",
+ "categorytree-member-counts": "bevat {{PLURAL:$1|éin ondercategorie|$1 ondercategorië}}, {{PLURAL:$2|éin pagina|$2 pagina's}} en {{PLURAL:$3|éin bestand|$3 bestande}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 B",
+ "categorytree-num-empty": "laeg",
+ "categorytree-load": "laje",
+ "categorytree-loading": "aan 't laje",
+ "categorytree-nothing-found": "Dees categorie haet gein subcategorië.",
+ "categorytree-no-subcategories": "Gein subcategorië.",
+ "categorytree-no-parent-categories": "gein baovecategorië",
+ "categorytree-no-pages": "Gein pazjena's of óngercategorië.",
+ "categorytree-not-found": "Categorie ''$1'' neet gevónje",
+ "categorytree-error": "Perbleem bie 't laje van de gegaeves.",
+ "categorytree-retry": "Wach estebleef effe en perbeer 't den opnuuj.",
+ "apihelp-categorytree-description": "Intern moduul veur de oetbreijing CategoryTree.",
+ "apihelp-categorytree-summary": "Intern moduul veur de oetbreijing CategoryTree.",
+ "apihelp-categorytree-param-category": "Naam in de categorienaamruumde, veurveugsel weurt genegeerd es opgegaove.",
+ "apihelp-categorytree-param-options": "Opties veur de constructeur van CategoryTree es e JSON-objectèk. De optie \"depth\" is standerd ingestèldj gewaore op <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Opties mótten e geljig JSON-objèk zeen."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/lij.json b/www/wiki/extensions/CategoryTree/i18n/lij.json
new file mode 100644
index 00000000..e31b8bf8
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/lij.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Giromin Cangiaxo",
+ "S4b1nuz E.656"
+ ]
+ },
+ "categorytree": "Ærbo de categorie",
+ "categorytree-portlet": "Categorie",
+ "categorytree-legend": "Mostra l'ærbo de categorie",
+ "categorytree-desc": "Vixualizza in moddo dinammico a [[Special:CategoryTree|struttua de categorie]]",
+ "categorytree-header": "Inseisci o nomme de 'na categoria pe veddine i contegnui inte 'na struttua fæta a ærbo. (Ghe voeu JavaScript)",
+ "categorytree-category": "Categoria:",
+ "categorytree-go": "Mostra ærbo",
+ "categorytree-parents": "Categorie superioî",
+ "categorytree-mode-label": "Modalitæ:",
+ "categorytree-mode-categories": "mostra solo e categorie",
+ "categorytree-mode-pages": "tutte e paggine, ecetto i file",
+ "categorytree-mode-all": "tutte e paggine",
+ "categorytree-collapse": "comprimmi",
+ "categorytree-expand": "espandi",
+ "categorytree-member-counts": "a conten {{PLURAL:$1|1 sottocategoria|$1 sottocategorie}}, {{PLURAL:$2|1 pagina|$2 pagine}} e {{PLURAL:$3|1 file|$3 file}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "voeua",
+ "categorytree-load": "carega",
+ "categorytree-loading": "caregaménto in córso…",
+ "categorytree-nothing-found": "nisciun risultou",
+ "categorytree-no-subcategories": "nisciun-a sottocategoria",
+ "categorytree-no-parent-categories": "nisciun-a soviacategoria",
+ "categorytree-no-pages": "nisciun-a paggina ni sottocategoria",
+ "categorytree-not-found": "Categoria <i>$1</i> non trovâ",
+ "categorytree-error": "Problema into caregamento di dæti.",
+ "categorytree-retry": "Pe piaxei attendi un momento e proeuva torna.",
+ "apihelp-categorytree-description": "Moddulo interno pe l'estenscion CategoryTree.",
+ "apihelp-categorytree-param-category": "Tittolo into namespace categoria, o prefisso o saiâ ignorou se dæto.",
+ "apihelp-categorytree-param-options": "Opçioin pe-o costrutô CategoryTree comme oggetto JSON. L'opçion <var>depth</var> predefinia a l'è <kbd>1</kbd>."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/lki.json b/www/wiki/extensions/CategoryTree/i18n/lki.json
new file mode 100644
index 00000000..2f4473b0
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/lki.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hosseinblue",
+ "Lakzon"
+ ]
+ },
+ "categorytree": "دار ڕِزگ",
+ "categorytree-portlet": "ڕزگەل",
+ "categorytree-legend": "دار ڕزگ نیشۆن دە",
+ "categorytree-desc": "ابزار مبتنی بر AJAX برای نمایش [[Special:CategoryTree|ساختار رده‌های]] یک ویکی",
+ "categorytree-header": "نام رده‌ای را وارد کنید تا محتویات آن به صورت درختی نمایش یابد. توجه کنید که این کار نیاز به قابلیت‌های پیشرفتهٔ جاوااسکریپت موسوم به ای‌جکس دارد. اگر از مرورگری خیلی قدیمی استفاده می‌کنید یا جاوااسکریپت را غیرفعال کرده‌اید، کار نمی‌کند.",
+ "categorytree-category": "ڕِزگ:",
+ "categorytree-go": "نمایش درخت",
+ "categorytree-parents": "ریشه",
+ "categorytree-mode-label": "حالت:",
+ "categorytree-mode-categories": "فقط رده‌ها/ڕِزگةل",
+ "categorytree-mode-pages": "صفحات به جز تصاویر",
+ "categorytree-mode-all": "کؤل(گشت)وەڵگەل",
+ "categorytree-collapse": "آشاردِن",
+ "categorytree-expand": "کلنگاکردن/گسترش",
+ "categorytree-member-counts": " شامل {{PLURAL:$1|1 ژئر رده$1 |ژئر رده}}, {{PLURAL:$2|1وۀلگۀ$2|وۀلگۀ}},\n وۀ {{PLURAL:$3|1 فایل $3| فایل}}",
+ "categorytree-num-categories": "$1 ر",
+ "categorytree-num-pages": "$1 ص",
+ "categorytree-num-files": "$1 پ",
+ "categorytree-num-empty": "خالی/پةتی",
+ "categorytree-load": "بارگیری",
+ "categorytree-loading": "در حال بارگیری...",
+ "categorytree-nothing-found": "هیچ‌چیز یافت نشد.",
+ "categorytree-no-subcategories": "هیچ زیررده‌ای ندارد.",
+ "categorytree-no-parent-categories": "فاقد ردهٔ بالاتر",
+ "categorytree-no-pages": "هیچ صفحه یا زیررده‌ای ندارد.",
+ "categorytree-not-found": "ردهٔ <i>$1</i> یافت نشد",
+ "categorytree-error": "اشکال در دریافت اطلاعات.",
+ "categorytree-retry": "لطفاً کمی صبر کنید و دوباره امتحان کنید."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/lmo.json b/www/wiki/extensions/CategoryTree/i18n/lmo.json
new file mode 100644
index 00000000..75248c71
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/lmo.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dakrismeno"
+ ]
+ },
+ "categorytree": "Àlbur di categurij",
+ "categorytree-portlet": "Categurij",
+ "categorytree-legend": "Fàm ved l'àlbur di categurij",
+ "categorytree-category": "Categuria:",
+ "categorytree-go": "Mustra l'àlbur",
+ "categorytree-parents": "Categurij süperiur",
+ "categorytree-mode-categories": "mustra dumà i categurij",
+ "categorytree-mode-pages": "tüt i paginn, fö che i sumejanz",
+ "categorytree-mode-all": "tüt i paginn",
+ "categorytree-collapse": "sara sü",
+ "categorytree-expand": "slarga",
+ "categorytree-load": "carega",
+ "categorytree-loading": "adree a caregà...",
+ "categorytree-nothing-found": "nissün resültaa",
+ "categorytree-no-subcategories": "nissüna suta-categuria",
+ "categorytree-no-parent-categories": "nissüna categuria süperiur",
+ "categorytree-no-pages": "mía de paginn o de suta-categurij",
+ "categorytree-not-found": "Categuria <i>$1</i> mía truada",
+ "categorytree-error": "Prublema cun 'l caregament di dati.",
+ "categorytree-retry": "Per piasè, specia un mument e pö pröva ancamò."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ln.json b/www/wiki/extensions/CategoryTree/i18n/ln.json
new file mode 100644
index 00000000..73255925
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ln.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Eruedin"
+ ]
+ },
+ "categorytree-portlet": "Ndéngé",
+ "categorytree-category": "Katégoli:",
+ "categorytree-mode-all": "Nkásá ínsɔ",
+ "categorytree-no-subcategories": "Ndéngé-bǎna té"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/lo.json b/www/wiki/extensions/CategoryTree/i18n/lo.json
new file mode 100644
index 00000000..93068096
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/lo.json
@@ -0,0 +1,30 @@
+{
+ "@metadata": {
+ "authors": [
+ "Passawuth",
+ "Aefgh39622"
+ ]
+ },
+ "categorytree": "ໂຄງສ້າງໝວດ",
+ "categorytree-legend": "ສະແດງແຜນຜັງໝວດ",
+ "categorytree-header": "ພິມຊື່ໝວດໃສ່ ເພື່ອເບິ່ງໂຄງສ້າງມັນ. ຟັງຊັງຕ້ອງການໃຊ້ AJAX ໃນ JavaScript. ຖ້າ ທ່ານ ໃຊ້ໂປຣແກຣມທ່ອງເວັບເກົ່າ ຫຼື ບໍ່ອະນຸຍາດ JavaScript, ມັນກໍ່ຈະບໍ່ເຮັດວຽກ.",
+ "categorytree-category": "ໝວດ",
+ "categorytree-go": "ສະແດງໂຄງສ້າງ",
+ "categorytree-parents": "ໝວດແມ່",
+ "categorytree-mode-categories": "ໝວດເທົ່ານັ້ນ",
+ "categorytree-mode-pages": "ໜ້າ ນອກຈາກ ໜ້າຮູບ",
+ "categorytree-mode-all": "ທຸກໆໜ້າ",
+ "categorytree-collapse": "ຫຍໍ້ເຂົ້າ",
+ "categorytree-expand": "ຂະຫຍາຍອອກ",
+ "categorytree-member-counts": "ມີ {{PLURAL:$1|1 ໝວດຍ່ອຍ|$1 ໝວດຍ່ອຍ}}, {{PLURAL:$2|1 ໜ້າ|$2 ໜ້າ}}, ແລະ {{PLURAL:$3|1 ໄຟລ໌|$3 ໄຟລ໌}}",
+ "categorytree-num-categories": "$1 ມ",
+ "categorytree-num-pages": "$1 ນ",
+ "categorytree-load": "ໂຫຼດ",
+ "categorytree-loading": "ພວມໂຫຼດ",
+ "categorytree-nothing-found": "ບໍ່ພົບຫຍັງ",
+ "categorytree-no-subcategories": "ບໍ່ມີໝວດຍ່ອຍ",
+ "categorytree-no-pages": "ບໍ່ມີໜ້າ ຫຼື ໝວດຍ່ອຍ",
+ "categorytree-not-found": "ບໍ່ເຫັນ",
+ "categorytree-error": "ການໂຫຼດຂໍ້ມູນມີປັນຫາ",
+ "categorytree-retry": "ກະລຸນາຮອສັກຄູ່ ແລ້ວລອງໂຫຼດໃໝ່"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/lrc.json b/www/wiki/extensions/CategoryTree/i18n/lrc.json
new file mode 100644
index 00000000..b4892bde
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/lrc.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bonevarluri",
+ "Mogoeilor"
+ ]
+ },
+ "categorytree": "دار دسه",
+ "categorytree-portlet": "دسه یا",
+ "categorytree-legend": "دار دسه نه نشو بیئه",
+ "categorytree-desc": "وه شلک جمشدار [[ویجه:دار دسه|ساختار دسه]] ناوجوری بک",
+ "categorytree-header": "یه گل نوم دسه سی دیئن چیا مئن وه شکل یه سازه داری وارد بکید.\nبنیسید که که یه تاوع جاوا اسکریپت پیشکرده که چی آجاکس اشناخته با میها.\nار جاگردتو فره قدیمیه،یا جاوا اسکریپت فعال نئ،وه کار نمی که.",
+ "categorytree-category": "دسه:",
+ "categorytree-go": "وه شلك دار نشون بيه",
+ "categorytree-parents": "ریشه",
+ "categorytree-mode-label": "مد:",
+ "categorytree-mode-categories": "فقط دسه یا",
+ "categorytree-mode-pages": "بلگیا وه جؤز فایلیا",
+ "categorytree-mode-all": "همه بلگيا",
+ "categorytree-collapse": "جم كردن",
+ "categorytree-expand": "گٱپ کلون کردن",
+ "categorytree-member-counts": "وه د ور گرته {{PLURAL:$1|1 زیردسه|$1 زیردسه یا}}, {{PLURAL:$2|1 بلگه|$2 بلگه}}, و {{PLURAL:$3|1 جانیا|$3 جانیایا}} ئه",
+ "categorytree-num-categories": "$1 س",
+ "categorytree-num-pages": " $1 پ",
+ "categorytree-num-files": " $1 ف",
+ "categorytree-num-empty": "حالی",
+ "categorytree-load": "سوۋار كرد",
+ "categorytree-loading": "د حالت سوار كرد",
+ "categorytree-nothing-found": "هيچی پيدا نبی",
+ "categorytree-no-subcategories": "بی زيردسه يا",
+ "categorytree-no-parent-categories": "نه دسه یا ایسنی",
+ "categorytree-no-pages": "نه بلگه ای نه زیر دسه ای",
+ "categorytree-not-found": "دسه <i>$1</i> دیاری نکرد",
+ "categorytree-error": "مشگل د سواركرد داديا",
+ "categorytree-retry": "لطفا يه دم صبر بكيد و هنی تلاش بكيد"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/lt.json b/www/wiki/extensions/CategoryTree/i18n/lt.json
new file mode 100644
index 00000000..004fc31a
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/lt.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Eitvys200",
+ "Garas",
+ "Hugo.arg",
+ "Tomasdd",
+ "Zygimantus",
+ "Manvydasz"
+ ]
+ },
+ "categorytree": "Kategorijų medis",
+ "categorytree-portlet": "Kategorijos",
+ "categorytree-legend": "Rodyti kategorijų medį",
+ "categorytree-desc": "Dinamiškai naršykite [[Special:CategoryTree|kategorijų struktūroje]]",
+ "categorytree-header": "Įveskite kategorijos pavadinimą, kad pamatytumėte jos turinį kaip medžio struktūrą. (Reikia JavaScript.)",
+ "categorytree-category": "Kategorija:",
+ "categorytree-go": "Rodyti medį",
+ "categorytree-parents": "Aukštesnio lygio kategorija",
+ "categorytree-mode-label": "Režimas:",
+ "categorytree-mode-categories": "tik kategorijos",
+ "categorytree-mode-pages": "puslapiai išskyrus paveikslėlius",
+ "categorytree-mode-all": "visi puslapiai",
+ "categorytree-collapse": "suskleisti",
+ "categorytree-expand": "išskleisti",
+ "categorytree-member-counts": "turi $1 {{PLURAL:$1|subkategoriją|subkategorijas|subkategorijų}}, $2 {{PLURAL:$2|puslapį|puslapius|puslapių}}, ir $3 {{PLURAL:$3|rinkmeną|rinkmenas|rinkmenų}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "tuščia",
+ "categorytree-load": "įkelti",
+ "categorytree-loading": "įkeliama...",
+ "categorytree-nothing-found": "nieko nerasta",
+ "categorytree-no-subcategories": "nėra jokių subkategorijų",
+ "categorytree-no-parent-categories": "jokių aukštesniojo lygio kategorijų",
+ "categorytree-no-pages": "jokių puslapių ar subkategorijų",
+ "categorytree-not-found": "Kategorija <i>$1</i> nerasta",
+ "categorytree-error": "Duomenų įkėlimo problema.",
+ "categorytree-retry": "Palaukite šiek tiek ir bandykite iš naujo.",
+ "apihelp-categorytree-description": "CategoryTree plėtinio vidinis modulis.",
+ "apihelp-categorytree-param-options": "Nustatymai skirti CategoryTree konstruktoriui, kaip JSON objektui. Nustatymo <var>depth</var> numatytoji reikšmė yra <kbd>1</kbd>."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ltg.json b/www/wiki/extensions/CategoryTree/i18n/ltg.json
new file mode 100644
index 00000000..cc60f5bc
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ltg.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dark Eagle"
+ ]
+ },
+ "categorytree": "Kategoreju kūks",
+ "categorytree-portlet": "Kategorejis",
+ "categorytree-legend": "Paruodeit kategoreju kūku",
+ "categorytree-desc": "Dinamiski vada [[Special:CategoryTree|kategoreju strukturu]]",
+ "categorytree-category": "Kategoreja:",
+ "categorytree-go": "Paruodeit kūku",
+ "categorytree-parents": "Augstuokuo leidzīņa kategorejis",
+ "categorytree-mode-categories": "kategorejis viņ",
+ "categorytree-mode-pages": "atskaitūt failus",
+ "categorytree-mode-all": "vysys puslopys",
+ "categorytree-collapse": "nūglobuot",
+ "categorytree-expand": "ruodeit",
+ "categorytree-member-counts": "globuo {{PLURAL:$1|1 zamkategoreju|$1 zamkategorejis}}, {{PLURAL:$2|1 puslopu|$2 puslopys}}, i {{PLURAL:$3|1 failu|$3 failus}}",
+ "categorytree-load": "atsasyuteit",
+ "categorytree-loading": "nūteik atsasyuteišona...",
+ "categorytree-nothing-found": "nikas natyka atrast",
+ "categorytree-no-subcategories": "navā zamkategoreju",
+ "categorytree-no-parent-categories": "navā augstuokuo leidzīņa kategoreju",
+ "categorytree-no-pages": "navā puslopu ci zamkategoreju",
+ "categorytree-not-found": "Kategoreja <i>$1</i> navā savaicuota",
+ "categorytree-error": "Failu atsasyuteišonys problema.",
+ "categorytree-retry": "Lyudzams drupeit pagaidi i raugi vēļ."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/lus.json b/www/wiki/extensions/CategoryTree/i18n/lus.json
new file mode 100644
index 00000000..d54a696c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/lus.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "RMizo"
+ ]
+ },
+ "categorytree": "Inpàwlchhàwnna",
+ "categorytree-portlet": "Pawlte",
+ "categorytree-legend": "Pawl kung tihlanna",
+ "categorytree-desc": "[[Special:CategoryTree|Pawl inkungkaihdàn]] fankualna",
+ "categorytree-header": "Thingzar anga tihlan i duh chuan pawl hming zawnah hmet rawh.\nHei hian JavaScript hnathawh changkang AJAX a mamawh tih hria ang che.\nRangpuifanna hlui tak i hma emaw, JavaScript tihthih a nih emaw chuan a en theih loh vang.",
+ "categorytree-category": "Pawl:",
+ "categorytree-go": "Küng tihlanna",
+ "categorytree-parents": "Pawlpui",
+ "categorytree-mode-categories": "pawlte chauh",
+ "categorytree-mode-pages": "taksa tiam loh phekte chauh",
+ "categorytree-mode-all": "phek zawng zawngte",
+ "categorytree-collapse": "thlehna",
+ "categorytree-expand": "pharhna",
+ "categorytree-member-counts": "Hetah hian {{PLURAL:$1|pawlpeng 1|pawlpeng $1}}, {{PLURAL:$2|phek 1|phek $2}}, leh {{PLURAL:$3|taksa 1|taksa $3}} a awm",
+ "categorytree-num-categories": "P $1",
+ "categorytree-num-pages": "Ph $1",
+ "categorytree-num-files": "Tks $1",
+ "categorytree-num-empty": "ruak",
+ "categorytree-load": "hlankaina",
+ "categorytree-loading": "nghak lawks...",
+ "categorytree-nothing-found": "engmah hmuh a ni lo",
+ "categorytree-no-subcategories": "pawlpeng awm lo",
+ "categorytree-no-parent-categories": "pawlpui awm lo",
+ "categorytree-no-pages": "phek leh pawlpeng awm lo",
+ "categorytree-not-found": "Pawl <i>$1</i> hmuh a ni lo",
+ "categorytree-error": "Hriatna hlankai hlawhchham",
+ "categorytree-retry": "Nghak lawk la tum nawn leh rawh"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/luz.json b/www/wiki/extensions/CategoryTree/i18n/luz.json
new file mode 100644
index 00000000..6f00d2e4
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/luz.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "علی ساکی لرستانی"
+ ]
+ },
+ "categorytree-expand": "ڤا كردن",
+ "categorytree-member-counts": "شامل {{PLURAL:$1|1 دوٙمین شاخە|$1 دوٙمین شاخە یل}}, {{PLURAL:$2|1 بألگە|$2 بألگل}}, ڤ {{PLURAL:$3|1 فایل|$3 فایلل}}",
+ "categorytree-num-categories": "$1 د",
+ "categorytree-num-pages": "$1 ب",
+ "categorytree-num-files": "$1 ف"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/lv.json b/www/wiki/extensions/CategoryTree/i18n/lv.json
new file mode 100644
index 00000000..11e902be
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/lv.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "GreenZeb",
+ "Marozols",
+ "Papuass",
+ "Xil",
+ "Yyy"
+ ]
+ },
+ "categorytree": "Kategoriju koks",
+ "categorytree-portlet": "Kategorijas",
+ "categorytree-legend": "Rādīt kategoriju koku",
+ "categorytree-desc": "AJAX bāzēts ''gadget'', kuru lieto lai attēlotu wiki [[Special:CategoryTree|kategoriju struktūru]]",
+ "categorytree-header": "Ievadi kategorijas nosaukumu, lai apskatītu tās saturu kā kokveida struktūru (nepieciešams JavaScript).",
+ "categorytree-category": "Kategorija:",
+ "categorytree-go": "Parādīt koku",
+ "categorytree-parents": "Augšējā līmeņa kategorijas",
+ "categorytree-mode-label": "Režīms:",
+ "categorytree-mode-categories": "tikai kategorijas",
+ "categorytree-mode-pages": "lapas (bez attēlu lapām)",
+ "categorytree-mode-all": "visas lapas",
+ "categorytree-collapse": "sakļaut",
+ "categorytree-expand": "izvērst",
+ "categorytree-member-counts": "satur {{PLURAL:$1|$1 apakškategorijas|1 apakškategoriju|$1 apakškategorijas}}, {{PLURAL:$2|$2 lapas|1 lapu|$2 lapas}}, un {{PLURAL:$3|$3 failus|1 failu|$3 failus}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 L",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "tukšs",
+ "categorytree-load": "ielādēt",
+ "categorytree-loading": "ielādējas...",
+ "categorytree-nothing-found": "neko neatrada",
+ "categorytree-no-subcategories": "nav apakškategoriju",
+ "categorytree-no-parent-categories": "nav augšējā līmeņa kategoriju",
+ "categorytree-no-pages": "nav ne lapu, ne apakškategoriju",
+ "categorytree-not-found": "Kategorija <i>$1</i> netika atrasta",
+ "categorytree-error": "Problēma ar datu ielādi.",
+ "categorytree-retry": "Pagaidi mazliet un mēģini vēlreiz."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/lzh.json b/www/wiki/extensions/CategoryTree/i18n/lzh.json
new file mode 100644
index 00000000..30a1cf7e
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/lzh.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "StephDC",
+ "Davidzdh",
+ "SolidBlock",
+ "Muhebbet"
+ ]
+ },
+ "categorytree-portlet": "類",
+ "categorytree-category": "類:",
+ "categorytree-expand": "展",
+ "categorytree-member-counts": "存$1子類,$2頁,$3文",
+ "categorytree-num-categories": "$1 類",
+ "categorytree-num-pages": "$1 頁",
+ "categorytree-num-files": "$1 檔"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/lzz.json b/www/wiki/extensions/CategoryTree/i18n/lzz.json
new file mode 100644
index 00000000..57fa2415
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/lzz.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Velg"
+ ]
+ },
+ "categorytree-num-pages": "$1 B"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/mai.json b/www/wiki/extensions/CategoryTree/i18n/mai.json
new file mode 100644
index 00000000..5d77c14b
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/mai.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "बिप्लब आनन्द"
+ ]
+ },
+ "categorytree": "संवर्गवृक्ष",
+ "categorytree-portlet": "श्रेणीसभ",
+ "categorytree-legend": "संवर्ग वृक्ष देखाउ",
+ "categorytree-desc": "विकि के [[Special:CategoryTree|संवर्ग संरचना]] देखु",
+ "categorytree-category": "संवर्ग",
+ "categorytree-go": "वृक्ष देखाबी",
+ "categorytree-parents": "पालक",
+ "categorytree-mode-label": "मोड:",
+ "categorytree-mode-categories": "मात्र संवर्ग",
+ "categorytree-mode-pages": "सञ्चिकासभके अतिरिक्त पृष्ठ",
+ "categorytree-mode-all": "सभटा पन्ना",
+ "categorytree-collapse": "भखड़ाउ",
+ "categorytree-expand": "बढाबी",
+ "categorytree-member-counts": "एहिमे {{PLURAL:$1|एकटा उपश्रेणी|$1 उपश्रेणिसभ}}, {{PLURAL:$2|एकटा पृष्ठ|$2 पृष्ठ}}, आर {{PLURAL:$3|एकटा फाइल|$3 फाइलसभ}} अछि।",
+ "categorytree-num-categories": "$1 श्र",
+ "categorytree-num-pages": "$1 पृ",
+ "categorytree-num-files": "$1 फा",
+ "categorytree-num-empty": "खाली",
+ "categorytree-load": "लादू",
+ "categorytree-loading": "उपारोपण भऽ रहल अछि...",
+ "categorytree-nothing-found": "कुछो नै भेटल",
+ "categorytree-no-subcategories": "उपसंवर्ग नै अछि",
+ "categorytree-no-parent-categories": "कोनो जनक श्रेणिसभ नै अछि",
+ "categorytree-no-pages": "कोनो पृष्ठ आ उपसंवर्ग नै अछि",
+ "categorytree-not-found": "श्रेणी <i>$1</i> नै भेटल",
+ "categorytree-error": "डाटा लोड करए मे समस्या।",
+ "categorytree-retry": "कृपया किछु समय पश्चात पुनः प्रयास करु।"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/map-bms.json b/www/wiki/extensions/CategoryTree/i18n/map-bms.json
new file mode 100644
index 00000000..5bddf9f0
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/map-bms.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "StefanusRA"
+ ]
+ },
+ "categorytree": "Uwit kategori",
+ "categorytree-portlet": "Kategori",
+ "categorytree-legend": "Tidhokna uwit kategori",
+ "categorytree-desc": "Gadget sing dasare AJAX nggo nidhokna [[Special:CategoryTree|category structure]] salah siji wiki",
+ "categorytree-header": "Lebokna jeneng kategori kanggo deleng isiné minangka sawijining wujud uwit.\nMangga diwigatèkaké nek fitur kiye merlokna fungsionalitas JavaScript canggih sing diarani AJAX.\nAngger Rika panjlajah wèbé kalebu vèrsi lawas, utawa fitur JavaScript dipatèni, fungsi kiye ora teyeng dilakokna.",
+ "categorytree-category": "Kategori:",
+ "categorytree-go": "Tuduhna uwit",
+ "categorytree-parents": "Kategori sing luwih dhuwur",
+ "categorytree-mode-label": "Mode:",
+ "categorytree-mode-categories": "kategori thok",
+ "categorytree-mode-pages": "kaca kajaba gambar",
+ "categorytree-mode-all": "kabèh kaca",
+ "categorytree-collapse": "umpetna",
+ "categorytree-expand": "tidhokna",
+ "categorytree-member-counts": "ngandhut {{PLURAL:$1|1 subkategori|$1 subkategori}}, {{PLURAL:$2|1 kaca|$2 kaca}}, lan {{PLURAL:$3|1 gambar|$3 gambar}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "kosong",
+ "categorytree-load": "unggah",
+ "categorytree-loading": "lagi ngunggahna…",
+ "categorytree-nothing-found": "ora ketemu",
+ "categorytree-no-subcategories": "ora ana subkategori",
+ "categorytree-no-parent-categories": "ora ana kategori indhuk",
+ "categorytree-no-pages": "ora ana kaca utawa subkategori",
+ "categorytree-not-found": "Kategori <i>$1</i> ora ketemu",
+ "categorytree-error": "Ana masalah dong lagi ngunggahna data.",
+ "categorytree-retry": "Tulung dienteni sedela lan dijajal maning."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/mg.json b/www/wiki/extensions/CategoryTree/i18n/mg.json
new file mode 100644
index 00000000..f0d415ac
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/mg.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jagwar"
+ ]
+ },
+ "categorytree": "Fisampanan'ny sokajy",
+ "categorytree-portlet": "Sokajy",
+ "categorytree-legend": "Aseho ny hazon-tsokajy",
+ "categorytree-category": "Sokajy :",
+ "categorytree-go": "hijery ny hazon-tsokajy",
+ "categorytree-parents": "renisokajy",
+ "categorytree-mode-categories": "sokajy ihany",
+ "categorytree-mode-pages": "pejy tsy misy sary",
+ "categorytree-expand": "hanitatra",
+ "categorytree-member-counts": "Ahitana {{PLURAL:$1|zana-tsokajy iray|zanatsokajy $1}}",
+ "categorytree-num-categories": "$1 Skj",
+ "categorytree-num-pages": "$1 Pj",
+ "categorytree-num-files": "$1 Rkt"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/mhr.json b/www/wiki/extensions/CategoryTree/i18n/mhr.json
new file mode 100644
index 00000000..b8d37017
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/mhr.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Санюн Вадик"
+ ]
+ },
+ "categorytree-expand": "почаш",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 С",
+ "categorytree-num-files": "$1 Ф"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/min.json b/www/wiki/extensions/CategoryTree/i18n/min.json
new file mode 100644
index 00000000..dd4533fa
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/min.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iwan Novirion"
+ ]
+ },
+ "categorytree": "Pohon kategori",
+ "categorytree-portlet": "Kategori",
+ "categorytree-legend": "Tunjuakan pohon kategori",
+ "categorytree-desc": "Manavigasi sacaro dinamih [[Special:CategoryTree|struktur kategori]]",
+ "categorytree-header": "Masuakan suatu kategori untuak mancaliak isinyo dalam bantuak sruktur pohon.\nParalu diparatian koq fitur ko haruih ado dukuangan JavaScript tingkek lanjuik nan dikenal sabagai AJAX.\nJikok Sanak manggunoan paramban web versi lamo, atau mamatian fungsi JavaScript, fitur ko indak dapek bajalan.",
+ "categorytree-category": "Kategori:",
+ "categorytree-go": "Tunjuakan",
+ "categorytree-mode-label": "Mode:",
+ "categorytree-mode-categories": "hanyo kategori",
+ "categorytree-mode-pages": "laman salain berkas",
+ "categorytree-mode-all": "kasado laman",
+ "categorytree-collapse": "tutuik",
+ "categorytree-expand": "bukak",
+ "categorytree-member-counts": "Barisi {{PLURAL:$1|$1 subkategori}}, {{PLURAL:$2|$2 laman}}, jo {{PLURAL:$3|$3 berkas}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 L",
+ "categorytree-num-files": "$1 B",
+ "categorytree-num-empty": "kosong",
+ "categorytree-load": "muek",
+ "categorytree-loading": "mamuek...",
+ "categorytree-nothing-found": "indak basobok",
+ "categorytree-no-subcategories": "indak ado subkategori",
+ "categorytree-no-pages": "indak ado laman atau subkategori",
+ "categorytree-not-found": "Kategori <i>$1</i> indak basobok",
+ "categorytree-error": "Problem mamuek data.",
+ "categorytree-retry": "Tunggu sabanta dan cubo lai."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/mk.json b/www/wiki/extensions/CategoryTree/i18n/mk.json
new file mode 100644
index 00000000..6f3259f2
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/mk.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bjankuloski06",
+ "Brest",
+ "Brest2008"
+ ]
+ },
+ "categorytree": "Дрво на категории",
+ "categorytree-portlet": "Категории",
+ "categorytree-legend": "Прикажи дрво на категории",
+ "categorytree-desc": "Динамички прегледник низ [[Special:CategoryTree|структурата на категориите]]",
+ "categorytree-header": "Внесете назив на категорија за да ја видите нејзината содржина во облик на дрво (бара JavaScript).",
+ "categorytree-category": "Категорија:",
+ "categorytree-go": "Прикажи дрво",
+ "categorytree-parents": "Родители",
+ "categorytree-mode-label": "Режим:",
+ "categorytree-mode-categories": "само категории",
+ "categorytree-mode-pages": "страници без податотеки",
+ "categorytree-mode-all": "сите страници",
+ "categorytree-collapse": "собери",
+ "categorytree-expand": "отвори",
+ "categorytree-expand-bullet": "[<b>+</b>]",
+ "categorytree-empty-bullet": "[<b>×</b>]",
+ "categorytree-member-counts": "содржи {{PLURAL:$1|една поткатегорија|$1 поткатегории}}, {{PLURAL:$2|една страница|$2 страници}} и {{PLURAL:$3|една податотека|$3 податотеки}}",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 С",
+ "categorytree-num-files": "$1 П",
+ "categorytree-num-empty": "празна",
+ "categorytree-load": "вчитај",
+ "categorytree-loading": "вчитувам...",
+ "categorytree-nothing-found": "не е најдено ништо",
+ "categorytree-no-subcategories": "нема поткатегории",
+ "categorytree-no-parent-categories": "нема родителски категории",
+ "categorytree-no-pages": "нема страници или поткатегории",
+ "categorytree-not-found": "Не е пронајдена категорија <i>$1</i>",
+ "categorytree-error": "Проблеми со вчитување на податоците.",
+ "categorytree-retry": "Почекајте малку, па обидете се пак.",
+ "apihelp-categorytree-description": "Внатрешен модул на додатокот „Дрво на категории“.",
+ "apihelp-categorytree-summary": "Внатрешен модул на додатокот „Дрво на категории“.",
+ "apihelp-categorytree-param-category": "Наслов во категорискиот именски простор. Ако се внесе претставка, истата ќе биде занемарена.",
+ "apihelp-categorytree-param-options": "Можности за конструкторот на „Дрво на категории“ како JSON-објект. Продорноста (<var>depth</var>) по основно е <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Можностите мора да бидат важечки JSON-објект."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ml.json b/www/wiki/extensions/CategoryTree/i18n/ml.json
new file mode 100644
index 00000000..ca34acd6
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ml.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Praveenp",
+ "Shijualex"
+ ]
+ },
+ "categorytree": "വർഗ്ഗവൃക്ഷം",
+ "categorytree-portlet": "വർഗ്ഗങ്ങൾ",
+ "categorytree-legend": "വർഗ്ഗവൃക്ഷം പ്രദർശിപ്പിക്കുക",
+ "categorytree-desc": "വിക്കിയിലെ [[Special:CategoryTree|വർഗ്ഗങ്ങളുടെ ഘടന]] പ്രദർശിപ്പിക്കുവാനുള്ള അജാക്സ് സാങ്കേതികവിദ്യ ഉപയോഗിക്കുന്ന ഗാഡ്ജറ്റ്.",
+ "categorytree-header": "വർഗ്ഗങ്ങളുടെ ഘടന വ്യക്ഷരൂപത്തിൽ കാണുവാൻ ഒരു വർഗ്ഗത്തിന്റെ പേരു ചേർക്കുക.\nഇതു പ്രവർത്തിക്കണമെങ്കിൽ അജാക്സ് എന്ന ചുരുക്കനാമത്തിലറിയപ്പെടുന്ന നൂതന ജാവാസ്ക്രിപ്റ്റ് സാങ്കേതികവിദ്യ ആവശ്യമാണ്‌.\nതാങ്കളുടെ ബ്രൗസറിൽ ജാവാസ്ക്രിപ്റ്റ് പ്രവർത്തനരഹിതമാക്കിയതാണെങ്കിലോ അല്ലെങ്കിൽ ബ്രൗസർ കാലഹരണപ്പെട്ടതാണെങ്കിലോ ഇതു പ്രവർത്തിക്കില്ല.",
+ "categorytree-category": "വർഗ്ഗം:",
+ "categorytree-go": "വർഗ്ഗവൃക്ഷം പ്രദർശിപ്പിക്കുക",
+ "categorytree-parents": "താവഴി",
+ "categorytree-mode-label": "സമ്പ്രദായം:",
+ "categorytree-mode-categories": "വർഗ്ഗങ്ങൾ മാത്രം",
+ "categorytree-mode-pages": "പ്രമാണങ്ങൾ അല്ലാതെയുള്ള താളുകൾ",
+ "categorytree-mode-all": "എല്ലാ താളുകളും",
+ "categorytree-collapse": "ചുരുക്കുക",
+ "categorytree-expand": "വികസിപ്പിക്കുക",
+ "categorytree-member-counts": "{{PLURAL:$1|ഒരു ഉപവർഗ്ഗവും|$1 ഉപവർഗ്ഗങ്ങളും}}, {{PLURAL:$2|ഒരു താളും|$2 താളുകളും}}, {{PLURAL:$3|ഒരു പ്രമാണവും|$3 പ്രമാണങ്ങളും}} ഉൾക്കൊള്ളുന്നു",
+ "categorytree-num-categories": "$1 വ",
+ "categorytree-num-pages": "$1 താ",
+ "categorytree-num-files": "$1 പ്ര",
+ "categorytree-num-empty": "ശൂന്യം",
+ "categorytree-load": "ശേഖരിക്കുക",
+ "categorytree-loading": "ശേഖരിക്കുന്നു…",
+ "categorytree-nothing-found": "ഒന്നും കണ്ടെത്തിയില്ല",
+ "categorytree-no-subcategories": "ഉപവർഗ്ഗങ്ങളില്ല",
+ "categorytree-no-parent-categories": "മാതൃവർഗ്ഗങ്ങൾ ഇല്ല",
+ "categorytree-no-pages": "താളുകളോ ഉപവർഗ്ഗങ്ങളോ ഇല്ല",
+ "categorytree-not-found": "''$1'' എന്ന വർഗ്ഗം കണ്ടില്ല",
+ "categorytree-error": "വിവരം ശേഖരിക്കുന്നതിൽ പിഴവുണ്ടായി.",
+ "categorytree-retry": "ദയവായി അല്പസമയത്തിനു ശേഷം വീണ്ടും ശ്രമിക്കുക."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/mn.json b/www/wiki/extensions/CategoryTree/i18n/mn.json
new file mode 100644
index 00000000..36500816
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/mn.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chinneeb",
+ "MongolWiki",
+ "Sembuk"
+ ]
+ },
+ "categorytree": "Ангиллын мод",
+ "categorytree-portlet": "Анги",
+ "categorytree-legend": "Ангиллын модыг үзүүлэх",
+ "categorytree-header": "Ангиллын нэрийг бичиж модны бүтэц байдлаар агуулгыг нь харна уу.\nҮүнийг ашиглахын тулд AJAX гэгдэх ЖаваСкрипт функц хэрэгтэй.\nТа маш хуучин вэб хөтөчтэй, эсвэл ЖаваСкриптыг хориглосон байвал ажиллахгүй болохыг анхаарна уу.",
+ "categorytree-category": "Анги:",
+ "categorytree-go": "Модыг үзүүлэх",
+ "categorytree-parents": "Эх ангиллууд",
+ "categorytree-mode-categories": "Зөвхөн ангиллууд",
+ "categorytree-mode-pages": "зурагнаас бусад хуудсууд",
+ "categorytree-mode-all": "бүх хуудас",
+ "categorytree-collapse": "буулгах",
+ "categorytree-expand": "дэлгэх",
+ "categorytree-member-counts": "{{PLURAL:$1|1 дэд анги|$1 дэд анги}}, {{PLURAL:$2|1 хуудас|$2 хуудас}}, {{PLURAL:$3|1 файл|$3 файл}} агуулагдаж байна.",
+ "categorytree-num-categories": "$1 А",
+ "categorytree-num-pages": "$1 Б",
+ "categorytree-num-files": "$1 Ф",
+ "categorytree-load": "унших",
+ "categorytree-loading": "уншиж байна...",
+ "categorytree-nothing-found": "юу ч олдсонгүй",
+ "categorytree-no-subcategories": "дэд ангилалгүй байна",
+ "categorytree-no-parent-categories": "эх ангилал байхгүй байна",
+ "categorytree-no-pages": "хуудас буюу дэд ангилалгүй байна",
+ "categorytree-not-found": "<i>$1</i> анги олдсонгүй",
+ "categorytree-error": "Өгөгдлийг ачааллахад асуудал үүсэв.",
+ "categorytree-retry": "Түр хүлээгээд дахин оролдоно уу."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/mo.json b/www/wiki/extensions/CategoryTree/i18n/mo.json
new file mode 100644
index 00000000..fd10c94c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/mo.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "TheChampionMan1234",
+ "Cybernenea11"
+ ]
+ },
+ "categorytree-expand": "дескидере",
+ "categorytree-member-counts": "Концине {{PLURAL:$1|1 субкатегорие|$1 субкатегорий}}, {{PLURAL:$2|1 паӂинэ|$2 паӂинь}}, ши {{PLURAL:$3|1 фишиер|$3 фишиере}}",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 п",
+ "categorytree-num-files": "$1 Ф"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/mr.json b/www/wiki/extensions/CategoryTree/i18n/mr.json
new file mode 100644
index 00000000..096005cc
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/mr.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Balaji",
+ "Evision",
+ "Htt",
+ "Kaustubh",
+ "Mahitgar",
+ "Mvkulkarni23",
+ "Rahuldeshmukh101",
+ "V.narsikar"
+ ]
+ },
+ "categorytree": "वर्गवृक्ष",
+ "categorytree-portlet": "वर्ग",
+ "categorytree-legend": "वर्गवृक्ष दाखवा",
+ "categorytree-desc": "एखाद्या विकिची [[Special:CategoryTree|वर्गीकरण मांडणी]] दाखवण्याकरिता AJAX वापरून बनवलेले उपकरण",
+ "categorytree-header": "एखाद्या वर्गीकरणातील मसुदा वृक्ष स्वरूपात पहाण्याकरिता त्या वर्गाचे नाव भरा.(जावास्क्रिप्ट हवी.)",
+ "categorytree-category": "वर्ग:",
+ "categorytree-go": "वृक्ष दाखवा",
+ "categorytree-parents": "पालक",
+ "categorytree-mode-label": "पद्धति:",
+ "categorytree-mode-categories": "केवळ वर्ग",
+ "categorytree-mode-pages": "विनासंचिकेची पाने",
+ "categorytree-mode-all": "सर्व पाने",
+ "categorytree-collapse": "निपात करा",
+ "categorytree-expand": "विस्तार",
+ "categorytree-member-counts": "{{PLURAL:$1|१ उपवर्ग|$1 उपवर्ग}}, {{PLURAL:$2|१ पान |$2 पाने}}, आणि {{PLURAL:$3|1 संचिका |$3 संचिका}} यामध्ये आहेत",
+ "categorytree-num-categories": "$1 क",
+ "categorytree-num-pages": "$1 प",
+ "categorytree-num-files": "$1 सं.",
+ "categorytree-num-empty": "रिकामे",
+ "categorytree-load": "भारण करा",
+ "categorytree-loading": "अपभारण करीत आहे",
+ "categorytree-nothing-found": "काहीच सापडले नाही",
+ "categorytree-no-subcategories": "उपवर्ग नाहीत",
+ "categorytree-no-parent-categories": "वर्गास मुळवर्गीकरण उपलब्ध नाही",
+ "categorytree-no-pages": "पाने अथवा उपवर्ग नाहीत",
+ "categorytree-not-found": "वर्ग <i>$1</i> आढळला नाही",
+ "categorytree-error": "विदा (डाटा) चढवताना अडचणी आहेत.",
+ "categorytree-retry": "कृपया,क्षणभर थांबा आणि पुन्हा प्रयत्न करा."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ms.json b/www/wiki/extensions/CategoryTree/i18n/ms.json
new file mode 100644
index 00000000..4cfa0a76
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ms.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Anakmalaysia",
+ "Aurora",
+ "Aviator",
+ "Kurniasan"
+ ]
+ },
+ "categorytree": "Salasilah kategori",
+ "categorytree-portlet": "Kategori",
+ "categorytree-legend": "Papar salasilah kategori",
+ "categorytree-desc": "Alat berdasarkan AJAX yang memaparkan [[Special:CategoryTree|struktur kategori]] bagi sesebuah wiki",
+ "categorytree-header": "Masukkan suatu nama kategori untuk melihat kandungannya dalam bentuk struktur salasilah.\nCiri ini memerlukan kefungsian JavaScript yang maju dikenali sebagai AJAX.\nJika anda menggunakan pelayar web yang sudah ketinggalan, atau mematikan JavaScript, ciri ini tidak akan menjadi.",
+ "categorytree-category": "Kategori:",
+ "categorytree-go": "Tunjukkan salasilah",
+ "categorytree-parents": "Induk",
+ "categorytree-mode-label": "Ragam:",
+ "categorytree-mode-categories": "kategori sahaja",
+ "categorytree-mode-pages": "laman kecuali imej",
+ "categorytree-mode-all": "semua laman",
+ "categorytree-collapse": "lipat",
+ "categorytree-expand": "kembangkan",
+ "categorytree-member-counts": "mengandungi $1 subkategori, $1 laman, dan $3 fail",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 L",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "kosong",
+ "categorytree-load": "muat",
+ "categorytree-loading": "memuatkan…",
+ "categorytree-nothing-found": "kosong",
+ "categorytree-no-subcategories": "tiada subkategori",
+ "categorytree-no-parent-categories": "tiada kategori induk",
+ "categorytree-no-pages": "tiada laman atau subkategori",
+ "categorytree-not-found": "Kategori <i>$1</i> tidak ditemui",
+ "categorytree-error": "Masalah memuat data.",
+ "categorytree-retry": "Sila tunggu sebentar dan cuba lagi."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/mt.json b/www/wiki/extensions/CategoryTree/i18n/mt.json
new file mode 100644
index 00000000..e1bfb638
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/mt.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chrisportelli",
+ "Roderick Mallia",
+ "MTSap"
+ ]
+ },
+ "categorytree": "Siġra tal-kategoriji",
+ "categorytree-portlet": "Kategoriji",
+ "categorytree-legend": "Uri s-siġra tal-kategoriji",
+ "categorytree-desc": "Innaviga b'mod dinamiku fl-[[Special:CategoryTree|istruttura tal-kategorija]]",
+ "categorytree-header": "Daħħal isem ta' kategorija biex tara l-kontenuti taħt struttura ta' siġra. Kun af li din għandha bżonn funzjonalità avvanzata ta' JavaScript magħrufa bħala AJAX. Jekk tuża' browser antik ħafna, jew għandek il-JavaScript diżattivat, din ma tistax taħdem.",
+ "categorytree-category": "Kategorija:",
+ "categorytree-go": "Uri s-siġra",
+ "categorytree-parents": "Parenti",
+ "categorytree-mode-categories": "il-kategoriji biss",
+ "categorytree-mode-pages": "il-paġni esklużi l-fajls",
+ "categorytree-mode-all": "il-paġni kollha",
+ "categorytree-collapse": "niżżel",
+ "categorytree-expand": "espandi",
+ "categorytree-member-counts": "Għandha {{PLURAL:$1|sottokategorija waħda|$1 sottokategoriji}}, {{PLURAL:$2|paġna waħda|$2 paġna}}, u {{PLURAL:$3|1 fajl|$3 fajls}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "vojta",
+ "categorytree-load": "tella'",
+ "categorytree-loading": "tiela",
+ "categorytree-nothing-found": "ma nstab xejn",
+ "categorytree-no-subcategories": "l-ebda sottokategorija",
+ "categorytree-no-parent-categories": "l-ebda kategorija parenti",
+ "categorytree-no-pages": "l-ebda paġna jew sottokategorija",
+ "categorytree-not-found": "Il-kategorija <i>$1</i> ma nstabitx",
+ "categorytree-error": "Problema fit-tlugħ tal-informazzjoni.",
+ "categorytree-retry": "Jekk jogħġbok stenna ftit u erġa' pprova."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/mui.json b/www/wiki/extensions/CategoryTree/i18n/mui.json
new file mode 100644
index 00000000..b8b0ca2a
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/mui.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jawadywn"
+ ]
+ },
+ "categorytree-expand": "selék",
+ "categorytree-num-categories": "$1 B",
+ "categorytree-num-pages": "$1 L",
+ "categorytree-num-files": "$1 B"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/mwl.json b/www/wiki/extensions/CategoryTree/i18n/mwl.json
new file mode 100644
index 00000000..5dd56e5c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/mwl.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "MokaAkashiyaPT",
+ "Athena in Wonderland"
+ ]
+ },
+ "categorytree": "Arble de catadories",
+ "categorytree-expand": "spandir",
+ "categorytree-member-counts": "Cuntén {{PLURAL:$1|1 subcatadorie|$1 subcatadories}}, {{PLURAL:$2|1 páigina|$2 páiginas}}, i {{PLURAL:$3|1 fexeiro|$3 fexeiros}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/my.json b/www/wiki/extensions/CategoryTree/i18n/my.json
new file mode 100644
index 00000000..1c5586fb
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/my.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ninjastrikers",
+ "9.sinistra"
+ ]
+ },
+ "categorytree-category": "ကဏ္ဍ:",
+ "categorytree-expand": "ချဲ့ကား",
+ "categorytree-member-counts": "{{PLURAL:$1|ကဏ္ဍခွဲ ၁ ခု|$1 ကဏ္ဍခွဲများ}}၊ {{PLURAL:$2|စာမျက်နှာ ၁ ခု| စာမျက်နှာ $2 ခု}}၊ နှင့် {{PLURAL:$3|ဖိုင် ၁ ခု| ဖိုင် $3 ခု }} ပါဝင်သည်",
+ "categorytree-num-categories": "$1 ကဏ္ဍ",
+ "categorytree-num-pages": "$1 စာမျက်နှာ",
+ "categorytree-num-files": "$1 ဖိုင်",
+ "categorytree-num-empty": "ဘာမှမရှိ"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/myv.json b/www/wiki/extensions/CategoryTree/i18n/myv.json
new file mode 100644
index 00000000..e1832ee3
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/myv.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amdf",
+ "Botuzhaleny-sodamo",
+ "Rueter"
+ ]
+ },
+ "categorytree": "Явкс чувто",
+ "categorytree-portlet": "Категорият",
+ "categorytree-legend": "Невтемс явкс чувтонть",
+ "categorytree-category": "Категория:",
+ "categorytree-go": "Невтемс чувтонзо",
+ "categorytree-parents": "Тетянзо-аванзо",
+ "categorytree-mode-categories": "ансяк категорият",
+ "categorytree-mode-all": "весе лопатне",
+ "categorytree-collapse": "теингавтомс",
+ "categorytree-expand": "келемтемс",
+ "categorytree-num-categories": "К-тнеде $1",
+ "categorytree-num-pages": "Лл-тнеде $1",
+ "categorytree-num-files": "Ф-тнеде $1",
+ "categorytree-load": "Йовкстамс",
+ "categorytree-loading": "йовкстамозо моли...",
+ "categorytree-nothing-found": "мезеяк а муеви",
+ "categorytree-no-subcategories": "алкс категорият арасть",
+ "categorytree-no-parent-categories": "верькс категорият арасть",
+ "categorytree-no-pages": "кодамояк лопат эли алкс категорият арасть",
+ "categorytree-not-found": "«$1» категориясь а муеви."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/mzn.json b/www/wiki/extensions/CategoryTree/i18n/mzn.json
new file mode 100644
index 00000000..725e3e67
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/mzn.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "محک"
+ ]
+ },
+ "categorytree": "رج‌دار",
+ "categorytree-portlet": "رج‌ئون",
+ "categorytree-expand": "گت هاکردن",
+ "categorytree-member-counts": "{{PLURAL:$1|اتا زیررج|$1 زیررج}}، {{PLURAL:$2|اتا صفحه|$2 صفحه}} و {{PLURAL:$3|اتا پرونده|$3 پرونده}} ونه دله دره",
+ "categorytree-num-categories": "$1 ر",
+ "categorytree-num-pages": "$1 ص",
+ "categorytree-num-files": "$1 پ"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/na.json b/www/wiki/extensions/CategoryTree/i18n/na.json
new file mode 100644
index 00000000..a278c4a5
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/na.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fanjiayi"
+ ]
+ },
+ "categorytree-num-pages": "$1 P"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/nah.json b/www/wiki/extensions/CategoryTree/i18n/nah.json
new file mode 100644
index 00000000..bcd475e3
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/nah.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fluence",
+ "Teòtlalili",
+ "Taresi",
+ "Akapochtli"
+ ]
+ },
+ "categorytree": "Neneuhcayocuammayotl",
+ "categorytree-portlet": "Neneuhcayomeh",
+ "categorytree-legend": "Monexti in Neneuhcayocuammayotl",
+ "categorytree-desc": "Iciuhca mopanoltiz ipan in [[Special:CategoryTree|Neneuhcayocuammayotl]]",
+ "categorytree-header": "Xikîkuilo sè tlaìxmatkàtlàlilòtòkâtli, ìka tikỉtílìs in ìtlamàmàyòtekpànalpialòl.\nXikmauhtie, molwi yankuik JavaScript tekitìliskàyòtl tètech moneki, ìxmatkàyö kèn AJAX.\nIntlà molwi yi wêkàuhkáyòtl in monetzànìltzòwîkàuh, nòso tiksewîtok in JavaScript, awel tlen monèxtis.",
+ "categorytree-category": "Neneuhcayotl:",
+ "categorytree-go": "Monextiz cuammayotl",
+ "categorytree-parents": "Achcauhcaneneuhcayotl",
+ "categorytree-mode-categories": "Zan neneuhcayomeh monextizqueh",
+ "categorytree-mode-pages": "zan tlahcuilolamameh ahmo ixiptin",
+ "categorytree-mode-all": "Nochtin in tlahcuilolamameh",
+ "categorytree-collapse": "motepitonoz",
+ "categorytree-expand": "mohueyiyaliz",
+ "categorytree-member-counts": "quipiya {{PLURAL:$1|ce tlani-neneuhcayotl|$1 tlani-neneuhcayomeh}}, {{PLURAL:$2|tlahcuilolamatl|$2 tlahcuilolamameh}}, ihuan {{PLURAL:$3|ce tlapiyaliztecpanaliztli|$3 tlapiyaliztecpanaliztin}}",
+ "categorytree-num-files": "$1 Ihcu",
+ "categorytree-load": "motemohuiz",
+ "categorytree-loading": "hualtemohticah...",
+ "categorytree-nothing-found": "ahmo tlen omahcic",
+ "categorytree-no-subcategories": "ahmo quipiya tlani-neneuhcayomeh",
+ "categorytree-no-parent-categories": "ahtle oncah achcauhcaneneuhcayomeh",
+ "categorytree-no-pages": "ahtle oncateh tlahcuilolamameh nozo tlani-neneuhcayomeh",
+ "categorytree-not-found": "Neneuhcayotl <i>$1</i> ahmo omahxilih",
+ "categorytree-error": "Ahhuel temo in tlamatilicehualli",
+ "categorytree-retry": "Timitztlatlauhtiah, ximochiya chihton niman occepa xicyehyeco."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/nan.json b/www/wiki/extensions/CategoryTree/i18n/nan.json
new file mode 100644
index 00000000..de98d166
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/nan.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ianbu",
+ "唐吉訶德的侍從",
+ "Luuva"
+ ]
+ },
+ "categorytree-category": "Lūi-pia̍t:",
+ "categorytree-expand": "Khui",
+ "categorytree-member-counts": "包括{{PLURAL:$1|个下分類}}、{{PLURAL:$2|个頁}}佮 {{PLURAL:$3|个檔案}}",
+ "categorytree-num-categories": "$1 分類",
+ "categorytree-num-pages": "$1 ia̍h",
+ "categorytree-num-files": "$1檔",
+ "categorytree-loading": "teh ji̍p",
+ "categorytree-no-subcategories": "bô ē-lūi-pia̍t"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/nap.json b/www/wiki/extensions/CategoryTree/i18n/nap.json
new file mode 100644
index 00000000..470cf897
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/nap.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chelin",
+ "C.R."
+ ]
+ },
+ "categorytree": "Arvero d' 'e categurìe",
+ "categorytree-portlet": "Categurìe",
+ "categorytree-legend": "Fà veré ll'arvero d' 'e categurìe",
+ "categorytree-desc": "Navigà dinamicamente dint' 'a [[Special:CategoryTree|struttura d' 'e categurìe]]",
+ "categorytree-header": "Nzertate 'o nomme 'e na categurìa pe' ne vedé 'e cuntenute comme na struttura d'arvero. (Ce vulesse 'o JavaScript)",
+ "categorytree-category": "Categurìa:",
+ "categorytree-go": "Fà vedé ll'arvero",
+ "categorytree-parents": "Categurìe superiore",
+ "categorytree-mode-label": "Modalità:",
+ "categorytree-mode-categories": "mostra solo 'e categurìe",
+ "categorytree-mode-pages": "tutte 'e paggene accettuanno l'immaggene",
+ "categorytree-mode-all": "Tutte 'e paggene",
+ "categorytree-collapse": "annascunne",
+ "categorytree-expand": "fa vede",
+ "categorytree-member-counts": "Cuntene {{PLURAL:$1|1 sottocategurìa|$1 sottocategurìe}}, {{PLURAL:$2|1 paggena|$2 paggene}} e {{PLURAL:$3|1 file|$3 file}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "abbacante",
+ "categorytree-load": "carreca",
+ "categorytree-loading": "Se sta caricanno...",
+ "categorytree-nothing-found": "nisciuno risultato",
+ "categorytree-no-subcategories": "nisciuna sottocategurìa",
+ "categorytree-no-parent-categories": "nisciuna categurìa suppiriore",
+ "categorytree-no-pages": "nisciuna paggena ne sottocategurìa",
+ "categorytree-not-found": "Categurìa ''$1'' nun truvata",
+ "categorytree-error": "Probblema c' 'o caricamento d' 'e date.",
+ "categorytree-retry": "Aspetta nu mumento e prova n'ata vota.",
+ "apihelp-categorytree-description": "Modulo nterno pe' ne ffà n'estensione CategoryTree",
+ "apihelp-categorytree-param-category": "Titolo dint' 'o namespace categurìa, 'o prefisso sarrà gnurato si dato.",
+ "apihelp-categorytree-param-options": "Opziune p' 'o costruttore comm'a n'uggetto JSON.\nL'opziona <var>depth</var> è determinata a <kbd>1</kbd>."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/nb.json b/www/wiki/extensions/CategoryTree/i18n/nb.json
new file mode 100644
index 00000000..e1608534
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/nb.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Audun",
+ "Event",
+ "SuperPotato",
+ "Jon Harald Søby",
+ "Kingu"
+ ]
+ },
+ "categorytree": "Kategoritre",
+ "categorytree-portlet": "Kategorier",
+ "categorytree-legend": "Vis kategoritre",
+ "categorytree-desc": "AJAX-basert verktøy som viser [[Special:CategoryTree|kategoristrukturen]] til en wiki",
+ "categorytree-header": "Skriv inn et kategorinavn for å se dens innhold som en trestruktur. (Krever JavaScript.)",
+ "categorytree-category": "Kategori:",
+ "categorytree-go": "Vis tre",
+ "categorytree-parents": "Overkategorier",
+ "categorytree-mode-label": "Modus:",
+ "categorytree-mode-categories": "kun kategorier",
+ "categorytree-mode-pages": "sider utenom bilder",
+ "categorytree-mode-all": "alle sider",
+ "categorytree-collapse": "skjul",
+ "categorytree-expand": "utvid",
+ "categorytree-member-counts": "Inneholder {{PLURAL:$1|én underkategori|$1 underkategorier}}, {{PLURAL:$2|én side|$2 sider}} og {{PLURAL:$3|én fil|$3 filer}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "tom",
+ "categorytree-load": "last",
+ "categorytree-loading": "laster...",
+ "categorytree-nothing-found": "ingenting funnet",
+ "categorytree-no-subcategories": "ingen underkategorier",
+ "categorytree-no-parent-categories": "ingen foreldrekategorier",
+ "categorytree-no-pages": "ingen sider eller underkategorier",
+ "categorytree-not-found": "Kategorien <i>$1</i> ikke funnet",
+ "categorytree-error": "problem under datalasting.",
+ "categorytree-retry": "Vent en stund og prøv igjen.",
+ "apihelp-categorytree-description": "Intern modul for CategoryTree-utvidelsen.",
+ "apihelp-categorytree-summary": "Intern modul for CategoryTree-utvidelsen.",
+ "apihelp-categorytree-param-category": "Tittel i kategorinavnerommet, prefiks vil ignoreres om det oppgis.",
+ "apihelp-categorytree-param-options": "Valg for CategoryTree-konstruktøren som et JSON-objekt. Valget <var>depth</var> sin standardverdi er <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Valg må være et gyldig JSON-objekt."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/nds-nl.json b/www/wiki/extensions/CategoryTree/i18n/nds-nl.json
new file mode 100644
index 00000000..bb10689b
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/nds-nl.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Servien"
+ ]
+ },
+ "categorytree": "Kategorieboom",
+ "categorytree-portlet": "Kategorieën",
+ "categorytree-legend": "Laot kategorieboom zien",
+ "categorytree-desc": "Dynamiese navigasie veur de [[Special:CategoryTree|kategoriestruktuur]]",
+ "categorytree-header": "Voer n kategorienaam in um de inhoud in boomstruktuur te bekieken.\nNB: veur disse funksie he'j de JavaScript-funksionaliteit AJAX neudig. A'j n hele ouwe webkieker hebben, of je JavaScript uuteschakeld hebben, dan zal disse funksie niet warken.",
+ "categorytree-category": "Kategorie:",
+ "categorytree-go": "Laojen",
+ "categorytree-parents": "Ouwerkategorieën",
+ "categorytree-mode-label": "Modus:",
+ "categorytree-mode-categories": "allinnig kategorieën",
+ "categorytree-mode-pages": "ziejen, gien aofbeeldingen",
+ "categorytree-mode-all": "alle ziejen",
+ "categorytree-collapse": "samenvouwen",
+ "categorytree-expand": "uutklappen",
+ "categorytree-member-counts": "bevat {{PLURAL:$1|één onderkategorie|$1 onderkategorieën}}, {{PLURAL:$2|één zied|$2 ziejen}} en {{PLURAL:$3|één bestaand|$3 bestaanden}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 B",
+ "categorytree-num-empty": "leeg",
+ "categorytree-load": "laojen",
+ "categorytree-loading": "bezig mit laojen...",
+ "categorytree-nothing-found": "niks evunnen",
+ "categorytree-no-subcategories": "gien subkategorieën",
+ "categorytree-no-parent-categories": "gien ouwerkategorieën",
+ "categorytree-no-pages": "gien ziejen of subkategorieën",
+ "categorytree-not-found": "Kategorie <i>$1</i> niet evunnen",
+ "categorytree-error": "Probleem bie t laojen van de gegevens.",
+ "categorytree-retry": "Wacht even en probeer t opniej"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/nds.json b/www/wiki/extensions/CategoryTree/i18n/nds.json
new file mode 100644
index 00000000..c7335875
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/nds.json
@@ -0,0 +1,30 @@
+{
+ "@metadata": {
+ "authors": [
+ "Slomox"
+ ]
+ },
+ "categorytree": "Kategorie-Boom",
+ "categorytree-portlet": "Kategorien",
+ "categorytree-legend": "Kategorieboom wiesen",
+ "categorytree-desc": "Dynaamsche Navigatschoon för de [[Special:CategoryTree|Kategorien-Struktur]]",
+ "categorytree-header": "Kategorienaam ingeven, den Inholt as Boomstruktur to sehn. Schasst di bewusst wesen, dat Javascript un de AJAX-Funkschoon dor för bruukt warrt. Wenn dien Nettkieker to oolt is oder du keen Javascript hest, denn warrt dat nix.",
+ "categorytree-category": "Kategorie:",
+ "categorytree-go": "Boom wiesen",
+ "categorytree-parents": "Öllernkategorien",
+ "categorytree-mode-categories": "blot Kategorien",
+ "categorytree-mode-pages": "Sieden, ahn Biller",
+ "categorytree-mode-all": "all Sieden",
+ "categorytree-collapse": "nich ganz wiesen",
+ "categorytree-expand": "ganz wiesen",
+ "categorytree-member-counts": "bargt {{PLURAL:$1|ene Ünnerkategorie|$1 Ünnerkategorien}}, {{PLURAL:$2|ene Sied|$2 Sieden}} un {{PLURAL:$3|ene Datei|$3 Datein}}",
+ "categorytree-load": "laden",
+ "categorytree-loading": "läädt",
+ "categorytree-nothing-found": "nix funnen",
+ "categorytree-no-subcategories": "kene Ünnerkategorien",
+ "categorytree-no-parent-categories": "Kene Öllernkategorien",
+ "categorytree-no-pages": "kene Sieden oder Ünnerkategorien",
+ "categorytree-not-found": "Kategorie <i>$1</i> nich funnen",
+ "categorytree-error": "Problem bi’t Laden vun de Daten",
+ "categorytree-retry": "Tööv en beten un denn versöök dat noch wedder."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ne.json b/www/wiki/extensions/CategoryTree/i18n/ne.json
new file mode 100644
index 00000000..3a4fd9db
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ne.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bhawani Gautam",
+ "Bhawani Gautam Rhk",
+ "Krish Dulal",
+ "NehalDaveND"
+ ]
+ },
+ "categorytree": "श्रेणी वृक्ष",
+ "categorytree-portlet": "श्रेणीहरू",
+ "categorytree-legend": "श्रेणी वृक्ष हेर्ने",
+ "categorytree-desc": "[[Special:CategoryTree|श्रेणी संरचना]]को गतिशील अन्वेषण गर्ने",
+ "categorytree-category": "श्रेणी:",
+ "categorytree-go": "वृक्ष हेर्ने",
+ "categorytree-parents": "जनक",
+ "categorytree-mode-label": "मोड",
+ "categorytree-mode-categories": "श्रेणी मात्र",
+ "categorytree-mode-pages": "फाइलहरू बाहेकका पृष्ठहरू",
+ "categorytree-mode-all": "सबै पृष्ठहरू",
+ "categorytree-collapse": "खुम्च्याउनु",
+ "categorytree-expand": "फैलाउनु",
+ "categorytree-member-counts": "मा {{PLURAL:$1|1 श्रेणी छ|$1 श्रेणीहरू छन्}}, {{PLURAL:$2|1 पृष्ठ छ|$2 पृष्ठहरू छन्}}, तथा {{PLURAL:$3|1 फाइल छ|$3 फाइलहरू छन्}}",
+ "categorytree-num-categories": "$1 C (श्रे)",
+ "categorytree-num-pages": "$1 P (पृ)",
+ "categorytree-num-files": "$1 F (फा)",
+ "categorytree-num-empty": "रित्तो",
+ "categorytree-load": "चढाउने",
+ "categorytree-loading": "खोलिंदै…",
+ "categorytree-nothing-found": "केहीपनि फेला परेन",
+ "categorytree-no-subcategories": "उपश्रेणीहरू छैनन्",
+ "categorytree-no-parent-categories": "अभिभावक श्रेणीहरू नभएको",
+ "categorytree-no-pages": "पृष्ठहरू वा उपश्रेणीहरू छैनन्",
+ "categorytree-not-found": "श्रेणी <i>$1</i> फेला परेन",
+ "categorytree-error": "आँकडा (data) चढाउनमा समस्या",
+ "categorytree-retry": "कृपया केही क्षण पर्खेर त्यसपछि पुनः प्रयास गर्नुहोस्"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/niu.json b/www/wiki/extensions/CategoryTree/i18n/niu.json
new file mode 100644
index 00000000..a278c4a5
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/niu.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fanjiayi"
+ ]
+ },
+ "categorytree-num-pages": "$1 P"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/nl-informal.json b/www/wiki/extensions/CategoryTree/i18n/nl-informal.json
new file mode 100644
index 00000000..ffd154de
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/nl-informal.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Siebrand"
+ ]
+ },
+ "categorytree-header": "Geef een categorienaam in om de inhoud als een boomstructuur te bekijken.\nLet op: deze functie gebruikt JavaScript-functionaliteit die bekend staat als AJAX.\nAls je een verouderde browser hebt of JavaScript uitgeschakeld is, dan werkt deze functie niet."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/nl.json b/www/wiki/extensions/CategoryTree/i18n/nl.json
new file mode 100644
index 00000000..54d19c1a
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/nl.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kippenvlees1",
+ "SPQRobin",
+ "Siebrand",
+ "Mainframe98",
+ "Huhbakker"
+ ]
+ },
+ "categorytree": "Categorieboom",
+ "categorytree-portlet": "Categorieën",
+ "categorytree-legend": "Categorieboom weergeven",
+ "categorytree-desc": "AJAX-gebaseerde uitbreiding om de [[Special:CategoryTree|categoriestructuur]] van een wiki te bekijken",
+ "categorytree-header": "Geef een categorienaam in om de inhoud als een boomstructuur te bekijken. (Vereist JavaScript.)",
+ "categorytree-category": "Categorie:",
+ "categorytree-go": "Structuur weergeven",
+ "categorytree-parents": "Bovenliggende categorieën",
+ "categorytree-mode-label": "Modus:",
+ "categorytree-mode-categories": "alleen categorieën",
+ "categorytree-mode-pages": "geen afbeeldingen",
+ "categorytree-mode-all": "alle pagina's",
+ "categorytree-collapse": "samenvouwen",
+ "categorytree-expand": "uitvouwen",
+ "categorytree-member-counts": "bevat {{PLURAL:$1|één ondercategorie|$1 ondercategorieën}}, {{PLURAL:$2|één pagina|$2 pagina's}} en {{PLURAL:$3|één bestand|$3 bestanden}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 B",
+ "categorytree-num-empty": "leeg",
+ "categorytree-load": "laden",
+ "categorytree-loading": "aan het laden…",
+ "categorytree-nothing-found": "niets gevonden",
+ "categorytree-no-subcategories": "Geen ondercategorieën.",
+ "categorytree-no-parent-categories": "geen bovencategorieën",
+ "categorytree-no-pages": "Geen pagina's of ondercategorieën.",
+ "categorytree-not-found": "Categorie <i>$1</i> is niet gevonden",
+ "categorytree-error": "Probleem bij het laden van de gegevens.",
+ "categorytree-retry": "Wacht even en probeer het dan opnieuw.",
+ "apihelp-categorytree-description": "Interne module voor de uitbreiding CategoryTree.",
+ "apihelp-categorytree-summary": "Interne module voor de uitbreiding CategoryTree.",
+ "apihelp-categorytree-param-category": "Naam in te categorienaamruimte, voorvoegsel wordt genegeerd als opgegeven.",
+ "apihelp-categorytree-param-options": "Opties voor de constructor van CategoryTree als een JSON-object. De optie \"depth\" is standaard ingesteld op <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Opties moeten een geldig JSON-object zijn."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/nn.json b/www/wiki/extensions/CategoryTree/i18n/nn.json
new file mode 100644
index 00000000..8493aa8b
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/nn.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Eirik",
+ "Harald Khan",
+ "Njardarlogar"
+ ]
+ },
+ "categorytree": "Kategoritre",
+ "categorytree-portlet": "Kategoriar",
+ "categorytree-legend": "Vis kategoritre",
+ "categorytree-desc": "AJAX-basert verktøy som viser [[Special:CategoryTree|kategoristrukturen]] til ein wiki",
+ "categorytree-header": "Skriv inn eit kategorinamn for å sjå innhaldet som ein trestruktur. Merk at denne funksjonen nyttar avansert [[JavaScript]]-funksjonalitet ([[AJAX]]). Dersom du brukar ein veldig gammal nettlesar, eller har slått av JavaScript-støtte, vil dette ikkje fungere.",
+ "categorytree-category": "Kategori:",
+ "categorytree-go": "Vis kategoritre",
+ "categorytree-parents": "Overkategoriar",
+ "categorytree-mode-label": "Modus:",
+ "categorytree-mode-categories": "berre kategoriane",
+ "categorytree-mode-pages": "sider med unntak av filer",
+ "categorytree-mode-all": "alle sidene",
+ "categorytree-collapse": "gøym",
+ "categorytree-expand": "vis",
+ "categorytree-member-counts": "inneheld {{PLURAL:$1|éin underkategori|$1 underkategoriar}}, {{PLURAL:$2|éi sida|$2 sider}} og {{PLURAL:$3|éi fil|$3 filer}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "tom",
+ "categorytree-load": "last inn",
+ "categorytree-loading": "lastar inn",
+ "categorytree-nothing-found": "fann ikkje noko",
+ "categorytree-no-subcategories": "ingen underkategoriar",
+ "categorytree-no-parent-categories": "ingen foreldrekategoriar",
+ "categorytree-no-pages": "ingen sider eller underkategoriar",
+ "categorytree-not-found": "Fann ikkje kategorien <i>$1</i>",
+ "categorytree-error": "Problem med innlasting av data.",
+ "categorytree-retry": "Ver venleg og vent litt før du prøver ein gong til."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/nso.json b/www/wiki/extensions/CategoryTree/i18n/nso.json
new file mode 100644
index 00000000..fcaa1564
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/nso.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mohau"
+ ]
+ },
+ "categorytree-category": "Sehlopha:",
+ "categorytree-go": "Bontsha Sehlare",
+ "categorytree-parents": "Batswadi",
+ "categorytree-mode-all": "matlakala kamoka",
+ "categorytree-collapse": "tswalela",
+ "categorytree-expand": "bula",
+ "categorytree-no-pages": "gago matlakala goba dihlophana",
+ "categorytree-not-found": "Sehlopha <i>$1</i> ga se humanege"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/nys.json b/www/wiki/extensions/CategoryTree/i18n/nys.json
new file mode 100644
index 00000000..f6769f2a
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/nys.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gnangarra"
+ ]
+ },
+ "categorytree-expand": "koombarabiny",
+ "categorytree-member-counts": "Won-garn {{PLURAL:$1|warrangang}}, {{PLURAL:$2|bibol}}, wer {{PLURAL:$3|1 file|$3 files}}",
+ "categorytree-num-categories": "$1 W",
+ "categorytree-num-pages": "$1 B",
+ "categorytree-num-files": "$1 F"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/oc.json b/www/wiki/extensions/CategoryTree/i18n/oc.json
new file mode 100644
index 00000000..66ac1726
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/oc.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cedric31"
+ ]
+ },
+ "categorytree": "Arborescéncia de las categorias",
+ "categorytree-portlet": "Categorias",
+ "categorytree-legend": "Visionar l’arborescéncia de la categoria",
+ "categorytree-desc": "Gadget basat sus AJAX per afichar l'[[Special:CategoryTree|estructura de la categoria]] d’un wiki",
+ "categorytree-header": "Entratz un nom de categoria per veire son contengut en estructura arborescenta (necessita JavaScript).",
+ "categorytree-category": "Categoria :",
+ "categorytree-go": "Mostrar l'arborescéncia",
+ "categorytree-parents": "Subrecategoria(s)",
+ "categorytree-mode-label": "Mòde:",
+ "categorytree-mode-categories": "pas que las categorias",
+ "categorytree-mode-pages": "paginas sens los imatges",
+ "categorytree-mode-all": "totas las paginas",
+ "categorytree-collapse": "Rebatre",
+ "categorytree-expand": "desvolopar",
+ "categorytree-member-counts": "conten {{PLURAL:$1|1 soscategoria|$1 soscategorias}}, {{PLURAL:$2|1 pagina|$2 paginas}}, e {{PLURAL:$3|1 fichièr|$3 fichièrs}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "void",
+ "categorytree-load": "Dobrir",
+ "categorytree-loading": "dobertura...",
+ "categorytree-nothing-found": "pas res de trobat",
+ "categorytree-no-subcategories": "pas cap de soscategoria",
+ "categorytree-no-parent-categories": "Cap de categoria parenta",
+ "categorytree-no-pages": "Pas de pagina o de soscategoria",
+ "categorytree-not-found": "La categoria <i>$1</i> es pas estada trobada.",
+ "categorytree-error": "Problèma de cargament de las donadas.",
+ "categorytree-retry": "Esperatz un moment puèi tornatz ensajar."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/olo.json b/www/wiki/extensions/CategoryTree/i18n/olo.json
new file mode 100644
index 00000000..2cf58692
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/olo.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Denö",
+ "Ilja.mos",
+ "Mashoi7"
+ ]
+ },
+ "categorytree": "Kategouriipuu",
+ "categorytree-portlet": "Kategouriet",
+ "categorytree-legend": "Ozuta kategouriipuu",
+ "categorytree-category": "Kategourii:",
+ "categorytree-go": "Ozuta puu",
+ "categorytree-parents": "Yläkategouriet",
+ "categorytree-mode-all": "kai sivut",
+ "categorytree-expand": "avua",
+ "categorytree-member-counts": "Täh kuuluu {{PLURAL:$1|1 alakategourii|$1 alakategouriedu}}, {{PLURAL:$2|1 sivu|$2 sivuu}}, and {{PLURAL:$3|1 failu|$3 failua}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "tyhjy",
+ "categorytree-nothing-found": "ei löydynyh nimidä",
+ "categorytree-no-subcategories": "ei alikategourieloi",
+ "categorytree-no-parent-categories": "ei yläkategourieloi",
+ "categorytree-no-pages": "ei sivuloi libo alikategourieloi",
+ "categorytree-not-found": "Kategouriedu <i>$1</i> ei löydynyh",
+ "categorytree-retry": "Ole hyvä, vuota kodvaine da opi vie kerdu"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/or.json b/www/wiki/extensions/CategoryTree/i18n/or.json
new file mode 100644
index 00000000..f44ad2e2
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/or.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jnanaranjan Sahu",
+ "Odisha1",
+ "Psubhashish"
+ ]
+ },
+ "categorytree": "ଶ୍ରେଣୀବିଭାଗ",
+ "categorytree-portlet": "ଶ୍ରେଣୀସମୂହ",
+ "categorytree-legend": "ଶ୍ରେଣୀବିଭାଗ",
+ "categorytree-desc": "[[Special:CategoryTree|ଶ୍ରେଣୀବିଭାଗ]]କୁ ଚାଲିଯିବା",
+ "categorytree-header": "ଶ୍ରେଣିସବୁର ଗଛ ପରି ସଜାଣି ଦେଖିବା ନିମନ୍ତେ ତାହାର ନାମ ଦିଅନ୍ତୁ ।\nମନେରକନ୍ତୁ, ଏହା ପାଇଁ ଜାଭାସ୍କ୍ରିପ୍ଟ ଲୋଡ଼ା ଯାହା AJAX ନାମରେ ମଧ୍ୟ ଜଣା ।\nଯଦି ଆପଣଙ୍କ ପାଖରେ ପୁରୁଣା ବ୍ରାଉଜରଟିଏ ଅଛି ବା ଜାଭାସ୍କ୍ରିପ୍ଟ ଅଚଳ ଅଛି, ତେବେ ଏହା କାମ କରିବ ନାହିଁ ।",
+ "categorytree-category": "ଶ୍ରେଣୀ:",
+ "categorytree-go": "ଶ୍ରେଣୀବିଭାଗଗୁଡ଼ିକ ଦେଖାଇବା",
+ "categorytree-parents": "ମୂଳ",
+ "categorytree-mode-label": "ମୋଡ:",
+ "categorytree-mode-categories": "କେବଳ ଶ୍ରେଣୀସମୂହ",
+ "categorytree-mode-pages": "ଫାଇଲ ନଥିବା ପୃଷ୍ଠାସବୁ",
+ "categorytree-mode-all": "ସବୁ ପୃଷ୍ଠା",
+ "categorytree-collapse": "ଲୁଚାଇବେ",
+ "categorytree-expand": "ପୂରା ଦେଖାଇବେ",
+ "categorytree-member-counts": "ଏହା ଭିତରେ {{PLURAL:$1|1ଟି ଶ୍ରେଣୀ|$1 ଟି ସାନଶ୍ରେଣୀ}}, {{PLURAL:$2|1 ପୃଷ୍ଠା|$2 ଟି ପୃଷ୍ଠା}} ଓ {{PLURAL:$3|1 ଟି ଫାଇଲ|$3 ଟି ଫାଇଲ}} ଅଛି ।",
+ "categorytree-num-categories": "$1 ଶ୍ରେଣୀ",
+ "categorytree-num-pages": "$1 ପୃଷ୍ଠା",
+ "categorytree-num-files": "$1 ଫାଇଲ",
+ "categorytree-num-empty": "ଖାଲି",
+ "categorytree-load": "ଖୋଲିବେ",
+ "categorytree-loading": "ଖୋଲୁଛି...",
+ "categorytree-nothing-found": "କିଛି ମିଳିଲା ନାହିଁ",
+ "categorytree-no-subcategories": "ସାନଶ୍ରେଣୀ ନାହିଁ",
+ "categorytree-no-parent-categories": "କିଛି ମୂଳ ଶ୍ରେଣୀ ନାହିଁ",
+ "categorytree-no-pages": "କିଛି ପୃଷ୍ଠା ବା ସାନଶ୍ରେଣୀ ନାହିଁ",
+ "categorytree-not-found": "<i>$1</i> ଶ୍ରେଣୀଟି ମିଳିଲା ନାହିଁ",
+ "categorytree-error": "ଡାଟା ଖୋଲିବା ପାଇଁ ଅସୁବିଧା ହେଉଛି",
+ "categorytree-retry": "ଦୟାକରି କିଛି ସମୟ ପରେ ଚେଷ୍ଟା କରନ୍ତୁ ।"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/os.json b/www/wiki/extensions/CategoryTree/i18n/os.json
new file mode 100644
index 00000000..6e3eb84f
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/os.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amikeco",
+ "Amire80",
+ "Bouron"
+ ]
+ },
+ "categorytree": "Категориты бæлас",
+ "categorytree-portlet": "Категоритæ",
+ "categorytree-category": "Категори:",
+ "categorytree-go": "Равдис бæлас",
+ "categorytree-mode-categories": "æрмæст категоритæ",
+ "categorytree-mode-pages": "фæрстæ, æнæ файлтæ",
+ "categorytree-mode-all": "æппæт фæрстæ",
+ "categorytree-expand": "райтынг кæнын",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 Ф",
+ "categorytree-num-files": "$1 ф",
+ "categorytree-num-empty": "афтид",
+ "categorytree-load": "сæвгæнын",
+ "categorytree-loading": "æвгæд цæуы...",
+ "categorytree-nothing-found": "Ацы категорийы мидæг дæлкатегоритæ нæ разынд",
+ "categorytree-no-subcategories": "дæлкатегоритæ нæй",
+ "categorytree-no-parent-categories": "хистæр категори нæй",
+ "categorytree-no-pages": "фæрстæ æмæ дæлкатегоритæ нæй",
+ "categorytree-not-found": "Категори «$1» не ссардæуы."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/pa.json b/www/wiki/extensions/CategoryTree/i18n/pa.json
new file mode 100644
index 00000000..4eccf560
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/pa.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aalam",
+ "Babanwalia",
+ "Gman124",
+ "Raj Singh",
+ "TariButtar",
+ "Satdeep gill"
+ ]
+ },
+ "categorytree": "ਸ਼੍ਰੇਣੀ ਰੁੱਖ",
+ "categorytree-portlet": "ਸ਼੍ਰੇਣੀਆਂ",
+ "categorytree-legend": "ਸ਼੍ਰੇਣੀ ਰੁੱਖ ਵਿਖਾਓ",
+ "categorytree-category": "ਸ਼੍ਰੇਣੀ:",
+ "categorytree-go": "ਰੁੱਖ ਵੇਖੋ",
+ "categorytree-parents": "ਮੁਢਲੀਆਂ ਸ਼੍ਰੇਣੀਆਂ",
+ "categorytree-mode-label": "ਰੂਪ:",
+ "categorytree-mode-categories": "ਸਿਰਫ਼ ਸ਼੍ਰੇਣੀਆਂ",
+ "categorytree-mode-pages": "ਫ਼ਾਈਲਾਂ ਤੋਂ ਛੁੱਟ ਸਫ਼ੇ",
+ "categorytree-mode-all": "ਸਭ ਸਫ਼ੇ",
+ "categorytree-collapse": "ਸਮੇਟੋ",
+ "categorytree-expand": "ਫੈਲਾਓ",
+ "categorytree-member-counts": "{{PLURAL:$1|1 ਉੱਪਸ਼੍ਰੇਣੀ|$1 ਉੱਪਸ਼੍ਰੇਣੀਆਂ}}, {{PLURAL:$2|1 ਸਫ਼ਾ|$2 ਸਫ਼ੇ}}, ਅਤੇ {{PLURAL:$3|1 ਫ਼ਾਈਲ|$3 ਫ਼ਾਈਲਾਂ}} ਮੌਜੂਦ",
+ "categorytree-num-categories": "$1 ਸ਼",
+ "categorytree-num-pages": "$1 ਸ",
+ "categorytree-num-files": "$1 ਫ਼",
+ "categorytree-num-empty": "ਖ਼ਾਲੀ",
+ "categorytree-load": "ਲੋਡ ਕਰੋ",
+ "categorytree-loading": "ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...",
+ "categorytree-nothing-found": "ਕੁਝ ਨਹੀਂ ਲੱਭਾ",
+ "categorytree-no-subcategories": "ਕੋਈ ਉਪ-ਸ਼੍ਰੇਣੀਆਂ ਨਹੀਂ",
+ "categorytree-no-parent-categories": "ਕੋਈ ਮੁਢਲੀ ਸ਼੍ਰੇਣੀਆਂ ਨਹੀਂ",
+ "categorytree-no-pages": "ਕੋਈ ਸਫ਼ੇ ਜਾਂ ਉਪ-ਸ਼੍ਰੇਣੀਆਂ ਨਹੀਂ",
+ "categorytree-not-found": "ਸ਼੍ਰੇਣੀ <i>$1</i> ਨਹੀਂ ਲੱਭੀ",
+ "categorytree-error": "ਸਮੱਗਰੀ ਲੋਡ ਕਰਨ ਮੌਕੇ ਔਕੜ।",
+ "categorytree-retry": "ਕੁਝ ਪਲ ਉਡੀਕੋ ਅਤੇ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/pag.json b/www/wiki/extensions/CategoryTree/i18n/pag.json
new file mode 100644
index 00000000..c53562ff
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/pag.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": [],
+ "categorytree-mode-pages": "Saray bolobolong ya aga kaibay picture",
+ "categorytree-mode-all": "Amin ya bolobolong",
+ "categorytree-collapse": "isara",
+ "categorytree-expand": "lukasan",
+ "categorytree-load": "I-lugan",
+ "categorytree-nothing-found": "anggapoy naanap",
+ "categorytree-no-pages": "Anggapoy bolong odino subcategory"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/pam.json b/www/wiki/extensions/CategoryTree/i18n/pam.json
new file mode 100644
index 00000000..c723afa9
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/pam.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Val2397"
+ ]
+ },
+ "categorytree-mode-pages": "↓bulung liban kareng simpan",
+ "categorytree-mode-all": "Eganaganang bulung",
+ "categorytree-collapse": "ilati",
+ "categorytree-expand": "paragulan",
+ "categorytree-load": "lulan",
+ "categorytree-loading": "Lululan",
+ "categorytree-nothing-found": "alang meyakit"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/pcd.json b/www/wiki/extensions/CategoryTree/i18n/pcd.json
new file mode 100644
index 00000000..83367c93
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/pcd.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Geoleplubo"
+ ]
+ },
+ "categorytree": "Grafe des catégories"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/pdc.json b/www/wiki/extensions/CategoryTree/i18n/pdc.json
new file mode 100644
index 00000000..a2c37dd2
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/pdc.json
@@ -0,0 +1,30 @@
+{
+ "@metadata": {
+ "authors": [
+ "Xqt"
+ ]
+ },
+ "categorytree": "Baam vun Abdeelinge",
+ "categorytree-portlet": "Abdeelinge",
+ "categorytree-legend": "Baam vun de Abdeeling zeige",
+ "categorytree-category": "Abdeeling:",
+ "categorytree-go": "Baam zeige",
+ "categorytree-parents": "Eldere",
+ "categorytree-mode-categories": "nur Abdeelinge",
+ "categorytree-mode-pages": "Bledder ohne Feils",
+ "categorytree-mode-all": "alle Bledder",
+ "categorytree-collapse": "zuklappe",
+ "categorytree-expand": "uffklappe",
+ "categorytree-member-counts": "hot {{PLURAL:$1|1 Unnerabdeeling|$1 Unnerabdeelinge}}, {{PLURAL:$2|1 Blatt|$2 Bledder}} unn {{PLURAL:$3|1 Feil|$3 Feils}}",
+ "categorytree-num-categories": "$1 A",
+ "categorytree-num-pages": "$1 B",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "leer",
+ "categorytree-load": "laade",
+ "categorytree-loading": "laade…",
+ "categorytree-nothing-found": "nix gfunne",
+ "categorytree-no-subcategories": "Ken Unnerabdeeling",
+ "categorytree-no-parent-categories": "Ken Owwerabdeeling",
+ "categorytree-no-pages": "Ken Bledder odder Unnerabdeelinge",
+ "categorytree-not-found": "Abdeeling „$1“ naett gfunne"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/pfl.json b/www/wiki/extensions/CategoryTree/i18n/pfl.json
new file mode 100644
index 00000000..9886cc99
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/pfl.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Manuae",
+ "Xqt"
+ ]
+ },
+ "categorytree": "Kadegorijeboom",
+ "categorytree-portlet": "Kadegorije",
+ "categorytree-legend": "Kadegorijeboom zaische",
+ "categorytree-category": "Kadegorie:",
+ "categorytree-go": "Lade",
+ "categorytree-parents": "Owakadegorije",
+ "categorytree-mode-all": "alle Saide",
+ "categorytree-collapse": "zuglabbe",
+ "categorytree-expand": "uffglabbe",
+ "categorytree-member-counts": "Hodd {{PLURAL:$1|1 Sachgrubb|$1 Sachgrubbe}}, {{PLURAL:$2|1 Said|$2 Saide}} unn {{PLURAL:$3|1 Dadai|$3 Dadaije}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 K",
+ "categorytree-nothing-found": "nix gfunne",
+ "categorytree-no-subcategories": "Kä Unakadegorije",
+ "categorytree-no-parent-categories": "Kä Owakadegorije",
+ "categorytree-no-pages": "Kä Saide oda Unakadegorije",
+ "categorytree-not-found": "Kadegorie „$1“ hods ned",
+ "categorytree-error": "Daade kennen ned gelade were.",
+ "categorytree-retry": "Waad ä bissl un brobias nomol"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/pih.json b/www/wiki/extensions/CategoryTree/i18n/pih.json
new file mode 100644
index 00000000..a123a696
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/pih.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fanjiayi"
+ ]
+ },
+ "categorytree-member-counts": "Contains {{PLURAL:$1|1 subcategory|$1 subcategories}}, {{PLURAL:$2|1 paij|$2 paijs}}, and {{PLURAL:$3|1 file|$3 files}}",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/pl.json b/www/wiki/extensions/CategoryTree/i18n/pl.json
new file mode 100644
index 00000000..4242dc37
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/pl.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Airwolf",
+ "Derbeth",
+ "Matma Rex",
+ "Sp5uhe",
+ "Chrumps",
+ "Woytecr"
+ ]
+ },
+ "categorytree": "Drzewo kategorii",
+ "categorytree-portlet": "Kategorie",
+ "categorytree-legend": "Pokaż drzewo kategorii",
+ "categorytree-desc": "Gadżet oparty na technologii AJAX, wyświetlający [[Special:CategoryTree|drzewo kategorii]]",
+ "categorytree-header": "Wpisz nazwę kategorii, by zobaczyć jej zawartość w postaci drzewa (wymagany JavaScript).",
+ "categorytree-category": "Kategoria",
+ "categorytree-go": "Ładuj kategorię",
+ "categorytree-parents": "Kategorie główne",
+ "categorytree-mode-label": "Tryb:",
+ "categorytree-mode-categories": "tylko kategorie",
+ "categorytree-mode-pages": "strony oprócz plików",
+ "categorytree-mode-all": "wszystkie strony",
+ "categorytree-collapse": "zwiń",
+ "categorytree-expand": "rozwiń",
+ "categorytree-member-counts": "Zawiera {{PLURAL:$1|1 podkategorię|$1 podkategorie|$1 podkategorii}}, {{PLURAL:$2|1 stronę|$2 strony|$2 stron}} i {{PLURAL:$3|1 plik|$3 pliki|$3 plików}}",
+ "categorytree-num-categories": "$1 kat.",
+ "categorytree-num-pages": "$1 str.",
+ "categorytree-num-files": "$1 pl.",
+ "categorytree-num-empty": "pusta",
+ "categorytree-load": "wczytaj",
+ "categorytree-loading": "wczytywanie...",
+ "categorytree-nothing-found": "nic nie znaleziono",
+ "categorytree-no-subcategories": "brak podkategorii",
+ "categorytree-no-parent-categories": "brak kategorii nadrzędnej",
+ "categorytree-no-pages": "brak artykułów lub podkategorii.",
+ "categorytree-not-found": "Kategoria <i>$1</i> nie została znaleziona",
+ "categorytree-error": "Problem z ładowaniem danych.",
+ "categorytree-retry": "Poczekaj chwilę i spróbuj ponownie – kliknij ten napis.",
+ "apihelp-categorytree-description": "Wewnętrzny moduł rozszerzenia CategoryTree.",
+ "apihelp-categorytree-param-category": "Tytuł w przestrzeni nazw kategorii, prefiks będzie ignorowany jeżeli podany.",
+ "apihelp-categorytree-param-options": "Opcje dla konstruktora CategoryTree w postaci obiektu JSON. Opcja <var>depth</var> domyślnie wynosi <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Opcje powinny być prawidłowymi obiektami JSON."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/pms.json b/www/wiki/extensions/CategoryTree/i18n/pms.json
new file mode 100644
index 00000000..c5d4b05c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/pms.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bèrto 'd Sèra",
+ "Dragonòt"
+ ]
+ },
+ "categorytree": "Erbo dle categorìe",
+ "categorytree-portlet": "Categorìe",
+ "categorytree-legend": "Mosta l'erbo dle categorìe",
+ "categorytree-desc": "Nàviga dinamicament la [[Special:CategoryTree|strutura dle categorìe]]",
+ "categorytree-header": "Ch'a buta ël nòm ëd na categorìa për ës-ciairene ij contnù e la strutura. Ch'a ten-a present che përchè sòn a travaja a-i va na fonsion Javascript avansà ch'as ciama AJAX. Se un a l'ha un navigator vej ò pura a l'ha nen abilità Javascript sossì a travaja nen.",
+ "categorytree-category": "Categorìa:",
+ "categorytree-go": "Deurbe l'erbo",
+ "categorytree-parents": "Cé",
+ "categorytree-mode-label": "Manera:",
+ "categorytree-mode-categories": "smon mach le categorìe",
+ "categorytree-mode-pages": "mach le pàgine gavà le figure",
+ "categorytree-mode-all": "tute le pàgine",
+ "categorytree-collapse": "sëré",
+ "categorytree-expand": "deurbe",
+ "categorytree-member-counts": "a conten {{PLURAL:$1|1 sotcategorìa|$1 sotcategorìe}}, {{PLURAL:$2|1 pàgina|$2 pàgine}}, e {{PLURAL:$3|1 file|$3 file}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "veuid",
+ "categorytree-load": "carié",
+ "categorytree-loading": "antramentr ch'as carìa",
+ "categorytree-nothing-found": "pa trovà gnente",
+ "categorytree-no-subcategories": "gnun-a sot-categorìa",
+ "categorytree-no-parent-categories": "gnun-e categorìe superior",
+ "categorytree-no-pages": "pa ëd pàgine ò ëd sot-categorìe",
+ "categorytree-not-found": "A l'é pa trovasse la categorìa <i>$1</i>.",
+ "categorytree-error": "Problema ën cariand ij dat",
+ "categorytree-retry": "Për piasì, ch'a speta na minuta e peuj ch'as preuva n'àutra vira."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/pnb.json b/www/wiki/extensions/CategoryTree/i18n/pnb.json
new file mode 100644
index 00000000..50786d91
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/pnb.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Khalid Mahmood",
+ "Abbas dhothar"
+ ]
+ },
+ "categorytree": "گٹھ لین",
+ "categorytree-portlet": "گٹھاں",
+ "categorytree-legend": "گٹھ لین وکھاؤ",
+ "categorytree-desc": "ویکھ کے [[Special:CategoryTree|گٹھاں]] دی کھوج کرو",
+ "categorytree-header": "کسی گٹھ دا ناں لکھو تاکے ایدا مال رکھ ورگی مورت چ ویکھو۔\nNote that this requires advanced JavaScript functionality known as AJAX.\nIf you have a very old browser, or have JavaScript disabled, it will not work.",
+ "categorytree-category": "گٹھ:",
+ "categorytree-go": "لین وکھاؤ",
+ "categorytree-parents": "وڈوڈیرے",
+ "categorytree-mode-categories": "صرف گٹھاں",
+ "categorytree-mode-pages": "فائلاں بنا صفے",
+ "categorytree-mode-all": "سارے صفے",
+ "categorytree-collapse": "مک گیا",
+ "categorytree-expand": "ودھاؤ",
+ "categorytree-expand-bullet": "◄",
+ "categorytree-empty-bullet": "◄",
+ "categorytree-member-counts": "ایدے چ {{PLURAL:$1|1 نکی گٹھ|$1 گٹھاں}}, {{PLURAL:$2|1 صفحہ|$2 صفحے}}, تے {{PLURAL:$3|1 فائل|$3 فائلاں}} ہیگیاں نیں۔",
+ "categorytree-num-categories": "$1 سی",
+ "categorytree-num-pages": "$1 پی",
+ "categorytree-num-files": "$1 ایف",
+ "categorytree-num-empty": "خالی",
+ "categorytree-load": "چڑھاؤ",
+ "categorytree-loading": "چڑھ رہی اے",
+ "categorytree-nothing-found": "کجھ نئیں لبھیا",
+ "categorytree-no-subcategories": "ذیلی گٹھاں نئیں",
+ "categorytree-no-parent-categories": "کوئی مڈلیاں گٹھاں نئیں۔",
+ "categorytree-no-pages": "ناں صفحے یا ذیلی گٹھاں",
+ "categorytree-not-found": "<i>$1</i> گٹھ نئیں لبھی",
+ "categorytree-error": "ڈیٹا چڑھان چ رپھڑ۔",
+ "categorytree-retry": "مہربانی کرکے تھوڑا صبر کرو تے فیر کوشش کرو۔"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/pnt.json b/www/wiki/extensions/CategoryTree/i18n/pnt.json
new file mode 100644
index 00000000..75d97449
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/pnt.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sinopeus"
+ ]
+ },
+ "categorytree-portlet": "Κατηγορίας",
+ "categorytree-category": "Κατηγορία:",
+ "categorytree-mode-all": "ούλ' σελίδας",
+ "categorytree-load": "φόρτωμαν",
+ "categorytree-loading": "φορτών'"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/prs.json b/www/wiki/extensions/CategoryTree/i18n/prs.json
new file mode 100644
index 00000000..4fe6d8f8
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/prs.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mjbmr"
+ ]
+ },
+ "categorytree-expand": "گسترش",
+ "categorytree-member-counts": "شامل {{PLURAL:$1|یک زیر دسته|$1 زیر دسته}}، {{PLURAL:$2|یک صفحه|$2 صفحه}}، و {{PLURAL:$3|یک فایل|$3 فایل}} است",
+ "categorytree-num-categories": "$1 د",
+ "categorytree-num-pages": "$1 ص"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ps.json b/www/wiki/extensions/CategoryTree/i18n/ps.json
new file mode 100644
index 00000000..2accb337
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ps.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ahmed-Najib-Biabani-Ibrahimkhel",
+ "عثمان خان شاہ"
+ ]
+ },
+ "categorytree": "د وېشنيزو ونه",
+ "categorytree-portlet": "وېشنيزې",
+ "categorytree-legend": "د وېشنيزې ونه ښکاره کول",
+ "categorytree-category": ":وېشنيزه",
+ "categorytree-go": "ونه ښکاره کول",
+ "categorytree-mode-categories": "يوازې وېشنيزې",
+ "categorytree-mode-pages": "مخونه پرته د دوتنو نه",
+ "categorytree-mode-all": "ټول مخونه",
+ "categorytree-collapse": "پرځول",
+ "categorytree-expand": "غځول",
+ "categorytree-expand-bullet": "◄",
+ "categorytree-empty-bullet": "◄",
+ "categorytree-member-counts": "{{PLURAL:$1|1 څېرمه وېشنيزه|$1 څېرمه وېشنيزې}}، {{PLURAL:$2|1 مخ|$2 مخونه}} او {{PLURAL:$3|1 دوتنه|$3 دوتنې}} لري",
+ "categorytree-num-categories": "$1 و",
+ "categorytree-num-pages": "$1 م",
+ "categorytree-num-files": "$1 د",
+ "categorytree-num-empty": "تش",
+ "categorytree-load": "برسېرول",
+ "categorytree-loading": "برسېرېدنې کې دی...",
+ "categorytree-nothing-found": "هېڅ هم و نه موندل شو",
+ "categorytree-no-subcategories": "هېڅ وړې-وېشنيزې نشته",
+ "categorytree-no-parent-categories": "مورنۍ وېشنيزې نشته",
+ "categorytree-no-pages": "هېڅ مخ يا وړه-وېشنيزه نشته",
+ "categorytree-not-found": "د <i>$1</i> وېشنيزه و نه موندل شوه",
+ "categorytree-error": "د مالوماتو د برسېرېدلو ستونزه.",
+ "categorytree-retry": "مهرباني وکړی لږ څه تم شی او بيا يې وآزمايۍ"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/pt-br.json b/www/wiki/extensions/CategoryTree/i18n/pt-br.json
new file mode 100644
index 00000000..01edb413
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/pt-br.json
@@ -0,0 +1,48 @@
+{
+ "@metadata": {
+ "authors": [
+ "Carla404",
+ "Dicionarista",
+ "Eduardo.mps",
+ "Rafael Vargas",
+ "555",
+ "Eduardo Addad de Oliveira",
+ "Felipe L. Ewald"
+ ]
+ },
+ "categorytree": "Árvore de categorias",
+ "categorytree-portlet": "Categorias",
+ "categorytree-legend": "Mostrar árvore de categorias",
+ "categorytree-desc": "Navegação dinâmica pela [[Special:CategoryTree|estrutura de categorias]]",
+ "categorytree-header": "Insira o nome de uma categoria para ver os seus conteúdos numa estrutura de árvore. (Requer JavaScript).",
+ "categorytree-category": "Categoria:",
+ "categorytree-go": "Exibir árvore",
+ "categorytree-parents": "Categorias superiores",
+ "categorytree-mode-label": "Modo:",
+ "categorytree-mode-categories": "apenas as categorias",
+ "categorytree-mode-pages": "páginas, exceto arquivos",
+ "categorytree-mode-all": "todas as páginas",
+ "categorytree-collapse": "recolher",
+ "categorytree-expand": "expandir",
+ "categorytree-expand-bullet": "►",
+ "categorytree-empty-bullet": "►",
+ "categorytree-member-counts": "Possui {{PLURAL:$1|1 subcategoria|$1 subcategorias}}, {{PLURAL:$2|1 página|$2 páginas}} e {{PLURAL:$3|1 arquivo|$3 arquivos}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "vazio",
+ "categorytree-load": "carregar",
+ "categorytree-loading": "carregando...",
+ "categorytree-nothing-found": "nada foi encontrado",
+ "categorytree-no-subcategories": "sem subcategorias",
+ "categorytree-no-parent-categories": "não há categorias superiores",
+ "categorytree-no-pages": "sem páginas nem subcategorias",
+ "categorytree-not-found": "A categoria <i>$1</i> não foi encontrada",
+ "categorytree-error": "Problema ao acessar os dados.",
+ "categorytree-retry": "Aguarde um momento e tente novamente.",
+ "apihelp-categorytree-description": "Módulo interno para a extensão \"Árvore de categorias\" (<i>CategoryTree</i>).",
+ "apihelp-categorytree-summary": "Módulo interno para a extensão \"Árvore de categorias\" (<i>CategoryTree</i>).",
+ "apihelp-categorytree-param-category": "Título no espaço nominal Categoria, o prefixo será ignorado se for fornecido.",
+ "apihelp-categorytree-param-options": "Opções para o construtor CategoryTree como objeto JSON. A opção <var>depth</var> tem o valor predefinido <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "As opções devem ser um objeto JSON válido."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/pt.json b/www/wiki/extensions/CategoryTree/i18n/pt.json
new file mode 100644
index 00000000..21359822
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/pt.json
@@ -0,0 +1,47 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dicionarista",
+ "Giro720",
+ "Hamilton Abreu",
+ "João Sousa",
+ "Luckas",
+ "555",
+ "Vitorvicentevalente",
+ "Mansil"
+ ]
+ },
+ "categorytree": "Árvore de categorias",
+ "categorytree-portlet": "Categorias",
+ "categorytree-legend": "Mostrar árvore de categorias",
+ "categorytree-desc": "Acessório (<i>gadget</i>) baseado em AJAX que apresenta a [[Special:CategoryTree|estrutura de categorias]] de uma wiki",
+ "categorytree-header": "Insira o nome de uma categoria para ver os seus conteúdos numa estrutura de árvore. (Requer JavaScript).",
+ "categorytree-category": "Categoria:",
+ "categorytree-go": "Mostrar árvore",
+ "categorytree-parents": "Categorias superiores",
+ "categorytree-mode-label": "Modo:",
+ "categorytree-mode-categories": "mostrar apenas as categorias",
+ "categorytree-mode-pages": "páginas, exceto imagens",
+ "categorytree-mode-all": "todas as páginas",
+ "categorytree-collapse": "ocultar",
+ "categorytree-expand": "expandir",
+ "categorytree-member-counts": "Contém {{PLURAL:$1|$1 subcategoria|$1 subcategorias}}, {{PLURAL:$2|$2 página|$2 páginas}} e {{PLURAL:$3|$3 ficheiro|$3 ficheiros}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "vazia",
+ "categorytree-load": "carregar",
+ "categorytree-loading": "a carregar...",
+ "categorytree-nothing-found": "não foi encontrado nada",
+ "categorytree-no-subcategories": "sem subcategorias",
+ "categorytree-no-parent-categories": "não há categorias superiores",
+ "categorytree-no-pages": "sem páginas nem subcategorias",
+ "categorytree-not-found": "A categoria <i>$1</i> não foi encontrada",
+ "categorytree-error": "Problema ao carregar os dados.",
+ "categorytree-retry": "Aguarde um momento e tente novamente, por favor.",
+ "apihelp-categorytree-description": "Módulo interno para a extensão \"Árvore de categorias\" (<i>CategoryTree</i>).",
+ "apihelp-categorytree-summary": "Módulo interno para a extensão \"Árvore de categorias\" (<i>CategoryTree</i>).",
+ "apihelp-categorytree-param-category": "Título no espaço nominal Categoria, o prefixo será ignorado se for fornecido.",
+ "apihelp-categorytree-param-options": "Opções para o construtor CategoryTree como objeto JSON. A opção <var>depth</var> tem o valor predefinido <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "As opções devem ser um objeto JSON válido."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/qqq.json b/www/wiki/extensions/CategoryTree/i18n/qqq.json
new file mode 100644
index 00000000..23f188b8
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/qqq.json
@@ -0,0 +1,63 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amire80",
+ "Aotake",
+ "EugeneZelenko",
+ "Jon Harald Søby",
+ "Lloffiwr",
+ "Malafaya",
+ "McDutchie",
+ "Meno25",
+ "Raimond Spekking",
+ "Raymond",
+ "Shirayuki",
+ "Siebrand",
+ "The Evil IP address",
+ "Umherirrender",
+ "Yekrats",
+ "Александр Сигачёв",
+ "פוילישער",
+ "Purodha",
+ "Nemo bis"
+ ]
+ },
+ "categorytree": "{{doc-special|CategoryTree}}",
+ "categorytree-portlet": "Title for the CategoryPortlet, when shown in the side bar.\n{{Identical|Category}}",
+ "categorytree-legend": "Legend of the fieldset around the input form of [[Special:Categorytree]].",
+ "categorytree-desc": "{{desc|name=Category Tree|url=https://www.mediawiki.org/wiki/Extension:CategoryTree}}",
+ "categorytree-header": "Header-text shown on [[Special:CategoryTree]]",
+ "categorytree-category": "Label for the category input field on Special:CategoryTree.\n{{Identical|Category}}",
+ "categorytree-go": "Label for the submit button on [[Special:CategoryTree]]",
+ "categorytree-parents": "Label for the list of parent categories on [[Special:CategoryTree]].\n{{Identical|Parent}}",
+ "categorytree-mode-label": "Used as label for \"Mode\" select box.\n\nThis message follows the input box {{msg-mw|categorytree-category}}.\n\nThis message is followed by the select box {{msg-mw|namespace}}.\n{{Identical|Mode}}",
+ "categorytree-mode-categories": "Item for the mode choice on [[Special:CategoryTree]], indicating that only categories are listed",
+ "categorytree-mode-pages": "Item for the mode choice on [[Special:CategoryTree]], indicating that no images in categories are listed",
+ "categorytree-mode-all": "Item for the mode choice on [[Special:CategoryTree]], indicating that all pages are listed.\n\n{{Identical|All pages}}",
+ "categorytree-collapse": "Tooltip for the \"collapse\" button.\n{{Identical|Collapse}}",
+ "categorytree-expand": "Tooltip for the \"expand\" button.\n{{Identical|Expand}}",
+ "categorytree-collapse-bullet": "{{notranslate}}",
+ "categorytree-expand-bullet": "For right-to-left scripts, set this message to the single character ◄ . Otherwise, do not translate this message. Does not support wiki-syntax, html or entity references. \n{{optional}}",
+ "categorytree-empty-bullet": "Prefix used before category names in category pages when the number of subcategories (or something) is 0, to indicate that there is no sub-tree of items to expand. Does not support wiki-syntax, html or entity references.",
+ "categorytree-page-bullet": "{{notranslate}}",
+ "categorytree-member-counts": "Tooltip showing a detailed summary of subcategory member counts. Parameters:\n* $1 - number of subcategories\n* $2 - number of pages (without subcategories and files)\n* $3 - number of files\n* $4 - (Unused) total number of members\n* $5 - (Unused) members to be shown in the tree, depending on mode\nUse with <nowiki>{{PLURAL}}</nowiki>",
+ "categorytree-member-num": "{{notranslate}}\nHowever, if needed, you can localise the parentheses.\n\n(From https://www.mediawiki.org/wiki/Extension:CategoryTree#categorytree-member-num):\nBy default, when listing subcategories on a category page, each subcategory is followed by an integer indicating how many subcategories lie beneath it:\n<pre>\nMy category name (5)\n</pre>\nYou can change this behavior by overriding this system message. Parameters:\n* $1 - (Unused) number of subcategories\n* $2 - (Unused) number of articles (not including category pages or file pages)\n* $3 - (Unused) number of uploaded files\n* $4 - (Unused) total number of member pages, including category pages and file pages\n* $5 - (Varies depending on CategoryTree mode....Can someone describe it?)\n\nTip: Use the ParserFunctions extension (https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions) to provide if/then/else logic to display different parts conditionally. For example:\n<pre>\n{{#ifeq:$1|0||$1 categories}}\n</pre>",
+ "categorytree-num-categories": "Number of sub-categories in a category. Appears in brackets after a name of an empty category.\n\nThe word \"categories\" should be abbreviated.\n\nParameters:\n* $1 - number of sub-categories. Can be used for PLURAL.\n{{Related|Categorytree-num}}",
+ "categorytree-num-pages": "Number of pages in a category. Appears in brackets after a name of an empty category.\n\nThe word \"pages\" should be abbreviated.\n\nParameters:\n* $1 - number of pages. Can be used for PLURAL.\n{{Related|Categorytree-num}}",
+ "categorytree-num-files": "Number of files in a category. Appears in brackets after a name of an empty category.\n\nThe word \"files\" should be abbreviated.\n\nParameters:\n* $1 - number of files. Can be used for PLURAL.\n{{Related|Categorytree-num}}",
+ "categorytree-num-empty": "The word \"empty\", as in \"empty category\". Appears in brackets after a name of an empty category.\n{{Identical|Empty}}",
+ "categorytree-load": "Tooltip for the \"expand\" button, if the content was not yet loaded.\n{{Identical|Load}}",
+ "categorytree-loading": "Status message shown while loading content.\n{{Identical|Loading}}",
+ "categorytree-nothing-found": "Indicates items with matching criteria have been found",
+ "categorytree-no-subcategories": "Indicates that there are no subcategories to be shown",
+ "categorytree-no-parent-categories": "Indicates that there are no parent categories to be shown",
+ "categorytree-no-pages": "Indicates that there are no pages or subcategories to be shown",
+ "categorytree-not-found": "Indicates that the given category ($1) was not found. Parameters:\n* $1 - category name",
+ "categorytree-error": "Indicates that an error has occurred while loading the node's content",
+ "categorytree-retry": "Instruction to try again later",
+ "apihelp-categorytree-description": "{{doc-apihelp-description|categorytree}}",
+ "apihelp-categorytree-summary": "{{doc-apihelp-summary|categorytree}}",
+ "apihelp-categorytree-param-category": "{{doc-apihelp-param|categorytree|category}}",
+ "apihelp-categorytree-param-options": "{{doc-apihelp-param|categorytree|options}}",
+ "apierror-categorytree-invalidjson": "{{doc-apierror}}"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/qu.json b/www/wiki/extensions/CategoryTree/i18n/qu.json
new file mode 100644
index 00000000..4b405c18
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/qu.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "AlimanRuna"
+ ]
+ },
+ "categorytree": "Katiguriya sach'a (CategoryTree)",
+ "categorytree-portlet": "Katiguriyakuna",
+ "categorytree-legend": "Katiguriya sach'ata rikuchiy",
+ "categorytree-desc": "[[Special:CategoryTree|Katiguriya sach'anta]] kuyuylla wamp'uy",
+ "categorytree-header": "Katiguriya sutita yaykuchiy samiqninta sach'a hinata rikunaykipaq.\nMusyariy, kaytaqa AJAX nisqa sapaq JavaScript ruranallawanmi llamk'achiyta atinki. Mawk'a wamp'unawanqa icha JavaScript nisqaman ama nispaqa manam atinkichu.",
+ "categorytree-category": "Katiguriya:",
+ "categorytree-go": "Sach'ata rikuchiy",
+ "categorytree-parents": "Mama katiguriyakuna",
+ "categorytree-mode-label": "Hina:",
+ "categorytree-mode-categories": "Katiguriyakunalla",
+ "categorytree-mode-pages": "p'anqakuna amataq rikchakuna",
+ "categorytree-mode-all": "tukuy p'anqakuna",
+ "categorytree-collapse": "pakay",
+ "categorytree-expand": "rikuchiy",
+ "categorytree-member-counts": "{{PLURAL:$1|huk urin katiguriyayuqmi|$1 urin katiguriyayuqmi}}, {{PLURAL:$2|huk p'anqayuqmi|$2 p'anqayuqmi}}, {{PLURAL:$3|huk willañiqiyuqmi|$3 willañiqiyuqmi}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 W",
+ "categorytree-num-empty": "ch'usaq",
+ "categorytree-load": "chaqnay",
+ "categorytree-loading": "chaqnaspa",
+ "categorytree-nothing-found": "manam imapas tarisqachu",
+ "categorytree-no-subcategories": "mana ima urin katiguriyapas",
+ "categorytree-no-parent-categories": "manam kanchu mama katiguriyakuna",
+ "categorytree-no-pages": "mana ima urin qillqapas ni katiguriyapas",
+ "categorytree-not-found": "<i>$1</i> sutiyuq katiguriyaqa manam tarisqachu",
+ "categorytree-error": "Manam atinichu willakunata chaqnayta.",
+ "categorytree-retry": "Asllata suyaspa musuqmanta ruraykachay."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/qwh.json b/www/wiki/extensions/CategoryTree/i18n/qwh.json
new file mode 100644
index 00000000..d0a94ebf
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/qwh.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michaelobregon"
+ ]
+ },
+ "categorytree-num-pages": "$1 P"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/rif.json b/www/wiki/extensions/CategoryTree/i18n/rif.json
new file mode 100644
index 00000000..1ee06664
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/rif.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amara-Amaziɣ"
+ ]
+ },
+ "categorytree-num-pages": "$1 ⵙⵏ",
+ "categorytree-num-files": "$1 ⴼⵢⵍ"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/rm.json b/www/wiki/extensions/CategoryTree/i18n/rm.json
new file mode 100644
index 00000000..0be3ba64
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/rm.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kazu89",
+ "Terfili"
+ ]
+ },
+ "categorytree": "Structura da las categorias",
+ "categorytree-portlet": "Categorias",
+ "categorytree-category": "Categoria:",
+ "categorytree-mode-all": "Tut las paginas",
+ "categorytree-collapse": "cumprimer",
+ "categorytree-expand": "extender",
+ "categorytree-member-counts": "Cuntegna {{PLURAL:$1|1 sutcategoria|$1 sutcategorias}}, {{PLURAL:$2|1 pagina|$2 paginas}}, ed {{PLURAL:$3|1 datoteca|$3 datotecas}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 D",
+ "categorytree-num-empty": "vid",
+ "categorytree-loading": "chargiar…"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ro.json b/www/wiki/extensions/CategoryTree/i18n/ro.json
new file mode 100644
index 00000000..aa97848c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ro.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cin",
+ "Firilacroco",
+ "KlaudiuMihaila",
+ "Mihai",
+ "Minisarm",
+ "Stelistcristi",
+ "XXN"
+ ]
+ },
+ "categorytree": "Arborele categoriilor",
+ "categorytree-portlet": "Categorii",
+ "categorytree-legend": "Arată arborele categoriilor",
+ "categorytree-desc": "Navighează dinamic în [[Special:CategoryTree|stuctura categoriilor]]",
+ "categorytree-header": "Introduceți numele categoriei pentru vizualizarea conținutului în structură arborescentă. Notați faptul că această operație necesită funcționalități JavaScript avansate cunoscute sub numele de AJAX. Dacă aveți un browser vechi sau nu aveți activat JavaScript, nu va funcționa.",
+ "categorytree-category": "Categorie:",
+ "categorytree-go": "Arată arborele",
+ "categorytree-parents": "Părinți",
+ "categorytree-mode-label": "Mod:",
+ "categorytree-mode-categories": "doar categorii",
+ "categorytree-mode-pages": "pagini fără imagini",
+ "categorytree-mode-all": "toate paginile",
+ "categorytree-collapse": "restrânge",
+ "categorytree-expand": "extinde",
+ "categorytree-member-counts": "conține {{PLURAL:$1|1 subcategorie|$1 subcategorii}}, {{PLURAL:$2|1 pagină|$2 pagini}} și {{PLURAL:$3|1 fișier|$3 fișiere}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "fără conținut",
+ "categorytree-load": "încarcă",
+ "categorytree-loading": "încărcare…",
+ "categorytree-nothing-found": "fără rezultat",
+ "categorytree-no-subcategories": "nici o subcategorie",
+ "categorytree-no-parent-categories": "nici o categorie părinte",
+ "categorytree-no-pages": "nicio pagină sau subcategorie",
+ "categorytree-not-found": "Categoria <i>$1</i> nu a fost găsită",
+ "categorytree-error": "Problemă la încărcarea datelor",
+ "categorytree-retry": "Vă rugăm să așteptați câteva momente și să încercați din nou."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/roa-tara.json b/www/wiki/extensions/CategoryTree/i18n/roa-tara.json
new file mode 100644
index 00000000..d3122bf3
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/roa-tara.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Joetaras"
+ ]
+ },
+ "categorytree": "Arvule de le categorije",
+ "categorytree-portlet": "Categorije",
+ "categorytree-legend": "Fa vedè l'arvule de le categorije",
+ "categorytree-desc": "Dinamicamende naveghesce 'a [[Special:CategoryTree|struttura de le categorije]]",
+ "categorytree-header": "'Nzerisce 'nu nome de categorije pe 'ndrucà 'u condenute sue cumme a 'na strutture a arvule. (Vole 'u JavaScript.)",
+ "categorytree-category": "Categorije:",
+ "categorytree-go": "Fa vedè l'arvule",
+ "categorytree-parents": "Attane",
+ "categorytree-mode-label": "Mode:",
+ "categorytree-mode-categories": "sulamende categorije",
+ "categorytree-mode-pages": "pàggene eccette le file",
+ "categorytree-mode-all": "tutte le pàggene",
+ "categorytree-collapse": "achiude",
+ "categorytree-expand": "spanne",
+ "categorytree-member-counts": "condene {{PLURAL:$1|1 sotte categorije|$1 sotte categorije}}, {{PLURAL:$2|1 pàgene|$2 pàggene}}, e {{PLURAL:$3|1 file|$3 file}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "vacande",
+ "categorytree-load": "careche",
+ "categorytree-loading": "stoche a careche…",
+ "categorytree-nothing-found": "acchiate ninde",
+ "categorytree-no-subcategories": "nisciuna sotte categorije",
+ "categorytree-no-parent-categories": "nisciuna categorije attane",
+ "categorytree-no-pages": "nisciune pàgene o sotte categorije",
+ "categorytree-not-found": "Categorije <i>$1</i> non acchiate",
+ "categorytree-error": "Probbleme carecanne le date.",
+ "categorytree-retry": "Aspitte 'nu mumende e pruève 'n'otra vote.",
+ "apihelp-categorytree-description": "Module 'nderne de l'estenzione CategoryTree.",
+ "apihelp-categorytree-summary": "Module 'nderne de l'estenzione CategoryTree.",
+ "apihelp-categorytree-param-category": "Titole jndr'à 'u namespace categorije, 'u prefisse avène cacate ce mise.",
+ "apihelp-categorytree-param-options": "Opziune pu costruttore CategoryTree cumme 'n'oggette JSON. L'opzione <var>depth</var> avène mise de base a <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Opziune onna essere valide pe 'n'oggette JSON."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ru.json b/www/wiki/extensions/CategoryTree/i18n/ru.json
new file mode 100644
index 00000000..ec65b951
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ru.json
@@ -0,0 +1,46 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ahonc",
+ "Amire80",
+ "Kaganer",
+ "Lockal",
+ "Putnik",
+ "Александр Сигачёв",
+ "Okras"
+ ]
+ },
+ "categorytree": "Дерево категорий",
+ "categorytree-portlet": "Категории",
+ "categorytree-legend": "Показать дерево категорий",
+ "categorytree-desc": "AJAX-компонент для отображения [[Special:CategoryTree|структуры категорий]] вики",
+ "categorytree-header": "Введите имя категории для показана её содержимого в виде дерева (требуется JavaScript).",
+ "categorytree-category": "Категория:",
+ "categorytree-go": "Загрузить",
+ "categorytree-parents": "Родительские категории",
+ "categorytree-mode-label": "Режим:",
+ "categorytree-mode-categories": "только категории",
+ "categorytree-mode-pages": "кроме файлов",
+ "categorytree-mode-all": "все страницы",
+ "categorytree-collapse": "свернуть",
+ "categorytree-expand": "развернуть",
+ "categorytree-member-counts": "Содержит $1 {{PLURAL:$1|подкатегорию|подкатегории|подкатегорий}}, $2 {{PLURAL:$2|страницу|страницы|страниц}} и $3 {{PLURAL:$3|файл|файла|файлов}}",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 С",
+ "categorytree-num-files": "$1 Ф",
+ "categorytree-num-empty": "пусто",
+ "categorytree-load": "загрузить",
+ "categorytree-loading": "загрузка…",
+ "categorytree-nothing-found": "Данная категория не содержит подкатегорий.",
+ "categorytree-no-subcategories": "нет подкатегорий",
+ "categorytree-no-parent-categories": "нет родительских категорий",
+ "categorytree-no-pages": "нет статей и подкатегорий",
+ "categorytree-not-found": "Категория «$1» не найдена.",
+ "categorytree-error": "Ошибка загрузки данных.",
+ "categorytree-retry": "Пожалуйста, подождите и попробуйте ещё раз.",
+ "apihelp-categorytree-description": "Внутренний модуль для расширения CategoryTree.",
+ "apihelp-categorytree-summary": "Внутренний модуль для расширения CategoryTree.",
+ "apihelp-categorytree-param-category": "Название в пространстве имён категорий, префикс в случае задания игнорируется.",
+ "apihelp-categorytree-param-options": "Варианты для конструктора CategoryTree как JSON-объекта. Параметр <var>depth</var> (глубина) по умолчанию установлен как <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Варианты должны быть валидными JSON-объектами."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/rue.json b/www/wiki/extensions/CategoryTree/i18n/rue.json
new file mode 100644
index 00000000..082bd43b
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/rue.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gazeb"
+ ]
+ },
+ "categorytree": "Дерево катеґорій",
+ "categorytree-portlet": "Катеґорії",
+ "categorytree-legend": "Указати дерево катеґорій",
+ "categorytree-desc": "AJAX-компонент про зображіня [[Special:CategoryTree|штруктуры катеґорій]] вікі",
+ "categorytree-header": "Зазначте назву катеґорії ку&nbsp;зображіню єй обсягу як стромовой штруктуры.\n\n(Тота функція потребує покрочілы функції JavaScript знамы як Ajax. Кідь маєте дуже старый переглядач або выпнутый JavaScript, не укаже ся стром правилно або нияк.)",
+ "categorytree-category": "Катеґорія:",
+ "categorytree-go": "Указати дерево",
+ "categorytree-parents": "Родичовскы катеґорії",
+ "categorytree-mode-categories": "лем катеґорії",
+ "categorytree-mode-pages": "сторінкы окрім файлів",
+ "categorytree-mode-all": "вшыткы сторінкы",
+ "categorytree-collapse": "згорнути",
+ "categorytree-expand": "розгорнути",
+ "categorytree-member-counts": "обсягує {{PLURAL:$1|1 підкатеґорію|$1 підкатеґорії|$1 підкатеґорій}}, {{PLURAL:$2|1 сторінку|$2 сторінкы|$2 сторінок}} і {{PLURAL:$3|1 файл|$3 файлы|$3 файлів}}",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 С",
+ "categorytree-num-files": "$1 Ф",
+ "categorytree-num-empty": "порожня",
+ "categorytree-load": "начітати",
+ "categorytree-loading": "начітавать ся...",
+ "categorytree-nothing-found": "ніч не найджене",
+ "categorytree-no-subcategories": "жадны підкатеґорії",
+ "categorytree-no-parent-categories": "не має родичовскы катеґорії",
+ "categorytree-no-pages": "жадны статї ані підкатеґорії",
+ "categorytree-not-found": "Катеґорія <em>$1</em> ненайджена",
+ "categorytree-error": "Хыба начітаня дат.",
+ "categorytree-retry": "Кус почекайте і потім спробуйте знову."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sa.json b/www/wiki/extensions/CategoryTree/i18n/sa.json
new file mode 100644
index 00000000..f02b9597
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sa.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ansumang",
+ "Shubha",
+ "Vibhijain",
+ "NehalDaveND"
+ ]
+ },
+ "categorytree": "वर्गवृक्षः",
+ "categorytree-portlet": "वर्गाः",
+ "categorytree-legend": "वर्गवृक्षः दर्श्यताम्",
+ "categorytree-desc": "[[Special:CategoryTree|category structure]] एतत् सक्रियं सञ्चालयतु",
+ "categorytree-header": "आधेयं वृक्षरूपेण द्रष्टुं वर्गस्य नाम योजयतु ।\nएतन्निमित्तं AJAX इति निर्दिष्टा सक्रिया परिष्कृता जावालिपिः अपेक्षिता ।\nयदि जालदर्शिका प्राचीना, जावालिपिः निष्क्रिया तर्हि एतत् कार्यं न करोति ।",
+ "categorytree-category": "वर्गः :",
+ "categorytree-go": "वृक्षं दर्शयतु",
+ "categorytree-parents": "पोषकाः",
+ "categorytree-mode-categories": "वर्गमात्रम्",
+ "categorytree-mode-pages": "सञ्चिकारहितानि पृष्ठानि",
+ "categorytree-mode-all": "सर्वाणि पृष्ठानि",
+ "categorytree-collapse": "सङ्कुच्यताम्",
+ "categorytree-expand": "विस्तीर्यताम्",
+ "categorytree-member-counts": "अस्मिन् {{PLURAL:$1| 1 उपवर्गः | $1 उपवर्गाः}}, {{PLURAL:$2| 1 पृष्ठम्| $2 पृष्ठानि}}, {{PLURAL:$3| 1 सञ्चिका | $3 सञ्चिकाः}} च विद्यन्ते ।",
+ "categorytree-num-categories": "$1 व",
+ "categorytree-num-pages": "$1 पृ",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "रिक्तम्",
+ "categorytree-load": "आरोपणम्",
+ "categorytree-loading": "आरोपयति...",
+ "categorytree-nothing-found": "न किञ्चित् प्राप्तम्",
+ "categorytree-no-subcategories": "उपवर्गाः न विद्यन्ते",
+ "categorytree-no-parent-categories": "पितृवर्गाः न विद्यन्ते",
+ "categorytree-no-pages": "पृष्ठानि उपवर्गाः वा न विद्यन्ते",
+ "categorytree-not-found": "<i>$1</i> वर्गः न प्राप्तः",
+ "categorytree-error": "विषयावतारणे समस्या ।",
+ "categorytree-retry": "कृपया क्षणानन्तरं पुनः प्रयतताम् ।"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sah.json b/www/wiki/extensions/CategoryTree/i18n/sah.json
new file mode 100644
index 00000000..ce7f92ac
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sah.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "HalanTul"
+ ]
+ },
+ "categorytree": "Категориялар мас курдук",
+ "categorytree-portlet": "Категориялар",
+ "categorytree-legend": "Категориялар тутулларын көрдөр",
+ "categorytree-desc": "Биики [[Special:CategoryTree|категорияларын тутулун]] көрдөрөр AJAX-компонент",
+ "categorytree-header": "Категория аатын киллэрдэххинэ мас курдук көстүөҕэ.\nБу кыаҕы браузерыҥ AJAX-ы туһанар эрэ буоллаҕына туттар кыахтааххын.\nБраузерыҥ эргэ буоллаҕына эбэтэр JavaScript арахсыбыт буоллаҕына субкатегорийалары мас курдук көрөр сатаммат.",
+ "categorytree-category": "Категория:",
+ "categorytree-go": "Көрдөр",
+ "categorytree-parents": "Төрөппүттэрэ",
+ "categorytree-mode-categories": "категориялар эрэ",
+ "categorytree-mode-pages": "билэттэн ураты (билэ буолбатах) сирэйдэр",
+ "categorytree-mode-all": "бары сирэйдэр",
+ "categorytree-collapse": "сап",
+ "categorytree-expand": "тэнит",
+ "categorytree-member-counts": "$1 {{PLURAL:$1|субкатегориялаах|субкатегориялардаах}}, $2 {{PLURAL:$2|сирэйдээх|сирэйдэрдээх}} уонна $3 {{PLURAL:$3|билэлээх|билэлэрдээх}}",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 С",
+ "categorytree-num-files": "$1 Ф",
+ "categorytree-num-empty": "кураанах",
+ "categorytree-load": "киллэр",
+ "categorytree-loading": "киллэрии",
+ "categorytree-nothing-found": "бу категория подкатегорията суох",
+ "categorytree-no-subcategories": "субкатегорията суох",
+ "categorytree-no-parent-categories": "төрөппүт категорията суох",
+ "categorytree-no-pages": "ыстатыйата эбэтэр субкатегорията суох",
+ "categorytree-not-found": "<i>$1</i> категория көстүбэтэ",
+ "categorytree-error": "Билэни суруйарга алҕас таҕыста",
+ "categorytree-retry": "Кыратык кэтэһэ түһэн баран өссө боруобалаа"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sat.json b/www/wiki/extensions/CategoryTree/i18n/sat.json
new file mode 100644
index 00000000..32258e71
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sat.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Albinus",
+ "Manik Soren",
+ "Ramjit Tudu"
+ ]
+ },
+ "categorytree": "ᱫᱟᱨᱮ ᱛᱷᱚᱠ",
+ "categorytree-portlet": "ᱛᱷᱚᱠ ᱠᱚ",
+ "categorytree-legend": "ᱥᱚᱫᱚᱨᱢᱮ ᱫᱟᱨᱮ ᱛᱷᱚᱠ",
+ "categorytree-category": "ᱛᱷᱚᱠ:",
+ "categorytree-go": "Dare uduḱme",
+ "categorytree-parents": "Gogo baba",
+ "categorytree-mode-label": "ᱰᱷᱚᱝ",
+ "categorytree-mode-categories": "ᱛᱷᱚᱠ ᱠᱚ ᱥᱩᱢᱩᱝ",
+ "categorytree-mode-all": "Sanam sakamko",
+ "categorytree-collapse": "Murchạo caba",
+ "categorytree-expand": "ᱯᱷᱟᱭᱞᱟᱣ",
+ "categorytree-member-counts": "Contains {{PLURAL:$1|1 ᱥᱟᱵ ᱠᱮᱴᱟᱜᱳᱨᱤ|$1 ᱥᱟᱵ ᱠᱮᱴᱟᱜᱳᱨᱤᱥ}}, {{PLURAL:$2|1 ᱥᱟᱦᱴᱟ|$2 ᱥᱟᱦᱴᱟᱠᱩ}}, and {{PLURAL:$3|1 ᱯᱷᱟᱭᱤᱞ|$3 ᱯᱷᱟᱭᱤᱞᱥ}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 ᱮᱯᱷ",
+ "categorytree-num-empty": "Khạligea",
+ "categorytree-load": "Rakaṕ",
+ "categorytree-loading": "Rakaṕkana",
+ "categorytree-nothing-found": "Cet́ hõ baṅ ńamlena",
+ "categorytree-not-found": "ᱛᱷᱚᱠ <i>$1</i> ᱵᱟᱭ ᱧᱟᱢᱞᱮᱱᱟ"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sc.json b/www/wiki/extensions/CategoryTree/i18n/sc.json
new file mode 100644
index 00000000..f0fdb73f
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sc.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Marzedu"
+ ]
+ },
+ "categorytree-portlet": "Categorias",
+ "categorytree-category": "Categoria:",
+ "categorytree-mode-all": "totu is pàginas"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/scn.json b/www/wiki/extensions/CategoryTree/i18n/scn.json
new file mode 100644
index 00000000..31e037a4
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/scn.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aushulz",
+ "Santu",
+ "C.R.",
+ "Pippinu"
+ ]
+ },
+ "categorytree": "Àrvulu di li catigurìi",
+ "categorytree-portlet": "Catigurìi",
+ "categorytree-legend": "Ammustra l'àrvulu di li catigurìi",
+ "categorytree-desc": "Accissòriu AJAX pi taliari la [[Special:CategoryTree|struttura di li catigurìi]] dû situ",
+ "categorytree-header": "Nziriri lu nomu dâ catigirìa di unni si disìa taliari lu cuntinutu sutta furma di struttura a àrvulu. La pàggina addumanna li funziunalitati avanzati di JavaScript saputi sèntiri AJAX; si veni usatu nu browser vecchiu assai o li funzioni JavaScript sunnu disabbilitati, sta pàggina non funziona.",
+ "categorytree-category": "Catigurìa:",
+ "categorytree-go": "Càrica",
+ "categorytree-parents": "Catigurìi cchiù àuti",
+ "categorytree-mode-label": "Modu:",
+ "categorytree-mode-categories": "ammustra sulu li catigurìi",
+ "categorytree-mode-pages": "tutti li pàggini, lassannu fora li mmàggini",
+ "categorytree-mode-all": "tutti li pàggini",
+ "categorytree-collapse": "cumprimi",
+ "categorytree-expand": "spanni",
+ "categorytree-expand-bullet": "[<b>+</b>]",
+ "categorytree-empty-bullet": "[<b>×</b>]",
+ "categorytree-member-counts": "cunteni {{PLURAL:$1|1 suttacatigurìa|$1 suttacatigurìi}}, {{PLURAL:$2|1 pàggina|$2 pàggini}} e {{PLURAL:$3|1 file|$3 file}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "vacanti",
+ "categorytree-load": "càrica",
+ "categorytree-loading": "sta caricannu...",
+ "categorytree-nothing-found": "nuddu risurtatu",
+ "categorytree-no-subcategories": "nudda suttacatigurìa.",
+ "categorytree-no-parent-categories": "nudda catigurìa cchià àuta",
+ "categorytree-no-pages": "nudda vuci e nudda suttacatigurìa.",
+ "categorytree-not-found": "Catigurìa ''$1'' non attruvata",
+ "categorytree-error": "Prubbrema nnô caricamentu dî dati.",
+ "categorytree-retry": "Aspittari tanticchia e appoi pruvari n'ùutra vota."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sco.json b/www/wiki/extensions/CategoryTree/i18n/sco.json
new file mode 100644
index 00000000..83fe10b1
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sco.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "John Reid"
+ ]
+ },
+ "categorytree": "Categerie tree",
+ "categorytree-portlet": "Categeries",
+ "categorytree-legend": "Shaw categerie tree",
+ "categorytree-desc": "Dynameeclie navigate the [[Special:CategoryTree|categerie structure]]",
+ "categorytree-header": "Enter ae categerie name tae see its contents aes ae tree structure.\nMynd that this needs advanced JavaScript functionalitie knawn aes AJAX.\nGif ye hae ae fair audld brouser, or hae JavaScript disabled, it'll no wirk.",
+ "categorytree-category": "Categerie:",
+ "categorytree-go": "Shaw tree",
+ "categorytree-parents": "Pairents",
+ "categorytree-mode-label": "Mode:",
+ "categorytree-mode-categories": "categeries yinlie",
+ "categorytree-mode-pages": "pages except files",
+ "categorytree-mode-all": "aw pages",
+ "categorytree-collapse": "collapse",
+ "categorytree-expand": "mak muckler",
+ "categorytree-member-counts": "Contains {{PLURAL:$1|1 subcategerie|$1 subcategeries}}, {{PLURAL:$2|1 page|$2 pages}}, n {{PLURAL:$3|1 file|$3 files}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "tuim",
+ "categorytree-load": "laid",
+ "categorytree-loading": "laidin…",
+ "categorytree-nothing-found": "nawthing foond",
+ "categorytree-no-subcategories": "nae subcategeries",
+ "categorytree-no-parent-categories": "nae pairent categeries",
+ "categorytree-no-pages": "nae pages or subcategeries",
+ "categorytree-not-found": "Categerie <i>$1</i> no foond",
+ "categorytree-error": "Proablem laidin data.",
+ "categorytree-retry": "Please wait ae moment n gie it anither shot."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sd.json b/www/wiki/extensions/CategoryTree/i18n/sd.json
new file mode 100644
index 00000000..8d6d7348
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sd.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sindhu",
+ "Mehtab ahmed"
+ ]
+ },
+ "categorytree-mode-all": "سڀ صفحا",
+ "categorytree-expand": "ڦھلايو",
+ "categorytree-member-counts": "مشتمل آھي {{PLURAL:$1|ذيلي زمرو|$1 ذيلي زمرا}}، {{PLURAL:$2|صفحو|$2 صفحا}}، ۽ {{PLURAL:$3|هڪ فائيل| $3 فائيلَ}}",
+ "categorytree-num-categories": "$1 ز",
+ "categorytree-num-pages": "$1 ص",
+ "categorytree-num-files": "$1 ف"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sdc.json b/www/wiki/extensions/CategoryTree/i18n/sdc.json
new file mode 100644
index 00000000..152dde5c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sdc.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Felis",
+ "Jun Misugi"
+ ]
+ },
+ "categorytree": "Sthruttura ad'àiburu di li categuri",
+ "categorytree-portlet": "Categuri",
+ "categorytree-legend": "Musthrà sthruttura ad'àiburu di li categuri",
+ "categorytree-header": "Insirì l'innommu di la categuria di la quari si vó vidé lu cuntinuddu attrabessu la sthruttura ad'àiburu. Amminta chi la pàgina vó li funzionariddai abanzaddi di JavaScript ciamaddi AJAX; s'ài un nabiggddori vécciu o cu' li funzioni JavaScript disàbiritaddi, chistha pàgina nò funziunerà.",
+ "categorytree-category": "Categuria:",
+ "categorytree-go": "Musthrà l'àiburu di categuri",
+ "categorytree-parents": "Categuri superiori",
+ "categorytree-mode-categories": "musthra soru li categuri",
+ "categorytree-mode-pages": "tutti li pàgini, eschrusi l'immàgini",
+ "categorytree-mode-all": "tutti li pàgini",
+ "categorytree-collapse": "cumprimi",
+ "categorytree-expand": "ippaglia",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "biodda",
+ "categorytree-load": "carrigga",
+ "categorytree-loading": "carrigghendi...",
+ "categorytree-nothing-found": "nisciun risulthaddu",
+ "categorytree-no-subcategories": "nisciuna sottucateguria.",
+ "categorytree-no-parent-categories": "nisciuni sottucateguri",
+ "categorytree-no-pages": "nisciuna bozi ni sottucateguria.",
+ "categorytree-not-found": "Categuria ''$1'' nò acciappadda",
+ "categorytree-error": "Probrema i' lu carriggamentu di li dati.",
+ "categorytree-retry": "Pa piazeri aisetta un'àttimu e poi torra a prubà."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sdh.json b/www/wiki/extensions/CategoryTree/i18n/sdh.json
new file mode 100644
index 00000000..104b7c26
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sdh.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kurdbuddha",
+ "Paraw2"
+ ]
+ },
+ "categorytree-mode-all": "گشت پەڕەگان",
+ "categorytree-expand": "بڵاوی بکەرە",
+ "categorytree-member-counts": "{{PLURAL:$1|یەک ژێرپۆل|$1 ژێرپۆل}}، {{PLURAL:$2|یەک پەڕە|$2 پەڕە}}، and {{PLURAL:$3|یەک پەڕگە|$3 پەڕگە}} لەوەرگرێدن",
+ "categorytree-num-categories": "$1 پۆل",
+ "categorytree-num-pages": "$1 پەڕە",
+ "categorytree-num-files": "$1 پەڕگە"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sgs.json b/www/wiki/extensions/CategoryTree/i18n/sgs.json
new file mode 100644
index 00000000..1ff24b37
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sgs.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hugo.arg"
+ ]
+ },
+ "categorytree": "Kateguorėju medis",
+ "categorytree-category": "Kateguorėjė:",
+ "categorytree-mode-all": "vėsė poslapē",
+ "categorytree-expand": "atsklēstė",
+ "categorytree-member-counts": "Tor {{PLURAL:$1|1 pukateguorėjė|$1 pukateguorėjės|$1 pukateguorėjū}}, {{PLURAL:$2|1 poslapi|$2 poslapius|$2 poslapiu}}, ė da {{PLURAL:$3|1 abruozdielis|$3 abruozdielius}}",
+ "categorytree-num-categories": "$1 p.",
+ "categorytree-num-pages": "$1 p.",
+ "categorytree-num-files": "$1 abr."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sh.json b/www/wiki/extensions/CategoryTree/i18n/sh.json
new file mode 100644
index 00000000..140e71b2
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sh.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kolega2357",
+ "OC Ripper",
+ "Acamicamacaraca"
+ ]
+ },
+ "categorytree": "Stablasti prikaz hijerarhije kategorija",
+ "categorytree-portlet": "Kategorije",
+ "categorytree-legend": "Prikaži stablo kategorija",
+ "categorytree-desc": "Dinamička navigacija [[Special:CategoryTree|strukture kategorija]].",
+ "categorytree-header": "Unesite ime kategorije da vidite njen sadržaj kao strukturno stablo. Ovo zahtijeva proširenu JavaScript funkcionalnost kao AJAX. Ako imate neki stariji preglednik, ili ste isključili JavaScript, ovo neće raditi.",
+ "categorytree-category": "Kategorija:",
+ "categorytree-go": "Prikaži stablo",
+ "categorytree-parents": "Nadkategorije - Наткатегорије",
+ "categorytree-mode-categories": "samo kategorije - само категорије",
+ "categorytree-mode-pages": "stranice bez slika - странице без слика",
+ "categorytree-mode-all": "sve stranice - све странице",
+ "categorytree-collapse": "sakrij - сакриј",
+ "categorytree-expand": "proširi - прошири",
+ "categorytree-member-counts": "sadrži {{PLURAL:$1|jednu podkategoriju|$1 podkategorije|$1 podkategorija}}, {{PLURAL:$2|jednu stranicu|$2 stranice|$2 stranica}} i {{PLURAL:$3|jednu datoteku|$3 datoteke|$3 datoteka}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-load": "učitaj - учитај",
+ "categorytree-loading": "učitavam - учитавам",
+ "categorytree-nothing-found": "ništa nije pronađeno",
+ "categorytree-no-subcategories": "nema potkategorija",
+ "categorytree-no-parent-categories": "nema nadkategorija",
+ "categorytree-no-pages": "nema ni stranica ni podkategorija",
+ "categorytree-not-found": "Kategorija <i>$1</i> nije pronađena",
+ "categorytree-error": "Problem pri učitavanju podataka."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/shi.json b/www/wiki/extensions/CategoryTree/i18n/shi.json
new file mode 100644
index 00000000..14d4e464
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/shi.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amara-Amaziɣ"
+ ]
+ },
+ "categorytree-num-categories": "$1 ⴳⵢ",
+ "categorytree-num-pages": "$1 ⵙⵏ",
+ "categorytree-num-files": "$1 ⴼ"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/shn.json b/www/wiki/extensions/CategoryTree/i18n/shn.json
new file mode 100644
index 00000000..a66d76b1
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/shn.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Saimawnkham"
+ ]
+ },
+ "categorytree-expand": "ၶႂၢၵ်ႈ",
+ "categorytree-member-counts": "ၶဝ်ႈပႃးဝႆႉ {{PLURAL:$1|1 ၵၼ်ၽႄ|$1 ၵၼ်ၽႄ}}, {{PLURAL:$2|1 ၼႃႈလိၵ်ႈ|$2 ၼႃႈလိၵ်ႈ}}, လႄႈ {{PLURAL:$3|1 ၾၢႆႇ|$3 ၾၢႆႇ}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/shy-latn.json b/www/wiki/extensions/CategoryTree/i18n/shy-latn.json
new file mode 100644
index 00000000..3ae6f1ee
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/shy-latn.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Vikoula5"
+ ]
+ },
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/si.json b/www/wiki/extensions/CategoryTree/i18n/si.json
new file mode 100644
index 00000000..7d1290db
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/si.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Singhalawap",
+ "නන්දිමිතුරු",
+ "පසිඳු කාවින්ද",
+ "බිඟුවා"
+ ]
+ },
+ "categorytree": "ප්‍රවර්ග බෙදීම් සටහන",
+ "categorytree-portlet": "ප්‍රවර්ග",
+ "categorytree-legend": "ප්‍රවර්ග ගස පෙන්වන්න",
+ "categorytree-desc": "[[Special:CategoryTree|ප්‍රවර්ග ව්‍යුහය]] ගතික වශයෙන් සංචලනය කරන්න",
+ "categorytree-header": "එහි අන්තර්ගතයන් රුක් ව්‍යුවහයක් ලෙස නැරඹීම සඳහා ප්‍රවර්ග නාමයක් ඇතුලත් කරන්න.\nAJAX නමින් හැඳින්වෙන ප්‍රගත ජාවාස්ක්‍රිප්ට් ශ්‍රීතියතායව මේ සඳහා අවශ්‍ය බව සටහන් කර ගන්න.\nඔබ සතුව ඇත්තේ ඉතා පැරණි බ්‍රවුසරයක් නම් හෝ ජාවාස්ක්‍රිප්ට් අක්‍රීය කොට තිබේ නම් මෙය ක්‍රි‍යාත්මක නොවනු ඇත.",
+ "categorytree-category": "ප්‍රවර්ගය:",
+ "categorytree-go": "බෙදීයාම් සටහන පෙන්වන්න",
+ "categorytree-parents": "මාපියන්",
+ "categorytree-mode-label": "ක්‍රමය:",
+ "categorytree-mode-categories": "ප්‍රවර්ග පමණයි",
+ "categorytree-mode-pages": "ගොනු හැර ඉතිරි පිටු",
+ "categorytree-mode-all": "සියළු පිටු",
+ "categorytree-collapse": "හකුලන්න",
+ "categorytree-expand": "විදහාලන්න",
+ "categorytree-member-counts": "{{PLURAL:$1|එක් උපප්‍රවර්ගයක්|උපප්‍රවර්ග $1 ක්}}, {{PLURAL:$2|එක් පිටුවක්|පිටු $2 ක්}}, සහ {{PLURAL:$3|එක් ගොනුවක්|ගොනු $3 ක්}} අඩංගුය",
+ "categorytree-num-categories": "ප්‍ර $1",
+ "categorytree-num-pages": "පිටු $1",
+ "categorytree-num-files": "ලිපි $1",
+ "categorytree-num-empty": "හිස්",
+ "categorytree-load": "බාගන්න",
+ "categorytree-loading": "බාගනිමින්…",
+ "categorytree-nothing-found": "කිසිවක් හමුනොවිනි",
+ "categorytree-no-subcategories": "උපප්‍රවර්ග නොමැත",
+ "categorytree-no-parent-categories": "මවු ප්‍රවර්ග නැත",
+ "categorytree-no-pages": "පිටු හෝ උපප්‍රවර්ග නොමැත",
+ "categorytree-not-found": "<i>$1</i> ප්‍රවර්ගය සොයාගත නොහැකි විය",
+ "categorytree-error": "දත්ත බාගැනීමේ ගැටළු පැවතිණි.",
+ "categorytree-retry": "කරුණාකර බිඳක් සිට යළි උත්සාහ කරන්න."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sk.json b/www/wiki/extensions/CategoryTree/i18n/sk.json
new file mode 100644
index 00000000..1073a341
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sk.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Helix84",
+ "Sudo77(new)",
+ "Teslaton"
+ ]
+ },
+ "categorytree": "Strom kategórií",
+ "categorytree-portlet": "Kategórie",
+ "categorytree-legend": "Zobraziť strom kategórií",
+ "categorytree-desc": "AJAXový nástroj na zobrazovanie [[Special:CategoryTree|štruktúry kategórií]] wiki",
+ "categorytree-header": "Zadajte názov kategórie, ktorej obsah sa má zobraziť ako stromová štruktúra.\nMajte na pamäti, že táto funkcia vyžaduje JavaScriptovú funkcionalitu známu ako AJAX.\nAk máte veľmi starý prehliadač alebo máte vypnutý JavaScrpt, nebude fungovať.",
+ "categorytree-category": "Kategória:",
+ "categorytree-go": "Zobraziť strom",
+ "categorytree-parents": "Nadradené kategórie",
+ "categorytree-mode-label": "Režim:",
+ "categorytree-mode-categories": "iba kategórie",
+ "categorytree-mode-pages": "stránky okrem obrázkov",
+ "categorytree-mode-all": "všetky stránky",
+ "categorytree-collapse": "zbaliť",
+ "categorytree-expand": "rozbaliť",
+ "categorytree-member-counts": "obsahuje {{PLURAL:$1|1 podkategóriu|$1 podkategórie|$1 podkategórií}}, {{PLURAL:$2|1 stránku|$2 stránky|$2 stránok}} a {{PLURAL:$3|1 súbor|$3 súbory|$3 súborov}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 B",
+ "categorytree-num-empty": "prázdna",
+ "categorytree-load": "načítať",
+ "categorytree-loading": "načítava sa",
+ "categorytree-nothing-found": "nebolo nič nájdené",
+ "categorytree-no-subcategories": "žiadne podkategórie.",
+ "categorytree-no-parent-categories": "nemá nadradené kategórie",
+ "categorytree-no-pages": "žiadne stránky ani podkategórie.",
+ "categorytree-not-found": "Kategória <i>$1</i> nenájdená",
+ "categorytree-error": "Problém pri načítavaní údajov.",
+ "categorytree-retry": "Prosím, chvíľu počkajte a skúste to znova."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/skr-arab.json b/www/wiki/extensions/CategoryTree/i18n/skr-arab.json
new file mode 100644
index 00000000..718da218
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/skr-arab.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "Saraiki"
+ ]
+ },
+ "categorytree": "قسماں دا شجرہ",
+ "categorytree-portlet": "قسماں، زمرے",
+ "categorytree-legend": "قسماں دا شجرہ ݙکھاؤ",
+ "categorytree-category": "قسم",
+ "categorytree-go": "لین ݙکھاؤ",
+ "categorytree-parents": "والدین",
+ "categorytree-mode-label": "طور:",
+ "categorytree-mode-categories": "صرف زمرہ جات",
+ "categorytree-mode-pages": "فائلاں دے علاوہ ورقے",
+ "categorytree-mode-all": "سارے مقالے",
+ "categorytree-collapse": "لکاؤ",
+ "categorytree-expand": "ودھاؤ",
+ "categorytree-member-counts": "ایندے وچ {{PLURAL:$1|1 ذیلی زمرہ|$1 ذیلی زمرہ جات}}، {{PLURAL:$2|1 ورقہ|$2 ورقے}} تے {{PLURAL:$3|1 فائل|$3 فائلیں}} موجود ہن/ہے۔",
+ "categorytree-num-categories": "$1 ز",
+ "categorytree-num-pages": "$1 پی",
+ "categorytree-num-files": "$1 ایف",
+ "categorytree-num-empty": "خالی",
+ "categorytree-load": "چڑھاؤ",
+ "categorytree-loading": "لوڈ تھیدا پئے",
+ "categorytree-nothing-found": "کجھ نی لبھیا",
+ "categorytree-no-subcategories": "کوئی ذیلی زمرہ کائنی",
+ "categorytree-no-parent-categories": "کوئی پیرنٹ کیٹیگریاں کائنی",
+ "categorytree-no-pages": "کوئی ورقہ یا ذیلی زمرے کائنی",
+ "categorytree-error": "ڈیٹا لوڈ کرݨ وچ رپھڑ۔"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sl.json b/www/wiki/extensions/CategoryTree/i18n/sl.json
new file mode 100644
index 00000000..48d4309b
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sl.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dbc334",
+ "Freakolowsky",
+ "editors of sl.wikipedia"
+ ]
+ },
+ "categorytree": "Drevo kategorij",
+ "categorytree-portlet": "Kategorije",
+ "categorytree-legend": "Prikaži drevo kategorij",
+ "categorytree-desc": "Dinamično navigiraj po [[Special:CategoryTree|strukturi kategorij]]",
+ "categorytree-header": "Vnesite ime kategorije, da si ogledate njeno vsebino kot drevesno strukturo. (Zahteva JavaScript.)",
+ "categorytree-category": "Kategorija:",
+ "categorytree-go": "Pokaži drevo",
+ "categorytree-parents": "Starši",
+ "categorytree-mode-label": "Način:",
+ "categorytree-mode-categories": "samo kategorije",
+ "categorytree-mode-pages": "strani z izjemo slik",
+ "categorytree-mode-all": "vse strani",
+ "categorytree-collapse": "skrči",
+ "categorytree-expand": "razširi",
+ "categorytree-member-counts": "vsebuje $1 {{PLURAL:$1|podkategorijo|podkategoriji|podkategorije|podkategorij}}, $2 {{PLURAL:$2|stran|strani|strani}} in $3 {{PLURAL:$3|datoteko|datoteki|datoteke|datotek}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 D",
+ "categorytree-num-empty": "prazno",
+ "categorytree-load": "naloži",
+ "categorytree-loading": "nalagam",
+ "categorytree-nothing-found": "ni zadetkov",
+ "categorytree-no-subcategories": "ni podkategorij",
+ "categorytree-no-parent-categories": "ni starševskih kategorij",
+ "categorytree-no-pages": "ni strani ali podkategorij",
+ "categorytree-not-found": "Kategorije <i>$1</i> ni moč najti",
+ "categorytree-error": "Težava pri nalaganju podatkov.",
+ "categorytree-retry": "Prosimo, počakajte trenutek in poskusite znova.",
+ "apihelp-categorytree-description": "Notranji modul za razširitev CategoryTree.",
+ "apihelp-categorytree-param-category": "Naslov v imenskem prostoru kategorij; če navedete predpono, jo bomo prezrli.",
+ "apihelp-categorytree-param-options": "Možnosti konstruktorja CategoryTree kot objekt JSON. Možnost <var>depth</var> je privzeto <kbd>1</kbd>."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sm.json b/www/wiki/extensions/CategoryTree/i18n/sm.json
new file mode 100644
index 00000000..a278c4a5
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sm.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fanjiayi"
+ ]
+ },
+ "categorytree-num-pages": "$1 P"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/so.json b/www/wiki/extensions/CategoryTree/i18n/so.json
new file mode 100644
index 00000000..9ec52554
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/so.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Abshirdheere",
+ "Maax"
+ ]
+ },
+ "categorytree-category": "Qeybta:",
+ "categorytree-no-subcategories": "Ma jiraan wax laamaha qaybaha ah",
+ "categorytree-not-found": "Qeybta <i>$1</i> lama helin"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sq.json b/www/wiki/extensions/CategoryTree/i18n/sq.json
new file mode 100644
index 00000000..02de46ff
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sq.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Eagleal",
+ "Olsi",
+ "Arianit"
+ ]
+ },
+ "categorytree": "Pema e kategorive",
+ "categorytree-portlet": "Kategoritë",
+ "categorytree-legend": "Shfaqni pemën e kategorive",
+ "categorytree-desc": "Lundroni shpejt [[Special:CategoryTree|strukturën e kategorisë]]",
+ "categorytree-header": "Fusni emrin e kategorisë për të parë përmbajtjen si pemë kategorish. (Kërkon JavaScript.)",
+ "categorytree-category": "Kategoria:",
+ "categorytree-go": "Plotëso",
+ "categorytree-parents": "Kryekategoritë",
+ "categorytree-mode-categories": "vetëm kategoritë",
+ "categorytree-mode-pages": "faqet pa figurat",
+ "categorytree-mode-all": "të gjitha faqet",
+ "categorytree-collapse": "mbylle",
+ "categorytree-expand": "hape",
+ "categorytree-member-counts": "përmban $1 nënkategori, $2 faqe, dhe {{PLURAL:$3|1 skedë|$3 skeda}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 F",
+ "categorytree-num-files": "$1 S",
+ "categorytree-num-empty": "bosh",
+ "categorytree-load": "hape",
+ "categorytree-loading": "duke plotësuar",
+ "categorytree-nothing-found": "Ju kërkoj ndjesë, nuk u gjet asgjë.",
+ "categorytree-no-subcategories": "Asnjë nënkategori.",
+ "categorytree-no-parent-categories": "nuk ka kategori prindërore",
+ "categorytree-no-pages": "Asnjë artikull ose nënkategori.",
+ "categorytree-not-found": "Kategoria <i>$1</i> nuk u gjet",
+ "categorytree-error": "Problem gjatë ngarkimit të të dhënave.",
+ "categorytree-retry": "Ju lutemi prisni një moment dhe provojeni përsëri."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sr-ec.json b/www/wiki/extensions/CategoryTree/i18n/sr-ec.json
new file mode 100644
index 00000000..43b14796
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sr-ec.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Milicevic01",
+ "Millosh",
+ "Rancher",
+ "Sasa Stefanovic",
+ "Slaven Kosanovic",
+ "Михајло Анђелковић",
+ "Сербијана",
+ "BadDog"
+ ]
+ },
+ "categorytree": "Стабло категорија",
+ "categorytree-portlet": "Категорије",
+ "categorytree-legend": "Приказ стабла категорија",
+ "categorytree-desc": "Динамичка навигација кроз [[Special:CategoryTree|структуру категорија]]",
+ "categorytree-header": "Унесите назив категорије чији садржај желите да видите у стабластој структури (захтева Јаваскрипту).",
+ "categorytree-category": "Категорија:",
+ "categorytree-go": "Прикажи стабло",
+ "categorytree-parents": "Наткатегорије",
+ "categorytree-mode-label": "Режим:",
+ "categorytree-mode-categories": "само категорије",
+ "categorytree-mode-pages": "странице изузевши датотеке",
+ "categorytree-mode-all": "све странице",
+ "categorytree-collapse": "скупи",
+ "categorytree-expand": "прикажи",
+ "categorytree-member-counts": "садржи {{PLURAL:$1|једну поткатегорију|$1 поткатегорије|$1 поткатегорија}}, {{PLURAL:$2|једну страницу|$2 странице|$2 страница}} и {{PLURAL:$3|једну датотеку|$3 датотеке|$3 датотека}}",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 С",
+ "categorytree-num-files": "$1 Д",
+ "categorytree-num-empty": "празна",
+ "categorytree-load": "учитај",
+ "categorytree-loading": "учитавам…",
+ "categorytree-nothing-found": "ништа није пронађено",
+ "categorytree-no-subcategories": "нема поткатегорија",
+ "categorytree-no-parent-categories": "нема наткатегорија",
+ "categorytree-no-pages": "нема страница или поткатегорија",
+ "categorytree-not-found": "Категорија <i>$1</i> није пронађена",
+ "categorytree-error": "Проблем при учитавању података.",
+ "categorytree-retry": "Сачекајте неколико тренутака и покушајте поново."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sr-el.json b/www/wiki/extensions/CategoryTree/i18n/sr-el.json
new file mode 100644
index 00000000..a0090cee
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sr-el.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michaello",
+ "Milicevic01",
+ "Rancher"
+ ]
+ },
+ "categorytree": "Stablo kategorija",
+ "categorytree-portlet": "kategorije",
+ "categorytree-legend": "Prikaz stabla kategorija",
+ "categorytree-desc": "Dinamička navigacija kroz [[Special:CategoryTree|strukturu kategorija]]",
+ "categorytree-header": "Unesite naziv kategorije čiji sadržaj želite da vidite u stablastoj strukturi.\nOvo zahteva naprednu funkciju JavaScript-a poznatu kao AJAX.\nAko imate stariji pregledač ili ste onemogućili JavaScript, stablasti prikaz neće raditi.",
+ "categorytree-category": "Kategorija:",
+ "categorytree-go": "Prikaži stablo",
+ "categorytree-parents": "Natkategorije",
+ "categorytree-mode-label": "Režim:",
+ "categorytree-mode-categories": "samo kategorije",
+ "categorytree-mode-pages": "stranice izuzevši datoteke",
+ "categorytree-mode-all": "sve stranice",
+ "categorytree-collapse": "sakrij",
+ "categorytree-expand": "prikaži",
+ "categorytree-member-counts": "sadrži {{PLURAL:$1|jednu potkategoriju|$1 potkategorije|$1 potkategorija}}, {{PLURAL:$2|jednu stranicu|$2 stranice|$2 stranica}} i {{PLURAL:$3|jednu datoteku|$3 datoteke|$3 datoteka}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 D",
+ "categorytree-num-empty": "prazna",
+ "categorytree-load": "učitaj",
+ "categorytree-loading": "učitavam…",
+ "categorytree-nothing-found": "ništa nije pronađeno",
+ "categorytree-no-subcategories": "nema potkategorija",
+ "categorytree-no-parent-categories": "bez natkategorije",
+ "categorytree-no-pages": "nema stranica ili potkategorija",
+ "categorytree-not-found": "Kategorija <i>$1</i> nije pronađena",
+ "categorytree-error": "Problem pri učitavanju podataka.",
+ "categorytree-retry": "Sačekajte nekoliko trenutaka i pokušajte ponovo."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/st.json b/www/wiki/extensions/CategoryTree/i18n/st.json
new file mode 100644
index 00000000..7365445c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/st.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": [],
+ "categorytree": "Lenane le Mekga",
+ "categorytree-category": "Mokga:",
+ "categorytree-go": "Mpontshe lenane",
+ "categorytree-mode-categories": "mekga feela",
+ "categorytree-mode-pages": "maqephe ntle le ditshwantsho",
+ "categorytree-collapse": "Nyenyefatsa",
+ "categorytree-expand": "Hodisa",
+ "categorytree-load": "jara",
+ "categorytree-loading": "le ntse le jarwa",
+ "categorytree-nothing-found": "Ha ho a fumanwa letho",
+ "categorytree-no-subcategories": "ntle le mekgana",
+ "categorytree-no-pages": "ntle le maqephe le mekgana",
+ "categorytree-not-found": "Mokga wa <i>$1</i> ha o a fumanwa"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/stq.json b/www/wiki/extensions/CategoryTree/i18n/stq.json
new file mode 100644
index 00000000..edf8bbf7
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/stq.json
@@ -0,0 +1,30 @@
+{
+ "@metadata": {
+ "authors": [
+ "Pyt"
+ ]
+ },
+ "categorytree": "Kategorieboom",
+ "categorytree-portlet": "Kategorien",
+ "categorytree-legend": "Wies Kategorienboom",
+ "categorytree-desc": "AJAX-basierd Gadget uum ju [[Special:CategoryTree|Kategorien-Struktuur]] fon n Wiki antouwiesen",
+ "categorytree-header": "Wiest foar ju anroate Kategorie do Unnerkategorien in n Boomstruktuur.\nDisse Siede bruukt bestimde JavaScript-Funktione (AJAX).\nIn gjucht oolde Browsere, of wan Javascript ouschalted is, funktioniert disse Siede eventuell nit.",
+ "categorytree-category": "Kategorie:",
+ "categorytree-go": "Leede",
+ "categorytree-parents": "Buppekategorien",
+ "categorytree-mode-categories": "bloot Kategorien",
+ "categorytree-mode-pages": "Sieden buute Doatäie",
+ "categorytree-mode-all": "aal Sieden",
+ "categorytree-collapse": "ienklappe",
+ "categorytree-expand": "uutklappe",
+ "categorytree-member-counts": "änthoalt {{PLURAL:$1|1 Unnerkategorie|$1 Unnerkategorien}}, {{PLURAL:$2|1 Siede|$2 Sieden}} un {{PLURAL:$3|1 Doatäi|$3 Doatäie}}",
+ "categorytree-load": "leede",
+ "categorytree-loading": "leede ...",
+ "categorytree-nothing-found": "Niks fuunen",
+ "categorytree-no-subcategories": "Neen Unnerkategorien",
+ "categorytree-no-parent-categories": "Neen Buppekategorien",
+ "categorytree-no-pages": "Neen Sieden of Unnerkategorien",
+ "categorytree-not-found": "Kategorie ''$1'' nit fuunen",
+ "categorytree-error": "Probleme bie dät Leeden fon do Doaten.",
+ "categorytree-retry": "Täif ieuwen un fersäik et dan fon näien."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sty.json b/www/wiki/extensions/CategoryTree/i18n/sty.json
new file mode 100644
index 00000000..1088bf7f
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sty.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Khanmarat"
+ ]
+ },
+ "categorytree-expand": "ацҡалы",
+ "categorytree-member-counts": "$1 {{PLURAL:$1|1 төргөннө|$1 төргөннәрне}}, $2 {{PLURAL:$2|1 питне|$2 питләрне}} әм {{PLURAL:$3|1 файл|$3 файлны}}ны үс эценә алаты",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 П",
+ "categorytree-num-files": "$1 Ф"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/su.json b/www/wiki/extensions/CategoryTree/i18n/su.json
new file mode 100644
index 00000000..ec27d2b4
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/su.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "Irwangatot",
+ "Kandar"
+ ]
+ },
+ "categorytree": "TangkalKategori",
+ "categorytree-portlet": "Kategori",
+ "categorytree-legend": "Témbongkeun tangkal kategori",
+ "categorytree-desc": "Gajet AJAX pikeun némbongkeun [[Special:CategoryTree|wangun kategori]] dina hiji wiki",
+ "categorytree-header": "Asupkeun hiji ngaran kategori pikeun nempo eusina dina wangun tangkal.\nPerhatikeun yén fitur ieu merlukeun pangrojong Javascript tingkat tuluy anu dipikawanoh minangka AJAX.\nLamun Anjeun ngagunakeun panyungsi nu lila, atawa maehan fungsi Javascript Anjeun, fitur ieu henteu bisa dijalankeun.",
+ "categorytree-category": "Kategori:",
+ "categorytree-go": "Témbongkeun Tangkal",
+ "categorytree-parents": "Luluhur",
+ "categorytree-mode-categories": "kategori wungkul",
+ "categorytree-mode-pages": "kaca iwal berkas",
+ "categorytree-mode-all": "sadaya kaca",
+ "categorytree-collapse": "tilep",
+ "categorytree-expand": "buka",
+ "categorytree-member-counts": "mibanda {{PLURAL:$1|1 subkategori|$1 subkategori}}, {{PLURAL:$2|1 kaca|$2 kaca}}, jeung {{PLURAL:$3|1 berkas|$3 berkas}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-load": "muatkeun",
+ "categorytree-loading": "ngamuat",
+ "categorytree-nothing-found": "teu manggih nanaon",
+ "categorytree-no-subcategories": "euweuh subkategori",
+ "categorytree-no-parent-categories": "taya kategori luhureunana",
+ "categorytree-no-pages": "euweuh kaca atawa subkategori",
+ "categorytree-not-found": "Kategori <i>$1</i> teu kapanggih",
+ "categorytree-error": "Aya masalah dina ngamuat data.",
+ "categorytree-retry": "Dago sakedap, lajeng coba deui."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sv.json b/www/wiki/extensions/CategoryTree/i18n/sv.json
new file mode 100644
index 00000000..6835c14d
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sv.json
@@ -0,0 +1,48 @@
+{
+ "@metadata": {
+ "authors": [
+ "Boivie",
+ "Diupwijk",
+ "Jon Harald Søby",
+ "Lejonel",
+ "Lokal Profil",
+ "M.M.S.",
+ "Sannab",
+ "WikiPhoenix",
+ "Jopparn"
+ ]
+ },
+ "categorytree": "Kategoriträd",
+ "categorytree-portlet": "Kategorier",
+ "categorytree-legend": "Visa kategoriträd",
+ "categorytree-desc": "Dynamisk navigation av [[Special:CategoryTree|kategoristrukturen]]",
+ "categorytree-header": "Fyll i ett kategorinamn för att se dess innehåll som en trädstruktur. (Kräver JavaScript.)",
+ "categorytree-category": "Kategori:",
+ "categorytree-go": "Visa träd",
+ "categorytree-parents": "Föräldrakategorier",
+ "categorytree-mode-label": "Läge:",
+ "categorytree-mode-categories": "endast kategorier",
+ "categorytree-mode-pages": "sidor utom filer",
+ "categorytree-mode-all": "alla sidor",
+ "categorytree-collapse": "göm",
+ "categorytree-expand": "expandera",
+ "categorytree-member-counts": "Innehåller {{PLURAL:$1|1 underkategori|$1 underkategorier}}, {{PLURAL:$2|1 sida|$2 sidor}}, och {{PLURAL:$3|1 fil|$3 filer}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 S",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "tom",
+ "categorytree-load": "ladda",
+ "categorytree-loading": "laddar",
+ "categorytree-nothing-found": "hittade inget",
+ "categorytree-no-subcategories": "inga underkategorier",
+ "categorytree-no-parent-categories": "inga föräldrakategorier",
+ "categorytree-no-pages": "inga artiklar eller underkategorier",
+ "categorytree-not-found": "Kategori ''$1'' hittades ej",
+ "categorytree-error": "Problem med att ladda data.",
+ "categorytree-retry": "Vänta en stund och försök igen.",
+ "apihelp-categorytree-description": "Intern modul för tillägget CategoryTree.",
+ "apihelp-categorytree-summary": "Intern modul för tillägget CategoryTree.",
+ "apihelp-categorytree-param-category": "Titel i kategorinamnrymden, prefix kommer att ignoreras om de anges.",
+ "apihelp-categorytree-param-options": "Alternativ för CategoryTree-konstruktören som ett JSON-objekt. Den <var>fördjupade</var> alternativa standardvärdet är <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Alternativ måste vara ett giltigt JSON-objekt."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/sw.json b/www/wiki/extensions/CategoryTree/i18n/sw.json
new file mode 100644
index 00000000..76bfc9ca
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/sw.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kwisha",
+ "Lloffiwr",
+ "Muddyb Blast Producer",
+ "Stephenwanjau",
+ "Muddyb"
+ ]
+ },
+ "categorytree": "Mfumo wa jamii",
+ "categorytree-portlet": "Jamii",
+ "categorytree-legend": "Onyesha mfumo wa jamii",
+ "categorytree-desc": "Chungulia kwenye [[Special:CategoryTree|mfumo wa jamii]]",
+ "categorytree-header": "Ingiza jina la jamii ili kuona yaliyomo kwenye mfumo wa jamii. '''Ilani''': hii itahitaji JavaScript ya kisasa ijulilkanayo kwa jina la AJAX. Endapo utakuwa na ya zamani, au JavaScript yako imezimwa, basi hii hatofanya kazi kabisa.",
+ "categorytree-category": "Jamii:",
+ "categorytree-go": "Onyesha mfumo",
+ "categorytree-parents": "Kuu",
+ "categorytree-mode-categories": "jamii tu",
+ "categorytree-mode-pages": "kurasa isipokuwa mafaili",
+ "categorytree-mode-all": "kurasa zote",
+ "categorytree-collapse": "kunja",
+ "categorytree-expand": "kutanua",
+ "categorytree-member-counts": "Imo {{PLURAL:$1|kijamii 1|vijamii $1}}, {{PLURAL:$2|ukurasa 1|kurasa $2}}, na {{PLURAL:$3|faili 1|mafaili $3}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "tupu",
+ "categorytree-load": "kupakia",
+ "categorytree-loading": "inapakizwa...",
+ "categorytree-nothing-found": "hakupatikana kitu",
+ "categorytree-no-subcategories": "jamii ndogo zake hakuna",
+ "categorytree-no-parent-categories": "jamii kuu hakuna",
+ "categorytree-no-pages": "hakuna kurasa wala jamii ndogo zake",
+ "categorytree-not-found": "Jamii inayoitwa $1 haikupatikana",
+ "categorytree-error": "Ilitokea tatizo zilipopakizwa data.",
+ "categorytree-retry": "Subiri kidogo tafadhali, halafu jaribu tena."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/szl.json b/www/wiki/extensions/CategoryTree/i18n/szl.json
new file mode 100644
index 00000000..f5e259fc
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/szl.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Krol111"
+ ]
+ },
+ "categorytree-expand": "rozwjyń",
+ "categorytree-member-counts": "Mo {{PLURAL:$1|1 podkategoryjo|$1 podkategoryje|$1 podkategoryji}}, {{PLURAL:$2|1 zajta|$2 zajty|$2 zajt}} a {{PLURAL:$3|1 plik|$3 pliki|$3 plikůw}}",
+ "categorytree-num-categories": "$1 kat.",
+ "categorytree-num-pages": "$1 zaj.",
+ "categorytree-num-files": "$1 pl."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ta.json b/www/wiki/extensions/CategoryTree/i18n/ta.json
new file mode 100644
index 00000000..73657a88
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ta.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Karthi.dr",
+ "Shanmugamp7",
+ "Surya Prakash.S.A.",
+ "TRYPPN",
+ "Trengarasu",
+ "மதனாஹரன்"
+ ]
+ },
+ "categorytree": "பகுப்பு மரம்",
+ "categorytree-portlet": "பகுப்புகள்",
+ "categorytree-legend": "பகுப்பு மரத்தைக் காட்டு",
+ "categorytree-header": "பகுப்பின் உள்ளடக்கங்களை ஒரு மர வரிப்படமாகப் பார்க்கப் பகுப்பின் பெயரை உள்ளிடவும்.\nஇதற்கு ஏசாக்சு என அறியப்படும் மேம்பட்ட யாவாக்கிறிட்டு வசதி தேவை என்பதை நினைவில் கொள்ளவும்.\nநீங்கள் மிகவும் பழைய மேலோடியொன்றைக் கொண்டிருந்தால் அல்லது யாவாக்கிறிட்டை முடக்கியிருந்தால், இது வேலை செய்யாது.",
+ "categorytree-category": "பகுப்பு:",
+ "categorytree-go": "மரத்தைக் காட்டு",
+ "categorytree-parents": "மூலங்கள்",
+ "categorytree-mode-categories": "பகுப்புகள் மட்டும்",
+ "categorytree-mode-pages": "பக்கங்கள் மட்டும், கோப்புக்கள் தவிர",
+ "categorytree-mode-all": "எல்லா பக்கங்களும்",
+ "categorytree-collapse": "சுருக்கு",
+ "categorytree-expand": "விரிவாக்கு",
+ "categorytree-member-counts": "{{PLURAL:$1|1 உபபகுப்பையும்|$1 உபபகுப்புகளையும்}} {{PLURAL:$2|1 பக்கத்தையும்|$2 பக்கங்களையும்}} {{PLURAL:$3|1 கோப்பையும்|$3 கோப்புகளையும்}} கொண்டுள்ளது",
+ "categorytree-num-categories": "$1 பகு",
+ "categorytree-num-pages": "$1 பக்.",
+ "categorytree-num-files": "$1 கோப்.",
+ "categorytree-num-empty": "காலி",
+ "categorytree-load": "ஏற்று",
+ "categorytree-loading": "ஏற்றப்படுகிறது...",
+ "categorytree-nothing-found": "ஒன்றும் காணப்படவில்லை",
+ "categorytree-no-subcategories": "துணைப்பகுப்புகள் கிடையாது",
+ "categorytree-no-parent-categories": "மூலபகுப்புக்கள் ஏதுமில்லை",
+ "categorytree-no-pages": "பக்கங்களோ அல்லது துணைப்பகுப்புகளோ கிடையாது",
+ "categorytree-not-found": "<i>$1</i> பகுப்பு காணப்படவில்லை",
+ "categorytree-error": "குறிப்புகளை ஏற்றுவதில் சிக்கல்",
+ "categorytree-retry": "கொஞ்ச நேரம் பொறுத்திருந்தபின் மீண்டும் முயற்சி செய்யுங்கள்."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/tay.json b/www/wiki/extensions/CategoryTree/i18n/tay.json
new file mode 100644
index 00000000..0a494c33
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/tay.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Corainn",
+ "Hitaypayan"
+ ]
+ },
+ "categorytree": "Pintbcyan na mlmlamu’ qhuniq",
+ "categorytree-portlet": "Ptbcyun",
+ "categorytree-legend": "Pkt’aniy quw pintbcyan na mlmlamu’ qhuniq",
+ "categorytree-category": "Ptbcyun:",
+ "categorytree-parents": "Pintbcyan na tay mkraya’",
+ "categorytree-mode-label": "Yaya’ na kkbalay:",
+ "categorytree-mode-categories": "nanak pintbcyan na mlmlamu’ quw spkita’",
+ "categorytree-mode-all": "kwara’ zzngayan",
+ "categorytree-collapse": "qmuzyup",
+ "categorytree-expand": "cankay",
+ "categorytree-member-counts": "Kwara’ kin na{{PLURAL:$1| $1 uzyuk na pintbcyan}}, {{PLURAL:$2|$2 gnyahan lpgan ruw}}, {{PLURAL:$3|$3 biru’ na zayzyuwaw}}",
+ "categorytree-num-categories": "$1 pintbcyan na mlmlamu’",
+ "categorytree-num-pages": "$1 qutux qutux gnyahan",
+ "categorytree-num-files": "$1 biru’ na zayzyuwaw",
+ "categorytree-num-empty": "ungat ana nanu’",
+ "categorytree-load": "lpgun",
+ "categorytree-loading": "nyuw lpgun na’...",
+ "categorytree-nothing-found": "Ktan ga ungat ana nanu’ mlmlamu’ na binkgan",
+ "categorytree-no-subcategories": "ungat quw pintbcyan sinlalu’",
+ "categorytree-no-parent-categories": "ungat pintbcyan tay mkraya’"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/tcy.json b/www/wiki/extensions/CategoryTree/i18n/tcy.json
new file mode 100644
index 00000000..81b905bf
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/tcy.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "VASANTH S.N.",
+ "Vishwanatha Badikana",
+ "రహ్మానుద్దీన్",
+ "Kiranpoojary"
+ ]
+ },
+ "categorytree-mode-all": "ಮಾತಾ ಪುಟೊಲು",
+ "categorytree-collapse": "ಕುಗ್ಗಿಸಾಲ",
+ "categorytree-expand": "ವಿಸ್ತಾರೊ ಮಲ್ಪುಲೆ",
+ "categorytree-member-counts": "{{PLURAL:$1|1 ಉಪವರ್ಗ|$1 ಉಪವರ್ಗೊಲು}}, {{PLURAL:$2|1 ಪುಟೊ|$2 ಪುಟೊಕುಲು}}, ಬೊಕ್ಕ {{PLURAL:$3|1 ಕಡತ|$3 ಕಡತಲು}} ಉಂಡು",
+ "categorytree-num-categories": "$1 ವ",
+ "categorytree-num-pages": "$1 ಪು",
+ "categorytree-num-files": "$1 ಕ",
+ "categorytree-num-empty": "ಖಾಲಿ",
+ "categorytree-load": "ದಿಂಜಾಲೆ",
+ "categorytree-loading": "ದಿಂಜಾವೊಂದು ಉಂಡು.......",
+ "categorytree-error": "ದತ್ತಾಂಶ ದಿಂಜಾನಗ ದೋಷ",
+ "categorytree-retry": "ದಯದೀದ್ ಒಂತೆ ಕಾತ್‘ದ್ ಪಿರ ಪ್ರಯತ್ನ ಮಲ್ಪುಲೆ"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/te.json b/www/wiki/extensions/CategoryTree/i18n/te.json
new file mode 100644
index 00000000..2d9f4540
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/te.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "C.Chandra Kanth Rao",
+ "Kiranmayee",
+ "Mpradeep",
+ "Ravichandra",
+ "Veeven",
+ "వైజాసత్య"
+ ]
+ },
+ "categorytree": "వర్గవృక్షం",
+ "categorytree-portlet": "వర్గాలు",
+ "categorytree-legend": "వర్గ వృక్షాన్ని చూపించు",
+ "categorytree-desc": "వికీ యొక్క [[Special:CategoryTree|వర్గ వృక్షాన్ని]] చూపించడానికి AJAX ఆధారిత పరికరం",
+ "categorytree-header": "ఒక వర్గంలోని అంశాలను వృక్షం లాగా చూసేందుకు ఆ వర్గం పేరును ఇక్కడ ఇవ్వండి. దీనికోసం AJAX అనే ఆధునిక జావాస్క్రిప్టు నైపుణ్యం కావాలి. మీ బ్రౌజరు బాగా పాతదయినా, లేక దానిలో జావాస్క్రిప్టు అశక్తంగా ఉన్నా ఇది పనిచెయ్యదు.",
+ "categorytree-category": "వర్గం:",
+ "categorytree-go": "వృక్షాన్ని చూపించు",
+ "categorytree-parents": "మాతృవర్గాలు",
+ "categorytree-mode-label": "విధం:",
+ "categorytree-mode-categories": "వర్గాలు మాత్రమే",
+ "categorytree-mode-pages": "ఫైళ్ళను మినహాయించి మిగిలిన పేజీలు",
+ "categorytree-mode-all": "అన్ని పేజీలు",
+ "categorytree-collapse": "మూసివేయి",
+ "categorytree-expand": "విస్తరించు",
+ "categorytree-member-counts": "{{PLURAL:$1|1 ఉపవర్గం|$1 ఉపవర్గాలూ}}, {{PLURAL:$2|1 పేజీ|$2 పేజీలూ}}, మరియు {{PLURAL:$3|1 ఫైలూ|$3 ఫైళ్ళూ}} ఉన్నాయి",
+ "categorytree-num-categories": "$1 వ",
+ "categorytree-num-pages": "$1 పే",
+ "categorytree-num-files": "$1 ద",
+ "categorytree-num-empty": "ఖాళీ",
+ "categorytree-load": "లోడు",
+ "categorytree-loading": "లోడవుతోంది...",
+ "categorytree-nothing-found": "ఏమీ లేవు",
+ "categorytree-no-subcategories": "ఉపవర్గాలు లేవు",
+ "categorytree-no-parent-categories": "మాతృవర్గం లేదు",
+ "categorytree-no-pages": "పేజీలు గానీ, ఉపవర్గాలు గానీ లేవు",
+ "categorytree-not-found": "<i>$1</i> అనే వర్గం కనపడలేదు",
+ "categorytree-error": "డేటా లోడు చెయ్యడంలో లోపం దొర్లింది",
+ "categorytree-retry": "కాస్త ఆగి మళ్ళీ ప్రయత్నించండి."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/tet.json b/www/wiki/extensions/CategoryTree/i18n/tet.json
new file mode 100644
index 00000000..06e9f74e
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/tet.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "MF-Warburg"
+ ]
+ },
+ "categorytree": "Ai-hun kategoria",
+ "categorytree-portlet": "Kategoria sira",
+ "categorytree-category": "Kategoria:",
+ "categorytree-go": "Hatudu ai-hun",
+ "categorytree-mode-categories": "hatudu de'it kategoria",
+ "categorytree-mode-all": "pájina hotu",
+ "categorytree-num-categories": "$1 K"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/tg-cyrl.json b/www/wiki/extensions/CategoryTree/i18n/tg-cyrl.json
new file mode 100644
index 00000000..c77ae5a1
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/tg-cyrl.json
@@ -0,0 +1,32 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ibrahim",
+ "ToJack"
+ ]
+ },
+ "categorytree": "ГурӯҳДарахт",
+ "categorytree-portlet": "Гурӯҳҳо",
+ "categorytree-legend": "Намоиши дарахти гурӯҳ",
+ "categorytree-desc": "Абзоре дар асоси AJAX барои намоиши [[Special:CategoryTree|сохтори гурӯҳи]] вики.",
+ "categorytree-header": "Номи як гурӯҳро ворид кунед, то мӯҳтавиёти он ба сурати дарахт намоиш ёбад.\nТаваҷҷӯҳ кунед, ки ин кор ба қобилиятҳои пешрафтаи ҶаваСкрипт бо номи Аҷакс ниёз дорад.\nАгар аз мурургари хеле кӯҳна истифода мекунед ё ҶаваСкриптро ғайрифаъол кардаед, дар ин ҳол он кор нахоҳад кард.",
+ "categorytree-category": "Гурӯҳ:",
+ "categorytree-go": "Намоиши дарахт",
+ "categorytree-parents": "Волидайн",
+ "categorytree-mode-categories": "Фақат гурӯҳҳо",
+ "categorytree-mode-pages": "саҳифаҳо ғайр аз аксҳо",
+ "categorytree-mode-all": "ҳамаи саҳифаҳо",
+ "categorytree-collapse": "фурукаш",
+ "categorytree-expand": "густариш",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-empty": "холӣ",
+ "categorytree-load": "бор кардан",
+ "categorytree-loading": "дар ҳоли бор шудан…",
+ "categorytree-nothing-found": "ҳеҷчиз ёфт нашуд",
+ "categorytree-no-subcategories": "ҳеҷ зергурӯҳе надорад",
+ "categorytree-no-parent-categories": "гурӯҳи болотаре нест",
+ "categorytree-no-pages": "ҳеҷ саҳифае ё зергурӯҳе",
+ "categorytree-not-found": "Гурӯҳи <i>$1</i> ёфт нашуд",
+ "categorytree-error": "Ишкол дар дарёфти иттилоот",
+ "categorytree-retry": "Лутфан чанд лаҳза сабр кунед ва дубора имтиҳон кунед."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/tg-latn.json b/www/wiki/extensions/CategoryTree/i18n/tg-latn.json
new file mode 100644
index 00000000..486d1acd
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/tg-latn.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Liangent"
+ ]
+ },
+ "categorytree": "GurūhDaraxt",
+ "categorytree-portlet": "Gurūhho",
+ "categorytree-legend": "Namoişi daraxti gurūh",
+ "categorytree-desc": "Abzore dar asosi AJAX baroi namoişi [[Special:CategoryTree|soxtori gurūhi]] viki.",
+ "categorytree-header": "Nomi jak gurūhro vorid kuned, to mūhtavijoti on ba surati daraxt namoiş jobad.\nTavaççūh kuned, ki in kor ba qobilijathoi peşraftai ÇavaSkript bo nomi Açaks nijoz dorad.\nAgar az mururgari xele kūhna istifoda mekuned jo ÇavaSkriptro ƣajrifa'ol kardaed, dar in hol on kor naxohad kard.",
+ "categorytree-category": "Gurūh:",
+ "categorytree-go": "Namoişi daraxt",
+ "categorytree-parents": "Volidajn",
+ "categorytree-mode-categories": "Faqat gurūhho",
+ "categorytree-mode-pages": "sahifaho ƣajr az aksho",
+ "categorytree-mode-all": "hamai sahifaho",
+ "categorytree-collapse": "furukaş",
+ "categorytree-expand": "gustariş",
+ "categorytree-load": "bor kardan",
+ "categorytree-loading": "dar holi bor şudan…",
+ "categorytree-nothing-found": "heçciz joft naşud",
+ "categorytree-no-subcategories": "heç zergurūhe nadorad",
+ "categorytree-no-parent-categories": "gurūhi bolotare nest",
+ "categorytree-no-pages": "heç sahifae jo zergurūhe",
+ "categorytree-not-found": "Gurūhi <i>$1</i> joft naşud",
+ "categorytree-error": "Işkol dar darjofti ittiloot",
+ "categorytree-retry": "Lutfan cand lahza sabr kuned va dubora imtihon kuned."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/th.json b/www/wiki/extensions/CategoryTree/i18n/th.json
new file mode 100644
index 00000000..a04449f9
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/th.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Horus",
+ "Manop",
+ "Octahedron80",
+ "Passawuth"
+ ]
+ },
+ "categorytree": "หมวดหมู่แบบผังต้นไม้",
+ "categorytree-portlet": "หมวดหมู่",
+ "categorytree-legend": "แสดงผังหมวดหมู่",
+ "categorytree-desc": "สำรวจ[[Special:CategoryTree|โครงสร้างหมวดหมู่]]แบบผังต้นไม้",
+ "categorytree-header": "ป้อนชื่อหมวดหมู่เพื่อดูเนื้อหาเป็นโครงสร้างผังต้นไม้\nการทำงานนี้จำเป็นต้องใช้ความสามารถขั้นสูงของจาวาสคริปต์ที่เรียกว่า เอแจ็กซ์\nหากคุณใช้เบราว์เซอร์รุ่นเก่า หรือปิดการใช้งานจาวาสคริปต์ ความสามารถนี้จะไม่ทำงาน",
+ "categorytree-category": "หมวดหมู่",
+ "categorytree-go": "โหลด",
+ "categorytree-parents": "หมวดหมู่ใหญ่",
+ "categorytree-mode-categories": "แสดงเฉพาะหมวดหมู่",
+ "categorytree-mode-pages": "หน้าต่างๆ ยกเว้นไฟล์",
+ "categorytree-mode-all": "หน้าทุกหน้า",
+ "categorytree-collapse": "ย่อ",
+ "categorytree-expand": "ขยาย",
+ "categorytree-member-counts": "มี {{PLURAL:$1|1 หมวดหมู่ย่อย|$1 หมวดหมู่ย่อย}}, {{PLURAL:$2|1 หน้า|$2 หน้า}}, และ {{PLURAL:$3|1 ไฟล์|$3 ไฟล์}}",
+ "categorytree-num-categories": "$1 ม",
+ "categorytree-num-pages": "$1 น",
+ "categorytree-num-files": "$1 ฟ",
+ "categorytree-num-empty": "ว่าง",
+ "categorytree-load": "โหลด",
+ "categorytree-loading": "กำลังโหลด...",
+ "categorytree-nothing-found": "ไม่พบที่ต้องการ",
+ "categorytree-no-subcategories": "ไม่มีหมวดหมู่ย่อย",
+ "categorytree-no-parent-categories": "ไม่มีหมวดหมู่ระดับบน",
+ "categorytree-no-pages": "ไม่มีหน้าหรือหมวดหมู่ย่อย",
+ "categorytree-not-found": "ไม่พบหมวดหมู่ <i>$1</i>",
+ "categorytree-error": "การโหลดข้อมูลมีปัญหา",
+ "categorytree-retry": "กรุณารอสักครู่ แล้วลองโหลดใหม่อีกครั้ง"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/tk.json b/www/wiki/extensions/CategoryTree/i18n/tk.json
new file mode 100644
index 00000000..c1dd4d64
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/tk.json
@@ -0,0 +1,30 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hanberke"
+ ]
+ },
+ "categorytree": "Kategoriýa agajy",
+ "categorytree-portlet": "Kategoriýalar",
+ "categorytree-legend": "Kategoriýa agajyny görkez",
+ "categorytree-desc": "[[Special:CategoryTree|Kategoriýa gurluşyny]] dinamik ýagdaýda dolandyr",
+ "categorytree-header": "Kategoriýanyň adyny ýazyp, onuň mazmunyny agaç gurluşy hökmünde görüp bilersiňiz.\nBu aýratynlyk AJAX ady bilen tanalýan ösen JavaScript bilen işleýändir.\nEger brauzeriňiz köne bolsa ýa-da JavaScript ýapyk bolsa, onda ol işlemez.",
+ "categorytree-category": "Kategoriýa:",
+ "categorytree-go": "Agajy görkez",
+ "categorytree-parents": "Ene kategoriýalar",
+ "categorytree-mode-categories": "diňe kategoriýalar",
+ "categorytree-mode-pages": "faýldan başga sahypalar",
+ "categorytree-mode-all": "ähli sahypalar",
+ "categorytree-collapse": "ýygna",
+ "categorytree-expand": "giňelt",
+ "categorytree-member-counts": "{{PLURAL:$1|1 kiçi kategoriýany|$1 kiçi kategoriýany}}, {{PLURAL:$2|1 sahypany|$2 sahypany}} we {{PLURAL:$3|1 faýly|$3 faýly}} öz içine alýar",
+ "categorytree-load": "ýükle",
+ "categorytree-loading": "ýüklenýär...",
+ "categorytree-nothing-found": "hiç zat tapylmady",
+ "categorytree-no-subcategories": "kiçi kategoriýa ýok",
+ "categorytree-no-parent-categories": "ene kategoriýa ýok",
+ "categorytree-no-pages": "sahypa ýa-da kiçi kategoriýa ýok",
+ "categorytree-not-found": "<i>\"$1\"</i> kategoriýasy tapylmady",
+ "categorytree-error": "Maglumat ýükleme problemsy.",
+ "categorytree-retry": "Bir sellem garaşyň we gaýtadan synaň."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/tl.json b/www/wiki/extensions/CategoryTree/i18n/tl.json
new file mode 100644
index 00000000..c926f5b7
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/tl.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "AnakngAraw",
+ "Lam-ang",
+ "Stranger195"
+ ]
+ },
+ "categorytree": "Puno ng kaurian",
+ "categorytree-portlet": "Mga kaurian",
+ "categorytree-legend": "Ipakita ang puno ng kaurian",
+ "categorytree-desc": "Masiglang libutin ang [[Special:CategoryTree|kayarian ng kaurian]]",
+ "categorytree-header": "Maglagay (magpasok) ng isang pangalan ng kaurian upang makita ang nilalaman nito bilang isang kayarian ng isang puno.\nTandaan na nangangailangan ito ng mas masulong na tungkuling pang-JavaScript na kilala bilang AJAX.\nKapag mayroon kang isang napakatandang/napakalumang pantingin-tingin (''browser''), o hindi pinapagana ang JavaScript, hindi ito magagawa/walang mangyayari.",
+ "categorytree-category": "Kaurian:",
+ "categorytree-go": "Ipakita ang puno",
+ "categorytree-parents": "Mga magulang",
+ "categorytree-mode-categories": "mga kaurian lamang",
+ "categorytree-mode-pages": "mga pahina maliban sa mga talaksan",
+ "categorytree-mode-all": "lahat ng mga pahina",
+ "categorytree-collapse": "tiklupin",
+ "categorytree-expand": "palaparin",
+ "categorytree-expand-bullet": "►",
+ "categorytree-empty-bullet": "►",
+ "categorytree-member-counts": "Naglalaman ng {{PLURAL:$1|1 subkategorya|$1 subkategorya}}, {{PLURAL:$2|1 pahina|$2 mga pahina}}, at {{PLURAL:$3|1 talaksan|$3 mga talaksan}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "walang laman",
+ "categorytree-load": "ikarga",
+ "categorytree-loading": "ikinakarga…",
+ "categorytree-nothing-found": "walang natagpuan",
+ "categorytree-no-subcategories": "walang kabahaging mga kaurian",
+ "categorytree-no-parent-categories": "walang magulang (pinagmulan) na mga kaurian",
+ "categorytree-no-pages": "walang mga pahina o kabahaging mga kaurian/subkaurian (subkategorya)",
+ "categorytree-not-found": "Hindi natagpuan ang kauriang <i>$1</i>",
+ "categorytree-error": "May suliranin sa pagkakarga ng dato.",
+ "categorytree-retry": "Maghintay lamang ng isang sandali at subuking muli."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/tly.json b/www/wiki/extensions/CategoryTree/i18n/tly.json
new file mode 100644
index 00000000..3363aa1e
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/tly.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Гусейн"
+ ]
+ },
+ "categorytree": "Категоријон до",
+ "categorytree-portlet": "Категоријон",
+ "categorytree-legend": "Категоријон до нишо дој",
+ "categorytree-header": "Категоријә номи бынывыштән, ијән ав нишо бәбе бәнә до.\nЫм мымкуне, гирәм шымә браузерәдә AJAX һесте.\nГирәм шымәку браузери канә рәвојәте ја JavaScript быријә быә, жинә категоријон нишо дој бәнә до әбыни.",
+ "categorytree-category": "Тиспир:",
+ "categorytree-go": "Бо жәј",
+ "categorytree-parents": "Пыә-моә категоријон",
+ "categorytree-mode-categories": "әнҹәх категоријон",
+ "categorytree-mode-pages": "сывој фајлон",
+ "categorytree-mode-all": "Һәммәј сәһифон",
+ "categorytree-collapse": "бурмә кардеј",
+ "categorytree-expand": "һовуж кардеј",
+ "categorytree-member-counts": "Дыләдә һестыше {{PLURAL:$1|1 жинә категоријә|$1 жинә категоријә}}, {{PLURAL:$2|1 сәһифә|$2 сәһифә}}, ијән {{PLURAL:$3|1 фајл|$3 фајл}}",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 С",
+ "categorytree-num-files": "$1 Ф",
+ "categorytree-num-empty": "тәј",
+ "categorytree-load": "бо жәј",
+ "categorytree-loading": "бо карде...",
+ "categorytree-nothing-found": "Ым категоријәдә жинә категоријә ни.",
+ "categorytree-no-subcategories": "категоријон жинтон ни",
+ "categorytree-no-parent-categories": "пыә-моә категоријә ни",
+ "categorytree-no-pages": "нә мәғолә һесте, нә жинә категоријон",
+ "categorytree-not-found": "Категоријә «$1» пәјдо быәни.",
+ "categorytree-error": "Мәлумоти бо карде сәһве.",
+ "categorytree-retry": "Быһамијән, и тикә чәш быкан ијән икәрән осә быкан."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/to.json b/www/wiki/extensions/CategoryTree/i18n/to.json
new file mode 100644
index 00000000..a3a0a723
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/to.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fanjiayi"
+ ]
+ },
+ "categorytree": "Fuʻuʻakau faʻahinga",
+ "categorytree-category": "Faʻahinga:",
+ "categorytree-go": "ʻAsi mai",
+ "categorytree-collapse": "holo",
+ "categorytree-expand": "fano",
+ "categorytree-num-pages": "$1 P"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/tpi.json b/www/wiki/extensions/CategoryTree/i18n/tpi.json
new file mode 100644
index 00000000..b8d8a638
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/tpi.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iketsi",
+ "Wantok"
+ ]
+ },
+ "categorytree-portlet": "Ol grup",
+ "categorytree-category": "Grup:",
+ "categorytree-mode-all": "Olgeta pes"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/tr.json b/www/wiki/extensions/CategoryTree/i18n/tr.json
new file mode 100644
index 00000000..2a7bfca8
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/tr.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Joseph",
+ "Karduelis",
+ "Khutuck",
+ "Mach",
+ "Runningfridgesrule",
+ "Stultiwikia",
+ "Vito Genovese",
+ "Superyetkin"
+ ]
+ },
+ "categorytree": "Kategori hiyerarşisi",
+ "categorytree-portlet": "Kategoriler",
+ "categorytree-legend": "Kategori ağacını göster",
+ "categorytree-desc": "[[Special:CategoryTree|Kategori yapısını]] dinamik olarak idare et",
+ "categorytree-header": "Kategori ismini girip, içeriğini hiyerarşik şekilde görebilirsiniz. Bu özellik AJAX adıyla bilinen gelişmiş JavaScript ile çalışabilir. Eğer tarayıcınız eski ise ya da JavaScript kullanımı kapalı ise, çalışmaz.",
+ "categorytree-category": "Kategori",
+ "categorytree-go": "Ağacı göster",
+ "categorytree-parents": "Üst kategoriler",
+ "categorytree-mode-label": "Mod:",
+ "categorytree-mode-categories": "sadece kategorileri göster",
+ "categorytree-mode-pages": "dosyalar dışındaki sayfalar",
+ "categorytree-mode-all": "tüm sayfalar",
+ "categorytree-collapse": "aç/kapat",
+ "categorytree-expand": "genişlet",
+ "categorytree-member-counts": "{{PLURAL:$1|1 alt kategori|$1 alt kategori}}, {{PLURAL:$2|1 sayfa|$2 sayfa}} ve {{PLURAL:$3|1 dosya|$3 dosya}} içeriyor",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 M",
+ "categorytree-num-files": "$1 D",
+ "categorytree-num-empty": "boş",
+ "categorytree-load": "yükle",
+ "categorytree-loading": "yükleniyor",
+ "categorytree-nothing-found": "hiçbir şey bulunamadı",
+ "categorytree-no-subcategories": "alt kategori yok.",
+ "categorytree-no-parent-categories": "üst kategori yok",
+ "categorytree-no-pages": "alt kategori veya madde yok.",
+ "categorytree-not-found": "<i>\"$1\"</i> isimli kategori bulunamadı",
+ "categorytree-error": "Bilgi yüklenmesi ile bir problem var.",
+ "categorytree-retry": "Lütfen kısa süre için bekleyin, sonra bir kere daha deneyin."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/tru.json b/www/wiki/extensions/CategoryTree/i18n/tru.json
new file mode 100644
index 00000000..085aa9c9
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/tru.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ariyo"
+ ]
+ },
+ "categorytree": "Dawmo daSedre",
+ "categorytree-portlet": "Sedre",
+ "categorytree-legend": "Maḥway li i Dawmo daSedre",
+ "categorytree-category": "Sedro:",
+ "categorytree-go": "Maḥway li iDawmo",
+ "categorytree-mode-categories": "bes aSedre",
+ "categorytree-num-categories": "$1 S",
+ "categorytree-num-pages": "$1 F",
+ "categorytree-num-files": "$1 M",
+ "categorytree-num-empty": "xalyo",
+ "categorytree-not-found": "uSedro \"$1\" lo komaḥwe."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ts.json b/www/wiki/extensions/CategoryTree/i18n/ts.json
new file mode 100644
index 00000000..17ba181d
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ts.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Thuvack"
+ ]
+ },
+ "categorytree-portlet": "Swiyenge",
+ "categorytree-legend": "Kombisa swi yenge",
+ "categorytree-category": "Xiyenge:"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/tt-cyrl.json b/www/wiki/extensions/CategoryTree/i18n/tt-cyrl.json
new file mode 100644
index 00000000..6a06839e
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/tt-cyrl.json
@@ -0,0 +1,43 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ajdar",
+ "Ilnur efende",
+ "Ильнар",
+ "Derslek",
+ "Don Alessandro"
+ ]
+ },
+ "categorytree": "Төркемнәр \"агачы\".",
+ "categorytree-portlet": "Төркемнәр",
+ "categorytree-legend": "Төркемнәрнең шәҗәрәсен ачарга",
+ "categorytree-desc": "[[Special:CategoryTree|Төркемнәрнең асылы]]н аңлату өчен төзелгән AJAX-бит",
+ "categorytree-header": "Төркемнең исемен кертегез һәм ул шәҗәрә рәвешендә күрсәтеләчәк (JavaScript кирәк булачак).",
+ "categorytree-category": "Төркем:",
+ "categorytree-go": "Йөкләү",
+ "categorytree-parents": "Төп төркемнәр",
+ "categorytree-mode-label": "Режим:",
+ "categorytree-mode-categories": "бары тик төркемнәр генә урнаштырылган",
+ "categorytree-mode-pages": "файллардан башка",
+ "categorytree-mode-all": "барлык битләр",
+ "categorytree-collapse": "яшерү",
+ "categorytree-expand": "ачу",
+ "categorytree-member-counts": "$1 {{PLURAL:$1|1 тәркемчәне|$1 тәркемчәләрне|$1 тәркемчәләрдән}}, $2 {{PLURAL:$2|1 битне|$2 битләрне|$2 битләрдән}} һәм {{PLURAL:$3|1 файл|$3 файлны}}ны үз эченә ала",
+ "categorytree-num-categories": "$1 Т",
+ "categorytree-num-pages": "$1 Б",
+ "categorytree-num-files": "$1 Ф",
+ "categorytree-num-empty": "буш",
+ "categorytree-load": "йөкләү",
+ "categorytree-loading": "йөкләү бара…",
+ "categorytree-nothing-found": "бернидә табылмады",
+ "categorytree-no-subcategories": "мондый төркемчәләр юк",
+ "categorytree-no-parent-categories": "төп бүлекләр юк",
+ "categorytree-no-pages": "мондый бит яки төркемчә юк",
+ "categorytree-not-found": "<i>$1</i> бүлеге табылмады",
+ "categorytree-error": "Хата",
+ "categorytree-retry": "Зинһар бераз көтеп торыгыз һәм тагын бер кат йөкләүне башкарып карагыз.",
+ "apihelp-categorytree-description": "CategoryTree кушымтасы өчен эчке модуль.",
+ "apihelp-categorytree-param-category": "Төркемнәр мәйданы исемлеге, куелган очракта префикс кулланылмый.",
+ "apihelp-categorytree-param-options": "JSON-җисемнәр сыман CategoryTree төзүчесе төрләре. <var>depth</var> (тирәнлек) параметры <kbd>1</kbd> итеп куелган.",
+ "apierror-categorytree-invalidjson": "Юрамалар JSON-җисемнәре белән валид булырга тиеш."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/tt-latn.json b/www/wiki/extensions/CategoryTree/i18n/tt-latn.json
new file mode 100644
index 00000000..e0686e6f
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/tt-latn.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Frhdkazan"
+ ]
+ },
+ "categorytree-expand": "açırğa",
+ "categorytree-member-counts": "Eçendä {{PLURAL:$1|1 astörkem|$1 astörkem}}, {{PLURAL:$2|1 bit|$2 bit}}, häm {{PLURAL:$3|1 fayl|$3 fayl}} bar",
+ "categorytree-num-categories": "$1 törkem",
+ "categorytree-num-pages": "$1 bit",
+ "categorytree-num-files": "$1 Fayl"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/tyv.json b/www/wiki/extensions/CategoryTree/i18n/tyv.json
new file mode 100644
index 00000000..c1a697c5
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/tyv.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sborsody",
+ "Монгуш Салим"
+ ]
+ },
+ "categorytree-portlet": "Чергелер",
+ "categorytree-category": "Черге:",
+ "categorytree-mode-all": "шупту арыннар",
+ "categorytree-collapse": "кызырары",
+ "categorytree-expand": "херер"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/tzm.json b/www/wiki/extensions/CategoryTree/i18n/tzm.json
new file mode 100644
index 00000000..1f2c0cb9
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/tzm.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Tifinaghes"
+ ]
+ },
+ "categorytree": "ⵜⴰⴷⴷⴰⴳⵜ ⵏ ⵜⴰⴳⴳⴰⵢⵜ",
+ "categorytree-portlet": "ⵜⴰⴳⴳⴰⵢⵉⵏ",
+ "categorytree-category": "ⵜⴰⴳⴳⴰⵢⵜ",
+ "categorytree-go": "ⵥⵕ ⵜⴰⴷⴷⴰⴳⵜ",
+ "categorytree-mode-categories": "ⵜⴰⴳⴳⴰⵢⵉⵏ ⵚⴰⴼⵉ",
+ "categorytree-mode-all": "ⵎⴰⵕⵕⴰ ⵜⵉⵙⵏⴰⵡⵉⵏ",
+ "categorytree-expand": "ⴰⴼⵔⴷⵉⵙ",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 ⵜ",
+ "categorytree-num-files": "$1 ⴼ",
+ "categorytree-num-empty": "ⵓⵔ ⴷⵉⵙ ⴰⵎⵢⴰ",
+ "categorytree-nothing-found": "ⵓⵔ ⵉⵍⵍⴰ ⵓⵎⵢⴰ"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/udm.json b/www/wiki/extensions/CategoryTree/i18n/udm.json
new file mode 100644
index 00000000..f9c20029
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/udm.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kaganer",
+ "AlnashPiyash2",
+ "Wadorgurt"
+ ]
+ },
+ "categorytree-collapse": "ватоно",
+ "categorytree-expand": "возьматоно",
+ "categorytree-member-counts": "Возе {{PLURAL:$1|$1 подкатегория}}, {{PLURAL:$2|$2 бам}} но {{PLURAL:$3|$3 файл}}",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 Б",
+ "categorytree-num-files": "$1 Ф"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ug-arab.json b/www/wiki/extensions/CategoryTree/i18n/ug-arab.json
new file mode 100644
index 00000000..81b88423
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ug-arab.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sahran",
+ "Uzdil"
+ ]
+ },
+ "categorytree": "تۈرلەر شېخى",
+ "categorytree-portlet": "تۈرلەر",
+ "categorytree-legend": "تۈرلەر شېخىنى كۆرسەت",
+ "categorytree-desc": "[[Special:CategoryTree|تۈرلەر قۇرۇلمىسى]] ھەرىكەتچان يولباشچى",
+ "categorytree-category": "تۈرى:",
+ "categorytree-go": "شاخنى كۆرسەت",
+ "categorytree-parents": "ئاتا تۈرلەر",
+ "categorytree-mode-label": "ئۇسۇلى:",
+ "categorytree-mode-categories": "تۈرلەرلا",
+ "categorytree-mode-pages": "بەتلەردىن باشقا ھۆججەتلەر",
+ "categorytree-mode-all": "ھەممە بەتلەر",
+ "categorytree-collapse": "قاتلا",
+ "categorytree-expand": "ياي",
+ "categorytree-expand-bullet": "◄",
+ "categorytree-empty-bullet": "◄",
+ "categorytree-member-counts": "{PLURAL:$1|1 تارماق تۈر|$1 تارماق تۈر}}، {{PLURAL:$2|1 بەت|$2 بەت}} ۋە {{PLURAL:$3|1 ھۆججەت|$3 ھۆججەت}}نى ئۆز ئىچىگە ئالىدۇ",
+ "categorytree-num-categories": "$1 تۈر",
+ "categorytree-num-pages": "$1 بەت",
+ "categorytree-num-files": "$1 ھۆججەت",
+ "categorytree-num-empty": "بوش",
+ "categorytree-load": "يۈكلە",
+ "categorytree-loading": "يۈكلەۋاتىدۇ…",
+ "categorytree-nothing-found": "ھېچنېمە تېپىلمىدى",
+ "categorytree-no-subcategories": "تارماق تۈر يوق",
+ "categorytree-no-parent-categories": "ئاتا تۈر يوق",
+ "categorytree-no-pages": "بەت ياكى تارماق تۈر يوق",
+ "categorytree-not-found": "<i>$1</i> تۈر تېپىلمىدى",
+ "categorytree-error": "سانلىق مەلۇمات يۈكلەش مەسىلىسى.",
+ "categorytree-retry": "سەل كۈتۈپ ئاندىن قايتا سىناڭ."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/uk.json b/www/wiki/extensions/CategoryTree/i18n/uk.json
new file mode 100644
index 00000000..591df2b2
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/uk.json
@@ -0,0 +1,45 @@
+{
+ "@metadata": {
+ "authors": [
+ "AS",
+ "Ahonc",
+ "Base",
+ "Sodmy",
+ "Piramidion",
+ "Ата"
+ ]
+ },
+ "categorytree": "Дерево категорій",
+ "categorytree-portlet": "Категорії",
+ "categorytree-legend": "Показати дерево категорій",
+ "categorytree-desc": "AJAX-компонент для відображення [[Special:CategoryTree|структури категорій]] вікі",
+ "categorytree-header": "Уведіть назву категорії, і вона буде показана у вигляді дерева. (Вимагає JavaScript).",
+ "categorytree-category": "Категорія:",
+ "categorytree-go": "Показати дерево",
+ "categorytree-parents": "Батьківські категорії",
+ "categorytree-mode-label": "Режим:",
+ "categorytree-mode-categories": "тільки категорії",
+ "categorytree-mode-pages": "окрім зображень",
+ "categorytree-mode-all": "усі сторінки",
+ "categorytree-collapse": "згорнути",
+ "categorytree-expand": "розгорнути",
+ "categorytree-member-counts": "містить $1 {{PLURAL:$1|підкатегорію|підкатегорії|підкатегорій}}, $2 {{PLURAL:$2|сторінку|сторінки|сторінок}} та $3 {{PLURAL:$3|файл|файли|файлів}}",
+ "categorytree-num-categories": "$1 К",
+ "categorytree-num-pages": "$1 С",
+ "categorytree-num-files": "$1 Ф",
+ "categorytree-num-empty": "порожня",
+ "categorytree-load": "завантажити",
+ "categorytree-loading": "завантаження…",
+ "categorytree-nothing-found": "нема підкатегорій",
+ "categorytree-no-subcategories": "нема підкатегорій",
+ "categorytree-no-parent-categories": "нема батьківських категорій",
+ "categorytree-no-pages": "нема статей і підкатегорій",
+ "categorytree-not-found": "Категорія «$1» не знайдена.",
+ "categorytree-error": "Помилка завантаження даних.",
+ "categorytree-retry": "Будь ласка, зачекайте і спробуйте ще раз.",
+ "apihelp-categorytree-description": "Внутрішній модуль для розширення CategoryTree.",
+ "apihelp-categorytree-summary": "Внутрішній модуль для розширення CategoryTree.",
+ "apihelp-categorytree-param-category": "Назва в просторі назв категорій. Якщо буде вказаний префікс, він буде проігнорований.",
+ "apihelp-categorytree-param-options": "Опції для конструктора CategoryTree як об'єкта JSON. Параметр глибини (<var>depth</var>) за замовчуванням встановлений як <kbd>1</kbd>.",
+ "apierror-categorytree-invalidjson": "Опції мають бути коректним JSON-об'єктом."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/ur.json b/www/wiki/extensions/CategoryTree/i18n/ur.json
new file mode 100644
index 00000000..21ee0550
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/ur.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "Istabani",
+ "පසිඳු කාවින්ද",
+ "Obaid Raza",
+ "Muhammad Shuaib",
+ "BukhariSaeed"
+ ]
+ },
+ "categorytree": "شجرہ زمرہ جات",
+ "categorytree-portlet": "زمرہ",
+ "categorytree-legend": "مختلف اقسام دکھائیں",
+ "categorytree-desc": "[[Special:CategoryTree|زمرہ جات کی متحرک ساخت]]",
+ "categorytree-header": "ایک زمرہ کا نام لکھ کے اس کا مکمل ساخت کو [[شجرہ نسب|شجرہ]] کی صورت میں دیکھیے۔ (جاوا اسکرپٹ کی ضرورت ہے)",
+ "categorytree-category": "زمرہ",
+ "categorytree-go": "بہ ترتیب شجر",
+ "categorytree-parents": "والدین",
+ "categorytree-mode-label": "طور:",
+ "categorytree-mode-categories": "صرف زمرہ جات",
+ "categorytree-mode-pages": "فائلوں کے علاوہ صفحات",
+ "categorytree-mode-all": "تمام صفحات",
+ "categorytree-collapse": "چھپائیں",
+ "categorytree-expand": "وسیع کریں",
+ "categorytree-expand-bullet": "◄",
+ "categorytree-empty-bullet": "◄",
+ "categorytree-member-counts": "اس میں {{PLURAL:$1|1 ذیلی زمرہ|$1 ذیلی زمرہ جات}}، {{PLURAL:$2|1 صفحہ|$2 صفحات}} اور {{PLURAL:$3|1 فائل|$3 فائلیں}} موجود ہیں/ہے۔",
+ "categorytree-num-categories": "$1 ز",
+ "categorytree-num-pages": "$1 ص",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "خالی",
+ "categorytree-load": "اثقال",
+ "categorytree-loading": "دوران اثقال",
+ "categorytree-nothing-found": "کچھ دستیاب نہیں",
+ "categorytree-no-subcategories": "کوئی ذیلی زمرہ نہیں",
+ "categorytree-no-parent-categories": "کوئی والدین کے زمرہ جات",
+ "categorytree-no-pages": "کوئی صفحہ یا ذیلی زمرہ موجود نہیں",
+ "categorytree-not-found": "زمرہ <i>$1</i> نہیں ملا",
+ "categorytree-error": "مسئلہ ڈیٹا لوڈ ہو رہا ہے.",
+ "categorytree-retry": "براہ مہربانی ایک لمحے کا انتظار کریں اور دوبارہ کوشش کریں."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/uz.json b/www/wiki/extensions/CategoryTree/i18n/uz.json
new file mode 100644
index 00000000..9249ad34
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/uz.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Abdulla",
+ "Sociologist"
+ ]
+ },
+ "categorytree-category": "Turkum:",
+ "categorytree-mode-all": "barcha sahifalar",
+ "categorytree-expand": "yoyish"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/vec.json b/www/wiki/extensions/CategoryTree/i18n/vec.json
new file mode 100644
index 00000000..507de049
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/vec.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Candalua",
+ "GatoSelvadego"
+ ]
+ },
+ "categorytree": "Strutura ad àlbaro de le categorie",
+ "categorytree-portlet": "Categorie",
+ "categorytree-legend": "Mostra l'àlbaro de le categorie",
+ "categorytree-desc": "Acessorio AJAX par visualizar la [[Special:CategoryTree|strutura de le categorie]] del sito",
+ "categorytree-header": "Inserissi el nome de la categoria de cui te vol védar el contenuto soto forma de strutura ad àlbaro. Nota che la pagina la richiede le funzionalità avanzade de JavaScript ciamà AJAX; se te stè doparando un browser vecio assè o le funzion JavaScript le xe disabilità, sta pagina no la funzionarà mìa.",
+ "categorytree-category": "Categoria",
+ "categorytree-go": "Mostra l'àlbaro",
+ "categorytree-parents": "Categorie superiori",
+ "categorytree-mode-label": "Modałità:",
+ "categorytree-mode-categories": "mostra solo le categorie",
+ "categorytree-mode-pages": "tute le pagine, via de i file",
+ "categorytree-mode-all": "tute le pagine",
+ "categorytree-collapse": "conprimi",
+ "categorytree-expand": "espandi",
+ "categorytree-member-counts": "la contien {{PLURAL:$1|1 sotocategoria|$1 sotocategorie}}, {{PLURAL:$2|1 pagina|$2 pagine}} e {{PLURAL:$3|1 file|$3 file}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "voda",
+ "categorytree-load": "carga",
+ "categorytree-loading": "so' drio cargar…",
+ "categorytree-nothing-found": "nissun risultato",
+ "categorytree-no-subcategories": "nissuna sotocategoria",
+ "categorytree-no-parent-categories": "nissuna categoria superior",
+ "categorytree-no-pages": "nissuna voçe né sotocategoria",
+ "categorytree-not-found": "Categoria <i>$1</i> mìa catà",
+ "categorytree-error": "Ghe xe un problema nel caricamento dei dati.",
+ "categorytree-retry": "Speta n'atimo e dopo próa de novo."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/vep.json b/www/wiki/extensions/CategoryTree/i18n/vep.json
new file mode 100644
index 00000000..8165ee3f
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/vep.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Игорь Бродский"
+ ]
+ },
+ "categorytree": "Kategorijoiden pu",
+ "categorytree-portlet": "Kategorijad",
+ "categorytree-legend": "Ozutada kategorijoiden pu",
+ "categorytree-category": "Kategorii:",
+ "categorytree-go": "Ozutada pu",
+ "categorytree-parents": "Ülembaižed kategorijad",
+ "categorytree-mode-categories": "vaiše kategorijad",
+ "categorytree-mode-pages": "lehtpoled failoita",
+ "categorytree-mode-all": "kaik lehtpoled",
+ "categorytree-collapse": "peitta",
+ "categorytree-expand": "ozutada",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 L",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "pall'az",
+ "categorytree-load": "jügutoitta",
+ "categorytree-loading": "jügudoitmine...",
+ "categorytree-nothing-found": "ei voi löuta",
+ "categorytree-no-subcategories": "ei ole alakategorijoid"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/vi.json b/www/wiki/extensions/CategoryTree/i18n/vi.json
new file mode 100644
index 00000000..a0c190af
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/vi.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Minh Nguyen",
+ "Vinhtantran"
+ ]
+ },
+ "categorytree": "Cây thể loại",
+ "categorytree-portlet": "Thể loại",
+ "categorytree-legend": "Hiển thị cây thể loại",
+ "categorytree-desc": "Công cụ AJAX để hiển thị [[Special:CategoryTree|cấu trúc thể loại]] của một wiki",
+ "categorytree-header": "Gõ vào tên thể loại để xem nội dung của nó theo cấu trúc cây. (Yêu cầu JavaScript.)",
+ "categorytree-category": "Thể loại:",
+ "categorytree-go": "Hiển thị",
+ "categorytree-parents": "Các thể loại mẹ",
+ "categorytree-mode-label": "Chế độ:",
+ "categorytree-mode-categories": "Chỉ liệt kê các thể loại",
+ "categorytree-mode-pages": "các trang ngoại trừ trang tập tin",
+ "categorytree-mode-all": "tất cả các trang",
+ "categorytree-collapse": "đóng",
+ "categorytree-expand": "mở",
+ "categorytree-member-counts": "Có $1 thể loại con, $2 trang, và $3 tập tin",
+ "categorytree-num-categories": "$1 t.l.",
+ "categorytree-num-pages": "$1 tr.",
+ "categorytree-num-files": "$1 t.t.",
+ "categorytree-num-empty": "trống",
+ "categorytree-load": "tải",
+ "categorytree-loading": "đang tải…",
+ "categorytree-nothing-found": "Không có gì.",
+ "categorytree-no-subcategories": "Không có thể loại con",
+ "categorytree-no-parent-categories": "không nằm trong thể loại nào",
+ "categorytree-no-pages": "Không có trang hay thể loại con",
+ "categorytree-not-found": "Không tìm thấy thể loại <i>$1</i>",
+ "categorytree-error": "Có vấn đề khi tải dữ liệu.",
+ "categorytree-retry": "Xin hãy chờ một chút rồi thử lại.",
+ "apihelp-categorytree-description": "Mô đun nội bộ cho phần mở rộng Cây thể loại.",
+ "apihelp-categorytree-param-category": "Tên trang trong không gian tên thể loại; tiền tố nào đó sẽ được bỏ qua."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/vls.json b/www/wiki/extensions/CategoryTree/i18n/vls.json
new file mode 100644
index 00000000..bc20c36e
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/vls.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "categorytree-collapse": "toesmytn"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/vo.json b/www/wiki/extensions/CategoryTree/i18n/vo.json
new file mode 100644
index 00000000..1a401871
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/vo.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "Malafaya",
+ "Smeira"
+ ]
+ },
+ "categorytree": "KladaBim",
+ "categorytree-portlet": "Klads",
+ "categorytree-legend": "Jonolöd kladabimi",
+ "categorytree-desc": "Jonön [[Special:CategoryTree|kladabimi]] e mufön ve on.",
+ "categorytree-header": "Penolös kladanemi ad logön ninädi klada as bimabinod. Küpälolös, das atos flagon dili ela JavaScript labü nem: AJAX. No oplöpon if labol bevüresodanafömi vönädik, ud if enemogüköl eli JavaScript.",
+ "categorytree-category": "Klad:",
+ "categorytree-go": "Jonolöd Bimi",
+ "categorytree-parents": "Pals",
+ "categorytree-mode-categories": "te klads",
+ "categorytree-mode-pages": "pads pläamü ragivs",
+ "categorytree-mode-all": "pads valik",
+ "categorytree-collapse": "brefükön",
+ "categorytree-expand": "stäänükön",
+ "categorytree-member-counts": "ninädon {{PLURAL:$1|donakladi 1|donakladis $1}}, {{PLURAL:$2|padi 1|padis $2}} e {{PLURAL:$3|ragivi 1|ragivis $3}}",
+ "categorytree-num-categories": "K $1",
+ "categorytree-num-pages": "P $1",
+ "categorytree-num-files": "R $1",
+ "categorytree-load": "lodön",
+ "categorytree-loading": "lodam",
+ "categorytree-nothing-found": "nos petuvon",
+ "categorytree-no-subcategories": "donaklads nonik",
+ "categorytree-no-parent-categories": "palaklads nonik",
+ "categorytree-no-pages": "pads e donaklads noniks",
+ "categorytree-not-found": "Klad: <i>$1</i> no petuvöl",
+ "categorytree-error": "No eplöpos ad lodön nünis.",
+ "categorytree-retry": "Stebedolös, begö! timüli e steifülolös dönu."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/vro.json b/www/wiki/extensions/CategoryTree/i18n/vro.json
new file mode 100644
index 00000000..2750e57c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/vro.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Võrok"
+ ]
+ },
+ "categorytree-expand": "näüdäq",
+ "categorytree-member-counts": "Tan om {{PLURAL:$1|1 allkatõgooria|$1 allkatõgooriat}}, {{PLURAL:$2|1 leht|$2 lehte}}, ja {{PLURAL:$3|1 fail|$3 faili}}",
+ "categorytree-num-categories": "$1 L",
+ "categorytree-num-pages": "$1 L",
+ "categorytree-num-files": "$1 F"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/wa.json b/www/wiki/extensions/CategoryTree/i18n/wa.json
new file mode 100644
index 00000000..09fefa02
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/wa.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lucyin",
+ "Srtxg"
+ ]
+ },
+ "categorytree": "Coxhlaedje des categoreyes",
+ "categorytree-portlet": "Categoreyes",
+ "categorytree-category": "Categoreye:",
+ "categorytree-parents": "Parints",
+ "categorytree-mode-all": "Totes les pådjes",
+ "categorytree-collapse": "erôler",
+ "categorytree-expand": "diswalper",
+ "categorytree-member-counts": "gn a $1 dizo-categoreye{{PLURAL:$1||s}}, $2 pådje{{PLURAL:$2||s}} et $3 fitchî{{PLURAL:$3||s}}",
+ "categorytree-num-categories": "$1 cat.",
+ "categorytree-num-pages": "$1 p.",
+ "categorytree-num-files": "$1 fitch.",
+ "categorytree-num-empty": "vude",
+ "categorytree-loading": "dji so k' eberwete...",
+ "categorytree-nothing-found": "rén trové",
+ "categorytree-no-subcategories": "Nole dizo-categoreye",
+ "categorytree-no-parent-categories": "Nole dizeu-categoreye",
+ "categorytree-no-pages": "Nole pådje ou categoreye",
+ "categorytree-not-found": "Categoreye <i>$1</i> nén trovêye",
+ "categorytree-error": "Aroke d' eberwetaedje",
+ "categorytree-retry": "Tårdjîz ene miete eyet rsayî"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/war.json b/www/wiki/extensions/CategoryTree/i18n/war.json
new file mode 100644
index 00000000..093148d5
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/war.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "JinJian"
+ ]
+ },
+ "categorytree-parents": "Mga kag-anak",
+ "categorytree-mode-all": "ngatanan nga mga pakli",
+ "categorytree-collapse": "rumpag",
+ "categorytree-expand": "iglatag",
+ "categorytree-member-counts": "Naglalakip hin {{PLURAL:$1|1 ka subcategory|$1 ka mga subcategory}}, {{PLURAL:$2|1 ka pakli|$2 ka mga pakli}}, ngan {{PLURAL:$3|1 file|$3 mga file}}",
+ "categorytree-num-categories": "$1 K",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "waray sulod"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/wo.json b/www/wiki/extensions/CategoryTree/i18n/wo.json
new file mode 100644
index 00000000..706aefce
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/wo.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ibou"
+ ]
+ },
+ "categorytree-expand": "tallal",
+ "categorytree-member-counts": "Ëmb na {{PLURAL:$1|1 ron-wàll|$1 ron-wàll}},{{PLURAL:$2|xët|$2 xët}}, ak {{PLURAL:$3|1 dencukaay|$3 dencukaay}}",
+ "categorytree-num-categories": "$1 W",
+ "categorytree-num-pages": "$1 X",
+ "categorytree-num-files": "$1 D"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/wuu.json b/www/wiki/extensions/CategoryTree/i18n/wuu.json
new file mode 100644
index 00000000..62a8780a
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/wuu.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Wtzdj",
+ "Xiaomingyan",
+ "Poiuyt",
+ "飞舞回堂前"
+ ]
+ },
+ "categorytree": "分类树",
+ "categorytree-portlet": "分类",
+ "categorytree-legend": "显示分类树",
+ "categorytree-category": "分类",
+ "categorytree-go": "显示分类树",
+ "categorytree-mode-categories": "仅分类",
+ "categorytree-mode-pages": "除脱图片以外个页面",
+ "categorytree-mode-all": "所有页面",
+ "categorytree-collapse": "抈出来",
+ "categorytree-expand": "放开来",
+ "categorytree-member-counts": "包括$1个子分类,$2个页面搭$3只文件",
+ "categorytree-num-categories": "$1分类",
+ "categorytree-num-pages": "$1页面",
+ "categorytree-num-files": "$1文件",
+ "categorytree-nothing-found": "一样也朆寻着",
+ "categorytree-no-subcategories": "呒不子分类",
+ "categorytree-no-pages": "呒不页面或者子分类",
+ "categorytree-not-found": "寻弗着分类<i>$1</i>",
+ "categorytree-retry": "请等歇再试。"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/xal.json b/www/wiki/extensions/CategoryTree/i18n/xal.json
new file mode 100644
index 00000000..50a646d0
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/xal.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Huuchin"
+ ]
+ },
+ "categorytree-expand": "делгх",
+ "categorytree-member-counts": "$1 дед әәшл, $2 халх, болн $3 боомг бәрдг",
+ "categorytree-num-categories": "$1 Ә",
+ "categorytree-num-pages": "$1 Х",
+ "categorytree-num-files": "$1 Б"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/xmf.json b/www/wiki/extensions/CategoryTree/i18n/xmf.json
new file mode 100644
index 00000000..4a835b0b
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/xmf.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Silovan"
+ ]
+ },
+ "categorytree-expand": "გოფაჩუა",
+ "categorytree-member-counts": "იკათუანს {{PLURAL:$1|1 გიმენკატეგორიას|$1 გიმენკატეგორიას}}, {{PLURAL:$2|1 ხასჷლას|$2 ხასჷლას}}, დო {{PLURAL:$3|1 ფაილს|$3 ფაილს}}",
+ "categorytree-num-categories": "$1 კ",
+ "categorytree-num-pages": "$1 ხ",
+ "categorytree-num-files": "$1 ფ"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/yi.json b/www/wiki/extensions/CategoryTree/i18n/yi.json
new file mode 100644
index 00000000..6d2a8843
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/yi.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "פוילישער"
+ ]
+ },
+ "categorytree": "קאַטעגאריע בוים",
+ "categorytree-portlet": "קאַטעגאריעס",
+ "categorytree-legend": "ווײַזן קאַטעגאריע בוים",
+ "categorytree-desc": "נאוויגירן דינאמיש דעם [[Special:CategoryTree|קאטעגאריע סטרוקטור]]",
+ "categorytree-header": "לייגט אריין א קאטעגאריע נאמען צו זען איר אינהאלט אלס א בוים סטרוקטור.(פֿאדערט JavaScript.)",
+ "categorytree-category": "קאטעגאריע:",
+ "categorytree-go": "ווײַזן בוים",
+ "categorytree-parents": "העכערע קאַטעגאריעס",
+ "categorytree-mode-label": "מאדע:",
+ "categorytree-mode-categories": "נאר קאַטעגאריעס",
+ "categorytree-mode-pages": "בלעטער וואס זענען נישט טעקעס",
+ "categorytree-mode-all": "אַלע בלעטער",
+ "categorytree-collapse": "אײַנציען",
+ "categorytree-expand": "פֿאַרברייטערן",
+ "categorytree-expand-bullet": "◄",
+ "categorytree-empty-bullet": "◄",
+ "categorytree-member-counts": "אנטהאלט {{PLURAL:$1|1 אונטערקאטעגאריע|$1 אונטערקאטעגאריעס}}, {{PLURAL:$2|1 בלאט|$2 בלעטער}}, און {{PLURAL:$3|1 טעקע|$3 טעקעס}}",
+ "categorytree-num-categories": "$1 קאַט",
+ "categorytree-num-pages": "$1 ב",
+ "categorytree-num-files": "$1 ט",
+ "categorytree-num-empty": "ליידיק",
+ "categorytree-load": "לאָדן",
+ "categorytree-loading": "לאָדנדיק…",
+ "categorytree-nothing-found": "גארנישט געפֿונען",
+ "categorytree-no-subcategories": "נישטא קיין אונטער-קאַטעגאריעס",
+ "categorytree-no-parent-categories": "נישטא קיין עלטערן קאַטעגאריעס",
+ "categorytree-no-pages": "נישטא קיין בלעטער אדער אונטער-קאַטעגאריעס",
+ "categorytree-not-found": "קאַטעגאריע '''$1''' נישט געפֿונען",
+ "categorytree-error": "פּראָבלעם בײַם ארויפֿלאָדן דאַטן.",
+ "categorytree-retry": "ביטע וואַרט אַ רגע און פרובירט נאכאַמאָל"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/yo.json b/www/wiki/extensions/CategoryTree/i18n/yo.json
new file mode 100644
index 00000000..0a4f0ab0
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/yo.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Demmy"
+ ]
+ },
+ "categorytree": "Igi ẹ̀ka",
+ "categorytree-portlet": "Àwọn ẹ̀ka",
+ "categorytree-legend": "Ìfihàn igi ẹ̀ka",
+ "categorytree-header": "Ẹ fi orúkọ ẹ̀ka kan síbẹ̀ láti wo àwọn àkóónú rẹ̀ gẹ́gẹ́ bíi ẹ̀ka igi.\nÀkíyèsí pé irú JavaScript tó únjẹ́ AJAX pọn dandan fun láti ṣiṣẹ́.\nTó bá ṣe pé agbétàkùn yín jẹ́ tàti pípẹ́, tàbí JavaScript jẹ́ dídálẹ́kun, kò ní ṣiṣẹ́.",
+ "categorytree-category": "Ẹ̀ka:",
+ "categorytree-go": "Ìfihàn igi",
+ "categorytree-parents": "Àwọn òbí",
+ "categorytree-mode-categories": "àwọn ẹ̀ka nìkan",
+ "categorytree-mode-pages": "àwọn ojúewé àyàfi àwọn fáìlì",
+ "categorytree-mode-all": "gbogbo àwọn ojúewé",
+ "categorytree-collapse": "kálura",
+ "categorytree-expand": "fẹ̀hàn",
+ "categorytree-member-counts": "ní {{PLURAL:$1|ẹ̀kaabẹ́ 1|àwọn ẹ̀kaabẹ́ $1}}, {{PLURAL:$2|ojúewé 1 page|àwọn ojúewé $2}}, àti {{PLURAL:$3|fáìlì 1|àwọn fáìlì $3}} nínú",
+ "categorytree-num-categories": "Ẹ̀k. $1",
+ "categorytree-num-pages": "Oj. $1",
+ "categorytree-num-files": "Fá. $1",
+ "categorytree-num-empty": "olófo",
+ "categorytree-load": "ìgbéyọ",
+ "categorytree-loading": "úngbéyọ...",
+ "categorytree-nothing-found": "kò sí ùnkankan",
+ "categorytree-no-subcategories": "Kò sí àwọn ẹ̀kaabẹ́",
+ "categorytree-no-parent-categories": "kò sí àwọn ẹ̀ka òbí",
+ "categorytree-no-pages": "kò sí àwọn ojúewé tàbí àwọn ẹ̀kaabẹ́",
+ "categorytree-not-found": "Ẹ̀ka <i>$1</i> kò ṣe é wárí",
+ "categorytree-error": "Ìṣòro ìgbéyọ dátà.",
+ "categorytree-retry": "Ẹ jọ̀wọ́ ẹ dúró fún gbà díẹ̀ kí ẹ tó gbìyànjú lẹ́ẹ̀kansíi."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/yue.json b/www/wiki/extensions/CategoryTree/i18n/yue.json
new file mode 100644
index 00000000..e2c769f9
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/yue.json
@@ -0,0 +1,43 @@
+{
+ "@metadata": {
+ "authors": [
+ "Shinjiman",
+ "CRCHF",
+ "Ktchankt",
+ "Yueman"
+ ]
+ },
+ "categorytree": "分類樹",
+ "categorytree-portlet": "分類",
+ "categorytree-legend": "顯示分類樹",
+ "categorytree-desc": "一個以AJAX為主嘅小工具去顯示響一個wiki嘅[[Special:CategoryTree|分類架構]]",
+ "categorytree-header": "輸入分類名去睇佢嘅樹形結構內容。(需要JavaScript)",
+ "categorytree-category": "分類",
+ "categorytree-go": "載入",
+ "categorytree-parents": "父分類",
+ "categorytree-mode-label": "模式:",
+ "categorytree-mode-categories": "只顯示分類",
+ "categorytree-mode-pages": "除咗圖像之外嘅版",
+ "categorytree-mode-all": "全版",
+ "categorytree-collapse": "收埋",
+ "categorytree-expand": "打開",
+ "categorytree-member-counts": "有$1個細分類、$2版同$3個檔案",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 F",
+ "categorytree-num-empty": "空",
+ "categorytree-load": "載入",
+ "categorytree-loading": "載入緊…",
+ "categorytree-nothing-found": "搵唔到任何嘢",
+ "categorytree-no-subcategories": "冇細分類",
+ "categorytree-no-parent-categories": "冇父分類",
+ "categorytree-no-pages": "冇版或者細分類",
+ "categorytree-not-found": "搵唔到<i>$1</i>分類",
+ "categorytree-error": "載入資料嗰陣發生咗錯誤。",
+ "categorytree-retry": "請等多一陣再試過。",
+ "apihelp-categorytree-description": "CategoryTree嘅內部模組",
+ "apihelp-categorytree-summary": "CategoryTree嘅內部模組",
+ "apihelp-categorytree-param-category": "類空間名嘅標題,如果有字頭會忽略",
+ "apihelp-categorytree-param-options": "將CategoryTree構造器當做JSON物件嘅選項。<var>depth</var>選項預設值係<kbd>1</kbd>。",
+ "apierror-categorytree-invalidjson": "選項一定要係個有效JSON物件。"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/zea.json b/www/wiki/extensions/CategoryTree/i18n/zea.json
new file mode 100644
index 00000000..52da3707
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/zea.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ooswesthoesbes"
+ ]
+ },
+ "categorytree": "Catehorieboôm",
+ "categorytree-portlet": "Categorieën",
+ "categorytree-category": "Categorie:",
+ "categorytree-go": "Structuur weerheven",
+ "categorytree-parents": "Bovenliggende categorieën",
+ "categorytree-mode-categories": "alleên categorieën",
+ "categorytree-mode-pages": "hin aofbildiengen",
+ "categorytree-mode-all": "aolle bladzies",
+ "categorytree-collapse": "inklapp'n",
+ "categorytree-expand": "uutvaow'n",
+ "categorytree-member-counts": "bevat {{PLURAL:$1|eên ondercategorie|$1 ondercategorieën}}, {{PLURAL:$2|eên pagina|$2 pagina's}} en {{PLURAL:$3|eên bestand|$3 bestanden}}",
+ "categorytree-num-categories": "$1 C",
+ "categorytree-num-pages": "$1 P",
+ "categorytree-num-files": "$1 B",
+ "categorytree-num-empty": "leeh",
+ "categorytree-load": "laed'n",
+ "categorytree-loading": "an 't laed'n...",
+ "categorytree-nothing-found": "niks hevaond'n",
+ "categorytree-no-subcategories": "Hin ondercategorieën",
+ "categorytree-no-parent-categories": "hin bovencategorieën",
+ "categorytree-no-pages": "Hin bladzies of ondercategorieën",
+ "categorytree-not-found": "Categorie <i>$1</i> is nie hevond'n",
+ "categorytree-error": "Probleem bie 't laed'n von de hehevens.",
+ "categorytree-retry": "Wacht even en probeer 't dan opnuuw."
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/zgh.json b/www/wiki/extensions/CategoryTree/i18n/zgh.json
new file mode 100644
index 00000000..af718ab4
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/zgh.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amara-Amaziɣ",
+ "YesIn",
+ "Mdb897"
+ ]
+ },
+ "categorytree-expand": "ⴼⵙⵉ",
+ "categorytree-member-counts": "ⵢⵓⵎⴰ {{PLURAL:$1|1 ⴰⴷⵓⵙⵎⵉⵍ|$1 ⵉⴷⵓⵙⵎⵉⵍⵏ}}, {{PLURAL:$2|1 ⵜⴰⵙⵏⴰ|$2 ⵜⵉⵙⵏⴰⵜⵉⵏ}}, ⴷ {{PLURAL:$3|1 ⴰⵙⴷⴰⵡ|$3 ⵉⵙⴷⴰⵡⵏ}}",
+ "categorytree-num-categories": "$1 {{PLURAL:$1|ⵙⵎⵍ|ⵙⵎⵍⵏ}}",
+ "categorytree-num-pages": "$1 {{PLURAL:$1|ⵙⵏ|ⵙⵏⵡⵏ}}",
+ "categorytree-num-files": "$1 ⴼ"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/zh-hans.json b/www/wiki/extensions/CategoryTree/i18n/zh-hans.json
new file mode 100644
index 00000000..98bf7832
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/zh-hans.json
@@ -0,0 +1,48 @@
+{
+ "@metadata": {
+ "authors": [
+ "Breawycker",
+ "Liangent",
+ "PhiLiP",
+ "Shinjiman",
+ "Shizhao",
+ "Xiaomingyan",
+ "Mywood",
+ "Impersonator 1",
+ "Liuxinyu970226"
+ ]
+ },
+ "categorytree": "分类树",
+ "categorytree-portlet": "分类",
+ "categorytree-legend": "显示分类树",
+ "categorytree-desc": "动态导航[[Special:CategoryTree|分类结构]]",
+ "categorytree-header": "请输入一个分类名称以使用树形结构查看其内容。(需要JavaScript。)",
+ "categorytree-category": "分类:",
+ "categorytree-go": "显示分类树",
+ "categorytree-parents": "父分类",
+ "categorytree-mode-label": "模式:",
+ "categorytree-mode-categories": "仅分类",
+ "categorytree-mode-pages": "除文件外的页面",
+ "categorytree-mode-all": "所有页面",
+ "categorytree-collapse": "折叠",
+ "categorytree-expand": "展开",
+ "categorytree-member-counts": "含有$1个子分类,$2个页面和$3个文件",
+ "categorytree-num-categories": "$1分类",
+ "categorytree-num-pages": "$1页面",
+ "categorytree-num-files": "$1文件",
+ "categorytree-num-empty": "空",
+ "categorytree-load": "载入",
+ "categorytree-loading": "正在载入...",
+ "categorytree-nothing-found": "没找到",
+ "categorytree-no-subcategories": "无子分类",
+ "categorytree-no-parent-categories": "无父分类",
+ "categorytree-no-pages": "没有页面或子分类",
+ "categorytree-not-found": "找不到分类<i>$1</i>",
+ "categorytree-error": "载入数据出错。",
+ "categorytree-retry": "请稍后重试。",
+ "apihelp-categorytree-description": "用于CategoryTree扩展的内部模块。",
+ "apihelp-categorytree-summary": "用于CategoryTree扩展的内部模块。",
+ "apihelp-categorytree-param-category": "分类名字空间中的标题,如果提供前缀将会被忽略。",
+ "apihelp-categorytree-param-options": "用于CategoryTree构造器的选项,作为一个JSON对象。<var>depth</var>选项默认为<kbd>1</kbd>。",
+ "apierror-categorytree-invalidjson": "选项必须是有效的JSON对象。"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/zh-hant.json b/www/wiki/extensions/CategoryTree/i18n/zh-hant.json
new file mode 100644
index 00000000..6e8dcdbd
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/zh-hant.json
@@ -0,0 +1,50 @@
+{
+ "@metadata": {
+ "authors": [
+ "Alexsh",
+ "Liangent",
+ "Mark85296341",
+ "Oapbtommy",
+ "Shinjiman",
+ "Simon Shek",
+ "Liuxinyu970226",
+ "Cwlin0416",
+ "Duolaimi",
+ "Wehwei",
+ "Kly"
+ ]
+ },
+ "categorytree": "分類樹",
+ "categorytree-portlet": "分類",
+ "categorytree-legend": "顯示分類樹",
+ "categorytree-desc": "可用動態更新的方式導覽 [[Special:CategoryTree|分類結構]]",
+ "categorytree-header": "請輸入分類名稱以使用樹狀結構檢視分類內容。\n(需要使用 JavaScript。)",
+ "categorytree-category": "分類:",
+ "categorytree-go": "顯示樹狀結構",
+ "categorytree-parents": "上層分類",
+ "categorytree-mode-label": "模式:",
+ "categorytree-mode-categories": "只顯示分類",
+ "categorytree-mode-pages": "頁面不包含檔案",
+ "categorytree-mode-all": "所有頁面",
+ "categorytree-collapse": "摺疊",
+ "categorytree-expand": "展開",
+ "categorytree-member-counts": "包含 $1 個子分類、$2 個頁面和 $3 個檔案",
+ "categorytree-num-categories": "$1 分類",
+ "categorytree-num-pages": "$1 頁面",
+ "categorytree-num-files": "$1 檔案",
+ "categorytree-num-empty": "空的",
+ "categorytree-load": "讀取",
+ "categorytree-loading": "讀取中…",
+ "categorytree-nothing-found": "查無任何項目",
+ "categorytree-no-subcategories": "無子分類",
+ "categorytree-no-parent-categories": "無上層分類",
+ "categorytree-no-pages": "無頁面或子分類",
+ "categorytree-not-found": "查無分類 <i>$1</i>",
+ "categorytree-error": "讀取資料時發生錯誤。",
+ "categorytree-retry": "請稍候再試一次。",
+ "apihelp-categorytree-description": "用於 CategoryTree 擴充套件的內部模組。",
+ "apihelp-categorytree-summary": "用於 CategoryTree 擴充套件的內部模組。",
+ "apihelp-categorytree-param-category": "在分類命名空間中的標題,若有字首則會忽略。",
+ "apihelp-categorytree-param-options": "供 CategoryTree 建構子的 JSON 物件參數。<var>depth</var> 項目預設為 <kbd>1</kbd>。",
+ "apierror-categorytree-invalidjson": "選項必須為有效的 JSON 物件。"
+}
diff --git a/www/wiki/extensions/CategoryTree/i18n/zu.json b/www/wiki/extensions/CategoryTree/i18n/zu.json
new file mode 100644
index 00000000..25077619
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/i18n/zu.json
@@ -0,0 +1,5 @@
+{
+ "@metadata": [],
+ "categorytree-collapse": "Nciphisa",
+ "categorytree-expand": "Khulisa"
+}
diff --git a/www/wiki/extensions/CategoryTree/includes/ApiCategoryTree.php b/www/wiki/extensions/CategoryTree/includes/ApiCategoryTree.php
new file mode 100644
index 00000000..f512ea4c
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/includes/ApiCategoryTree.php
@@ -0,0 +1,143 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+class ApiCategoryTree extends ApiBase {
+ public function execute() {
+ $params = $this->extractRequestParams();
+ $options = [];
+ if ( isset( $params['options'] ) ) {
+ $options = FormatJson::decode( $params['options'] );
+ if ( !is_object( $options ) ) {
+ if ( is_callable( [ $this, 'dieWithError' ] ) ) {
+ $this->dieWithError( 'apierror-categorytree-invalidjson', 'invalidjson' );
+ } else {
+ $this->dieUsage( 'Options must be valid a JSON object', 'invalidjson' );
+ }
+ return;
+ }
+ $options = get_object_vars( $options );
+ }
+ $depth = isset( $options['depth'] ) ? (int)$options['depth'] : 1;
+
+ $ct = new CategoryTree( $options );
+ $depth = CategoryTree::capDepth( $ct->getOption( 'mode' ), $depth );
+ $title = CategoryTree::makeTitle( $params['category'] );
+ $config = $this->getConfig();
+ $ctConfig = ConfigFactory::getDefaultInstance()->makeConfig( 'categorytree' );
+ $html = $this->getHTML( $ct, $title, $depth, $ctConfig );
+
+ if (
+ $ctConfig->get( 'CategoryTreeHTTPCache' ) &&
+ $config->get( 'SquidMaxage' ) &&
+ $config->get( 'UseSquid' )
+ ) {
+ if ( $config->get( 'UseESI' ) ) {
+ $this->getRequest()->response()->header(
+ 'Surrogate-Control: max-age=' . $config->get( 'SquidMaxage' ) . ', content="ESI/1.0"'
+ );
+ $this->getMain()->setCacheMaxAge( 0 );
+ } else {
+ $this->getMain()->setCacheMaxAge( $config->get( 'SquidMaxage' ) );
+ }
+ // cache for anons only
+ $this->getRequest()->response()->header( 'Vary: Accept-Encoding, Cookie' );
+ // TODO: purge the squid cache when a category page is invalidated
+ }
+
+ $this->getResult()->addContentValue( $this->getModuleName(), 'html', $html );
+ }
+
+ /**
+ * @param string $condition
+ *
+ * @return bool|null|string
+ */
+ public function getConditionalRequestData( $condition ) {
+ if ( $condition === 'last-modified' ) {
+ $params = $this->extractRequestParams();
+ $title = CategoryTree::makeTitle( $params['category'] );
+ return wfGetDB( DB_REPLICA )->selectField( 'page', 'page_touched',
+ [
+ 'page_namespace' => NS_CATEGORY,
+ 'page_title' => $title->getDBkey(),
+ ],
+ __METHOD__
+ );
+ }
+ }
+
+ /**
+ * Get category tree HTML for the given tree, title, depth and config
+ *
+ * @param CategoryTree $ct
+ * @param Title $title
+ * @param int $depth
+ * @param Config $ctConfig Config for CategoryTree
+ * @return string HTML
+ */
+ private function getHTML( $ct, $title, $depth, $ctConfig ) {
+ global $wgContLang, $wgMemc;
+
+ $mckey = wfMemcKey(
+ 'ajax-categorytree',
+ md5( $title->getDBkey() ),
+ md5( $ct->getOptionsAsCacheKey( $depth ) ),
+ $this->getLanguage()->getCode(),
+ $wgContLang->getExtraHashOptions(),
+ $ctConfig->get( 'RenderHashAppend' )
+ );
+
+ $touched = $this->getConditionalRequestData( 'last-modified' );
+ if ( $touched ) {
+ $mcvalue = $wgMemc->get( $mckey );
+ if ( $mcvalue && $touched <= $mcvalue['timestamp'] ) {
+ $html = $mcvalue['value'];
+ }
+ }
+
+ if ( !isset( $html ) ) {
+ $html = $ct->renderChildren( $title, $depth );
+
+ $wgMemc->set(
+ $mckey,
+ [
+ 'timestamp' => wfTimestampNow(),
+ 'value' => $html
+ ],
+ 86400
+ );
+ }
+ return trim( $html );
+ }
+
+ public function getAllowedParams() {
+ return [
+ 'category' => [
+ ApiBase::PARAM_TYPE => 'string',
+ ApiBase::PARAM_REQUIRED => true,
+ ],
+ 'options' => [
+ ApiBase::PARAM_TYPE => 'string',
+ ],
+ ];
+ }
+
+ public function isInternal() {
+ return true;
+ }
+}
diff --git a/www/wiki/extensions/CategoryTree/includes/CategoryTree.php b/www/wiki/extensions/CategoryTree/includes/CategoryTree.php
new file mode 100644
index 00000000..139012fd
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/includes/CategoryTree.php
@@ -0,0 +1,822 @@
+<?php
+/**
+ * © 2006-2007 Daniel Kinzler
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Extensions
+ * @author Daniel Kinzler, brightbyte.de
+ */
+
+/**
+ * Core functions for the CategoryTree extension, an AJAX based gadget
+ * to display the category structure of a wiki
+ */
+class CategoryTree {
+ public $mOptions = [];
+
+ /**
+ * @param array $options
+ */
+ public function __construct( $options ) {
+ global $wgCategoryTreeDefaultOptions;
+
+ // ensure default values and order of options.
+ // Order may become important, it may influence the cache key!
+ foreach ( $wgCategoryTreeDefaultOptions as $option => $default ) {
+ if ( isset( $options[$option] ) ) {
+ $this->mOptions[$option] = $options[$option];
+ } else {
+ $this->mOptions[$option] = $default;
+ }
+ }
+
+ $this->mOptions['mode'] = self::decodeMode( $this->mOptions['mode'] );
+
+ if ( $this->mOptions['mode'] == CategoryTreeMode::PARENTS ) {
+ // namespace filter makes no sense with CategoryTreeMode::PARENTS
+ $this->mOptions['namespaces'] = false;
+ }
+
+ $this->mOptions['hideprefix'] = self::decodeHidePrefix( $this->mOptions['hideprefix'] );
+ $this->mOptions['showcount'] = self::decodeBoolean( $this->mOptions['showcount'] );
+ $this->mOptions['namespaces'] = self::decodeNamespaces( $this->mOptions['namespaces'] );
+
+ if ( $this->mOptions['namespaces'] ) {
+ # automatically adjust mode to match namespace filter
+ if ( count( $this->mOptions['namespaces'] ) === 1
+ && $this->mOptions['namespaces'][0] == NS_CATEGORY ) {
+ $this->mOptions['mode'] = CategoryTreeMode::CATEGORIES;
+ } elseif ( !in_array( NS_FILE, $this->mOptions['namespaces'] ) ) {
+ $this->mOptions['mode'] = CategoryTreeMode::PAGES;
+ } else {
+ $this->mOptions['mode'] = CategoryTreeMode::ALL;
+ }
+ }
+ }
+
+ /**
+ * @param string $name
+ * @return mixed
+ */
+ public function getOption( $name ) {
+ return $this->mOptions[$name];
+ }
+
+ /**
+ * @return bool
+ */
+ private function isInverse() {
+ return $this->getOption( 'mode' ) == CategoryTreeMode::PARENTS;
+ }
+
+ /**
+ * @param mixed $nn
+ * @return array|bool
+ */
+ private static function decodeNamespaces( $nn ) {
+ global $wgContLang;
+
+ if ( $nn === false || is_null( $nn ) ) {
+ return false;
+ }
+
+ if ( !is_array( $nn ) ) {
+ $nn = preg_split( '![\s#:|]+!', $nn );
+ }
+
+ $namespaces = [];
+
+ foreach ( $nn as $n ) {
+ if ( is_int( $n ) ) {
+ $ns = $n;
+ } else {
+ $n = trim( $n );
+ if ( $n === '' ) {
+ continue;
+ }
+
+ $lower = strtolower( $n );
+
+ if ( is_numeric( $n ) ) {
+ $ns = (int)$n;
+ } elseif ( $n == '-' || $n == '_' || $n == '*' || $lower == 'main' ) {
+ $ns = NS_MAIN;
+ } else {
+ $ns = $wgContLang->getNsIndex( $n );
+ }
+ }
+
+ if ( is_int( $ns ) ) {
+ $namespaces[] = $ns;
+ }
+ }
+
+ sort( $namespaces ); # get elements into canonical order
+ return $namespaces;
+ }
+
+ /**
+ * @param mixed $mode
+ * @return int|string
+ */
+ public static function decodeMode( $mode ) {
+ global $wgCategoryTreeDefaultOptions;
+
+ if ( is_null( $mode ) ) {
+ return $wgCategoryTreeDefaultOptions['mode'];
+ }
+ if ( is_int( $mode ) ) {
+ return $mode;
+ }
+
+ $mode = trim( strtolower( $mode ) );
+
+ if ( is_numeric( $mode ) ) {
+ return (int)$mode;
+ }
+
+ if ( $mode == 'all' ) {
+ $mode = CategoryTreeMode::ALL;
+ } elseif ( $mode == 'pages' ) {
+ $mode = CategoryTreeMode::PAGES;
+ } elseif ( $mode == 'categories' || $mode == 'sub' ) {
+ $mode = CategoryTreeMode::CATEGORIES;
+ } elseif ( $mode == 'parents' || $mode == 'super' || $mode == 'inverse' ) {
+ $mode = CategoryTreeMode::PARENTS;
+ } elseif ( $mode == 'default' ) {
+ $mode = $wgCategoryTreeDefaultOptions['mode'];
+ }
+
+ return (int)$mode;
+ }
+
+ /**
+ * Helper function to convert a string to a boolean value.
+ * Perhaps make this a global function in MediaWiki proper
+ * @param mixed $value
+ * @return bool|null|string
+ */
+ public static function decodeBoolean( $value ) {
+ if ( is_null( $value ) ) {
+ return null;
+ }
+ if ( is_bool( $value ) ) {
+ return $value;
+ }
+ if ( is_int( $value ) ) {
+ return ( $value > 0 );
+ }
+
+ $value = trim( strtolower( $value ) );
+ if ( is_numeric( $value ) ) {
+ return ( (int)$value > 0 );
+ }
+
+ if ( $value == 'yes' || $value == 'y'
+ || $value == 'true' || $value == 't' || $value == 'on'
+ ) {
+ return true;
+ } elseif ( $value == 'no' || $value == 'n'
+ || $value == 'false' || $value == 'f' || $value == 'off'
+ ) {
+ return false;
+ } elseif ( $value == 'null' || $value == 'default' || $value == 'none' || $value == 'x' ) {
+ return null;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * @param mixed $value
+ * @return int|string
+ */
+ public static function decodeHidePrefix( $value ) {
+ global $wgCategoryTreeDefaultOptions;
+
+ if ( is_null( $value ) ) {
+ return $wgCategoryTreeDefaultOptions['hideprefix'];
+ }
+ if ( is_int( $value ) ) {
+ return $value;
+ }
+ if ( $value === true ) {
+ return CategoryTreeHidePrefix::ALWAYS;
+ }
+ if ( $value === false ) {
+ return CategoryTreeHidePrefix::NEVER;
+ }
+
+ $value = trim( strtolower( $value ) );
+
+ if ( $value == 'yes' || $value == 'y'
+ || $value == 'true' || $value == 't' || $value == 'on'
+ ) {
+ return CategoryTreeHidePrefix::ALWAYS;
+ } elseif ( $value == 'no' || $value == 'n'
+ || $value == 'false' || $value == 'f' || $value == 'off'
+ ) {
+ return CategoryTreeHidePrefix::NEVER;
+ } elseif ( $value == 'always' ) {
+ return CategoryTreeHidePrefix::ALWAYS;
+ } elseif ( $value == 'never' ) {
+ return CategoryTreeHidePrefix::NEVER;
+ } elseif ( $value == 'auto' ) {
+ return CategoryTreeHidePrefix::AUTO;
+ } elseif ( $value == 'categories' || $value == 'category' || $value == 'smart' ) {
+ return CategoryTreeHidePrefix::CATEGORIES;
+ } else {
+ return $wgCategoryTreeDefaultOptions['hideprefix'];
+ }
+ }
+
+ /**
+ * Add ResourceLoader modules to the OutputPage object
+ * @param OutputPage $outputPage
+ */
+ public static function setHeaders( $outputPage ) {
+ # Add the modules
+ $outputPage->addModuleStyles( 'ext.categoryTree.css' );
+ $outputPage->addModules( 'ext.categoryTree' );
+ }
+
+ /**
+ * @param array $options
+ * @param string $enc
+ * @return mixed
+ * @throws Exception
+ */
+ protected static function encodeOptions( $options, $enc ) {
+ if ( $enc == 'mode' || $enc == '' ) {
+ $opt = $options['mode'];
+ } elseif ( $enc == 'json' ) {
+ $opt = FormatJson::encode( $options );
+ } else {
+ throw new Exception( 'Unknown encoding for CategoryTree options: ' . $enc );
+ }
+
+ return $opt;
+ }
+
+ /**
+ * @param string|null $depth
+ * @return string
+ */
+ public function getOptionsAsCacheKey( $depth = null ) {
+ $key = "";
+
+ foreach ( $this->mOptions as $k => $v ) {
+ if ( is_array( $v ) ) {
+ $v = implode( '|', $v );
+ }
+ $key .= $k . ':' . $v . ';';
+ }
+
+ if ( !is_null( $depth ) ) {
+ $key .= ";depth=" . $depth;
+ }
+ return $key;
+ }
+
+ /**
+ * @param int|null $depth
+ * @return mixed
+ */
+ public function getOptionsAsJsStructure( $depth = null ) {
+ if ( $depth !== null ) {
+ $opt = $this->mOptions;
+ $opt['depth'] = $depth;
+ $s = self::encodeOptions( $opt, 'json' );
+ } else {
+ $s = self::encodeOptions( $this->mOptions, 'json' );
+ }
+
+ return $s;
+ }
+
+ /**
+ * @return string
+ */
+ private function getOptionsAsUrlParameters() {
+ return http_build_query( $this->mOptions );
+ }
+
+ /**
+ * Custom tag implementation. This is called by CategoryTreeHooks::parserHook, which is used to
+ * load CategoryTreeFunctions.php on demand.
+ * @param Parser $parser
+ * @param string $category
+ * @param bool $hideroot
+ * @param array $attr
+ * @param int $depth
+ * @param bool $allowMissing
+ * @return bool|string
+ */
+ public function getTag( $parser, $category, $hideroot = false, $attr = [], $depth = 1,
+ $allowMissing = false
+ ) {
+ global $wgCategoryTreeDisableCache;
+
+ $category = trim( $category );
+ if ( $category === '' ) {
+ return false;
+ }
+
+ if ( $parser ) {
+ if ( $wgCategoryTreeDisableCache === true ) {
+ $parser->disableCache();
+ } elseif ( is_int( $wgCategoryTreeDisableCache ) ) {
+ $parser->getOutput()->updateCacheExpiry( $wgCategoryTreeDisableCache );
+ }
+ }
+
+ $title = self::makeTitle( $category );
+
+ if ( $title === false || $title === null ) {
+ return false;
+ }
+
+ if ( isset( $attr['class'] ) ) {
+ $attr['class'] .= ' CategoryTreeTag';
+ } else {
+ $attr['class'] = ' CategoryTreeTag';
+ }
+
+ $attr['data-ct-mode'] = $this->mOptions['mode'];
+ $attr['data-ct-options'] = $this->getOptionsAsJsStructure();
+
+ $html = '';
+ $html .= Html::openElement( 'div', $attr );
+
+ if ( !$allowMissing && !$title->getArticleID() ) {
+ $html .= Html::openElement( 'span', [ 'class' => 'CategoryTreeNotice' ] );
+ if ( $parser ) {
+ $html .= $parser->recursiveTagParse(
+ wfMessage( 'categorytree-not-found', $category )->plain() );
+ } else {
+ $html .= wfMessage( 'categorytree-not-found', $category )->parse();
+ }
+ $html .= Html::closeElement( 'span' );
+ } else {
+ if ( !$hideroot ) {
+ $html .= $this->renderNode( $title, $depth );
+ } else {
+ $html .= $this->renderChildren( $title, $depth );
+ }
+ }
+
+ $html .= Xml::closeElement( 'div' );
+ $html .= "\n\t\t";
+
+ return $html;
+ }
+
+ /**
+ * Returns a string with an HTML representation of the children of the given category.
+ * @param Title $title
+ * @param int $depth
+ * @return string
+ */
+ public function renderChildren( $title, $depth = 1 ) {
+ global $wgCategoryTreeMaxChildren, $wgCategoryTreeUseCategoryTable;
+
+ if ( $title->getNamespace() != NS_CATEGORY ) {
+ // Non-categories can't have children. :)
+ return '';
+ }
+
+ $dbr = wfGetDB( DB_REPLICA );
+
+ $inverse = $this->isInverse();
+ $mode = $this->getOption( 'mode' );
+ $namespaces = $this->getOption( 'namespaces' );
+
+ $tables = [ 'page', 'categorylinks' ];
+ $fields = [ 'page_id', 'page_namespace', 'page_title',
+ 'page_is_redirect', 'page_len', 'page_latest', 'cl_to',
+ 'cl_from' ];
+ $where = [];
+ $joins = [];
+ $options = [ 'ORDER BY' => 'cl_type, cl_sortkey', 'LIMIT' => $wgCategoryTreeMaxChildren ];
+
+ if ( $inverse ) {
+ $joins['categorylinks'] = [ 'RIGHT JOIN', [
+ 'cl_to = page_title', 'page_namespace' => NS_CATEGORY
+ ] ];
+ $where['cl_from'] = $title->getArticleID();
+ } else {
+ $joins['categorylinks'] = [ 'JOIN', 'cl_from = page_id' ];
+ $where['cl_to'] = $title->getDBkey();
+ $options['USE INDEX']['categorylinks'] = 'cl_sortkey';
+
+ # namespace filter.
+ if ( $namespaces ) {
+ // NOTE: we assume that the $namespaces array contains only integers!
+ // decodeNamepsaces makes it so.
+ $where['page_namespace'] = $namespaces;
+ } elseif ( $mode != CategoryTreeMode::ALL ) {
+ if ( $mode == CategoryTreeMode::PAGES ) {
+ $where['cl_type'] = [ 'page', 'subcat' ];
+ } else {
+ $where['cl_type'] = 'subcat';
+ }
+ }
+ }
+
+ # fetch member count if possible
+ $doCount = !$inverse && $wgCategoryTreeUseCategoryTable;
+
+ if ( $doCount ) {
+ $tables = array_merge( $tables, [ 'category' ] );
+ $fields = array_merge( $fields, [
+ 'cat_id', 'cat_title', 'cat_subcats', 'cat_pages', 'cat_files'
+ ] );
+ $joins['category'] = [ 'LEFT JOIN', [
+ 'cat_title = page_title', 'page_namespace' => NS_CATEGORY ]
+ ];
+ }
+
+ $res = $dbr->select( $tables, $fields, $where, __METHOD__, $options, $joins );
+
+ # collect categories separately from other pages
+ $categories = '';
+ $other = '';
+
+ foreach ( $res as $row ) {
+ # NOTE: in inverse mode, the page record may be null, because we use a right join.
+ # happens for categories with no category page (red cat links)
+ if ( $inverse && $row->page_title === null ) {
+ $t = Title::makeTitle( NS_CATEGORY, $row->cl_to );
+ } else {
+ # TODO: translation support; ideally added to Title object
+ $t = Title::newFromRow( $row );
+ }
+
+ $cat = null;
+
+ if ( $doCount && $row->page_namespace == NS_CATEGORY ) {
+ $cat = Category::newFromRow( $row, $t );
+ }
+
+ $s = $this->renderNodeInfo( $t, $cat, $depth - 1 );
+ $s .= "\n\t\t";
+
+ if ( $row->page_namespace == NS_CATEGORY ) {
+ $categories .= $s;
+ } else {
+ $other .= $s;
+ }
+ }
+
+ return $categories . $other;
+ }
+
+ /**
+ * Returns a string with an HTML representation of the parents of the given category.
+ * @param Title $title
+ * @return string
+ */
+ public function renderParents( $title ) {
+ global $wgCategoryTreeMaxChildren;
+
+ $dbr = wfGetDB( DB_REPLICA );
+
+ $res = $dbr->select(
+ 'categorylinks',
+ [
+ 'page_namespace' => NS_CATEGORY,
+ 'page_title' => 'cl_to',
+ ],
+ [ 'cl_from' => $title->getArticleID() ],
+ __METHOD__,
+ [
+ 'LIMIT' => $wgCategoryTreeMaxChildren,
+ 'ORDER BY' => 'cl_to'
+ ]
+ );
+
+ $special = SpecialPage::getTitleFor( 'CategoryTree' );
+
+ $s = '';
+
+ foreach ( $res as $row ) {
+ $t = Title::newFromRow( $row );
+
+ $label = $t->getText();
+
+ $wikiLink = $special->getLocalURL( 'target=' . $t->getPartialURL() .
+ '&' . $this->getOptionsAsUrlParameters() );
+
+ if ( $s !== '' ) {
+ $s .= wfMessage( 'pipe-separator' )->escaped();
+ }
+
+ $s .= Xml::openElement( 'span', [ 'class' => 'CategoryTreeItem' ] );
+ $s .= Xml::element( 'a', [ 'class' => 'CategoryTreeLabel', 'href' => $wikiLink ], $label );
+ $s .= Xml::closeElement( 'span' );
+
+ $s .= "\n\t\t";
+ }
+
+ return $s;
+ }
+
+ /**
+ * Returns a string with a HTML represenation of the given page.
+ * @param Title $title
+ * @param int $children
+ * @return string
+ */
+ public function renderNode( $title, $children = 0 ) {
+ global $wgCategoryTreeUseCategoryTable;
+
+ if ( $wgCategoryTreeUseCategoryTable && $title->getNamespace() == NS_CATEGORY
+ && !$this->isInverse()
+ ) {
+ $cat = Category::newFromTitle( $title );
+ } else {
+ $cat = null;
+ }
+
+ return $this->renderNodeInfo( $title, $cat, $children );
+ }
+
+ /**
+ * Returns a string with a HTML represenation of the given page.
+ * $info must be an associative array, containing at least a Title object under the 'title' key.
+ * @param Title $title
+ * @param Category $cat
+ * @param int $children
+ * @return string
+ */
+ public function renderNodeInfo( $title, $cat, $children = 0 ) {
+ $mode = $this->getOption( 'mode' );
+
+ $ns = $title->getNamespace();
+ $key = $title->getDBkey();
+
+ $hideprefix = $this->getOption( 'hideprefix' );
+
+ if ( $hideprefix == CategoryTreeHidePrefix::ALWAYS ) {
+ $hideprefix = true;
+ } elseif ( $hideprefix == CategoryTreeHidePrefix::AUTO ) {
+ $hideprefix = ( $mode == CategoryTreeMode::CATEGORIES );
+ } elseif ( $hideprefix == CategoryTreeHidePrefix::CATEGORIES ) {
+ $hideprefix = ( $ns == NS_CATEGORY );
+ } else {
+ $hideprefix = true;
+ }
+
+ // when showing only categories, omit namespace in label unless we explicitely defined the
+ // configuration setting
+ // patch contributed by Manuel Schneider <manuel.schneider@wikimedia.ch>, Bug 8011
+ if ( $hideprefix ) {
+ $label = $title->getText();
+ } else {
+ $label = $title->getPrefixedText();
+ }
+
+ $labelClass = 'CategoryTreeLabel ' . ' CategoryTreeLabelNs' . $ns;
+
+ if ( !$title->getArticleID() ) {
+ $labelClass .= ' new';
+ $wikiLink = $title->getLocalURL( 'action=edit&redlink=1' );
+ } else {
+ $wikiLink = $title->getLocalURL();
+ }
+
+ if ( $ns == NS_CATEGORY ) {
+ $labelClass .= ' CategoryTreeLabelCategory';
+ } else {
+ $labelClass .= ' CategoryTreeLabelPage';
+ }
+
+ if ( ( $ns % 2 ) > 0 ) {
+ $labelClass .= ' CategoryTreeLabelTalk';
+ }
+
+ $count = false;
+ $s = '';
+
+ # NOTE: things in CategoryTree.js rely on the exact order of tags!
+ # Specifically, the CategoryTreeChildren div must be the first
+ # sibling with nodeName = DIV of the grandparent of the expland link.
+
+ $s .= Xml::openElement( 'div', [ 'class' => 'CategoryTreeSection' ] );
+ $s .= Xml::openElement( 'div', [ 'class' => 'CategoryTreeItem' ] );
+
+ $attr = [ 'class' => 'CategoryTreeBullet' ];
+
+ if ( $ns == NS_CATEGORY ) {
+ if ( $cat ) {
+ if ( $mode == CategoryTreeMode::CATEGORIES ) {
+ $count = intval( $cat->getSubcatCount() );
+ } elseif ( $mode == CategoryTreeMode::PAGES ) {
+ $count = intval( $cat->getPageCount() ) - intval( $cat->getFileCount() );
+ } else {
+ $count = intval( $cat->getPageCount() );
+ }
+ }
+ if ( $count === 0 ) {
+ $bullet = wfMessage( 'categorytree-empty-bullet' )->escaped() . ' ';
+ $attr['class'] = 'CategoryTreeEmptyBullet';
+ } else {
+ $linkattr = [];
+
+ $linkattr[ 'class' ] = "CategoryTreeToggle";
+ $linkattr['data-ct-title'] = $key;
+
+ $tag = 'span';
+ if ( $children == 0 ) {
+ // Use ->plain() and htmlspecialchars() to ensure
+ // identical to what is done by JS, which does:
+ // $link.text( mw.msg( 'categorytree-expand-bullet' ) )
+ $txt = htmlspecialchars( wfMessage( 'categorytree-expand-bullet' )->plain() );
+ $linkattr[ 'data-ct-state' ] = 'collapsed';
+ } else {
+ $txt = htmlspecialchars( wfMessage( 'categorytree-collapse-bullet' )->plain() );
+ $linkattr[ 'data-ct-loaded' ] = true;
+ $linkattr[ 'data-ct-state' ] = 'expanded';
+ }
+
+ $bullet = Xml::openElement( $tag, $linkattr ) . $txt . Xml::closeElement( $tag ) . ' ';
+ }
+ } else {
+ $bullet = wfMessage( 'categorytree-page-bullet' )->escaped();
+ }
+ $s .= Xml::tags( 'span', $attr, $bullet ) . ' ';
+
+ $s .= Xml::element(
+ 'a',
+ [
+ 'class' => $labelClass,
+ 'href' => $wikiLink,
+ 'title' => $title->getPrefixedText()
+ ],
+ $label
+ );
+
+ if ( $count !== false && $this->getOption( 'showcount' ) ) {
+ $s .= self::createCountString( RequestContext::getMain(), $cat, $count );
+ }
+
+ $s .= Xml::closeElement( 'div' );
+ $s .= "\n\t\t";
+ $s .= Xml::openElement(
+ 'div',
+ [
+ 'class' => 'CategoryTreeChildren',
+ 'style' => $children > 0 ? "display:block" : "display:none"
+ ]
+ );
+
+ if ( $ns == NS_CATEGORY && $children > 0 ) {
+ $children = $this->renderChildren( $title, $children );
+ if ( $children == '' ) {
+ $s .= Xml::openElement( 'i', [ 'class' => 'CategoryTreeNotice' ] );
+ if ( $mode == CategoryTreeMode::CATEGORIES ) {
+ $s .= wfMessage( 'categorytree-no-subcategories' )->escaped();
+ } elseif ( $mode == CategoryTreeMode::PAGES ) {
+ $s .= wfMessage( 'categorytree-no-pages' )->escaped();
+ } elseif ( $mode == CategoryTreeMode::PARENTS ) {
+ $s .= wfMessage( 'categorytree-no-parent-categories' )->escaped();
+ } else {
+ $s .= wfMessage( 'categorytree-nothing-found' )->escaped();
+ }
+ $s .= Xml::closeElement( 'i' );
+ } else {
+ $s .= $children;
+ }
+ }
+
+ $s .= Xml::closeElement( 'div' );
+ $s .= Xml::closeElement( 'div' );
+
+ $s .= "\n\t\t";
+
+ return $s;
+ }
+
+ /**
+ * Create a string which format the page, subcat and file counts of a category
+ * @param IContextSource $context
+ * @param Category|null $cat
+ * @param int $countMode
+ * @return string
+ */
+ public static function createCountString( IContextSource $context, $cat, $countMode ) {
+ global $wgContLang;
+
+ # Get counts, with conversion to integer so === works
+ # Note: $allCount is the total number of cat members,
+ # not the count of how many members are normal pages.
+ $allCount = $cat ? intval( $cat->getPageCount() ) : 0;
+ $subcatCount = $cat ? intval( $cat->getSubcatCount() ) : 0;
+ $fileCount = $cat ? intval( $cat->getFileCount() ) : 0;
+ $pages = $allCount - $subcatCount - $fileCount;
+
+ $attr = [
+ 'title' => $context->msg( 'categorytree-member-counts' )
+ ->numParams( $subcatCount, $pages, $fileCount, $allCount, $countMode )->text(),
+ 'dir' => $context->getLanguage()->getDir() # numbers and commas get messed up in a mixed dir env
+ ];
+
+ $s = $wgContLang->getDirMark() . ' ';
+
+ # Create a list of category members with only non-zero member counts
+ $memberNums = [];
+ if ( $subcatCount ) {
+ $memberNums[] = $context->msg( 'categorytree-num-categories' )
+ ->numParams( $subcatCount )->text();
+ }
+ if ( $pages ) {
+ $memberNums[] = $context->msg( 'categorytree-num-pages' )->numParams( $pages )->text();
+ }
+ if ( $fileCount ) {
+ $memberNums[] = $context->msg( 'categorytree-num-files' )
+ ->numParams( $fileCount )->text();
+ }
+ $memberNumsShort = $memberNums
+ ? $context->getLanguage()->commaList( $memberNums )
+ : $context->msg( 'categorytree-num-empty' )->text();
+
+ # Only $5 is actually used in the default message.
+ # Other arguments can be used in a customized message.
+ $s .= Xml::tags(
+ 'span',
+ $attr,
+ $context->msg( 'categorytree-member-num' )
+ // Do not use numParams on params 1-4, as they are only used for customisation.
+ ->params( $subcatCount, $pages, $fileCount, $allCount, $memberNumsShort )
+ ->escaped()
+ );
+
+ return $s;
+ }
+
+ /**
+ * Creates a Title object from a user provided (and thus unsafe) string
+ * @param string $title
+ * @return null|Title
+ */
+ public static function makeTitle( $title ) {
+ $title = trim( $title );
+
+ if ( strval( $title ) === '' ) {
+ return null;
+ }
+
+ # The title must be in the category namespace
+ # Ignore a leading Category: if there is one
+ $t = Title::newFromText( $title, NS_CATEGORY );
+ if ( !$t || $t->getNamespace() != NS_CATEGORY || $t->getInterwiki() != '' ) {
+ // If we were given something like "Wikipedia:Foo" or "Template:",
+ // try it again but forced.
+ $title = "Category:$title";
+ $t = Title::newFromText( $title );
+ }
+ return $t;
+ }
+
+ /**
+ * Internal function to cap depth
+ * @param string $mode
+ * @param int $depth
+ * @return int|mixed
+ */
+ public static function capDepth( $mode, $depth ) {
+ global $wgCategoryTreeMaxDepth;
+
+ if ( is_numeric( $depth ) ) {
+ $depth = intval( $depth );
+ } else {
+ return 1;
+ }
+
+ if ( is_array( $wgCategoryTreeMaxDepth ) ) {
+ $max = isset( $wgCategoryTreeMaxDepth[$mode] ) ? $wgCategoryTreeMaxDepth[$mode] : 1;
+ } elseif ( is_numeric( $wgCategoryTreeMaxDepth ) ) {
+ $max = $wgCategoryTreeMaxDepth;
+ } else {
+ wfDebug( 'CategoryTree::capDepth: $wgCategoryTreeMaxDepth is invalid.' );
+ $max = 1;
+ }
+
+ return min( $depth, $max );
+ }
+}
diff --git a/www/wiki/extensions/CategoryTree/includes/CategoryTreeCategoryPage.php b/www/wiki/extensions/CategoryTree/includes/CategoryTreeCategoryPage.php
new file mode 100644
index 00000000..77ab51a0
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/includes/CategoryTreeCategoryPage.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+class CategoryTreeCategoryPage extends CategoryPage {
+ public $mCategoryViewerClass = CategoryTreeCategoryViewer::class;
+}
diff --git a/www/wiki/extensions/CategoryTree/includes/CategoryTreeCategoryViewer.php b/www/wiki/extensions/CategoryTree/includes/CategoryTreeCategoryViewer.php
new file mode 100644
index 00000000..434d7222
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/includes/CategoryTreeCategoryViewer.php
@@ -0,0 +1,78 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+class CategoryTreeCategoryViewer extends CategoryViewer {
+ public $child_cats;
+
+ /**
+ * @var CategoryTree
+ */
+ public $categorytree;
+
+ /**
+ * @return CategoryTree
+ */
+ private function getCategoryTree() {
+ global $wgCategoryTreeCategoryPageOptions;
+
+ if ( !isset( $this->categorytree ) ) {
+ if ( !CategoryTreeHooks::shouldForceHeaders() ) {
+ CategoryTree::setHeaders( $this->getOutput() );
+ }
+
+ $this->categorytree = new CategoryTree( $wgCategoryTreeCategoryPageOptions );
+ }
+
+ return $this->categorytree;
+ }
+
+ /**
+ * Add a subcategory to the internal lists
+ * @param Category $cat
+ * @param string $sortkey
+ * @param int $pageLength
+ */
+ public function addSubcategoryObject( Category $cat, $sortkey, $pageLength ) {
+ $title = $cat->getTitle();
+
+ if ( $this->getRequest()->getCheck( 'notree' ) ) {
+ parent::addSubcategoryObject( $cat, $sortkey, $pageLength );
+ return;
+ }
+
+ $tree = $this->getCategoryTree();
+
+ $this->children[] = $tree->renderNodeInfo( $title, $cat );
+
+ $this->children_start_char[] = $this->getSubcategorySortChar( $title, $sortkey );
+ }
+
+ public function clearCategoryState() {
+ $this->child_cats = [];
+ parent::clearCategoryState();
+ }
+
+ public function finaliseCategoryState() {
+ if ( $this->flip ) {
+ $this->child_cats = array_reverse( $this->child_cats );
+ }
+ parent::finaliseCategoryState();
+ }
+}
diff --git a/www/wiki/extensions/CategoryTree/includes/CategoryTreeHidePrefix.php b/www/wiki/extensions/CategoryTree/includes/CategoryTreeHidePrefix.php
new file mode 100644
index 00000000..29d69b70
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/includes/CategoryTreeHidePrefix.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * © 2006 Daniel Kinzler
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Extensions
+ * @author Daniel Kinzler, brightbyte.de
+ */
+
+/**
+ * Constants for use with the hideprefix option,
+ * defining when the namespace prefix should be hidden.
+ */
+class CategoryTreeHidePrefix {
+
+ const NEVER = 0;
+
+ const ALWAYS = 10;
+
+ const CATEGORIES = 20;
+
+ const AUTO = 30;
+
+}
diff --git a/www/wiki/extensions/CategoryTree/includes/CategoryTreeHooks.php b/www/wiki/extensions/CategoryTree/includes/CategoryTreeHooks.php
new file mode 100644
index 00000000..a30d4932
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/includes/CategoryTreeHooks.php
@@ -0,0 +1,321 @@
+<?php
+/**
+ * © 2006-2008 Daniel Kinzler and others
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Extensions
+ * @author Daniel Kinzler, brightbyte.de
+ */
+
+/**
+ * Hooks for the CategoryTree extension, an AJAX based gadget
+ * to display the category structure of a wiki
+ */
+class CategoryTreeHooks {
+
+ public static function shouldForceHeaders() {
+ global $wgCategoryTreeSidebarRoot, $wgCategoryTreeHijackPageCategories,
+ $wgCategoryTreeForceHeaders;
+ return $wgCategoryTreeForceHeaders || $wgCategoryTreeSidebarRoot
+ || $wgCategoryTreeHijackPageCategories;
+ }
+
+ /**
+ * Adjusts config once MediaWiki is fully initialised
+ * TODO: Don't do this, lazy initialize the config
+ */
+ public static function initialize() {
+ global $wgRequest;
+ global $wgCategoryTreeDefaultOptions, $wgCategoryTreeDefaultMode;
+ global $wgCategoryTreeCategoryPageOptions, $wgCategoryTreeCategoryPageMode;
+ global $wgCategoryTreeOmitNamespace;
+
+ if ( !isset( $wgCategoryTreeDefaultOptions['mode'] )
+ || is_null( $wgCategoryTreeDefaultOptions['mode'] )
+ ) {
+ $wgCategoryTreeDefaultOptions['mode'] = $wgCategoryTreeDefaultMode;
+ }
+
+ if ( !isset( $wgCategoryTreeDefaultOptions['hideprefix'] )
+ || is_null( $wgCategoryTreeDefaultOptions['hideprefix'] )
+ ) {
+ $wgCategoryTreeDefaultOptions['hideprefix'] = $wgCategoryTreeOmitNamespace;
+ }
+
+ if ( !isset( $wgCategoryTreeCategoryPageOptions['mode'] )
+ || is_null( $wgCategoryTreeCategoryPageOptions['mode'] )
+ ) {
+ $mode = $wgRequest->getVal( 'mode' );
+ $wgCategoryTreeCategoryPageOptions['mode'] = ( $mode )
+ ? CategoryTree::decodeMode( $mode ) : $wgCategoryTreeCategoryPageMode;
+ }
+ }
+
+ /**
+ * @param Parser $parser
+ */
+ public static function setHooks( $parser ) {
+ global $wgCategoryTreeAllowTag;
+ if ( !$wgCategoryTreeAllowTag ) {
+ return;
+ }
+ $parser->setHook( 'categorytree', 'CategoryTreeHooks::parserHook' );
+ $parser->setFunctionHook( 'categorytree', 'CategoryTreeHooks::parserFunction' );
+ }
+
+ /**
+ * Entry point for the {{#categorytree}} tag parser function.
+ * This is a wrapper around CategoryTreeHooks::parserHook
+ * @param Parser $parser
+ * @return array|string
+ */
+ public static function parserFunction( $parser ) {
+ $params = func_get_args();
+ array_shift( $params ); // first is $parser, strip it
+
+ // first user-supplied parameter must be category name
+ if ( !$params ) {
+ return ''; // no category specified, return nothing
+ }
+ $cat = array_shift( $params );
+
+ // build associative arguments from flat parameter list
+ $argv = [];
+ foreach ( $params as $p ) {
+ if ( preg_match( '/^\s*(\S.*?)\s*=\s*(.*?)\s*$/', $p, $m ) ) {
+ $k = $m[1];
+ $v = preg_replace( '/^"\s*(.*?)\s*"$/', '$1', $m[2] ); // strip any quotes enclusing the value
+ } else {
+ $k = trim( $p );
+ $v = true;
+ }
+
+ $argv[$k] = $v;
+ }
+
+ // now handle just like a <categorytree> tag
+ $html = self::parserHook( $cat, $argv, $parser );
+ return [ $html, 'noparse' => true, 'isHTML' => true ];
+ }
+
+ /**
+ * Hook implementation for injecting a category tree into the sidebar.
+ * Only does anything if $wgCategoryTreeSidebarRoot is set to a category name.
+ * @param Skin $skin
+ * @param SkinTemplate $tpl
+ */
+ public static function skinTemplateOutputPageBeforeExec( $skin, $tpl ) {
+ global $wgCategoryTreeSidebarRoot, $wgCategoryTreeSidebarOptions;
+
+ if ( !$wgCategoryTreeSidebarRoot ) {
+ return;
+ }
+
+ $html = self::parserHook( $wgCategoryTreeSidebarRoot, $wgCategoryTreeSidebarOptions );
+ if ( $html ) {
+ $tpl->data['sidebar']['categorytree-portlet'] = $html;
+ }
+ }
+
+ /**
+ * Entry point for the <categorytree> tag parser hook.
+ * This loads CategoryTreeFunctions.php and calls CategoryTree::getTag()
+ * @param string $cat
+ * @param array $argv
+ * @param Parser $parser
+ * @param bool $allowMissing
+ * @return bool|string
+ */
+ public static function parserHook( $cat, $argv, $parser = null, $allowMissing = false ) {
+ global $wgOut;
+
+ if ( $parser ) {
+ $parser->mOutput->mCategoryTreeTag = true; # flag for use by CategoryTreeHooks::parserOutput
+ } else {
+ CategoryTree::setHeaders( $wgOut );
+ }
+
+ $ct = new CategoryTree( $argv );
+
+ $attr = Sanitizer::validateTagAttributes( $argv, 'div' );
+
+ $hideroot = isset( $argv['hideroot'] )
+ ? CategoryTree::decodeBoolean( $argv['hideroot'] ) : null;
+ $onlyroot = isset( $argv['onlyroot'] )
+ ? CategoryTree::decodeBoolean( $argv['onlyroot'] ) : null;
+ $depthArg = isset( $argv['depth'] ) ? (int)$argv['depth'] : null;
+
+ $depth = CategoryTree::capDepth( $ct->getOption( 'mode' ), $depthArg );
+ if ( $onlyroot ) {
+ $depth = 0;
+ }
+
+ return $ct->getTag( $parser, $cat, $hideroot, $attr, $depth, $allowMissing );
+ }
+
+ /**
+ * Hook callback that injects messages and things into the <head> tag,
+ * if needed in the current page.
+ * Does nothing if $parserOutput->mCategoryTreeTag is not set
+ * @param OutputPage $outputPage
+ * @param ParserOutput $parserOutput
+ */
+ public static function parserOutput( $outputPage, $parserOutput ) {
+ if ( self::shouldForceHeaders() ) {
+ // Skip, we've already set the headers unconditionally
+ return;
+ }
+ if ( !empty( $parserOutput->mCategoryTreeTag ) ) {
+ CategoryTree::setHeaders( $outputPage );
+ }
+ }
+
+ /**
+ * BeforePageDisplay and BeforePageDisplayMobile hooks.
+ * These hooks are used when $wgCategoryTreeForceHeaders is set.
+ * Otherwise similar to CategoryTreeHooks::parserOutput.
+ * @param OutputPage $out
+ */
+ public static function addHeaders( OutputPage $out ) {
+ if ( !self::shouldForceHeaders() ) {
+ return;
+ }
+ CategoryTree::setHeaders( $out );
+ }
+
+ /**
+ * ArticleFromTitle hook, override category page handling
+ *
+ * @param Title $title
+ * @param Article &$article
+ * @return bool
+ */
+ public static function articleFromTitle( $title, &$article ) {
+ if ( $title->getNamespace() == NS_CATEGORY ) {
+ $article = new CategoryTreeCategoryPage( $title );
+ }
+ return true;
+ }
+
+ /**
+ * OutputPageMakeCategoryLinks hook, override category links
+ * @param OutputPage &$out
+ * @param array $categories
+ * @param array &$links
+ * @return bool
+ */
+ public static function outputPageMakeCategoryLinks( &$out, $categories, &$links ) {
+ global $wgCategoryTreePageCategoryOptions, $wgCategoryTreeHijackPageCategories;
+
+ if ( !$wgCategoryTreeHijackPageCategories ) {
+ // Not enabled, don't do anything
+ return true;
+ }
+
+ foreach ( $categories as $category => $type ) {
+ $links[$type][] = self::parserHook( $category, $wgCategoryTreePageCategoryOptions, null, true );
+ }
+
+ return false;
+ }
+
+ /**
+ * @param Skin $skin
+ * @param array &$links
+ * @param string &$result
+ * @return bool
+ */
+ public static function skinJoinCategoryLinks( $skin, &$links, &$result ) {
+ global $wgCategoryTreeHijackPageCategories;
+ if ( !$wgCategoryTreeHijackPageCategories ) {
+ // Not enabled, don't do anything.
+ return true;
+ }
+ $embed = '<div class="CategoryTreeCategoryBarItem">';
+ $pop = '</div>';
+ $sep = ' ';
+
+ $result = $embed . implode( "{$pop} {$sep} {$embed}", $links ) . $pop;
+
+ return false;
+ }
+
+ /**
+ * @param array &$vars
+ * @return bool
+ */
+ public static function getConfigVars( &$vars ) {
+ global $wgCategoryTreeCategoryPageOptions;
+
+ // Look this is pretty bad but Category tree is just whacky, it needs to be rewritten
+ $ct = new CategoryTree( $wgCategoryTreeCategoryPageOptions );
+ $vars['wgCategoryTreePageCategoryOptions'] = $ct->getOptionsAsJsStructure();
+ return true;
+ }
+
+ /**
+ * Hook handler for the SpecialTrackingCategories::preprocess hook
+ * @param SpecialPage $specialPage SpecialTrackingCategories object
+ * @param array $trackingCategories [ 'msg' => Title, 'cats' => Title[] ]
+ */
+ public static function onSpecialTrackingCategoriesPreprocess(
+ $specialPage, $trackingCategories
+ ) {
+ $categoryDbKeys = [];
+ foreach ( $trackingCategories as $catMsg => $data ) {
+ foreach ( $data['cats'] as $catTitle ) {
+ $categoryDbKeys[] = $catTitle->getDbKey();
+ }
+ }
+ $categories = [];
+ if ( $categoryDbKeys ) {
+ $dbr = wfGetDB( DB_REPLICA );
+ $res = $dbr->select(
+ 'category',
+ [ 'cat_id', 'cat_title', 'cat_pages', 'cat_subcats', 'cat_files' ],
+ [ 'cat_title' => array_unique( $categoryDbKeys ) ],
+ __METHOD__
+ );
+ foreach ( $res as $row ) {
+ $categories[$row->cat_title] = Category::newFromRow( $row );
+ }
+ }
+ $specialPage->categoryTreeCategories = $categories;
+ }
+
+ /**
+ * Hook handler for the SpecialTrackingCategories::generateCatLink hook
+ * @param SpecialPage $specialPage SpecialTrackingCategories object
+ * @param Title $catTitle Title object of the linked category
+ * @param string &$html Result html
+ */
+ public static function onSpecialTrackingCategoriesGenerateCatLink(
+ $specialPage, $catTitle, &$html
+ ) {
+ if ( !isset( $specialPage->categoryTreeCategories ) ) {
+ return;
+ }
+
+ $cat = null;
+ if ( isset( $specialPage->categoryTreeCategories[$catTitle->getDbKey()] ) ) {
+ $cat = $specialPage->categoryTreeCategories[$catTitle->getDbKey()];
+ }
+
+ $html .= CategoryTree::createCountString( $specialPage->getContext(), $cat, 0 );
+ }
+}
diff --git a/www/wiki/extensions/CategoryTree/includes/CategoryTreeMode.php b/www/wiki/extensions/CategoryTree/includes/CategoryTreeMode.php
new file mode 100644
index 00000000..48ff6133
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/includes/CategoryTreeMode.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * © 2006 Daniel Kinzler
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Extensions
+ * @author Daniel Kinzler, brightbyte.de
+ */
+
+/**
+ * Constants for use with the mode, defining what should be shown in the tree.
+ */
+class CategoryTreeMode {
+
+ const CATEGORIES = 0;
+
+ const PAGES = 10;
+
+ const ALL = 20;
+
+ const PARENTS = 100;
+
+}
diff --git a/www/wiki/extensions/CategoryTree/includes/CategoryTreePage.php b/www/wiki/extensions/CategoryTree/includes/CategoryTreePage.php
new file mode 100644
index 00000000..202e84e8
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/includes/CategoryTreePage.php
@@ -0,0 +1,214 @@
+<?php
+/**
+ * © 2006 Daniel Kinzler
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Extensions
+ * @author Daniel Kinzler, brightbyte.de
+ */
+
+/**
+ * Special page for the CategoryTree extension, an AJAX based gadget
+ * to display the category structure of a wiki
+ */
+class CategoryTreePage extends SpecialPage {
+ public $target = '';
+
+ /**
+ * @var CategoryTree
+ */
+ public $tree = null;
+
+ public function __construct() {
+ parent::__construct( 'CategoryTree' );
+ }
+
+ /**
+ * @param string $name
+ * @return mixed
+ */
+ private function getOption( $name ) {
+ global $wgCategoryTreeDefaultOptions;
+
+ if ( $this->tree ) {
+ return $this->tree->getOption( $name );
+ } else {
+ return $wgCategoryTreeDefaultOptions[$name];
+ }
+ }
+
+ /**
+ * Main execution function
+ * @param string|null $par Parameters passed to the page
+ */
+ public function execute( $par ) {
+ global $wgCategoryTreeDefaultOptions, $wgCategoryTreeSpecialPageOptions;
+
+ $this->setHeaders();
+ $request = $this->getRequest();
+ if ( $par ) {
+ $this->target = $par;
+ } else {
+ $this->target = $request->getVal( 'target' );
+ if ( $this->target === null ) {
+ $rootcategory = $this->msg( 'rootcategory' );
+ if ( $rootcategory->exists() ) {
+ $this->target = $rootcategory->text();
+ }
+ }
+ }
+
+ $this->target = trim( $this->target );
+
+ $options = [];
+
+ # grab all known options from the request. Normalization is done by the CategoryTree class
+ foreach ( $wgCategoryTreeDefaultOptions as $option => $default ) {
+ if ( isset( $wgCategoryTreeSpecialPageOptions[$option] ) ) {
+ $default = $wgCategoryTreeSpecialPageOptions[$option];
+ }
+
+ $options[$option] = $request->getVal( $option, $default );
+ }
+
+ $this->tree = new CategoryTree( $options );
+
+ $output = $this->getOutput();
+ $output->addWikiMsg( 'categorytree-header' );
+
+ $this->executeInputForm();
+
+ if ( $this->target !== '' && $this->target !== null ) {
+ if ( !CategoryTreeHooks::shouldForceHeaders() ) {
+ CategoryTree::setHeaders( $output );
+ }
+
+ $title = CategoryTree::makeTitle( $this->target );
+
+ if ( $title && $title->getArticleID() ) {
+ $output->addHTML( Xml::openElement( 'div', [ 'class' => 'CategoryTreeParents' ] ) );
+ $output->addHTML( $this->msg( 'categorytree-parents' )->parse() );
+ $output->addHTML( $this->msg( 'colon-separator' )->escaped() );
+
+ $parents = $this->tree->renderParents( $title );
+
+ if ( $parents == '' ) {
+ $output->addHTML( $this->msg( 'categorytree-no-parent-categories' )->parse() );
+ } else {
+ $output->addHTML( $parents );
+ }
+
+ $output->addHTML( Xml::closeElement( 'div' ) );
+
+ $output->addHTML( Xml::openElement( 'div', [ 'class' => 'CategoryTreeResult' ] ) );
+ $output->addHTML( $this->tree->renderNode( $title, 1 ) );
+ $output->addHTML( Xml::closeElement( 'div' ) );
+ } else {
+ $output->addHTML( Xml::openElement( 'div', [ 'class' => 'CategoryTreeNotice' ] ) );
+ $output->addHTML( $this->msg( 'categorytree-not-found', $this->target )->parse() );
+ $output->addHTML( Xml::closeElement( 'div' ) );
+ }
+ }
+ }
+
+ /**
+ * Input form for entering a category
+ */
+ private function executeInputForm() {
+ $namespaces = $this->getRequest()->getVal( 'namespaces', '' );
+ // mode may be overriden by namespaces option
+ $mode = ( $namespaces == '' ? $this->getOption( 'mode' ) : CategoryTreeMode::ALL );
+ if ( $mode == CategoryTreeMode::CATEGORIES ) {
+ $modeDefault = 'categories';
+ } elseif ( $mode == CategoryTreeMode::PAGES ) {
+ $modeDefault = 'pages';
+ } else {
+ $modeDefault = 'all';
+ }
+
+ $formDescriptor = [
+ 'category' => [
+ 'type' => 'title',
+ 'name' => 'target',
+ 'label-message' => 'categorytree-category',
+ 'namespace' => NS_CATEGORY,
+ ],
+
+ 'mode' => [
+ 'type' => 'select',
+ 'name' => 'mode',
+ 'label-message' => 'categorytree-mode-label',
+ 'options-messages' => [
+ 'categorytree-mode-categories' => 'categories',
+ 'categorytree-mode-pages' => 'pages',
+ 'categorytree-mode-all' => 'all',
+ ],
+ 'default' => $modeDefault,
+ 'nodata' => true,
+ ],
+
+ 'namespace' => [
+ 'type' => 'namespaceselect',
+ 'name' => 'namespaces',
+ 'label-message' => 'namespace',
+ 'all' => '',
+ ],
+ ];
+
+ HTMLForm::factory( 'ooui', $formDescriptor, $this->getContext() )
+ ->addHiddenFields( [ 'title' => $this->getPageTitle()->getPrefixedDbKey() ] )
+ ->setWrapperLegendMsg( 'categorytree-legend' )
+ ->setSubmitTextMsg( 'categorytree-go' )
+ ->setMethod( 'get' )
+ ->prepareForm()
+ ->displayForm( false );
+ }
+
+ /**
+ * Return an array of subpages beginning with $search that this special page will accept.
+ *
+ * @param string $search Prefix to search for
+ * @param int $limit Maximum number of results to return (usually 10)
+ * @param int $offset Number of results to skip (usually 0)
+ * @return string[] Matching subpages
+ */
+ public function prefixSearchSubpages( $search, $limit, $offset ) {
+ $title = Title::newFromText( $search, NS_CATEGORY );
+ if ( $title && $title->getNamespace() !== NS_CATEGORY ) {
+ // Someone searching for something like "Wikipedia:Foo"
+ $title = Title::makeTitleSafe( NS_CATEGORY, $search );
+ }
+ if ( !$title ) {
+ // No prefix suggestion outside of category namespace
+ return [];
+ }
+ // Autocomplete subpage the same as a normal search, but just for categories
+ $prefixSearcher = new TitlePrefixSearch;
+ $result = $prefixSearcher->search( $title->getPrefixedText(), $limit, [ NS_CATEGORY ], $offset );
+
+ return array_map( function ( Title $t ) {
+ // Remove namespace in search suggestion
+ return $t->getText();
+ }, $result );
+ }
+
+ protected function getGroupName() {
+ return 'pages';
+ }
+
+}
diff --git a/www/wiki/extensions/CategoryTree/modules/ext.categoryTree.css b/www/wiki/extensions/CategoryTree/modules/ext.categoryTree.css
new file mode 100644
index 00000000..418a0754
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/modules/ext.categoryTree.css
@@ -0,0 +1,118 @@
+/**
+ * Stylesheet for the CategoryTree extension.
+ *
+ * © 2006 Daniel Kinzler
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Extensions
+ * @author Daniel Kinzler, brightbyte.de
+ */
+
+.client-js #mw-subcategories ul {
+ list-style: none none;
+ margin-left: 0.25em;
+}
+
+#mw-panel div.portal div.body .CategoryTreeTag {
+ margin: 0;
+ font-size: 0.75em;
+ line-height: 1.125em;
+}
+
+#mw-panel div.portal div.body .CategoryTreeItem {
+ padding: 0.25em 0;
+}
+
+.CategoryTreeChildren {
+ margin-left: 1.25em;
+}
+
+.CategoryTreeBullet,
+.CategoryTreeEmptyBullet {
+ cursor: default;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.CategoryTreeToggleHandlerAttached {
+ cursor: pointer;
+}
+
+.CategoryTreeEmptyBullet {
+ color: #c0c0c0;
+}
+
+.CategoryTreeBullet a,
+.CategoryTreeBullet a:link,
+.CategoryTreeBullet a:active,
+.CategoryTreeBullet a:visited {
+ text-decoration: none;
+ color: inherit;
+ speak: none;
+}
+
+/* Hide toggle buttons for clients without JavaScript */
+.client-nojs .CategoryTreeBullet,
+.client-nojs .CategoryTreeEmptyBullet {
+ display: none;
+}
+
+.CategoryTreeToggle {
+ color: #0645ad;
+}
+
+.CategoryTreeLabelPage {
+ font-style: italic;
+}
+
+.CategoryTreeParents {
+ margin-top: 1.5ex;
+ font-style: italic;
+}
+
+.CategoryTreeResult {
+ margin-top: 1.5ex;
+}
+
+.CategoryTreeTag {
+ margin-top: 0.5ex;
+ margin-bottom: 0.5ex;
+}
+
+.CategoryTreeNotice {
+ font-style: italic;
+}
+
+.CategoryTreeCategoryBarItem {
+ /* yes, specify display twice! quirk for FF2 */
+ display: -moz-inline-box;
+ display: inline-block;
+ /* why is the -0.5ex needed? */
+ margin: -0.5ex 0 0 1ex;
+ padding: 0;
+ vertical-align: top;
+ /* IE6-7 Hack for display: inline-block */
+ zoom: 1;
+ *display: inline; /* stylelint-disable-line declaration-block-no-duplicate-properties */
+}
+
+.CategoryTreeSection {
+ direction: ltr;
+}
diff --git a/www/wiki/extensions/CategoryTree/modules/ext.categoryTree.js b/www/wiki/extensions/CategoryTree/modules/ext.categoryTree.js
new file mode 100644
index 00000000..9690a0a0
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/modules/ext.categoryTree.js
@@ -0,0 +1,205 @@
+/**
+ * JavaScript for the CategoryTree extension.
+ *
+ * © 2006 Daniel Kinzler
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Extensions
+ * @author Daniel Kinzler, brightbyte.de
+ */
+
+( function ( $, mw ) {
+ var loadChildren;
+
+ /**
+ * Expands a given node (loading it's children if not loaded)
+ *
+ * @param {jQuery} $link
+ */
+ function expandNode( $link ) {
+ // Show the children node
+ var $children = $link.parents( '.CategoryTreeItem' )
+ .siblings( '.CategoryTreeChildren' );
+ $children.show();
+
+ $link
+ .text( mw.msg( 'categorytree-collapse-bullet' ) )
+ .attr( 'title', mw.msg( 'categorytree-collapse' ) )
+ .data( 'ct-state', 'expanded' );
+
+ if ( !$link.data( 'ct-loaded' ) ) {
+ loadChildren( $link, $children );
+ }
+ }
+
+ /**
+ * Collapses a node
+ *
+ * @param {jQuery} $link
+ */
+ function collapseNode( $link ) {
+ // Hide the children node
+ $link.parents( '.CategoryTreeItem' )
+ .siblings( '.CategoryTreeChildren' ).hide();
+
+ $link
+ .text( mw.msg( 'categorytree-expand-bullet' ) )
+ .attr( 'title', mw.msg( 'categorytree-expand' ) )
+ .data( 'ct-state', 'collapsed' );
+ }
+
+ /**
+ * Handles clicks on the expand buttons, and calls the appropriate function
+ *
+ * @context {Element} CategoryTreeToggle
+ */
+ function handleNode() {
+ var $link = $( this );
+ if ( $link.data( 'ct-state' ) === 'collapsed' ) {
+ expandNode( $link );
+ } else {
+ collapseNode( $link );
+ }
+ }
+
+ /**
+ * Attach click handler to buttons
+ *
+ * @param {jQuery} $content
+ */
+ function attachHandler( $content ) {
+ $content.find( '.CategoryTreeToggle' )
+ .click( handleNode )
+ .attr( 'title', function () {
+ return mw.msg(
+ $( this ).data( 'ct-state' ) === 'collapsed' ?
+ 'categorytree-expand' :
+ 'categorytree-collapse'
+ );
+ } )
+ .addClass( 'CategoryTreeToggleHandlerAttached' );
+ }
+
+ /**
+ * Loads children for a node via an HTTP call
+ *
+ * @param {jQuery} $link
+ * @param {jQuery} $children
+ */
+ loadChildren = function ( $link, $children ) {
+ var $linkParentCTTag, ctTitle, ctMode, ctOptions;
+
+ /**
+ * Error callback
+ */
+ function error() {
+ var $retryLink;
+
+ $retryLink = $( '<a>' )
+ .text( mw.msg( 'categorytree-retry' ) )
+ .attr( {
+ role: 'button',
+ tabindex: 0
+ } )
+ .on( 'click keypress', function ( e ) {
+ if (
+ e.type === 'click' ||
+ e.type === 'keypress' && e.which === 13
+ ) {
+ loadChildren( $link, $children );
+ }
+ } );
+
+ $children
+ .text( mw.msg( 'categorytree-error' ) + ' ' )
+ .append( $retryLink );
+ }
+
+ $link.data( 'ct-loaded', true );
+
+ $children.append(
+ $( '<i class="CategoryTreeNotice"></i>' )
+ .text( mw.msg( 'categorytree-loading' ) )
+ );
+
+ $linkParentCTTag = $link.parents( '.CategoryTreeTag' );
+
+ // Element may not have a .CategoryTreeTag parent, fallback to defauls
+ // Probably a CategoryPage (@todo: based on what?)
+ ctTitle = $link.data( 'ct-title' );
+ ctMode = $linkParentCTTag.data( 'ct-mode' );
+ ctMode = typeof ctMode === 'number' ? ctMode : undefined;
+ ctOptions = $linkParentCTTag.attr( 'data-ct-options' );
+ if ( !ctOptions ) {
+ ctOptions = mw.config.get( 'wgCategoryTreePageCategoryOptions' );
+ }
+
+ // Mode and options have defaults or fallbacks, title does not.
+ // Don't make a request if there is no title.
+ if ( typeof ctTitle !== 'string' ) {
+ error();
+ return;
+ }
+
+ new mw.Api().get( {
+ action: 'categorytree',
+ category: ctTitle,
+ options: ctOptions,
+ uselang: mw.config.get( 'wgUserLanguage' ),
+ formatversion: 2
+ } ).done( function ( data ) {
+ data = data.categorytree.html;
+
+ if ( data === '' ) {
+ switch ( ctMode ) {
+ // CategoryTreeMode::CATEGORIES = 0
+ case 0:
+ data = mw.msg( 'categorytree-no-subcategories' );
+ break;
+ // CategoryTreeMode::PAGES = 10
+ case 10:
+ data = mw.msg( 'categorytree-no-pages' );
+ break;
+ // CategoryTreeMode::PARENTS = 100
+ case 100:
+ data = mw.msg( 'categorytree-no-parent-categories' );
+ break;
+ // CategoryTreeMode::ALL = 20
+ default:
+ data = mw.msg( 'categorytree-nothing-found' );
+ }
+
+ data = $( '<i class="CategoryTreeNotice"></i>' ).text( data );
+ }
+
+ $children.html( data );
+ attachHandler( $children );
+
+ } )
+ .fail( error );
+ };
+
+ // Register click events
+ mw.hook( 'wikipage.content' ).add( attachHandler );
+
+ $( function () {
+ // Attach click handler for sidebar
+ attachHandler( $( '#p-categorytree-portlet' ) );
+ } );
+
+}( jQuery, mediaWiki ) );
diff --git a/www/wiki/extensions/CategoryTree/tests/phan/config.php b/www/wiki/extensions/CategoryTree/tests/phan/config.php
new file mode 100644
index 00000000..5559f8d9
--- /dev/null
+++ b/www/wiki/extensions/CategoryTree/tests/phan/config.php
@@ -0,0 +1,9 @@
+<?php
+
+$cfg = require __DIR__ . '/../../vendor/mediawiki/mediawiki-phan-config/src/config.php';
+// SpecialPage->categoryTreeCategories
+$cfg['suppress_issue_types'][] = 'PhanUndeclaredProperty';
+// TitlePrefixSearch
+$cfg['suppress_issue_types'][] = 'PhanDeprecatedClass';
+
+return $cfg;